▲캐시 무력화(CC)공격웹 서버는 부하를 줄이기 위해 처리를 끝낸 결과 데이터를 없애지 않고 메모리에 유지하는 캐싱 기법을 사용한다. 이 기법으로 복잡한 계산이 필요한 자료 요청이 많을 경우 상당한 성능 향상이 가능하다. 하지만 좀비는 서버에게 이 캐시를 무시하고 무조건 새로 데이터를 만들어 보내라고 요구한다. 캐시 무력화 공격을 쓰면 몇 대의 좀비로도 서버를 다운 시킬 수 있다. 이 공격 기법은 디도스 장비 등이 처리할 수 있으나 공격이 방화벽을 넘어 서버까지 도달할 가능성이 있으므로 서버 설정도 바꾸어야 한다.
김인성
"선관위 정도면 LG CNS나 KT가 직접 관여할 거니까 쉽게 죽이기 힘들 거야."
엔지니어의 말에도 불구하고 해커는 굴하지 않았다.
"아닙니다. 규모가 크다고 잘하는 건 아닙니다. 어차피 다 하청업체들이 작업하는 거니까 의외로 허접할 수도 있습니다. 한 번 해보시죠."
팀장이 다시 체크를 했다.
"그러니까 캐시 무력화로 서버를 다운 시키려면 어떤 조건이 필요한 거야?"
해커가 팀장에게 대답했다.
"일단 좀비가 많아야 합니다. 한 1000대 정도면 될 겁니다. 캐시 무력화를 시도하는 좀비들이 아주 적은 요청을 조금씩 보내야 합니다. 조금이라도 의심되면 디도스 장비가 막아 버리니까요."
엔지니어가 반론을 제기했다.
"그래 봤자 같은 요청이 반복해서 들어오면 디도스 장비들이 바로 대응하니까 빠르면 일이십 분 안에 들키고 길어도 몇 시간 안에 막혀. 요즘은 서버도 캐시 무력화 요청을 무시하도록 설정하기 때문에 별 효과도 없어. 게다가 그린존에 들어가면 이것도 끝이야."
"이래도 안 된다. 저래도 안 된다. 도대체 뭐 하자는 거야? 뾰족한 방법을 강구해야지 안 된다는 이야기만 하고 있을 때야? 그럼 박원순 홈페이지도 디도스 공격 못하겠네?"
팀장이 신경질을 냈지만 엔지니어는 아랑곳하지 않았다.
"그건 다르지요. 박원순 홈페이지는 아마 싸구려 호스팅 서비스를 받고 있을 겁니다. 어쩌면 한 달에 십만 원도 안될지도 모릅니다"
해커가 거들었다.
"요즘은 한 달에 오백 원짜리도 많습니다."
"그런 사이트는 디도스가 아니라 그냥 사용자만 조금 많아도 접속이 안 됩니다. 디도스 공격까지 할 필요가 있을지 모르지만 굳이 해야 한다면 좀비 한 두 대만 있어도 바로 죽일 수 있지요. 하지만 국가 기관은 다릅니다. 방어가 철저하기 때문에 쉽게 죽이기 어려운 데다가 끝까지 추적 당할 게 틀림없고 걸리면 피해가 장난이 아니니까 웬만하면 안 했으면 하는 거지요."
팀장은 그런 문제는 전혀 신경 쓰지 않는 눈치였다.
"어쨌든 디도스 공격은 매일 발생하잖아? 죽이겠다고 달라 붙으면 선관위 서버라고 별 수 있겠어? 책임은 내가 질 테니까 무조건 죽일 수 있는 방법을 강구하란 말이야."
팀장의 강경한 요청에 엔지니어는 어쩔 수 없이 디도스 공격을 하기로 했다.
"알겠습니다. 무조건 선관위 홈페이지를 다운시키라는 거지요? 얼마 동안이나 죽일 수 있을지 모르지만 한 번 시도는 해 보겠습니다."
"어떻게 할 건데?"
"일단 디도스가 성공하려면 지금 말한 방법을 다 동원해야 합니다. UDP 공격에 신 플러딩 그리고 캐시 무력화까지 골고루 섞어야 효과가 있습니다. 사실 정상적인 피시가 하는 일을 흉내 내는 것이 디도스니까요. 최종적으로는 말씀하신 대로 사용자가 몰려서 서비스가 안 되는 것처럼 보일 겁니다."
"이 복잡한 것을 어떻게 동시에 하나?"
"우리가 하는 건 아니죠. 돈만 주면 좀비 피시에 어떤 공격을 어떻게 할지는 그들이 알아서 합니다. 그럼 의뢰를 할까요?"
엔지니어가 팀장에게 물었다. 팀장은 속으로 겁이 나긴 했지만 겉으로는 의연하게 대답했다.
"그럼 당연하지. 시간이 없으니까 빨리 시작해."
엔지니어는 중국에 있는 디도스 공격 업자에게 전화를 걸었다.
"어이, 선관위 서버에 디도스 공격을 좀 해줘야겠는데 말이야. 선거 날인 내일 아침 6시부터 두 시간 정도 접속이 안 되게 하면 돼. 가능하겠지?"
중국 업자가 전화에 대고 신경질을 부렸다.
"이렇게 급하게 일 시키는 법이 어디 있어? 그쪽 서버들 설정도 잘 모른 채 공격하면 성공하기 어려울 거야. 부하 분산 설정이 잘 되어 있으면 죽이기도 힘들 거고."
"우리도 사정이 있어서 그런 거니까 어떻게 해봐."
"두 시간 이상을 버티려면 최소한 좀비 1000대 이상은 있어야 하는데 아침에 살아있는 좀비를 그만큼 어떻게 모으냐? 나 혼자는 안 되고 여러 군데 알아 봐야 하니까 비용이 좀 들 거야. 그래도 좋아?"
옆에서 듣고 있던 팀장이 비용은 걱정 말라는 듯 고개를 끄덕였다. 엔지니어가 전화에 대고 말했다.
"알았어. 일이나 확실히 해. 들키지 않게 조심하고."
하지만 업자는 오히려 이 쪽을 의심했다.
"우린 기본적으로 IP 세탁을 하니까 절대 걸릴 일이 없어. 네 쪽이나 조심해. 언제나 함부로 입 놀리는 친구들 이 문제니깐."