'웹 공격 방어'에 해당되는 글 1건

  1. 2011.07.27 웹 보안 공격 / 2분에 한번씩 공격 / 공격 패턴



보안업체Imperva사는 2010년 12월부터 2011년 5월까지 조사해봤더니. 매 2분마다 공격이 들어오고 있다고 합니다. 아무래도 미국회사이다 보니, 웹 공격을 하는  나라는 대 부분이 미국이었다고 합니다. 그리고, 다음이 중국을 차지했고, 네델란드 순이었습니다. 

제가 운영해보니, 한국에서 들어오는 대부분의 공격은 중국 IP더군요~^^


'봇'에 의해서 공격이 일어나는데, 짧은 시간내에 대량의 공격의 이루어지는 패턴이었다고 합니다. 잘알려진 취약성을 테스트해서 어플리케이션의 보안을 깨는데 그 목표가 있었습니다.


공격 패턴을 조사해보니, 총 4가지의 패턴이 있었습니다.

Imperva_UnFab4.jpg



첫번째로 많은 패턴이 37%인 directory traversal 입니다. 취약점을 찾을 수 있는 패턴을 찾는 것이지요. 대 부분이 공격 전에 scanning을 한다고 하는데요. 이부분에 대해서 취약성을 최대한 보이지 않도록 방어하는 것이 중요합니다. 자바 웹 서버의 경우는 웹 서버의 버전을 보여주지 않거나 DB 혹은 사용자 내부 정보를 보이지 않도록 해야 합니다.


관련해서 문서를 잘 정리하고, 인수인계자에게 문서를 만들어주는 것이 좋다.
(나는 3년 간의 운영정보를 가지고 사내에 표준 문서를 만들었다.)

그다음으로 많은 것이 36%인 XSS 공격입니다. XSS공격은 서버가 사용자 파라미터를 체크하지 않는 것을 근거로 악의적인 사용자가 사용자 파라미터에 악성 스크립트 코드를 전송하게 해서 코드의 결과를 웹 브라우저로 보게 하는 것입니다.


네이버 개발자 센터는 자바기반의 Lucy-XSS 필터를 제공하여 XSS 코드의 위험으로부터 보호하고 있습니다.

http://dev.naver.com/projects/lucy-xss


Sql Inject (SQLI) 은 23%를 차지하고 있습니다. 

아파치 모듈인 mod_security를 통해서 방어할 수 있지만, 사용자 파라미터에 비슷한 내용이 있다면 쓰기 어렵습니다.

따라서, 웹 개발자가 잘 판단하면서 사용자 파라미터를 신뢰하지 않으면서 잘 코딩할 필요가 있습니다.  PrepareStatment를 잘 사용하여 SQL Injection공격을 잘 방어 할 수 있습니다.


그리고, RFI 방식은 remote file inclusion 의 줄임말로 공격자가 악의적인 코드를 실제 서버에 전달합니다. 그 서버를 통해서 악성코드를 실행하게 하는 형식입니다. 

이와는 달리 LFI 방식이 있는데요. 이것은 웹 서버가 파일을 보여주는 웹 콜에 대해서 /etc/passwd를 보이가 한다거나 특정 명령어를 실행할 수 있게 해서 정보를 파악하는 것을 말합니다.




운영을 하면서 많이 공격이 왔던 것은 SQL Injection과 XSS 공격이었던 것 같다. 에러 로그와 아파치 로그/톰캣 로그를 잘 분석하면서 어떤 공격이 오고 있는지 잘 분석할 필요가 있다. 필요하면 ip block, reference block, mod_security를 이용해서 패턴에 맞는 공격을 방어한다면 웹 서버는 더욱 더 튼튼하게 될 것이다. 





출처 :

1. 매 2분 공격

http://www.readwriteweb.com/archives/report_web_applications_attacked_every_2_minutes.php?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+readwriteweb+%28ReadWriteWeb%29


2. RFI 공격

http://thexs4.tistory.com/455


3. XSS 공격

http://www.hanbitbook.co.kr/web/sample/1331/sample_chap5.pdf


4. LUCY-XSS 

http://dev.naver.com/projects/lucy-xss


5. SQL injection

http://8220.tistory.com/1166334277

6. RFI
http://blog.naver.com/PostView.nhn?blogId=cyber794&logNo=120072757299&redirect=Dlog&widgetTypeCall=true
Posted by 김용환 '김용환'