Skip to main content
Skip to content

Dependabot 경고에 대한 도달 가능성 분석

Reachability analysis는 애플리케이션이 취약한 종속성 코드에 도달할 수 있는지 여부를 식별하여 Dependabot alerts의 우선순위를 정하는 데 도움이 됩니다.

누가 이 기능을 사용할 수 있나요?

GitHub Enterprise Cloud에서 Reachability analysis는 데이터의 저장 위치가 있는 엔터프라이즈를 포함하여 공용, 프라이빗 및 내부 리포지토리에 사용할 수 있습니다. GitHub Code Security 라이선스가 필요하지 않습니다.

취약한 종속성이 있다고 해서 애플리케이션이 영향을 받는 함수를 항상 호출하는 것은 아닙니다. Reachability analysis 사용자의 코드가 종속성을 사용하는 방식에 따라 수정의 우선순위를 지정하는 데 도움이 되도록 각 Dependabot 경고에 판정을 추가합니다.

참고

Dependabot alerts용 Reachability analysis는 공개 미리 보기에 있으며 변경될 수 있습니다.

reachability analysis 작동 방식

Reachability analysis 는 애플리케이션이 취약한 함수를 호출할 수 있는지 여부를 확인하기 위해 열려 있는 취약한 Dependabot alerts를 분석합니다. 이는 정적 분석 및 영향을 받는 함수를 식별하는 큐레이팅된 데이터를 사용하여 CodeQL 코드에서 해당 함수로의 호출 경로를 찾습니다.

분석된 Dependabot 각 경고는 우선 순위를 결정하는 데 도움이 되는 판정을 받습니다. 사용 가능한 경우 호출 경로 증거는 코드가 취약한 함수에 도달하는 방법을 보여 주므로 경고가 애플리케이션에 중요한 이유를 이해할 수 있습니다.

요구 사항 및 지원되는 에코시스템

Reachability analysis 는 npm, pnpm 또는 Yarn을 사용하는 JavaScript 리포지토리 및 TypeScript 리포지토리를 지원합니다. 리포지토리에는 잠금 파일(예: package-lock.json, pnpm-lock.yaml또는 yarn.lock.)이 있어야 합니다.

reachability analysis가 작동하려면 Dependabot alerts를 활성화해야 합니다.

분석은 GitHub-호스팅된 실행기에서 실행됩니다. 자체 호스팅 실행기는 지원되지 않습니다.

도달 가능성 판정 이해하기

심각도, EPSS(Exploit Prediction Scoring System) 점수, 종속성 범위 및 종속성 관계와 함께 도달 가능성을 사용하여 먼저 해결할 경고를 결정합니다.

판결Meaning권장 응답
접근 가능분석 결과 리포지토리의 코드에서 취약한 함수로의 호출 경로가 하나 이상 발견되었습니다.해결 조치의 우선 순위를 지정하고 호출 경로 관련 증거를 검토합니다.
잠재적으로 도달 가능분석은 취약한 함수 호출을 배제할 수 없습니다. 이러한 불확실성은 지원되지 않는 에코시스템 또는 실패한 검사로 인해 발생하지 않습니다. 여러 매니페스트가 있는 리포지토리에서 매니페스트의 디렉터리 외부에서만 찾은 호출은 잠재적으로 도달 가능한 것으로 간주됩니다.도달 가능한 경고와 함께 수정의 우선 순위를 지정합니다.
연결 불가분석이 완료되었으며 애플리케이션 코드에서 취약한 함수에 대한 호출을 찾지 못했습니다.경고에 낮은 우선 순위를 부여하지만 이 판정만으로 경고를 해제하거나 닫지 마세요.
도달 가능 여부를 확인할 수 없음예를 들어 경고가 지원되지 않는 에코시스템에 대한 경고이거나 검사가 실패하거나 시간이 초과되었기 때문에 분석을 통해 평결을 제공할 수 없습니다.다른 우선 순위 지정 신호를 사용하여 경고를 분류합니다.

도달 가능성을 사용하여 알림을 닫지 말고 우선순위를 지정합니다.

Reachability analysis 는 수정의 우선 순위를 지정하는 데 도움이 되는 기존 열린 경고에 정보를 추가합니다. 새 취약성을 찾거나 경고를 자동으로 닫거나 해제하지 않습니다.

판결은 특정 시점의 평가입니다. 도달 가능 여부 판단만을 근거로 경고를 닫거나 해제해서는 안 됩니다. 현재는 코드에서 해당 함수에 도달할 수 없더라도, 코드 변경이나 권고 업데이트로 인해 이후 검사 결과가 달라질 수 있습니다.

도달 가능성은 악용 가능성이 아닙니다.

도달 가능한 함수가 반드시 악용 가능한 것은 아닙니다. 도달 가능성은 호출 경로가 존재한다는 것을 보여줄 뿐, 공격자가 이를 이용해 취약점을 악용할 수 있음을 의미하지는 않습니다.

마찬가지로 "연결할 수 없는" 판정은 의존성이 안전하다는 보장이 아닙니다. 이러한 경고를 계속 검토하고 종속성을 최신 상태로 유지합니다.

호출 경로 증거

연결 가능한 경고의 경우 호출 경로 증거는 코드의 호출이 취약한 함수로 이어질 수 있는 방법을 보여 줍니다. 이 증거를 사용하여 애플리케이션이 영향을 받는 종속성을 어디서 사용하는지 파악하고 해결 계획을 세웁니다.

경고는 최대 5개의 샘플 경로를 표시할 수 있습니다. 이러한 샘플은 가능한 모든 호출 경로의 전체 목록이 아닙니다.

결과가 업데이트되는 시기 이해

reachability analysis를 활성화하면 리포지토리의 열린 경고에 대한 초기 검색이 시작됩니다. 그런 다음 리포지토리에 열린 경고가 있는 동안 24시간마다 한 번씩 검사가 실행됩니다. 각 검사에서는 열려 있는 모든 경고를 다룹니다.

코드 변경 내용을 푸시해도 스캔이 트리거되지 않습니다. 코드를 변경한 후에는 후속 검사가 완료될 때까지 판정에 해당 변경 내용이 반영되지 않습니다.

공개 미리 보기 동안에는 주문형 검사를 예약하거나 트리거할 수 없습니다.

검사 기간은 리포지토리 크기 및 종속성에 따라 달라집니다. 검사는 몇 분 안에 완료할 수 있지만 더 큰 검사는 더 오래 걸립니다. 공개 미리 보기 중에는 검사 시간이 3시간으로 제한됩니다.

공개 미리 보기 동안의 청구 및 사용량

Reachability analysis은 공개 미리 보기 동안 무료입니다. 해당 스캔은 과금되는 GitHub Actions분을 사용하지 않습니다.

알려진 제한

공개 미리 보기 동안 Reachability analysis에는 다음과 같은 제한 사항이 있습니다.

  • 에코시스템 지원: 지원되는 JavaScript 및 TypeScript 에코시스템 외부의 경고는 지원되지 않습니다.
  • 큰 리포지토리 및 모노 리포지토리: 일부 리포지토리는 3시간 검사 제한에 도달하거나 리소스 제한에 도달할 수 있으므로 결과를 사용할 수 없게 됩니다.

REST API를 통해 판정 사용

REST API는 reachability analysis에 대한 평결Dependabot alerts을 노출합니다. 리포지토리, 조직 및 엔터프라이즈 경고 엔드포인트를 통해 verdict를 검색할 수 있습니다. Dependabot alerts에 대한 REST API 엔드포인트을(를) 참조하세요.

다음 단계

reachability analysis을 리포지토리에서 사용 설정하려면 Dependabot 경고에 대한 도달 가능성 분석 구성을 참조하세요.