본문 바로가기

Security Indicator/Insight

Threat of China II - 긴급 경고

 

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

 

금년 5월 부터 유명 사이트에 대한 해킹들이 연이어져 왔습니다.

이 문제의 근본은 여러번 언급 하였지만 Validation Check가 되지 않은 불안전한 프로그래밍으로 인해 발생합니다. 즉 DB서버와 Web Server와는 서로 직접적인 연결이 되어 있습니다. ASP , ASPX , PHP , JSP 등등을 이용하여 DB와 직접 연결하는 구조입니다.

이 부분에서 Validation 체크가 안된다는 것은 DB에 쿼리를 실행하도록 웹서버상의 언어에서 인자를 입력할때 이 인자의 유효성에 대한 체크가 전혀 되지 않아서 문제가 됩니다.

 

' 문자나 And 문자를 웹 URL의 인자 각각의 값에 덧 붙여 넣었을 경우 500 Error가 발생하거나 Unclosed Quotation Mark와 같은 DB에러가 Display 된다면 여러번의 다중 쿼리를 통하여 DB의 권한 획득이 가능하고  ( user , Password 획득 가능 ) DB 테이블 전체에 대한 조회가 가능해 집니다.

 

일반적으로 500 에러가 발생할 경우 Internal Server Error 라고 IE 화면에 Display 되어 DB와의 연결 작업에서 에러가 발생한 것으로만 알았으나 실제 실행된 값도  ^  ^ 문자로 둘러 쌓여서 전송이 되고 다만 화면에 표시될때에만 500 에러에 대한 화면이 표시되므로 문제가 있는지 여부를 몰랐죠.

그러나 실제 트래픽을 모니터링 하여 오는 값을 필터링 할 경우 DB의 모든 값들에 대한 조회가 가능합니다.

 

국내 대부분의 사이트에서 ASP + MSSQL 서버 조합에 대해서는 위험 경고를 내립니다.

그외의 jsp , php  + mysql , Oracle 조합에 대해서는 주의 경고를 내립니다.

 

위험 경고는 지금 당장 DB에 대한 권한이 유출될 수 있으며 시스템에 대한 위해행위가 계속 될 수 있음을 의미 합니다. 그리고 ASP + MSSQL 조합에 대해서는 이미 공격하는 자동화된 툴들이 다수 중국에서 유통이 되고 있는 상황이므로 긴급한 경고가 필요합니다.

 

* MSSQL을 운영하시는 분들은 지금 당장 확인해 보십시요 . DB 테이블에 D_.... , X_... , Jiaozou , t_jiaozou , xiarou  등과 같은 테이블 명이 있다면 이미 시스템에 백도어가 생성이 되어 있을 수 있고 한차례 이상 시스템에 대한 명령이 실행 되었다는 것을 의미 합니다. 아마 매우 많은 수치의 MSSQL DB에 위와 같은 테이블이 생성이 되어 있을 것입니다.

 

국내 사이트들을 보면 Secure Programming에 대한 의식이 전혀 없이 일반적인 지식을 지닌 프로그래머들을  저가에 고용을 하다보니 문제가 발생하였고 서적들의 경우에도 웹 프로그래밍에 대한 서적들은 많지만 근본적인 보안상의 문제가 발생할 만한 부분을 지적한 서적은 전혀 없습니다. 모든 서적들이 기능에 촛점이 맞춰져 있다보니 이런 문제가 발생하고 있으며 국내 대부분의 웹사이트가 크고 작은 문제를 지니고 있을 것입니다.

 

ASP + MSSQL 조합으로 이루어진 모든 웹사이트가 국내에 얼마나 될까요?..

이 사이트들 전부다가 경고의 대상이며 최소한 전체 웹사이트의 절반 이상이 위험한 상태입니다.

중국내의 공격 동향의 경우 google등의 검색엔진을 이용하여 url에 asp를 사용하고 사이트를 유명사이트로 고정을 하여 검색한 뒤 각 인자에 대해  ' 문자 혹은 And 문자를 대입하여 에러 여부를 검색하거나 자동화된 툴을 이용하여 임의적인 공격을 수행합니다.

 

포털 및 게임 사이트 전체 , IT 관련 기업 , 언론 사이트들 전부가 위험하며 각 사이트의 하위 도메인에 분명히 ASP + MSSQL 조합을 사용하는 사이트들이 다수 존재합니다. 이런 사이트를 통해 악성코드 전파지로 계속해서 언론 지상에 오르게 될 것입니다.

지금껏 나온 수많은 유명 사이트들은 빙산의 일각입니다.

 

저의 경고는 내년까지도 유효한 경고 입니다.

 

10월 중순에 KISA에서 웹 보안 관련된 세미나를 한다는 군요. 기회가 된다면 제가 발표를 하게 될 것 같습니다. 그때에도 심각한 주제를 전달 하도록 하겠습니다.

지금 한번 찾아보세요. MSSQL DB내에 위에 언급한 테이블들이 존재하는지?... 아마도 존재할껍니다. 그렇다면 이미 DB의 권한 및 데이터는 다 나간 상태이며 시스템에 대한 제어도 장담 못할 상태라는 거죠.

 

대책은 임시로  이 글을 참고 하세요. http://blog.naver.com/p4ssion/40015866029 

이 글 외에도 몇 몇 참고할 글들이 해킹 웜 바이러스 섹션에 있을 것입니다.

 

그럼 좋은 나날들 되십시요.