기존 CI 시스템에서 code scanning 사용 알아보기
Actions를 사용하여 내에서 code scanning을 실행하는 대신 외부 CI/CD(연속 통합 또는 지속적인 업데이트/배포) 시스템의 코드를 분석한 다음 결과를 에 업로드할 수 있습니다.
제3자 시스템에 CodeQL CLI을(를) 추가하거나 결과를 SARIF(정적 분석 결과 교환 형식) 2.1.0 데이터로 생성할 수 있는 다른 제3자 정적 분석 도구를 사용할 수 있습니다. 지원되는 SARIF 형식에 대한 자세한 내용은 코드 검사에 대한 SARIF 지원을(를) 참조하세요.
CodeQL CLI은(는) 코드를 분석하는 데 사용할 수 있는 독립 실행형 명령줄 도구입니다. 자세한 내용은 CodeQL CLI 알아보기을(를) 참조하세요.
외부에서 생성하는 code scanning에 대한 경고는 내에서 생성하는 code scanning에 대한 경고와 동일한 방식으로 표시됩니다. 여러 구성을 사용하여 코드 검사를 실행할 때 경고의 분석 원본이 여러 개 있는 경우가 가끔 있습니다. 경고에 여러 분석 원본이 있는 경우 경고 페이지에서 각 분석 원본에 대한 경고 상태를 볼 수 있습니다. 자세한 내용은 코드 검사 경고 정보을(를) 참조하세요.
참고 항목
code scanning으로 표시할 SARIF 데이터를 업로드하면 가 Code Security를 사용하도록 설정된 조직 소유 리포지토리와 .com의 퍼블릭 리포지토리가 지원됩니다. 자세한 내용은 리포지토리에 대한 보안 및 분석 설정 관리을(를) 참조하세요.
분석 도구 설정하기
먼저 선택한 분석 도구를 다운로드하고 CI 시스템으로 설정해야 합니다.
CodeQL CLI을(를) 사용하는 경우, CodeQL CLI 번들의 전체 콘텐츠를 CodeQL code scanning 분석을 실행하려는 모든 CI 서버에서 사용할 수 있도록 해야 합니다. 자세한 내용은 CodeQL CLI 설정하기을(를) 참조하세요.
CI 시스템의 서버에서 분석 도구를 사용할 수 있게 되면 데이터를 생성할 준비가 된 것입니다.
코드 분석
CodeQL CLI 또는 다른 분석 도구를 사용하여 코드를 분석하려면 코드베이스 환경을 분석하고 설정하려는 코드가 종속성을 사용할 수 있는지 확인합니다. 일반적으로 CI 시스템의 구성 파일에서 사용할 수 있는 코드베이스에 대한 빌드 명령을 찾아볼 수도 있습니다.
그런 다음 코드베이스를 분석하고 결과를 생성하는 단계를 완료할 수 있습니다. 이는 사용 중인 정적 분석 도구에 따라 달라집니다.
CodeQL CLI을(를) 사용하는 경우, 먼저 코드에서 CodeQL 데이터베이스를 만든 다음 데이터베이스를 분석하여 SARIF 결과를 생성해야 합니다. 자세한 내용은 CodeQL 분석을 위한 코드 준비 및 CodeQL 쿼리를 사용하여 코드 분석을(를) 참조하세요.
를 사용한 인증용 토큰 생성
각 CI 서버에는 CodeQL CLI를 사용하든, REST API 또는 다른 메서드를 사용하든 관계없이 에 결과를 업로드하는 데 사용할 App 또는 personal access token이 필요합니다. 액세스 토큰 또는 security_events
쓰기 권한이 있는 App을 사용해야 합니다. CI 서버가 이미 이 범위의 토큰을 사용하여 의 리포지토리를 체크 아웃하는 경우, 잠정적으로 동일한 토큰을 사용할 수 있습니다. 그렇지 않으면 security_events
쓰기 권한이 있는 새 토큰을 만들고 이를 CI 시스템의 비밀 저장소에 추가해야 합니다. 자세한 내용은 앱 만들기 정보 및 개인용 액세스 토큰 관리을(를) 참조하세요.
에 결과를 업로드하는 다양한 방법에 대한 자세한 내용은 에 SARIF 파일 업로드을(를) 참조하세요.
에 결과 업로드
코드를 분석하고 SARIF 결과를 생성한 후 로 인증할 수 있는지 확인하면 결과를 에 업로드할 수 있습니다. 결과를 업로드하는 데 사용할 수 있는 다양한 방법에 대한 자세한 내용은 에 SARIF 파일 업로드을(를) 참조하세요.
CodeQL CLI를 사용하여 에 결과를 업로드하는 방법에 대한 자세한 내용은 에 CodeQL 분석 결과 업로드을(를) 참조하세요.
기본적으로 code scanning은 리포지토리에 대한 분석마다 하나의 SARIF 결과 파일이 있을 것으로 기대합니다. 따라서 커밋에 대한 두 번째 SARIF 결과 파일을 업로드하면 두 번째가 원래 데이터 세트를 대체하는 것으로 처리됩니다. 예를 들어 분석 도구에서 분석하는 각 언어 또는 사용하는 각 규칙 집합에 대해 다른 SARIF 파일을 생성하는 경우, 하나의 분석에 대해 두 개의 다른 SARIF 파일을 업로드할 수 있습니다. 리포지토리에서 커밋에 대해 둘 이상의 결과 집합을 업로드하려면 각 결과 세트를 고유한 세트로 식별해야 합니다. SARIF 업로드를 위한 범주 지정 방법은 분석 메서드에 따라 달라집니다. 자세한 내용은 코드 검사에 대한 SARIF 지원을(를) 참조하세요.