청와대 DB 서버가 해킹당했을 가능성이 높다는 뉴스.
관련 뉴스 : http://www.boannews.com/media/view.asp?idx=10240&kind=13
아쉽게도 이 뉴스는 지나친 오버다.
실무에서 웹 어플리케이션 소스를 분석하다보면, 손쉽게 알 수 있는 부분인데,
브라우저 화면에 "undefined" 라고 출력되는 것은, DB에서 데이터를 가져오지 못했기 때문에 발생하는 현상이다. 접속자 폭주, DoS, DB 커넥션 에러, DB 과부하 등이 원인이 될 수 있다.
그러면 왜 "undefined" 라고 출력이 되느냐?
pseudo code 로 설명하자면,
형태로 코딩되어 있기 때문이다.
보통은 직접 위와 같이 코딩하기 보다는 template 엔진을 활용해,
형태로 코딩하면, template 엔진에서 해당 변수가 undefined 되어 있는 경우 자동으로 "undefined" 로 대체해주는 경우도 많다.
아쉽게도 보안뉴스와 인터뷰한 전문가들은 개발과 관련해 위와같은 세부정보를 모르기 때문에 DB 해킹을 의심한게 아닌가 싶다.
우리는 컨설턴트이고, 보안과 관련된 부분을 집중적으로 연구하기 때문에 아무래도 개발자만큼 개발실무에 대해 잘알수는 없다. 때문에 인터뷰한 보안 전문가를 탓하고 싶지 않다.
이 글은 그저, 내가 아는 지식의 범위 내에서, 기존에 잘못 알려진 사실을 교정한다는 의미에서 적은 것일 뿐...
바빠서 이만 휘리릭~
이글루스 가든 - professional secur...
관련 뉴스 : http://www.boannews.com/media/view.asp?idx=10240&kind=13
아쉽게도 이 뉴스는 지나친 오버다.
실무에서 웹 어플리케이션 소스를 분석하다보면, 손쉽게 알 수 있는 부분인데,
브라우저 화면에 "undefined" 라고 출력되는 것은, DB에서 데이터를 가져오지 못했기 때문에 발생하는 현상이다. 접속자 폭주, DoS, DB 커넥션 에러, DB 과부하 등이 원인이 될 수 있다.
그러면 왜 "undefined" 라고 출력이 되느냐?
pseudo code 로 설명하자면,
if (bbs_arrays=db_query("select num, title, content, date from bbs_table")) {
... 변수 할당 ..
... 게시판 테이블 꾸미기 ...
num ? <%=num> : "undefined";
title ? <%=title> : "undefined";
content ? <%=content> : "undefined";
... 게시판 테이블 꾸미기 ...
}
형태로 코딩되어 있기 때문이다.
보통은 직접 위와 같이 코딩하기 보다는 template 엔진을 활용해,
... 게시판 테이블 꾸미기 ...
<%=num>
<%=title>
<%=content>
... 게시판 테이블 꾸미기 ...
형태로 코딩하면, template 엔진에서 해당 변수가 undefined 되어 있는 경우 자동으로 "undefined" 로 대체해주는 경우도 많다.
아쉽게도 보안뉴스와 인터뷰한 전문가들은 개발과 관련해 위와같은 세부정보를 모르기 때문에 DB 해킹을 의심한게 아닌가 싶다.
우리는 컨설턴트이고, 보안과 관련된 부분을 집중적으로 연구하기 때문에 아무래도 개발자만큼 개발실무에 대해 잘알수는 없다. 때문에 인터뷰한 보안 전문가를 탓하고 싶지 않다.
이 글은 그저, 내가 아는 지식의 범위 내에서, 기존에 잘못 알려진 사실을 교정한다는 의미에서 적은 것일 뿐...
바빠서 이만 휘리릭~
이글루스 가든 - professional secur...
태그 : 해킹

덧글
fullc0de 2008/06/13 13:07 # 답글
안그래도 저 기사에 댓글 달려고 했었는데.. 인증코드 승인이 안되서 그냥 패스해버렸어요 -_-;; 제목만 보면 해킹 당한거고 소제목은 가능성이 있다는 거고 본문은 이도저도 아닌 근거가 약한 추측밖에 안되는 기사네요..그나저나 청와대에서 저 기사 보면 어찌생각할지.. 그게 더 궁금하네요. ㅎㅎ
mm 2008/06/13 15:54 # 삭제 답글
기사 밑에 보니 청와대에서 의뢰로 사이버수사대 에서 수사한다고 하네요. ㅡㅡ;; 이걸로 봐선 진짜 당한듯도 싶고
Neker 2008/06/13 16:53 # 삭제 답글
그렇군요..저도 DB해킹된줄 알고있었는데..감사합니다
coderant 2008/06/13 23:59 # 답글
근데 청화대 홈페이지가 왜 php일까요?청화대 홈페이지는 국정원에서 직접관리하는데, 국정원은 오픈소스는 취약하다고 쓰지말라고 말하던데..
coderant 2008/06/14 00:00 # 답글
왜 청화대냐 하면 원래는 청와대이지만 왠지 청와대만 보면 화가 난다는. ㅠ,.ㅠ
ww0jeff 2008/06/14 14:58 # 삭제 답글
해킹은 언제든지 당할 수 있고근 2~3년 사이에 더욱 더 각 국가정부기관 해킹하고 있는데
예전부터 당했을수도 있고
당연 헐랭이님 글대로 요즘의 움직임, 위 결과로는
해킹당한 건 아니겠죠.
수사는 언론에서 해킹당한것으로 추측된다고 하니까
확인사살차원에서 하는거 아닐까요.
그나저나 침입경로는 많고 방법도 쉽고
무언가 큰대안이 필요한 시기입니다.
수많은 white hacker들이 한국에 많은데
이들은 국가의 도움에 기꺼이 도와줄 준비가
되어 있을 겁니다. 대부분요 ^^a
주제넘는 글같아 어지간하면 댓글 달지 말고
제 블로그에다가 적어야겠어요. 흐..
incle 2008/06/15 20:39 # 답글
역시 시원하게 해결해주시네요 ㅎㅎ감사합니다 ^^
초보도사 2008/06/16 08:44 # 삭제 답글
좋은 정보 감사합니다.그런데 추가적은 의견이 있습니다.
아마 보안전문가는 해킹의 가능성이 있을 수 있다고
이야기 하지 않았을까 합니다.
기사를 쓰는 기자가 확대해서 썼겠지요.
이상하게 저는 기자가 의심이 되네요.
자꾸만...
용기백배 2008/06/16 09:08 # 답글
음 어디까지나 가능성의 이야기였던게 아닐까요? DB에서 값을 가져오지 못한게 접속폭주로 인해서일수도 있고...다른이유일수도 있으니깐...뭐 그런 내용을 기자분이 적당히 꾸며서? 적으신게 아닐까 싶은데... 아무튼 오늘도 좋은 정보를 보고 갑니다^^
착이 2008/06/17 14:01 # 삭제 답글
꼼꼼한 개발자라면 데이터를 가져오지 못했을 때 서버 사이드 스크립트에서 처리해줘서 "undefined"같은 값을 할당하게 해서 위와 같은 현상이 벌어질 수도 있지만..기사에 나온 홈페이지의 "undefined"는 자바스크립트에서 존재하지 않는 값을 출력할 때 나오는 에러메시지입니다.
웹페이지 소스를 보면, 자동 스크롤이 되게 하려고 자바스크립트를 이용하여 보도자료 제목들을 출력합니다.
서버사이드 스크립트(php)에서 DB에 접속한 뒤 데이터를 받아와서 자바스크립트 변수로 할당해줘야 하는데..
DB에서 자료를 가져오지 못했기 때문에 아무런 값을 받아오질 못했고,
자바스크립트 변수에는 아무런 값이 할당되지 않았지만 출력을 시도 -> "undefined"가 찍히게 됩니다.
DB에서 자료를 가져오지 못한 이유는 헐랭이님께서 말씀하신 것 처럼 이런 저런 이유로 인해 DB에 접속이 불가능했기 때문일 수도 있습니다.
하지만.. DB는 정상 접근 가능하지만, 그 안에 데이터가 존재하지 않는다면.. 동일한 현상이 발생합니다.
그렇다면 DB서버가 해킹당해서 자료가 전부 삭제되었을 경우에도 똑같이 보이겠지요~!
결국은 위의 기사와 같이, "undefined" 메시지로 DB해킹 가능성을 추측할 수도 있습니다.
하지만, 캡쳐 화면의 상태도 그렇고.. 정황 상, 접속 폭주, DDoS로 인한 DB접속 불가 일 가능성이 높지요 :)
기사 제목은 명백히 잘못된 것 같고, 내용은 "DB해킹일 가능성 높음" -> "DB해킹일 가능성 존재" 로 표현을 다르게 한다면
올바른 기사가 될 것 같습니다.
아마 초보도사님 말씀처럼 보안전문가는 그렇게 말했는데 기사는 저렇게 나왔을지도 모르죠.. ^^