오늘은 웹 애플리케이션 보안에 활용되는 정적 분석 도구와 동적 분석 도구에 대해 알아보려고 합니다!
정적 분석과 동적 분석은 모두 애플리케이션을 대상으로 어떠한 취약점이 존재하고 이를 대처하기 위한 기본적인 근거자료를 수집하는 분석 방법입니다. 다만, 애플리케이션에 접근하는 방법에 있어서 차이가 있죠.
결론적으로 말씀드리면, SAST와 같은 정적 분석 도구는 ‘소프트웨어가 실행되기 전 소스코드의 보안 취약점과 품질 결함을 검출’하는 반면, DAST와 같은 동적 분석 도구는 ‘실행중인 웹 애플리케이션의 URL 정보를 기반으로’ 보안 약점을 알아냅니다.

출처: idawoo
집을 짓는다고 생각해볼까요? 집을 건축하려면 철근, 배관, 콘크리트 등 여러 재료들이 필요합니다. 정적 분석은 집을 건축할 때 사용되는 각각의 재료들이 제대로 만들어지고 사용되었는지 확인하는 것과 같습니다. 예를 들어 철근이 들어가야 할 자리에 콘크리트만 있다면 외부 충격에 취약할 수밖에 없겠죠. 즉, “소스코드”를 대상으로 접근하기 때문에 소프트웨어가 완성되지 않더라도 초기 개발단계부터 적용할 수 있는 것이 바로 정적 분석 도구입니다.

출처: 123RF
반면, 동적 분석은 사람들이 실제로 집에 살면서 발생할 수 있는 문제를 찾는 것에 가깝습니다. 수도꼭지에서 물이 새는지, 문이 제대로 잠기는지 같은 문제점들은 철근, 배관 같은 재료만 들여다봐서는 알 수 없겠죠. 따라서, 동적 분석은 공격자가 실제로 운영 중인 애플리케이션을 공격하는 환경을 인위적으로 조성하여 공격이 통하는지 확인하는 과정입니다. 이러한 점 때문에 동적분석은 ‘웹해킹분석’ 또는 ‘모의해킹분석’으로 불리기도 합니다.
그렇다면 어떤 것이 더 정확한 분석 도구일까요? 정적 분석 도구(SAST)와 동적 분석 도구(DAST)는 아래 그림과 같이 탐지할 수 있는 영역이 중복되기도 하지만 서로 다른 부분도 많습니다. 특히 DAST는 운영 중인 단계에서 입출력 상태값을 기반으로 취약점을 확인하기 때문에 SAST에서는 잡지 못하는 취약점을 검출할 수 있습니다.
따라서, 최적의 취약점 관리를 위해서는 두 가지 도구를 모두 사용하는 것을 권장하며, 스패로우와 같은 전문 기업과 함께 비용, 자사 애플리케이션의 특성, 필요한 보안 수준 등 여러 요소들을 종합적으로 고려하여 판단해야 합니다.
스패로우는 각 조직의 환경과 요구사항에 적합한 형태로 SAST, DAST, SCA 등 다양한 도구를 활용할 수 있는 최적의 솔루션을 제공하고 있습니다. 안전한 자사 홈페이지를 위해 이젠 국내 1위 애플리케이션 보안 전문 기업, 스패로우에 문의하세요!

