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