해결되지 않은 취약성의 위험
조직에서는 사용자가 작성하고 유지 관리하는 코드와 코드에서 사용하는 open source 또는 타사 종속성 모두에서 취약성에 노출됩니다. 다음을 방지하려면 취약성에 대한 노출을 평가하는 것이 중요합니다.
-
**예기치 않은 가동 중지 시간 및 운영 중단** 취약성을 악용하면 애플리케이션 중단, 서비스 품질 저하 또는 중요한 시스템의 연속적인 오류로 인해 비즈니스 운영이 중단될 수 있습니다. -
**수정 비용 증가** 취약한 코드가 길어질수록 특히 코드가 깊이 통합되거나 인시던트가 발생하는 경우 수정하기가 더 어렵고 비용이 많이 듭니다. 조기에 감지하고 해결하면 비용이 많이 드는 사고 대응, 비상 패치, 평판 손상의 위험이 줄어듭니다. -
**위험의 광범위한 전파** 취약한 모듈 및 종속성은 종종 여러 애플리케이션 및 서비스에서 다시 사용되므로 단일 결함이 조직 전체에 전파되어 악용의 위험과 영향을 가중시킬 수 있습니다. -
**공급망 손상** 공격자는 open source 또는 타사 종속성에서 취약성을 악용하여 악성 코드를 삽입하거나 권한을 상승하거나 시스템에 무단으로 액세스할 수 있습니다. 손상된 종속성은 악의적인 행위자의 간접 진입점 역할을 하여 광범위한 보안 인시던트로 이어질 수 있습니다. -
**규정 및 라이선스 문제** 많은 규정 및 업계 표준을 통해 조직은 소프트웨어 공급망의 알려진 취약성을 사전에 해결해야 합니다. 취약한 종속성을 수정하지 못하면 비준수, 감사, 법적 처벌 또는 open source 라이선스 의무 위반이 발생할 수 있습니다.
취약성 노출을 정기적으로 평가하면 위험을 조기에 식별하고 수정의 우선 순위를 지정하는 데 도움이 됩니다.
리포지토리에서 취약한 코드를 모니터링하는 방법
-
**Code scanning** 은(는) 프로젝트 코드의 취약성을 자동으로 감시합니다. 끌어오기 요청에서 보안 문제를 감지하면 취약성을 해결하기 위한 자동 수정 제안과 함께 경고를 생성합니다. 이렇게 하면 해결 장벽이 낮아지고 프로젝트가 안전하게 유지됩니다. [AUTOTITLE](/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning)을(를) 참조하세요. -
**Dependabot** 은(는) 프로젝트의 종속성에서 취약성 및 오래된 패키지를 자동으로 모니터링합니다. 보안 문제 또는 새로운 버전이 감지되면 영향을 받는 종속성을 업데이트하기 위한 끌어오기 요청을 만들어 보안 위험을 신속하게 해결하고 소프트웨어를 최신 상태로 유지할 수 있습니다. 이렇게 하면 수동 작업이 줄어들고 프로젝트의 보안을 유지할 수 있습니다. [AUTOTITLE](/code-security/getting-started/dependabot-quickstart-guide)을(를) 참조하세요.
GitHub는 조직의 모든 리포지토리에서 이러한 위험을 모니터링하고, 우선 순위를 지정하고, 해결하는 데 도움이 되는 포괄적인 Dependabot 메트릭 세트를 제공합니다. Dependabot 경고에 대한 메트릭 정보을(를) 참조하세요.
조직의 취약성 노출 감소
조직의 취약성 노출을 줄이려면 리포지토리 전체에서 위험, 수정 진행률 및 정책 적용에 대한 지속적인 가시성이 필요합니다. Dependabot 및 code scanning 지표가 이러한 가시성을 제공합니다. 다음 모범 사례를 사용하여 조직의 취약성 노출을 모니터링하고 줄입니다.
종속성에 대한 취약성 메트릭 모니터링
Dependabot의 메트릭 개요를 사용하면 조직의 종속성 취약성의 현재 상태를 파악할 수 있습니다. Dependabot 경고 메트릭 확인을(를) 참조하세요.
-
**경고 우선 순위 지정:** 열려 있는 Dependabot alerts의 수를 검토하고 CVSS 심각도, EPSS 악용 가능성, 패치 가용성, 배포된 아티팩트에서 취약한 종속성이 실제로 사용되는지 여부와 같은 필터를 사용합니다. [Dependabot 대시보드 보기 필터](/code-security/security-overview/filtering-alerts-in-security-overview#dependabot-dashboard-view-filters)를 참조하세요. -
**리포지토리 수준 분석:** 위험 또는 악용 가능한 취약성이 가장 많은 리포지토리를 식별합니다. -
**수정 추적:** 시간의 경과에 따라 수정된 경고의 수와 비율을 추적하여 취약성 관리 프로그램의 효과를 측정합니다.
새 code scanning 경고 도입 모니터링
code scanning에 대한 경고 보기를 사용하여 조직 내에 풀 요청에서 진행되는 수정 활동을 파악하십시오. pull request 경고에 대한 메트릭 보기을(를) 참조하세요.
-
**끌어오기 요청의 경고:** 확인 없이 검색되어 기본 분기에 병합된 경고 수를 검토합니다. -
**가장 널리 사용되는 규칙:** 개발자 교육이 필요한 경우 자주 트리거되는 규칙을 식별합니다. -
**리포지토리 수준 분석:** 끌어오기 요청에서 검색되었지만 여전히 기본 분기에 병합된 경고 수가 가장 많은 리포지토리를 식별합니다. -
**수정 추적:** 시간의 경과에 따라 수정된 경고의 수와 비율을 추적하여 취약성 관리 프로그램의 효과를 측정합니다.
수정 작업의 우선 순위 지정
조직에 가장 높은 위험을 초래하는 취약성에 집중합니다.
- 심각도가 높거나 중요한 경고의 우선 순위를 지정합니다. Dependabot alerts의 경우, 높은 EPSS 점수와 패치 가용성 여부를 우선순위로 고려하십시오.
- 리포지토리 분석 정보를 사용하여 가장 위험한 프로젝트에 수정 작업을 전달합니다.
- 개발 팀이 리포지토리 사용자 지정 속성 및 프로덕션 컨텍스트를 통해 배포된 아티팩트에서 실제로 사용되는 취약성을 해결하도록 장려합니다. 프로덕션 컨텍스트를 사용하여 Dependabot 및 코드 검사 경고 우선 순위 지정을 참조하세요.
- 우선순위가 높은 code scanning 경고의 수정을 장려하고 추적하기 위해 보안 캠페인을 생성하십시오. 자세한 내용은 보안 캠페인 생성 및 관리하기을 참조하세요.
위험 및 진행률 전달
- 메트릭 페이지를 사용하여 주요 위험 요소 및 수정 진행 상황을 이해 관계자에게 전달합니다.
- 미해결 상태의 심각한 취약성 감소나 수정률 개선과 같은 추세에 대한 정기적인 업데이트를 제공합니다.
- 추가 지원 또는 주의가 필요한 리포지토리 또는 팀을 강조 표시합니다.
정책 설정 및 적용
- 기존 및 신규의 모든 리포지토리에서 Dependabot 및 code scanning이 활성화하도록 하는 조직 전체 보안 구성을 설정하십시오. 보안 기능의 대규모 사용에 대해을(를) 참조하세요.
- 종속성 검토를 사용하도록 설정하여 모든 리포지토리의 끌어오기 요청에 대해 주석을 달 수 있습니다.
- 기본 분기를 보호하고, 풀 리퀘스트를 머지하기 전에 심각한 code scanning 경고가 반드시 해결되도록 조직 전체 규칙 세트를 생성하십시오. 조직의 리포지토리에 대한 규칙 집합 관리을(를) 참조하세요.
- 가능한 경우 리포지토리 관리자와 협력하여 자동화된 보안 업데이트를 활성화합니다. Dependabot 보안 업데이트 정보을(를) 참조하세요.
경고의 영향 평가
- Dependabot 및 code scanning 경고가 코드베이스로 보안 취약점이 침투하는 것을 차단하는 데 얼마나 도움이 되고 있는지를 정기적으로 검토하십시오.
- 기록 데이터를 사용하여 사전 예방적 종속성 관리의 가치를 보여 줍니다.