अंग्रेज़ीफ्रेंचस्पेनिश

Ad


ऑनवर्क्स फ़ेविकॉन

फ्लॉफ़ाइंडर - क्लाउड में ऑनलाइन

उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर पर ऑनवर्क्स मुफ्त होस्टिंग प्रदाता में फ्लॉफाइंडर चलाएं

यह कमांड फ्लॉफाइंडर है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर में से एक का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।

कार्यक्रम:

नाम


दोषदर्शी - स्रोत कोड में संभावित सुरक्षा खामियों ("हिट") का शाब्दिक रूप से पता लगाएं

SYNOPSIS


दोष खोजक [--मदद|-h] [--संस्करण] [--लिस्टरूल्स]
[--अनुमति लिंक] [--फॉलोडॉटडीआईआर] [--कोई मेल नहीं]
[--पैच=फ़ाइल का नाम|-P फ़ाइल का नाम]
[--इनपुट्स|-I] [ --मिनलेवल=X | -m X ] [--सकारात्मक झूठी|-F]
[--नेवरिग्नोर|-n]
[--रेगेक्स=प्रतिरूप | -e प्रतिरूप]
[--संदर्भ|-c] [--स्तंभ|-C] [--डेटाओनली|-D] [--एचटीएमएल|-H] [--तुरंत|-i]
[--इकलौती रेखा|-S] [--ओमिटटाइम] [--शांत|-Q]
[--लोडहिटलिस्ट=F] [--सेवहिटलिस्ट =F] [--diffhitlist=F]
[--] [ स्रोत कोड पट्टिका or स्रोत जड़ डायरेक्टरी ]+

वर्णन


फ्लॉफाइंडर संभावित सुरक्षा खामियों की तलाश में सी/सी ++ स्रोत कोड के माध्यम से खोज करता है। प्रति
फ़्लॉफ़ाइंडर चलाएँ, बस फ़्लॉफ़ाइंडर को निर्देशिकाओं या फ़ाइलों की एक सूची दें। प्रत्येक निर्देशिका के लिए
दी गई, सभी फाइलें जिनमें उस निर्देशिका में सी/सी ++ फ़ाइल नाम एक्सटेंशन हैं (और इसकी
उपनिर्देशिका, पुनरावर्ती) की जांच की जाएगी। इस प्रकार, अधिकांश परियोजनाओं के लिए, बस दे
स्रोत कोड की शीर्षतम निर्देशिका का नाम दोषदर्शी (वर्तमान के लिए ``। '' का उपयोग करें
निर्देशिका), और दोषदर्शी परियोजना के सभी सी/सी ++ स्रोत कोड की जांच करेगा। अगर तुम
केवल लेना चाहते हैं परिवर्तन समीक्षा की गई, उन परिवर्तनों का एक एकीकृत अंतर सहेजें (जीएनयू द्वारा बनाया गया
पैच फ़ाइल में "diff -u" या "svn diff" या "git diff") और --patch (-P) विकल्प का उपयोग करें।

फ्लॉफाइंडर ``हिट'' (संभावित सुरक्षा खामियां) की एक सूची तैयार करेगा, जो जोखिम के आधार पर छांटेगा; NS
सबसे पहले जोखिम भरे हिट दिखाए जाते हैं। जोखिम का स्तर वर्ग कोष्ठक के अंदर दिखाया गया है और भिन्न होता है
0 से, बहुत कम जोखिम, 5 तक, महान जोखिम। यह जोखिम स्तर न केवल पर निर्भर करता है
फ़ंक्शन, लेकिन फ़ंक्शन के मापदंडों के मूल्यों पर। उदाहरण के लिए, स्थिरांक
स्ट्रिंग्स अक्सर कई संदर्भों में पूरी तरह से परिवर्तनशील स्ट्रिंग्स की तुलना में कम जोखिम वाले होते हैं, और उन में
संदर्भों में हिट का जोखिम स्तर कम होगा। फ्लॉफाइंडर गेटटेक्स्ट के बारे में जानता है (एक सामान्य
अंतरराष्ट्रीयकृत कार्यक्रमों के लिए पुस्तकालय) और निरंतर तारों का इलाज करेगा
गेटटेक्स्ट जैसे कि वे निरंतर तार थे; यह झूठी हिट की संख्या को कम करता है
अंतर्राष्ट्रीयकृत कार्यक्रम। फ्लॉफाइंडर _T() और . के साथ एक ही तरह का काम करेगा
_TEXT (), अंतर्राष्ट्रीय कार्यक्रमों को संभालने के लिए सामान्य Microsoft मैक्रोज़। फ्लॉफाइंडर
टिप्पणियों और स्ट्रिंग्स के अंदर अधिकांश टेक्स्ट को सही ढंग से अनदेखा करता है। आम तौर पर दोषदर्शी सभी दिखाता है
कम से कम 1 के जोखिम स्तर वाले हिट, लेकिन आप --minlevel विकल्प का उपयोग केवल दिखाने के लिए कर सकते हैं
यदि आप चाहें तो उच्च जोखिम स्तरों के साथ हिट करें। हिट विवरण भी प्रासंगिक सामान्य नोट करें
कोष्ठकों में कमजोरी गणना (सीडब्ल्यूई) पहचानकर्ता, जैसा कि नीचे चर्चा की गई है। फ्लॉफाइंडर
आधिकारिक तौर पर सीडब्ल्यूई-संगत है।

प्रत्येक हिट वास्तव में एक सुरक्षा भेद्यता नहीं है, और प्रत्येक सुरक्षा भेद्यता नहीं है
अनिवार्य रूप से पाया जाता है। फिर भी, दोष खोजक ढूँढ़ने और निकालने में सहायक हो सकता है
सुरक्षा कमजोरियां। फ्लॉफ़ाइंडर का उपयोग करने का एक सामान्य तरीका यह है कि पहले फ़ॉलफ़ाइंडर को लागू करें
स्रोत कोड का एक सेट और उच्चतम जोखिम वाली वस्तुओं की जांच करें। फिर, जांच करने के लिए --inputs का उपयोग करें
इनपुट स्थान, और यह सुनिश्चित करने के लिए जांचें कि केवल कानूनी और सुरक्षित इनपुट मान हैं
अविश्वसनीय उपयोगकर्ताओं से स्वीकार किया गया।

एक बार जब आप किसी प्रोग्राम का ऑडिट कर लेते हैं, तो आप स्रोत कोड लाइनों को चिह्नित कर सकते हैं जो वास्तव में ठीक हैं लेकिन
नकली चेतावनियां दें ताकि फॉफिंडर उनके बारे में शिकायत करना बंद कर दे। एक चिह्नित करने के लिए
लाइन ताकि इन चेतावनियों को दबा दिया जाए, विशेष रूप से स्वरूपित टिप्पणी या तो डालें
पिछली पंक्ति में एक ही पंक्ति (स्रोत कोड के बाद) या सभी अपने आप में। टिप्पणी
निम्नलिखित दो प्रारूपों में से एक होना चाहिए:

· // फ्लॉफाइंडर: अनदेखा करें

· /* फ्लॉफाइंडर: अनदेखा करें */

अनुकूलता के लिए, आप इनमें "Flawfinder:" को "ITS4:" या "RATS:" से बदल सकते हैं।
विशेष रूप से स्वरूपित टिप्पणियाँ। चूँकि यह संभव है कि ऐसी पंक्तियाँ गलत हों, आप उपयोग कर सकते हैं
--neverignore विकल्प, जिसके कारण फ्लॉफ़ाइंडर किसी भी पंक्ति को कभी भी अनदेखा नहीं करता है, चाहे कुछ भी हो
टिप्पणी निर्देश कहते हैं (अधिक भ्रामक रूप से, --neverignore उपेक्षा को अनदेखा करता है)।

फ्लॉफाइंडर एक आंतरिक डेटाबेस का उपयोग करता है जिसे ``नियमसेट'' कहा जाता है; नियम की पहचान
ऐसे कार्य जो सुरक्षा खामियों के सामान्य कारण हैं। मानक नियम में एक बड़ा शामिल है
विभिन्न संभावित समस्याओं की संख्या, जिसमें दोनों सामान्य मुद्दे शामिल हैं जो किसी को भी प्रभावित कर सकते हैं
सी/सी++ प्रोग्राम, साथ ही कई विशिष्ट यूनिक्स-जैसे और विंडोज़ फ़ंक्शंस जो हैं
विशेष रूप से समस्याग्रस्त। --listrules विकल्प वर्तमान नियमों की सूची की रिपोर्ट करता है और
उनके डिफ़ॉल्ट जोखिम स्तर। जैसा कि ऊपर उल्लेख किया गया है, प्रत्येक संभावित सुरक्षा दोष किसी दिए गए में पाया जाता है
स्रोत कोड फ़ाइल (नियमों में एक प्रविष्टि से मेल खाने वाली) को ``हिट, '' और का सेट कहा जाता है
प्रोग्राम के किसी विशेष रन के दौरान मिलने वाली हिट्स को ``हिटलिस्ट'' कहा जाता है। हिटलिस्ट्स
सहेजा जा सकता है (--savehitlist का उपयोग करके), फिर से प्रदर्शित करने के लिए पुनः लोड किया गया (--loadhitlist का उपयोग करके), और
आप केवल वही हिट दिखा सकते हैं जो दूसरे रन से भिन्न हों (--diffhitlist का उपयोग करके)।

फ्लॉफाइंडर एक सरल उपकरण है, जो कुछ मूलभूत पेशेवरों और विपक्षों की ओर ले जाता है। फ्लॉफाइंडर काम करता है
सरल लेक्सिकल टोकननाइजेशन (टिप्पणियों को छोड़ना और सही ढंग से टोकनिंग स्ट्रिंग्स) करके,
डेटाबेस से टोकन मिलान की तलाश में (विशेषकर फ़ंक्शन कॉल खोजने के लिए)।
फ्लॉफाइंडर इस प्रकार RATS और ITS4 के समान है, जो सरल शाब्दिक टोकन का भी उपयोग करते हैं।
फ्लॉफाइंडर फिर जोखिम का अनुमान लगाने के लिए फ़ंक्शन मापदंडों के पाठ की जांच करता है। भिन्न
उपकरण जैसे कि स्प्लिंट, जीसीसी के चेतावनी झंडे, और क्लैंग, फ्लॉफाइंडर करता है नहीं उपयोग या है
खोज करते समय नियंत्रण प्रवाह, डेटा प्रवाह, या डेटा प्रकारों के बारे में जानकारी तक पहुंच
संभावित कमजोरियां या जोखिम के स्तर का आकलन। इस प्रकार, दोषदर्शी होगा
अनिवार्य रूप से कमजोरियों के लिए कई झूठी सकारात्मकताएं उत्पन्न करते हैं और कई की रिपोर्ट करने में विफल रहते हैं
कमजोरियां। दूसरी ओर, फ़्लॉफ़ाइंडर प्रोग्राम में कमजोरियों का पता लगा सकता है जो
बनाया नहीं जा सकता या जोड़ा नहीं जा सकता। यह अक्सर उन कार्यक्रमों के साथ काम कर सकता है जो यहां तक ​​कि नहीं भी हो सकते हैं
संकलित (कम से कम समीक्षक के उपकरण द्वारा)। फ्लॉफाइंडर भी इससे भ्रमित नहीं होता
मैक्रो परिभाषाएँ और अन्य विषमताएँ जिनसे अधिक परिष्कृत उपकरण परेशान करते हैं।
फ़्लॉफ़ाइंडर स्थिर विश्लेषण टूल के सरल परिचय के रूप में भी उपयोगी हो सकता है
सामान्य, क्योंकि इसका उपयोग शुरू करना आसान है और समझने में आसान है।

कमांड लाइन पर दिए गए किसी भी फ़ाइल नाम की जांच की जाएगी (भले ही उसमें सामान्य नाम न हो
सी/सी++ फ़ाइल नाम एक्सटेंशन); इस प्रकार आप किसी भी विशिष्ट फ़ाइल की जांच करने के लिए फ्लॉफ़ाइंडर को बाध्य कर सकते हैं
इच्छा। निर्देशिकाओं को पुनरावर्ती रूप से खोजते समय, दोषदर्शी केवल खुलता है और जांचता है
नियमित फ़ाइलें जिनमें C/C++ फ़ाइल नाम एक्सटेंशन होते हैं। फ्लॉफाइंडर मानता है कि फाइलें हैं
C/C++ फ़ाइलें यदि उनके पास एक्सटेंशन ".c", ".h", ".ec", ".ecp", ".pgc", ".C", ".cpp", हैं।
".CPP", ".cxx", ".cc", ".CC", ".pcc", ".hpp", या ".H"। फ़ाइल नाम ``-'' का अर्थ है
मानक इनपुट। सुरक्षा समस्याओं को रोकने के लिए, विशेष फ़ाइलें (जैसे डिवाइस विशेष फ़ाइलें .)
और नामित पाइप) हमेशा छोड़े जाते हैं, और डिफ़ॉल्ट रूप से प्रतीकात्मक लिंक छोड़ दिए जाते हैं (the
--allowlink विकल्प प्रतीकात्मक लिंक का अनुसरण करता है)।

हिट की सूची के बाद परिणामों का एक संक्षिप्त सारांश है (इसे हटाने के लिए -D का उपयोग करें
जानकारी)। यह हिट की संख्या दिखाएगा, विश्लेषण की गई रेखाएं (जैसा कि wc -l द्वारा रिपोर्ट किया गया है), और
कोड की भौतिक स्रोत लाइनों (SLOC) का विश्लेषण किया गया। एक भौतिक एसएलओसी एक गैर-रिक्त, गैर-
टिप्पणी पंक्ति। यह तब प्रत्येक स्तर पर हिट की संख्या दिखाएगा; ध्यान दें कि वहाँ होगा
कभी भी न्यूनतम स्तर (डिफ़ॉल्ट रूप से 1) से कम स्तर पर हिट न हों। इस प्रकार, "[0] 0 [1] 9"
इसका मतलब है कि स्तर 0 पर 0 हिट की सूचना दी गई थी, और स्तर 1 पर 9 हिट की सूचना दी गई थी
की सूचना दी। यह अगली बार किसी दिए गए स्तर पर या उससे अधिक हिट की संख्या दिखाएगा (इसलिए स्तर 3+
स्तर 3, 4 और 5 पर हिट की संख्या का योग है। इस प्रकार, "[0+] 37" की एक प्रविष्टि
दिखाता है कि 0 या उच्चतर स्तर पर 37 हिट थे (0+ प्रविष्टि हमेशा समान होगी
ऊपर "हिट" संख्या के रूप में)। प्रति KSLOC हिट अगले दिखाए जाते हैं; यह प्रत्येक "स्तर or
उच्च" मान को 1000 से गुणा किया जाता है और भौतिक एसएलओसी द्वारा विभाजित किया जाता है। यदि सिम्लिंक थे
छोड़ दिया, उन की गिनती की सूचना दी है। यदि हिट्स को दबा दिया गया था ("अनदेखा करें"
स्रोत कोड टिप्पणियों में निर्देश जैसा कि ऊपर वर्णित है), दबाए गए नंबर की सूचना दी गई है।
रिपोर्ट में शामिल किए जाने वाले न्यूनतम जोखिम स्तर को प्रदर्शित किया जाता है; डिफ़ॉल्ट रूप से यह 1 . है
(इसे बदलने के लिए --minlevel का उपयोग करें)। सारांश महत्वपूर्ण अनुस्मारक के साथ समाप्त होता है: प्रत्येक हिट नहीं
अनिवार्य रूप से एक सुरक्षा भेद्यता है, और अन्य सुरक्षा भेद्यताएं भी हो सकती हैं
उपकरण द्वारा रिपोर्ट नहीं किया गया।

फ्लॉफाइंडर जीएनयू जीपीएल लाइसेंस संस्करण 2 या बाद के संस्करण (जीपीएलवी 2+) के तहत जारी किया गया है।

फ़्लॉफ़ाइंडर एक अन्य प्रोग्राम, ITS4 के समान काम करता है, जो पूरी तरह से खुला स्रोत नहीं है
सॉफ्टवेयर (ओपन सोर्स डेफिनिशन में परिभाषित) और न ही मुफ्त सॉफ्टवेयर (जैसा कि द्वारा परिभाषित किया गया है)
फ्री सॉफ्टवेयर फाउंडेशन)। फ्लॉफाइंडर के लेखक ने कभी भी ITS4 का स्रोत कोड नहीं देखा है।

संक्षिप्त करें ट्यूटोरियल


यहां एक संक्षिप्त उदाहरण दिया गया है कि कैसे त्रुटि खोजक का उपयोग किया जा सकता है। कल्पना कीजिए कि आपके पास C/C++ . है
xyzzy नाम के कुछ प्रोग्राम के लिए सोर्स कोड (जो आपने लिखा हो या न लिखा हो), और
आप सुरक्षा कमजोरियों की खोज कर रहे हैं (ताकि आप ग्राहकों के सामने उन्हें ठीक कर सकें
कमजोरियों का सामना करें)। इस ट्यूटोरियल के लिए, मैं मान लूंगा कि आप यूनिक्स का उपयोग कर रहे हैं-
जैसे सिस्टम, जैसे कि Linux, OpenBSD, या MacOS X।

यदि स्रोत कोड xyzzy नामक उपनिर्देशिका में है, तो आप संभवतः a . खोलकर प्रारंभ करेंगे
प्रोग्राम का विश्लेषण करने और रिपोर्ट करने के लिए टेक्स्ट विंडो और फ्लॉफाइंडर की डिफ़ॉल्ट सेटिंग्स का उपयोग करना
संभावित सुरक्षा कमजोरियों की प्राथमिकता वाली सूची (``कम'' बस यह सुनिश्चित करती है कि
परिणाम स्क्रीन पर रहते हैं):
फ्लॉफाइंडर xyzzy | कम

इस बिंदु पर, आपको बड़ी संख्या में प्रविष्टियाँ दिखाई देंगी। प्रत्येक प्रविष्टि का एक फ़ाइल नाम होता है, a
कोलन, एक लाइन नंबर, कोष्ठक में एक जोखिम स्तर (जहां 5 सबसे अधिक जोखिम भरा है), एक श्रेणी,
फ़ंक्शन का नाम, और इस बात का विवरण कि क्यों दोषदर्शी को लगता है कि रेखा एक है
भेद्यता। फ़्लॉफ़ाइंडर सामान्य रूप से जोखिम स्तर के आधार पर छाँटता है, सबसे पहले जोखिम भरी वस्तुओं को दिखाता है;
यदि आपके पास सीमित समय है, तो संभवतः जोखिम भरी वस्तुओं पर काम करना शुरू करना सबसे अच्छा है और
तब तक जारी रखें जब तक आपका समय समाप्त न हो जाए। यदि आप केवल a . के साथ प्रदर्शन को जोखिमों तक सीमित करना चाहते हैं
कुछ जोखिम स्तर या उच्चतर, --minlevel विकल्प का उपयोग करें। यदि आप एक प्राप्त कर रहे हैं
झूठी सकारात्मक की असाधारण संख्या क्योंकि चर नाम खतरनाक दिखते हैं
फ़ंक्शन नाम, उनके बारे में रिपोर्ट निकालने के लिए -F विकल्प का उपयोग करें। अगर आप नहीं समझे
त्रुटि संदेश, कृपया दस्तावेज़ देखें जैसे कि लेखन सुरक्षित प्रोग्राम्स एसटी Linux और
यूनिक्स कैसेhttp://www.dwheeler.com/secure-programs⟩ पर http://www.dwheeler.com/secure-
प्रोग्राम जो सुरक्षित प्रोग्राम लिखने के बारे में अधिक जानकारी प्रदान करते हैं।

एक बार जब आप समस्या की पहचान कर लेते हैं और उसे समझ लेते हैं, तो आप इसे ठीक कर सकते हैं। कभी-कभी आप
विश्लेषण फिर से करना चाहते हैं, दोनों क्योंकि लाइन नंबर बदल जाएंगे और सुनिश्चित करना
कि नया कोड अभी तक एक अलग भेद्यता पेश नहीं करता है।

यदि आपने निर्धारित किया है कि कोई रेखा वास्तव में कोई समस्या नहीं है, और आप इसके बारे में सुनिश्चित हैं, तो आप कर सकते हैं
आपत्तिजनक लाइन के ठीक पहले या उस पर एक टिप्पणी डालें जैसे
/* फ्लॉफाइंडर: अनदेखा करें */
उन्हें आउटपुट में दिखने से रोकने के लिए।

एक बार जब आप ऐसा कर लेते हैं, तो आपको वापस जाना चाहिए और प्रोग्राम के इनपुट्स की खोज करनी चाहिए, बनाने के लिए
सुनिश्चित करें कि प्रोग्राम अपने किसी भी अविश्वसनीय इनपुट को दृढ़ता से फ़िल्टर करता है। फ्लॉफाइंडर कर सकते हैं
--inputs विकल्प का उपयोग करके कई प्रोग्राम इनपुट की पहचान करें, जैसे:
फ्लॉफाइंडर --इनपुट्स xyzzy

फ्लॉफाइंडर पाठ संपादकों और एकीकृत विकास परिवेशों के साथ अच्छी तरह से एकीकृत हो सकता है;
अधिक जानकारी के लिए उदाहरण देखें।

फ़्लॉफ़ाइंडर में कई अन्य विकल्प शामिल हैं, जिनमें HTML संस्करण बनाना शामिल है
आउटपुट (सुंदर प्रदर्शन के लिए उपयोगी)। अगला खंड उन विकल्पों का अधिक वर्णन करता है
विस्तार।

विकल्प


फ्लॉफाइंडर के पास कई विकल्प हैं, जिन्हें उन विकल्पों में समूहीकृत किया जा सकता है जो स्वयं को नियंत्रित करते हैं
दस्तावेज़ीकरण, इनपुट डेटा का चयन करें, प्रदर्शित करने के लिए हिट का चयन करें, आउटपुट स्वरूप का चयन करें,
और हिटलिस्ट प्रबंधन करें। फ्लॉफाइंडर में परिभाषित मानक सिंटैक्स का समर्थन करता है
POSIX (अंक 7, 2013 संस्करण) खंड ``उपयोगिता सम्मेलन''। यह जीएनयू का भी समर्थन करता है
लंबे विकल्प (फॉर्म के डबल-डैश विकल्प --विकल्प) जैसा कि में परिभाषित किया गया है जीएनयू C पुस्तकालय
संदर्भ हाथ-संबंधी ``कार्यक्रम तर्क सिंटेक्स कन्वेंशन'' और जीएनयू कोडन मानक
``कमांड लाइन इंटरफेस के लिए मानक''। दीर्घ विकल्प तर्क इस प्रकार दिए जा सकते हैं
``--name=value'' या ``-name value''। कुछ विकल्पों को केवल अधिक का उपयोग करके एक्सेस किया जा सकता है
पठनीय जीएनयू लंबे विकल्प सम्मेलन; सामान्य विकल्प भी पुराने द्वारा समर्थित हैं
एकल-अक्षर विकल्प सम्मेलन।

प्रलेखन
--मदद

-h उपयोग (सहायता) जानकारी दिखाएं।

--संस्करण संस्करण संख्या (सिर्फ) दिखाता है और बाहर निकलता है।

--लिस्टरूल्स उन शर्तों (टोकन) की सूची बनाएं जो आगे की परीक्षा को ट्रिगर करती हैं, उनका डिफ़ॉल्ट जोखिम
स्तर, और डिफ़ॉल्ट चेतावनी (सीडब्ल्यूई पहचानकर्ता सहित), यदि
लागू), सभी टैब से अलग। शब्द मुख्य रूप से संभावित के नाम हैं-
खतरनाक कार्य। ध्यान दें कि रिपोर्ट किए गए जोखिम स्तर और कुछ के लिए चेतावनी
विशिष्ट कोड डिफ़ॉल्ट से भिन्न हो सकता है, यह इस बात पर निर्भर करता है कि शब्द कैसा है
उपयोग किया गया। यदि आप सामान्य शीर्षलेख नहीं चाहते हैं तो -D के साथ संयोजित करें। फ्लॉफाइंडर
संस्करण 1.29 ने विभाजक को रिक्त स्थान से टैब में बदल दिया, और डिफ़ॉल्ट जोड़ा
चेतावनी क्षेत्र।

चुनना निवेश जानकारी
--अनुमति लिंक प्रतीकात्मक लिंक के उपयोग की अनुमति दें; आम तौर पर प्रतीकात्मक लिंक छोड़ दिए जाते हैं। नहीं
यदि आप दूसरों द्वारा कोड का विश्लेषण कर रहे हैं तो इस विकल्प का उपयोग करें; हमलावर कई कर सकते थे
इस विकल्प के सक्षम होने पर विश्लेषण के लिए समस्याएँ पैदा करने वाली चीज़ें। के लिये
उदाहरण के लिए, एक हमलावर फाइलों के लिए प्रतीकात्मक लिंक सम्मिलित कर सकता है जैसे कि / Etc / पासवर्ड
(फ़ाइल के बारे में जानकारी लीक करना) या एक गोलाकार लूप बनाना, जो
त्रुटि खोजक को ``हमेशा के लिए'' चलाने का कारण बनता है। इसे सक्षम करने में एक और समस्या
विकल्प यह है कि यदि एक ही फ़ाइल को प्रतीकात्मक का उपयोग करके कई बार संदर्भित किया जाता है
लिंक, इसका कई बार विश्लेषण किया जाएगा (और इस प्रकार कई बार रिपोर्ट किया गया)।
ध्यान दें कि फ्लॉफाइंडर में पहले से ही प्रतीकात्मक लिंक के खिलाफ कुछ सुरक्षा शामिल है
विशेष फ़ाइल प्रकारों जैसे डिवाइस फ़ाइल प्रकार (जैसे, /dev/zero or .) के लिए
सी:\mystuff\com1)। ध्यान दें कि फ्लॉफ़ाइंडर संस्करण 1.01 और उससे पहले के लिए, यह था
डिफ़ॉल्ट।

--फॉलोडॉटडीआईआर
उन निर्देशिकाओं को दर्ज करें जिनके नाम "।" से शुरू होते हैं। आम तौर पर ऐसी निर्देशिकाएं होती हैं
अनदेखा किया जाता है, क्योंकि वे सामान्य रूप से संस्करण नियंत्रण निजी डेटा शामिल करते हैं (जैसे
.git/ या .svn/), कॉन्फ़िगरेशन, आदि।

--कोई मेल नहीं अवहेलना करना। ऐतिहासिक रूप से यह प्रतीकात्मक लिंक के बाद अक्षम है; यह व्यवहार
अब डिफ़ॉल्ट है।

--पैच=पैचफ़ाइल

-P पैचफ़ाइल
चयनित फ़ाइलों या निर्देशिकाओं की जांच करें, लेकिन केवल उन पंक्तियों में हिट की रिपोर्ट करें जो
दिए गए पैच फ़ाइल द्वारा जोड़े या संशोधित किए जाते हैं। पैच फ़ाइल एक में होनी चाहिए
मान्यता प्राप्त एकीकृत अंतर प्रारूप (उदाहरण के लिए, GNU "diff -u old new" का आउटपुट,
"svn diff", या "git diff [प्रतिबद्ध]")। फ्लॉफाइंडर मानता है कि पैच में है
फाइलों के लिए आवेदन किया जा चुका है। पैच फ़ाइल में परिवर्तन भी शामिल हो सकते हैं
अप्रासंगिक फ़ाइलें (उन्हें बस अनदेखा कर दिया जाएगा)। में दिए गए लाइन नंबर
पैच फ़ाइल का उपयोग यह निर्धारित करने के लिए किया जाता है कि कौन सी लाइनें बदली गई हैं, इसलिए यदि आपके पास है
पैच फ़ाइल बनने के बाद से फ़ाइलों को संशोधित करें, पैच फ़ाइल को पुन: उत्पन्न करें
प्रथम। सावधान रहें कि पैच फ़ाइल में दी गई नई फ़ाइलों के फ़ाइल नाम
ऊपरी/निचले मामले, पथ उपसर्ग और निर्देशिका सहित बिल्कुल मेल खाना चाहिए
विभाजक (\ बनाम /)। केवल एकीकृत अंतर प्रारूप स्वीकार किया जाता है (GNU diff, svn
diff, और git diff आउटपुट ठीक है); यदि आपके पास एक अलग प्रारूप है, तो फिर से
पहले इसे पुन: उत्पन्न करें। केवल वही हिट जो परिणामी परिवर्तित लाइनों पर होती हैं, या
उनके ठीक ऊपर और नीचे, सूचित किया जाता है। इस विकल्प का तात्पर्य है
--अनदेखा.

चुनना हिट्स सेवा मेरे डिस्प्ले
--इनपुट्स

-I केवल वे फ़ंक्शन दिखाएं जो प्रोग्राम के बाहर से डेटा प्राप्त करते हैं; यह भी सेट करता है
न्यूनतम स्तर 0.

--मिनलेवल=X

-m X हिटलिस्ट में शामिल करने के लिए न्यूनतम जोखिम स्तर को X पर सेट करें। यह 0 से हो सकता है (``नहीं
जोखिम'') से 5 (``अधिकतम जोखिम''); डिफ़ॉल्ट 1 है।

--सकारात्मक झूठी

-F उन हिट्स को शामिल न करें जिनके झूठे सकारात्मक होने की संभावना है। वर्तमान में, इसका अर्थ है
उस फ़ंक्शन नामों को अनदेखा कर दिया जाता है यदि उनका पालन नहीं किया जाता है "(", और वह
वर्ण सरणियों की घोषणाएँ नोट नहीं की जाती हैं। इस प्रकार, यदि आपने एक चर का उपयोग किया है
हर जगह "पहुंच" नाम दिया गया है, यह इस सामान्य के संदर्भों को समाप्त कर देगा
चर। यह डिफ़ॉल्ट नहीं है, क्योंकि इससे इसकी संभावना भी बढ़ जाती है
महत्वपूर्ण हिट लापता; विशेष रूप से, #define खंड और कॉल में फ़ंक्शन नाम
फ़ंक्शन पॉइंटर्स के माध्यम से छूट जाएगा।

--नेवरिग्नोर

-n सुरक्षा मुद्दों को कभी भी अनदेखा न करें, भले ही उनके पास a . में ``अनदेखा'' निर्देश हो
टिप्पणी।

--regexp=प्रतिरूप

-e प्रतिरूप
केवल रेगुलर एक्सप्रेशन पैटर्न पैटर्न से मेल खाने वाले टेक्स्ट वाले हिट की रिपोर्ट करें।
उदाहरण के लिए, केवल "CWE-120" टेक्स्ट वाले हिट की रिपोर्ट करने के लिए ``--regex . का उपयोग करें
सीडब्ल्यूई-120''। ये विकल्प ध्वज नाम grep के समान हैं।

चुनना उत्पादन का गठन
--स्तंभ

-C प्रत्येक हिट का कॉलम नंबर (साथ ही फाइल का नाम और लाइन नंबर) दिखाएं;
यह एक कोलन और कॉलम नंबर को जोड़कर लाइन नंबर के बाद दिखाया जाता है
लाइन (पंक्ति में पहला अक्षर कॉलम नंबर 1 है)। यह उपयोगी है
संपादकों के लिए जो विशिष्ट कॉलम पर जा सकते हैं, या अन्य के साथ एकीकरण के लिए
उपकरण (जैसे कि झूठी सकारात्मकता को और अधिक फ़िल्टर करने के लिए)।

--संदर्भ

-c संदर्भ दिखाएं, यानी, "हिट"/संभावित दोष वाली रेखा। डिफ़ॉल्ट रूप से
चेतावनी के तुरंत बाद लाइन दिखाई जाती है।

--डेटाओनली

-D शीर्ष लेख और पाद लेख प्रदर्शित न करें। इसके साथ प्रयोग करें --quiet सिर्फ देखने के लिए
डेटा ही।

--एचटीएमएल

-H आउटपुट को साधारण टेक्स्ट के बजाय HTML के रूप में प्रारूपित करें।

--तुरंत

-i तुरंत हिट प्रदर्शित करें (केवल अंत तक प्रतीक्षा न करें)।

--इकलौती रेखा

-S प्रत्येक हिट के लिए टेक्स्ट आउटपुट की एकल पंक्ति के रूप में प्रदर्शित करें। बातचीत के लिए उपयोगी
संकलन उपकरण के साथ।

--ओमिटटाइम समय की जानकारी छोड़ दें। यह दोषदर्शी के प्रतिगमन परीक्षणों के लिए उपयोगी है
स्वयं, ताकि विश्लेषण कितनी देर तक निर्भर करता है, इसके आधार पर आउटपुट भिन्न नहीं होता है
लेता है।

--शांत

-Q स्थिति की जानकारी प्रदर्शित न करें (यानी, कौन सी फाइलों की जांच की जा रही है) जबकि
विश्लेषण हो रहा है।

हिट लिस्ट प्रबंध
--सेवहिटलिस्ट =F
सभी परिणामी हिट ("हिटलिस्ट") को F पर सहेजें।

--लोडहिटलिस्ट=F
स्रोत प्रोग्राम का विश्लेषण करने के बजाय F से हिटलिस्ट लोड करें। चेतावनी: दो नहीं
अविश्वसनीय स्रोतों से हिटलिस्ट लोड करें (सुरक्षा कारणों से)।

--diffhitlist=F
केवल हिट दिखाएं (लोड या विश्लेषण किया गया) एफ में नहीं। एफ संभवतः बनाया गया था
पहले --savehitlist का उपयोग कर रहे थे। चेतावनी: दो नहीं अविश्वसनीय से भिन्न हिटलिस्ट
स्रोत (सुरक्षा कारणों से)। यदि --loadhitlist विकल्प प्रदान नहीं किया गया है,
यह विश्लेषण किए गए स्रोत कोड फ़ाइलों में हिट दिखाएगा जो नहीं थे
पहले एफ में संग्रहीत। यदि --loadhitlist के साथ प्रयोग किया जाता है, तो यह दिखाएगा
लोड की गई हिटलिस्ट में हिट F में नहीं। अंतर एल्गोरिथ्म है
रूढ़िवादी; हिट को केवल ``समान'' माना जाता है, यदि उनके पास समान है
फ़ाइल नाम, लाइन नंबर, कॉलम स्थिति, फ़ंक्शन का नाम और जोखिम स्तर।

उदाहरण


यहां विभिन्न उदाहरण दिए गए हैं कि कैसे फ्लॉफ़ाइंडर का आह्वान किया जाए। पहले उदाहरण विभिन्न दिखाते हैं
सरल कमांड-लाइन विकल्प। फ़्लॉफ़ाइंडर को टेक्स्ट संपादकों के साथ अच्छी तरह से काम करने के लिए डिज़ाइन किया गया है और
एकीकृत विकास वातावरण, इसलिए अगले खंड दिखाते हैं कि दोषदर्शी को कैसे एकीकृत किया जाए
विम और emacs में।

सरल कमांड लाइन विकल्पों
दोष खोजक /usr/src/linux-3.16
निर्देशिका /usr/src/linux-3.16 और उसके सभी में सभी सी/सी++ फाइलों की जांच करें
उपनिर्देशिका (पुनरावर्ती), मिली सभी हिट पर रिपोर्टिंग। डिफ़ॉल्ट रूप से
फ्लॉफाइंडर प्रतीकात्मक लिंक और निर्देशिकाओं को उन नामों से छोड़ देगा जो शुरू होते हैं
एक अवधि तक।

दोष खोजक --मिनलेवल=4 .
वर्तमान निर्देशिका और उसकी उपनिर्देशिकाओं में सभी C/C++ फाइलों की जांच करें
(पुनरावर्ती); केवल रिपोर्ट भेद्यता स्तर 4 और ऊपर (दो उच्चतम
जोखिम का स्तर)।

दोष खोजक --इनपुट्स मायदिरो
Mydir और इसकी उपनिर्देशिकाओं (पुनरावर्ती) में सभी C/C++ फाइलों की जांच करें, और
रिपोर्ट फ़ंक्शन जो इनपुट लेते हैं (ताकि आप सुनिश्चित कर सकें कि वे फ़िल्टर करते हैं
उचित रूप से इनपुट)।

दोष खोजक --नेवरिग्नोर मायदिरो
निर्देशिका mydir और इसकी उपनिर्देशिकाओं में सभी C/C++ फाइलों की जांच करें,
यहां तक ​​कि कोड टिप्पणियों में अनदेखा करने के लिए चिह्नित हिट भी शामिल हैं।

दोष खोजक -क्यूडी मायदिरो
mydir की जांच करें और केवल वास्तविक परिणामों की रिपोर्ट करें (हेडर को हटाकर और
आउटपुट का पादलेख)। यदि आउटपुट को पाइप किया जाएगा तो यह फॉर्म उपयोगी है
आगे के विश्लेषण के लिए अन्य उपकरण। -C (--कॉलम) और -S (--singleline)
यदि आप डेटा को अन्य टूल में पाइप कर रहे हैं तो विकल्प भी उपयोगी हो सकते हैं।

दोष खोजक -क्यूडीएससी मायदिरो
mydir की जांच करें, केवल वास्तविक परिणामों की रिपोर्ट करें (कोई शीर्षलेख या पाद लेख नहीं)। प्रत्येक
एक लाइन पर हिट की सूचना दी जाती है, और कॉलम नंबरों की सूचना दी जाती है। यह एक हो सकता है
उपयोगी कमांड यदि आप अन्य उपकरणों को फ्लॉफाइंडर आउटपुट खिला रहे हैं।

दोष खोजक --शांत --एचटीएमएल --संदर्भ मायदिरो > परिणाम.html
निर्देशिका mydir और इसकी उपनिर्देशिकाओं में सभी C/C++ फाइलों की जांच करें, और
परिणामों का एक HTML स्वरूपित संस्करण तैयार करें। स्रोत कोड प्रबंधन
सिस्टम (जैसे सोर्सफोर्ज और सवाना) इस तरह के कमांड का उपयोग कर सकते हैं।

दोष खोजक --शांत --सेवहिटलिस्ट सहेजा गया हिट *। [सीएच]
वर्तमान निर्देशिका में सभी .c और .h फ़ाइलों की जाँच करें। पर रिपोर्ट न करें
प्रसंस्करण की स्थिति, और परिणामी हिटलिस्ट (सभी हिट का सेट) को में सहेजें
फ़ाइल सहेजी गई। हिट।

दोष खोजक --diffhitlist सहेजा गया हिट *। [सीएच]
वर्तमान निर्देशिका में सभी .c और .h फ़ाइलों की जांच करें, और कोई भी हिट दिखाएं जो
पहले से सहेजी गई फ़ाइल में नहीं थे। हिट्स। इसका उपयोग केवल दिखाने के लिए किया जा सकता है
एक संशोधित कार्यक्रम में ``नई'' कमजोरियां, अगर सहेजी गई हैं। हिट से बनाया गया था
कार्यक्रम के पुराने संस्करण का विश्लेषण किया जा रहा है।

दोष खोजक --पैच हाल.पैच .
वर्तमान निर्देशिका की दोबारा जांच करें, लेकिन केवल उन पंक्तियों की रिपोर्ट करें जो थीं
नाम से पहले से लागू पैचफाइल में बदला या जोड़ा गया है हाल.पैच.

दोष खोजक --रेगेक्स "सीडब्ल्यूई-120|सीडब्ल्यूई-126" src /
निर्देशिका की जांच करें " पुनरावर्ती, लेकिन केवल रिपोर्ट हिट जहां CWE-120 या
सीडब्ल्यूई-126 लागू।

लागू से शक्ति
टेक्स्ट एडिटर विम में एक "क्विकफिक्स" मैकेनिज्म शामिल है जो फ्लॉफाइंडर के साथ अच्छी तरह से काम करता है, इसलिए
कि आप आसानी से चेतावनी संदेश देख सकते हैं और प्रासंगिक स्रोत कोड पर जा सकते हैं।

सबसे पहले, आपको हिट की सूची बनाने के लिए फ्लॉफ़ाइंडर का आह्वान करना होगा, और इसके दो तरीके हैं
इसे करें। पहला तरीका यह है कि पहले फ्लॉफाइंडर शुरू करें, और फिर (इसके आउटपुट का उपयोग करके) इनवोक करें
विम। दूसरा तरीका विम को शुरू करना (या चलाना जारी रखना) है, और फिर फ्लॉफाइंडर का आह्वान करना है
(आमतौर पर विम के अंदर से)।

पहले तरीके के लिए, फ़्लॉफ़ाइंडर चलाएँ और इसके आउटपुट को कुछ FLAWFILE ("फ़्लॉफ़ाइल" कहें) में संग्रहीत करें,
फिर इसके -q विकल्प का उपयोग करके विम का आह्वान करें, जैसे: "vim -q दोषपूर्ण"। दूसरा तरीका
(विम शुरू करने के बाद फ्लॉफाइंडर शुरू करना) कई तरीकों से किया जा सकता है। एक आह्वान करना है
एक शेल कमांड, ":!flawfinder-command> FLAWFILE" का उपयोग करके फ्लॉफाइंडर, उसके बाद उसका पालन करें
कमांड ": cf FLAWFILE"। दूसरा तरीका यह है कि आप अपने में फ्लॉफाइंडर कमांड को स्टोर करें
मेकफ़ाइल (जैसे, कहें, "दोष" की तरह एक छद्म आदेश), और फिर ": दोष बनाओ" चलाएं।

इन सभी मामलों में आपको फ्लॉफ़ाइंडर चलाने के लिए एक कमांड की आवश्यकता होती है। एक प्रशंसनीय आदेश, जो
प्रत्येक हिट को अपनी लाइन (-S) में रखता है और उन शीर्षलेखों और पादलेखों को हटाता है जो भ्रमित करते हैं
यह है:

दोष खोजक -एसक्यूडी .

अब आप परिणाम देखने के लिए विभिन्न संपादन कमांड का उपयोग कर सकते हैं। कमांड ":cn" प्रदर्शित करता है
अगली हिट; ":cN" पिछली हिट को प्रदर्शित करता है, और ":cr" पहले हिट पर वापस लौटता है।
":कोपेन" हिट की वर्तमान सूची दिखाने के लिए एक विंडो खोलेगा, जिसे "क्विकफिक्स" कहा जाता है
window"; ":cclose" क्विकफिक्स विंडो को बंद कर देगा। यदि प्रयुक्त विंडो में बफर है
बदल गया है, और त्रुटि किसी अन्य फ़ाइल में है, त्रुटि पर कूदना विफल हो जाएगा। आपको करना होगा
सुनिश्चित करें कि विंडो में एक बफर है जिसे छोड़ने की कोशिश करने से पहले छोड़ा जा सकता है a
नई फ़ाइल, फ़ाइल को सहेज कर कहें; यह आकस्मिक डेटा हानि को रोकता है।

लागू से Emacs
टेक्स्ट एडिटर/ऑपरेटिंग सिस्टम emacs में "grep मोड" और "कंपाइल मोड" शामिल हैं
तंत्र जो दोषदर्शी के साथ अच्छी तरह से काम करते हैं, जिससे चेतावनी संदेशों को देखना आसान हो जाता है, कूदो
प्रासंगिक स्रोत कोड के लिए, और आपको मिलने वाली किसी भी समस्या को ठीक करें।

सबसे पहले, आपको चेतावनी संदेशों की एक सूची बनाने के लिए दोषदर्शी को आमंत्रित करने की आवश्यकता है। आप उपयोग कर सकते हैं
इस सूची को बनाने के लिए "grep मोड" या "संकलन मोड"। अक्सर "grep मोड" अधिक सुविधाजनक होता है;
यह संकलन मोड को अछूता छोड़ देता है ताकि आप एक बार बदलने के बाद आसानी से पुन: संकलित कर सकें
कुछ। हालाँकि, यदि आप किसी हिट की सटीक कॉलम स्थिति पर कूदना चाहते हैं, तो संकलित करें
मोड अधिक सुविधाजनक हो सकता है क्योंकि emacs फ्लॉफाइंडर के कॉलम आउटपुट का उपयोग कर सकता है
बिना किसी विशेष कॉन्फ़िगरेशन के सीधे सही स्थान पर कूदें।

grep मोड का उपयोग करने के लिए, "Mx grep" कमांड दर्ज करें और फिर आवश्यक दोषदर्शी दर्ज करें
आदेश। संकलन मोड का उपयोग करने के लिए, "एमएक्स संकलन" कमांड दर्ज करें और आवश्यक दर्ज करें
दोष खोजक आदेश। यह एक मेटा-कुंजी कमांड है, इसलिए आपको इसके लिए मेटा कुंजी का उपयोग करना होगा
आपका कीबोर्ड (यह आमतौर पर ईएससी कुंजी है)। जैसा कि सभी emacs कमांड के साथ होता है, आपको करने की आवश्यकता होगी
"grep" या "संकलन" टाइप करने के बाद रिटर्न दबाएं। तो कई प्रणालियों पर, grep मोड है
ESC xgrep RETURN टाइप करके लागू किया गया।

फिर आपको एक कमांड दर्ज करने की आवश्यकता है, यदि आवश्यक हो तो पहले जो कुछ भी था उसे हटा दें। ए
प्रशंसनीय आदेश है:

दोष खोजक -एसक्यूडीसी .

यह आदेश प्रत्येक हिट रिपोर्ट को एक पंक्ति बनाता है, जो टूल के लिए बहुत आसान है
संभालना। शांत और केवल डेटा विकल्प अन्य स्थिति की जानकारी को हटाते हैं जिनकी आवश्यकता नहीं है
emacs के अंदर उपयोग करें। अनुगामी अवधि का अर्थ है कि वर्तमान निर्देशिका और सभी
वंशजों को C/C++ कोड के लिए खोजा जाता है, और दोषों के लिए उनका विश्लेषण किया जाता है।

एक बार जब आप फ्लॉफ़ाइंडर का आह्वान कर लेते हैं, तो आप इसके परिणामों में इधर-उधर कूदने के लिए emacs का उपयोग कर सकते हैं। NS
कमांड सीएक्स ` (कंट्रोल-एक्स बैकटिक) अगली चेतावनी के लिए स्रोत कोड स्थान पर जाता है
संदेश। Cu Cx ` (कंट्रोल-यू कंट्रोल-एक्स बैकटिक) शुरुआत से पुनरारंभ होता है। आप ऐसा कर सकते हैं
में उस हिट संदेश पर जाकर किसी विशेष त्रुटि संदेश के लिए स्रोत पर जाएं
*संकलन* बफर या *grep* बफर और रिटर्न कुंजी टाइप करना। (तकनीकी नोट: में
संकलन बफर, यह संकलन-गोटो-त्रुटि को आमंत्रित करता है।) आप माउस-2 . पर भी क्लिक कर सकते हैं
त्रुटि संदेश पर बटन (आपको पहले *संकलन* बफर पर स्विच करने की आवश्यकता नहीं है)।

यदि आप किसी हिट के विशिष्ट कॉलम पर जाने के लिए grep मोड का उपयोग करना चाहते हैं, तो आपको करने की आवश्यकता होगी
ऐसा करने के लिए विशेष रूप से emacs को कॉन्फ़िगर करें। ऐसा करने के लिए, emacs चर "grep-regexp-
alist"। यह चर Emacs को बताता है कि कैसे "grep" कमांड के आउटपुट को पार्स करना है, जैसा कि
चर "संकलन-त्रुटि-regexp-alist" जो संकलन त्रुटि के विभिन्न स्वरूपों को सूचीबद्ध करता है
संदेश.

लागू से एकीकृत विकास वातावरण (आईडीई)
(अन्य) आईडीई के लिए, अपने आईडीई के प्लग-इन के सेट से परामर्श लें।

आम कमजोरी गणना (सीडब्ल्यूई)


कॉमन वीकनेस एन्यूमरेशन (सीडब्ल्यूई) एक औपचारिक सूची या कॉमन सॉफ्टवेयर की डिक्शनरी है
सॉफ्टवेयर की संरचना, डिजाइन, कोड या कार्यान्वयन में हो सकने वाली कमजोरियां
एक आम भाषा के रूप में काम करने के लिए बनाई गई शोषण योग्य सुरक्षा कमजोरियों का कारण बन सकती है
सॉफ्टवेयर सुरक्षा कमजोरियों का वर्णन करने के लिए'' (http://cwe.mitre.org/about/faq.html)। के लिये
सीडब्ल्यूई के बारे में अधिक जानकारी, देखें http://cwe.mitre.org.

फ्लॉफाइंडर सीडब्ल्यूई का समर्थन करता है और आधिकारिक तौर पर सीडब्ल्यूई-संगत है। आम तौर पर हिट विवरण
कोष्ठक में प्रासंगिक सामान्य कमजोरी गणना (सीडब्ल्यूई) पहचानकर्ता शामिल करें जहां
एक प्रासंगिक सीडब्ल्यूई के रूप में जाना जाता है। उदाहरण के लिए, बफर से संबंधित कई हिट का उल्लेख है
CWE-120, 'इनपुट के आकार की जांच किए बिना बफर कॉपी' के लिए CWE पहचानकर्ता'' (उर्फ .)
``क्लासिक बफर ओवरफ्लो'')। कुछ मामलों में एक से अधिक CWE पहचानकर्ता सूचीबद्ध किए जा सकते हैं।
HTML रिपोर्ट में MITRE पर होस्ट की गई CWE परिभाषाओं के हाइपरटेक्स्ट लिंक भी शामिल हैं। में
इस तरह, फ्लॉफ़ाइंडर को CWE-आउटपुट आवश्यकता को पूरा करने के लिए डिज़ाइन किया गया है।

दोषदर्शी द्वारा रिपोर्ट किए गए कई CWE को CWE/SANS की शीर्ष 25 सूची 2011 में पहचाना गया है
(http://cwe.mitre.org/top25/) बहुत से लोग इस सूची में सीडब्ल्यूई की खोज करना चाहेंगे,
जैसे कि CWE-120 (क्लासिक बफर ओवरफ्लो), जब फ्लॉफाइंडर एक CWE के लिए मैप करता है जो अधिक है
शीर्ष 25 आइटम की तुलना में सामान्य, यह इसे अधिक-सामान्य के रूप में सूचीबद्ध करता है: अधिक-विशिष्ट (उदाहरण के लिए,
CWE-119:CWE-120), जहां वास्तविक मानचित्रण अधिक-सामान्य है। अगर फ्लॉफ़ाइंडर मैप करता है और अधिक
विशिष्ट सीडब्ल्यूई आइटम जो शीर्ष 25 आइटम का एक विशिष्ट मामला है, इसे फॉर्म में सूचीबद्ध किया गया है
शीर्ष-25/अधिक-विशिष्ट (उदाहरण के लिए, CWE-362/CWE-367), जहां वास्तविक मानचित्रण अधिक विशिष्ट है
सीडब्ल्यूई प्रवेश। यदि एक ही प्रविष्टि कई CWE में मैप करती है, तो CWE को अल्पविराम द्वारा अलग किया जाता है
(यह अक्सर CWE-20, अनुचित इनपुट सत्यापन के साथ होता है)। यह खोज को आसान बनाता है
कुछ सीडब्ल्यूई।

सीडब्ल्यूई संस्करण 2.7 (23 जून 2014 को जारी) का उपयोग मानचित्रण के लिए किया गया था। वर्तमान सीडब्ल्यूई
मैपिंग सबसे विशिष्ट सीडब्ल्यूई का चयन करती है जिसे उपकरण निर्धारित कर सकता है। सिद्धांत रूप में, अधिकांश CWE
सुरक्षा तत्व (हस्ताक्षर/पैटर्न जो उपकरण खोजता है) सैद्धांतिक रूप से हो सकते हैं
CWE-676 (संभावित रूप से खतरनाक फ़ंक्शन का उपयोग) के लिए मैप किया गया, लेकिन ऐसा मैपिंग नहीं होगा
उपयोगी। इस प्रकार, अधिक विशिष्ट मैपिंग को प्राथमिकता दी गई जहां कोई पाया जा सकता है। फ्लॉफाइंडर
एक शाब्दिक विश्लेषण उपकरण है; परिणामस्वरूप, इसके लिए . से अधिक विशिष्ट होना अव्यावहारिक है
वर्तमान में लागू किए गए मानचित्रण। इसका मतलब यह भी है कि इसकी बहुत अधिक आवश्यकता होने की संभावना नहीं है
मानचित्र मुद्रा के लिए अद्यतन करना; इसे परिष्कृत करने के लिए पर्याप्त जानकारी नहीं है a
विस्तृत सीडब्ल्यूई स्तर जिसे सीडब्ल्यूई परिवर्तन आम तौर पर प्रभावित करते हैं। सीडब्ल्यूई पहचानकर्ताओं की सूची
"मेक शो-सीईएस" का उपयोग करके स्वचालित रूप से उत्पन्न किया गया था, इसलिए विश्वास है कि यह सूची
सही है। यदि आपको कोई त्रुटि मिलती है तो कृपया सीडब्ल्यूई मानचित्रण समस्याओं को बग के रूप में रिपोर्ट करें।

फ़्लॉफ़ाइंडर भेद्यता खोजने में विफल हो सकता है, भले ही फ़्लॉफ़ाइंडर इनमें से किसी एक CWE को कवर करता हो
कमजोरियां। उस ने कहा, दोषदर्शी सीडब्ल्यूई द्वारा सूचीबद्ध कमजोरियों को ढूंढता है जो इसे कवर करता है,
और यह कई मामलों में उन कमजोरियों के बिना लाइनों की रिपोर्ट नहीं करेगा। इस प्रकार, के रूप में
सीडब्ल्यूई के अनुकूल होने के इच्छुक किसी भी उपकरण के लिए आवश्यक, फ्लॉफाइंडर की दर झूठी है
सकारात्मक 100% से कम और झूठी नकारात्मक की दर 100% से कम है। फ्लॉफाइंडर लगभग
हमेशा रिपोर्ट करता है जब भी उसे सीडब्ल्यूई सुरक्षा तत्व (एक हस्ताक्षर/पैटर्न के रूप में) से मेल खाता है
इसके डेटाबेस में परिभाषित), हालांकि कुछ अस्पष्ट संरचनाएं इसे विफल कर सकती हैं (देखें बग्स
नीचे).

फ्लॉफाइंडर निम्नलिखित सीडब्ल्यूई पर रिपोर्ट कर सकता है (ये वे सीडब्ल्यूई हैं जो फ्लॉफाइंडर कवर करते हैं;
``*'' CWE/SANS की शीर्ष 25 सूची में शामिल हैं):

· सीडब्ल्यूई-20: अनुचित इनपुट सत्यापन

· CWE-22: एक प्रतिबंधित निर्देशिका के लिए पथनाम की अनुचित सीमा (``पथ ट्रैवर्सल'')

· सीडब्ल्यूई-78: ओएस कमांड (``ओएस कमांड') में उपयोग किए जाने वाले विशेष तत्वों का अनुचित न्यूट्रलाइजेशन
इंजेक्शन '')*

· CWE-119: मेमोरी बफर की सीमा के भीतर संचालन का अनुचित प्रतिबंध (a
CWE-120* के माता-पिता, इसलिए इसे CWE-119:CWE-120 के रूप में दिखाया गया है)

· CWE-120: इनपुट के आकार की जांच किए बिना बफर कॉपी (``क्लासिक बफर ओवरफ्लो'')*

· CWE-126: बफर ओवर-रीड

· CWE-134: अनियंत्रित प्रारूप स्ट्रिंग*

· सीडब्ल्यूई-190: इंटीजर ओवरफ्लो या रैपअराउंड*

· सीडब्ल्यूई-250: अनावश्यक विशेषाधिकारों के साथ निष्पादन

· CWE-327: टूटे या जोखिम भरे क्रिप्टोग्राफ़िक एल्गोरिथम का उपयोग*

· सीडब्ल्यूई-362: साझा संसाधन का उपयोग करते हुए समवर्ती निष्पादन अनुचित तुल्यकालन के साथ
(``दौड़ की स्थिति'')

· CWE-377: असुरक्षित अस्थायी फ़ाइल

· सीडब्ल्यूई-676: संभावित रूप से खतरनाक कार्य का उपयोग*

· CWE-732: महत्वपूर्ण संसाधन के लिए गलत अनुमति असाइनमेंट*

· सीडब्ल्यूई-785: अधिकतम आकार के बफर के बिना पथ मैनिपुलेशन फ़ंक्शन का उपयोग (बच्चा .)
CWE-120*, इसलिए इसे CWE-120/CWE-785 के रूप में दिखाया गया है)

· सीडब्ल्यूई-807: सुरक्षा निर्णय में अविश्वसनीय इनपुट पर भरोसा*

· सीडब्ल्यूई-829: अविश्वसनीय नियंत्रण क्षेत्र से कार्यात्मकता का समावेश*

आप ``--regex'' (-ई) विकल्प का उपयोग करके रिपोर्ट करने के लिए सीडब्ल्यूई के एक विशिष्ट उपसमुच्चय का चयन कर सकते हैं।
यह विकल्प एक रेगुलर एक्सप्रेशन को स्वीकार करता है, इसलिए आप कई CWE का चयन कर सकते हैं, उदाहरण के लिए, ``--regex
"सीडब्ल्यूई-120|सीडब्ल्यूई-126"''। यदि आप एक कमांड लाइन पर ``|'' के साथ कई सीडब्ल्यूई का चयन करते हैं तो आप करेंगे
आम तौर पर मापदंडों को उद्धृत करने की आवश्यकता होती है (चूंकि एक निर्विवाद ``|'' पाइप प्रतीक है)।
Flawfinder को CWE-Searchable आवश्यकता को पूरा करने के लिए डिज़ाइन किया गया है।

यदि आपका लक्ष्य किसी फ़ाइल में सूचीबद्ध CWE के सबसेट की रिपोर्ट करना है, तो इसे प्राप्त किया जा सकता है
यूनिक्स जैसी प्रणाली पर ``--regex'' उर्फ ​​``-ई'' विकल्प का उपयोग कर। फ़ाइल में होना चाहिए
नियमित अभिव्यक्ति प्रारूप। उदाहरण के लिए, ``flawfinder -e $(cat file1)'' केवल रिपोर्ट करेगा
हिट जो ``file1'' के पैटर्न से मेल खाती हैं। अगर फाइल 1 में ``सीडब्ल्यूई-120|सीडब्ल्यूई-126'' है तो
केवल उन सीडब्ल्यूई से मेल खाने वाले हिट की रिपोर्ट करेगा।

सभी सीडब्ल्यूई सुरक्षा तत्वों की एक सूची (हस्ताक्षर/पैटर्न जो त्रुटि खोजकर्ता की तलाश में हैं)
``--listrules'' विकल्प का उपयोग करके पाया जा सकता है। प्रत्येक पंक्ति हस्ताक्षर टोकन को सूचीबद्ध करती है
(आमतौर पर एक फ़ंक्शन नाम) जो हिट, डिफ़ॉल्ट जोखिम स्तर, और हो सकता है
डिफ़ॉल्ट चेतावनी (जिसमें डिफ़ॉल्ट CWE पहचानकर्ता शामिल है)। अधिकांश उद्देश्यों के लिए यह है
यह भी पर्याप्त है यदि आप यह देखना चाहते हैं कि कौन से CWE सुरक्षा तत्व किस CWE को मैप करते हैं, या
उलटना। उदाहरण के लिए, अधिकांश हस्ताक्षर (फ़ंक्शन नाम) देखने के लिए जो मैप करते हैं
CWE-327, डिफ़ॉल्ट जोखिम स्तर या विस्तृत चेतावनी पाठ को देखे बिना, ``दोषी खोजकर्ता' चलाएँ
--सूची | ग्रेप सीडब्ल्यूई-327 | कट -f1 ''। आप CWE मैपिंग के बिना भी टोकन देख सकते हैं
इस तरह ``flawfinder -D --listrules | . चलाकर ग्रेप-वी सीडब्ल्यूई-''। हालांकि, जबकि
--listrules सभी CWE सुरक्षा तत्वों को सूचीबद्ध करता है, यह केवल CWE से डिफ़ॉल्ट मैपिंग को सूचीबद्ध करता है
सीडब्ल्यूई पहचानकर्ताओं के लिए सुरक्षा तत्व। इसमें वे शोधन शामिल नहीं हैं जो त्रुटि खोजक हैं
लागू होता है (उदाहरण के लिए, फ़ंक्शन पैरामीटर की जांच करके)।

यदि आप CWE सुरक्षा तत्वों और CWE के बीच विस्तृत और सटीक मानचित्रण चाहते हैं
पहचानकर्ता, दोषदर्शी स्रोत कोड (वितरण में शामिल) सबसे अच्छी जगह है
उस जानकारी के लिए। यह विस्तृत जानकारी मुख्य रूप से उन कुछ लोगों के लिए रुचिकर है
जो लोग दोष-शोधक के सीडब्ल्यूई मानचित्रण को परिशोधित करने या सामान्य रूप से सीडब्ल्यूई को परिशोधित करने का प्रयास कर रहे हैं।
स्रोत कोड सुरक्षा तत्वों के बीच संबंधित CWE के मानचित्रण का दस्तावेजीकरण करता है
पहचानकर्ता, और एक एकल पायथन फ़ाइल है। ``c_rules'' डेटासेट अधिकांश नियमों को परिभाषित करता है,
एक फ़ंक्शन के संदर्भ में जो और परिशोधन कर सकता है। आप खोज सकते हैं
फ़ंक्शन नामों के लिए डेटासेट यह देखने के लिए कि यह डिफ़ॉल्ट रूप से क्या CWE उत्पन्न करता है; यदि पहला पैरामीटर है
नहीं ``सामान्य'' तो यह एक परिष्कृत पायथन विधि का नाम है जो भिन्न का चयन कर सकता है
सीडब्ल्यूई (अतिरिक्त जानकारी के आधार पर)। इसके विपरीत, आप ``सीडब्ल्यूई-नंबर'' खोज सकते हैं
और पता लगाएं कि कौन से सुरक्षा तत्व (हस्ताक्षर या पैटर्न) उस सीडब्ल्यूई पहचानकर्ता को संदर्भित करते हैं।
अधिकांश लोगों के लिए, यह उनकी आवश्यकता से कहीं अधिक है; ज्यादातर लोग सिर्फ अपना स्कैन करना चाहते हैं
स्रोत कोड जल्दी से समस्याओं को खोजने के लिए।

सुरक्षा


इस उपकरण का संपूर्ण बिंदु कमजोरियों को खोजने में मदद करना है ताकि उन्हें ठीक किया जा सके।
हालांकि, डेवलपर्स और समीक्षकों को पता होना चाहिए कि इसका उपयोग करने के लिए सुरक्षित सॉफ़्टवेयर कैसे विकसित किया जाए
उपकरण, क्योंकि अन्यथा, a मूर्ख साथ में a साधन is अभी भी a मूर्ख. मेरी किताब
http://www.dwheeler.com/secure-programs मदद कर सकता है।

यह उपकरण, अधिक से अधिक, एक बड़ी सॉफ्टवेयर विकास प्रक्रिया का एक छोटा सा हिस्सा होना चाहिए
कमजोरियों के प्रभाव को खत्म करने या कम करने के लिए डिज़ाइन किया गया। डेवलपर्स और समीक्षक
सुरक्षित सॉफ़्टवेयर विकसित करने का तरीका जानने की आवश्यकता है, और उन्हें इस ज्ञान को कम करने के लिए लागू करने की आवश्यकता है
पहली जगह में कमजोरियों के जोखिम।

विभिन्न भेद्यता-खोज उपकरण अलग-अलग कमजोरियों को ढूंढते हैं। इस प्रकार, आप
मानव समीक्षा और विभिन्न उपकरणों का उपयोग करना सबसे अच्छा है। यह उपकरण कुछ खोजने में मदद कर सकता है
कमजोरियां, लेकिन किसी भी तरह से सभी नहीं।

आपको हमेशा विश्लेषण करना चाहिए a प्रतिलिपि स्रोत कार्यक्रम का विश्लेषण किया जा रहा है, निर्देशिका नहीं
जिसे एक डेवलपर द्वारा संशोधित किया जा सकता है जबकि दोषदर्शी विश्लेषण कर रहा है। यह है
विशेष रूप से सच है यदि आप विश्लेषण किए जा रहे प्रोग्राम के डेवलपर पर आवश्यक रूप से भरोसा नहीं करते हैं।
यदि किसी हमलावर का फाइलों का विश्लेषण करते समय उन पर नियंत्रण है, तो हमलावर कर सकता है
सुरक्षा समस्या के जोखिम को रोकने के लिए फ़ाइलों को इधर-उधर ले जाना या उनकी सामग्री बदलना
(या ऐसी समस्या का आभास बनाएँ जहाँ कोई नहीं है)। अगर आप चिंतित हैं
दुर्भावनापूर्ण प्रोग्रामर आपको इसे वैसे भी करना चाहिए, क्योंकि विश्लेषण के बाद आपको इसकी आवश्यकता होगी
सत्यापित करें कि अंततः चलाया गया कोड वह कोड है जिसका आपने विश्लेषण किया था। इसके अलावा, का उपयोग न करें
ऐसे मामलों में --allowlink विकल्प; हमलावर फाइलों के लिए दुर्भावनापूर्ण सांकेतिक लिंक बना सकते हैं
उनके स्रोत कोड क्षेत्र के बाहर (जैसे / Etc / पासवर्ड).

सोर्स कोड मैनेजमेंट सिस्टम (जैसे सोर्सफोर्ज और सवाना) निश्चित रूप से इसमें आते हैं
श्रेणी; यदि आप इनमें से किसी एक सिस्टम का रखरखाव कर रहे हैं, तो पहले फाइलों को कॉपी या एक्सट्रेक्ट करें
एक अलग निर्देशिका (जिसे हमलावरों द्वारा नियंत्रित नहीं किया जा सकता) त्रुटि खोजक चलाने से पहले या
कोई अन्य कोड विश्लेषण उपकरण।

ध्यान दें कि फ्लॉफ़ाइंडर केवल नियमित फ़ाइलें, निर्देशिकाएं खोलता है, और (यदि अनुरोध किया जाता है) प्रतीकात्मक
कड़ियाँ; यह कभी भी अन्य प्रकार की फाइलें नहीं खोलेगा, भले ही उनके लिए एक प्रतीकात्मक लिंक बनाया गया हो।
यह उन हमलावरों का मुकाबला करता है जो स्रोत कोड में असामान्य फ़ाइल प्रकार सम्मिलित करते हैं। हालांकि, यह
केवल तभी काम करता है जब विश्लेषण किए जा रहे फाइल सिस्टम को हमलावर द्वारा संशोधित नहीं किया जा सकता है
विश्लेषण, जैसा कि ऊपर सुझाया गया है। यह सुरक्षा सिगविन प्लेटफॉर्म पर भी काम नहीं करती है,
दुर्भाग्य से।

सिगविन सिस्टम (विंडोज़ के शीर्ष पर यूनिक्स इम्यूलेशन) में एक अतिरिक्त समस्या है यदि दोषदर्शी
उन कार्यक्रमों का विश्लेषण करने के लिए उपयोग किया जाता है जिन पर विश्लेषक भरोसा नहीं कर सकता। समस्या एक डिजाइन के कारण है
विंडोज़ में दोष (जो इसे एमएस-डॉस से विरासत में मिला है)। Windows और MS-DOS पर, कुछ फ़ाइल नाम
(जैसे, ``com1'') को ऑपरेटिंग सिस्टम द्वारा स्वचालित रूप से के नामों के रूप में माना जाता है
परिधीय, और यह तब भी सच है जब एक पूर्ण पथनाम दिया गया हो। हाँ, विंडोज़ और एमएस-डॉस
वास्तव में इसे बुरी तरह से डिजाइन किया गया है। फ़ाइल सिस्टम क्या है, इसकी जाँच करके फ़्लॉफ़ाइंडर इससे निपटता है
ऑब्जेक्ट है, और उसके बाद केवल निर्देशिकाएं और नियमित फ़ाइलें खोलना (और सक्षम होने पर सिम्लिंक)।
दुर्भाग्य से, यह सिगविन पर काम नहीं करता है; कुछ पर सिगविन के कम से कम कुछ संस्करणों पर
विंडोज़ के संस्करण, केवल यह निर्धारित करने का प्रयास कर रहे हैं कि कोई फ़ाइल डिवाइस प्रकार है या नहीं,
लटकाने का कार्यक्रम। व्याख्या किए गए किसी भी फ़ाइल नाम को हटाना या उसका नाम बदलना एक वैकल्पिक हल है
विश्लेषण करने से पहले डिवाइस के नाम के रूप में। ये तथाकथित ``आरक्षित नाम'' हैं
CON, PRN, AUX, CLOCK$, NUL, COM1-COM9, और LPT1-LPT9, वैकल्पिक रूप से एक एक्सटेंशन के बाद
(उदाहरण के लिए, ``com1.txt ''), किसी भी निर्देशिका में, और किसी भी स्थिति में (विंडोज़ केस-असंवेदनशील है)।

Do नहीं अविश्वसनीय स्रोतों से हिटलिस्ट लोड या अलग करें। उनका उपयोग करके कार्यान्वित किया जाता है
पायथन अचार मॉड्यूल, और अचार मॉड्यूल गलत के खिलाफ सुरक्षित होने का इरादा नहीं है
या दुर्भावनापूर्ण रूप से निर्मित डेटा। संग्रहीत हिटलिस्ट बाद में उसी द्वारा उपयोग के लिए अभिप्रेत हैं
उपयोगकर्ता जिसने हिटलिस्ट बनाई; उस संदर्भ में यह प्रतिबंध कोई समस्या नहीं है।

onworks.net सेवाओं का उपयोग करके ऑनलाइन फ़्लॉफ़ाइंडर का उपयोग करें


फ्री सर्वर और वर्कस्टेशन

विंडोज और लाइनेक्स एप डाउनलोड करें

लिनक्स कमांड

  • 1
    abidiff
    abidiff
    एबिडिफ - ईएलएफ फाइलों के एबीआई की तुलना करें
    एबिडीफ एप्लिकेशन बाइनरी की तुलना करता है
    दो साझा पुस्तकालयों के इंटरफेस (एबीआई)।
    ईएलएफ प्रारूप में। यह एक अर्थपूर्ण उत्सर्जन करता है
    रिपोर्ट...
    एबिडीफ चलाएं
  • 2
    आबिदव
    आबिदव
    abidw - ELF के ABI को क्रमबद्ध करें
    फ़ाइल abidw ईएलएफ में एक साझा पुस्तकालय पढ़ता है
    प्रारूप और एक एक्सएमएल प्रतिनिधित्व का उत्सर्जन करता है
    इसके ABI से मानक आउटपुट तक।
    उत्सर्जित ...
    अबीद चलाओ
  • 3
    copac2xml
    copac2xml
    बिबुटिल्स - ग्रंथ सूची रूपांतरण
    उपयोगिताओं ...
    Copac2xml चलाएँ
  • 4
    कॉप्ट
    कॉप्ट
    कॉप्ट - पीपहोल अनुकूलक SYSNOPIS:
    कॉप्ट फ़ाइल.. विवरण: कॉप्ट एक है
    सामान्य प्रयोजन पीपहोल अनुकूलक। यह
    अपने मानक इनपुट से कोड पढ़ता है और
    एक लिखता है...
    कॉप चलाओ
  • 5
    इकट्ठा_stx_शीर्षक
    इकट्ठा_stx_शीर्षक
    इकट्ठा_stx_शीर्षक - शीर्षक इकट्ठा करें
    Stx दस्तावेज़ों से घोषणाएँ ...
    इकट्ठा_stx_titles चलाएँ
  • 6
    गैटलिंग-बेंच
    गैटलिंग-बेंच
    बेंच - http बेंचमार्क ...
    गैटलिंग-बेंच चलाएं
  • अधिक "

Ad