【AWS Security Agent】 침투 테스트 시 네트워크 설정의 사양 및 주의사항 정리
요약
AWS Security Agent의 침투 테스트 기능 사용 시 네트워크 설정 및 주의사항을 정리한 가이드입니다. 소유권 확인은 DNS_TXT, HTTP_ROUTE(퍼블릭), PRIVATE_VPC(프라이빗) 세 가지 방식으로 진행해야 하며, 각 방식별로 적용 범위와 제약 사항이 다릅니다.
핵심 포인트
- 침투 테스트는 대상 도메인의 소유권을 증명해야 합니다.
- DNS TXT/HTTP_ROUTE 검증 시 서브도메인은 자동 포함됩니다.
- Private VPC 방식으로 검증한 경우, 정확히 일치하는 도메인만 테스트 가능합니다.
이전에 AWS Security Agent(이하, Security Agent)의 코드 리뷰에 사용할 사용자 지정 보안 요구 사항에 대한 까다로운 사양을 기사로 정리한 적이 있습니다.
이번에는 Security Agent의 다른 기능인 침투 테스트에 대해 주로 네트워크 관점에서의 사양 및 주의사항을 정리했습니다.
본 기사는 2026년 10월 14일 정보를 기반으로 작성되었습니다.
Security Agent의 사양이 업데이트되어 기사 내용이 오래될 수 있으니 미리 양해 부탁드립니다.
타겟 도메인은 침투 테스트를 실행하는 애플리케이션의 도메인입니다.
침투 테스트를 실시하려면 대상 도메인의 소유권을 가지고 있음을 증명해야 합니다. (만약 소유권 확인이 없다면, 외부 공개된 제3자 앱에 임의로 침투할 수 있기 때문입니다.)
이러한 소유권 확인에는 다음 3가지 방식이 있습니다.
| 체크 방식 | 내용 |
|---|---|
| DNS_TXT | 대상 도메인을 관리하는 DNS 서버에 AWS 지정 TXT 레코드를 추가 |
| ... | |
| DNS_TXT 방식은 AWS Certificate Manager의 DNS 검증과 유사합니다. |
DNS_TXT 방식과 HTTP_ROUTE 방식은 모두 AWS의 관리형 네트워크에서 대상 DNS 서버, 대상 URL에 접근할 수 있어야 합니다. (즉, 퍼블릭 액세스가 가능해야 합니다.)
즉, 실질적으로 DNS_TXT 방식과 HTTP_ROUTE 방식은 퍼블릭 도메인 전용이며, 프라이빗 도메인의 경우에는 PRIVATE_VPC 방식이 유일한 선택지입니다.
퍼블릭 도메인을 침투 테스트할 때, 테스트 실시자가 DNS 서버 관리자 및 웹 서버 관리자를 겸임하지 않는 경우, 사전에 해당 관리자들의 협조를 받아야 합니다.
예를 들어, 타겟 도메인으로 example.com을 검증했다고 가정해 봅시다.
이 경우, api.example.com과 같은 서브도메인도 테스트 대상으로 지정할 수 있을까요?
이에 대해서는 타겟 도메인의 인증 방식에 따라 다릅니다.
DNS TXT 또는 HTTP 루트 검증으로 검증한 경우에는 서브도메인도 추가 검증 없이 테스트 대상으로 지정 가능합니다. 하지만 Private VPC 방식의 경우에는, 검증한 도메인과 완전히 일치하는 도메인만 테스트 대상으로 지정할 수 있습니다. (즉, 서브도메인도 테스트하고 싶다면, 서브도메인도 검증해야 합니다.)
When you verify a domain using DNS TXT or HTTP route verification, sub-domains of that domain are automatically covered. For example, verifying example.com allows you to test api.example.com or billing.example.com without additional verification. For Private VPC verification, the target endpoint domain name must match the full domain name configured for verification.
한편, 침투 테스트 생성 화면의 Tip에는 다음과 같이 기재되어 있으며, 서브도메인도 타겟 URL에 명시적으로 추가하는 것이 권장됩니다.
For best results, include all domains that are part of your application's user flow, including subdomains for APIs, authentication services, and content delivery. Sub-domains of a verified parent domain do not require separate verification.
타겟 URL은 이름 그대로 침투 테스트의 타겟이 되는 URL입니다.
제외 URL은 침투 테스트의 타겟에서 제외하는 URL입니다.
예를 들어, 타겟 URL에 https://example.com/을 지정했다고 가정해 봅시다.
이 경우, https://example.com/aaa
이러한 하위 경로(sub-path)는 테스트 대상에 포함되는 것일까요?
이는 타겟 도메인의 인증 방식과 관계없이, 대상으로 포함되는 것으로 보입니다. (제외 URL로 지정한 URL은 제외)
공식 문서에는 다음과 같이 기술되어 있습니다.
AWS Security Agent는 타겟 애플리케이션(s)에 대해 너비 우선 탐색(breadth-first exploration)을 수행하고, 모든 익스플로잇을 시도하기 전에 정상적으로 작동시키려고 시도합니다. 이를 통해 런타임에서 애플리케이션에 대한 작동 이해를 구축하고 중요한 애플리케이션 로직 및 엔드포인트를 발견할 수 있습니다.
따라서, example.com
을 타겟으로 지정한 경우, 다음 중 어느 것도 테스트 대상에 포함되는 것으로 보입니다.
example.com/aaa
example.com/bbb
example.com/aaa/bbb/ccc
다만, 테스트 중에 모든 경로를 포괄한다는 것은 보장되지 않습니다. AI 에이전트의 확률론적(stochastic) 동작 특성상, 모든 엔드포인트를 발견하고 테스트하는 것이 보장되지는 않습니다.
Given its stochastic nature, AWS Security Agent is not guaranteed to discover and test all critical applications and endpoints for any target application.
예를 들어, 제외 URL로 https://example.com/aaa
을 지정했다고 가정해 봅시다.
이 경우, https://example.com/aaa/bbb
와 같은 하위 경로는 제외 대상에 포함되는 것일까요?
이는 타겟 도메인의 인증 방식과 관계없이, 대상으로 포함되는 것으로 보입니다.
공식 문서에는 다음과 같이 기술되어 있습니다.
Specify URL paths that should not be tested during the penetration test. AWS Security Agent excludes the specified path and all paths nested beneath it. For example, if you add
https://example.com/admin
as an out-of-scope URL, https://example.com/admin/tools is also out-of-scope.
따라서, example.com/aaa
를 제외 URL로 지정한 경우, 다음 중 어느 것도 제외 대상에 포함되는 것으로 보입니다.
example.com/aaa
example.com/aaa/bbb
example.com/aaa/ccc/ddd
다만, 경로 접두사(prefix) 일치가 아니라, 경로 계층으로서의 중첩(nesting)이 조건이기 때문에, 예를 들어 다음 URL은 제외되지 않는 것 같습니다.
example.com/aaabbb
→제외되지 않음
애플리케이션에 따라 외부 링크가 걸려 있거나, 외부 API를 호출하는 경우도 있을 것입니다.
예를 들어, example.com
을 타겟으로 지정했다고 가정해 봅시다.
example.com
의 웹페이지상에 external.com
으로 연결되는 링크가 존재하는 경우, external.com
도 테스트 대상에 포함되는 것일까요?
외부 링크 목적지는 대상에 포함되지 않습니다. 타겟 URL 이외로의 접근은 네트워크 레벨에서 차단됩니다. (Accessible URL에 지정한 URL은 제외)
AWS Security Agent에는, 타겟 URL 및 Accessible URLs에 지정되지 않은 엔드포인트로의 접근을 네트워크 레벨에서 차단하는 기능이 존재하는 것으로 보입니다.
테스트에 필요한 모든 네트워크 종속성은 대상 URL(target URLs) 또는 접근 가능한 URL(accessible URLs)로 지정되어야 합니다. 네트워크는 명시되지 않은 엔드포인트로의 접근을 차단합니다.
대상 및 접근 가능한 URL 외의 URL로의 요청은 네트워크에 의해 차단됩니다.
따라서, example.com을 대상으로 지정했을 경우, example.com 웹페이지상에 external.com으로 연결되는 링크가 존재하더라도, 네트워크 수준에서 차단되어 접근할 수 없습니다.
다만, external.com이 Accessible URLs에 포함된 경우, 접근 자체는 가능하지만, 취약점 테스트의 대상은 되지 않습니다. (로그인이나 네비게이션 등의 목적으로만 이용됩니다)
Accessible URLs의 용도
Accessible URLs는 테스트 대상은 아니지만 테스트 실행에 필요한 서비스(인증 프로바이더, CDN 등)를 지정하기 위한 것입니다.
A URL that the penetration test can access but must not attack. Use this for a hosted login page, a content delivery network (CDN), or another supporting service your application depends on. (침투 테스트가 접근할 수는 있지만 공격해서는 안 되는 URL입니다. 호스팅된 로그인 페이지, 콘텐츠 전송 네트워크(CDN) 또는 애플리케이션이 의존하는 기타 지원 서비스에 사용하십시오.)
Accessible URLs의 보안 영향
Accessible URLs로 지정한 도메인에 대해서는 테스트 중에 인증 정보를 포함한 데이터가 전송될 가능성이 있습니다.
AWS Security Agent는 accessible URLs에서 보안 테스트를 수행하도록 지시받지 않습니다. Accessible URLs를 지정함으로써, 사용자는 이러한 종속성에 대한 신뢰를 나타내는 것입니다. 자격 증명을 포함한 침투 테스트 데이터가 테스트 중에 이 접근 가능한 URL 엔드포인트로 전송될 수 있습니다.
외부 API 역시 외부 링크와 마찬가지로, 대상 URL에 포함되지 않은 URL은 접근 대상에서 제외됩니다.
다만, CloudFront → API Gateway → Lambda → 외부 API와 같은 구조의 경우, 결과적으로 외부 API가 호출될 가능성이 있습니다.
이 구성에서는 example.com에 접속하면, CloudFront → API Gateway를 거쳐 백엔드의 Lambda가 호출됩니다. 그리고 그 Lambda가 외부 API인 external.api를 호출하고 결과를 반환합니다.
이 경우, Security Agent가 인식하는 URL은 어디까지나 example.com이며, external.api는 숨겨져 있기 때문에, Security Agent는 example.com에 요청을 보내게 되고, 결과적으로 외부 API가 호출될 가능성이 있습니다.
대상 앱의 아키텍처도 이해한 후 적절하게 대상 URL(target URLs), 제외 URL(accessible URLs), Accessible URLs를 설정해야 합니다.
포트 번호에 대해서는, 이전에는 HTTP/HTTPS 통신의 기본 포트인 80/443 포트에만 대응하는 것처럼 보였으나, 2026년 10월 14일 현재는 그 외의 포트 번호에도 대응합니다.
기본이 아닌 포트를 지정하고 싶을 경우, 대상 도메인 지정 시 https://example.com:8443과 같이 포트 번호를 지정합니다.
Security Agent는 명시적 프록시(explicit proxy)를 통과할 수 없습니다.
Security Agent 설정 항목에 프록시 설정이 없으며, 인식시키ることが 불가능합니다.
게다가, 명시적 프록시의 경우 HTTPS 통신에서는 CONNECT 메서드를 사용하여 프록시에 연결하지만, Security Agent는 CONNECT 메서드에도 대응하고 있지 않습니다.
다만, 투명형 프록시(transparent proxy)라면 통과가 가능합니다. 투명형 프록시의 경우, Security Agent가 프록시의 존재를 인식할 필요가 없고 CONNECT 메서드도 필요하지 않기 때문입니다.
위 내용은 AWS 지원팀을 통해서도 확인했습니다.
프록시에 대해서는 아래 사이트의 설명이 이해하기 쉬웠습니다.
이상으로 Security Agent의 침투 테스트에 관한 네트워크 관련 사양 및 주의사항이었습니다.
침투 테스트는 1작업 시간당 50 USD로 상당한 비용이 들기 때문에, 적절한 사전 준비와 URL 설정을 통해 '설정 실수로 실패하는' 일이 없도록 하고 싶습니다.
앞으로 침투 테스트를 시도해 보시려는 분들께 본 글이 조금이라도 참고가 되기를 바랍니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기