ZeroTool Workbench
제로 폭 문자 감지기
제로 폭 문자, BOM, 양방향 제어 문자, 태그 문자 등 비가시 Unicode 감지 및 제거. ChatGPT 수정 기록, Trojan-Source 검출. 100% 클라이언트 실행.
제로 폭 문자 감지기 개요
제로 폭 문자 감지기는 텍스트에서 화면에 표시되지 않는 Unicode 문자를 찾아 하이라이트 처리하고 제거하는 도구입니다. 복사-붙여넣기 오염, AI 생성 텍스트의 숨겨진 메타데이터, 공급망 공격 시도를 조사할 때 사용합니다.
텍스트를 붙여넣으면 모든 비가시 문자가 색상으로 구분되어 표시되며, 문자 종류별로 통계를 제공합니다. 한 번의 클릭으로 모든 비가시 문자를 제거하거나, 특정 범주(제로 폭만, 양방향만, 태그만)만 선택적으로 정제할 수 있습니다.
감지 범위
- 제로 폭 공백(ZWSP, U+200B) — 너비가 없는 공백, 복사-붙여넣기 추적에 사용
- 제로 폭 비결합자(ZWNJ, U+200C) — 문자 결합을 방지하며 주로 아랍어·힌디 텍스트 처리
- 제로 폭 결합자(ZWJ, U+200D) — 문자 결합을 강제하며 이모지 변형 제어
- 바이트 순서 표시(BOM, U+FEFF) — UTF-8/UTF-16 파일의 바이트 순서 마커, 대부분 불필요
- Word Joiner(U+2060) — 제로 폭이지만 줄 바꿈을 방지하는 특수 공백
- 양방향 제어 문자(U+200E, U+200F, U+202A-E, U+2066-2069) — 텍스트 방향성을 제어하며 Trojan-Source 공격의 핵심 벡터
- 소프트 하이픈(U+00AD) — 선택적 줄 바꿈 위치 표시, 주로 인쇄 용도
- 변형 선택자(U+FE00-FE0F, U+E0100-E01EF) — 문자 모양 변형 제어, 이모지와 CJK 문자에서 사용
- 태그 문자(U+E0000-E007F) — 메타데이터 인코딩 용도, ChatGPT 및 기타 LLM의 숨겨진 워터마크 범위
사용 방법
- 도구의 입력창에 텍스트를 붙여넣습니다.
- 모든 비가시 문자가 색상 코드로 하이라이트되며, 아래에 감지된 문자의 종류와 개수가 표시됩니다.
- 정제 모드를 선택합니다:
- 모두 제거 — 모든 비가시 문자 삭제
- 제로 폭만 — ZWSP, ZWNJ, ZWJ, Word Joiner, 소프트 하이픈만 제거
- 양방향만 — U+200E, U+200F, U+202A-E, U+2066-2069만 제거
- 태그만 — U+E0000-E007F 태그 문자만 제거
- 변형만 — 변형 선택자만 제거
- 정제 버튼을 클릭하면 선택된 범주의 비가시 문자가 제거됩니다.
- 복사로 결과를 클립보드에 복사하거나 .txt 다운로드로 파일을 저장합니다.
주요 시나리오
AI 생성 텍스트 검증
ChatGPT, Claude, Gemini 등의 모델은 탐지 회피 목적으로 생성 텍스트에 태그 문자를 숨기는 것으로 알려져 있습니다. 이 도구로 태그 문자(U+E0000-E007F)를 스캔하면 의도된 워터마크나 숨겨진 수정 기록을 감지할 수 있습니다.
공급망 코드 리뷰
소스 코드에 양방향 제어 문자(특히 U+202E RLO)가 숨겨져 있으면, 렌더링된 코드와 실제 실행 흐름이 달라지는 Trojan-Source 공격이 가능합니다(CVE-2021-42574). Pull Request 검토 시 이 도구로 미리 스캔하면 위험한 문자를 조기에 발견할 수 있습니다.
피싱 메일 조사
정교한 피싱 메일은 제로 폭 문자를 사용하여 표시 주소와 실제 링크를 가릴 수 있습니다. 의심스러운 이메일의 헤더나 본문을 분석하면 숨겨진 문자 조작을 감지할 수 있습니다.
붙여넣기 정리
Word, Google Docs, 블로그 플랫폼에서 복사한 텍스트는 종종 포매팅 유물(제로 폭 공백, 소프트 하이픈)을 포함합니다. 이 도구로 한 번에 정제하면 깔끔한 평문을 얻을 수 있습니다.
텍스트 누출 조사
특정 조직이 배포하는 민감한 문서(NDA, 기술 사양)에는 추적 목적으로 제로 폭 공백이 삽입되기도 합니다. 수신자가 누출자를 특정할 수 없도록 제거하기 위해 사용할 수 있습니다.
클라이언트 사이드 이유
이 도구는 순전히 클라이언트 사이드에서 실행되므로 다음과 같은 이점이 있습니다:
- 개인정보 보호 — 민감한 코드, 비밀번호, 개인정보가 포함된 텍스트를 안전하게 분석할 수 있습니다. 텍스트는 브라우저를 벗어나지 않습니다.
- Trojan-Source 샘플 안전 — CVE-2021-42574 공격 샘플(양방향 제어 문자)을 포함한 코드를 로컬에서 안전하게 검사할 수 있으며, 악의적 실행 위험이 없습니다.
- 오프라인 사용 — 인터넷 연결이 없어도 도구를 사용할 수 있습니다.
- 성능 — 네트워크 요청이 없어 즉각적인 결과를 얻습니다.
관련 도구
- Unicode 텍스트 변환기 — Unicode 장식 스타일(굵게, 기울임, 스크립트, 프락투르 등)로 텍스트 변환
- 문자열 이스케이프 / 언이스케이프 — JavaScript, JSON, HTML 엔티티의 이스케이프 및 언이스케이프
FAQ
비가시 문자(invisible character)란 무엇인가요?
비가시 문자는 화면에 표시되지 않지만 텍스트에 포함된 Unicode 문자입니다. 제로 폭 간격(U+200B), 바이트 순서 표시(U+FEFF), 양방향 제어(U+202E 등), 태그 문자(U+E0000~U+E007F), 변형 선택자(U+FE00~U+FE0F) 등이 있습니다. 이들은 텍스트 렌더링을 방해하거나 공급망 공격에 사용될 수 있습니다.
일반 텍스트에 비가시 문자가 왜 포함될까요?
주요 원인은 다음과 같습니다: 리치 에디터(Word, Google Docs)에서 복사한 텍스트의 포맷팅 유물, AI 생성 텍스트의 숨겨진 워터마크 또는 수정 기록(예: OpenAI 모델), 디바이스 간 텍스트 공유 중 인코딩 오류, 폰트 렌더링 보조 문자, Trojan-Source 공격(의도적 삽입).
ChatGPT나 AI 워터마크를 감지하나요?
네. 태그 문자 범위(U+E0000~U+E007F)를 포함하여 감지합니다. OpenAI, Anthropic, Google 등 여러 LLM이 생성 텍스트에 비가시 워터마크를 시도했습니다. 다만 각 모델의 워터마크 방식은 계속 진화하므로, 이 도구는 알려진 비가시 Unicode 카테고리 전체를 기반으로 합니다.
데이터가 서버로 전송되나요?
아니요. 모든 감지 및 정제 작업은 JavaScript로 브라우저에서 완전히 실행됩니다. 텍스트는 어떤 서버에도 전송되지 않습니다. 민감한 코드, 개인정보, 비밀 정보를 안전하게 분석할 수 있습니다.
Trojan-Source 공격(CVE-2021-42574)을 감지하나요?
네. 핵심 공격 벡터인 양방향 오버라이드(U+202E), 우측에서 좌측 표시(U+202D), 우측에서 좌측 임베드(U+202B) 등 모든 양방향 제어 문자를 감지합니다. 소스 코드 리뷰 시 코드의 시각적 흐름과 실제 실행 흐름이 달라지는 상황을 방지합니다.