
तेज़, ऑडिट करने योग्य Linux शमन CVE-2026-31431 कॉपी फेल के लिए: algif_aead ब्लॉक, सत्यापन, और AF_ALG seccomp हार्डनिंग।
______ ______ _ __ ______ __
/ ____/___ ____ __ _/ ____/___ _(_) / / ____/_ ______ __________/ /
/ / / __ \/ __ \/ / / / /_ / __ `/ / / / / __/ / / / __ `/ ___/ __ /
/ /___/ /_/ / /_/ / /_/ / __/ / /_/ / / / / /_/ / /_/ / /_/ / / / /_/ /
\____/\____/ .___/\__, /_/ \__,_/_/_/ \____/\__,_/\__,_/_/ \__,_/
/_/ /____/
CVE-2026-31431 "Copy Fail" के लिए तेज़, ऑडिटेबल Linux एक्सपोज़र आकलन और शमन, जब तक कर्नेल पैच नहीं हो जाते।
CopyFail Guard Linux sysadmins, DevSecOps इंजीनियरों, प्लेटफ़ॉर्म टीमों और आपात प्रतिक्रिया प्रबंधकों के लिए एक रक्षात्मक संचालन उपकरण है। यह Linux algif_aead / AF_ALG समस्या के एक्सपोज़र को कम करने में मदद करता है, निम्नलिखित तरीकों से:
algif_aead उपलब्ध है, लोडेड है, बिल्ट-इन है या पहले से ब्लॉक हैmodprobe.d ब्लॉक स्थापित करना और सुरक्षित होने पर मॉड्यूल को अनलोड करनाअंतिम समाधान: अपने विक्रेता का पैच किया गया कर्नेल स्थापित करें और रिबूट करें।
यह उपकरण प्रकटीकरण और पूर्ण फ्लीट पैचिंग के बीच के परिचालन अंतर को कवर करता है।
splice, setuid परिवर्तन, विशेषाधिकार वृद्धि या विनाशकारी जांच के बिना एक्सपोज़र और AF_ALG पहुंच की जाँच करता है।/etc/modprobe.d/99-copyfail-guard.conf, और रोलबैक केवल उस फ़ाइल को हटाता है।seccomp-patch आपके रनटाइम हार्डनिंग को बदलने के बजाय मौजूदा Docker/Podman/Kubernetes seccomp प्रोफाइल में AF_ALG अस्वीकार जोड़ता है।assess --json और प्रलेखित निकास कोड फ्लीट स्कैन, SIEM कैप्चर और परिवर्तन-प्रबंधन प्रमाण का समर्थन करते हैं।यदि आप Linux होस्ट पर हैं और त्वरित उत्तर चाहते हैं:
git clone --depth 1 https://github.com/juliosuas/copyfail-guard.git
cd copyfail-guard
sudo ./bin/copyfail-guard.sh doctor
sudo ./bin/copyfail-guard.sh assess
यदि निर्णय एक्सपोज़्ड है और algif_aead मॉड्यूलर है:
sudo ./bin/copyfail-guard.sh mitigate --yes
sudo ./bin/copyfail-guard.sh verify
पुनरावर्ती स्थापना के लिए, एक रिलीज़ टैग पिन करें:
git clone --branch v0.3.0 --depth 1 https://github.com/juliosuas/copyfail-guard.git
जब नए रिलीज़ उपलब्ध हों तो v0.3.0 को नवीनतम टैग किए गए रिलीज़ से बदलें।
पहले सुरक्षित एक्सपोज़र जांच चलाएँ:
sudo ./bin/copyfail-guard.sh assess
परिणाम कैसे पढ़ें:
यदि आप अविश्वसनीय कंटेनर, CI जॉब, सैंडबॉक्स या बहु-उपयोगकर्ता वर्कलोड चलाते हैं, तो यह भी परीक्षण करें कि क्या उस रनटाइम के अंदर AF_ALG सॉकेट निर्माण अवरुद्ध है:
python3 tools/afalg-socket-test.py
PERMITTED सफल शोषण साबित नहीं करता, लेकिन यह साबित करता है कि प्रासंगिक यूज़रस्पेस क्रिप्टो API पहुंच योग्य है। रक्षात्मक संचालन के लिए, यह शमन लागू करने का पर्याप्त कारण है जब तक आप पैच किए गए कर्नेल रोलआउट की पुष्टि नहीं करते।
कोई विनाशकारी प्रूफ ऑफ कॉन्सेप्ट शामिल नहीं है। यह एक विशेषता है, कमी नहीं।
एक वास्तविक Copy Fail शोषण प्रूफ के लिए कर्नेल मेमोरी/पेज-कैश प्रभाव या विशेषाधिकार वृद्धि को मान्य करना होगा। इसे सार्वजनिक शमन रेपो में भेजने से परियोजना कम सुरक्षित और उत्पादन में कम तैनाती योग्य हो जाएगी।
CopyFail Guard उन चीज़ों को साबित करता है जिन पर ऑपरेटर सुरक्षित रूप से कार्रवाई कर सकते हैं:
अंतिम भेद्यता स्थिति के लिए, इस उपकरण को विक्रेता सलाह/पैकेज इन्वेंटरी और रिबूट प्रमाण के साथ संयोजित करें।
CopyFail Guard शमन है, इलाज नहीं। यह एक्सपोज़र को कम करता है और अंतरिम नियंत्रणों को सत्यापित करता है। स्थायी सुधार विक्रेता पैच किया गया कर्नेल और रिबूट है।
यह उपकरण जानबूझकर क्लोन-एंड-रन के लिए आपात प्रतिक्रिया के लिए है: कोई कंपाइलर, कर्नेल हेडर, एक्सप्लॉइट कोड या तृतीय-पक्ष पैकेज मैनेजर कोर होस्ट वर्कफ़्लो के लिए आवश्यक नहीं है। --json आउटपुट, seccomp-patch और गैर-शोषण AF_ALG सॉकेट परीक्षण के लिए python3 की आवश्यकता है।
क्लोन-एंड-रन:
git clone https://github.com/juliosuas/copyfail-guard.git
cd copyfail-guard
chmod +x bin/copyfail-guard.sh
sudo ./bin/copyfail-guard.sh doctor
sudo ./bin/copyfail-guard.sh assess
sudo ./bin/copyfail-guard.sh mitigate --yes
sudo ./bin/copyfail-guard.sh verify
वैकल्पिक सिस्टम स्थापना:
git clone https://github.com/juliosuas/copyfail-guard.git
cd copyfail-guard
sudo ./scripts/install.sh
sudo copyfail-guard status
इंस्टॉलर नियंत्रित रोलआउट के लिए स्रोत और गंतव्य पिनिंग का समर्थन करता है:
sudo env COPYFAIL_GUARD_REF=v0.3.0 ./scripts/install.sh
जब नए रिलीज़ उपलब्ध हों, तो COPYFAIL_GUARD_REF के लिए नवीनतम टैग किया गया रिलीज़ उपयोग करें।
कंटेनर / CI हार्डनिंग:
./bin/copyfail-guard.sh seccomp-patch docker-default.json copyfail-seccomp.json
docker run --security-opt seccomp=./copyfail-seccomp.json IMAGE
सत्यापित करें कि एक संरक्षित कंटेनर के अंदर AF_ALG अवरुद्ध है:
docker run --rm \
--security-opt seccomp=./copyfail-seccomp.json \
-v "$PWD/tools:/tools:ro" \
python:3.12-alpine \
python /tools/afalg-socket-test.py
अपेक्षित संरक्षित परिणाम:
BLOCKED: socket(AF_ALG) denied by policy (...)
अपेक्षित वर्डिक्ट, JSON आकार और कंटेनर सत्यापन परिणामों के लिए नमूना आउटपुट देखें।
Copy Fail AF_ALG यूज़रस्पेस क्रिप्टो API के algif_aead घटक में Linux कर्नेल स्थानीय विशेषाधिकार वृद्धि है। सार्वजनिक सलाहकार एक पेज-कैश राइट प्रिमिटिव का वर्णन करते हैं जो अविश्वसनीय स्थानीय उपयोगकर्ताओं द्वारा पहुंच योग्य है और विशेष रूप से साझा-कर्नेल सिस्टम पर खतरनाक है: Kubernetes नोड्स, CI/CD रनर, बहु-किरायेदार होस्ट, एजेंट सैंडबॉक्स और डेवलपर बॉक्स।
सही सुधार एक विक्रेता कर्नेल अपडेट है जिसमें अपस्ट्रीम रिवर्ट/फिक्स और पैच किए गए कर्नेल में रिबूट शामिल है। CopyFail Guard फ्लीट में रिबूट पूरा होने से पहले की खिड़की के लिए एक रक्षात्मक संचालन सहायक है।
कोर होस्ट कमांड:
bashmodinfo, modprobe, lsmod, rmmod जहाँ उपलब्ध होंgrep, awk, mktemp, installवैकल्पिक दृश्यता उपकरण:
lsof या ssSeccomp प्रोफाइल पैचिंग:
--json, seccomp-patch और tools/afalg-socket-test.py के लिए python3 आवश्यक हैकोई एक्सप्लॉइट कोड, कंपाइलर, कर्नेल हेडर या तृतीय-पक्ष पैकेज आवश्यक नहीं है।
CopyFail Guard में एक एक्सप्लॉइट प्रूफ ऑफ कॉन्सेप्ट शामिल नहीं है। यह जानबूझकर है। क्या यह भेद्यता साबित करता है? देखें।
इसके बजाय, assess एक सुरक्षित परिचालन जाँच करता है:
algif_aead उपलब्ध, लोडेड, बिल्ट-इन या ब्लॉक हैऑटोमेशन JSON:
sudo ./bin/copyfail-guard.sh assess --json
./bin/copyfail-guard.sh doctor --json
निकास कोड:
mitigate लिखता है:
/etc/modprobe.d/99-copyfail-guard.conf
साथ:
# Managed by CopyFail Guard for CVE-2026-31431
install algif_aead /bin/false
blacklist algif_aead
फिर यह प्रयास करता है:
sudo rmmod algif_aead
यदि मॉड्यूल वर्तमान में उपयोग में है, तो rmmod विफल हो सकता है। उस स्थिति में स्थायी ब्लॉक स्थापित रहता है; शमन लागू करने के बाद AF_ALG उपभोक्ताओं को रोकें या रिबूट करें।
स्क्रिप्ट अपने प्रबंधित modprobe पथ पर सिमलिंक को अधिलेखित करने से इनकार करती है और सुरक्षित अनुमतियों के साथ फ़ाइल को परमाणु रूप से लिखती है।
अविश्वसनीय वर्कलोड के लिए, होस्ट पैच करते समय भी seccomp के साथ AF_ALG सॉकेट निर्माण को ब्लॉक करें।
अनुशंसित पथ: इसे बदलने के बजाय अपने मौजूदा रनटाइम seccomp बेसलाइन को पैच करें:
./bin/copyfail-guard.sh seccomp-patch docker-default.json copyfail-seccomp.json
Docker के साथ उपयोग करें:
docker run --security-opt seccomp=./copyfail-seccomp.json IMAGE
Podman के साथ उपयोग करें:
podman run --security-opt seccomp=./copyfail-seccomp.json IMAGE
आपातकालीन-केवल पथ यदि आपके पास बेसलाइन प्रोफाइल नहीं है:
./bin/copyfail-guard.sh seccomp-docker ./copyfail-afalg-seccomp.json
उत्पन्न आपातकालीन प्रोफाइल AF_ALG को ब्लॉक करता है लेकिन अन्यथा syscalls की अनुमति देता है। इसे एक लक्षित अंतरिम समाधान के रूप में मानें, Docker के सामान्य डिफ़ॉल्ट seccomp हार्डनिंग के प्रतिस्थापन के रूप में नहीं।
Kubernetes के लिए, प्रोफाइल को kubelet seccomp रूट के तहत रखें, आमतौर पर:
/var/lib/kubelet/seccomp/profiles/copyfail-seccomp.json
फिर इसका संदर्भ इस प्रकार दें:
securityContext:
seccompProfile:
type: Localhost
localhostProfile: profiles/copyfail-seccomp.json
examples/kubernetes-seccomp-pod.yaml देखें।
इस परियोजना में एक गैर-शोषण AF_ALG पहुंच परीक्षण शामिल है:
python3 tools/afalg-socket-test.py
यह केवल एक AF_ALG सॉकेट बनाने और बंद करने का प्रयास करता है। यह क्रिप्टो ऑपरेशन बाइंड नहीं करता, splice कॉल नहीं करता, setuid बाइनरी को स्पर्श नहीं करता, पेज कैश को दूषित नहीं करता या विशेषाधिकार वृद्धि का प्रयास नहीं करता।
परिणाम:
BLOCKED का अर्थ है कि नीति ने उस प्रक्रिया के लिए AF_ALG को अस्वीकार कर दिया।PERMITTED का अर्थ है कि AF_ALG सॉकेट निर्माण अभी भी उस प्रक्रिया के लिए अनुमत है।UNSUPPORTED का अर्थ है कि उस रनटाइम में AF_ALG अनुपलब्ध है।CopyFail Guard को Linux होस्ट, कंटेनर रनटाइम, CI रनर और Kubernetes नोड्स से वास्तविक दुनिया के अनुकूलता रिपोर्ट की आवश्यकता है। यदि आप सुरक्षित रूप से परीक्षण कर सकते हैं, तो सैनिटाइज़्ड doctor, assess --json, verify या AF_ALG सॉकेट-टेस्ट आउटपुट के साथ अनुकूलता रिपोर्ट मुद्दा खोलें।
उपयोगी रिपोर्ट उत्तर देने में मदद करती हैं:
algif_aead बिल्ट-इन है और केवल पैच/रिबूट की आवश्यकता हैसामुदायिक सत्यापन गाइड देखें।
copyfail-guard assess सुरक्षित एक्सपोज़र आकलन, कोई एक्सप्लॉइट प्रयास नहीं
copyfail-guard status होस्ट एक्सपोज़र संकेतकों का निरीक्षण करें
copyfail-guard doctor निर्भरताएँ और रनटाइम तैयारी जाँचें
copyfail-guard mitigate algif_aead को स्थायी रूप से अक्षम करें और अनलोड करें
copyfail-guard verify होस्ट शमन सक्रिय है सत्यापित करें
copyfail-guard rollback CopyFail Guard का modprobe शमन हटाएँ
copyfail-guard seccomp-docker [FILE] आपातकालीन AF_ALG-अस्वीकार प्रोफाइल उत्पन्न करें
copyfail-guard seccomp-patch BASE OUT मौजूदा seccomp प्रोफाइल को सुरक्षित रूप से पैच करें
copyfail-guard k8s-example Kubernetes seccomp उदाहरण प्रिंट करें
फ़्लैग को कमांड से पहले या बाद में रखा जा सकता है:
--dry-run फ़ाइलें लिखे या मॉड्यूल अनलोड किए बिना नियोजित परिवर्तन दिखाएँ
--yes गैर-संवादात्मक पुष्टि
--no-logo ASCII बैनर अक्षम करें
--json समर्थित कमांड के लिए JSON उत्सर्जित करें: assess, doctor
सामान्य कॉन्फ़िगरेशन में, algif_aead को अक्षम करने से निम्नलिखित प्रभावित होने की उम्मीद नहीं है:
यह AF_ALG इंजन का उपयोग करने के लिए स्पष्ट रूप से कॉन्फ़िगर किए गए एप्लिकेशन या एप्लिकेशन को प्रभावित कर सकता है जो सीधे AF_ALG सॉकेट बनाते हैं। पहले जाँचें:
sudo lsof | grep AF_ALG || true
ss -xa | grep -i alg || true
algif_aead के लिए होस्ट शमन, अविश्वसनीय वर्कलोड के लिए seccomp हार्डनिंग और रोलबैक।CopyFail Guard नहीं करता:
होस्ट मॉड्यूल शमन मॉड्यूलर algif_aead के लिए काम करता है। यदि algif_aead आपके कर्नेल में बिल्ट-इन है, तो modprobe.d और rmmod इसे अक्षम नहीं कर सकते; पैच/रिबूट अनिवार्य है और पैचिंग के दौरान अविश्वसनीय वर्कलोड के लिए seccomp का उपयोग किया जाना चाहिए।
Seccomp केवल प्रोफाइल के साथ लॉन्च किए गए वर्कलोड की रक्षा करता है। मौजूदा चल रहे कंटेनर या पॉड को हार्डन प्रोफाइल के साथ पुनरारंभ किया जाना चाहिए।
sudo ./bin/copyfail-guard.sh rollback --yes
रोलबैक केवल इस उपकरण द्वारा प्रबंधित फ़ाइल को हटाता है। यह मॉड्यूल को पुनः लोड नहीं करता। केवल तभी रिबूट करें या मैन्युअल रूप से modprobe algif_aead करें यदि आपको स्पष्ट रूप से इसकी आवश्यकता है और आपने जोखिम स्वीकार कर लिया है या कर्नेल पैच कर लिया है।
नहीं। पैच और रिबूट अंतिम सुधार बने हुए हैं।
नहीं। परियोजना जानबूझकर शोषण व्यवहार से बचती है। tools/afalg-socket-test.py केवल जाँचता है कि AF_ALG सॉकेट निर्माण पहुंच योग्य है या नहीं।
रक्षा-गहराई। कंटेनर और CI वर्कलोड सामान्य स्थान हैं जहाँ अविश्वसनीय कोड साझा कर्नेल पर चलता है। Seccomp इस वर्ग के हमले के पहले चरण को उस वर्कलोड के लिए अप्राप्य बनाता है।
क्योंकि डिफ़ॉल्ट रनटाइम प्रोफाइल में कई हार्डनिंग निर्णय होते हैं। उन्हें न्यूनतम आपातकालीन प्रोफाइल से बदलने से गलती से सुरक्षा हट सकती है। seccomp-patch आपकी बेसलाइन रखता है और AF_ALG अस्वीकार जोड़ता है।
हाँ। doctor और assess --json से शुरू करें, एक छोटे Linux नमूने पर शमन चरणबद्ध करें, फिर होस्ट शमन और seccomp प्रोफाइल परिवर्तन अलग-अलग रोल आउट करें। फ्लीट रोलआउट गाइड देखें।
crypto: algif_aead - Revert to operating out-of-placeJulio César Suástegui Calderón द्वारा निर्मित।
सुरक्षा इंजीनियरिंग, Linux सिस्टम और व्यावहारिक रक्षात्मक ऑटोमेशन।
MIT
| वर्डिक्ट परिवार | इसका अर्थ | क्या करें |
|---|
EXPOSED_* | algif_aead / AF_ALG पहुंच योग्य या लोडेबल प्रतीत होता है | अब शमन करें, फिर पैच और रिबूट करें |
PARTIALLY_MITIGATED_* | ब्लॉक मौजूद है लेकिन लोडेड मॉड्यूल या रिबूट स्थिति अभी भी मायने रखती है | सुरक्षित रूप से रिबूट या अनलोड करें, फिर सत्यापित करें |
INTERIM_MITIGATED_* | स्थानीय शमन सक्रिय है | इसे बनाए रखें, लेकिन फिर भी पैच और रिबूट करें |
LOW_OBVIOUS_EXPOSURE_* | स्थानीय जाँचों में algif_aead का कोई स्पष्ट एक्सपोज़र नहीं मिला | फिर भी विक्रेता पैच स्थिति की पुष्टि करें |
| क्षेत्र | कमांड | उद्देश्य |
|---|
| सुरक्षित आकलन | assess | गैर-एक्सप्लॉइट एक्सपोज़र वर्डिक्ट, अगली कार्रवाइयाँ और ऑटोमेशन-अनुकूल निकास कोड दें |
| निर्भरता जांच | doctor | आवश्यक/वैकल्पिक उपकरणों की जाँच करें और रनटाइम सीमाएँ समझाएँ |
| होस्ट निरीक्षण | status | OS/कर्नेल, मॉड्यूल उपलब्धता, लोडेड स्थिति, बिल्ट-इन चेतावनी, modprobe ब्लॉक और स्पष्ट AF_ALG उपभोक्ता दिखाएँ |
| होस्ट शमन | mitigate | /etc/modprobe.d/99-copyfail-guard.conf लिखें और algif_aead को अनलोड करने का प्रयास करें |
| सत्यापन | verify | स्पष्ट रूप से विफल करें यदि मॉड्यूल लोडेड, बिल्ट-इन या ब्लॉक नहीं है |
| रोलबैक | rollback | केवल CopyFail Guard के प्रबंधित modprobe फ़ाइल को हटाएँ |
| कंटेनर | seccomp-patch | मौजूदा seccomp प्रोफाइल को पैच करें ताकि socket(AF_ALG, ...) को अस्वीकार किया जा सके जबकि सामान्य सॉकेट उपयोग को संरक्षित किया जा सके |
| आपातकालीन प्रोफाइल | seccomp-docker | आपातकालीन उपयोग के लिए लक्षित AF_ALG-अस्वीकार प्रोफाइल उत्पन्न करें |
| Kubernetes | k8s-example | Localhost seccomp pod उदाहरण प्रिंट करें |
| कोड | अर्थ |
|---|
0 | स्थानीय जाँचों से कम स्पष्ट एक्सपोज़र |
1 | अंतरिम शमन सक्रिय, पैच/रिबूट अभी भी आवश्यक |
10 | एक्सपोज़्ड/शमन उपलब्ध |
11 | आंशिक रूप से शमित; रिबूट या अनलोड आवश्यक |
12 | बिल्ट-इन मॉड्यूल पथ; पैच/रिबूट आवश्यक |
20 | अज्ञात आकलन स्थिति |