대규모 SQL 인젝션 대응 방안
이 글은 SANS Diary의 Large quantity SQL Injection mitigation 글을 번역한 것입니다. 우리 나라의 경우 이미 KISA의 노력으로 Webknight가 상당히 많이 보급되어 있습니다. 웹 방화벽이 뭔지 알고 계신다면 Webnight 정보 공유 카페와 nice19 님 블로그에 많은 글이 올라와있으니 참고하시기 바랍니다. 인터넷침해사고대응지원센터의 공개 웹 방화벽을 이용한 홈페이지 보안 자료는 이미 많은 분들이 보셨을 겁니다.
그럼 이제 번역문 나갑니다. 이 글은 결론이 중요합니다.
하루가 멀다하고 봇넷과 자동화 공격 도구가 웹사이트를 두들기고 있습니다. 사이트 운영자들은 방어하느라고 진땀을 빼고 있고요. ASProx 같은 봇넷들은 ASP와 MS-SQL 서버로 구성된 플랫폼을 공격하고 있고, 이미 수백만이 넘는 웹사이트가 SQL 인젝션 취약점에 당했습니다. ASProx 류의 봇넷이 행하는 SQL 스캐닝은 감소하고 있지만, 아직 안전하다고 말할 수는 없습니다. 인증이 필요없는 부분은 안전하더라도, 인증해야 볼 수 있는 부분은 여전히 취약할 가능성이 있습니다. 대부분은 구글봇이 볼 수 있는 정도만 목표로 하는 것이니 아직 공격받을 가능성이 있는 취약한 페이지는 무지막지하게 쌓여있는 셈이죠.
여러분이 운영하고 있는 사이트가 그렇게 취약점이 많다면, 전체 취약점을 모두 수정하는데 많은 시간과 노력이 들어갈 것입니다. 당장 SQL 인젝션에 대응할 수 있는 방법으로는 웹 방화벽(WAF)이 있습니다. 웹 방화벽은 HTTP 헤더와 폼 필드, 쿠키 같은 응용 계층 정보를 조사한다는 점만 빼고는 네트워크 방화벽과 비슷합니다. 마이크로소프트 IIS를 웹 서버로 사용하신다면, 가장 쉽고 빠르게 적용할 수 있는 웹 방화벽 솔루션은 마이크로소프트에서 나온 Urlscan입니다. (역주: Coderant 님께서 작성하신 튜닝 문서를 참고하세요.) 이 솔루션은 IIS 5에서는 애드온으로 동작하고, 그 이후 버전에는 내장되어 있습니다. Urlscan은 ISAPI 필터로 실행되므로 쉽게 배포하거나 삭제할 수 있습니다. Urlscan 버전 3.0부터는 상당한 수준으로 SQL 인젝션을 방어할 수 있습니다. 그렇지만 Urlscan은 HTTP 요청 본문 (POST 데이터)를 검사하지 않는다는 문제가 있습니다. POST를 이용하는 공격을 놓칠 수 밖에 없지요.
최근에 Webknight를 살펴봤는데 설정하기도 쉽고, 좋은 기능도 많습니다. 기본 설정 파일 자체가 잘 되어 있고요. 아마 대부분의 경우에는 Webknight를 설치하고 오탐을 내지 않도록 설정을 좀 느슨하게 풀어야 될 겁니다. 이 제품은 헤더, 쿠키, URL, POST 데이터 전부 검사합니다. 미리 설정된 SQL 키워드가 2개 발견되면 탐지하도록 되어있습니다. 보통은 이렇게 해도 잘 동작합니다. textarea 필드 같은 경우에는 오탐이 좀 발생할 수 있습니다. Webknight는 기본적인 방어에 충분한 기능을 갖추고 있습니다.
웹 방화벽은 추가적인 보안 계층일 뿐입니다. 여러분이 코드를 수정할 때까지 버텨주는 역할 이상을 할 수 없습니다. 시간을 돈으로 샀다고 생각하시면 됩니다. 웹 방화벽이 사이트를 공격하기 어렵게 만들긴 하지만, 완벽한 것은 아닙니다. 장기적으로 봤을 때 가장 좋은 방법은 코드를 수정하는 것입니다.
by xeraph | 2008-11-20 21:26:58 | 미분류 | 트랙백 (1) | 덧글 (0)
Tracked from nchovy's me2DAY 2008-11-20 21:41:00
대규모 SQL 인젝션 대응 방안, 웹 방화벽으로 시간을 벌고 코드를 수정하셔야 합니다.




