
semgrep v1.173.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 में लॉग इन करने से आपको निम्नलिखित तक पहुँच मिलती है:- Semgrep Supply Chain: एक डिपेंडेंसी स्कैनर जो तृतीय-पक्ष लाइब्रेरीज़ में पहुँचने योग्य कमज़ोरियों का पता लगाता है
- Semgrep Code के Pro नियम: Semgrep की सुरक्षा अनुसंधान टीम द्वारा लिखे गए 600+ उच्च-विश्वास नियम
- Semgrep Code का Pro इंजन: एक उन्नत कोड विश्लेषण इंजन, जो जटिल कमज़ोरियों का पता लगाने और झूठी सकारात्मकता को कम करने के लिए डिज़ाइन किया गया है
-
अपने ऐप की रूट डायरेक्टरी में जाएँ और
semgrep ciचलाएँ। यह आपके प्रोजेक्ट को आपके स्रोत कोड और उसकी डिपेंडेंसीज़ में कमज़ोरियों की जाँच करने के लिए स्कैन करेगा। -
-eके साथ इंटरैक्टिव रूप से अपनी स्वयं की क्वेरी लिखने का प्रयास करें। उदाहरण के लिए, Python == के लिए जहाँ बाएँ और दाएँ हाथ की ओर समान हों (संभावित बग):$ semgrep -e '$X == $X' --lang=py path/to/src
Semgrep इकोसिस्टम
Semgrep इकोसिस्टम में निम्नलिखित शामिल हैं:
-
Semgrep Community Edition - हर चीज़ के केंद्र में ओपन-सोर्स प्रोग्राम विश्लेषण इंजन। उच्च सहनशीलता वाले झूठी सकारात्मकता वाले एड-हॉक उपयोग मामलों के लिए उपयुक्त - सलाहकार, सुरक्षा ऑडिटर, या पेंटेस्टर जैसे विचार करें।
-
Semgrep AppSec Platform - एक संगठन में SAST, SCA और सीक्रेट स्कैनिंग को आसानी से व्यवस्थित और स्केल करें, बिना डेवलपर्स को अभिभूत करने के जोखिम के। अनुकूलित करें कि डेवलपर्स कौन से निष्कर्ष देखते हैं, वे उन्हें कहाँ देखते हैं, और GitHub, GitLab, CircleCI और अधिक जैसे CI प्रदाताओं के साथ एकीकृत करें। इसमें मुफ्त और सशुल्क दोनों स्तर शामिल हैं।
-
Semgrep Code (SAST) - अपनी कमज़ोरी बैकलॉग में वास्तविक प्रगति करें SAST के साथ जो शोर को कम करता है और डेवलपर्स को अपने दम पर समस्याओं को जल्दी से ठीक करने के लिए सशक्त बनाता है, भले ही उनके पास सुरक्षा ज्ञान न हो। सुरक्षित गार्डरेल्स और अनुकूलित, चरण-दर-चरण सुधार मार्गदर्शन को तैनात करना आसान है, जिसका अर्थ है कि डेवलपर्स वास्तव में समस्याओं को ठीक करते हैं क्योंकि वे धीमा महसूस नहीं करते हैं।
-
Semgrep Supply Chain (SSC) - एक उच्च-सिग्नल डिपेंडेंसी स्कैनर जो ओपन सोर्स तृतीय-पक्ष लाइब्रेरीज़ और फ़ंक्शन में पहुँचने योग्य कमज़ोरियों का पता लगाता है।
-
Semgrep Secrets (सीक्रेट स्कैनिंग) - सीक्रेट डिटेक्शन जो सिमैंटिक विश्लेषण, बेहतर एन्ट्रॉपी विश्लेषण और सत्यापन का उपयोग करके डेवलपर वर्कफ़्लो में संवेदनशील क्रेडेंशियल्स को सटीक रूप से सतह पर लाता है।
-
Semgrep Assistant (AI) - Assistant एक AI-संचालित AppSec इंजीनियर है जो डेवलपर्स और AppSec टीमों दोनों को पैमाने पर Semgrep निष्कर्षों को प्राथमिकता देने, ट्राइएज करने और सुधारने में मदद करता है। मानव Assistant के ऑटो-ट्राइएज निर्णयों से 97% समय सहमत होते हैं, और उत्पन्न सुधार मार्गदर्शन को 80% समय सहायक मानते हैं। Assistant कैसे काम करता है इसका एक अवलोकन यह अवलोकन पढ़ें।
-
-
Semgrep MCP Server - एक Model Context Protocol (MCP) सर्वर जो AI कोडिंग सहायकों को सीधे Semgrep स्कैन चलाने देता है। Cursor, VS Code, Windsurf, Claude Desktop और अधिक के साथ एकीकृत करता है। इसे स्थानीय रूप से शुरू करने के लिए
semgrep mcpचलाएँ।- Hooks - जैसे ही आप कोड करते हैं स्वचालित रूप से Semgrep स्कैन ट्रिगर करें।
- Skills / Prompts - अंतर्निहित MCP प्रॉम्प्ट जैसे
write_custom_semgrep_ruleAI सहायकों को सटीक Semgrep नियम लिखने में मदद करते हैं। - Claude Code प्लगइन - आधिकारिक मार्केटप्लेस और semgrep/mcp-marketplace रिपो के माध्यम से उपलब्ध:
/plugin marketplace add semgrep/mcp-marketplace - Cursor प्लगइन - आधिकारिक मार्केटप्लेस और semgrep/cursor-plugin रिपो के माध्यम से उपलब्ध।
अतिरिक्त संसाधन:
- Semgrep Playground - नियम लिखने और साझा करने के लिए एक ऑनलाइन इंटरैक्टिव टूल।
- Semgrep Registry - सुरक्षा, शुद्धता और डिपेंडेंसी कमज़ोरियों को कवर करने वाले 2,000+ सामुदायिक-संचालित नियम।
GitLab, Dropbox, Slack, Figma, Shopify, HashiCorp, Snowflake, और Trail of Bits जैसी कंपनियों में पहले से Semgrep का उपयोग कर रहे सैकड़ों हजारों अन्य डेवलपर्स और सुरक्षा इंजीनियरों से जुड़ें।
Semgrep Semgrep, Inc., एक सॉफ्टवेयर सुरक्षा कंपनी द्वारा विकसित और व्यावसायिक रूप से समर्थित है।
Semgrep नियम
Semgrep नियम उस कोड की तरह दिखते हैं जो आप पहले से लिखते हैं; कोई अमूर्त सिंटैक्स ट्री, रेगेक्स कुश्ती, या दर्दनाक DSL नहीं। यहाँ Python print() स्टेटमेंट खोजने का एक त्वरित नियम है।
इसे Semgrep के Playground में यहाँ क्लिक करके ऑनलाइन चलाएँ।
उदाहरण
उपयोग मामलों और विचारों के लिए Docs > Rule examples पर जाएँ।
| उपयोग मामला | Semgrep नियम |
|---|---|
| खतरनाक APIs पर प्रतिबंध लगाएँ | exec के उपयोग को रोकें |
| रूट और प्रमाणीकरण खोजें | Spring रूट निकालें |
| सुरक्षित डिफ़ॉल्ट के उपयोग को लागू करें | Flask कुकीज़ को सुरक्षित रूप से सेट करें |
| सिंक में बहने वाला दूषित डेटा | ExpressJS डेटाफ़्लो sandbox.run में |
| प्रोजेक्ट की सर्वोत्तम प्रथाओं को लागू करें | == जाँच के लिए assertEqual का उपयोग करें, हमेशा subprocess कॉल की जाँच करें |
| प्रोजेक्ट-विशिष्ट ज्ञान को संहिताबद्ध करें | लेन-देन करने से पहले उन्हें सत्यापित करें |
| सुरक्षा हॉटस्पॉट का ऑडिट करें | Apache Airflow में XSS ढूँढना, हार्डकोडेड क्रेडेंशियल्स |
| कॉन्फ़िगरेशन फ़ाइलों का ऑडिट करें | S3 ARN उपयोग खोजें |
| अप्रचलित APIs से माइग्रेट करें | DES अप्रचलित है, अप्रचलित Flask APIs, अप्रचलित Bokeh APIs |
| स्वचालित फिक्स लागू करें | listenAndServeTLS का उपयोग करें |
एक्सटेंशन
अपने संपादक या प्री-कमिट में Semgrep का उपयोग करने के बारे में जानने के लिए Docs > Extensions पर जाएँ। जब CI में एकीकृत किया जाता है और पुल अनुरोधों को स्कैन करने के लिए कॉन्फ़िगर किया जाता है, तो Semgrep केवल उस पुल अनुरोध द्वारा शुरू की गई समस्याओं की रिपोर्ट करेगा; यह आपको मौजूदा समस्याओं को ठीक या अनदेखा किए बिना Semgrep का उपयोग शुरू करने देता है!
दस्तावेज़ीकरण
वेबसाइट पर पूर्ण Semgrep दस्तावेज़ीकरण ब्राउज़ करें। यदि आप Semgrep में नए हैं, तो Docs > Getting started या इंटरैक्टिव ट्यूटोरियल देखें।
मीट्रिक्स
Registry से रिमोट कॉन्फ़िगरेशन (जैसे --config=p/ci) का उपयोग करने पर semgrep.dev को छद्मनाम नियम मीट्रिक्स रिपोर्ट होते हैं।
जब स्थानीय फ़ाइलों से कॉन्फ़िगरेशन का उपयोग करते हैं (जैसे --config=xyz.yml), तो मीट्रिक्स केवल तब भेजे जाते हैं जब उपयोगकर्ता लॉग इन हो।
Registry नियम मीट्रिक्स को अक्षम करने के लिए, --metrics=off का उपयोग करें।
Semgrep गोपनीयता नीति उन सिद्धांतों का वर्णन करती है जो डेटा-संग्रह निर्णयों का मार्गदर्शन करते हैं और उस डेटा का विवरण जो मीट्रिक्स सक्षम होने पर एकत्र किया जाता है और नहीं किया जाता है।
और अधिक
- अक्सर पूछे जाने वाले प्रश्न (FAQs)
- योगदान
- डेवलपर्स के लिए बिल्ड निर्देश
- Semgrep समुदाय Slack में प्रश्न पूछें
- CLI संदर्भ और एग्ज़िट कोड
- Semgrep YouTube चैनल
- लाइसेंस (LGPL-2.1)
- Semgrep लाइसेंसिंगअपग्रेड करने के लिए, नीचे दिए गए कमांड को चलाएँ जो आपने Semgrep को कैसे इंस्टॉल किया, उससे संबंधित है।```sh
Using Homebrew
$ brew upgrade semgrep
Using pipx
$ pipx upgrade semgrep
Using uv tool command
$ uv tool upgrade semgrep
Using Docker
$ docker pull semgrep/semgrep:latest
