참고
사이트 관리자가 먼저 code scanning을 사용하도록 설정해야 이 기능을 사용할 수 있습니다. 자세한 내용은 어플라이언스에 대한 코드 검사 구성을(를) 참조하세요.
엔터프라이즈 소유자가 엔터프라이즈 수준에서 code scanning 정책을 설정한 경우 GitHub Code Security을 사용하거나 사용하지 않도록 설정할 수 없습니다. 자세한 내용은 엔터프라이즈에 대한 코드 보안 및 분석을 위한 정책 적용을(를) 참조하세요.
CodeQL은 보안 검사를 자동화하기 위해 GitHub에서 개발한 코드 분석 엔진입니다. CodeQL을 사용하여 코드를 분석하고 결과를 code scanning 경고로 표시할 수 있습니다.
code scanning에 대한 CodeQL 분석을 활용하는 세 가지 주요 방법은 다음과 같습니다:
-
기본 설정으로 리포지토리에서 code scanning용 CodeQL 분석을 빠르게 구성하세요. 기본 설정은 분석할 언어, 실행할 쿼리 모음, 스캔을 트리거하는 이벤트를 자동으로 선택합니다. 원할 경우 실행할 쿼리 도구 모음과 분석할 언어를 수동으로 선택할 수 있습니다. CodeQL을(를) 사용하도록 설정하면 GitHub Actions에서 워크플로 실행을 수행하여 코드를 검사합니다. 자세한 내용은 코드 검사에 대한 기본 설정 구성을(를) 참조하세요.
-
고급 설정을 사용하여 리포지토리에 CodeQL 워크플로를 추가합니다. 그러면 github/codeql-action 을 사용하여 명령을 실행하는 사용자 지정 가능한 워크플로 파일이 생성됩니다 CodeQL CLI. 자세한 내용은 코드 검사에 대한 고급 설정 구성을(를) 참조하세요.
-
외부 CI 시스템에서 CodeQL CLI를 직접 실행하고 결과를 GitHub에 업로드합니다. 자세한 내용은 사용자의 기존 CI 시스템으로 코드 검색 사용하기을(를) 참조하세요.
참고
GitHub Enterprise Server3.18에서 CodeQL 작업은 기본적으로 CodeQL CLI 버전2.21.4을 사용합니다. 외부 CI 시스템에서 분석을 실행하는 경우 동일한 버전의 CodeQL CLI 분석을 사용하는 것이 좋습니다.
경고에 대한 code scanning 자세한 내용은 코드 검사 경고을 참조하세요.
CodeQL 정보
CodeQL 는 프로그래밍 언어 및 데이터와 같은 코드를 처리하는 관련 도구입니다. 이 기능은 기존의 정적 분석기보다 더 쉽게 코드를 분석하고 코드의 잠재적 취약점을 찾을 수 있도록 만들어졌습니다.
- 코드베이스를 표현하는 CodeQL 데이터베이스를 생성합니다.
- 그런 다음 해당 데이터베이스에서 쿼리를 실행 CodeQL 하여 코드베이스의 문제를 식별합니다.
- 쿼리 결과는 code scanning와 함께 CodeQL를 사용할 때 GitHub에서 code scanning 경고로 표시됩니다.
CodeQL 는 컴파일된 언어와 해석된 언어를 모두 지원하며 지원되는 언어로 작성된 코드에서 취약성 및 오류를 찾을 수 있습니다.
CodeQL 에서는 다음 언어를 지원합니다.
- C/C++
- C#
- Go
- Java/Kotlin
- JavaScript/TypeScript
- Python
- 루비
- Rust(공개 미리 보기)
- Swift * GitHub Actions 워크플로
참고
- Java, Kotlin 또는 둘 다로 작성된 코드를 분석하는 데
java-kotlin을 사용합니다. - JavaScript, TypeScript 또는 둘 다로 작성된 코드를 분석하는 데
javascript-typescript을(를) 사용합니다.
자세한 내용은 CodeQL 웹 사이트의 설명서의 지원되는 언어와 프레임워크를 참조하세요.
중요
CodeQL 는 위에 나열 되지 않은 언어를 지원하지 않습니다. 여기에는 PHP, Scala 등이 포함되지만 이에 국한되지 않습니다. 지원되지 않는 언어로 사용 CodeQL 하려고 하면 경고가 생성되지 않고 분석이 불완전할 수 있습니다.
사용자 지정 또는 틈새 프레임워크 모델링
GitHub 전문가, 보안 연구원 및 커뮤니티 기여자는 인기 있는 프레임워크 및 라이브러리의 데이터 흐름을 모델링하기 위해 라이브러리를 작성합니다. 모델링되지 않은 사용자 지정 종속성을 사용하는 경우 확장을 사용하여 CodeQL 이러한 종속성에 대한 Visual Studio Code 모델을 만들고 이를 사용하여 분석을 확장할 수 있습니다. 자세한 내용은 CodeQL 모델 편집기 사용을(를) 참조하세요.
CodeQL 쿼리
GitHub 전문가, 보안 연구원 및 커뮤니티 기여자는 code scanning에 사용되는 기본 CodeQL 쿼리를 작성하고 유지 관리합니다. 쿼리는 분석을 개선하고 가양성 결과를 줄이기 위해 정기적으로 업데이트됩니다. 기본 및 확장 팩에서 사용할 수 있는 쿼리에 대한 자세한 내용은 기본 및 보안 확장 쿼리 도구 모음에 포함된 쿼리를 참조하세요.
사용자 고유의 쿼리 작성
쿼리는 오픈 소스이므로 github/codeql 리포지토리에서 쿼리를 보고 기여할 수 있습니다. 자세한 내용은 설명서의 쿼리 정보를 참조 CodeQL 하세요.CodeQL
추가 쿼리 실행
고급 설정 또는 외부 CI 시스템을 사용하여 코드를 스캔하는 경우 분석의 일부로 추가 쿼리를 실행할 수 있습니다.
이러한 쿼리는 게시된 CodeQL 쿼리 팩 또는 리포지토리의 CodeQL 팩에 속해야 합니다.
-
쿼리 팩이 GitHubContainer registry에 게시되면, 쿼리에 필요한 모든 전이적 종속성과 컴파일 캐시가 패키지에 포함됩니다. 그러면 성능이 향상되고 새 버전의 팩 또는 CLI로 업그레이드할 때까지 팩에서 쿼리를 실행할 때마다 동일한 결과를 얻을 수 있습니다.
-
CodeQL 쿼리 팩은 여러 GitHub 컨테이너 레지스트리에서 다운로드할 수 있습니다. 자세한 내용은 코드 검색을 위한 워크플로 구성 옵션을(를) 참조하세요.
자세한 내용은 CodeQL 팩을 사용하여 분석 사용자 지정을(를) 참조하세요.