* 서비스 거부(DoS) 공격
- 특정한 시스템이나 네트워크, 웹 서비스에 사용자가 접근하지 못하도록 방해하는 것
- 다량의 트래픽을 통해 특정대상에 과부하를 주거나, 악의적인 요청을 지속적으로 수행하여 시스템이나 네트워크 서비스를 비정상적으로 동작하게 함으로써 가용성을 저하시키는 공격
- TCP/IP 프로토콜의 취약성을 이용한 공격이 가장 많음
- 루트 권한 획득의 목적은 없음
- 데이터 파괴, 변조, 유출의 목적도 없음
- 공격 원인과 공격자 추적이 어려움
- 매우 다양한 공격방법을 이용함으로써, 대응책 마련이 어려움
- 다른 공격을 위한 사전공격으로 이용될 수 있음 (DDoS 등)
- 사용자의 실수로 발생할 수도 있음
- 즉시 효과성(즉효성)이 높음
- 공격의 결과는 피해시스템의 구현과 매우 밀접한 관련이 있으므로, 시스템에 따라 다른 결과를 발생시킬 수 있음
1. DoS 공격 원리
2. DoS 공격 기법
1) SYN Flooding 공격
공격 기법 |
- TCP의 3-Way Handshake 취약점을 이용한 공격
- 출발지 IP주소를 존재하지 않는 IP주소로 변조한 후 다양의 SYN패킷을 전송하여, 공격대상 시스템의 백 로그 큐를 가득 채움으로써, 시스템을 마비시키는 공격
|
탐지 방법 |
- 공격자가 전송한 패킷의 IP헤더와 TCP헤더 분석
- TCP 헤더 분석결과 Flag가 SYN이면 공격자가 전송하는 패킷 카운트를 증가 (SYN개수 파악)
- SYN/ACK이면 카운터를 감소 - 공격 인정시간내 SYN개수가 공격 인정횟수 이상이면 SYN Flooding으로 탐지
|
대응 방법 |
- 내부 IP주소를 출발지 IP주소로 변조하여 들어오는 트래픽 차단
- 비정상적인 IP주소를 출발지 IP주소로 변조하여 들어오는 트랙픽 차단
- 백로그 큐 크기를 늘림
- Syncookies 기능 활용 (SYN Flooding 공격을 방어할 때 사용하는 TCP초기 순서 값 번호)
- 시스템의 네트워크 설정 최적화
- 가상서버 커널 패치
- 방화벽과 라우터에서 차단기능 사용 (인터셉트 모드, 와치모드)
|
2) UDP Flooding 공격
공격 기법 |
- UDP프로토콜을 이용 서버에 가상 데이터를 연속적으로 전송함으로써 서버의 부하 및 네트워크 과부하를 발생시키는 공격
- UDP의 비연결성 및 비신뢰성 특성을 이용한 공격
|
탐지 방법 |
- 공격자가 전송한 패킷에서 UDP 헤더분석
- 대상의 포트 번호를 확인: 17, 135, 137번 포트
- 135번: MS RPC(Remote Procedure Call) 취약점을 악성 프로그램에서 악용 - 137번 포트: 이름 서비스 - 139번 포트: 목록화 등 - UDP포트 스캔이 아니면 UDP Flooding으로 간주
- 패킷의 횟수를 카운트하여 일정 시간 내에 공격 인정횟수 이상이면 UDP Flooding으로 간주
|
대응 방법 |
- 불필요한 UDP서비스 비활성화
- 방화벽과 라우터에서 불필요한 UDP서비스 차단
|
3) Teardrop 공격
공격 기법 |
- IP 패킷조각(Fragment)을 아주 작거나 겹치게 만들어 전송함으로써, 재조립하는데 과부하를 일으키는 공격
- Windows뿐만 아니라 리눅스 시스템에서도 공격 기술
- 공격을 받을 경우 네트워크 연결 끊김 또는 블루스크린 오류 화면을 출력하고 시스템을 정지
|
탐지 방법 |
- 패킷을 분석하여 단편화를 확인, 단편화 되어 있으면 카운트
- 패킷의 데이터 부분에 데이터가 존재하는지를 확인하여 데이터가 없으면 공격으로 간주
- 패킷 횟수를 카운트하여 일정 시간 내에 공격 인정횟수 이상이면 공격으로 탐지
|
대응 방법 |
- 시스템의 운영체제 관련 보안패치를 최신 비전으로 업데이트
- 변종이 많으므로 방화벽만으로는 근본적인 해결 불가능
- IP패킷의 재조립시 0보다 작은 패킷에 대한 처리 루틴 포함
|
4) Smurf 공격
공격 기법 |
- ICMP의 Ping을 이용한 공격
- 위조된 IP패킷(출발지 IP주소를 공격대상의 IP주소로 변조)과 브로드 캐스트 IP주소를 이용하여 네트워크나 시스템에 과부하를 일으키는 공격
- 네트워크의 라우터로 하여금 ICMP Echo를 서브넷 내의 모든 호스트에 전송하여, 조작된 공격대상의 IP주소로 응답이 폭주하도록 만듦
- 전체 대역폭을 점유하여 네트워크를 마비시킴
|
탐지 방법 |
- 패킷을 분석하여 ICMP_에코 리플레이 확인
- IP 스푸핑 여부 확인
- 패킷 횟수를 카운트하여 일정 시간 내에 공격 인정횟수 이상이면 공격으로 간주
|
대응 방법 |
- 직접 브로드캐스트 비활성화
- 중간 경유지로 쓰이는 것을 막기 위하여 라우터에서 다른 네트워크로부터 들어오는 IP브로드 캐스트 패킷을 차단하도록 설정 - ICMP메시지 차단, ICMP Echo Reply 패킷 차단
|
5) Ping of Death 공격
공격 기법 |
- ICMP Ping 패킷을 비정상적으로 크게 만들어 전송하면 공격 네트워크에 도달하는 동안 아주 작은 조각(Fragment)이 됨
- 공격대상 시스템은 분할된 패킷을 모두 처리해야 하므로, 정상적인 Ping의 경우보다 많은 부하가 걸리게 되어 시스템의 성능저하 및 마비를 일으키는 공격
|
탐지 방법 |
- 패킷을 분석하고 ICMP 패킷을 확인하여 Ping 여부와 크기 확인
- 패킷 횟수를 카운트하여 일정 시간 내에 공격 인정횟수 이상이면 공격으로 간주
|
대응 방법 |
- 반복적으로 들어오는 일정 수 이상의 ICMP 패킷을 차단하도록 설정
|
6) LAND 공격
공격 기법 |
- 출발지와 목적지의 IP주소를 동일하게 공격대상의 IP주소로 변조하여 전송
- 패킷을 받은 시스템은 응답하기 위하여 출발지 IP주소를 참조, 출발지 IP주소가 자신의 IP주소이기 때문에 자신에게 응답하게 되고, 이 과정을 반복하게 하여 과부하를 유발
- 동시 사용자 수를 점유하고, 루프 상태가 되도록 함으로써 시스템 과부하 유발
|
탐지 방법 |
- 패킷에 TCP헤더 분석
- IP패킷 중 출발지와 목적지 IP주소가 동일한 것이 존재하는지 확인
- 패킷 횟수를 카운트하여 일정 시간 내에 공격 인정횟수 이상이면 공격으로 탐지
|
대응 방법 |
- 라우터와 방화벽에서 내부 IP주소와 동일한 출발지 IP주소 차단
|
7) Newtear/Targa/Nestea공격
공격 기법 |
- 작업 중 저장되지 않은 데이터를 모두 삭제하는 공격
- 단편화 된 패킷을 재조립할 때 오프셋값을 비정상적으로 크게 함으로써 오버 플로우를 발생시키고 시스템을 마비시키는 공격 (오프셋값: 패킷조작이 단일 패킷에서 재조립 될 경우 어디에 위치하는지를 나타내는 값)
- 침입탐지시스템이나 방화벽 우회 가능
|
대응 방법 |
- 변종 공격이 많으므로 운영체제의 최신 버전을 패치
|
8) IP Fragmentation 공격
- IP 데이터그램이 네트워크를 통해 전송될 때, 데이터 크기가 최대 전송단위(MTU: Maximum Transmission Unit)보다 클 경우 작은 패킷으로 나누어 전송되고 목적지에서 재조립되는데, 원래의 상태로 재조립하기 위하여 각 패킷 조각에는 “IP Identification Number”, “Fragment ID”식별번호가 붙게 되고, 각 패킷 조각은 “Fragment Offset”이라는 원래 패킷이 분할되기 전의 위치 데이터를 가지고 있음
- 각 패킷 조각은 추가적인 패킷 조각이 있을 경우 MF(More Fragment) 플래그(Flag)를 1로 설정하여 보냄
- 플래그: 첫 번째는 예약비트 항상 0, 두 번째는 DF(Don’t Fragment)로 1이면 분할 못함, 세 번째 비트는 MF로 1이면 분할된 패킷이 더 있다는 의미
- 이러한 특성을 이용하여 비정상적인 패킷 조각을 만들어서 서비스 거부(DoS) 공격
- 단편화를 처리하지 않는 라우터나 침입탐지시스템을 피하기 위한 목적
9) Tiny Fragment 공격
- 최초의 패킷 조각을 아주 작게 만들어 침입탐지시스템이나 패킷 필터링 장비를 우회하는 공격
10) Fragment Overlap 공격
- 몇 개의 패킷조각을 생성하여 첫번째 조각에는 필터링 장비에서 허용하는 HTTP(80) 포트 번호를 지정
- 두 번째 조각은 오프셋을 아주 작게 조작하여 패킷 조각을 재조립할 때 첫 번째 조각을 덮어쓰게 함으로써 침입탐지시스템을 통과하는 방법
11) Bonk 공격
- 오류제어 로직 악용
- 첫 번째 패킷은 순서번호를 1번으로 보낸 후 두 번째, 세 번째 패킷은 모두 순서번호를 1로 조작해서 보냄
12) Boink 공격
- 오류제어 로직 악용
- 첫 번째 패킷의 순서번호를 1번으로 보낸 후 두 번째 101번, 세 번째 201번으로 보내다가 중간에 일정한 순서 번호를 보냄
13) Win Nuke(OOB, Out Od Band) 공격
- Nuking이라고도 함
- 윈도우 시스템을 작동 불능으로 만들기 위해 사용
- 윈도우의 죽음의 푸른 화면이라고 불리는 블루스크린이 출력되도록 하는 공격
- 139번 포트를 스캔하여 열려 있는지 확인하고 패킷을 전송하면 공격대상은 수많은 URG패킷을 인식하고, 모든 시스템의 세션을 닫은 뒤 재연결을 요구하게 되는데 이때 CPU에 과부하가 걸리게 됨
* 분산 서비스 거부(DDoS) 공격
- 공격대상 시스템의 성능저하 및 시스템을 마비시킬 목적으로 공격
- 공격자의 위치 및 근원지 파악이 불가능한 경우가 대부분
- 공격의 특성상 대부분이 자동화된 도구 사용
- 공격을 증폭시켜 주는 슬리이브(에이전트) 존재
- 다수의 슬리이브로 짧은 시간 내에 많은 공격이 가능하고 즉효성이 있음
- 공격자는 마스터, 슬레이브 시스템을 이용하여 좀비 컴퓨터로 명령을 내려 공격하기 때문에 추적이 어려움
- 공격대상에 많은 패킷이 전송될 수 있도록 서비스 거부(DoS) 공격용 프로그램(바이러스나 파일)을 일반사용자 컴퓨터에 설치한 다음(사용자 PC가 좀비 PC로 변함) 공격자의 명령이나 프로그램 자체 알고리즘에 의하여 공격대상 서버로 다량의 패킷을 전송함으로써, 성능저하 및 시스템 마비를 발생시키는 공격 기법
- 네트워크에서 다수의 시스템이 동시 다발적으로 하나의 공격대상 시스템을 공격함으로써 정상적인 서비스를 하지 못하도록 하는 공격
- 공격자 직접 공격하는 것이 아니라 미스터(Master)와 슬리이브(Slave)의 관계에서 슬리이브를 이용하는 공격
1. DDoS 공격 원리
2. DDoS 구성 요소
공격자(Attacker) |
- 공격을 주도하고 마스트에게 명령을 내리는 역할
|
마스터(Master) |
- 공격자로부터 직접 명령을 받는 시스템
- 여러 개의 에이전트 관리 - 마스터에서 수행하는 프로그램을 핸들러(Hander) 프로그램이라고 함
|
슬리이브(Slave) |
- 공격대상에게 직접 공격을 수행하는 시스템으로 에이전트 라고도 함
|
공격대상(Victim) |
- 공격을 당하는 시스템
|
3. Agent 유포 경로
- P2P(정상 소프트웨어에 악성 코드 삽입), 웜/바이러스, 이메일, 게시판 등
4. DDoS 공격 기법
1) Trinoo
공격자가 하나 혹인 그 이상의 마스터에 접속하여 여러 에이젠트에게 특정시스템을 일시에 공격하도록 명령을 내리면 공격대상 시스템에 다량의 UDP패킷을 전송 (UDP패킷(UDP Flood공격)
2) TFN(Tribe Flood Network)
- Trinoo의 발전형
- UDP Flood, TCP SYN Flood, ICMP Echo, Smurf 공격 등 다양한 기능 포함
- 공격자가 클라이언트(혹은 마스터) 프로그램을 이용하여 공격 명령을 TFN서버(혹은 데몬)로 전송함으로써 이루어짐
- 데몬 설치 시 자신의 프로세스 이름을 변경함으로써 프로세스 모니터링을 회피
- 데몬(daemon): 서비스의 요청에 대해 응답하기 위해 오랫동안 실행 중인 백그라운드(background) 프로세스
- 지정된 TCP 포트에 백도어(Back Door)를 실행시킬 수 있음
- UDP패킷 헤더가 실제 UDP패킷보다 3바이트 더 큼
- TCP패킷의 길이는 항상 0 (정상적인 패킷이라면 0이 될 수 없음)
3) TFN2K
- TFN의 발전형
- Targa를 제작한 Mixter에 의하여 개발
- Targa가 기본적으로 제공하는 서비스거부(DoS) 공격 외에 5개의 공격이 추가됨
- Change IP Antispoof-Level, Change Packet Size, Binf Root-Sell, UDP Flood, TCP/SYN Flood, ICMP/Ping Flood, ICMP/Smurf Flood, MIX Flood, Taga3 Flood 등이 있음
- 모든 명령은 CAST-256 알고리즘 암호화 (대칭키 암호알고리즘)
- 분산모드로 작동하여 서버 모듈, 클라이언트 모듈로 구분
- 클라이언트 모듈은 서버 모듈을 제어하는 모듈로서, 서버에게 어떤 공격을 누구에게 할 것인지를 지시
- 지정된 TCP 포트에 백 도어 실행 가능
- TCP패킷 헤더의 길이는 항상 0
4) Stacheldraht
- TFN이나 TFN2K처럼 ICMP Flood, SYN Flood, UDP Flood와 Smurf 등의 공격을 이용함으로써 DDoS공격을 할 수 있는 기능을 가짐
- TFN도구에 공격자, 마스터, 에이전트 간 통신에 암호화 기능만 추가된 도구
5. 대응방법
입력소스 필터링 기법 |
- SYN패킷을 이용한 공격의 경우 출발지 IP주소가 변조된 것이기 때문에 공격자를 알아내는 것은 어려움
- 네트워크에서 패킷의 목적지 IP주소만을 이용하여 전송하기 때문에 공격 근원지를 검증하는 유일한 방법
|
적절한 라우터 설정 및 블랙홀 널(NULL)처리 |
- IPv4에서는 IP 스푸핑의 방어 방법이 없음 (완전히 해결책이 없음)
- 네트워크 트래픽 관리를 철저히 하여 공격 가능성을 감소시켜야 함
- 블랙홀과 거의 비슷한 특징을 가지는 라우팅을 말하며, 패킷을 받으면 지정된 경로로 보내는 것이 아니라 그대로 소멸시키는 라우팅을 의미
|
위장한 IP주소 필터링 |
- 자신의 네트워크에서 출발지 IP주소가 변조되어 전송되는 패킷 차단
|
라우터의 Ingress 필터링 기능 적용 |
- 지정된 IP주소로부터 들어오는 패킷만 라우터를 통과하도록 필터링
- Ingress: 외부로부터 들어오는 패킷
|
방화벽, 침입 탐지시스템 활용 |
- 방화벽과 침입 탐지시스템을 설치.운영하고, 안정적인 네트워크 설계
- 시스템 소프트웨어 최신버전 패치
|
전용 솔루션 도입 |
- DoS, DDoS 공격 방지 전용 솔루션 도입
|
6. DNS 싱크홀
- 악성 봇에 감염된 PC를 공격자가 조정하지 못하도록 악성 봇과 공격자의 명령/제어 서버 간 연결을 차단하는 서비스
1) DNS 싱크홀 동작원리
* 분산 반사 서비스 거부(DRDoS: Distributed Reflection Dos) 공격
- 공격대상에게 공격 트래픽을 전송 시 라우터나 웹서버와 같은 제삼자(Third Party)를 이용함으로써 출발지가 어디인지 알지 못하게 함
- 공격에 사용되는 제삼자를 반사자라고 함
- 유입되는 패킷에 응답하는 모든 장비는 잠재적인 반사자가 될 수 있음
- 슬레이브 시스템에서 악의적인 SYN패킷을 정상적인 TCP 서버인 반사자에 전송함으로써 반사되는 SYN/ACK 패킷을 공격대상으로 집중시키기 때문에 기존 DDoS 공격보다 더 많은 부하 유발
- BGP(Border Gateway Protocol) 취약성, 3 Way Handshake 취약점 이용
- BGP 취약성: Peer사이의 BGP통신에서 사용하는 메시지에 대해 무결성, Peer 간의 상호 인증 등을 지원하는 강력한 내부 메커니즘을 가지고 있지 않음
- 공격자의 IP주소를 스푸핑 하여 전송하기 때문에 대규모의 네트워크가 불필요
- 공격대상은 클라이언트 접속지 별로 서비스 포트를 제한하거나, 해당 포트의 서비스를 중단시켜 다른 서비스를 계속 유지하는 것이 최상의 방법
- 분산서비스거부(DDoS) 공격과 비교할 때, 제삼자(Third Party)를 이용함으로써, 더 많이 분산되며 트래픽 증가
- 봇 감염 불필요, 경유지 서버목록 활용
1. DRDoS 공격 방법
2. 봇넷(Botnet, 소프트웨어 로봇)을 이용한 공격
- 악성 소프트웨어인 봇에 감염된 다수의 컴퓨터들이 네트워크로 연결되어 있는 형태
- 봇들을 자유자재로 통제하는 권한을 가진 봇 마스터에 의해 원격 조정됨
- 웜/바이러스, 백도어, 스파이웨어, 루트킷 등 다양한 악성 코드의 특성을 복합적으로 지님
- 봇넷을 통해 DDoS, 애드웨어(자동 광고), 스파이웨어, 스팸메일 발송, 정보 불법 수집 등 대부분의 사이버 공격 가능
3. HULK(HTTP Unbearable Load King) DoS
- 웹서버의 가용자원을 모두 사용함으로써 정상적인 서비스가 불가능하도록 유도하는 GET Flooding공격
- 동일한 URL를 반복적으로 요청하는 공격
- 공격대상 웹사이트 주소(URL)를 지속적으로 변경하는 DDoS공격 차단 정책 우회
- URL에 임의의 파라미터를 포함하여 특정 URL에 대한 임계치 기반의 DDoS공격 차단을 우회하기 위한 공격기법
1) HULK 공격방법
2) HULK 대응 방법
접속 임계치 설정을 통한 차단 |
- 특정 출발지 IP주소에서 동시접속 수에 대한 절대값을 설정하여 하나의 IP주소에서 다량의 연결을 시도하는 공격 차단
- 유닉스나 리눅스 계열의 운영체제를 운영한다면 운영체제의 방화벽 설정 도구인 iptables를 이용하여 차단
|
HTTP Request의 HOST 필드 값에 대한 임계치 설정을 통한 차단 |
- URL이 아닌 HTTP Request에 포함된 HOST 필드 값을 카운트하여 임계치 이상인 경우 차단
|
* APT(Advanced Persistent Threat) 공격
- 2006년 미국 공군사령부에서 최초로 사용한 데서 비롯됨
- 특정 기업 또는 기관을 목표로 한 정기적이고 정교한 공격
- NIST(National Institute of Standard and Technology)는 APT공격을 다음과 같이 정의
1. APT 공격 단계
1) 1단계: 목표설정
- 공격자는 우선 공격대상인 표적을 정함
- 성공적인 공격 수행을 위하여 표적을 분석하고, 실효적인 공격방법에 대하여 연구
- 공격대상은 정치적인 목적으로 설정될 수도 있고, 경제적인 목적으로 설정될 수도 있음
2) 2단계: 정보수집
- 공격대상인 표적을 정하면 침입에 필요한 자료나 공격기법을 탐색
침입에 필요한 자료는 공격대상의 위치, 연혁, 인적 조직, 서버 위치, 보안 용역을 담당하는 업체 등의 기업에 관한 자료부터 임직원의 성향 및 기호, 사회적 관계 등의 구성원에 관한 자료까지 망라- , 이 과정에서 취약점이나 공격 포인트를 찾고 공격기법을 선택
3) 3단계: 공격침투
- 공격대상의 임직원으로 하여금 악성 코드를 내부에 침투시키는 등의 사회공학적 방법을 활용
- (예시 1) 악성 링크나 악성 코드를 삽입하여 동창회 메일 또는 회사 리크루팅 메일 등으로 속여 전송하는 방법 등이 많이 쓰임(스피어 피싱: 특징 내부직원을 표적으로 집중적으로 공격하는 방법)
- (예시 2) 악성 코드는 아직 발견되지 않은 보안 취약점을 이용하거나(제로데이 공격), 기존 APT공격방어를 위한 보안솔루션에서 탐지하지 못한 것을 사용
4) 4단계: 세력확산
- 일단 공격 침투에 성공하게 되면 백 도어(Back Door)를 통하여 원격통제
- 공격자는 은닉상태로 정보수집과 모니터링 활동을 통하여 수집 가능한 모든 정보를 수집하면서 방어 시스템을 회피하거나 관리자 권한의 아이디나 패스워드를 획득
- 수집된 정보를 통하여 권한 상승에 성공하면, 중요 데이터에 접근할 수 있는 방법이나 정보를 유출할 수 있는 구체적인 방법, 방어시스템을 회피할 수 있는 방법, 공격이 탐지된 경우에 대응할 수 있는 방법 등을 연구
5) 5단계: 정보유출
- 4단계까지 성공하게 되면(공격자가 중요 데이터 접근에 성공하면) 데이터를 파괴하거나 피해자의 추적을 회피하면서 공격자의 근거지로 중요 데이터를 유출시킴
2. APT 공격 방법
3. APT 공격과 일반 공격의 차이점
- APT공격이 일반적인 공격과 가장 다른 점은 한 조직을 확실한 표적으로 삼는다는 것
- 일반적인 공격에서는 경계방어 및 표준 보안 제어기능을 사용하여 조직을 보호할 수 있지만, 이러한 APT공격을 차단하기에는 충분하지 않음
- 공격자는 새로운 취약점이 발견될 때까지 기다린 후 약점을 이용하거나, 작은 취약점을 여러 개 조합하여 막대한 손해를 끼치는 대규모공격으로 만들 수 있음
4. APT 대응 방법
- 공격자가 원하는 정보에 접근하기까지 소요시간을 지연시킴
- 공격자가 원하는 정보에 접근하기 이전 단계에서 탐지/차단
- 알려지지 않은 악성코드(Zero Day Attack) 탐지
- 모든 네트워크 트래픽 저장 및 모니터링
'전공수업 > 정보보안' 카테고리의 다른 글
[정보보안] 네트워크 보안 (3) - 스캐닝, 스니핑, 스푸핑, 세션 하이재킹 (0) | 2025.04.24 |
---|---|
[정보보안] 네트워크 보안 (2) - 제로데이, 피싱, 파밍, 스미싱, 랜섬웨어, 사회공학적 공격 (0) | 2025.04.24 |
[정보보안] 네트워크의 이해 (0) | 2025.04.21 |
[정보보안] 서버 보안 (0) | 2025.04.20 |
[정보보안] 클라이언트 보안 (0) | 2025.04.20 |
댓글