동적애플리케이션보안테스트(DAST) (Dynamic Application Security Testing)
한 줄 정의: 실제로 실행 중인 애플리케이션에 다양한 입력을 보내며 외부에서 관찰되는 반응을 통해 보안 취약점을 찾아내는 검사 기법입니다.
쉽게 풀면
동적애플리케이션보안테스트는 실제로 완성된 요리를 시식하며 문제가 있는지 확인하는 것과 비슷합니다. 프로그램의 내부 코드를 들여다보지 않고, 실제로 프로그램을 작동시킨 상태에서 다양한 입력값을 넣어보고 어떤 반응이 나오는지를 관찰하여 취약점을 찾아냅니다. 이는 실제 공격자가 시스템을 공격하는 방식과 유사하게 외부에서 접근하는 방식으로 이루어집니다.
왜 중요한가
동적애플리케이션보안테스트는 실제 운영 환경과 유사한 조건에서 취약점을 발견할 수 있어 정적분석이 놓치기 쉬운 실행 시점의 문제를 보완하는 역할을 하며, 정보보안학 연구에서 자동화된 침투테스트 기법을 다룰 때 핵심적으로 등장합니다.
논문에서는 이렇게 쓰입니다
"자동화된 동적애플리케이션보안테스트(DAST) 도구를 활용해 로그인 기능이 포함된 웹 애플리케이션의 취약점 탐지율을 측정하였다."
동적분석 도구의 실제 탐지 성능을 측정한 연구 사례입니다.
"정적분석과 동적분석 결과를 결합했을 때 단독으로 사용했을 때보다 취약점 탐지 범위가 넓어짐을 확인하였다."
정적분석과 동적분석의 상호 보완적 효과를 다룬 연구 사례입니다.
조금 더 깊게 보면
동적애플리케이션보안테스트는 흔히 다양한 입력값을 자동으로 생성해 애플리케이션에 주입하는 방식으로 이루어지며, 로그인이 필요한 기능이나 복잡한 상호작용이 있는 페이지는 사전 설정이 필요한 경우가 많습니다. 소스코드에 접근하지 않고도 수행할 수 있어 외부 공격자의 관점을 반영한 평가가 가능하다는 특징이 있습니다.
주의할 점
동적분석은 실제로 실행되는 경로만 검사할 수 있기 때문에, 특정 조건에서만 발생하는 취약점은 테스트 과정에서 발견되지 않을 수 있습니다.