일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 흰날개해오라기
- 딱다구리과
- 한국의새
- 비둘기목
- 계수정렬
- 참새목
- structured_array
- 생일문제
- Python
- 딥러닝공부
- IBK기업은행 인턴
- 참새과
- 맑은소리 스피치학원
- ADsP
- SimpleCraft
- django
- 백로과
- 딥러닝 공부
- 가마우지과
- AI전략게임
- 비둘기과
- Birthday paradox
- keras
- 오리과
- 솔딱새과
- 직박구리과
- AI역량평가
- python3
- 한국의 새
- 기러기목
- Today
- Total
진박사의 일상
[컴보] 7장 DoS 본문
DoS(Denial-Of-Service) Attack
- CPU나 메모리, 대역폭, 저장소 등의 컴퓨팅 자원을 고갈시켜 네트워크, 시스템 어플리케이션 등의 authorized use를 방해하는 행위
- 공격하는 자원 종류 : 네트워크 대역폭(패킷 집중), 시스템 자원(CPU), 어플리케이션 자원
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로 인해 많ㅇ느 트래픽을 받게 함.
적은량의 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 |