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