ஸ்பெக்டர் 4 தாக்குதல் பாதுகாப்பைத் தவிர்க்கக்கூடிய eBPF இல் உள்ள பாதிப்புகள்

ஸ்பெக்டர் v4 தாக்குதலுக்கு (SSB, ஸ்பெகுலேட்டிவ் ஸ்டோர் பைபாஸ்) எதிரான பாதுகாப்பைத் தவிர்ப்பதற்கு eBPF துணை அமைப்பைப் பயன்படுத்த அனுமதிக்கும் Linux கர்னலில் இரண்டு பாதிப்புகள் அடையாளம் காணப்பட்டுள்ளன. சலுகை இல்லாத BPF நிரலைப் பயன்படுத்தி, தாக்குபவர் சில செயல்பாடுகளை ஊகச் செயல்பாட்டிற்கான நிலைமைகளை உருவாக்கலாம் மற்றும் கர்னல் நினைவகத்தின் தன்னிச்சையான பகுதிகளின் உள்ளடக்கங்களைத் தீர்மானிக்கலாம். கர்னலில் உள்ள eBPF துணை அமைப்புகளை பராமரிப்பவர்கள், நடைமுறையில் தாக்குதல்களை நடத்தும் திறனை வெளிப்படுத்தும் முன்மாதிரி சுரண்டலுக்கான அணுகலைப் பெற்றனர். இணைப்புகள் (1, 2) வடிவத்தில் சிக்கல்கள் சரி செய்யப்பட்டுள்ளன, இது அடுத்த லினக்ஸ் கர்னல் புதுப்பிப்பில் சேர்க்கப்படும். விநியோக கருவிகளில் புதுப்பிப்புகள் இன்னும் உருவாக்கப்படவில்லை (Debian, RHEL, SUSE, Arch, Fedora, Ubuntu).

ஸ்பெக்டர் 4 தாக்குதல் முறையானது, மறைமுக முகவரிகளைப் பயன்படுத்தி மாற்று எழுதுதல் மற்றும் வாசிப்பு செயல்பாடுகளைச் செயலாக்கும் போது, ​​செயலியின் தற்காலிக சேமிப்பில் சேமிக்கப்பட்ட தரவை மீட்டெடுப்பதை அடிப்படையாகக் கொண்டது. ஒரு வாசிப்பு செயல்பாடு எழுதும் செயல்பாட்டைத் தொடர்ந்து (எ.கா., mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), இதே போன்ற செயல்பாடுகள் செய்யப்படுவதால், வாசிப்பு முகவரியின் ஆஃப்செட் ஏற்கனவே அறியப்பட்டிருக்கலாம் (படிப்பு செயல்பாடுகள் மிகவும் அடிக்கடி நிகழ்த்தப்படும் மற்றும் தற்காலிக சேமிப்பில் இருந்து வாசிப்புகளை செய்ய முடியும்) மேலும் செயலியானது எழுதும் மறைமுக ஆஃப்செட் கணக்கிடப்படும் வரை காத்திருக்காமல் எழுதுவதற்கு முன் ஊகமாக வாசிப்புகளை செய்ய முடியும்.

ஆஃப்செட்டைக் கணக்கிட்ட பிறகு, எழுதுவதற்கும் வாசிப்பதற்கும் நினைவகப் பகுதிகளின் குறுக்குவெட்டு கண்டறியப்பட்டால், செயலி ஏற்கனவே யூகமாகப் பெற்ற வாசிப்பு முடிவை நிராகரித்து இந்த செயல்பாட்டை மீண்டும் செய்யும். இந்த அம்சம், ஸ்டோர் செயல்பாடு இன்னும் முடிவடையாத நிலையில், சில முகவரிகளில் பழைய மதிப்பை அணுக வாசிப்பு அறிவுறுத்தலை அனுமதிக்கிறது. தோல்வியுற்ற ஊக செயல்பாட்டை நிராகரித்த பிறகு, அதன் செயல்பாட்டின் தடயங்கள் தற்காலிக சேமிப்பில் இருக்கும், அதன் பிறகு தற்காலிக சேமிப்பின் உள்ளடக்கங்களை நிர்ணயிப்பதற்கான முறைகளில் ஒன்று, தற்காலிக சேமிப்பில் உள்ள மற்றும் சேமிக்கப்படாத தரவுக்கான அணுகல் நேரத்தில் ஏற்படும் மாற்றங்களின் பகுப்பாய்வு அடிப்படையில் அதை மீட்டெடுக்க பயன்படுத்தலாம்.

முதல் பாதிப்பு (CVE-2021-35477) BPF நிரல் சரிபார்ப்பு பொறிமுறையில் உள்ள குறைபாட்டால் ஏற்படுகிறது. ஸ்பெக்டர் 4 தாக்குதலுக்கு எதிராகப் பாதுகாக்க, சரிபார்ப்பானது, முந்தைய செயல்பாட்டின் தடயங்களை இடமாற்றம் செய்ய ஒரு பூஜ்ய மதிப்பைச் சேமிக்கும் நினைவகத்தில் சிக்கலுக்குரிய ஸ்டோர்களுக்குப் பிறகு கூடுதல் அறிவுறுத்தலைச் சேர்க்கிறது. எழுதும் பூஜ்ய செயல்பாடு மிக வேகமாக இருக்கும் மற்றும் ஊகச் செயல்பாட்டைத் தடுக்கும் என்று எதிர்பார்க்கப்படுகிறது, ஏனெனில் இது BPF ஸ்டாக் ஃப்ரேமிற்கு ஒரு சுட்டியை மட்டுமே சார்ந்துள்ளது. ஆனால் உண்மையில், முன்னெச்சரிக்கை ஸ்டோர் செயல்பாட்டிற்கு முன், ஊக மரணதண்டனைக்கு வழிவகுக்கும் ஒரு அறிவுறுத்தலைச் செயல்படுத்தக்கூடிய நிலைமைகளை உருவாக்குவது சாத்தியமாக மாறியது.

இரண்டாவது பாதிப்பு (CVE-2021-3455) என்பது BPF சரிபார்ப்பானது அபாயகரமான நினைவக சேமிப்பு செயல்பாடுகளை அடையாளம் காணும் போது, ​​BPF அடுக்கின் துவக்கப்படாத பகுதிகளை கணக்கில் எடுத்துக் கொள்ளாது, முதல் எழுதும் செயல்பாடு பாதுகாக்கப்படவில்லை. இந்த அம்சம், ஸ்டோர் அறிவுறுத்தலைச் செயல்படுத்தும் முன், தொடங்கப்படாத நினைவகப் பகுதியைச் சார்ந்து, ஊக வாசிப்புச் செயல்பாட்டைச் செய்வதற்கான சாத்தியத்தை ஏற்படுத்துகிறது. ஏற்கனவே ஒதுக்கப்பட்ட நினைவகத்தில் உள்ள உள்ளடக்கங்களைச் சரிபார்க்காமலேயே BPF ஸ்டேக்கிற்கான புதிய நினைவகம் ஒதுக்கப்படுகிறது, மேலும் BPF நிரல் இயங்கும் முன் நினைவகப் பகுதியின் உள்ளடக்கங்களைக் கையாள ஒரு வழி உள்ளது, அது BPF அடுக்கிற்கு ஒதுக்கப்படும்.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்