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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
bpflock — eBPF-संचालित सुरक्षा उपकरण जो Linux मशीनों को लॉक और ऑडिट करने के लिए है। यह कर्नेल सुविधाओं को प्रतिबंधित करता है, फ़ाइल रहित निष्पादन को रोकता है, मेमोरी की सुरक्षा करता है, और घोषणात्मक प्रोफाइल के माध्यम से कंटेनरों और IoT उपकरणों को कठोर बनाता है। | Kitploit
उपकरण/GitHubGitHub/linux-lock/bpflock
रक्षात्मक उपकरणकंटेनर सुरक्षाIoT सुरक्षा
GitHublinux-lock/bpflock

bpflock

eBPF-संचालित सुरक्षा उपकरण जो Linux मशीनों को लॉक और ऑडिट करने के लिए है। यह कर्नेल सुविधाओं को प्रतिबंधित करता है, फ़ाइल रहित निष्पादन को रोकता है, मेमोरी की सुरक्षा करता है, और घोषणात्मक प्रोफाइल के माध्यम से कंटेनरों और IoT उपकरणों को कठोर बनाता है।

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

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

सभी देखें →

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

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

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

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

bpflock - लिनक्स मशीनों को लॉक करें

Bpflock Logo

bpflock - लिनक्स मशीनों को लॉक करने और ऑडिट करने के लिए eBPF-संचालित सुरक्षा।

नोट: bpflock वर्तमान में प्रायोगिक चरण में है, यह टूट सकता है, विकल्प और सुरक्षा अर्थ बदल सकते हैं, कुछ BPF प्रोग्राम Cilium ebpf library का उपयोग करने के लिए अपडेट किए जाएंगे।

अनुभाग

  • 1. परिचय
  • 2. कार्यक्षमता अवलोकन
    • 2.1 सुरक्षा विशेषताएं
    • 2.2 अर्थशास्त्र
  • 3. परिनियोजन
  • 4. दस्तावेज़ीकरण
  • 5. निर्माण

1. परिचय

bpflock लिनक्स सुरक्षा को मजबूत करने के लिए eBPF का उपयोग करता है। लिनक्स सुविधाओं की एक विस्तृत श्रृंखला तक पहुंच को प्रतिबंधित करके, bpflock हमले की सतह को कम करने और कुछ प्रसिद्ध हमला तकनीकों को अवरुद्ध करने में सक्षम है।

केवल कंटेनर प्रबंधकों, systemd और अन्य कंटेनरों/प्रोग्रामों जैसे प्रोग्राम जो होस्ट pid and network namespaces में चलते हैं, को पूर्ण लिनक्स सुविधाओं तक पहुंच की अनुमति है; अपने स्वयं के नेमस्पेस में चलने वाले कंटेनर और एप्लिकेशन प्रतिबंधित होंगे। यदि bpflock bpf प्रोग्राम restricted प्रोफ़ाइल के तहत चलते हैं तो विशेषाधिकार प्राप्त प्रोग्रामों सहित सभी प्रोग्रामों/कंटेनरों की पहुंच अस्वीकार कर दी जाएगी।

bpflock Linux Security Modules + BPF सहित कई सुरक्षा सुविधाओं का लाभ उठाकर लिनक्स मशीनों की सुरक्षा करता है।

वास्तुकला और सुरक्षा डिजाइन नोट:

  • bpflock एक अनिवार्य अभिगम नियंत्रण लेबलिंग समाधान नहीं है, और इसका उद्देश्य AppArmor, SELinux और अन्य MAC समाधानों को बदलना नहीं है। bpflock एक सरल घोषणात्मक सुरक्षा प्रोफ़ाइल का उपयोग करता है।
  • bpflock कई छोटे bpf प्रोग्राम प्रदान करता है जिनका क्लाउड नेटिव डिप्लॉयमेंट से लेकर Linux IoT उपकरणों तक कई संदर्भों में पुन: उपयोग किया जा सकता है।
  • bpflock रूट को कुछ लिनक्स सुविधाओं तक पहुंचने से प्रतिबंधित करने में सक्षम है, हालांकि यह दुष्ट रूट से रक्षा नहीं करता है।

2. कार्यक्षमता अवलोकन

2.1 सुरक्षा विशेषताएं

bpflock अनेक सुरक्षा सुरक्षाएं प्रदान करता है जिन्हें निम्नानुसार वर्गीकृत किया जा सकता है:

  • मेमोरी सुरक्षा

    • कर्नेल इमेज लॉक-डाउन
    • कर्नेल मॉड्यूल सुरक्षा
    • BPF सुरक्षा
  • प्रक्रिया सुरक्षा

    • फाइललेस मेमोरी निष्पादन
    • नेमस्पेस सुरक्षा
  • हार्डवेयर जोड़ने के हमले

    • USB जोड़ने की सुरक्षा
  • सिस्टम और एप्लिकेशन ट्रेसिंग

    • एप्लिकेशन निष्पादन को ट्रेस करें
    • विशेषाधिकार प्राप्त सिस्टम ऑपरेशन को ट्रेस करें
  • फाइलसिस्टम सुरक्षा

    • केवल-पढ़ने योग्य रूट फाइलसिस्टम सुरक्षा
    • sysfs सुरक्षा
  • नेटवर्क सुरक्षा

    • bpflock भविष्य में एक सरल नेटवर्क सुरक्षा शामिल कर सकता है जिसका उपयोग एकल मशीन वर्कलोड या Linux-IoT में किया जा सकता है, लेकिन इसमें क्लाउड नेटिव सुरक्षा शामिल नहीं होगी। Cilium और अन्य कुबरनेट्स CNI-संबंधित समाधान कहीं बेहतर हैं।

2.2 अर्थशास्त्र

bpflock सुरक्षा अर्थशास्त्र को सरल रखता है। यह सुरक्षा स्पेक्ट्रम को व्यापक रूप से कवर करने और विशिष्ट लिनक्स सुविधाओं तक पहुंच को प्रतिबंधित करने के लिए तीन वैश्विक प्रोफ़ाइलों का समर्थन करता है।

  • profile: यह वैश्विक प्रोफ़ाइल है जिसे प्रति bpf प्रोग्राम लागू किया जा सकता है, यह निम्नलिखित में से एक लेता है:

    • allow|none|privileged : ये समान हैं, ये सबसे कम सुरक्षित प्रोफ़ाइल को परिभाषित करते हैं। इस प्रोफ़ाइल में सभी प्रक्रियाओं के लिए पहुंच लॉग और अनुमत है। सुरक्षा घटनाओं को लॉग करने के लिए उपयोगी।
    • baseline : प्रतिबंधात्मक प्रोफ़ाइल जहां सभी प्रक्रियाओं के लिए पहुंच अस्वीकार कर दी गई है, सिवाय विशेषाधिकार प्राप्त एप्लिकेशन और कंटेनरों के जो होस्ट नेमस्पेस में चलते हैं, या bpflock_cgroupmap bpf मानचित्र में प्रति cgroup अनुमत प्रोफ़ाइलों के।
    • restricted : भारी प्रतिबंधित प्रोफ़ाइल जहां सभी प्रक्रियाओं के लिए पहुंच अस्वीकार कर दी गई है।
  • Allowed या blocked संचालन/आदेश:

    allow|privileged या baseline प्रोफ़ाइलों के तहत, अनुमत या अवरुद्ध आदेशों की एक सूची निर्दिष्ट की जा सकती है और लागू की जाएगी।

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

bpf सुरक्षा उदाहरणों के लिए bpflock कॉन्फ़िगरेशन उदाहरण देखें।

3. परिनियोजन

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

bpflock को निम्नलिखित की आवश्यकता है:

  • निम्नलिखित कॉन्फ़िगरेशन के साथ लिनक्स कर्नेल संस्करण >= 5.13:

    root@kitploit:~
    CONFIG_BPF_SYSCALL=y
    CONFIG_DEBUG_INFO=y
    CONFIG_DEBUG_INFO_BTF=y
    CONFIG_KPROBES=y
    CONFIG_LSM="...,bpf"
    CONFIG_BPF_LSM=y
    
  • स्पष्ट रूप से BTF सक्षम कर्नेल।

BPF LSM समर्थन सक्षम करें

यदि आपका कर्नेल CONFIG_BPF_LSM=y के साथ संकलित किया गया था, तो पुष्टि करने के लिए /boot/config-* देखें, लेकिन bpflock चलाने पर यह निम्नलिखित संदेश के साथ विफल होता है:

root@kitploit:~
must have a kernel with 'CONFIG_BPF_LSM=y' 'CONFIG_LSM=\"...,bpf\"'"

फिर उबंटू पर उदाहरण के लिए BPF LSM सक्षम करने के लिए:

  1. /etc/default/grub फ़ाइल को निश्चित रूप से विशेषाधिकार प्राप्त के रूप में खोलें।
  2. निम्नलिखित को GRUB_CMDLINE_LINUX चर में जोड़ें और सहेजें।
    root@kitploit:~
    "lsm=lockdown,capability,yama,apparmor,bpf"
    
    या
    root@kitploit:~
    GRUB_CMDLINE_LINUX="lsm=lockdown,capability,yama,apparmor,bpf"
    
  3. grub कॉन्फ़िगरेशन को इसके साथ अपडेट करें:
    root@kitploit:~
    sudo update-grub2
    
  4. अपने कर्नेल में रिबूट करें।

3.2 डॉकर परिनियोजन

डिफ़ॉल्ट allow या privileged प्रोफ़ाइल (सबसे कम सुरक्षित प्रोफ़ाइल) का उपयोग करके चलाने के लिए:

root@kitploit:~
docker run --name bpflock -it --rm --cgroupns=host \
  --pid=host --privileged \
  -v /sys/kernel/:/sys/kernel/ \
  -v /sys/fs/bpf:/sys/fs/bpf linuxlock/bpflock

फाइललेस बाइनरी निष्पादन

फाइललेस बाइनरी निष्पादन को लॉग और प्रतिबंधित करने के लिए इसके साथ चलाएं:

root@kitploit:~
docker run --name bpflock -it --rm --cgroupns=host --pid=host --privileged \
  -e "BPFLOCK_FILELESSLOCK_PROFILE=restricted" \
  -v /sys/kernel/:/sys/kernel/ \
  -v /sys/fs/bpf:/sys/fs/bpf linuxlock/bpflock

restricted प्रोफ़ाइल के तहत चलने पर, कंटेनर लॉग प्रदर्शित करेगा:

root@kitploit:~
time="2022-02-04T14:54:33Z" level=info msg="event=syscall_execve tgid=1833 pid=1833 ppid=1671 uid=1000 cgroupid=8821 comm=loader pcomm=bash filename=./loader retval=0" bpfprog=execsnoop subsys=bpf

time="2022-02-04T14:54:33Z" level=info msg="event=lsm_bprm_creds_from_file tgid=1833 pid=1833 ppid=1671 uid=1000 cgroupid=8821 comm=loader pcomm=bash filename=memfd:memfd-test retval=-1 reason=denied (restricted)" bpfprog=filelesslock subsys=bpf

time="2022-02-04T14:54:33Z" level=info msg="event=syscall_execve tgid=1833 pid=1833 ppid=0 uid=1000 cgroupid=8821 comm= pcomm= filename=/proc/self/fd/3 retval=-1" bpfprog=execsnoop subsys=bpf

restricted प्रोफ़ाइल के तहत चलने से चीजें टूट सकती हैं, यही कारण है कि डिफ़ॉल्ट प्रोफ़ाइल allow है।

कर्नेल मॉड्यूल सुरक्षा

कर्नेल मॉड्यूल सुरक्षा लागू करने के लिए पर्यावरण चर BPFLOCK_KMODLOCK_PROFILE=baseline या BPFLOCK_KMODLOCK_PROFILE=restricted के साथ चलाएं:

root@kitploit:~
docker run --name bpflock -it --rm --cgroupns=host --pid=host --privileged \
  -e "BPFLOCK_KMODLOCK_PROFILE=restricted" \
  -v /sys/kernel/:/sys/kernel/ \
  -v /sys/fs/bpf:/sys/fs/bpf linuxlock/bpflock

उदाहरण:

root@kitploit:~
$ sudo unshare -p -n -f
# modprobe xfs
modprobe: ERROR: could not insert 'xfs': Operation not permitted
root@kitploit:~
time="2022-02-07T06:50:25+01:00" level=info msg="event=syscall_execve tgid=52323 pid=52323 ppid=52288 uid=0 cgroupid=7014 comm=modprobe pcomm=bash filename=/usr/sbin/modprobe retval=0" bpfprog=execsnoop subsys=bpf

time="2022-02-07T06:50:25+01:00" level=info msg="event=lsm_kernel_read_file operation=loading module tgid=52323 pid=52323 ppid=52288 uid=0 cgroupid=7014 comm=modprobe pcomm=bash filename=xfs.ko retval=-1 reason=denied (restricted)" bpfprog=kmodlock subsys=bpf

कर्नेल इमेज लॉक-डाउन

कर्नेल इमेज लॉक-डाउन लागू करने के लिए पर्यावरण चर BPFLOCK_KIMGLOCK_PROFILE=baseline के साथ चलाएं:

root@kitploit:~
docker run --name bpflock -it --rm --cgroupns=host --pid=host --privileged \
  -e "BPFLOCK_KIMGLOCK_PROFILE=baseline" \
  -v /sys/kernel/:/sys/kernel/ \
  -v /sys/fs/bpf:/sys/fs/bpf linuxlock/bpflock
root@kitploit:~
$ sudo unshare -f -p -n bash
# head -c 1 /dev/mem
head: cannot open '/dev/mem' for reading: Operation not permitted
root@kitploit:~
time="2022-02-07T06:57:22+01:00" level=info msg="event=syscall_execve tgid=52428 pid=52428 ppid=52288 uid=0 cgroupid=7014 comm=head pcomm=bash filename=/usr/bin/head retval=0" bpfprog=execsnoop subsys=bpf

time="2022-02-07T06:57:22+01:00" level=info msg="event=lsm_locked_down operation=/dev/mem,kmem,port tgid=52428 pid=52428 ppid=52288 uid=0 cgroupid=7014 comm=head pcomm=bash retval=-1 reason=denied (baseline)" bpfprog=kimglock subsys=bpf

BPF सुरक्षा

BPF प्रतिबंध लागू करने के लिए पर्यावरण चर BPFLOCK_BPFRESTRICT_PROFILE=baseline या BPFLOCK_BPFRESTRICT_PROFILE=restricted के साथ चलाएं:

root@kitploit:~
docker run --name bpflock -it --rm --cgroupns=host --pid=host --privileged \
  -e "BPFLOCK_BPFRESTRICT_PROFILE=baseline" \
  -v /sys/kernel/:/sys/kernel/ \
  -v /sys/fs/bpf:/sys/fs/bpf linuxlock/bpflock

अलग pid और नेटवर्क नेमस्पेस में चलाने और bpftool का उपयोग करने का उदाहरण:

root@kitploit:~
$ sudo unshare -f -p -n bash
# bpftool prog
Error: can't get next program: Operation not permitted
root@kitploit:~
time="2022-02-04T15:40:56Z" level=info msg="event=lsm_bpf tgid=2378 pid=2378 ppid=2364 uid=0 cgroupid=9458 comm=bpftool pcomm=bash filename= retval=-1 reason=baseline" bpfprog=bpfrestrict subsys=bpf

time="2022-02-04T15:40:56Z" level=info msg="event=lsm_bpf tgid=2378 pid=2378 ppid=2364 uid=0 cgroupid=9458 comm=bpftool pcomm=bash filename= retval=-1 reason=baseline" bpfprog=bpfrestrict subsys=bpf

-e "BPFLOCK_BPFRESTRICT_PROFILE=restricted" प्रोफ़ाइल के साथ चलाने पर सभी के लिए bpf अस्वीकार हो जाएगा:

root@kitploit:~
time="2022-02-04T15:44:13Z" level=info msg="event=syscall_execve tgid=2500 pid=2500 ppid=2499 uid=0 cgroupid=9458 comm=bpftool pcomm=sudo filename=./tools/amd64/bpftool retval=0" bpfprog=execsnoop subsys=bpf

time="2022-02-04T15:44:13Z" level=info msg="event=lsm_bpf tgid=2500 pid=2500 ppid=2499 uid=0 cgroupid=9458 comm=bpftool pcomm=sudo filename= retval=-1 reason=denied (restricted)" bpfprog=bpfrestrict subsys=bpf

time="2022-02-04T15:44:13Z" level=info msg="event=lsm_bpf tgid=2500 pid=2500 ppid=2499 uid=0 cgroupid=9458 comm=bpftool pcomm=sudo filename= retval=-1 reason=denied (restricted)" bpfprog=bpfrestrict subsys=bpf

3.3 कॉन्फ़िगरेशन और पर्यावरण फ़ाइल

बाइंड माउंट के रूप में कॉन्फ़िगरेशन पास करना निम्नलिखित कमांड का उपयोग करके प्राप्त किया जा सकता है।

मान लें bpflock.yaml और bpf.d प्रोफ़ाइलें कॉन्फ़िग्स वर्तमान निर्देशिका के अंदर bpflock निर्देशिका में हैं, तो हम बस इसका उपयोग कर सकते हैं:

root@kitploit:~
ls bpflock/
  bpf.d  bpflock.d  bpflock.yaml
root@kitploit:~
docker run --name bpflock -it --rm --cgroupns=host --pid=host --privileged \
  -v $(pwd)/bpflock/:/etc/bpflock \
  -v /sys/kernel/:/sys/kernel/ \
  -v /sys/fs/bpf:/sys/fs/bpf linuxlock/bpflock

पर्यावरण चर को फ़ाइलों का उपयोग करके --env-file के साथ भी पास किया जा सकता है। सभी पैरामीटर को BPFLOCK_$VARIABLE_NAME=VALUE प्रारूप का उपयोग करके पर्यावरण चर के रूप में पास किया जा सकता है।

फ़ाइल में पर्यावरण चर के साथ उदाहरण चलाएं:

root@kitploit:~
docker run --name bpflock -it --rm --cgroupns=host --pid=host --privileged \
  --env-file bpflock.env.list \
  -v /sys/kernel/:/sys/kernel/ \
  -v /sys/fs/bpf:/sys/fs/bpf linuxlock/bpflock

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

दस्तावेज़ीकरण फ़ाइलें यहां पाई जा सकती हैं।

5. निर्माण

bpflock निर्माण के लिए docker BuildKit का उपयोग करता है और कुछ जांच और परीक्षण चलाने के लिए Golang का उपयोग करता है। bpflock उबंटू कंटेनर के अंदर बनाया गया है जो मानक गोलांग पैकेज डाउनलोड करता है।

bpflock डॉकर कंटेनर बनाने के लिए निम्नलिखित चलाएं:

root@kitploit:~
git submodule update --init --recursive
make

Bpf प्रोग्राम libbpf का उपयोग करके बनाए जाते हैं। उपयोग की गई डॉकर इमेज उबंटू है।

यदि आप डॉकर का उपयोग किए बिना सीधे bpf प्रोग्राम बनाना चाहते हैं, तो उबंटू पर:

root@kitploit:~
sudo apt install -y pkg-config bison binutils-dev build-essential \
        flex libc6-dev clang-12 libllvm12 llvm-12-dev libclang-12-dev \
        zlib1g-dev libelf-dev libfl-dev gcc-multilib zlib1g-dev \
        libcap-dev libiberty-dev libbfd-dev

फिर चलाएं:

root@kitploit:~
make bpf-programs

इस मामले में उत्पन्न प्रोग्राम ./bpf/build/... निर्देशिका के अंदर होंगे।

क्रेडिट्स

bpflock बहुत सारे संसाधनों का उपयोग करता है जिसमें Cilium और bcc प्रोजेक्ट्स का स्रोत कोड शामिल है।

लाइसेंस

bpflock यूज़र स्पेस घटक Apache License, Version 2.0 के तहत लाइसेंस प्राप्त हैं। जहां नोट किया गया है, BPF कोड General Public License, Version 2.0 के तहत लाइसेंस प्राप्त है।

टूल डाउनलोड करें
allow | privileged
privileged
baseline
  • --protection-block : अवरुद्ध संचालनों की अल्पविराम-पृथक सूची। यह allow|privileged और baseline प्रोफ़ाइलों के तहत मान्य है, यह पूर्ण restricted प्रोफ़ाइल का उपयोग किए बिना कुछ सुविधाओं तक पहुंच को प्रतिबंधित करने की अनुमति देता है जो कुछ विशिष्ट एप्लिकेशनों को तोड़ सकता है। baseline या privileged प्रोफ़ाइल का उपयोग करने से अधिकांश लिनक्स सुविधाओं तक पहुंच का द्वार खुल जाता है, लेकिन --protection-block विकल्प के साथ इस पहुंच में से कुछ को अवरुद्ध किया जा सकता है।