DoS(Denial of Service)란?
시스템을 악의적으로 공격해 해당 시스템의 리소스를 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격으로 공격자는 외부 네트워크에서 공격을 수행한다.
DoS 공격 예시
1. TCP SYN Flooding
- SYN 요청을 지속적으로 보내는 네트워크 계층 공격
- 반개방(half-open) 공격이라고 불리며, TCP의 3-Way HandShake를 이용한 공격
- 네트워크에서 서비스를 제공하는 시스템은 동시 사용자 수가 한정되어 해당 공격을 통해 서버 자원을 소모시킴

2. TCP Connection Flooding
- TCP의 세션을 이용한 공격
- 한 개의 IP가 다양한 포트로 SYN 패킷을 전송
- 클라이언트는 서버와 3-Way HandShake를 통해 세션을 연결하게 됨
- 세션 연결이 가득 차면 더 이상 연결 불가능

TCP SYN Flooding과 TCP Connection Flooding의 차이점)
TCP SYN Flooding의 경우 여러 개의 IP가 계속 SYN 요청을 보내고, TCP Connection Flooding은 한 개의 IP에서 여러 포트로 SYN 패킷을 전송한다. 즉, 공격자가 IP를 하나를 사용 하면 TCP Connection, 여러 개을 사용하면 TCP SYN.
3. DNS Query Flooding
- DNS Query 요청 패킷을 대량으로 서버에 전송하여 DNS의 정상적인 서비스 방해
- 대량의 Query를 발생시켜 서버가 더 이상 DNS 응답을 하지 못하도록 함

4. Slow HTTP Headers Dos(Slowloris)
- HTTP Header 정보를 비정상적으로 조작하여 웹 서버가 온전한 Header 정보가 올 때까지 기다리도록 함
- HTTP 에선 헤더의 끝을 /r/n 문자로 구분하게 되는 데 공격자는 마지막 개행 문자를 보내지 않음
- 일명 Slowloris 공격이라고 부름
- 예시 명령어 : Slowhttptest -c 4000 -u http://<타겟주소>


정상 패킷의 경우 끝 부분이 0d0a0d0a로 끝나고, 공격 패킷의 경우 끝 부분이 0d0a로 끝난다. 즉, 개행문자가 두 번 적용되어야 정상적이지만, Slowloris 공격을 진행하면 마지막 개행 문자를 보내지 않기 때문에 HTTP 헤더의 끝 부분에서 개행문자의 개수를 보고 정상 패킷인지 아닌지 파악할 수 있다.
DDoS(Distributed DoS)란?
분산 서비스 거부 공격은 여러 대의 공격자를 분산적으로 배치해 동시에 DoS 공격을 실시하는 것이다. 악성 코드를 이용하여 일반 사용자의 PC를 감염시켜 좀비 PC로 만든 다음 C&C(명령 제어) 서버의 제어를 통해 특정 시간에 동시에 수행한다. DoS와 마찬가지로 공격자는 외부 네트워크에서 공격을 수행한다.

간단하게 사용자 PC를 감염시켜 좀비 PC로 만듦 -> 공격자 PC가 아닌 좀비 PC가 공격을 수행
'K-Shield.Jr' 카테고리의 다른 글
| [취약점분석] Integer Overflow, Uninitialized(시스템 해킹 실습 2일차) (1) | 2024.07.18 |
|---|---|
| [공통과정] 웹 해킹 (1) | 2024.07.15 |
| [공통과정] 웹 해킹/HTTP의 이해 (2) | 2024.07.14 |
| [공통과정] 네트워크 해킹/스니핑(Sniffing)(feat. Spoofing) (1) | 2024.07.14 |
| [공통과정] 네트워크 해킹/스캐닝(Scanning) (1) | 2024.07.14 |
