Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CyberBattleSim — एक प्रयोगात्मक एवं अनुसंधान मंच जो एक अमूर्त अनुकरणित नेटवर्क वातावरण में स्वचालित एजेंटों की परस्पर क्रिया का अध्ययन करने के लिए है। | Kitploit
उपकरण/GitHubGitHub/microsoft/cyberbattlesim
पार्श्व आंदोलनपेनिट्रेशन टेस्टिंगमशीन लर्निंगपेपर और शोधलर्निंग और शिक्षारेड टीमिंग
GitHubmicrosoft/cyberbattlesim

CyberBattleSim

एक प्रयोगात्मक एवं अनुसंधान मंच जो एक अमूर्त अनुकरणित नेटवर्क वातावरण में स्वचालित एजेंटों की परस्पर क्रिया का अध्ययन करने के लिए है।

रिपॉजिटरी देखें
1.8k28517 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CyberBattleSim

8 अप्रैल, 2021: Microsoft Security Blog पर घोषणा देखें।

CyberBattleSim एक प्रयोगात्मक अनुसंधान मंच है जो एक अनुकरणीय अमूर्त उद्यम नेटवर्क वातावरण में काम करने वाले स्वचालित एजेंटों की अंतर्क्रिया की जांच करने के लिए है। यह सिमुलेशन कंप्यूटर नेटवर्क और साइबर सुरक्षा अवधारणाओं का एक उच्च-स्तरीय अमूर्त प्रदान करता है। इसका पायथन-आधारित Open AI Gym इंटरफ़ेस सुदृढीकरण अधिगम एल्गोरिदम का उपयोग करके स्वचालित एजेंटों के प्रशिक्षण की अनुमति देता है।

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

एजेंटों के प्रदर्शन की तुलना करने के लिए हम दो मैट्रिक्स देखते हैं: अपने लक्ष्य को प्राप्त करने के लिए उठाए गए सिमुलेशन चरणों की संख्या और प्रशिक्षण युगों में सिमुलेशन चरणों पर संचयी पुरस्कार।

परियोजना के लक्ष्य

हम इस परियोजना को एक प्रयोगात्मक मंच के रूप में देखते हैं जो अमूर्त अनुकरणीय नेटवर्क वातावरण में स्वचालित एजेंटों की अंतर्क्रिया पर अनुसंधान करने के लिए है। इसे ओपन-सोर्स करके, हमें उम्मीद है कि अनुसंधान समुदाय को प्रोत्साहित किया जाएगा कि वे जांच करें कि ऐसे नेटवर्क वातावरण में साइबर-एजेंट कैसे अंतःक्रिया करते हैं और विकसित होते हैं।

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

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

एल्गोरिथमिक पक्ष पर, हम शुरुआती बिंदुओं के रूप में कुछ बुनियादी एजेंट प्रदान करते हैं, लेकिन हम यह जानने के लिए उत्सुक होंगे कि अत्याधुनिक सुदृढीकरण अधिगम एल्गोरिदम उनसे कैसे तुलना करते हैं। हमने पाया कि किसी भी कंप्यूटर सिस्टम में निहित बड़ी क्रिया स्थान सुदृढीकरण अधिगम के लिए एक विशेष चुनौती है, वीडियो गेम या रोबोट नियंत्रण जैसे अन्य अनुप्रयोगों के विपरीत। एजेंटों को प्रशिक्षित करना जो क्रेडेंशियल्स को स्टोर और पुनर्प्राप्त कर सकते हैं, आरएल तकनीकों को लागू करते समय एक और चुनौती है जहां एजेंटों में आमतौर पर आंतरिक मेमोरी नहीं होती है। ये अनुसंधान के अन्य क्षेत्र हैं जहां सिमुलेशन का उपयोग बेंचमार्किंग उद्देश्यों के लिए किया जा सकता है।

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

दस्तावेज़ीकरण

परियोजना का त्वरित परिचय पढ़ें।

निर्माण स्थिति

प्रकारशाखास्थिति
CImaster.github/workflows/ci.yml
Docker imagemaster.github/workflows/build-container.yml

बेंचमार्क

बेंचमार्क दस्तावेज़ीकरण देखें। नवीनतम रनों वाली Jupyter नोटबुक एक समर्पित टैग के तहत /notebooks/benchmarks (latest_benchmark) पर चेक-इन की गई हैं।

डेव वातावरण सेट करना

लिनक्स वातावरण में काम करने की दृढ़ता से अनुशंसा की जाती है, या तो सीधे या विंडोज पर WSL के माध्यम से। विंडोज पर सीधे Python चलाना काम करना चाहिए लेकिन अब समर्थित नहीं है।

रिपॉजिटरी को चेकआउट करके शुरू करें:

root@kitploit:~
git clone https://github.com/microsoft/CyberBattleSim.git

OS घटक

यदि नोटबुक पर papermill चलाते समय (या वैकल्पिक रूप से orca --help चलाते समय) आपको निम्न त्रुटि मिलती है:

root@kitploit:~
/home/wiblum/miniconda3/envs/cybersim/lib/orca_app/orca: error while loading shared libraries: libXss.so.1: cannot open shared object file: No such file or directory

या अन्य शेयर लाइब्रेरी जैसे libgdk_pixbuf-2.0.so.0, तो निम्न कमांड चलाएँ:

root@kitploit:~
sudo apt install libnss3-dev libgtk-3-0 libxss1 libasound2-dev libgtk2.0-0 libgconf-2-4

लिनक्स या WSL पर

निर्देश एक Linux Ubuntu वितरण (देशी और WSL दोनों) पर परीक्षण किए गए थे।

यदि conda पहले से स्थापित नहीं है, तो आपको install_conda.sh स्क्रिप्ट चलाकर इसे स्थापित करना होगा।

root@kitploit:~
bash install-conda.sh

एक बार यह हो जाने के बाद, एक नया टर्मिनल खोलें और आरंभीकरण स्क्रिप्ट चलाएँ:

root@kitploit:~
bash init.sh

यह सभी आवश्यक OS और पायथन निर्भरताओं के साथ cybersim नामक एक conda वातावरण बनाएगा।

वातावरण को सक्रिय करने के लिए चलाएँ:

root@kitploit:~
conda activate cybersim

लिनक्स के लिए विंडोज सबसिस्टम

विंडोज पर समर्थित डेव वातावरण WSL के माध्यम से है। आपको पहले अपनी विंडोज मशीन पर एक Ubuntu WSL वितरण स्थापित करना होगा, और फिर लिनक्स निर्देशों (अगला खंड) के साथ आगे बढ़ना होगा।

WSL से Git प्रमाणीकरण

Git के साथ प्रमाणीकरण करने के लिए, आप या तो SSH-आधारित प्रमाणीकरण का उपयोग कर सकते हैं या वैकल्पिक रूप से स्वचालित रूप से PAT टोकन उत्पन्न करने के लिए क्रेडेंशियल-हेल्पर ट्रिक का उपयोग कर सकते हैं। बाद वाला WSL के तहत निम्न कमांड चलाकर किया जा सकता है (यहाँ अधिक जानकारी):

root@kitploit:~
git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/libexec/git-core/git-credential-manager.exe"

WSL पर Docker

अपने वातावरण को एक डॉकर कंटेनर के भीतर चलाने के लिए, हम निम्नलिखित निर्देशों का उपयोग करके लिनक्स (WSL) पर विंडोज सबसिस्टम के माध्यम से docker चलाने की अनुशंसा करते हैं: WSL पर विंडोज के तहत डॉकर स्थापित करना।

विंडोज (असमर्थित)

यह विधि अब बनाए नहीं रखी गई है, कृपया इसके बजाय WSL सबसिस्टम लिनक्स वातावरण के तहत चलाना पसंद करें। लेकिन यदि आप जोर देते हैं तो आप Python 3.10 स्थापित करके शुरू कर सकते हैं, फिर एक Powershell प्रॉम्प्ट में ./init.ps1 स्क्रिप्ट चलाएँ।

Docker का उपयोग करके त्वरित शुरुआत

सबसे तेज़ तरीका Docker कंटेनर के माध्यम से है।

नोट: लाइसेंसिंग कारणों से, हम किसी भी बिल्ड आर्टिफैक्ट को सार्वजनिक रूप से पुनर्वितरित नहीं करते हैं। विशेष रूप से, नीचे दिए गए कमांड में संदर्भित डॉकर रजिस्ट्री spinshot.azurecr.io केवल परियोजना अनुरक्षकों के लिए निजी रखा गया है।

एक वर्कअराउंड के रूप में, आप प्रदान किए गए Dockerfile का उपयोग करके स्वयं डॉकर इमेज को फिर से बना सकते हैं, परिणामी इमेज को अपनी स्वयं की डॉकर रजिस्ट्री पर प्रकाशित कर सकते हैं और नीचे दिए गए कमांड में रजिस्ट्री नाम बदल सकते हैं।

Docker रजिस्ट्री से चलाना

root@kitploit:~
commit=7c1f8c80bc53353937e3c69b0f5f799ebb2b03ee
docker login spinshot.azurecr.io
docker pull spinshot.azurecr.io/cyberbattle:$commit
docker run -it spinshot.azurecr.io/cyberbattle:$commit python -m cyberbattle.agents.baseline.run

Docker इमेज को फिर से बनाना

root@kitploit:~
docker build -t cyberbattle:1.1 .
docker run -it -v "$(pwd)":/source --rm cyberbattle:1.1 python -m cyberbattle.agents.baseline.run

अपने वातावरण की जाँच करें

एक बेसलाइन RL एजेंट के साथ एक सिमुलेशन चलाने के लिए निम्नलिखित कमांड चलाएँ:

root@kitploit:~
python -m cyberbattle.agents.baseline.run --training_episode_count 5 --eval_episode_count 3 --iteration_count 100 --rewardplot_width 80  --chain_size=4 --ownership_goal 0.2

python -m cyberbattle.agents.baseline.run --training_episode_count 5 --eval_episode_count 3 --iteration_count 100 --rewardplot_width 80  --chain_size=4 --reward_goal 50 --ownership_goal 0

यदि सब कुछ सही ढंग से सेट है तो आपको ऐसा आउटपुट मिलना चाहिए:

root@kitploit:~
torch cuda available=True
###### DQL
Learning with: episode_count=1,iteration_count=10,ϵ=0.9,ϵ_min=0.1, ϵ_expdecay=5000,γ=0.015, lr=0.01, replaymemory=10000,
batch=512, target_update=10
  ## Episode: 1/1 'DQL' ϵ=0.9000, γ=0.015, lr=0.01, replaymemory=10000,
batch=512, target_update=10
Episode 1|Iteration 10|reward:  139.0|Elapsed Time: 0:00:00|###################################################################|
###### Random search
Learning with: episode_count=1,iteration_count=10,ϵ=1.0,ϵ_min=0.0,
  ## Episode: 1/1 'Random search' ϵ=1.0000,
Episode 1|Iteration 10|reward:  194.0|Elapsed Time: 0:00:00|###################################################################|
simulation ended
Episode duration -- DQN=Red, Random=Green
   10.00  ┼
Cumulative rewards -- DQN=Red, Random=Green
  194.00  ┼      ╭──╴
  174.60  ┤      │
  155.20  ┤╭─────╯
  135.80  ┤│     ╭──╴
  116.40  ┤│     │
   97.00  ┤│    ╭╯
   77.60  ┤│    │
   58.20  ┤╯ ╭──╯
   38.80  ┤  │
   19.40  ┤  │
    0.00  ┼──╯

Jupyter नोटबुक

परियोजना से जल्दी से परिचित होने के लिए, आप जिमनैजियम वातावरण के साथ इंटरैक्टिव रूप से खेलने के लिए प्रदान की गई Jupyter नोटबुक में से एक खोल सकते हैं।

.py नोटबुक पर नोट्स:

  • हमारी नोटबुक Git में .py फ़ाइलों के रूप में चेक-इन की गई हैं। उन्हें VSCode में या Jupytext एक्सटेंशन का उपयोग करके Jupyter में सीधे खोला और चलाया जा सकता है।
  • आउटपुट .ipynb फ़ाइलों को bash स्क्रिप्ट run_benchmark.sh चलाकर papermill का उपयोग करके स्वचालित रूप से पुनर्जीवित किया जा सकता है।
  • हम एक अलग git टैग में संपूर्ण आउटपुट और प्लॉट के साथ संबंधित .ipynb-नोटबुक का एक स्नैपशॉट भी प्रकाशित करते हैं। Jupyter नोटबुक आउटपुट का नवीनतम स्नैपशॉट, बेंचमार्क सहित, निम्न git टैग से सुलभ है: /notebooks/benchmarks (latest_benchmark)।

शुरू करने के लिए कुछ नोटबुक:

  • 'Capture The Flag' खिलौना वातावरण नोटबुक:

    • रैंडम एजेंट
    • मानव खिलाड़ी के लिए इंटरैक्टिव सत्र
    • इंटरैक्टिव सत्र - पूरी तरह से हल
  • चेन वातावरण नोटबुक:

    • रैंडम एजेंट
  • अन्य वातावरण:

    • यादृच्छिक रूप से उत्पन्न वातावरण के साथ इंटरैक्टिव सत्र
    • यादृच्छिक रूप से उत्पन्न नेटवर्क पर खेलने वाला रैंडम एजेंट
  • बेंचमार्क: निम्नलिखित नोटबुक विभिन्न वातावरणों पर बेसलाइन एजेंटों का बेंचमार्क मूल्यांकन दिखाती हैं।

    • दिए गए वातावरण पर बेंचमार्किंग
    • बुनियादी रक्षक के साथ चेन वातावरण पर बेंचमार्क
    • DQL ट्रांसफर लर्निंग मूल्यांकन
    • क्रेडेंशियल लुकअप के साथ एप्सिलॉन ग्रीडी
    • सारणीबद्ध Q अधिगम

Jupyter नोटबुक आउटपुट का नवीनतम स्नैपशॉट, बेंचमार्क सहित, निम्न git टैग से सुलभ है: /notebooks/benchmarks (latest_benchmark)।

Gym वातावरण कैसे तत्काल करें?

निम्नलिखित कोड दिखाता है कि OpenAI Gym वातावरण CyberBattleChain-v0 का एक उदाहरण कैसे बनाया जाए, जो एक चेन-जैसी नेटवर्क संरचना पर आधारित वातावरण है, जिसमें 10 नोड्स (size=10) हैं जहां एजेंट का लक्ष्य नेटवर्क पर पूर्ण स्वामित्व प्राप्त करना (own_atleast_percent=1.0) या 80% नेटवर्क उपलब्धता SLA को तोड़ना (maintain_sla=0.80) है, जबकि नेटवर्क की निगरानी और सुरक्षा बुनियादी संभाव्यता-मॉडल वाले रक्षक (defender_agent=ScanAndReimageCompromisedMachines) द्वारा की जा रही है:

root@kitploit:~
import cyberbattle._env.cyberbattle_env

cyberbattlechain_defender =
  gym.make('CyberBattleChain-v0',
      size=10,
      attacker_goal=AttackerGoal(
          own_atleast=0,
          own_atleast_percent=1.0
      ),
      defender_constraint=DefenderConstraint(
          maintain_sla=0.80
      ),
      defender_agent=ScanAndReimageCompromisedMachines(
          probability=0.6,
          scan_capacity=2,
          scan_frequency=5))

अन्य नेटवर्क टोपोलॉजी आज़माने के लिए, मशीनों और कमजोरियों का अपना सेट परिभाषित करने के लिए chainpattern.py पर उदाहरण लें, फिर Gym वातावरण घोषित और पंजीकृत करने के लिए मॉड्यूल इनिशियलाइज़र में एक प्रविष्टि जोड़ें।

योगदान

यह परियोजना योगदान और सुझावों का स्वागत करती है। अधिकांश योगदानों के लिए आपको एक योगदानकर्ता लाइसेंस अनुबंध (CLA) से सहमत होना आवश्यक है, यह घोषित करते हुए कि आपके पास आपके योगदान का उपयोग करने का अधिकार है, और वास्तव में करते हैं। विवरण के लिए, https://cla.opensource.microsoft.com पर जाएँ।

जब आप एक पुल अनुरोध सबमिट करते हैं, तो एक CLA बॉट स्वचालित रूप से निर्धारित करेगा कि क्या आपको एक CLA प्रदान करने की आवश्यकता है और PR को उचित रूप से सजाएगा (जैसे, स्थिति जांच, टिप्पणी)। बस बॉट द्वारा प्रदान किए गए निर्देशों का पालन करें। आपको हमारे CLA का उपयोग करने वाले सभी रिपॉजिटरी में केवल एक बार ऐसा करने की आवश्यकता होगी।

इस परियोजना ने माइक्रोसॉफ्ट ओपन सोर्स आचार संहिता को अपनाया है। अधिक जानकारी के लिए आचार संहिता FAQ देखें या किसी भी अतिरिक्त प्रश्न या टिप्पणी के लिए [email protected] से संपर्क करें।

योगदान के लिए विचार

यहाँ योगदान करने के कुछ विचार दिए गए हैं: सिमुलेशन को बढ़ाएँ (ईवेंट-आधारित, सिमुलेशन को परिष्कृत करें, …), मौजूदा सिमुलेशन पर एक RL एल्गोरिदम को प्रशिक्षित करें, एजेंटों की नवीनता का मूल्यांकन और तुलना करने के लिए बेंचमार्क लागू करें, RL-एजेंट को प्रशिक्षित करने के लिए और अधिक नेटवर्क जनरेटिव मोड जोड़ें, दस्तावेज़ में योगदान करें, बग ठीक करें।

अधिक विचारों के लिए wiki भी देखें।

इस परियोजना का हवाला देना

root@kitploit:~
@misc{msft:cyberbattlesim,
  Author = {Microsoft Defender Research Team.}
  Note = {Created by Christian Seifert, Michael Betser, William Blum, James Bono, Kate Farris, Emily Goren, Justin Grana, Kristian Holsheimer, Brandon Marken, Joshua Neil, Nicole Nichols, Jugal Parikh, Haoran Wei.},
  Publisher = {GitHub},
  Howpublished = {\url{https://github.com/microsoft/cyberbattlesim}},
  Title = {CyberBattleSim},
  Year = {2021}
}

गोपनीयता पर नोट

इस परियोजना में कोई ग्राहक डेटा शामिल नहीं है। प्रदान किए गए मॉडल और नेटवर्क टोपोलॉजी पूरी तरह से काल्पनिक हैं। प्रदान किए गए कोड के उपयोगकर्ता सिमुलेशन के लिए सभी इनपुट प्रदान करते हैं और उनके पास किसी भी प्रदत्त डेटा का उपयोग करने के लिए आवश्यक अनुमतियाँ होनी चाहिए।

ट्रेडमार्क

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

टूल डाउनलोड करें