편집기 확장 프로그램 및 CLI 도구의 보안 고려사항
GitLab 편집기 확장 프로그램과 CLI 도구는 로컬 환경에서 AI 에이전트를 실행할 수 있습니다. 편집기 확장 프로그램과 CLI 도구가 로컬에서 에이전트를 실행하는 경우, 에이전트는 컨테이너 격리 없이 실행되어 시스템 리소스에 직접 액세스할 수 있습니다.
GitLab 편집기 확장 프로그램과 CLI 도구는 로컬 환경에서 AI 에이전트를 실행할 수 있습니다. 보안 영향을 이해하고 개발 환경을 보호하기 위한 모범 사례를 따르십시오.
로컬 에이전트 실행 위험#
편집기 확장 프로그램과 CLI 도구가 로컬에서 에이전트를 실행하는 경우, 에이전트는 컨테이너 격리 없이 실행되어 시스템 리소스에 직접 액세스할 수 있습니다.
파일 시스템 액세스#
에이전트는 작업 유형에 따라 다른 파일 액세스 수준을 갖습니다.
파일 작업#
에이전트는 다음에 대한 파일 작업(읽기, 쓰기, 편집, 검색 및 나열)을 수행할 수 있습니다:
- GitLab 프로젝트의 Git 리포지토리에 있는 파일.
.gitignore규칙으로 제외되지 않은 파일.- Git 리포지토리 내의 파일을 가리키는 유효하거나 해석 가능한 심볼릭 링크.
파일에 대한 셸 작업#
에이전트가 실행하는 셸 명령은 Git 리포지토리 외부의 파일과
.gitignore 패턴과 일치하는 파일을 포함하여 모든 파일에 액세스할 수 있습니다.
환경 변수 액세스#
에이전트는 다음을 제외한 셸 세션의 모든 환경 변수에 액세스할 수 있습니다:
CI_JOB_TOKENGITLAB_OAUTH_TOKENDUO_WORKFLOW_SERVICE_TOKEN
시스템 리소스#
에이전트는 다음 시스템 리소스에 액세스할 수 있습니다:
- 네트워크 요청: 에이전트가 워크스테이션에서 네트워크 요청을 할 수 있습니다.
- 프로세스 실행: 에이전트가 셸 환경에서 명령을 실행할 수 있습니다.
보안 위협#
격리가 없기 때문에 다음과 같은 위협이 가능합니다:
- 프롬프트 인젝션: 악의적인 프롬프트가 에이전트 동작을 조작하여 의도하지 않은 작업을 실행합니다.
- 에이전트 침해: 침해된 에이전트가 워크스테이션 리소스에 대한 액세스를 제공합니다.
- 데이터 유출: 비밀번호, 소스 코드, 개인 파일 등 민감한 데이터를 포함하여 워크스테이션의 모든 데이터가 도난될 수 있습니다.
- 측면 이동: 노출된 자격 증명이 다른 시스템 및 서비스에 대한 액세스를 가능하게 합니다.
권장 보안 사례#
개발 환경을 보호하려면 다음 보안 모범 사례를 따르십시오.
승인 전 도구 호출 검토#
에이전트가 작업 실행을 위해 승인을 요청할 때 각 도구 호출을 승인하기 전에 신중하게 검토하십시오.
다음을 확인하십시오:
- 명령 및 파일 작업이 의도한 작업과 일치합니다.
- 파일 경로가 심볼릭 링크 대상 파일을 포함하여 예상 디렉토리 내에 있습니다.
- 명령 인수에 예상치 못한 플래그나 매개변수가 포함되지 않습니다.
- 민감한 파일 액세스 및 네트워크 요청이 작업에 필요합니다.
관리자는 각 호출을 승인하는 대신 세션에서 도구를 한 번만 승인할 수 있는지 여부를 제어할 수 있습니다. 자세한 내용은 도구 승인을 참조하십시오.
MCP 서버 소스 및 권한 확인#
GitLab Duo와 함께 Model Context Protocol(MCP) 서버를 안전하게 사용하려면:
- 신뢰할 수 있는 소스의 MCP 서버만 활성화합니다.
- 각 MCP 서버가 요청하는 권한 및 기능을 검토합니다.
- MCP 서버를 활성화하기 전에 서버가 액세스할 수 있는 데이터를 검토합니다.
- 환경에서 어떤 MCP 서버가 활성화되어 있는지 정기적으로 감사합니다.
헤드리스 모드 사용 시 주의#
GitLab Duo CLI를 헤드리스 모드로 사용하는 경우 도구 호출이 자동으로 승인됩니다. 개발 컨테이너와 같은 통제된 샌드박스 환경에서 헤드리스 모드를 신중하게 사용하십시오.
격리를 위한 개발 컨테이너 사용#
로컬 실행 위험을 완화하려면 개발 컨테이너를 사용하십시오.
개발 컨테이너는 다음을 제공합니다:
- 프로세스 격리: 호스트 머신이 아닌 격리된 컨테이너 환경에서 에이전트를 실행합니다.
- 제한된 파일 시스템 액세스: 필요한 파일에만 액세스를 제한하도록 컨테이너를 구성합니다.
- 자격 증명 격리: 자격 증명을 별도로 관리하고 필요에 따라 컨테이너에 주입합니다.
- 네트워크 격리: 외부 액세스를 제한하기 위해 컨테이너 네트워킹을 제한합니다.
GitLab Duo CLI 사용자의 경우 헤드리스 모드는 수동 도구 승인을 우회하므로 개발 컨테이너가 특히 중요합니다.
VS Code용 GitLab 확장 프로그램은 VS Code Dev Containers와 호환됩니다. 자세한 내용은 Visual Studio Code Dev Container에서 확장 프로그램 사용을 참조하십시오.
