웹 애플리케이션 및 API 보안을 테스트하기 위한 9가지 최고의 DAST 스캐너
동적 애플리케이션 보안 테스트(DAST) 스캐너의 중요성 및 작동 원리
웹 애플리케이션, API, 그리고 클라우드 기반 시스템의 보안과 안정성은 현대 사회에서 매우 중요한 요소입니다. 이러한 환경을 안전하게 유지하는 데 핵심적인 역할을 하는 것이 바로 동적 애플리케이션 보안 테스트(DAST) 스캐너입니다. DAST 스캐너는 애플리케이션을 면밀히 검사하여 숨겨진 취약점을 찾아내고, 발견된 취약점에 대한 수정 방법을 상세히 기술한 보고서를 제공합니다.
또한, 주요 DAST 도구들은 PCI-DSS와 같은 규정 준수 기준에 따른 스캔을 실행하여, 규정 위반 가능성이 있는 부분을 명확히 파악할 수 있도록 돕습니다.
그렇다면 DAST란 정확히 무엇이며, 어떤 방식으로 작동할까요? 또한, 현재 시장에서 가장 우수한 DAST 도구는 무엇일까요? 함께 자세히 알아보도록 하겠습니다.
DAST(동적 애플리케이션 보안 테스트)의 정의와 작동 방식
동적 애플리케이션 보안 테스트(DAST)는 실행 중인 애플리케이션을 대상으로 취약점을 식별하는 데 사용되는 애플리케이션 보안 테스트 기법입니다.
DAST는 애플리케이션의 소스 코드에 직접 접근하지 않습니다. 대신, 모의 공격을 통해 보안 취약점을 발견하는 방식을 채택합니다.
이 접근 방식은 마치 해커가 실제 공격을 시도하는 것처럼 애플리케이션을 외부에서 평가합니다. 이러한 모의 공격에 대한 애플리케이션의 반응을 분석함으로써, 해당 애플리케이션이 다양한 실제 웹 공격에 얼마나 취약한지 판단할 수 있습니다.
DAST 도구는 웹 애플리케이션에 대한 자동화된 침투 테스트를 수행하여, 애플리케이션의 보안 취약점을 찾아내는 역할을 합니다.
예를 들어, DAST 도구는 마치 건물의 보안 요원처럼 작동합니다. 이 보안 요원은 단순히 감시하는 것에서 나아가, 건물에 침입하기 위해 문이나 창문의 잠금장치를 실제로 부수려고 시도합니다.
이러한 평가를 마친 후, 보안 요원은 침입 경로를 상세히 기록하여, 해당 취약점을 개선하고 건물의 보안을 더욱 강화할 수 있도록 조언합니다.
일반적으로 DAST 스캐너는 다음 과정을 거쳐 작동합니다.
애플리케이션 스캔
DAST 도구는 실행 중인 애플리케이션과 상호 작용하여 취약점 검색을 수행합니다. 이 과정에서 애플리케이션의 보안 상태를 전반적으로 평가합니다. 평가 과정에는 애플리케이션, 입력 양식, API 엔드포인트 등 잠재적인 입력 필드를 찾아내는 작업이 포함됩니다.
모의 공격 실행
DAST 도구는 SQL 인젝션, XSS(교차 사이트 스크립팅), 기타 다양한 웹 애플리케이션 공격과 같은 일반적인 위협에 대한 애플리케이션의 보안 상태를 테스트하기 위해 모의 공격을 수행합니다.
취약점 식별
모의 공격을 실행한 후, DAST 도구는 애플리케이션의 반응을 분석하여 공격 중에 보안 취약점이 노출되었는지 확인합니다. 심각한 취약점이 발견되면, 해당 취약점의 심각도와 함께 보고서에 기록됩니다.
보고서 제공
DAST 도구는 확인된 취약점과 함께 개선 권장 사항을 포함한 상세 보고서를 생성합니다. 보안 전문가들은 이 보고서를 바탕으로 보안 문제를 해결하고 애플리케이션의 보안 수준을 향상시킬 수 있습니다.
우수한 DAST 도구는 자동화된 침투 테스트와 수동 테스트 기술을 모두 활용하여 웹 애플리케이션의 보안 상태를 철저히 평가하고 잠재적인 취약점을 찾아냅니다.
DAST 스캐너를 사용했을 때 얻을 수 있는 이점
DAST 솔루션을 도입하여 웹 애플리케이션의 보안을 강화할 때 얻을 수 있는 주요 이점은 다음과 같습니다.
- 악용될 경우 웹 애플리케이션 및 조직에 심각한 피해를 줄 수 있는 다양한 런타임 취약점을 식별합니다.
- DAST 도구는 실제 해커의 역할을 수행하므로, 다른 보안 테스트 방법으로는 쉽게 발견하기 어려운 취약점이나 보안 허점을 찾아낼 수 있습니다.
- 보안 전문가와 개발 팀이 애플리케이션의 소스 코드 외부 및 제3자 인터페이스에서 발생할 수 있는 취약점을 발견하는 데 도움을 줍니다.
- DAST는 특정 프로그래밍 언어에 종속되지 않는 유일한 보안 테스트 방법이므로, 사용된 프로그래밍 언어와 관계없이 모든 웹 애플리케이션을 테스트할 수 있습니다.
- 주요 데이터 보안 규정을 준수하는 데 필요한 규정 준수 관련 스캔을 수행할 수 있습니다.
DAST 스캐너는 입력/출력 유효성 검사 문제, 구성 오류, 인증 실패 등 다양한 런타임 문제 및 보안 취약점을 발견할 수 있습니다.
또한, DAST는 SAST와 같은 다른 웹 애플리케이션 보안 테스트 방법과 함께 사용하면 더욱 효과적입니다.
DAST와 SAST의 차이점
정적 애플리케이션 보안 테스트(SAST)는 보안 전문가가 웹 애플리케이션 내부에서 알려진 취약점을 테스트하는 화이트박스 앱 보안 테스트 방법입니다.
소프트웨어 개발 수명 주기(SDLC) 초기에 적용되는 SAST는 애플리케이션의 소스 코드, 문서 (요구 사항, 설계, 사양 등)를 포함한 다양한 정적 입력값을 평가합니다.
SAST 도구는 애플리케이션 소스 코드에 대한 완전한 접근 권한을 가지므로 취약점이 존재하는 정확한 위치를 식별할 수 있습니다. 또한, 사용자가 작성했으나 아직 애플리케이션에 배포되지 않은 코드에서 취약점을 발견할 수도 있습니다.
반면, DAST 도구는 실행 중인 애플리케이션에 대해 외부에서 보안 테스트를 수행하여, 애플리케이션의 취약점 또는 보안 허점을 찾습니다. DAST를 수행하기 위해 애플리케이션의 소스 코드에 접근할 필요는 없습니다.
다음은 DAST와 SAST의 주요 차이점입니다.
- DAST는 모의 공격을 통해 외부에서 실행 중인 애플리케이션을 테스트하는 반면, SAST는 소스 코드, 구성 파일 및 기타 정적 요소를 평가하여 소프트웨어 개발 수명 주기의 초기 단계에서 애플리케이션을 테스트합니다.
- DAST는 해커가 악용할 수 있는 런타임 문제 또는 잘못된 구성과 같은 애플리케이션의 약점을 찾기 위해 사용자, API 엔드포인트 및 기타 시스템과의 상호 작용과 같은 애플리케이션의 프론트엔드에 집중합니다. 반면, SAST는 애플리케이션의 소스 코드를 분석하여 코드베이스 내에서 취약점을 식별합니다.
- DAST는 소프트웨어 개발 수명 주기의 후반 단계에서 취약점과 보안 문제를 발견하기 때문에 이러한 취약점을 수정하는 데 더 많은 비용이 들 수 있습니다. SAST가 발견한 취약점은 일반적으로 수정 비용이 적게 듭니다.
- DAST는 SAST에 비해 오탐이 적은 경향이 있습니다.
결론적으로, 애플리케이션 보안 테스트를 위한 SAST와 DAST 중 더 나은 방법은 둘 다 사용하는 것입니다. 두 가지 앱 보안 테스트 방법론을 결합하면 웹 애플리케이션 보안에 대한 종합적인 평가가 가능합니다.
시중에는 다양한 DAST 스캐너가 출시되어 있어, 최적의 제품을 선택하는 것이 쉽지 않을 수 있습니다. 이에, 여러분의 시간을 절약하기 위해 가장 우수한 DAST 솔루션 목록을 조사하고 준비했습니다.
Probely
Probely는 웹 애플리케이션 및 API 보안 테스트를 자동화하고 확장하는 데 탁월한 DAST 스캐너입니다. 이 취약점 스캐너는 약 3만 개의 취약점을 식별하며, 해당 취약점을 수정하기 위한 자세한 지침이 포함된 보고서를 제공합니다.
헤드리스 크롬 기반 스파이더를 사용하여, 웹 애플리케이션을 마치 사람이 사용하는 것처럼 탐색합니다. 스파이더는 애플리케이션의 모든 부분을 탐색하면서 링크를 클릭하고 양식을 정확하게 작성하여 업계 최고 수준의 커버리지를 제공합니다.
주요 특징:
- 낮은 오탐률(2022년 0.06%)
- 사용자 정의 스캔, 예약 스캔, 방화벽 내 스캔 등 다양한 스캔 옵션 제공
- SSO 및 OpenID Connect를 사용하는 애플리케이션 스캔을 위한 인증 스캔 기능
- 애드온 또는 완전한 기능을 갖춘 API를 사용한 애플리케이션과의 용이한 통합
자세한 요구 사항 보고서를 생성하고 해당 보고서를 규정 준수 증거로 사용하여 웹 보안 규정 준수 요구 사항을 충족하는 데 활용할 수 있습니다. Probely는 CI/CD 도구, 문제 추적기, 메시징 앱과 간편하게 통합할 수 있습니다.
Invicti
Invicti는 고유한 DAST와 IAST (Interactive Application Security Testing) 접근 방식을 결합하여, 다른 DAST 도구가 감지하기 어려웠던 취약점과 보안 허점을 찾아냅니다. 서명 기반 및 동작 기반 테스트를 결합하여, 취약점이나 보안 허점을 놓치지 않도록 합니다.
주요 특징:
- 웹 사이트, 웹 애플리케이션, API에 대한 취약점 스캔 기능
- 모든 웹 사이트, 웹 애플리케이션, API에 대한 완전하고 업데이트된 인벤토리 제공
- 스크립트가 많은 웹 사이트 스캔을 위한 고급 스캐닝 기술
- 비밀번호 및 MFA로 보호된 영역 스캔 기능
- 클라우드, 온프레미스 등 다양한 환경에 대한 배포 지원
- SQL 인젝션, 서버 측 요청 위조, XSS, 대역 외 취약점 등 광범위한 취약점 커버리지
- CI/CD, 문제 추적기, 협업 도구 등 50가지 이상의 도구와 통합 가능
Invicti는 모든 오픈 소스 구성 요소를 식별하고, 어떤 구성 요소에 취약점이 있는지 파악합니다. 또한, 각 애플리케이션의 보안 상태를 시간 경과에 따라 추적할 수 있도록 지원합니다.
Indusface WAS
Indusface WAS는 DAST, 악성코드 검사, 침투 테스트 기능을 제공하는 종합적인 도구입니다.
주요 특징:
- SANS25, OWASP Top 10, WASC 분류 위협 및 제로데이 위협을 포함한 광범위한 취약점 커버리지
- 모바일, 웹, API 보호 기능 제공
- 오탐 제로 보장
- 공개 웹 자산(도메인, 하위 도메인, IP, 모바일 앱, 데이터 센터, 사이트 유형) 인벤토리 생성 기능
- 웹사이트 변조 및 악성코드 감염 탐지
- 클릭 한 번으로 식별된 자산에 대한 취약성 평가 및 침투 테스트(VAPT) 실행
자동화된 취약점 스캐너는 싱글 페이지 애플리케이션(SPA), 스크립트가 많은 웹 사이트, 암호로 보호된 영역, 복잡한 경로, 다단계 양식, 연결되지 않은 페이지 등 모든 영역을 검사합니다.
자동화된 스캐너만으로는 모든 취약점을 탐지할 수 없기 때문에, Indusface WAS는 보안 전문가가 비즈니스 로직 취약점을 식별할 수 있는 수동 침투 테스트 기능도 함께 제공합니다.
Rapid7 InsightAppSec
InsightAppSec는 Rapid7에서 제공하는 또 다른 강력한 DAST 도구로, 웹 애플리케이션을 자동으로 평가하여 오탐을 줄이고 놓치는 보안 허점을 최소화합니다. InsightAppSec을 사용하면 크고 작은 애플리케이션 포트폴리오의 보안 평가를 손쉽게 관리할 수 있습니다.
주요 특징:
- 95가지 이상의 공격 유형으로부터 보호
- 보다 쉽게 해결할 수 있는 공격 재현 기능
- 실행 가능한 보고서를 HTML 형식으로 내보내기 기능
- HIPAA 또는 PCI-DSS와 같은 여러 규정 준수에 맞춰 보고서 맞춤 설정 옵션
- 클라우드 및 온프레미스 스캔 엔진 지원
- 스캔 예약 및 스캔 블랙아웃 기간 설정 옵션
- 잘못된 구성으로 인한 취약점 스캔 기능
- 추가 비용 없이 여러 스캔을 동시에 실행하는 옵션
- 개발 워크플로와의 쉬운 통합
InsightAppSec의 범용 변환기는 애플리케이션 적용 범위를 확장하며, 애플리케이션 환경이 직면한 문제와 위험에 대한 맞춤형 검사를 제공합니다.
InsightAppSec의 장점 중 하나는 빠른 속도로 협업할 수 있다는 것입니다. 풍부한 보고 기능과 다양한 통합을 통해 규정 준수 및 개발 관련자에게 더 빠르게 정보를 전달할 수 있습니다.
StackHawk
유연하면서도 강력한 DAST 도구를 찾고 있다면, StackHawk가 좋은 선택이 될 수 있습니다. 이 도구는 언어에 구애받지 않으며 모든 플랫폼에서 실행 가능합니다.
StackHawk는 런타임 및 프로덕션 전 애플리케이션 보안 테스트에 중점을 두도록 설계되었습니다. 이를 통해 팀은 CI/CD 워크플로의 일부로 애플리케이션을 적극적으로 테스트할 수 있습니다.
주요 특징:
- REST, SOAP, GraphQL 및 gRPC API를 포함한 모든 API 테스트 기능
- 웹 애플리케이션의 특정 시나리오를 다루는 사용자 지정 테스트 스크립트
- 중요한 문제를 쉽게 식별할 수 있도록 스캔 결과 우선순위 지정
- StackHawk의 cURL 생성기로 결과 재현 및 검증
- 취약점을 빠르게 찾을 수 있도록 최적화된 스캐너
- 모든 CI/CD 환경에서 실행 가능
- 기술별 API 스캔 구성
- 사용자 친화적인 웹 애플리케이션 인터페이스
StackHawk는 자세한 앱 요청 및 응답 데이터, 개발자 친화적인 설명, 문제를 쉽고 효율적으로 조사할 수 있는 리소스를 제공합니다. Free, Pro, Enterprise 및 Custom의 네 가지 패키지를 제공합니다.
SOOS DAST
SOOS DAST는 웹 애플리케이션의 취약점과 보안 허점을 찾아내는 데 사용되는 여러 차례 수상 경력이 있는 동적 애플리케이션 보안 테스트 도구입니다. 컨테이너화된 솔루션으로, Docker를 사용하여 사용자 환경에서 실행됩니다. SOOS SCA와 공유되는 통합 웹 대시보드를 통해 보안 문제를 관리할 수 있습니다.
주요 특징:
- OpenAPI, SOAP 또는 GraphQL로 정의된 웹 앱 및 API 스캔
- 무제한 DAST 도메인 스캔
- Azure DevOps, AWS CodeBuild, GitHub Actions, CircleCI 등 CI/CD 통합
- OSS 취약점 검사 및 라이선스 관리를 위한 SOOS SCA
- SQL 삽입, 누락된 보안 헤더, 잘못된 보안 구성, 사이트 간 스크립팅 등 광범위한 스캔 범위
- GitHub의 보안 패널에 문제 푸시 기능
- 오픈 소스 라이선스 관리
SOOS DAST는 업계 표준 오픈 소스 ZAP 스캐너를 활용하여 애플리케이션에 광범위한 보안 범위를 제공하는 추가 기능을 제공합니다.
Veracode 동적 분석
Veracode 동적 분석은 보안 및 개발팀이 웹 앱과 API에서 런타임 취약점을 찾고 수정할 수 있도록 지원하는 단일 플랫폼입니다.
주요 특징:
- 감사 및 스캔 기능을 지속적으로 개선하는 클라우드 네이티브 엔진
- 사용자 지정 가능한 스캔 기능 (간편하게 설정 가능한 매개변수 사용)을 통해 시간 절약 및 오류 감소
- 방화벽 내부의 애플리케이션 및 API 스캐닝
- 대중적인 발권 시스템과 연동 가능한 자세한 보고서
- 브라우저 제약 및 인증 지원과 같은 유연한 스캔 파라미터 설정
Veracode DAST의 오탐율은 5% 미만입니다.
AppCheck
AppCheck는 단일 솔루션에서 외부 IT 시스템의 각 계층의 취약성을 평가할 수 있는 포괄적인 보안 테스트 플랫폼입니다. 애플리케이션 및 네트워크 대상의 모든 측면을 테스트할 수 있습니다.
주요 특징:
- XSS, 인젝션, 제로데이 공격 및 100,000개 이상의 알려진 보안 결함을 포함한 전체 OWASP 취약점 커버리지
- 애드혹 테스트, 예약 스캔 및 지속적인 보안 테스트를 위한 n-심도 자동화 테스트
- MS Azure DevOps, Jenkins 및 Team City를 포함한 빌드 서버를 통해 자동화된 취약점 테스트 제공 기능
- WSDL, Swagger 및 Graph QL 엔드포인트를 포함한 API에 대한 철저한 스캔
- 사용 편의성: 클릭 한 번으로 취약성 및 수정 단계에 대한 자세한 설명이 포함된 전문적인 침투 테스트 스타일 보고서 생성
AppCheck를 사용하면 JIRA와 같은 사내 발권 시스템을 통해 취약성 관리를 수행할 수도 있습니다.
Checkmarx DAST
Checkmarx DAST는 Checkmarx One 애플리케이션 보안 플랫폼에서 사용 가능한 강력한 웹 보안 스캐너입니다. 단일 대시보드를 통해 애플리케이션의 전반적인 위험에 대한 통찰력 있는 정보를 제공합니다. Checkmarx DAST는 다양한 통합 및 언어를 지원합니다.
만약 오픈 소스 소프트웨어를 선호한다면, 이러한 오픈 소스 웹 보안 스캐너를 살펴보는 것도 좋은 방법입니다.
결론
웹 애플리케이션 공격이 급증하는 추세입니다. 해커들은 민감한 데이터를 훔치거나 악성코드를 전파하기 위해 웹 앱과 API를 주요 표적으로 삼고 있습니다. 따라서, 웹 애플리케이션, API 또는 클라우드 인프라의 보안 취약점을 감지하고 수정하기 위해 최고의 DAST 스캐너 중 하나를 선택하는 것이 매우 중요합니다.
또한, 앱 보안을 강화하고 위협 행위자로부터 애플리케이션을 안전하게 보호하려면 웹 애플리케이션 보안에 대한 지속적인 관심과 학습이 필요합니다.