리버스 엔지니어링은 다른 말로 역공학이라고도 하는데 객체를 복제하거나 향상시키기 위해 어떻게 작동하는 것인지 살펴보는 과정을 말한다. 즉, 리버스 엔지니어링이란 사람이 인공적으로 만들어 낸 것에서 지식이나 디자인 정보를 추출하고 이 정보를 바탕으로 어떤 것을 다시 생산하는 과정을 말한다. 리버스 엔지니어링은 상당히 많은 분야에서 다양한 목적으로 사용되는데 우리에게 상당한 도움을 주지만 이 모든 사용에 있어서 항상 옳은 것만은 아니다. 실제로 리버스 엔지니어링에 대해 이야기를 그 과정이 옳은 것인지에 대한 논란은 계속해서 따라왔다.
휴대폰, 노트북, 모니터, 스피커, 마우스, 키보드, 이어폰 등등 여러 기기 대부분은 블루투스(Bluetooth)기능을 가지고 있다. 블루투스 기능이 있는 기기만 수십 억대에 이르는데, 블루본(BlueBorne)이 공개되면서 가히 놀란 사람도 무척이나 많았으리라. 블루본은 블루투스와 관련한 취약점 8개로 이루어진 문서로 혹자는 이를 ‘블루투스 스택 해킹의 숨겨져 왔던 성서’라고 표현할 정도다. 그렇다고 세상 완벽한 블루투스에서 취약점 나와 놀라운 것일까. 반어법이다. 오늘은 블루투스 취약점을 모아 발표한 armis의 블루본에 대해 이야기해 볼까 한다. 오늘의 글에는 블루본에서 다룬 취약점에 관한 내용 1도 없으며, 단순히 블루투스 취약점에 대해 글을 써본다. “누나, 누나, 블루본 내용을 요약해서 그레이뉴스 올려요” 이런 얘길 들었을 때 “오 그럴까”하며 아주 긍정적으로 받아들였다. 41페이지의 블루본 문서를 보기 전까지. 아무튼, 하고 싶어지면 써보겠습니다. 그보다 몽 행님이 먼저 하나하나 해보시면서 글로 쓰시고, 내가 그걸 모아서 하나의 기사 글로 쓰면 좋은 시나리오.
많은 이가 대회에 참여하여 자신이 가진 기술이나 능력을 겨루거나 시험을 보며 자신이 가진 것이 어느 정도인지 확인한다. 자격증을 취득하거나 공모전, 대회에 참여하기도 한다. 요리사라면 요리대회, 음악을 하면 콩쿠르, 포켓몬스터를 하면 연고시티에 있는 포켓몬 콘테스트… 아무튼 자신이 발을 담그고 있는 분야에서 우열을 가리고 실력을 테스트하기 위해 대회에 참여한다. 보안분야에도 그런 것이 있다. 이름 하여 해킹대회다.
지난 3월, Embedi 연구팀원인 Maksim Malyutin는 Intel에서 제공하는 칩셋에서 컴퓨터 원격 관리 기능에 치명적인 취약점을 발견했다. 지난 7년 동안 판매해오던 이 인텔 칩셋은 공격자가 원격으로 컴퓨터를 제어할 수 있으며 PC, 노트북 및 서버 등 부품이 들어가는 모든 인텔 시스템에 영향을 미친다. 인텔이 지난 약 10년간 판매해오던 칩셋의 심각한 취약점을 발표함으로써 제조업체들은 이에 대한 보안 패치를 적용하기 위해 노력하고 있다. 특히나 인텔 시스템을 적용한 서비스가 소비자도 소비자지만 기업에 더 큰 영향을 미친다는 것이 더 심각한 문제를 초래한다.
자바스크립트를 이용해서 프론트엔드와 백엔드를 제어한다. 서비스를 이용하는 사용자에게 보여지는 기능, 버튼이나 디자인은 프론트엔드 개발자가 담당하며 사용자가 볼 수 없는 서버와 같은 기능은 백엔드 개발자가 담당하여 웹 개발은 이루어진다. 하지만 이러한 경계선을 물리는 것이 있으니 그것이 node.js다. node.js를 통해 프론트를 구현하던 개발자는 자바스크립트 언어로 서버 기술까지 구현하고 제어할 수 있다. 2009년, 많은 이에 관심 속에 등장하여 최근까지도 여러 관심과 기술 개발이 활발하게 이루어지고 있다. 이렇게 뜨거운 관심 속에 존재하는 node.js에 재를 뿌리는 버그가 하나 발견되었으니 그야말로 해커들이 좋아라 할만한 이야기를 가져왔다. node.js에 있는 직렬화 모듈에 신뢰할 수 없는 데이터가 unserialize()함수로 전달되게 되면 즉시 호출된 함수식(IIFE)과 함께 직렬화 된 자바스크립트 개체를 전달하게 되고 버그에 의해 임의 코드가 실행될 수 있다.
1편 이어 2편으로 바로 넘어가 보겠다. 오늘은 페이스북과 메시지, 그레이해쉬의 익명게시판을 통해 받은 질문을 가지고 박세준님과 함께 인터뷰했던 내용을 담아봤다. 오프라인에서 뵌 박세준님은 필자보다 인터뷰 분위기를 더 편안한 분위기로 만드시고 많은 이야기를 담아 내주려고 하셔서 개인적으로 너무 감사했다. 오늘은 인터뷰를 기다렸던 만큼 이 글을 보시는 모든 분들이 재미있는 시간이 되길 바란다. 혹여 나온 질문 중 내 질문이 없다면 아직 안 나온 걸 수도 있고 혹여 전 편의 질문과 중복되어 분류된 걸 수도 있으니 참고하기 바란다.
Nmap은 침투테스트에서 다양한 검사와 공격을 수행할 수 있는 도구다. Nmap에는 여러 기능이 있지만 그 중 눈길을 끌 만한 기능이 하나 있으니 그것이 바로 NSE(Nmap Scripting Engine)다. 이 NSE 기능은 Nmap을 좀 더 다양하게 사용할 수 있는 도구로 만들어준다. 예를 들어 Nmap 스크립트를 사용하여 해킹을 하면 정보수집단계에서 내가 원하는 정보만 볼 수 있는 효율적인 도구로 사용할 수 있다. 오늘은 Nmap 의 NSE와 관련하여 기본적인 스크립트 몇 개와 이를 통해 수집할 수 있는 정보를 살펴볼까 한다.
1988년 11월, 로버트 모리스가 인터넷의 크기를 알아내려는 의도로 만든 프로그램이 모리스 웜이다. 이는 최초의 웜으로 이 프로그램을 네트워크에 풀어 놓자마자 인터넷을 통해 빠르게 퍼지면서 대량의 유닉스를 감염시키고 네트워크를 마비시켰다. 당시 총 피해액은 10~1천만 달러에 달했으며 웜은 걷잡을 수 없이 퍼져 나가 인터넷을 접속하고 있던 유닉스 시스템 약 6,000대를 감염시켰고 이는 당시 전세계에 있는 모든 유닉스 컴퓨터 중 10%에 해당하는 규모였다.
어제에 이어서 난독화 리버싱 끝판왕인 강흥수(점제)님의 인터뷰를 이어가보려 한다. 이전 인터뷰를 간략히 이야기하자면 언제, 어떻게 보안을 시작했고 어디를 거쳐 그레이해쉬까지 오게 되었는지에 대해 얘기를 들었었다. 또한, 이전 직장과 그레이해쉬의 솔직힌 비교와 BOB멘토님의 마음을 전하는 인터뷰였다. 오늘은 리버싱과 관련한 이야기와 국내 보안 업계에 대한 이야기, 외국 취업을 꿈꾸는 분들을 위해 좀 더 자세히 이야기해보려 한다.