역자 : 본 글은 Cain & Abel의 제작자 마시밀라노 몬토로에 대해  Net Security로부터 동의를 얻어 인터뷰한 내용을 번역한 것이며,  본 게시물의 링크는 허용하나, 외부 무단 복제는 법적으로 금지되어 있습니다.


 

출처 : "Help Net Security"  ( http://www.net-security.org )

원문 : http://www.net-security.org/article.php?id=1266

번역 : 이경문( http://www.gilgil.net )



Cain & Abel, 패스워드 북구 툴의 질문과 답변 by Mirko Zorz 2009년 7월 7일



마시밀라노 몬토로는 패스워드 복구툴인 Cain & Abel의 운영자이다. 해당 툴의 역사, 개발 과정 등의 이야기를  가지고 인터뷰를 한 내용이다.




Cain & Abel은 거의 모든 보안 전문가들이 사용하는 툴 중의 하나입니다.  프로젝트가 어떻게 시작되었고 변화되어 왔는지 말씀해 주세요.


감사합니다. 그 툴은 네트워크 관리자, 강사, 보안 전문가, 포렌식 전문가, 보안 SW 벤더, 전문 PT, 등등, 윤리적인 의도 범위내에서 모든 사람들을 위해 도움이 될 것이라는 생각에 개발이 되었습니다. 시작한지는 10년이 넘었구요, 제일 처음 버전은 Windows 9X, PWL files 의 단순한 패스워드 크래커였습니다. 그러다가 컨설팅 활동(취약점 분석, 윤리적 해킹)과 사용자들의 요구에 따라서 SW가 점차 발전했습니다.


처음 시작했을 때, 저는 long-lifetime 취약점(역자 : 고치는데 시간이 오래 걸리는, 패치하기 힘든 취약점)에만 SW의 중점을 두려고 하였습니다. long-lifetime 취약점이라는 것은 SW를 아예 다시 새로 설계해야만 한다는 것을 의미합니다(예를 들어 하위 호환성 등을 위하여 허접한 암호 알고리즘, 안전하지 않은 저장소, 오래된 인증 체계 등이 사용되어 지는 것 등). 제가 다뤄 왔었던 것은 오랫동안 사용되어져 온 SW 취약점의 일부일 뿐이며, 이때문에 저는 SW벤더가 내 놓는 패치에 의해 쉽게 제거될 수 있는 제로데이 취약점이나 버그는 가급적 피해 왔었습니다(역자 : Cain & Abel 저자는 쉽게 바뀔 수 있는 취약점에 대해서는 관심이 없다는 뜻으로 보여 짐. 이는 시스템 해킹, 웹 해킹 등의 분야와는 다르게 네트워크 해킹에 관심이 많은 대부분의 해커들의 공통적인 특징임).


한번 생각해 보세요, 몇년동안 MS는 수많은 SW 패치를 내 놓았습니다. 그 패치를 모두 적용했다 하더라고 Cain은 여전히 Windows 패스워드를 크랙할 수 있고, 아직도 RDP 프로토콜의 MITM Attack의 취약점의 작동이 여전히 가능합니다(2005년 5월 28일에 내 놓은 권고안).  그와 똑같은 일이 네트워크 프로토콜에도 마찬가지입니다. 오늘까지도 ARP 프로토콜은 여전히 취약하고, authentication이 빈약하며, ARP poisoning에 의한 하이재킹이 빈번히 일어 나고 있습니다. 솔직히 말해서, 해당 취약점에 의한 위험성을 개선하려고 고려하는 회사를 저는 지금까지 한번도 본 적이 없군요.

 

Cain & Abel은 단 하나의 어플리케이션으로 여려가지 작동을 할 수 있는 특징이 있구요, 그중에 가장 주된 목적은 여러가지 해킹 기법을 이용하여 패스워드 알아 내기를 하는 것입니다.




혼자 개발하시나요, 아니면 다른 팀원들이 있나요?


실제로 저는 개발자중의 하나일 뿐입니다. 저는 많은 사람으로부터 개선안 제안, 기능 테스트 등의 지원을 받습니다. 내 포럼에서 초보자들을 위해 지속적으로 활동하고 있는 많은 포럼 유저들에게 진심으로 감사의 말씀을 전합니다. 



 

개발 과정에서 겪었던 어려움들을 말씀해 주시죠.


제가 직면했었던 어려움들을 요약해 보겠습니다.


같이 쇼핑하러 가지 않고 컴퓨터만 하는 나에게 바가지를 긁는 울 와이프.


네트워크 프로토콜의 동작, 암호화 알고리즘, 보안 메카니즘 등에 대해 많이 알아야 하는 지식


속도를 높일 수 있도록  MMX/SSE 코드를 사용하는 어셈블리 최적화 공부하기.


SW, 시스템, 네트워크 장비 등등 실제로 테스트를 할 수 있는 환경이 안되어 있다는 사실. 프로그램의 많은 부분들이 실제로는 '그냥 이렇게 돌아 가겠구만' 예측만 하고 만들어 진 부분이 많음(특히 네트워크 트래픽 분석 부분).


네트워크가 맛탱이 가지 않도록 하이재킹 트래픽의 관리.


컴파일되어 디버깅이 힘든 코드를 분석해서 문서화되어 있지 않은 알고리즘 세부 사항을 찾아 내기.




Cain & Abel을 지속적으로 꾸준히 유지보수해 오는 것으로 유명하신데요, 사용자들의 요구는 어떤 것들이 있고, 향후 버전에는 어떠한 영역에 중점을 두실 건가요?


Key 뽑아 내기(역자 : 검색보다는 뽑아 내기가 더 어울리는 듯)를 하는 다른 프로그램과 마찬가지로, 속도의 개선들의 요구를 많이 받습니다. 이때문에 멀티프로세싱, 64비트 시스템의 사용, 그래픽 가속기 기능 등을 고려하고 있는데, 이러한 기능들은 상당한 기간의 프로그래밍이 요구됩니다. 물론 SW, HW가 뒷받침되어야 겠죠. 그런데, 저는 단순히 가장 빠른 프로그램을 만들다던지, 혹은 어떠한 길이의 암호라도 깰 수 있는 프로그램을 만든다던지 하는 것은 궁극적인 관심사가 전혀 아닙니다. 저는 단지 취약점을 익스플로이트하고 그 목적(역자 : 암호를 깨는 이론상의 proof of concept)을 달성하는 것에 관심이 있습니다. 일단, 조만간에 할 것은 하위 버전 호환성 문제를 해결하면서 64비트 버전으로 SW를 만드는 것입니다. 좀 걸리겠지만 시간 나는대로 열심히 해 볼랍니다.




예전에는 Cain & Abel이 malware로 인식이 되었었는데, 이러한 것에 어떻게 대처를 하시나요?

 

AV업체는 바이러스나 악성SW로부터 컴퓨터 사용자들을 보호하는 것이 가장 중요합니다. 아마도 업체들이 제 프로그램을 인터넷상에서 해킹 툴로로 사용해 왔기 때문에위험한 SW로 분류해 왔었을 것입니다. 이것은 제 SW가 감염되었다는 것을 의미하는 것은 아닙니다. 어떠한 바이러스나 스파이웨어나 악성코드, malware도 제 홈피에는 존재하지 않는다는 것을 말씀드립니다. Cain & Abel은 어떠한 파일을 감염시키지도, 암호를 수집하지도 않습니다.  프로그램 자신을 복제(역자 :  자신을 복제하는 것은 바이러스, 웜의 기본 기능임. Cain & Abel을 이런 짓을 하지 않는 다는 것을 저자는 강조하고 있음)하지도 않고, 자동 설치 같은 것도 없습니다.  제가 주제 넘게 AV 벤더에게  DB에서  제 SW를 삭제하라고 할 입장은 아닌 것 같네요,  솔직히 Cain은 모든 사용자를 위한 프로그램은 아닙니다.


저 프로그램의 잠재 능력을 이해하고, 그것을 사용하려고 하는 (AV 업체에서 근무하는) 사람이라면, 그 어느 누구라도 제 프로그램을 간단하게 예외 사항으로 간주하게 될 것입니다. PoC 레벨에서, EXE와 DLL 파일의 모든 릴리즈는 항상 저에 의해 이루어 지고, 그 해시 밸류도 저의 홈피에서 공개가 됩니다.




SW를 팔라는 제안은 있었나요? 나중이라도 상용 버전은 고려중이신가요?


네, 있었습니다. 프로그램 전체 혹은 특정 일부 기능에 대한 제안을 받아 왔었습니다. 그런데 아직까지 동의를 한 적은 없었습니다. 한다고 하면, 상용 버전은 라이센싱을 관리하고 제품에 대한 서비스이 포함될 것입니다. 허나 지금은 그런 활동을 고려할 충분한 시간이 없습니다. 




보안쪽으로 SW를 개발한다고 하면 어떤 것이 될까요?


몇 년동안 보안 컨설턴트로 일해 오면서 저는 많은 assessment activities에 의한 개념을 설명하는데 중점을 둔 많은 application들을 개발해 왔습니다.  제 홈피에 있는 프로그램은 제가 만든 것들의 일부일 뿐입니다. 어떤 것은 상용 제품의 암호화 알고리즘의 취약점을 밝히는데 기여를 하고 있고, 어떤 것들은 네트워크 프로토콜상의 취약점을 분석하는데 사용되어 촛점이 맞춰 져 있습니다. 어떤 새로운 것을 만든다고 하면, 제가 잘 알지 못하는 그 어떤 것에 대한 저의 지식을 향상시킬 수 있는 프로그램이 될 것 같네요. 프로그래밍이라는 것은 책에서 공부한 내용을 깊숙히 들어 갈 수 있는 효과적인 방법이라고 생각합니다.



출처 : "Help Net Security"  ( http://www.net-security.org )