| [기고] 단축 URL 이용한 새로운 악성코드 공격의 심각성 | 2012.03.08 | |||||||
Polymorphic SQL Injection 공격 탄생
한동안 뜸했던 Mass SQL Injection(하단 용어설명 참조) 공격이 3월 2일 오후 늦게부터 새로운 형태로 진화해 시작됐다.
특히, 단축 URL 서비스(URL Shortening Service, 하단 용어설명 참조)를 활용하기 때문에 웹 개발자 또는 관리자(이하 관리자)가 실제로 이러한 URL 삽입이 발생했는지조차 파악이 어려운 상태로 보인다.
그만큼 기존의 Mass SQL Injection 공격과 현격한 차이점을 보이고 있는 것. 기존 공격에서는 하나의 URL이 다수의 웹사이트의 DB에 삽입되어 실제적으로 많은 피해가 발생했다. 아래 표는 지난해 필자가 리자문(lizamoon.com/ur.php)에 대한 정보를 기고할 때 사용했던 것으로, 그 이후에도 꾸준히 Mass SQL Injection 공격이 진행되어 오고 있다. <참고: http://www.boannews.com/media/view.asp?idx=25507&kind=1&search=title&find=lizamoon> 하지만 최근 한두 달 정도 Mass SQL Injection 공격이 주춤한 가운데 새롭게 선보인 SQL Injection 공격은 그동안 잊혀졌던 존재를 다시금 확실하게 되새길 수 있도록 강력한 공격과 파괴력을 자랑하고 있으며 주된 차이점은 다음과 같다. 앞서 언급한 바와 같이, 기존에는 하나의 URL을 복수의 사이트에 공격하고, 특히 DB의 가능한 모든 필드에 URL을 삽입하는 방식이 주로 사용됐다. 따라서 차후에 이러한 사실을 알게 된 DB 관리자는 필드에 특정 문자열을 제거하는 스크립트를 활용하여 손쉽게 문제점을 해결했다. 여담이지만, 모 사이트에서는 DB관리자들 간의 토론에서 스크립트의 성능(빠른 속도로 문자열을 제거)이 어느 것이 좋은지 경쟁이 붙기도 했으며, 한때 논쟁이 되기도 한 적이 있다. 문제의 초점과는 거리가 있는 인식이라 할 수 있다. 기존의 일반적인 Mass SQL Injection 공격과는 다른 양상의 공격들이 지난 주말부터 관찰되기 시작했으며 이를 우리는 Polymorphic SQL Injection 공격이라고 이름붙이고자 한다. 그 이유는 다양한 URL이 DB의 각각 필드에 개별적으로 삽입되거나 또는 하나의 필드에 여러 개의 URL이 삽입되는 등 다양한 형태(Polymorphism)로 공격이 진행되기 때문이다.
앞에서도 언급했지만, 가장 중요하게 바뀐 점은 Polymorphic SQL Injection 공격을 받은 웹사이트마다 서로 다른 URL이 사용됐다는 점으로 심지어는 서너 개 URL이 사이좋게 삽입된 경우가 많이 발견된다.
웹 페이지의 소스 중 일부는 다음과 같다.
따라서, 웹사이트 관리자(또는 DB 관리자)는 삽입된 URL을 제거하기 위해 좀 더 많은 시간과 노력을 들일 수밖에 없게 된다. 핵심은 애초에 공격이 가능한 지점을 찾아 보완해야 문제가 발생하지 않는데 뒷수습에만 힘을 쏟는다면 이러한 문제는 계속 반복될 수 밖에 없다. 단축 URL로 등록된 곳의 실제 URL 주소를 조사한 결과 수십여개의 URL이 사용됐으며 대표적인 예를 들면 다음과 같다. s.php 라는 페이지를 사용한다는 점이 공통적이고, 주로 웹호스팅 관련 도메인을 사용하는 것을 알 수 있다.
s.php 파일 자체에 대한 분석은 해당 웹사이트에서 원본 파일을 추출하여 분석해야 하지만, 대부분 해외에 위치하고 있어 입수가 어렵다. 다만, 웹 분석용 SW로 내려받은 데이터로 볼 때 광고성 URL로 추정된다. Polymorphic SQL Injection 공격뿐만 아니라 Mass SQL Injection 공격은 모두 SQL Injection 취약점을 이용하는 것으로 이미 널리 알려져 있다. 이 문제를 해결하기 위해서는 다양한 방안이 필요하다. 그러나 가장 원천적인 해결방안은 웹 개발 또는 유지보수 시에 이러한 취약점이 발생하지 않도록 미연에 방지하는 Secure Coding(보안에 입각한 코딩)이 필요하다. 하지만 실제로 웹 개발자들은 이러한 웹 취약점의 중대성에 대해 그리 크게 공감하지 않고 있다. 물론, 이미 개발된 웹사이트는 유지보수적 측면에서 웹 취약점을 해결하기에는 금전적 또는 시간적 부담이 너무 크기 때문에 고려하기가 쉽지 않다. 결론적으로 다양한 이유로 인해 취약점이 해결되지 않는 악순환이 계속되는 것이다. 이번 Polymorphic SQL Injection 공격의 피해가 광고사이트 유도라고 해서 안심할 수 없는 이유는 바로 이러한 URL이 악성코드를 유포하는 URL로 언제든지 대체가 가능하다는 것이며, 또한 언제든 악성코드가 s.php 코드 내에 올려질 수 있기에 문제가 되는 것이다. 한편, Mass SQL Injection 공격은 시작된 지 2~3일 정도부터는 구글 검색을 통해 어떤 사이트가 공격을 당했는지 확인해볼 수 있으며 국가별로 나눠서 검색도 가능하다. 아래 화면은 2011년도 12월 2일 발생한 Mass SQL Injection 공격에서 한국 도메인을 검색한 결과로, 약 13만 1천페이지 정도가 감염됐다고 추정할 수 있다.
하지만, Polymorphic SQL Injection 공격에서는 각기 다양한 URL이 사용되므로 통계치를 잡기가 매우 어려울 뿐만 아니라 실제 공격을 당했는지 확인할 수 있는 기록도 찾기가 어려운 경우가 허다하다. 즉, 공격의 흔적을 알아채기가 더욱 어려워졌다고 결론지을 수 있다. 지금 이 공격에 대해서 주목을 하는 이유는 단순한 도메인 차단을 통해 대응을 하는 것이 매우 어려워졌다는 것이다. 더욱 더 큰 문제는 Polymorphic SQL Injection 공격의 효용성을 사이버 범죄자들이 확인하는 순간 엄청난 파급력으로 국내뿐만 아니라 전세계 웹 환경을 순식간에 악화시킬 수 있다는 점이다. 향후 새롭게 변화되는 공격에 대해 항상 주의를 기울이고 공격자들의 전술적인 변화에 대해 대처할 수 있도록 꾸준한 연구와 노력이 계속되어야만 문제가 줄어들 수 있다. 하지만 현재 상황으로 보면 공격기술의 발전에 비해 보안기술의 발전은 너무 더딘 상태여서 획기적인 인식 전환이 요구되는 시점이라 할 수 있다. 단기적으로 현재 발생되는 공격을 막을 수 있는 방안은 자동화된 도구를 통해 웹 서비스의 취약성을 진단함으로써 공격이 가능한 URL 인자의 취약성을 찾아내고 인자의 길이와 유효성을 체크하여 보완하는 것이다. 지금은 DB에 추가된 다양한 단축 URL값을 지우는데 전력해야 하지만 단순한 생각으로도 문제가 발생될 수 있는 근본원인을 제거해야만 재발이 안 되지 않을까? 현재 사태의 심각성을 진지하게 인식하기를 바랄 뿐이다. 빛스캔(주)에서는 SQL Injection 공격이나 웹사이트 변조를 통해 악성코드 링크가 삽입된 피해를 스캔하여 확인할 수 있는 비트파인더(BitFinder) 서비스를 무료로 제공한다. https://scan.bitscan.co.kr에 가입한 후 본인의 도메인을 입력하고 나서 검사하면, 의심스러운 링크에 대한 보고서를 받을 수 있다.
[글 _ 문일준 빛스캔 대표(info@bitscan.co.kr)]
|
||||||||
|
|