Skip to main content

종속성 유지 관리 모범 사례

도움이 될 수 있는 GitHub의 보안 제품을 포함하여 사용하는 종속성을 유지 관리하기 위한 지침 및 권장 사항입니다.

종속성 유지 관리 모범 사례

종속성을 최신 상태로 유지하는 것은 보안 소프트웨어 환경을 유지하는 데 중요합니다. 몇 가지 권장 사항입니다.

보안 중심 종속성 관리 도구 채택

  • 취약점의 종속성을 검사하고 업데이트를 자동으로 제안하는 도구를 사용하고 설정합니다.
  • 연속 모니터링 및 업데이트를 위해 이러한 도구가 CI/CD 파이프라인에 통합되어 있는지 확인합니다.
  • 호환성이 손상되는 변경 내용을 방지하도록 유의적 버전 지정을 따르도록 프로세스를 설정합니다.

정기적인 취약성 검사 및 감사 수행

  • 정기적인 종속성 감사 및 종속성 검사를 예약하여 오래되었거나 취약한 종속성을 식별합니다.

보안 패치 관리 자동화

  • 보안 패치를 자동으로 적용하도록 종속성 관리 도구를 구성합니다.
  • 중요한 보안 업데이트에 대한 자동 끌어오기 요청을 설정하여 신속하게 검토하고 병합할 수 있습니다.

종속성 사용에 대한 정책 적용

  • 보안 버전의 종속성 사용을 적용하는 정책을 구현합니다.
  • 취약성을 발생하거나 취약한 종속성을 업데이트하지 못하는 경우 끌어오기 요청의 병합을 차단할 수 있는 도구를 사용합니다.

CI/CD에서 보안 테스트 통합

  • CI/CD 파이프라인에 보안 테스트 도구를 통합합니다.
  • 종속성 업데이트가 보안 준수 여부를 자동으로 테스트되는지 확인합니다.

잠금 파일 및 종속성 고정 사용

  • 잠금 파일(예: package-lock.json, yarn.lock, Pipfile.lock)을 사용하여 알려진 보안 버전에 종속성을 고정합니다.
  • 이러한 잠금 파일을 정기적으로 업데이트하고 검토하여 의도하지 않은 보안 문제 없이 종속성이 최신 상태인지 확인합니다.

보안 권고 모니터링

  • 사용하는 언어 및 프레임워크에 대한 보안 권고를 구독합니다.
  • 새로운 취약점의 최신 정보를 지속적으로 확인하기 위해 권고 사항을 개발 워크플로에 자동으로 통합합니다.
  • 종속성 관리 도구에서 제공하는 대시보드를 주기적으로 확인합니다.
  • 중요한 업데이트, 특히 보안 패치에 유의하고 이를 우선 순위로 지정합니다.

버전 제어 및 변경 관리

  • 버전 제어의 종속성 변경 내용을 추적합니다(예: 자동화된 끌어오기 요청 활용).
  • 업데이트에 새로운 취약성이 발생하지 않도록 정기적인 코드 검토를 수행합니다.

교육 및 인식

  • 개발 및 운영 팀에게 종속성 보안 및 최신 상태 유지의 중요성에 대해 교육합니다.
  • 종속성 관리 및 보안 도구를 효과적으로 사용하는 방법에 대한 교육을 제공합니다.

취약성 대응 계획

  • 종속성에서 취약성이 식별되는 경우에 대한 명확한 인시던트 대응 계획을 세워야 합니다.
  • 팀이 보안 문제를 신속하게 해결하고 완화하는 방법을 알고 있는지 확인합니다.

이러한 사례를 따르면 오래되고 취약한 종속성으로 인해 발생하는 위험을 크게 줄이고 더욱 안전한 환경을 유지할 수 있습니다.

GitHub의 지원 방법

GitHub는 코드베이스의 보안을 유지하는 데 도움이 되는 몇 가지 보안 기능을 제공합니다.

종속성 그래프

  • 프로젝트 종속성의 테이블 형식 표현을 제공합니다.
  • 그래프는 프로젝트의 종속성을 이해하는 데 도움이 되며 GitHub는 이를 사용하여 취약한 종속성을 식별합니다.
  • 자세한 내용은 종속성 그래프 정보을(를) 참조하세요.

종속성 검토

  • CI/CD 파이프라인에 통합되며 모든 끌어오기 요청마다 코드에서 안전하지 않은 종속성을 감지할 수 있습니다. 자세한 내용은 종속성 검토 정보을(를) 참조하세요.

  • 종속성 검토 작업은 취약성이 발생하거나 취약한 종속성을 업데이트하지 못하는 경우 끌어오기 요청의 병합을 차단할 수 있는 도구입니다. 자세한 내용은 종속성 검토 정보의 "종속성 검토 작업 정보"를 참조하세요.

Dependabot

  • Dependabot alerts: Dependabot은 알려진 취약성에 대한 종속성을 검사하고 리포지토리에서 취약성이 발견되면 자동으로 경고를 만듭니다. 자세한 내용은 Dependabot 경고 정보을(를) 참조하세요.

  • Dependabot security updates: 취약한 종속성을 알려진 취약성이 없는 버전으로 업데이트하기 위해 끌어오기 요청을 자동으로 엽니다. 이렇게 하면 수정 사항을 신속하게 검토하고 병합할 수 있습니다. 자세한 내용은 Dependabot 보안 업데이트 정보을(를) 참조하세요.

  • Dependabot version updates: 끌어오기 요청을 자동으로 열어 종속성을 최신 버전으로 정기적으로 업데이트하여 항상 현재 패키지를 사용하도록 구성할 수도 있습니다. 자세한 내용은 Dependabot 버전 업데이트 정보을(를) 참조하세요.{ % ifversion dependabot-grouped-security-updates-config %}

  • 그룹화된 업데이트: 여러 업데이트를 단일 끌어오기 요청으로 그룹화하여 Dependabot updates에 대한 끌어오기 요청을 더 쉽게 검토하고 배포할 수 있습니다. Dependabot 버전 업데이트에 대한 끌어오기 요청 만들기 최적화그룹화된 보안 업데이트 및 예시를 참조하세요.

보안 권고

  • 프라이빗 취약성 보고: 유지 관리자는 리포지토리에 대한 보안 권고를 비공개로 논의, 수정, 게시할 수 있습니다. 자세한 내용은 보안 취약성 비공개 보고을(를) 참조하세요.

  • GitHub Advisory Database: Dependabot에서 종속성의 취약성을 식별하는 데 사용되는 보안 권고 데이터베이스입니다. 자세한 내용은 GitHub Advisory Database 정보을(를) 참조하세요.

보안 개요

  • 보안 개요 페이지의 대시보드를 주시하여 조직 또는 기업의 보안 환경 및 진행 상황에 대한 인사이트를 제공할 수 있습니다. 사용자가 주의가 필요한 리포지토리를 식별하고 애플리케이션 보안 프로그램의 상태를 모니터링하는 데 도움이 됩니다. 예를 들어 조직의 보안 위험, 보안 경고의 탐지, 해결 및 예방 추세, GitHub의 보안 기능의 사용 상태에 대한 요약을 볼 수 있습니다. 자세한 내용은 보안 개요을(를) 참조하세요.

보안 정책

GitHub의 보안 기능을 사용하는 전체 공급망에 대한 추가 지침은 엔드투엔드 공급망 보안을(를) 참조하세요.