Share via


제로 트러스트 DevOps 플랫폼 환경 보호

이 문서는 DevOps 팀 구성원으로서 최소 권한의 제로 트러스트 원칙을 구현하고 DevOps 플랫폼 환경을 보호하는 데 도움이 됩니다. 보안 엔터프라이즈 DevOps Environments eBook의 콘텐츠를 제공하고 비밀 및 인증서 관리에 대한 모범 사례를 강조 표시합니다.

최신 기업은 개발자가 생산성을 높이는 데 필요한 파이프라인 및 프로덕션 환경을 포함하여 배포를 위해 DevOps 플랫폼을 사용합니다. 과거에 애플리케이션 보안 방법은 현재 파이프라인 및 프로덕션 환경에서 노출하는 공격 노출 영역을 고려하지 않았습니다. 해커가 왼쪽으로 이동하고 업스트림 도구를 대상으로 할 때 DevOps 플랫폼 환경을 보호하기 위한 혁신적인 접근 방식이 필요합니다.

다음 다이어그램에서는 DevOps 플랫폼 환경이 애플리케이션 환경과 CI/CD(지속적인 통합 및 지속적인 업데이트 ) 파이프라인 확장에 연결됩니다.

다이어그램은 위의 연결된 eBook에 설명되고 여기에 연결된 관련 문서에 요약된 DevOps 플랫폼 환경 및 보안 위협을 보여 줍니다.

CI/CD 파이프라인 확장은 해커에게 애플리케이션 환경에서 권한 상승에 참여할 수 있는 기회를 제공합니다. 확장 및 통합은 공격 노출 영역 취약성을 증가합니다. 맬웨어 침입 위협을 방어하는 것이 중요합니다.

공격자가 파이프라인을 대상으로 하는 방법 및 이유

파이프라인 및 프로덕션 환경은 표준 애플리케이션 보안 사례 및 프로세스와 독립적일 수 있습니다. 일반적으로 공격자에게 깊고 의미 있는 액세스를 제공할 수 있는 높은 수준의 액세스 자격 증명이 필요합니다.

공격자가 시스템을 손상시키는 새로운 방법을 찾는 동안 파이프라인에 대한 가장 일반적인 공격 벡터는 다음과 같습니다.

  • 런타임 변수 및 인수 삽입 추출
  • 파이프라인에서 서비스 원칙 또는 자격 증명을 검색하는 스크립트입니다.
  • 키가 있는 모든 사용자가 DevOps 플랫폼 환경에 액세스할 수 있도록 하는 개인용 액세스 토큰이 잘못 구성되었습니다.
  • 코드에 액세스해야 하는 통합 도구의 취약성 및 잘못된 구성(종종 읽기 전용이지만 때로는 쓰기 액세스). 통합 도구에는 테스트 프레임워크, SAST(정적 애플리케이션 보안 테스트) 및 DAST(동적 애플리케이션 보안 테스트)가 포함될 수 있습니다.

비밀 및 인증서 관리에 대한 모범 사례

치명적인 위반을 방지하는 것은 효과적인 비밀 관리만큼 간단할 수 있습니다. 다음 다이어그램에서는 유효 비밀, 암호, 액세스 토큰 및 인증서 관리의 예를 보여 줍니다.

다이어그램은 비밀 및 인증서 관리를 보여 줍니다.

위의 다이어그램에 표시된 것처럼 개발자는 고객 요청에 대한 빌드를 시작합니다. 그런 다음 GitHub는 자격 증명 모음 앱 역할의 역할 ID 및 비밀 ID를 사용하여 실행기를 시작합니다. 신뢰할 수 있는 엔터티는 정기적으로 자격 증명 모음에서 새 비밀 ID를 요청하고 GitHub에서 GitHub 비밀 ID를 가져옵니다. 자격 증명 모음은 GitHub 비밀 역할 ID 및 비밀 ID를 사용하여 로그인하고 코드 서명 자산을 가져옵니다. Runner는 모바일 앱을 사용자 지정하고 코드 서명합니다.

다음 모범 사례는 비밀 및 매개 변수 노출을 최소화하는 보안 설정을 빌드하는 데 도움이 됩니다.

  • 각 애플리케이션 수명 주기 단계에서 비밀 및 인증서에 대한 보안 스토리지를 제공합니다. 항상 오픈 소스 프로젝트인 것처럼 개발합니다. 팀이 코드나 팀 환경이 아닌 키 자격 증명 모음에 비밀을 저장하고 있는지 확인합니다. 비밀을 안전하게 저장하고 액세스하려면 Azure Key Vault 클라우드 서비스를 사용합니다.
  • GitHub의 OIDC를 페더레이션 ID로 신뢰하도록 Azure를 구성합니다. OIDC(OpenID 커넥트)를 사용하면 GitHub Actions 워크플로가 Azure 자격 증명을 수명이 긴 GitHub 비밀로 저장할 필요 없이 Azure의 리소스에 액세스할 수 있습니다.

DevOps 환경 보안에 대한 더 많은 모범 사례

보안 인시던트를 방어하려면 다음 모범 사례를 검토하여 DevOps 플랫폼 환경을 강화합니다. 보안 엔터프라이즈 DevOps Environments eBook에서 이러한 권장 사항에 대한 자세한 설명을 확인하세요 .

  • 모든 DevOps 플랫폼 환경에 감사 내역을 적용합니다.감사 로그를 검토하여 액세스 권한을 얻은 사람, 발생한 변경 내용 및 활성 시스템의 날짜/시간을 추적 합니다. 특히 프로덕션으로 이동하는 CI/CD 파이프라인이 있는 DevOps 플랫폼을 포함합니다. DevOps 도구에 대한 감사 내역은 위협을 더 빠르게 수정하고, 의심스러운 활동을 찾아서 경고하고, 가능한 위반 또는 취약성에 대해 경고하고, 잠재적인 데이터 또는 권한 오용을 찾는 강력한 방법을 제공합니다. 각 환경에서 세분화된 제어 및 감사 내역을 사용할 수 있는지 확인합니다.
  • 소프트웨어 공급망을 보호합니다. 코드베이스로 가져오는 모든 라이브러리를 사용하여 소프트웨어 공급망을 확장하고 각 오픈 소스 프로젝트 또는 도구에서 종속성을 상속합니다. 소프트웨어 공급망의 공격 표면을 줄이기 위해 불필요한 라이브러리 및 오픈 소스 구성 요소를 주의해서 제거합니다.
  • IaC(Infrastructure-as-Code) 템플릿 검사를 자동화합니다. IaC 환경을 사용하면 구성 오류, 규정 준수 감사 및 정책 문제를 쉽게 검색할 수 있습니다. 규정 준수 검사 및 액세스 제어를 구현하면 전체 인프라의 보안 태세가 강화됩니다. 자동화 시스템 요구 사항을 충족하는 도구 통합의 보안을 확인합니다.
  • 승인 워크플로를 자동화합니다. 코드를 프로덕션으로 푸시하는 승인 워크플로의 경우 특정 자동 또는 수동 검사 각 요청의 보안, 비즈니스 가치, 상태 및 품질을 확인해야 합니다. 이러한 검사 개발과 프로덕션 간의 게이트로 작동하여 경고 플래그를 지정하거나 트리거하지 않고 서비스 거부 공격과 해커가 프로덕션 환경에 코드를 삽입하는 것을 방지합니다.
  • 확인된 DevOps 도구 통합만 허용합니다. 개발자 환경에서와 마찬가지로 DevOps 도구에는 DevOps 팀을 효율적이고 안전하게 만들기 위한 확장 및 통합이 제공됩니다. 확인된 통합에 작업을 실행하는 데 가능한 최소 권한이 필요한지 확인합니다. 가능한 경우 최소 권한 액세스를 구현하고 올바른 수준의 읽기/쓰기 권한을 보장합니다. 조직에 대해 GitHub Actions를 사용하지 않도록 설정하거나 제한하는 방법을 알아봅니다.

다음 단계