
एकमात्र ओपन-सोर्स टूल जो चल रहे डॉकर कंटेनर(ों) और डॉकर नेटवर्कों में कमजोरियों और कॉन्फ़िगरेशन समस्याओं का विश्लेषण करता है।
DockerENT एक सक्रिय E रनटाइम N एप्लिकेशन सुरक्षा स्कैनिंग T उल (RAST टूल) है। यह पायथन में लिखा गया एक प्लग करने योग्य फ्रेमवर्क है। यह एक CLI एप्लिकेशन और एक साफ वेब इंटरफ़ेस के साथ आता है, जो StreamLit का उपयोग करके लिखा गया है।
DockerENT को प्रोडक्शन डिप्लॉयमेंट में कमज़ोर सुरक्षा मिसकॉन्फ़िगरेशन का पता लगाने के लिए डिज़ाइन किया गया है, जो गंभीर परिणाम दे सकती हैं। यह एप्लिकेशन सिस्टम में चल रहे कंटेनरों से जुड़ता है और कमज़ोर और असुरक्षित रनटाइम कॉन्फ़िगरेशन की सूची प्राप्त करता है और एक रिपोर्ट तैयार करता है। यदि वेब इंटरफ़ेस के माध्यम से लागू किया जाता है, तो यह UI में ही स्कैन और ऑडिट रिपोर्ट प्रदर्शित कर सकता है।
इसे परीक्षण करने की जल्दी है? PyPi से नवीनतम stable REL डाउनलोड करें और वेब ऐप चलाएँ, बाकी सब सहज है।
pip install DockerENT
फिर एप्लिकेशन को इस प्रकार चलाएँ:
DockerENT -w
बस इतना ही।
DockerENT को सरलता और उपयोगिता को ध्यान में रखकर डिज़ाइन किया गया है। वर्तमान में आपको बस रिपॉजिटरी को क्लोन करना होगा और निर्भरताएँ डाउनलोड करनी होंगी या Dockerfile बनानी होगी। एक बार स्थानीय सिस्टम में निर्भरताएँ स्थापित हो जाने पर हम टूल चलाने और चल रहे कंटेनरों के लिए रनटाइम कॉन्फ़िगरेशन का विश्लेषण करने के लिए तैयार हैं।
# Download and setup
git clone https://github.com/r0hi7/DockerENT.git
cd DockerENT
make venv
source venv/bin/activate
# Run
python -m DockerENT --help
usage: Find the vulnerabilities hidden in your running container(s).
[-h] [-d [DOCKER_CONTAINER]] [-p [DOCKER_PLUGINS]]
[-d-nw [DOCKER_NETWORK]] [-p-nw [DOCKER_NW_PLUGINS]] [-w]
[-n [PROCESS_COUNT]] [-a] [-o [OUTPUT]]
optional arguments:
-h, --help show this help message and exit
-w, --web-app Run DockerENT in WebApp mode. If this parameter is
enabled, other command line flags will be ignored.
-n [PROCESS_COUNT], --process [PROCESS_COUNT]
Run scans in parallel (Process pool count).
-a, --audit Flag to check weather to audit results or not.
-d [DOCKER_CONTAINER], --docker [DOCKER_CONTAINER]
Run scan against the running container.
-p [DOCKER_PLUGINS], --plugins [DOCKER_PLUGINS]
Run scan with only specified plugins.
-p-nw [DOCKER_NW_PLUGINS], --nw-plugins [DOCKER_NW_PLUGINS]
Run scan with only specified plugins.
-d-nw [DOCKER_NETWORK], --docker-network [DOCKER_NETWORK]
Run scan against running docker-network.
-o [OUTPUT], --output [OUTPUT]
Output plugin to write data to.
# or via the container
docker build . -t dockerent
docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 8501:8501 --name dockerent dockerent
# Then just open your browser to http://localhost:8051
आरंभ करने के लिए यह त्वरित वीडियो देखें।
file और html सिंक में डेटा लिख सकते हैं।demo प्लगिन बनाने के लिए उसी फ़ाइल की प्रतिलिपि बनाएं।cp DockerENT/docker_plugins/docker_sample_plugin.py DockerENT/docker_plugins/docker_demo_plugin.py
_plugin_name = 'demo_plugin'
def scan(container, output_queue, audit=False, audit_queue=None):
_log.info('Staring {} Plugin ...'.format(_plugin_name_))
res = {}
result = {
'test_class': {
'TEST_NAME': ['good']
}
}
res[container.short_id] = {
_plugin_name_: result
}
# Do something magical.
_log.info('Completed execution of {} Plugin.'.format(_plugin_name_))
'''Make Sure you put dict of following structure in Q.
{
'contiainer_id': {
'plugin_name': {
'test_name_demo1': {
resultss:[]
},
'test_name_demo2': {
results: []
}
}
}
}
'''
output_queue.put(res)
if audit:
_audit(container, res, audit_queue)
def _audit(container, results, audit_queue):
'''Make Sure to add dict of following structure to Audit Q
res = {
"container_id": [
"_plugin_name_, WARN/INFO/ERROR, details"
]
}
'''
# Magical logic to perform Audit.
audit_queue.put(res)
-n <count> पास करें।JSON और HTML फ़ाइल में डंप कर सकता है।JSON रिपोर्ट बड़ी होती है।| Plugin Name | Plugin File | Feature | Audit |
|---|
| CMD_HISTORY | File | शेल इतिहास की पहचान करें | रूट इतिहास और उपयोगकर्ता शेल इतिहास |
| FILESYSTEM | File | RW फ़ाइल सिस्टम की पहचान करें | यदि RW फ़ाइल सिस्टम मौजूद हैं। |
| NETWORK | File | नेटवर्क स्थिति की पहचान करें | सभी मैप किए गए पोर्ट की पहचान करता है। |
| PLAINTEST_PASSWORD | File | विभिन्न फ़ाइलों में पासवर्ड की पहचान करें | |
| SECURITY_PROFILES | File | कमज़ोर सुरक्षा प्रोफ़ाइल की पहचान करें | कमज़ोर सुरक्षा प्रोफ़ाइल सूचीबद्ध करता है। |
| USER_INFO | File | उपयोगकर्ता जानकारी की पहचान करें | passwd और अन्य संवेदनशील फ़ाइलों में अनुमतियाँ सूचीबद्ध करता है |
| SYSTEM_INFO | File | डॉकर सिस्टम जानकारी की पहचान करें | कोई ऑडिट नहीं |
| FILES_INFO | File | दुनिया में लिखने योग्य निर्देशिकाओं और फ़ाइलों की पहचान करें | ऐसी सभी फ़ाइलों को सूचीबद्ध करता है |
| PROC_INFO | File | डॉकर सिस्टम में प्रक्रियाओं की सूची की पहचान करें |