리버스 엔지니어링은 어디까지 지켜보아야 할까...




리버스 엔지니어링은 어디까지 지켜보아야 할까...
window31.


해킹/보안 분야에서 어떠한 주제를 화두에 올린다는 것은 정말 신선한 것이 될 수도 있지만
한편으로는 정말 위험한 행동이 될 수도 있습니다. 그 이유는 당연히 보안이라는
분야가 반드시 해킹이라는 전제가 선행되기에 따라오는 테마이며, 해킹이라는 전제가 등장하게
된다면 반드시 관련 프로그램의 취약점이나 유린할 수 있는 소재들이 꼬리에 붙기 때문이죠.
그리고 또 이것은 매우 위험한 행동과 직결되는 수도 있습니다 (법적인 문제까지)

그래서 해킹이나 특히 리버스 엔지니어링에 대한 어떠한 언급을 하기가 매우 조심스러워 집니다.
리버스 엔지니어링 쪽에 대해 한가지 주제가 나오게 된다면 당연히 리버싱 당할 Target 이
나올 것이고 이는 대부분 상용 소프트웨어거나 현재 End User에게 서비스 되고 있는 프로그램들이
대부분일 가능성이 높습니다. 이쯤 되었을 때 어느 정도 보안 쪽 경력이 있고 혹은 윤리성을 갖춘
리버서라면 리버싱을 하긴 해도 그에 대한 내용을 공개적인 자리에서 언급할 때 매우 고민을
하게 됩니다.

일단 요즈음 소프트웨어들은 대부분 리버스 엔지니어링 방지 문구를 약관에 집어넣고 있고
분명히 함부로 바이너리를 까보았다간 법적인 마찰까지 갈 수도 있습니다. 거기까지
이어지지 않더라도 최소한 그 사람에게 피해를 주거나 이리저리 귀찮게 불려다닐 수 있습니다.
만약 좀 심한 짓을 했고 그 사람이 어디 해커 출신이라면 그 그룹 멤버는 같은 출신이라는
이유만으로 영화처럼 줄줄이 엮여가기도 하죠.

그게 또 한편으로는 이해가 되는 것이 법적인 문제를 떠나서 같은 개발자 입장에서
내가 고생해서 졸라게 코딩을 해놨는데 그걸 어떤 한 개같은넘이 리버스 엔지니어링으로 완죤
ㅄ 을 만들어 놨다... 싶으면 사실 그건 그 개발자의 자존심에 중대한 타격을 주게 됩니다.
저시키는대체모야 머 이런것부터 시작해서 별의별말이 다 나올수 있습니다. 동종업계로써
사실 지켜야 할 윤리 덕목이 뭔지도 생각할 수 있는 부분이라고 봅니다.

따라서 만만한게 프리웨어고 혹은 상업성과 상관없는 프로그램들 혹은 기껏해야 해킹대회
프로그램만이 리버스 엔지니어링의 공개적인 석상에 오르게 됩니다(아 악성코드도 있네요).
물론 이런 것들을 통해서도많은 것을 배울 수 있긴 하지만, 배움의 열망과 갈망에 시달리는
이들에겐 사막 한가운데 오아시스의 그림자 정도밖에 되지 못합니다. 고수 리버서를 꿈꾸는
이들에겐 더욱 더 많은 자료와 더욱 더 체계적인 알맹이들을 원하고 그 흔적을 찾으려 인터넷을
항해합니다. 하지만 공개적인 자리에서 그런게 많지는 않죠.


사용자 삽입 이미지


몇년 전 리버스 엔지니어링에 대한 한글 자료는 그렇게 많은 자료가 있진 않았습니다. 하지만
지금은 어느 정도 쓸만한 자료들이 여기저기서 태동을 하고 있습니다. 리버스 엔지니어링에 대한
인식이 확산되고 있다는 사회적 현상으로 보입니다.

하지만 그에 걸맞지 않게 리버스 엔지니어링에 대한 부정적 인식은 더욱더 강해지고 있는 것
같습니다. 머 할말은 없는게 문화의 한 부분이 활성화되어 향유하는 것 까진 좋은데, 그것이
초딩들이나 기타 악의적 목적이 있는 이들에게 비윤리적으로 이용된다면,, 네거티브 캠페인이
자연스레 자리잡는것도 무리는 없다는 생각이 듭니다...

그래서 이제 생각해 볼 때가 된 것 같습니다. 과연 리버스 엔지니어링은 합법인가 불법인가
그리고 이것을 학문으로 규명해야 할 것인가? (물론 대학교에서 소프트웨어공학 시간에 리버싱에
대해 잠깐 나오긴 합니다만... 그건 간장종지 찍어먹는 수준에 불과하므로 일단 패스 ;; )

제 입장은 사실 두개입니다... 해킹/보안을 탐구하는 연구가의 입장과 밥벌어먹고 사는 사람인
보안 개발자나 보안 컨설턴트의 입장에서 말할 수 있겠네요..  일단 연구가의 입장에서는 당연히
합법입니다. 리버스 엔지니어링이 있어야 소프트웨어의 취약점을 규명할 수 있고, 또 이것은
제가 마소2월호 원고에 비슷한 내용을 언급하기도 했지만 코딩하는 사람의 심리적인 측면이나
습관 등도 관찰할 수 있기 때문에 심리학적인 부분까지도 깨우칠 수 있습니다. 따라서
기술적으로나 형이상학적으로나 학문으로 지정해줄 가치는 충분하다고 생각합니다.

다음으로 보안 개발자나 컨설턴트의 입장에선 반대입니다 -_- 왜냐하면 리버스 엔지니어링을
통해 보호를 해야 할 소프트웨어의 너무도 많은 부분이 까발려지고 있으며 그에 따라 수많은
해킹이 등장하고 있기 때문에 그를 일일히 다 처리하기는 너무 힘들기 때문입니다. 사실 기술을
기술로 이길 수는 없습니다. 특히 이쪽 분야는 더욱 그렇습니다. 막는 기술이 나오면 깨는 기술도
반드시 등장합니다. 따라서 제도적인 측면이 뒷받침을 해 주어야 (법적인 면) 막는 사람이 어느
정도 숨돌려가며 살 수 있습니다. 따라서 반대입니다 ;;

ㅎㅎ 두가지 입장을 모두 얘기해보았는데요 진짜 제 마음은 어느 것일까요.... :$
잠시 동문서답을 하자면 원래 단발에 살짝 끝내려고 했던 F-Secure Reversing 대회 원고를
분량이 너무 많다는 이유로 컷트당해 2회 기획으로 분리하고, 마소2월호 원고를 마친 후
다음 기획을 고민하면서 생각이 든 내용을 지금까지 한번 씨부려 봤습니다.

마이크로소프트 잡지에 보여주고 싶은 것이 몇개 있습니다(아... 잘난척 처럼 들릴 거 같네요
사실은 소재 모잘라 죽겠습니다). 하지만 리버스 엔지니어링이란 분야를 다루려니 걸리는
것이 너무 많네요. 이 프로그램으로 해보려니 그쪽 회사에서 전화 올 거 같고, 저걸로 해보려니
우리 회사에서 날 죽일라고 할 것 같고... 뭐 고민 중입니다. 어느 정도 수위를 어떻게 맞추어야
할 지... 윤리/도덕의 절대적 가치 판단의 자질이 매우 떨어지는 저로서는 망설임만을 갖게 합니다.

머 어쨌든 쓸데없는 소리는 이것으로 정리하고 :p

제 홈피에 마이크로소프트 기고 내용을 처음 광고 해보겠습니다 ㅎㅎ 이번주에 나올 2월호 기사는
지난번에 제 홈피에도 공개하지 않았던... 디버깅 도중 수학문제가 나와 날 황당하게 만들었던
F-Secure Reverse Engineering 대회 Level 3을 다룹니다.

다음번엔 별로 할게 없어서 악성코드나 할까 합니다. major function table hooking 쪽을
기획하고 있습니다. IRP Hook 이라고나 할까요 ㅋㅋ 잼있는 악성코드가 있었거든요
드라이버 쪽이 되겠네요 드라이버 쪽 아는것도 개뿔도 없으면서 글 쓰려니 쪼팔리는군요 -.-


window31. 2008년 1월


 

신고
Posted by window31


댓글을 달아주세요

  1. 2008.01.29 00:15 신고
    댓글 주소 수정/삭제 댓글
    워.. 잘하시면서 =ㅅ=;; 너무 겸손하십니다 :)

    그나저나 상당히 공감이 가는 포스팅이네요...
    저도 개뿔도 없기때문에 머 공개할거리도 없지만 말이죠 ㅋ

    그나저나 IRP Hook이라... MBR Rootkit 인가요 'ㅅ'?

    뭐가 되었든 완전 기대하고 있을게요..

    그나저나 술한잔은 언제쯤.. ?
    • 2008.01.29 09:41 신고
      댓글 주소 수정/삭제
      네 MBR Rootkit 도 원리는 같습니다.
      다만 후킹하는 펑션 테이블이 좀 다르죠.
      사실 이게 왜 이제서야 잇슈가 되었나 싶기도 해요..
      IRP Hook 때문에 저희는 작년에 고생 좀 했거든요..
      (백신들이 아무도 못 캐취해내길래..)
      머 그래서 찌라시 툴을 하나 만들긴 했지만..
      (하하 술한잔은 조만간)
  2. 2008.01.29 04:23
    댓글 주소 수정/삭제 댓글
    비밀댓글입니다
    • 2008.01.29 09:42 신고
      댓글 주소 수정/삭제
      네 머 비밀댓글로 하실 것 까진 없는데 ^^
      답장 써드렸습니다.
  3. 2008.02.01 18:12 신고
    댓글 주소 수정/삭제 댓글
    마소 기고글 잘 읽었삼~
    리버싱을 해본지가 꽤 오래전 일이라 어렵게 느껴지네.

    구정 잘 보내삼~
    • 2008.02.01 23:37 신고
      댓글 주소 수정/삭제
      어려웠나? 내가 내용 표현을 잘 못한거구만 ㅠ ㅠ
      응 구정 잘 보내게
  4. 2008.02.03 02:01 신고
    댓글 주소 수정/삭제 댓글
    와우~ 마소 1월호에 실린 기사의 주인공이시군요. @0@)/~ 깜짝 놀랐습니다. 글을 아직 읽어보진 못했지만 좋은 내용인 것 같던데... 시간나면 꼭 읽어보겠습니다. 멋지십니다. ^^)/~
    • 2008.02.03 23:45 신고
      댓글 주소 수정/삭제
      ㅎㅎ 까마귀님 연재물이 더 멋져보이던데요
  5. 2012.02.13 04:15 신고
    댓글 주소 수정/삭제 댓글
    Great website. Nice posting comments system. I am sorry for the off-topic post, nonetheless I had been pretty pleased with Djokovic\'s play in the final of the Australia OPen this year. The guy is simply unequalled. He proved he was as powerful as iron. Simply imagine about he he can whip Nadal who had previously been so encouraged to succeed as well as was really so excited up while in the 5th set. I\'m commencing to consider that Djokovic is performing some religious work to bring some forces on his side which help him win such matches up against the greatest players in the entire world. Whatrrrs your opinion in relation to Rafa's game?

BLOG main image
by window31

카테고리

분류 전체보기 (285)
Reverse Engineering (22)
C, C++ (20)
Kernel (8)
Guitar (19)
잡담 (79)
etc (8)
who am i (8)
보안 이야기 (89)
Tools (3)
월간 마이크로소프트웨어/그.. (28)

글 보관함