Skip to main content

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

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

경로 쿼리 정보

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

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

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

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

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

다음 단계

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

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