월간 인기 게시물

게시물 17건
   
DDOS 공격... IPTABLE TIP
글쓴이 : 최고관리자 날짜 : 2009-12-28 (월) 16:08 조회 : 17829
글주소 :
                       

트래픽사용량이 네트워크와 서버에서 버틸수 있다는 가정하에....
소량에 트래픽이라면 CC Attakc 와 GET Flooding 정도는 리눅스의 경우에는 iptables로 간단히 막을수 있다.

두 공격은 모두 특정페이지 or 이미지만을 계속해서 요청함으로써 시스템 자원을 고갈시켜서 서비스를 중단하는 특징이 있으며 먼저 HTTP 프로토콜 헤더정보에 대해서 알아야 된다.


우리가 웹사이트를 접속하게 되면 패킷은 요청헤더와 응답헤더로 나누어져있다.
아래는 모지리닷컴 index 페이지를 요청하는 패킷을 캡쳐한 부분이다.

16:18:54.544946 IP XXX.XX.XX.XX.62077 > XXX.XXX.XXX.222.80: P 2660271666:2660272407(741) ack 4054926732 win 509
aH@.t..FsD.M..s..}.P...2..E.P...*...GET / HTTP/1.1
Accept: */*
Accept-Language: ko
UA-CPU: x86
Accept-Encoding: gzip, deflate
If-Modified-Since: Mon, 28 Dec 2009 07:18:46 GMT
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Host: www.chonnom.com
Connection: Keep-Alive
Cookie: f33d2ed86bd82d4c22123c9da444d8ab=MTI1OTYzNDE4NA%3D%3D; 96b28b766b7e0699aa91c9ff3d890663=aHR0cDovL3d3dy5jaG9ubm9tLmNvbS8%3D; 2a0d2363701f23f8a75028924a3af643=MTE1LjY4LjI3Ljc3; f33d2ed86bd82d4c22123c9da444d8ab=MTI2MDg0OTE0Mg%3D%3D; 96b28b766b7e0699a
91c9ff3d890663=aHR0cDovL2Nob25ub20uY29tLw%3D%3D; 2a0d2363701f23f8a75028924a3af643=MTE1LjY4LjI3Ljc3; PHPSESSID=ee9055896cbb812ab1aa30107d56496f

자세한 HTTP 프로토콜 정보는 아래링크를 통해서...
http://www.chonnom.com/bbs/board.php?bo_table=B17&wr_id=27
http://www.chonnom.com/bbs/board.php?bo_table=B17&wr_id=27

패킷을 캡쳐하거나 아파치 로그상에서 단시간에 동일 페이지가 계속해서 보인다면 공격으로 의심하여 이럴경우에는 HTTP 프로토콜에 규칙에서 특정 헤더값을 확인해서 DROP / ACCEPT 로 판단하면 된다.
대게는 ACCEPT 헤더값이 없는경우가 많다.

공격패킷

..L.P.../_..lP..."p..GET /js/default.js HTTP/1.1
Host: www.chonnom.com
Cache-Control: no-store, must-revalidate
Referer: http://www.chonnom.com
Connection: Close

16:40:34.840539 IP XXX.XXX.XX.XXX.4684 > XXX.XXX.XXX.XX.80: F 142:142(0) ack 1 win 65535
E..(.>@.s..J;.K..n
..L.P...._..lP.............
16:40:34.840810 IP XXX.XX.XXX.XXX.4685 > XXX.XXX.XX.XXX.80: . ack 1591675378 win 65535
E..(.?@.s..I;.K..n
..M.P....^. .P....%........
16:40:34.841239 IP XXX.XXX.XXX.XXX.4685 > XXX.XXX.XXX.XXX.80: P 0:142(142) ack 1 win 65535
E....@@.s...;.K..n
..M.P....^. .P....a..GET /js/default.js HTTP/1.1
Host: www.chonnom.com
Cache-Control: no-store, must-revalidate
Referer: http://www.chonnom.com
Connection: Close


아래의 룰로 매칭시켜서 DROP 처리

iptables -N HTTP_REQUEST
iptables -A INPUT -p tcp -m tcp --dport 80 -d XXX.XXX.XXX.XXX -m string --string "$스트링값" --algo bm --to 512 -j HTTP_REQUEST
iptables -A INPUT -m string --string "Accept" --algo bm --to 512 -j RETURN
iptables -A INPUT -j DROP



추가) 요청패킷에 언어컨텐츠가 중국에서 서비스하지 않음에도 불구하고 중국쪽일 경우도 많다...   ZH-CN 스트링 매치로 DROP 시켜도 그럭저럭 효과가...


이름 패스워드
비밀글 (체크하면 글쓴이만 내용을 확인할 수 있습니다.)
왼쪽의 글자를 입력하세요.
   

 



 
사이트명 : 모지리네 | 대표 : 이경현 | 개인커뮤니티 : 랭키닷컴 운영체제(OS) | 경기도 성남시 분당구 | 전자우편 : mojily골뱅이chonnom.com Copyright ⓒ www.chonnom.com www.kyunghyun.net www.mojily.net. All rights reserved.