메트릭을 사용하여 Dependabot alerts 우선 순위 지정
AppSec(애플리케이션 보안) 관리자는 종종 Dependabot alerts의 홍수에 직면하게 되어, 어떤 취약성을 먼저 해결해야 할지 판단하기 어려워집니다. Dependabot 메트릭은 경고의 우선 순위를 효율적으로 지정하는 데 도움이 되는 유용한 인사이트를 제공하여 중요한 보안 문제가 신속하게 해결되도록 보장합니다. 사용자는 가장 영향력 있는 취약성에 리소스를 집중하여 정보에 입각한 결정을 내릴 수 있습니다. 이러한 접근 방식은 조직의 보안 태세를 강화하고 취약성 관리를 간소화합니다.
Dependabot 메트릭 이해
Dependabot 메트릭은 종속성에서 감지된 취약성에 대한 자세한 정보를 제공합니다. 주요 메트릭은 다음을 포함합니다.
-
**심각도**: 취약성의 잠재적 영향을 나타냅니다(예: 낮음, 보통, 높음, 심각). -
**악용 가능성**: 취약성이 얼마나 쉽게 악용될 수 있는지 평가합니다. -
**종속성 관계**: 직접 종속성과 전이적 종속성을 구분합니다. -
**종속성 범위**: 런타임 종속성과 개발 종속성을 구분합니다. 취약한 코드가 애플리케이션에서 실제로 사용되는지 여부를 확인합니다. -
**지난 30일간 종료된 경고(Dependabot에 의해 수정된 경고 수, 수동으로 해제된 경고 수, 자동으로 해제된 경고 수 포함)**: 경고 해결 진행 상황을 추적합니다. GitHub Code Security가 취약성을 조기에 감지하는 데 어떻게 도움이 되는지 보여 줍니다. -
**각 리포지토리별로 열려 있는 총 경고 수와 심각도 및 악용 가능성 데이터를 보여 주는 표**: 리포지토리 수준에서 더 자세히 알아볼 수 있습니다.
해당 메트릭에 대한 자세한 내용은 Dependabot 경고의 메트릭 보기을(를) 참조하세요.
또한, 사용할 수 있는 개별 필터의 조합인 복잡한 필터를 지정할 수 있습니다. 필터에 대한 자세한 내용을 보려면 Dependabot 대시보드 보기 필터를 참조하세요.
경고 우선 순위를 지정하는 단계
이러한 첫 번째 단계는 조직을 가장 큰 위험에 빠뜨리는 Dependabot alerts를 식별하는 데 도움이 되므로 개발자에게 어떤 경고를 가장 먼저 집중해서 수정해야 하는지 안내할 수 있습니다.
1. 조직의 필요에 맞게 퍼널 순서 조정
"Alert prioritization" 그래프에서 기본 퍼널 순서를 사용자 지정하여, 조직의 고유한 위험 프로필, 비즈니스 우선 순위, 규정 준수 요구 사항을 반영하도록 할 수 있습니다. Dependabot 경고의 메트릭 보기을(를) 참조하세요.
2. 중요도 및 높은 심각도 경고에 집중
`severity-critical` 또는 `severity-high` 필터를 사용하여 가장 높은 심각도가 지정된 경고를 식별하는 것부터 시작하세요. 이러한 취약성은 가장 큰 위험을 초래하며 종종 규정 준수 기준에 따라 우선 순위가 지정됩니다. 그런 다음, 아래의 작업을 수행할 수 있습니다.
3. 악용 가능성 및 연결성 평가
코드베이스에서 악용될 가능성이 가장 높은 취약성의 우선 순위를 지정합니다. 악용될 가능성이 가장 높은 경고를 식별하려면 값(예: epss_percentage)에 연결된 epss_percentage>=0.10 필터를 사용할 수 있습니다.
4. 종속성 범위 및 관계 검토
직접 종속성은 일반적으로 업데이트하기가 더 쉽고 애플리케이션의 보안에 더 큰 영향을 미칠 수 있습니다. 가능한 경우, 전이적 종속성보다 먼저 이 문제를 해결하는 것이 좋습니다.
`relationship:direct` 필터를 사용하여 경고를 필터링하면 npm과 같은 지원되는 에코시스템에 대한 직접 종속성에 대한 취약성을 확인할 수 있습니다.
런타임 종속성은 프로덕션의 애플리케이션에서 사용됩니다. 이러한 종류의 종속성을 업데이트하면 최종 사용자 또는 시스템에 직접 영향을 미치는 보안 취약성을 해결하고, 버그를 수정하며, 성능을 개선할 수 있습니다. 반면, 개발 종속성은 개발, 테스트, 빌드 프로세스 중에만 사용됩니다. 이러한 종속성 문제가 중요하긴 하지만 일반적으로 실행 중인 애플리케이션이나 사용자에게 영향을 미치지는 않습니다.
`scope:runtime` 또는 `scope:development` 필터를 사용하여 런타임 또는 개발 종속성의 경고만 각각 표시할 수 있습니다.
5. 경고 생성 시점 고려
오래된 경고는 장기간 방치된 위험을 나타낼 수 있습니다. 정기적으로 오래된 경고를 검토하고 해결하여 보안 부채가 누적되는 것을 방지합니다. 예를 들어, 특정 리포지토리에 다른 리포지토리보다 우선 순위로 지정되어야 하는 경고가 더 많다는 것을 확인한 후, 다음을 수행할 수 있습니다.
- 리포지토리별 표에서 해당 리포지토리 이름을 클릭하여, 해당 리포지토리의 경고만 표시합니다.
-
**Sort** 드롭다운 목록에서 "Older" 필터와 기타 정렬 기준을 사용하여 연령별로 기준에 맞는 경고에 대한 시각화를 세부적으로 조정합니다.
6. 자동화 활용
Dependabot의 자동화된 끌어오기 요청을 사용하여 취약성을 신속하게 수정하세요. 이러한 업데이트를 CI/CD 파이프라인에 통합하면 더 빠른 해결과 효율성 향상에 도움이 됩니다.
모범 사례
- 심각도에 따라 취약성을 해결하기 위해 SLA(서비스 수준 약정)를 설정합니다.
-
**메트릭을 정기적으로 모니터링**하여 추세와 반복되는 문제를 식별합니다. -
**개발자와 협업**하여 적시에 업데이트를 수행하고 중단을 최소화합니다. -
**의사 결정을 문서화**하여 투명성을 제공하고 향후 우선 순위 지정을 지원합니다.