저는 이전에도 왜 애플리케이션 보안이 스택인지 자세히 설명한 바 있습니다. 이를 다시 말씀드리는 이유는 현대의 애플리케이션은 결코 단독으로 배포되지 않는다는 사실을 때때로 상기할 필요가 있기 때문입니다. 실제로 그렇습니다.

모든 최신 애플리케이션은 특정 플랫폼에 배포됩니다. Apache나 IIS일 수도 있고, Oracle 또는 IBM 애플리케이션 서버일 수도 있습니다. Express를 사용하는 node.js나 필요한 라이브러리를 모두 갖춘 Python일 수도 있습니다. 네트워킹을 운영 체제와 가상화/컨테이너에 의존하는 것처럼, 애플리케이션은 TCP 및 HTTP와 같은 기능을 처리하기 위해 플랫폼과 라이브러리에 의존합니다.
또한 개발자는 필요한 기능을 구현하기 위해 라이브러리를 사용합니다. 이미 있는 기능을 처음부터 다시 만드는 것은 시간 낭비이므로, JSON 파서, 파일 관리, 인증 및 권한 부여, 데이터베이스 지원을 위해 오픈 소스와 기타 수단을 활용합니다. UI 레이아웃과 관리도 마찬가지입니다. 오늘날 대부분의 개발자는 이러한 기능을 라이브러리에 맡김으로써 실질적인 가치를 창출하는 비즈니스 로직과 서비스에 집중할 수 있습니다.
2017년 Contrast Labs의 애플리케이션 조사에 따르면, “서드 파티 소프트웨어 라이브러리가 애플리케이션 코드의 79%를 차지”하는 것으로 나타났습니다. Java의 경우 평균적으로 107개의 서로 다른 라이브러리를 사용했습니다. .NET은 어떨까요? 19개였습니다. 참고로 저는 node.js에서 적어도 5개의 서로 다른 라이브러리를 사용하고 있습니다.
하지만 정말 주목해야 할 점은 이러한 구성 비율과 관련된 보안 실태에 대해 그들이 밝혀낸 사실입니다.

앱의 79%가 라이브러리로 구성되어 있지만, 알려진 취약점(CVE) 중 라이브러리가 차지하는 비율은 2%에 불과합니다. 나머지는 거의 모두 커스텀 코드에서 발생하며, 전체 취약점의 97.3%를 차지합니다.
라이브러리와 취약점 간의 이처럼 불균형한 소싱 보안 위험은 SANS 설문조사에서 다음과 같은 결과가 나온 이유를 설명해 줄 수 있습니다. “응답자의 23%가 타사 소프트웨어 제품 및 서비스(COTS, 클라우드 기반 서비스, 오픈 소스 소프트웨어)에 크게 의존하고 있음에도 불구하고, 타사 솔루션의 보안을 보장하는 데 충분한 책임을 다하지 않고 있습니다. 보안 프로그램에 COTS를 포함하는 비율은 23%에 불과합니다.”
흠. 그렇다면 그것이 Kenna Security가 보고한 취약점 해결률이 저조한 이유를 설명해 줄지도 모릅니다. 지난 2015년, Kenna Security는 연구 결과를 발표했습니다. 이 연구는 5만 개 조직을 표본으로 삼아 2억 5천만 건의 취약점과 10억 건이 넘는(무려 10억 건이 넘는) 침해 사건을 분석했으며, 취약점 해결과 관련해 매우 흥미로운 두 가지 사실을 발견했습니다:
- 기업이 취약점을 해결하는 데는 평균 100~120일이 걸립니다.
- 40~60일이 지나면 CVE가 악용될 확률이 90%를 넘습니다.
- 취약점이 악용될 가능성이 높아지는 시점부터 해당 취약점을 해결하기까지 약 60일의 격차가 있습니다.
다시 말해, 대부분의 조직은 해당 2%의 취약점 중 하나로 인해 침해당하는 것을 방지할 만큼 신속하게 대응하지 못하고 있습니다. 아마도 이러한 취약점이 조직의 보안 프로그램에 포함되지 않은 라이브러리에 존재하기 때문일 수 있습니다.
그 이유가 무엇이든 간에, 이를 반드시 최우선 과제로 삼아야 합니다. 그 이유를 설명해 보겠습니다.
과거에는 공격자가 다음과 같은 작업을 직접 수행해야 했습니다:
- 취약점에 대해 알아내기
- 공격 대상 사이트 찾기
- 익스플로잇 실행 시도
이 작업은 수동으로 진행해야 했고 시간도 많이 걸렸습니다. 세간의 이목을 끄는 주요 표적이 아닌 이상, 누구도 굳이 당신에게 시간을 낭비하려 하지 않았습니다.
오늘날 취약점은 인터넷의 속도(궁금하셨다면 빛의 속도입니다. 광 백본망을 사용하니까요)로 공유되고, 공격 대상 탐색은 자동화되어 있습니다. 스크립트와 봇은 사람보다 훨씬 빠르고 저렴하게 침해할 사이트를 찾아내 표적으로 지정할 수 있습니다. 이는 보안이 취약한 IoT 기기들로 데스 스타 규모의 봇넷이 구축되는 것과 같은 원리입니다. 자동화는 좋은 사람들의 생산성만 높여 주는 것이 아닙니다.
이러한 공격은 비표적형 공격입니다. 즉, 사전에 계획된 것이 아니라 기회를 틈타 이루어지는 공격입니다. 가치 있거나 흥미로운 데이터는 없을지 몰라도, 여러분에게는 리소스가 있습니다. 그리고 그 리소스는 다른 피해자를 찾아내고 또 다른 공격을 감행하는 데 사용될 수 있습니다. 뭐, 결국 어떻게 끝날지는 아시겠죠.
비표적 공격은 CVE가 공개된 후 특히 흔하게 발생합니다. 여러분의 맞춤형 코드는 고유하기 때문입니다. 그 안에 취약점이 많더라도 이를 찾아내려면 시간과 노력이 필요합니다. 반면 널리 사용되는 라이브러리나 플랫폼에 존재하는 CVE를 악용하는 것은 식은 죽 먹기입니다. 투자 대비 수익이 매우, 매우, 매우 높기 때문에 놓치기에는 너무 좋은 기회입니다. 2015년 Verizon DBIR에서는 “공격의 70%가 패치가 제공된 알려진 취약점을 악용했다”고 밝혔습니다.
그렇기 때문에 실제 소프트웨어 업데이트를 적용하거나 웹 애플리케이션 방화벽을 사용해 가상으로 패치하는 방식으로, 애플리케이션을 구성하는 라이브러리의 79% 중 어느 하나에서라도 새로운 CVE가 공개되면 패치를 최우선으로 처리해야 합니다. 해당 CVE가 플랫폼(Apache Killer를 떠올려 보세요)과 관련된 경우에는 모든 일을 제쳐 두고 처리해야 할 만큼 최우선 순위로 삼아야 합니다. 웹 서버와 애플리케이션 서버의 핑거프린팅은 라이브러리의 취약점을 스캔하는 것보다 훨씬 더 쉽기 때문입니다.
사실 공격 대상으로 삼을 만큼 유명하지 않더라도 여전히 위험에 노출되어 있습니다. 유명 조직과 동일한 스택을 사용하고 있을 가능성이 높으며, 이는 무차별 공격에 걸릴 가능성이 크다는 뜻입니다. 그렇지 않을 거라고 생각한다면, 제가 CVE 데이터베이스로 가서 node.js와 관련해 공개된 모든 CVE를 찾을 수 있다는 점을 생각해 보세요. 그런 다음 builtwith.com으로 이동해 node.js 프레임워크인 Express로 구축된 웹사이트를 검색합니다. 그러면 이 사이트가 “Express를 사용하는 현재 운영 중인 웹사이트 230,116개와 과거에 Express를 사용했던 추가 사이트 263,872개”를 파악하고 있을 뿐만 아니라, 그 목록을 다운로드할 수 있는 링크까지 편리하게 제공한다는 사실을 알게 됩니다.
웹 앱계의 shodan.io라고 할 정도는 아니지만, 관련 정보를 조합해 성공적인 익스플로잇을 만들어 내는 것도 그리 어렵지 않습니다.
그러니 규모가 “충분히 크지 않다”는 이유로 라이브러리나 웹 플랫폼의 CVE를 무시해도 된다고 생각하는 실수를 범하지 마세요.
그러다 트위터 실시간 트렌드에 오르게 됩니다. 물론 좋은 의미로는 아니죠.
안전을 최우선으로 하세요. 앱 전체 스택에 영향을 미치는 CVE에 대한 대응을 우선시하세요. 최상위 계층부터 최하위 계층까지 말입니다.
작성자 소개

Lori MacVittie는 F5 CTO 오피스의 수석 엔지니어이자 최고 에반젤리스트로, 애플리케이션 딜리버리, 자동화 전략 및 인프라 분야에서 깊이 있는 전문성을 보유하고 있습니다. AI 에이전트를 위한 가드레일을 정의하고, 취약한 멀티클라우드 아키텍처를 분석하며, 확장 가능한 시스템의 한계를 탐구하는 등 복잡한 문제를 명확하게 풀어내는 것으로 잘 알려져 있습니다. 애플리케이션 개발, IT 아키텍처, 네트워크 및 시스템 운영 전반에 걸쳐 30년 이상의 업계 경험을 쌓았습니다. F5에 합류하기 전에는 수상 경력이 있는 기술 편집자로 활동했습니다. MacVittie는 컴퓨터 과학 석사 학위를 보유하고 있으며, 보안, 클라우드 및 엔터프라이즈 아키텍처 분야를 아우르는 다수의 저서를 집필한 작가입니다. 또한 보드게임과 비디오 게임을 열정적으로 즐기며, 치즈에 대해서는 거리낌 없이 확고한 견해를 갖고 있습니다.
Lori Mac Vittie의 다른 블로그 게시물관련 블로그 게시물
성평등을 향한 여정: 사이버 보안 분야에서 성공적인 커리어를 개척하는 방법에 관한 Jenn Gile과의 Q&A
F5의 ‘성평등을 향한 여정’ 시리즈 네 번째 Q&A에서는 Rachael Shah와 NGINX 제품 마케팅 책임자 Jenn Gile이 사이버 보안 직종에 대한 오해를 바로잡고, 사이버 보안 분야의 성별 격차를 해소하기 위한 조언과 그 이점에 대해 이야기합니다.
TLS 검사에서 피터 파커 원칙 다루기
“큰 힘에는 큰 책임이 따른다.” 볼테르와 처칠도 이와 비슷한 말을 남겼지만, 이 문구는 스파이더맨 코믹스에서 벤 삼촌의 말로 가장 널리 알려져 있습니다. 물론 이 문구가 문화적으로 널리 통용되는 이유 중 하나는 TLS 검사를 비롯해 수많은 상황과 주제에 적용할 수 있기 때문입니다.
Venafi와 F5를 통한 머신 아이덴티티 보호
‘머신 아이덴티티’란 간단히 말해 자동화된 프로세스가 자신의 신원을 식별할 수 있도록 하고, 다른 자동화 시스템과 프로세스가 관련 리소스에 적절한 수준의 접근 권한을 부여하도록 하는 방법을 의미합니다. 이 개념 자체는 새로운 것이 아닙니다. 비교적 새로운 점은 이를 구현해야 하는 규모입니다.
마이너와 미니언: 데이터 유출만이 비용을 초래하는 것은 아닙니다
물론 데이터 유출은 더 큰 비용을 초래할 수 있고(적어도 지금은), 실패 사실을 세상에 드러낼 수밖에 없게 합니다(통지 의무가 있으니까요). 하지만 보안을 단순히 데이터 노출 문제로만 봐서는 안 됩니다. 요즘은 데이터가...
내 클라우드에서 나가!
F5의 Jay Kelley가 전하는 최신 소식에는 Microsoft Office 365용 신규 ID 및 액세스 솔루션을 배포할 때 고려해야 할 사항이 정리되어 있습니다.
Shift(웹 앱) 보안 레터
웹 앱 보안을 개발 초기 단계로 앞당기세요. F5 블로그에서 DevOps 파이프라인 초기에 보안을 통합하여 취약점을 예방하고 시간을 절약하는 방법을 알아보세요.