
पैच-मैनेजर
उबंटू CVE-2019-14287 पैच प्रबंधक CVE-2019-14287 के विरुद्ध सुरक्षा की जाँच, शमन और सत्यापन के लिए एक GUI-आधारित प्रयोगशाला उपकरण है, जो एक sudo विशेषाधिकार-वृद्धि भेद्यता है।
यह प्रोजेक्ट उबंटू 19.04 amd64 प्रयोगशाला वातावरण के लिए विकसित किया गया था।
CVE-2019-14287 पुराने sudo संस्करणों को प्रभावित करता है। यह भेद्यता उपयोगकर्ता को sudoers नियम के साथ अनुमति देती है जो रूट को बाहर करता है, -1 या 4294967295 जैसे क्राफ्टेड संख्यात्मक उपयोगकर्ता ID का उपयोग करके प्रतिबंध को दरकिनार करती है।
उदाहरण जोखिमपूर्ण sudoers नियम:
someuser ALL=(ALL, !root) /usr/bin/vim
कमजोर sudo संस्करणों में, इसका दुरुपयोग निम्न से किया जा सकता है:
sudo -u#-1 id -u
sudo -u#4294967295 id -u
यदि आउटपुट 0 है, तो आदेश रूट के रूप में निष्पादित हुआ।
एप्लिकेशन सुरक्षा की दो परतें प्रदान करता है:
वास्तविक sudo पैकेज पैच
उपकरण sudo को अपडेट करने के लिए आधिकारिक पैकेज अपग्रेड कमांड चला सकता है।
Sudoers कॉन्फ़िगरेशन शमन
उपकरण sudoers फ़ाइलों को स्कैन करता है और !root या !#0 युक्त जोखिमपूर्ण नियमों को अक्षम करता है।
/etc/sudoers स्कैन करें/etc/sudoers.d/* स्कैन करें!root! root!#0! #0visudo -cf का उपयोग करके परिवर्तनों को मान्य करेंubuntu-cve-2019-14287-patch-manager/
├── app.py
├── scripts/
│ ├── check_system.sh
│ ├── apply_real_sudo_patch.sh
│ └── verify_patch.sh
├── assets/
├── README.md
├── .gitignore
├── logs/ रनटाइम पर उत्पन्न
├── backups/ रनटाइम पर उत्पन्न
├── package/ .deb बिल्ड के दौरान उत्पन्न
└── dist/ उत्पन्न .deb आउटपुट
निर्भरताएँ स्थापित करें:
sudo apt update
sudo apt install -y python3 python3-tk sudo
प्रोजेक्ट फ़ोल्डर पर जाएँ:
cd ~/projects/ubuntu-cve-2019-14287-patch-manager
एप्लिकेशन चलाएँ:
sudo python3 app.py
एप्लिकेशन को रूट के रूप में चलना चाहिए क्योंकि इसे निम्न तक पहुँच की आवश्यकता है:
/etc/sudoers
/etc/sudoers.d/*
प्रोजेक्ट रूट से:
mkdir -p package/DEBIAN
mkdir -p package/usr/share/ubuntu-cve-2019-14287-patch-manager
mkdir -p package/usr/local/bin
mkdir -p dist
एप्लिकेशन फ़ाइलें कॉपी करें:
cp app.py package/usr/share/ubuntu-cve-2019-14287-patch-manager/
cp -r scripts package/usr/share/ubuntu-cve-2019-14287-patch-manager/
cp -r assets package/usr/share/ubuntu-cve-2019-14287-patch-manager/
रनटाइम फ़ोल्डर बनाएँ:
mkdir -p package/usr/share/ubuntu-cve-2019-14287-patch-manager/logs
mkdir -p package/usr/share/ubuntu-cve-2019-14287-patch-manager/backups
लॉन्चर बनाएँ:
cat > package/usr/local/bin/ubuntu-cve-2019-14287-patch-manager <<'LAUNCHER'
#!/bin/bash
cd /usr/share/ubuntu-cve-2019-14287-patch-manager
exec python3 app.py
LAUNCHER
chmod +x package/usr/local/bin/ubuntu-cve-2019-14287-patch-manager
डेबियन कंट्रोल फ़ाइल बनाएँ:
cat > package/DEBIAN/control <<'CONTROL'
Package: ubuntu-cve-2019-14287-patch-manager
Version: 1.0.0
Section: utils
Priority: optional
Architecture: all
Depends: python3, python3-tk, sudo
Maintainer: Hivin Manju Sri <[email protected]>
Description: GUI patch manager for CVE-2019-14287 sudo vulnerability
A lab GUI tool for checking sudo version, applying the sudo package patch,
scanning sudoers files for risky !root or !#0 rules, disabling selected risky
rules safely, and verifying CVE-2019-14287 protection.
CONTROL
बिल्ड:
chmod 755 package/DEBIAN
chmod 644 package/DEBIAN/control
dpkg-deb --build package dist/ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb
स्थापित करें:
sudo dpkg -i dist/ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb
sudo apt --fix-broken install -y
स्थापना के बाद चलाएँ:
sudo ubuntu-cve-2019-14287-patch-manager
Check System पर क्लिक करेंApply Real Sudo Patch पर क्लिक करेंScan Sudoers Rules पर क्लिक करेंDisable Selected Risky Rules पर क्लिक करेंVerify Protection पर क्लिक करेंएप्लिकेशन किसी भी सक्रिय sudoers पंक्ति का पता लगाता है जिसमें शामिल है:
!root
! root
!#0
! #0
यह एक निश्चित उपयोगकर्ता नाम या कमांड पथ पर निर्भर नहीं करता है।
उदाहरण जोखिमपूर्ण नियम:
testone ALL=(ALL, !root) /usr/bin/vim
john ALL=(ALL,!root) /bin/bash
admin ALL=(ALL, !#0) /usr/bin/python3
%developers ALL=(ALL,!#0) /any/path
जब अक्षम किया जाता है, तो एक जोखिमपूर्ण नियम इस प्रकार बन जाता है:
# DISABLED by Ubuntu CVE-2019-14287 Patch Manager: john ALL=(ALL,!#0) /bin/bash
एप्लिकेशन निम्न का उपयोग करके सुरक्षा सत्यापित करता है:
sudo -u#-1 id -u
sudo -u#4294967295 id -u
संरक्षित परिणाम:
कमांड विफल होते हैं या UID 0 वापस नहीं करते हैं।
कमजोर परिणाम:
0
यह उपकरण प्रयोगशाला और शैक्षिक उपयोग के लिए है।
उत्पादन प्रणालियों के लिए:
(ALL, !root) का उपयोग करके व्यापक sudoers नियमों से बचें।visudo का उपयोग करके sudoers फ़ाइलों को मान्य करें।cd ~/projects/ubuntu-cve-2019-14287-patch-manager
cat >> README.md <<'EOF'
उबंटू 19.04 जीवन-अंत है, इसलिए इसके डिफ़ॉल्ट पैकेज रिपॉजिटरी आवश्यक निर्भरताएँ जैसे python3-tk प्रदान नहीं कर सकते हैं। यदि इंस्टॉलर निम्न के समान त्रुटि के साथ विफल होता है:
Depends: python3-tk but it is not installable
Unable to correct problems, you have held broken packages
नीचे दिए गए पुनर्प्राप्ति चरणों का उपयोग करें।
sudo dpkg --remove ubuntu-cve-2019-14287-patch-manager 2>/dev/null || true
sudo apt --fix-broken install -y
sudo dpkg --configure -a
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup.$(date +%F_%H-%M-%S)
sudo sed -i -E 's|http://([a-z]{2}\.)?archive.ubuntu.com/ubuntu|http://old-releases.ubuntu.com/ubuntu|g' /etc/apt/sources.list
sudo sed -i -E 's|http://security.ubuntu.com/ubuntu|http://old-releases.ubuntu.com/ubuntu|g' /etc/apt/sources.list
sudo apt update
sudo apt install -y python3-tk
wget -O ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb "https://github.com/HivinManjuSri/ubuntu-cve-2019-14287-patch-manager/releases/latest/download/ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb" && sudo apt install -y ./ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb
यदि apt install उबंटू 19.04 पर स्थानीय .deb फ़ाइल स्वीकार नहीं करता है, तो उपयोग करें:
wget -O ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb "https://github.com/HivinManjuSri/ubuntu-cve-2019-14287-patch-manager/releases/latest/download/ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb" && sudo dpkg -i ./ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb && sudo apt --fix-broken install -y
sudo ubuntu-cve-2019-14287-patch-manager
यह रिपॉजिटरी परिवर्तन मुख्य रूप से पुरानी उबंटू 19.04 प्रयोगशाला मशीनों के लिए आवश्यक है। उत्पादन प्रणालियों के लिए, जीवन-अंत रिपॉजिटरी पर निर्भर रहने के बजाय वर्तमान में समर्थित उबंटू रिलीज़ का उपयोग करें।
.deb फ़ाइल को GitHub latest release पर अपलोड करने के बाद, उपयोगकर्ता इस कमांड से एप्लिकेशन स्थापित कर सकते हैं:
wget -O ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb "https://github.com/HivinManjuSri/ubuntu-cve-2019-14287-patch-manager/releases/latest/download/ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb" && sudo apt install -y ./ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb
हिविन मंजू श्री