공격이 복잡해도 방어는 간단하게.




예전에 같은 팀의 어떤 비 개발자 분이, 해킹툴을 어떻게 막는지 궁금하다고 하시면서 옆에서 작업 상황을 구경하러 오신 적이 있습니다. 그래서 "뭐 괜찮으니까 옆에서 보세요" 하면서 옆에 앉혀놓고 작업을 시작했는데요, 처리하는걸 다 보고 나서 하시는 말씀이...

"뭔가 너무 빨리 끝나는 것 같은데요, 혹시 지금 제가 본다고 해서 대충 하시는거 아닙니까..."

라는 질문을 하더군요. 근데 사실 저는 뭐 그때 처리한 것이 간단히 블럭시킬 수 있는 해킹이기도 했고, 또 저도 성향이 원래 코드를 길게 만드는 편이 아니라서 그런지, 작업 시간과 내용이 길지 않았던 것 같은데 그것 갖고 아마 그렇게 생각하시는 게 아닐까 생각이 들었습니다.

그런데 어쨌든, 그걸 증명할만한 딱히 적당한 발언이 생각나지 않아서 그 당시에는 그냥 지나쳐 왔습니다만 많은 시간이 지나도 뭔가 똥을 눠도 시원하지 않는 듯한 찝찝함이 남아 있었습니다. 그러다가 최근 들은 얘기 중 명언이 있습니다.

"공격이 복잡해도 방어는 간단하게"

아 ! 듣는 순간 "바로 이거다" 하는 생각이 들었습니다. 가장 정답이 아닐까 합니다. 힘들게 해커가 뚫었다고 해서 우리도 그걸 힘들고 복잡한 방법으로 막을 필요는 없습니다. 간단하고 깔끔하고 구조의 큰 변경 없이 근원적인 보안이 가능하다면 그것이야말로 가장 해피하고 나이스한 처리 방법입니다. 서버를 죽이는 공격 같은것이 좋은 예가 될 수 있겠네요. 생각해 보세요, 서버를 죽이기까지 해커는 오버플로우가 발생하는 개구멍을 찾으려고 구간마다 AAA를 겁나게 입력해볼거고 엄청난 개고생을 거쳐야지만 서버를 죽일 수 있겠지만, 방어하는 측 입장에서 서버가 죽는 원인은 결국 길이 검증쪽이거나 널 포인터 문제가 대부분이고 그것을 검사하면 그만입니다.

물론 이렇게 단순한 문제가 주를 차지하지는 않겠지만, 어플 쪽 해킹이나 ring0 쪽의 복잡다단한 공격도 의외로 매우 쉽고 간단하게 방어할 수 있습니다. 그럴때는 고민하지 않고 그 방법을 사용하면 됩니다. 그리고 그런 보안 방법은 생각보다 정말 대단히 효과가 좋을 수 있습니다.




"공격이 복잡해도 방어는 간단하게" 정말 명언이 아닐까 합니다. 이 말을 들은 후에 생각났던 옛날 이야기들을 한번 끄적거려 보았습니다. 다시 그 분을 만나서 말해주고 싶네요. 지금은 연락이 되지 않아서 어디서 무얼 하고 계실지는 모르겠지만 :)

window31.

신고
Posted by window31


댓글을 달아주세요

  1. 2010.09.17 09:23 신고
    댓글 주소 수정/삭제 댓글
    하지만 현실은...
    "공격은 한군데만 뚫어도 OK, 방어는 모든곳을 막아야 OK" ㅡ.ㅜ
  2. rodream
    2010.09.20 17:19 신고
    댓글 주소 수정/삭제 댓글
    보안담당자들에게 희망을 주는 글을 쓰셧지만, 댓글이 다시 현실로 데려오는군요 XD 현실은 시궁창 ㅠ_-
    • 2010.09.26 15:27 신고
      댓글 주소 수정/삭제
      전부다 kuaaan 님 때문이예요 ㅎㅎ
  3. Dual
    2010.09.21 11:38 신고
    댓글 주소 수정/삭제 댓글
    내가 만들었지만, 소스코드에서 주석처리 하지 않는한 나도 못뚫겠다<==
    요런게 ㅋㅋㅋㅋ 꿈이지만 현실은 OTL
    • 2010.09.26 15:28 신고
      댓글 주소 수정/삭제
      현실은,
      내가 만들었고 소스코드에서 주석처리 하지 않아도 뚫을 수 있다.
      ㅎㅎㅎ
  4. HooKi
    2010.09.30 14:25 신고
    댓글 주소 수정/삭제 댓글
    ㅎㅎㅎ....
    역시.. 다들 현실에 .. ㅋㅋㅋ
    역시나 방어하는 쪽이 많이 불리한 싸움이네요.. ^^

    그래서.. 야구는 투수에겐 4번의 기회를 주는데 우리 보안 업계는 과연
    몇번의 기회를 줄까요.. ?ㅎㅎㅎ
    • 2010.10.01 00:46 신고
      댓글 주소 수정/삭제
      사장님이 참아주실 때까지요 ? : )
  5. nerd
    2010.10.28 16:58 신고
    댓글 주소 수정/삭제 댓글
    뚫으려고 하는 사람은 많고, 시간도 많지만 막으려고 하는 사람들은 제한되어 있고 그들이 바치는 시간도 한정되어 있다는게 현실이죠;;

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)

글 보관함