조직은 소프트웨어 내에서 잠재적으로 악용될 수 있는 취약성을 식별하기 위해 몇 가지 방법론을 적용합니다. 예를 들어 정적 코드 분석은 소스 코드의 보안 문제를 식별하는 데 도움이 될 수 있는 화이트박스 테스트의 한 형태입니다. 반면에 동적 코드 분석은 소프트웨어 팀이 실행 중인 애플리케이션을 스캔하고 취약점을 식별할 수 있도록 하는 블랙박스 취약성 스캔 의 한 형태입니다.
동적 코드 분석을 적절하게 구현하면 프로덕션 인시던트에 대한 MTTI(평균 식별 시간)를 줄이고, 애플리케이션 문제에 대한 가시성을 개선하고, 프로젝트의 전반적인 보안 태세를 강화할 수 있습니다. 여기서는 동적 코드 분석에 대해 자세히 살펴보겠습니다.
동적 코드 분석(DAST(Dynamic Application Security Testing)이라고도 함)은 실행 중인 애플리케이션에서 잠재적으로 악용될 수 있는 취약성을 테스트하도록 설계되었습니다. 컴파일 시간 및 런타임 취약성(예: 실제 실행 환경에서만 나타나는 구성 오류)을 모두 식별하는 DAST 도구입니다.
DAST 도구는 알려진 취약성 및 악의적인 입력의 사전을 사용하여 애플리케이션을 "퍼지"합니다. 이러한 잠재적으로 악의적인 입력의 예는 다음과 같습니다.
애플리케이션이 실행되면 이러한 잠재적인 악성 입력에 의해 폭격을 받고 DAST 도구는 애플리케이션의 응답을 분석합니다. 애플리케이션이 입력에 대한 부정적인 응답(예: 충돌, 잘못된 응답 반환 등)이 있는 경우 DAST 도구는 식별된 취약성을 기록합니다.
DAST 도구는 실행 중인 애플리케이션에서 실행되기 때문에 광범위한 잠재적 취약성을 감지할 수 있습니다. 여기에는 메모리 할당 문제와 같이 소스 코드에서 감지하기 어렵거나 불가능한 취약성이 포함됩니다.
소프트웨어 개발 수명 주기(SDLC)는 소프트웨어 개발 프로세스의 단계를 매핑합니다. 여기에는 애플리케이션에 대한 초기 계획 및 요구 사항 식별부터 장기 유지 관리 및 최종 수명 종료에 이르기까지 모든 것이 포함됩니다.
DAST는 일반적으로 SDLC의 테스트 단계에서 작동합니다. DAST에는 시뮬레이션된 악성 입력을 사용하여 애플리케이션을 실행하고 테스트할 수 있는 기능이 필요하기 때문입니다. 따라서 애플리케이션의 코드를 빌드하고 테스트 또는 스테이징 환경에 배포할 수 있게 되면 DAST를 사용할 수 있습니다. CI/CD(지속적 통합/지속적 업데이트) 워크플로를 사용하면 반복적인 빌드가 발생할 때 DAST 스캔이 하루에 여러 번 실행될 수 있습니다.
많은 엔터프라이즈 소프트웨어 보안 프로그램에서 DAST는 내부 보안 전문 지식이 필요하지 않은 침투 테스트 후에 발생합니다. 예를 들어, PCI DSS(Payment Card Industry Data Security Standard) 요구 사항을 충족하기 위한 침투 테스트 후 보안 팀은 DAST 도구를 사용하여 자동화된 보안 스캔을 실행할 수 있습니다.
정적 및 동적 코드 분석은 애플리케이션 보안 테스트의 가장 일반적인 두 가지 형태입니다. 이들은 취약성을 식별하기 위해 서로 다른 접근 방식을 취하며 종종 상호 보완적입니다.
동적 코드 분석과 달리 정적 코드 분석(SAST(정적 애플리케이션 보안 테스트)이라고도 함)은 전체 실행 파일에 액세스할 필요가 없습니다. 대신 화이트박스 접근 방식을 취하고 애플리케이션의 소스 코드에 취약성이 있는지 검사합니다. SAST는 애플리케이션의 실행 흐름 모델을 구축하고 이 모델에 규칙을 적용하여 삽입, 버퍼 오버플로 및 유사한 취약성을 감지할 수 있습니다.
DAST와 SAST는 서로 다른 테스트 방법을 적용하고 서로 다른 유형의 파일(컴파일된 실행 파일 및 소스 코드)에 적용되기 때문에 서로 다른 유형의 취약성을 감지하고 개발 프로세스 내의 여러 단계에서 적용됩니다. SAST는 취약성을 식별하기 위해 애플리케이션을 완료할 필요가 없기 때문에 DAST보다 SDLC에서 더 일찍 적용할 수 있습니다(개발 단계 중).
동적 코드 분석은 애플리케이션이 대부분 완료되고 실행할 수 있을 때 적용됩니다. 악의적인 입력을 사용하여 애플리케이션에 대한 현실적인 공격을 시뮬레이션하고 응답을 관찰합니다.
DAST 테스트의 주요 이점 중 하나는 실제 배포 환경에서 애플리케이션의 동작을 시뮬레이션할 수 있다는 것입니다. 이를 통해 테스터는 코드가 활성 상태일 때만 표시될 수 있는 구성 문제 및 기타 취약성을 식별할 수 있습니다. 또한 시뮬레이션된 실제 공격을 사용하면 잠재적인 익스플로잇이 애플리케이션 상태에 미치는 영향을 확인할 수 있습니다. DAST 도구는 또한 애플리케이션의 보안에 영향을 미치지만 SAST 및 유사한 소스 코드 중심 도구에서 놓칠 수 있는 타사 종속성 및 라이브러리 내의 취약성을 감지할 수 있습니다.
체크 포인트 CloudGuard는 클라우드 기반 서버리스 및 컨테이너화된 애플리케이션에 대한 취약성 스캔을 제공합니다. 여기에는 개발 프로세스 중에 취약성을 식별하고 수정하는 데 도움이 되는 DAST 및 SAST 취약성 검사에 대한 지원이 포함됩니다. CloudGuard Solutions for Serverless 애플리케이션의 기능을 실제로 보려면 데모를 예약하십시오. 또한 무료 평가판을 요청 하여 조직의 개발 워크플로에 통합할 수 있는 방법을 확인할 수 있습니다.