
git commit संदेशों से संभावित सॉफ्टवेयर कमजोरियों का पता लगाना

git कमिट संदेशों से संभावित सॉफ़्टवेयर कमज़ोरियाँ ढूँढना। आउटपुट प्रारूप JSON है जिसमें संबंधित कमिट शामिल है जिसमें सॉफ़्टवेयर कमज़ोरी के संबंध में एक फिक्स हो सकता है। खोज केवल कमिट संदेशों के विरुद्ध नियमित अभिव्यक्तियों के एक सेट पर आधारित है। यदि CVE IDs मौजूद हैं, तो वे स्वचालित रूप से आउटपुट में जोड़ दिए जाते हैं। इनपुट कोई भी git रिपॉजिटरी या GH आर्काइव स्रोत हो सकता है।
sudo apt install jq)git-vuln-finder को poetry के साथ स्थापित किया जा सकता है। यदि आपके पास poetry स्थापित नहीं है, तो आप निम्नलिखित कर सकते हैं curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python।
$ poetry install
$ poetry shell
$ git-vuln-finder -h
आप pip का भी उपयोग कर सकते हैं। फिर इसे आयात करें:
Python 3.8.0 (default, Dec 11 2019, 21:43:13)
[GCC 9.2.1 20191008] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from git_vuln_finder import find
>>> all_potential_vulnerabilities, all_cve_found, found = find("~/git/curl")
>>> [commit for commit, summary in all_potential_vulnerabilities.items() if summary['state'] == 'cve-assigned']
['9069838b30fb3b48af0123e39f664cea683254a5', 'facb0e4662415b5f28163e853dc6742ac5fafb3d',
... snap ...
'8a75dbeb2305297640453029b7905ef51b87e8dd', '1dc43de0dccc2ea7da6dddb7b98f8d7dcf323914', '192c4f788d48f82c03e9cef40013f34370e90737', '2eb8dcf26cb37f09cffe26909a646e702dbcab66', 'fa1ae0abcde5df8d0b3283299e3f246bedf7692c', 'c11c30a8c8d727dcf5634fa0cc6ee0b4b77ddc3d', '75ca568fa1c19de4c5358fed246686de8467c238', 'a20daf90e358c1476a325ea665d533f7a27e3364', '042cc1f69ec0878f542667cb684378869f859911']
>>> print(json.dumps(all_potential_vulnerabilities['9069838b30fb3b48af0123e39f664cea683254a5'], sort_keys=True, indent=4, separators=(",", ": ")))
{
"author": "Daniel Stenberg",
"author-email": "[email protected]",
"authored_date": 1567544372,
"branches": [
"master"
],
"commit-id": "9069838b30fb3b48af0123e39f664cea683254a5",
"committed_date": 1568009674,
"cve": [
"CVE-2019-5481",
"CVE-2019-5481"
],
"language": "en",
"message": "security:read_data fix bad realloc()\n\n... that could end up a double-free\n\nCVE-2019-5481\nBug: https://curl.haxx.se/docs/CVE-2019-5481.html\n",
"origin": "https://github.com/curl/curl.git",
"origin-github-api": "https://api.github.com/repos///github.com/curl/curl/commits/9069838b30fb3b48af0123e39f664cea683254a5",
"pattern-matches": [
"double-free"
],
"pattern-selected": "(?i)(double[-| ]free|buffer overflow|double free|race[-| ]condition)",
"state": "cve-assigned",
"stats": {
"deletions": 4,
"files": 1,
"insertions": 2,
"lines": 6
},
"summary": "security:read_data fix bad realloc()",
"tags": []
}
$ git clone https://github.com/cve-search/git-vuln-finder.git
$ cd https://github.com/cve-search/git-vuln-finder.git
$ pip install .
$ git-vuln-finder --help
आप pip का भी उपयोग कर सकते हैं।
pipx Python पैकेजों द्वारा प्रदान की गई स्क्रिप्ट्स (सिस्टम-वाइड उपलब्ध) को अलग-अलग वर्चुअलएन्व में स्थापित करता है ताकि उन्हें आपके सिस्टम और एक-दूसरे से बचाया जा सके।
usage: git-vuln-finder [-h] [-v] [-r R] [-o O] [-s S] [-p P] [-c] [-t] [-gh GH]
Finding potential software vulnerabilities from git commit messages.
optional arguments:
-h, --help show this help message and exit
-v increase output verbosity
-r R git repository to analyse
-o O Output format: [json]
-s S State of the commit found
-p P Matching pattern to use: [vulnpatterns, cryptopatterns, cpatterns] - the pattern 'all' is used to match all the patterns at once.
-c output only a list of the CVE pattern found in commit messages (disable by default)
-t Include tags matching a specific commit
-gh GH special option for gharchive, pass a file containing a PushEvent in JSON format
More info: https://github.com/cve-search/git-vuln-finder
git-vuln-finder 3 डिफ़ॉल्ट पैटर्न के साथ आता है जिन्हें कमिट संदेशों में वर्णित संभावित कमज़ोरियों को खोजने के लिए चुना जा सकता है, जैसे:
vulnpatterns एक सामान्य कमज़ोरी पैटर्न है जो विशेष रूप से वेब एप्लिकेशन और सामान्य सुरक्षा कमिट संदेशों को लक्षित करता है। एक अकादमिक पेपर पर आधारित।cryptopatterns कमिट संदेशों में उल्लिखित क्रिप्टोग्राफ़िक त्रुटियों के लिए एक कमज़ोरी पैटर्न है।cpatterns C/C++-जैसी भाषाओं के लिए देखे जाने वाले मानक कमज़ोरी पैटर्न का एक सेट है।