brunch

You can make anything
by writing

C.S.Lewis

by 정연섭 Sep 30. 2018

Facebook 해킹에서 배우는 교훈  

보안 정책

넓은 고속도로에 수많은 차량 다니듯이 굵 통에 수많은 데이터 자료들이 오고 간다. CCTV로 자동차를 감시하듯이 통신 소포를 최적 경로로 분배하는 라우터로 데이터를 감시할 만도 하다. 그러나 국제표통신 프로토콜에는 요주의 자료 콕 찍어내는 기능은 없다.  사회 안보를 책임 맡은 기관 감시 프로그램을 라우터에 몰래 심을 수는 있지만 통신 팩킷에 암호가 걸려 통신내용을 모두 파악하기는 어렵다.


저도 발전소의 한 계통을 설계하면서 다양한 사이버 공격을 가정하고 방어벽을 세우고 있다. 사람의 개입 없이 365일 안전하고 신뢰성 있게 작동하려면 각 부품 간에는 물 샐 틈 없이 연계되어야 한다. 사실 발전소는 사회의 인터넷과 분리된 자체 통신망을 구축하므로 외부에서 공격할 수는 없다.


최근에 페북이 해킹을 당하여 5천만 명가량 개인정보가 털렸다고 한다. 내가 피해자라면? 제일 먼저 생일이 떠 올라 나도 모르게 웃음이 나왔다. 저는 생일 축하를 받으면 몸 둘 바를 몰라, SNS에 가입하자마자 생일을 가장 먼저 숨기는 버릇이 있다. 나 행세하며 민망한 게시물을 올려 얼굴을 찡그린 친구들은 한참 후에야 생각났다.


페북 해킹은 '미리보기' 기능의 결함을 타고 들어왔다고 한다. 페 메뉴에 눈 모양의 아이콘 미리보기 기능이라고 한다. 타인에게 나의 프로필이 어떻게 보일지 미리 보여 주는 기능이다. 이 글을 쓰면서 눌러보니 비활성화되어 있다. 미리보기는 일반 프로그램에서도 있는 보편적인 기능이다. 권한이 다르거나 화면의 크기가 다르면 미리보기를 통해 내용을 가다듬을 기회를 준다. 집에서 외출할 때 거울을 보고 옷매무새를 고칠 수 있듯이.


일반적으로 모든 기관은  원인찾아도 공개하지 않는 보안정을 고집한다. 원자력학회에서도 사이버 보안으로 발표를 하다가 사례 부분이 나오면 건너뛴다. 친분이 없으면 무식한 전문가 취급을 받기 십상이다. 따라서 facebook이 정확한 원인을 공개하리라는 기대는 이미 접었다.


페북의 공개한 대략적인 설명은 미리보기를 통해 타인의 정보에 접근할 수 있는 토큰을 확보할 수 있다는 것이다. 일반적으로 아이디와 패스워드를 통해 로그인하고 용무가 끝나면 로그아웃하지만, 페북 등은 로그인 상태가 며칠이 지나도 유지되는데 이 토큰을 활용하기 때문이다. 멋있는 기능이며 인터넷 초기에는 이 기능이 부재하여 인터넷 전망을 어둡게 본 적도 있다.


위에 설명에 더 살을 붙여  추정을 할 수 있다. 미리보기  함수에는 공개된 특성 외에 숨겨진 기능이 더 있었는데 해커들이 이 기능을 활용하여 타인의 토큰을 탈취할 수 있다. 뭐 프로그램도 하는 저로서는 당연한 추론으로 보이지만 페북이 긍정도 부정도 하지 않을 테니 아무렇게 말을 해도 문제가 없을 겁니다.

 


경험 있는 설계자나 개발자는 기능을 분해하여 단순화시킨다. 단순하고 다양한 모듈을 다시 조합하여 하나의 강력한 프로그램을 완성하는 분해와 조립의 엔지니어링 원칙을 습득하고 있다. 반면에 초보 개발자는 하나의 모듈에 수많은 특성을 쑤서 넣는 경향을 보인다. 쉽게 표현하면 경험자는 어려운 개념을 단문 위주로 설명하고 초보자는 복문 위주로 표현한다.


백설공주는 마법의 거울 탓에 불행이 싹텄다. 있는 그대로 보여주어야 할 거울이 안 보이는 사실까지 보여주었다. 페북은 미리보기 함수에서 필수 기능과 부가기능을 구분하고 부가기능은 다른 함수명으로 변경해야 한다. 뉴스에 따르면 이미 버그는 제거되었다고 한다. 어떻게 수정되었는지는 역시 보안사항이다. 그래서 저가 보안 관련 글을 쓸 때에는 늘 용감하다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari