진박사의 일상

[컴보] 7장 DoS 본문

프로그래밍/공부

[컴보] 7장 DoS

진박사. 2021. 11. 1. 19:45

DoS(Denial-Of-Service) Attack

- CPU나 메모리, 대역폭, 저장소 등의 컴퓨팅 자원을 고갈시켜 네트워크, 시스템 어플리케이션 등의 authorized use를 방해하는 행위

- 공격하는 자원 종류 : 네트워크 대역폭(패킷 집중), 시스템 자원(CPU), 어플리케이션 자원

botnet 같은 것을 이용

Classic DoS Attack

- Ping Flooding(Flooding ping command) : ping(ICMP request를 보내 ICMP response가 도착하는지 확인하는 명령어)를 대량으로 보내서 공격. 주로 spoofed address(위조된 IP)를 통해 보냄. 도착지에서 congestion(혼잡)이 발생해 일부 패킷이 누락될 수 있음.

--대응 : 외부 네트워크에 대해서는 ICMP response를 차단하는 정책

--Source Address Spoofing : 관리자 권한으로 IP를 바꿀 수 있음. IP를 바꿔서 보내므로 IP 추적은 의미가 없고 query flow를 추적하여 어떤 라우팅 경로를 따라 온 것인지를 분석해야 함.(내부 라우터는 쉽더라고 외부 라우터의 경우는 어려울 수 있음)

--backscatter traffic : 공격자가 victim으로 IP를 위조해 보내면 victim이 응답하는 response packet은 여러 주소로 흩어지게 됨. <- unused IP로 들어오는 response packet이 있는지를 monitoring하여 검사

 

SYN Spoofing(SYN Flooding) : common DoS attack

- server와 connection을 방해하는 공격. connection을 관리하는 table을 overflowing 시켜서 정상 접속이 안되도록

 

TCP Connection Handshake 를 이용

TCP SYN Flooding

(1) Spoofed된 IP로 SYN을 보냄

(2) SYN-ACK를 Spoofed된 IP로 전송 -> Spoofed된 Client는 SYN을 보낸적이 없으니 무시

(3) Server는 ACK을 못받았으니 받을 때까지 재전송(timeout 전까지)

(4) 이 과정에서 Server는 timeout 전까지 src(ip, port) + dst(ip, port) 정보를 저장하는 table이 있음. 공격자가 위조된 SYN을 많이 전송하여 이 table의 최대 크기를 넘어선다면 overflow되어 정상적으로 connect를 할 수 없음.

 

Flooding Attacks

- ICMP flood - ping flood는 ICMP echo request packet을 이용

- UDP flood - dst 주소+port만 적어서 보내면 공격 가능

- TCP SYN flood - 위에서 설명

 

Distributed Denial of Service (DDoS) Attacks

- 여러 system에서 공격 생성 -> bot-net과 같은걸 활용해 zombie PC로 공격

 

SIP(Session Initiation Protocol) Flood : 인터넷전화 프로토콜 이용

Invite message를 보낼 때 변조된 IP를 이용해 proxy 서버로 전달을 할 경우 특정 사용자에게 많은 Invite request가 들어가서 flooding됨.

 

Hypertext Transfer Protocol (HTTP) based Attacks

- HTTP Flood : HTTP requests를 동시에 많은 곳에서 접속하면 다른 사용자의 접속이 느려짐

- Slowloris : HTTP request를 분할해서 전송할 때 일부러 뒤쪽 분할을 전송하지 않으면 server는 뒤쪽 분할을 계속 기다려야 함.(그 동안 connection 유지) -> 너무 많은 connection이 유지되도록 해서 연결이 힘들게 함.

 

Reflection Attacks

- request->response 중에서 response가 request보다 많다면 reflection 공격이 효과적. victim에게 response가 집중되도록 하는 공격

ex) DNS Reflection Attacks

공격자가 피해자의 IP로 DNS server를 조회 -> request보다 response가 크기 때문에 victim은 큰 response로 인해 많ㅇ느 트래픽을 받게 함.

Amplification(증폭) Attack

적은량의 request에도 많은 response를 만들 수 있기 떄문에 증폭 공격이라고도 한다.

DNS Amplification Attacks - 작은 packet의 DNS request들을 위조된 IP로 보내면 피해자에게 큰 response가 도착.

 

DoS Attack Defense

(1) 예방 -> (2) (공격 발생시) 감지, 필터링 -> (3) Source traceback(공격 위치 추적), Identification -> (4) Reaction(조치)

- 예방이 쉽지 않다.

- 정상적인 대량의 트래픽 집중과 구별하기 어렵다. (특정 사이트의 갑작스러운 인기 상승, 특정 이벤트로 인한 접속률 증가 등)

 

DoS Attack Prevention(예방)

- 위조된 source address를 block. (source 쪽에서 예방)

- TCP connection을 공격당할 시 cookie를 이용, 사람 증명(Captcha - system resource 소모) 이용

- TCP connection table의 overflow 발생시 incomplete connection을 drop

- IP directed broadcast 기능 block

- 수상한 services & combinations block, Capcha 등을 활용

- security practice, server mirroring 등

 

Responding to DoS Attack

- Good Incident Response Plan - ISP의 support, traffic filtering, 공격에 대한 대응

- ex) DNS update(다른 IP를 Domain과 연결해서 공격받는 과거 IP의 대역폭을 줄이고 새로운 IP 대역폭을 늘려 피해를 감소), rate limiting, network monitors, IDS

- 어떤 종류의 공격인지 식별

- have ISP trace packet flow back to source : 어디서 공격을 하는지 추적 - 매우 어렵고 시간이 소모, 법적으로 조치를 취해야 하는 경우에 대한 계획도 필수적

- implement contingency plan : 필수적인 기능은 동작하도록 alternate backup server로 전환

- incident response plan을 업데이트해서 같은 공격 재발 방지

'프로그래밍 > 공부' 카테고리의 다른 글

[데베시] 8장 - SQL  (0) 2021.11.04
[컴보] 8장 IDS  (0) 2021.11.03
[데베시] 7강 - Relational Algebra  (0) 2021.10.25
[데베시] 6강  (0) 2021.10.18
[컴보] 6강 악성 소프트웨어  (0) 2021.10.17