20090708 :: DDOS 공격에 대한 국정원의 쇼

푸훗 777 테러라구요?

병원에서 ‘절대 안정’이 필요하다는 진단을 받고 절대 안정을 취하며 하루 종일 잠만 자다보니 세상이 DDos 공격 때문에 시끌 시끌하다는 사실을 조금 전에야 알았습니다. 그러니까 청와대를 비롯한 몇 몇 국가 기관 사이트며 네이버, 옥션 등의 대형 사이트들이 일시에 DDos 공격을 받아 맛이 간 모양입니다. 아마 이번 공격에 동원된 좀비 PC는 만 단위의 대형 공격일 수 있겠다는 생각이 듭니다. 우선 가장 먼저 떠오르는 단어는 ActiveX입니다. 전국에서 사용되는 많은 PC들의 가장 주된 용도는 인터넷일 것이고 ‘IT 강국인 대한민국의 인터넷 환경 특성상’(그리고 이를 아무도 ‘낙후성’이라고는 말하지 않는 것이 조금 신기합니다.) ActiveX를 거부감 없이 무의식적으로 설치하는 ‘좀비’ 사용자들이 대다수인데, 그깟 DDos 클라이언트 하나 심는게 대수로운 일이겠습니까?

그런데 뭔가 좀 다르다고 합니다. 보통 DDos 공격은 돈을 목적으로 ‘돈 안 내 놓음 자꾸 쏴서 너네 서버 죽여버린다’는 협박으로 이어지는데, 이번 공격은 그런 것도 없다고 하네요. 그냥 묻지마 공격이라고 합니다. 게다가 개별 좀비 PC에 설치된 악성코드는 새로운 호스트 목록을 내려 받아서 2차 공격을 감행하는 등 거의 자동으로 작동하는 폭탄 같은 느낌입니다. 그런데 그렇다고 이걸 ‘테러’라고 명명하더니 국정원은 급기야 “사이버 테러의 배후가 북한이다”라고 의견을 내 놓은 것아 파장을 일으키고 있습니다.

그런데,

다만 국정원은 배후에 북한 내지는 종북세력이 있다는 판단 근거를 제시하지는 않았다.

라고 하는군요.

테러는 이미 전세계적으로 ‘범죄’로 규정되어 있으며, 어떠한 형태든지 저지르는 주체의 이익을 대변하는 것으로 보여집니다. 911 테러 당시에도 그렇게 의혹을 많이 샀던 부분은 테러가 발생했음에도 ‘우리가 했다. 너네 우리 요구를 안 들어주면 좀 더 각오해야 할거야’라고 나서서 주장하는 곳이 한 군데도 없었다는 점입니다.

그런데 국정원은 이런 사이버테러에 북한 내지는 종북 세력이 배후에 있다라고 ‘근거도 없이’ 주장해서 사회적 혼란을 야기하고 있습니다. 인터넷 사이트는 사실 공공 기관을 제외하면 거의 대부분이 특정 서비스에 대한 대체 서비스가 있습니다. 이메일을 보내려는데 네이버가 죽었다면 다음 메일, 야후 메일, 파란 메일….등등을 쓰면 됩니다. 공공 기관 홈페이지에서 뭔가 확인하고 싶은데 서비스가 죽었다면 네이버 지식인이나 다른 검색 서비스를 통하면 왠만한 정보는 찾을 수 있을 겁니다. 이번 공격이 공공 기관 대상을 중심으로 한 성격이라서 실제적으로 불편을 겪은 사람은 좀 많이 있을지 모르지만 치명적인 손실을 입은 곳은 옥션을 제외하고는 별로 없을 거라고 보여집니다. 사실, 공공 기관 홈페이지들 거의 방치된채로 걸려있는 곳은 또 얼마나 많았습니까?

그럼에도 국정원은 북한을 거들먹 거리면서 이것은 사이버 테러다는 식으로 여론을 호도하고 있습니다. 이러한 상황에서 테러법 등의 법안 통과를 위한 언론 플레이가 아니냐는 지적도 많이 나오고 있으며, 상황이 이렇게 흘러간다면 이러한 ‘사이버테러’ 사태로 가장 큰 정치적 이익을 보는 것은 국정원과 정부가 아닐까요? 만약 북한에서 사이버 테러를 한다고 하면 이런 ‘곁가지’ 혹은 ‘껍데기’를 공격하지는 않을 듯 합니다. 제대로 기간망을 건드려서 전자적으로 관리되는 사회 인프라를 무력화 시켜 버리거나 아니면 조용히 침투하여 군사 기밀 같은 걸 빼내간다면 모를까요. 차라리 이번 공격의 주체는 제가 보기에는 반한 감정 충만한 중국 해커나 일본 해커가 아닐까 하는 생각도 있으며, 좀 극단적으로는 국정원이 벌인 자작극이 아닐까하는 생각도 듭니다.

어떻게 이 지경이 됐을까?

그럼 수많은 좀비 PC를 양산에서 한 방에 몰아붙이는 이번 공격은 어떻게 준비되었을까 한 번 생각해 보도록 하겠습니다. 아마 첫 번째 타겟은 신문사 홈페이지가 아닐까 생각합니다. 실제로 지금도 많은 신문사/ 영화잡지사의 홈페이지는 파이어폭스나 구글 크롬으로 접근을 시도하면 악성 코드를 배포하는 곳으로 판별되어 접근이 차단됩니다. (물론 위험을 기꺼이 감수하겠다면 접근은 가능합니다.) 게다가 네이버에서도 기사를 가져오지 않고 해당 언론사의 페이지로 링크만 제공하면서 언론사의 홈페이지 트래픽은 네이버 뉴스 서비스 개편 이후 폭등 했을 것으로 생각됩니다.

이곳에 몰래 설치되는 혹은 대놓고 설치되는 악성 코드를 파일 이름만 그럴싸 하게 바꿔서 심어 놓으면 안 그래도 ‘무조건 설치’에 길들여진 사용자들은 ‘믿을만한 언론사가 제공하는’ 프로그램이라 생각하고 냅따 설치했을 겁니다. 배포를 쉽게 하기 위해서는 그냥 보안 취약점을 통해서 몰래 설치되는 방법도 있겠지요. 전체 PC 사용자의 절반 이상이 ‘윈도우즈 업데이트’가 뭔지 모를 것은 제 개인적인 생각이지만 거의 확실하다고 믿으므로 그냥 그렇다고 하겠습니다. 그럼 ‘해당 언론사’ (이렇게 썼다고 해서 꼭 그 조선 일보를 말하는 건 절대로 아닙니다) 에서 퍼진 악성코드는 매우 손쉽게 좀비 PC들을 양산해 내기 시작합니다. 솔직히 네이버 메인에서 링크되는 페이지의 일일 페이지뷰는 엄청난 수준이므로 (저는 네이버 메인에 걸린 오픈 캐스트에서 2차로 링크된 적이 있었는데 그날 트래픽 폭탄을 맞았더랬습니다.) 그 중 20%만 감염된다 하더라도 단 일주일이면 수 만대 감염시키는 건 문제도 아니겠지요. 더군다나 언론사 홈페이지들 보안 허술한 건 어제 오늘의 일도 아니니까요.

여기까지 왔으면 그 이후는 정말 ‘누구도 막을 수 없는’ 상황이 되는 겁니다.

그럼 예방할 수는 있나?

네 예방할 수는 있습니다. 이러한 공공의 위협을 획기적으로 줄일 수 있는 방법은 분명히 존재합니다. 문제가 무엇인지 파악만한다면 왜 못 막겠습니까? 이번 공격에서 가장 큰 보안의 구멍은 바로 ‘사람’입니다. 어찌되었든 악성코드에 감염된다면 그 1차적인 책임은 사용자에게 있으니까요. 그런데 그게 꼭 사용자만 탓할 수는 없습니다. 그저 개발 편의를 위해서 ActiveX를 강제해 온 이 땅의 인터넷 관련 기업 모두가 책임을 느껴야 합니다. 그래서 이러한 문제를 바로잡기 위해서는 사람들의 인식을 바꾸어야 하고 그만큼 비용과 시간이 많이 깨질 것도 각오는 해야 합니다. 하지만 우리의 삶에서 점점 더 ‘네트워크’에 대한 의존도가 커지는 지금의 추세에 비추어 볼 때, 이러한 조치는 반드시 필요하며 더 이상 미루어서도 안된다고 생각합니다. 그래서 아래에 몇 가지 방법을 제시하고자 합니다.

  • 이제는 ‘보안 취약점’ 이상의 의미를 가지지 못하는 ActiveX를 더 이상 서비스에서 사용하지 못하도록 권장하거나 금지하는 방안을 강구해야 합니다.
  • 굳이 그래도 써야겠다고 한다면 무조건 설치하라는 식으로 안내를 못하도록 해야합니다. 이것은 서비스 제공 업체의 기본적인 상도의입니다.
  • 은행 업무와 같이 중요 개인정보를 다룬다면 웹UI를 사용하는 서비스는 전면적으로 전용 클라이언트로 대치해야 합니다. https 등의 기술을 ‘금새 뚫린다’며 우습게 생각하시는 현업 종사사 분들이 꽤 많으심을 지난 번 오픈웹 사건에서 알 수 있었는데요, 그런 분들이 만드신 서비스에서 왜 제 통장 잔고를 확인하는 화면은 그냥 평문통신(http)으로 전송되나요? 모든 정보의 송수신이 완벽하게 암호화되는 전용 클라이언트를 만들어 설치하면 중간에 뚫릴 위험은 1/10000 수준으로 줄어듭니다.
  • 인터넷 이용시 ‘뭐가 뭔지 잘 모르는 사용자가 아무거나 설치하는 것이 얼마나 위험한지’에 대한 교육을 강화해야 합니다. 그냥 아무거나 막 설치했을 때의 결과요? 오늘 보셨잖습니까.
  • 인터넷 익스플로러 IE6의 점유율을 낮추고 다른 브라우저를 사용하도록 적극적으로 권고하는 대대적인 캠페인이 필요합니다. 인터넷 익스플로러 8 하다못해 7버전이나 파이어폭스, 구글 크롬, 사파리, 오페라와 같은 훨씬 안전한 브라우저를 사용하도록 해야 합니다. 그러면 서비스 업체, ISP 업체가 짊어져야하는 보안의 책임과 그에 따르는 비용을 획기적으로 줄일 수 있습니다. 이런 거 왜 안하는 지 모르겠습니다. 혹시 ‘보안 구멍’이 자주 출몰해야 장사가 되는 업체들 때문일까요?
  • 유료 혹은 무료로 배포되는 본격 안티 바이러스 및 개인 방화벽 소프트웨어 사용을 적극 권장하고 홍보해야 합니다.
  • 주요 포털에서도 윈도우즈 보안 업데이트를 배포하거나 다운로드 받도록 안내하고 교육하는 장치가 필요합니다.
  • 위의 이 모든 조치와 더불어 인터넷이 얼마나 악성코드와 바이러스로 점철된 위험한 공간인지 알려주는 것이 중요합니다. 윈도XP SP2 버전을 네트워크 케이블이 연결된 상태로 PC에 설치한 후 설치 이후의 인터넷 접속이나 기타 프로그램 실행등의 동작을 시연하여 상태가 어떤지, 그리고 이 때 안티 바이러스 스캔을 시행하면 ‘갓 깔린 따끈한 윈도우’가 얼마나 엉망진창이 되어 있는지에 대한 홍보 동영상이라도 하나 만들어서 뿌려본다면 교육 효과 만빵일 것 같은데요. (이런 걸 서바이벌 타임이라고 한다죠. 윈도우XP SP2의 서바이벌 타임은 15초 가량인 것으로 알고 있습니다. 즉 백신이나 별도의 방화벽이 없는 상황에서 온라인된 채로 XP를 설치하면 설치가 완료되기도 전에 바이러스 및 악성코드에 감염된다는 말입니다)

20090402 :: 인터넷 뱅킹 보안 2

인터넷 뱅킹의 보안에 대해 요즘 오픈웹과 개발자들(로 추정되는 분들)간의 뜨거운 토론이 슬슬 ‘오픈웹 무용론’으로 새어 나오기도 하고 보다 감정적으로 이야기가 격해 지고 있는 느낌입니다. 개발자들 입장에서는 오픈웹에서 퍼붓는 독설이 결코 반가울리 없겠지만, 제가 보기에는 김기창 교수님의 논리는 그 어법 자체가 직선적이고 다소 감정적일지언정 그리 비약이 심하다거나 하지는 않은 듯 합니다. 

많은 개발자분들이 댓글을 통해 ‘단지 [을]일 뿐인 개발사의 한계’에 대해 성토하고는 있지만, 그러한 말들은 문제의 본질을 흐리게 할 뿐입니다. 오픈웹의 초기 모토는 ‘플랫폼이나 브라우저에 종속되지 않고 인터넷을 사용할 수 있게 하자’라는 것이었고, 그 중 ‘인터넷 사용’은 ‘금융거래’에 초점이 맞추어져 있었죠. 사실 닫혀있는 대한 민국의 웹 사이트는 은행들 뿐만이 아닙니다. ‘돈’이 왔다 갔다하는 거의 모든 사이트에서 공인인증서를 요구하고 있고, 공인 인증서 모듈 설치와 더불어서 덕지 덕지 ‘보안 모듈’이라는 이름으로 그 정체를 알 수 없는 플러그인들이 한번에 설치되는 것이 가장 큰 문제이지요. 그리고 유독 ActiveX가 문제가 되는 것은 ActiveX 그 차체에 문제보다는  김기창 교수님이 거듭 강조하시듯이 ‘설치 메세지가 나타나면 무조건 [예]를 누르라는 지시’ 때문입니다.

그럼에도 불구하고 많은 분들이 SSL 보안 연결도 그리 안전하지 않다는 말만 되풀이 하고 계십니다. 참 답답한 현실이 아닐 수 없습니다. 물론 웹 서비스를 만드는 사람과 운영하는 사람이 다른 경우가 거의 대부분이기는 합니다만, 그냥 ‘만들어달라’는 요구에 대해서 만들어주기만 하면 끝이라는 식의 발언 들은 서비스 개발자로서의 최소한의 소명 의식마저 저버린 듯한 느낌이 들어서 안타깝기도 하구요. 이미 옥션등의 대형 포털에서 대량의 개인 정보 유출 사고가 있었고, 그 가장 근본적인 원인은 ‘쓸데없이 주민등록 번호를 요구한’ [갑]에게 있는 것도 당연한 이야기입니다만, 그런 민감한 정보를 저장함에 있어서 만에 하나 유출될 가능성을 염두에 두지 않고 암호화 하지 않고 DB에 저장한 개발사 역시 아무런 할 말이 없을 거라는 겁니다. 좀 개념을 갖고 만들었다면 회원 DB가 유출되어도 큰 문제가 되지 않을 수도 있는 사건이었습니다. 지금에야 유야무야 넘어가버린 문제이지만, 실제로 국민 1/3을 식별할 수 있는 개인 정보가 그냥 다 공개되어버린 것과 같은 저 문제는 ‘국가적 보안 위기’로 봐도 무방한 사건 입니다. 

지금 오픈웹에서 벌어지는 댓글 논쟁은 그리 유용해 보이지 않습니다. 결국은 ‘째려보니 맘 상해서 등돌린’ 보안 업계 종사자 분들의 뒷모습을 보는 것 같아서 마음이 씁쓸합니다. 백번, 천번 양보해서 정말로 SSL 보안 연결이 못믿을 방법이어서 부득이 하게 사용자의 입력 정보를 암호화하는 방법을 ActiveX로 썼다고 해도, 아이디/비밀번호 못지 않게 중요한 제 계좌정보는 왜 평문 통신으로 뿌려버리게 되는 것인지 이해가 가지 않습니다. 정말이지 논점 일탈이 멀어도 한참 멀리까지 넘어와 버린 느낌이랄까요.

정말 그 분들의 말처럼 SSL은 믿을 게 못되고 IT 강국, 대한민국의 첨단 기술력으로 만든 ActiveX가 훨씬 더 안전한 보안 통신을 구현할 수 있다면, 굳이 브라우저에서 인터넷 뱅킹을 할 이유는 없어 보입니다. 그냥 전용 터미널 소프트웨어를 만들어 배포하는 게 훨씬 경제적이고 안전할 듯 하네요. 이제 슬슬 싸움이 ‘밥 그릇 지키기’ 쪽으로 몰려 가는 것 같습니다. 앞으로도 여러번의 ‘법원 밖에서의’ 진통이 예상됩니다만, 차라리 지금 조금 힘들더라도 이 문제가 이런 논쟁을 계기로 공론화 되고, 그래서 사회 전반에서 보다 활발히 논의되고, 또 일반 사용자들에 대한 보안 교육 강화가 의무적으로 시행되는 등의 조치가 취해질 수 있다면 좋겠습니다.

 

 

20090314 :: 인터넷 뱅킹의 보안 약점

당신의 PC는 안전한가요?

몇 일전 하나 은행 고객 예금이 해킹에 의해 2100만원이란 적지 않은 돈이 감쪽 같이 사라진 사건이 있었습니다. 워낙 TV나 뉴스를 잘 안보고 살아서, 얼마나 큰 반향을 불러 일으켰는지는 모르겠군요. 아무튼 은행은 자기네 책임이 아니니 없어진 예금액을 보상할 수 없다는 입장을 취했다고 하는데, 좀 어처구니 없고 약간 많이 화도 나는 군요. 그런데 이 해킹 사건에서 주목해야 할 부분은 누군가가 ‘이미 유출된 정보’를 바탕으로 은행 시스템에 접근했다는 점입니다. 물론 은행 시스템이야 보안 결점등을 통해서 해킹하기가 쉽지 않겠지만, 이런 경우라면 ‘인터넷 뱅킹 시스템 전체의 보안 시스템’은 이미 붕괴되었다고 보아야 할 듯 합니다.

자기네 시스템을 뚫고 들어와서 일어난 해킹이 아니므로 자기 책임이 아니라는 말은 어불성설이지요. 조금만 생각해보면 ‘클라이언트 어플리케이션’에서 일어난 예외 이슈를 제대로 안전하게 처리하지 못했기 때문에 발생한 일이지요. 물론 개발자나 기획자 혹은 정책 담당자 입장이라면 주민등록번호나 아이디 비밀번호와 같은 데이터를 다 알고 접근하는데 어떻게 그걸 본인이 맞는지 아닌지 확인할 수 있느냐고 강하게 항변할 수 있겠지만, 인터넷 뱅킹이 단순히 지금이 몇 시인지 알려주는 그런 서비스와는 맥락이 다르잖아요.

이미, 대한민국 국민의 1/3 가량의 주민등록번호는 활짝 오픈된 네트워크 사이를 지금도 부지런히 떠돌고 있는지 모를 일입니다. 이 모든 일의 책임은 단순히 하나은행 뿐만 아니라 회원의 귀중한 개인정보들을 억지로 요구해 놓고서는 성심 성의껏 책임을 다해 보호하지 않은 많은 웹 서비스 운영/개발자들 때문입니다.

다시 한 번 하나 은행에게 묻고 싶습니다. 당신들이 제공하는 ‘인터넷 뱅킹’ 서비스는 고객들이웹을 통해 은행 업무를 처리하게끔하는 서비스입니다. 이 서비스의 범위는 최종단에 있는 End-User와 기간 시스템 전체를 포함합니다. 이 범위 내에 해커가 침입하여 고객의 돈을 빼 돌렸습니다. 그럼에도 당신들의 ‘보안 시스템’은 여전히 완벽하며, 당신들의 책임은 없는 건가요?

안 같은 소리 하시네요

지금 오픈웹에서는 김기창 교수님이 ‘안일하기 짝이 없어서 양심이 있는지도 의심스러운’ 국내 보안 업체들에 대해 소리 높여 따끔한 소리를 내는 중이십니다. 저 역시 이런 김교수님의 의견에 전적으로 동의합니다.

PC를 포맷하고 윈도우를 재설치 한 다음, 은행 업무를 인터넷으로 하나 처리하려고 하면 얼마나 많은 ActiveX를 깔아야 하는지 모릅니다. 당연히 ActiveX를 깔지 않아도 서비스를 이용할 수 있어야 하는데, 그렇지 못한 서비스가 절반을 넘는 실정입니다. (그리고 이건 명백한 규정 위반입니다.) 그리고 가장 치명적인 것은 이런 ActiveX 설치를 강요하는 서비스들 때문에 이 나라 온 국민이 아무 생각없이 ‘예’만 클릭하고 앉아 있는 상황이 되어버렸다는 것입니다.

그리고 거의 대부분의 인터넷 사용자들은 이런 행위 자체가 얼마나 위험한 일인지 모릅니다. (굳이 말씀 다시 안드리려고 했지만 이들은 ‘인터넷 익스플로러의 파란 아이콘’ = ‘인터넷’ 이라는 생각을 하고 있습니다.)  덕분이 별의 별 양아치 같은 업체들이 ActiveX를 사용해서 못된 짓을 많이 해 왔고, 또 비슷한 부류의 업체들이 그런 식으로 걸레가 되어버린 시스템들을 대상으로 장사를 해왔습니다. 그리고 사용자들이 ActiveX를 별 거부감 없이 설치하는 행위에 익숙해지고 거부감이 없어지게 된 기념비적 업적을 이루어, 한 나라를 보안 위협의 소용돌이 속으로 밀어 넣는 위업을 이루고 말았지요.

설치 프로그램의 위력

ActiveX가 보안에 위협을 준다는 이야기는 아주 오래전부터 나왔던 이야기입니다만, 사실 많은 사람들이 왜 ActiveX가 문제가 되는지는 잘 모릅니다. ‘사용자 몰래 설치된다’는게 가장 널리 알려진 이슈입니다만, 사용자 몰래 시스템에 숨어드는 것은 굳이 ActiveX가 아니어도 가능한 일이지요. 사실 사용자 시스템의 보안이 가장 위험한 수준까지 저하되는 순간은 사용자가 특정 프로그램을 더블클릭하여 실행하는 시점입니다. 아무리 위험한 악성 소프트웨어라도 실행되지 않는다면 아무런 위협이 되지 못하겠지요. 그런데 ActiveX는 웹 기반에서 로컬 시스템에 있는 프로그램을 동작하도록 할 수 있다는 점에서 극히 위험한 부분이 됩니다. 기본적으로 웹에서는 로컬(사용자의 PC를 말합니다)에 있는 리소스를 함부로 액세스하지 못합니다. 그게 된다면 특정 웹 사이트에 접속할 때 중요한 시스템 파일이 삭제되어 버릴지도 모를 일이지요. (그 웹사이트 운영자가 노린 것일 수도 있고, 최악의 경우에는 해커가 믿을 만한 사이트를 해킹하여 그런 코드를 심을 수도 있겠지요) 다행히 웹 브라우저는 그런 행위들을 차단해 줍니다. 문제는 ActiveX는 웹 브라우저(정확히는 웹 사이트에 포함된 코드)에게 그러한 행위를 가능하도록 해주는 가교 역할을 한다는데 있습니다. 많은 온라인 게임 사이트는 ‘런처’라는 명목으로 웹 상에서 PC에 설치된 게임 클라이언트가 실행되도록 하는 마법을 부립니다. 아, 어떤 게임이었는지는 정확히 기억나지 않지만 게임을 설치한 후 바탕화면에 생성되는 바로가기 아이콘은 그 프로그램을 실행하는 바로가기가 아니라, 해당 게임의 홈페이지로 이동하여 런처를 통해 실행되도록 한 게임도 있더군요. 정말이지 기가 찰 노릇입니다.

그럼 다시 설치 프로그램을 생각해보도록 하겠습니다. 많은 데스크톱 어플리케이션 (그냥 프로그램이라고 하지요)들은 통상 설치 파일을 다운로드 받아서 프로그램을 설치하도록 합니다. 대한민국에서 가장 많이 사용되는 메신저 프로그램인 네이트온을 예로 들어 보죠. 어느 순간 부터인가 네이트온 설치 프로그램은 아무 생각없이 ‘예’, ‘다음’을 선택하는 사용자들의 습성을 사용하여 주소창처럼 생긴 검색 툴바를 설치하고 있습니다. ’설치 프로그램’이라고 되어 있지만 뭘 설치할 것인지는 그 프로그램을 빌드한 개발사만 알고 있는 점입니다. 결국 프로그램이 실행되는 순간, 사용자는 자신의 권한을 프로그램에게 위임하게 됩니다. 그 실행된 프로그램은 만들어진대로 자신의 파일들을 시스템의 특정 폴더 내로 복사해 넣을 수도 있고, 관련된 시스템 설정을 건드릴 수도 있고, 레지스트리를 건드려서 자신이 매번 자동실행되도록 하거나, 스스로를 시스템 서비스로 등록해 버릴 수도 있습니다. 심지어 power promtp 같은 프로그램은 일반 user로 로그온 한 사용자가 시스템의 권한으로 명령창 도구를 실행하도록 할 수 있습니다. 덕분에 제어판 진입이 막혀있는 PC 방에서도 제어판을 열어보거나 시스템 설정을 변경하는 것이 가능한 부분도 있습니다.

결국 ActiveX를 설치한다고 “예”를 누르는 행위는 사실 정확히 어떤 프로그램인지도 알지 못하는 프로그램을 자신의 PC에 설치하는 것입니다. 더군다나 ActiveX 내에 다른 프로그램을 덩달아 설치하도록 코드가 삽입되어 있다면 그야말로 끔찍한 경험을 할 지 모를 일입니다. 오픈웹에서 소개하고 있는 도아님의 포스팅에 링크되어 있는 사이트 같은 곳이라면 그야말로 상상도 하기 싫은 수준의 악성 사이트입니다. 하지만 예상컨데 한 번 진입만 한다면, 그 많은 ActiveX를 모조리 설치하실 분들이 꽤 많을 거라는 말입니다.

제발 부탁드립니다

정말이지 제발 부탁 드립니다. 이런 ActiveX를 설치하기 전에, 그리고 어떤 프로그램을 설치하기 전에 몇 번만 고민해 주시기 바랍니다. 그리고 설령 그것이 ‘보안모듈’등의 이름을 가지고 있다 하더라도, 한 번은 설치하지 않고 그냥 서비스를 이용해 보시기 바랍니다. ActiveX가 국내 웹 환경 및 국민들의 보안을 망치고 있도록 방조하는 가장 큰 원인은 보안 업체의 잇속 챙기기 보다는 생각없이 ‘예’를 클릭하는 사용자들의 잘못된 습성입니다. 그리고 또 하나 공인인증서를 포함해서 개인정보를 담고있는 파일들 (이력서라든지… 연락처를 저장해놓은 엑셀, 텍스트 파일)은 하드 디스크 보다는 이동식 USB 메모리 같은 곳에 저장하시구요.

하나 은행 해킹 건과 같은 금융 사고가 앞으로 더 늘어났으면 더 늘어났지 줄어들지는 않을 것 같군요. 그리고 그런 피해들을 구제 받지 못하고 고스란히 사용자들만 고통을 받는 날이 올까봐 걱정 스럽습니다.

20080420 :: 당신의 주민번호는 안녕하십니까

옥션이 사용자의 패스워드를 암호화하지 않고 텍스트 그대로 저장했더라는 흉흉한 소문이 돌고 있습니다. 사실인지 확인은 되지 않은 듯 합니다만, 좀 어처구니 없기는 하네요. 바로 직전 글에서 쓸데없이 주민등록번호를 요구하는 사이트들의회원가입 절차도 문제가 있고, 또 거기에 익숙해지다보니 꽤나 중요한 개인정보인 주민등록번호를 아무 거리낌없이 웹으로 전송하는 사용자들의 보안 의식 부재도 문제가 있다고 말씀드린 바 있습니다만, 오늘은 이런 싸이트들이 입력받은 회원들의 개인정보를 얼마나 소중히 다뤄주시고 있는지, 한 번 살펴보도록 하겠습니다.

SQL 강제 주입

SQL 강제 주입이라는 기법이 있습니다. 동적으로 쿼리문을 생성하는 사이트들에 대해 폼으로 전송하는 아이디나 이메일 주소 따위의 내용에 별 거 아닌 거 같은 폼 데이터를 전송하여 쿼리문을 바꿔치기 하는 수법입니다. 예를 들어 입력받은 사용자 아이디와 비밀번호를 체크하여 인증하는 쿼리중에 다음과 같은 IF 문이 있다고 합시다.

IF ‘DB속의 사용자 ID’‘입력받은 사용자 아이디’ AND ‘입력받은 패스워드’ = ‘DB속의 사용자패스워드’ ….

이런 방식으로 동적으로 쿼리문을 만들게 될 때 ID 란에 ‘ or 1=1 – 이라고 입력한다면 위의 쿼리는 다음과 같이 됩니다.

IF ‘DB속의 사용자 ID’ = or 1=1 – ‘입력받은패스워드’ = ‘DB속의사용자패스워드’ …

즉, ID를 비교하는 구문을 무조건 참으로 만든 다음(1=1) 이후 부분은 모두 주석처리 해버리는 겁니다.

이러한 기법은 동적으로 쿼리를 생성하지 않거나, 문제가 될 수 있는 특수기호를 치환하는 방법으로 회피할 수 있습니다. 워낙에 고전적인 방법이라 전문가가 아닌 저도 어렵지 않게 관련된 내용을 찾아볼 수 있었고, 또 오래된 방법이다 보니 요즘은 ‘ or 1=1 –라고 입력해도 ‘존재하지 않는 사용자 아이디입니다’ 따위의 메세지를 보게 됩니다.

요즘은 통하지 않는 방법?

시험삼아 네이버에서 찾은 몇몇 쇼핑몰에 대해서 위의 테스트를 해보니 다행히 강제주입따위의 공격은 우습다는 식으로 잘 막히더군요. 그런데 소규모 개인 쇼핑몰도 아닌, 어떤 의류 브랜드가 하는 쇼핑몰에서 문제가 생겼습니다.

사실, 이 글을 쓰기에는 좀 여러가지로 망설여지는게 많았었는데 이런 방법이 있었다…라고 말하는 것과 실제로 이렇게 뚫리는 사이트가 있다라고 하는 것은 아무래도 많이 다르니까요.  아무튼 해당 브랜드는 미국 메이저리그 야구팀들의 유니폼을 모티브로 힙합 간지 캐주얼을 전개하는 아는 사람은 다 아는 곳입니다. 실제로 이곳을 강제 주입으로 로그인에 성공한 것은 어제 오늘의 일이 아닙니다. 1년전 쯤에 발견하고 해당 웹사이트 관리자에게 수차례 메일을 보낸 적이 있으며, 개인정보가 노출되는 회원에게도 이러저러하여 보니 개인정보가 그대로 드러나고 있으니 탈퇴를 하든 항의를 하시라고 메일을 보낸 적이 있습니다.

여기서 위에서 말한 강제 주입을 통해 로그인을 시도해보겠습니다. 이미 1년 전에 이런 방법으로 로그인이 된다는 정보는 관리자에게 전달을 했고, 사이트 개편도 있었던 거 같아서 될 거라고는 생각을 안했지만…

로그인 아이디 입력

패스워드에는 아무거나 집어넣어도 상관이 없습니다. 당연히 ‘아이디가 존재하지 않습니다’가 나올 줄 알았는데, 이게 왠일입니까 ‘SUCCESS’라고 표시되면서 로그인이 되어 버립니다.좀 어처구니가 없군요. 그러면, 지난 번에 메일을 보냈던 같은 회원일까요?

여기서 또 한번 골 때리는 장면을 목격합니다. 네, 그 분 이더군요. 물론, 보냈던 메일들에 대해서 아무런 회신을 받은 바 없긴 하지만 이정도 일 줄을 몰랐습니다.

로그인된 회원의 정보

보시다시피 이름과 주민번호 연락가능한 전화번호와 주소, 전자우편주소까지 죄다 나와버립니다. 물론 여기서는 단 한명의 회원의 정보만 노출이 되었다고 할 수 있지만, 사실 주민번호와 메일 주소정도만 알고 있으면 ‘비밀번호찾기’ 기능으로 너무나 쉽게 뚫어낼 수 있는 다른 서비스가 많이 있는데다가, 실명과 주민번호만 알면 다른 사이트에 신규 가입은 얼마든지 가능하므로 앞으로 어떤 피해가 발생할지는 아무도 모르는 일입니다.

책임은 지지 않는 개인정보보호정책

물론 이 사이트도 회원정보 보호정책이라는 게 있(었)겠지요. 담당자도 있을 것입니다. 하지만 옥션이나 네이버와 마찬가지로 ‘해킹에 의한 피해는 책임질 수 없음’을 들어버리는 건 아닌지 모르겠습니다. 글쎄요 저는 요즘 같은 때에는 이러한 SQL 강제 주입이 해킹의 축에 속할 수나 있는지는 도저히 모르겠습니다. 그렇다면 ‘구글링’을 통해 회원정보가 고스란히 담겨져 있는 엑셀 파일을 내려받을 수 있는 사이트들은 어떤가요?

예전에 한 번 검색 엔진 구글이 해킹툴로 활용된다는 식의 기사를 본 적도 있는데요, 정말이지 환장할 노릇입니다. 그곳의 보안 담당자라는 분은 그래서 방화벽 솔루션을 다른 걸로 교체한다는 둥 말도 안되는 말씀을 하시던데, 구글링으로 찾아서 내려받았다는 말은 결국 어떻게든 링크를 타고 갈 수 있는 ‘노출된 데이터’라는 말과 동일한 거 아닌가요? 어떤 아이피로 접근하든 접근할 수 있는 권한이 있다는 뜻입니다. 그런걸 마치 ‘첨단 기술이 집대성된 고성능 검색 엔진을 해킹에 활용’했다고 말하는 뻔뻔함은 어디 가면 할인 받아서 살 수 있는지 참으로 궁금합니다.

어쨌거나 아주 소수, 정말이지 아주 소수의 사람들만 국가적인 보안 위기라고 목놓아 소리치고 있는 현실이 안타깝습니다. 언론이라는 자들은 이 걸 단순히 가십거리 이상도 이하도 아닌 것으로 치부하고 자극적인 기사만 쏟아내고 있지요. 단순히 주민번호를 사이트에서 받아가지 말자는게 주된 요지가 아니라, 범국가적인 차원에서 보안 개념에 대한 교육이 필요하지 않나 생각됩니다.

20080416 :: 옥션의 개인정보 유출 사고?

옥션에서 자그마치 1000만 명이 넘는 회원의 개인정보를 유출당한 사고가 지난 2월에 있었습니다. 당시에도 이래저래 말이 많았습니다.  그래도 왠지 수면위로 힘차게 떠오르지는 못하고 유야무야 잊혀져 갔습니다. 결국 1000만이 넘는 사람들의 주민등록번호와 실명을 포함한 개인 정보가 유출된 것으로 밝혀졌더군요. 인터넷 강국이라는 위상에 걸맞게 발빠른 사람들은 소송 준비를 위한 카페를 개설하고 신나게 회원을 받고 돈도 받고 있다는 군요. 이러한 점들이 이슈화가 되면서 언론에도 소개가 되고 있습니다. 그런데 왠지 그러한 기사들을 접하는 저로서는 그저 ‘가십거리’에 불과한 것처럼 느껴지는 건 왜 일까요?

이미 Draco님이 말씀하신대로 이건 간단히 일반인인 회원들과 일개 인터넷 업체사이의 논란이 이는 정도를 넘어섰습니다. 유출된 정보의 양이 보도된 그 정도라면 주민등록번호라는 이 나라의 가장 기본적인 개인 식별 코드는 이미 그 기능을 상실했다고 봐야 합니다. 개인정보를 털린 피해자들의 입장에서는 다른 사이트의 아이디나 비밀번호를 바꾼다 어쩐다 한들 소용이 없습니다. 제아무리 기술적으로 완벽에 가까운 보안 통신 솔루션과 키보드 보안 장치를 갖춘 사이트라 하더라도 애시당초 본인이 아닌 자가 가입하고 무슨 짓을 저지를 지도 모를 일입니다.

‘본인인증’이란 그럴싸한 이름으로 자행되는 미묘하고도 은근한 방식의 사생활 침해는 이 나라의 인터넷 인프라가 갖춰지기 시작하면서부터 시작되었습니다. 이메일이나 보내려고 가입하는 한메일이 왜 나의 주민등록번호를 고스란히 DB에 저장하고 싶어하는 걸까요? 대형 포털 뿐만이 아닙니다. 굳이 로그인 절차 없이도 구매가 가능한 인터넷 쇼핑몰들이 있음에도 불구하고 회원가입을 종용하는 e-commerce 관련 사이트들은 왜 그리 지극히도 개인적이고, 치명적인 개인 식별 코드를 원하는 것일까요? 고객 만족을 극대화하는 CRM의 자료로서 갖고 싶어서? 모르겠습니다. 인터넷을 처음 접했던 이후로 10년간 저로서는 ‘만족스러운’, ‘고객을 감동시키는’ 대한민국 인터넷 사이트를 아직 만나보지 못했거든요. 음, 모르죠 조만간 그러한 서비스가 짠~ 하고 나타날지도. 하지만 아마 그 사이트는 제 주민번호는 커녕 실명조차도 물어보지 않고 고작 이메일 주소아니면 오픈 아이디를 사용할지도 모를 일입니다.

옥션은, 그리고 아직 터뜨려지지 않은 많은 다른 인터넷 서비스들은 이용약관을 들며 해킹으로 인한 피해에는 자기네들이 책임이 없다고 발뺌하려고 듭니다만, 이미 사건은 너무 심각한 수준이 되었습니다. (물론 자기들에게만 유리한 비겁한 약관은 아무런 효력이 없다는 점도 그들은 스스로가 잘 알고 있으리라고 믿고 있습니다.) 아무리 ‘완벽한 보안은 없고 해킹에 의해 뚫리는 것이 서버’라고 하더라도 이 번 사태의 1차적인 책임은 옥션에 있습니다. (그리고 조만간 제 2의 , 제 3의 옥션이 줄줄이 나타날지도 모를 일입니다.) 어떤한 정보는 그것이 DB 레코드의 형태이든 다른 파일의 형태이든 ‘접근가능한 웹 영역 어딘가’에 저장되는 순간부터 이미 무한한 유출로부터의 위협에 놓여진 것입니다.

결코 시시하지 않은 내용을 방치한 옥션(이하 국내 거의 대부분의 비겁한 인터넷 서비스들)은 이미 무리한 수준의 (어쩌면 자신들의 서비스가 정상적으로 이루어지지 못할 만큼 필수적이지도 않을) 개인정보를 요구했던 것부터가 잘못이었던 것입니다. 또한 이제와서 이렇게 난리 난리 칠거면서 아무 생각없이 자신의 귀한 개인정보를 타다닥 하는 경쾌한 키보드 소리와 함께 서버로 전송한 피해자들도 좀 문제라고 생각됩니다만, 사실 이건 국가적 차원에서 전에도 전에도 한참 전에 많은 노력을 기울여서 홍보와 교육을 했어야 하는 상황이지요. (회선만 좋다고 인터넷 강국입니까?

큰 규모에서 볼 때 이번 사고는 쉽게 넘어가서는 안될 일이 분명합니다. 또한 작은 규모에서 볼 때에도 아무런 거부감없이 내용도 모르는 ActiveX 를 설치하는 일반 사용자들의 습관도 고쳐나가야 합니다. PC차원의, 한 사람의 개인 차원의 그리고 국가 차원의 무시무시한 보안 위협은 이미 빛이나 공기와도 같이 우리 주위에 만연해 있거든요. 모르긴 몰라도 보상을 받든, 주민번호 체계가 바뀌든, 아니면 다른 개인식별코드를 사용하게 되든 간에 분명 이러한 정보를 요구하는 사이트들은 생기지 말라 그래도 생겨날 것이고, 보안 의식 따위는 종적을 감춰버린 우리나라 위대한 네티즌 여러분들은 또 그들의 낚시질에 놀아나는 패턴이 마치 유행이 돌고도는 것처럼 반복될 것이라는 강한 예감이 드는 군요.