네트워크 기반 공격
서비스 거부공격(DoS)
- 시스템에 과도한 부하를 일으켜 정보 시스템의 사용을 방해하는 공격 방식
- 서비스 거부(Dos) 공격은 공격자가 단일 컴퓨터를 통해 공격하는 경우이고, 분산 서비스 거부(DDos)는 공격자가 물리적으로 분산된 다수의 컴퓨터(좀비 PC)를 이용해 공격하는 형태이다.
TCP SYN Flooding Attack
- TCP 연결 설정 과정 중 3-way handshaking 과정에서 Half-Open 연결
- 가능하다는 취약점을 이용한 공격
- 공격자가 다수의 syn 신호를 공격대상자에게 전송하면 공격대상자는 syn/ack 신호를 공격자에게 전달하게 되는데 이때 공격자가 ack 신호를 반송하지 않으면 공격대상자의 시스템은 일정 시간동안 신호를 기다리게 된다.
- 공격자가 매우 많은 패킷을 공격대상 시스템에 보내고 이를 통해 서버의 TCP 연결테이블은 꽉 차게 된다. 따라서 이후에 들어오는 연결 요청은 거부된다.
Half-Open 연결
- 어떤 문제가 발생하여 한 장비가 상대방에게 알리지 않은 채 연결을 닫거나 중지할 때 반개방 연결 상태가 발생
보안대책
- 방화벽 또는 DDos 대응장비를 이용해 동일 IP의 연결(SYN) 요청에 대한 임계치를 설정하여 과도한 연결요청을 차단한다.(iptables를 이용한 설정)
- Syn_Cookie 사용
SMURF Attack
- 광범위한 효과로 Dos 공격 중 가장 피해가 크며 많이 사용되는 공격 형태로 IP 위장과 ICMP의 특징을 이용한 공격
- 공격자가 출발지 IP 주소를 공격 대상 서버의 IP 주소로 위장하여 브로드캐스트로 다수의 시스템에 ICMP를 전송한다.
- ICMP를 수신한 다수의 시스템은 ICMP Echo 패킷을 공격대상 서버로 전송하게 된다.
- 공격대상 서버는 다수의 ICMP Echo 패킷을 수신하게 되어 시스템 성능에 문제를 일으키게 된다.
보안대책
- 다른 네트워크로부터 자신의 네트워크로 들어오는 IP directed broadcast 패킷을 막도록 설정
Land Attack
- 패킷을 전송할 때 출발지 IP 주소와 목적지 IP 주소값을 똑같이 만들어 공격 대상에 보내는 것(조작된 IP 주소값은 공격 대상의 IP 주소)
보안대책
- 공격자가 보낸 패킷의 TCP를 분석하여 출발지와 목적지 IP가 동일한지 확인하여 필터링
Ping of Death
- ping을 이용해 ICMP 패킷을 정상 크기(65,535 bytes)보다 아주 크게 만드는 것
보안대책
Teardrop Attack
- IP가 정상적으로 패킷을 전송할 때 IP 단편화가 발생하게 된다. 수신자는 재조립을 통해 단편화된 데이터를 복구한다. 이 때 재조립 시 오프셋이란 값을 더하게 되어 있는데, 이 오프셋 값을 단편화 간에 중복되도록 고의적으로 수정하거나 정상적인 오프셋 값보다 더 큰 값을 더해 그 범위를 넘어서는 오버플로우를 일으키는 Dos 공격기법의 하나
보안대책
DDos 공격 유형
UDP/ICMP Traffic Flooding 공격
UDP/ICMP Flooding
: 공격자가 다량의 UDP/ICMP 패킷을 서버로 전송하여 서버가 보유한 네트워크 대역폭을 가득 채워 다른 정상적인 클라이언트의 접속을 원활하지 못하도록 유발시키는 공격
HTTP Traffic Flooding 공격
GET Flooding
: 공격할 시스템에 TCP 3-way handshaking 과정을 통해 정상적인 접속을 한 뒤, 특정 페이지에 HTTP의 GET Method를 통해 무한대로 실행하는 것.
Slow HTTP POST DoS
: HTTP POST 지시자를 이용해 서버로 전달할 대량의 데이터를 장시간에 걸쳐 분할 전송하면 서버는 POST 데이터가 모두 수신되지 않았다고 판단하여 연결을 장시간 유지하게 됨.(이러한 데이터를 전달하는 좀비 PC가 많은 경우 정상적인 클라이언트가 원활한 서비스 이용 불가능)
Slow HTTP Header DoS(Slowloris)
: 헤더부분을 비정상적으로 조작하여 웹서버가 헤더정보를 구분할 수 없도록 하면, 웹서버는 아직 HTTP 헤더정보가 모두 전달되지 않은 것으로 판단하여 연결을 장시간 유지하게 됨.
DRDoS
- DDos 공격보다 발전한 새로운 분산 서비스 거부 공격방법
- 형태
- TCP의 연결설정과정의 취약점을 이용, 위조된 주소의 syn 요청을 반사서버로 전달하여 syn+ack 응답이 공격대상으로 향하도록 하는 방법
- ICMP 프로토콜의 Echo Request와 Echo Reply를 이용, 위조된 주소의 Echo Request를 반사서버로 전달하여 Echo Reply가 공격대상으로 향하도록 하는 방법
- 위협요소(일반 DDoS와 차이점)
- 패킷이 전송되는 경로가 무수히 많음
- 반사 서버의 단계적 사용 및 확산
- 위조 SYN 패킷 근원지의 IP를 랜덤으로 생성하는 전통적인 분산 서비스 공격과 다르게 공격대상 IP를 근원지의 IP로 위조하여 전송하기 때문에 역추적하기 어려움
네트워크 스캐닝
- 사이버 공격을 위한 정보 수집은 풋프린팅, 스캐닝, 목록화 3단계를 거침
- 풋프린팅: 공격 대상의 IP 블록, DNS/Mail 서버 등의 정보를 수집하는 초기 과정
- 스캐닝: 핑, 포트 스캔, OS 확인 등의 방법으로 세부적인 정보를 수집하는 과정
- 목록화: 실용적인 정보를 수집하여 취약점 분석 및 공격방법 결정을 위한 지표를 작성하는 과정
포트 스캔 공격 종류
Sweep
: 시스템의 작동 유무를 판단할 수 있는 기법
Open 스캔
: 스캔하는 포트에 해당되는 서비스의 활성화 여부를 조사할 수 있는 방법
TCP Scan
TCP Full Open 스캔(TCP Connect 스캔)
: 포트가 열려있는 경우 대상시스템으로부터 SYN/ACK 패킷을 수신하면 그에 대한 ACK 패킷을 전송함으로써 연결을 완료하는 방식, 포트가 닫혀있는 경우엔 대상 시스템이 연결 요청을 받아들이지 못하므로 RST/ACK 패킷을 전송한다.
TCP Half Open 스캔(TCP SYN 스캔)
: 로그를 남기지 않아 추적이 불가능한 기법, 세션을 완전히 연결하지 않고, TCP Half Connection만으로 포트의 활성화 여부를 판단
- 공격자가 SYN 패킷을 공격대상 서버에 보냄
- 포트가 열려있는 서버로부터 SYN/ACK 패킷을 받으면 공격자는 즉시 RST 패킷을 보내 연결을 끊음으로써 연결 시도 세션에 대한 로그를 남기지 않도록 함
- 공격자의 SYN 세그먼트 전송기록은 남게 되므로 스캐닝 공격사실을 완전히 숨길 수는 없음
UDP Scan
: ICMP Port Unreachable 에러 메시지를 통해 포트의 활성화 유무를 확인할 수 있음
스텔스 스캔
: TCP 헤더를 조작하여 특수한 패킷을 만든 후 스캔 대상 시스템에 보내 그 응답으로 포트 활성화 여부를 알아내는 기법
FIN, NULL, XMAS 스캔
TCP FIN 스캔
: TCP 헤더 내에 FIN 프래그를 설정하여 공격대상 시스템으로 메시지를 전송하면 포트가 열려 있을 경우에는 응답이 없고, 닫혀있는 경우에만 RST 패킷이 되돌아오게 된다.
- NULL과 XMAS 패킷을 전송해도 같은 결과를 얻을 수 있다. NULL패킷은 TCP 헤더 내에 플래그 값을 설정하지 않고 전송, XMAS 패킷은 TCP 헤더 내에 ACK, FIN, RST, SYN, URG 플래그를 모두 설정하여 전송
TCP ACK 스캔
: 포트의 오픈 여부가 아닌 방화벽의 룰셋(필터링 정책)을 테스트하기 위한 스캔
Decoy 스캔
: 스캔을 당하는 대상 호스트에서 스캐너 주소를 식별하기 어렵도록 실제 스캐너 주소 외에 다양한 위조된 주소로 스캔하는 방식
포트 스캔 공격 대응
- 불필요한 패킷 차단하도록 방화벽 설정
- 사용하지 않는 포트는 열어놓지 않음
- 침입탐지시스템(IDS)을 사용해 포트 스캔 탐지
스니핑
스니핑 종류
- 허브 환경에서의 스니핑
- 허브는 기몬적으로 들어온 패킷에 대해 패킷이 들어온 포트를 제외한 모든 포트에 패킷을 보내는 장비
- 따라서 허브를 사용하고 있다면 원하든 원치 않든 계속하여 다른 사람의 패킷을 받아보고 있는 것, OS 커널 등의 수준에서 MAC 주소를 보고 자신이 아닌 다른 이들의 패킷은 버리기 때문에 쉽게 느낄 수는 없음
- 시스템의 NIC를 promiscuous 모드로 동작하게 하면 다른 이들의 패킷을 버리지 않고 받아볼 수 있다.
- promiscuous 모드: ifconfig eth0 promisc 명령으로 eth0 장치를 프러미스큐어스 모드로 바꿀 수 있음
- 스위치 환경에서의 스니핑
스위치 재밍
: 스위치의 MAC Address Table 버퍼를 오버플로우시켜 스위치가 허브처럼 동작하게 강제적으로 만드는 기법
- 스위치는 Fail Open 정책 즉 실패 시에 모두 허용해주는 정책을 따르는 장비이므로 문제가 발생하면 허브처럼 모든 노드에게 패킷을 전송
ARP 스푸핑
: 공격자가 특정 호스트의 MAC 주소를 자신의 MAC 주소로 위조한 ARP Reply 패킷을 만들어 공격대상에게 지속적으로 전송하면 공격대상의 ARP Cache에 특정 호스트의 MAC 정보가 공격자의 MAC 정보로 변경이 된다. 이를 통해 공격 대상에서 특정 호스트로 나가는 패킷을 공격자가 스니핑하는 기법
ARP 리다이렉트
: 공격자가 자신이 라우터인 것처럼 MAC 주소를 위조하여 ARP Reply 패킷을 해당 네트워크에 브로드캐스트한다. 이를 통해 해당 로컬 네트워크의 모든 호스트와 라우터 사이의 트래픽을 스니핑
스니핑 공격의 보안대책
- 스니퍼를 탐지
- 스니핑을 수행하더라도 해당 내용이 노출되지 않도록 통신 내용을 암호화하는 방법(근본적인 대책)
스푸핑
- 스푸핑 공격은 공격자가 자신을 공격 대상제에게 노출시키지 않고 제3의 사용자인 것처럼 MAC 주소, IP 주소 등을 속이는 작업
ARP 스푸핑
- 호스트의 주소 매칭 테이블에 위조된 MAC 주소가 설정되도록 하는 공격
- 사용자 시스템이 ARP Reply 메시지를 수신할 때마다 자신의 ARP Request 메시지 송신 여부와 관계없이 그리고 ARP Reply 메시지의 송신자에 대한 인증 과정 없이 자신의 ARP 테이블을 갱신하는 ARP 프로토콜의 취약점을 이용
- 보안: ARP 캐시 테이블은 ARP reply 메시지와 관계없이 관리자가 직접 정적(static)으로 작성하기
IP 스푸핑
- 공격자가 자신의 IP 주소가 아닌 신뢰관계를 가진 시스템의 주소로 위장하여 공격 대상 서버로부터 정보를 가로채는 방식(케빈 미트닉이라는 해커가 최초로 시도)
- 대응: 트러스트된 시스템의 MAC 주소를 static으로 지정해두기
세션 하이재킹
- 다른 사용자의 세션을 가로채서 별도의 인증 작업 없이 가로챈 세션으로 통신을 계속하는 행위
- OTP, 챌린지/응답 기법 등을 ㅏ용하는 사용자 인증을 무력화시키는 매우 위험한 공격