SEC11-BP05 패키지 및 종속성 서비스의 중앙 집중화
빌더 팀이 소프트웨어 패키지 및 기타 종속성을 확보할 수 있도록 서비스를 중앙 집중화하세요. 서비스를 중앙 집중화하면 작성하는 소프트웨어에 포함하기 전에 패키지를 검증할 수 있습니다. 또한 조직에서 사용 중인 소프트웨어 분석에 쓰일 데이터를 하나의 소스에서 얻을 수 있습니다.
원하는 결과: 소프트웨어는 작성 중인 코드 외에 다양한 소프트웨어 패키지 세트로 구성됩니다. 따라서 JSON 구문 분석기 또는 암호화 라이브러리와 같이 반복적으로 사용되는 기능 구현을 간편하게 사용할 수 있습니다. 이러한 패키지 및 종속성에 대한 소스를 논리적으로 중앙 집중화하면 패키지를 사용하기 전에 패키지의 속성을 검증하는 메커니즘을 보안 팀에 제공할 수 있습니다. 또한 이러한 전략은 기존 패키지의 변경이나 빌더 팀(예: 인터넷에서 바로 임의 패키지 다운로드)으로 인해 예상치 못한 문제가 발생할 위험을 줄여줍니다. 수동 및 자동 테스트 흐름과 함께 이 전략을 사용하면 개발 중인 소프트웨어의 품질에 대한 신뢰도를 높일 수 있습니다.
일반적인 안티 패턴:
-
인터넷의 임의 리포지토리에서 패키지를 가져옵니다.
-
빌더에게 새 패키지를 제공하기 전에 테스트하지 않습니다.
이 모범 사례 확립의 이점:
-
구축 중인 소프트웨어에서 어떤 패키지가 사용되고 있는지 효과적으로 이해할 수 있습니다.
-
누가 무엇을 사용하고 있는지 파악한 후에 패키지를 업데이트해야 할 때 워크로드 팀에 알릴 수 있습니다.
-
소프트웨어에 문제가 포함된 패키지의 위험을 줄입니다.
이 모범 사례를 따르지 않을 경우 노출 위험도: 중간
구현 가이드
패키지 및 종속성에 대한 중앙 집중식 서비스를 빌더가 쉽게 사용할 수 있는 방식으로 제공합니다. 중앙 집중식 서비스는 단일 시스템으로 구현되기보다는 논리적으로 중앙에 배치될 수 있습니다. 이러한 접근 방식을 통해 빌더의 요구를 충족하는 방향으로 서비스를 제공할 수 있습니다. 업데이트가 발생하거나 새로운 요구 사항이 나타날 때 패키지를 리포지토리에 추가하는 효율적인 방법을 구현해야 합니다. AWS CodeArtifact
구현 단계:
소프트웨어가 개발되는 모든 환경에서 사용할 수 있는 논리적으로 중앙 집중화된 리포지토리 서비스를 구현합니다.
리포지토리에 대한 액세스를 AWS 계정 벤딩 프로세스의 일부로 포함합니다.
패키지를 리포지토리에 게시하기 전에 테스트하는 자동화를 구축합니다.
가장 일반적으로 사용되는 패키지, 언어 및 변경 사항이 제일 많은 팀의 지표를 유지 관리합니다.
-
빌더 팀이 새 패키지를 요청하고 피드백을 줄 수 있도록 자동화된 메커니즘을 제공합니다.
-
리포지토리의 패키지를 정기적으로 스캔하여 새로 발견된 문제의 잠재적 영향을 식별합니다.
리소스
관련 모범 사례:
관련 문서:
-
Accelerate deployments on AWS with effective governance
(효과적인 거버넌스를 통한 AWS의 배포 가속화) -
Tighten your package security with CodeArtifact Package Origin Control toolkit
(CodeArtifact Package Origin Control 도구 키트로 패키지 보안 강화) -
Detecting security issues in logging with Amazon CodeGuru Reviewer
(Amazon CodeGuru Reviewer를 사용한 로깅 내 보안 문제 탐지) -
Supply chain Levels for Software Artifacts (SLSA)
(소프트웨어 아티팩트의 공급망 수준(SLSA))
관련 동영상:
-
Proactive security: Considerations and approaches
(사전 예방적 보안: 고려 사항 및 접근 방법) -
The AWS Philosophy of Security (re:Invent 2017)
(AWS 보안 철학(re:Invent 2017)) -
When security, safety, and urgency all matter: Handling Log4Shell
(보안, 안전 및 긴급성이 모두 중요한 경우: Log4Shell 처리)
관련 예시: