
वेब, Android, और iOS प्रोजेक्ट्स में स्रोत कोड का ऑडिट करने, समस्याओं की ट्राइएज करने, और कमजोरियों का पता लगाने के लिए उदाहरण AI-एजेंट टास्कफ्लो और MCP सर्वर।
इस रिपॉज़िटरी में SecLab Taskflow Agent के साथ उपयोग किए जाने वाले उदाहरण taskflows शामिल हैं, साथ ही taskflows को चलाने के लिए आवश्यक कस्टम MCP सर्वर भी शामिल हैं।
(.venv) देखें।python -m seclab_taskflow_agent -t seclab_taskflows.taskflows.audit.ghsa_variant_analysis_demo -g repo=github/cmark-gfm -g ghsa=GHSA-c944-cv5f-hpvr
अब अपने किसी एक प्रोजेक्ट पर हमारे auditing taskflows चलाकर देखें। यहाँ, हम उदाहरण के तौर पर OWASP Juice Shop का उपयोग कर रहे हैं:
./scripts/audit/run_audit.sh juice-shop/juice-shop
⚠️ नोट: auditing taskflows को चलने में कई घंटे लग सकते हैं, विशेष रूप से बड़े प्रोजेक्ट्स पर, और ये बहुत सारे AI अनुरोध करते हैं, जिन पर काफ़ी खर्च आ सकता है। डिफ़ॉल्ट रूप से, taskflows Copilot API का उपयोग करते हैं। Copilot Billing के बारे में अधिक जानकारी आप यहाँ पा सकते हैं। वैकल्पिक रूप से, आप
AI_API_ENDPOINTenvironment variable सेट करके एक अलग AI API का उपयोग कर सकते हैं, जैसा कि यहाँ समझाया गया है।
audit के परिणाम एक SQLite डेटाबेस में लिखे जाते हैं, जो रन के अंत में स्वचालित रूप से एक SQLite व्यूअर में खुल जाता है। परिणाम "audit_result" नामक तालिका में होते हैं। तालिका में "has_vulnerability" नामक एक कॉलम है, जिसमें उन पंक्तियों में चेकमार्क होते हैं जो सबसे अधिक संभावना से वास्तविक vulnerabilities हैं।
audit workflow वेब एप्लिकेशन और लाइब्रेरीज़ के साथ-साथ Android, iOS, और क्रॉस-प्लेटफ़ॉर्म मोबाइल एप्लिकेशन को भी पहचानता है। मोबाइल entry-point संग्रह exported Android components, deep links, URL schemes, Universal Links, app extensions, और WebView JavaScript bridges को रिकॉर्ड करता है, जिसमें उनकी permissions, export status, और input filters शामिल हैं।
audit runner वर्गीकरण से पहले इस मेटाडेटा को एकत्र करता है, जो मोबाइल एप्लिकेशन के रूप में चिह्नित components पर मोबाइल-विशिष्ट
मार्गदर्शन लागू करता है। मौजूदा --advisory और -m विकल्प मोबाइल रन पर भी लागू होते हैं।
दोनों मोबाइल entry-point taskflows container-backed source-access toolbox का उपयोग करते हैं और Docker की आवश्यकता रखते हैं।
मोबाइल मेटाडेटा mobile_entry_point तालिका में संग्रहीत किया जाता है। मौजूदा context डेटाबेस स्वचालित रूप से nullable
application.is_mobile_app कॉलम प्राप्त कर लेते हैं, बिना मौजूदा परिणामों को हटाए।
हम taskflows को sandboxed वातावरण में चलाने की सलाह देते हैं। GitHub Codespaces सुविधाजनक हैं, या यदि आप चाहें तो आप स्क्रिप्ट run_seclab_agent.sh का उपयोग करके seclab-taskflow-agent का docker container चला सकते हैं, जैसा कि यहाँ बताया गया है। ध्यान दें कि इस स्क्रिप्ट को रेपो की मुख्य डायरेक्टरी से चलाना आवश्यक है, और कस्टम MCP सर्वर के लिए डेटा संग्रहीत करने हेतु environment variables वाली .env फ़ाइल उसी डायरेक्टरी में होनी चाहिए।
पहले, रेपो की मुख्य डायरेक्टरी में एक .env फ़ाइल बनाएँ। run_seclab_agent.sh के लिए आप उपयोग कर सकते हैं:
MEMCACHE_STATE_DIR=/app/data
CODEQL_DBS_BASE_PATH=/app/data
DATA_DIR=/app/data
LOG_DIR=/app/logs
MEMCACHE_STATE_DIR memcache में कुछ intermediate डेटा को बनाए रखने के लिए आवश्यक है, DATA_DIR विभिन्न mcp सर्वरों के लिए intermediate परिणाम संग्रहीत करने हेतु आवश्यक है, और LOG_DIR सर्वरों द्वारा उत्पन्न log फ़ाइलों को संग्रहीत करने के लिए उपयोग किया जाता है। इन्हें मुख्य डायरेक्टरी में एक .env फ़ाइल में सेट किया जा सकता है। यदि कस्टम MCP सर्वरों के लिए कोई environment variables सेट नहीं हैं, तो संबंधित फ़ोल्डर स्वचालित रूप से बनाए जाएँगे। स्थान प्लेटफ़ॉर्म पर निर्भर करता है, और इसे platformdirs द्वारा सेट किया जाता है।
इसके अतिरिक्त, AI API endpoints और secrets को भी environment variables या Codespace secrets के माध्यम से कॉन्फ़िगर करना आवश्यक है। विशेष रूप से, environment variables AI_API_TOKEN और AI_API_ENDPOINT को उपयुक्त AI API endpoints और credentials पर सेट करना आवश्यक है। यदि सेट नहीं किया गया है, तो डिफ़ॉल्ट AI_API_ENDPOINT GitHub Copilot है:
AI_API_ENDPOINT="https://api.githubcopilot.com"
इसके अतिरिक्त, GH_TOKEN environment variable को भी सेट करना आवश्यक है ताकि GitHub API के साथ इंटरैक्शन संभव हो सके, जैसे कि सामग्री प्राप्त करना, issues बनाना आदि।
व्यक्तिगत taskflows को अतिरिक्त सेटअप की आवश्यकता हो सकती है, कृपया अधिक आवश्यकताओं के लिए संबंधित सबडायरेक्टरीज़ में README.md देखें।
संबंधित env vars सेट करने के बाद, एक उदाहरण taskflow इस प्रकार चलाएँ:
./scripts/run_seclab_agent.sh -t seclab_taskflows.taskflows.audit.ghsa_variant_analysis_demo -g repo=github/cmark-gfm -g ghsa=GHSA-c944-cv5f-hpvr
SecLab Taskflows SecLab Taskflow Agent रिपॉज़िटरी का एक सहयोगी रिपॉज़िटरी है। SecLab Taskflow Agent एक प्रायोगिक agentic framework है जिसे GitHub Security Lab द्वारा अनुरक्षित किया जाता है। यह रिपॉज़िटरी SecLab Taskflow Agent के साथ उपयोग के लिए उदाहरण taskflows और सहायक संसाधन प्रदान करती है। हम सुरक्षा उद्देश्यों के लिए AI Agents का उपयोग करने के प्रयोग के लिए agent और इन taskflows का उपयोग कर रहे हैं, जैसे कि vulnerabilities के लिए कोड का ऑडिट करना या issues की triage करना।
हमें आपकी प्रतिक्रिया सुनना अच्छा लगेगा। कृपया हमें feature request या bug report भेजने के लिए एक issue बनाएँ। हम pull requests का भी स्वागत करते हैं (यदि आप योगदान देना चाहते हैं तो अधिक जानकारी के लिए हमारे contribution guidelines देखें)।
ghcr.io/githubsecuritylab/ से container images latest tag का उपयोग करती हैं।
चूँकि यह tag परिवर्तनशील है, स्थानीय रूप से cached image पुरानी हो सकती है और
Docker वर्तमान registry image के बजाय उसका उपयोग जारी रख सकता है। जब आप यह सुनिश्चित करना चाहें कि Docker
नवीनतम संस्करणों को pull करे, तो taskflow चलाने से पहले स्थानीय images हटा दें:
docker rmi -f $(docker images --format '{{.Repository}}:{{.Tag}}' | grep '^ghcr.io/githubsecuritylab/')
यह प्रोजेक्ट MIT लाइसेंस की शर्तों के अंतर्गत लाइसेंस प्राप्त है। पूर्ण शर्तों के लिए कृपया LICENSE फ़ाइल देखें।