Open-source, cross-platform, multi-purpose security auditing tool
नोट: DevAudit OSS Index डेटाबेस का उपयोग करता है, जिसमें कुछ दर सीमाएं हैं। यदि आप देखते हैं कि आप सीमा तक पहुँच रहे हैं तो कृपया एक मुद्दा उठाएं। प्रमाणित उपयोगकर्ताओं को उच्च सीमा मिलती है, और हम जल्द ही DevAudit में प्रमाणीकरण लागू कर रहे हैं। अधिकांश गैर-प्रमाणित उपयोगकर्ता शायद कई उपयोग मामलों के लिए सीमा पर ध्यान नहीं देंगे। यह आमतौर पर केवल बड़ी परियोजनाओं या उच्च परियोजना वॉल्यूम में ही प्रभावी होता है।
नवीनतम रिलीज़ रिलीज़ पृष्ठ से प्राप्त करें।


DevAudit एक ओपन-सोर्स, क्रॉस-प्लेटफ़ॉर्म, बहुउद्देशीय सुरक्षा लेखापरीक्षा उपकरण है जो डेवलपर्स और DevOps तथा DevSecOps अपनाने वाली टीमों के लिए लक्षित है, जो समाधान स्टैक के कई स्तरों पर सुरक्षा भेद्यताओं का पता लगाता है। DevAudit लेखापरीक्षा क्षमताओं की एक विस्तृत श्रृंखला प्रदान करता है जो सॉफ्टवेयर विकास जीवन-चक्र में सुरक्षा प्रथाओं और सुरक्षा लेखापरीक्षा के कार्यान्वयन को स्वचालित करता है। DevAudit आपके ऑपरेटिंग सिस्टम और एप्लिकेशन पैकेज निर्भरताओं, एप्लिकेशन और एप्लिकेशन सर्वर कॉन्फ़िगरेशन, और एप्लिकेशन कोड को स्कैन कर सकता है, ताकि संभावित भेद्यताओं की पहचान की जा सके, जो OSS Index और Vulners जैसे प्रदाताओं द्वारा एकत्रित डेटा पर आधारित होती हैं, जो नेशनल वल्नरेबिलिटी डेटाबेस (NVD) CVE डेटा फीड, डेबियन सिक्योरिटी एडवाइज़री डेटा फीड, ड्रुपल सिक्योरिटी एडवाइज़री, और कई अन्य स्रोतों से प्राप्त होती हैं।
DevAudit डेवलपर्स को वेब एप्लिकेशन विकास के लिए OWASP Top 10 में से कम से कम 4 जोखिमों को संबोधित करने में मदद करता है:
साथ ही MITRE द्वारा CWE शब्दकोश में वर्गीकृत जोखिम जैसे CWE-2 पर्यावरण और CWE-200 सूचना प्रकटीकरण
जैसे-जैसे विकास आगे बढ़ता है और इसकी क्षमताएं परिपक्व होती हैं, DevAudit OWASP Top 10 और CWE सूचियों पर अन्य जोखिमों जैसे इंजेक्शन और XSS को भी संबोधित करने में सक्षम होगा। वेब, क्लाउड और वितरित मल्टी-यूज़र एप्लिकेशनों पर ध्यान केंद्रित करने के साथ, आज सॉफ्टवेयर विकास एक जटिल मामला बन गया है, जहां सुरक्षा मुद्दे और संभावित भेद्यताएं उस स्टैक के सभी स्तरों पर उत्पन्न होती हैं जिन पर डेवलपर्स एप्लिकेशन वितरित करने के लिए निर्भर करते हैं। DevAudit का लक्ष्य समाधान स्टैक के सभी स्तरों पर विकास सुरक्षा समीक्षाओं और सर्वोत्तम प्रथाओं के कार्यान्वयन को स्वचालित करने के लिए एक मंच प्रदान करना है, चाहे वह लाइब्रेरी पैकेज निर्भरताओं से लेकर एप्लिकेशन और सर्वर कॉन्फ़िगरेशन तक और स्रोत कोड तक हो।
क्रॉस-प्लेटफ़ॉर्म जिसमें Docker इमेज भी उपलब्ध है। DevAudit Windows और Linux पर चलता है, और *BSD, Mac और ARM Linux समर्थन की योजना है। DevAudit चलाने के लिए केवल .NET या Mono का एक अद्यतित संस्करण आवश्यक है। एक DevAudit Docker इमेज को Docker Hub से खींचा जा सकता है और Mono स्थापित किए बिना चलाया जा सकता है।
CLI इंटरफ़ेस। DevAudit में एक CLI इंटरफ़ेस है जिसमें गैर-संवादात्मक आउटपुट का विकल्प है, और इसे आसानी से CI बिल्ड पाइपलाइनों या डेवलपर IDE में पोस्ट-बिल्ड कमांड-लाइन कार्यों के रूप में एकीकृत किया जा सकता है। कोर ऑडिट लाइब्रेरी के IDE GUI में एकीकरण पर काम पहले ही शुरू हो चुका है, जिसमें Audit.Net Visual Studio एक्सटेंशन शामिल है।
लगातार अद्यतन भेद्यता डेटा। DevAudit बैकएंड डेटा प्रदाताओं जैसे OSS Index और Vulners का उपयोग करता है, जो सुरक्षा डेटा फीड और स्रोतों की एक विस्तृत श्रृंखला जैसे NVD CVE फीड, ड्रुपल सिक्योरिटी एडवाइज़री आदि से संकलित लगातार अद्यतन भेद्यता डेटा प्रदान करते हैं। vFeed और Libraries.io जैसे अतिरिक्त भेद्यता और पैकेज डेटा प्रदाताओं के लिए समर्थन जोड़ा जाएगा।
ऑपरेटिंग सिस्टम और विकास पैकेज निर्भरताओं का लेखापरीक्षा। DevAudit Windows एप्लिकेशन और Windows MSI, Chocolatey और OneGet के माध्यम से स्थापित पैकेजों के साथ-साथ Dpkg, RPM और YUM के माध्यम से स्थापित डेबियन, Ubuntu और CentOS Linux पैकेजों का लेखापरीक्षा करता है, ताकि एप्लिकेशन और पैकेजों के विशिष्ट संस्करणों के लिए रिपोर्ट की गई भेद्यताओं की जांच की जा सके। विकास पैकेज निर्भरताओं और लाइब्रेरीज़ के लिए DevAudit .NET के लिए NuGet v2 निर्भरताओं, nodejs के लिए Yarn/NPM और Bower निर्भरताओं, और PHP के लिए Composer पैकेज निर्भरताओं का लेखापरीक्षा करता है। विभिन्न भाषाओं के लिए अन्य पैकेज प्रबंधकों का समर्थन नियमित रूप से जोड़ा जाता है।
एप्लिकेशन सर्वर कॉन्फ़िगरेशन का लेखापरीक्षा। DevAudit OpenSSH sshd, Apache httpd, MySQL/MariaDB, PostgreSQL और Nginx सर्वरों के सर्वर संस्करण और सर्वर कॉन्फ़िगरेशन का लेखापरीक्षा करता है, और कई और आ रहे हैं। कॉन्फ़िगरेशन लेखापरीक्षा Alpheus लाइब्रेरी पर आधारित है और सर्वर कॉन्फ़िगरेशन फ़ाइलों के पूर्ण सिंटैक्टिक विश्लेषण का उपयोग करके की जाती है। सर्वर कॉन्फ़िगरेशन नियम YAML टेक्स्ट फ़ाइलों में संग्रहीत किए जाते हैं और डेवलपर्स की आवश्यकताओं के अनुसार अनुकूलित किए जा सकते हैं। कई और सर्वरों और एप्लिकेशनों तथा डेटाबेस लेखापरीक्षा जैसे विश्लेषण के प्रकारों के लिए समर्थन नियमित रूप से जोड़ा जाता है।
एप्लिकेशन कॉन्फ़िगरेशन का लेखापरीक्षा। DevAudit Microsoft ASP.NET एप्लिकेशनों का लेखापरीक्षा करता है और एप्लिकेशन कॉन्फ़िगरेशन में मौजूद भेद्यताओं का पता लगाता है। एप्लिकेशन कॉन्फ़िगरेशन नियम YAML टेक्स्ट फ़ाइलों में संग्रहीत किए जाते हैं और डेवलपर्स की आवश्यकताओं के अनुसार अनुकूलित किए जा सकते हैं। Drupal और WordPress और DNN CMS जैसे एप्लिकेशनों के लिए एप्लिकेशन कॉन्फ़िगरेशन लेखापरीक्षा जल्द आ रही है।
स्टैटिक विश्लेषण द्वारा एप्लिकेशन कोड का लेखापरीक्षा। DevAudit वर्तमान में .NET CIL बाइटकोड के स्टैटिक विश्लेषण का समर्थन करता है। विश्लेषक बाहरी स्क्रिप्ट फ़ाइलों में रहते हैं और डेवलपर की आवश्यकताओं के आधार पर पूरी तरह से अनुकूलित किए जा सकते हैं। Roslyn के माध्यम से C# स्रोत कोड विश्लेषण, PHP7 स्रोत कोड और कई और भाषाओं तथा बाहरी स्टैटिक कोड विश्लेषण उपकरणों के लिए समर्थन जल्द आ रहा है।
रिमोट एजेंटलेस लेखापरीक्षा। DevAudit SSH के माध्यम से रिमोट होस्ट से कनेक्ट हो सकता है, जिसमें रिमोट वातावरण में स्थानीय वातावरण के समान लेखापरीक्षा सुविधाएं उपलब्ध हैं। रिमोट होस्टों का लेखापरीक्षा करने के लिए केवल एक मान्य SSH लॉगिन आवश्यक है, और Windows पर चलने वाला DevAudit SSH के माध्यम से Linux होस्टों से कनेक्ट होकर उनका लेखापरीक्षा कर सकता है। Windows पर DevAudit WinRM का उपयोग करके अन्य Windows मशीनों से रिमोट रूप से कनेक्ट होकर उनका लेखापरीक्षा भी कर सकता है।
एजेंटलेस Docker कंटेनर लेखापरीक्षा। DevAudit Docker होस्ट से चल रहे Docker कंटेनरों का लेखापरीक्षा कर सकता है, जिसमें कंटेनर वातावरण में स्थानीय वातावरण के समान सुविधाएं उपलब्ध हैं।
GitHub रिपॉजिटरी लेखापरीक्षा। DevAudit सीधे GitHub पर होस्ट किए गए प्रोजेक्ट रिपॉजिटरी से कनेक्ट हो सकता है और पैकेज स्रोत और एप्लिकेशन कॉन्फ़िगरेशन लेखापरीक्षा कर सकता है।
PowerShell समर्थन। DevAudit को PowerShell सिस्टम प्रशासन वातावरण में cmdlets के रूप में भी चलाया जा सकता है। PowerShell समर्थन पर काम वर्तमान में रुका हुआ है, लेकिन निकट भविष्य में Windows और Linux दोनों पर क्रॉस-प्लेटफ़ॉर्म PowerShell के समर्थन के साथ फिर से शुरू होगा।
DevAudit एक .NET 4.6 एप्लिकेशन है। अपनी मशीन पर स्थानीय रूप से स्थापित करने के लिए आपको Windows पर Microsoft .NET Framework 4.6 रनटाइम, या Linux पर Mono 4.4+ की आवश्यकता होगी। .NET 4.6 अधिकांश नवीनतम Windows संस्करणों पर पहले से स्थापित होना चाहिए; यदि नहीं, तो यह एक Windows सुविधा के रूप में उपलब्ध है जिसे चालू किया जा सकता है या उपभोक्ता Windows पर Programs and Features कंट्रोल पैनल एप्लेट से, या Windows के सर्वर संस्करणों पर Server Manager में Add Roles and Features विकल्प से स्थापित किया जा सकता है। Windows के पुराने संस्करणों के लिए, Microsoft से .NET 4.6 इंस्टॉलर यहाँ पाया जा सकता है।
Linux पर Mono का न्यूनतम समर्थित संस्करण 4.4 है। हालाँकि DevAudit Mono 4 पर चलता है (एक ज्ञात समस्या के साथ), यह अनुशंसा की जाती है कि Mono 5 स्थापित किया जाए। Mono 5 Mono के बिल्ड और रनटाइम घटकों में कई सुधार लाता है जो DevAudit को लाभान्वित करते हैं।
आपके डिस्ट्रो द्वारा प्रदान किए गए मौजूदा Mono पैकेज संभवतः अभी तक Mono 5 नहीं हैं, इसलिए आपको Mono 5 का उपयोग करने में सक्षम होने के लिए Mono पैकेज मैन्युअल रूप से स्थापित करने होंगे। कई प्रमुख Linux डिस्ट्रो के लिए Mono परियोजना द्वारा प्रदान किए गए सबसे हाल के पैकेजों के लिए स्थापना निर्देश यहाँ हैं। यह अनुशंसा की जाती है कि आप mono-devel पैकेज स्थापित करें क्योंकि इससे लापता असेंबली की संभावना कम हो जाएगी।
वैकल्पिक रूप से Linux पर आप DevAudit Docker इमेज का उपयोग कर सकते हैं यदि आप Mono स्थापित नहीं करना चाहते हैं और आपकी मशीन पर पहले से Docker स्थापित है।
DevAudit को निम्नलिखित विधियों द्वारा स्थापित किया जा सकता है:
पूर्व-आवश्यकताएं: Mono 4.4+ (Mono 5 अनुशंसित) और mono-devel पैकेज, जो Mono ऐप्स के निर्माण के लिए आवश्यक कंपाइलर और अन्य उपकरण प्रदान करता है। आपके डिस्ट्रो में कम से कम Mono संस्करण 4.4 और उससे ऊपर के पैकेज होने चाहिए, अन्यथा कई प्रमुख Linux डिस्ट्रो के लिए Mono परियोजना द्वारा प्रदान किए गए सबसे हाल के पैकेजों के लिए मैन्युअल स्थापना निर्देश यहाँ हैं।
DevAudit रिपॉजिटरी को https://github.com/OSSIndex/DevAudit.git से क्लोन करें।
रूट DevAudit निर्देशिका में build.sh स्क्रिप्ट चलाएं। DevAudit को बिना किसी त्रुटि के संकलित होना चाहिए।
./devaudit --help चलाएं और आपको DevAudit संस्करण और सहायता स्क्रीन मुद्रित दिखनी चाहिए।
ध्यान दें कि Linux पर NuGet कभी-कभी Error: NameResolutionFailure के साथ बाहर निकल सकता है, जो NuGet पैकेजों वाले सर्वरों से संपर्क करने में एक क्षणिक समस्या प्रतीत होती है। आपको बस ./build.sh को फिर से तब तक चलाना चाहिए जब तक बिल्ड सामान्य रूप से पूरा न हो जाए।
पूर्व-आवश्यकताएं: आपके पास निम्नलिखित में से एक होना चाहिए:
DevAudit रिपॉजिटरी को https://github.com/OSSIndex/DevAudit.git से क्लोन करें।
एक Visual Studio 2015 या .NET से, रूट DevAudit निर्देशिका में build.cmd स्क्रिप्ट चलाएं। DevAudit को बिना किसी त्रुटि के संकलित होना चाहिए।
./devaudit --help चलाएं और आपको DevAudit संस्करण और सहायता स्क्रीन मुद्रित दिखनी चाहिए।
पूर्व-आवश्यकताएं: आपके पास Linux पर Mono 4.4+ या Windows पर .NET 4.6 होना चाहिए।
प्रोजेक्ट रिलीज़ पृष्ठ से Windows या Linux के लिए नवीनतम रिलीज़ आर्काइव फ़ाइल डाउनलोड करें। इस फ़ाइल को एक निर्देशिका में अनपैक करें।
जिस निर्देशिका में आपने रिलीज़ आर्काइव अनपैक किया है, वहां से Windows पर devaudit --help या Linux पर ./devaudit --help चलाएं। आपको संस्करण और सहायता स्क्रीन मुद्रित दिखनी चाहिए।
(वैकल्पिक) DevAudit स्थापना निर्देशिका को अपने PATH पर्यावरण चर में जोड़ें।
किसी रिलीज़ के लिए MSI इंस्टॉलर Github रिलीज़ पृष्ठ पर पाया जा सकता है।
DevAudit Chocolatey पर भी उपलब्ध है।
choco install devaudit टाइप करें।Docker Hub से DevAudit इमेज खींचें: docker pull ossindex/devaudit। ossindex/devaudit:latest टैग की गई इमेज (जो डिफ़ॉल्ट इमेज डाउनलोड की जाती है) सबसे हाल की रिलीज़ से बनाई गई है, जबकि ossindex/devaudit:unstable स्रोत कोड की मास्टर शाखा पर बनाई गई है और इसमें कम परीक्षण के साथ नवीनतम परिवर्धन शामिल हैं।
लेखापरीक्षा कार्यों के एक तार्किक समूह का प्रतिनिधित्व करता है। DevAudit वर्तमान में निम्नलिखित लेखापरीक्षा लक्ष्यों का समर्थन करता है:
एक तार्किक वातावरण का प्रतिनिधित्व करता है जहां लेखापरीक्षा लक्ष्यों के विरुद्ध लेखापरीक्षाएं निष्पादित की जाती हैं। लेखापरीक्षा वातावरण लेखापरीक्षा के लिए आवश्यक I/O और कमांड निष्पादन को अमूर्त करते हैं और लेखापरीक्षा लक्ष्यों के विरुद्ध समान कार्यों को उस भौतिक या नेटवर्क स्थान पर करने की अनुमति देते हैं जहां लक्ष्य की फ़ाइलें और निष्पादन योग्य स्थित हैं। वर्तमान में निम्नलिखित वातावरण समर्थित हैं:
ये विभिन्न विकल्प हैं जिन्हें लेखापरीक्षा के लिए सक्षम किया जा सकता है। आप DevAudit प्रोग्राम पर लागू होने वाले विकल्पों को निर्दिष्ट कर सकते हैं, उदाहरण के लिए, गैर-संवादात्मक मोड में चलाने के लिए, साथ ही लक्ष्य पर लागू होने वाले विकल्पों को भी, उदाहरण के लिए, यदि आप ASP.NET एप्लिकेशनों की लेखापरीक्षा करने के लिए AppDevMode विकल्प को सत्य पर सेट करते हैं तो कुछ लेखापरीक्षा नियम सक्षम नहीं होंगे।
CLI DevAudit प्रोग्राम का प्राथमिक इंटरफ़ेस है और यह संवादात्मक उपयोग और अनुसूचित कार्यों, शेल स्क्रिप्ट, CI बिल्ड पाइपलाइनों और डेवलपर IDE में पोस्ट-बिल्ड कार्यों में गैर-संवादात्मक उपयोग दोनों के लिए उपयुक्त है। मूल DevAudit CLI सिंटैक्स है:
devaudit TARGET [ENVIRONMENT] | [OPTIONS]
जहां TARGET लेखापरीक्षा लक्ष्य निर्दिष्ट करता है, ENVIRONMENT लेखापरीक्षा वातावरण निर्दिष्ट करता है और OPTIONS लेखापरीक्षा लक्ष्य और वातावरण के लिए विकल्प निर्दिष्ट करता है। विकल्पों को निर्दिष्ट करने के 2 तरीके हैं: प्रोग्राम विकल्प और सामान्य लेखापरीक्षा विकल्प जो एक से अधिक लक्ष्यों पर लागू होते हैं, सीधे कमांड-लाइन पर पैरामीटर के रूप में निर्दिष्ट किए जा सकते हैं। लक्ष्य-विशिष्ट विकल्पों को -o विकल्प के साथ -o OPTION1=VALUE1,OPTION2=VALUE2,.... प्रारूप का उपयोग करके निर्दिष्ट किया जा सकता है, जिसमें अल्पविराम प्रत्येक विकल्प कुंजी-मान जोड़ी को सीमांकित करते हैं।
यदि आप प्रोग्राम आउटपुट को किसी फ़ाइल में पाइप या रीडायरेक्ट कर रहे हैं तो आपको किसी भी संवादात्मक उपयोगकर्ता इंटरफ़ेस सुविधाओं और एनिमेशन को अक्षम करने के लिए हमेशा -n --non-interactive विकल्प का उपयोग करना चाहिए।
फ़ाइल पथ निर्दिष्ट करते समय, पथ से पहले एक @ उपसर्ग DevAudit को इंगित करता है कि यह पथ लेखापरीक्षा लक्ष्य की रूट निर्देशिका के सापेक्ष है, उदाहरण के लिए यदि आप निर्दिष्ट करते हैं:
-r c:\myproject -b @bin\Debug\app2.exe
DevAudit बाइनरी फ़ाइल के पथ को c:\myproject\bin\Debug\app2.exe मानता है।
msi Windows मशीनों पर Windows Installer MSI पैकेज स्रोत का पैकेज लेखापरीक्षा करें।
npm NPM package.json का पैकेज लेखापरीक्षा करें।
choco Choco पैकेज प्रबंधक द्वारा स्थापित पैकेजों का पैकेज लेखापरीक्षा करें।
oneget Windows पर सिस्टम OneGet पैकेज स्रोत का पैकेज लेखापरीक्षा करें।
nuget NuGet v2 पैकेज स्रोत का पैकेज लेखापरीक्षा करें। आपको उस NuGet packages.config फ़ाइल का स्थान निर्दिष्ट करना होगा जिसका आप लेखापरीक्षा करना चाहते हैं, -f या --file विकल्प का उपयोग करके; अन्यथा इस फ़ाइल के लिए वर्तमान निर्देशिका खोजी जाएगी।
bower Bower पैकेज स्रोत का पैकेज लेखापरीक्षा करें। आपको उस Bower packages.json फ़ाइल का स्थान निर्दिष्ट करना होगा जिसका आप लेखापरीक्षा करना चाहते हैं, -f या --file विकल्प का उपयोग करके; अन्यथा इस फ़ाइल के लिए वर्तमान निर्देशिका खोजी जाएगी।- composer किसी Composer पैकेज स्रोत का पैकेज ऑडिट करें। आपको -f या --file विकल्प का उपयोग करके ऑडिट करने के लिए Composer composer.json फ़ाइल का स्थान निर्दिष्ट करना होगा, अन्यथा वर्तमान निर्देशिका में इस फ़ाइल की खोज की जाएगी।
dpkg डेबियन Linux और इसके डेरिवेटिव्स पर सिस्टम dpkg पैकेज स्रोत का पैकेज ऑडिट करें।
rpm RedHat Linux और इसके डेरिवेटिव्स पर सिस्टम RPM पैकेज स्रोत का पैकेज ऑडिट करें।
yum RedHat Linux और इसके डेरिवेटिव्स पर सिस्टम Yum पैकेज स्रोत का पैकेज ऑडिट करें।
प्रत्येक पैकेज स्रोत के लिए निम्नलिखित सामान्य ऑडिट विकल्पों का उपयोग किया जा सकता है:
-f --file यदि आवश्यक हो तो पैकेज मैनेजर कॉन्फ़िगरेशन फ़ाइल का स्थान निर्दिष्ट करें। NuGet, Bower और Composer पैकेज स्रोतों को इस विकल्प की आवश्यकता होती है।
--list-packages केवल DevAudit द्वारा स्कैन किए गए पैकेज स्रोत में पैकेजों को सूचीबद्ध करें।
--list-artifacts केवल DevAudit द्वारा स्कैन किए गए पैकेजों के लिए OSS Index पर मिले आर्टिफैक्ट्स को सूचीबद्ध करें।
[प्रायोगिक] के रूप में चिह्नित पैकेज स्रोत केवल स्रोत कोड की master शाखा में उपलब्ध हैं और इनमें सीमित बैक-एंड OSS Index समर्थन हो सकता है। हालांकि, आप list-packages और list-artifacts विकल्पों का उपयोग करके हमेशा स्कैन किए गए पैकेजों और OSS Index पर उपलब्ध आर्टिफैक्ट्स को सूचीबद्ध कर सकते हैं।
aspnet किसी ASP.NET एप्लीकेशन पर एप्लीकेशन ऑडिट करें। प्रासंगिक विकल्प हैं:
-r --root-directory एप्लीकेशन की रूट निर्देशिका निर्दिष्ट करें। यह केवल शीर्ष-स्तरीय एप्लीकेशन निर्देशिका है जिसमें Global.asax और Web.config जैसी फ़ाइलें होती हैं।-b --application-binary एप्लीकेशन बाइनरी निर्दिष्ट करें। यह .NET असेंबली है जिसमें एप्लीकेशन का .NET बाइटकोड होता है। यह फ़ाइल आमतौर पर .DLL होती है और ASP.NET एप्लीकेशन रूट निर्देशिका के bin उप-फ़ोल्डर में स्थित होती है।--config-file या -o AppConfig=configuration-file ASP.NET एप्लीकेशन कॉन्फ़िगरेशन फ़ाइल निर्दिष्ट करता है। यह फ़ाइल आमतौर पर Web.config नाम की होती है और एप्लीकेशन रूट निर्देशिका में स्थित होती है। आप इस विकल्प के साथ डिफ़ॉल्ट @Web.config मान को ओवरराइड कर सकते हैं।-o AppDevMode=enabled निर्दिष्ट करता है कि ऑडिट के लिए एप्लीकेशन विकास मोड सक्षम होना चाहिए। इस मोड का उपयोग विकास के तहत किसी एप्लीकेशन का ऑडिट करते समय किया जा सकता है। AppDevMode के लिए अक्षम के रूप में चिह्नित कुछ कॉन्फ़िगरेशन नियम (जैसे ASP.NET डीबग मोड में एप्लीकेशन चलाना) ऑडिट के दौरान सक्षम नहीं होंगे।netfx किसी .NET एप्लीकेशन पर एप्लीकेशन ऑडिट करें। प्रासंगिक विकल्प हैं:
-r --root-directory एप्लीकेशन की रूट निर्देशिका निर्दिष्ट करें। यह केवल शीर्ष-स्तरीय एप्लीकेशन निर्देशिका है जिसमें App.config जैसी फ़ाइलें होती हैं।-b --application-binary एप्लीकेशन बाइनरी निर्दिष्ट करें। यह .NET असेंबली है जिसमें एप्लीकेशन का .NET बाइटकोड होता है। यह फ़ाइल आमतौर पर .DLL होती है और ASP.NET एप्लीकेशन रूट निर्देशिका के bin उप-फ़ोल्डर में स्थित होती है।--config-file या -o AppConfig=configuration-file .NET एप्लीकेशन कॉन्फ़िगरेशन फ़ाइल निर्दिष्ट करता है। यह फ़ाइल आमतौर पर App.config नाम की होती है और एप्लीकेशन रूट निर्देशिका में स्थित होती है। आप इस विकल्प के साथ डिफ़ॉल्ट @App.config मान को ओवरराइड कर सकते हैं।-o GendarmeRules=RuleLibrary निर्दिष्ट करता है कि Gendarme स्थैतिक विश्लेषक को निर्दिष्ट नियम लाइब्रेरी से नियमों के साथ ऑडिट के लिए सक्षम किया जाना चाहिए। उदाहरण के लिए:
devaudit netfx -r /home/allisterb/vbot-debian/vbot.core -b @bin/Debug/vbot.core.dll --skip-packages-audit -o GendarmeRules=Gendarme.Rules.Naming
vbot.core.dll असेंबली पर Gendarme.Rules.Naming लाइब्रेरी के नियमों का उपयोग करके Gendarme स्थैतिक विश्लेषक चलाएगा। नियम लाइब्रेरी की पूरी सूची (Gendarme विकी से ली गई) है:drupal7 किसी Drupal 7 एप्लीकेशन पर एप्लीकेशन ऑडिट करें।
-r --root-directory एप्लीकेशन की रूट निर्देशिका निर्दिष्ट करें। यह आपके Drupal 7 इंस्टॉल की शीर्ष-स्तरीय निर्देशिका है।drupal8 किसी Drupal 8 एप्लीकेशन पर एप्लीकेशन ऑडिट करें।
-r --root-directory एप्लीकेशन की रूट निर्देशिका निर्दिष्ट करें। यह आपके Drupal 8 इंस्टॉल की शीर्ष-स्तरीय निर्देशिका है।सभी एप्लीकेशन एप्लीकेशन मॉड्यूल या प्लगइन्स के ऑडिट के लिए निम्नलिखित सामान्य विकल्पों का भी समर्थन करते हैं:
--list-packages केवल DevAudit द्वारा स्कैन किए गए एप्लीकेशन प्लगइन्स या मॉड्यूल को सूचीबद्ध करें।
--list-artifacts केवल DevAudit द्वारा स्कैन किए गए एप्लीकेशन प्लगइन्स और मॉड्यूल के लिए OSS Index पर मिले आर्टिफैक्ट्स को सूचीबद्ध करें।
--skip-packages-audit केवल एप्लीकेशन कॉन्फ़िगरेशन या कोड विश्लेषण ऑडिट करें और पैकेज ऑडिट को छोड़ें।
sshd OpenSSH sshd-संगत सर्वर पर एप्लीकेशन सर्वर ऑडिट करें।
httpd Apache httpd-संगत सर्वर पर एप्लीकेशन सर्वर ऑडिट करें।
mysql MySQL-संगत सर्वर (जैसे MariaDB या Oracle MySQL) पर एप्लीकेशन सर्वर ऑडिट करें।
nginx Nginx सर्वर पर एप्लीकेशन सर्वर ऑडिट करें।
pgsql PostgreSQL सर्वर पर एप्लीकेशन सर्वर ऑडिट करें।
यह एक एप्लीकेशन सर्वर ऑडिट के लिए उदाहरण कमांड लाइन है:
./devaudit httpd -i httpd-2.2 -r /usr/local/apache2/ --config-file @conf/httpd.conf -b @bin/httpd
जो httpd-2.2 नामक Docker कंटेनर पर चल रहे Apache Httpd सर्वर का ऑडिट करता है।
सभी एप्लीकेशन सर्वरों के लिए सामान्य ऑडिट विकल्प निम्नलिखित हैं:
-r --root-directory सर्वर की रूट निर्देशिका निर्दिष्ट करता है। यह आपके सर्वर फ़ाइलसिस्टम का शीर्ष-स्तर है और डिफ़ॉल्ट रूप से / होता है जब तक कि आप कोई अलग सर्वर रूट न चाहें।--config-file सर्वर कॉन्फ़िगरेशन फ़ाइल निर्दिष्ट करता है। उदाहरण के लिए, उपरोक्त ऑडिट में Apache कॉन्फ़िगरेशन फ़ाइल /usr/local/apache2/conf/httpd.conf पर स्थित है। यदि आप कॉन्फ़िगरेशन फ़ाइल निर्दिष्ट नहीं करते हैं, तो DevAudit चयनित सर्वर के लिए कॉन्फ़िगरेशन फ़ाइल का स्वचालित रूप से पता लगाने का प्रयास करेगा।-b --application-binary सर्वर बाइनरी निर्दिष्ट करता है। उदाहरण के लिए, उपरोक्त ऑडिट में Apache बाइनरी /usr/local/apache2/bin/httpd पर स्थित है। यदि आप बाइनरी पथ निर्दिष्ट नहीं करते हैं, तो DevAudit चयनित सर्वर के लिए सर्वर बाइनरी का स्वचालित रूप से पता लगाने का प्रयास करेगा।एप्लीकेशन सर्वर सर्वर मॉड्यूल या प्लगइन्स के ऑडिट के लिए निम्नलिखित सामान्य विकल्पों का भी समर्थन करते हैं:
--list-packages केवल DevAudit द्वारा स्कैन किए गए एप्लीकेशन प्लगइन्स या मॉड्यूल को सूचीबद्ध करें।
--list-artifacts केवल DevAudit द्वारा स्कैन किए गए एप्लीकेशन प्लगइन्स और मॉड्यूल के लिए OSS Index पर मिले आर्टिफैक्ट्स को सूचीबद्ध करें।
--skip-packages-audit केवल सर्वर कॉन्फ़िगरेशन ऑडिट करें और पैकेज ऑडिट को छोड़ें।
वर्तमान में 5 ऑडिट पर्यावरण समर्थित हैं: स्थानीय, SSH पर रिमोट होस्ट, WinRM पर रिमोट होस्ट, Docker कंटेनर, और GitHub। स्थानीय पर्यावरण डिफ़ॉल्ट रूप से उपयोग किए जाते हैं जब कोई अन्य पर्यावरण विकल्प निर्दिष्ट नहीं किया जाता है।
SSH पर्यावरण SSH के माध्यम से सुलभ किसी भी रिमोट होस्ट पर ऑडिट करने की अनुमति देता है, बिना रिमोट होस्ट पर DevAudit स्थापित करने की आवश्यकता के। SSH पर्यावरण क्रॉस-प्लेटफ़ॉर्म हैं: आप DevAudit चलाने वाली Windows मशीन से Linux रिमोट होस्ट से कनेक्ट कर सकते हैं। SSH पर्यावरण निम्नलिखित विकल्पों द्वारा बनाया जाता है:-s SERVER [--ssh-port PORT] -u USER [-k KEYFILE] [-p | --password-text PASSWORD]
-s SERVER SSH के माध्यम से कनेक्ट करने के लिए रिमोट होस्ट या IP निर्दिष्ट करता है।
-u USER सर्वर में लॉगिन करने के लिए उपयोगकर्ता निर्दिष्ट करता है।
--ssh-port PORT कनेक्ट करने के लिए रिमोट होस्ट पर पोर्ट निर्दिष्ट करता है। डिफ़ॉल्ट 22 है।
-k KEYFILE रिमोट सर्वर से कनेक्ट करने के लिए उपयोग करने के लिए OpenSSH-संगत निजी कुंजी फ़ाइल निर्दिष्ट करता है। वर्तमान में केवल PEM प्रारूप में फ़ाइलों में RSA या DSA कुंजियाँ समर्थित हैं।
-p सर्वर पासवर्ड या कुंजी फ़ाइल पासफ़्रेज़ के इंटरैक्टिव प्रवेश के लिए स्थानीय इको अक्षम के साथ एक प्रॉम्प्ट प्रदान करें।
--password-text PASSWORD कमांड-लाइन पर सादे पाठ के रूप में उपयोगकर्ता पासवर्ड या कुंजी फ़ाइल पासफ़्रेज़ निर्दिष्ट करें। ध्यान दें कि Linux पर जब आपके पासवर्ड में विशेष वर्ण होते हैं, तो आपको शेल द्वारा विशेष वर्णों की व्याख्या से बचने के लिए कमांड-लाइन पर टेक्स्ट को एकल-उद्धरणों जैसे 'MyPa<ss' में संलग्न करना चाहिए।
WinRM पर्यावरण WinRM के माध्यम से सुलभ किसी भी रिमोट Windows होस्ट पर ऑडिट करने की अनुमति देता है, बिना रिमोट होस्ट पर DevAudit स्थापित करने की आवश्यकता के। WinRM पर्यावरण वर्तमान में केवल DevAudit चलाने वाली Windows मशीनों पर उपलब्ध हैं। WinRM पर्यावरण निम्नलिखित विकल्पों द्वारा बनाया जाता है:-w IP -u USER [-p | --password-text PASSWORD]
-w IP WinRM के माध्यम से कनेक्ट करने के लिए रिमोट IP निर्दिष्ट करता है।
-u USER सर्वर में लॉगिन करने के लिए उपयोगकर्ता निर्दिष्ट करता है।
-p सर्वर पासवर्ड या कुंजी फ़ाइल पासफ़्रेज़ के इंटरैक्टिव प्रवेश के लिए स्थानीय इको अक्षम के साथ एक प्रॉम्प्ट प्रदान करें।
--password-text PASSWORD कमांड-लाइन पर सादे पाठ के रूप में सर्वर पासवर्ड या कुंजी फ़ाइल पासफ़्रेज़ निर्दिष्ट करें।
यह अनुभाग चर्चा करता है कि स्थानीय मशीन पर स्थापित DevAudit का उपयोग करके Docker इमेजेज़ का ऑडिट कैसे करें। DevAudit को कंटेनरीकृत Docker ऐप के रूप में चलाने के लिए, कृपया Docker उपयोग पर नीचे दिया गया अनुभाग देखें।
Docker ऑडिट पर्यावरण निम्नलिखित विकल्प द्वारा निर्दिष्ट किया जाता है: -i CONTAINER_NAME | -i CONTAINER_ID
CONTAINER_(NAME|ID) कनेक्ट करने के लिए चल रहे Docker कंटेनर का नाम या आईडी निर्दिष्ट करता है। कंटेनर पहले से चल रहा होना चाहिए क्योंकि DevAudit यह नहीं जानता कि आपके आवश्यक नाम या स्थिति के साथ कंटेनर को कैसे शुरू किया जाए।
GitHub ऑडिट पर्यावरण सीधे GitHub प्रोजेक्ट रिपॉजिटरी पर ऑडिट करने की अनुमति देता है। GitHub पर्यावरण -g विकल्प द्वारा बनाया जाता है: -g "Owner=OWNER,Name=NAME,Branch=BRANCH"
OWNER प्रोजेक्ट के स्वामी को निर्दिष्ट करता है
NAME प्रोजेक्ट का नाम निर्दिष्ट करता है
PATH कनेक्ट करने के लिए प्रोजेक्ट की शाखा निर्दिष्ट करता है
आप ऑडिट के लिए आवश्यक फ़ाइल-सिस्टम फ़ाइलों और निर्देशिकाओं को निर्दिष्ट करने के लिए हमेशा की तरह -r, --config-file, और -f विकल्पों का उपयोग कर सकते हैं। उदाहरण के लिए, निम्नलिखित कमांड:
devaudit aspnet -g "Owner=Dnnsoftware,Name=Dnn.Platforn,Branch=Release/9.0.2" -r /Website --config-file @web.config
इस रिपॉजिटरी https://github.com/dnnsoftware/Dnn.Platform/ पर ASP.NET ऑडिट करेगा, जिसमें /Website स्रोत फ़ोल्डर को रूट निर्देशिका और web.config फ़ाइल को ASP.NET कॉन्फ़िगरेशन फ़ाइल के रूप में उपयोग किया जाएगा। ध्यान दें कि अधिकांश पर्यावरणों में फ़ाइल नाम केस-संवेदी होते हैं।

-n --non-interactive CLI की सभी इंटरैक्टिव सुविधाओं और एनिमेशन को अक्षम करके DevAudit को गैर-इंटरैक्टिव मोड में चलाएँ। यह मोड शेल स्क्रिप्ट में DevAudit चलाने के लिए आवश्यक है, अन्यथा जब DevAudit इंटरैक्टिव कंसोल सुविधाओं का उपयोग करने का प्रयास करेगा तो त्रुटियाँ होंगी।
-d --debug DevAudit को डीबग मोड में चलाएँ। यह विभिन्न सूचनात्मक और नैदानिक संदेशों को प्रिंट करेगा। इस मोड का उपयोग DevAudit त्रुटियों और बग्स के समस्या निवारण के लिए किया जाता है।
DevAudit एक Docker कंटेनरीकृत ऐप के रूप में भी उपलब्ध है, जो Linux उपयोगकर्ताओं को Mono स्थापित करने और स्रोत से निर्माण करने की आवश्यकता के बिना DevAudit चलाने की अनुमति देता है। Docker Hub से DevAudit Docker इमेज खींचने के लिए:
docker pull ossindex/devaudit[:label]
वर्तमान इमेजेज़ लगभग 131 MB संपीड़ित हैं। डिफ़ॉल्ट रूप से latest लेबल वाली इमेज खींची जाती है, जो प्रोग्राम का सबसे हालिया रिलीज़ है। एक unstable इमेज भी उपलब्ध है जो स्रोत कोड की master शाखा को ट्रैक करती है। DevAudit को कंटेनरीकृत ऐप के रूप में चलाने के लिए:
docker run -i -t ossindex/devaudit TARGET [ENVIRONMENT] | [OPTIONS]
डॉकर विकल्प -i और -t DevAudit को इंटरैक्टिव रूप से चलाने के लिए आवश्यक हैं। यदि आप इन विकल्पों को निर्दिष्ट नहीं करते हैं, तो आपको DevAudit विकल्प -n का उपयोग करके DevAudit को गैर-इंटरैक्टिव मोड में चलाना होगा।
आपको Docker होस्ट मशीन पर किसी भी निर्देशिका को माउंट करना होगा जिसे DevAudit को Docker विकल्प -v का उपयोग करके DevAudit Docker कंटेनर पर एक्सेस करने की आवश्यकता है। यदि आप अपनी स्थानीय रूट निर्देशिका को Docker इमेज पर /hostroot नामक माउंट पॉइंट पर माउंट करते हैं, तो DevAudit आपकी स्थानीय मशीन पर फ़ाइलों और निर्देशिकाओं को उसी स्थानीय पथों का उपयोग करके एक्सेस कर सकता है। उदाहरण के लिए:
docker run -i -t -v /:/hostroot:ro ossindex/devaudit netfx -r /home/allisterb/vbot-debian/vbot.core
DevAudit Docker कंटेनर को स्थानीय निर्देशिका /home/allisterb/vbot-debian/vbot.core का ऑडिट करने की अनुमति देगा। आपको DevAudit कंटेनर से अन्य Docker कंटेनरों का ऑडिट करने के लिए अपनी स्थानीय रूट को इस तरह माउंट करना होगा, जैसे:
docker run -i -t -v /:/hostroot:ro ossindex/devaudit mysql -i myapp1 -r / --config-file /etc/my.cnf --skip-packages-audit
ossindex/devaudit कंटेनर से myapp1 नामक Docker कंटेनर पर MySQL ऑडिट चलाएगा।
यदि आपको अपनी पूरी रूट निर्देशिका माउंट करने की आवश्यकता नहीं है, तो आप केवल ऑडिट के लिए आवश्यक निर्देशिका को माउंट कर सकते हैं। उदाहरण के लिए:
docker run -i -t -v /home/allisterb/vbot-debian/vbot.core:/vbot:ro ossindex/devaudit netfx -r /vbot -b @bin/Debug/vbot.core.dll
/home/allisterb/vbot-debian/vbot.core निर्देशिका को केवल-पढ़ने के लिए DevAudit कंटेनर पर /vbot के रूप में माउंट करेगा, जो DevAudit को एक netfx एप्लीकेशन ऑडिट के लिए ऑडिट रूट निर्देशिका के रूप में /vbot पर एक्सेस करने की अनुमति देता है।
यदि आप SSH पर ऑडिट के लिए स्थानीय Docker होस्ट पर निजी कुंजी फ़ाइलों का उपयोग करना चाहते हैं, तो आप अपनी निर्देशिका माउंट कर सकते हैं जिसमें आवश्यक कुंजी फ़ाइल है और फिर DevAudit को उस फ़ाइल पथ का उपयोग करने के लिए कह सकते हैं, जैसे:
docker -i -t -v /home/allisterb/.ssh:/ssh:ro run ossindex/devaudit dpkg -s localhost -u allisterb -p -k /ssh/mykey.key
/ssh पर कुंजी फ़ाइलों वाली निर्देशिका को माउंट करेगा और DevAudit कंटेनर को उनका उपयोग करने की अनुमति देगा।
ध्यान दें कि वर्तमान में Docker कंटेनर के लिए ऊपर वर्णित अनुसार /hostroot पर अपनी स्थानीय रूट निर्देशिका को माउंट किए बिना स्थानीय Docker होस्ट पर dpkg या rpm जैसे ऑपरेटिंग सिस्टम पैकेज स्रोतों या OpenSSH sshd जैसे एप्लीकेशन सर्वरों का ऑडिट करना संभव नहीं है। DevAudit को अपने स्थानीय रूट निर्देशिका में chroot करना होगा जब वह dpkg या sshd और httpd जैसे सर्वर बाइनरी चलाता है। DevAudit कंटेनर से अन्य Docker कंटेनरों का ऑडिट करने के लिए भी आपको अपनी स्थानीय रूट को ऊपर वर्णित अनुसार माउंट करना होगा, क्योंकि DevAudit को अपने अन्य कंटेनरों के साथ संवाद करने के लिए स्थानीय Docker कमांड निष्पादित करने के लिए अपनी स्थानीय रूट में chroot करने की भी आवश्यकता होती है।
DevAudit कंटेनर से SSH पर ऑडिट चलाने के लिए /hostroot पर स्थानीय रूट माउंट करना आवश्यक नहीं है।
यदि आप DevAudit में कोई बग या अन्य समस्या का सामना करते हैं, तो इसे हल करने में हमारी सहायता करने के लिए आप कुछ चीजें सक्षम कर सकते हैं:
-d विकल्प का उपयोग करें। ऑडिट रन के दौरान नैदानिक जानकारी उत्सर्जित होगी।-n --non-interactive प्रोग्राम विकल्प का उपयोग करना होगा अन्यथा क्रैश होगा। भविष्य में इस व्यवहार को बदला जा सकता है ताकि गैर-इंटरैक्टिव मोड डिफ़ॉल्ट हो।