반응형


책소개
해킹의 최종 목적은 시스템과 프로그램을 변경해서 해커가 원하는 정보와 결과물을 얻는 것이다. 여기에 직접적으로 이용되는 리버스 엔지니어링은 프로그램의 구조를 전부 바꿔 의도하지 않은 방식으로 동작하게 할 수 있는 강력한 기술이다. 하지만 대부분의 사람들이 흔하게 접하지 못하는 분야이고 보안과 관련된 개발자들도 어렵다는 이유로 나와는 상관없는 분야로 치부하려는 경향이 있다. 리버스 엔지니어링이라는 분야가 위험성과 더불어 강력한 파괴력을 가지고 있는 분야이지만 반대로 보안을 유지할 수 있는 강력한 도구로 사용될 수 도 있다. 자신의 프로그램과 시스템을 지키기 위해서 이 분야에 대한 이해가 필요하지 않을까? 하지만 막상 보안이나 해킹에 대한 공부를 시작하려 해도 어디서부터 손을 대야 하는지 모르는 상황에 놓이게 되는 것이 현실이다. 리버스 엔지니어링을 다루는 서적은 많지 않으며, 그나마 존재하는 해킹 서적들도 대부분 웹이나 네트워크 환경만을 다루고 있다. 리버스 엔지니어링이라는 분야가 관심을 가지고 있는 소수의 마니아나 해커들에 의해서 발전하고 있고 본질적인 폐쇄성 때문에 더욱 접하기 어려운 것이 사실이다. 자료를 찾으려면 외국 서적이나 해외 인터넷 사이트를 힘들게 찾아야만 하고 여기저기 흩어져 있는 정보 속에서 제대로 된 지식을 얻기도 쉽지 않다. 국내와 해외의 해킹 기술 격차의 주요한 원인 중에 하나가 이 분야에 대한 정보와 공유가 부족하기 때문이라 볼 수 있다.

은 이제 막 입문하려는 개발자부터 프로그래밍과 시스템에 어느 정도 기반 지식을 가지고 있는 고급 개발자에 이르기까지 해킹과 보안이라는 분야에 쉽게 접근할 수 있도록 구성된 책이다. 보안과 해킹의 관점에서 시스템과 프로그램에 대한 접근 방법을 설명하고 이러한 지식들을 어떻게 활용할 수 있는가를 다루고 있다. 단순한 배경 지식으로서의 이론이 아니라 실제 프로그램 구조의 변경을 통해서 적용이 가능한 해킹과 보안 기술들을 담아냈으며, 시스템의 구조적인 내용을 이해하고 이들이 어떤 취약점을 가지게 되는지도 배울 수 있다.

-해킹 기술을 설명하며 이를 고려한 안전한 프로그램을 개발할 수 있다.
-보안과 관련된 개발자라면 꼭 알아야 할 내용들을 담았다.
-프로그램의 구조와 원리를 이해할 수 있도록 구성하였다.
-시스템과 프로그램에 더불어 리버스 엔지니어링을 다룬 보안 및 해킹 서적이다.
-리버스 엔지니어링에 필요한 이론과 기술을 습득할 수 있다.

//2009.06.19
리버싱 관련 책들이 요즘 들어 부쩍 많이 나오는듯 하다. 내가 관심을 가지고 찾아서 그런지 몰라도.
므튼 일단 찜 해놓는다. 아직 출판 되지 않았다고 한다. 6월25일 정도에 나온다는것 같던데..

반응형
출처: http://www.hauri.co.kr/customer/security/colum_view.html?intSeq=89&page=1&keyfield=&key=

악성코드 짜잉나는 놈 내 손으로 제거해 주마!!! ㅎㅎ

악성코드 관련 컬럼이 있어 퍼왔습니다. 눈에 익은 툴들이 몇개 보이네요....ㅎ

 

1. 악성코드의 형태


악성코드는 대부분 스스로 실행 가능한 .exe 형태이거나, 다른 프로세스에 인젝션 되어 실행되는 .dll형태로 존재한다. 이번 칼럼에서는 간단하게 .exe형태의 악성코드를 제거해보도록 하겠다. 왜냐하면 .exe형태의 프로세스가 .dll형태의 악성코드보다 인지하는게 수월하기 때문이다.


2. 유용한 확인/제거 툴


ㄱ. Process Explorer 작업관리자로도 .exe형태의 파일을 볼 수는 있지만, 프로세스명만 나오기 때문에 많이 부족하다.이를 보완해줄수 있는 툴이 Process Explorer이다. 이 툴은 간단하게는 이미지(파일) 경로와 프로세스명, User Name등을 알 수 있으며, 프로세스의 실행, 일시정지, 재실행, 종료등 여러가지 기능을 가지고 있다.


ㄴ. Autoruns 레지스트리를 확인할 수 있는 툴로 부팅시 자동실행되는 파일이나 서비스를 보여준다. 이것을 이용해서 재부팅시 실행되는 악성코드도 확인 할 수 있다.


ㄷ. IceSword / Gmer 루트킷 탐지와 숨겨진 프로세스, 파일 등을 종료시키거나 제거할 때 사용한다.


ㄹ. File Monitor / Registry Monitor 파일이나 레지스트리의 IO를 사람의 눈으로 확인하기가 힘들기 때문에, IO에 대한 로그를 보고IO를 확인하는데 사용한다.


ㅁ. taskkill 하나 이상의 프로세스를 종료하는데 사용하며 여러가지 조건을 줄 수 있다.


3. 악성코드에 감염된 PC를 찾아라


악성코드를 제거하기 위해서는 감염된 PC가 필요한데 실PC가 감염되면 좋을게 하나도 없다. 이럴때 필요한 것이 가상머신인데 VmWare, VirtualPC, VirtualBox등 여러가지가 있다. 자신에게 맞는 가상머신을 설치하고 OS도 설치하여 필요한 툴도 넣고, 마지막으로 스냅샷 등의 복원지점도 설정해놓아야 편안하게 감염 테스트를 할 수 있다.


ㄱ. 필자는 VirtualBox를 이용해 보았으며 툴도 넣어두었고, 복원지점을 위해 스냅샷도 찍어 두었다. 숨길건 없지만, 안개효과를 내주는 Blur 필터를 추가하니 이미지가 멋있어졌다.



 

ㄴ. 가상머신에 공유폴더를 이용하여 악성코드와 툴을 넣고 File Monitor를 실행해두고, 악성코드인 TEST_MAL.vir.exe를 실행시켰다. 악성코드가 C:\lsass.exe를 생성시키는 것을 알수 있었다.


(설정변경 : 메뉴의 Help밑에 보이는 깔때기 아이콘 실행 -> Highlite에 Write;Delete 추가)



ㄷ. 이제 악성코드는 TEST_MAL.vir.exe와 C:\lsass.exe 두 마리다.


실행중인 악성코드를 보기위해 Process Explorer을 실행시켜 악성코드를 지켜보니 처음에 실행한 악성코드 TEST_MAL.vir.exe와 계속해서 실행/종료를 반복하고 있는 C:\lsass.exe를 확인할 수 있다.


(빨간색 줄은 종료되는 프로세스를, 녹색줄은 이제 막 실행되고 있는 프로세스를, 보라색은 압축되어 있는 프로세스를 나타낸다.)



 

4. 악성코드 제거하기


이제 감염된 PC가 생겼으니 제거해보자. 원래 쉬운것부터 해나가야 실력이 늘것이고, 주유소 습격사건의 유오성처럼 한 놈만 잡으면 다른것도 응용해서 할 수 있을꺼라 생각한다. 대부분의 악성코드를 직접 감염시켜보는게 아니기 때문에 어떤 프로세스를 종료시켜야 할 지 난감할 것이다. 이 많은 프로세스중에 어떤게 악성코드일까?


ㄱ. 악성코드 의심 대상을 좁혀라.


(Services로 실행되는 악성코드는 예외) Process Explorer가 트리구조로 보여주는 것을 감안하여 Shell로 동작하는 explorer.exe의 자식노드(우측으로 치우친)로 보여지거나, (모니터를 기준으로) explorer.exe의 아래쪽에 존재하는 프로세스들을 자세히 들여다 보자. 이는 우리가 PC에 로그인하여 실행하는 프로그램들은 쉘에서 실행되기 때문이며, 예외적으로 쉘에서 실행된 것중 자식프로세스를 생성하고 죽을경우 Process Explorer는 해당 자식 프로세스를 쉘과 동등한 레벨로 보여주기 때문이다.


(이것은 마치 SI로 추정되는 사람을 특정국가에서 귀국한 사람들로 범위를 좁혀가는 것과 같은 것이다. 하지만 사람은 악성코드가 아니다.)


ㄴ. 하나씩 제외시키면 악성코드가 보인다. 평소에 자신이 많이 보았거나 확실하게 아는 프로세스를 제외해보면 몇 개 안남을 것이다. 지금 같은 경우는 TEST_MAL.vir.exe와 실행/종료를 반복하는 lsass.exe만 눈에 띄게 이상하다. ㄷ. 의심되는 프로세스를 찾았다. 정말 악성코드일까?


- 백신업체에 해당 파일을 압축암호와 함께 압축하여 신고


=> 악성코드의 신고접수는 자신뿐 아니라 많은 백신 이용자들이 PC를 쾌적하고 안전하게 사용할 수 있게 해준다. 많은분들이 계속해서 신고해준다면 더 좋아지지 않을까?


- 각 백신업체의 홈페이지에서 무료로 검사해 볼 수 있다.


- 여러 백신업체의 스캐너로 악성코드를 무료로 검사해준다.


=> http://www.virustotal.com/ko


=> http://virscan.org


ㄹ. 확신이 섰다면 악성코드를 종료하자. 실행중인 악성코드를 종료하기 위해 Process Explorer에서 해당 악성코드를 선택하여 마우스 우측버튼을 누르면 나오는 메뉴중 [Kill Process] 를 선택하면 해당 프로세스가 종료되고, [Kill Process Tree]를 선택하면 해당 프로세스 및 해당 프로세스의 자식 프로세스까지 같이 종료된다. - TEST_MAL.vir.exe, lsass.exe -> 마우스 우측버튼 -> Kill Process/Kill Process Tree



 

ㅁ. 어라.. 아직 남았네.


Process Explorer로 TEST_MAL.vir.exe는 종료되었지만, 실행/종료를 반복중인 lsass.exe는 끄떡도 안한다. 일반적인 바이러스의 경우 Process Explorer, IceSword, Gmer, 추가적으로 Autoruns면 끝을 보는데 실행/종료를 반복하는 악성코드의 경우는 이것들로 해결이 되지 않을 수 있다.


[시도-1] IceSword로 Process를 종료해보자.


(생성/종료를 반복하기 때문에 안보일때도 있음) 왼쪽메뉴 Function/Registry/File중 Function을 선택한 뒤 Process를 선택하면 실행중인 프로세스의 PathName과 ImageName를 확인할 수 있다. 마우스 우측버튼으로 선택해서 Terminate Process를 누르면 종료해보자. 종료된 것 처럼 보였지만, 여전히 프로세스 생성/종료를 반복하고 있다. 실패!!



[시도-2] 실패했다. 그러면 IceSword로 파일을 지워보자.


왼쪽메뉴 Function/Registry/File중 File을 선택하여 C드라이브를 선택하면 lsass.exe가 보이므로 해당 악성코드를 선택하여 [Delete]/[force delete]해보자. 지워진것 처럼 보이지만 Process Explorer에서는 여전히 실행/종료를 반복하고 있다. 실패!!



[시도-3] Gmer로 프로세스를 종료해보자.


(생성/종료를 반복하기 때문에 선택안됨) Gmer를 실행시키고 맨위의 메뉴 [Rootkit/Malware]/[>>>>]중 >>>>를 선택하면 아래와 같은 메뉴가 나온다. 그중 첫번째에 있는 Process를 선택하여 [Kill Process]하려 하였으나 선택이 안된다. 실패!!



[시도-4] Gmer로 파일을 파일을 지워보자.


메뉴중 [File]를 선택하여 C드라이브에 존재하는 lsass.exe를 선택하여 [Delete]를 누르면 제거되지만 다른 폴더를 억세스후 다시 확인해보면 그대로다. 실패!! [File]메뉴에도 [Kill]이 존재하여 종료해보니 성공 반!! 실패 반!! 이었다.



ㅂ. 왜 안되는지 문제점을 파악하자.


Process Explorer, IceSword의 문제는 실행/종료가 반복되는 해당 프로세스에 대한 종료를 하려 하면 이미 해당 프로세스의 ID(=PID)는 이미 사라지고 다른 PID가 생성되면서 딜레이가 발생해서 인것으로 추정되었다. 즉 툴이 보여주는 프로세스와 현재 실행중인 프로세스에 차이가 발생해서 종료가 불가능 했던 것이며, Gmer의 경우 성공 반!! / 실패 반!! 이 가능했던 이유는 변하지 않는 않는 파일쪽에서 [Kill]명령을 내려서 인것으로 추정되었다. 한 두번 하면 성공!!


ㅅ. 위의 방법만으로만 해결이 가능한 것일까? 좀더 쉬운 방법은 없을까?


여러가지 조건을 걸어줄 수 있는 Taskkill이 가능 했었다. 아래의 Process Explorer을 보면 정상 lsass.exe와 악성 lsass.exe의 차이를 찾아서 조건부 Kill을 하면 되는 것이었다. Process Explorer의 숨겨진 컬럼을 추가하여 보자.


a. View -> Select Columns선택



b. Process Image에서 User Name, command Line를 체크해준다.



c. 아래의 컬럼이 추가된 Process Explorer을 보면 User Name이 다른 것을 알수 있다.

Taskkill을 이용하여 종료시켜보자. 프로세스가 종료되는 순간이 있기 때문에 프로세스를 찾지 못하는 경우도 있으니, 한두번 더 해주면 성공할 것이다.

<<사용된 명령어>> Taskkill /f /fi “username eq pcname” /im lsass.exe




휴.. 해결되었다.. 처음엔 쉬운걸 선택한줄 알았는데, 의외로 까다로운 악성코드였다. 이번 악성코드는 좀 방황했지만, 대부분 Process Explorer에서 프로세스를 종료하고 IceSword나 Gmer로 파일을 지우면 대부분 해결된다. 이제 악성코드라고 멀리하지 말고 가끔은 자신의 힘으로 악성코드를 제거해보는건 어떨까 한다. 물론 가끔이다.


(주)하우리 기술연구소 바이러스팀 연구원 이새별


반응형

블루투스를 이용하여 휴대폰과 PC를 페어링 하고 그 거리에 따라 자동으로 잠금 기능을 제공

여러모로 쓸모도 있고 재미있는 유틸(Freeze)이기에 포스팅합니다.

보안적 요소와 Green Screen Mode로 모니터 화면을 끄거나 Sleep 상태로 전환하여 절전 효과

일단 블루투스가 되는 휴대폰과 PC가 있어야 되겠습니다.




뭐 PC에만 설치하면 되고 휴대폰에는 별도의 설치 과정이 필요치 않습니다.

Freeze 14일 동안만 무료로 사용 할수 있습니다.  구매시에는 한화로 약 13000원 정도

다운로드 링크 Freeze


Freeze 설명 동영상
 

사용후기..

Freeze를 설치하여 사용해보면서 신기하다는 생각에 자꾸 노트북 앞을 알짱거렸습니다.

잠깐 자리를 비울때마다 멀리서 꺼지나 지켜보고 다른 사람에게 말하며 보여주기도 하면서..ㅋㅋ

헌데 특이한 것은 블루투스가 거리를 측정하면서 설정거리를 벗어난후 작동하는 것인데

설정거리를 벗어나기 이전에 블루투스의 신호가 끊어지면  정상작동이 되지 않는다는 것입니다.ㅎㅎ

그리고 윈도우 작업관리자 및 로그인 부분의 설정이 약간 바뀌게 되는 것도 있습니다.

므튼 잘 사용하면 편하게 사용하리라 생각됩니다.

 

+ Recent posts