Cycode

आधिकारिक

अपने डेव जीवनचक्र में SAST, SCA, Secrets और IaC स्कैनिंग के साथ Cycode के माध्यम से सुरक्षा बढ़ाएँ।

Cycode MCP के साथ आप क्या कर सकते हैं?

  • हार्डकोडेड सीक्रेट्स की स्कैन करें — सहायक से निर्दिष्ट फ़ाइल या निर्देशिका पथों पर cycode_secret_scan चलाने के लिए कहें ताकि उजागर क्रेडेंशियल्स का पता लग सके।
  • सॉफ़्टवेयर निर्भरताएँ जाँचें — अपने प्रोजेक्ट के पैकेजों में कमज़ोरियों और लाइसेंस संबंधी समस्याओं की पहचान करने के लिए cycode_sca_scan का उपयोग करें।
  • इन्फ्रास्ट्रक्चर कोड का ऑडिट करें — Terraform, CloudFormation, या अन्य IaC फ़ाइलों में गलत कॉन्फ़िगरेशन खोजने के लिए cycode_iac_scan को आमंत्रित करें।
  • कोड गुणवत्ता दोषों का पता लगाएँ — स्रोत फ़ाइलों में सुरक्षा कमज़ोरियों और कोड गुणवत्ता समस्याओं को उजागर करने के लिए cycode_sast_scan चलाएँ।
  • CLI सेटअप सत्यापित करें — Cycode CLI संस्करण, प्रमाणीकरण स्थिति, और कॉन्फ़िगरेशन विवरण जाँचने के लिए cycode_status को कॉल करें।

दस्तावेज़

Cycode CLI उपयोगकर्ता गाइड

MCP Toplist

Cycode कमांड लाइन इंटरफ़ेस (CLI) एक एप्लिकेशन है जिसे आप अपने रिपॉजिटरी में सीक्रेट, इंफ्रास्ट्रक्चर ऐज़ कोड गलत कॉन्फ़िगरेशन, सॉफ़्टवेयर कंपोज़िशन विश्लेषण कमजोरियों, और स्टैटिक एप्लिकेशन सुरक्षा परीक्षण समस्याओं को स्कैन करने के लिए स्थानीय रूप से इंस्टॉल कर सकते हैं।

यह गाइड आपको इंस्टॉलेशन और उपयोग दोनों के माध्यम से ले जाता है।

विषय-सूची

  1. पूर्वापेक्षाएँ
  2. इंस्टॉलेशन
    1. Cycode CLI इंस्टॉल करें
      1. Auth कमांड का उपयोग करना
      2. Configure कमांड का उपयोग करना
      3. पर्यावरण चर में जोड़ें
        1. Unix/Linux पर
        2. Windows पर
    2. Pre-Commit हुक इंस्टॉल करें
  3. Cycode CLI कमांड
  4. प्रमाणपत्र और प्रॉक्सी
  5. MCP कमांड
    1. MCP सर्वर शुरू करना
    2. उपलब्ध विकल्प
    3. MCP उपकरण
    4. उपयोग उदाहरण
    5. उन्नत कॉन्फ़िगरेशन
  6. Platform कमांड
    1. कमांड खोजना
    2. उदाहरण
    3. नोट्स और सीमाएँ
  7. AI गार्डरेल्स
    1. AI गार्डरेल्स द्वारा एकत्रित डेटा
  8. Scan कमांड
    1. स्कैन चलाना
      1. विकल्प
        1. गंभीरता सीमा
        2. मॉनिटर
        3. Cycode रिपोर्ट
        4. पैकेज कमजोरियाँ
        5. लाइसेंस अनुपालन
        6. लॉक पुनर्स्थापना
        7. त्रुटि पर रोकें
      2. रिपॉजिटरी स्कैन
        1. ब्रांच विकल्प
      3. पथ स्कैन
        1. Terraform प्लान स्कैन
      4. कमिट इतिहास स्कैन
        1. कमिट रेंज विकल्प (डिफ स्कैनिंग)
      5. Pre-Commit स्कैन
      6. Pre-Push स्कैन
    2. स्कैन परिणाम
      1. सीक्रेट दिखाएँ/छिपाएँ
      2. सॉफ्ट फेल
      3. स्कैन परिणाम उदाहरण
        1. सीक्रेट परिणाम उदाहरण
        2. IaC परिणाम उदाहरण
        3. SCA परिणाम उदाहरण
        4. SAST परिणाम उदाहरण
      4. कंपनी कस्टम सुधार दिशानिर्देश
    3. स्कैन परिणामों को अनदेखा करना
      1. सीक्रेट मान को अनदेखा करना
      2. सीक्रेट SHA मान को अनदेखा करना
      3. पथ को अनदेखा करना
      4. सीक्रेट, IaC, या SCA नियम को अनदेखा करना
      5. पैकेज को अनदेखा करना
      6. कॉन्फ़िग फ़ाइल के माध्यम से अनदेखा करना
  9. Report कमांड
    1. SBOM रिपोर्ट उत्पन्न करना
  10. Import कमांड
  11. स्कैन लॉग
  12. सिंटैक्स सहायता

पूर्वापेक्षाएँ

  • Cycode CLI एप्लिकेशन के लिए Python संस्करण 3.9 या बाद का आवश्यक है। MCP कमांड केवल Python 3.10 और उससे ऊपर के लिए उपलब्ध है। यदि आप पुराने Python संस्करण का उपयोग कर रहे हैं, तो यह कमांड उपलब्ध नहीं होगा।
  • CLI के साथ Cycode में प्रमाणित करने के लिए cycode auth कमांड का उपयोग करें
    • वैकल्पिक रूप से, आप सेवा खाता टोकन और व्यक्तिगत एक्सेस टोकन पृष्ठों में विस्तृत चरणों का पालन करके Cycode क्लाइंट ID और क्लाइंट सीक्रेट कुंजी प्राप्त कर सकते हैं, जिनमें इन मानों को प्राप्त करने के विवरण शामिल हैं।

इंस्टॉलेशन

निम्नलिखित इंस्टॉलेशन चरण Windows और UNIX/Linux ऑपरेटिंग सिस्टम दोनों पर लागू होते हैं।

[!NOTE] निम्नलिखित चरण Python-संबंधित कमांड के लिए python3 और pip3 का उपयोग मानते हैं; हालाँकि, कुछ सिस्टम आपके Python पर्यावरण के कॉन्फ़िगरेशन के आधार पर python और pip कमांड का उपयोग कर सकते हैं।

Cycode CLI इंस्टॉल करें

अपनी स्थानीय मशीन पर Cycode CLI एप्लिकेशन इंस्टॉल करने के लिए, निम्नलिखित चरणों का पालन करें:

  1. अपना कमांड लाइन या टर्मिनल एप्लिकेशन खोलें।

  2. निम्नलिखित कमांड में से एक निष्पादित करें:

    • PyPI से इंस्टॉल करने के लिए:

      pip3 install cycode
      
    • Homebrew से इंस्टॉल करने के लिए:

      brew install cycode
      
    • GitHub Releases से इंस्टॉल करने के लिए अपने ऑपरेटिंग सिस्टम और आर्किटेक्चर के लिए निष्पादन योग्य फ़ाइल पर नेविगेट करें और डाउनलोड करें, फिर निम्नलिखित कमांड चलाएँ:

    cd /path/to/downloaded/cycode-cli
    chmod +x cycode
    ./cycode
    
  3. अंत में CLI को प्रमाणित करें। Cycode क्लाइंट ID और क्रेडेंशियल (क्लाइंट सीक्रेट या OIDC ID टोकन) सेट करने के तीन तरीके हैं:

Auth कमांड का उपयोग करना

[!NOTE] यह Cycode CLI के साथ प्रमाणीकरण के लिए अपनी स्थानीय मशीन सेट करने का अनुशंसित तरीका है।

  1. अपने टर्मिनल/कमांड लाइन विंडो में निम्नलिखित कमांड टाइप करें:

    cycode auth

  2. एक ब्राउज़र विंडो दिखाई देगी, जो आपको Cycode में लॉग इन करने के लिए कहेगी (जैसा नीचे देखा गया है):

    Cycode login
  3. इस पृष्ठ पर अपने लॉगिन क्रेडेंशियल दर्ज करें और लॉग इन करें।

  4. आप अंततः नीचे दिए गए पृष्ठ पर पहुँच जाएँगे, जहाँ आपको उस व्यावसायिक समूह को चुनने के लिए कहा जाएगा जिसे आप Cycode के साथ अधिकृत करना चाहते हैं (यदि लागू हो):

    authorize CLI

    [!NOTE] यह Cycode CLI के साथ प्रमाणीकरण का डिफ़ॉल्ट तरीका होगा।

  5. चयनित व्यावसायिक समूह पर Cycode CLI को अधिकृत करने के लिए Allow बटन पर क्लिक करें।

    allow CLI
  6. पूरा होने पर, यदि यह सफलतापूर्वक चुना गया था तो आपको निम्नलिखित स्क्रीन दिखाई देगी:

    successfully auth
  7. टर्मिनल/कमांड लाइन स्क्रीन में, ब्राउज़र विंडो से बाहर निकलने पर आपको निम्नलिखित दिखाई देगा:

    Successfully logged into cycode

Configure कमांड का उपयोग करना

[!NOTE] यदि आपने पहले से ही Linux या Windows पर्यावरण चर के माध्यम से अपना Cycode क्लाइंट ID और क्लाइंट सीक्रेट सेट किया है, तो वे क्रेडेंशियल इस विधि पर प्राथमिकता लेंगे।

  1. अपने टर्मिनल/कमांड लाइन विंडो में निम्नलिखित कमांड टाइप करें:

    cycode configure
    
  2. अपना Cycode API URL मान दर्ज करें (डिफ़ॉल्ट मान का उपयोग करने के लिए आप इसे खाली छोड़ सकते हैं)।

    Cycode API URL [https://api.cycode.com]: https://api.onpremise.com

  3. अपना Cycode APP URL मान दर्ज करें (डिफ़ॉल्ट मान का उपयोग करने के लिए आप इसे खाली छोड़ सकते हैं)।

    Cycode APP URL [https://app.cycode.com]: https://app.onpremise.com

  4. अपना Cycode क्लाइंट ID मान दर्ज करें।

    Cycode Client ID []: 7fe5346b-xxxx-xxxx-xxxx-55157625c72d

  5. अपना Cycode क्लाइंट सीक्रेट मान दर्ज करें (यदि आप OIDC ID टोकन का उपयोग करने की योजना बना रहे हैं तो छोड़ें)।

    Cycode Client Secret []: c1e24929-xxxx-xxxx-xxxx-8b08c1839a2e

  6. अपना Cycode OIDC ID टोकन मान दर्ज करें (वैकल्पिक)।

    Cycode ID Token []: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...

  7. यदि मान सफलतापूर्वक दर्ज किए गए थे, तो आपको निम्नलिखित संदेश दिखाई देगा:

    Successfully configured CLI credentials!

    और/या

    Successfully configured Cycode URLs!

यदि आप अपने उपयोगकर्ता फ़ोल्डर के अंतर्गत .cycode फ़ोल्डर में जाते हैं, तो आप पाएंगे कि ये क्रेडेंशियल बनाए गए हैं और उस फ़ोल्डर में credentials.yaml फ़ाइल में रखे गए हैं। URL उस फ़ोल्डर में config.yaml फ़ाइल में रखे गए थे।

पर्यावरण चर में जोड़ें

Unix/Linux पर:

export CYCODE_CLIENT_ID={your Cycode ID}

और

export CYCODE_CLIENT_SECRET={your Cycode Secret Key}

यदि आपका संगठन OIDC प्रमाणीकरण का उपयोग करता है, तो आप इसके बजाय (या इसके अतिरिक्त) ID टोकन प्रदान कर सकते हैं:

export CYCODE_ID_TOKEN={your Cycode OIDC ID token}

Windows पर

  1. कंट्रोल पैनल से, सिस्टम मेनू पर नेविगेट करें:

    system menu
  2. इसके बाद, Advanced system settings पर क्लिक करें:

    advanced system setting
  3. खुलने वाली System Properties विंडो में, Environment Variables बटन पर क्लिक करें:

    environments variables button
  4. अपने ID और सीक्रेट कुंजी से मेल खाते मानों के साथ CYCODE_CLIENT_ID और CYCODE_CLIENT_SECRET चर बनाएं। यदि आप OIDC के माध्यम से प्रमाणित करते हैं, तो अपने OIDC ID टोकन मान के साथ CYCODE_ID_TOKEN भी जोड़ें:

    environment variables window
  5. इंस्टॉलेशन पूरा करने के लिए cycode.exe को पथ में डालें।

Pre-Commit हुक इंस्टॉल करें

Cycode के pre-commit और pre-push हुक आपके स्थानीय रिपॉजिटरी में सेट किए जा सकते हैं ताकि Cycode CLI एप्लिकेशन आपके कोड को कमिट या पुश करने से पहले स्वचालित रूप से आपके कोड के साथ किसी भी समस्या की पहचान कर सके।

[!NOTE] pre-commit और pre-push हुक IaC स्कैन के लिए उपलब्ध नहीं हैं।

Pre-commit हुक इंस्टॉल करने के लिए निम्नलिखित चरणों का पालन करें:

Pre-Commit हुक इंस्टॉल करना

  1. pre-commit फ्रेमवर्क इंस्टॉल करें (Python 3.9 या उच्चतर इंस्टॉल होना चाहिए):

    pip3 install pre-commit
    
  2. उस स्थानीय Git रिपॉजिटरी की शीर्ष निर्देशिका पर नेविगेट करें जिसे आप कॉन्फ़िगर करना चाहते हैं।

  3. रिपॉजिटरी की शीर्ष निर्देशिका में .pre-commit-config.yaml नामक एक नई YAML फ़ाइल बनाएं (शुरुआती . शामिल करें) जिसमें निम्नलिखित शामिल हों:

    repos:
      - repo: https://github.com/cycodehq/cycode-cli
        rev: v3.5.0
        hooks:
          - id: cycode
            stages: [pre-commit]
    
  4. अपनी विशिष्ट आवश्यकताओं के लिए बनाई गई फ़ाइल को संशोधित करें। सीक्रेट के लिए स्कैन सक्षम करने के लिए हुक ID cycode का उपयोग करें। SCA स्कैन सक्षम करने के लिए हुक ID cycode-sca का उपयोग करें। SAST स्कैन सक्षम करने के लिए हुक ID cycode-sast का उपयोग करें। यदि आप सभी स्कैनिंग प्रकार सक्षम करना चाहते हैं, तो इस कॉन्फ़िगरेशन का उपयोग करें:

    repos:
      - repo: https://github.com/cycodehq/cycode-cli
        rev: v3.5.0
        hooks:
          - id: cycode
            stages: [pre-commit]
          - id: cycode-sca
            stages: [pre-commit]
          - id: cycode-sast
            stages: [pre-commit]
    
  5. Cycode का हुक इंस्टॉल करें:

    pre-commit install
    

    एक सफल हुक इंस्टॉलेशन के परिणामस्वरूप संदेश मिलेगा: Pre-commit installed at .git/hooks/pre-commit।

  6. Pre-commit हुक को अद्यतित रखें:

    pre-commit autoupdate
    

    यह स्वचालित रूप से .pre-commit-config.yaml में rev को Cycode CLI के नवीनतम उपलब्ध संस्करण में बढ़ा देगा।

[!NOTE] ट्रिगर git commit कमांड पर होता है। हुक केवल उन फ़ाइलों पर ट्रिगर होता है जो कमिट के लिए स्टेज की गई हैं।

Pre-Push हुक इंस्टॉल करना

Pre-commit हुक के अतिरिक्त या उसके बजाय pre-push हुक इंस्टॉल करने के लिए:

  1. अपनी .pre-commit-config.yaml फ़ाइल में pre-push हुक जोड़ें:

    repos:
      - repo: https://github.com/cycodehq/cycode-cli
        rev: v3.5.0
        hooks:
          - id: cycode-pre-push
            stages: [pre-push]
    
  2. Pre-push हुक इंस्टॉल करें:

    pre-commit install --hook-type pre-push
    
  3. दोनों pre-commit और pre-push हुक के लिए, उपयोग करें:

    pre-commit install
    pre-commit install --hook-type pre-push
    

[!NOTE] Pre-push हुक git push कमांड पर ट्रिगर होते हैं और केवल उन कमिट्स को स्कैन करते हैं जिन्हें पुश किया जाने वाला है।

Cycode CLI कमांड

निम्नलिखित Cycode CLI एप्लिकेशन के साथ उपलब्ध विकल्प और कमांड हैं:

विकल्पविवरण
-v, --verboseविस्तृत लॉग दिखाएं।
--no-progress-meterप्रगति मीटर न दिखाएं।
--no-update-notifierअपडेट के लिए CLI की जाँच न करें।
-o, --output [rich|text|json|table]आउटपुट प्रकार निर्दिष्ट करें। डिफ़ॉल्ट rich है।
--client-id TEXTइस विशिष्ट स्कैन निष्पादन के लिए Cycode क्लाइंट ID निर्दिष्ट करें।
--client-secret TEXTइस विशिष्ट स्कैन निष्पादन के लिए Cycode क्लाइंट सीक्रेट निर्दिष्ट करें।
--id-token TEXTइस विशिष्ट स्कैन निष्पादन के लिए Cycode OIDC ID टोकन निर्दिष्ट करें।
--install-completionवर्तमान शेल के लिए पूर्णता इंस्टॉल करें।
--show-completion [bash|zsh|fish|powershell|pwsh]निर्दिष्ट शेल के लिए पूर्णता दिखाएं, इसे कॉपी करने या इंस्टॉलेशन को अनुकूलित करने के लिए।
-h, --helpदिए गए कमांड के लिए विकल्प दिखाएं।
CommandDescription
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
authअपनी मशीन को प्रमाणित करें ताकि CLI को आपके Cycode खाते से जोड़ा जा सके।
configureअपने CLI क्लाइंट प्रमाणीकरण को कॉन्फ़िगर करने के लिए प्रारंभिक कमांड।
ignoreकिसी विशिष्ट मान, पथ या नियम ID को अनदेखा करें।
mcpCycode स्कैनिंग क्षमताओं के साथ AI एकीकरण सक्षम करने के लिए Model Context Protocol (MCP) सर्वर प्रारंभ करें।
scanSecrets/IaC/SCA/SAST उल्लंघनों के लिए सामग्री स्कैन करें। आपको यह निर्दिष्ट करना होगा कि किस प्रकार का स्कैन करना है: commit-history/path/repository/etc.
reportरिपोर्ट उत्पन्न करें। आपको यह निर्दिष्ट करना होगा कि SBOM के रूप में किस प्रकार की रिपोर्ट करनी है।
statusCLI स्थिति दिखाएं और बाहर निकलें।

प्रमाणपत्र और प्रॉक्सी

डिफ़ॉल्ट रूप से, Cycode CLI CLI के साथ भेजे गए CA बंडल के विरुद्ध HTTPS कनेक्शन सत्यापित करता है।

यदि आपका संगठन एक प्रॉक्सी का उपयोग करता है जो HTTPS ट्रैफ़िक का निरीक्षण करता है, या अपने स्वयं के CA के साथ एक ऑन-प्रिमाइसेस इंस्टॉलेशन है, तो आपके पास दो विकल्प हैं।

विकल्प 1 — मशीन पर पहले से इंस्टॉल किए गए प्रमाणपत्रों का उपयोग करें। यदि आपका CA मशीन प्रमाणपत्र स्टोर में है (जैसा कि आमतौर पर प्रबंधित डिवाइस पर होता है), तो ऑप्ट-इन करें:

export CYCODE_CLI_ENABLE_TRUSTSTORE=1

CLI तब Windows प्रमाणपत्र स्टोर, macOS Keychain, या Linux पर सिस्टम CA निर्देशिका के विरुद्ध सत्यापित करता है, और किसी प्रमाणपत्र पथ को कॉन्फ़िगर करने की आवश्यकता नहीं होती है।

[!IMPORTANT] यह जानबूझकर ऑप्ट-इन है। मशीन स्टोर पर भरोसा करने का अर्थ है उस मशीन पर मौजूद हर रूट प्रमाणपत्र पर भरोसा करना, जिसमें कोई भी व्यवस्थापक या दुर्भावनापूर्ण सॉफ़्टवेयर द्वारा इंस्टॉल किया गया कोई भी शामिल है। इसे तब सक्षम करें जब आप जानते हैं कि आपकी मशीन का प्रमाणपत्र स्टोर वह है जिस पर आप भरोसा करते हैं।

विकल्प 2 — CLI को CA बंडल फ़ाइल की ओर इंगित करें। ऑप्ट-इन किए बिना काम करता है:

Environment VariableDescription
REQUESTS_CA_BUNDLEभरोसा करने के लिए CA बंडल फ़ाइल का पथ (.pem या .crt)।
CURL_CA_BUNDLEREQUESTS_CA_BUNDLE के लिए उपनाम, जब बाद वाला अनसेट हो तो सम्मानित किया जाता है।

दोनों विकल्प संयुक्त होते हैं: CYCODE_CLI_ENABLE_TRUSTSTORE=1 के साथ, REQUESTS_CA_BUNDLE से प्रमाणपत्र मशीन स्टोर के अतिरिक्त भरोसे जाते हैं, न कि इसके बजाय।

[!TIP] किसी भी कमांड को -v के साथ चलाएं ताकि देखा जा सके कि कौन सा ट्रस्ट स्रोत उपयोग में है, उदाहरण के लिए cycode -v status।

नोट्स:

  • CYCODE_CLI_ENABLE_TRUSTSTORE के लिए Python 3.10 या नया आवश्यक है। Python 3.9 पर CLI एक चेतावनी लॉग करता है और बंडल किए गए CA बंडल पर वापस आ जाता है; इसके बजाय REQUESTS_CA_BUNDLE का उपयोग करें, या Python को अपग्रेड करें। स्टैंडअलोन निष्पादन योग्य और Docker छवि पहले से ही एक समर्थित Python शिप करते हैं।
  • Windows पर, CLI हमेशा सिस्टम प्रमाणपत्र स्टोर पर वापस आ गया है जब न तो REQUESTS_CA_BUNDLE और न ही CURL_CA_BUNDLE सेट होता है। वह व्यवहार अपरिवर्तित है।
  • प्रॉक्सी स्वयं मानक HTTP_PROXY, HTTPS_PROXY, और NO_PROXY पर्यावरण चर के साथ कॉन्फ़िगर किए जाते हैं।

MCP कमांड [EXPERIMENT]

[!WARNING] MCP कमांड केवल Python 3.10 और उससे ऊपर के लिए उपलब्ध है। यदि आप पुराने Python संस्करण का उपयोग कर रहे हैं, तो यह कमांड उपलब्ध नहीं होगा।

Model Context Protocol (MCP) कमांड आपको एक MCP सर्वर शुरू करने की अनुमति देता है जो Cycode की स्कैनिंग क्षमताओं को AI सिस्टम और अनुप्रयोगों के लिए उजागर करता है। यह AI मॉडल को एक मानकीकृत प्रोटोकॉल के माध्यम से Cycode CLI टूल के साथ बातचीत करने में सक्षम बनाता है।

[!TIP] सर्वोत्तम अनुभव के लिए, pip install cycode या brew install cycode का उपयोग करके Cycode CLI को अपने सिस्टम पर वैश्विक रूप से इंस्टॉल करें, फिर cycode auth के साथ एक बार प्रमाणित करें। वैश्विक इंस्टॉलेशन और प्रमाणीकरण के बाद, आपको अपनी MCP कॉन्फ़िगरेशन फ़ाइलों में CYCODE_CLIENT_ID और CYCODE_CLIENT_SECRET पर्यावरण चर कॉन्फ़िगर करने की आवश्यकता नहीं होगी।

Add MCP Server to Cursor using UV

MCP सर्वर शुरू करना

MCP सर्वर शुरू करने के लिए, निम्न कमांड का उपयोग करें:

cycode mcp

डिफ़ॉल्ट रूप से, यह stdio ट्रांसपोर्ट का उपयोग करके सर्वर शुरू करता है, जो स्थानीय एकीकरण और AI अनुप्रयोगों के लिए उपयुक्त है जो सबप्रोसेस स्पॉन कर सकते हैं।

उपलब्ध विकल्प

OptionDescription
-t, --transportMCP सर्वर के लिए ट्रांसपोर्ट प्रकार: stdio, sse, या streamable-http (डिफ़ॉल्ट: stdio)
-H, --hostसर्वर को बाइंड करने के लिए होस्ट पता (केवल गैर stdio ट्रांसपोर्ट के लिए उपयोग किया जाता है) (डिफ़ॉल्ट: 127.0.0.1)
-p, --portसर्वर को बाइंड करने के लिए पोर्ट नंबर (केवल गैर stdio ट्रांसपोर्ट के लिए उपयोग किया जाता है) (डिफ़ॉल्ट: 8000)
--helpसहायता संदेश और उपलब्ध विकल्प दिखाएं

MCP टूल

MCP सर्वर निम्नलिखित टूल प्रदान करता है जिनका उपयोग AI सिस्टम कर सकते हैं:

Tool NameDescription
cycode_secret_scanहार्डकोडेड रहस्यों के लिए स्कैन करें
cycode_sca_scanSoftware Composition Analysis (SCA) के लिए स्कैन करें - कमजोरियाँ और लाइसेंस मुद्दे
cycode_iac_scanInfrastructure as Code (IaC) गलत कॉन्फ़िगरेशन के लिए स्कैन करें
cycode_sast_scanStatic Application Security Testing (SAST) के लिए स्कैन करें - कोड गुणवत्ता और सुरक्षा दोष
cycode_statusCycode CLI संस्करण, प्रमाणीकरण स्थिति, और कॉन्फ़िगरेशन जानकारी प्राप्त करें

प्रत्येक स्कैन टूल दो परस्पर अनन्य इनपुट मोड स्वीकार करता है:

  • paths (पसंदीदा) — एक या अधिक फ़ाइल या निर्देशिका पथ जो डिस्क पर मौजूद हैं। निर्देशिकाओं को पुनरावर्ती रूप से स्कैन किया जाता है। Cycode इंजन फ़ाइल खोज और फ़िल्टरिंग को संभालता है, ठीक वैसे ही जैसे cycode scan -t <type> path ./src CLI से करता है।
  • files (फ़ॉलबैक) — फ़ाइल पथों को उनकी पूर्ण सामग्री के स्ट्रिंग के रूप में मैप करने वाला एक शब्दकोश। इसका उपयोग केवल तब करें जब फ़ाइलें डिस्क पर उपलब्ध न हों (जैसे मेमोरी में संपादन जो अभी तक सहेजे नहीं गए हैं)।

[!TIP] जब भी संभव हो paths का उपयोग करें। बड़ी फ़ाइलों (जैसे package-lock.json) को इनलाइन सामग्री के रूप में पास करना टोकन सीमा से अधिक हो सकता है और AI क्लाइंट को धीमा कर सकता है। paths के साथ, Cycode इंजन फ़ाइलों को सीधे डिस्क से पढ़ता है।

सभी स्कैन टूल एक JSON ऑब्जेक्ट लौटाते हैं जिसमें पूर्ण "detections" सरणी के अतिरिक्त मानव-पठनीय उल्लंघन गणना (जैसे "Cycode found 3 violations: 1 CRITICAL, 2 HIGH.") के साथ एक "summary" फ़ील्ड शामिल होता है।

उपयोग उदाहरण

बुनियादी कमांड उदाहरण

डिफ़ॉल्ट सेटिंग्स (stdio ट्रांसपोर्ट) के साथ MCP सर्वर शुरू करें:

cycode mcp

स्पष्ट stdio ट्रांसपोर्ट के साथ MCP सर्वर शुरू करें:

cycode mcp -t stdio

Server-Sent Events (SSE) ट्रांसपोर्ट के साथ MCP सर्वर शुरू करें:

cycode mcp -t sse -p 8080

कस्टम होस्ट और पोर्ट पर स्ट्रीमेबल HTTP ट्रांसपोर्ट के साथ MCP सर्वर शुरू करें:

cycode mcp -t streamable-http -H 0.0.0.0 -p 9000

MCP प्रोटोकॉल विनिर्देश – ट्रांसपोर्ट में MCP ट्रांसपोर्ट प्रकारों के बारे में अधिक जानें।

कॉन्फ़िगरेशन उदाहरण

Cursor/VS Code/Claude Desktop/etc के साथ MCP का उपयोग करना (mcp.json)

[!NOTE] EU Cycode वातावरण के लिए, पर्यावरण चर में उपयुक्त CYCODE_API_URL और CYCODE_APP_URL मान सेट करना सुनिश्चित करें (जैसे, https://api.eu.cycode.com और https://app.eu.cycode.com)।

अपने VS Code/GitHub Copilot में MCP सर्वर कॉन्फ़िगर करने के लिए इस गाइड का पालन करें। ध्यान रखें कि settings.json में, एक स्टैंडअलोन mcpServers ऑब्जेक्ट के बजाय एक नेस्टेड servers उप-ऑब्जेक्ट वाला एक mcp ऑब्जेक्ट है।

stdio ट्रांसपोर्ट (प्रत्यक्ष निष्पादन) के लिए:

{
  "mcpServers": {
    "cycode": {
      "command": "cycode",
      "args": ["mcp"],
      "env": {
        "CYCODE_CLIENT_ID": "your-cycode-id",
        "CYCODE_CLIENT_SECRET": "your-cycode-secret-key",
        "CYCODE_API_URL": "https://api.cycode.com",
        "CYCODE_APP_URL": "https://app.cycode.com"
      }
    }
  }
}

pipx इंस्टॉलेशन के साथ stdio ट्रांसपोर्ट के लिए:

{
  "mcpServers": {
    "cycode": {
      "command": "pipx",
      "args": ["run", "cycode", "mcp"],
      "env": {
        "CYCODE_CLIENT_ID": "your-cycode-id",
        "CYCODE_CLIENT_SECRET": "your-cycode-secret-key",
        "CYCODE_API_URL": "https://api.cycode.com",
        "CYCODE_APP_URL": "https://app.cycode.com"
      }
    }
  }
}

uvx इंस्टॉलेशन के साथ stdio ट्रांसपोर्ट के लिए:

{
  "mcpServers": {
    "cycode": {
      "command": "uvx",
      "args": ["cycode", "mcp"],
      "env": {
        "CYCODE_CLIENT_ID": "your-cycode-id",
        "CYCODE_CLIENT_SECRET": "your-cycode-secret-key",
        "CYCODE_API_URL": "https://api.cycode.com",
        "CYCODE_APP_URL": "https://app.cycode.com"
      }
    }
  }
}

SSE ट्रांसपोर्ट (Server-Sent Events) के लिए:

{
  "mcpServers": {
    "cycode": {
      "url": "http://127.0.0.1:8000/sse"
    }
  }
}

कस्टम पोर्ट पर SSE ट्रांसपोर्ट के लिए:

{
  "mcpServers": {
    "cycode": {
      "url": "http://127.0.0.1:8080/sse"
    }
  }
}

स्ट्रीमेबल HTTP ट्रांसपोर्ट के लिए:

{
  "mcpServers": {
    "cycode": {
      "url": "http://127.0.0.1:8000/mcp"
    }
  }
}
पृष्ठभूमि में MCP सर्वर चलाना

SSE ट्रांसपोर्ट के लिए (पहले सर्वर शुरू करें, फिर क्लाइंट कॉन्फ़िगर करें):

# Start the MCP server in the background
cycode mcp -t sse -p 8000 &

# Configure in mcp.json
{
  "mcpServers": {
    "cycode": {
      "url": "http://127.0.0.1:8000/sse"
    }
  }
}

स्ट्रीमेबल HTTP ट्रांसपोर्ट के लिए:

# Start the MCP server in the background
cycode mcp -t streamable-http -H 127.0.0.2 -p 9000 &

# Configure in mcp.json
{
  "mcpServers": {
    "cycode": {
      "url": "http://127.0.0.2:9000/mcp"
    }
  }
}

उन्नत कॉन्फ़िगरेशन

टाइमआउट और कस्टम प्रमाणपत्र (प्रॉक्सी वातावरण)

यदि लंबे समय तक चलने वाले स्कैन आपके MCP क्लाइंट द्वारा काट दिए जा रहे हैं, तो टूल कॉल टाइमआउट बढ़ाएँ।

Environment VariableDescription
MCP_TOOL_TIMEOUTटाइमआउट (सेकंड में) जो MCP क्लाइंट जैसे Claude और GitHub Copilot एक टूल कॉल पूरा होने की प्रतीक्षा करते हैं। यदि लंबे समय तक चलने वाले स्कैन समाप्त होने से पहले काट दिए जा रहे हैं तो इसे बढ़ाएँ।

कॉर्पोरेट प्रॉक्सी के पीछे, MCP सर्वर के env ब्लॉक में प्रमाणपत्र चर सेट करें। विकल्पों के लिए प्रमाणपत्र और प्रॉक्सी देखें: या तो मशीन पर पहले से मौजूद प्रमाणपत्रों का उपयोग करने के लिए CYCODE_CLI_ENABLE_TRUSTSTORE=1, या CA बंडल फ़ाइल की ओर इंगित करने वाला REQUESTS_CA_BUNDLE।

कस्टम CA बंडल और लंबे टाइमआउट के साथ उदाहरण mcp.json कॉन्फ़िगरेशन:

{
  "mcpServers": {
    "cycode": {
      "command": "cycode",
      "args": ["mcp"],
      "env": {
        "REQUESTS_CA_BUNDLE": "/path/to/your/corporate-ca-bundle.pem",
        "MCP_TOOL_TIMEOUT": "1800"
      }
    }
  }
}

[!NOTE] MCP सर्वर को कार्य करने के लिए उचित Cycode CLI प्रमाणीकरण की आवश्यकता होती है। सुनिश्चित करें कि आपने MCP सर्वर शुरू करने से पहले cycode auth का उपयोग करके प्रमाणित किया है या अपने क्रेडेंशियल कॉन्फ़िगर किए हैं।

सबएजेंट के लिए टूल पूर्व-प्राधिकृत करना (Claude Code)

जब Claude Code काम को पृष्ठभूमि सबएजेंटों को सौंपता है (जैसे स्कैन को समानांतर में चलाने के लिए), वे सबएजेंट इंटरैक्टिव अनुमति संकेत प्रदर्शित नहीं कर सकते। यदि Cycode टूल पूर्व-अनुमोदित नहीं हैं, तो सबएजेंट संदर्भों में स्कैन चुपचाप विफल हो जाएंगे।

Cycode MCP टूल को पूर्व-प्राधिकृत करने के लिए ताकि वे सबएजेंट सहित सभी संदर्भों में काम करें, उन्हें अपनी Claude Code सेटिंग्स (~/.claude/settings.json) में allowedTools सूची में जोड़ें:

{
  "allowedTools": [
    "mcp__cycode__cycode_secret_scan",
    "mcp__cycode__cycode_sca_scan",
    "mcp__cycode__cycode_iac_scan",
    "mcp__cycode__cycode_sast_scan",
    "mcp__cycode__cycode_status"
  ]
}

एक बार जोड़ने के बाद, जब इन टूल को कॉल किया जाएगा तो Claude Code अनुमति के लिए संकेत नहीं देगा, और वे सबएजेंट के अंदर सही ढंग से काम करेंगे।

MCP समस्या निवारण

यदि आपको MCP सर्वर के साथ समस्याएँ आती हैं, तो आप क्या हो रहा है इसके बारे में अधिक विस्तृत जानकारी प्राप्त करने के लिए डीबग लॉगिंग सक्षम कर सकते हैं। डीबग लॉगिंग सक्षम करने के दो तरीके हैं:

  1. -v या --verbose फ़्लैग का उपयोग करना:
cycode -v mcp
  1. CYCODE_CLI_VERBOSE पर्यावरण चर का उपयोग करना:
CYCODE_CLI_VERBOSE=1 cycode mcp

डीबग लॉग विस्तृत जानकारी दिखाएंगे:

  • सर्वर स्टार्टअप और कॉन्फ़िगरेशन
  • कनेक्शन प्रयास और स्थिति
  • टूल निष्पादन और परिणाम
  • कोई भी त्रुटि या चेतावनी जो होती है

यह जानकारी सहायक हो सकती है जब:

  • कनेक्शन समस्याओं का निदान करना
  • यह समझना कि कुछ टूल काम क्यों नहीं कर रहे हैं
  • प्रमाणीकरण समस्याओं की पहचान करना
  • ट्रांसपोर्ट-विशिष्ट मुद्दों को डीबग करना

MCP कॉन्फ़िगरेशन

प्लेटफ़ॉर्म कमांड [BETA]

[!WARNING] platform कमांड बीटा में है। कमांड, तर्क, और आउटपुट प्रारूप Cycode API विनिर्देश से गतिशील रूप से उत्पन्न होते हैं और बिना सूचना के रिलीज़ के बीच बदल सकते हैं। अभी तक उत्पादन स्वचालन में उन पर भरोसा न करें।

cycode platform कमांड Cycode प्लेटफ़ॉर्म की रीड API को CLI कमांड के रूप में उजागर करता है। यह एंडपॉइंट्स को संसाधन द्वारा समूहित करता है (जैसे projects, violations, workflows) और प्रत्येक एंडपॉइंट के पैरामीटर को टाइप किए गए CLI तर्कों और --option फ्लैग में बदल देता है।

cycode platform projects list --page-size 50
cycode platform violations count
cycode platform workflows view <workflow-id>

OpenAPI स्पेक पहली बार उपयोग पर Cycode API से प्राप्त किया जाता है और ~/.cycode/openapi-spec.json पर 24 घंटे के लिए कैश किया जाता है। असंबंधित कमांड (cycode scan, cycode status, आदि) फ़ेच को ट्रिगर नहीं करते हैं।

[!NOTE] cycode platform को कमांड खोजने और चलाने के लिए आपको प्रमाणित होना चाहिए (cycode auth या CYCODE_CLIENT_ID / CYCODE_CLIENT_SECRET पर्यावरण चर)। अन्य Cycode CLI कमांड प्रमाणीकरण के बिना काम करते हैं।

कमांड खोजना

क्योंकि कमांड स्पेक से उत्पन्न होते हैं, उपलब्ध चीज़ों के लिए सत्य का स्रोत --help है:

cycode platform --help                  # list all resource groups
cycode platform projects --help         # list actions on a resource
cycode platform projects list --help    # list options/arguments for an action

प्लेटफ़ॉर्म उदाहरण

# List projects with pagination
cycode platform projects list --page-size 25

# View a single project by ID
cycode platform projects view <project-id>

# Count violations across the tenant
cycode platform violations count

# Filter using query parameters (see `--help` for what each endpoint supports)
cycode platform violations list --severity CRITICAL

सभी आउटपुट डिफ़ॉल्ट रूप से JSON होता है — इसे jq के माध्यम से एड-हॉक फ़िल्टरिंग के लिए पाइप करें:

cycode platform projects list --page-size 100 | jq '.items[].name'

प्लेटफ़ॉर्म नोट्स और सीमाएँ

  • आज केवल पढ़ने योग्य। इस बीटा में केवल GET एंडपॉइंट्स उजागर किए गए हैं।
  • स्पेक-संचालित। API में नया एंडपॉइंट जोड़ने से यह अगली बार कैश रीफ़्रेश होने पर स्वचालित रूप से सतह पर आ जाता है।
  • कोई बंडल स्पेक नहीं। इंस्टॉल के बाद पहला cycode platform आह्वान (या 24 घंटे के कैश समाप्त होने के बाद) नेटवर्क फ़ेच करता है। धीमे कनेक्शन पर यह पहला कॉल कुछ सेकंड ले सकता है; कैश समाप्त होने तक बाद के कॉल लगभग तुरंत होते हैं।
  • कैश TTL को ओवरराइड करें CYCODE_SPEC_CACHE_TTL=<seconds> के साथ।

AI गार्डरेल [बीटा]

AI गार्डरेल समर्थित AI कोडिंग एजेंटों (Claude Code, Cursor, Copilot, Codex) में हुक स्थापित करता है ताकि प्रॉम्प्ट, एजेंट द्वारा पढ़ी गई फ़ाइलें, और MCP टूल तर्क मॉडल तक पहुँचने से पहले रहस्यों के लिए स्कैन किए जाएँ।

AI गार्डरेल द्वारा एकत्रित डेटा

स्कैनिंग सर्वर-साइड होती है, इसलिए स्कैन की गई सामग्री मशीन छोड़ देती है: प्रॉम्प्ट टेक्स्ट, एजेंट द्वारा पढ़ी गई फ़ाइलों की सामग्री, और MCP टूल तर्क रहस्यों की जाँच के लिए आपके Cycode टेनेंट को भेजे जाते हैं।

प्रत्येक घटना की रिपोर्ट डेवलपर और मशीन के संदर्भ में भी की जाती है, ताकि एक निष्कर्ष को उस डिवाइस और उपयोगकर्ता के लिए जिम्मेदार ठहराया जा सके जिससे वह आया है। इसमें से कुछ व्यक्तिगत डेटा है:

  • डिवाइस पहचानकर्ता — मशीन का होस्टनाम और हार्डवेयर सीरियल नंबर।
  • उपयोगकर्ता पहचानकर्ता — AI कोडिंग एजेंट में साइन इन किए गए उपयोगकर्ता का ईमेल पता, और स्थानीय ऑपरेटिंग-सिस्टम उपयोगकर्ता नाम।
  • पर्यावरण विवरण — ऑपरेटिंग सिस्टम और संस्करण, AI एजेंट, उसका संस्करण और उपयोग में मॉडल, एजेंट की MCP कॉन्फ़िगरेशन फ़ाइलों की सामग्री, और उसके सक्षम प्लगइन्स।

हार्डवेयर सीरियल नंबर एक स्थानीय अस्थायी फ़ाइल में कैश किया जाता है, जो केवल उस उपयोगकर्ता द्वारा पढ़ने योग्य होता है जिसने कमांड चलाया था, ताकि बार-बार हुक आह्वान हार्डवेयर को फिर से क्वेरी न करें।

यदि आपके वातावरण में इस डेटा का संग्रह स्वीकार्य नहीं है, तो गार्डरेल हुक स्थापित न करें (cycode ai-guardrails uninstall पहले से स्थापित हुक को हटा देता है)।

स्कैन कमांड

स्कैन चलाना

Cycode CLI एप्लिकेशन कई प्रकार के स्कैन प्रदान करता है ताकि आप अपने मामले के लिए सबसे उपयुक्त विकल्प चुन सकें। निम्नलिखित वर्तमान विकल्प और उपलब्ध कमांड हैं:

विकल्पविवरण
-t, --scan-type [secret|iac|sca|sast]वह स्कैन निर्दिष्ट करें जिसे आप निष्पादित करना चाहते हैं (secret/iac/sca/sast), डिफ़ॉल्ट secret है।
--show-secret BOOLEANरहस्यों को सादे पाठ में दिखाएँ। अधिक विवरण के लिए रहस्य दिखाएँ/छिपाएँ अनुभाग देखें।
--soft-fail BOOLEANबिना विफल हुए स्कैन चलाएँ, हमेशा एक गैर-त्रुटि स्थिति कोड लौटाएँ। अधिक विवरण के लिए सॉफ्ट फेल अनुभाग देखें।
--severity-threshold [INFO|LOW|MEDIUM|HIGH|CRITICAL]केवल निर्दिष्ट स्तर या उससे अधिक पर उल्लंघन दिखाएँ।
--sca-scanवह SCA स्कैन निर्दिष्ट करें जिसे आप निष्पादित करना चाहते हैं (package-vulnerabilities/license-compliance/unmaintained-packages)। डिफ़ॉल्ट सभी है।
--monitorजब निर्दिष्ट किया जाता है, तो स्कैन परिणाम Cycode में दर्ज किए जाएँगे।
--cycode-reportकंसोल आउटपुट में Cycode प्लेटफ़ॉर्म में स्कैन रिपोर्ट का लिंक प्रदर्शित करें।
--no-restoreजब निर्दिष्ट किया जाता है, तो Cycode पुनर्स्थापना कमांड नहीं चलाएगा। यह केवल प्रत्यक्ष निर्भरताओं को स्कैन करेगा!
--stop-on-errorयदि कोई फ़ाइल संग्रह या निर्भरता पुनर्स्थापना विफलता होती है तो स्कैन को रद्द करें, विफल फ़ाइल को छोड़कर जारी रखने के बजाय।
--gradle-all-sub-projectsसभी उप-प्रोजेक्ट्स के लिए gradle पुनर्स्थापना कमांड चलाएँ। इसे यहाँ से चलाया जाना चाहिए
--maven-settings-fileकेवल Maven के लिए, निर्भरताओं को स्कैन करते समय एक कस्टम settings.xml फ़ाइल का उपयोग करने की अनुमति देता है
--helpदिए गए कमांड के लिए विकल्प दिखाएँ।
कमांडविवरण
commit-historyकमिट इतिहास स्कैन करें या विशिष्ट कमिट के बीच डिफ स्कैनिंग करें
pathकमांड में दिए गए पथ में फ़ाइलों को स्कैन करें
pre-commitउस सामग्री को स्कैन करने के लिए इस कमांड का उपयोग करें जो अभी तक कमिट नहीं की गई है
repositoryइसके इतिहास सहित git रिपॉजिटरी को स्कैन करें

विकल्प

गंभीरता विकल्प

स्कैन के परिणामों को एक विशिष्ट गंभीरता सीमा तक सीमित करने के लिए, तर्क --severity-threshold को स्कैन कमांड में जोड़ा जा सकता है।

उदाहरण के लिए, निम्नलिखित कमांड मध्यम या उच्चतर गंभीरता वाले नीति उल्लंघनों के लिए रिपॉजिटरी को स्कैन करेगा:

cycode scan --severity-threshold MEDIUM repository ~/home/git/codebase

मॉनिटर विकल्प

[!NOTE] यह विकल्प केवल SCA स्कैन के लिए उपलब्ध है।

SCA प्रकार के स्कैन में पाए गए SCA नीतियों से जुड़े स्कैन परिणामों को Cycode में धकेलने के लिए, तर्क --monitor को स्कैन कमांड में जोड़ें।

उदाहरण के लिए, निम्नलिखित कमांड SCA नीति उल्लंघनों के लिए रिपॉजिटरी को स्कैन करेगा और उन्हें Cycode प्लेटफ़ॉर्म पर धकेल देगा:

cycode scan -t sca --monitor repository ~/home/git/codebase

Cycode रिपोर्ट विकल्प

Cycode CLI का उपयोग करके किए गए प्रत्येक स्कैन के लिए, एक रिपोर्ट स्वचालित रूप से उत्पन्न होती है और इसके परिणाम Cycode को भेजे जाते हैं। ये परिणाम Cycode प्लेटफ़ॉर्म के भीतर प्रासंगिक नीतियों (जैसे, रिपॉजिटरी स्कैन के लिए SCA नीतियां) से जुड़े होते हैं।

स्कैन पूरा होने के बाद अपने CLI आउटपुट में इस Cycode रिपोर्ट का सीधा URL प्रिंट करने के लिए, अपने स्कैन कमांड में तर्क --cycode-report जोड़ें।

cycode scan --cycode-report repository ~/home/git/codebase

CLI के सभी स्कैन परिणाम Cycode के CLI लॉग अनुभाग में दिखाई देंगे। यदि आपने अपने कमांड में --cycode-report फ्लैग शामिल किया है, तो स्कैन परिणामों के बाद आपके टर्मिनल में विशिष्ट रिपोर्ट का सीधा लिंक प्रदर्शित किया जाएगा।

[!WARNING] इस पृष्ठ को देखने के लिए आपके पास Cycode में owner या admin भूमिका होनी चाहिए।

cli-report

रिपोर्ट पृष्ठ कुछ इस तरह दिखेगा:

पैकेज भेद्यता विकल्प

[!NOTE] यह विकल्प केवल SCA स्कैन के लिए उपलब्ध है।

अपने स्थानीय रिपॉजिटरी की एक विशिष्ट पैकेज भेद्यता को स्कैन करने के लिए, -t sca या --scan-type sca विकल्प के बाद तर्क --sca-scan package-vulnerabilities जोड़ें।

पिछले उदाहरण में, यदि आप केवल पैकेज भेद्यताओं पर SCA स्कैन चलाना चाहते थे, तो आप निम्नलिखित निष्पादित कर सकते थे:

cycode scan -t sca --sca-scan package-vulnerabilities repository ~/home/git/codebase

लाइसेंस अनुपालन विकल्प

[!NOTE] यह विकल्प केवल SCA स्कैन के लिए उपलब्ध है।

अपने स्थानीय रिपॉजिटरी की एक विशिष्ट शाखा को स्कैन करने के लिए, तर्क --sca-scan license-compliance के बाद उस शाखा का नाम जोड़ें जिसे आप स्कैन करना चाहते हैं।

पिछले उदाहरण में, यदि आप केवल dev नामक शाखा को स्कैन करना चाहते थे, तो आप निम्नलिखित निष्पादित कर सकते थे:

cycode scan -t sca --sca-scan license-compliance repository ~/home/git/codebase -b dev

अनुरक्षित नहीं पैकेज विकल्प

[!NOTE] यह विकल्प केवल SCA स्कैन के लिए उपलब्ध है।

केवल अनुरक्षित नहीं पैकेजों (पैकेज जिनका OpenSSF स्कोरकार्ड Maintained चेक कम है, जिसका अर्थ है हालिया कमिट और मुद्दा गतिविधि बहुत कम या नहीं) को स्कैन करने के लिए, -t sca या --scan-type sca विकल्प के बाद तर्क --sca-scan unmaintained-packages जोड़ें।

[!NOTE] अनुरक्षित नहीं पैकेजों की रिपोर्ट की जाती है या नहीं, यह आपके संगठन की नीति द्वारा नियंत्रित होता है। यह विकल्प स्कैन की रिपोर्ट को संकीर्ण करता है; यह उस नीति को सक्षम नहीं कर सकता जो आपके टेनेंट के लिए बंद है।

पिछले उदाहरण में, यदि आप केवल अनुरक्षित नहीं पैकेजों पर SCA स्कैन चलाना चाहते थे, तो आप निम्नलिखित निष्पादित कर सकते थे:

cycode scan -t sca --sca-scan unmaintained-packages repository ~/home/git/codebase

लॉक पुनर्स्थापना विकल्प

[!NOTE] यह विकल्प केवल SCA स्कैन के लिए उपलब्ध है।

SCA स्कैन चलाते समय, Cycode CLI स्वचालित रूप से प्रत्येक समर्थित मैनिफेस्ट फ़ाइल के लिए एक निर्भरता लॉकफ़ाइल को पुनर्स्थापित (उत्पन्न) करने का प्रयास करता है। यह ट्रांज़िटिव निर्भरताओं को स्कैन करने की अनुमति देता है, न कि केवल उन्हें जो सीधे मैनिफेस्ट में सूचीबद्ध हैं। इस चरण को छोड़ने और केवल प्रत्यक्ष निर्भरताओं को स्कैन करने के लिए, --no-restore फ्लैग का उपयोग करें।

निम्नलिखित इकोसिस्टम स्वचालित लॉकफ़ाइल पुनर्स्थापना का समर्थन करते हैं:

इकोसिस्टममैनिफेस्ट फ़ाइलउत्पन्न लॉकफ़ाइलआह्वान किया गया उपकरण (जब लॉकफ़ाइल अनुपस्थित हो)
npmpackage.jsonpackage-lock.jsonnpm install --package-lock-only --ignore-scripts --no-audit
Yarnpackage.jsonyarn.lockyarn install --ignore-scripts
pnpmpackage.jsonpnpm-lock.yamlpnpm install --ignore-scripts
Denodeno.json / deno.jsoncdeno.lock(केवल मौजूदा लॉकफ़ाइल पढ़ें)
Gogo.modgo.mod.graphgo list -m -json all + go mod graph
Mavenpom.xmlbcde.mvndepsmvn dependency:tree
Gradlebuild.gradle / build.gradle.ktsgradle-dependencies-generated.txtgradle dependencies -q --console plain
SBTbuild.sbtbuild.sbt.locksbt dependencyLockWrite
NuGet*.csprojpackages.lock.jsondotnet restore --use-lock-file
RubyGemfileGemfile.lockbundle --quiet
Poetrypyproject.tomlpoetry.lockpoetry lock
pippyproject.toml / requirements.txtpylock.tomlpip lock . / pip lock -r requirements.txt -o pylock.toml
PipenvPipfilePipfile.lockpipenv lock
PHP Composercomposer.jsoncomposer.lockcomposer update --no-cache --no-install --no-scripts --ignore-platform-reqs

यदि मैनिफेस्ट के साथ एक लॉकफ़ाइल पहले से मौजूद है, तो Cycode इसे सीधे पढ़ता है बिना कोई इंस्टॉल कमांड चलाए।

SBT पूर्वापेक्षा: sbt-dependency-lock प्लगइन स्थापित होना चाहिए। project/plugins.sbt में निम्नलिखित पंक्ति जोड़ें:

addSbtPlugin("software.purpledragon" % "sbt-dependency-lock" % "1.5.1")

त्रुटि पर रोकें विकल्प

डिफ़ॉल्ट रूप से, Cycode स्कैनिंग जारी रखता है भले ही कोई फ़ाइल पढ़ी न जा सके (जैसे अनुमति त्रुटि के कारण) या SCA स्कैन के दौरान निर्भरता लॉकफ़ाइल उत्पन्न न हो सके। विफल आइटम को चेतावनी के साथ छोड़ दिया जाता है और स्कैन शेष फ़ाइलों के साथ आगे बढ़ता है।

इस व्यवहार को बदलने के लिए --stop-on-error का उपयोग करें: स्कैन पहली ऐसी विफलता पर तुरंत रद्द हो जाता है और त्रुटि की रिपोर्ट करता है।

cycode scan -t sca --stop-on-error path ~/home/git/codebase

यह CI पाइपलाइनों में उपयोगी है जहाँ एक मूक विफलता अधूरा स्कैन परिणाम उत्पन्न करेगी। जब --stop-on-error ट्रिगर होता है तो आप या तो अंतर्निहित समस्या को ठीक कर सकते हैं या, विशेष रूप से SCA पुनर्स्थापना विफलताओं के लिए, लॉकफ़ाइल जनरेशन को छोड़ने और केवल प्रत्यक्ष निर्भरताओं को स्कैन करने के लिए --no-restore जोड़ सकते हैं।

जब --stop-on-error का उपयोग किया जाता है, CLI निकास कोड के माध्यम से स्कैन त्रुटियों और नीति उल्लंघनों के बीच अंतर करता है:

निकास कोडअर्थ
0स्कैन बिना किसी उल्लंघन के पूरा हुआ
1स्कैन पूरा हुआ और उल्लंघन पाए गए
2त्रुटि के कारण स्कैन रद्द कर दिया गया (केवल जब --stop-on-error सेट हो)

रिपॉजिटरी स्कैन

एक रिपॉजिटरी स्कैन किसी भी उजागर रहस्य या असुरक्षित गलत कॉन्फ़िगरेशन के लिए संपूर्ण स्थानीय रिपॉजिटरी की जाँच करता है। यह अधिक समग्र स्कैन प्रकार सब कुछ देखता है: आपके रिपॉजिटरी की वर्तमान स्थिति और उसका कमिट इतिहास। यह न केवल उन रहस्यों को देखेगा जो वर्तमान में रिपॉजिटरी के भीतर उजागर हैं बल्कि पहले हटाए गए रहस्यों को भी देखेगा।

पूर्ण रिपॉजिटरी स्कैन निष्पादित करने के लिए, निम्नलिखित निष्पादित करें:

cycode scan repository {{path}}

उदाहरण के लिए, यदि आप ~/home/git/codebase में संग्रहीत रिपॉजिटरी को स्कैन करना चाहते थे, तो आप निम्नलिखित निष्पादित कर सकते हैं:

cycode scan repository ~/home/git/codebase

इस कमांड के साथ उपयोग के लिए निम्नलिखित विकल्प उपलब्ध है:

विकल्पविवरण
-b, --branch TEXTस्कैन करने के लिए शाखा, यदि सेट नहीं है तो डिफ़ॉल्ट शाखा स्कैन की जाती है

शाखा विकल्प

अपनी स्थानीय रिपॉजिटरी की एक विशिष्ट शाखा को स्कैन करने के लिए, तर्क -b (वैकल्पिक रूप से, --branch) के बाद उस शाखा का नाम जोड़ें जिसे आप स्कैन करना चाहते हैं।

पिछले उदाहरण को देखते हुए, यदि आप केवल dev नामक शाखा को स्कैन करना चाहते थे, तो आप निम्नलिखित निष्पादित कर सकते हैं:

cycode scan repository ~/home/git/codebase -b dev

पथ स्कैन

एक पथ स्कैन केवल GIT रिपॉजिटरी पर ध्यान केंद्रित करने के बजाय एक विशिष्ट स्थानीय निर्देशिका और उसके भीतर की सभी सामग्री की जाँच करता है।

निर्देशिका स्कैन निष्पादित करने के लिए, निम्नलिखित निष्पादित करें:

cycode scan path {{path}}

उदाहरण के लिए, एक परिदृश्य पर विचार करें जिसमें आप ~/home/git/codebase पर स्थित निर्देशिका को स्कैन करना चाहते हैं। आप तब निम्नलिखित निष्पादित कर सकते हैं:

cycode scan path ~/home/git/codebase

Terraform प्लान स्कैन

Cycode CLI Terraform प्लान स्कैनिंग का समर्थन करता है (Terraform 0.12 और बाद के संस्करण का समर्थन करता है)

Terraform प्लान फ़ाइल JSON प्रारूप में होनी चाहिए (जिसका एक्सटेंशन .json हो)

यदि आपके पास केवल एक कॉन्फ़िगरेशन फ़ाइल है, तो आप निम्नलिखित करके एक प्लान उत्पन्न कर सकते हैं:

  1. एक कार्यशील निर्देशिका प्रारंभ करें जिसमें Terraform कॉन्फ़िगरेशन फ़ाइल हो:

    terraform init

  2. Terraform निष्पादन प्लान बनाएं और बाइनरी आउटपुट सहेजें:

    terraform plan -out={tfplan_output}

  3. बाइनरी आउटपुट फ़ाइल को पठनीय JSON में परिवर्तित करें:

    terraform show -json {tfplan_output} > {tfplan}.json

  4. Cycode CLI के साथ अपने {tfplan}.json को स्कैन करें:

    cycode scan -t iac path ~/PATH/TO/YOUR/{tfplan}.json

कमिट इतिहास स्कैन

[!NOTE] कमिट इतिहास स्कैन IaC स्कैन के लिए उपलब्ध नहीं है।

कमिट इतिहास स्कैन कमांड दो मुख्य क्षमताएँ प्रदान करता है:

  1. पूर्ण इतिहास स्कैनिंग: रिपॉजिटरी इतिहास में सभी कमिट का विश्लेषण करें
  2. डिफ स्कैनिंग: केवल विशिष्ट कमिट के बीच के परिवर्तनों को स्कैन करें

रहस्य स्कैनिंग रिपॉजिटरी इतिहास में सभी कमिट का विश्लेषण कर सकती है क्योंकि पेश किए गए और बाद में हटाए गए रहस्य अभी भी लीक या उजागर हो सकते हैं। SCA और SAST स्कैन के लिए, कमिट इतिहास कमांड कमिट के बीच अंतर/परिवर्तनों को स्कैन करने पर केंद्रित है, जो इसे पुल अनुरोध समीक्षाओं और वृद्धिशील स्कैनिंग के लिए एकदम सही बनाता है।

एक कमिट इतिहास स्कैन आपके Git रिपॉजिटरी के कमिट इतिहास की जाँच करता है और व्यापक ऐतिहासिक विश्लेषण और विशिष्ट परिवर्तनों के लक्षित डिफ स्कैनिंग दोनों के लिए उपयोग किया जा सकता है।

कमिट इतिहास स्कैन निष्पादित करने के लिए, निम्नलिखित निष्पादित करें:

cycode scan commit-history {{path}}

उदाहरण के लिए, एक परिदृश्य पर विचार करें जिसमें आप ~/home/git/codebase में संग्रहीत रिपॉजिटरी के लिए कमिट इतिहास को स्कैन करना चाहते हैं। आप तब निम्नलिखित निष्पादित कर सकते हैं:

cycode scan commit-history ~/home/git/codebase

इस कमांड के साथ उपयोग के लिए निम्नलिखित विकल्प उपलब्ध हैं:

विकल्पविवरण
-r, --commit-range TEXTइस git रिपॉजिटरी में एक कमिट रेंज स्कैन करें, डिफ़ॉल्ट रूप से cycode सभी कमिट इतिहास स्कैन करता है (उदाहरण: HEAD~1)

कमिट रेंज विकल्प (डिफ स्कैनिंग)

कमिट रेंज विकल्प डिफ स्कैनिंग सक्षम करता है – संपूर्ण रिपॉजिटरी इतिहास के बजाय केवल विशिष्ट कमिट के बीच के परिवर्तनों को स्कैन करना। यह विशेष रूप से उपयोगी है:

  • पुल अनुरोध सत्यापन: केवल PR में पेश किए गए परिवर्तनों को स्कैन करें
  • वृद्धिशील CI/CD स्कैनिंग: संपूर्ण कोडबेस के बजाय हाल के परिवर्तनों पर ध्यान केंद्रित करें
  • फीचर शाखा समीक्षा: मुख्य/मास्टर शाखा के विरुद्ध परिवर्तनों की तुलना करें
  • प्रदर्शन अनुकूलन: प्रासंगिक परिवर्तनों तक दायरा सीमित करके तेज़ स्कैन

कमिट रेंज सिंटैक्स

--commit-range (-r) विकल्प मानक Git संशोधन सिंटैक्स का समर्थन करता है:

सिंटैक्सविवरणउदाहरण
commit1..commit2commit1 से commit2 तक के परिवर्तनabc123..def456
commit1...commit2commit2 में परिवर्तन जो commit1 में नहीं हैंmain...feature-branch
commitकमिट से HEAD तक के परिवर्तनHEAD~1
branch1..branch2branch1 से branch2 तक के परिवर्तनmain..feature-branch

डिफ स्कैनिंग उदाहरण

अंतिम कमिट में परिवर्तन स्कैन करें:

cycode scan commit-history -r HEAD~1 ~/home/git/codebase

दो विशिष्ट कमिट के बीच परिवर्तन स्कैन करें:

cycode scan commit-history -r abc123..def456 ~/home/git/codebase

मुख्य की तुलना में अपनी फीचर शाखा में परिवर्तन स्कैन करें:

cycode scan commit-history -r main..HEAD ~/home/git/codebase

मुख्य और एक फीचर शाखा के बीच परिवर्तन स्कैन करें:

cycode scan commit-history -r main..feature-branch ~/home/git/codebase

अंतिम 3 कमिट में सभी परिवर्तन स्कैन करें:

cycode scan commit-history -r HEAD~3..HEAD ~/home/git/codebase

[!TIP] CI/CD पाइपलाइनों के लिए, आप केवल PR/MR परिवर्तनों को स्कैन करने के लिए ${{ github.event.pull_request.base.sha }}..${{ github.sha }} (GitHub Actions) या $CI_MERGE_REQUEST_TARGET_BRANCH_SHA..$CI_COMMIT_SHA (GitLab CI) जैसे पर्यावरण चर का उपयोग कर सकते हैं।

प्री-कमिट स्कैन

एक प्री-कमिट स्कैन आपके रिपॉजिटरी में परिवर्तन कमिट करने से पहले स्वचालित रूप से किसी भी समस्या की पहचान करता है। इस स्कैन को मैन्युअल रूप से निष्पादित करने की कोई आवश्यकता नहीं है; इस गाइड के इंस्टॉलेशन अनुभाग में विस्तृत रूप से बताए अनुसार प्री-कमिट हुक कॉन्फ़िगर करें।

प्री-कमिट हुक स्थापित करने के बाद, आप कभी-कभी किसी विशिष्ट कमिट के दौरान स्कैनिंग छोड़ना चाह सकते हैं। ऐसा करने के लिए, एकल कमिट के लिए स्कैनिंग छोड़ने के लिए अपने git कमांड में निम्नलिखित जोड़ें:

SKIP=cycode git commit -m <your commit message>`

प्री-पुश स्कैन

एक प्री-पुश स्कैन दूरस्थ रिपॉजिटरी में परिवर्तन पुश करने से पहले स्वचालित रूप से किसी भी समस्या की पहचान करता है। यह हुक क्लाइंट साइड पर चलता है और केवल उन कमिट को स्कैन करता है जिन्हें पुश किया जाने वाला है, जिससे यह दूरस्थ रिपॉजिटरी तक पहुँचने से पहले समस्याओं को पकड़ने के लिए कुशल बनता है।

[!NOTE] प्री-पुश हुक IaC स्कैन के लिए उपलब्ध नहीं है।

प्री-पुश हुक प्री-कमिट फ्रेमवर्क के साथ एकीकृत होता है और किसी भी git push ऑपरेशन से पहले चलाने के लिए कॉन्फ़िगर किया जा सकता है।

प्री-पुश हुक स्थापित करना

प्री-कमिट फ्रेमवर्क का उपयोग करके प्री-पुश हुक सेट करने के लिए:

  1. प्री-कमिट फ्रेमवर्क स्थापित करें (यदि पहले से स्थापित नहीं है):

    pip3 install pre-commit
    
  2. प्री-पुश हुक शामिल करने के लिए अपनी .pre-commit-config.yaml फ़ाइल बनाएं या अपडेट करें:

    repos:
      - repo: https://github.com/cycodehq/cycode-cli
        rev: v3.5.0
        hooks:
          - id: cycode-pre-push
            stages: [pre-push]
    
  3. कई स्कैन प्रकारों के लिए, इस कॉन्फ़िगरेशन का उपयोग करें:

    repos:
      - repo: https://github.com/cycodehq/cycode-cli
        rev: v3.5.0
        hooks:
          - id: cycode-pre-push          # Secrets scan
            stages: [pre-push]
          - id: cycode-sca-pre-push      # SCA scan
            stages: [pre-push]
          - id: cycode-sast-pre-push     # SAST scan
            stages: [pre-push]
    
  4. प्री-पुश हुक स्थापित करें:

    pre-commit install --hook-type pre-push
    

    एक सफल स्थापना के परिणामस्वरूप संदेश मिलेगा: Pre-push installed at .git/hooks/pre-push।

  5. प्री-पुश हुक को अद्यतित रखें:

    pre-commit autoupdate
    

प्री-पुश स्कैनिंग कैसे काम करती है

प्री-पुश हुक:

  • कौन से कमिट पुश किए जा रहे हैं इसकी जानकारी प्राप्त करता है
  • स्कैन करने के लिए उपयुक्त कमिट रेंज की गणना करता है
  • नई शाखाओं के लिए: डिफ़ॉल्ट शाखा के साथ मर्ज बेस से सभी कमिट स्कैन करता है
  • मौजूदा शाखाओं के लिए: अंतिम पुश के बाद से केवल नए कमिट स्कैन करता है
  • अन्य Cycode स्कैन मोड के समान व्यापक स्कैनिंग चलाता है

स्मार्ट डिफ़ॉल्ट शाखा पहचान

प्री-पुश हुक इस प्राथमिकता क्रम का उपयोग करके मर्ज बेस गणना के लिए डिफ़ॉल्ट शाखा को बुद्धिमानी से पहचानता है:

  1. पर्यावरण चर: CYCODE_DEFAULT_BRANCH - मैन्युअल ओवरराइड की अनुमति देता है
  2. Git रिमोट HEAD: वास्तविक रिमोट डिफ़ॉल्ट शाखा का पता लगाने के लिए git symbolic-ref refs/remotes/origin/HEAD का उपयोग करता है
  3. Git रिमोट जानकारी: यदि symbolic-ref विफल हो जाता है तो git remote show origin पर वापस आ जाता है
  4. हार्डकोडेड फ़ॉलबैक: सामान्य डिफ़ॉल्ट शाखा नामों का उपयोग करता है (origin/main, origin/master, main, master)

कस्टम डिफ़ॉल्ट शाखा सेट करना:

export CYCODE_DEFAULT_BRANCH=origin/develop

यह स्मार्ट पहचान सुनिश्चित करती है कि प्री-पुश हुक सही ढंग से काम करता है चाहे आपकी रिपॉजिटरी main, master, develop, या कोई अन्य डिफ़ॉल्ट शाखा नाम उपयोग करती हो।

प्री-पुश स्कैन छोड़ना

किसी विशिष्ट पुश ऑपरेशन के लिए प्री-पुश स्कैन छोड़ने के लिए, उपयोग करें:

SKIP=cycode-pre-push git push

या सभी प्री-पुश हुक छोड़ने के लिए:

git push --no-verify

[!TIP] प्री-पुश हुक git push कमांड पर ट्रिगर होता है और केवल उन कमिट को स्कैन करता है जिन्हें पुश किया जाने वाला है, जिससे यह संपूर्ण रिपॉजिटरी को स्कैन करने की तुलना में अधिक कुशल बनता है।

स्कैन से पथ बहिष्कृत करें

आप Cycode CLI को बताने के लिए एक .cycodeignore फ़ाइल का उपयोग कर सकते हैं कि स्कैन से कौन सी फ़ाइलें और निर्देशिकाएँ बहिष्कृत करनी हैं। यह एक .gitignore फ़ाइल की तरह ही काम करता है। यह आपको अपने प्रासंगिक कोड पर स्कैन केंद्रित करने और स्थानीय रूप से उल्लंघनों को ट्रिगर करने से कुछ पथों को रोकने में मदद करता है।

यह कैसे काम करता है

  1. अपने कार्य फ़ोल्डर में .cycodeignore नामक एक फ़ाइल बनाएं।
  2. उन फ़ाइलों और निर्देशिकाओं की सूची बनाएं जिन्हें आप बहिष्कृत करना चाहते हैं, .gitignore के समान पैटर्न का उपयोग करके।
  3. इस फ़ाइल को उस निर्देशिका में रखें जहाँ आप cycode स्कैन कमांड चलाने की योजना बना रहे हैं।

[!WARNING]

  • अमान्य फ़ाइलें: यदि .cycodeignore फ़ाइल में सिंटैक्स त्रुटि है, तो CLI स्कैन विफल हो जाएगा और एक त्रुटि लौटाएगा।
  • पथों की अनदेखी बनाम उल्लंघन: यह फ़ाइल पथों को बहिष्कृत करने के लिए है। यह CLI की विशिष्ट उल्लंघनों को अनदेखा करने की क्षमता से अलग है (उदाहरण के लिए, --ignore-violation फ्लैग का उपयोग करके)।

समर्थित स्कैनर

  • SAST
  • IaC (जल्द आ रहा है)
  • SCA (जल्द आ रहा है)

स्कैन परिणाम

प्रत्येक स्कैन एक संदेश के साथ पूरा होगा जिसमें बताया जाएगा कि कोई समस्या मिली या नहीं।

यदि कोई समस्या नहीं मिलती है, तो स्कैन निम्नलिखित सफलता संदेश के साथ समाप्त होता है:

Good job! No issues were found!!! 👏👏👏

यदि कोई समस्या मिलती है, तो पूरा होने पर एक उल्लंघन कार्ड दिखाई देता है। इस मामले में आपको परिणाम संदेश द्वारा हाइलाइट की गई विशिष्ट पंक्ति के लिए प्रश्न में फ़ाइल की समीक्षा करनी चाहिए। समस्या को हल करने के लिए आवश्यक कोई भी परिवर्तन लागू करें, फिर स्कैन को फिर से निष्पादित करें।

रहस्य दिखाएं/छिपाएं

नीचे दिए गए उदाहरणों में, उपफ़ोल्डर cli में स्थित फ़ाइल secret_test में एक रहस्य पाया गया था। संदेश का दूसरा भाग वह विशिष्ट पंक्ति दिखाता है जिसमें रहस्य दिखाई देता है, जो इस मामले में googleApiKey को सौंपा गया मान है।

ध्यान दें कि उदाहरण वास्तविक रहस्य मान को अस्पष्ट करता है, अधिकांश रहस्य को तारांकन से बदल देता है। स्कैन डिफ़ॉल्ट रूप से रहस्यों को अस्पष्ट करते हैं, लेकिन आप वैकल्पिक रूप से पूर्ण रहस्य देखने के लिए इस सुविधा को अक्षम कर सकते हैं (यह मानते हुए कि जिस मशीन पर आप स्कैन परिणाम देख रहे हैं वह चुभती नज़रों से पर्याप्त रूप से सुरक्षित है)।

रहस्य अस्पष्टीकरण अक्षम करने के लिए, किसी भी प्रकार के स्कैन में --show-secret तर्क जोड़ें।

निम्नलिखित उदाहरण में, cli उपनिर्देशिका के विरुद्ध एक पथ स्कैन निष्पादित किया जाता है जिसमें पाए गए किसी भी रहस्य को पूर्ण रूप से प्रदर्शित करने के लिए विकल्प सक्षम होता है:

cycode scan --show-secret path ./cli

परिणाम तब अस्पष्ट नहीं होगा।

सॉफ्ट फेल

सामान्य संचालन में CLI स्कैन परिणामों में समस्याएँ मिलने पर 1 का निकास कोड लौटाएगा। आपके CI/CD सेटअप के आधार पर यह आमतौर पर समग्र विफलता का परिणाम होगा। यदि आप ऐसा नहीं चाहते हैं, तो आप सॉफ्ट फेल सुविधा का उपयोग कर सकते हैं।

किसी भी प्रकार के स्कैन में --soft-fail विकल्प जोड़ने से, निकास कोड को 0 पर बाध्य किया जाएगा चाहे कोई परिणाम मिले या नहीं।

उदाहरण स्कैन परिणाम

रहस्य परिणाम उदाहरण

╭─────────────────────────────────────────────────────────────── Hardcoded generic-password is used ───────────────────────────────────────────────────────────────╮
│                                                                                                                                               Violation 12 of 12 │
│ ╭─ 🔍 Details ───────────────────────────────────────╮ ╭─ 💻 Code Snippet ─────────────────────────────────────────────────────────────────────────────────────╮ │
│ │  Severity    🟠 MEDIUM                             │ │   34 };                                                                                               │ │
│ │  In file     /Users/cycodemacuser/NodeGoat/test/s  │ │   35                                                                                                  │ │
│ │              ecurity/profile-test.js               │ │   36 var sutUserName = "user1";                                                                       │ │
│ │  Secret SHA  b4ea3116d868b7c982ee6812cce61727856b  │ │ ❱ 37 var sutUserPassword = "Us*****23";                                                               │ │
│ │              802b3063cd5aebe7d796988552e0          │ │   38                                                                                                  │ │
│ │  Rule ID     68b6a876-4890-4e62-9531-0e687223579f  │ │   39 chrome.setDefaultService(service);                                                               │ │
│ ╰────────────────────────────────────────────────────╯ │   40                                                                                                  │ │
│                                                        ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ ╭─ 📝 Summary ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ A generic secret or password is an authentication token used to access a computer or application and is assigned to a password variable.                     │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

IaC परिणाम उदाहरण

╭──────────── Enable Content Encoding through the attribute 'MinimumCompressionSize'. This value should be greater than -1 and smaller than 10485760. ─────────────╮
│                                                                                                                                              Violation 45 of 110 │
│ ╭─ 🔍 Details ───────────────────────────────────────╮ ╭─ 💻 Code Snippet ─────────────────────────────────────────────────────────────────────────────────────╮ │
│ │  Severity      🟠 MEDIUM                           │ │   20 BinaryMediaTypes:                                                                                │ │
│ │  In file       ...ads-copy/iac/cft/api-gateway/ap  │ │   21   - !Ref binaryMediaType1                                                                        │ │
│ │                i-gateway-rest-api/deploy.yml       │ │   22   - !Ref binaryMediaType2                                                                        │ │
│ │  IaC Provider  CloudFormation                      │ │ ❱ 23 MinimumCompressionSize: -1                                                                       │ │
│ │  Rule ID       33c4b90c-3270-4337-a075-d3109c141b  │ │   24 EndpointConfiguration:                                                                           │ │
│ │                53                                  │ │   25   Types:                                                                                         │ │
│ ╰────────────────────────────────────────────────────╯ │   26     - EDGE                                                                                       │ │
│                                                        ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ ╭─ 📝 Summary ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ This policy validates the proper configuration of content encoding in AWS API Gateway. Specifically, the policy checks for the attribute                     │ │
│ │ 'minimum_compression_size' in API Gateway REST APIs. Correct configuration of this attribute is important for enabling content encoding of API responses for │ │
│ │ improved API performance and reduced payload sizes.                                                                                                          │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

SCA परिणाम उदाहरण

╭─────────────────────────────────────────────────────── [CVE-2019-10795] Prototype Pollution in undefsafe ────────────────────────────────────────────────────────╮
│                                                                                                                                             Violation 172 of 195 │
│ ╭─ 🔍 Details ───────────────────────────────────────╮ ╭─ 💻 Code Snippet ─────────────────────────────────────────────────────────────────────────────────────╮ │
│ │  Severity               🟠 MEDIUM                  │ │   26758   "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=",                                           │ │
│ │  In file                /Users/cycodemacuser/Node  │ │   26759   "dev": true                                                                                 │ │
│ │                         Goat/package-lock.json     │ │   26760 },                                                                                            │ │
│ │  CVEs                   CVE-2019-10795             │ │ ❱ 26761 "undefsafe": {                                                                                │ │
│ │  Package                undefsafe                  │ │   26762   "version": "2.0.2",                                                                         │ │
│ │  Version                2.0.2                      │ │   26763   "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.2.tgz",                   │ │
│ │  First patched version  Not fixed                  │ │   26764   "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=",                                           │ │
│ │  Dependency path        nodemon 1.19.1 ->          │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │                         undefsafe 2.0.2            │                                                                                                           │
│ │  Rule ID                9c6a8911-e071-4616-86db-4  │                                                                                                           │
│ │                         943f2e1df81                │                                                                                                           │
│ ╰────────────────────────────────────────────────────╯                                                                                                           │
│ ╭─ 📝 Summary ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ undefsafe before 2.0.3 is vulnerable to Prototype Pollution. The 'a' function could be tricked into adding or modifying properties of Object.prototype using │ │
│ │ a __proto__ payload.                                                                                                                                         │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

SAST परिणाम उदाहरण

╭───────────────────────────────────────────── [CWE-208: Observable Timing Discrepancy] Observable Timing Discrepancy ─────────────────────────────────────────────╮
│                                                                                                                                               Violation 24 of 49 │
│ ╭─ 🔍 Details ───────────────────────────────────────╮ ╭─ 💻 Code Snippet ─────────────────────────────────────────────────────────────────────────────────────╮ │
│ │  Severity       🟠 MEDIUM                          │ │   173         " including numbers, lowercase and uppercase letters.";                                 │ │
│ │  In file        /Users/cycodemacuser/NodeGoat/app  │ │   174     return false;                                                                               │ │
│ │                 /routes/session.js                 │ │   175 }                                                                                               │ │
│ │  CWE            CWE-208                            │ │ ❱ 176 if (password !== verify) {                                                                      │ │
│ │  Subcategory    Security                           │ │   177     errors.verifyError = "Password must match";                                                 │ │
│ │  Language       js                                 │ │   178     return false;                                                                               │ │
│ │  Security Tool  Bearer (Powered by Cycode)         │ │   179 }                                                                                               │ │
│ │  Rule ID        19fbca07-a8e7-4fa6-92ac-a36d15509  │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │                 fa9                                │                                                                                                           │
│ ╰────────────────────────────────────────────────────╯                                                                                                           │
│ ╭─ 📝 Summary ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ Observable Timing Discrepancy occurs when the time it takes for certain operations to complete can be measured and observed by attackers. This vulnerability │ │
│ │ is particularly concerning when operations involve sensitive information, such as password checks or secret comparisons. If attackers can analyze how long   │ │
│ │ these operations take, they might be able to deduce confidential details, putting your data at risk.                                                         │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

कंपनी कस्टम सुधार दिशानिर्देश

यदि आपकी कंपनी ने Cycode पोर्टल के माध्यम से प्रासंगिक नीति में कस्टम सुधार दिशानिर्देश सेट किए हैं, तो आपको "Company Guidelines" नामक एक फ़ील्ड दिखाई देगी जिसमें आपके द्वारा जोड़े गए सुधार दिशानिर्देश शामिल होंगे। ध्यान दें कि यदि आपने कोई कंपनी दिशानिर्देश नहीं जोड़े हैं, तो यह फ़ील्ड CLI टूल में दिखाई नहीं देगी।

स्कैन परिणामों को अनदेखा करना

विशिष्ट गुप्त मानों, विशिष्ट SHA512 मानों, विशिष्ट पथों, और विशिष्ट Cycode गुप्त और IaC नियम ID को अनदेखा करने के लिए अनदेखा नियम जोड़े जा सकते हैं। इससे स्कैन इन मानों के लिए अलर्ट नहीं करेगा। अनदेखा नियम ./.cycode/config.yaml फ़ाइल में स्थानीय रूप से लिखे और सहेजे जाते हैं।

[!WARNING] अनदेखा किए जाने वाले मानों को जोड़ना मानों, पथों, और नीतियों पर सावधानीपूर्वक विचार करके किया जाना चाहिए ताकि यह सुनिश्चित हो सके कि स्कैन वास्तविक सकारात्मक परिणामों को पकड़ेंगे।

cycode ignore कमांड के लिए निम्नलिखित विकल्प उपलब्ध हैं:

विकल्पविवरण
--by-value TEXTगुप्त स्कैन करते समय एक विशिष्ट मान को अनदेखा करें। अधिक विवरण के लिए Ignoring a Secret Value देखें।
--by-sha TEXTगुप्त स्कैन करते समय एक स्ट्रिंग के विशिष्ट SHA512 प्रतिनिधित्व को अनदेखा करें। अधिक विवरण के लिए Ignoring a Secret SHA Value देखें।
--by-path TEXTकिसी विशिष्ट पथ को स्कैन करने से बचें। स्कैन प्रकार निर्दिष्ट करना आवश्यक है। अधिक विवरण के लिए Ignoring a Path देखें।
--by-rule TEXTकिसी विशिष्ट गुप्त नियम ID/IaC नियम ID/SCA नियम ID को स्कैन करने से अनदेखा करें। अधिक विवरण के लिए Ignoring a Secret or Iac Rule देखें।
--by-package TEXTSCA स्कैन चलाते समय किसी विशिष्ट पैकेज संस्करण को स्कैन करने से अनदेखा करें। अपेक्षित पैटर्न - name@version। अधिक विवरण के लिए Ignoring a Package देखें।
--by-cve TEXTSCA स्कैन चलाते समय किसी विशिष्ट CVE को स्कैन करने से अनदेखा करें। अपेक्षित पैटर्न: CVE-YYYY-NNN।
-t, --scan-type [secret|iac|sca|sast]वह स्कैन निर्दिष्ट करें जिसे आप निष्पादित करना चाहते हैं (secret/iac/sca/sast)। डिफ़ॉल्ट मान secret है।
-g, --globalएक अनदेखा नियम जोड़ें और इसे वैश्विक .cycode कॉन्फ़िग फ़ाइल में अपडेट करें।

गुप्त मान को अनदेखा करना

किसी विशिष्ट गुप्त मान को अनदेखा करने के लिए, आपको --by-value फ़्लैग का उपयोग करना होगा। यह दिए गए गुप्त मान को भविष्य के सभी स्कैन से अनदेखा कर देगा। अनदेखा किए जाने वाले गुप्त मान को जोड़ने के लिए निम्नलिखित कमांड का उपयोग करें:

cycode ignore --by-value {{secret-value}}

इस अनुभाग के शीर्ष पर दिए गए उदाहरण में, किसी विशिष्ट गुप्त मान को अनदेखा करने का कमांड इस प्रकार है:

cycode ignore --by-value h3110w0r1d!@#$350

उपरोक्त उदाहरण में, h3110w0r1d!@#$350 मान को अपने गैर-मास्क किए गए गुप्त मान से बदलें। स्कैन परिणामों में गुप्त मानों को देखने के तरीके के विवरण के लिए Cycode स्कैन विकल्प देखें।

गुप्त SHA मान को अनदेखा करना

किसी विशिष्ट गुप्त SHA मान को अनदेखा करने के लिए, आपको --by-sha फ़्लैग का उपयोग करना होगा। यह दिए गए गुप्त SHA मान को भविष्य के सभी स्कैन से अनदेखा कर देगा। अनदेखा किए जाने वाले गुप्त SHA मान को जोड़ने के लिए निम्नलिखित कमांड का उपयोग करें:

cycode ignore --by-sha {{secret-sha-value}}

इस अनुभाग के शीर्ष पर दिए गए उदाहरण में, किसी विशिष्ट गुप्त SHA मान को अनदेखा करने का कमांड इस प्रकार है:

cycode ignore --by-sha a44081db3296c84b82d12a35c446a3cba19411dddfa0380134c75f7b3973bff0

उपरोक्त उदाहरण में, a44081db3296c84b82d12a35c446a3cba19411dddfa0380134c75f7b3973bff0 मान को अपने गुप्त SHA मान से बदलें।

पथ को अनदेखा करना

गुप्त, IaC, या SCA स्कैन के लिए किसी विशिष्ट पथ को अनदेखा करने के लिए, आपको --by-path फ़्लैग का उपयोग -t, --scan-type फ़्लैग के साथ करना होगा (आपको स्कैन प्रकार निर्दिष्ट करना होगा)। यह दिए गए पथ को दिए गए स्कैन प्रकार के भविष्य के सभी स्कैन से अनदेखा कर देगा। अनदेखा किए जाने वाले पथ को जोड़ने के लिए निम्नलिखित कमांड का उपयोग करें:

cycode ignore -t {{scan-type}} --by-path {{path}}

इस अनुभाग के शीर्ष पर दिए गए उदाहरण में, गुप्त के लिए किसी विशिष्ट पथ को अनदेखा करने का कमांड इस प्रकार है:

cycode ignore -t secret --by-path ~/home/my-repo/config

उपरोक्त उदाहरण में, ~/home/my-repo/config मान को अपने पथ मान से बदलें।

इस अनुभाग के शीर्ष पर दिए गए उदाहरण में, IaC स्कैन से किसी विशिष्ट पथ को अनदेखा करने का कमांड इस प्रकार है:

cycode ignore -t iac --by-path ~/home/my-repo/config

उपरोक्त उदाहरण में, ~/home/my-repo/config मान को अपने पथ मान से बदलें।

इस अनुभाग के शीर्ष पर दिए गए उदाहरण में, SCA स्कैन से किसी विशिष्ट पथ को अनदेखा करने का कमांड इस प्रकार है:

cycode ignore -t sca --by-path ~/home/my-repo/config

उपरोक्त उदाहरण में, ~/home/my-repo/config मान को अपने पथ मान से बदलें।

गुप्त, IaC, SCA, या SAST नियम को अनदेखा करना

किसी विशिष्ट गुप्त, IaC, SCA, या SAST नियम को अनदेखा करने के लिए, आपको --by-rule फ़्लैग का उपयोग -t, --scan-type फ़्लैग के साथ करना होगा (आपको स्कैन प्रकार निर्दिष्ट करना होगा)। यह दिए गए नियम ID मान को भविष्य के सभी स्कैन से अनदेखा कर देगा। अनदेखा किए जाने वाले नियम ID मान को जोड़ने के लिए निम्नलिखित कमांड का उपयोग करें:

cycode ignore -t {{scan-type}} --by-rule {{rule-ID}}

इस अनुभाग के शीर्ष पर दिए गए उदाहरण में, विशिष्ट गुप्त नियम ID को अनदेखा करने का कमांड इस प्रकार है:

cycode ignore -t secret --by-rule ce3a4de0-9dfc-448b-a004-c538cf8b4710

उपरोक्त उदाहरण में, ce3a4de0-9dfc-448b-a004-c538cf8b4710 मान को उस नियम ID से बदलें जिसे आप अनदेखा करना चाहते हैं।

इस अनुभाग के शीर्ष पर दिए गए उदाहरण में, विशिष्ट IaC नियम ID को अनदेखा करने का कमांड इस प्रकार है:

cycode ignore -t iac --by-rule bdaa88e2-5e7c-46ff-ac2a-29721418c59c

उपरोक्त उदाहरण में, bdaa88e2-5e7c-46ff-ac2a-29721418c59c मान को उस नियम ID से बदलें जिसे आप अनदेखा करना चाहते हैं।

इस अनुभाग के शीर्ष पर दिए गए उदाहरण में, विशिष्ट SCA नियम ID को अनदेखा करने का कमांड इस प्रकार है:

cycode ignore -t sca --by-rule dc21bc6b-9f4f-46fb-9f92-e4327ea03f6b

उपरोक्त उदाहरण में, dc21bc6b-9f4f-46fb-9f92-e4327ea03f6b मान को उस नियम ID से बदलें जिसे आप अनदेखा करना चाहते हैं।

पैकेज को अनदेखा करना

[!NOTE] यह विकल्प केवल SCA स्कैन के लिए उपलब्ध है।

SCA स्कैन में किसी विशिष्ट पैकेज को अनदेखा करने के लिए, आपको --by-package फ़्लैग का उपयोग -t, --scan-type फ़्लैग के साथ करना होगा (आपको sca स्कैन प्रकार निर्दिष्ट करना होगा)। यह दिए गए पैकेज को, {{package_name}}@{{package_version}} स्वरूपण का उपयोग करके, भविष्य के सभी स्कैन से अनदेखा कर देगा। अनदेखा किए जाने वाले पैकेज और संस्करण को जोड़ने के लिए निम्नलिखित कमांड का उपयोग करें:

cycode ignore --scan-type sca --by-package {{package_name}}@{{package_version}}

या

cycode ignore -t sca --by-package {{package_name}}@{{package_version}}

नीचे दिए गए उदाहरण में, किसी विशिष्ट SCA पैकेज को अनदेखा करने का कमांड इस प्रकार है:

cycode ignore --scan-type sca --by-package pyyaml@5.3.1

उपरोक्त उदाहरण में, pyyaml को पैकेज नाम से और 5.3.1 को उस पैकेज संस्करण से बदलें जिसे आप अनदेखा करना चाहते हैं।

कॉन्फ़िग फ़ाइल के माध्यम से अनदेखा करना

लागू किए गए अनदेखा नियम config.yaml नामक कॉन्फ़िगरेशन फ़ाइल में संग्रहीत होते हैं। यह फ़ाइल डेवलपर्स के बीच आसानी से साझा की जा सकती है या दूरस्थ Git में भी कमिट की जा सकती है। ये फ़ाइलें हमेशा .cycode फ़ोल्डर में स्थित होती हैं। फ़ोल्डर एक डॉट (.) से शुरू होता है, और इसे देखने के लिए आपको छिपी हुई फ़ाइलों का प्रदर्शन सक्षम करना चाहिए।

कॉन्फ़िग फ़ाइलों का पथ

डिफ़ॉल्ट रूप से, सभी cycode ignore कमांड अनदेखा नियम को उस वर्तमान निर्देशिका में सहेजते हैं जहाँ से CLI चलाया गया है।

उदाहरण: /Users/name/projects/backend से अनदेखा CLI कमांड चलाने से /Users/name/projects/backend/.cycode में config.yaml बनेगा

➜  backend  pwd
/Users/name/projects/backend
➜  backend  cycode ignore --by-value test-value
➜  backend  tree -a
.
└── .cycode
    └── config.yaml

2 directories, 1 file

दूसरा विकल्प अनदेखा नियमों को वैश्विक कॉन्फ़िगरेशन फ़ाइलों में सहेजना है। वैश्विक कॉन्फ़िग का पथ ~/.cycode/config.yaml है, जहाँ ~ का अर्थ है users home directory, for example, /Users/name` macOS पर।

वैश्विक स्थान में सहेजना cycode ignore कमांड के -g फ़्लैग के साथ किया जा सकता है। उदाहरण के लिए: cycode ignore -g --by-value test-value।

उचित कार्यशील निर्देशिका

.cycode फ़ोल्डर को रखना और CLI को एक ही स्थान से चलाना अत्यंत महत्वपूर्ण है। CI/CD (GitHub Actions, Jenkins, आदि) जैसे विभिन्न वातावरणों के साथ काम करते समय आपको इसे दोबारा जांचना चाहिए।

आप .cycode फ़ोल्डर को अपने रिपॉजिटरी के रूट में कमिट कर सकते हैं। इस परिदृश्य में, आपको रिपॉजिटरी रूट से CLI स्कैन चलाना होगा। यदि यह आपकी आवश्यकताओं के अनुरूप नहीं है, तो आप अस्थायी रूप से .cycode फ़ोल्डर को जहाँ चाहें कॉपी कर सकते हैं और इस फ़ोल्डर से CLI स्कैन कर सकते हैं।

कॉन्फ़िग में अनदेखा नियमों की संरचना

यह समझना महत्वपूर्ण है कि CLI अनदेखा नियमों को कैसे संग्रहीत करता है ताकि आप इन कॉन्फ़िगरेशन फ़ाइलों को पढ़ सकें या CLI के बिना भी उन्हें संशोधित कर सकें।

सार युक्त YAML संरचना:

exclusions:
  {scanTypeName}:
    {ignoringType}:
    - someIgnoringValue1
    - someIgnoringValue2

scanTypeName के संभावित मान: iac, sca, sast, secret।

ignoringType के संभावित मान: paths, values, rules, packages, shas, cves।

[!WARNING] "मान द्वारा अनदेखा करें" के मान सादे पाठ में संग्रहीत नहीं होते हैं! CLI मानों के sha256 हैश संग्रहीत करता है। कॉन्फ़िगरेशन फ़ाइल को हाथ से संशोधित करते समय आपको स्ट्रिंग के हैश डालने चाहिए।

वास्तविक config.yaml का उदाहरण:

exclusions:
  iac:
    rules:
    - bdaa88e2-5e7c-46ff-ac2a-29721418c59c
  sca:
    packages:
    - pyyaml@5.3.1
  secret:
    paths:
    - /Users/name/projects/build
    rules:
    - ce3a4de0-9dfc-448b-a004-c538cf8b4710
    shas:
    - a44081db3296c84b82d12a35c446a3cba19411dddfa0380134c75f7b3973bff0
    values:
    - a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3
    - 60303ae22b998861bce3b28f33eec1be758a213c86c93c076dbe9f558c11c752

रिपोर्ट कमांड

SBOM रिपोर्ट उत्पन्न करना

एक सॉफ़्टवेयर बिल ऑफ़ मटेरियल्स (SBOM) उन सभी घटक घटकों और सॉफ़्टवेयर निर्भरताओं की एक सूची है जो किसी एप्लिकेशन के विकास और वितरण में शामिल हैं। इस कमांड का उपयोग करके, आप अपने स्थानीय प्रोजेक्ट या अपने रिपॉजिटरी URI के लिए एक SBOM रिपोर्ट बना सकते हैं।

इस कमांड के साथ उपयोग के लिए निम्नलिखित विकल्प उपलब्ध हैं:

विकल्पविवरणआवश्यकडिफ़ॉल्ट
-f, --format [spdx-2.2|spdx-2.3|cyclonedx-1.4]SBOM प्रारूपहाँ
-o, --output-format [JSON]आउटपुट फ़ाइल प्रारूप निर्दिष्ट करेंनहींjson
--output-file PATHआउटपुट फ़ाइलनहींवर्तमान निर्देशिका में सहेजा गया स्वतः उत्पन्न फ़ाइल नाम
--include-vulnerabilitiesकमजोरियाँ शामिल करेंनहींFalse
--include-dev-dependenciesdev निर्भरताएँ शामिल करेंनहींFalse

इस कमांड के साथ उपयोग के लिए निम्नलिखित कमांड उपलब्ध हैं:

कमांडविवरण
pathकमांड में दिए गए पथ के लिए SBOM रिपोर्ट उत्पन्न करें
repository-urlकमांड में दिए गए रिपॉजिटरी URI के लिए SBOM रिपोर्ट उत्पन्न करें

रिपॉजिटरी

रिपॉजिटरी URI के लिए SBOM रिपोर्ट बनाने के लिए:
cycode report sbom --format <sbom format> --include-vulnerabilities --include-dev-dependencies --output-file </path/to/file> repository_url <repository url>

उदाहरण के लिए:
cycode report sbom --format spdx-2.3 --include-vulnerabilities --include-dev-dependencies repository_url https://github.com/cycodehq/cycode-cli.git

स्थानीय प्रोजेक्ट

पथ के लिए SBOM रिपोर्ट बनाने के लिए:
cycode report sbom --format <sbom format> --include-vulnerabilities --include-dev-dependencies --output-file </path/to/file> path </path/to/project>

उदाहरण के लिए:
cycode report sbom --format spdx-2.3 --include-vulnerabilities --include-dev-dependencies path /path/to/local/project

path उपकमांड निम्नलिखित अतिरिक्त विकल्पों का समर्थन करता है:

विकल्पविवरण
--no-restoreलॉकफ़ाइल पुनर्स्थापना छोड़ें और केवल प्रत्यक्ष निर्भरताओं को स्कैन करें। विवरण के लिए लॉक पुनर्स्थापना विकल्प देखें।
--gradle-all-sub-projectsसभी उप-प्रोजेक्ट्स के लिए Gradle पुनर्स्थापना कमांड चलाएँ (मल्टी-प्रोजेक्ट Gradle बिल्ड के रूट से उपयोग करें)।
--maven-settings-fileकेवल Maven के लिए, निर्भरता ट्री बनाते समय कस्टम settings.xml फ़ाइल का उपयोग करने की अनुमति देता है।

आयात कमांड

SBOM आयात करना

सॉफ़्टवेयर बिल ऑफ़ मैटेरियल्स (SBOM) उन सभी घटक घटकों और सॉफ़्टवेयर निर्भरताओं की एक सूची है जो किसी एप्लिकेशन के विकास और वितरण में शामिल हैं। इस कमांड का उपयोग करके, आप अपने फ़ाइल सिस्टम से Cycode में एक SBOM फ़ाइल आयात कर सकते हैं।

इस कमांड के साथ उपयोग के लिए निम्नलिखित विकल्प उपलब्ध हैं:

विकल्पविवरणआवश्यकडिफ़ॉल्ट
-n, --name TEXTSBOM का प्रदर्शन नामहाँ
-v, --vendor TEXTSBOM प्रदान करने वाली इकाई का नामहाँ
-l, --label TEXTSBOM पर लेबल संलग्न करेंनहीं
-o, --owner TEXTइस SBOM के लिए संपर्क बिंदु के रूप में कार्य करने वाले Cycode उपयोगकर्ता का ईमेल पतानहीं
-b, --business-impact [High | Medium | Low]व्यावसायिक प्रभावनहींमध्यम

उदाहरण के लिए:
cycode import sbom --name example-sbom --vendor cycode -label tag1 -label tag2 --owner example@cycode.com /path/to/local/project

स्कैन लॉग

सभी CLI स्कैन Cycode में लॉग किए जाते हैं। लॉग सेटिंग्स > CLI लॉग के अंतर्गत पाए जा सकते हैं।

सिंटैक्स सहायता

आप किसी भी समय किसी भी कमांड में --help तर्क जोड़ सकते हैं ताकि एक सहायता संदेश देखा जा सके जो उपलब्ध विकल्पों और उनके सिंटैक्स को प्रदर्शित करेगा।

सामान्य सहायता देखने के लिए, बस कमांड दर्ज करें:

cycode --help

स्कैन विकल्प देखने के लिए, दर्ज करें:

cycode scan --help

किसी विशिष्ट प्रकार के स्कैन के लिए उपलब्ध विकल्प देखने के लिए, दर्ज करें:

cycode scan {{option}} --help

उदाहरण के लिए, पाथ स्कैन के लिए उपलब्ध विकल्प देखने के लिए, आप दर्ज करेंगे:

cycode scan path --help

इग्नोर स्कैन फ़ंक्शन के लिए उपलब्ध विकल्प देखने के लिए, इस कमांड का उपयोग करें:

cycode ignore --help

रिपोर्ट के लिए उपलब्ध विकल्प देखने के लिए, इस कमांड का उपयोग करें:

cycode report --help

किसी विशिष्ट प्रकार की रिपोर्ट के लिए उपलब्ध विकल्प देखने के लिए, दर्ज करें:

cycode scan {{option}} --help