이질적인 것들의 만남이 때로는 더 환상적이기도 합니다.
최근 1년 사이에 XIGNCODE를 개발하면서 가장 큰 재미를 본 내용들은 대부분 사회공학적인 방법이었습니다. 결국 해커도 사람이고, 해킹툴을 사용하는 사람도 사람입니다. 이 인간이라는 한계를 넘어설 수는 없다는 게 제 생각입니다. 물론 그걸 뛰어넘는 이상한 사이코패스 같은 사람들도 있지만 그건 어디까지나 절대 다수는 아니잖아요. 이런 맥락에서 사회공학적인 기법은 심플하면서도 심오하면서도 뭔가 근원적인 매력을 가지고 있습니다. 하지만 이를 받아들이는 업체 사이에서는 아직도 갈팡질팡 하는 경향이 조금 있는 것 같습니다. 이런 전략을 아주 반기는 곳도 있고, 의구심을 품는 곳도 있고 그렇거든요. 설익은 상태죠.
좀 더 재미있는 사실은 엔지니어가 많은 업체일수록 이러한 방식을 극도로 꺼려 하는 경향이 있다는 점 입니다. 사회공학적인 방법들을 사이비로 치부해 버리죠. 엔지니어들은 뭔가 어렵고, 심오하고, 복잡하고, 코딩하고 이런 걸 좋아하지만 사실 그런 것들은 웬만큼 실력이 비슷한 상대들 끼리는 뻔한 수 밖에는 안 됩니다.
예전에 모 업체가 — 요즘 인터넷 기사에 줄기차게 등장하는 그 업체입니다. — 매번 보안 업체들 다 모아놓고 BMT를 시켰습니다. 마지막 관문은 크로스 해킹. 당연한 이야기겠지만 크로스 해킹을 방어하는 보안 제품은 하나도 없었습니다. 그러면서 보안 업체를 소집한 그 갑님께서는 이야기합니다. 제대로 만든 게 하나도 없으니 도입하지 않겠다. 요즘 하도 언론에 나오길래 꼬시다는 생각을 조금 했었습니다.
국내 제품이 그렇지 뭐, … 라는 이야기가 여기저기서 들리는 것 같은데요. 근데 여러분이 자알 알고 계시는 외산 제품들도 똑같아요. 말만 들으면 알법한 그 엄청나게 큰 업체에서 만드는 소프트웨어들도 아주 손쉬우 방법에 당하거든요. 수십만라인 짜리 거창한 기능을 코드로 구현해 놓지만 몇 줄짜리 간단한 스크립트로 우회가 되는 경우도 부지기숩니다. 마치 괴델의 불완전성의 원리처럼 소프트웨어는 본질적으로 취약점을 가지고 태어나는지도 모릅니다. 폰 노이만식 아키텍처의 한계인지도 모르구요.
마이크로소프트만 봐도 알 수 있잖아요. 취약점을 제거할 수 없기에 취약점 완화 방안을 내놓습니다. 즉, 공격은 여전히 가능한데 좀 더 어렵게 만들겠다는 거죠. 가능은 한데 경제적인 효용을 없도록 만드는 전략입니다. 이 정도가 최선입니다. ROE 따지는게 다 이유가 있는 거거든요. 어쨌든 기술이란게 좀 그렇습니다. 게임 보안 제품도 똑같거든요. 업체끼리 덤비면 사실 장난감 수준 밖에는 안 됩니다. 서로 쉬쉬하는 루프홀만 열거해도 일톤 트럭으로 옮겨야 할 지경이지 않을까 싶네요…
감히 예측하건데 앞으로 사회공학적인 방법을 사용한 진단 기법들의 시대가 도래할 겁니다. 그럼 어떻게 돼냐구요? 네. 게임 보안 팀에 데이터 분석가 다음으로 심리학자가 초빙된다는 것을 의미하지요. 똑똑한 라이엇 게임즈는 벌써 시작했군요.
시스템 프로그래머 분들도 이제 마음을 조금 여시고 데이터 분석가와 심리학자, 그리고 뇌 과학자와 협업하는 방법을 배워야 할 때입니다. 코딩만 할 게 아니라 인문학 책도 좀 읽고, 커피숍 가서 사람들 구경도 좀 하고, 그 사람들이 도대체 왜, 그 비싼 돈을 주고 커피를 마시는 지에 관한 철학적인 생각도 좀 해 볼 때 입니다. 마음을 여세요. 프로그래밍이 전부라고 생각하는 순간 우물안 개구리 신세를 면하기 힘들거예요. 바야흐로 크로스오버, 퓨전이 대세인 시대입니다.
후킹, 필터, 리버싱, 빅데이터, 클라우드, 가상화, NoSQL 같은 테크니컬한 지식 보다 깨진 유리창 이론, 2080 법칙, 나르시시즘, 플라시보 효과, 베르테르 효과, 낙인 효과 같은 이론이 훨씬 더 중요한지도 모릅니다. 결국은 다 사람이잖아요. 좀 더 넓게 생각할 필요가 있습니다. 이건 사이비가 아닙니다. 더 효과적인 방법이죠. 항상 ROE를 생각하세요. 어쨌든 아직은 자본주의로 돌아가는 세상이거든요.