태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

- 보안뉴스에 기고한 컬럼입니다. 다른 컬럼들도 계속 연이어 나올 예정입니다. 

 

SQL Injection에 관련된 글을 쓰기 시작한지가 벌써 6년이 지났음에도 불구하고 현재의 문제는 해결될 기미를 보이지 않고 있다. 현재는 더 세계적으로 확산이 되고 있고 문제가 커지고 있는 양상이다. 중요한 사실로 언론 지상에 보도되었던 50만대 가량의 웹서버 (정확하게는 DB 서버의 권한이 획득 당하여 웹서버의 소스코드가 변조된 케이스를 의미한다. ) 감염 이슈는 사실상 일상적인 일이 되어 버렸다.

 

산술적으로 하나의 웹사이트에 5명의 사용자만 방문 한다 하여도 악성코드 유포의 기회는 250만개의 클라이언트에 영향을 미친다. 제로데이 (패치가 나오지 않은 취약성) 공격을 감행 할 경우 성공률은 대폭 높아지게 되고 50%의 성공률로만 잡아도 125만대의 PC를 이용하는 사용자 정보는 언제든지 유출 될 수 있는 상황에 직면해 있다. 모든 상황은 최소치로 잡았을 경우에도 이와 같다.

 

국외의 해킹사고들은 국내만을 피해서 발생 할까? 그렇지 않다. 외면되고 알려지지 않는 많은 사건사고들은 조용하게 수습이 되고 언제 그랬냐는 듯이 사라진다. 근본 문제는 해결 되지 않은 상태에서 단순한 배포 링크만을 제거하는 것으로 문제를 쉽게 해결 했다고 한다.

 

지금의 공격은 오로지 금융정보의 유출과 게임 관련된 사용자 정보의 유출에 목적을 두고 있다. 환금성이 있으며 실질적인 이득을 얻을 수 있기 때문에 타켓팅 된 것이다. 해외의 경우에는 온라인 게임 뿐 아니라 금융 관련된 정보들도 손쉽게 획득 할 수 있도록 공격코드가 구성이 되어 있다. 국내의 경우는 금융 관련된 정보보다 온라인 게임의 사용자 계정 정보가 대부분을 차지하는 것이 다를 뿐이다. 가끔 눈 먼 공격툴이 전세계의 웹서버를 공격하여 국내의 게임 계정을 얻기 위한 코드를 설치하는 일도 비일비재하게 일어난다.

 

알려지지 않는 많은 위험들은 이제 실제화 되어 세상에 드러나있고 공격자들은 보다 자연스럽게 공격을 하고 있다. 대규모 해킹이 발생되면 언제나 그렇듯이 전세계의 백신회사들은 바빠진다. 해당 공격 도구의 패턴을 분석하고 업데이트 하느라 분.초를 다투며 대응을 한다. 언제까지 이럴 수 있을까? 지금의 공격도 소수의 공격자가 운용하는 자동화된 공격도구에 의해 발생 되지만 대응은 수천. 수만 명의 전문인력이 전세계적으로 대응해야 하는 비효율적인 양상의 극치를 달리고 있다.  공격자들은 자유자재로 공격코드를 변경한다. 새로운 공격 가능한 취약성이 나온다면 바로 다음날쯤이면 전 세계의 취약한 웹서비스를 통해 악성코드들은 유포가 된다. 가히 리얼타임이라고 하지 않을 수 없다.

 

효율적인 악성코드 설치 매커니즘을 일찌감치 획득한 공격자들은 보다 자동화 되고 효율적인 공격 방법들을 모색하고 있다. asprox라고 불리는 웹으로 유포되는 봇넷의 경우에도 asp+mssql 조합만을 공격 하였으나 확대는 시간 문제라고 볼 수 있다. 그때에는 감당하기 어렵고 대응할 여력조차 없는 상황에 직면 할 수 밖에 없다. 그 시간은 이제 너무나도 가까워져 있다. 근본적인 대응책도 고민을 하지 못하고 논의 되지 못하는 지금의 현실에서 공격도구의 대상 확대는 재앙 같은 의미를 지닌다.

 

일반적인 대응 흐름

 

일반적인 SQL Injection에 관련된 설명이라면 전문가들에게는 식상할 것이고 개발자들 조차도 이젠 심심치 않게 들어본 내용이 될 것이다. 매번 악성코드 유포에 따른 대응은 언론 지상에서 발표가 된다. 국내의 악성코드 대응 흐름은 너무나도 간단 명료하다. 기본 전제는 사건이 있어야 대응을 한다는 점이다.  사건이 발생 하지 않으면 그 어떤 것도 비용으로 분류가 되며 행동이 발생 되지 않는다.

 

대표적인 악성코드 유포에 따른 대응 흐름을 간략히 보면 다음과 같다.

 

1.     신규 공격코드를 이용해 SQL Injection 자동화 공격도구로 취약한 웹 서비스들에 대해 직접적인 공격이 발생 된다.

2.     웹 서비스를 통해 악성코드가 유포된다.

 

A.     유관기관에서는 악성코드 신고 접수 시에 악성코드 유포하는 도메인에 대한 차단을 진행한다.

B.      백신업체에서는 악성코드의 패턴을 이용해 대응하는 백신을 제작하거나 업데이트 한다.

C.      신규 취약성을 이용할 경우에는 패치를 설치 하라고 언급이 되고 패치가 나오지 않을 경우에는 그냥 기다린다.

D.     악성코드가 웹을 통해 감염이 되고 주변 네트워크로도 확산이 되는 것과 같은 특이한 상황의 경우 별도의 방안들을 강구하도록 한다.  ( ARP Spoofing)

 

3.     악성코드의 변형이 유포 될 경우 – 2번 항에 있는 A,B,C 항목은 계속 반복이 된다.

 


여기서 1번 항목은 일반에게 잘 알려지지 않는다. 2번 항목에 대한 내용들만 계속 루프를 돌 뿐이다. 대책으로는 모두 사용자 PC의 안정성을 탓하거나 패치부족, 계정관리의 문제들만을 언급할 뿐이다. 과연 이것만으로 지금의 문제를 정리 할 수 있을까?

 

무언가 빠진 것 같지 않은가?.

진짜 문제는 악성코드가 유포 될 수 있도록 취약성을 간직한 웹서비스들 임에도 대책은 부실하다.

어떤 문제로 인해 공격을 당하는 것은 전문가나 일정 수준에 도달한 사람들이라면 모두 숙지하고 있다. 중요한 것은 어디에 문제가 있느냐 하는 것이다. 어디에서 어떤 부분을 어떻게 해야 하는 모든 과정은 지금 생략 되어 있다.

 

여러 가지 대응 서비스들이 있으나 확산의 한계가 존재하고 비용 문제 또한 만만치 않다. 여기서의 비용은 여러 가지 비용을 산정 할 수 있다. 소스코드의 대폭적인 개선과 보안기능이 강화된 템플릿의 활용, 보안진단 인력, 진단도구의 활용, 웹 보안 도구의 도입 모두 상당한 비용을 수반 할 수 밖에 없다. 일시적인 비용 이외에 지속적인 관리비용 또한 만만치 않게 소요된다. 또 이런 비용과 서비스를 이용해서 보안성을 높인다 하여도 웹 소스코드가 변화 없이 그대로 있었던 경우가 있는가? 매번 변화되고 짧게는 하루에 몇 번, 길게는 몇 달에 한번씩이라도 웹 서비스는 개선이 되고 코드가 갱신된다. 문제는 다시 시작이 된다. 비용대비 효율이라는 측면에서 답이 나오지 않는 해결책이 계속 될 수 밖에 없다.

 

문제의 핵심을 보라

 

악성코드의 변종은 날마다 최대치를 갱신한다. 만약 탐지 건수로만 따진다면 매년마다 신기록을 넘어서고 있을 것이다. 동일한 악성코드가 전 세계에서 발견이 되고 그 숫자는 가공할 만큼의 수치가 발견 될 수 밖에 없다. 왜 이렇게 확산이 되고 범위가 넓혀지는가에 대해 고민을 하고 방안을 마련해야 한다. 그러나 현실은 난감한 상황이다.

 

자유로운 공격자들의 공격에 단순한 대응만으로도 허덕일 지경이니 원인제거를 위한 활동은 단순한 허언에 지나지 않는다. 원인제거 없는 단순한 대응은 보안분야뿐 아니라 IT 생태계 자체가 심각하게 교란되고 혼란해 질 수 밖에 없는 상황으로 점점 더 빨리 달려갈 뿐이다.

 

문제의 핵심은 입력값 검증에 대한 절차 준수와 입력값 검증을 손쉽게 확인 할 수 있는 도구나 서비스가 관건이 될 것이다. 도구나 서비스를 활용해 개발자들이 점진적으로 위험성을 제거해 가고 전체적인 서비스에 존재하는 문제들은 일률적으로 제거 할 수 있도록 가이드 되지 않는 한 이 문제는 인터넷이 사용되는 내내 계속 될 수 밖에 없는 문제이다. 시간 지나면 사라질 문제가 절대 아니다. 2010년 상반기를 결산하는 HP TopRisk Report를 보면 Network 단위에서 발생되는 공격의 80% 이상이 Web application을 노린 공격이다.

(http://dvlabs.tippingpoint.com/toprisks2010 )

공격의 측면은 두 가지로 진행이 되어 왔고 앞으로도 진행 될 것이다.

 

1. 전파를 위한 도구의 고도화 및 확장 ( Mass sql injection tool – MSSQL, Oracle, Mysql)

2. 클라이언트 침입을 위한 다양한 어플리케이션의 제로데이 발견 ( IE, FF, Safari, Flash, PDF …)


우리는 지금 1번에 대한 대응은 생각도 못한 상태에서 클라이언트 침입을 확인 할 수 있는 최소한의 도구만을 지녔을 뿐이다. 물론 이마저도 없는 나라들도 부지기수 이지만

도구가 활용되는 통로를 어떻게 최소화 하고 줄일 수 있느냐에 따라 제로데이의 영향력도 축소가 될 것이다.

 

지금과 같은 대응이라면 매일매일 동일한 대응의 지루한 반복만이 계속 될 뿐이며 나갈 수 있는 정보들은 모두 빠져나가고 악의적으로 활용 될 수 밖에 없으며 결국 서비스 자체 뿐 아니라 서비스의 생태계에도 충분히 큰 영향을 줄 것이다.

 

이미 오래 전 예상된 바이고 이젠 그 결과를 모든 사용자가 간접적으로 느낄 수 밖에 없을 것이다. 문제 발견 이후의 클라이언트에 설치된 어플리케이션의 패치들은 이제 빠른 확산 도구를 갖추고 있는 상태에서 매번 소 잃고 외양간 고치는 것이 반복 될 수 밖에 없다.  빠른 확산 도구인 웹 어플리케이션의 취약성을 각 개별 사이트 마다 찾아서 보완을 하지 않는다면 이 도구는 계속해서 확장하여 종래에는 감당하기 어려운 상황으로 갈 수 있다. 

 

이젠 전략적이며 적극적으로 웹어플리케이션에 존재하는 문제들을 제거하고 보완 할 수 있는 지속적인 방법과 도구를 찾고 활용 함으로써 늦었지만 근본 대응을 모색 할 때이다. 전 세계적으로..

 

-       바다란 세상 가장 낮은 곳의 또 다른 이름

 

* 여기에서의 웹 어플리케이션은 개발자가 다양한 언어 ( asp ,php ,jsp, aspx )를 활용하여 목적에 맞도록 Database와 연결 하고 그 결과를 사용자에게 보여주는 홈페이지를 의미한다. 대부분의 기업 및 서비스 홈페이지가 그 범주에 해당된다.

 

Sql injection 에 대한 설명들은 필자 블로그의 컬럼들을 참조.

Mass sql injection 대응과 현실 - http://p4ssion.com/200
SQL Injection
공격 변화 - http://p4ssion.com/207
Posted by 바다란

댓글을 달아 주세요

세계 50만대 이상의 웹 서비스 봇넷 배포지로.. 그리고..

 

관련기사: http://www.thetechherald.com/article.php/201033/6024/TTH-Labs-New-SQL-Injection-attack-hits-thousands-of-sites

 

일상적인 일중의 하나로 치부되고 있는 대규모 해킹은 지금도 맹위를 떨치고 있다.

Mass SQL Injection 도구에 의한 해킹 피해는 나날이 도를 더해가고 있는 상황에서 우리가 할 수 있는 일은 무력하기만 하다. 규모가 있는 사이트들은 자체 역량 및 외부 보안업체의 도움을 통해 보안성을 강화하고 문제를 해결 하지만 현재 피해를 입는 사이트들은 일부 보안이 된 사이트들을 포함하여 역량이 부족한 사이트들이 피해를 입고 있다.

 

결국 피해는 개인에게로 돌아오고 사회적 도구로서 자리매김을 확고히 한 IT 서비스의 근간을 흔들게 될 것임은 자명하다.

 

피해의 순서는 웹 서비스 정보 유출 -> 웹 서비스를 통한 악성코드 유포 -> 개인정보 유출 -> 다시 웹 서비스에 대한 Abusement로 이어진다. 유출된 사용자 정보는 금융 정보 및 ID/PW를 막론하고 다시 재활용되고 혼란스러워진다.

 

이미 지난 글에서 (http://p4ssion.com/241) “웹 서비스 보안의 불편한 진실이라는 항목으로 피해의 심각성과 향후의 문제들에 대해서 기술한 바 있다. 동일한 상황은 계속해서 이어 질 수 밖에 없다. 구글에 의해 표시된 악성코드 감염 수치는 55만개 이상의 웹 서비스에서 악성코드가 유포되고 있음을 나타내고 있다.

 

Malware count

Malware count

또한 국내의 사이트로 한정을 하면 1만대 이상의 웹 서비스를 통해 악성코드가 유포되는 현실을 볼 수 있다.

사용자 삽입 이미지

악성코드의 특성에 대한 내용은 이미 별도의 블로그(http://www.moonslab.com/1072)에 정리된 내용이 있어서 상세한 분석은 생략하며 특징만을 간략하게 언급 하도록 한다. 기술적인 분석에 대해서는 SANS의 분석 내용을 참고 하면 된다. (http://isc.sans.edu/diary.html?storyid=9397)

 

특징

 

현재 악성코드가 연결된 사이트는 .ru 라는 러시아 도메인을 가지고 있다. 그러나 등록된 주소는 중국으로 되어 있으며 실제 주소도 중국으로 판명이 되고 있다. 일차적인 특징으로 볼 수 있는 내용인데 중국의 공격자들이 이제는 도메인을 위장하여 손쉽게 판별되는 .cn 도메인을 넘어서 타 국가의 도메인을 활용하고 있음을 볼 수 있다.

 

두 번째로는 설치되는 악성코드의 다양함을 들 수 있다. 실제 분석은 되지 않았지만 구글에서 파악된 기본적인 내용을 살펴 보면 13개의 Trojan 9개 이상의 Exploit 코드들이 유포 되었음을 알 수 있다.  (http://www.google.com/safebrowsing/diagnostic?site=nemohuildiin.ru/&hl=en )

 

세번째로는 봇넷 채널을 직접 연결하여 Zeus Botnet과 연결된 가능성이 매우 높다는 점이다. 웹을 통해 악성코드를 유포하고 감염된 개인 PC들은 봇넷 Agent로 활용이 되는 것이다. 금융정보 및 키입력 정보, 화면 정보를 모두 유출 시키며 원격에서 직접 통제가 가능한 도구로 손쉽게 활용이 된다는 점이다.

 

Zeus Botnet은 국내에는 일반인들에게 잘 알려져 있지는 않지만 해외에서는 금융적인 피해가 직접 발생 하고 있어서 신경을 많이 쓰고 있는 Botnet이라 할 수 있다.

 

Black Market에서 가장 순도 있고 가치 있는 정보를 빼내고 직접 활용이 가능하다는 점에서 가치가 높은 BotNet 이라고도 불려 진다.

 

기존에 존재하던 웹 보안 장비들은 대부분 공격패턴을 인식하여 차단하는 유형으로 구성이 되어 있다. 그러나 공격기법은 계속 변화한다. 대소문자를 섞어서 쓴다든지 ASCII 코드값을 직접 입력 하는 유형등과 같은 변형된 공격기법은 헤아릴 수도 없이 많이 존재한다. 수없이 많은 패턴을 유지하는 보안장비들은 그만큼 속도가 느려질 수 밖에 없으며 보안적인 위협을 막기 위한 목적으로 도입한 장비들이 본 서비스의 접근 속도를 느리게 하는 요소로서 작용 할 수도 있다.

 

국내의 보안 현실 및 세계적인 보안의 근본적인 문제점은 대중과는 어느 정도 거리가 있는 사후 대응의 측면에만 집중하는 것이 현실이다. 근본적인 유포망을 없애지 않고서는 악성코드로 인한 개인 정보 유출의 피해와 또 유출된 개인정보로 인한 서비스망의 교란과 혼란은 개인과 서비스를 운영하는 기업 모두에게 큰 손실이 될 수 밖에 없고 문제는 점차 더 커질 수 밖에 없다.

 

 

 

빈익빈 부익부

 

빈익빈 부익부의 현실은 깊어만 간다. 현재의 IT서비스의 현황을 살펴보면 빈자들의 서비스에는 보안을 신경 쓸 여력이 없고 서비스 운영에만 중점을 두고 있어서 실질적인 이득 창출과는 약간 거리가 있게 느껴지는 보안 분야는 등한시 되고 있는 실정이다.

그러나 조금 만 더 멀리 보면 보안은 기업의 이익을 보호하고 신뢰를 형성하여 장기적인 안정성을 유지할 수 있게 한다는 점에서 큰 이득이 될 수 밖에 없다.

 

국내 및 해외의 보안 현실과 IT 환경을 맞추어 보면 가난한 기업들은 계속 해서 위험에 노출 되고 여력이 있는 곳들은 빠르게 문제점을 보완하고 비용을 적극 투자한다.  보안 관련된 기업측면에서는 모두가 수익을 창출 할 수 있는 사후 대응에 머물러 있으며 사전 대응과 위험요소에 대한 관리라는 측면에서는 활동이 미미할 뿐이다.

 

오래도록 가지고 있는 잘못된 편견중의 하나는 사고가 발생 한 뒤에야 중요성을 인지한다는 점이다. 그래서 국내외를 막론하고 수없이 많은 보안회사들은 사후대응에만 중점을 두고 있는지도 모른다. 이제 시대는 충분히 바뀌었고 많은 변화가 있었다. 변화를 따라가지 못한다면 소도 잃고 외양간의 기둥마저 무너질 수도 있다.

 

개인 PC를 공격하는 공격도구가 윈도우 시스템에 IE 사용자만으로 한정이 될까? 이미 작은 흐름에서는 타 운영체제 및 별개의 도구를 사용하는 시스템에도 충분한 시도들이 있었고 현재 공격이 눈에 띄게 드러나지 않는 것은 노력 대비 성과가 부족하기 때문일 것이다.

 

가난한 기업과 서비스 운영주체들은 힘이 없다. 역량이 부족하고 전문적인 지식의 도움을 얻고자 해도 돈이 없다. 또 문제를 수정 하고자 해도 어디가 문제인지 어떻게 고치면 되는지에 대한 협력은 절대적으로 부족하다. 비단 국내만의 문제가 아닌 전 세계적인 문제이다.

 

이젠 시대의 흐름에 맞게 변화를 크게 주어야 할 때이다.

 

역량이 있는 기업들 조차도 잦은 횟수로 변경이 되는 웹 서비스의 관리와 보안성에 대해 어려움을 겪고 있는데 하물며 가난한 기업과 서비스들은 무엇을 할 수 있겠는가?

 

국가나 산업차원에서 저렴하고도 신뢰 할 수 있으며 접근성이 높은 서비스는 반드시 제공 되어야만 하고 이제 머지 않아 출현 해야만 현재의 인터넷과 IT 서비스의 위기 상황을 개선 시켜 나갈 수 있을 것이다.

 

 

앞으로 발생 될 수 있는 위험들은 위험수준을 잘 관리하고 있는 기업들에게도 동일한 영향을 미칠 것이다. 대규모 웹 서비스 해킹을 통해 악성코드를 유포하는 행위와 서비스에 공통적인 요소를 공격하여 대규모 유포를 하는 유형으로 나눌 수 있을 것이다.  기발한 공격 기법은 이제 상상력의 한계에만 그치지 않는다.

 

http://www.eweek.com/c/a/Security/Infected-Widget-Compromises-Parked-Domains/

위의 기사는 Network Solution사에서 운영하는 Widget을 해킹하여 악성코드를 유포한 기사이며 현재는 중지 되었지만 단순히 Widget 배포처를 해킹함으로써 최소 50만개에서 최대 500만개 이상의 도메인을 통해 악성코드가 유포 되었음을 보여 준다.

 

빈익빈 부익부의 틀은 IT사회에서도 정확하게 적용이 된다.

그러나 이제 피해는 빈자와 부자를 가리지 않을 것이다.

시스템과 체계를 정비 하지 않는다면 앞으로도 오랜 기간 지속 될 수 밖에 없다.

 

특정 서비스의 구조적인 문제를 공격하는 웜이나 공격코드들은 2005년부터 있어 왔다. 앞으로 트위터나 페이스북의 서비스에서 문제가 생긴다면 그 피해 대상은 얼마나 될까? 더불어 공격코드가 스마트폰별 공격코드와 OS별 공격코드를 가지고 있을 때 피해 양상은 얼마나 될까?

 

상상하기 어려울 것이다. 그러나 아무도 눈을 뜨고 보려 하지 않는다.

 

빈자를 위한 도구가 결국엔 모든 것을 살리게 될 것이다. 거기에서부터 시작을 해야 하는데 아직 세계는 손쉽게 정보를 얻고 일정 수준이상의 기본지식이 필요함을 인식하지도 못하고 있다.

 

다음 블로그 글은 아마도 구조적 해킹 ( 일반적으로 서비스 어뷰징으로 불리워 지는 것)에 대한 것과 국외기업들의 서비스 연관, 악성코드와의 관련 등에 대해서 한번 정리해 볼 생각이다.

 

 

 -twitter: @p4ssion  -바다란 세상 가장 낮은 곳의 또 다른 이름

Posted by 바다란

댓글을 달아 주세요

 -zdnet 게재 컬럼입니다.

과연 인터넷 웹 서비스는 안전한가? 

일상적으로 접속해 정보를 상호 소통을 하는 중요한 매개체로 자리잡은 웹서비스는 그만큼의 신뢰도를 가지고 있다고 할 수 있을까?

여기 보려 하지 않고 외면 하고자 하는 불편한 진실이 있다. 이미 오래된 이야기지만 지금까지도 진행형 이고 앞으로도 심각성이 더 높아 질 수 밖에 없는 불편한 진실이다. 아직도 많은 이들의 관심 밖에서 이뤄지는 현실이 여기있다.

안전한 웹 서비스로 가는 길은 멀고도 험하다. 그러나 대부분이 쉽게 생각한다. 공격자들은 항상 그 빈틈을 노리고 끊임없이 공격한다. 일반 인터넷 사용자들은 자신의 아이디와 패스워드가 노출 되어 금전적인 손실이 발생 하거나 피해를 입었을 경우에만 민감하게 반응한다.

 

개인 PC에 설치된 악성코드의 문제를 개인 사용자의 부주의로 돌리는 것은 잘못된 것이다. 이제는 기본적인 보안 대책을 철저하게 실천한다해도 악성코드로부터 안전하지 않다.

어떤 접속 도구를 이용하던 웹 서핑을 하면서 자료를 확인 하고 정보를 공유하는 지금의 시대에 안전한 상태로 개인 PC를 유지 하려면 인터넷을 하지 말아야하는 수준이다. 사용자PC의 안전한 설정은 가능성을 조금 줄이는 옵션일 뿐이다.

왜 이런 상황까지 전개가 된 것일까?

일단 기본 설명에 대한 이해를 참고 하도록 한다.

대규모(Mass) SQL 인젝션(Injection)에 관련된 설명은 다음을 참고 한다.
Mass sql injection 대응과 현실 -
http://p4ssion.com/200
SQL Injection 공격 변화 -
http://p4ssion.com/207 

본시 SQL 인젝션 공격은 2005년 무렵부터 자동화된 도구를 이용하여 처음 시작이 되었다. 이전에는 공격자의 수작업에 의한 소위 타켓팅한 공격만이 있었다. 자동화된 도구에 의한 공격은 한국이 최초의 테스트 베드가 됐고 그 시작은 2005년부터다.

자동화된 도구를 이용한 SQL 인젝션 공격은 2007년을 지나면서 다른 양상으로 전개 되기 시작한다. 단일 사이트에 대한 자동화된 공격을 벗어나 대규모 도메인에 대한 자동화된 공격으로 전이가 된 것이다. 차이점은 자동화된 공격 도구의 대상을 단일 도메인으로 지정하는 것이 아니라 대규모 도메인 혹은 구글과 같은 검색엔진을 통한 무차별적인 공격으로 방향을 전환 했다는 점이다.

단일 서비스에 대한 공격으로 한정이 될 때는 공격자도 그만큼 많은 노력을 기울여서 여러 사이트를 반복해서 공격 할 수 밖에 없었지만 수집된 도메인 리스트에 기반한 공격과 검색엔진을 동원한 공격은 국가와 지역의 차이를 넘어서 무차별적인 서비스 공격으로 나타나고 있다.

서비스를 공격한 후에는 웹 서비스에 악성코드를 유포하는 URL을 삽입한다. 물론 데이터베이스안에 있는 내용은 관심 밖이다. 이미 가져갈 만큼 다 가져 갔는데 또 가져갈 필요성이 있을까? 이젠 데이터베이스에 저장된 내용이 아닌 방문자의 정보가 필요할 뿐이다.

웹 사이트 방문자의 PC에는 웹 사이트에 방문 할 때 마다 악성코드가 다운로드가 되고 조금 신경을 쓰면 방문자의 PC 운영체제에 따른 공격이 발생되게 된다.

이제 개인 사용자가 금융거래 사이트 또는 인터넷 서비스에 접근 할 때 마다 사용자가 입력하는 키입력 정보는 공격자에게로 전송된다. 때론 봇넷 에이전트를 동원해 분산서비스거부(DDoS) 공격을 하기도 하고 협박을 하기도 한다. 공격자들은 유출된 개인정보를 이용해 블로그나 카페, SNS 매체에 광고를 하는 등 다양한 방식으로 금전적인 이득도 추구하고 있다.

국내 금융권의 경우 다단계 보호수단들이 있으나 해외 금융기관들은 보호수단이 없거나 미비한 경우가 많아  피해 금액이나 사례는 국내보다 해외에서 더 큰 문제로 대두되고 있다.

현재의 대규모 SQL 인젝션 공격 동향을 살펴보면 두 가지 유형을 살펴 볼 수 있다. 좀 더 세밀하게 다듬어진 공격과 무차별적인 공격으로 구분 할 수 있는데 그 특징은 다음과 같다.

1. 웹 서비스의 소스를 일부 수정한다. *.js 와 같은 스크립트 유형의 코드를 웹 서비스 소스에 심어 두고 웹 사이트 방문자가 방문 할 때 마다 해당코드가 자동으로 실행 되도록 한다. 스크립트 코드에는 원격에서 사용자의 PC의 권한을 획득하기 위해 악성코드들이 다운로드 되고 실행이 된다.

2. 무차별 공격은 DB 테이블에 악성코드를 다운로드 하는 스크립트를 무작위로 삽입 하는 방식으로 이루어진다. 이 경우 전체적인 공격현황이 검색을 통해 손쉽게 드러난다. 그러나 공격자의 개입 없이도 자동적인 실행과 반복이 가능함으로 대규모 피해가 수반되고 있다. 2와 같은 경우는 많은 웹 서비스들이 데이터베이스에 들어 있는 콘텐츠를 일반 텍스트가 아닌 HTML로 화면상에 전환해 뿌려줌에 따라 자동적으로 실행된다.  텍스트로 읽어 들이는 경우에는 방문자 PC에 있는 브라우저 상에 스크립트 코드 링크들이 중간중간 삽입된 형태로 깨어지는 것을 확인 할 수 있다.

1번과 같은 세밀한 방식은 안티 바이러스 솔루션을 통해서 공격감지가 가능하다. 단 제로데이 공격이 아닐 경우에만 탐지가 가능한 경우다. 하루가 다르게 수많은 애플리케이션에서 취약성이 발견되는 현재에는 탐지 되지 않는 경우가 점차 증가 할 수 밖에 없다. 2번의 경우는 관리자가 손쉽게 데이터베이스 변조 여부를 확인 할 수 있으나 데이터 복구에 시간이 걸리는 문제들이 발견 되고 있다.

현상적으로 발견 할 수 있는 SQL인젝션 공격의 폐해는 무차별적인 공격의 경우 간략하게 검색엔진을 통해서 확인 할 수 있다. 최근까지 발견된 악성코드 유포 링크를 기준으로 검색한 결과는 상상 이상의 웹 서비스들이 해킹을 당하고 악성코드 유포에 이용이 되고 있음을 확인 할 수 있다.

22dnf.com/ff/y.js (국내용) 31,200개
www.dbrgf.ru/script.js (국내외용) 2,810개
mysy8.com/1/1.js (국내용)
s.ardoshanghai.com/s.js (국내용) 1,840,000개
sion.or.kr/iis.swf (국내용) 253,000개
bq346.cn (국내용) 4,930개
mekiller.com/1/1.js (국내외용) 27,500개
*.postfolkovs.ru/js.js (국외용) 125,000개
4589.in/yahoo.js (국외용) 254,000개
s.lbs66.cn/kr.js (국내용) 262,000개
s1.cawjb.com/s.js (국외용) 2,030,000개
s1.cawjb.com/kr.js (국내용) 950,000개
www.adst.ru/ads.js (국외용) 2,280,000개
www.24aspx.com/script.js (국외용) 12,400개
www.dnf666.net/u.js 전체: 530,000 / 국내: 463,000
www.adw95.com/b.js 전체: 61,200 / 국내: 3,940
www.nihao112.com/m.js 전체: 22,000 / 국내: 6
www.update34.com/b.js 전체: 16,500 / 국내: 6
기준 검색 일시: 2010. 7.1

*감염수치는 근사치로 활용이 되어야 하고 각 검색 시점에 따라 다를 수 있다. 또한 수치 확인에는 검색엔진의 검색결과를 이용 하였으므로 중복된 결과도 일부 존재 할 수 있다. 그러나 대강의 상황을 유추 할 수 있다는 점에 있어서 충분한 인용가치는 있다고 본다.

현재 검색 할 경우에는 차이가 많음을 확인 할 수 있다. 그러나 수치 차이는 검색엔진에서의 필터링과 대응을 통해 조회 시점의 수치보다 낮아 질 수 밖에 없다. 악성코드 유포 링크들이 여전히 일부 서비스들에 남아 있다는 것은 문제가 발생 된 이후에도 전혀 수정이 안되었음을 의미한다. 많은 서비스들이 공격이 가능했던 근본적인 소스코드 수정은 하지 않고 추가된 악성코드 유포 링크의 제거에만 신경을 쓰고 있는 것이 현실이다. 새로운 SQL 인젝션 패턴이 발생 될 경우에는 또 다시 몇 백 만대의 서비스들에서 악성코드를 유포하는 현황을 앞으로도 손쉽게 살필 수 있을 것이다.

악성코드를 유포하는 링크들의 업데이트 현황 중 일부는 여기에서 (http://securedmz.com/reference.php) 확인이 가능하다. 이 링크도 일부분임을 기억하자. 공격자 몇 명에 의해 생성되는 링크일 뿐이다. 실제 규모는 휠씬 더 심각한 상황 일 수 밖에 없다. 드러난 것은 10% 미만이라고 본다. 또한 검색엔진에 나타나지 않는 세밀한 공격은 통계치의 밖에 있다.


화면 상에 보듯이 검색결과의 차이가 상당함을 볼 수가 있다. 가장 최근에 보고가 된 Mass SQL Injection 공격으로 삽입된 악성코드 링크는 b.js를 포함하는 링크이다. 검색 결과는 다음과 같다.

2010년 8월 현재 152만개의 서비스에서 악성코드 유포 흔적들이 있다고 나타나고 있다. 그러나 이 중에는 정확한 분석 또는 단순 질의도 포함이 되어 있을 수 있다. 그러나 1/3만 유효한 링크라고 잡아도 50만대의 웹서비스에서 악성코드를 유포하는 것이다.

하루 방문자를 최소화 한다고 하여도 50만대의 웹 서비스에 최소 5명씩만 방문 한다고 하여도 250만대의 PC가 (실제는 휠씬 더 많을 수 밖에 없다.) 영향을 받는 것이다. 공격 성공률은 제로데이 (패치가 나오지 않은 공격) 공격일 경우 매우 높을 것임은 명확하다.

단순한 일회성의 공격이 아니다. 공격자들은 새로운 공격코드를 몇 십 만대에 또 다시 넣을 필요 없이 단순하게 악성코드를 다운로드 받는 주소에 있는 악성코드만을 새로운 것으로 바꿈으로 영향력을 가지게 된다.

전 세계의 보안 관련된 회사들을 단지 2~3명 정도의 공격자가 손쉽게 농락 할 수 있는 상황이 된 것이다.

공격방법 및 활용 시나리오를 간략하게 요약하자.

1. 악성코드를 유포할 숙주 도메인을 확보한다. 가급적 여러 개의 도메인을 확보. 위의 예에서는 b.js 파일이 올려진 사이트가 되겠다.

2. 검색엔진 및 리스트를 통해 Mass Sql Injection 공격을 자동으로 진행 하도록 하고 공격 성공 시에는 악성코드 유포 주소를 삽입한다. (소스코드에 링크 추가 또는 데이터베이스 테이블 내용 변경)

3. 이제 웹서비스를 통해 유포되는 악성코드들이 웹서비스 방문자의 PC에 설치 되기만 기다리면 된다.

4. 사용자들은 웹브라우저를 통해 웹사이트에 접근 하는 것 만으로도 악성코드가 다운로드 되고 실행 될 수 있는 환경이 된다. 이후 키입력은 모두 유출되고 PC는 좀비 PC가 된다.

만약 백신 개발업체에서 대응 백신을 개발한다면 공격자들은 초기 b.js 안에 실행되거나 다운로드 되는 악성코드를 변경 한다.

새로운 취약성이 있다면 즉시 활용을 하게 된다. 평균 신규 취약성이 나온 이후 며칠이 걸리던 것에서 이젠 12시간 이내에 새로운 악성코드로 전환 되는 것을 확인 할 수 있다. 개인 사용자가 사용하는 백신이 업데이트 된다 하여도 웹 서비스에 들어 있는 악성코드 링크가 사라지지 않는다면 최소 12시간 이내에 또 다른 공격을 맞이 하게 된다는 이야기 이다.

싸움은 더 이상 신사의 싸움이 아니며 공개적인 영역까지 침범을 당하고 대응하기 어려운 상태에 빠져 있다. 공격은 광범위하고 폭넓게 퍼져 있다. 현재는 asp, aspx + Ms sql 에 대한 대규모 공격도구가 활성화된 상태이지만 다른 개발언어와 데이터베이스를 향한 도구도 이미 일반적이다. 대규모로 확산 되는 것은 시간 문제일 따름이다.

현실은 앞에서 언급 했듯이 엄중한 현실이나 대책은 현실적으로 역부족일 수 밖에 없다. 공격을 당하지 않기 위해 웹 서비스 단위에서 진행 되거나 할 수 있는 대책은 크게 4가지 정도로 볼 수 있다.

웹 방화벽과 소스코드 검사, 모의해킹, 웹 스캐너 도입을 통한 문제점 해결 과 같은 유형이며 개인 사용자를 위한 대책은 오로지 바이러스 백신 외에는 없는 현실이다. 각 대책 별 문제와 이슈는 간략하게 다음과 같다.

각 대책 별 문제
 
전제: 웹 서비스는 잦은 사이트 개편과 갱신이 수시로 발생된다 이 모든 과정에서 보안적인 위험을 걸러낼 수 있어야 하나 현재 보안전문인력을 운영하고 상시적인 검사 프로세스를 갖춘 곳은 국내의 1% 미만의 업체만이 가능한 상태이다. 그 업체의 경우에도 전체 사이트 문제를 수시로 체크 할 수는 없는 상태이며 6개월 혹은 1년 단위로 전체 서비스를 검사하는 정기검진의 형태로만 진행 한다. 웹서비스의 잦은 개편과 갱신을 절대로 따라 갈 수 없는 상태가 된다.

1. 웹 방화벽: 우회 공격에 취약하며 근본 문제 해결이 아님. 비용 및 관리의 문제 발생

2. 소스코드 검사: 시일이 오래 걸리며 전문적인 인력이나 전문업체의 도움을 받아야 됨. 비용과 시간의 문제가 발생됨.

3. 모의해킹: 모의해킹을 통해서는 모든 문제가 발견 되는 것이 아니라 해당 사이트의 권한 획득만을 한 이후 종료 되는 과정이 대부분임. 이후 수정에 대한 피드백 제공 불확실. 비용의 문제 존재

4. 웹스캐너 도입: 상대적으로 고가의 솔루션이며 전문적인 결과가 도출 됨으로 인해 스캐너 결과를 이해 할 수 있는 인력의 도입이 필요하며 스캐너 비용 자체도 외산과 국산 모두 고가의 가격으로 도입에는 부담이 있음. 더불어 즉시적인 검사가 어려움 (개발속도 보다 진단 속도가 늦는 경우가 다수 발생)

이제 대책은 전 세계의 웹 서비스 개발 프로그래머를 일정 수준 이상으로 끌어 올리고 상시적인 점검이 가능한 체계를 어디에서 먼저 구축하느냐에 따라 달려 있다. 상당히 먼 길이 될 것이다.

앞으로의 현실은 오래 전 예상 했던 대로 상상 그 이상의 현실을 보게 될 것이다. -바다란
Posted by 바다란

댓글을 달아 주세요

  1. 이영규 2010.08.24 02:06  댓글주소  수정/삭제  댓글쓰기

    웹을 이용함에 있어 보안의 중요성을 지적하는 것은 정말 중요한 일입니다.
    댓글을 달고자 하는 것은 그 내용이 아니라 글에 나오는 용어 "웹 서비스"에 관한 것입니다.

    일반 사람들은 "웹 서비스"를 그냥 웹에서 이루어지는 서비스로 생걱하나 봅니다.
    그러나 "웹 서비스"는 "룸 서비스"와 같이 이미 국제적으로 정의된 용어로
    위키피디어를 검색해 보면 확인됩니다.
    "Web services are typically application programming interfaces (API) or Web APIs that are accessed via Hypertext Transfer Protocol (HTTP) and executed on a remote system hosting the requested services...."

    요점은 "웹 서비스"는 웹을 통한 컴퓨터간의 소통 수단이지 개인이 웹에서 받는 서비스가 아니라는 접입니다.
    그래서 UDDI, WSDL, WS-*, .. 등 각종 표준을 통해 어마어마한 보안이 유지되고 있습니다.
    현재 REST라든가 여러 이유로 웹 서비스의 정의도 바뀌어 가고 있고,
    향후에는 컴퓨터와 인간을 구별하지 않고 다 포함할지도 모르지만,
    아직은 "웹에서의 서비스"라든가 하여튼 달리 표현하는 것이 오해를 피할 것 같습니다.

    중요한 사항은 아니나 도움이 되고자 댓글을 달아 봤습니다.

  2. 바다란 2010.08.24 10:09 신고  댓글주소  수정/삭제  댓글쓰기

    중요한 말씀 이십니다. 의견 감사 합니다.

    사용자들에게 다가갈 수 있는 용어로 선정을 하다보니 어려움이 있습니다.
    다른 용어를 썼을때는 더 혼선이...

    정확하게는 인터페이스라고 해야 하는데 이걸로는 더 혼선이 있습니다.
    이 영규님의 댓글로 요점을 이해 하시는 분들이 많으셨으면 합니다.

    사용자 관점에서는 웹 서비스라고 봐야 하고 기술적인 관점에서는 웹 인터페이스가 적절 할 것 같은데 그 어느쪽도 양쪽 진영에서는 받아 들이기 어려운 부분이 있습니다. 컬럼이라는 관점에서 대중들에게 인식을 시키기 위한 용도로 사용을 했으니 너른 이해 부탁 드리겠습니다.

    향후에도 관련된 용어를 쓸 일이 있을때는 한번쯤 생각해 보는 계기가 되었네요.
    개인이 받는 서비스라기 보다는 개인의 PC와 서비스 제공 서버간의 웹을 통한 인터페이스 정도로 이해하고 작은 규모의 웹 서비스라고 여겨 주시면 감사 하겠습니다.

  3. 이영규 2010.08.24 15:19  댓글주소  수정/삭제  댓글쓰기

    내용이 중요해서 읽다가 보다 완벽하게 해야 겠다는 의미에서 가벼운 댓글을 달았는데 곧장 응답을 주셨군요.

    사실 용어를 비롯하여 그 어떤 표준도 의미가 없습니다.
    과거에는 몰라도 앞으로는 더욱....
    그 뜻은 용어 정의는 이 순간에 많은 사람들이 공감하고 쓰면 그게 표준이지,
    과거가 어떻고는 참고 사항은 되도 필수 사항은 아니라는 것입니다.
    오히려 과거의 정의가 발전을 저해할 수도 있습니다.

    다만 '웹 서비스'라는 용어는 웹 표준의 무시 못할 기관인 W3C가 표준화하고
    아직도 꼬리를 내리지 않고 권고를 남겨두고 있는 용어라서
    무조건 무시하면 저와 같은 댓글이 달린다는 그런 상황인데
    댓글 단 것 자체는 우리나라 대부분의 댓글이 '잘 봤습니다'수준인 것이 못 마땅해서 해 보자고 한 것이고,
    어느 것이 옳다 그르다 한 것이 아니라
    단지 이런 의견도 있다는 정도이었습니다.

    그리고 W3C는 이미 10년전 상황이라 지금 우리가 무시한다고 문제될 것은 없습니다.
    실제로 많은 곳에서 무시되고 있고요.

    오해를 피하기 위해서 요즘은 '웹 서비스' 보다는 '웹 API'라는 용어도 많이 씁니다.
    관점은 다르지만 웹 API 속에 웹 서비스가 포함되고, 거의 비슷한 용도로 쓸 수 있으니까...

    원래 'Web Service'는 정확한 철자가 'Web Services'로 's'가 붙습니다. [ http://www.w3.org/TR/ws-gloss ]
    우리말에서는 단어에서 단수/복수 구분 변별력이 별로 없지만 영어권에서는 정확히 구분합니다.
    'Contents'는 '목차'이지만 's'를 떼어버린 'Content'는 우리가 잘못 시용하는 '콘텐츠'입니다.
    표준은 'Standards'이고, 바지나 가위도 's'가 붙어야 합니다. 안 붙이면 철자 오류거나 다른 것이지요.
    's'가 붙는 단어는 그 내부가 여러 개 집합이라는 것이지 복수 단어는 아닙니다.

    과거를 아예 모르면 편한데 우리처럼 과거에 집착하는 사람들이 있어서 지장이 많은가 봅니다.
    과거가 옳다거나 회귀, 또는 청산이 아니라, 그런 과거를 지금과 어떻게 조화시키느냐가 관점인데...

  4. 바다란 2010.08.24 18:11 신고  댓글주소  수정/삭제  댓글쓰기

    네 좋은 말씀 감사합니다. 형식에 치우치면 현실이 멀어지고 현실을 따지면 형식이나 지켜 오던 것들이 흔들리고.. 여러모로 어려움이 많습니다.

    과거와 현재의 조화는 지금 있는 사람들의 몫인 것 같습니다.

    앞으로도 좋은 의견이나 조언 해주시면 감사하게 듣도록 하겠습니다.
    저도 고쳐 보도록 노력 하겠습니다. 감사합니다.

  5. 김형채 2010.09.04 15:13  댓글주소  수정/삭제  댓글쓰기

    어제 지인분이 오류를 고쳐달라는 부탁을 해서 오늘 잠깐 시간내서 살펴보니 css파일에서
    문제가 발생한 웹서비스를 살펴보니 http://www.xzjiayuan.com/ad/yahoo.js 파일을 불러들이고 있네요. 호스팅을 받는 계정의 서비스라 해당 파일의 내용을 삭제하는 것 말고는 별다른 조치를 못해주고 정리했습니다.

    이것저것 읽어보다가 이처럼 좋은글을 보게되었네요
    좋은 정보 감사드립니다.

    보안인적자원이 부족하고, 보안의식또한 취약한 상태에서 정말 걱정이 됩니다.
    (사실 이것저것 신경쓰기가 힘듭니다. 중요하지 문제란 없으니까요 ㅎㅎ)

    자주 들러서 좋은이야기 경청하도록 하겠습니다.

  6. 바다란 2010.09.06 10:22 신고  댓글주소  수정/삭제  댓글쓰기

    네. 일반분들이 보시기엔 거의 못 느끼지만 생각보다 더 심각한 상황에 있습니다. 자동화된 도구에 의해서도 자동으로 당하다 보니 심각성은 앞으로 더 크게 나올 것 같습니다.

    근본 문제를 수정해야 하는데 문제가 무엇인지를 모르니 계속 반복되는 상황으로 갈 수 밖에 없습니다.

    이 사이트에 관련된 정보들과 컬럼들을 계속 올릴 예정이니 앞으로도 많은 관심 가져 주세요.
    감사합니다.

 * 2010년 4월중에 이전 블로그의 글을 완전이전 하면서 링크 부분들을 손 본 내용입니다. 지금의 현실도 여전히 계속 됩니다. 해결 되지 않은 문제들입니다만 이전의 링크와 게시된 시간을 알고 싶으신 분은 blog.naver.com/p4ssion 으로 방문 하시면 됩니다. 앞으로의 모든 갱신은 본 사이트에서만 이루어 집니다. 감사합니다.
아래의 글에서 2007년 이후 부터 현재까지의 내용은 지금 이 시간에도 동일하게 적용 됩니다. 범위만 국내뿐 아닌 전 세계적으로 확장 되었을 뿐입니다. 이 점을 참고 하시면 될 것 같습니다.

2008.11.7  p4ssion.

 

 

한국은 바로미터다.

중국발 해킹의 전초 단계로서 향후의 전 세계로 확대되는 공격 양상을 짚어 볼 수 있는 중요한 척도점이 되어 있다. 그 시작은 2002년 부터라 할 수 있다.

필자가 처음 중국발 해킹에 대해 분석을 한 것이 ( http://p4ssion.com/208 ) 2002년 8월 문서이니 그 이후로 여러 단계의 변천사를 볼 수 있다.

 

주관적인 경험하에 중국발 해킹을 분석해 보면 다음과 같은 단계로 요약이 가능하다.

 

1기: 2002~2005년초

 

특징: System에 대한 직접 공격 , 일부 운영체제에 대한 취약성 공격 및 주변 네트워크 공격을 위한 대량의 패키지를 동반하는 유형으로 진행 , 대부분 시스템의 권한 획득을 목적으로 이루어 짐 . 일부 DB의 정보를 빼내어 가기 위한 시도가 존재 하였음.  따라서 한국내의 정보유출 및 위기의 시작은 이 시기 부터라고 보는 것이 합당함.  

 

 

2기: 2005년 4월 ~ 2007년 중반

 

특징: SQL Injection 자동화 툴의 출현 시기와 동일하며 국내의 대부분의 웹사이트 (추정키로는 전체의 60% 이상)가 공격대상에 포함 되었음. 이 부분은 보안산업에서 조차도 예상치 못하여 대응에 시일이 다소 소요된 부분임. URL의 취약한 인자를 공격함으로써 DB의 권한을 획득하고 정보를 빼내어 가는 것이 일반화 된 공격으로 이루어 지며 지역적 혹은 소규모로 발생하던 해킹이 대규모로 변질 되는 기회가 되었음.

[참고  풀어쓴 Sql injection 공격  http://p4ssion.com/171 ,

                                                 http://p4ssion.com/209

          Threat of china v2  . http://p4ssion.com/210 - 첨부파일 참고 ]

 

대량의 개인정보 유출 시기로 확정하며 이 시기에 유출된 개인정보 범위는 상상을 초월할 정도로 예상됨. 

또한 웹을 통한 악성코드 유포의 시발점으로 볼 수 있으며 바이러스와 웜을 통한 악성코드 전파를 벗어나 웹을 통한 악성코드의 전파라는 새로운 공격 전략이 탄생된 시점으로 불 수 있음.

서비스에 대한 보호의 관점에서 일반 사용자를 위한 보호관점으로 포커싱을 급격하게 이동해야 하는 시점이나 일부 국내기업들을 제외하고는 변화에 대한 대응이 늦었으며 공격자들은 유유히 유린을 한 상태로 판단이 됨.

 

이후 웹보안 관련 장비들과 진단 스캐너들의 출현으로 문제는 표면적으로 드러나지는 않으나 우회적인 통로를 통한 SQL 공격으로 여전히 중요정보에 대한 유출 및 악성코드의 웹을 통한 유포는 계속 되었슴.

통계치로 잡기가 어려울 정도로 피해가 많았던 시기라고 볼 수 있음.  이 시기에 유출된 개인정보들로 인해 사회적인 혼란상은 현재에도 지속되고 있음. Voice Phishing의 정확도가 높아져서 피해도가 높아진 이유도 이 시기에 유출된 상세한 개인정보로 인한 것으로 예상.

 

 

3기 2007년 말 ~ 현재 (세부기법으로 별도 분류)

    

2007년말 ~ 2008년 8월

 

 Massl SQL Injection의 본격화 및 웹 보안장비의 본격적인 대응 시기. Get, Post 와 같은 HTTP Action에서 사용되는 특정 인자에 위험요소를 차단하는 방식으로 일차적인 대응들이 진행됨. 웹 보안장비의 대중적인 도입이 이루어짐. 그러나 기본적인 한계로 인해 문제가 발생됨은 이후에도 여러 차례 지적이 됨. 패턴매칭의 한계 및 모든 웹 프로그래밍이 획일화 될 수는 없으므로 각 사이트마다 커스터마이징 이슈가 대두됨. 즉 수익성이 그리 높지 않았을 것으로 예상이 됨. 이후 공격 패턴의 변화에 따라 상당히 많은 노력이 지속적으로 필요한 상황이라 할 수 있음.

 

국내의 상당수의 사이트에서 악성코드들은 지속적으로 유포되고 국내의 인터넷 환경은 오염도가 높아졌을 것으로 예상되나 신뢰도 있는 통계 추출의 도구가 존재하지 않음으로 인해 통계 작성이 불가능함. 평균적으로 일일 4~5만여개의 웹서비스에서 악성 코드가 유포되고 있는 것으로 추정이 됨. 근거는 Mass sql injection 분석 시에 작성한 자료를 참고 하며 5만에서 6만여대의 웹서비스에서 수시 악성코드 유포 되는 것을 확인 함.

 

이 시기에 다수의 주요 IT 서비스 기업들에서는 웹 보안 장비 및 문제점을 제거 할 수 있는 프로세스 (보안성 검수)를 도입 함으로써 피해의 최소화 및 방어가 가능한 상태로 돌입한 것으로 관측됨.

 

     2008년 8월~ 현재 

 

우회 패턴의 등장으로 위험요소가 증폭됨 Get / Post외에도 Cookie에 URL 인자를 넣어서 공격하는 우회 패턴 등장으로 일대 혼란 발생. 이 혼란은 웹보안장비에만 의존하여 근본적인 소스코드의 수정에는 등안시한 결과로서 문제는 계속 될 것임. 더불어 URL 인자에 다양한 우회패턴 (% 인자와 같은 )를 입력하여 패턴매칭에 의한 차단이라는 웹보안장비의 기본 룰을 가볍게 우회함으로써 혼란은 계속 되고 있음. 이 상황은 예견된 바 있음.

11.5일에 제보를 받은 SQL Injection 공격도구의 판매를 위한 자료화면에도 다양한 DB ( Mssql , mysql , access , oracle )와 공격기법이 명기되어 상용으로 판매가 되고 있는 상황임.

 

 < Mass sql injection attack tool - 다양한 DB 및 Cookie 및 Head verb에 대한 공격 기법이 별개로 존재하고 있다. >

 

각 시기별로 한국에 집중된 공격에 대해서는 위와 같이 정리가 가능하며 세계적인 확산의 시기는 시기적으로 늦게 나타나고 있다. 국내를 벗어나 이제 IT로 연결된 세계적인 관점에서의 공격동향은 다음과 같다.

 

세계적으로 SQL injection Attack의 최초 인지는 2008년 초쯤으로 예상되며 대규모로 인지가 된 시기는 2008년 4월의 Mass sql injection 관련 이슈이다. 

[ 상상하기 어려운 위협.       http://p4ssion.com/110 ,

                                          http://p4ssion.com/112    

  Mass sql injection에 대한 분석 참고  http://p4ssion.com/200 ]

 

 

이후에는 4월 이후에 발견된 Mass sql injection issue가  세계적으로  지속되고 있는 상황이라 할 수 있다. 전 세계 인터넷 환경의 오염도는 따로 측정하기는 어렵지만 Google에서 협조를 하고 있는 사이트 (http://www.stopbadware.org/ 11.7일 현재)에 따르면 악성코드를 유포하고 있는 사이트는 현재 166000 여개 가량의 사이트에서 악성코드가 유포 되고 있는 것으로 나와 있다.  물론 실제는 이것보다 더욱 많다. 통계치로 잡히는 것은 백신이나 AV 사이트의 협조아래 탐지 되는 유형에 대한 것들만 나열 된 것으로서 실제로는 변형과 탐지가 안되는 항목이 더 많다고 보았을때 얼마나 많은 비율이 존재 할지는 상상하기 어렵다.

 

인터넷은 오염되어가고 있다. 금전거래와 일상생활 영위의 도구로서 사용이 되고 있는 현재의 인터넷은 사용자들에게 심각한 위협을 동시에 안겨주는 생활로 다가오는 실정이다.

 

대부분의 악성코드 유포 환경들이 SQL Injection에 의한 웹사이트 변조 (악성코드를 유포하는 코드 추가 형태) 그리고 게시물 등에 XSS 취약성을 이용해 악성코드 유포 사이트로 Redirection이 가능한 문제들이 다수라고 할 수 있다. 실제 전체의 90% 이상이 이 경우에 해당 될 것으로 예상된다.

 

 

 

결론

 

이상과 같이 간략하게 2002년 부터 시작된 중국으로 부터의 공격 동향에 대해서 살펴 보았다. 문제의 근본은 현재 Web application의 취약한 인자에 대한 필터링으로 귀결이 된다. 이 문제를 해결하지 않는 이상 모든 대책은 사후약방문이다. 이 문제만 완전하게 처리 된다 하여도 현재와 같은 혼란상은 발생 하지 않을 것이며 피해는 상당히 제한적일 것이다. 기업내의 정보유출뿐 아니라 개인 사용자에게도 심각한 피해를 입히는 현재의 공격유형을 그대로 둘 경우 인터넷 환경의 위험도는 심각한 양상을 넘어 서게 될 것이다.

 

악성코드를 유포하는 사이트를 찾아내는 것도 현재의 상황을 타개 하는 임시방편이며 악성코드를 탐지하여 제거하는 AV도 근원적인 해결책이 되지 못한다. 최근에 발견된 MS08-067과 같은 Zeroday exploit의 경우를 보더라도 손쉽게 인지를 할 수 있다.

 

중국발 해킹은 전 세계적인 불황시기에 더욱 확산이 될 것이고 중국내의 Black Market은 중국의 불황을 틈타 급격하게 확산되어 전 세계를 위협하게 될 것이다. ( 6년전에 한 예측이 이렇게 빨리 현실화 될 것이라고는 필자도 생각지 못한 부분이긴 하다. 그 만큼 공격 기술의 발전과 웹서비스의 세계화가 빠르게 진행 된 탓이라 할 수 있다. )

 

문제의 해결책은 이미 본 블로그의 여러 Article에서 제안한 바 있다. 개별 사이트에 대한 대응책들은 안전한 웹 코딩 가이드(KISA)를 이용하여 소스코드를 변경 하거나 웹보안장비를 도입하였다면 해당 장비의 상태를 최신 수준으로 상시 유지하는 것, 웹 취약성 진단 스캐너 ( Sourceforge.net 에서 검색 하여도 다양한 sql injection 진단 도구들이 존재한다.)를 활용하여 문제를 수시로 찾고 제거 하는 것이 최선의 대응이라 할 수 있다.

[ http://www.krcert.or.kr/secureNoticeView.do?num=287&seq=-1  이곳의 대응책을 참고.]

 

전 세계적인 움직임 혹은 범세계적인 서비스를 통해 웹 서비스의 코딩 수준을 높이지 않는 이상 현재의 중국발 해킹은 점점 더 심각한 양상으로 발전 할 것이다.

 

보안장비의 도입도 취약성 스캐너의 도입과 점검도 다 중요하다 그러나 가장 중요한 것은 웹개발자의 개발 코드가 안전한지 확인이 가능한 요소가 가장 중요하다 할 수 있다. Secure coding은 SDLC 방법론으로 따지자면 웹개발에는 맞지 않다. 개발의 속도가 너무 빠르기 때문이다. 개발 시기 보다 더 많은 시간이 투자 된다는 점에 있어서 방법론과 적용 기술의 변화가 필요하다. 

 

개발자가 매번 코딩 시에 반복된 오류를 하지 않도록 확인하고 문제를 제거하여 궁극적으로는 전 세계 웹 개발자들이 Secure coding이 생활화 될때 이 문제는 해결이 된다. 그러자면 개발자들의 접근이 용이하고 비용이 저렴하며 정확도를 확보한 url 인자 값의 유효성을 체크하는 도구의 개발과 서비스의 확산이 문제 해결의 첫 걸음이 될 것이다.

 

아직 갈 길은 멀었고 피해는 점차 심각한 양상으로 변질 될 것이다.

 

아무도 이야기 하지 않는 예상과 예측. p4ssionable security explorer . 바다란. 

 

Posted by 바다란

댓글을 달아 주세요

오랜만입니다.

 

여러 개인 사정으로 인해 글을 쓸 여유가 없었습니다.

앞으로도 상황은 마찬가지 일 것 같습니다.

 

SQL Injection . 지금에 와서 이 공격의 유형을 모르는 한국이나 전 세계의 웹 개발자 혹은 보안 전문가는 없으리라 봅니다. 3~4년 전만 하여도 일선의 재빠른 사람들에게만 인지 되는 사안들이 이제는 글로벌화된 상황이라 할 수 있습니다.

 

이전에 존재 하였던 SQL Injection 유형과 현재 발생하는 유형의 차이점은 이 블로그의 Mass sql injection 관련 글을 찾아 보시면 좀 더 쉽게 이해가 되시리라 봅니다.

 

현재는 상황 그대로 세계적인 불황입니다. 얼마전 글에서 예측 하였듯이 앞으로 노골적인 공격들이 더욱 거세 질 것 이고 보다 전문화된 공격들도 직접 이용이 될 것입니다. 최근 MS에서 긴급패치가 이루어진 MS08-067의 경우에도 PoC( Proof of concept - 공격 개념코드)가 나오기 이전에 계정정보 유출을 위한 실제 Trojan이 배포 된 이후에 MS 측에서 대응을 한 내용입니다.

 

앞으로 이와 같은 상황은 더욱 거세질 것입니다.  공격의 전문성도 높아지고 유포되는 범주도 지속 되고 있습니다. 지금도 하루에 수 십차례 이상 공격을 받는 곳들이 대다수 일 것이고 문제가 심각한 기업들은 웹보안 장비들의 도입에 열을 올리고 있을 것입니다. 이런 웹 보안장비들의 근본적인 한계에 대해서는 본 블로그에서 여러 차례 지적한 바가 있습니다.

 

 

 

공격의 전문성 강화

 

공격의 전문성이 높아지는 것은 비단 이번의 MS08-067의 예를 들지 않더라도 2년 전 부터 나타난 현상입니다. 하나의 Trojan을 설치하기 위해 수 십가지 이상의 여러 Application에 대한 공격코드들이 최적화 되어 있고 주변으로 전파를 하고 있습니다. 심지어는 ARP spoofing까지도 이루어 지죠. ( SQL Injection 이든 Arp spoofing의 경우에도 기존의 공격 개념과는 다른 관점으로 상당히 발전적인 응용이라 할 수 있습니다. )  공격자들은 그만큼 기존의 공격 기법과 새로운 취약성의 접합과 연구에 적극적입니다.

 

그리고 그들은 이제 전문 영역을 지니게 되었습니다. 이 의미는 하나의 산업으로 존재할 만큼의 기술적인 (?) 공격 역량과 숙련도를 보유하고 있다는 것이라 할 수 있습니다. 이런 기술을 이용하여 이득을 취하기 위한 또 다른 산업 영역도 개척을 한 상태입니다. 즉 소비채널과 유통채널의 구축이 완료된 상태라 할 수 있습니다.  앞으로 더욱 심해 질 것입니다.

 

새로운 Exploit의 최초 발견과 적용이 연구자들 사이에서 나오는 것이 아니라 이제는 공격자들에게서 직접 발생이 되고 있습니다. 이 추세는 향후에도 증가 할 것으로 예상 됩니다. 더불어 SQL Injection의 경우에도 여러 번 거듭 말씀 드렸지만 단순 패턴매칭으로 차단하는 보안장비에서는 해결이 되지 않습니다. 지금도 정말 많은 우회 기법들이 나오고 있고 바로 적용이 되고 있습니다. 공격자는 코드 한번만 바꾸면 되지만 방어자는 수 천, 수 만 아니 그 이상의 장비들에 대해 개별적인 설정이 되어야만 합니다. 

 

이 싸움에서 이길 것이라 보십니까?  저는 진다고 봅니다.

 

 

(Mass sql injection)양식장을 손에 쥔 상어떼

 

이 표현이 적당한 가 모르겠습니다만 제 머리속에 그려지는 이미지로는 이 표현외에는 더 적당한 표현을 할 수가 없습니다. 양식장은 전 세계의 웹 서비스가 해당이 됩니다.

상어떼는 아시다 시피 공격자들이구요. 양식장에 갇힌게 아니라 언제든 잡을 수 있는 그물을 상어떼가 가지고 있는 모양새 입니다.  이 그물을 어떻게 끊을 수 있을까요? 

 

개별 웹 서비스들에 대해서는 가능하겠지만 전 세계적인 범주에서 보면 정말 어려운 일일 것입니다.  전 세계 웹 서비스의 인자 각각에 유효성 체크가 되어야만 하는데 현실적으로 어렵습니다. 스캐너를 이용한 진단의 경우에도 여러 한계가 있음을 지적한 바 있습니다. 앞으로도 오랜 시간이 흘러야 범위가 줄어들 것이고 그 이전까지는 광범위한 Trojan의 유포와 악성코드에 의해 전 세계의 개인 PC가 시달릴 것입니다. 윗 절의 공격의 전문성 강화와 겹쳐져 공격의 전문성과 파급력은 지속이 될 것이고 PC에 설치되는 다양한 Application에 대해 공격이 이루어 질 것입니다.

 

현재의 공격은 서비스에 대한 공격인 DDos 공격과 금전을 목적으로 한 Trojan 유포에 중점이 맞추어져 있습니다. Trojan 유포는 웜과 바이러스를 통한 유포의 범주보다 웹서비스를 통한 광범위한 유포가 일반화 되어 있습니다. 지금의 공격자들의 특성은 자신을 과시하지 않습니다. 오로지 금전적인 정보가 목적일 뿐입니다.

 

전 세계 모든 보안 채널 및 보안 관련 회사들이 새로운 유형의 공격기법이나 취약성이 출현 할때 마다 예전보다 휠씬 더 긴밀하게 협력을 하고 있습니다. 그래도 모자람이 너무 많습니다.

 

 

이런 그물을 끊어야만 하며 끊기 위해서는 개발자를 위한 자가진단이 가능한 저가 웹서비스 혹은 Open source 형태의 서비스가 필요하고 점진적으로 개선을 시킬 수 밖에는 없는 상황입니다.

 

현재 큰 범주에서 문제를 해결 하기 위한 해결책은 한정적입니다. 지역적인 측면이나 기업 측면에서는 비용을 투입하여 해결이 가능하나 웹서비스의 개편시 마다 비용 부담과 끊임없는 지속성을 유지 해야 하는 것이 관건입니다.  Penetration Test ( 모의해킹이라 부르며 시스템에 피해를 입히지 않는 범위에서 공격자의 입장에서 서비스 취약성을 사전 진단하는 유형 )를 할 수 있는 인력들도 한정이 되어 있습니다. 전문기술을 보유하고 있음에도 불구하고 돌쇠타입의 마당쇠로 전방위로 혹사 당하는 것이 지금의 보안 인력 혹은 보안 팀들이라 할 수 있습니다. 언제까지 버틸 수 있을까요? 또 언제까지 혹사를 강요할 수 있을까요? 인력으로 버틸 수 있는 정도는 절대로 아니기에 어려움이 충분히 예상 됩니다. ( 아닌 곳들이 있나요? )

 

 

결론적으로 앞으로 오랜 시간 문제는 지속되고 심화 될 것이고 이 문제를 줄여나가기 위해서는 악성코드 유포의 숙주로 활용되고 있는 웹서비스들의 안정성을 시급하게 보완하고 지속성을 가질 수 있도록 하는 것이 키라고 할 수 있습니다. 이렇게 하여야만 문제를 끝낼 수 있습니다. ( 기술적인 해결책이나 여러 방안들은 http://blog.naver.com/p4ssion 의 여러 Article들을 참조 하시면 됩니다. )   개별 서비스에 대한 해결책의 논의가 아니라 큰 범주에서의 해결 방안은 어떤 성격을 지녀야만 문제 해결에 다가 설 수 있는지를 언급하였습니다.

 

1년 이상을 이런 관점에서 계속적인 의견을 제시하였으나 아직 이런 형태의 서비스나 문제해결 시도는 출현 하지 않았습니다. 그러나 머지 않은 시일 내에 유사한 서비스들이 출현하여 문제점들을 줄여가고 세계적인 방향성을 선도할 것으로 믿어 의심치 않습니다. 누구도 하지 않는다면  저라도..~~

 

 

그럼 .

 

p4ssionable security explorer . 바다란

Posted by 바다란

댓글을 달아 주세요

12.25 1998   -p4ssion@gmail.com zdnet

 

 

2009년의 연말에 뜬금없이 10년도 더 지난 날짜의 크리스마스를 언급한다. 1998 12.25일에는 RFP (Rain Forest Puppy)에 의해 최초로 DB 웹애플리케이션간의 SQL Injection 대한 발표가 이루어 졌다. 해당 발표는 프랙이라는 해커들의 온라인 잡지를 통해 이루어 졌다. 현재의 인터넷 서비스를 곤경에 처하게 하는 SQL Injection 문제는 벌써 11년이나 된 문제인 것이다. 오래된 이 문제는 지금 어떤 모습이고 어떤 영향을 미치고 있을까? 우리는 어디쯤에 있는가?

 

그 당시에는 누구도 지금과 같은 사태를 예견하지 못했었다. 불과 3~4년 전만해도 전문가들은 전문가들 나름대로 관심을 두지 않았고 비전문가들은 전혀 모르는 상태였었다. 단 하나의 권한을 획득하기 위해서는 수없이 많은 시행착오와 쿼리를 던져야만 일정 수준의 결과를 가져 오는 것에 대해 누구도 심각성을 인지하지는 못했다. 중요성이나 심각성이 최초로 드러난 것은 대량으로 자동화된 공격 도구가 출현한 이후이다.

 

단일 웹사이트에 대한 자동화된 공격도구의 출현과 대규모 웹사이트에 대한 Mass sql injection 공격 도구의 출현이 지금의 상황을 만들고 있다. 상황은 점점 어려워 지고 있다.

시기별로 SQL Injection공격의 변화와 흐름은 지난 해에 정리한 글을 참고 하면 된다.

 

최초 출현 이후의 변화는 지난해에 작성한 글을 참고하면 되고 현재의 상황은 어떤 상황인지 살펴 보도록 하자.

IBM X-Force에서 2009 상반기 위협 동향과 리스크에 대해 종합한 보고서가 있다. 해당 리포트에서 요약 부분만을 보면 다음과 같은 동향을 관찰하고 있다.

 

1 .2009년 상반기중 발표된 전체 취약성의 50% 이상이 웹 애플리케이션에 대한 취약성이며 상반기중 발표된 취약성중 절반 가량이 패치가 발표되지 않은 취약성이다.

 

2. 웹사이트의 취약성을 공격하는 비율이 급증하고 있다. 2009 1Q의 공격 비율의 두 배 가량이 2Q에는 관찰이 되었다.

 

3. 일반적으로 사용자들이 안전하다고 생각되는 문서유형에 악성코드를 결합시키는 것이 늘고 있으며 어도비의 PDF 취약성은 최초로 Top 5 취약성 항목에 선정 되었다. MS Office 취약성과 PDF를 이용한 취약성이 일반적으로 사용이 되고 있으며 웹서비스를 통한 악성코드유포, 이메일을 통한 전파가 2009년 상반기 급증 하였다.

 

4. 2009년 상반기 악성코드를 유포하는 URL 링크는 508%로 폭증 하였다.

 

5. 스팸메일은 상반기에 40% 증가 하였다.

 

간단한 요약상으로 보면 웹애플리케이션의 관점으로 본 취약성 및 동향 보고서로 보이지만 실제 상반기 동향을 전체적으로 살펴보고 내린 종합 보고서라는 점에 의미를 두어야 한다.

 

특징적인 점은 웹 애플리케이션에 대한 공격은 시간이 지날수록 줄어 드는 것이 아니라 시기, 사안, 목적에 따라 급증 할 소지를 매우 많이 가지고 있다는 점이다. 얼마 전 있었던 중국 내 공공기관 및 교육기관에 대한 대규모 악성코드 유포 행위는 그 동안 공격자로만 인식 되어 왔던 중국 조차도 심각한 국면임을 생각하게 한다. 총 18여만개의 gov.cn, edu.cn 기관의 웹사이트에서 악성코드가 유포 되는 사례가 발견이 되었다.

 

단 기간에 몇 십만 대의 PC가 아닌 웹서비스에 대한 공격이 성공적으로 이루어 지고 도구로서 활용이 되는 것이 일상적인 인터넷 상황이라는 점이 가장 우려할 만한 점이고 향후에는 더 심각한 국면으로 전환이 될 것이다.

 

내부망에 대한 침입을 하는 도구로서 웹 애플리케이션을 직접 공격하는 행위와 무차별적인 악성코드 유포를 위해 웹 애플리케이션을 공격하는 행위는 동시에 발생 될 것이며 전자는 기업이나 기관의 내부망에 침입하여 자료를 탈취 하거나 금전적인 이득을 얻는 것에 사용이 되고 있으며 후자는 개인 PC의 금전 거래 관련 정보와 온라인 정보를 절취함으로써 이득을 얻는 것이 일상적인 현실이다.

 

국가 기반시설이라고 할 수 있는 기반시설망(전력, 가스, 통신, 교통)에 대해서도 심각성이 높으며 향후 강도 높은 주의가 필요하다는 점은 외부와 연결된 접촉지점을 가질 수 밖에 없기 때문에 경고를 하는 것이다. 앞으로의 위험은 더 크고 치밀한 양상으로 치달을 것은 명확하다.

 

IBM X-Force에서 발표된 자료를 조금 더 살펴보자.

 

 

대량 공격의 일반화에 대해 IBM에서 모니터링이 가능한 사이트들에서 발견된 공격로그들만을 살펴 보면 현황을 알 수 있다. 일단위로 2008년에는 평균 10만에서 20만 정도의 SQL 공격로그들을 관찰 할 수 있었으나 2009 5월에는 최고 70만건의 일별 공격로그가 관찰 되는 것을 볼 수 있다.

 

 

웹 애플리케이션에 대한 공격로그에서 공격기법 별 분류를 한 자료이다. XSS 취약성과 Injection 공격이 사실상 대부분을 차지하고 있다고 볼 수 있다. 그러나 여기에 공격의 파급도를 판단하면 Injection 공격은 사실상 월등히 높은 가중치를 지닐 수 밖에 없다.

물론 위의 데이터 자체는 IBM에서 판매하고 있는 침입탐지 장비에서 탐지된 로그를 기반으로 하고 있을 것이다. 지난 글로벌 보안 위협에 대한 분석에서 언급 하였듯이 전체적인 동향과 흐름을 인지하는 방식으로 참고를 할 수 있을 뿐이다.

 

해외 언론에서 언급하는 ‘New’ 라는 용어에 너무 겁먹을 필요 없다. 공격 방식은 동일하다. 약간의 변형들이 있을 뿐이다. 해외언론에서 언급하는 New SQL Injection 이라는 용어 자체는 단지 새로운 악성코드를 유포하는 링크가 변경 되었다는 점 외에는 없다. 따라서 새로운 유형의 공격은 아니라는 점이다.

 

국내의 모회사에 대한 해킹과 해외의 보안 회사들의 웹 서비스에 대한 해킹을 통해 위험성을 알리는 Unu라는 친구의 공격이 지금 시점에 중요한 것은 아니다. 공명심에 그러한 행동을 하는 것은 뒤에 더 큰 문제를 보이지 않게 만든다. 공개된 공격도구를 이용하여 특정 목표에 대해 꾸준하게 문제점을 찾고 공격 시도를 하는 것은 일반적인 스크립트 키드에 지나지 않는다.

 

정말 중요한 사안은 분 단위로 권한을 획득 당하고 소스코드가 변조되는 웹서비스들이다. 또 웹서비스들을 숙주 삼아 .정체를 전부 파악 하기 어려운 악성코드들이 전 세계를 대상으로 무작위로 유포가 된다는 점이 더 치명적인 사안이다.  오래된 이야기 이지만 준비는 어디에도 없다. 너무 많은 곳들이 당하다 보니 일상적인 상황이 되어 버렸다. 그만큼 치명적인 위험들도 더 가까이에 와 있다.

 

 

필자가 보는 관점은 명확하다.

문제가 될 것임은 이미 예측 되어온 바다. 그러나 어디에도 장기적인 해결책이나 방안을 마련 하려는 곳들은 없다. 이미 한 기업이나 조직에서 해결 하기에는 범위가 너무 커져 버렸다. 시간이 지날수록 점점 더 커져 갈 수 밖에 없을 것이다. 문제의 해결을 위해서는 현실을 직시하고 장기적인 방안을 마련 해야만 한다.

 

사이버 상의 스팸과 광고, 정보거래를 통해 금전적인 이득을 얻던 검은 그룹들은 이제 공개적으로 침입을 하고 권한을 획득하고 내부에 침입하여 노골적인 이득을 취하고 있다. 이러한 행위는 Heartland 대한 침입 7 eleven 대한 침입, 지난해에 있었던 Citibank에 대한 침입들이 모두 해당이 된다. 최근에 있었던 독일 대학생들의 국내 IT기업의 내부 기밀을 해킹한 이후 협박을 웃지 못할 경우도 동일한 사례이다. 국내의 사례는 뭐라 평하기 어려울 정도로 당혹스럽다.

 

독일에서 한국으로 접속해 느린 속도에도 불구하고 750기가나 되는 양을 빼내어 갈 그 많은 시간 동안 무얼 했을까? 문제점들은 찾아서 해결을 했을까? 하는 여러 단상들이 있다.

 

언급한 여러 사건들 중 상당 부분의 침입들이 내부망에 침입하기 위한 통로로서 웹 애플리케이션 공격을 선택 하였고 실제 성공 하였다는 점이다. 앞으로 더 많은 사례들을 볼 수 있을 것이다. 더 치명적이고 더 위험한 사례들은 머지않아 출현 할 수 밖에 없다.

 

11년이나 된 공격의 유효성은 지금에 와서야 대규모 피해를 입고서 인식이 된다. 그러나 해결책은 쉽지 않다. Secure Programming도 어려운 과제이고 보안도구들의 대량 도입도 난관이 많다. 풀어야 할 프로세스들도 산재해 있다. 무엇보다 중요한 것은 기업이나 산업에 보안은 치명적인 요소로 작용 한다는 것을 이해 하는 것이 먼저 일 것이다. 필자가 생각하는 해결방안에 대해서는 근 시일 내에 정리 하도록 하겠다.

 

중요성에 대한 인식은 너무 먼 곳에 있다. 세상이 어수선하다. 보이지 않는 인터넷 세상은 더 큰 좌절이 존재한다. 문제 해결까지는 정말 많은 시간이 소요 될 것이다. 가장 효율적인 도구가 존재 한다 하여도 최소 3~5년 이상은 이 어플리케이션의 문제로 치명적이 될 것이다. 모바일도 예외가 될 수는 없을 것이다. 모든 것은 이어져 있다. 이것이 인터넷이다.

 

사람 사는 세상에도 어둠이 짙듯이 인터넷에도 어둠이 짙다.

다음 컬럼은 연계된 내용으로 기반시설에 대한 (SCADA) 문제를 다룬다.

Posted by 바다란

댓글을 달아 주세요

 

2008.11.7  p4ssion.

 

 

한국은 바로미터다.

중국발 해킹의 전초 단계로서 향후의 전 세계로 확대되는 공격 양상을 짚어 볼 수 있는 중요한 척도점이 되어 있다. 그 시작은 2002년 부터라 할 수 있다.

필자가 처음 중국발 해킹에 대해 분석을 한 것이 ( http://blog.naver.com/p4ssion/50001879160 ) 2002년 8월 문서이니 그 이후로 여러 단계의 변천사를 볼 수 있다.

 

주관적인 경험하에 중국발 해킹을 분석해 보면 다음과 같은 단계로 요약이 가능하다.

 

1기: 2002~2005년초

 

특징: System에 대한 직접 공격 , 일부 운영체제에 대한 취약성 공격 및 주변 네트워크 공격을 위한 대량의 패키지를 동반하는 유형으로 진행 , 대부분 시스템의 권한 획득을 목적으로 이루어 짐 . 일부 DB의 정보를 빼내어 가기 위한 시도가 존재 하였음.  따라서 한국내의 정보유출 및 위기의 시작은 이 시기 부터라고 보는 것이 합당함.  

 

 

2기: 2005년 4월 ~ 2007년 중반

 

특징: SQL Injection 자동화 툴의 출현 시기와 동일하며 국내의 대부분의 웹사이트 (추정키로는 전체의 60% 이상)가 공격대상에 포함 되었음. 이 부분은 보안산업에서 조차도 예상치 못하여 대응에 시일이 다소 소요된 부분임. URL의 취약한 인자를 공격함으로써 DB의 권한을 획득하고 정보를 빼내어 가는 것이 일반화 된 공격으로 이루어 지며 지역적 혹은 소규모로 발생하던 해킹이 대규모로 변질 되는 기회가 되었음.

[참고  풀어쓴 Sql injection 공격  http://blog.naver.com/p4ssion/40017941957 ,

                                                 http://blog.naver.com/p4ssion/40018174273 

          Threat of china v2  . http://blog.naver.com/p4ssion/50009117423  - 첨부파일 참고 ]

 

대량의 개인정보 유출 시기로 확정하며 이 시기에 유출된 개인정보 범위는 상상을 초월할 정도로 예상됨. 

또한 웹을 통한 악성코드 유포의 시발점으로 볼 수 있으며 바이러스와 웜을 통한 악성코드 전파를 벗어나 웹을 통한 악성코드의 전파라는 새로운 공격 전략이 탄생된 시점으로 불 수 있음.

서비스에 대한 보호의 관점에서 일반 사용자를 위한 보호관점으로 포커싱을 급격하게 이동해야 하는 시점이나 일부 국내기업들을 제외하고는 변화에 대한 대응이 늦었으며 공격자들은 유유히 유린을 한 상태로 판단이 됨.

 

이후 웹보안 관련 장비들과 진단 스캐너들의 출현으로 문제는 표면적으로 드러나지는 않으나 우회적인 통로를 통한 SQL 공격으로 여전히 중요정보에 대한 유출 및 악성코드의 웹을 통한 유포는 계속 되었슴.

통계치로 잡기가 어려울 정도로 피해가 많았던 시기라고 볼 수 있음.  이 시기에 유출된 개인정보들로 인해 사회적인 혼란상은 현재에도 지속되고 있음. Voice Phishing의 정확도가 높아져서 피해도가 높아진 이유도 이 시기에 유출된 상세한 개인정보로 인한 것으로 예상.

 

 

3기 2007년 말 ~ 현재 (세부기법으로 별도 분류)

    

2007년말 ~ 2008년 8월

 

 Massl SQL Injection의 본격화 및 웹 보안장비의 본격적인 대응 시기. Get, Post 와 같은 HTTP Action에서 사용되는 특정 인자에 위험요소를 차단하는 방식으로 일차적인 대응들이 진행됨. 웹 보안장비의 대중적인 도입이 이루어짐. 그러나 기본적인 한계로 인해 문제가 발생됨은 이후에도 여러 차례 지적이 됨. 패턴매칭의 한계 및 모든 웹 프로그래밍이 획일화 될 수는 없으므로 각 사이트마다 커스터마이징 이슈가 대두됨. 즉 수익성이 그리 높지 않았을 것으로 예상이 됨. 이후 공격 패턴의 변화에 따라 상당히 많은 노력이 지속적으로 필요한 상황이라 할 수 있음.

 

국내의 상당수의 사이트에서 악성코드들은 지속적으로 유포되고 국내의 인터넷 환경은 오염도가 높아졌을 것으로 예상되나 신뢰도 있는 통계 추출의 도구가 존재하지 않음으로 인해 통계 작성이 불가능함. 평균적으로 일일 4~5만여개의 웹서비스에서 악성 코드가 유포되고 있는 것으로 추정이 됨. 근거는 Mass sql injection 분석 시에 작성한 자료를 참고 하며 5만에서 6만여대의 웹서비스에서 수시 악성코드 유포 되는 것을 확인 함.

 

이 시기에 다수의 주요 IT 서비스 기업들에서는 웹 보안 장비 및 문제점을 제거 할 수 있는 프로세스 (보안성 검수)를 도입 함으로써 피해의 최소화 및 방어가 가능한 상태로 돌입한 것으로 관측됨.

 

     2008년 8월~ 현재 

 

우회 패턴의 등장으로 위험요소가 증폭됨 Get / Post외에도 Cookie에 URL 인자를 넣어서 공격하는 우회 패턴 등장으로 일대 혼란 발생. 이 혼란은 웹보안장비에만 의존하여 근본적인 소스코드의 수정에는 등안시한 결과로서 문제는 계속 될 것임. 더불어 URL 인자에 다양한 우회패턴 (% 인자와 같은 )를 입력하여 패턴매칭에 의한 차단이라는 웹보안장비의 기본 룰을 가볍게 우회함으로써 혼란은 계속 되고 있음. 이 상황은 예견된 바 있음.

11.5일에 제보를 받은 SQL Injection 공격도구의 판매를 위한 자료화면에도 다양한 DB ( Mssql , mysql , access , oracle )와 공격기법이 명기되어 상용으로 판매가 되고 있는 상황임.

 

 < Mass sql injection attack tool - 다양한 DB 및 Cookie 및 Head verb에 대한 공격 기법이 별개로 존재하고 있다. >

 

각 시기별로 한국에 집중된 공격에 대해서는 위와 같이 정리가 가능하며 세계적인 확산의 시기는 시기적으로 늦게 나타나고 있다. 국내를 벗어나 이제 IT로 연결된 세계적인 관점에서의 공격동향은 다음과 같다.

 

세계적으로 SQL injection Attack의 최초 인지는 2008년 초쯤으로 예상되며 대규모로 인지가 된 시기는 2008년 4월의 Mass sql injection 관련 이슈이다. 

[ 상상하기 어려운 위협.       http://blog.naver.com/p4ssion/50031034464 ,

                                          http://blog.naver.com/p4ssion/50031227899    

  Mass sql injection에 대한 분석 참고  http://blog.naver.com/p4ssion/50035056195 ]

 

 

이후에는 4월 이후에 발견된 Mass sql injection issue가  세계적으로  지속되고 있는 상황이라 할 수 있다. 전 세계 인터넷 환경의 오염도는 따로 측정하기는 어렵지만 Google에서 협조를 하고 있는 사이트 (http://www.stopbadware.org/ 11.7일 현재)에 따르면 악성코드를 유포하고 있는 사이트는 현재 166000 여개 가량의 사이트에서 악성코드가 유포 되고 있는 것으로 나와 있다.  물론 실제는 이것보다 더욱 많다. 통계치로 잡히는 것은 백신이나 AV 사이트의 협조아래 탐지 되는 유형에 대한 것들만 나열 된 것으로서 실제로는 변형과 탐지가 안되는 항목이 더 많다고 보았을때 얼마나 많은 비율이 존재 할지는 상상하기 어렵다.

 

인터넷은 오염되어가고 있다. 금전거래와 일상생활 영위의 도구로서 사용이 되고 있는 현재의 인터넷은 사용자들에게 심각한 위협을 동시에 안겨주는 생활로 다가오는 실정이다.

 

대부분의 악성코드 유포 환경들이 SQL Injection에 의한 웹사이트 변조 (악성코드를 유포하는 코드 추가 형태) 그리고 게시물 등에 XSS 취약성을 이용해 악성코드 유포 사이트로 Redirection이 가능한 문제들이 다수라고 할 수 있다. 실제 전체의 90% 이상이 이 경우에 해당 될 것으로 예상된다.

 

 

 

결론

 

이상과 같이 간략하게 2002년 부터 시작된 중국으로 부터의 공격 동향에 대해서 살펴 보았다. 문제의 근본은 현재 Web application의 취약한 인자에 대한 필터링으로 귀결이 된다. 이 문제를 해결하지 않는 이상 모든 대책은 사후약방문이다. 이 문제만 완전하게 처리 된다 하여도 현재와 같은 혼란상은 발생 하지 않을 것이며 피해는 상당히 제한적일 것이다. 기업내의 정보유출뿐 아니라 개인 사용자에게도 심각한 피해를 입히는 현재의 공격유형을 그대로 둘 경우 인터넷 환경의 위험도는 심각한 양상을 넘어 서게 될 것이다.

 

악성코드를 유포하는 사이트를 찾아내는 것도 현재의 상황을 타개 하는 임시방편이며 악성코드를 탐지하여 제거하는 AV도 근원적인 해결책이 되지 못한다. 최근에 발견된 MS08-067과 같은 Zeroday exploit의 경우를 보더라도 손쉽게 인지를 할 수 있다.

 

중국발 해킹은 전 세계적인 불황시기에 더욱 확산이 될 것이고 중국내의 Black Market은 중국의 불황을 틈타 급격하게 확산되어 전 세계를 위협하게 될 것이다. ( 6년전에 한 예측이 이렇게 빨리 현실화 될 것이라고는 필자도 생각지 못한 부분이긴 하다. 그 만큼 공격 기술의 발전과 웹서비스의 세계화가 빠르게 진행 된 탓이라 할 수 있다. )

 

문제의 해결책은 이미 본 블로그의 여러 Article에서 제안한 바 있다. 개별 사이트에 대한 대응책들은 안전한 웹 코딩 가이드(KISA)를 이용하여 소스코드를 변경 하거나 웹보안장비를 도입하였다면 해당 장비의 상태를 최신 수준으로 상시 유지하는 것, 웹 취약성 진단 스캐너 ( Sourceforge.net 에서 검색 하여도 다양한 sql injection 진단 도구들이 존재한다.)를 활용하여 문제를 수시로 찾고 제거 하는 것이 최선의 대응이라 할 수 있다.

[ http://www.krcert.or.kr/secureNoticeView.do?num=287&seq=-1  이곳의 대응책을 참고.]

 

전 세계적인 움직임 혹은 범세계적인 서비스를 통해 웹 서비스의 코딩 수준을 높이지 않는 이상 현재의 중국발 해킹은 점점 더 심각한 양상으로 발전 할 것이다.

 

보안장비의 도입도 취약성 스캐너의 도입과 점검도 다 중요하다 그러나 가장 중요한 것은 웹개발자의 개발 코드가 안전한지 확인이 가능한 요소가 가장 중요하다 할 수 있다. Secure coding은 SDLC 방법론으로 따지자면 웹개발에는 맞지 않다. 개발의 속도가 너무 빠르기 때문이다. 개발 시기 보다 더 많은 시간이 투자 된다는 점에 있어서 방법론과 적용 기술의 변화가 필요하다. 

 

개발자가 매번 코딩 시에 반복된 오류를 하지 않도록 확인하고 문제를 제거하여 궁극적으로는 전 세계 웹 개발자들이 Secure coding이 생활화 될때 이 문제는 해결이 된다. 그러자면 개발자들의 접근이 용이하고 비용이 저렴하며 정확도를 확보한 url 인자 값의 유효성을 체크하는 도구의 개발과 서비스의 확산이 문제 해결의 첫 걸음이 될 것이다.

 

아직 갈 길은 멀었고 피해는 점차 심각한 양상으로 변질 될 것이다.

 

아무도 이야기 하지 않는 예상과 예측. p4ssionable security explorer . 바다란. 

 

Posted by 바다란

댓글을 달아 주세요

오랜만입니다.

 

여러 개인 사정으로 인해 글을 쓸 여유가 없었습니다.

앞으로도 상황은 마찬가지 일 것 같습니다.

 

SQL Injection . 지금에 와서 이 공격의 유형을 모르는 한국이나 전 세계의 웹 개발자 혹은 보안 전문가는 없으리라 봅니다. 3~4년 전만 하여도 일선의 재빠른 사람들에게만 인지 되는 사안들이 이제는 글로벌화된 상황이라 할 수 있습니다.

 

이전에 존재 하였던 SQL Injection 유형과 현재 발생하는 유형의 차이점은 이 블로그의 Mass sql injection 관련 글을 찾아 보시면 좀 더 쉽게 이해가 되시리라 봅니다.

 

현재는 상황 그대로 세계적인 불황입니다. 얼마전 글에서 예측 하였듯이 앞으로 노골적인 공격들이 더욱 거세 질 것 이고 보다 전문화된 공격들도 직접 이용이 될 것입니다. 최근 MS에서 긴급패치가 이루어진 MS08-067의 경우에도 PoC( Proof of concept - 공격 개념코드)가 나오기 이전에 계정정보 유출을 위한 실제 Trojan이 배포 된 이후에 MS 측에서 대응을 한 내용입니다.

 

앞으로 이와 같은 상황은 더욱 거세질 것입니다.  공격의 전문성도 높아지고 유포되는 범주도 지속 되고 있습니다. 지금도 하루에 수 십차례 이상 공격을 받는 곳들이 대다수 일 것이고 문제가 심각한 기업들은 웹보안 장비들의 도입에 열을 올리고 있을 것입니다. 이런 웹 보안장비들의 근본적인 한계에 대해서는 본 블로그에서 여러 차례 지적한 바가 있습니다.

 

 

 

공격의 전문성 강화

 

공격의 전문성이 높아지는 것은 비단 이번의 MS08-067의 예를 들지 않더라도 2년 전 부터 나타난 현상입니다. 하나의 Trojan을 설치하기 위해 수 십가지 이상의 여러 Application에 대한 공격코드들이 최적화 되어 있고 주변으로 전파를 하고 있습니다. 심지어는 ARP spoofing까지도 이루어 지죠. ( SQL Injection 이든 Arp spoofing의 경우에도 기존의 공격 개념과는 다른 관점으로 상당히 발전적인 응용이라 할 수 있습니다. )  공격자들은 그만큼 기존의 공격 기법과 새로운 취약성의 접합과 연구에 적극적입니다.

 

그리고 그들은 이제 전문 영역을 지니게 되었습니다. 이 의미는 하나의 산업으로 존재할 만큼의 기술적인 (?) 공격 역량과 숙련도를 보유하고 있다는 것이라 할 수 있습니다. 이런 기술을 이용하여 이득을 취하기 위한 또 다른 산업 영역도 개척을 한 상태입니다. 즉 소비채널과 유통채널의 구축이 완료된 상태라 할 수 있습니다.  앞으로 더욱 심해 질 것입니다.

 

새로운 Exploit의 최초 발견과 적용이 연구자들 사이에서 나오는 것이 아니라 이제는 공격자들에게서 직접 발생이 되고 있습니다. 이 추세는 향후에도 증가 할 것으로 예상 됩니다. 더불어 SQL Injection의 경우에도 여러 번 거듭 말씀 드렸지만 단순 패턴매칭으로 차단하는 보안장비에서는 해결이 되지 않습니다. 지금도 정말 많은 우회 기법들이 나오고 있고 바로 적용이 되고 있습니다. 공격자는 코드 한번만 바꾸면 되지만 방어자는 수 천, 수 만 아니 그 이상의 장비들에 대해 개별적인 설정이 되어야만 합니다. 

 

이 싸움에서 이길 것이라 보십니까?  저는 진다고 봅니다.

 

 

(Mass sql injection)양식장을 손에 쥔 상어떼

 

이 표현이 적당한 가 모르겠습니다만 제 머리속에 그려지는 이미지로는 이 표현외에는 더 적당한 표현을 할 수가 없습니다. 양식장은 전 세계의 웹 서비스가 해당이 됩니다.

상어떼는 아시다 시피 공격자들이구요. 양식장에 갇힌게 아니라 언제든 잡을 수 있는 그물을 상어떼가 가지고 있는 모양새 입니다.  이 그물을 어떻게 끊을 수 있을까요? 

 

개별 웹 서비스들에 대해서는 가능하겠지만 전 세계적인 범주에서 보면 정말 어려운 일일 것입니다.  전 세계 웹 서비스의 인자 각각에 유효성 체크가 되어야만 하는데 현실적으로 어렵습니다. 스캐너를 이용한 진단의 경우에도 여러 한계가 있음을 지적한 바 있습니다. 앞으로도 오랜 시간이 흘러야 범위가 줄어들 것이고 그 이전까지는 광범위한 Trojan의 유포와 악성코드에 의해 전 세계의 개인 PC가 시달릴 것입니다. 윗 절의 공격의 전문성 강화와 겹쳐져 공격의 전문성과 파급력은 지속이 될 것이고 PC에 설치되는 다양한 Application에 대해 공격이 이루어 질 것입니다.

 

현재의 공격은 서비스에 대한 공격인 DDos 공격과 금전을 목적으로 한 Trojan 유포에 중점이 맞추어져 있습니다. Trojan 유포는 웜과 바이러스를 통한 유포의 범주보다 웹서비스를 통한 광범위한 유포가 일반화 되어 있습니다. 지금의 공격자들의 특성은 자신을 과시하지 않습니다. 오로지 금전적인 정보가 목적일 뿐입니다.

 

전 세계 모든 보안 채널 및 보안 관련 회사들이 새로운 유형의 공격기법이나 취약성이 출현 할때 마다 예전보다 휠씬 더 긴밀하게 협력을 하고 있습니다. 그래도 모자람이 너무 많습니다.

 

 

이런 그물을 끊어야만 하며 끊기 위해서는 개발자를 위한 자가진단이 가능한 저가 웹서비스 혹은 Open source 형태의 서비스가 필요하고 점진적으로 개선을 시킬 수 밖에는 없는 상황입니다.

 

현재 큰 범주에서 문제를 해결 하기 위한 해결책은 한정적입니다. 지역적인 측면이나 기업 측면에서는 비용을 투입하여 해결이 가능하나 웹서비스의 개편시 마다 비용 부담과 끊임없는 지속성을 유지 해야 하는 것이 관건입니다.  Penetration Test ( 모의해킹이라 부르며 시스템에 피해를 입히지 않는 범위에서 공격자의 입장에서 서비스 취약성을 사전 진단하는 유형 )를 할 수 있는 인력들도 한정이 되어 있습니다. 전문기술을 보유하고 있음에도 불구하고 돌쇠타입의 마당쇠로 전방위로 혹사 당하는 것이 지금의 보안 인력 혹은 보안 팀들이라 할 수 있습니다. 언제까지 버틸 수 있을까요? 또 언제까지 혹사를 강요할 수 있을까요? 인력으로 버틸 수 있는 정도는 절대로 아니기에 어려움이 충분히 예상 됩니다. ( 아닌 곳들이 있나요? )

 

 

결론적으로 앞으로 오랜 시간 문제는 지속되고 심화 될 것이고 이 문제를 줄여나가기 위해서는 악성코드 유포의 숙주로 활용되고 있는 웹서비스들의 안정성을 시급하게 보완하고 지속성을 가질 수 있도록 하는 것이 키라고 할 수 있습니다. 이렇게 하여야만 문제를 끝낼 수 있습니다. ( 기술적인 해결책이나 여러 방안들은 http://blog.naver.com/p4ssion 의 여러 Article들을 참조 하시면 됩니다. )   개별 서비스에 대한 해결책의 논의가 아니라 큰 범주에서의 해결 방안은 어떤 성격을 지녀야만 문제 해결에 다가 설 수 있는지를 언급하였습니다.

 

1년 이상을 이런 관점에서 계속적인 의견을 제시하였으나 아직 이런 형태의 서비스나 문제해결 시도는 출현 하지 않았습니다. 그러나 머지 않은 시일 내에 유사한 서비스들이 출현하여 문제점들을 줄여가고 세계적인 방향성을 선도할 것으로 믿어 의심치 않습니다. 누구도 하지 않는다면  저라도..~~

 

 

그럼 .

 

p4ssionable security explorer . 바다란

Posted by 바다란

댓글을 달아 주세요

12.25 1998   -p4ssion@gmail.com zdnet

 

 

2009년의 연말에 뜬금없이 10년도 더 지난 날짜의 크리스마스를 언급한다. 1998 12.25일에는 RFP (Rain Forest Puppy)에 의해 최초로 DB 웹애플리케이션간의 SQL Injection 대한 발표가 이루어 졌다. 해당 발표는 프랙이라는 해커들의 온라인 잡지를 통해 이루어 졌다. 현재의 인터넷 서비스를 곤경에 처하게 하는 SQL Injection 문제는 벌써 11년이나 된 문제인 것이다. 오래된 이 문제는 지금 어떤 모습이고 어떤 영향을 미치고 있을까? 우리는 어디쯤에 있는가?

 

그 당시에는 누구도 지금과 같은 사태를 예견하지 못했었다. 불과 3~4년 전만해도 전문가들은 전문가들 나름대로 관심을 두지 않았고 비전문가들은 전혀 모르는 상태였었다. 단 하나의 권한을 획득하기 위해서는 수없이 많은 시행착오와 쿼리를 던져야만 일정 수준의 결과를 가져 오는 것에 대해 누구도 심각성을 인지하지는 못했다. 중요성이나 심각성이 최초로 드러난 것은 대량으로 자동화된 공격 도구가 출현한 이후이다.

 

단일 웹사이트에 대한 자동화된 공격도구의 출현과 대규모 웹사이트에 대한 Mass sql injection 공격 도구의 출현이 지금의 상황을 만들고 있다. 상황은 점점 어려워 지고 있다.

시기별로 SQL Injection공격의 변화와 흐름은 지난 해에 정리한 글을 참고 하면 된다.

 

최초 출현 이후의 변화는 지난해에 작성한 글을 참고하면 되고 현재의 상황은 어떤 상황인지 살펴 보도록 하자.

IBM X-Force에서 2009 상반기 위협 동향과 리스크에 대해 종합한 보고서가 있다. 해당 리포트에서 요약 부분만을 보면 다음과 같은 동향을 관찰하고 있다.

 

1 .2009년 상반기중 발표된 전체 취약성의 50% 이상이 웹 애플리케이션에 대한 취약성이며 상반기중 발표된 취약성중 절반 가량이 패치가 발표되지 않은 취약성이다.

 

2. 웹사이트의 취약성을 공격하는 비율이 급증하고 있다. 2009 1Q의 공격 비율의 두 배 가량이 2Q에는 관찰이 되었다.

 

3. 일반적으로 사용자들이 안전하다고 생각되는 문서유형에 악성코드를 결합시키는 것이 늘고 있으며 어도비의 PDF 취약성은 최초로 Top 5 취약성 항목에 선정 되었다. MS Office 취약성과 PDF를 이용한 취약성이 일반적으로 사용이 되고 있으며 웹서비스를 통한 악성코드유포, 이메일을 통한 전파가 2009년 상반기 급증 하였다.

 

4. 2009년 상반기 악성코드를 유포하는 URL 링크는 508%로 폭증 하였다.

 

5. 스팸메일은 상반기에 40% 증가 하였다.

 

간단한 요약상으로 보면 웹애플리케이션의 관점으로 본 취약성 및 동향 보고서로 보이지만 실제 상반기 동향을 전체적으로 살펴보고 내린 종합 보고서라는 점에 의미를 두어야 한다.

 

특징적인 점은 웹 애플리케이션에 대한 공격은 시간이 지날수록 줄어 드는 것이 아니라 시기, 사안, 목적에 따라 급증 할 소지를 매우 많이 가지고 있다는 점이다. 얼마 전 있었던 중국 내 공공기관 및 교육기관에 대한 대규모 악성코드 유포 행위는 그 동안 공격자로만 인식 되어 왔던 중국 조차도 심각한 국면임을 생각하게 한다. 총 18여만개의 gov.cn, edu.cn 기관의 웹사이트에서 악성코드가 유포 되는 사례가 발견이 되었다.

 

단 기간에 몇 십만 대의 PC가 아닌 웹서비스에 대한 공격이 성공적으로 이루어 지고 도구로서 활용이 되는 것이 일상적인 인터넷 상황이라는 점이 가장 우려할 만한 점이고 향후에는 더 심각한 국면으로 전환이 될 것이다.

 

내부망에 대한 침입을 하는 도구로서 웹 애플리케이션을 직접 공격하는 행위와 무차별적인 악성코드 유포를 위해 웹 애플리케이션을 공격하는 행위는 동시에 발생 될 것이며 전자는 기업이나 기관의 내부망에 침입하여 자료를 탈취 하거나 금전적인 이득을 얻는 것에 사용이 되고 있으며 후자는 개인 PC의 금전 거래 관련 정보와 온라인 정보를 절취함으로써 이득을 얻는 것이 일상적인 현실이다.

 

국가 기반시설이라고 할 수 있는 기반시설망(전력, 가스, 통신, 교통)에 대해서도 심각성이 높으며 향후 강도 높은 주의가 필요하다는 점은 외부와 연결된 접촉지점을 가질 수 밖에 없기 때문에 경고를 하는 것이다. 앞으로의 위험은 더 크고 치밀한 양상으로 치달을 것은 명확하다.

 

IBM X-Force에서 발표된 자료를 조금 더 살펴보자.

 

 

대량 공격의 일반화에 대해 IBM에서 모니터링이 가능한 사이트들에서 발견된 공격로그들만을 살펴 보면 현황을 알 수 있다. 일단위로 2008년에는 평균 10만에서 20만 정도의 SQL 공격로그들을 관찰 할 수 있었으나 2009 5월에는 최고 70만건의 일별 공격로그가 관찰 되는 것을 볼 수 있다.

 

 

웹 애플리케이션에 대한 공격로그에서 공격기법 별 분류를 한 자료이다. XSS 취약성과 Injection 공격이 사실상 대부분을 차지하고 있다고 볼 수 있다. 그러나 여기에 공격의 파급도를 판단하면 Injection 공격은 사실상 월등히 높은 가중치를 지닐 수 밖에 없다.

물론 위의 데이터 자체는 IBM에서 판매하고 있는 침입탐지 장비에서 탐지된 로그를 기반으로 하고 있을 것이다. 지난 글로벌 보안 위협에 대한 분석에서 언급 하였듯이 전체적인 동향과 흐름을 인지하는 방식으로 참고를 할 수 있을 뿐이다.

 

해외 언론에서 언급하는 ‘New’ 라는 용어에 너무 겁먹을 필요 없다. 공격 방식은 동일하다. 약간의 변형들이 있을 뿐이다. 해외언론에서 언급하는 New SQL Injection 이라는 용어 자체는 단지 새로운 악성코드를 유포하는 링크가 변경 되었다는 점 외에는 없다. 따라서 새로운 유형의 공격은 아니라는 점이다.

 

국내의 모회사에 대한 해킹과 해외의 보안 회사들의 웹 서비스에 대한 해킹을 통해 위험성을 알리는 Unu라는 친구의 공격이 지금 시점에 중요한 것은 아니다. 공명심에 그러한 행동을 하는 것은 뒤에 더 큰 문제를 보이지 않게 만든다. 공개된 공격도구를 이용하여 특정 목표에 대해 꾸준하게 문제점을 찾고 공격 시도를 하는 것은 일반적인 스크립트 키드에 지나지 않는다.

 

정말 중요한 사안은 분 단위로 권한을 획득 당하고 소스코드가 변조되는 웹서비스들이다. 또 웹서비스들을 숙주 삼아 .정체를 전부 파악 하기 어려운 악성코드들이 전 세계를 대상으로 무작위로 유포가 된다는 점이 더 치명적인 사안이다.  오래된 이야기 이지만 준비는 어디에도 없다. 너무 많은 곳들이 당하다 보니 일상적인 상황이 되어 버렸다. 그만큼 치명적인 위험들도 더 가까이에 와 있다.

 

 

필자가 보는 관점은 명확하다.

문제가 될 것임은 이미 예측 되어온 바다. 그러나 어디에도 장기적인 해결책이나 방안을 마련 하려는 곳들은 없다. 이미 한 기업이나 조직에서 해결 하기에는 범위가 너무 커져 버렸다. 시간이 지날수록 점점 더 커져 갈 수 밖에 없을 것이다. 문제의 해결을 위해서는 현실을 직시하고 장기적인 방안을 마련 해야만 한다.

 

사이버 상의 스팸과 광고, 정보거래를 통해 금전적인 이득을 얻던 검은 그룹들은 이제 공개적으로 침입을 하고 권한을 획득하고 내부에 침입하여 노골적인 이득을 취하고 있다. 이러한 행위는 Heartland 대한 침입 7 eleven 대한 침입, 지난해에 있었던 Citibank에 대한 침입들이 모두 해당이 된다. 최근에 있었던 독일 대학생들의 국내 IT기업의 내부 기밀을 해킹한 이후 협박을 웃지 못할 경우도 동일한 사례이다. 국내의 사례는 뭐라 평하기 어려울 정도로 당혹스럽다.

 

독일에서 한국으로 접속해 느린 속도에도 불구하고 750기가나 되는 양을 빼내어 갈 그 많은 시간 동안 무얼 했을까? 문제점들은 찾아서 해결을 했을까? 하는 여러 단상들이 있다.

 

언급한 여러 사건들 중 상당 부분의 침입들이 내부망에 침입하기 위한 통로로서 웹 애플리케이션 공격을 선택 하였고 실제 성공 하였다는 점이다. 앞으로 더 많은 사례들을 볼 수 있을 것이다. 더 치명적이고 더 위험한 사례들은 머지않아 출현 할 수 밖에 없다.

 

11년이나 된 공격의 유효성은 지금에 와서야 대규모 피해를 입고서 인식이 된다. 그러나 해결책은 쉽지 않다. Secure Programming도 어려운 과제이고 보안도구들의 대량 도입도 난관이 많다. 풀어야 할 프로세스들도 산재해 있다. 무엇보다 중요한 것은 기업이나 산업에 보안은 치명적인 요소로 작용 한다는 것을 이해 하는 것이 먼저 일 것이다. 필자가 생각하는 해결방안에 대해서는 근 시일 내에 정리 하도록 하겠다.

 

중요성에 대한 인식은 너무 먼 곳에 있다. 세상이 어수선하다. 보이지 않는 인터넷 세상은 더 큰 좌절이 존재한다. 문제 해결까지는 정말 많은 시간이 소요 될 것이다. 가장 효율적인 도구가 존재 한다 하여도 최소 3~5년 이상은 이 어플리케이션의 문제로 치명적이 될 것이다. 모바일도 예외가 될 수는 없을 것이다. 모든 것은 이어져 있다. 이것이 인터넷이다.

 

사람 사는 세상에도 어둠이 짙듯이 인터넷에도 어둠이 짙다.

다음 컬럼은 연계된 내용으로 기반시설에 대한 (SCADA) 문제를 다룬다.

Posted by 바다란

댓글을 달아 주세요