본문 바로가기

Security Indicator/Guide for guru

[컬럼]Mass sql injection, 대응과 현실 2008.9

. p4ssion입니다.


지난 글에서 ( 한참 됐습니다. ^^) Mass sql injection 관련된 내용에 대해서 언급을 드린 적이 있습니다.

그 이후 업데이트를 할려고 생각 하다가 개인적인 사정으로 작성하지 못했습니다.

오늘 생각나서 잠시 써봅니다.


http://www.itjungle.com/two/two082708-story05.html 

http://www.technewsworld.com/story/Mass-SQL-Attack-a-Wake-Up-Call-for-Developers-62783.html?welcome=1209498513&welcome=1210717878 

http://www.theregister.co.uk/2008/05/21/china_sql_injection_attack/ 

http://blogs.zdnet.com/security/?p=1150

http://searchsecurity.techtarget.com/news/article/0,289142,sid14_gci1314697,00.html 

http://ddanchev.blogspot.com/2008/05/malware-attack-exploiting-flash-zero.html 

http://searchsecurity.techtarget.com/tip/0,289483,sid14_gci1317069,00.html


Mass sql injection에 관련된 기사들을 이 블로그에 글을 쓰지 않은 이후로 모아 봤습니다.


2005년 부터 활발하게 이루어진 SQL Injection 공격에 대해 이제서야 세계적으로 인지를 하고 부분 대응이 진행 되고 있습니다. 공격의 현황은 어떤 식으로 이루어 지고 있으며 또한 대응은 어떤 방식으로 이루어 지고 있는지 주마간산 식으로 살펴 보겠습니다.


* 이전에 알려진 SQL Injection 공격과는 조금 다른 범주라고 봐야죠. Login 창에 손으로 입력하여 인증을 우회하는 방식은 오래전에 알려졌으며 또 이후의 각 URL 인자마다 문제가 발생하는 부분에 대해서도 알려져 왔습니다. 현재의 SQL Injection이 다른 관점은 Automated SQL Injection 이라는 것입니다.


손으로 직접 수십~수백개의 조합을 통해 DB의 정보를 빼내가는 것이 아니라 특정 DB에 맞추어서 특정 쿼리들을 미리 준비해 놓은 이후 클릭 한번으로 진행을 합니다. 현재의 Mass sql은 여기에서 한 걸음 더 나아가 단일 사이트에 대해 이루어 지는 것이 아니라 수십개 이상의 사이트에 대해 일시적으로 발생 할 수 있도록 범위가 확산된 것입니다.


입력창에 대한 SQL Injection ( ' Or 1=1-- )  ->

수동에 의한 URL 인자의 SQL Injection (시간 오래 소요) ->

자동화된 툴의 쿼리에 의한 정보 유출 및 페이지 변조 (악성코드 유포 목적) ->

대규모 스캔 및 공격이 가능한 Automated Mass attack 기법 및 도구의 출현 ( 이것도 현재는 ASP+MSSQL만 공격 하지만 향후 타 언어 및 다른 종류의 DB로 확대 예상)


위와 같이 순서의 정리가 가능합니다.

대상규모가 한정적일 경우에는 장비의 도입 및 소스코드에 대한 컨설팅으로 문제의 해결이 가능하였으나 이제는 그 범주를 벗어나 악성코드가 범람하는 세상에 살게 될 수 밖에 없는 상황입니다. ( 전 세계의 웹 서비스의 문제를 한번에 없앨 수는 없으므로 )


악성코드에 대한 감염은 브라우저 ( 구글의 크롬, FireFox , IE ..)에 구애받지 않습니다.  악성코드가 사용자 PC에 특정 프로그램을 설치하기 위해 필요한 공격 코드들은 매우 다양하며 운영체제의 한계를 벗어나 여러 Application에 대한 권한 획득 코드들을 이용하는 것이 일반적입니다.  즉 브라우저와는 관계 없이 이 문제는 계속 되며 전 세계의 일반 PC 및 웹서비스가 영향권 내에 들어와 있다고 보는 것이 정답입니다.


< 어쩌면 지금의 상황은 Matrix 구조 같은 거대한 위협속에 놓은 것과 같지 않나 생각 됩니다.>

 

묻습니다.


1. 사용자 PC에 설치된 모든 Application의 취약성을 수시로 확인하고 문제가 있는지 여부를 확인 하는 것이 가능합니까?

2. 수시로 업데이트되고 갱신되는 ( 악성코드의 유형은 대부분 다운로드 형태를 지니고 있습니다. 즉 한 사이트나 몇 개의 악성코드 다운로드 사이트의 샘플만 변경해 주면 새로이 다운로드가 되는 클라이언트는 신종 악성코드에 감염이 됩니다. )  유형의 악성코드에 대한 대응이 가능합니까?

3. 방문하는 사이트가 안전한 웹사이트임을 확인 할 수 있습니까?



간단하게 위의 세 가지 질문입니다.

위의 답변은 1번은 불가능 , 2번도 수동적인 대응외에는 불가능 , 3번도 직관적인 신뢰가 없다가 정답이 아닐까 생각됩니다.


1번의 경우 운영체제를 벗어나 사용자가 사용하는 모든 Application 문제가 없다는 것은 보증하기가 매우 어렵습니다. 사실 불가능한 이야기 이구요. 이 문제는 웹 서비스를 통해 유포되는 악성코드의 전염을 막을 방도가 매우 부족함을 의미합니다.


2번의 경우에는 전 세계의 많은 AV 벤더들에서 대응을 하고 있지만 사실상 공격자의 행동에 대해 대응력은 부족하며 산발적인 대응만을 하고 있어서 노력대비 효과는 미미한 수준이라 할 수 있습니다. 발견을 못한 AV 벤더는 업데이트가 없이 그냥 가죠. 그리고 발견하여 대응을 한다고 하여도 이미 공격자는 또 다른 내용으로 손쉽게 변경하는 것이 가능합니다. 전 세계에 널리 자사의 AV 제품이 사용되고 있다면 최소 시차를 고려 하여도 1일 이상의 시간이 소요 되는 것이 현실 적입니다.

그러나 공격자는 단 몇 분이면 새로운 악성코드의 유포가 가능하며 사용자에게 전파가 가능한 유형이 됩니다. 따라서 뚜렷한 대응방안이라고 보기가 곤란한 상태라 할 수 있습니다.


3번은 더 말씀 드리지 않겠습니다.


이미 대책 부분과 필요한 부분에 대해서는 이전의 몇몇 Article에서 충분히 언급한 상황입니다.

[ 상상하기 어려운 위협 - http://p4ssion.com/112 , http://p4ssion.com/152   ]

[ IT 서비스의 현재 위험과 대응 종합 , 첨부파일 참고 - http://p4ssion.com/199 ]


전 세계적인 대응 현황을 간략하게 살펴 본 주관적인 의지로 정의하면 빈익빈 부익부, 근본에 도달하지 못한 미봉책..

이 정도로 정의를 할 수 있습니다.


며칠전 MS에서는 웹 서비스에 대한 SQL Injection을 막기 위해 IIS의 Plugin 형식인 URLscan Filter 3.0를 배포 하고 있습니다.

[ http://www.microsoft.com/downloads/details.aspx?FamilyID=ee41818f-3363-4e24-9940-321603531989&displaylang=en ]

현재 타켓화 되고 있는 ASP+MSSQL+IIS 조합에 활용이 가능한 유형입니다.


물론 실제 적용 시에는 개발된 서비스의 소스에 따라 설정의 변경등이 필요한 상황이 되겠습니다.


또한 HP의 WebInspect and QAInspect라는 제품과 IBM의 Appscan , WVS의 Acunetix 라는 웹 취약성 스캐너들이 현재  전세계 시장의 다수를 차지하고 있습니다. 이 제품들의 특징은 스캔 할 수 있는 도메인이 한정 되어 있다는 점, 과도한 취약성 점검을 위해 컨텐츠를 다운로드 (?) 받아서 재현을 하다보니 대용량 사이트에 대해서는 진단의 한계를 보이는 점들이 있습니다.

가장 중요한 점은 가격이 후덜덜입니다.


왠만한 IT기업에서 제품군을 도입하려면 많은 전문인력 및 도구 구입에 상당한 비용을 들여야 할 것으로 보입니다.


자 위의 두 가지와 같은 대응 흐름이 있습니다. 솔루션을 이용한 근본 취약 부분을 찾아서 소스코드의 문제를 수정하는 방향과 현재 발생되는 공격이 유효하지 않도록 무력화 시키는 Filter 부분이 있는데 두 가지 모두 한계를 지니고 있습니다. Filter의 경우에는 우회가 가능한 패턴 유형이 발견 될 수 있다는 점과 기존의 정상 서비스 트래픽에 대한 제한을 지닐 수 있다는 점입니다.


또한 솔루션을 이용한 취약 부분 진단에 대해서는 고비용, 대형 사이트 진단 불가 , 도메인 스캔의 제한 , 속도의 문제로 인해 사용이 어려운 측면이 발생 합니다.


( Web Firewall 등에 대해서는 별도 언급 하지 않겠습니다. 도입시 마다 설정 변경이나 Customizing 없이 사용 가능한 제품이 없지 않나요? 어쩌면 소스코드 수정이 휠씬 빠를 수도 있는 Customizing이며 공격 패턴이 변경 되면 처음 부터 다시 설정 해야만 합니다. - 근본 문제 제거와는 관련 없는 부분이며 임시방책일 뿐이라 논의 하는 것은 부적절하다는 개인 판단입니다. )



빈익빈 부익부.


가난한 기업들과 여력이 없는 기업들을 위한 해결 방안은 어디에도 없습니다. 그나마 전문성을 지닌 인력이라도 있다면 이런 문제를 해결해 보겠으나 인력도 없으니 설상가상인 상태가 되겠죠. 앞으로도 오랜 기간 동안 대상이 될 것으로 예상 됩니다.


개인적인 예상으로는 향후 2~3년간은 이러한 대규모 악성코드의 유포에 의해 매우 시끄러울 것이고 특별한 해결책도 찾기 어려운 상황이 계속 될 것입니다. 그 이후에는 또 다른 부분으로 전이가 되겠지만...


부유한 기업들은 많은 비용을 투입하여 장비를 도입하고 소스코드에 대한 진단과 컨설팅등을 받습니다. 그러나 빈자들의 서비스를 통해 유포되는 악성코드들은 주로 부유한 서비스 기업을 노리고 있습니다. 이 점에 대해서는 간과를 하는 면이 많은 편입니다.


문제의 해결을 하기 위해서는 세계의 인터넷 환경을 일시에 ( 상당히 빠른 시간) 클린한 상태로 올려 줄 수 있는 부분이 필요하며 자신만의 서비스를 벗어나 전체적인 시각을 가지고 움직일때 자신의 서비스에게로 오는 위험을 줄 일 수 있습니다.


말그대로 네트웍 환경은 위협도 연결이 되어 있기 때문이죠.


빈자들을 위한 보안도구들은 언제쯤 출현 할까요? 상용도구의 정확성 만큼을 보유한 저렴하고 접근성이 뛰어난 도구의 출현이 현재의 상황을 좀 더 빠른 시기에 진화 할 수 있을 유일한 방안이라 생각 합니다.


전술과 전략이 있습니다. 개개의 싸움을 하는 전략은 현재대로 진행 하고 상호협력을 강화할 방안을 찾아야 하며 ( AV의 대응 , Scanner , Web Firewall, Vendor의 대응) 더불어 가장 중요한 전술적인 차원의 큰 방향성이 필요 합니다.


큰 방향성 차원에서 공격의 범주를 최대 확산이 불 가능 하도록 일정 수준 이하로 묶음으로써 피해의 광역화를 막는 것이 가장 큰 이슈가 될 것이고 가장 필요한 관점이 아닐까 생각 합니다. 전술적으로 확산 범주를 좁히기 위해서는 가장 필요한 것이 문제점을 찾을 수 있는 접근성 뛰어난 저렴한 비용의 도구의 확산이나 서비스화가 우선 되어야 할 것이구요.


전술과 전략은 구분되어야 하며 현재의 전략도 부족한 면들이 있으며 커버 가능한 범위를 더욱 넓힐 수 있는 도구와 서비스의 출현들이 심각하게 필요하며 전술적인 관점에서는 거대한 악성코드 유포 네트웍을 소규모 단위로 분산 시킬 수 있는 정책적인 방향성이 필요합니다. 수많은 이해가 상충되는 야생의 시대에 이런 협력이 필요한 전술과 전략은 구사되기 어려운 점들이 많을 것입니다.


따라서 앞으로도 위기는 계속 지속 될 것입니다. 모든 프로그래머가 Secure한 코딩이 일상화 되기 전까지는 상당히 오랜 시간 위기는 지속 될 것이고 이제 세계적인 시작은 큰 흐름이 벌써 시작된 상황이라 예측 됩니다.


- p4ssion. 2008.9