
semgrep v1.171.0
कई भाषाओं के लिए हल्का स्थैतिक विश्लेषण। स्रोत कोड जैसा दिखने वाले पैटर्न के साथ बग वेरिएंट खोजें।
अविश्वसनीय गति से कोड स्कैनिंग।
Semgrep एक तेज़, ओपन-सोर्स, स्थैतिक विश्लेषण उपकरण है जो कोड खोजता है, बग ढूँढता है, और सुरक्षित गार्डरेल्स और कोडिंग मानकों को लागू करता है। Semgrep 30+ भाषाओं का समर्थन करता है और इसे IDE, प्री-कमिट चेक के रूप में, और CI/CD वर्कफ़्लो के भाग के रूप में चलाया जा सकता है।
Semgrep कोड के लिए सिमैंटिक grep है। जब grep "2" चलाने से केवल सटीक स्ट्रिंग 2 मेल खाती है, Semgrep खोजने पर 2 के लिए x = 1; y = x + 1 को मेल करेगा। Semgrep नियम उस कोड की तरह दिखते हैं जो आप पहले से लिखते हैं; कोई अमूर्त सिंटैक्स ट्री, रेगेक्स कुश्ती, या दर्दनाक DSL नहीं।
ध्यान दें कि सुरक्षा संदर्भों में, Semgrep Community Edition कई वास्तविक सकारात्मक परिणामों को याद करेगा क्योंकि यह केवल एक फ़ंक्शन या फ़ाइल की सीमाओं के भीतर कोड का विश्लेषण कर सकता है। यदि आप Semgrep का उपयोग सुरक्षा उद्देश्यों (SAST, SCA, या सीक्रेट स्कैनिंग) के लिए करना चाहते हैं, तो Semgrep AppSec Platform की दृढ़ता से अनुशंसा की जाती है क्योंकि यह निम्नलिखित महत्वपूर्ण क्षमताएँ जोड़ता है:
- बेहतर कोर विश्लेषण क्षमताएँ (क्रॉस-फ़ाइल, क्रॉस-फ़ंक्शन, डेटा-फ़्लो पहुँच) जो झूठी सकारात्मकता को 25% तक कम करती हैं और वास्तविक सकारात्मकता का पता लगाने में 250% की वृद्धि करती हैं।
- Semgrep Assistant (AI) के साथ निष्कर्षों का प्रासंगिक पोस्ट-प्रोसेसिंग, शोर को ~20% तक कम करने के लिए। इसके अलावा, Assistant निष्कर्षों को अनुकूलित, चरण-दर-चरण सुधार मार्गदर्शन से समृद्ध करता है जिसे मानव >80% समय कार्यान्वयन योग्य पाते हैं।
- अनुकूलन योग्य नीतियाँ और डेवलपर वर्कफ़्लो में निर्बाध एकीकरण, सुरक्षा टीमों को इस बात पर दानेदार नियंत्रण देता है कि कहाँ, कब और कैसे विभिन्न निष्कर्ष डेवलपर्स को प्रस्तुत किए जाते हैं (IDE, PR टिप्पणी, आदि)।
Semgrep AppSec Platform SAST, SCA और सीक्रेट्स में 20000+ मालिकाना नियमों के साथ बॉक्स से बाहर काम करता है। Pro नियम Semgrep सुरक्षा अनुसंधान टीम द्वारा लिखे और बनाए रखे जाते हैं और अत्यधिक सटीक होते हैं, जिसका अर्थ है कि AppSec टीमें डेवलपर्स को धीमा किए बिना सीधे उनके पास निष्कर्ष ला सकती हैं।
Semgrep कोड का विश्लेषण आपके कंप्यूटर या बिल्ड वातावरण में स्थानीय रूप से करता है: डिफ़ॉल्ट रूप से, कोड कभी अपलोड नहीं किया जाता है। शुरू करें →
भाषा समर्थन
Semgrep Code 30+ भाषाओं का समर्थन करता है, जिनमें शामिल हैं:
Apex · Bash · C · C++ · C# · Clojure · Dart · Dockerfile · Elixir · HTML · Go · Java · JavaScript · JSX · JSON · Julia · Jsonnet · Kotlin · Lisp · Lua · OCaml · PHP · Python · R · Ruby · Rust · Scala · Scheme · Solidity · Swift · Terraform · TypeScript · TSX · YAML · XML · Generic (ERB, Jinja, आदि)
Semgrep Supply Chain 15 पैकेज प्रबंधकों में 12 भाषाओं का समर्थन करता है, जिनमें शामिल हैं:
C# (NuGet) · Dart (Pub) · Go (Go मॉड्यूल, go mod) · Java (Gradle, Maven) · Javascript/Typescript (npm, Yarn, Yarn 2, Yarn 3, pnpm) · Kotlin (Gradle, Maven) · PHP (Composer) · Python (pip, pip-tool, Pipenv, Poetry) · Ruby (RubyGems) · Rust (Cargo) · Scala (Maven) · Swift (SwiftPM)
अधिक जानकारी के लिए, समर्थित भाषाएँ देखें।
शुरू करें 🚀
नए उपयोगकर्ताओं के लिए, हम Semgrep AppSec Platform से शुरू करने की सलाह देते हैं क्योंकि यह एक दृश्य इंटरफ़ेस, एक डेमो प्रोजेक्ट, परिणाम ट्राइएजिंग और अन्वेषण वर्कफ़्लो प्रदान करता है, और CI/CD में सेटअप को तेज़ बनाता है। स्कैन अभी भी स्थानीय हैं और कोड अपलोड नहीं होता है। वैकल्पिक रूप से, आप CLI से भी शुरू कर सकते हैं और एक बार की खोज चलाने के लिए टर्मिनल आउटपुट नेविगेट कर सकते हैं।
विकल्प 1: Semgrep AppSec Platform से शुरू करें (अनुशंसित)
-
semgrep.dev पर पंजीकरण करें
-
Semgrep कैसे काम करता है यह सीखने के लिए डेमो निष्कर्षों का अन्वेषण करें
-
Projects > Scan New Project > Run scan in CIपर जाकर अपने प्रोजेक्ट को स्कैन करें -
अपने संस्करण नियंत्रण सिस्टम का चयन करें और अपना प्रोजेक्ट जोड़ने के लिए ऑनबोर्डिंग चरणों का पालन करें। इस सेटअप के बाद, Semgrep प्रत्येक पुल अनुरोध के बाद आपके प्रोजेक्ट को स्कैन करेगा।
-
[वैकल्पिक] यदि आप Semgrep को स्थानीय रूप से चलाना चाहते हैं, तो CLI अनुभाग में चरणों का पालन करें।
नोट्स:
यदि कोई समस्या है, तो कृपया Semgrep Slack में सहायता माँगें।
विकल्प 2: CLI से शुरू करें
-
Semgrep CLI स्थापित करें
# macOS के लिए $ brew install semgrep # Ubuntu/WSL/Linux/macOS के लिए $ python3 -m pip install semgrep # Semgrep को बिना स्थापना के आज़माने के लिए Docker के माध्यम से चलाएँ $ docker run -it -v "${PWD}:/src" semgrep/semgrep semgrep login $ docker run -e SEMGREP_APP_TOKEN=<TOKEN> --rm -v "${PWD}:/src" semgrep/semgrep semgrep ci -
अपना खाता बनाने और Semgrep में लॉग इन करने के लिए
semgrep loginचलाएँ। यह चरण वैकल्पिक है, लेकिन Semgrep में लॉग इन करने से आपको निम्नलिखित तक पहुँच मिलती है: