TECHDEV · Flagship · Công cụ mã nguồn mở
sessguard
Nếu infostealer quét máy của bạn, nó sẽ thấy gì? Một CLI local, chỉ đọc, không chạm mạng: kiểm kê session và credential của các AI assistant trên endpoint của bạn và trả checklist thu hồi theo từng app. Không một giá trị token nào bị in ra.
TypeScript · CLI · MIT · Node 20+ · Không phụ thuộc runtime · Local, chỉ đọc, không chạm mạng. Không cần tài khoản, không tracking, không dữ liệu nào rời khỏi máy. Giá trị token không bao giờ hiện ra: chỉ có đường dẫn, metadata file và số lượng match.
Vấn đề mà công cụ trả lời
Infostealer hiện đại quét máy của developer để tìm file xác thực, session data và config của các AI coding assistant: Claude, ChatGPT Desktop, Codex, Cursor, Windsurf, GitHub Copilot, Gemini CLI và nhiều công cụ khác, cùng với Git credential, SSH key và API key. Chiến dịch Aokigahara mà Check Point Research báo cáo tháng 10/2026 dùng đúng playbook này. Khi phản ứng sự cố bắt đầu bằng câu hỏi "trên máy có gì", các đội không có bản đồ bề mặt AI-assistant và không có bước thu hồi theo từng app. Trình quét secret nắm bề mặt repository; OSQuery chỉ trả lời câu hỏi endpoint bằng query viết tay cho từng app. sessguard lấp khoảng trống giữa "session AI trên máy này" và "đây là cách thu hồi chính xác từng mục": kiến thức đường dẫn được curate, có ngày kiểm chứng, cho 10 AI assistant, báo cáo không bao giờ chứa giá trị, và checklist thu hồi theo từng app có thể làm ngay.
Hai lệnh
| Lệnh | Công dụng |
|---|---|
sessguard inventory | Quét các đường dẫn session/config đã biết trên máy này. Kết quả chỉ mang đường dẫn, metadata file và số lượng match pattern token. Giá trị không bao giờ được in, log hay xuất ra. |
sessguard checklist | Xuất checklist thu hồi theo từng app có session material: các store thường chứa gì, thu hồi ở đâu, và cần xoay vòng thêm gì. |
sessguard --version | In version. |
Cả hai lệnh đều nhận --json out.json để xuất dữ liệu dạng máy đọc được, vẫn cùng dữ liệu và vẫn không có giá trị. Biến môi trường SESSGUARD_ROOT ghi đè thư mục quét (dùng cho demo và test). Repo đi kèm bản ghi terminal của một lần chạy thật trên demo profile tổng hợp (examples/demo.gif), ghi bằng pty capture; bản transcript đầy đủ có trong README.
Phạm vi — kiến thức đường dẫn được curate, có ngày kiểm chứng
Các app hay đổi vị trí lưu trữ, nên mỗi mục đều mang ngày kiểm chứng lần cuối. Tất cả các mục dưới đây được kiểm chứng lần cuối ngày 2026-10-30 (README, release 2026-10-30):
| App | Kiểm chứng lần cuối |
|---|---|
| Claude Code / Claude CLI | 2026-10-30 |
| ChatGPT Desktop | 2026-10-30 |
| Codex CLI | 2026-10-30 |
| Cursor | 2026-10-30 |
| Windsurf | 2026-10-30 |
| GitHub Copilot (IDE + CLI) | 2026-10-30 |
| Gemini CLI | 2026-10-30 |
| Amazon Q | 2026-10-30 |
| Kiro | 2026-10-30 |
| JetBrains AI Assistant | 2026-10-30 |
Cách dùng
# Cần Node 20+
npm install -g sessguard
# hoặc chạy không cần cài
npx sessguard inventorysessguard inventory [--json out.json] # quét các đường dẫn session/config đã biết
sessguard checklist [--json out.json] # checklist thu hồi theo từng app
sessguard --versionCác lệnh được sao chép nguyên văn từ README của sessguard (release 2026-10-30). Output inventory mẫu trong README là lần chạy thật trên demo profile tổng hợp (examples/demo-profile/, mọi fixture đều giả), với SESSGUARD_ROOT trỏ vào thư mục fixture.
Thiết kế — ba bảo đảm cứng
- Chỉ đọc. Trình quét không bao giờ ghi, không theo symlink, và đọc tối đa 2 MB mỗi file.
- Không chạm mạng. Không HTTP import, không
fetch, không socket. CI chạy toàn bộ test suite với mạng bị tắt (unshare -rn), và một static test khẳng định không có networking API nào trongsrc/. - Không bao giờ có giá trị.
countTokenPatternschỉ trả về một con số; kết quả chỉ mang đường dẫn, kích thước, mtime và số đếm. Self-test redaction (npm run selftest, cũng chạy trong CI) cấy secret giả vào demo profile và làm hỏng build nếu bất kỳ giá trị nào lọt vào output JSON.
TypeScript, không phụ thuộc runtime. Ghi chú dual-use từ README: danh sách đường dẫn là kiến thức công khai (được vendor và nghiên cứu đe doạ tài liệu hoá); công cụ không trích xuất giá trị và không gọi mạng, nên không thể dùng làm công cụ hỗ trợ exfiltration.
Đây KHÔNG phải gì — và đối thủ hơn chúng ta ở đâu
- Nó không ngăn nhiễm infostealer và không phát hiện exfiltration. Đây là công cụ vệ sinh và checklist phản ứng sự cố — nó trả lời "session AI nào đang nằm trên máy này và cách thu hồi từng mục", chỉ vậy thôi. Không có finding không phải bằng chứng máy sạch.
- Về secret trong repository, TruffleHog hơn chúng ta: đó là bề mặt của họ, không phải của chúng ta. Về câu hỏi endpoint chung, OSQuery hơn chúng ta. Chúng ta chỉ làm đúng một việc: session AI ánh xạ tới bước thu hồi.
- Ngày kiểm chứng được làm mới mỗi release; nếu một app đổi vị trí lưu trữ giữa các release, mục đó có thể lạc hậu cho tới lần curate tiếp theo.
Giới hạn
- Nó báo cáo số lượng match pattern, không phải credential đã xác nhận. Một match là ứng viên, không phải kết luận.
- Nó chỉ kiểm kê 10 AI assistant đã curate (và các store của chúng), không phải toàn bộ bề mặt credential của máy.
- Chỉ chạy local: không dashboard cloud, không fleet view, không quét từ xa.
Giấy phép
MIT. Xem LICENSE trong repository.
Công cụ liên quan
Các công cụ mã nguồn mở khác của TECHDEV: runverdict, gheist-guard, vetgate, context-diet, ci-failure-detective, agent-seatbelt, devsecops-os, env-doctor, skill-audit, logtrim, testguard, breakcheck, keymap, memgraph, ggufit, leaseguard, factfence, jsonfold
Đóng góp ý kiến
Bình chọn cho công cụ này, đề xuất tính năng, hoặc thảo luận với các vận hành khác trên bảng cộng đồng.