மக்கள் விடுதலை இராணுவத்தின் பாதுகாப்பு அறிவியல் மற்றும் தொழில்நுட்ப பல்கலைக்கழகம், சிங்கப்பூர் தேசிய பல்கலைக்கழகம் மற்றும் ETH சூரிச் ஆகியவற்றின் ஆராய்ச்சியாளர்கள் தனிமைப்படுத்தப்பட்ட பகுதிகளான Intel SGX (மென்பொருள் காவலர் நீட்டிப்புகள்) மீது தாக்குதல் நடத்துவதற்கான புதிய முறையை உருவாக்கியுள்ளனர். தாக்குதல் SmashEx என்று அழைக்கப்படுகிறது மற்றும் Intel SGX க்கான இயக்க நேர கூறுகளின் செயல்பாட்டின் போது விதிவிலக்கு சூழ்நிலைகளைக் கையாளும் போது மீண்டும் நுழைவதில் உள்ள சிக்கல்களால் ஏற்படுகிறது. முன்மொழியப்பட்ட தாக்குதல் முறையானது, இயக்க முறைமையின் மீது உங்களுக்குக் கட்டுப்பாடு இருந்தால், என்கிளேவில் அமைந்துள்ள ரகசியத் தரவைத் தீர்மானிக்க அல்லது உங்கள் குறியீட்டை என்கிளேவின் நினைவகத்தில் நகலெடுத்து அதைச் செயல்படுத்துவதை ஒழுங்குபடுத்துகிறது.
Intel SGX SDK (CVE-2021-0186) மற்றும் Microsoft Open Enclave (CVE-2021-33767) ஆகியவற்றின் அடிப்படையில் இயக்க நேரத்துடன் கூடிய என்கிளேவ்களுக்கு எக்ஸ்ப்ளோயிட் முன்மாதிரிகள் தயார் செய்யப்பட்டுள்ளன. முதல் வழக்கில், HTTPSக்கான வலை சேவையகத்தில் பயன்படுத்தப்படும் RSA விசையைப் பிரித்தெடுக்கும் திறன் நிரூபிக்கப்பட்டது, இரண்டாவதாக, என்கிளேவ் உள்ளே இயங்கும் கர்ல் பயன்பாட்டால் பெறப்பட்ட உள்ளடக்கத்தைத் தீர்மானிக்க முடிந்தது. இன்டெல் எஸ்ஜிஎக்ஸ் எஸ்டிகே 2.13 மற்றும் ஓபன் என்க்ளேவ் 0.17.1 வெளியீடுகளில் இந்த பாதிப்பு ஏற்கனவே நிரல்ரீதியாக கவனிக்கப்பட்டுள்ளது. Intel SGX SDK மற்றும் Microsoft Open Enclaveக்கு கூடுதலாக, Google Asylo SDK, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX மற்றும் வெராக்ரூஸ் ஆகியவற்றிலும் பாதிப்பு தோன்றும்.
SGX (மென்பொருள் காவலர் நீட்டிப்புகள்) தொழில்நுட்பம் ஆறாவது தலைமுறை இன்டெல் கோர் செயலிகளில் (ஸ்கைலேக்) தோன்றியது மற்றும் பயனர்-நிலை பயன்பாடுகளை மூடிய நினைவக பகுதிகளை ஒதுக்க அனுமதிக்கும் தொடர்ச்சியான வழிமுறைகளை வழங்குகிறது - என்க்லேவ்கள், உள்ளடக்கங்களை படிக்க முடியாது மற்றும் கர்னலால் கூட மாற்றப்பட்டது மற்றும் ரிங்0, எஸ்எம்எம் மற்றும் விஎம்எம் முறைகளில் செயல்படுத்தப்படும் குறியீடு. பாரம்பரிய ஜம்ப் செயல்பாடுகள் மற்றும் பதிவேடுகள் மற்றும் ஸ்டேக்குடன் கையாளுதல்களைப் பயன்படுத்தி என்கிளேவில் உள்ள குறியீட்டிற்கு கட்டுப்பாட்டை மாற்றுவது சாத்தியமில்லை - சிறப்பாக உருவாக்கப்பட்ட புதிய வழிமுறைகள் EENTER, EEXIT மற்றும் ERESUME ஆகியவை கட்டுப்பாட்டை என்கிளேவுக்கு மாற்ற பயன்படுத்தப்படுகின்றன, அவை அதிகாரச் சோதனைகளைச் செய்கின்றன. இந்த வழக்கில், என்கிளேவில் வைக்கப்பட்டுள்ள குறியீடு, என்கிளேவ் உள்ளே செயல்பாடுகளை அணுக கிளாசிக்கல் அழைப்பு முறைகளையும், வெளிப்புற செயல்பாடுகளை அழைப்பதற்கான சிறப்பு வழிமுறைகளையும் பயன்படுத்தலாம். என்கிளேவ் நினைவக குறியாக்கம் DRAM தொகுதிக்கு இணைத்தல் போன்ற வன்பொருள் தாக்குதல்களிலிருந்து பாதுகாக்கப் பயன்படுகிறது.
சிக்கல் என்னவென்றால், எஸ்ஜிஎக்ஸ் தொழில்நுட்பமானது, வன்பொருள் விதிவிலக்கை எறிவதன் மூலம் ஒரு என்க்ளேவை நிறுத்துவதற்கு இயக்க முறைமையை அனுமதிக்கிறது, மேலும் என்கிளேவ்கள் அத்தகைய விதிவிலக்குகளை அணுக்கருவாகக் கையாளும் ஆதிநிலைகளை சரியாகச் செயல்படுத்துவதில்லை. ஆப்பரேட்டிங் சிஸ்டம் கர்னல் மற்றும் வழக்கமான பயன்பாடுகளைப் போலல்லாமல், என்கிளேவ்களுக்குள் உள்ள குறியீடு ஒத்திசைவற்ற முறையில் எறியப்பட்ட விதிவிலக்குகளைக் கையாளும் போது அணு செயல்களை ஒழுங்கமைப்பதற்கான ஆதிநிலைகளை அணுக முடியாது. குறிப்பிடப்பட்ட அணு ப்ரிமிட்டிவ்கள் இல்லாமல், என்கிளேவ் எந்த நேரத்திலும் குறுக்கிடப்பட்டு, செயல்பாட்டிற்குத் திரும்பலாம், என்கிளேவ் முக்கியமான பிரிவுகளைச் செயல்படுத்தி, பாதுகாப்பற்ற நிலையில் இருக்கும் சமயங்களில் கூட (உதாரணமாக, CPU பதிவேடுகள் சேமிக்கப்படாமல்/மீட்டெடுக்கப்படாதபோது).
இயல்பான செயல்பாட்டிற்கு, எஸ்ஜிஎக்ஸ் தொழில்நுட்பமானது, உள்ளமைக்கக்கூடிய வன்பொருள் விதிவிலக்குகளால் என்கிளேவின் இயக்கத்தை குறுக்கிட அனுமதிக்கிறது. இந்த அம்சம் என்கிளேவ் இயக்க நேர சூழல்களை இன்ட்ரா-என்கிளேவ் விதிவிலக்கு கையாளுதல் அல்லது சிக்னல் செயலாக்கத்தை செயல்படுத்த அனுமதிக்கிறது, ஆனால் இது மீண்டும் நுழையும் பிழைகளையும் ஏற்படுத்தலாம். SmashEx தாக்குதல் SDK இல் உள்ள குறைபாடுகளை சுரண்டுவதை அடிப்படையாகக் கொண்டது. பாதிப்பைப் பயன்படுத்திக் கொள்ள, தாக்குபவர் என்கிளேவைச் செயல்படுத்துவதில் குறுக்கிட முடியும் என்பது முக்கியம், அதாவது. கணினி சூழலின் செயல்பாட்டைக் கட்டுப்படுத்த வேண்டும்.
விதிவிலக்கை எறிந்த பிறகு, தாக்குபவர் ஒரு சிறிய நேர சாளரத்தைப் பெறுகிறார், இதன் போது உள்ளீட்டு அளவுருக்களைக் கையாளுவதன் மூலம் செயல்படுத்தும் நூலை இடைமறிக்க முடியும். குறிப்பாக, நீங்கள் கணினிக்கான அணுகலைப் பெற்றிருந்தால் (என்கிளேவுக்கு வெளியே உள்ள சூழல்), நீங்கள் என்கிளேவ் நுழைவு அறிவுறுத்தலை (EENTER) செயல்படுத்தியவுடன் உடனடியாக ஒரு புதிய விதிவிலக்கை உருவாக்கலாம், இது ஒரு கட்டத்தில் கணினிக்கு கட்டுப்பாட்டை வழங்கும். என்கிளேவ் இன்னும் முடிக்கப்படவில்லை, இதில் CPU பதிவேடுகளின் நிலையும் சேமிக்கப்படுகிறது.
கணினி அதன்பின் கட்டுப்பாட்டை என்கிளேவுக்குத் திரும்பச் செய்யலாம், ஆனால் குறுக்கீட்டின் போது என்கிளேவின் ஸ்டேக் கட்டமைக்கப்படவில்லை என்பதால், என்கிளேவ் கணினி நினைவகத்தில் இருக்கும் ஸ்டேக்குடன் இயங்கும், இது திரும்பப்பெறும் நிரலாக்கத்தைப் பயன்படுத்தப் பயன்படும் (ROP சுரண்டல் உத்திகள் சார்ந்த நிரலாக்கம்). ROP நுட்பத்தைப் பயன்படுத்தும் போது, தாக்குபவர் தனது குறியீட்டை நினைவகத்தில் வைக்க முயற்சிக்கவில்லை, ஆனால் ஏற்கனவே ஏற்றப்பட்ட நூலகங்களில் உள்ள இயந்திர வழிமுறைகளின் துண்டுகளில் செயல்படுகிறார், இது ஒரு கட்டுப்பாட்டு திரும்பும் அறிவுறுத்தலுடன் முடிவடைகிறது (ஒரு விதியாக, இவை நூலக செயல்பாடுகளின் முனைகள்) . சுரண்டலின் பணியானது, விரும்பிய செயல்பாட்டைப் பெற, ஒத்த தொகுதிகளுக்கு ("கேஜெட்டுகள்") அழைப்புகளின் சங்கிலியை உருவாக்குவது.
ஆதாரம்: opennet.ru