제로 트러스트 개발자 환경 보호

이 문서는 개발자로서 제로 트러스트 원칙을 구현할 수 있도록 개발 환경을 보호하는 데 도움이 됩니다(명시적으로 확인, 최소 권한 액세스 사용, 위반 가정). 보안 엔터프라이즈 DevOps Environments eBook의 콘텐츠를 제공하고 분기 보안 및 신뢰할 수 있는 도구, 확장 및 통합에 대한 모범 사례를 강조 표시합니다.

개발자 속도는 비즈니스 결과를 최대화하는 방법과 위치를 작업하는 능력에 의존합니다. 루트 또는 관리자 액세스 권한이 있는 강력하고 사용자 지정 가능한 머신을 원합니다. 그러나 개발자 요구는 규정 준수 규정 및 프라이빗 직원 환경 액세스 및 스토리지를 감사하고 제어해야 하는 필요성에 반하여 실행할 수 있습니다.

조직 네트워크에 연결하는 관리되지 않는 컴퓨터는 보안 팀, 조달 및 거버넌스 위원회에 도전합니다. 개발자에게 기본 및 강화된 직원 환경을 제공하는 최상의 시나리오는 양쪽 모두에서 경멸을 만듭니다. 직원들이 어디서나 연결할 때 취약한 Wi-Fi 네트워크는 사이버 공격의 열린 문입니다. 하드웨어 도난 및 손실이 주요 관심사입니다.

취약성은 개발 환경 통합으로 확장됩니다. 풍부한 확장성을 제공하는 개발 도구는 마켓플레이스에서 통합되지 기본 수 있습니다. 악의적인 확장은 개발자 도구를 위험에 빠뜨리고 회사 전체의 위반을 일으킬 수 있습니다.

아래 다이어그램에서는 개발자 환경이 DevOps 도구 환경에 연결하여 Git 분기에 영향을 주는 방법을 확인합니다. 타사 오픈 소스 패키지 및 애플리케이션 확장에 대한 연결을 통해 환경 표면을 확장합니다. 확장은 종속성 및 확장 애플리케이션 취약성에 공격 벡터를 제공합니다.

Diagram illustrates developer environments and security threats as described in above-linked eBook and summarized in related articles linked herein.

악의적인 공격을 방지하면서 DevOps 팀 구성원에게 유연성과 제어를 제공하는 것은 보안 사무소의 기본적인 과제입니다. DevOps는 클라우드 환경(Azure VM 및 GitHub Enterprise Cloud Docs에 대한 신뢰할 수 있는 시작 참조)을 사용하여 개발자 환경을 제어하고 컨테이너를 사용하여 개발자 환경을 보호할 수 있습니다(GitHub Codespaces 설명서 참조).

또한 개발자는 이러한 제로 트러스트 조치를 구현하여 개발자 환경을 보호할 수 있습니다.

  • 최소 권한을 구성합니다.
  • 분기 보안을 사용하여 코드를 변경하고 승인할 수 있는 사용자를 제한합니다.
  • 신뢰할 수 있는 도구, 확장 및 통합만 채택합니다.

최소 권한에 대한 모범 사례

개발자는 종종 자신의 환경에서 맬웨어, 피싱 및 위반을 catch할 수 있다고 믿습니다. 대규모 개발자 환경 위협 표면은 개발자가 전지상적인 시스템 지식을 기본 것은 비현실적입니다. 조직이 공격 후 위반을 감지하면 관리자가 모든 시스템에 액세스할 수 있는 개발자 환경이 손상되면 귀중한 수정 시간이 이미 경과했을 수 있습니다.

해커가 소프트웨어 개발자 역할을 대상으로 하는 잠재적인 액세스 기회를 수정하려면 다음 제로 트러스트 앱에 대한 최소 권한 보안 모범 사례를 고려하세요.

  • DevOps에 대한 최소 권한 및 Just-In-Time 액세스를 구현합니다. 팀 구성원이 가장 짧은 시간 동안 환경에 대한 최소 액세스만 기본 있는지 확인합니다. 기본 디바이스, DevOps 도구, 릴리스 파이프라인, 코드 리포지토리, 환경, 비밀 저장소 및 데이터베이스에 대한 관리자 액세스 권한을 포함하는 정책을 적용합니다. DevOps 팀의 경우 기본 요구 사항은 조직 ID 저장소에 대한 연결입니다. ID 페더레이션을 사용하여 SaaS 환경과 통합하여 타사 플랫폼에서 ID가 중복되는 것을 방지하고 노출 위험을 줄입니다.
  • 소스 코드 액세스에 개인 액세스 토큰을 사용하지 마세요. DevOps 팀의 보안 사례에는 SaaS 기반 DevOps 도구, 코드 리포지토리(SSH, HTTPS 또는 개인용 액세스 토큰을 통해)에 대한 액세스가 포함됩니다. SaaS 기반 환경 액세스의 경우 액세스 원칙에 따라 시스템 코드 리포지토리를 다운로드(복제)할 수 있는 사용자와 디바이스(로컬, 클라우드 및 컨테이너)를 결정하는 방법에 대한 명확한 지침이 있습니다. 예를 들어 OneDrive는 관리되지 않는 디바이스 액세스를 차단하거나 제한할 수 있습니다.
  • GitHub EMU(Enterprise Managed User) 사용자 계정을 회사 ID와 표준화하고 동기화합니다. 엔터프라이즈 관리 사용자를 사용하면 IdP(ID 공급자)를 통해 엔터프라이즈 멤버의 사용자 계정을 제어할 수 있습니다. 조직 ID 저장소에서 GitHub 사용자 이름, 전자 메일 및 표시 이름을 명시적으로 정의합니다. 그러면 사용자는 직접 만난 적이 없는 경우에도 공동 작업자를 쉽게 식별할 수 있습니다.
  • 개발자가 SaaS 환경(ID가 있는 HTTPS, 개인 액세스 토큰, SSH 키로 연결)에 연결할 수 있는 세 가지 방법으로 조직 ID 저장소와 연결합니다. GitHub(GitHub EMU 계정 제외)를 사용하면 ID는 항상 공용 ID가 됩니다. SSO를 통한 제어된 액세스에는 조직 ID 저장소와의 연결이 필요합니다.
  • SSH CA(인증 기관)를 사용하여 멤버가 Git을 사용하여 리소스에 안전하게 액세스할 수 있도록 서명된 SSH 인증서를 제공합니다. SSH 인증서는 한 SSH 키가 다른 SSH 키에 서명하는 메커니즘입니다. GitHub Enterprise Cloud 는 SSH 인증서를 지원하여 조직에서 구성원이 리포지토리에 액세스하는 방법을 보다 세세하게 제어할 수 있도록 합니다. 관리 SSH CA 공개 키를 업로드하고 멤버가 Git 인증에 사용할 인증서를 발급할 수 있습니다. 인증서는 조직에 속한 리포지토리에만 액세스할 수 있습니다. 관리 리포지토리에 액세스할 때 멤버가 인증서를 사용하도록 요구할 수 있습니다.
  • Git 자격 증명 관리자를 사용하여 코드에 대한 액세스를 강화합니다. VS(Visual Studio)와 같은 도구에는 기본 제공 ID 지원이 있습니다. VS Code는 Git 자격 증명 관리자연기됩니다.

분기 보안에 대한 모범 사례

해커가 코드 리포지토리에 액세스하면 팀이 눈치채지 못한 채 시스템 보안을 연구하고 코드를 수정할 수 있습니다. 무단 코드 리포지토리 액세스를 방지하려면 코드 변경에 대한 제어를 설정하는 분기 전략을 구현합니다(다음 다이어그램에 설명된 예제 참조).

Diagram illustrates an example branching strategy that protects the main repository.

잠재적인 리포지토리 액세스 기회를 수정하려면 다음 분기 보안 모범 사례를 고려합니다.

  • 코드 검토를 사용하여 분기를 보호하여 DevOps 팀이 코드 변경 및 감사 진행을 제어할 수 있도록 합니다. 이전 다이어그램의 분기 전략은 코드 변경 문제를 해결하기 위한 명확한 명령 체인과 청사진을 제공하는 제어된 변경 흐름을 나타냅니다. 분기 전략에 대한 다양한 접근 방식 중에서 한 가지 공통점은 보호된 분기 프로덕션에 대한 새 릴리스의 소스 역할을 한다는 것입니다.
  • Git 리포지토리의 관리자가 승인 권한 부여를 제어하게 합니다. 분기 전략의 제어 메커니즘은 승인 워크플로있습니다. 보호된 분기는 변경 내용을 수락하기 전에 유효성 검사, 검토 및 승인이 필요합니다. 한 가지 옵션은 워크플로를 적용하는 분기 보호 규칙을 만드는 것입니다. 예를 들어 보호된 분기 병합된 모든 끌어오기 요청에 대해 승인 검토 또는 상태 검사 전달이 필요합니다. 분기 정책은 팀이 중요한 개발 분기를 보호하는 데 도움이 됩니다. 정책은 팀의 코드 품질을 적용하고 관리 표준을 변경합니다.

도구, 확장 및 통합을 신뢰하기 위한 모범 사례

IDE(통합 개발자 환경)의 확장성은 생산성이 높아서 기본적으로 필수 기능입니다. 특정 IDE의 마켓플레이스 내에서 확장을 적용하고 큐레이팅하여 최적의 작업 환경을 설계하는 기능을 사용합니다.

보안 IDE를 수정하려면 다음 도구, 확장 및 통합 모범 사례를 고려합니다.

  • 신뢰할 수 있는 마켓플레이스와 게시자 모두의 도구만 통합해야 합니다. 예를 들어 VS Code 마켓플레이스에 는 수명이 더 쉬워질 수 있는 수천 개의 확장이 있습니다. 그러나 팀에서 새 도구 또는 확장을 채택할 때 가장 중요한 측면은 게시자의 신뢰성을 확인하는 것입니다.
  • 개발자 환경의 공격 노출 영역을 제한하기 위해 확장 사용을 제어하는 보안 사례를 설정합니다. 대부분의 IDE 확장은 코드를 분석하기 위해 시스템에 대한 읽기 권한이 있는 파일로 작동하기 위해 특정 권한을 승인해야 합니다. 확장을 사용하려면 클라우드 환경에 대한 연결이 작동해야 합니다(메트릭 도구에서 일반적). IDE를 기반으로 추가 기능을 승인하면 조직이 더 많은 위협을 받습니다.
  • 개발자 컴퓨터에서 사용된 확장의 수와 완성도를 추적하여 잠재적인 공격 표면을 파악합니다. 확인된 게시자의 VS Code 마켓플레이스 확장만 통합합니다. VS Code를 사용하여 타사 애플리케이션 확장을 설치하는 경우 명령줄, 코드--list-extensions --show-versions로 실행 중인 확장을 정기적으로 검사. 개발자 환경에서 실행 중인 확장 가능한 구성 요소를 잘 이해합니다.

다음 단계