본문 바로가기

Security Indicator/Insight

SQL injection 공격 변화 & 중국발 해킹 요약

 * 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 . 바다란.