본문 바로가기
Security

HTTP CC ATTACK 패킷 ,iptable 를 이용한 drop


HTTP CC ATTACK

일반적으로 HTTP의 해더옵션중 Cache-Control 을 이용하여, 웹트랜잭션의 효율성을 위해서 해당 옵션을 사용 한다.예를 들어 ssl 통신시 cache 되지 않게 하는등 
여러가지로 사용 되지만, 악용 되어 cache 되지 않게 옵션을 설정 되어 http get flooding 보다 더 많은 부하를 발생 시킨다.
HTTP CC ATTACK 은 한국이나 중국 에서 많이 사용 되는 용어로 정확한 명칭은 아님.

Cache-Control 중 가장 많이 공격에 사용되는 지시자 옵션은  no-store,must-revalidate 옵션으로 오는 형태가 가장 대표적이다.

no-store 는 해당 reponse 데이터를 저장 하지 않으며, ,must-revalidate는 캐시에 대한 재검증을 요청하게 된다. 

해당 두 지시자로 인하여 클라이언트가 서버에 접근시 cache 되지 않고 많은 부하를 발생 하게 된다.


실제 발생된 패킷을 확인 하기 위해서 wireshark 를 이용 필티링 하여 must-revalidate,no-store 가 지시자로 있는지 확인 한다.

http contains "no-store" && http contains "must-revalidate"

아래와 같이 실제 공격 발생시  no-store,must-revalidate지시자를 확인 할 수 있다. 모두 client 요청에 의하여 서버가 200 ok 으로 정상적으로 응답을 해주는데 

해당 지시자로 인하여 client 가 재 요청시 cache 없이 진행 하기 때문에 많은 부하를 발생 한다.


이상황에서 만약 linux 기반 netfilter 를 사용(iptables 등) 을 사용 할 수 있다면 해당 string 을 필터링 하여 이상있는 요청을 drop 할 수 있다.
-A INPUT -p tcp -m string --string "no-store" --algo kmp --to 65535 -j DROP
-A INPUT -p tcp --m string --string "must-revalidate" --algo kmp --to 65535 -j DROP
-A INPUT -p tcp -m string --hex-string "|6e6f2d73746f7265|" --algo kmp --to 65535 -j DROP
-A INPUT -p tcp -m string --hex-string "|6d7573742d726576616c6964617465|" --algo kmp --to 65535 -j DROP
참고 사이트 :http://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?seq=16316



반응형

'Security' 카테고리의 다른 글

Gpg4win (pgp) 를 이용한 email 암호화  (1) 2016.05.29
OPENSSL 을 이용한 평문 암호화 복호화  (0) 2016.05.29
Cain and Abel  (0) 2015.05.27
arpspoof 과 해결책  (0) 2015.05.27