PromptZero: پروکسی امنیتی برای محافظت از دادههای حساس در پرامپتهای LLM
خلاصهٔ کاملتر
PromptZero یک پروکسی محلی هست که بین اپلیکیشن یا CLI تو و API آنتروپیک (Claude) قرار میگیره. مشکلی که حل میکنه خیلی واقعیه: وقتی از هوش مصنوعی میخوای لاگها رو آنالیز کنه، گزارش پنتست بنویسه یا کدرویو بده، پرامپتهایی که ارسال میکنی پر از اطلاعات حساسه — IP واقعی سرورها، هاستنیمهای داخلی، پسوردها، اطلاعات کلاینتها — و تمام اینا از مرزی رد میشن که روش کنترلی نداری.
PromptZero این مرز رو به صورت محلی مدیریت میکنه. جریان کار اینطوریه: پرامپت واقعی وارد پروکسی میشه (روی localhost:8000)، دادههای حساس شناسایی و با مقادیر مصنوعی جایگزین میشن، پرامپت «تمیزشده» به Claude فرستاده میشه، پاسخ برمیگرده و مقادیر مصنوعی دوباره با دادههای واقعی عوض میشن. دادههای اصلی هرگز از محیط لوکال خارج نمیشن.
موتور تشخیص از دو لایه تشکیل شده: NLP با Presidio و spaCy (پشتیبانی از فارسی و اسپانیایی) برای شناسایی اشخاص، سازمانها، شمارهکارتها، IBAN، پاسپورت و... و Regex برای دادههای ساختاریافته مثل IPv4/IPv6، هاستنیم، ایمیل، توکن API و شناسههای ملی کشورهای مختلف (آرژانتین، شیلی، اسپانیا، اروگوئه، کلمبیا، مکزیک). مقادیر جایگزین از محدودههای رزروشده IANA انتخاب میشن (مثل RFC 5737 برای IPv4 و RFC 2606 برای example.com) تا مدل اونها رو به عنوان دادههای مستندسازی بیمعنی نبینه.
یک ویژگی مهم session mapping هست: در طول یک مکالمه، هر مقدار واقعی همیشه به همون مقدار مصنوعی مپ میشه تا coherency مکالمه حفظ بشه. این جدول فقط روی سیستم لوکال ذخیره میشه و هرگز فرستاده نمیشه.
استفاده ازش به سادگی تغییر یک خط در SDK پایتونه:
client = anthropic.Anthropic(
api_key="your-api-key",
base_url="http://localhost:8000", # ← فقط همین یه خط
)برای پنتسترها یک حالت اختصاصی وجود داره (DETECT_PERSON_ORG=0) که تشخیص اسم اشخاص و سازمانها رو غیرفعال میکنه؛ چون در خروجی ابزارهایی مثل nmap و gobuster، این تشخیصگر false positive زیادی میده (کلماتی مثل ACLs، Banner یا Network رو به اشتباه به عنوان نام سازمان میشناسه) و ارزش privacy هم نداره. همچنین میشه ترافیک upstream رو از طریق Burp Suite یا mitmproxy رد کرد و با چشم خودت تأیید کنی که هیچ داده واقعیای به API آنتروپیک نرسیده.
نکات کلیدی:
- پروکسی محلی روی localhost:8000 اجرا میشه و drop-in جایگزین api.anthropic.com هست
- دادههای جایگزین از محدودههای رزرو IANA انتخاب میشن تا Claude آنها رو جدی بگیره
- session mapping تضمین میکنه مکالمات چندتایی coherent بمونن
- حالت پنتست (DETECT_PERSON_ORG=0) false positive رو برای خروجی ابزارهای امنیتی کاهش میده
- قابلیت بررسی با Burp Suite برای اثبات عدم نشت داده
- پشتیبانی از شناسههای ملی کشورهای LatAm و اسپانیا
- نصب از طریق Docker یا نصب native با setup.sh




