Mass sql injection에 대한 대응과 현실
2008. 09. 17 테크놀로지 |
p4ssion입니다.
Mass sql injection 이라는 용어가 세계적으로 통용이 되고 있습니다.
단일 도메인에 대해 이루어 지던 SQL Injection 공격이 멀티 도메인에 대해 일괄적으로 수행이 되고 있는 것을 지칭하는 용어로서 2008년 4월에 최초 언론 보도 이후 현재까지 수면 밑에서 폭 넓은 공격 빈도와 피해를 양산하고 있습니다. 세계적으로 대책을 수립하지 않는다면 문제는 향후에도 보다 큰 폭으로 확대 될 것이고 폭 넓은 범위에 대해 위험성을 초래 할 것입니다.
현재 세계적인 SQL Injection 공격의 주 타켓은 온라인 게임의 계정에 대한 절취가 목적이나 다른 목적으로도 금새 변경이 가능합니다. 온라인 상에서 입력하는 모든 개인정보에 대한 유출도 손쉬운 상태이며 향후 추가적인 피해가 계속 발견 될 것으로 예상됩니다.
아래는 해외 언론에 발표된 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 attack의 변화 과정 -
입력창에 대한 SQL Injection ( ‘ Or 1=1– ) ->
수동에 의한 URL 인자의 SQL Injection (시간 오래 소요) ->
자동화된 툴의 쿼리에 의한 정보 유출 및 페이지 변조 (악성코드 유포 목적) ->
대규모 스캔 및 공격이 가능한 Automated Mass attack 기법 및 도구의 출현 ( 이것도 현재는 ASP+MSSQL만 공격 하지만 향후 타 언어 및 다른 종류의 DB로 확대 예상 , 불가능한 영역은 없는 상태임)
위와 같이 순서의 정리가 가능합니다.
대상규모가 한정적일 경우에는 장비의 도입 및 소스코드에 대한 컨설팅으로 문제의 해결이 가능하였으나 이제는 그 범주를 벗어나 악성코드가 범람하는 세상에 살게 될 수 밖에 없는 상황입니다. ( 전 세계의 웹 서비스의 문제를 한번에 없앨 수는 없는 것이 현실 입니다. )
악성코드에 대한 감염은 브라우저 ( 구글의 크롬, FireFox , IE ..)에 구애받지 않습니다. 악성코드가 사용자 PC에 특정 프로그램을 설치하기 위해 필요한 공격 코드들은 매우 다양하며 운영체제의 한계를 벗어나 여러 Application에 대한 권한 획득 코드들을 이용하는 것이 일반적입니다. 즉 브라우저와는 관계 없이 이 문제는 계속 되며 전 세계의 일반 PC 및 웹서비스가 영향권 내에 들어와 있다고 보는 것이 정답입니다.
Malware matrix
< 지금의 Network world는 Malware와 각종 위협으로 가득찬 불안한 Matrix >
문제의 해결이 가능하자면 다음과 같은 질문에 답변이 가능해야 합니다.
1. 사용자 PC에 설치된 모든 Application의 취약성을 수시로 확인하고 문제가 있는지 여부를 확인 하는 것이 가능합니까?
2. 수시로 업데이트되고 갱신되는 ( 악성코드의 유형은 대부분 다운로드 형태를 지니고 있습니다. 즉 한 사이트나 몇 개의 악성코드 다운로드 사이트의 샘플만 변경해 주면 새로이 다운로드가 되는 클라이언트는 신종 악성코드에 감염이 됩니다. ) 유형의 악성코드에 대한 대응이 가능합니까?
3. 방문하는 사이트가 안전한 웹사이트임을 확인 할 수 있습니까?
현재 다수의 보안업체에서 웹사이트의 안전도를 평가 하고 있습니다. 악성코드 위험성을 표시하는 검색업체(구글)에서부터 개별 서비스를 제공하는 기관 및 보안업체들도 세계적으로 찾아 볼 수 있습니다. 단 실시간이 아니라는 것이 문제입니다. 또한 알려진 것들만 처리가 가능하다는 점도 문제입니다.
간단하게 위의 세 가지 질문입니다.
위의 답변은 1번은 불가능 , 2번도 수동적인 대응외에는 불가능 , 3번도 직관적인 신뢰가 없다가 정답이 아닐까 생각됩니다.
1번의 경우 운영체제를 벗어나 사용자가 사용하는 모든 Application 문제가 없다는 것은 보증하기가 매우 어렵습니다. 사실 불가능한 이야기 입니다. 이 문제는 웹 서비스를 통해 유포되는 악성코드의 전염을 막을 방도가 매우 부족함을 의미합니다.
2번의 경우에는 전 세계의 많은 AV 벤더들에서 대응을 하고 있지만 사실상 공격자의 행동에 대해 대응력은 부족하며 산발적인 대응만을 하고 있어서 노력대비 효과는 미미한 수준이라 할 수 있습니다. 발견을 못한 AV 벤더는 업데이트가 없이 그냥 갑니다. 그리고 발견하여 대응을 한다고 하여도 이미 공격자는 또 다른 내용으로 손쉽게 변경하는 것이 가능합니다.
전 세계에 널리 자사의 AV 제품이 사용되고 있다면 최소 시차를 고려 하여도 1일 이상의 시간이 소요 되는 것이 현실 적입니다. 그러나 공격자는 단 몇 분이면 새로운 악성코드의 유포가 가능하며 사용자에게 전파가 가능한 유형이 됩니다. 따라서 뚜렷한 대응방안이라고 보기가 곤란한 상태라 할 수 있습니다.
3번은 더 말씀 드리지 않겠습니다.
이미 대책 부분과 필요한 부분에 대해서는 이전의 몇몇 Article에서 충분히 언급한 상황입니다.
[ 상상하기 어려운 위협 -1 http://blog.naver.com/p4ssion/50031034464 ,
상상하기 어려운 위협2 - http://blog.naver.com/p4ssion/50031227899 ]
[ IT 서비스의 현재 위험과 대응 - http://blog.naver.com/p4ssion/50024269739 ]
전 세계적인 대응 현황을 간략하게 살펴 본 주관적인 의지로 정의하면 빈익빈 부익부, 근본에 도달하지 못한 미봉책.. 이 정도로 정의를 할 수 있습니다. 즉 사안은 점차 더 심각한 국면으로 진입을 하고 있습니다.
며칠전 MS에서는 웹 서비스에 대한 SQL Injection을 막기 위해 IIS의 Plugin 형식인 URLscan Filter 3.0를 배포 하고 있습니다.
현재 타켓화 되고 있는 ASP+MSSQL+IIS 조합에 활용이 가능한 유형입니다.
물론 실제 적용 시에는 개발된 서비스의 소스에 따라 설정의 변경등이 필요한 상황이 될 것입니다.
또한 HP의 WebInspect and QAInspect라는 제품과 IBM의 Appscan , WVS의 Acunetix 라는 웹 취약성 스캐너들이 현재 전세계 시장의 다수를 차지하고 있습니다. 이 제품들의 특징은 스캔 할 수 있는 도메인이 한정 되어 있다는 점, 과도한 취약성 점검을 위해 컨텐츠를 다운로드 (?) 받아서 재현을 하다보니 대용량 사이트에 대해서는 진단의 한계를 보이는 점들이 있습니다.
가장 중요한 점은 가격이 범접하기 어려운 부분들이 있습니다. 특히 여러 서비스를 운영하는 IT 서비스 기업에는 치명적인 부분입니다. 단일 도메인 및 호스팅 서비스를 받는 업체로서도 도입의 이유가 어려운 부분입니다.
일정 규모 이상의 IT기업에서도 제품군을 도입하려면 많은 전문인력 및 도구 구입에 상당한 비용을 들여야 할 것으로 보입니다. 특히 SDLC 내에 빠른 웹 서비스 개발에 비견될 만큼 빠른 보안점검이 가능한 프로세스의 투입을 위해서는 앞으로도 험난한 길이 될 것입니다.
* 접근성 측면과 손쉬운 사용, 결과의 이해를 위한 인력의 확보등이 어려운 점이 될 것입니다.
위의 내용 처럼 서비스 자체에서의 솔루션을 이용한 부분과 근본 문제를 수정 하려는 두 가지 대응 흐름이 있습니다. 솔루션을 이용한 근본 취약 부분을 찾아서 소스코드의 문제를 수정하는 방향과 현재 발생되는 공격이 유효하지 않도록 무력화 시키는 Filter 부분이 있는데 두 가지 모두 한계를 지니고 있습니다. Filter의 경우에는 우회가 가능한 패턴 유형이 발견 될 수 있다는 점과 기존의 정상 서비스 트래픽에 대한 제한을 지닐 수 있다는 점입니다. 여기에서의 Filter 부분은 Web Firewall과도 동일한 관점에서 볼 수 있습니다.
또한 솔루션을 이용한 취약 부분 진단에 대해서는 고비용, 대형 사이트 진단 불가 , 도메인 스캔의 제한 , 속도의 문제로 인해 사용이 어려운 측면이 발생 합니다.
( Web Firewall 등에 대해서는 별도 언급 하지 않겠습니다. 도입시 마다 설정 변경이나 Customizing 없이 사용 가능한 제품은 없습니다. 어쩌면 소스코드 수정이 휠씬 빠를 수도 있는 Customizing이며 공격 패턴이 변경 되면 처음 부터 다시 설정 해야만 합니다. - 근본 문제 제거와는 관련 없는 부분이며 임시방책일 뿐이라 논의 하는 것은 부적절하다는 개인 판단입니다. )
빈익빈 부익부.
가난한 기업들과 여력이 없는 기업들을 위한 해결 방안은 어디에도 없습니다. 그나마 전문성을 지닌 인력이라도 있다면 이런 문제를 해결해 보겠으나 인력도 없으니 설상가상인 상태에 진입합니다. 앞으로도 오랜 기간 동안 대상이 될 것으로 예상 됩니다.
개인적인 예상으로는 향후 2~3년간은 이러한 대규모 악성코드의 유포에 의해 매우 시끄러울 것이고 특별한 해결책도 찾기 어려운 상황이 계속 될 것입니다. 그 이후에는 또 다른 부분으로 전이가 될 것으로 예측됩니다.
부유한 기업들은 많은 비용을 투입하여 장비를 도입하고 소스코드에 대한 진단과 컨설팅등을 받습니다. 그러나 빈자들의 서비스를 통해 유포되는 악성코드들은 주로 부유한 서비스 기업을 노리고 있습니다. 이 점에 대해서는 해결책이 거의 전무 하다고 볼 수 있습니다.
문제의 해결을 하기 위해서는 세계의 인터넷 환경을 일시에 ( 상당히 빠른 시간) 클린한 상태로 올려 줄 수 있는 부분이 필요하며 자신만의 서비스를 벗어나 전체적인 시각을 가지고 움직일때 자신의 서비스에게로 오는 위험을 줄 일 수 있습니다.
말그대로 네트웍 환경은 위협도 연결이 되어 있기 때문입니다.
빈자들을 위한 보안도구들은 언제쯤 출현 할수 있을까요? 상용도구의 정확성 만큼을 보유한 저렴하고 접근성이 뛰어난 도구의 출현이 현재의 상황을 좀 더 빠른 시기에 진화 할 수 있을 유일한 방안이라 생각 합니다.
전술과 전략이 있습니다. 개개의 싸움을 하는 전략은 현재대로 진행 하고 상호협력을 강화할 방안을 찾아야 하며 ( AV의 대응 , Scanner , Web Firewall, Vendor의 대응) 더불어 가장 중요한 전술적인 차원의 큰 방향성이 필요 합니다.
큰 방향성 차원에서 공격의 범주를 최대 확산이 불 가능 하도록 일정 수준 이하로 묶음으로써 피해의 광역화를 막는 것이 가장 큰 이슈가 될 것이고 가장 필요한 관점이 아닐까 생각 합니다. 전술적으로 확산 범주를 좁히기 위해서는 가장 필요한 것이 문제점을 찾을 수 있는 접근성 뛰어난 저렴한 비용의 도구의 확산이나 서비스화가 우선 되어야 할 것이구요.
전술과 전략은 구분되어야 하며 현재의 전략도 부족한 면들이 있으며 커버 가능한 범위를 더욱 넓힐 수 있는 도구와 서비스의 출현들이 심각하게 필요하며 전술적인 관점에서는 거대한 악성코드 유포 네트웍을 소규모 단위로 분산 시킬 수 있는 정책적인 방향성이 필요합니다. 수많은 이해가 상충되는 야생의 시대에 이런 협력이 필요한 전술과 전략은 구사되기 어려운 점들이 많을 것입니다.
따라서 앞으로도 위기는 계속 지속 될 것입니다. 모든 프로그래머가 Secure한 코딩이 일상화 되기 전까지는 상당히 오랜 시간 위기는 지속 될 것이고 이제 세계적인 시작은 큰 흐름이 벌써 시작된 상황이라 예측 됩니다.
전술적인 노력도 전략적인 행위도 반드시 존재해야 하지만 지금은 Malware의 전략적인 흐름에 지리멸렬 하는 모습만을 보이고 있을 뿐입니다.
- p4ssionable security explorer - 2008.9




