태터데스크 관리자

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

태터데스크 메시지

저장하였습니다.

진짜 SaaS (Security as a service)는 무엇인가? – 서비스 시작에 부쳐

-바다란

지금의 시기에 Saas의 필요성이란 공격자 우위의 현재 인터넷 상황에서 절대적으로 필요하다. 고급화되고 차별화된 진입장벽을 유지하고 있는 현재의 보안서비스로는 대중적으로 넓게 퍼지고 있고 빠른 확산력을 가지고 있는 공격도구와 기법에 대해 무기력 하기만 하다.

현재 상태에서 공격자들은 대규모적이고 자동화된 공격 방법을 다양하게 가지고 있으며 실제 활용하고 있는 상황이나 대응의 측면에서는 매우 제한적인 영향력을 가질 수 밖에 없다.

첫째는 비용의 문제

“ 보안 서비스를 받는 다는 것은 양질의 서비스를 고급화된 인력으로부터 받기 때문에 그만한 가치를 지불해야만 한다. 자주 변경 되는 웹서비스에 대해 매번 보안진단과 서비스를 받는다는 것은 배보다 배꼽이 더 큰 경우를 자주 양산하게 될 수 밖에 없다. 현재 국내의 상태에서도 보안서비스를 받는 기업의 비율은 전체 웹 서비스에서 10% 미만 이라고 볼 수 밖에 없다. 여력이 있고 지켜야 할 그 무엇이 있는 기업 군에 한해서만 서비스가 이루어 질 수 밖에 없는 환경 이기 때문이다. “

둘째는 기간의 문제

“ 일반적으로 웹 서비스의 개발기간은 그리 길지 않다. 정형화된 형태에 이미지 작업들이 다수 추가 되기 때문이며 아주 특화된 서비스가 아닌 경우에는 항상 일정 기한 내에 끝나게 마련이다. 대부분의 웹 서비스 개발의 문제는 제한된 기한내에 개발을 하되 보안성, 가시성, 편의성을 만족 시켜야 된다고 한다. 기한이 촉박한 경우에는 눈에 보이는 것만을 가지고 평가 할 수 밖에 없다. 즉 눈에 보이지 않는 보안성은 항상 뒷전에 물러날 수 밖에 없고 보이는 것만으로 평가를 할 수 밖에 없으며 개발 업체에서도 가시성과 편의성에 중점을 둔 개발을 할 수 밖에 없다.

잦은 변경이 있는 웹 서비스에서 일반적으로 보안진단을 하기 위해서는 웹 개발자보다 비용이 높은 보안전문가들을 투입하여 개발하는 기간 이상의 정밀 진단과 문제점 파악이 필요한 현 상황에서 비용대비 효과를 맞추기란 쉽지 않다.

잦은 변경과 점검에 걸리는 기간의 문제는 현재 웹 서비스의 보안성을 단순한 도구에 의존하게 하고 있으며 이 도구들은 우회 공격에 취약함을 보이고 있다. 근본 원인 제거 없이는 계속 될 수 밖에 없는 문제라는 것이다.”

셋째는 이해의 문제

“ 한 서비스에 대해서 진단이 되었을 때 그 서비스의 기술적인 보안 문제들을 장문의 결과 보고서에 기록하여 보내준들 그 문제를 이해 할 수준의 개발자들은 거의 없다. 사전식으로 정의 되는 모든 보안 문제들에 대해 일반적인 이야기를 할 때 개발자들은 어느 것을 먼저 해야 하는지? 또 이걸 했을 때 서비스에는 지장이 없는지를 확인 하기가 어렵다. 전문가들 조차도 제대로 이해하기 어려운 보고서의 내용들을 분야가 다른 비전문가들이 읽고 이해 하며 적용을 할 것이라는 것은 상당한 거리감이 있는 이야기 라고 보아야 된다.

문제의 포인트는 가장 시급하면서도 공격자들에게 가장 많이 이용되는 문제들을 지적하고 고칠 수 있는 방안을 실시간으로 제시 할 수 있는가 이다.  보고서와 가이드를 보고 자신의 코드에 적용 시킬 수 있는 사람들은 많지 않다. 그러나 어떤 개발 습관이 또 어떤 코딩이 문제가 있는지를 문제 부분을 지정하여 확인을 시켜 주고 또 재 검증을 할 수 있다면 문제가 달라 질 수 있다.

현재까지의 웹서비스에 대한 보안 방법들의 문제들은 모두 동일한 문제점을 가지고 있다. 사용자 친화적이지 못하며 근본 원인 해결을 위해 부족한 점 ( 비용, 기간, 인력)들이 많을 수 밖에 없다.”

비용과 기간, 이해의 문제를 해결 하기 위해서 필요한 것이 SaaS 서비스이며 보안서비스를 위탁받아 관리를 해주는 것과는 다른 부분이다.  전 세계적으로 가장 필요한 부분이며 가장 대중화된 서비스인 웹서비스 자체를 안전하게 만들기 위해서는 빠르고 직시적이며 바로 반영 할 수 있는 서비스가 절대적으로 필요 할 수 밖에 없다.  국내만의 문제가 아닌 전 세계적인 문제이다.


서비스로서의 보안은 문제 해결을 할 수 있어야 SaaS라 불려져야 한다.


실시간으로 URL을 입력하고 웹서비스의 문제점을 확인 한 후 문제점을 해결 하는 방안을 직시적으로 적용한다. 이후 제대로 적용이 되었는지를 다시 한번 확인을 하게 되면 된다. 숙련된 개발자에게는 이 모든 문제를 해결 하는 시간이 빠르면 30분 늦어도 하루 이내에 완료가 되어야 한다. 그래야 현재의 위기에 처한 인터넷 서비스 상황을 반전 시킬 수가 있다.


SaaS란 지금까지의 패러다임을 바꾸어야만 가능한 모델일 수 밖에 없다.

아무도 모를 취약성이란 없다. 더군다나 공개적으로 오픈 될 수 밖에 없는 웹서비스에 대한 취약성은 데이터베이스까지도 직접 위험에 노출 시킴으로 더 심각한 상황에 처하게 되는 것이다.  이 문제의 해결은 접근성의 확대 , 저렴한 비용, 필요 부분에 대한 직접 가이드 제공이 되어야 가능 할 것이고 이때에야 우리는 문제 해결을 시작 할 수 있게 될 것이다.

전문가라면 스스로가 알고 있는 지식과 경험을 가장 낮은 수준에서 널리 이해 할 수 있도록 만드는 사람이 진짜 전문가라 할 수 있다. 보안전문가라면 알고 있는 기술과 경험을 대중에게 제공 할 수 있는 매커니즘을 고민해야 다음 단계로 갈 수 있다고 생각 한다.

이제 공격자들의 적극적 공세에 맞설 수 있는 가이드가 필요한 시대가 되었다.

세계에서 처음 시도되는 과정까지 보여주는 실시간 점검 서비스

국내의 90% 이상의 웹서비스들은 10분 이내에 점검이 완료 되도록 한 속도

가장 많은 공격도구들이 이용하는 웹 애플리케이션 취약성에 대한 집중진단

더불어 구글도 탐지하기 어려운 유포지 탐지는 덤으로 제공한다.

널리 세상을 이롭게 만들자는 가치 아래 시작되는 프로젝트

https://scan.bitscan.co.kr

https://scan.bitscan.co.kr
빛스캔- 세상을 바꿀 플랜
Posted by 바다란

안녕하세요. 바다란입니다. 2006년 작성내용입니다.

 

XSS 진단 및 SQL Injection 진단 스크립트를 공개 합니다.

특별한 것은 아니구요.. 지난해에 급하게 작성하여 사용 했던 스크립트이니 참고 하시면 될 것 같습니다.

 

국내에서는 아직도 많은 사이트들이 해킹을 당하고 있는 실정입니다.

지금의 해킹은 페이지 변조가 아닌 내부 침입을 통해 정보를 가져 가거나 악성코드를 심는 형태로 나타나고 있는데 진입점을 막지 못하기 때문에 계속 문제가 될 수 밖에 없습니다.

 

이 스크립트는 완전하지는 않으나 100% 중에서 80% 이상의 문제 발견이 가능하므로 대응에 도움이 될 것입니다. 대기업이나 여력이 있는 기업에서는 상용 스캐너를 통해 문제의 진단 및 수정을 진행 하고 있으나 소규모 사이트들은 그런 여력이 없는 상황입니다.

 

따라서 지난해(2005) 부터 공개를 추진 하였으나 메인 몸이라 힘들었구요.. 1년 이상의 시간이 흘러서 이제는 공개를 해도 되지 않나 하는 생각에 공개 합니다. 허접한 스크립트이고 손을 안 본 상태라 개인 메일 주소만 딸랑 넣어 놨습니다. 

 

실행 시간은 사이트 구조에 따라 오래 걸릴 수 있는데..이럴 경우 1~5Mega 정도의 결과 파일이 생성 되면 Ctrl+c 눌러서 중지 시키고 결과에 나와 있는 문제들을 수정하고 다시 돌리시면 과다한 결과 생성 및 중복 생성 문제가 해결이 됩니다.

 

이름도 감자 입니다. ~~

 

참고하세여.... 국내의 수많은 웹서버들에 도움이 조금 되었으면 합니다.

 

현재 sourceforge에도 project 등록은 되어 있습니다. 향후에는 이쪽에도 일부 업데이트 할 예정입니다.

http://sourceforge.net/projects/gamja

 

Posted by 바다란

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

. 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




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

. 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에서 충분히 언급한 상황입니다.

[ 상상하기 어려운 위협 -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를 배포 하고 있습니다.

[ 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

 

*오랜만에 썼더니 엉망이네요. 생각을 정리하는 것도 잘 안되니 조금씩 더 자주 쓰다보면 나아지리라 생각 합니다.

 

 

 

Posted by 바다란