Copilot 코딩 도우미은(는) 코드에 접근하고 리포지토리에 변경 사항을 푸시할 수 있는 자율 에이전트입니다. 이 기능은 특정 위험을 내포하고 있습니다.
가능한 경우 GitHub에서 적절한 완화를 적용했습니다. 이렇게 하면 Copilot 코딩 도우미 모범 사례 지침에 따라 보완할 수 있는 강력한 기본 제공 보안 보호 기반이 됩니다.
검증되지 않은 코드는 취약성을 유발할 수 있습니다.
기본적으로 Copilot 코딩 도우미는 생성한 코드에 보안 문제가 없는지 검토하고 Copilot 코드 검토를 통해 코드에 대한 추가적인 검토를 받습니다. 끌어오기 요청을 완료하기 전에 식별된 문제를 해결하려고 시도합니다. 이렇게 하면 코드 품질이 향상되고 Copilot 코딩 도우미에서 생성되는 코드가 하드 코딩된 비밀, 안전하지 않은 종속성 및 기타 취약성과 같은 문제를 발생시킬 가능성을 줄입니다. Copilot 코딩 도우미의 보안 유효성 검사에는 GitHub Secret Protection, GitHub Code Security, or GitHub Advanced Security 라이선스가 필요하지 않습니다 .
-
**CodeQL** 는 코드 보안 문제를 식별하는 데 사용됩니다. - 새로 도입된 종속성은 GitHub Advisory Database 에 대해 맬웨어 관련 권고사항 및 CVSS 등급이 높음 또는 위험으로 평가된 취약점에 대해 검사됩니다.
-
**Secret scanning** 는 API 키, 토큰 및 기타 비밀과 같은 중요한 정보를 검색하는 데 사용됩니다. - 수행된 분석 및 Copilot 코딩 도우미에서 수행한 작업에 대한 세부 정보는 세션 로그에서 검토할 수 있습니다. GitHub 코필로트의 세션 추적을(를) 참조하세요.
필요에 따라 Copilot 코딩 도우미에서 사용하는 코드 품질 및 보안 유효성 검사 도구를 하나 이상 사용하지 않도록 설정할 수 있습니다. GitHub Copilot 코딩 에이전트에 대한 설정 구성을(를) 참조하세요.
Copilot 코딩 도우미 코드 변경 내용을 저장소에 푸시할 수 있습니다.
이 위험을 완화하려면 GitHub을(를) 사용하십시오.
-
**에이전트를 트리거할 수 있는 사용자를 제한합니다.** 리포지토리에 쓰기 권한이 있는 사용자만 Copilot 코딩 도우미을 트리거하여 작동시킬 수 있습니다. 쓰기 access 없는 사용자의 주석은 에이전트에 표시되지 않습니다. -
**에이전트가 푸시할 수 있는 브랜치를 제한합니다.** Copilot 코딩 도우미에는 단일 분기로 푸시할 수 있는 기능만 있습니다. 기존의 끌어오기 요청에서 `@copilot`를 언급하여 에이전트가 트리거되면, Copilot은 그 요청의 분기에 쓰기 권한을 갖습니다. 다른 경우에는 새로운 `copilot/` 분기가 Copilot에 대해 생성되며, 에이전트는 해당 분기로만 푸시할 수 있습니다. 에이전트는 또한 작업 리포지토리에 대한 브랜치 보호 및 필수 확인 사항의 적용을 받습니다. -
**에이전트의 자격 증명을 제한합니다.** Copilot 코딩 도우미은(는) 간단한 push 작업만 수행할 수 있습니다. `git push` 또는 다른 Git 명령을 직접 실행하는 것은 불가능합니다. -
**병합하기 전에 사용자 검토가 필요합니다.** Copilot 코딩 도우미에서 만든 초안 끌어오기 요청은 사람이 검토하고 병합해야 합니다. Copilot 코딩 도우미에서 끌어오기 요청을 "검토 준비 완료"로 표시할 수 없으며 끌어오기 요청을 승인하거나 병합할 수 없습니다. -
**GitHub Actions 워크플로 실행을 제한합니다.** 기본적으로 Copilot 코딩 도우미의 코드를 검토하고 리포지토리에 대한 쓰기 권한이 있는 사용자가 **워크플로 승인 및 실행** 단추를 클릭할 때까지 워크플로가 트리거되지 않습니다. 선택적으로 Copilot를 구성하여 워크플로를 자동으로 실행할 수 있습니다. [AUTOTITLE](/copilot/how-tos/use-copilot-agents/coding-agent/review-copilot-prs#managing-github-actions-workflow-runs)을(를) 참조하세요. -
**Copilot 코딩 도우미를 요청한 사용자가 끌어오기 요청을 생성한 경우, 해당 사용자가 이를 승인하지 못하도록 방지합니다.** 이렇게 하면 ‘필수 승인’ 규칙과 분기 보호 기능이 예상대로 유지됩니다. [AUTOTITLE](/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets)을(를) 참조하세요.
Copilot 코딩 도우미 중요한 정보에 액세스할 수 있습니다.
Copilot 코딩 도우미은(는) 코드 및 기타 중요한 정보에 대한 접근이 가능하며, 실수로 또는 악의적인 사용자 입력으로 인해 정보를 유출할 수 있습니다.
이러한 위험을 완화하기 위해 GitHub는 인터넷에 대한 Copilot 코딩 도우미의 액세스를 제한합니다. GitHub Copilot 코딩 에이전트에 대한 방화벽 사용자 지정 또는 비활성화을(를) 참조하세요.
AI 프롬프트는 주입에 취약할 수 있습니다.
사용자는 Copilot 코딩 도우미에 할당된 문제에 숨겨진 메시지를 포함하거나 Copilot 코딩 도우미에 남아 있는 메모를 프롬프트 삽입의 한 형태로 포함할 수 있습니다.
이러한 위험을 완화하기 위해 GitHub는 사용자 입력을 Copilot 코딩 도우미에 전달하기 전에 숨겨진 문자를 필터링합니다. 예를 들어 이슈 또는 풀 리퀘스트 주석으로 입력한 텍스트는 Copilot 코딩 도우미에 전달되지 않습니다.
관리자는 에이전트의 작업을 볼 수 없습니다.
이러한 위험을 완화하기 위해 Copilot 코딩 도우미는 감사 가능하고 추적 가능하도록 설계되었습니다.
- Copilot 코딩 도우미의 커밋은 Copilot에 의해 작성되며, 이슈를 할당하거나 변경 요청을 한 개발자는 공동 저자로 표시됩니다. 이렇게 하면 Copilot 코딩 도우미에서 생성된 코드와 작업을 시작한 사용자를 더 쉽게 식별할 수 있습니다.
- 세션 로그 및 감사 로그 이벤트는 관리자가 사용할 수 있습니다.
- 각 에이전트 작성 커밋에 대한 커밋 메시지에는 코드 검토 및 감사를 위해 에이전트 세션 로그에 대한 링크가 포함되어 있습니다. GitHub 코필로트의 세션 추적을(를) 참조하세요.