IT이론 정리노트/IT보안(CISSP)

CISSP IT보안이론 요약: 악성코드와 애플리케이션 공격

G. Hong 2022. 2. 6. 22:56
728x90
반응형

1. 악성코드

악성코드의 기원

  • 초기에는 악성코드 제작에 자부심을 느끼는 SW개발자들이 제작. SW패키지나 OS의 보안 취약점을 노출시켜 보안의식을 고취시키는 유용한 기능이 있었음.
  • 스크립트 키디에 의해서 아마추어 제작자가 만든 코드가 급속히 퍼지는 경우가 있음.
  • 범죄집단에 의해 돈과 신분을 훔치는데 사용 됨.

 

바이러스

바이러스 복제 기술

- 데이터를 전송함으로써 시스템 간에 퍼지는 기술이 포함 되어야 함.

  • MBR(마스터 부트 레코드) 바이러스
    • 초기형태의 바이러스.
    • 코드 주요 부분은 다른 매체에 저장하고, 시스템이 감염된 MBR을 읽으면 다른 장소의 바이러스 코드를 읽고 실행하고 메모리에 로드한다.
  • 파일 감염 바이러스
    • 실행파일을 감염시키고, OS가 실행 할 때를 기다린다.
    • 은닉기술을 사용하지 않는 바이러스는 쉽게 발각됨.
  • 매크로 바이러스
    • 어플리케이션들이 제공하는 매크로를 이용한 바이러스.
    • 매크로 실행을 제한하는 기능을 통해 급감 하였다.
  • 서비스 인젝션 바이러스
    • 자신을 svchost.exe, explorer.exe 등과 같이 OS의 믿을 만한 프로세스에 삽입해 탐지를 회피.
    • 최신 보안 패치를 통한 예방이 가능.

바이러스에 취약한 플랫폼

  • 대부분의 바이러스는 MS Windows를 목표로 함.
  • 바이러스의 1%가 유닉스와 맥OS 등을 대상으로 함.

안티 바이러스 매커니즘

  • 시그니처 기반
    • 대부분의 제품 방식.
    • 바이러스에 대한 방대한 DB유지.
    • 정의된 파일이 없으면 탐지를 못함.
  • 휴리스틱 방식
    • 멀웨어 탐지와 SW 행동 분석 방식.
    • 권한상승 시도, 전기적 신호, OS시스템 파일 변조.

바이러스 기술

  • 다중형 바이러스
    • 여러 복제 방식을 사용해 한 가지 방식만 방어하는 시스템에 침투
  • 은닉형 바이러스
    • OS를 통해 모든 것이 정상인 것 처럼 안티바이러스를 속이는 것
  • 다형성 바이러스
    • 시스템 간 이동 할 수 있게 자신을 변경
    • 시그니처 변경을 통해 시그니처 기반 안티바이러스우회
    • 현재 대부분의 안티바이러스에서 탐지가 가능
  • 암호화 바이러스
    • 바이러스 주요 코드가 암호화 되어 디스크에 저장 됨.
    • 복호화 코드를 보유하기 때문에 최신 안티바이러스에서는 탐지가 가능.
  • 훅스
    • 자원손실을 일으킴.

 

논리폭탄

  • 특정 조건까지 잠복하는 악성코드. 퇴사하는 개발자가 설치하는 경우가 많음.
  • 날짜, 실행, 로그인 등의 조건
  • 예: 미켈란젤로 바이러스(3월7일)

 

트로이 목마

  • 다운받은 SW에서 주로 발견
  • 예: 가짜 안티바이러스 SW

 

- 인간의 개입 없이 복제 가능한 악성코드
 

코드레드 웜: MS IIS에서 급속 전파

  1. 낮은 버젼의 IIS로 공격
  2. 로컬 웹서버에 감염 메시지
  3. 백악관 IP로 DDoS 공격

스턱스넷

  1. 보호되지 않은 공유시스템을 찾음
  2. 윈도우 서버와 윈도우 프린터 스풀링 서비스의 취약점을 통해 감염
  3. DB 기본 패스워드로 접속
  4. 감염된 USB를 통해 전파

* 미국/이스라엘이 이란의 핵시설 파괴를 목적으로 만든 것이라는 보도가 있었음.
 

스파이웨어와 애드웨어

  • 스파이웨어
    • 사용자의 행동을 모니터링 하며 중요한 정보들을 가로챔
    • 은행 PW, 쇼핑몰 카드번호
  • 애드웨어
    • 감염된 컴퓨터에 광고를 띄움

 

액티브 콘텐츠(동적 콘텐츠)

  • 서버의 부하를 줄이고, 사용자 컴퓨터에서 다운로드 되어 실행됨.
  • 예: 자바애플릿, 액티브X
  • 악의적인 애플릿은 시스템에 중대한 위협이 됨.

 

악성코드 대책

클라이언트

- 업데이트 된 안티바이러스 SW를 통해 악성코드 존재를 검사.

서버

- 클라이언트 보다 더 중요함. 동일한 보호가 필요함.

콘텐츠 필터

- 네트워크 트래픽의 악성코드를 스캐닝
- 시그니처 기반 필터 보완

  • 트립와이어: 무결성체크 SW. 파일시스템 변조 스캔.
  • 접근통제를 통해 악성코드 전파 제한.

액티브 콘텐츠 감염방지

  1. 자바 샌드박스 기능
  2. 액티브X는 디지털서명을 확인
  3. OS수준에서 애플리케이션 화이트리스트 사용

제로데이 취약점

- 보안 업데이트에 대한 관리
 

2. 패스워드 공격

패스워드 유추

  • 사용자 정보로 유추
  • 자주 쓰는 패스워드

 

사전공격

  • 저장된 PW의 해시값과 자동화된 도구로 사전공격을 수행해서 동일한 해시값을 찾아서 PW획득
  • 최신 버젼의 도구는 복잡한 PW 생성규칙도 공략 가능

 

패스워드 공격 대책

  • 사용자 교육
  • 안전한 PW 생성법 교육
  • 유닉스/리눅스 계열은 PW정보가 /etc/passwd가 아닌 /etc/shadow로 저장되도록 함

 

3. 애플리케이션 공격

버퍼 오버플로우

  • 개발자가 입력값 길이를 제한하지 않을 때 발생. 
  • 너무 큰 데이타가 메모리의 다른 영역에 저장된 값에 영향을 미침.
  • 최악의 경우 공격자가 서버에서 명령을 실행 하게 되는 상황에도 발생 할 수 있음.

 

Time of Check to Time of Use (TOCTTOU)

  • 권한을 허가하는 시간과 자원을 요청하는 시간 사이가 너무 길 때 발생하는 취약점
  • 예: 변경된 권한이 로그인 시에만 반영 되면, 이미 존재하는 세션일 경우 여전히 예전 권한을 가지고 있음.

 

백도어

  • 일반적인 접근제한을 우회 할 수 있게 해주는 명시되지 않은 명령들.
  • 주로 개발자들이 개발과정에서 사용.

 

권한상승과 루트킷

  • 일반 사용자 접근권한에서 관리자 권한을 가진 계정으로 권한 확장.
  • 루트킷을 통한 공격으로 권한상승 공격 가능.
  • OS보안패치로 예방가능.

 

4. 웹 애플리케이션 보안

크로스 사이트 스크립팅 (XSS)

  • 웹 애플리케이션 입력값에 스크립트를 입력하여 예상치 못한 동작을 유도.
  • 대안: 입력값에 대한 검증

 

SQL 인젝션

  • 입력값을 사용해서 DB의 비인가 접근권한을 획득
  • 동적 웹 애플리케이션: 사용자의 정보에 따라 컨텐츠가 달라지는 것. (DB 활용)
DB기반 웹사이트 구조
  • SQL 인젝션 공격: 입력값에 작은 따움표(')와 세미콜론(;)을 통한 SQL코드를 직접 실행
  • SQL 인젝션 방어
    • 입력값 검사: (') 제거 만으로도 효과있음
    • 계정권한 제한: 읽기(select)만 가능하게
    • 저장 프로시저 사용: 관리자만 변경 가능한 저장 프로시저를 통한 인자 전달

 

5. 탐색공격

IP조사

  • 자동화 툴을 통해 일정 범위의 주소들로 ping을 시도
  • 응답이 있을 경우 추가 분석이 진행 됨
  • ping 기능 비활성화가 강조 됨

 

포트스캔

  • IP조사 이후 포트스캔 SW를 사용해서 어떤 서비스가 운영 중 인지 판단

 

취약점 스캔

  • 취약점 스캐너 툴을 통한 취약점을 발견
  • 예: 네서스, 세인트
  • OS 보안 업데이트로 보완이 가능함

 

쓰레기통 뒤지기

  • 쓰레기통에서 민감한 정보를 찾아서 사회공학 공격에 활용이 가능

 

6. 위장공격

IP 스푸핑 (IP Spoofing)

  • 공격자가 IP를 신뢰받는 시스템의 IP로 변경한 뒤 자원에 대한 접근권한을 얻는 것
  • 방화벽 필터링 규칙으로 방어가능
    • 내부IP는 외부에서 못 들어옴
    • 외부IP는 내부에서 못 나감
    • 사설IP는 라우터를 통과 못함

 

세션하이재킹

  • 공격자가 인가된 사용자와 시스템 간의 통신 일부분을 가로채서 인가된 사용자 처럼 가장된 세션을 사용 하는 것
  • 유형
    1. 서버와 클라이언트 간의 인증정보를 수집하여 클라이언트로 가장
    2. 가짜 서버로 클라이언트를 속이고, 중간자 역할로 클라이언트와 서버의 정상적인 연결을 설정한 뒤 클라이언트와 연결을 끊음
    3. 적절히 종료되지 못한 연결을 통해 사용자의 쿠키를 사용하여 웹어플리케이션의 사용자 데이터에 접근

 

728x90
반응형