
Python निर्भरता भेद्यता स्कैनर, Rust में लिखा गया।
Pyscan एक अत्यधिक समवर्ती भेद्यता स्कैनर है जो Rust में लिखा गया है। यह स्वचालित रूप से आपके Python प्रोजेक्ट का भ्रमण करता है, विभिन्न पैकेजिंग प्रारूपों से निर्भरताओं को निकालता है, और उन्हें एक ही अतुल्यकालिक बैच अनुरोध में ओपन सोर्स भेद्यताएँ (OSV) डेटाबेस के विरुद्ध क्रॉस-रेफ़रेंस करता है।
Pyscan को पारंपरिक Python-आधारित सुरक्षा उपकरणों के प्रदर्शन और मेमोरी अड़चनों को हल करने के लिए इंजीनियर किया गया था:
pip-audit और safety जैसे उद्योग-मानक उपकरणों की तुलना में 5.25x तक की गति प्राप्त करता है। Pyscan का रनटाइम $O(\text{vulns})$ समय जटिलता मॉडल पर कार्य करता है, निष्पादन समय मिली भेद्यताओं की संख्या के साथ बढ़ता है, न कि आपके पास मौजूद निर्भरताओं की संख्या के साथ।uv.lock, requirements.txt, pyproject.toml (Poetry, Hatch, PDM, Flit) से निर्भरताओं को हल करके निकालता है, या आपके कच्चे .py सोर्स कोड को पार्स करके गतिशील रूप से।गहन जानकारी के लिए बेंचमार्क रिपोर्ट पढ़ें।
आप Pyscan को pipx, pip (संकलित Python wheel) या cargo (नेटिव Rust बाइनरी) के माध्यम से स्थापित कर सकते हैं:
# via pipx (recommended) (Note the "-rs" suffix)
pipx install pyscan-rs
# via pip (Note the "-rs" suffix)
pip install pyscan-rs
# via Cargo
cargo install pyscan
बस अपने प्रोजेक्ट की रूट निर्देशिका में pyscan चलाएँ, या इसे किसी विशिष्ट स्रोत फ़ोल्डर की ओर इंगित करें:
# Scan the current directory
pyscan
# Scan a specific directory
pyscan -d path/to/src
यदि कई स्रोत फ़ाइलें मौजूद हैं, तो Pyscan इस प्राथमिकता श्रृंखला का पालन करते हुए निर्भरताएँ निकालता है:
bom.json, spdx.json)uv.lockrequirements.txtpyproject.toml.py)यदि कोई निर्भरता बिना सख्ती से पिन किए गए संस्करण के मिलती है, तो Pyscan नवीनतम संस्करण के लिए PyPI से क्वेरी करने का सहारा लेगा, हालाँकि PEP-508 सिंटैक्स का पालन करने की अत्यधिक अनुशंसा की जाती है।
Pyscan को एक Rust टूलचेन >= v1.70 की आवश्यकता होती है और यह OSV क्वेरीज़ को समानांतर करने और थ्रूपुट को अधिकतम करने के लिए reqwest और tokio के माध्यम से अतुल्यकालिक नेटवर्किंग का लाभ उठाता है। यदि आप इस बात में रुचि रखते हैं कि पार्सर और स्कैनर कैसे संरचित हैं, तो आर्किटेक्चर अवलोकन देखें।
Pyscan एक अत्यधिक अनुकूलित उपकरण है, लेकिन इसे अभी तक हर किनारे के मामले में कठोर परीक्षण से नहीं गुज़ारा गया है। यह गारंटी नहीं देता कि आपका कोड सभी वैक्टरों से 100% सुरक्षित है। मैं Dependabot, pip-audit, या Trivy जैसे उपकरणों के साथ एक स्तरित सुरक्षा दृष्टिकोण अपनाने की अत्यधिक अनुशंसा करता हूँ। PRs और मुद्दों का हार्दिक स्वागत है!
मैंने यह प्रोजेक्ट तब शुरू किया था जब मैं एक आर्थिक रूप से तंग हाई स्कूल छात्र था, और अब मैं एक आर्थिक रूप से तंग कॉलेज छात्र हूँ। यदि Pyscan ने आपकी CI/CD पाइपलाइनों का कुछ कीमती समय और RAM बचाया है, तो कृपया मुझे एक कॉफ़ी खरीदने पर विचार करें: