Translated ['linux-hardening/privilege-escalation/docker-security/seccom

This commit is contained in:
Translator 2024-10-28 17:18:03 +00:00
parent 1103553bf8
commit 1982e7d372

View file

@ -14,22 +14,14 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details>
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
{% endhint %}
## Basic Information
**Seccomp**, जिसका मतलब है Secure Computing mode, **Linux kernel की एक सुरक्षा विशेषता है जो सिस्टम कॉल को फ़िल्टर करने के लिए डिज़ाइन की गई है**। यह प्रक्रियाओं को सिस्टम कॉल के एक सीमित सेट (`exit()`, `sigreturn()`, `read()`, और `write()` पहले से खुले फ़ाइल डिस्क्रिप्टर्स के लिए) तक सीमित करता है। यदि कोई प्रक्रिया कुछ और कॉल करने की कोशिश करती है, तो इसे SIGKILL या SIGSYS का उपयोग करके कर्नेल द्वारा समाप्त कर दिया जाता है। यह तंत्र संसाधनों को वर्चुअलाइज़ नहीं करता है बल्कि प्रक्रिया को उनसे अलग करता है।
Seccomp को सक्रिय करने के दो तरीके हैं: `PR_SET_SECCOMP` के साथ `prctl(2)` सिस्टम कॉल के माध्यम से, या Linux kernels 3.17 और उससे ऊपर के लिए, `seccomp(2)` सिस्टम कॉल के माध्यम से। `/proc/self/seccomp` में लिखकर seccomp को सक्षम करने की पुरानी विधि को `prctl()` के पक्ष में हटा दिया गया है।
Seccomp को सक्रिय करने के दो तरीके हैं: `PR_SET_SECCOMP` के साथ `prctl(2)` सिस्टम कॉल के माध्यम से, या Linux kernels 3.17 और उससे ऊपर के लिए, `seccomp(2)` सिस्टम कॉल के माध्यम से। `/proc/self/seccomp` में लिखकर seccomp को सक्षम करने का पुराना तरीका `prctl()` के पक्ष में हटा दिया गया है।
एक सुधार, **seccomp-bpf**, एक अनुकूलन योग्य नीति के साथ सिस्टम कॉल को फ़िल्टर करने की क्षमता जोड़ता है, जो बर्कले पैकेट फ़िल्टर (BPF) नियमों का उपयोग करता है। इस विस्तार का उपयोग सॉफ़्टवेयर जैसे OpenSSH, vsftpd, और Chrome OS और Linux पर Chrome/Chromium ब्राउज़रों द्वारा लचीले और कुशल syscall फ़िल्टरिंग के लिए किया जाता है, जो अब अप्रयुक्त systrace के लिए एक विकल्प प्रदान करता है।
एक सुधार, **seccomp-bpf**, एक अनुकूलन योग्य नीति के साथ सिस्टम कॉल को फ़िल्टर करने की क्षमता जोड़ता है, जो Berkeley Packet Filter (BPF) नियमों का उपयोग करता है। इस विस्तार का उपयोग OpenSSH, vsftpd, और Chrome OS और Linux पर Chrome/Chromium ब्राउज़रों जैसे सॉफ़्टवेयर द्वारा लचीले और कुशल syscall फ़िल्टरिंग के लिए किया जाता है, जो Linux के अब असमर्थित systrace का एक विकल्प प्रदान करता है।
### **Original/Strict Mode**
@ -140,7 +132,7 @@ hello-world
docker run -it --security-opt seccomp=default.json modified-ubuntu strace uname
```
{% hint style="info" %}
यदि आप **Docker का उपयोग केवल एक एप्लिकेशन लॉन्च करने के लिए कर रहे हैं**, तो आप इसे **`strace`** के साथ **प्रोफाइल** कर सकते हैं और केवल उन syscalls को **अनुमति** दे सकते हैं जिनकी इसे आवश्यकता है।
यदि आप **Docker का उपयोग केवल एक एप्लिकेशन लॉन्च करने के लिए कर रहे हैं**, तो आप इसे **`strace`** के साथ **प्रोफाइल** कर सकते हैं और **केवल उन syscalls को अनुमति** दे सकते हैं जिनकी इसे आवश्यकता है।
{% endhint %}
### उदाहरण Seccomp नीति
@ -165,39 +157,23 @@ Seccomp सुविधा को स्पष्ट करने के लि
$ docker run --rm -it --security-opt seccomp:/home/smakam14/seccomp/profile.json busybox chmod 400 /etc/hosts
chmod: /etc/hosts: Operation not permitted
```
निम्नलिखित आउटपुट “docker inspect” द्वारा प्रोफ़ाइल को प्रदर्शित करता है:
निम्नलिखित आउटपुट “docker inspect” द्वारा प्रोफ़ाइल प्रदर्शित करता है:
```json
"SecurityOpt": [
"seccomp:{\"defaultAction\":\"SCMP_ACT_ALLOW\",\"syscalls\":[{\"name\":\"chmod\",\"action\":\"SCMP_ACT_ERRNO\"}]}"
]
```
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
सीखें और AWS हैकिंग का अभ्यास करें:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
सीखें और GCP हैकिंग का अभ्यास करें: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>HackTricks का समर्थन करें</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें!
* **हमारे साथ जुड़ें** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **हमें** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो करें।**
* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PR सबमिट करें।
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}
</details>
{% endhint %}