기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
풀 요청에서 코드 보안 조사 결과 검토
리포지토리의 풀 요청에 대한 코드 검토를 활성화한 후 AWS Security Agent는 풀 요청을 자동으로 분석하고 소스 제어 공급자에게 직접 보안 조사 결과를 게시합니다. 이를 통해 개발자는 풀 요청을 벗어나지 않고도 일반 워크플로 내에서 보안 문제를 해결할 수 있습니다.
참고
이 페이지는 GitHub 풀 요청, GitLab 병합 요청 및 Bitbucket 풀 요청에 적용됩니다. 경험은 모든 공급자에서 비슷합니다.
풀 요청에서 코드 검토 작동 방식
코드 검토가 활성화된 리포지토리에서 풀 요청(또는 GitLab에서 병합 요청)을 제출하면 AWS Security Agent가 자동으로 분석을 시작합니다.
-
풀 요청 분석 트리거 - 코드 검토 기능을 활성화한 리포지토리에서 풀 요청이 "검토 준비 완료"로 표시되면 코드 검토가 트리거됩니다. 초안 풀 요청은 분석되지 않습니다.
-
분석 승인 - AWS Security Agent가 풀 요청을 분석하기 시작하면 "AWS Security Agent가 코드를 분석 중입니다... " 이렇게 하면 분석이 시작되었고 진행 중임을 알 수 있습니다.
-
검토 완료 - 분석이 완료되면 AWS Security Agent는 결과와 함께 풀 요청에 검토를 게시합니다. 모든 보안 조사 결과는 단일 검토로 일괄 처리되어 풀 요청을 정리하고 알림을 최소화합니다.
코드 검토 결과 이해
AWS Security Agent는 분석 중에 찾은 내용에 따라 다양한 유형의 결과를 제공합니다.
보안 문제가 발견된 경우
AWS Security Agent는 코드 변경에서 보안 문제를 식별하면 다음을 포함하는 검토를 게시합니다.
-
요약 - 식별된 문제의 유형과 잠재적 영향을 설명하는 모든 보안 조사 결과에 대한 개략적인 개요
-
개별 조사 결과 - 세부 보안 조사 결과는 기본 검토 아래에 스레드 주석으로 표시되며 각 조사 결과는 다음을 포함합니다.
-
보안 문제에 대한 설명
-
문제가 발견된 코드의 위치
-
문제 해결 방법을 설명하는 해결 지침
-
코드 검토 설정에 따른 관련 컨텍스트(보안 요구 사항 위반, 일반적인 취약성 또는 둘 다)
-
참고
분석되는 보안 문제의 유형은 코드 검토 설정에 따라 다릅니다. 보안 요구 사항 검증을 구성한 경우 조사 결과는 조직의 사용자 지정 보안 요구 사항을 참조합니다. 보안 취약성 조사 결과를 구성한 경우 조사 결과는 일반적인 보안 취약성을 식별합니다. 코드 검토 설정에 대한 자세한 내용은 섹션을 참조하세요GitHub 리포지토리에 대한 풀 요청 코드 검토 활성화.
보안 문제가 발견되지 않은 경우
AWS Security Agent가 분석을 완료하고 코드 변경에서 보안 문제를 찾지 못하면 "No issues identified"라는 주석이 게시됩니다. 이렇게 하면 검토가 성공적으로 완료되고 코드 변경으로 구성된 코드 검토 설정에 따라 보안 조사 결과가 트리거되지 않았습니다.
보안 조사 결과에 대한 대응
AWS Security Agent에서 게시한 보안 조사 결과를 검토한 후 소스 제어 공급자에서 직접 조치를 취할 수 있습니다.
-
조사 결과 해결 - 조사 결과에 제공된 수정 지침에 따라 코드를 업데이트한 다음 새 커밋을 풀 요청에 푸시합니다. AWS Security Agent는 업데이트된 코드를 분석합니다.
-
대화 해결 - 보안 조사 결과를 해결한 후 대화를 해결됨으로 표시하여 진행 상황을 추적합니다.
작은 정보
각 결과에는 식별된 보안 문제에 맞는 특정 수정 지침이 포함되어 있습니다. 이 지침을 주의 깊게 검토하여 보안 위험과 이를 효과적으로 해결하는 방법을 이해합니다.
코드 검토 조사 결과 필터링
리포지토리에 filtering.md 파일을 추가하여 AWS Security Agent가 코드를 분석하는 방법을 사용자 지정할 수 있습니다. 이 파일을 사용하면 코드베이스에 대한 컨텍스트를 제공하고 분석에서 파일 또는 폴더를 제외하여 거짓 긍정을 줄일 수 있습니다.
필터링 파일 생성
리포지토리 루트의 .awssecurityagent 디렉터리filtering.md에 라는 파일을 생성합니다.
.awssecurityagent/filtering.md
AWS Security Agent는 풀 요청을 분석할 때 리포지토리의 기본 브랜치(예: main 또는 mainline)에서이 파일을 읽습니다.
파일 구조
filtering.md 파일은 AWS Security Agent가 인식하는 특정 섹션과 함께 표준 마크다운 형식을 사용합니다. 파일에는 Code Review 제목 뒤에 IgnorePatterns 및 ContextHints 섹션 중 하나 또는 둘 다(공백 없음)가 포함되어야 합니다.
다음 예제에서는 filtering.md 파일의 전체 구조를 보여줍니다.
# filtering.md ## Code Review ### IgnorePatterns **/*.md /myapp/src/**/*.snap /myapp/config/README ### ContextHints - The backend is a trusted system and won't return non-standard protocols. - URL is generated from server with presigned token, so no SSRF security vulnerabilities. - AppSec has verified that we are allowed to use cache with an eviction policy.
패턴 무시
이 IgnorePatterns 섹션에서는 코드 검토 중에 AWS Security Agent가 건너뛰어야 하는 파일과 폴더를 지정합니다. glob patterns를 사용하여 분석에서 제외할 경로를 정의합니다.
형식 지정 요구 사항
-
각 패턴은 자체 줄에 있어야 합니다.
-
각 패턴을 그 사이에 빈 줄로 구분합니다. 이렇게 하면 GitHub 또는 코드 검토 도구에서 볼 때 파일이 올바르게 렌더링됩니다.
-
패턴은 표준 glob 형식을 따릅니다. 예를 들어
**/*.md는 모든 마크다운 파일과 일치하고 루트의/myapp/src/폴더 내 모든.snap파일과/myapp/src/**/*.snap일치합니다. -
이 섹션에서는 최대 1,000개의 무시 패턴을 지원합니다.
컨텍스트 힌트
이 ContextHints 섹션에서는 AWS Security Agent가 보다 정확한 평가를 수행하는 데 도움이 되는 코드베이스에 대한 추가 컨텍스트를 제공합니다. 컨텍스트 힌트를 사용하여 아키텍처 결정, 보안 예외 또는 결과 해석 방식에 영향을 미칠 수 있는 기타 정보를 설명합니다.
형식 지정 요구 사항
-
각 힌트는 대시(
-)와 공백으로 시작해야 합니다. -
각 힌트를 500자로 제한된 자유 형식 텍스트의 한 줄로 작성합니다.
-
각 힌트는 코드베이스에 대한 특정 컨텍스트를 설명해야 합니다.
-
이 섹션에서는 최대 20개의 컨텍스트 힌트를 지원합니다.
컨텍스트 힌트는 AWS Security Agent가 초기 분석을 완료한 후 적용되므로 특정 사용 사례에 적용되지 않는 결과를 필터링하는 데 도움이 됩니다.
다음 단계
코드 보안 조사 결과를 검토한 후:
-
문제 해결 지침에 따라 코드 업데이트
-
새 커밋을 푸시하여 변경 사항에 대한 재분석 트리거
-
필요한 경우 코드 검토 설정 조정( 참조GitHub 리포지토리에 대한 풀 요청 코드 검토 활성화)
-
조직의 보안 요구 사항을 검토하여 검증 기준 이해
-
배포된 애플리케이션의 포괄적인 보안 검증을 위한 침투 테스트 고려