태터데스크 관리자

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

태터데스크 메시지

저장하였습니다.

안녕하세요. 바다란입니다.

 

금일 자 기사에 Vista의 전문가들의 비난에 대해 침묵하던 빌게이츠 회장의 의견 피력이 있었습니다. 전체적으로 보면 일상적이고 무난한 의견이라고 보지만 그 동안 시대 상황이 변화고 환경 자체가 변함에 따라 변화의 요구는 매우 강해 질 수 밖에 없었던 MS의 입장을 볼 수 있습니다. 그 입장 변화의 주요 핵심요소들 중에는 Security가 있습니다.

 

그 동안 운영체제의 문제로 인해 발생된 문제들에 대한 지대한 관심과 IT분야에서의 이슈메이커는 MS에 집중이 되었습니다. 어찌 보면 당연한 문제일 수 밖에 없습니다. 신규 웜의 발생 및 파급효과 면에서 가장 큰 효과를 지닌 MS의 운영체제는 집중적인 분석 및 공격 대상이 되어 왔었고 현재도 마찬가지 입니다.  따라서 운영체제에 대한 보호 방안 마련 및 Secure한 운영체제 구현은 근 5년 이상 2000년대 들어서 MS에게 주어진 숙제와도 같았을 것입니다. 1차 숙제를 끝냈다고 생각한 빌 게이츠의 의견은 기사와 같습니다.

 

빌 게이츠 "비스타 비난 근거 없다"

http://news.naver.com/news/read.php?mode=LSS2D&office_id=030&article_id=0000168184&section_id=105&section_id2=230&menu_id=105

 

"비스타의 가장 큰 장점 중 하나는 많은 신기술과 보안 기능으로 사용자를 즉각 흡수한다는 것"

 

비스타에 대해 의견을 내는 빌의 한 마디는 위와 같이 요약이 됩니다. 기술된 언어에서 중요 포인트를 추려보면 강조표시를 한 신기술과 보안기능입니다. 신기술의 측면은 UI 측면과 그다지 새롭지 않은 기술들 [ 이미 틈새를 개발한 많은 개발 업체들이 상용화 한 부분]의 운영체제 흡수를 들 수 있습니다. 새로운 기능들이 얼마나 포함이 되었는지는 상세하게 알지 못하지만 언론지상에 노출된 기능만을 보았을 때는 UI 측면 그리고 인터넷에 접근 한 이후에 사용할 수 있는 선택의 기제를 운영체제에 내포한 기능 정도로 볼 수 있습니다. IE7 Vista를 관통하는 정의는 선택의 흡수와 편리성 입니다.

 

선택의 흡수란 말은 인터넷 연결 이후에 선택하는 사이트에서 이루어지는 행위 자체를 운영체제 단위 및 기본 Application 에 내재화 시킨 것으로 볼 수 있습니다. 향후 다양한 기능들이 추가가 될 것으로 예상이 됩니다. MS의 주요 경쟁자가 구글 , 야후 등과 같은 Service content를 제공하는 업체라고 인식을 하고 있고 인식의 바탕 하에 service content의 제공자 역할까지도 동시에 하겠다는 말과도 일맥상통 하다고 볼 수 있습니다. 편리성이라는 용어도 선택의 흡수와 연계되는 용어 입니다. 단지 포장만 달리 했다고 볼 수 있습니다. 경쟁자를 이기기 위해 들고나온 첫 무기가 Vista라고 볼 수 있을 것 같습니다. 또한 경쟁자의 대상을 명확하게 했다고 볼 수도 있습니다.

전략적으로는 서비스 제공자의 역할을 분산시키고 선택 제한을 통해 약화를 시키고 세부적으로는 MS의 솔루션에 대한 Security 인식을 심어주기 위한 의도라고 볼 수 있습니다. 다르게 보면 All in one OS를 지향 한다고도 볼 수 있을 것 같습니다. 지금까지는 개별 Application 설치를 통해서 해결 하던 문제를 알게 모르게 흡수를 하여 상당부분 운영체제 혹은 MS Lineup에서 해결 할 수 있도록 하여 시장에 대한 지배력의 공고화를 노리고 있다고 봅니다. 노벨에 대한 회유도 대동소이한  맥락이라 볼 수 있을 것입니다.

 

다양한 신기술을 접속이라는 측면에는 위와 같은 배경들이 존재한다고 할 수 있으며 그 결과가 개별 Application의 흡수라고 볼 수 있습니다. 심지어는 보안 관련된 Application도 자사의 서비스 전략에 포함을 시켜 두고 전 세계에서 서비스를 하고 있습니다. (Live oncare) MS와 관련이 없을 것으로 여겼던 [ 자사의 서비스 취약성을 이용하는 공격을 Active하게 대응 한다고도 볼 수 있습니다.] 부분까지도 범위를 확장한 것은 그만큼 서비스 범위에 대한 통제권을 확실히 하고 이득을 분명하게 추구하겠다는 이야기라고 볼 수 있습니다.

 

또 다른 부분으로 언급한 보안성이라는 측면에서 공식적으로 보안이 강화되었고 보안성이 사용자를 흡수 할 수 있다는 논의는 그 동안 MS에서 들인 노력에 대한 자신감이라 할 수 있습니다. 그 노력에 대한 자신감은 모든 개발인력에 대한 보안프로세스 이해 그리고 실제적인 보안의 사안을 이해하기 위해 보안 자격증 취득 지원 ( CISSP ? ) 그리고 강력하고 반복적인 BlackBox Test를 통한 자신감이라 하겠습니다. 지난 시간 동안 개발에 투입된 비용만큼을 보안에 투입한 상황에서는 충분히 가질 수 있다 하겠습니다. SDLC (Secure Software Development Life Cycle or Security Development Life Cycle)를 언급한 MS의 입장에서도 확인 할 수 있습니다.

Ref: SDLC  [ Secure Software 개발을 위한 반복적인 Penetration Test 그리고 문제해결 과정을 의미 하기도 합니다.]

< www.owasp.org Eoin.keary@owasp.org 의 발표자료중 발췌>

 

2002년 초에 MS에서 공식적으로 표방한 TCI (Trustworthy Computing Initiative) 전략의 첫 완성물이라고 볼 수 있기에 Vista에 대한 자신감은 있을 수 있습니다. 2002년 이후 일정 수준이상 완성된 Vista 의 소스코드를 전체에 대해서 전수 검사를 수행하고 문제 있는 부분 수정을 한 이후 출시 일정을 미루어 가면서 까지 나온 바탕이 배경화 되었을 것입니다. 그 동안에 들인 비용은 상상을 초월하는 비용이 들었을 것입니다. 어쩌면 Vista에 대한 개발 비용 보다 더 많은 비용이 들었을 것입니다.  이런 일련의 흐름이 지향하는 바는 명확합니다. 기업은 이익 창출이 기본 개념입니다. 그리고 이익이 없는 곳에는 행동 하지 않습니다. 따라서 MS의 보안분야에 대한 투자는 운영체제에 대한 막대한 시장지배력만으로 유지하는 것은 어렵다는 것을 인지하고 Security 라는 부분이 중대한 Factor임을 인정한 것 이라 볼 수 있습니다.

 

관련기사: http://news.naver.com/news/read.php?mode=LSD&office_id=092&article_id=0000006973&section_id=105&menu_id=105

 

그러나 과연 Vista에 대한 보안적인 이슈들을 일정부분 해소 하였다고 하여 보안성이 강화 되었다고 할 수 있을까요?

질문 나갑니다. Vista는 안전 합니다. 그럼 Vista 상에서 동작하는 모든 Application들도 안전 할까요?

 

정답은 그렇지 않다 입니다. Application에 대한 공격은 2004년부터 일반화된 경향이며 현재 발표되는 취약성의 90% 이상이 개별 Application에 대한 내용입니다. 그 중에는 MS에 많은 이득을 창출케 해주었던 MS Office 군도 포함이 되어 있습니다. 이전의 Office 제품과 호환이 가능하면서 완전한 Security Process를 수립하고 process에 따른 대책이 이루어 졌을까요? 그렇지 않다고 단언합니다.

Office 제품군에 대한 취약성은 일주일에 몇 개 꼴로 신규 취약성 및 공격 가능성이 발견 되고 있습니다. 지금은 일반화된 zeroday attack[패치가 없는 취약성] 이 가능한 공격코드들이 무수히 발견 되고 있고 일정 수준 이상의 Binary 분석 및 취약점 발견 능력을 지닌 사람들에게는  손쉬운 일이라 할 수 있습니다. 도구의 발전으로 인해 예전보다 휠씬 더 적은 시간을 투자하고도 발견 할 수 있다고 봅니다.

 

http://www.securityfocus.com/bid 에서 Vendor Microsoft로 선택 하시고 보시면 최근 MS제품군에서 발견된 취약성을 확인 할 수 있습니다. 2007년에 발견된 다수의 취약성 대부분이 Office 제품군에서 발견된 것을 확인 할 수 있습니다. 물론 알려진 것 만입니다. 알려지지 않은 취약성이 더욱 많겠죠.

 

<securityfocus의 MS 관련 취약성>

 

https://www.youtube.com/watch?v=x1OF1BH0HhM

< MS Word Zeroday Attack에 대한 Youtube 동영상>

 

빌의 자신감은 충분히 이해합니다. 그러나 운영체제와 Application은 다르다고 생각합니다. 운영체제에서 모든 Secure한 구조 위에서 Application을 운영하고 통제를 한다면 이것은 진정한 All in One 이자 MS Emperor라 부를 수 있을 것입니다. 하지만 완전한 것은 없습니다. 운영체제의 보안이 하나 흔들리게 되면 모든 Application도 흔들리게 됩니다. Application 접근을 위해 통제가 가능한 PatchGuard 라는 방안도 만들어 두고 있으나 장기적 관점에서는 MS의 의도는 중대한 실책에 부딪힐 수 있을 것입니다. 자사가 만든 모든 Application의 변환은 그리 원활하지 않을 것이고 지금까지 투입된 것 보다 휠씬 더 많은 가치를 투입하고 긴 시간이 소요 될 것입니다. 이 간극의 시간에 많은 문제들이 발생 할 것이고 또한 Vista Protection도 깨질 것으로 보입니다. 확실 하다고 할 수 있습니다.

 

SAAS & SAAP의 충돌 ( 구글과 MS ? )

 

SaaS ( Software as a Service ) Saap (Software as a Product) 의 충돌이 이제 곧 예상이 됩니다. 올해부터 시작이 될 것으로 보입니다. SaaS의 선두 주자는 구글이고 Saap MS가 되겠죠. SaaS는 근래에 회자 되고 있는 용어이나 Saap는 방금 제가 급조한 용어입니다. ^^ ; Product 관점에서 접근하는 MS Service관점에서 접근하는 구글을 가르는 키워드는 Security 입니다. 두 패러다임을 이끌고 있는 기업 모두 직면한 과제라고 할 수 있습니다. Product 관점의 MS OS에 모든 것을 포함하려는 첫 시도가 Vista이고 많은 노력을 기울였지만 전체적인 관점에서 Trustworthy Computing Initiative는 아직 갈 길이 멀다고 봅니다.

 

빌이 역설한 Vista의 보안성 강조 부분에서 읽어 낼 수 있는 부분을 최대한 읽어 보았고 향후 양대 세력의 움직임을 어설프나마 예측해 보았습니다. 또 빌의 호언장담은 그리 만만치 않은 현실 속에서 많은 어려움을 겪게 될 것입니다. 아쉽게도 큰 흐름을 주도하는 두 세력 모두가 미국 회사라는 점이죠. 이런 거대 경쟁 속에서 발전을 하고 새로운 흐름을 주도하는 것이 부러울 따름입니다. 우리도 끊임없이 노력하다 보면 언젠가는 새로운 흐름을 선도 할 수 있을 것입니다. 지금은 틈을 노려야 할 때..

 

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

 

* 빌게이츠가 제 친구는 아닙니다. ^^; 서양 스타일 대로 호칭한 것이니 별다른 오해 없으셨으면 합니다. ^^;


 

 

 

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

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