சோதனைச் சாவடியானது பாதிப்புகளை சிக்கலாக்க பாதுகாப்பான-இணைக்கும் பாதுகாப்பு நுட்பத்தை வழங்குகிறது

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

Glibc (ptmalloc), uClibc-NG (dlmalloc), gperftools (tcmalloc) மற்றும் Google TCMalloc ஆகியவற்றிற்காக பாதுகாப்பான-இணைக்கும் இணைப்புகள் தயார் செய்யப்பட்டுள்ளன, மேலும் Chromium (இல்) பாதுகாப்பை மேம்படுத்தவும் முன்மொழியப்பட்டுள்ளன.
Chromium ஏற்கனவே உள்ளமைக்கப்பட்ட MaskPtr பாதுகாப்பு நுட்பத்தை 2012 முதல் அதே சிக்கலைத் தீர்ப்பதை நோக்கமாகக் கொண்டுள்ளது, ஆனால் சோதனைச் சாவடியின் தீர்வு சிறந்த செயல்திறனைக் காட்டுகிறது).
முன்மொழியப்பட்ட பேட்ச்கள் ஆகஸ்ட் வெளியீட்டில் வழங்குவதற்கு ஏற்கனவே அங்கீகரிக்கப்பட்டுள்ளன கிளிபிக் 3.32 மற்றும் பாதுகாப்பான-இணைப்பு இயல்பாகவே இயக்கப்படும். uClibc-NG பாதுகாப்பான-இணைப்பை ஆதரிக்கிறது உள்ளிட்ட வெளியீடு 1.0.33 இல் சேர்க்கப்பட்டுள்ளது மற்றும் முன்னிருப்பாக இயக்கப்பட்டது. gperftools இல் (பழைய tcmalloc) மாற்றங்கள் ஏற்றுக்கொள்ளப்பட்டது, ஆனால் எதிர்கால வெளியீட்டில் ஒரு விருப்பமாக வழங்கப்படும்.

உருவாக்குநர்கள் TCMalloc (புதிய tcmalloc) ஏற்க மறுத்தது மாற்றம், கடுமையான செயல்திறன் சரிவை மேற்கோள் காட்டி, எல்லாம் எதிர்பார்த்தபடி செயல்படுகிறதா என்பதைத் தொடர்ந்து சரிபார்க்க விரிவான சோதனைகளைச் சேர்க்க வேண்டும். செக்பாயிண்ட் இன்ஜினியர்களின் சோதனையானது சேஃப்-இணைக்கும் முறை கூடுதல் நினைவக நுகர்வுக்கு வழிவகுக்காது என்பதைக் காட்டுகிறது, மேலும் குவியலுடன் செயல்பாடுகளைச் செய்யும்போது செயல்திறன் சராசரியாக 0.02% மட்டுமே குறைகிறது, மேலும் மோசமான நிலையில் 1.5% குறைகிறது (ஒப்பிடுகையில், மேல்நிலை Chromium இல் பயன்படுத்தப்படும் முறையின் செலவுகள் "2% க்கும் குறைவாக" என மதிப்பிடப்பட்டது). சேர்த்தல்
பாதுகாப்பான-இணைப்பானது, இலவச()க்கான ஒவ்வொரு அழைப்பிலும் 2-3 கூடுதல் அசெம்பிளர் வழிமுறைகள் செயல்படுத்தப்படும் மற்றும் malloc()ஐ அழைப்பதற்கான 3-4 வழிமுறைகள். துவக்க மற்றும் சீரற்ற நிலைகளை இயக்குவது தேவையில்லை.

சோதனைச் சாவடியானது பாதிப்புகளை சிக்கலாக்க பாதுகாப்பான-இணைக்கும் பாதுகாப்பு நுட்பத்தை வழங்குகிறது

பாதுகாப்பான-இணைப்பு என்பது பல்வேறு குவியல் செயலாக்கங்களின் பாதுகாப்பை மேம்படுத்துவதற்கு மட்டுமல்லாமல், பஃபர்களுக்கு அடுத்ததாக வைக்கப்பட்டுள்ள சுட்டிகளின் தனித்தனியாக இணைக்கப்பட்ட பட்டியல்களைப் பயன்படுத்தும் எந்த தரவு கட்டமைப்புகளுக்கும் ஒருமைப்பாட்டைக் கட்டுப்படுத்தவும் பயன்படுத்தப்படலாம். இந்த முறை செயல்படுத்த மிகவும் எளிதானது மற்றும் ஒரு மேக்ரோவை மட்டும் சேர்த்து, குறியீட்டில் உள்ள அடுத்த தொகுதிக்கு சுட்டிகளில் பயன்படுத்த வேண்டும் (எடுத்துக்காட்டாக, Glibc க்கு மாற்றங்கள் குறியீட்டின் சில வரிகள்). முறை பின்வரும் மாற்றங்களுக்கு கீழே வருகிறது:

+#PROTECT_PTR(pos, ptr) \ வரையறுக்கவும்
+ ((__typeof (ptr)) (((((size_t) pos) >> 12) ^ ((size_t) ptr)))

+#வரையறுக்கவும் REVEAL_PTR(ptr) PROTECT_PTR (&ptr, ptr)

- nextp = p-> fd;
+ nextp = REVEAL_PTR(p->fd);
...

Fast-Bins மற்றும் TCache போன்ற தனித்தனியாக இணைக்கப்பட்ட பட்டியல்களைப் பாதுகாக்க, ASLR முகவரி ரேண்டமைசேஷன் பொறிமுறையிலிருந்து (mmap_base) சீரற்ற தரவைப் பயன்படுத்துவதே முறையின் சாராம்சம். பட்டியலில் உள்ள அடுத்த உறுப்புக்கு ஒரு சுட்டியின் மதிப்பைப் பயன்படுத்துவதற்கு முன், ஒரு முகமூடி மாற்றம் செய்யப்படுகிறது மற்றும் நினைவகப் பக்க எல்லையில் சீரமைப்பு சரிபார்க்கப்படுகிறது. "(L >> PAGE_SHIFT) XOR (P)" செயல்பாட்டின் விளைவாக சுட்டிக்காட்டி மாற்றப்படுகிறது, இதில் P என்பது சுட்டிக்காட்டியின் மதிப்பு மற்றும் L என்பது நினைவகத்தில் சுட்டிக்காட்டி சேமிக்கப்படும் இடம்.

சோதனைச் சாவடியானது பாதிப்புகளை சிக்கலாக்க பாதுகாப்பான-இணைக்கும் பாதுகாப்பு நுட்பத்தை வழங்குகிறது

கணினியில் பயன்படுத்தும் போது ஏ.எஸ்.எல்.ஆர் (முகவரி ஸ்பேஸ் லேஅவுட் ரேண்டமைசேஷன்) குவியல்களின் அடிப்படை முகவரியுடன் கூடிய L பிட்களின் ஒரு பகுதி, P குறியாக்க விசையாகப் பயன்படுத்தப்படும் சீரற்ற மதிப்புகளைக் கொண்டுள்ளது (12-பைட் பக்கங்களுக்கு 4096 பிட்கள் மூலம் ஷிப்ட் செயல்பாட்டின் மூலம் பிரித்தெடுக்கப்பட்டது). இந்த கையாளுதல் ஒரு சுரண்டலில் ஒரு சுட்டிக்காட்டி கைப்பற்றப்படும் அபாயத்தை குறைக்கிறது, ஏனெனில் சுட்டிக்காட்டி அதன் அசல் வடிவத்தில் சேமிக்கப்படவில்லை மற்றும் அதை மாற்றுவதற்கு குவியல் இடம் பற்றிய அறிவு தேவைப்படுகிறது. கூடுதலாக, பேட்ச் குறியீட்டில் பிளாக் சீரமைப்பின் கூடுதல் சரிபார்ப்பும் உள்ளது, இது தாக்குபவரை சீரமைக்கப்படாத மதிப்புடன் மாற்றுவதற்கு அனுமதிக்காது மற்றும் சீரமைப்பு செய்யப்படும் பிட்களின் எண்ணிக்கையைப் பற்றிய அறிவு தேவைப்படுகிறது, இது கூடுதலாக 64 ஐத் தடுக்க அனுமதிக்கிறது. 15-பிட் கணினிகளில் சீரமைப்பை கணக்கில் எடுத்துக் கொள்ளாத 16 தாக்குதல்கள்.

சுட்டிகளின் பகுதியளவு மீண்டும் எழுதுதல் (குறைந்த பைட்டுகளை மாற்றுதல்), சுட்டிகளை முழுமையாக மீண்டும் எழுதுதல் (தாக்குபவரின் குறியீட்டிற்குத் திருப்பிவிடுதல்) மற்றும் சீரமைக்கப்படாத முகவரியில் பட்டியலின் நிலையை மாற்றுதல் போன்ற தாக்குதல்களுக்கு எதிராக இந்த முறை பயனுள்ளதாக இருக்கும். உதாரணமாக, malloc இல் Safe-Linking ஐப் பயன்படுத்துவது சமீபத்தில் செயல்பாட்டைத் தடுப்பதை அனுமதிக்கும் என்று காட்டப்பட்டுள்ளது. அடையாளம் காணப்பட்டது அதே பாதிப்பு ஆராய்ச்சியாளர்களால் CVE-2020-6007 பிலிப்ஸ் ஹியூ பிரிட்ஜில் ஸ்மார்ட் பேக்லைட், பஃபர் நிரம்பி வழிவதால், சாதனத்தைக் கட்டுப்படுத்த உங்களை அனுமதிக்கிறது.

ஆதாரம்: opennet.ru

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