이 글의 일부는 Revue SC에 게재된 바 있습니다. 수정 후 본지에 게재합니다.
도둑이 집에 침입한 경험이 있다면, 무언가 이상하다는 초기 감정을 느끼고, 결국 자신이 실제로 도둑맞고 침해당했다는 사실을 깨닫는 그 느낌을 이해할 것입니다. 이는 일반적으로 지속적인 불편함을 초래하며, 포트 녹스 수준의 보안 조치를 취해야 할 필요성은 말할 것도 없습니다.
이제 여러분의 집에 도둑이 들었다고 상상해 보세요. 도둑들이 열쇠를 만들어 들어온 것입니다. 그들은 마음대로 드나들지만 발각되지 않도록 조심합니다. 그러던 어느 날, 냉동고에 숨겨둔 보석이 사라지고 금고가 털렸으며 개인 소지품이 엉망이 된 것을 너무 늦게 깨닫게 됩니다. 이는 조직이 '제로데이' 유형의 사이버 공격을 당했을 때 마주하는 현실과 같습니다. 2020년 포네몬 연구소(Ponemon Institute)의 연구에 따르면, 성공한 데이터 유출 사건의 80%가 제로데이 공격의 결과였으며, 안타깝게도 대부분의 기업은 여전히 이 통계를 크게 개선할 준비가 되어 있지 않습니다.
제로데이 공격은 정의상 개발자가 악용될 수 있는 기존 취약점을 탐지하고 수정할 시간을 주지 않습니다. 위협 행위자가 먼저 개입했기 때문입니다. 악의적 행위가 이미 발생한 후에는 소프트웨어와 기업 평판 손상을 동시에 복구하기 위한 치열한 경쟁이 벌어집니다. 공격자는 항상 우위를 점하고 있으며, 이 우위를 최대한 축소하는 것이 매우 중요합니다.
아무도 원하지 않았던 크리스마스 선물, Log4Shell이 현재 인터넷을 뒤흔들고 있습니다. 이 치명적인 자바 취약점으로 인해 10억 대 이상의 기기가 영향을 받을 것으로 추정됩니다. 이는 사상 최악의 제로데이 공격으로 기록될 전망이며, 이제 시작에 불과합니다. 공개 전부터 악용이 시작됐다는 일부 보고가 있지만, 2016년 블랙햇 컨퍼런스 발표 자료에 따르면 이 문제는 오래전부터 알려져 있었습니다. 아이고. 더 심각한 건 악용이 극히 쉽다는 점으로, 전 세계의 모든 악성코드 작성자와 위협 행위자들이 이 취약점을 통해 수익을 노리고 있습니다.
그렇다면 소프트웨어 개발 과정에서 발견되지 않은 취약점은 물론, 음험하고 교묘한 위협으로부터 방어하기 위한 최선의 방법은 무엇일까요? 함께 살펴보겠습니다.
대규모 표적을 겨냥한 '제로데이 공격'은 드물며(비용도 많이 든다)
다크 웹에는 악용 코드에 대한 거대한 시장이 존재하며, 제로데이 취약점은 특히 고가에 거래되는 경향이 있습니다. 본 기사에서 언급된 사례만 보더라도 작성 시점에 250만 달러에 달하는 가격표가 붙어 있었습니다. 애플 iOS 취약점으로 보고된 만큼, 보안 연구원이 요구한 가격이 터무니없을 정도로 높은 것은 놀랍지 않다. 결국 이 취약점은 수백만 대의 기기를 침해하고, 수십억 건의 민감한 데이터를 수집하며, 발견 및 수정되기 전까지 최대한 오랫동안 이를 지속할 수 있는 통로가 될 수 있기 때문이다.
하지만 대체 누가 그렇게 많은 돈을 가지고 있겠는가? 일반적으로 조직화된 사이버 범죄 집단은 필요하다고 판단되면 자금을 조달한다. 특히 점점 더 보편화되고 있는 랜섬웨어 공격을 위해 말이다. 그러나 전 세계 정부와 국방부도 위협 정보 수집 목적으로 활용할 수 있는 익스플로잇의 고객층에 속합니다. 더 긍정적인 시나리오에서는 기업들 스스로 잠재적 제로데이 익스플로잇을 구매해 재앙을 완화할 수 있도록 할 수도 있습니다.
2021년에는 실시간 제로데이 취약점 발견 기록이 경신되었으며, 대규모 조직, 정부 기관 및 인프라가 잠재적 취약점을 탐지하기 위한 공격 대상이 될 위험이 가장 큽니다. 제로데이 공격으로부터 완전히 안전할 방법은 없지만, 관대하고 체계적인 버그 바운티 프로그램을 제공함으로써 어느 정도 '게임의 룰을 따를' 수 있습니다. 다크 웹 시장에서 누군가가 소프트웨어 성의 열쇠를 건네주길 기다리기보다는, 합법적인 보안 전문가들을 활용하고 윤리적 공개 및 잠재적 패치에 대해 적절한 보상을 제공하십시오.
만약 이것이 놀라운 제로데이 위협으로 판명된다면, 아마존 기프트 카드 한 장으로는 부족할 거라고 추측할 수 있습니다(그럴 만한 가치가 있겠지만).
귀사의 장비는 보안 요원들에게 장애 요인이 될 수 있습니다
보안 도구의 복잡성은 오랫동안 문제로 지적되어 왔으며, 평균적인 최고정보보안책임자(CISO)는 보안 도구 세트에서 55개에서 75개 사이의 도구를 관리하고 있습니다. 이는 세계에서 가장 복잡한 스위스 군용 칼(비유적으로)이라는 점 외에도, 포네몬 연구소(Ponemon Institute)의 연구에 따르면 53%의 기업은 자신들이 효과적으로 운영되고 있다고 확신하지 못하고 있습니다. 또 다른 연구에 따르면, 보안 책임자(RSSI) 중 단 17%만이 자사 보안 솔루션이 '완전히 효과적'이라고 생각한다고 답했습니다.
전문직의 번아웃, 수요를 충족시킬 수 있는 자격을 갖춘 보안 인력 부족, 그리고 민첩성이 요구되는 분야에서 보안 전문가들에게 데이터, 보고서, 방대한 도구 세트의 모니터링 형태로 과도한 정보 처리를 강요하는 것은 지루한 일입니다. 바로 이러한 유형의 시나리오가 그들로 하여금 중요한 경고를 놓치게 할 수 있으며, Log4j의 취약점을 제대로 평가하는 과정에서 그런 일이 발생했을 가능성이 있습니다.
예방적 보안은 개발자 주도 위협 모델링을 포함해야 합니다
코드 수준의 취약점은 종종 개발자에 의해 도입되며, 이들은 안전한 코딩 기술을 개발하기 위해 구체적인 지침과 정기적인 학습 과정이 필요합니다. 그러나 상위 수준의 보안 개발자들은 소프트웨어 제작 과정 내에서 위협 모델링을 배우고 연습할 기회를 가졌습니다.
Il n'est pas surprenant que les personnes qui connaissent le mieux leur logiciel soient les développeurs qui l'ont créé. Ils possèdent des connaissances approfondies sur la manière dont les utilisateurs interagissent avec celui-ci, sur le lieu où les fonctionnalités sont utilisées et, lorsqu'ils sont suffisamment conscients de la sécurité, sur les scénarios potentiels dans lesquels il pourrait être cassé ou exploité.
Log4Shell 취약점으로 돌아가 보면, 안타깝게도 전문가와 복잡한 도구 세트조차도 발견하지 못한 치명적인 취약점이 존재하는 상황을 목격하게 됩니다. 하지만 해당 라이브러리가 사용자 입력을 정화하도록 구성되어 있었다면 이런 사태는 아예 발생하지 않았을 것입니다. 이를 하지 않기로 한 결정은 편의성을 위한 모호한 기능으로 보이지만, 결과적으로 악용을 극도로 용이하게 만들었습니다(SQL 인젝션 수준을 생각해보세요, 분명히 좋지 않습니다). 위협 모델링이 보안에 열정적인 개발자 그룹에 의해 수행되었다면, 이러한 시나리오가 이론화되고 고려되었을 가능성이 매우 높습니다.
좋은 보안 프로그램에는 감정적 요소가 포함됩니다. 인간 개입과 미묘한 차이가 인간이 만든 문제 해결의 핵심이기 때문입니다. 위협 모델링은 효과적이기 위해 공감과 경험이 필요하며, 소프트웨어 및 애플리케이션 아키텍처 수준에서의 안전한 코딩과 구성도 마찬가지입니다. 개발자들이 이 과제를 하룻밤 사이에 해결해야 하는 것은 아니지만, 이상적으로는 이들을 보안 팀의 부담을 덜어줄 수준으로 향상시킬 수 있는 명확한 경로를 마련하는 것이 좋습니다(이는 두 팀 간의 관계를 구축하는 훌륭한 방법이기도 합니다).
0일이 n일로 이어진다
제로데이 공격에 대응하기 위한 다음 단계는 패치를 가능한 한 빨리 배포하는 것입니다. 취약한 소프트웨어의 모든 사용자가 공격자가 먼저 도달하기 전에, 그리고 반드시 가능한 한 빨리 해당 패치를 적용하기를 바라는 것이죠. Log4Shell의 경우, 수백만 대의 장치에 통합되고 소프트웨어 설계 내부에 복잡한 의존성을 생성하는 점에서 그 지속성과 영향력 측면에서 하트블리드(Heartbleed)를 능가할 수 있습니다.
사실, 이러한 교묘한 공격을 완전히 막을 방법은 존재하지 않습니다. 그러나 우리가 모든 수단을 동원해 안전하고 우수한 소프트웨어를 만들고, 이를 중대한 인프라를 다루듯 동일한 마음가짐으로 개발에 임한다면, 우리 모두 성공할 기회를 가질 수 있습니다.