SEC11-BP04 코드 검토 수행 - AWS Well-Architected 프레임워크

SEC11-BP04 코드 검토 수행

코드 검토를 구현하여 개발 중인 소프트웨어의 품질과 보안을 확인합니다. 코드 검토에는 원래 코드 작성자 이외의 팀원이 코드에서 잠재적 문제, 취약성, 코딩 표준 및 모범 사례 준수 여부를 검토하도록 하는 것이 포함됩니다. 이 프로세스는 원래 개발자가 간과했을 수 있는 오류, 불일치 및 보안 결함을 포착하는 데 도움이 됩니다. 자동 도구를 사용하여 코드 검토를 지원합니다.

원하는 성과: 작성 중인 소프트웨어의 품질을 높이기 위해 개발 중에 코드 검토를 포함합니다. 코드 검토 중에 식별한 내용을 통해 경험이 부족한 팀원의 스킬을 향상합니다. 자동화 기회를 식별하고 자동화된 도구 및 테스트를 사용하여 코드 검토 프로세스를 지원합니다.

일반적인 안티 패턴:

  • 배포 전에 코드 검토를 수행하지 않습니다.

  • 같은 사람이 코드를 작성하고 검토합니다.

  • 코드 검토를 지원하거나 오케스트레이션하는 데 자동화와 도구를 사용하지 않습니다.

  • 빌더가 코드를 검토하기 전에 빌더에게 애플리케이션 보안 교육을 하지 않습니다.

이 모범 사례 확립의 이점:

  • 코드 품질이 향상됩니다.

  • 공통된 접근 방식을 재사용할 수 있어 코드 개발의 일관성이 높아집니다.

  • 침투 테스트 및 이후 단계에서 발견되는 문제의 수가 줄어듭니다.

  • 팀 내 지식 전달이 개선됩니다.

이 모범 사례가 확립되지 않을 경우 노출되는 위험 수준: 중간

구현 가이드

코드 검토는 개발 중에 소프트웨어의 품질과 보안을 확인하는 데 도움이 됩니다. 수동 검토에는 원래 코드 작성자 이외의 팀원이 코드에서 잠재적 문제, 취약성, 코딩 표준 및 모범 사례 준수 여부를 검토하도록 하는 것이 포함됩니다. 이 프로세스는 원래 개발자가 간과했을 수 있는 오류, 불일치 및 보안 결함을 포착하는 데 도움이 됩니다.

자동 코드 검토를 수행하기 위해 Amazon CodeGuru Security를 고려합니다. CodeGuru Security는 기계 학습 및 자동 추론을 사용하여 코드를 분석하고 잠재적 보안 취약성 및 코딩 문제를 식별합니다. 자동화된 코드 검토를 기존 코드 리포지토리 및 지속적 통합/지속적 배포(CI/CD) 파이프라인과 통합합니다.

구현 단계

  1. 코드 검토 프로세스 수립:

    • 코드를 주 브랜치에 병합하기 전 또는 프로덕션에 배포하기 전과 같이 코드 검토를 해야 하는 시기를 정의합니다.

    • 팀원, 선임 개발자, 보안 전문가와 같이 코드 검토 프로세스에 참여해야 하는 사람을 결정합니다.

    • 사용할 프로세스 및 도구를 포함하여 코드 검토 방법론을 결정합니다.

  2. 코드 검토 도구 설정:

    • GitHub Pull 요청 또는 CodeGuru Security와 같이 팀의 요구 사항에 맞는 코드 검토 도구를 평가하고 선택합니다.

    • 선택한 도구를 기존 코드 리포지토리 및 CI/CD 파이프라인과 통합합니다.

    • 최소 검토자 수 및 승인 규칙과 같은 코드 검토 요구 사항을 적용하도록 도구를 구성합니다.

  3. 코드 검토 체크리스트 및 지침 정의:

    • 검토해야 할 사항을 설명하는 코드 검토 체크리스트 또는 지침을 생성합니다. 코드 품질, 보안 취약성, 코딩 표준 준수 및 성능과 같은 요소를 고려합니다.

    • 체크리스트 또는 지침을 개발 팀과 공유하고 모든 사람이 기대 사항을 이해하고 있는지 확인합니다.

  4. 코드 검토 모범 사례에 대해 개발자 교육:

    • 효과적인 코드 검토를 수행하는 방법에 대해 팀에 교육을 제공합니다.

    • 검토 중에 찾아야 할 애플리케이션 보안 원칙과 일반적인 취약성에 대해 팀을 교육합니다.

    • 지식 공유를 장려하고 프로그래밍 세션을 병행하여 경험이 부족한 팀원의 스킬을 향상합니다.

  5. 코드 검토 프로세스 구현:

    • Pull 요청 생성 및 검토자 할당과 같은 코드 검토 단계를 개발 워크플로에 통합합니다.

    • 코드 변경을 병합 또는 배포하기 전에 코드 검토를 거치도록 합니다.

    • 검토 프로세스 중에 열린 커뮤니케이션과 건설적인 피드백을 장려합니다.

  6. 모니터링 및 개선:

    • 코드 검토 프로세스의 효과를 정기적으로 검토하고 팀으로부터 피드백을 수집합니다.

    • 코드 검토 프로세스를 간소화하기 위한 자동화 또는 도구 개선 기회를 식별합니다.

    • 알게 된 내용 및 업계 모범 사례를 기반으로 코드 검토 체크리스트 또는 지침을 지속적으로 업데이트하고 개선합니다.

  7. 코드 검토 문화 조성:

    • 코드 품질과 보안을 유지하기 위해 코드 검토의 중요성을 강조합니다.

    • 코드 검토 프로세스에서 얻은 성공과 배운 내용을 축하하고 기념합니다.

    • 개발자가 편안하게 피드백을 주고받을 수 있는 협력적이고 지지하는 분위기를 장려합니다.

리소스

관련 모범 사례:

관련 문서:

관련 예제:

관련 비디오: