위협 모델링은 애플리케이션 아키텍처에서 발생할 수 있는 취약점을 사전에 식별하는 방법입니다. 여기에는 애플리케이션을 다이어그램화하고, 보안 결함을 식별하고, 이러한 결함을 완화하는 작업이 포함됩니다.
이 글을 읽은 후에 다음을 할 수 있습니다:
관련 콘텐츠
인터넷에서 가장 인기 있는 인사이트를 한 달에 한 번 정리하는 Cloudflare의 월간 요약본 theNET를 구독하세요!
글 링크 복사
위협 모델링은 애플리케이션과 해당 환경에서 보안 허점을 찾기 위한 연습입니다. 여기에는 모든 구성 요소가 포함된 애플리케이션의 표현을 만든 다음 취약점을 식별하는 작업이 포함됩니다. 이상적으로는 개발자와 보안 엔지니어가 소프트웨어 개발 프로세스 전반에 걸쳐 애플리케이션을 실행하기 전뿐만 아니라 실행 후에도 위협 모델링을 사용하는 것이 좋습니다. 위협 모델링은 애플리케이션을 그렇지 않았을 때보다 훨씬 더 안전하게 만드는 데 도움이 될 수 있지만, 애플리케이션을 난공불락으로 만들 것으로 기대해서는 안 됩니다.
강도 영화에서 주인공은 종종 강도를 계획하는 시설의 청사진을 검토하여 건물에 들어갈 수 있는 위치, 보안 카메라가 볼 수 없는 각도 등 약점을 파악합니다. 마찬가지로 위협 모델링은 주어진 애플리케이션의 "청사진을 검토하는 것과 같습니다." 차이점은 위협 모델링은 잠재적 강도가 아닌 애플리케이션을 안전하게 유지하려는 사람이 수행한다는 것입니다.
위협 모델링을 하려면 팀에서 애플리케이션에 대한 전체 보기를 만들어야 합니다. 그런 다음 애플리케이션을 손상시키려는 사람처럼 생각해야 합니다. 공격자는 어떻게 할까요? 취약한 API 보안을 이용할 수 있을까요? 통합 시스템 라이브러리를 감염시키기 위해 공급망 공격( )을 사용하나요? 모든 공격을 예측할 수 있는 것은 아니지만 위협 모델링은 일부 공격을 발생하기 전에 차단하는 데 도움이 됩니다.
위협 모델링에는 다양한 접근 방식이 있으며, 한 가지 방법을 모든 상황에 적용할 수는 없습니다. 하지만 일반적으로 다음 네 가지 주요 단계가 포함됩니다:
위협 모델러는 위협을 식별하고 묘사하려고 시도합니다:
Terry가 풍선 사진을 표시하는 간단한 애플리케이션을 작성한다면 애플리케이션 다이어그램은 다음과 같을 수 있습니다:
이는 매우 단순화된 예시이며 실제 위협 모델링 애플리케이션 다이어그램은 훨씬 더 복잡할 수 있습니다.
이러한 방식으로 애플리케이션이 배치된 것을 보면 결함을 더 쉽게 식별할 수 있습니다. 예를 들어, 테리는 풍선 사진 데이터베이스와 웹 서버 간의 통신이 전송 계층 보안(TLS)을 사용하지 않는다는 것을 알 수 있습니다. 즉, 두 서버 모두 디지털 서명을 통해 상대방의 신원을 확인하지 않으므로 공격자가 데이터베이스 서버를 사칭하여 악성 콘텐츠를 웹 서버로 전송할 수 있습니다.
위협 모델링은 개발 프로세스 전반에 걸쳐 이루어지므로 결함을 완화하려면 애플리케이션 아키텍처에 대한 계획을 변경하거나 진행 중인 애플리케이션 빌드에 수정 사항을 배포해야 할 수 있습니다.
그가 식별한 위협을 완화하기 위해 Terry는 데이터베이스 서버와 웹 서버가 연결에 TLS를 사용하도록 재구성하거나, 더 나은 방법으로는 상호 TLS(mTLS) 를 사용하여 서로를 확인하도록 할 수 있습니다.
이 시점에서 테리는 테스트 환경에서 애플리케이션을 실행하여 1) 서버가 구성된 대로 TLS를 사용하는지, 2) 웹 서버가 데이터베이스 서버 대신 확인되지 않은 서버의 HTTP 트래픽을 허용하는지 확인할 수 있습니다. 그는 자신이 적용한 다른 완화 조치에 대해서도 유사한 점검을 수행합니다.
위협 모델링 방법론은 위협을 식별하기 위한 접근 방식입니다. 방법론은 복잡한 시스템에서 압도적일 수 있는 위협 모델링 프로세스에 구조를 제공합니다. 조직은 다양한 위협 모델링 방법론 중에서 선택하거나 자체적으로 개발할 수도 있습니다. 가장 일반적인 방법론은 다음과 같습니다:
다른 위협 모델링 방법론도 몇 가지 있습니다. "트라이크" 및 다양한 하이브리드 방법론과 같은 일부는 약어조차 없습니다.
위협 모델링은 애플리케이션의 수명 주기 전반에 걸쳐 소프트웨어 개발 전과 개발 중에 수행하도록 되어 있습니다. 위협 모델링이나 완화 조치 없이 애플리케이션을 출시하면 보안 팀에서 발견하기 전에 사용자 또는 공격자가 보안 결함을 발견할 수 있습니다. 이로 인해 데이터 유출 이 발생할 수 있으며 제로 데이 위협의 위험이 커질 수 있습니다.
그러나 위협 모델링이 시스템 내의 모든 위험을 발견하는 것은 아니므로 개발자와 조직은 릴리스 후에도 이 프로세스를 계속 진행해야 합니다. 위협 모델링 외에도 다음과 같은 방법을 사용할 수 있습니다:
Cloudflare는 또한 최신 위협으로부터 고객을 보호하기 위해 위협 인텔리전스( )와 운영 서비스인 Cloudforce One을 제공합니다. 클라우드포스 원은 글로벌 규모의 공격자를 차단한 경험이 풍부한 세계적 수준의 위협 연구팀이 이끌고 있습니다. 여기에서 클라우드포스 원에 대해 자세히 알아보기.