TL;DR
- ScrubVault는 외부 대형 언어 모델(LLM)에 프롬프트를 보내기 전 개인 식별 정보(PII)를 로컬에서 마스킹하고 응답에서 복원하는 제로 의존성 프라이버시 프록시임.
- 이메일, 국제은행계좌번호(IBAN), IP 주소, 신용카드 번호, 납세자 식별 번호를
{{EMAIL_1}},{{IBAN_1}}같은 결정적 토큰으로 대체함. - 토큰 매핑은 휘발성 메모리에만 저장되며 디스크에는 기록되지 않음.
- Python SDK, 독립 실행형 명령줄 인터페이스(CLI), 표준 입출력(stdio) 기반 모델 컨텍스트 프로토콜(MCP) 서버를 제공함.
- 순수 Python 표준 라이브러리만 사용하며, 정규식 서비스 거부(ReDoS) 방어와 Raptor Guard 정적 애플리케이션 보안 테스트(SAST) 결과를 제시함.
아키텍처
- 프롬프트를 ScrubVault의 로컬 메모리에서 검사하고 민감 정보를 마스킹한 뒤, 마스킹된 프롬프트를 공용 클라우드 LLM API로 전송하는 구조임.
- 클라우드 응답에 포함된 토큰은 로컬 메모리에서 원래 값으로 복원되며, 서비스 설명에 따르면 PII는 클라우드로 전송되지 않음.
- 설치 명령은
pip install scrub-vault임.
빠른 시작
- Python SDK에서는
ScrubVault를 생성한 뒤mask로 입력을 마스킹하고, 마스킹된 텍스트를 원하는 LLM에 전달한 다음unmask와 토큰 매핑으로 응답을 복원하는 방식임. - 예시 입력에는 고객 이름 Max, 이메일 주소, IBAN이 포함되며, 마스킹 결과에서 이메일과 IBAN이 각각
{{EMAIL_1}},{{IBAN_1}}로 대체됨. - 독립 실행형 CLI는 계약서 문구의 GDPR 제32조 위험 점수 계산과 데이터셋 파일의 직접 마스킹을 지원함.
- 위험 점수 계산 명령은
python -m src.cli.main audit "Contract with Herr Schmidt, IBAN: DE89370400440532013000"임. - 데이터셋 마스킹 명령은
python -m src.cli.main scrub-dataset input.json output_clean.json임.
MCP 통합
- ScrubVault에는 네이티브 stdio MCP 서버가 포함되며,
claude_desktop_config.json또는 Antigravity 설정에 서버 명령, 인수, 작업 디렉터리를 등록하는 방식임. - 사용 가능한 MCP 도구는 다음 네 가지임.
scrub_mask_text: 입력 텍스트의 PII를 마스킹하고 되돌릴 수 있는 토큰 매핑을 반환함.scrub_unmask_text: 토큰을 원래 값으로 바꿈.scrub_audit_risk: 위험 점수와 탐지 내역을 계산함.scrub_anonymize_json: JSON 구조를 재귀적으로 마스킹함.
보안 및 코드 표준
re,json,sys,typing등 Python 표준 라이브러리만 사용하는 제로 서드파티 의존성 구성임.- 토큰 매핑은 휘발성 메모리에만 존재하며 디스크에 기록되지 않는 인메모리 볼트 방식임.
- 정규식 패턴은 알고리즘 복잡도 공격을 방지하도록 엄격히 제한됨.
- Raptor Guard SAST 검증 결과는 치명적, 높음, 중간 심각도 발견 사항이 모두 0건임.
라이선스
- Apache License 2.0으로 제공되며, Diamantenschmiede의 오픈소스 연구 및 엔지니어링 프로젝트임.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요