의미없는 블로그
Part 02. 네트워크 - DoS, DDoS, DRDos, 무선랜, VPN, IPsec, SSL/TLS, 라우터 본문
Part 02. 네트워크 - DoS, DDoS, DRDos, 무선랜, VPN, IPsec, SSL/TLS, 라우터
SaltLee 2019. 5. 10. 16:02<Dos>
Ping of Death 공격
ICMP 패킷(Ping)을 아주 크게 만들어 보내면 IP 단편화가 발생한다고 함
이 대량의 IP fragment 가 타겟에 보내짐
타겟은 fragment 재조합 하다가 부하 발생하고 오버플로우 발생해서 문제
대응방안
- 보통의 ICMP 패킷은 분할되지 않으므로 분할된 ICMP 패킷은 의심
- 대부분의 시스템은 반복적인 ICMP 패킷 무시하도록 되어 있음, 안되어 있다면 시스템 패치
Land Attack
Land 는 나쁜 상태에 빠지게 하다 라는 의미
출발지와 목적지가 같은 IP 만들어서 수신자가 자신에게 응답 보내어 문제 발생하게 함
대응방안
- 방화벽에서 출발지와 목적지 같으면 drop 시킨다
Smurf Attack
출발지 IP를 타켓 IP로, 목적지 IP는 증폭 네트워크의 Broadcast IP
공격자가 출발지 IP 타겟 IP로 해서 증폭 네트워크로 ICMP Echo Request 를 브로드캐스트 하면
타켓 IP로 대량의 ICMP Echo Reply 응답되어 DoS 빠진다
대응방안
- ICMP Echo Reply 대량 발생하면 IPS를 통해 차단시킨다
- 증폭 네트워크로 사용되는 거을 막기 위해 Directed Broadcast 패킷을 허용하지 않도록 라우터 설정
#no ip directed-broadcast
- 브로드캐스트 주소로 전송된 ICMP Echo Request 메시지에 대해 응답하지 않도록 시스템 설정
Teardrop Attack
공격자가 IP fragment offset 값을 중첩되도록 조작하여 수신측에서 이를 재조합할 때 오류 발생
유사공격 : Bonk, Boink
대응방안 : OS 패치
IP Fragment 활용한 침입차단시스템 우회
Tiny Fragment : IP 헤더보다 작은 단편 만들어서 우회
Fragment Overlap : offset 조작해서 포트 필드를 중첩시켜 재조합하면 허용하지 않는 서비스 접근 가능
<DDoS>
UDP Flooding 공격
대량의 UDP 패킷 전송하여 타겟 네트워크 서비스 불가 상태로 만듬
짧은 시간동안 대량의 UDP 패킷(dns/53) 전송
소스 IP도 다양한 주소로 위조 (좀비 PC들이 보냄)
ICMP Flooding 공격
대량의 ICMP 패킷 전송하여 타겟 네트워크 서비스 불가 상태로 만듬
TCP SYN Flooding 공격
-> SYN
<- SYN + ACK
-> ACK 가 정상인데 얘를 안보냄
다수의 TCP 연결을 완료하지 않아 incomplete connection queue 를 꽉 차게 만들어
더이상 새로운 연결 요청 받지 못하게 하는 것
ACK 까지 와야 completed connection queue 로 이동하고 기존 정보가 삭제된다
짧은 시간동안 다수의 연결이 RST 까지 이어지지 않고
<- SYN, ACK 에서 끝난것들이 많다
대응방안
- SYN Cookie 설정한다 -> ACK 응답 받을때 까지 queue 에 연결요청정보 담지 않음
- First SYN Drop 설정한다 -> 첫번째 SYN 은 Drop 하여 재요청 패킷 오는지 확인 -> 정상이면 온다
- Backlog Queue 늘리기 -> 임시 방편
- SYN+ACK 에 대한 대기 시간을 줄이기 -> 임시 방편
HTTP GET Flooding 공격
동일한 대상에 다량의 GET 요청 발생
Hulk DoS 공격
다양한 대상에 다량의 GET 요청 발생
임계치 기반의 디도스 대응장비를 우회하기 위함
주소가 계속 변경되면 임계치 확인 안하나보다
같은 uri 에 파라미터만 변경해서 보내기도
Hash DoS 공격
웹서버는 파라미터 자료구조로 해시테이블 사용
파라미터를 대량으로 생성하여 한번에 POST 로 요청하면
다수의 해시 충돌 발생하여 DoS 발생
Slow HTTP Header DoS (Slowloris) 공격
원래 개행문자(0x0d0a) 다음에 빈 라인이 오면 요청 헤더가 끝난 것
공격자는 빈 라인을 전달하지 않고 불필요한 헤더를 계속 전송한다
웹 서버는 요청 헤더가 안끝난줄 알고 계속 연결을 수신하기 때문에 DoS 발생
의미없는 헤더 계속 전송
Slow HTTP POST DoS (RUDY) 공격
Content-Length 를 비정상적으로 크게 설정하고
소량의 데이터를 지속적으로 천천히 전송
웹서버는 Content-Length 필드 명시된 만큼 연결 상태 유지
POST 방식으로 데이터 전송
Slow HTTP Read DoS 공격
공격자는 HTTP 요청 보내고 Zero Window Packet 을 지속적으로 서버에 전달하여
서버가 요청에 대한 응답 메시지를 전송하지 못하고 연결 상태를 유지하게 한다
Zero Window Packet 은 수신 퍼버가 꽉 찼다고 알려서 서버를 잠시 대기시키는 기능
Slowloris / RUDY 대응방안
- 동시연결 임계치 설정해서 30개 넘어가면 drop 시키도록
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 30 -j DROP
- 웹서버에서 연결 타임아웃 설정
httpd.conf
Timeout 5 : 아무 데이터 송수신 없이 세션을 유지하는 시간
- 웹서버에서 읽기 타임아웃 설정
httpd.conf
RequestReadTimeout header = 5 body = 10 : 헤더가 5초 이내에, 바디가 10초 이내에 모두 수신되지 않으면
<DRDoS>
DNS 증폭 DRDoS : DNS 반사서버에 많은 양의 레코드 정보를 요구하는 질의 요청하여 대량의 트래픽 유발
NTP 증폭 DRDoS : NTP 반사서버에 최근 접속한 클라이언트 목록 요구하는 질의 요청하여 대량의 트래픽 유발
SNMP 증폭 DRDoS : SNMP agent 에 MIB 같은 정보 대량 요청하여
CHARGEN 증폭 DRDoS : CHARGEN 서버 접속 시 대량의 문자열 전송하여
대응방법
DNS 증폭 DRDoS 반사서버로 악용되지 않기 위해서
- 내부 사용자용 DNS 서버라면 내부 사용자 주소만 Recursive 쿼리 가능하도록 제한
- 서버 방화벽을 통해 특정 byte 이상 DNS 질의에 대한 응답 차단
NTP 증폭 DRDoS 반사서버로 악용되지 않기 위해서
- monlist 명령은 NTP 서버세 최근 접속한 클라이언트 정보 전송해주는 명령어
이 명령어를 비활성화 시킨다
<VPN>
PPTP : 2계층 프로토콜, Microsoft 개발, 하나의 터널에 하나의 연결만
L2F : 2계층 프로토콜, Cisco 개발, 하나의 터널에 여러개의 연결 지원
L2TP : 2계층 프로토콜, 위에 두개 결합
IPSec : 3계층 프로토콜, 네트워크 계층의 보안성을 제공해주는 표준화 프로토콜
<IPSec>
전송모드
- IP 헤더는 제외하고 페이로드만 보호
IP-H IPSec-H IP Payload IPSec-T 이렇게 된다
- IP 헤더가 드러나므로 출발지, 목적지가 노출되어 트래픽 분석에 취약
- 종단구간으로 다 보호할 때 사용
터널모드
- IP 패킷 전체를 보호
New IP-H IPSec-H IP-H IP-Payload IPSec-T 이렇게 된다
- 전체를 캡슐화 하니깐 전송구간 주소정보 담은 New 헤더 필요하다
- 원본 헤더가 보장되니깐 최초 출발지, 목적지에 대한 기밀성 보장
- New 헤더로 구간 저보는 알 수 있기 대문에 제한적 트래픽 흐름의 기밀성 보장이라고 말함
- Gateway 구간, 종단에서 Gateway 구간 보호
<IPSec 세부 프로토콜>
AH
MAC 을 이용하여 무결성, 송신처 인증 (기밀성은 없음)
전송모드
IP-H AH-H IP Payload
<---------- 인증 --------->
터널모드
New IP-H AH-H IP-H IP Payload
<---------------- 인증 ----------------->
ESP
MAC 을 이용하여 무결성, 송신처 인증
대칭암호화를 이용하여 기밀성 까지
전송모드
IP-H ESP-H IP-Payload ESP-T EST Auth
<------- 암호화 ---->
<--------- 인증 -------------->
터널모드
New-H ESP-H IP-H IP-Payload ESP-T EST Auth
<--------- 암호화 -------->
<------------------- 인증 ---------->
'# 나 > pentest (WEB)' 카테고리의 다른 글
Part 01. 시스템 - Unix/Linux (0) | 2019.05.14 |
---|---|
Part 02. 네트워크 - ARP, IP, ICMP, TCP, UDP, 포트스캐닝 (0) | 2019.05.13 |
Part 04. 침해사고 분석 및 대응 - snort, iptables (0) | 2019.05.08 |
Part 03. 어플리케이션 - DNS, HTTP, FTP, SNMP, DHCP (0) | 2019.05.07 |
AD 서버 원격 명령어 테스트 (1) | 2019.04.10 |