code scanning의 경고 정보
기본 CodeQL 분석, 타사 분석 또는 여러 유형의 분석을 사용하여 리포지토리의 코드를 확인하도록 code scanning을(를) 구성할 수 있습니다. 분석이 완료되면 결과 경고가 리포지토리의 보안 보기에 나란히 표시됩니다. 타사 도구 또는 사용자 지정 쿼리의 결과에는 GitHub의 기본 CodeQL 분석에서 감지한 경고에 대해 표시되는 속성 중 일부가 포함되지 않을 수 있습니다. 자세한 내용은 "리포지토리에 대한 코드 검사 구성"을 참조하세요.
기본적으로 code scanning은 기본 분기 및 끌어오기 요청 중에 주기적으로 코드를 분석합니다. 끌어오기 요청에 대한 경고를 관리하는 방법에 대한 자세한 내용은 "끌어오기 요청에서 코드 검사 경고 심사"을 참조하세요.
경고 세부 정보
각 경고는 코드 관련 문제 및 이를 식별한 도구 이름을 강조 표시합니다. 경고를 트리거한 코드 줄과 경고 속성(예: 경고 심각도, 보안 심각도 및 문제의 특성)을 볼 수 있습니다. 또한 경고는 문제가 처음 발생한 시간을 알려줍니다. CodeQL 분석에서 식별한 경고의 경우 문제를 해결하는 방법에 대한 정보도 표시됩니다.
경고 페이지에 있는 상태와 세부 정보는 경고가 다른 분기에 있는 경우에도 리포지토리의 기본 분기에 있는 경고의 상태만 반영합니다. 경고 페이지의 오른쪽에 있는 영향받는 분기 섹션에서 기본 분기가 아닌 분기에 대한 경고 상태를 볼 수 있습니다. 경고가 기본 분기에 없는 경우 경고 상태가 "끌어오기 요청 내" 또는 "분기 내"로 표시되고 회색으로 표시됩니다.
CodeQL를 사용하여 code scanning을(를) 구성하는 경우 코드에서 데이터 흐름 문제를 찾을 수도 있습니다. 데이터 흐름 분석은 코드에서 잠재적인 보안 문제(예: 안전하지 않은 데이터 사용, 함수에 위험한 인수 전달, 중요한 정보 유출)를 찾습니다.
code scanning에서 데이터 흐름 경고를 보고하면 GitHub에서 데이터가 코드를 통해 이동하는 방법을 보여 줍니다. 를 사용하면 중요한 정보를 유출하는 코드 영역을 식별할 수 있으며, 이 영역은 악의적인 사용자의 공격에 대한 진입점이 될 수 있습니다.
심각도 수준 정보
경고 심각도 수준은 Error
, Warning
또는 Note
일 수 있습니다.
code scanning이 끌어오기 요청 확인으로 사용하도록 설정되는 경우 심각도가 error
인 결과가 검색되면 확인이 실패합니다. 확인 실패가 발생하는 코드 검사 경고의 심각도 수준을 지정할 수 있습니다. 자세한 내용은 "코드 검사 사용자 지정"을 참조하세요.
보안 심각도 수준 정보
는 보안 쿼리에서 생성된 경고에 대한 보안 심각도 수준을 표시합니다. 보안 심각도 수준은 Critical
, High
, Medium
또는 Low
일 수 있습니다.
경고의 보안 심각도를 계산하기 위해 CVSS(Common Vulnerability Scoring System) 데이터를 사용합니다. CVSS는 소프트웨어 취약성의 특성 및 심각도를 전달하기 위한 개방형 프레임워크이며, 일반적으로 다른 보안 제품에서 경고 점수를 매기는 데 사용됩니다. 심각도 수준을 계산하는 방법에 대한 자세한 내용은 이 블로그 게시물을 참조하세요.
기본적으로 보안 심각도가 Critical
또는 High
인 모든 code scanning 결과로 인해 확인 실패가 발생합니다. 확인 실패가 발생해야 하는 code scanning 결과에 대한 보안 심각도 수준을 지정할 수 있습니다. 자세한 내용은 "코드 검사 사용자 지정"을 참조하세요.
분석 원본 정보
다른 도구를 사용하고 코드의 다른 언어 또는 영역을 대상으로 하여 리포지토리에서 여러 코드 분석 구성을 실행할 수 있습니다. 코드 검사의 각 구성은 생성하는 모든 경고에 대한 분석 원본입니다. 예를 들어 GitHub Actions에서 기본 CodeQL 분석을 사용하여 생성된 경고는 외부에서 생성되고 코드 검사 API를 통해 업로드된 경고와 다른 분석 원본을 갖습니다.
여러 구성을 사용하여 파일을 분석하는 경우 동일한 쿼리에서 검색된 모든 문제는 여러 분석 원본이 있는 경고로 보고됩니다. 경고에 둘 이상의 분석 원본이 있는 경우 아이콘이 경고 페이지의 오른쪽에 있는 영향을 받는 분기 섹션의 관련 분기 옆에 표시됩니다. 마우스로 아이콘 위를 가리키면 각 분석 원본의 이름과 해당 분석 원본에 대한 경고 상태를 볼 수 있습니다. 또한 경고 페이지의 타임라인에서 각 분석 원본에 경고가 발생한 시점의 기록을 볼 수 있습니다. 경고에 하나의 분석 원본만 있는 경우 경고 페이지에 분석 원본에 대한 정보가 표시되지 않습니다.
참고: 코드 검사 경고가 한 분석 원본에 대해 고정된 것으로 표시되지만 두 번째 분석 원본에 대해 여전히 열려 있는 경우가 있습니다. 이 문제는 두 번째 코드 검사 구성을 다시 실행하여 해당 분석 원본에 대한 경고 상태를 업데이트하면 해결할 수 있습니다.
애플리케이션 코드에 없는 경고에 대한 레이블 정보
GitHub AE은 범주 레이블을 애플리케이션 코드에 없는 경고에 할당합니다. 레이블은 경고의 위치와 관련이 있습니다.
- 생성됨: 빌드 프로세스에서 생성된 코드
- 테스트: 테스트 코드
- 라이브러리: 라이브러리 또는 타사 코드
- 설명서: 설명서
는 파일을 파일 경로별로 분류합니다. 원본 파일은 수동으로 분류할 수 없습니다.
라이브러리 코드에서 발생하는 것으로 표시된 경고의 code scanning 경고 목록의 예는 다음과 같습니다.
경고 페이지에서 파일 경로가 라이브러리 코드(Library
레이블)로 표시된 것을 볼 수 있습니다.