
स्वायत्त व्हाइट-हैट सुरक्षा ऑडिटर — AI-संचालित कोड समीक्षा, बग बाउंटी अनुसंधान, एक्सप्लॉइट निर्माण और निष्पादन-आधारित सत्यापन के लिए।
configs/ - वैकल्पिक संदर्भ प्रोफ़ाइलये JSON फ़ाइलें वैकल्पिक, उत्तर-मुक्त संदर्भ प्रोफ़ाइल हैं। ये Flounder उत्पाद मोड नहीं हैं और डिफ़ॉल्ट रूप से लोड नहीं की जाती हैं। ये उन मामलों के लिए मौजूद हैं जहाँ एक ऑपरेटर जानबूझकर मॉडल को किसी लक्ष्य की श्रेणी के लिए एक परिचित ढाँचा देना चाहता है।
| फ़ाइल | वैकल्पिक संदर्भ |
|---|---|
vulnerability-audit.default.json | सामान्य सुरक्षा ऑडिट संदर्भ (डोमेन-अज्ञेय) |
zk-constraint-audit.default.json | ज़ीरो-नॉलेज / कांस्ट्रेंट-सिस्टम सर्किट |
solidity-contract-audit.default.json | Solidity / EVM स्मार्ट कॉन्ट्रैक्ट |
thegraph-contracts.default.json | The Graph प्रोटोकॉल कॉन्ट्रैक्ट |
cairo-starknet-audit.default.json | Cairo कॉन्ट्रैक्ट और Starknet-संबंधित घटक |
प्रत्येक उस श्रेणी के लिए एक projectContext स्कैफ़ोल्ड है: परिसंपत्तियों का प्रकार, हमलावर क्षमताएँ, ट्रस्ट सीमाएँ, इनवेरिएंट और फोकस क्षेत्र जो एक ज्ञात स्टैक में आमतौर पर होते हैं। मॉडल के पास अभी भी ऑडिट रणनीति होती है और फ्रेमवर्क को अभी भी निष्पादन प्रमाण की आवश्यकता होती है।
फ्रेमवर्क इन्हें अपने आप कभी लोड नहीं करता। एक डिफ़ॉल्ट flounder run / flounder map / flounder audit कोई पूर्व-निर्धारित बग ज्ञान नहीं रखता: रन ब्लाइंड और निष्पादन-आधारित होता है, इसलिए किसी भी ऑडिट परीक्षण के कुछ खोजने से पहले मॉडल को वास्तविक स्रोत से अटैक सरफेस को सूचीबद्ध करना पड़ता है। मॉडल को बग आमतौर पर कहाँ रहते हैं इसकी पूर्व-लिखित सूची सौंपने से वह सूचीबद्ध क्षेत्रों की ओर और अनसूचीबद्ध क्षेत्रों से दूर पक्षपाती हो जाता है, और ऑडिट को पढ़ने के बजाय चेकलिस्ट-मिलान में बदलने का जोखिम होता है। यह इस टूल के नए बग खोजने के उद्देश्य के विपरीत है, इसलिए जब तक आप उन्हें माँगते नहीं हैं, प्रोफ़ाइल बंद रहती हैं।
वे उन मामलों के लिए मौजूद हैं जहाँ यह व्यापार-बंद सार्थक है: एक अच्छी तरह से ज्ञात भेद्यता श्रेणी जहाँ सामान्य सरफेस को सीड करना वास्तव में उपयोगी है, एक सीमित बजट जिसे फोकस/आउट-ऑफ-स्कोप पर शुरुआती बढ़त की आवश्यकता है, या एक परिचित स्टैक के लिए स्कोप को तुरंत फ्रेम करना। Solidity/EVM और ZK प्रोफ़ाइल सामान्य उच्च-संकेत उदाहरण हैं। ऐसी स्थितियों में, ऑप्ट-इन करें:
flounder run --config ./configs/solidity-contract-audit.default.json \
--target my-protocol --source ./contracts --corpus ./docs
--config <file> रन कॉन्फ़िग में मर्ज होता है (applyConfigOverrides), फिर कमांड-लाइन फ़्लैग इसे ओवरराइड करते हैं — इसलिए CLI पर दिए गए --target / --source / --corpus / --max-steps फ़ाइल पर जीतते हैं। projectContext से, केवल summary, focusAreas, और outOfScope वर्तमान में मॉडल तक पहुँचते हैं (इसके स्कोप नोट में बुने हुए)। नीचे दिए गए समृद्ध फ़ील्ड आज दस्तावेज़ीकरण/स्कैफ़ोल्ड हैं — वे एक मानव लेखक के लिए थ्रेट मॉडल दर्ज करते हैं लेकिन अभी तक प्रॉम्प्ट में इंजेक्ट नहीं किए गए हैं।
{
"targetName": "…",
"sourcePaths": [], // usually left empty; pass the real target via --source
"corpusPaths": [], // usually left empty; pass the project's own docs via --corpus
"thinkingLevel": "xhigh",
"projectContext": {
"summary": "…", // ── injected into the model's scope note
"focusAreas": ["…"], // ── injected
"outOfScope": ["…"], // ── injected
"criticalAssets": ["…"], // scaffold only (declared, not yet prompted)
"attackerCapabilities": ["…"], // scaffold only
"trustBoundaries": ["…"], // scaffold only
"securityInvariants": ["…"], // scaffold only
"scenarioGuidance": ["…"] // scaffold only
}
}
प्रोफ़ाइल में sourcePaths / corpusPaths खाली छोड़ें और वास्तविक लक्ष्य तथा प्रोजेक्ट के अपने स्पेक्स/दस्तावेज़ कमांड लाइन पर पास करें। एक प्रोफ़ाइल एक ढाँचा है, लक्ष्य की वास्तविक सामग्री का विकल्प नहीं।
एक प्रोफ़ाइल संदर्भ है, कभी निर्णय नहीं। यह मॉडल को बता सकती है कि कहाँ देखना है; यह मॉडल को यह नहीं बता सकती कि उसे क्या मिलेगा। पुष्टि अभी भी केवल निष्पादन से आती है — एक खोज वास्तविक है क्योंकि एक PoC चला, कभी नहीं क्योंकि वह एक प्रोफ़ाइल से मेल खाती है। (प्रोफ़ाइलों का अपना scenarioGuidance इसे स्पष्ट रूप से कहता है: "ऐसे स्थैतिक बग नियम न लिखें जो खोजों का दावा करते हैं।")
यह डोमेन संदर्भ पैक के लिए ऑप्ट-इन स्थान है। एक जोड़ने के लिए, इसे एक श्रेणी के लिए सामान्य और उत्तर-मुक्त रखें: किसी श्रेणी में आमतौर पर होने वाले अटैक सरफेस और इनवेरिएंट को कैप्चर करें, किसी विशिष्ट लक्ष्य में किसी विशिष्ट ज्ञात बग को कभी नहीं। लक्ष्य-विशिष्ट कोई भी चीज़ उस ऑडिट के --corpus में आती है, यहाँ नहीं।