게임보안 히스토리
아 신경쓰지 않던 굉장히 옛날 글에 사무엘군이 댓글을 달았다고 알려주신 분이 계셔서 한번 봤는데 너무 재미있네요. 커널과의 싸움에 있어서 지난 게임보안 솔루션의 히스토리를 쭈욱 알려주는 글이라고 봐도 좋을 것 같습니다. :) SDT Hooking 의 초창기 모델부터 bypass 와의 싸움, 테이블에서 인라인으로, 트램펄린에서 중간번지 후킹으로, 자체 API 구현, IoControlCode 부분까지 (이것까지도 !!! ㅎㅎ) 긴 글이지만 요약으로 아주 심도있게 정리해 두었네요 ㅎㅎ
이당시 사무엘군은 최고 스타(?) 였으므로 (저를 엄청 괴롭혔던 !!) 히스토리에는 역시 보안회사 못지 않군요 ^^ 암튼 잊고 있던 기억이 새록새록 나는데 ㅎㅎ 대략 2004 년부터 2006 년 까지의 히스토리쯤 되는것 같네요. 요즘은 어떻게 되어 있을까요 ㅎㅎ
그러나 사실 해커들과 새기능을 주거니 받거니 하며 살아온 저 나날들, 저 과정에서의 엔진 업그레이드는 결코 순탄한 것만은 아니었습니다. 흔히 연구 테마나 취약점 권고에서 많이 나오는 얘기 중 하나인, "이건 이렇게 막으면 되지 않겠느냐" 라고 듣던 것을 결코 쉽게 실천할 수 없었습니다. 코드를 하나씩 올려 갈때마다 라이브 서비스시에는 어김없이 예상하지 못한 곳에서 지뢰가 터졌고... (아 정말 지뢰제거는 끝이 없더군요. 이런 환경은 대체 뭔지...; ), 메모리 보호에 있어서 이미 한 수준 위인 해외의 안티바이러스와 기싸움을 하며 관련 벤더사와 메일도 엄청 주고받았습니다. 특히, 인터넷이나 보통 책에 올라와 있는 native 관련 소스를 그대로 사용하는 것은 미친짓이라는 것을 잘 알게 되었습니다. 그 기술로는 해킹 방법을 막을 수 있지만, 실전에 적용하기에는 불가능했던 코드가 실제로는 아주 많습니다. 라이브 때는 완전 다르죠. 물론 그건 요즘같은 최근에도 더 많이 느끼고 있습니다 (최근에는 인터넷에 공개된 자료가 더 많으니까요)
게임보안은 이미 많은 기술들이 오픈되어 있으니, 시중에 나와있는 솔루션들... 사실 걔들과 같은 거를 똑같이 만드는 것은 어렵지 않을 거라 생각이 들기도 합니다. 하지만 라이브 경험을 가져보지 않은 사람들이 만드는 코드는 사실 신뢰를 받지 못하는 것이 일반적인 현실입니다 (특히 게임 개발자들에게!) 그래서 기술력보다는 경험력 쪽의 진입 장벽이 높다는 이유로 타사에서 또는 게임회사 자체 내에서 함부로 사업을 펼치지 못하기도 합니다. 물론 개중에는 쉽게 보고 덤벼드는 사람도 있습니다만. 개인적으로 그럴 때를 보면 이런 생각은 좀 듭니다. 본인이 삽질해 왔고 지금도 너무 어려워서 쩔쩔매고 있는데, 누군가 굉장히 이걸 쉽게 보고 날로 먹으려 할 때 웬지 모르게 의욕이 사라지고 힘이 빠지는.
게임보안을 할 때의 입장은 아마존 같은 미개척 지역을 포크레인으로 파헤쳐 가며 길을 만드는 기분인데, 사실 지금도 그 생각과 별로 다르지 않습니다. 해커들이 만든 코드를 뜯어볼 때면, 항상 저는 아직도 멀었다는 생각 밖에 들지 않아서요...
맥주 두캔 마시고 댓글을 본후 그냥 생각나는대로 써본 얘기들입니다.
어쨌든 사무엘군 짱 ! ㅎㅎㅎ
window31.