# 코드 및 종속성에서 취약성에 노출

자체 코드 및 타사 종속성에서 취약성이 조직의 전반적인 보안 노출에 어떻게 기여하는지, 그리고 해당 위험을 측정하고 줄이는 방법을 이해합니다.

## 해결되지 않은 취약성의 위험

조직에서는 사용자가 작성하고 유지 관리하는 코드와 코드에서 사용하는 오픈 소스 또는 타사 종속성 모두에서 취약성에 노출됩니다. 다음을 방지하려면 취약성에 대한 노출을 평가하는 것이 중요합니다.

* **예기치 않은 가동 중지 시간 및 운영 중단** 취약성을 악용하면 애플리케이션 중단, 서비스 품질 저하 또는 중요한 시스템의 연속적인 오류로 인해 비즈니스 운영이 중단될 수 있습니다.

* **수정 비용 증가** 취약한 코드가 길어질수록 특히 코드가 깊이 통합되거나 인시던트가 발생하는 경우 수정하기가 더 어렵고 비용이 많이 듭니다. 조기에 감지하고 해결하면 비용이 많이 드는 사고 대응, 비상 패치, 평판 손상의 위험이 줄어듭니다.

* **위험의 광범위한 전파** 취약한 모듈 및 종속성은 종종 여러 애플리케이션 및 서비스에서 다시 사용되므로 단일 결함이 조직 전체에 전파되어 악용의 위험과 영향을 가중시킬 수 있습니다.

* **공급망 손상** 공격자는 오픈 소스 또는 타사 종속성에서 취약성을 악용하여 악성 코드를 삽입하거나 권한을 상승하거나 시스템에 무단으로 액세스할 수 있습니다. 손상된 종속성은 악의적인 행위자의 간접 진입점 역할을 하여 광범위한 보안 인시던트로 이어질 수 있습니다.

* **규정 및 라이선스 문제** 많은 규정 및 업계 표준을 통해 조직은 소프트웨어 공급망의 알려진 취약성을 사전에 해결해야 합니다. 취약한 종속성을 수정하지 못하면 비준수, 감사, 법적 처벌 또는 오픈 소스 라이선스 의무 위반이 발생할 수 있습니다.

취약성 노출을 정기적으로 평가하면 위험을 조기에 식별하고 수정의 우선 순위를 지정하는 데 도움이 됩니다.

## 리포지토리에서 취약한 코드를 모니터링하는 방법

* **Code scanning** 는 프로젝트의 코드에서 취약성을 자동으로 모니터링합니다. 끌어오기 요청에서 보안 문제를 감지하면 취약성을 해결하기 위한 자동 수정 제안과 함께 경고를 생성합니다. 이렇게 하면 해결 장벽이 낮아지고 프로젝트가 안전하게 유지됩니다. [코드 검사에 대한 기본 설정 구성](/ko/code-security/how-tos/find-and-fix-code-vulnerabilities/configure-code-scanning/configure-code-scanning)을(를) 참조하세요.

* **Dependabot** 는 취약성 및 오래된 패키지에 대한 프로젝트의 종속성을 자동으로 모니터링합니다. 보안 문제 또는 새로운 버전이 감지되면 영향을 받는 종속성을 업데이트하기 위한 끌어오기 요청을 만들어 보안 위험을 신속하게 해결하고 소프트웨어를 최신 상태로 유지할 수 있습니다. 이렇게 하면 수동 작업이 줄어들고 프로젝트의 보안을 유지할 수 있습니다. [Dependabot 빠른 시작 가이드](/ko/code-security/tutorials/secure-your-dependencies/dependabot-quickstart)을(를) 참조하세요.

GitHub 에서는 조직의 모든 리포지토리에서 이러한 위험을 모니터링, 우선 순위 지정 및 수정하는 데 도움이 되는 포괄적인 메트릭 집합 Dependabot 을 제공합니다.
[Dependabot 경고 지표](/ko/code-security/concepts/supply-chain-security/dependabot-alert-metrics)을(를) 참조하세요.

## 조직의 취약성 노출 감소

조직의 취약성 노출을 줄이려면 리포지토리 전체에서 위험, 수정 진행률 및 정책 적용에 대한 지속적인 가시성이 필요합니다.
Dependabot 및 code scanning 메트릭은 이러한 가시성을 제공합니다. 다음 모범 사례를 사용하여 조직의 취약성 노출을 모니터링하고 줄입니다.

### 종속성에 대한 취약성 메트릭 모니터링

메트릭 개요 Dependabot 를 사용하여 조직의 종속성 취약성의 현재 상태를 파악할 수 있습니다.
[Dependabot 경고 메트릭 확인](/ko/code-security/how-tos/view-and-interpret-data/analyze-organization-data/viewing-metrics-for-dependabot-alerts)을(를) 참조하세요.

* **경고 우선 순위 지정:** CVSS 심각도, EPSS 악용 가능성, 패치 가용성 및 배포된 아티팩트에서 취약한 종속성이 실제로 사용되는지 여부와 같은 개방형 Dependabot alerts 및 사용 필터 수를 검토합니다. [대시보드 보기 필터를 참조Dependabot하세요](/ko/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/filtering-alerts-in-security-overview).
* **리포지토리 수준 분석:** 위험 또는 악용 가능한 취약성이 가장 많은 리포지토리를 식별합니다.
* **수정 추적:** 시간의 경과에 따라 수정된 경고의 수와 비율을 추적하여 취약성 관리 프로그램의 효과를 측정합니다.

### 새 code scanning 경고의 도입 모니터링

조직의 풀 요청에서 해결 활동을 파악할 수 있도록 code scanning에 대한 경고 보기를 사용하세요.
[pull request 경고에 대한 메트릭 보기](/ko/code-security/how-tos/view-and-interpret-data/analyze-organization-data/viewing-metrics-for-pull-request-alerts)을(를) 참조하세요.

* **끌어오기 요청의 경고:** 확인 없이 검색되어 기본 분기에 병합된 경고 수를 검토합니다.
* **가장 널리 사용되는 규칙:** 개발자 교육이 필요한 경우 자주 트리거되는 규칙을 식별합니다.
* **리포지토리 수준 분석:** 끌어오기 요청에서 검색되었지만 여전히 기본 분기에 병합된 경고 수가 가장 많은 리포지토리를 식별합니다.
* **수정 추적:** 시간의 경과에 따라 수정된 경고의 수와 비율을 추적하여 취약성 관리 프로그램의 효과를 측정합니다.

### 수정 작업의 우선 순위 지정

조직에 가장 높은 위험을 초래하는 취약성에 집중합니다.

* 심각도가 높거나 중요한 경고의 우선 순위를 지정합니다.
  Dependabot alerts의 경우, 높은 EPSS 점수와 사용 가능한 패치도 우선적으로 고려하세요.
* 리포지토리 분석 정보를 사용하여 가장 위험한 프로젝트에 수정 작업을 전달합니다.
* 개발 팀이 리포지토리 사용자 지정 속성 및 프로덕션 컨텍스트를 통해 배포된 아티팩트에서 실제로 사용되는 취약성을 해결하도록 장려합니다.
  [프로덕션 컨텍스트를 사용하여 Dependabot 및 코드 검사 경고 우선 순위 지정](/ko/code-security/tutorials/secure-your-organization/prioritize-alerts-in-production-code)을 참조하세요.
* 우선순위가 높은 code scanning 경고의 해결을 장려하고 추적할 수 있는 보안 캠페인을 만듭니다.
  [보안 캠페인 생성 및 관리하기](/ko/code-security/how-tos/manage-security-alerts/remediate-alerts-at-scale/creating-managing-security-campaigns)을 참조하세요.

### 위험 및 진행률 전달

* 메트릭 페이지를 사용하여 주요 위험 요소 및 수정 진행 상황을 이해 관계자에게 전달합니다.
* 미해결 상태의 심각한 취약성 감소나 수정률 개선과 같은 추세에 대한 정기적인 업데이트를 제공합니다.
* 추가 지원 또는 주의가 필요한 리포지토리 또는 팀을 강조 표시합니다.

### 정책 설정 및 적용

* 모든 기존 및 새 리포지토리에서 Dependabot 및 code scanning을 활성화하는 조직 전체 보안 구성을 설정합니다.
  [대규모 보안 기능 사용](/ko/code-security/concepts/security-at-scale/organization-security)을(를) 참조하세요.
* 종속성 검토를 사용하도록 설정하여 모든 리포지토리의 끌어오기 요청에 대해 주석을 달 수 있습니다.
* 기본 브랜치를 보호하고 풀 리퀘스트를 병합하기 전에 중요한 code scanning 경고를 해결하도록 요구하는 조직 전체 규칙 세트를 만듭니다.
  [조직의 리포지토리에 대한 규칙 집합 관리](/ko/organizations/managing-organization-settings/managing-rulesets-for-repositories-in-your-organization)을(를) 참조하세요.
* 가능한 경우 리포지토리 관리자와 협력하여 자동화된 보안 업데이트를 활성화합니다.
  [Dependabot 보안 업데이트](/ko/code-security/concepts/supply-chain-security/dependabot-security-updates)을(를) 참조하세요.

### 경고의 영향 평가

* 보안 취약성이 코드베이스에 진입하지 못하도록 차단하는 방법과 Dependabotcode scanning 경고를 정기적으로 검토합니다.
* 기록 데이터를 사용하여 사전 예방적 종속성 관리의 가치를 보여 줍니다.