5.5 KiB
IAST (Interactive Application Security Testing)
IAST는 웹 애플리케이션의 취약점을 식별하고 개발자가 이를 수정할 수 있도록 설계된 보안 테스트 도구의 일종입니다. 이 도구는 애플리케이션의 런타임 환경에 작은 에이전트를 삽입하고 실시간으로 동작을 모니터링하는 방식으로 작동합니다. 따라서 IAST 도구는 정적 분석이나 모의 공격에 의존하지 않고 취약점이 발생할 때 이를 식별할 수 있습니다.
IAST는 소프트웨어 계측(software instrumentation) 또는 계측기를 사용하여 애플리케이션이 실행되는 동안 모니터링하고 애플리케이션이 수행하는 작업과 성능에 대한 정보를 수집하는 방식으로 작동합니다. IAST 솔루션은 실행 중인 애플리케이션에 에이전트와 센서를 배포하고 수동 테스트, 자동 테스트 또는 이 둘의 조합으로 시작된 모든 애플리케이션 상호 작용을 지속적으로 분석하여 실시간으로 취약성을 식별함으로써 애플리케이션을 계측합니다. IAST 에이전트는 애플리케이션 내부에서 실행되며 알려진 공격 패턴을 모니터링합니다. 애플리케이션의 일부이므로 서로 다른 구성 요소 간의 트래픽을 모니터링할 수 있습니다. (클래식 MVC 배포 및 마이크로서비스 배포 간)
IAST의 전제조건
- 애플리케이션을 계측해야 합니다. (Agent를 주입해야 함.)
- 수동 또는 자동 테스트를 통해 트래픽을 생성해야 합니다. 또 다른 가능한 접근 방식은 DAST 도구를 사용하는 것입니다. (예를 들어 OWASP ZAP을 사용할 수 있음)
장점
IAST 도구의 주요 장점 중 하나는 취약점과 취약점 수정 방법에 대한 상세하고 정확한 정보를 제공할 수 있다는 것입니다. 개발자가 수동으로 취약점을 검색하거나 테스트 환경에서 취약점을 재현할 필요가 없으므로 많은 시간과 노력을 절약할 수 있습니다.
또한 IAST 도구는 사용자 상호 작용이 필요하거나 특정 조건에서 트리거되는 취약점 등 다른 테스트 방법으로는 놓칠 수 있는 취약점을 식별할 수 있습니다.
테스트 시간은 사용되는 테스트에 따라 다르며(IAST는 독립형 시스템이 아니므로), 더 빠른 테스트(자동화된 테스트)를 CI/CD 파이프라인에 포함할 수 있습니다. 다양한 종류의 취약점을 탐지하는 데 사용할 수 있으며 도구의 특성상('실제 트래픽만' 찾기 때문에) 다른 테스트 유형에 비해 위양성/위음성 결과가 상대적으로 뒤처집니다. IAST는 일반적인 테스트 도구와 실시간 보호(이 경우 RAST라고 함)의 두 가지 방식으로 사용할 수 있습니다. 두 가지 모두 동일한 원칙에 따라 작동하며 함께 사용할 수 있습니다.
몇 가지 단점
- 비교적 새로운 기술이기 때문에 보안 팀과 도구 빌더(오픈 소스 또는 상용) 모두에 대한 지식과 경험이 많지 않습니다.
- 이 솔루션은 단독으로 사용할 수 없으며 누군가(또는 무언가)가 트래픽 패턴을 생성해야 합니다. 테스트 중에 가능한 모든 엔드포인트를 쿼리하는 것이 중요합니다.
- 결과는 트래픽을 기반으로 합니다. 앱/사이트의 일부에 대한 트래픽이 없는 경우 테스트가 이루어지지 않으므로 결과가 생성되지 않습니다.
- 앱에 대한 계측이 필요하기 때문에 특히 소스 스캔 도구(SAST 또는 SCA)에 비해 상당히 복잡할 수 있습니다.
각각 고유한 특징과 기능을 갖춘 여러 가지 IAST 도구를 사용할 수 있습니다.
IAST 도구의 일반적인 기능
- 실시간 모니터링: IAST 도구는 애플리케이션의 동작을 실시간으로 모니터링하여 취약점이 발생할 때 이를 식별할 수 있습니다.
- 취약점 식별: IAST 도구는 인젝션 공격, 크로스 사이트 스크립팅(XSS), 크로스 사이트 요청 위조(CSRF)를 포함한 광범위한 취약점을 식별할 수 있습니다.
- 수정 지침: IAST 도구는 코드 스니펫 및 보안 코딩 관행에 대한 권장 사항을 포함하여 식별된 취약점을 수정하는 방법에 대한 자세한 정보를 제공하는 경우가 많습니다.
- 다른 도구와의 통합: IAST 도구는 정적 코드 분석 또는 침투 테스트 도구와 같은 다른 보안 테스트 도구와 통합하여 애플리케이션의 보안에 대한 보다 포괄적인 보기를 제공할 수 있습니다.
IAST 도구는 실시간으로 취약점을 식별하고 수정하여 시간과 노력을 절약할 수 있으므로 개발자의 툴킷에 추가할 수 있는 유용한 도구가 될 수 있습니다. 개발자로서 IAST 도구 사용에 관심이 있다면 다양한 옵션을 사용할 수 있으므로 여러 도구를 조사하고 비교하여 자신의 필요에 가장 적합한 도구를 찾는 것이 중요합니다.
도구 예시
시중에는 오픈 소스 도구가 거의 없습니다. 상용 도구를 예로 들 수 있습니다: Contrast Community Edition(CE) - 앱 1개와 최대 5명의 사용자를 위한 모든 기능을 갖춘 버전(일부 엔터프라이즈 기능은 비활성화됨). Contrast CE는 Java 및 .NET만 지원합니다.
여기에서 찾을 수 있습니다. https://www.contrastsecurity.com/contrast-community-edition
20일차에 뵙겠습니다.