사이버 보안 관련 글을 읽어본 적이 있다면 '제로데이(zero-day)'라는 용어를 한 번쯤 접했을 것입니다. 해커들이 이미 악용하기 시작한 취약점을 지칭하는 이 단어는, 동시에 가장 치명적인 위협을 의미하기도 합니다. 제로데이가 무엇이고 어떻게 작동하는지에 대해서는 이미 여러 자료에서 잘 정리되어 있으니, 이번 글에서는 좀 더 깊은 이야기를 다뤄보겠습니다.
그런데 주제를 파고들수록, 기기에서 실행하는 모든 프로그램을 한 번쯤 의심하게 만드는 사실들을 마주하게 됩니다(물론 이것이 나쁜 습관은 아닙니다). 미군 싱크탱크인 랜드 연구소(RAND Corporation)의 연구를 비롯한 사이버 보안 연구들은, 제로데이 익스플로잇이 우리 디지털 세계가 얼마나 취약한지를 보여주는 여러 단서를 제공합니다.
제로데이 익스플로잇은 생각보다 만들기 쉽다

랜드 연구소의 연구는 개념 증명(proof-of-concept) 해킹을 경험해 본 많은 개발자들이 짐작해 온 사실을 확인해 줍니다. 취약점을 발견한 후에는, 이를 악용하는 과정을 단순화하는 도구를 만드는 데 그리 오랜 시간이 걸리지 않는다는 것입니다. 연구 보고서를 직접 인용하면 다음과 같습니다.
"악용 가능한 취약점이 발견되면, 완전히 작동하는 익스플로잇을 개발하는 데 걸리는 시간은 상대적으로 짧으며, 중간값은 22일입니다."
여기서 주의할 점은 이것이 평균치라는 사실입니다. 소프트웨어 제작의 복잡성과 악성코드가 미칠 영향의 범위에 따라, 실제로는 며칠 안에 완성되는 경우도 많습니다.
수백만 명의 최종 사용자를 위한 소프트웨어 개발과 달리, 악성코드 제작에서 편의성을 고려해야 할 대상은 제작자 자신뿐입니다. 자신이 작성한 코드이기 때문에 사용자 편의성에 신경 쓸 유인이 없는 것이죠. 일반 소비자용 소프트웨어 개발은 인터페이스 설계와 코드의 오류 방지 장치 때문에 여러 난관에 부딪히며 시간이 더 걸립니다. 반면 해커는 자신을 위해 코드를 작성하므로 별도의 안내 장치가 필요 없고, 그만큼 개발 과정이 매우 매끄럽게 진행됩니다.
놀라울 정도로 오랫동안 생존한다

자신이 만든 익스플로잇이 오랫동안 유효하게 작동한다는 사실은 해커에게 자랑거리입니다. 그런데 이것이 사실 흔한 일이라는 점은 다소 허탈할 수도 있습니다. 랜드 연구소에 따르면 취약점의 평균 수명은 6.9년이며, 조사된 사례 중 가장 짧았던 것조차 1년 반이었습니다. 해커 입장에서는 수년간 웹을 휩쓰는 익스플로잇을 만들었다고 해서 특별한 것이 아니라는 사실을 알게 되니 실망스러울 수 있지만, 피해자 입장에서는 그야말로 끔찍한 통계입니다.
평균적으로 '오래 지속되는' 취약점이 발견되기까지는 무려 9.53년이 걸립니다. 전 세계 모든 해커가 이를 찾아 악용할 수 있는 거의 10년의 시간이 열려 있는 셈입니다. 개발 과정에서 편의성이 우선순위를 차지하고 보안은 뒷전으로 밀려나는 경우가 많다는 점을 감안하면, 이 통계는 크게 놀랍지도 않습니다. 또 하나의 원인은 "모르는 것은 알 수 없다"는 오래된 격언에 있습니다. 열 명의 개발자 팀이 소프트웨어의 취약점을 발견하지 못했다면, 적극적으로 취약점을 찾고 있는 수천 명의 해커 중 누군가가 가장 고통스러운 방식으로 그 사실을 알려줄 것입니다. 그리고 패치를 적용해야 하는데, 이것 역시 골칫거리입니다. 패치 과정에서 새로운 취약점이 생길 수 있고, 해커들은 새로 구축된 방어를 빠르게 우회하는 방법을 찾아낼 수 있기 때문입니다.
이타주의는 기대하기 어렵다
피닉터(Finifter), 아카웨(Akhawe), 바그너(Wagner)가 2013년 발표한 연구에 따르면, 발견된 모든 취약점 중 실제로 선의의 신고자가 취약점 보상 프로그램(즉, "우리 소프트웨어의 해킹 방법을 알려주면 보상을 드린다")을 통해 신고한 비율은 2~2.5%에 불과했습니다. 나머지는 개발사 스스로 발견했거나, 해커가 모두에게 그 존재를 고통스러운 방식으로 '각인'시키면서 알려진 것들입니다. 이 연구는 폐쇄형 소스와 오픈소스를 구분하지 않지만, 오픈소스 소프트웨어에서는 더 많은 선의의 신고가 이루어질 것으로 추측됩니다. 소스 코드가 공개되어 있으면 취약점의 위치를 정확히 짚어 신고하기가 더 쉽기 때문입니다.
결론
이 글이 익스플로잇의 피해자가 되는 것이 얼마나 쉬운 일인지, 그리고 제로데이 익스플로잇이 생각만큼 드문 일이 아니라는 점을 이해하는 데 도움이 되기를 바랍니다. 아직 풀리지 않은 문제들이 많으며, 더 깊은 연구를 통해 이에 맞설 도구를 갖출 수 있기를 기대합니다. 핵심은 언제나 경계심을 잃지 않는 것입니다.
이번 조사 결과에 놀라셨나요? 댓글로 여러분의 생각을 들려주세요!