Skip to main content

CodeQL 쿼리 팩

설정에 사용할 다양한 기본 제공 CodeQL 쿼리 도구 모음 중에서 선택할 수 있습니다 CodeQLcode scanning .

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

CodeQL은(는) 다음 리포지토리 유형에 사용할 수 있습니다.

  • GitHub.com의 퍼블릭 리포지토리, GitHub CodeQL 사용 약관 참조
  • GitHub Team가 활성화된 GitHub Enterprise Cloud 또는 GitHub Code Security의 조직 소유 리포지토리

CodeQL 팩 정보

CodeQL 팩은 CodeQL 쿼리 및 라이브러리를 만들고 공유하며, 의존하고 실행하는 데 사용됩니다. 다른 사용자가 CodeQL 만든 팩을 다운로드하고 코드베이스에서 실행하여 분석을 사용자 지정할 수 있습니다.

각 CodeQL 팩의 루트 디렉터리에는 다음을 지정하는 qlpack.yml 파일이 있어야 합니다:

  • 쿼리를 컴파일하는 방법
  • 다른 CodeQL 팩 및 라이브러리에 대한 종속성
  • 쿼리 도구 모음 정의

속성에 대한 qlpack.yml 자세한 내용은 CodeQL 팩을 사용하여 분석 사용자 지정을 참조하세요.

또한 CodeQL 팩에는 다음이 포함될 수 있습니다.

  • 사용자 지정 쿼리(.ql 파일)
  • 라이브러리 파일
  • 쿼리 도구 모음
  • 메타데이터

번들에는 CodeQL CLI 전문가, 보안 연구원 및 커뮤니티 기여자가 유지 관리하는 GitHub 쿼리가 포함됩니다. 다른 조직 CodeQL 에서 개발한 쿼리를 실행하려는 경우 쿼리 팩은 쿼리를 다운로드하고 실행하는 효율적이고 신뢰할 수 있는 방법을 제공하며, 모델 팩(공개 미리 보기)을 사용하여 분석을 확장 code scanning 하여 기본적으로 지원되지 않는 라이브러리 및 프레임워크를 인식할 수 있습니다.

팩 유형 CodeQL

쿼리 팩, 라이브러리 팩 및 모델 팩의 CodeQL 세 가지 유형의 팩이 있습니다.

  • 쿼리 팩에는 데이터베이스에서 평가할 수 있는 미리 컴파일된 쿼리 집합이 CodeQL 포함되어 있습니다. 쿼리 팩은 실행되도록 설계되었습니다. 쿼리 팩이 게시되면 번들에 쿼리 원본 외에도 각 쿼리의 모든 전이적 종속성과 미리 컴파일된 표현이 포함됩니다. 이렇게 하면 팩에서 쿼리를 일관되고 효율적으로 실행할 수 있습니다.

  • 라이브러리 팩은 쿼리 자체를 포함하지 않으며, 쿼리 팩이나 다른 라이브러리 팩에서 활용할 수 있도록 설계되었습니다. 라이브러리는 별도로 컴파일되지 않습니다.

  • 모델 팩을 사용하여 분석을 확장 code scanning 하여 기본적으로 지원되지 않는 라이브러리 및 프레임워크를 인식할 수 있습니다. 모델 팩은 현재 공개 미리 보기 상태이며 변경될 수 있습니다. 공개 미리 보기 동안 모델 팩을 C/C++, C#, Java/Kotlin, Python, Ruby 및 Rust 분석에 사용할 수 있습니다. 자신만의 모델 팩을 만드는 자세한 내용은 CodeQL 팩 만들기 및 작업에서 확인합니다.

쿼리 팩을 찾을 수 있는 위치

지원되는 모든 언어에 대한 표준 CodeQL 팩은 에 Container registry게시됩니다. CodeQL CLI 번들을 사용해 CodeQL CLI를 표준 방식으로 설치한 경우, 핵심 쿼리 팩은 이미 다운로드되어 바로 사용할 수 있습니다. 그들은 다음과 같습니다.

  • codeql/cpp-queries
  • codeql/csharp-queries
  • codeql/go-queries
  • codeql/java-queries
  • codeql/javascript-queries
  • codeql/python-queries
  • codeql/ruby-queries
  • codeql/swift-queries

게시된 쿼리 팩과 다른 CodeQL 릴리스 간의 호환성에 대한 자세한 내용은 CodeQL 쿼리 팩 참조을 참조하세요.

CodeQL CLI를 사용하여 사용자 고유의 CodeQL 팩을 만들고, 팩에 종속성을 추가하고, 종속성을 설치하거나 업데이트할 수도 있습니다.

CodeQL 팩 게시 및 공유하기

다음을 통해 광범위한 CodeQL 커뮤니티와 사용자 지정 쿼리를 공유할 수 있습니다.

  • GitHub Packages에 게시: 다른 사용자가 팩을 찾아 사용할 수 있도록 공개합니다.
  • 리포지토리에 CodeQL 기여: 공식 리포지토리에 끌어오기 요청을 열어 더 넓은 커뮤니티에 도움이 되는 쿼리를 제출합니다.

팩 게시 및 다운로드 CodeQL 에 대한 자세한 내용은 CodeQL 팩 게시 및 사용을 참조하세요.

CodeQL에 기여하는 방법에 대한 자세한 내용은 CodeQL에 기여하기를 참조하세요.