
भेद्यता अनुसंधान की सुविधा के लिए मेरे Semgrep नियमों का संग्रह।
"हमला सतह ही कमजोरी है। वहाँ बग ढूंढना सिर्फ एक विस्तार है।"
-- Mark Dowd
"कुछ विवरण दूसरों से अधिक महत्वपूर्ण हैं।"
-- Fedor G. Pikus
मेरे Semgrep नियमों का एक संग्रह जो कमजोरी अनुसंधान को सुविधाजनक बनाता है।
# high priority scan (quick wins)
semgrep --severity ERROR --config "p/0xdea"
# high and medium priority scan (recommended)
semgrep --severity ERROR --severity WARNING --config "p/0xdea"
# full scan (might include marginal findings and more false positives)
semgrep --config "p/0xdea"
वैकल्पिक रूप से, आप इस GitHub रिपॉजिटरी को स्थानीय रूप से क्लोन कर सकते हैं और चला सकते हैं:
# full scan
semgrep --config semgrep-rules/rules /path/to/source
# specific rule scan
semgrep --config semgrep-rules/rules/c/command-injection.yaml /path/to/source
[!TIP]
--no-git-ignoreस्विच निर्दिष्ट करें ताकि फ़ाइलों को git ट्रैकिंग स्थिति या.gitignoreनियमों की परवाह किए बिना स्कैन किया जा सके।
बेहतर सुव्यवस्थित अनुभव के लिए, मैं Semgrep स्कैन आउटपुट को SARIF प्रारूप में सहेजने और VS Code में SARIF Explorer का उपयोग करने की सलाह देता हूँ:
semgrep --sarif --sarif-output=/path/to/source/SEMGREP.sarif --config semgrep-rules/rules /path/to/source
code /path/to/source # then open the SEMGREP.sarif file in VS code with SARIF Explorer
शामिल SARIF आउटपुट उदाहरण भी देखें।
Semgrep CLI 1.169.0 के साथ परीक्षण किया गया।
युद्ध-परीक्षित C (और कभी-कभी C++) नियम सेट।
gets का उपयोग।strcpy, stpcpy, strcat का उपयोग।sprintf और vsprintf का उपयोग।scanf परिवार में संभावित रूप से असुरक्षित API फ़ंक्शन का उपयोग।strncat को गलत आकार तर्क पारित किया गया।strncpy, memcpy, snprintf, और वेरिएंट को गलत आकार तर्क पारित किया गया।sizeof ऑपरेटर का आकस्मिक उपयोग।strncpy और stpncpy के बाद स्पष्ट NUL-समाप्ति का अभाव।snprintf और vsnprintf के वापसी मान का संभावित रूप से असुरक्षित उपयोग।strlcpy और strlcat के वापसी मान का संभावित रूप से असुरक्षित उपयोग।strlen के वापसी मान को short में कास्ट करना खतरनाक हो सकता है।