본문 바로가기

정보보호/정보보호론(박승철)

정보보호론-(3) 스니핑(Sniffing) 공격, 악성 소프트웨어 공격

정보보호론-(3) 스니핑(Sniffing) 공격, 악성 소프트웨어 공격

  • 키 로깅(Key Logging)
  • 트래픽 스니핑(Traffic Sniffing)
  • 바이러스(Virus)
  • 웜(Worm)
  • 트로이 목마(Trojan Horse)

키 로깅(Key Logging)
- 패스워드 같은 공격 대상자의 민감한 키보드 입력 정보를 시스템이 암호화 같은 보안 기능을 적용하기 전에 몰래 기록한 다음 빼내는 공격
- 즉, 사용자가 패스워드(키 역할을 수행하는 데이터)를 입력할 때 그 정보를 기록한 뒤 탈취하는 수법
- 키 로거(Key Logger) : 키 로깅을 구현한 하드웨어 또는 소프트웨어
- 키 로깅 공격은 주로 트로이 목마 혹은 이메일 형태의 웜(Worm)형태로 이루어진다.

트래픽 스니핑(Traffic Sniffing)
- 네트워크를 통과하는 데이터 트래픽을 분석하고 기록하여 IP주소, 사용자ID, 패스워드 등 민감한 정보를 가로채는 공격
- 즉, 네트워크로 전송되는 패킷(Packet)을 훔쳐보는 행위이다.(Sniffing, 훔쳐보다)
- 와이어 샤크(Wire shark)와 같은 툴(tool)로 네트워크 트래픽을 볼 수 있다.
- 대응 : 네트워크 패킷 송신자와 수신자 간에 데이터 암/복호화 솔루션을 적용한다.

# 스위치(Switch)
- 네트워크 통신 장비로써 MAC 주소 기반으로 포트간 프레임을 교환하는 역할
- 스위치는 자신이 가지고 있는 MAC Address Table을 기반으로 수신한 프레임(frame)의 Destination MAC Address를 보고 포워딩(Forwarding)을 수행한다.
- 스위치의 4대 기능 : Learning, Flooding, Forwarding, Filtering

<그림 1: 스위치>
<그림 2: MAC Address Table>

# MAC Overflow 공격(스니핑 공격)
- 스위치를 통과하는 모든 트래픽을 스니핑 도구가 설치된 컴퓨터가 연결된 포트를 포함하여 모든 포트로 전달되게 함으로써 모든 트래픽에 대한 스니핑을 가능하게 함.
- <그림 1>의 스위치의 Mac address table을 쓰레기 값으로 꽉 채운다면 스위치가 새로운 프레임을 수신했을 때 스위치 알고리즘에 의해 스위치에 연결된 모든 포트로 플러딩(Flooding)한다. 이에따라, 공격자 호스트가 스니핑(Sniffing)할 수 있는 것
- 스위치의 MAC Address Table을 Overflow 상태로 만듦!

NIC의 모드를 promicuous mode로 변경

악성 소프트웨어 공격(Malware Attack)
- 바이러스(Virus)
- 웜(Worm)
- 트로이 목마(Trojan Horse)

바이러스(Virus)
- 임의의 프로그램에 악성코드를 삽입하여 숙주 프로그램의 동작으로 악성 코드가 실행되도록 유도하는 공격방법.
- 바이러스의 유형 : 실행 파일 바이러스, 매크로 바이러스, 부트 섹터 바이러스, 다중 바이러스

실행 파일 바이러스
- 실행 파일(ex. executable file)중에 자신의 접근 권한으로 수정이 가능한 실행 파일을 확보한 다음 자신을 실행 파일의 적당한 위치에 복사하여 감염시키는 바이러스
- 감염된 실행파일이 실행되면 악성 코드가 자동으로 실행됨
- 특징 : 실행 코드 형태로 작성되므로 특정 시스템(운영체제, 하드웨어)에 따라 specific하게 존재.

매크로 바이러스
- 워드, 엑셀, pdf와 같은 어플리케이션에 매크로 코드, 스크립트 코드로 작성된 악성 코드
- 특징 : 범용 소프트웨어를 통해 감염되는 방식이므로 다른 악성 소프트웨어(malware)보다 전파 속도가 빠른 것이 특징이다.

부트 섹터 바이러스
- 데이터 저장 장치의 부트 섹터를 감염시켜 시스템이 부팅 될 때 악성 코드가 실행되도록 하는 공격방식

# 바이러스의 은닉 전략
- 바이러스는 안티 바이러스 프로그램(Anti-Virus, 백신)에 의해 탐지되지 않도록 은닉 전략을 사용하여 자신의 정체를 발각되지 않도록 함
- 암호화 방식 : 숙주 프로그램에 심어진 악성 코드를 암호화 키(Encryption Key)로 암호화하여 내재시킴으로써 백신 프로그램이 바이러스 시그니쳐(Signature)를 통한 식별이 불가능하도록 하여 은닉하는 방법임. 암호화 키 + 암호문(Cipher text)형태의 악성코드 형태로 존재.
- 압축 : 감염된 파일의 크기를 감염되기 전의 파일 크기와 동일하게 만듦. 기존 프로그램과 감염된 프로그램간에 파일 크키 차이가 없게 만듦으로써 감염 여부를 판단하게 어렵게 함.
- 다형 바이러스 :  감염될 때마다 자신을 변형시킴 

# 바이러스 사인(Virus Signature)
- 바이러스임을 식별할 수 있는 특정 유형의 코드

바이러스 탐지, 퇴치기법

  • 바이러스 표식(Virus Signature) 기법
  • 휴리스틱(Heuristic) 기법
  • 행위 포착(Activity Trap) 기법

바이러스 표식 기법(Virus Signature)
- 기존까지 출현했던 모든 바이러스들의 일련 악성코드들을 집합시킨 바이러스 시그니처 테이블(Virus Signature Table)을 만들고 컴퓨터 시스템 저장 공간을 탐색하여 바이러스 시그니쳐 테이블 내용과 매칭되는 악성코드가 존재하는 지 여부를 파악하는 방법
- 장점 : 기존까지 알려진 바이러스 탐지와 퇴치에 매우 효과적이다.
- 단점 : 새로운 바이러스를 탐지할 수 없음

휴리스틱 기법(Heuristic)
- 바이러스의 일반적인 행위(코드 일부를 암호화, 코드 압축, 실행파일 크기 변경)를 바이러스가 감염된 프로그램이라고 판단하는 방법
- 위 행위들이 악성 코드는 아니지만 바이러스들의 일반적인 행위이므로 해당 행위를 하는 프로그램은 바이러스에 감염되었다고 판단하는 것
- 장점 : 새로운 유형의 바이러스 탐지에 효과적임
- 단점 : 탐지의 정확성을 높이기 어려움(바이러스에 감염되지 않은 프로그램을 감염된 프로그램이라고 오인하기 쉬움)

행위포착 기법(Activity Trap)
- 바이러스 실행 시 비정상 행위(실행 파일 코드 수정, 문서의 매크로 로직 수정)을 감염된 프로그램이라고 판단하는 것
- 휴리스틱 기법과 매우 유사.

웜(Worm)
- 숙주 프로그램의 필요성 없이 독립적으로 존재하고 실행되며 네트워크를 통해 스스로 다른 시스템으로 전파 될 수 있는 능력을 가진 악성 소프트웨어
- 전파수단 : 이메일, 원격 실행, 원격 파일 전송
- 컴퓨터 시스템에 웜(Worm) 악성 소프트웨어를 설치했으면 자신의 코드가 실행될 수 있도록 Buffer overflow, Input Format String, SQL Code Injection, PHP Code Injection등의 시스템 취약점을 이용한 공격을 수행함.
- 백도어(Backdoor) 설치, DDoS 공격에 사용되는 좀비 PC 프로그램 실행등에 사용됨

웜의 대응책
- 시스템 취약점의 해결책이 반영된 운영체제, 소프트웨어의 패치를 적용함

# 제로데이 공격(Zero Day Attack)
- 운영체제나 소프트웨어의 패치가 개발되기 전의 취약점을 이용하는 공격

# 백도어(Backdoor)
- 운영체제나 프로그램에 접근할 때 정상적인 인증 과정을 거치지 않는 통로이다.

트로이 목마(Trojan Horse)
- 유용한 프로그램을 가장한 악성 코드가 내재된 소프트웨어
- 주로 이메일의 첨부 파일, P2P 파일 공유 사이트를 통해 감염된다.
- 트로이 목마 멀웨어는 개인 정보 수집, DDoS공격, 키 로깅, 사용자 화면 모니터링, 백도어 설치와 같은 동작을 수행함.

Reference
1.

제3강+훔쳐보기_악성소프트웨어공격.pdf
0.73MB

2. https://www.youtube.com/watch?v=QAKVcxpfqfM