Skip to main content

경로 쿼리를 사용하여 데이터 흐름 탐색

CodeQL 쿼리를 Visual Studio Code에서 실행하여 프로그램을 통해 데이터 흐름을 추적하고 잠재적인 보안 취약성 영역을 강조 표시할 수 있습니다.

경로 쿼리 정보

경로 쿼리는 @kind path-problem 속성이 있는 CodeQL 쿼리입니다. 표준 CodeQL 라이브러리에서 이러한 여러 항목을 찾을 수 있습니다.

표준 CodeQL 경로 쿼리를 실행하여 보안 취약성을 식별하고 결과를 수동으로 살펴볼 수 있습니다. CodeQL에서 데이터 흐름을 추적하는 방법에 대한 자세한 내용은 CodeQL 설명서의 "데이터 흐름 분석 정보"를 참조하세요.

데이터 흐름 분석 및 기존 쿼리에 익숙해지면 CodeQL에서 고유한 경로 쿼리를 작성할 수 있습니다. 자세한 내용은 “다음 단계”를 참조하세요.

로컬로 VS Code에서 경로 쿼리 실행

  1. VS Code에서 경로 쿼리 열기
  2. 쿼리가 열려 있는 창을 마우스 오른쪽 단추로 클릭하고 CodeQL: 선택한 데이터베이스에서 쿼리 실행을 선택합니다. 또는 VS Code Command Palette에서 실행할 수도 있습니다.
  3. 쿼리 실행이 완료되면 드롭다운 메뉴 alerts 아래의 "결과" 보기에서 결과를 확인할 수 있습니다. 각 쿼리 결과는 원본 및 싱크 간의 정보 흐름을 설명합니다.
  4. 결과를 확장하여 데이터가 따르는 개별 단계를 확인합니다.
  5. 각 단계를 클릭하여 소스 코드에서 해당 단계로 이동하고 문제를 추가로 조사합니다.

다음 단계

대규모 경로 쿼리를 실행할 준비가 되면 "변형 분석 리포지토리" 보기를 사용하여 GitHub.com에서 최대 1,000개의 리포지토리에 대해 쿼리를 실행할 수 있습니다. 자세한 정보는 "다중 리포지토리 변형 분석을 사용하여 대규모 CodeQL 쿼리 실행"을(를) 참조하세요.

사용자 고유의 경로 쿼리에 올바른 형식 및 메타데이터를 사용하는 방법에 대한 자세한 내용은 CodeQL 설명서의 "경로 쿼리 만들기"를 참조하세요. CodeQL 설명서에는 새 원본 및 싱크를 정의하는 방법에 대한 자세한 정보뿐만 아니라 분석에 맞게 표준 CodeQL 라이브러리를 확장하는 방법에 대한 템플릿 및 예제도 포함되어 있습니다.