View a markdown version of this page

코드 검토 생성 - AWS 보안 에이전트

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

코드 검토 생성

AWS Security Agent 웹 애플리케이션에서 코드 검토를 생성하여 소스 코드 리포지토리 및 S3 소스에서 보안 취약성을 스캔합니다. 코드 검토는 전체 코드베이스에서 포괄적인 정적 분석을 수행하여 보안 문제를 식별하고 문제 해결 지침을 제공합니다.

개별 코드 변경 사항을 분석하는 풀 요청 기반 코드 검토( 참조풀 요청에서 코드 보안 조사 결과 검토)와 달리 온디맨드 코드 검토는 전체 소스 코드를 스캔하여 보안 취약성을 식별하고 조직의 보안 요구 사항 준수를 검증합니다.

이 절차에서는 소스 코드 입력을 선택하고, 권한을 구성하고, 검토를 실행하여 코드 검토를 생성합니다.

사전 조건

시작하기 전에 다음을 갖추었는지 확인하세요.

  • AWS Security Agent 웹 애플리케이션에 대한 액세스

  • 에이전트 스페이스에 연결된 GitHub 리포지토리 또는 S3 버킷 하나 이상

작은 정보

이미 에이전트 스페이스에 연결된 GitHub 리포지토리가 있는 경우 코드 검토를 사용할 준비가 되어 있으므로 추가 설정이 필요하지 않습니다. 에이전트 스페이스 페이지의 코드 검토 카드에서 웹 앱에서 시작을 선택하거나 웹 애플리케이션을 직접 시작합니다.

추가 소스를 연결하거나 S3 버킷을 구성해야 하는 경우 섹션을 참조하세요코드 검토 활성화.

코드 검토 페이지에 액세스

웹 애플리케이션의 코드 검토 섹션으로 이동합니다.

  1. AWS Security Agent 웹 애플리케이션에 로그인합니다.

  2. 왼쪽 사이드바에서 코드 검토를 선택합니다.

  3. 소스 정보, 마지막 실행 상태 및 결과 요약과 함께 기존 코드 검토 목록이 표시됩니다.

코드 검토 생성

소스 코드 입력 및 권한을 구성하여 새 코드 검토를 설정합니다.

  1. 코드 검토 페이지에서 코드 검토 생성을 선택합니다.

코드 검토 세부 정보 구성

제목을 입력하고 검토할 소스 코드를 선택합니다.

  1. 제목 필드에 코드 검토를 설명하는 이름을 입력합니다.

    작은 정보

    애플리케이션, 리포지토리 또는 검토 범위를 식별하는 이름을 사용합니다. 예: "billing-service-security-review" 또는 "infrastructure-code-audit".

  2. 소스 섹션에서이 검토를 위한 소스 코드 입력을 선택합니다. 다음 두 가지 탭에서 선택합니다.

GitHub 리포지토리

에이전트 스페이스에 연결된 리포지토리 중에서 선택합니다.

  1. GitHub 리포지토리 탭을 선택합니다.

  2. 통합 리포지토리 테이블에서 검토에 포함할 각 리포지토리 옆의 확인란을 선택합니다.

  3. 검색 필드를 사용하여 이름으로 특정 리포지토리를 찾습니다.

참고

코드 검토 구성을 통해 에이전트 스페이스에 연결된 리포지토리만 여기에 표시됩니다. 리포지토리를 더 추가하려면 관리자 콘솔에서 관리를 선택하거나 관리자에게 에이전트 공간 구성을 업데이트하도록 요청합니다.

S3 소스

에이전트 스페이스에 연결된 S3 버킷에서 ZIP 파일을 선택합니다. 에이전트 스페이스 관리자는 사용 가능한 S3 버킷을 구성합니다. 이러한 버킷 중 하나에 저장된 모든 ZIP 파일을 코드 검토의 소스로 사용할 수 있습니다.

  1. S3 소스 탭을 선택합니다.

  2. 검토에 포함할 각 ZIP 파일의 S3 URI를 입력합니다. 최대 30개의 S3 소스를 추가할 수 있습니다.

참고

S3 소스는 에이전트 스페이스에 연결된 S3 버킷에 저장된 ZIP 파일이어야 합니다. 추가 버킷을 사용하려면 섹션을 참조하세요코드 검토 활성화.

권한 구성

이 코드 검토를 위해 IAM 서비스 역할과 선택적 CloudWatch 로그 그룹을 선택합니다.

  1. 권한 섹션에서 서비스 역할 드롭다운을 찾습니다.

  2. 구성된 서비스 역할에서 IAM 역할을 선택합니다.

    참고

    서비스 역할에는 S3의 소스 코드에 액세스하고 CloudWatch 로그 및 코드 검토에 필요한 기타 AWS 리소스에 쓸 수 있는 권한이 있어야 합니다. 서비스 역할은 AWS Management Console에서 코드 검토 설정 중에 구성됩니다.

  3. (선택 사항) CloudWatch 로그 그룹 드롭다운에서 코드 검토 실행 로그를 저장할 로그 그룹을 선택합니다.

    참고

    로그 그룹을 선택하지 않으면 AWS Security Agent는 코드 검토 로그를 저장하기 위한 기본 로그 그룹을 생성합니다.

자동 코드 수정 구성

AWS Security Agent가 검토가 완료되는 즉시 모든 결과에 대한 코드 수정을 생성하도록 자동 수정을 활성화합니다.

  1. 자동 코드 수정 섹션에서 자동 코드 수정 활성화 확인란을 선택합니다.

AWS Security Agent가 수정 사항을 제공하는 방법은 소스에 따라 다릅니다.

  • 프라이빗 GitHub 리포지토리 - AWS Security Agent는 수정 사항이 포함된 풀 요청을 리포지토리에 제출합니다.

  • 퍼블릭 GitHub 리포지토리 - 취약성이 수정되기 전에 공개되지 않도록 AWS Security Agent는 풀 요청을 열지 않습니다. 대신 웹 애플리케이션에서 다운로드하여 비공개로 적용할 수 있는 결과에 제안된 차이를 연결합니다.

  • S3 소스 - 코드 수정을 사용할 수 없습니다. 조사 결과 세부 정보를 검토하고 수정 사항을 수동으로 적용합니다.

중요

프라이빗 리포지토리에 제출된 수정 풀 요청은 읽기 액세스 권한이 있는 모든 사용자에게 표시됩니다. 병합하기 전에 변경 사항을 검토합니다. 자동 코드 수정은 GitHub 리포지토리를 소스로 선택한 경우에만 사용할 수 있습니다.

참고

비활성화된 경우에도 검토가 완료된 후 개별 GitHub 소스 결과에 대한 코드 수정을 수동으로 트리거할 수 있습니다.

시뮬레이션된 검증 구성

시뮬레이션된 검증을 활성화하여 실행 중인 애플리케이션에서 검색된 취약성이 악용 가능한지 동적으로 확인합니다.

  1. 시뮬레이션된 검증 섹션에서 시뮬레이션된 검증 활성화 확인란을 선택합니다.

활성화되면 AWS Security Agent는 정적 분석이 완료된 후 시뮬레이션된 환경을 프로비저닝합니다. 소스 코드를 온보딩하고, 환경 내에서 서비스를 시작하고, 스캔 중에 발견된 취약성을 악용하려고 시도합니다. 그런 다음 취약성이 성공적으로 악용되었는지 여부를 나타내는 검증 상태로 결과가 업데이트됩니다.

참고

시뮬레이션된 검증은 현재 독립형 도킹 가능 애플리케이션에서만 사용할 수 있습니다. 여러 리포지토리를 소스로 선택하면 시뮬레이션된 검증을 사용할 수 없습니다.

중요

시뮬레이션된 검증은 코드 검토 실행에 처리 시간을 추가합니다. 검증 단계는 환경을 프로비저닝하고 악용 시도를 실행합니다. 조사 결과 수와 애플리케이션 복잡성에 따라 일반적으로 1~3시간이 걸립니다.

허용된 네트워크 대상

시뮬레이션된 환경에는 사전 정의된 허용 목록으로 제한된 아웃바운드 네트워크 액세스가 있습니다. 애플리케이션은 검증 중에 다음 도메인에 도달할 수 있습니다.

다음 표에는 허용되는 도메인과 그 용도가 나와 있습니다.

도메인 용도

.amazonaws.com, .aws.amazon.com

AWS 서비스

.public.ecr.aws

Amazon ECR 퍼블릭

.docker.com, .docker.io

Docker Hub

.github.com, .githubusercontent.com

GitHub

.gitlab.com

GitLab

.npmjs.com, .npmjs.org

npm 레지스트리

.pypi.org, .pypi.python.org, .pythonhosted.org

Python Package Index

.crates.io, .rustup.rs

Rust 패키지

.maven.org, .gradle.org

Java/Gradle 패키지

.nuget.org

.NET 패키지

.rubygems.org, .ruby-lang.org

Ruby 패키지

.golang.org, .pkg.go.dev, .goproxy.io

Go 패키지

.nodejs.org, .yarnpkg.com

Node.js

.alpinelinux.org, .debian.org, .ubuntu.com, .centos.org, .fedoraproject.org

Linux 배포 리포지토리

.cloudfront.net

CloudFront 배포

.google.com, .googleapis.com

Google APIs

.microsoft.com, .visualstudio.com

Microsoft 서비스

.sourceforge.net, .bitbucket.org

소스 호스팅

참고

애플리케이션에이 목록에 없는 도메인에 대한 네트워크 액세스가 필요한 경우 네트워크 방화벽에 의해 연결이 차단됩니다. 외부 APIs 또는 위에 나열되지 않은 서비스에 의존하는 애플리케이션은 시뮬레이션된 환경에서 올바르게 시작되지 않을 수 있습니다.

코드 검토 생성

  1. 구성을 검토하여 정확성을 확인합니다.

  2. 코드 검토 생성을 선택합니다.

검토 실행을 시작할 수 있는 코드 검토 세부 정보 페이지로 리디렉션됩니다.

코드 검토 실행

코드 검토를 생성한 후 실행을 시작하여 분석을 시작합니다.

  1. 코드 검토 세부 정보 페이지에서 검토 시작을 선택합니다.

  2. AWS Security Agent가 소스 코드 분석을 시작합니다.

실행하려는 코드 검토 옆에 있는 검토 시작을 선택하여 코드 검토 목록 페이지에서 검토를 시작할 수도 있습니다.

코드 검토 실행 모니터링

코드 검토가 실행될 때 코드 검토 진행 상황을 추적합니다.

실행 단계 검토

코드 검토 실행은 진행률 지표로 표시되는 다음 단계를 거칩니다.

  1. Preflight - AWS Security Agent는 소스 코드에 대한 액세스를 검증하고 테스트 환경을 설정합니다. 비행 전 검사에는 다음이 포함됩니다.

    • 서비스 인프라 설정

    • S3 소스 액세스 검증

    • 설정 테스트 환경

  2. 정적 분석 - AWS Security Agent는 소스 코드에서 보안 취약성 및 요구 사항 위반을 검사합니다.

  3. 시뮬레이션된 검증(선택 사항) - 시뮬레이션된 검증이 활성화된 경우 AWS Security Agent는 시뮬레이션된 환경을 프로비저닝하고 애플리케이션을 배포합니다. 그런 다음 정적 분석 중에 발견된 취약성을 악용하려고 시도합니다. 이 단계에서는 조사 결과가 대상 런타임에서 악용 가능한지 여부를 확인합니다. 이 단계는 코드 검토 생성 중에 시뮬레이션된 검증을 활성화한 경우에만 나타납니다.

  4. 완료 - AWS Security Agent가 결과를 컴파일하고 결과 요약을 생성합니다.

실행 세부 정보 보기

실행 세부 정보 페이지에서 탭 사이를 탐색하여 진행 상황을 모니터링합니다.

  • 코드 검토 실행 - 실행 ID, 생성 시간, 상태, 기간, 작업 시간, 심각도 수준 분석 및 위험 유형 차트를 포함한 실행 요약을 봅니다.

  • 사전 처리 - 각 검증 단계의 사전 확인 진행 상황 및 상태를 확인합니다.

  • 코드 검토 로그 - AWS Security Agent가 검토 중에 식별하고 수행한 작업을 각 단계에 대한 자세한 작업 로그와 함께 봅니다.

  • 시뮬레이션된 검증 - 시뮬레이션된 검증이 활성화되면 프로비저닝 상태, 개별 결과에 대한 검증 작업 및 결과를 확인합니다.

  • 조사 결과 - 검토가 완료된 후 보안 조사 결과를 봅니다( 참조코드 검토의 결과 검토).

실행 기록

각 코드 검토는 모든 실행 기록을 유지합니다. 코드 검토 세부 정보 페이지에서:

  • 최신 실행 섹션에는 시작 시간, 상태, 기간 및 ID와 함께 가장 최근 실행이 표시됩니다.

  • 모든 실행 테이블에는 시작 시간, 상태, 기간, 결과 요약 및 ID와 함께 이전 실행이 모두 나열됩니다.

  • 최신 활성 실행의 세부 정보를 보려면 실행 모니터링을 선택합니다.

  • 실행의 시작 시간 링크를 선택하여 전체 세부 정보를 봅니다.

다음 단계

코드 검토를 실행한 후:

  • 보안 조사 결과 및 문제 해결 지침 검토( 참조코드 검토의 결과 검토)

  • 자동 풀 요청 또는 수동 수정을 통해 조사 결과 해결( 참조코드 검토 결과 수정)

  • 수정 사항을 구현한 후 추가 검토를 실행하여 문제 해결 확인

  • 코드베이스가 발전함에 따라 코드 검토 구성 또는 소스 조정