728x90
또다. 똑같은 시간, 00시.
또다시 같은 문자다.
`CATCH ME IF YOU CAN`
정말 지루한 문자다. `CATCH ME IF YOU CAN` 자기를 잡아보라니.
어느 날, 어느 순간부터 나는 똑같은 해커에게 00시마다 이 문자를 반복해서 받기 시작했다. 그 이유는 알 수 없었다.
처음에는 단순한 장난으로 여겼다. 익명성을 유지하며 활동하는 해커 세계에서는 가끔 이런 일이 벌어지곤 했다. 하지만 매일 밤, 빠짐없이 도착하는 그 문자는 점점 나를 짜증나게 만들었다. 마치 내 일상 속에 불청객이 들어온 기분이었다. 나는 결국 그 해커를 찾아내기로 했다.
먼저, 문자가 도착하는 시간을 분석했다. 정확히 00시였다. 매일. 이 일정함이 그들의 습관인지 아니면 나를 조롱하는 의도인지 알 수 없었다. 나는 내 서버 로그를 살펴보았다. 문자가 도착할 때마다 발생하는 네트워크 트래픽을 추적했다.
fun_첫 번째 단서
문자가 도착하는 IP 주소는 매번 달랐다. 이 해커는 IP 주소를 위장하거나 프록시 서버를 사용하고 있었다. 이는 흔한 수법이었다. 나는 조금 더 깊이 파고들어야 했다. 패킷 데이터를 캡처해 분석한 결과, 일정한 패턴이 발견되었다. IP 주소는 매번 달랐지만, 몇몇 특이한 문자열이 포함되어 있었다.
이 문자열을 분석한 결과, 특정 VPN 서비스와 연관된 것으로 드러났다. 나는 그 VPN 서비스의 서버 위치를 역추적하기 시작했다. 하나씩 거미줄을 풀어가듯 VPN 노드를 따라갔다. 드디어, 한 곳에서 신호가 잡혔다. 위치는 동유럽의 작은 도시였다. VPN 서비스만 믿고 본인의 위치를 더 깊게 숨기지는 않은 듯 했다.
하지만 여기서 멈출 수는 없었다. 아무리 동유럽의 작은 도시라고 해도 여전히 약 30 만 명의 인구가 사는 곳이었다. 나는 그 해커의 흔적을 찾기 위해 하나의 도시 내에 있는 모든 인터넷 트래픽을 조사하기 시작했다. 별로 어려운 일은 아니다. 나만의 서버를 하나 만든 후 이 도시에서 발생하는 모든 트래픽이 이 라우터를 거쳐가게만 하면 된다. 나는 이 라우터를 통하는 모든 메시지를 다시 인터넷 서버로 보낸다. 그리고 인터넷 네트워크에서 오는 모든 response 메세지를 다시 이 라우터를 통해 이 도시에 보내게 하면 된다. 16일 정도 고생하기는 했지만, 서버도 만들었고, 도시의 모든 구역을 나누어 하나 하나 모든 트래픽이 이 서버를 통해가게 만들었다. 동유럽의 작은 도시, 인터넷 사용자조차 매우 적은 도시이기에 가능한 전략이다.
해커들은 흔적을 남기기 마련이다. 나는 그의 습관과 패턴을 분석하기로 했다. 그가 사용하는 특정한 코드 스타일이나, 특정 시간대의 활동 등을 추적했다. 이제 이 도시에 있는 모든 해커는 나의 손바닥 위에 있었다.
fun_두 번째 단서
나는 이 프로그래머와 관련된 모든 트래픽들을 조사하기 시작했다. 그가 직접 만들었다는 코드 패턴도 분석하기 시작했다. 모든 정보는 인터넷에 있었다. 인터넷에 공개되어있는 정보를 활용하면 이 프로그래머가 지금까지 몇 번의 섹스를 했을지도 통계적으로 유추할 수 있었다. 정확히 알 수는 없어도, 통계적으로 약 95% 확신할 수 있을만큼 계산할 수 있었다. 아쉽게도, 이 친구는 내가 찾는 친구는 아니었다. 이 친구의 트래픽을 모두 조사하였지만, 내게 메세지를 보내는 것과 관련된 내용은 없었기 때문이다. 우회한 경로나 반복된 프로그램조차 존재하지 않았다. rabbit hole이었다. 하지만, 이 조사가 의미가 없지는 않았다. 이 친구와 관련된 모든 트래픽들을 조사하던 중 몇 가지 이상한 점을 발견했기 때문이다. 이 친구 그리고 이 도시에 몇몇 지금까지 내가 조사한 해커들은 특정 사이트를 반복적으로 들어가는 패턴을 보였다. 그 사이트는 다크 웹에 위치한 해킹 포럼이었다.
fun_세 번째 단서
다크 웹 포럼은 일반 웹 사이트가 아니다. 바보짓만 하지 않으면, 아니 초보자로써 하는 짓들만 하지 않으면, 다크 웹 추적은 지난한 일이다. 그렇지만, 그게 바로 해커가 하는 일이다. 해커는 불가능한 일에 도전하는 걸 업으로 삼는다. 유명해지는 것이나 돈이 해커의 동기가 아니다. 해커의 피 안에 흐르는 것은 불가능을 향한 도전이다. 나는 내 경험과 기술을 이용해 이 불법 사용자들을 추적하기 시작했다. 한 사용자가 유난히 눈에 띄었다. 매일 새벽 00시에 활동을 시작하는 특이한 해커가 있었기 때문이다. 00시 너무 익숙한 시간이었다. 00시... 우연이 아니라 철저히 의도한 것이라면 그저 내 시간대에 알맞게 메시지를 보내도록 한 것이겠지. 재밌는 놈이었다.
다크웹에서 알아낸 그의 아이디와 활동 기록을 인터넷 전체를 뒤져서 추적하는 한 편, 나는 다시 이 작디작은 (달디달고, 달디달고, 달디단, 밤양갱, 밤양갱 내가 먹고 싶었던 건, 달디단, 밤양갱, 밤양갱이야_ 여러분 지금 밤양갱 하나씩 드실 수 있으면 까서 하나씩 먹읍시다 앙 냠) 도시로 되돌아갔다. 이 해커를 찾아내기 위해서 이 도시 트래픽 전체를 까보기 시작했다. 이 자식은 분명 기본적인 우회기법들은 사용하려고 했을 것이다. 그러나 추적이 불가능한 것은 아니다. 온라인으로 연결되어 있다면, 실력있는 해커들은 돌조차 해킹할 수 있다. 드디어 또 다시 수상한 ip 하나를 발견하였다. 이 ip는 수상하리만큼 너무 촘촘하게 방어막이 구성되어 있었다. 방어에 집착하는 편집증이 낳은 베를린 장벽.. 완벽하게 수상했다. 아이러니하게도 이 ip는 방어막이 너무나 겹겹이 쌓여있었기에 내 수사에 걸려들게 된다. `sandglass` 내가 인터넷에서 찾은 그의 닉이었다. 찾았다 4885
fun_endgame
엄청난 수준의 익명화 기술과 난독화 기술이었다. 네트워크도 밖에서 안으로 들어가는 거는 전연 불가능할 정도로 엄청난 방어벽들로 가로막혀 있었다. 재밌는 친구였다. 중간에서 내가 탈취해왔던 그의 정보는 사실상 거의 없는 수준이었다. 그러나, 오히려 이렇게 엄청나게 가시를 돋혀놓고 잔뜩 움추리고 있으면 훨씬 더 눈에 띄었다. 해커가 수많은 사람들 안에 숨는 좋은 방법 중 하나는 그냥 일반 사람들인것처럼 행동하는 것이다. 그러면, 오히려 타겟이 되기 어렵다. 아니 더 정확히 말하면 찾기 어렵다. 이 고슴도치 친구는 너무나 눈에 잘 띄었다. 이제는 내가 기꺼이 밟아줄 차례였다.
익명화 기술과 난독화 기술, 고차원적인 수준의 방어기법들과 방화벽 그리고 셀 수 없이 많이 이용하는 우회 기술들, 트래픽 하나 하나 잡아서 역추적 하는 것이 불가능하다고 생각했을 것이다. 1초에도 이 대륙과 저 대륙을 5~6번 왔다갔다 하는, 빛의 속도로 움직이는 이 정보들을 어떻게 인간이 잡을 수 있겠는가 그렇게 자신만만 했을 것이다. 뭐 모든 친구들이 본인 뜻대로 움직여준다면야 사실 이 친구의 기술은 옳았다. 인간으로썬 뚫기 어려운 일이다. 나도 인간이라고 한다면, 나조차도 이 기술을 뚫기 어렵다. 그러면, 마치 1억 년 전이라고 하는 그 바보 같은 공룡들처럼 상대방을 잡아 먹겠다고 무작정 이 벽으로 돌진하는 게 옳은가. 세상이 그렇다면야 얼마나 지루할 것인가. 그렇다면, 기술이 도대체 왜 있겠는가. 해킹이라는 건 Think outside the box 이다. 생각의 틀 자체를 벗어나는게 바로 해킹의 기본이라 이마리아~ 너희들의 잡지구레한 바스켓 상식을 나한테도 적용하지 마라 이마리아~ 나는 풋내기니까 ~ 훗
`sandglass`를 잡기 위해 이 모든 것들을 우회할 필요가 있었다. 그렇다면, 가장 좋은 방법은 함정을 파는 것이다. 나는 이 친구가 다크웹 포럼에 자주 방문한다는 것을 알았다. 그렇다면, 바로 이 부분에서 가능성을 찾을 수 있다. 나는 그가 자주 방문하는 다크웹 포럼에 가짜 정보를 심어두었다. 중요한 데이터인 양 위장한 파일, 해킹 냄새가 너무 나기에 그는 모든 대처를 다 해두었을 것이다. 당연히 이것만으로 그의 시스템이 침투할 수 있는 가능성은 없었다. 그러나 nudging이 있다. 나는 그가 다크웹에 자주 방문한다는 것도 알았지만, 그가 가까운 친구 누구와 소통하는지도 잘 알고 있었다. `sandglass`와 가장 자주 소통하는 닝겐 이름은 Hanh이었다.
먼저 이 Hanh의 시스템을 Hanh이 전혀 모르게 장악해두었다. 그리고 조용히 백도어를 남겨두었다. Hanh이 컴퓨터로 하는 모든 정보는 이제 또한 나의 것이 되었다. 거의 다 왔다. 이제 조금만 더 천천히..
Hanh의 시스템을 장악한 나는 그가 보내고 받는 모든 정보를 들여다볼 수 있었다. 그의 이메일, 메시지, 다크웹 포럼 활동까지 모두 내 손안에 있었다. Hanh은 자신의 시스템이 해킹당한 줄도 모른 채, 평소와 다름없이 `sandglass`와 소통을 이어갔다.
나는 Hanh의 시스템을 통해 `sandglass`에게 접근할 계획을 세웠다. Hanh과 `sandglass`의 통신을 감시하면서, 나는 그들이 사용하는 프로토콜과 암호화 방식을 파악했다. `sandglass`는 매우 신중했지만, Hanh과의 소통에서 작은 틈을 발견했다. 그 틈을 파고들기로 했다.
먼저, Hanh의 시스템에 설치한 백도어를 이용해 `sandglass`에게 가짜 메시지를 보냈다. 마치 Hanh이 보낸 것처럼 보이도록 정교하게 위조했다. 메시지 내용은 다크웹 포럼에서 발견한 중요한 정보에 대한 것이었다. 그 동안 다크웹 포럼에 진짜 이와 관련된 중요한 링크들을 많이 뿌려두었다. 그리고 `sandglass`는 분명히 군침을 흘렸다. `sandglass`는 이 메시지에 관심을 가질 것이 분명했다.
"""
From: Hanh
To: sandglass
Subject: 새로운 정보
네가 찾던 그 정보, 다크웹 포럼에서 발견했어. 아래 링크를 확인해봐.
[가짜 링크]
Hanh
"""
나는 `sandglass`가 이 링크를 클릭하도록 유도했다. 링크를 클릭하면, 그의 시스템에 은밀하게 백도어가 설치되도록 설계된 것이다. 하지만 이 정도로 `sandglass`를 속이기에는 부족했다. 그는 분명히 링크를 분석할 것이다. 하지만 모든 시스템에는 모두 공통된 허점이 있다. 그건 바로 인간이라는 허점이다. (human error) `sandglass`는 이메일과 다크웹에 있는 링크를 절대로 안전하지 않은 환경에서 열어보지 않는다. 당연한 일이다. 하지만, 자신이 신뢰할 수 있는 가장 친한 친구가 링크를 보낸다면? 그러나, 꼼꼼한 성격인 그는 아직도 의심할 것이다. 그렇다면, 그 링크가 지난 3주 동안이나 자신의 관심을 계속 끌었던 그런 주제라면? 무의식 중에 클릭할 수도 있다. 자신이 가장 신뢰하는 친구가, 자신과 10년이 넘도록 아무 문제 없이 잘 소통한 친구가 자신이 가장 최근에 너무나 궁금해 하는 주제에 관련된 그것도 최신 내용으로 업데이트된 링크를 보내준다? 부족할 수 있지만, 상당히 가능성이 있었다. 나는 `sandglass`와 Hanh 사이에 메시지들을 충분히 확인했기에 이들 사이에 신뢰를 올려줄 수 있는 프로토콜을 알고 있었다.
이제 밥상은 다 차렸다. 미끼를 하나 더 추가할 차례다. 나는 다크웹에 접속하여, `sandglass`가 가장 궁금해하던 정보를 하나 더 제공했다. 아주 juicy한 내용이다. 그는 군침을 흘릴 수밖에 없을 것이다. 이제 Hanh의 계정을 통해 보낸 나의 메세지에도 더 관심이 가겠지. 과연 이 juicy한 링크를 그는 누르지 않을 것인가? 가장 신뢰하는 친구가 보낸 이 메세지를 무시할 수 있겠느냐는 말이다. 2 시간이 지나자, `sandglass`는 다크웹 포럼에 올라온 정보에 대해 관심을 가지기 시작했다.
나는 그가 포럼에서 활동하는 것을 지켜보며, 그가 진짜 정보를 얻으려는 순간을 포착했다. 다크웹 포럼에서 그와 댓글로 몇 마디를 주고 받았다. 그러면서 넌지시 내가 Hanh 메세지를 통해 보낸 링크가 진실인 거 같은 암시를 주었다. `sandglass`가 정보를 얻기 위해 필요한 모든 단계를 파악하고, 그가 클릭할 수밖에 없도록 만들었다. 그가 무의식 중에 눌러야했다. 그래야 파고들 여지가 있다.
마침내, `sandglass`는 내가 준비한 링크를 클릭했다. 순간 그의 시스템에 백도어가 설치되었고, 나는 그의 컴퓨터에 접근할 수 있었다. 그의 방어벽은 철저했지만, 이제 내가 설치한 백도어는 그 모든 방어벽을 우회할 수 있었다. 간단했다.
fun_capture
이제 `sandglass`의 컴퓨터는 내 손안에 있었다. 나는 그의 모든 파일과 데이터를 분석하기 시작했다. 그의 위치, 활동 기록, 그리고 그가 사용한 모든 도구들을 파악했다. 그는 내가 예상했던 것보다 훨씬 더 조심스러웠다. 하지만 이제 그의 모든 비밀은 내 손안에 있었다. 이렇게 조심성이 많은 친구가 이렇게나 간단히 해킹을 당하다니. 참 억울해 할만하다. 옼케이 그의 파일들을 보니 역시 여러 범죄의 보물창고였다. 이 친구도 여러 juicy한 내용들을 자신들의 파일 속에 숨겨두고 있었다. 이 친구가 누른 링크에는 나름 진실된 정보들이 몇가지 있었으니, 이 친구가 눈치가 빠르다고 해도 아직 최소 1시간 30분 정도는 해킹을 알아채리는데 시간이 걸릴 것이다. 한없이 늘어지면 더 길어질 수도 있겠고. 나는 이 친구의 시스템 내에서 누구도 반박할 수 없는 이 친구의 범행들을 모아서 readme.md 파일로 목록을 정리하고 포렌식 증거들로 정리하여, 그와 가장 가까운 경찰 기관과 국제 경찰 열기구 뭐시기에 이 파일들을 이 친구의 계정으로 보냈다. 이 파일 속에는 이미 그가 했다는 증거들이 포함되어 있으므로, 아무리 바보 같은 경찰이라도 충분히 유추할 수 있을 것이다.
CATCH ME IF YOU CAN이라고? 이 영화는 범죄자가 잡히고 끝난다.
적어도 이번엔 내가 이겼다.
728x90
'호그와트' 카테고리의 다른 글
국힙원탑 쿠모린~ (1) | 2024.05.30 |
---|---|
have_you_ever_eaten_the_penguin's_meat? (0) | 2024.05.28 |
please do not use this for illegal purpose ** (0) | 2024.05.22 |
Hacking itself is THINKING OUTSIDE THE BOX (0) | 2024.05.22 |
퐁듀에다가 두부를 갈아서 찍먹 빵애에요 (0) | 2024.05.20 |