본문 바로가기

STUDY/CISSP

[CISSP] Domain8_Software Development Security (4/4)

4. Malware

 

 

 1. Malware

    - 바이러스 : 복제코드, 독자적 실행 불가, 복제가능, 실행파일 감염(Parastic)    / 백신, 안티바이러스   -> 무결성

    - : 메모리상 존재(자원소모), 독자적 실행 가능, 복제가능(자가), 전파          / N-IDS                     -> 무결성

     => 웜의 특징은 스스로 전파하며 네트워크 대역폭을 소모시키는 역할

    - 트로이목마 : 정상 프로그램에 숨겨진 악의적인 코드, 정보유출, Mimic        / H-IDS                     -> 기밀성

    - RAT(Remote Access Trojan) : 원격에서 중요정보 유출                      

    - 논리 폭탄 : 특정 조건에 부합되면 동작                                                / 소스코드 리뷰           -> 무결성

    - 백도어 : 접근통제를 우회하는 경로, 로그 없음                                      / 소스코드 리뷰, H-IDS   -> 기밀성

     => 백도어를 탐지하는 방법은 소스코드 리뷰와 H-IDS설치 정적 분석기법

     => Back door = worm hole, trap door, maintenance Hook

    - Rootkits : 보이지 않는 악성코드(invisible), (Process, File, Registry hiding), 커널영역

    - Bots : 원격제어(Remotely control), spam, phishing, DoS

 

 

바이러스

논리폭탄

원격트로이목마

트로이목마

스파이웨어

감염대상

파일부터

X

X

X

X

X

자기복제

O

O

X

X

X

X

형태

기생독립

독립

독립

독립

독립

독립

흐름

-

-

-

-> (양방향)

-> (단방향)

->

법적분쟁

-

-

-

-

X

O

 

    - 바이러스 증상

      > 파일 사이즈 증가

      > 갱신 타임스탬프의 변경

      > 저장장치의 잔여 공간이 단시간 내에 급격히 변경

      > 디스크 접근의 급작스런 증가

 

    - 바이러스 탐지

      > 바이러스 백신, 체크섬 등

 

    - 감염 후 작업

      > 네트워크 차단, 모든 데이터 백업, 재설치

 

 

 2. Mobile Code

    - Mobile Code

     > WWW 브라우저를 통하여 다운로드 되어 실행 되는 작업 어플리케이션

     > Active-X, Java Applet

     > 소스코드는 서버에 있지만, 실행은 클라이언트에서 수행

     > Mobile Code 위협대상 : 클라이언트

 

    - JAVA Applet

     > Sandbox : 컴퓨터나 네트워크에 받아들이기 의심스러운 코드의 격리 수단(실행 중 보장, 실시간 가상환경 제공)

 

    - Active-X

     > 사용자 인증코드(Authenticode)=codesign) -> 실행전 보장

     => 악성실행코드에 대한 모바일코드의 2가지 대응 방법 : Sandbox, Autenticode

 

 

 3. 공격 기술의 변화

    - 점진적으로 발전, 지식은 낮아짐, 피해 범위는 커짐 -> 도구, Tool 발달, Script Kiddies 증가

 

 

 4. 일반적인 공격 순서

     - 정보수집 > 스캐닝 > 목록화 > 취약점 공격 > 권한 획득 > 권한 상승 > 백도어 > DoS

 

 

 5. Sniffing 공격

     - 허브 환경

      > 취약한 호스트 점령 후 그 서버를 Promiscuous mode로 바꾸고 스니핑

      > 대책 : 암호화 통신, SSL, VPN, IPSEC

 

     - 스위치 환경

      > Spoofing

      > 대책 : 암호화 통신, SSL, VPN, IPSEC

 

 

 6. Denial of Service(DoS)

     - 시스템이나 네트워크 자원을 파괴하여 서비스를 중단시킴

     - Local Attack : 디스크 자원 고갈, 메모리 고갈, 프로세스 고갈

     - Remote Attack : Mail Bombing, TCP Syn Flooding, Smurf, Ping of death, UDP Storming, Tear drop

   

  6.1 TCP Syn Flooding

     - TCP 3-Way han shaking 문제점 이용, 지속적인 half-open상태로 다른 TCP 요청 거절

     - 대책 : 패킷 필터링, backlog 큐 늘림, connection timeout 줄임

 

  6.2 ICMP Smurf

     - 호스트의 IP주소 가장, Broadcast ICMP echo request, 네트워크에 존재하는 모든 호스트로 ICMP echo reply

     - 대책 : 라우터의 Direct Broadcast 중지, IP Broadcast의 ICMP Reply 금지

 

  6.3 UDP Storming

     - UDP 포트에 IP주소 속인 데이터그램을 보내 루프 형성

     - 대책 : 불필요한 UDP 제거

 

  6.4 IP Fragmentation attack(Ping of death)

     - 표준에 규정된 길이 이상으로 큰 IP패킷 전송하는 것

     - 대책 : 운영체계 스택의 취약성 패치

 

  6.5 IP Fragmentation attack(Teardrop, Bonk, Boink)

     - 서로 중첩되도록 헤더를 조작한 IP패킷 전송

     - 대책 : TCP/IP 스택의 구현 오류 패치

 

  6.6 IP Fragmentation attack(Tiny Fragmentation)

     - 최초의 Fragment를 아주작게 만들어서 전송

     - 대책 : 패치, 필터링 장비 패치

 

 

 7. Session Hijacking

     - 대책 : 시퀀스 번호의 복잡도를 높임, 스니핑 방지, 주기적 인증

 

 

 8. IP Spoofing 공격

     - 대책 : 시퀀스 번호의 추측이 어렵도록 복잡도 증가

 

 

 9. War Driving

     - 차량으로 이동하면서 무선랜 보안이 취약한 지점을 찾는 행위

     - 대책 : SSID의 브로드케스팅방지(Hidden SSID), 128비트 이상의 WEP, 암호화 적용, MAC 필터링

 

 

 10. 공격 툴

     - File Integrity Checkers : AIDE, LANGuard, Tripwire

     - Network sniffers : snort, ethereal, Dsniff, tcpdump, windump

     - Password Crackers : John the Ripper, L0pht Crack, wwwhack

     - Scaning : nmap, Firewalk, Fscan, LANGuard, superscan

     - Vulnerability Assessment : Nessus, SAINT, SATAN

     - DDoS : Trinoo, Stacheldraht

 

 

 11. Honepot

     - 예방통제, zero-day에 좋은 대책

 

 

 12. Port scan / Network Mapping

     - 이용가능한 취약한 서비스에 대해 TCP Wrapper를 사용한다

     - IDS를 사용

     - 불필요한 포트 제거

     - 배너 기능 제거

    => TCP Wrapper는 사용자 ID 또는 시스템 ID에 기반하여 접근을 제한하는 방화벽으로써 응용프로그램 접근통제

    

 

 13. 캡슐화(Encapsulation)

    - 데이터와 오퍼레이션을 묶는것으로, 데이터의 내부 구조를 숨김

 

 

 14. 정보은닉

    - 내부의 구현부분을 숨기고 인터페이스를 통해서만 접근

    - 클라이언트는 인터페이스만을 통하여 메시지 전달(send massge)  

 

 

 15. 인터페이스

    - 서비스를 정의하는 오퍼레이션의 집합

    - 유지보수가 용의(내부 구현 바꾸어도 영향 없음 -> 과정의 추상화, 절차의 추상화)

    - 작업의 분업화가 가능

   => 캡슐화는 정보은닉을 가능하게 한다.

 

 

 16. 다형성(Polymorphism)

    - 하나의 인터페이스에 많은 다른 구현을 숨기는 것 -> 같은 이름의 인터페이스 허용

    - 오버라이딩(Overriding) : 재정의, 계층적 오퍼레이션의 중첩

    - 기능의 확대, 개선 등 재정의해서 사용