마지막으로 FAT32 FileSystem을 다룬것이 작년 10월 경이니, 어느새 1년 가까운 시간이 지나버렸습니다. 지난 1년간 블로그를 그냥 두려고 했던 것은 아니나, 본의아니게(?) 실컷 놀아버린 꼴이 되어버렸습니다.

정신을 차리고보니 이도 저도 아닌 제 모습이 보여서.. 뭐라도 해야 할 것 같았습니다. 그래서 매번 공부해야지 해야지 하고 못했던.. 리버스 엔지니어링을 시작해보고자 합니다. 

Reverse Engineering, 주로 리버싱이라고 불리는 이 역공학 방식은 소프트웨어 공학의 한 분야로 '이미 만들어진 시스템을 역으로 추적하여 처음의 문서나 설계자료를 얻어내는 일'을 말합니다.[1] 역공학이라고 불리우는 이유는, 보통 소프트웨어 생명주기의 마지막 단계에서 초기의 자료등을 얻어내기 때문에 기존 소프트웨어 공학의 역방향으로 흐르기에 역공학이라고 지칭되고 있습니다.

리버싱은 단순히 소프트웨어 공학에만 쓰이는 것이 아니라, 보안쪽에서도 많이 사용되고 있습니다. 주로 백신사나 침해사고 대응 업무에서 많이 사용되고 있는데 침해 PC나 Web 상에서 수집 된 악성코드를 역공학을 이용해 분석 후 탐지될 수 있는 Singnature를 추출하거나 특정 Software를 분석하여 취약점을 찾는데 사용되고 있습니다.


리버스 엔지니어링을 할 줄 안다는 것은 그만큼 여러 분야에 도움이 될 수 있다는 장점이 될 수 있지만 반면 수요가 그리 많지 않다는 단점도 존재합니다. Anti-Virus 생산 업체나 일부 특수한 조건을 제외하고는 해당 분야에 필요한 인재를 뽑지 않거나, 뽑더라도 적은 수를 뽑기 때문입니다. 

필자도 악성코드 분석가가 되고 픈 마음은 굴뚝같지만, 리버싱을 잘 하지 못하기 때문에 지원하지 못하고 있습니다.(이 블로그는 제가 잘 알아서 쓰는게 아니라, 제가 공부한 것을 정리하는 개념으로 작성하는 부분입니다)

따라서 여러분께 이 블로그를 통해 악성코드 분석의 비법을 전달해 드린다기 보다는 '필자는 이렇게 공부했다' 라는 내용을 보여드리는 쪽으로 진행 될 것 같습니다. File System 때와 마찬가지로 부족한 부분이 많겠지만 보시고 많은 질책과 격려 부탁드립니다.

시간이 지나면 여러 악성코드도 분석하고 할 기회가 있겠지만, 이 [Reverse Engineering] 의 시작은 Lena's Tutorial로 시작 할 예정입니다.

그럼 많은 관심 부탁드립니다. 아! 그리고 본격적인 설명 및 분석에는 File System 때와 마찬가지의 어법이 쓰일 예정입니다. 지금처럼 완전 존대가 되지 않으니 참고 하시기 바랍니다.


[참고]

[1] https://terms.naver.com/entry.nhn?docId=1180896&cid=40942&categoryId=32837

Posted by Latte_
,

2018년 새해가 되자마자 보안업계 뿐 아니라 일반 업체에도 한바탕 크게 태풍이 몰아쳤다. 과거에도 이런 큰 태풍이 있었을까? 경력이 그렇게 길진 않아서 과거에 얼마나 큰 이슈가 있었는지 까지는 알지 못한다. 

그나마 작년에 크게 터진 이슈라면 전 세계적으로 확산 된 WannaCry 정도 일 것이다. 근데 그런 WannaCry도 Microsoft에서 긴급 패치를 발표하고 일단락이 됐다.


그런데 이녀석은 그렇지 않다. 다른건 둘째치고 규모가 어마어마하다. 과거 WananCry의 경우 Windows OS를 사용하는 PC로 제한됐다. SMB를 사용하기 때문에 Linux는 Target이 아니었기 때문이다.

지금 소개할 두 녀석은 WannaCry를 뛰어넘는다. 이녀석은 OS를 구분하지 않는다. Windows, Linux, Mac OS 할 것 없이 취약하다. 이게 무엇을 의미하는지 아는가?

이 두 녀석은 Software적인 취약점이 아닌 Hardware 취약점이다. 즉 특정 Hardware가 들어간 PC 혹은 서버는 이 취약점을 가지고 있다는 소리이다. 문제는 이 Hardware의 점유율이 80%에 육박한다는 점이다. 


제목에도 나와있지만 지금부터 소개할 두 녀석은 Meltdown과 Spectre이다. 2017년 6월 Google Project Zero Team에 의해 발견된 이 취약점은 2018년 새해가 되자마자 전 세계에 태풍을 몰고 왔다. 그간 일반 유저의 PC 뿐 아니라 기업의 Server에 독보적인 점유율을 자랑하던 Intel CPU에 잠들어 있던 취약점이 공개되자 보안 업계는 술렁했고, 기업들 역시 패치에 고심하고 있는 추세이다.

이 두녀석이 태풍을 몰고 온 이유는 바로 저 점유율이 큰 역할을 했다. CPU는 Intel과 AMD가 대립하고 있다고는 하지만, AMD로서는 Intel의 점유율을 따라갈 수가 없었다. Ryzen을 공개하며 돌풍을 몰고가나 헀던 AMD의 점유율은 Intel과의 큰 차이를 극복하지 못했고, 현재도 60%가까운 차이를 보이고 있다.

문제는 이 Intel의 점유율이 단순히 수치만으로 보이지 않는다는 점이다. 이 두 취약점은 Intel CPU의 구조적인 취약점을 이용한다. 문제는 이 취약점이 최근 프로세서에 생긴 문제가 아니라, 과거 20년이상 이어온 취약점이라는 점이다.

취약점 자체가 20년동안 발견되지 않은 것도 놀랍지만, 20년산(?) 취약점이 생각보다 큰 파급력을 가져온다는 것이 문제였다. Meltdown은 보안 전반에, 그리고 Spectre는 특히 가상화를 사용하는 기업에 큰 피해를 유발 할 가능성이 있다. 무엇보다! 대부분 기업에서 사용하는 서버에는 Intel CPU가 들어가있다는 점이다!!!


일반 사용자분들은 크게 와닿지 못할 Meltdown과 Spectre! 한번 필자와 쉽게 이해 할 수 있도록 해보자. 

'보안 > Issue_알아보기' 카테고리의 다른 글

#1. 들어가며  (0) 2018.03.05
Posted by Latte_
,

마지막으로 블로그에 글을 언제 연재했나 봤더니 2017년 10월이다.

그간 공부를 얼마나 안했는지 알 수 있는 지표이며, 또한 필자가 얼마나 끈기가 없는 지 보여주는 지표가 아닐까 싶다.

사실 리버싱도 일을 벌려놓고 작성도 못한 포스트들이 넘쳐나는데, 이 포스팅도 제대로 진행할 수 있을지는 필자 스스로에 대한 의문이 든다.

부디 올 한해는 열심히 포스팅을 하겠다는 마음가짐으로.. 최선을 다해보도록 노력 하겠다.


2018년이 시작되고 3달이 지났고, 그 사이에 우리가 알게 모르게 보안 취약점들이 많이 나왔으며 그 중에는 Meltdown / Spectre와 같은 큰 충격으로 다가온 취약점들도 있었다.

사실 Meltdown과 Spectre가 나오고 나서도 필자는 그렇게 크게 탐구하거나 하지는 않았다. 내가 근무하고 있는 업체는 Endpoint를 방어하는게 아니라 상단 Network 구간을 담당하고 있었으니까.

그러다 최근 회사에서 해당 이슈를 알아야 할 필요성이 생겨 간단히 찾아보게 되었고, 그를 토대로 이렇게 포스팅을 할 기회가 생긴것 같다.

물론 '이미 공개된지 2달이 지난 시점이고 많은 분석가 분들이 분석을 해 주셨기에 따로 포스팅을 할 필요가 없다'라는 말씀을 하시는 분들도 있을 것이다.

사실 그 생각은 필자도 어느정도 동의하고 있는 바이다. 이미 인터넷에는 수많은 Meltdown과 Spectre에 대한 설명들이 나와있으니까. 과연 지금 작성하는게 무슨 의미가 있을까?


그래서 이 포스트는 과거 발생한 크고 작은 보안 Issue에 대해 일반인들도 알기 쉽게 설명해 보는데 목표를 두고자 한다.

어느정도 기술적인 부분이 들어가는건 어쩔 수 없을 것이지만, 그래도 비유등을 통해서 쉽게 접근해 보도록 하겠다. 

기술적인 부분은 각종 보안 분석가들이 자세히 설명해 놓으셨거나, github에 올라와 있는 것들이 많을테니, 그부분들을 참조해주시면 되겠다.


그럼, 이번엔 부디 꾸준히 포스팅을 하기를 기원하며..

'보안 > Issue_알아보기' 카테고리의 다른 글

[Meltdown&Spectre] #1. 이슈 소개  (0) 2018.03.05
Posted by Latte_
,