사실 해킹은 그 시작에서부터 성공하는 과정 사이에 엄청나게 많은 단계가 복잡하게 얽혀 있습니다. 공격을 원샷에 성공하는 경우가 있다면 무척 좋겠지만 안타깝게도 지금 당장 http://milw0rm.com 에 올라와있는 Exploit을 돌려봐도, 그런 영화같은 상황은 잘 일어나지 않죠.

그 복잡한 과정을 여기서 전부 설명하자면 아마도 책이 여러 권 나와도 부족할 정도일 것입니다. 아주 많은 퍼즐이 있다고 상상하시면 됩니다. 이 짧은 글에서는 그 많은 퍼즐 중에서도 일부를 바라보고 몇 가지를 알려드리려 합니다.

우선 지극히 단순하게 문제를 바라보면, 해킹 기술이란 것은


- 버그 찾기 (Finding Bugs with beer)
- 찾은 버그를 Exploit하기 (Exploiting the bugs with soju)


이 2가지로 나눌 수 있습니다. 해킹을 많이 접해보지 못하신 분들을 위해서 보충 설명을 드리자면, 버그를 찾는 것과 찾은 버그를 Exploit하는 것은 전혀 다른 이야기라고 할 수 있습니다.

버그를 찾은 것에 성공한 단계도 물론 훌륭한 것이지만, 이 버그는 Exploit이 될지 안될지 아직 모르는 상태입니다. 해커는 이 단계에서는 이 버그가 Exploit이 되는지 안되는지 아직 정확하게 알 수 없습니다. 여기서 말하는 Exploit이 된다라는 의미는,

"해당 버그를 이용하여 공격에 성공할 경우 목표한 시스템에서, (최소한 현재보다) 높은 권한을(혹은 정보를) 획득할 수 있다."


로 대략 정의할 수 있습니다. 반대로 말하면, 버그를 발견하여도 Exploit이 되지 않는다면, 이런 버그는 "심각한 취약성"으로 취급되지 않을 수 있습니다. 예를 들어 단순히 Crash만 일으키는 것이라면 좋은 버그로 평가받기 힘듭니다. (물론 Crash가 일어나는 서비스에 따라서 다르게 취급되긴 합니다. 가령, TCP/IP Stack에서 Crash가 일어날 수 있다고 하면, 꽤 좋은 버그입니다.)

여기서 드는 의문점은, "아니, 버그면 Exploit이 가능해야 하는거 아니야? 안되는 경우는 왜 생기지?"일 것입니다. 이런 질문을 받았을 때 모든 것을 제대로 설명해야 한다면 아마도 수십 일이 더 걸릴 수도 있기 때문에 또 간단하게 설명을 해보겠습니다.

버그는 프로그램 상에서 일어나는 문제점입니다. 어떤 문제는 아주 사소한 에러라 작게는 사용자에게 아무런 피해를 안 줄수도 있고 심각하게는 시스템 전체가 마비되거나 완전히 장악당하게 될 수도 있습니다.

이러한 현상은 프로그램 안에 있는 알고리즘 중에 어떤 부분에서 문제가 일어나느냐에 달라집니다. 만약 데이터가 이동될 때 이것을 잘 관리하지 않아서 프로그램의 메모리에 있는 어떤 중요한 내용을 해커가 바꿀 수 있다면, 심각한 피해를 초래할 수 있습니다.

다시 버그 찾기로 돌아가서, 앞에서 말했지만 해커는 아직 이 버그가 Exploit이 가능한지 아닌지 모릅니다. 버그를 찾는 방법은 아주 다양하게 이론이 제시되어 있고 어떤 것은 수학 이론이 가미된 복잡한 방법도 있으며 어떤 것은 아주 단순한, 심지어 순전히 "운"으로 버그가 발생되는 경우도 있습니다.

버그를 찾은 후에, 실제로 Exploit을 수행하는 과정은 대단히 많은 내용을 해커가 분석을 해야 하기 때문에, 일반적으로는 버그 찾기보다 Exploit을 하는 것이 더 복잡하다고 볼 수 있습니다.

즉, Exploit에 성공하기 위해서 수행하는 과정들이 버그를 찾는 것보다는 기술적으로는 더 힘들고 어렵다고 볼 수 있습니다. 실제로 똑같은 Vector에서 발생되는 똑같은 취약점이라도, 어떤 해커는 성공하지 못할 수 있고, 어떤 해커는 성공할 수도 있습니다.

예를 들어 Alexander Sotirov는 다른 사람은 Exploit하지 못 했던 버그이지만 자신은 성공했던 적이 있다고 하더군요. 버그의 유형과 운에 따라서 다르지만 뭔가를 Exploiting하는 과정은 대단히 쉬울 수도 있지만 대단히 많은 작업이 필요할 수도 있습니다. 특히, 좋은 Reliability를 갖기 위해서는 그야말로 노가다가 필요합니다.

이 글은 "버그를 찾기만 하는 작업은 뭐 별 대단할 것이 없어.. 진짜 중요하고 어려운 기술은 제대로 된 리버싱을 통해서 Exploiting를 하는 거야."라고 말하고 있는게 아닙니다. 일단 버그를 찾아야 그 다음 단계가 진행되기 때문이고, 버그를 찾는 방식에 대해서도 기술적인 발전이 많이 이루어졌기 때문입니다.

단, 해커가 되고 싶은 분들을 위해서 롤 모델을 한명 말씀드리자면 Iphone hacker로도 유명한 Charlie Miller처럼 해킹을 할 수 있도록 노력해야 합니다. 어떤 해커들은 버그를 찾는 것을 더 좋아하거나 혹은 버그는 직접 안 찾고 익스플로잇 하는 걸 더 선호하거나로 나뉘는데 Sotirov 말에 의하면 Charlie Miller는 둘 다 아주 능숙하다고 합니다. 아마도 이 글을 읽어시는 분들은 Charlie Miller(우리나라 나이로 37세)보다 나이가 어릴 확률이 높으므로 열심히 하면 따라 잡을 수 있을 겁니다. ㅎㅎ

정리를 하자면,

기술적인 난이도는 Exploiting가 더 높다고 할 수 있지만, 버그를 Finding하는 작업도 무척 중요하다.

버그는 어떻게 찾아야 하고, 어떤 것들이 Exploit을 할때 그렇게 복잡한지에 대한 케이스는 앞으로 틈틈히 올려보겠습니다.



Tag : 0day, bugs, exploit, exploiting, hacking, Security

  1. beistlab

    | 2009.11.29 17:36 신고 | PERMALINK | EDIT | REPLY |

    글과는 아무 상관 없는 Guinness 맥주.. beist의 맥주 중에 하나임

  2. lycan

    | 2009.11.29 18:46 | PERMALINK | EDIT | REPLY |

    ㅎㅎ 저는 호가든과 감자칩을 먹고 있음;

  3. beistlab

    | 2009.11.29 20:35 신고 | PERMALINK | EDIT |

    부럽네요 ㅋㅋ 호가든도 짱임..

Write your message and submit

최고의 해커가 되고 싶다면?

Posted 2009.11.27 11:07 by beistlab
(낚시성 제목 죄송ㅋ)

숙취와 함께하는 금요일 아침도 사실 그렇게 나쁜 경험은 아니죠. 단지 하루 하루 빨개져가는 얼굴을 볼 때마다 가슴이 아플 뿐.. 얼굴이 빨간 해커가 되고 싶다면 저녁마다 술을 매일 매일 마시고(수입 맥주는 호가든이나 기네스, 국산 맥주는 하이트 맥스 추천) The art of security software assessment를 보시면 됩니다. http://beist.org에서 이미 몇번 언급을 한 책이지만 Google Native Client 버그 찾기 대회에서 우승하고, 소스 코드 Auditing 능력으로는 전 세계에서 최상위 클래스에 위치한 사람 중에 한명인, Mark Dowd가 쓴 책입니다. (Mark Dowd Twitter- http://twitter.com/mdowd)

워낙에 많은 내용을 담고 있기 때문에 (유용한) 이 책만 잘 읽어도 소스 코드 오디팅 분야에서는 80% 이상은 커버할 수 있다고 볼 수 있습니다. 실제 취약성이 발생했던 프로그램들에서 예를 많이 들었기 때문에 실전적인 면에서도 도움이 많이 될 겁니다. 지금은 원서밖에 없는데 지금 한국어로 번역 작업이 진행중이라고 합니다. (어느 출판사에서 하는지는 모르겠네요, 몇 주전에 mark dowd 트위터에서 봤었음)



yes24 링크: http://www.yes24.com/24/goods/2278855
(yes24에서 나 맥주 안 사주나??)

참고로 저도 이 책 아직 다 못 봤음.. 열라 두껍습니다. 1200 페이지 정도..

Tag : auditing, code auditing, hacking, mark dowd, Security, taosss

  1. kay

    | 2009.11.27 14:23 | PERMALINK | EDIT | REPLY |

    yes24에 후기 식으로 올리시면 쿠폰같은건 주지 않을까요 ㅋㅋㅋㅋㅋㅋㅋㅋ

  2. beistlab

    | 2009.11.27 15:53 신고 | PERMALINK | EDIT |

    후기 ㅠㅠ 엄청 귀찮을 듯 ㅋㅋㅋㅋ
    맥주 사줄 사람을 찾습니다.

  3. beistlab

    | 2009.11.27 15:53 신고 | PERMALINK | EDIT |

    맥주 스폰서

Write your message and submit

Hacking/Security 관련 트위터 리스트 #1

Posted 2009.11.22 04:08 by beistlab
요즘 트위터가 엄청나게 뜨고 있습니다. 보안 업계에 종사하는 해커들도 트위터를 많이 하고 있는데, 사실 아직 국내에서는 트위터가 그렇게 빛을 발하고 있지는 않고 있죠. 어쨌거나 트위터를 직접하지 않더라도, 그냥 방문만 해도 보안 정보를 빠르게 얻을 수 있으니 관심있는 분들은 아래 트위터 리스트를 참고하세요~ 참고로 제 트위터 주소는 http://twitter.com/beist 인데 정보는 없습니다. ㅋㅋ 본 글은 트위터 리스트 #1이고 조만간에 또 추가 정보를 포스팅하겠습니다.


http://twitter.com/hdmoore

Exploiting framework 툴인 metasploit(http://metasploit.com)의 주인장인 HD Moore의 트위터입니다. 열라 왕성한 트위팅을 하고 있고 덕분에 최신 보안 정보를 얻기 좋습니다. 개인적으로도 아는 친구인데 성격도 좋습니다. 실력은 물론 두말할 것도 없습니다.


http://twitter.com/dinodaizovi

엘리트 해커 중에 한명인 Dino Dai Zovi의 트위터입니다. Mac hacker's handbook(http://www.yes24.com/24/goods/3002538)의 저자 중에 한명으로 Mac OSX의 전문 해커로도 유명하지만 다른 플랫폼들에서도 아주 훌륭한 해킹 솜씨를 보여주고 있습니다.


http://twitter.com/alexsotirov

역시 l33t 해커 중에 한명인 Alexander Sotirov입니다. 얼마 전에 한국에서 열렸던 보안 컨퍼런스 POC2009(http://powerofcommunity.net)에서도 발표를 했습니다. 최신 Exploit 테크닉에 대해서 선도하고 있는 사람 중에 한명이고 보안 계통 내에서도 다양한 분야에서 활동하고 있습니다.


http://twitter.com/thedarktangent

지금은 해커로서의 실력이 충분하지 않을 거라고 생각되지만 한 때는 그도 해커였을거라 믿어 의심치 않습니다. 전 세계에서 가장 유명한 보안 컨퍼런스인 Defcon(http://defcon.org)의 주인장, Jeff Moss입니다. 워낙에 바쁜 친구입니다. 한국에 왔을 때도 봤었는데 사람은 괜찮은 거 같습니다. 미국 국토안보부에서 사이버 전쟁에 관하여 자문 위원을 맡고 있습니다.


http://twitter.com/spendergrsec

사람에 따라서 좀 호불호가 나뉘는 친구입니다. Linux에서 0-day(취약점)을 찾는 실력만큼은 정말 대단한데, 해커 특유의 그 기술적인 자신감이 충만한 사람이라 싫어하는 사람도 봤습니다. 전 친분은 없어서 개인적인 면이 어떤지는 잘 모릅니다. 아무튼 Linux 환경 하에서, 특히 local 취약점들에 대해서 알고 싶다면 이 친구의 exploits을 보시는 것을 추천합니다.


http://twitter.com/i0n1c

한국을 좋아하는 독일 해커 Stefan Esser입니다. 이 친구가 만든 방화벽 이름도 Suhosin이죠. POC2009의 스피커 중에 한명이었으며 한국 문화를 좋아합니다. 한국에 방문하였을 때 3일 연속 같이 술 마셨는데 술도 좋아하더군요. 제가 술 취해서 테이블에서 자고 있을 때 제 목에다가 '바보'라고 써놨습니다. 그게 진짜 안 지워져서 4일 동안 저와 함께 있었음.. PHP 보안 리서처입니다.


http://twitter.com/dguido

Dan Guido, 저는 잘 모르는 친구입니다만 adc의 소개로 알게 됐습니다. 사실 beistlab이 Codegate2009를 운영할 때 adc의 추천으로 Dan Guido 이 친구도 운영진으로 섭외하려고 했으나 개인 사정으로 인해 성사되지는 못했습니다. 주로 뉴욕에서 활동하는 것처럼 보이네요.


http://twitter.com/s7ephen

Cai님이 있는 팀인 PPOP(카네기 멜론의 컴퓨터 보안 클럽)이 우승한 CSAW2009 대회에서 문제를 출제한 s7ephen입니다. 아쉽게도 adc가 있는 RPISEC 팀은 2회 연속으로 2등을 했군요. 전 잘 모름..


http://twitter.com/invisig0th

Kenshoto의 Invisigoth입니다. Kenshoto는 지난 몇 년 동안 세계 최고의 해킹 대회인 Defcon CTF에서 문제를 출제한 팀으로 유명합니다. 멤버들을 자세히 알진 못하지만 구성원 한명 한명이 뛰어난 해커라고 얘기는 많이 들어왔습니다.


http://twitter.com/daveaitel

프로그래밍도 잘하고 해킹도 잘하는 것으로 유명합니다. Dave Aitel! 개인적으로는 잘 모르는데 실력이 매우 뛰어나다고 들었습니다. Immunity Debugger로 유명한 Immunity 회사에 다니고 있습니다.


http://twitter.com/mdowd

The art of software security assessment(http://www.yes24.com/24/goods/2278855)의 저자 중에 한명인 Mark Dowd입니다. 소스 코드 Auditing으로 취약점을 찾는 능력은 아마도 가장 뛰어난 사람 중에 한명일 거라고 생각되는 사람입니다. 몇 개월 전에 있었던 Google Native Client의 취약점 찾기 대회에서도 1등을 차지하였습니다. 소스 코드 Auditing은 정말 지겨운 작업 중에 하나인데, 아무래도 좀 특별한 재능이 있는 것 같습니다.


http://twitter.com/kleissner

1992년생임에도 불구하고 Bios 단의 해킹까지 연구를 하여 세계 최고의 컨퍼런스 중에 하나인 BlackHat에서 당당히 발표를 한 Kleissner입니다. 오스트리아 출신이고 처음 만난 것은 작년 독일입니다. 실제로 보면 굉장히 착한데 자기가 갖고 있는 기술의 위험성에 대한 것을 고려하지 않을 때가 종종 있어서 동종 업계의 사람들에게 욕을 가끔 먹습니다. 실제로 얼마 전에 있었던 AV Tracker사건도 말이 많았죠. http://beist.org/new_ver_board/read.html?table=new_freeboard&uid=1663


http://twitter.com/dugsong

한국말은 잘 모르지만 어쨌거나 한국계 해커인 dugsong입니다. 제 생각에는 한국계 해커 중에서는 가장 유명한 해커일 겁니다. 나름대로 영향력도 있구요. 그만큼 실제로 실력도 무척 뛰어나고 이 사람이 만든 대표적인 프로그램으로는 dsniff이 있습니다. 제가 알기로는 ARP Spoofing을 통한 Sniffing을 실질적으로 잘 작동하도록 만든 최초의 툴로 알고 있습니다.


http://twitter.com/jeremiahg

웹 쪽으로 다양한 취약점을 발표하고 있는 해커입니다. 특히 Ajax와 관련된 것들 중에 재밌는 꽁수들을 발표하고 있으니 웹 해킹에 대해서 궁금하신 분들은 방문해보셔도 괜찮은 트위터입니다.


http://twitter.com/halvarflake

Bindiff, BinNavi로 유명한 회사인 Zynamics(http://zynamics.com/)의 Halvar Flake입니다. 수학적인 지식이 풍부하고 또한 그걸 활용하여 프로그래밍을 잘 하는 것으로 알려져 있습니다. 이 사람도 제가 잘 알지는 못하는데 Sexy pandas(http://sexy.pandas.es/blog/) 팀의 리더 Tora한테 들은 바로는 아주 아주 뛰어난 해커라고 들었습니다.


http://twitter.com/0xcharlie

Dino와 함께 Mac hacker's handbook을 쓴 Charlie Miller입니다. 이 친구 이름은 못 들어봤어도 이 친구가 만든 이슈는 아마 상당히 많은 분들이 보셨을 겁니다. 몇 개월 전에 BlackHat에서 SMS 보내기만하면 아이폰이 해킹되는 심각한 취약성이 발표되었고, 우리나라에서도 굉장히 기사화 되었습니다. 그 버그를 발견한 사람이 이 사람이고, Alexander Sotirov가 한국에 왔을 때 이 친구에 대해서 물어봤었는데 Finding bugs and Exploiting it 모두 굉장히 뛰어난 사람이라고 하더군요.

Tag : hacker, hacking, Security, twitter, 보안, 트위터, 해커, 해킹

  1. chpie

    | 2009.11.22 08:40 | PERMALINK | EDIT | REPLY |

    맥에서 올리셨는지 .. ㅋㅋ
    익스플로러로 보면 한글이 다 자/모가 분리됬네요 ㅋㅋ

  2. beistlab

    | 2009.11.22 09:10 신고 | PERMALINK | EDIT |

    진짜네 -_-; 이거 완전 충격과 공포다 -_-;
    어디서 잘못된건가 이거 ㅋㅋ

  3. plus_p

    | 2010.06.23 15:55 | PERMALINK | EDIT | REPLY |

    와우 이런거 찾구있었는데 이런거 발견했네요 올레~~^^
    많은 도움이 됐습니다. 비스트님것두 팔로잉~~~^-^

  4. 김병규

    | 2010.07.27 17:29 | PERMALINK | EDIT | REPLY |

    님 해킹에 관한 책좀 추천좀요 나쁜용도 말고요

  5. Blinds

    | 2011.02.03 16:01 | PERMALINK | EDIT | REPLY |

    원더풀 블로그 유용한 정보 주셔서 감사합니다

Write your message and submit