
Asymmetric defense against adversarial AI agents. VeilGate evaluates each incoming request, redirects suspected agents into a per-IP-consistent honeypot environment, and quantifies the computational cost imposed on the attacker.
VeilGate एक ओपन-सोर्स डिसेप्शन प्रॉक्सी है जो उन टीमों के लिए है जो वास्तविक उपयोगकर्ताओं के सामने नाजुक ब्लॉक नियम रखे बिना स्वचालित सुरक्षा प्रोबिंग की लागत बढ़ाना चाहती हैं।
यह एक वेब एप्लिकेशन के सामने बैठता है, प्रत्येक अनुरोध को स्कोर करता है, और तीन परिणामों में से एक चुनता है:
लक्ष्य जादुई अजेयता नहीं है। लक्ष्य बेहतर अर्थशास्त्र है: मनुष्यों और सामान्य ऑटोमेशन को चलते रखें, जबकि AI-सहायता प्राप्त स्कैनर्स को विश्वसनीय डेड एंड्स पर समय, टोकन और ध्यान खर्च करने पर मजबूर करें।
observe, challenge, tarpit, और थ्रेशोल्ड-चालित auto मोड के साथ रिवर्स प्रॉक्सी।X-Veilgate-Token हेडर दोनों ट्रांसपोर्ट के साथ ब्राउज़र प्रूफ-ऑफ-वर्क चैलेंज ताकि क्रॉस-ओरिजिन SPA बाद के API कॉल पर टोकन हल और पुनः संलग्न कर सकें। 401 चैलेंज प्रतिक्रिया SPA-जागरूक है: यह शीर्ष-स्तरीय नेविगेशन के लिए HTML और fetch / XHR संदर्भों के लिए JSON (हल करने के लिए इनलाइन PoW मेटाडेटा के साथ) लौटाता है।बाइनरी डाउनलोड करता है, systemd सेवा स्थापित करता है, सामुदायिक नियम स्थापित करता है, और observe मोड में एक स्टार्टर कॉन्फ़िग लिखता है।
# वन-लाइनर
curl -sSL https://veilgate.dev/install.sh | sudo bash -s -- --upstream http://localhost:3000
# या पहले डाउनलोड करें, फिर चलाएँ
curl -sSL https://veilgate.dev/install.sh -o install.sh
sudo ./install.sh --upstream http://localhost:3000
फ़्लैग्स:
पैकेज्ड कॉन्फ़िग rules_dir: "~/.veilgate/rules" का उपयोग करता है। systemd के तहत, VeilGate veilgate उपयोगकर्ता के रूप में चलता है जिसका होम /var/lib/veilgate है, इसलिए यह /var/lib/veilgate/.veilgate/rules पर हल होता है।
यदि नई स्थापना पर --secret छोड़ा जाता है, तो इंस्टॉलर इंटरैक्टिव टर्मिनलों पर प्रॉम्प्ट करता है और अन्यथा एक यादृच्छिक गुप्त उत्पन्न करता है। यदि सेवा उपयोगकर्ता मौजूद नहीं है, तो इंस्टॉलर इंटरैक्टिव टर्मिनलों पर बनाने से पहले पूछता है और गैर-इंटरैक्टिव इंस्टॉल के लिए निर्माण के लिए डिफ़ॉल्ट होता है।
स्थापना के बाद:
systemctl status veilgate
journalctl -u veilgate -f
docker run -d --name veilgate \
--network host \
-v /etc/veilgate/veilgate.yaml:/etc/veilgate/veilgate.yaml:ro \
-v ~/.veilgate/rules:/home/nonroot/.veilgate/rules \
-e VEILGATE_SECRET=$(openssl rand -hex 32) \
ghcr.io/c0oki3s/veilgate:latest -config /etc/veilgate/veilgate.yaml
पूर्वापेक्षा: Go 1.25.10 या नया।
git clone https://github.com/C0oki3s/veilgate.git
cd veilgate
make build
./veilgate -config configs/veilgate.yaml
डिफ़ॉल्ट रूप से VeilGate :8080 पर सुनता है, http://localhost:3000 पर प्रॉक्सी करता है, और :9090 पर मेट्रिक्स दिखाता है।
डिफ़ॉल्ट कॉन्फ़िग observe मोड में शुरू होता है — challenge या tarpit सक्षम करने से पहले बेसलाइन सामान्य ट्रैफ़िक।
अनुशंसित रोलआउट:
observe चलाएँ।challenge सक्षम करें।tarpit सक्षम करें।configs/veilgate.yaml से शुरू करें:
listen: ":8080"
upstream: "http://localhost:3000"
mode: "observe"
rules_dir: "~/.veilgate/rules"
detector:
score_challenge_threshold: 40
score_tarpit_threshold: 70
trusted_ips: []
trusted_proxies: []
metrics:
listen: ":9090"
पूर्ण संदर्भ: Configuration reference।
VeilGate कोई एम्बेडेड नियम नहीं भेजता। बाइनरी स्टार्टअप पर rules_dir पढ़ता है और परिवर्तनों को हॉट-रिलोड करता है; यदि निर्देशिका खाली है तो यह शून्य डिटेक्शन सिग्नल के साथ शुरू होता है। नियम एक स्थान से आते हैं:
install.sh स्क्रिप्ट पहली स्थापना पर इसे स्वचालित रूप से क्लोन करती है। आप इसे बिल्ट-इन update-rules उपकमांड के साथ मैन्युअल रूप से भी अपडेट कर सकते हैं — कोई रीबिल्ड, कोई रीस्टार्ट नहीं:| स्वचालित रूप से नियम स्थापित करता है? | |
|---|---|
install.sh (पहली बार चलाना) |
# नवीनतम पैक को ~/.veilgate/rules (डिफ़ॉल्ट स्थान) में स्थापित करें
veilgate update-rules
# या एक रिलीज़ टैग पर पिन करें
veilgate update-rules --dir ~/.veilgate/rules --version v1.2.0
# उपलब्ध रिलीज़ सूचीबद्ध करें
veilgate update-rules --list
स्थापना के बाद, VeilGate का fsnotify वॉचर ~500 ms के भीतर नई फ़ाइलों को उठाता है। प्रत्येक मौजूदा फ़ाइल को अधिलेखित होने से पहले <name>.bak के रूप में बैकअप किया जाता है (छोड़ने के लिए --no-backup पास करें)। स्थापित संस्करण <rules_dir>/.rules-version.json में दर्ज किया जाता है ताकि CI और ऑपरेटर git मेटाडेटा से परामर्श किए बिना जाँच सकें कि क्या चल रहा है।
दोनों निर्देशिकाओं को सुरक्षा नीति के रूप में मानें — उत्पादन में तैनात करने से पहले परिवर्तनों की समीक्षा करें, विशेष रूप से detector.yaml और ip_reputation.yaml की। पूर्ण गाइड और रोलबैक प्रक्रिया:
docs/how-to/install-community-rules.md।
veilgate.yaml और नियम फ़ाइलें।veilgate update-rules के माध्यम से सामुदायिक-अनुरक्षित नियम सेट स्थापित और अपडेट करें।challenge या tarpit मोड का उपयोग करने से पहले VEILGATE_SECRET या challenge.secret सेट करें। VeilGate डिफ़ॉल्ट चैलेंज सीक्रेट के साथ observe मोड के बाहर शुरू करने से इनकार करता है।rules/ के तहत फ़ाइलों को सुरक्षा नीति के रूप में मानें। उनकी समीक्षा करें और संस्करण बनाएँ।make test
make fmt
make build
शीर्ष-स्तरीय tests फ़ोल्डर में ब्लैक-बॉक्स एकीकरण परीक्षण हैं। पैकेज-प्राइवेट यूनिट परीक्षण उनके पैकेजों के बगल में रहते हैं क्योंकि वे अनएक्सपोर्टेड डिटेक्टर, TLS फिंगरप्रिंट, टारपिट और ML सहायकों को सत्यापित करते हैं।
Apache-2.0. देखें LICENSE।
| फ़्लैग | डिफ़ॉल्ट | विवरण |
|---|
--upstream URL | http://127.0.0.1:3000 | आपका अपस्ट्रीम एप्लिकेशन |
--listen ADDR | :8080 | प्रॉक्सी सुनने का पता |
--metrics-listen ADDR | 127.0.0.1:9090 | मेट्रिक्स (निजी रखें) |
--secret SECRET | प्रॉम्प्ट या जनरेटेड | चैलेंज साइनिंग सीक्रेट |
--user USER | veilgate | VeilGate चलाने के लिए सेवा उपयोगकर्ता |
--no-service | — | systemd सेवा छोड़ें |
--no-rules | — | सामुदायिक नियम स्थापना छोड़ें |
| मोड | इसका उपयोग कब करें | व्यवहार |
|---|
observe | प्रारंभिक रोलआउट और ट्यूनिंग | ट्रैफ़िक को स्कोर और रिकॉर्ड करता है, हमेशा अपस्ट्रीम अग्रेषित करता है |
challenge | आप संदिग्ध क्लाइंट को बाधित करने में सहज हैं | मध्यम-स्कोर ट्रैफ़िक को प्रूफ ऑफ वर्क मिलता है |
tarpit | आप उच्च-विश्वास एजेंटों को धोखा देने के लिए तैयार हैं | उच्च-स्कोर ट्रैफ़िक को नकली ऐप मिलता है |
auto | आप चाहते हैं कि थ्रेशोल्ड प्रति अनुरोध प्रवर्तन चलाएँ | थ्रेशोल्ड से नीचे अग्रेषित करें, मध्य स्कोर को चुनौती दें, उच्च स्कोर को टारपिट करें |
| हाँ — git के माध्यम से क्लोन करता है |
veilgate बाइनरी (स्टार्टअप) | नहीं — rules_dir पढ़ता है, कभी नहीं लाता |
veilgate update-rules | केवल जब आप इसे स्पष्ट रूप से कॉल करते हैं |