# 끌어오기 요청에서 AI 기반 보안 검색

AI 기반 보안 탐지는 AI 기반 스캔 엔진을 사용하여 CodeQL에서 지원되지 않는 언어 및 프레임워크의 pull request에서 보안 취약성을 찾습니다.

> \[!NOTE]
> AI 기반 보안 탐지는 현재 공개 미리 보기 상태이며 변경될 수 있습니다.

AI 기반 보안 탐지는 풀 요청에서 실행되고 CodeQL를 보완하는 AI 기반 검사 엔진이 생성하는 추가적인 보안 탐지 결과입니다. 경고와 달리 CodeQL AI 기반 검색 결과는 끌어오기 요청에서만 사용할 수 있으며 리포지토리의 보안 보기에 백로그 경고로 표시되지 않습니다.

CodeQL 지원되는 특정 언어 및 쿼리 집합에 대한 고정밀 정적 분석을 제공하지만, 많은 리포지토리는 다루지 않는 언어 및 프레임워크를 CodeQL 사용합니다. AI 기반 검색은 이러한 영역으로 범위를 확장 code scanning 하여 새로운 도구 또는 구성을 추가하지 않고도 취약성을 찾을 수 있도록 지원합니다.

공개 미리 보기 동안 AI 기반 보안 탐지에는 GitHub Advanced Security 라이선스와 GitHub Copilot 라이선스가 필요합니다.

사용량은 AI credits을(를) 소모합니다.
[Usage-based billing for organizations and enterprises](/ko/enterprise-cloud@latest/copilot/concepts/billing/usage-based-billing-for-organizations-and-enterprises)을(를) 참조하세요.

## AI 기반 보안 검색 작동 방식

AI 기반 보안 검색은 기본 설정이 활성화되고 AI 기반 검색이 CodeQL 옵트인된 리포지토리의 끌어오기 요청에서 자동으로 실행됩니다. AI 기반 스캔은 CodeQL와 동일하게 풀 리퀘스트가 생성될 때와 새 커밋이 있을 때마다 트리거됩니다.

AI 기반 결과는 권고이며 끌어오기 요청 병합을 차단하지 않습니다. 워크플로를 중단하지 않고 코드 보안을 개선할 수 있는 위치에 대한 신호를 제공합니다.

AI 검색 엔진은 끌어오기 요청의 코드에서 직접 작동하며 빌드 시스템이 필요하지 않습니다. 코드 검색과 같은 도구를 사용하여 문제에 플래그를 지정할지 여부를 결정할 때 리포지토리에서 추가 컨텍스트를 수집합니다. 고유한 특수화된 프롬프트를 사용하며 사용자 지정 명령 파일(예: `/.github/copilot-instructions.md` 또는 `/CLAUDE.md`.)을 사용하지 않습니다.

AI 스캔은 CodeQL의 상태와 독립적으로 실행됩니다. 기본 설정이 실패하거나 대기 상태이면 CodeQL AI 기반 검색이 계속 실행됩니다.

결과가 발견되면 끌어오기 요청에 게시됩니다.
CodeQL 검사를 완료하는 데 시간이 더 오래 걸리면 CodeQL 결과가 표시되기 전에 AI 기반 발견 항목이 먼저 표시되거나, 그 반대의 경우도 있습니다.

## 끌어오기 요청에 대한 결과 표시 방법

AI 기반 분석 결과는 풀 리퀘스트의 CodeQL 탭과 **Files changed** 탭에서 \*\*\*\* 경고 옆에 표시됩니다. 각 AI 기반 탐지 결과에는 CodeQL 경고와 구분할 수 있도록 "AI" 표시가 붙습니다.

각 결과에는 보안 문제에 대한 설명과 위험에 대한 설명이 포함됩니다. 대부분의 발견 사항에는 권장되는 해결 방법도 포함되지만, 모든 발견 사항에 해결 방법이 있는 것은 아닙니다. 제안된 수정 방법을 사용할 수 있는 경우, Copilot Autofix가 포함되며 CodeQL 경고의 경우와 마찬가지로 문제를 해결하기 위한 권장 코드 변경 사항을 제공합니다. 결과에는 시간이 지남에 따라 검색 품질을 개선하는 데 도움이 되는 엄지 손가락 위쪽/아래쪽 피드백 메커니즘도 포함됩니다.

## Limitations

* AI 기반 보안 검색은 끌어오기 요청만 분석합니다. 전체 리포지토리 검사는 지원되지 않습니다.
* 병합 요구 사항을 적용하기 위해 규칙 집합에서 AI 기반 결과를 아직 사용할 수 없습니다.
* 기능이 진화함에 따라 검색 범주 및 지원되는 언어가 변경 될 수 있습니다.
* 모든 AI 기반 도구와 마찬가지로 결과에는 가양성이 포함될 수 있습니다. 피드백 메커니즘을 사용하여 부정확한 결과를 보고합니다.

## 지원되는 언어

AI 기반 보안 검색은 현재 지원 CodeQL되지 않는 언어 및 프레임워크를 포함하도록 설계되었습니다. 여기에는 이에 국한되지 않고 PHP, Shell/Bash, Terraform 구성(HCL), Dockerfile과 같은 언어와 Java용 JSP 및 C#용 Blazor와 같은 프레임워크 지원 범위의 공백이 포함됩니다.

지원되는 CodeQL언어의 전체 목록은 [CodeQL을 사용하여 코드 검색](/ko/enterprise-cloud@latest/code-security/concepts/code-scanning/codeql/codeql-code-scanning)을 참조하세요.

## 감지 범주

AI 기반 보안 검색은 현재 다음 범주를 다룹니다. 이러한 범주는 결과를 분류하는 방법을 설명합니다. 모델이 개선됨에 따라 AI 스캐너는 시간이 지남에 따라 진화할 수 있습니다.

* **문자열 인젝션** — 이스케이프 처리 또는 새니타이징이 누락되었거나 올바르지 않은, 문자열로 구성된 안전하지 않은 SQL, HTML, 셸, JSON 또는 YAML.
* **약한 암호화** — 약한 알고리즘, 작은 키, 안전하지 않은 임의성, 누락된 암호화 또는 약한 암호 해시입니다.
* **취약한 액세스 제어** — 경로 순회, CSRF 허점 또는 사용자 유도형 오픈 리디렉션.
* **중요한 데이터 노출** - 적절한 보호 없이 저장, 기록 또는 전송된 비밀, 토큰, 암호 또는 스택 추적입니다.
* **보안 구성 오류** - 보안 컨트롤을 사용하지 않도록 설정하거나 디버그 기능을 사용하도록 설정하는 것과 같은 위험한 기본값 또는 설정입니다.
* **인증 실패** - TLS 또는 유효성 검사 누락, 안전하지 않은 인증 흐름 또는 누락된 속도 제한
* **데이터 무결성 오류** - 안전하지 않은 역직렬화, 중요한 작업에 대한 HTTP, 프로토타입 오염 또는 신뢰할 수 없는 콘텐츠 실행
* **SSRF(서버 쪽 요청 위조)** - 서버는 공격자가 제어하는 URL, 호스트 또는 프로토콜을 가져옵니다.
* **공급망 위험** — 고정되지 않은 타사 작업, 패키지 또는 이미지 또는 무결성 검사 없이 다운로드.

## AI 기반 보안 탐지 활성화

AI 기반 보안 검색은 기본적으로 엔터프라이즈 수준에서 허용되지 않으며 조직 및 리포지토리 수준에서 사용하지 않도록 설정됩니다. 엔터프라이즈 관리자는 조직에서 이 기능을 사용하도록 설정하기 전에 명시적으로 이 기능을 허용해야 합니다. 조직 관리자는 이 기능을 명시적으로 옵트인해야 합니다. 리포지토리 관리자는 기능을 옵트아웃할 수 있습니다. 또한 기본 설정을 사용하도록 설정해야 합니다 CodeQL .

AI 기반 보안 검색을 사용하도록 설정하는 모델을 선택할 필요가 없습니다.

* **엔터프라이즈**: "코드 보안"의 **AI 결과** 정책은 조직이 이 기능을 사용하도록 설정할 수 있는지 여부를 제어합니다.
  [엔터프라이즈에 대한 코드 보안 및 분석을 위한 정책 적용](/ko/enterprise-cloud@latest/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-security-and-analysis-for-your-enterprise#enforcing-a-policy-to-manage-the-use-of-ai-powered-security-detections-in-your-enterprises-repositories)을(를) 참조하세요.
* **조직**: "코드 검사" 아래의 **AI 결과** 설정을 통해 조직의 리포지토리에 대한 AI 기반 검색을 사용할 수 있습니다.
  [조직에 대한 글로벌 보안 설정 구성](/ko/enterprise-cloud@latest/code-security/how-tos/secure-at-scale/configure-organization-security/establish-complete-coverage/configure-global-settings#enabling-ai-powered-security-detections)을(를) 참조하세요.
* **리포지토리**: "코드 검색"에서 **AI 결과** 토글은 개별 리포지토리에 대한 AI 기반 검색을 사용하거나 사용하지 않도록 설정합니다. 리포지토리는 조직 설정을 상속하지만 개별적으로 옵트아웃할 수 있습니다.