
전문가용 고충실도 비익명화 및 취약점 진단 프레임워크입니다. 브라우저 기반 정보 수집, 하드웨어 지문 채취, 보안 연구를 위한 제로 커플링 모듈형 아키텍처를 갖추고 있습니다.
Ahmad Hassan (B-Ted) 제작
[!NOTE] 브라우저 프라이버시 및 인식 안내: 현대의 웹 애플리케이션은 브라우징이 본질적으로 안전하고, 사적이며, 기본적으로 격리되어 있다는 널리 퍼진 가정 위에서 동작합니다. SilentSniffer는 이러한 잘못된 안전감에 도전하기 위해 만들어졌습니다. 자체 완결형 클라이언트 측 샌드박스로만 엄격히 동작하며, 어떤 데이터도 외부로 내보내거나 전송하지 않습니다. 대신, 현대 브라우저 사양이 기본적으로 이를 허용하기 때문에 사용자의 명시적 동의 없이도 얼마나 많은 주변 기기 상태, 하드웨어 텔레메트리, 행동 데이터가 사용자의 통제를 벗어날 수 있는지를 실시간으로 시각적으로 보여줍니다.
대부분의 인터넷 사용자는 브라우저 권한 프롬프트에서 명시적으로 "허용"을 클릭하지 않는 한 자신의 세션이 사적이고 격리되어 있다고 가정합니다. 그러나 실제로는 표준 Web API가 웹사이트에 하드웨어 특성, 타이밍 벡터, 네트워크 토폴로지, 센서 동작에 대한 광범위한 접근을 내부적으로 조용히 부여합니다.
SilentSniffer는 교육적인 인식 전환을 위해 만들어졌습니다. 완전히 안전한 로컬 전용 샌드박스 환경에서 진단 및 시연 모듈을 실행함으로써, 사용자는 데이터가 기기를 벗어날 위험 없이 현대 브라우저가 허용하는 웹 노출의 실제 범위를 시각적으로 파악할 수 있습니다.
이 툴킷은 제로 커플링 동적 플러그인 아키텍처를 기반으로 구축되었습니다. 핵심 엔진은 개별 모듈 로직과 완전히 무관하게 유지되며, 중앙 집중식 매니페스트를 통해 런타임에 도구를 발견하고 로드합니다.
graph TD
A[index.html / debug.html] -->|Bootstrap| B[src/core/engine.js]
B -->|Fetch Discovery| C[src/config/modules.json]
C -->|Return Payload Paths| B
B -->|Dynamic import| D[src/modules/level_X/*.js]
D -->|Self-Register| B
B -->|Render Grid| UI[Dynamic Command Center]
도구는 정보 노출의 심각도를 반영하여 여섯 가지 고유한 레벨로 분류됩니다.
| 레벨 | 분류 | 시각적 표시 | 중점 영역 | 샌드박스 동작 |
|---|---|---|---|---|
| L1 | 표준 정찰 | 🟢 녹색 | OS, 브라우저 및 성능 텔레메트리 | 로컬 진단 쿼리 |
| L2 | 고급 프로파일링 | 🟡 노란색 | 네트워크 토폴로지 및 하드웨어 핑거프린팅 | 로컬 진단 쿼리 |
| L3 | 핵심 인텔리전스 | 🔴 빨간색 | PII, 저장소 메타데이터 및 Web API | 로컬 진단 쿼리 |
| L4 | 고충실도 하드웨어 익스플로잇 | 🟣 보라색 | 하드웨어 실리콘 및 오디오 핑거프린팅 | 로컬 진단 쿼리 |
| L5 | 무기화된 벡터 | 🖤 검은색 | 능동적 벡터 시연 (키로거, MitM, 폼재킹) | 샌드박스 로컬 피드백 |
| L6 | 사회공학 및 피싱 | 🔥 진홍색 | 피싱 키트, OAuth 하이재킹, 센서 캡처 | 샌드박스 로컬 피드백 |
이 프레임워크는 교육적 연구, 인식 제고 및 브라우저 기능 감사를 위해 엄격히 유지됩니다. 레벨 1부터 6까지의 54개 모듈 전체는 전적으로 브라우저 내에서 실행됩니다. 원격 유출 서버와 악성 페이로드는 제외되며, 모든 캡처된 지표와 시각적 피드백은 사용자의 머신에만 엄격히 국한됩니다.
📖 상세 기술 사양: 제외된 공격적 함수 시그니처, 벡터 및 이에 대한 안전한 진단 대체 항목의 전체 목록은 **제외된 벡터 사양 문서**를 참조하십시오.
모든 UI 컴포넌트, 등록 매니페스트, 핵심 인프라 엔진(transmitter.js, persistence.js, evasion.js) 및 54개 진단 모듈은 샌드박스 환경에서 100% 완성되어 작동합니다:
| 레벨 | 컴포넌트 / 모듈 파일 | 진단 / 시연 초점 | 실행 범위 |
|---|---|---|---|
| Core | src/core/transmitter.js | 로컬 IndexedDB 감사 디스패치 | 로컬 감사자 |
| Core | src/core/persistence.js | 스토리지 지속성 API 검사 | 로컬 감사자 |
| Core | src/core/evasion.js | 자동화 지표 탐지 | 로컬 감사자 |
| L1 | protocol_handler_scan.js | 프로토콜 핸들러 API 감사 | 로컬 감사자 |
| L1 | display_metrics.js | 색 심도 및 접근성 쿼리 | 로컬 감사자 |
| L2 | dns_prefetch_scan.js | DNS 프리페치 및 타이밍 엔트리 감사 | 로컬 감사자 |
| L2 | bluetooth_probe.js | Web Bluetooth API 가용성 | 로컬 감사자 |
| L2 | usb_probe.js | WebUSB 장치 인가 감사 | 로컬 감사자 |
| L2 | network_info_audit.js | NetworkInformation API 감사 | 로컬 감사자 |
| L2 | xr_device_probe.js | WebXR Device API 감사 | 로컬 감사자 |
| L3 | autofill_harvest.js | HTML5 autocomplete 속성 검사 | 로컬 감사자 |
L3 | credential_phish.js | 보안 컨텍스트 및 Credential API 검사 | 로컬 감사자 |
L3 | session_hijack.js | 스토리지 상태 및 쿠키 활성화 검사 | 로컬 감사자 |
L3 | history_sniff.js | History API 스택 및 스크롤 상태 | 로컬 감사자 |
L3 | indexeddb_raid.js | 오리진 IndexedDB 데이터베이스 목록 | 로컬 감사자 |
L3 | cache_exfil.js | Cache Storage 버킷 인벤토리 | 로컬 감사자 |
L4 | port_scanner.js | WebSockets, Fetch 및 Beacon 검사 | 로컬 감사자 |
L4 | service_worker_mitm.js | ServiceWorker 등록 감사 | 로컬 감사자 |
L4 | webgl_shader_exploit.js | GLSL 셰이더 정밀도 비트 쿼리 | 로컬 감사자 |
L4 | timing_oracle.js | 정밀 타이머 및 격리 감사 | 로컬 감사자 |
L4 | spectre_probe.js | COOP/COEP 및 SharedArrayBuffer 검사 | 로컬 감사자 |
L4 | codecs_audit.js | WebCodecs API 지원 감사 | 로컬 감사자 |
L4 | worker_channel_audit.js | Worker 채널 메시징 감사 | 로컬 감사자 |
L5 | dns_rebinding.js | 오리진 및 document.domain 경계 | 로컬 감사자 |
L5 | clickjack_engine.js | 윈도우 프레이밍 상태 (top !== self) | 로컬 감사자 |
L5 | pastejack.js | Clipboard API 권한 쿼리 | 로컬 감사자 |
L5 | cache_poison_attack.js | CacheStorage API 오리진 검사 | 로컬 감사자 |
L5 | tab_napping.js | Page Visibility API 상태 | 로컬 감사자 |
L5 | keylogger.js | Keyboard Layout API 쿼리 | 로컬 감사자 |
L5 | formjack.js | HTMLFormElement requestSubmit 검사 | 로컬 감사자 |
L5 | crypto_miner.js | WebAssembly 검증 및 코어 수 | 로컬 감사자 |
L6 | notification_phish.js | Notification API 권한 상태 | 로컬 감사자 |
L6 | oauth_hijack.js | 윈도우 팝업 인터페이스 검사 | 로컬 감사자 |
L6 | download_drive_by.js | 앵커 download 속성 검사 | 로컬 감사자 |
L6 | permission_abuse.js | 다중 센서 Permissions API 쿼리 | 로컬 감사자 |
L6 | screen_capture.js | Display Media API 지원 검사 | 로컬 감사자 |
L6 | camera_capture.js | UserMedia API 제약 조건 검사 | 로컬 감사자 |
모든 진단 쿼리는 엄격히 로컬 브라우저 컨텍스트에서 실행되며 실행 데이터를 격리된 로컬 IndexedDB(SilentSnifferAuditLogDB)에 저장합니다. 어떤 데이터도 사용자의 브라우저를 벗어나지 않습니다.
모듈이 실행되면 초기화부터 로컬 렌더링까지 엄격한 라이프사이클을 따릅니다.
sequenceDiagram
participant U as UI (Command Center)
participant E as Engine.js
participant M as Module.js
participant API as Browser Web API
U->>E: User triggers Execution
E->>E: Initializing Sequence
E->>M: run() async
M->>API: Native Web API Probe / Inspection
API-->>M: Local Diagnostic State
M-->>E: Structured Payload
E->>U: Render to Local Terminal UI
SilentSniffer/
├── src/
│ ├── core/
│ │ ├── engine.js # Framework Orchestrator
│ │ └── transmitter.js # Data Storage & Audit Logger
│ ├── config/
│ │ └── modules.json # Discovery Manifest
│ ├── modules/ # Diagnostic & Awareness Modules
│ │ ├── level1/ # Standard Recon
│ │ ├── level2/ # Fingerprinting
│ │ ├── level3/ # Intelligence
│ │ ├── level4/ # Bypass Lab
│ │ ├── level5/ # Advanced Vectors
│ │ └── level6/ # Social Engineering & Media
│ └── styles/ # Global Design System
├── debug.html # Command & Diagnostic Center
└── index.html # Dashboard Interface
모든 모듈은 동적 샌드박스 내에서 깔끔하게 실행되도록 통일된 인터페이스를 준수합니다.
/**
* SilentSniffer Module Template
*/
export default {
id: 'unique_identifier',
title: 'Display_Name',
level: 4, // Level 1-6
info: "Description of the browser capability or security exposure.",
steps: [
"Phase 1 Recon...",
"Phase 2 Local Probe...",
"Phase 3 State Analysis..."
],
run: async () => {
// Local diagnostic logic
return { data: 'captured_intel' };
}
};