_Originally published on ReclaimLLM: https://reclaimllm.com/blogs/ai-dlp-coverage-without-mdm
개발자는 로컬 AI 제어 기능을 제거할 수 있습니다. MDM 없이 팀별 AI DLP 커버리지를 측정하고, 제거된 훅(hooks), DLP가 비활성화되거나 조용한 장치들을 포착하여 드리프트(drift)를 수정할 수 있습니다.
개발자 노트북에 존재하는 모든 AI 데이터 손실 방지(DLP) 제어 기능은 해당 노트북을 사용하는 사람에 의해 꺼질 수 있습니다. 그들은 훅을 삭제하거나, 검열(redaction) 기능을 비활성화하는 플래그를 전달하거나, 도구를 모델 제공업체(model provider)를 직접 가리키도록 설정할 수 있습니다.
이것이 제어 기능이 쓸모없다는 것을 의미하지는 않습니다. 이것은 '온보딩 과정에서 설치했다'가 현황 보고서가 아니라는 것을 의미합니다. AI DLP 커버리지란 지속적인 점검입니다: 어떤 기기가 여전히 훅을 가지고 있는지, 어떤 기기는 DLP가 꺼져 있는지, 그리고 어떤 기기가 조용해졌는지를 확인하는 것입니다. 이 글은 바로 그것을 측정하는 것에 관한 내용이며, 노트북을 잠그는 것에 관한 것이 아닙니다.
MDM(mobile device management)은 프로파일을 푸시하고 회사 소유 컴퓨터의 설정을 제한할 수 있는 시스템입니다. 10명에서 100명 규모의 많은 팀들은 모든 Mac, Linux 박스, 계약직원 노트북에 MDM을 적용하지 않습니다. 그래도 MDM 없이 AI 코딩 어시스턴트 보안을 측정할 수 있습니다. 통제 기능이 제거될 수 없다고 솔직하게 주장할 수는 없습니다.
노트북에서 잘못될 수 있는 일들
- 훅(Hooks)이 사라진다. 업그레이드, dotfile 정리, 또는 의도적인 삭제를 통해 Claude Code, Cursor, Codex, 또는 Copilot에 훅이 없어질 수 있습니다.
- DLP가 꺼진다.
rclm-hooks-install --no-dlp 명령은 훅을 유지하면서 검열 기능을 비활성화합니다.
- 트래픽이 게이트웨이를 우회한다. 도구가 개인 API 키로 구성되어 제공업체에 직접 호출하는 경우입니다. 귀사의 프록시(proxy)는 이를 볼 수 없습니다.
- 노트북이 조용해진다. 기기가 재이미징되었거나, 사람이 퇴사했거나, 클라이언트가 제거된 경우입니다. 마지막 '정상' 상태의 데이터 행은 이제 오래된 정보가 됩니다.
훅이란 사용자가 편집할 수 있는 설정 파일에서 어시스턴트가 실행하는 프로그램입니다. Claude Code, VS Code 에이전트 훅, 그리고 Codex는 모두 훅을 로컬 구성(local configuration)으로 문서화합니다. GitGuardian의 AI 훅 문서는 같은 범주의 것을 설명합니다. 이 중 어느 것도 커널 잠금(kernel lock)은 아닙니다.
승인되지 않은 도구는 별도의 재고 관리 문제입니다. 해당 체크리스트는 섀도우 AI 코딩 도구를 의미합니다. 이 페이지는 사용자가 어떤 도구를 제어할지 결정한 후에 시작됩니다.
예방과 탐지는 다른 작업입니다
**예방(Prevention)**은 장치가 변경을 거부하는 것을 의미합니다. MDM 또는 사용자가 제거할 수 없는 엔드포인트 에이전트가 이를 수행할 수 있습니다. ReclaimLLM은 그렇지 않습니다.
**탐지(Detection)**는 변경 사항에 대해 알게 되고, 언제 수정되었는지 보여줄 수 있음을 의미합니다.
Hook DLP는 실행 중일 때 한 가지를 막습니다: 인식된 비밀 정보가 모델 요청 전에 대체됩니다. 커버리지는 오직 “해당 훅이 여전히 작동하고 있는가?”라는 질문에 대한 것입니다. ReclaimLLM의 커버리지는 MDM이 아닌 탐지입니다.
체크인(check-in)은 사용자가 편집할 수 있는 소프트웨어에 의해 전송됩니다. 서명된 정책은 잘못 캐시된 정책을 감지하는 데 도움을 주지만, 디스크상의 프로그램을 변경하는 것을 막지는 못합니다. 만약 클라이언트와 하트비트가 제거된다면, 주요 신호는 침묵이며, 다른 활동이 있어야만 사람이 여전히 주변에 있다는 것을 알 수 있습니다.
커버리지 누수가 발생한 네 가지 신호
이 감지기는 Business 및 Enterprise 플랜에서 제공됩니다. 무료 플랜에서는 사용할 수 없습니다. 프로바이더 사용량을 게이트웨이 토큰과 비교하는 AD-013c는 Enterprise 전용입니다.
| 코드 | 보이는 것 | 작동 시점 |
|---|
| AD-010 | 훅(Hooks)이 설치된 상태가 아니거나, 클라이언트가 제거를 보고함 | 첫 번째 체크인 이후의 나중 체크인. 첫 번째 체크인은 경고가 아닌 기준선입니다. 카운트되는 상태: 누락됨(missing), 부분적(partial), 비활성화됨(disabled), 수정됨(modified). 체크인이 정책 서명 오류를 보고하는 경우에도 기록됩니다 |
| ... | | |
| AD-011은 Require DLP가 켜져 있을 때 높게 올라갑니다. 이 표의 다른 행들은 경고 상태로 유지됩니다. 체크인은 클라이언트가 전송한 내용을 보고합니다. | | |
노이즈를 낮게 유지하는 방법
- 장치에 대한 첫 번째 관찰은 기준선입니다.
- 업그레이드는 재설치가 삭제처럼 보이지 않도록 유예 기간을 갖습니다.
- 임시(Ephemeral) 장치는 분실된 노트북으로 간주되지 않습니다.
- AD-012는 폐쇄된 노트북이 사고가 아니므로 실시간이 아닌 일일(daily)입니다.
월간 보고서에 포함할 수치
콘솔의 Enterprise → Coverage 섹션에는 다음 정보가 표시됩니다:
- 후크(hooks)와 DLP가 여전히 작동 중인 활성 장치의 비율. 이것이 AI DLP 커버리지 백분율입니다. 이는 사용자의 장치를 기반으로 계산됩니다. 이 문서는 임의로 만든 94% 점수는 사용자 전체 환경을 반영하지 못하므로 샘플 점수를 게시하지 않습니다.
- 30일 추세(trend).
- 팀별 분할 (팀이 존재하는 경우). 팀 가이드 및 팀 워크스루에서 해당 설정에 대해 다룹니다.
- 장치 테이블: 별칭(alias), 설치된 어시스턴트, DLP 활성화/비활성화 여부, 하트비트(heartbeat), 라우팅(게이트웨이, 직접 또는 알 수 없음), 마지막 확인 시점(last seen), 그리고 열려 있는 발견 사항(open findings).
필터에는 Uncovered, DLP off, Silent, Direct routing이 포함됩니다. 증거 폴더를 위해 CSV로 내보낼 수 있습니다. 이 내보내기는 자세(posture)를 보여줍니다. 하지만 개발자가 5분 후에 후크를 비활성화했을 가능성을 증명하지는 못합니다.
문서: 커버리지 및 커버리지 대시보드.
DLP를 영구적으로 비활성화하지 않고 예외 처리하기
관리 콘솔(admin console)에서 설정하는 DLP 요구 사항은 예외 처리가 활성화되어 있지 않으면 DLP가 꺼진 상태로 체크인할 경우 높은 발견 사항으로 간주합니다.
예외 처리에는 최대 12개월까지 선택할 수 있는 만료 날짜와 서면 사유가 필요합니다. 이는 1시간, 4시간, 24시간과 같은 고정된 메뉴 옵션이 아닙니다. 예외 처리가 활성화된 동안 AD-011은 해당 주체에 대해 경고를 발생시키지 않습니다. 날짜가 지나면 DLP가 여전히 꺼져 있다면 발견 사항이 다시 발생할 수 있습니다.
개발자는 Settings → Device health에서 자신의 행을 확인할 수 있습니다. 콘솔에서 복사할 수 있는 복구 명령어는 다음과 같습니다:
rclm-hooks-install --repair
이는 후크를 재설치하고 새로운 체크인을 전송합니다. 이는 원격으로 노트북을 수정하는 버튼이 아니라 터미널 명령어입니다.
선택적 하트비트: rclm-hooks-install --heartbeat는 사용자가 어시스턴트를 시작하지 않아도 장치가 체크인할 수 있도록 사용자 레벨 타이머를 설치합니다. 조직에서 하트비트가 요구하는 경우, 설치 프로그램이 자동으로 해당 타이머를 추가합니다. 하트비트는 여전히 사용자 레벨 소프트웨어입니다. 노트북의 관리자는 이를 제거할 수 있습니다.
체크인이 전송하는 내용
체크인(check-in)은 작은 JSON 포스트입니다. 여기에는 다음 내용이 포함됩니다:
- 노트북에서 생성된 무작위 장치 ID (사용자 이름의 해시가 아닌,
~/.reclaimllm/device.json에 있는 UUID).
- 호스트 이름의 SHA-256 해시 (조직 솔트(org salt)가 이미 알려진 경우 소금 처리됨).
- 운영 체제, 클라이언트 버전, 그리고 장치가 임시적인지 여부 (Codespaces, 개발 컨테이너 및 유사한 경우).
- 어시스턴트별 후크 상태. 이 상태에는 확인된 설정 파일의 힌트 경로가 포함될 수 있으며, 예를 들어 Claude 설정 파일이 있습니다.
- DLP 활성화/비활성화 여부, 라우팅 클래스, 그리고 하트비트(heartbeat) 활성화 여부.
여기에는 소스 코드, 프롬프트, 비밀 값 또는 평문 호스트 이름이 포함되지 않습니다.
세션 캡처는 다른 채널입니다. 후크가 설치되고 세션이 업로드되는 경우, 해당 업로드에는 이미 DLP 대체(replacements)가 적용된 프롬프트와 도구 출력이 포함될 수 있습니다. "체크인"을 "프로젝트 텍스트를 절대 받지 못한다"고 해석하지 마십시오. 체크인은 자세(posture) 확인 신호입니다. 세션 업로드는 작업 로그입니다.
AD-010 및 AD-011에 대한 경고 이메일은 다른 ReclaimLLM 보안 메일과 동일한 규칙을 따릅니다: 탐지기(detector), 심각도(severity), 클라이언트, 그리고 링크입니다. 비밀 값, 프롬프트 또는 소스 코드가 아닙니다. 모든 커버리지 행마다 즉시 메일이 보장되는 것은 아닙니다. 이러한 발견 사항 중 다수는 경고이며 요약본(digests)에 나타납니다. Signals 및 Signals 워크스루를 참조하십시오.
AI DLP 스택 내 위치
AI DLP란 무엇인가요? 제어 기능을 네 가지 계층(tool settings, hooks, 게이트웨이, 탐지)으로 나눕니다. 커버리지는 레이어 2에 대한 더 좁은 질문에 답합니다: 후크가 여전히 설치되어 있고 DLP가 여전히 활성화되어 있습니까?
발견 사항은 Signals에 기록되며, 여기에서 이를 인지(acknowledge), 해결(resolve) 또는 무시(dismiss)할 수 있습니다. '해결'은 개발자가 rclm-hooks-install --repair를 실행했고 새로운 체크인에서 후크가 설치된 것이 확인되었을 때 적절합니다. '무시'는 참고 사항과 함께 오탐지(false positive)일 경우 사용됩니다. 더 광범위한 제어 평면(control-plane) 그림은 엔터프라이즈 AI 코딩 보안 제어 평면에 있습니다. 별도의 화면인 세션 분석(Session analytics)은 엔터프라이즈 관측 가능성(enterprise observability)입니다.
소규모 팀을 위한 30일 배포 계획
이것은 측정된 결과가 아니라 순서입니다.
1주차. 각 개발자에게 rclm-hooks-install을 실행하고 팀 워크스페이스에 로그인하도록 요청하세요. --no-dlp를 전달하는 사람이 없는 한 DLP는 활성화되어 있습니다.
2주차. 커버리지(Coverage)를 열어보세요. 여전히 커버되지 않은 부분은 rclm-hooks-install --repair를 실행합니다. 이번 주는 기준점(baseline)입니다. 누락된 부분이 있을 것으로 예상해야 합니다.
3주차. 기준점이 대부분 녹색으로 표시된 후에 DLP 필수 활성화를 켜세요. 예외 요청 방법과 지속 기간에 대해 합의하세요. 높은 위험 발견 사항을 누가 수신하는지 지정하세요.
4주차. 커버리지 비율을 월별 보안 노트에 기재하고 CSV를 내보내세요. 주간 요약은 유지합니다. 소유자가 없는 비율은 오래된 정보가 됩니다.
NIST의 AI 위험 관리 프레임워크(AI Risk Management Framework)는 프레임워크 인용이 필요할 때 일반적인 '측정 후 관리' 언어입니다. 이 제품을 필수로 요구하지는 않습니다.
숫자를 활용하는 방법
커버리지 비율은 관리 지표(management metric)입니다. 이는 의존하는 후크가 여전히 존재하는지 알려줍니다. 그 자체만으로는 비밀 정보가 유출될 수 없음을 증명하지 못하며, 사용자가 변경할 수 없는 설정을 필요로 하는 경우 MDM을 대체하지 못합니다.
AI 코딩 어시스턴트 DLP는 후크 계층(hook layer)을 설명합니다. 커버리지 문서는 콘솔(console)을 설명합니다. 이미 데이터가 있는 워크스페이스에서 장치 테이블을 보고 싶다면 20분짜리 데모가 적절한 다음 단계입니다.
자주 묻는 질문 (FAQ)
개발자가 AI DLP 후크를 제거할 수 있나요?
예. 그들은 후크 설정을 편집하거나 삭제하거나, --no-dlp로 재설치할 수 있습니다. ReclaimLLM은 나중에 체크인(check-in) 시 변경 사항을 보고합니다. 이는 편집 자체를 막지는 못합니다.
어떤 장치가 AI DLP가 켜져 있는지 어떻게 알 수 있나요?
Business 또는 Enterprise 플랜의 경우, Enterprise → Coverage를 여세요. 등록된 각 장치는 어시스턴트, DLP 활성화/비활성화 여부, 마지막 체크인 시점을 보여줍니다. 'DLP 비활성화' 또는 '미커버리지(Uncovered)'로 필터링하세요. 무료 플랜에는 이러한 알림이 포함되어 있지 않습니다.
AI 코딩 어시스턴트 보안을 강제하기 위해 MDM이 필요한가요?
운영체제가 변경을 차단하도록 하려면 MDM이 필요합니다. 하지만 hooks가 여전히 설치되어 있는지 측정하는 데는 MDM이 필요하지 않습니다. 측정은 관리하지 않는 개인 또는 계약자 장치가 포함된 플릿(fleet)의 경우 선택할 수 있는 옵션입니다.
커버리지 체크인 시 어떤 데이터를 전송하나요?
Posture만 전송됩니다: 디바이스 ID, 호스트 이름 해시, OS, 클라이언트 버전, hooks 상태(settings-file 힌트 포함), DLP 활성화/비활성화 여부, 라우팅 클래스, 그리고 하트비트. 소스 코드, 프롬프트, 비밀 정보 또는 평문 호스트 이름은 전송되지 않습니다. 세션 업로드는 별개이며 작업 로그를 포함할 수 있습니다.
장치가 오프라인 상태가 되면 어떻게 되나요?
AD-012는 이전에 활동했지만 체크인을 중단한 장치를 플래그합니다. 이는 매일 발생하는 경고이며, 해당 사용자가 무언가를 비활성화했다는 증거는 아닙니다. 재이미징(reimage), 퇴사, 또는 클라이언트 제거 여부를 확인하십시오. 임시 빌드 환경(Ephemeral build environments)은 제외됩니다.
일시적인 DLP 예외를 부여할 수 있나요?
예. 관리자나 팀 리드는 사유와 최대 12개월의 만료 날짜가 포함된 DLP 예외를 생성할 수 있습니다. AD-011은 해당 주제에 대해 예외 기간이 만료되거나 취소될 때까지 조용히 유지됩니다.
원문 출처: https://reclaimllm.com/blogs/ai-dlp-coverage-without-mdm