የፍተሻ ነጥብ ኩባንያ
Safe-Linkingን የሚተገብሩ መጠገኛዎች ለGlibc (ptmalloc)፣ uClibc-NG (dlmalloc)፣ gperftools (tcmalloc) እና Google TCMalloc ተዘጋጅተዋል፣ እና በChromium ውስጥ ጥበቃን ለማሻሻልም ታቅዷል (በ
ከ 2012 ጀምሮ Chromium ተመሳሳይ ችግር ለመፍታት በ MaskPtr ጥበቃ ቴክኒክ ውስጥ ገንብቷል፣ ነገር ግን ከCheckpoint ያለው መፍትሄ ከፍተኛ አፈጻጸም ያሳያል)።
የተጠቆሙ ጥገናዎች በኦገስት ልቀት ላይ እንዲደርሱ ጸድቀዋል
ገንቢዎች
ደህንነቱ የተጠበቀ ግንኙነት 2-3 ተጨማሪ የመሰብሰቢያ መመሪያዎችን በእያንዳንዱ ጊዜ ነፃ() በተጠራ ቁጥር እና 3-4 መመሪያዎች በእያንዳንዱ ጊዜ malloc() ይባላል። የመነሻ እና የዘፈቀደ እሴት ማመንጨት ደረጃዎችን ማስኬድ አያስፈልግም።
ሴፍ-ማገናኘት የተለያዩ ክምር አተገባበርን ደህንነት ለማሻሻል ብቻ ሳይሆን የንፁህነት ቁጥጥሮችን ለመጨመር ከማያዣዎቹ አጠገብ በተቀመጡ ነጠላ የተገናኙ የጠቋሚ ዝርዝሮችን በሚጠቀሙ ማናቸውም የመረጃ አወቃቀሮች ላይ ጭምር መጠቀም ይቻላል። ዘዴው ለመተግበር በጣም ቀላል ነው እና አንድ ማክሮ ማከል እና በኮዱ ውስጥ ወደሚቀጥለው ብሎክ ወደ ጠቋሚዎች መተግበር ብቻ ይጠይቃል (ለምሳሌ ለግሊቢክ)
+# PROTECT_PTR(pos, ptr)ን ይግለጹ \
+ ((__ዓይነት (ptr)) ((((መጠን_t) ፖስ) >> 12) ^ ((መጠን_t) ptr)))
+# REVEAL_PTR(ptr) PROTECT_PTR (&ptr, ptr) ግለጽ
- nextp = p-> fd;
+ nextp = REVEAL_PTR (p-> fd);
...
የስልቱ ይዘት እንደ Fast-Bins እና TCache ያሉ ነጠላ የተገናኙ ዝርዝሮችን ለመጠበቅ ከ ASLR አድራሻ randomization method (map_base) በዘፈቀደ መረጃ መጠቀም ነው። እሴቱ በዝርዝሩ ውስጥ ላለው ቀጣይ አካል በጠቋሚ ላይ ከመተግበሩ በፊት፣ የጭንብል ቅየራ ያከናውናል እና የገጽ አሰላለፍ ይፈትሻል። ጠቋሚው በቀዶ ጥገናው ውጤት "(L >> PAGE_SHIFT) XOR (P)" ተተክቷል, P የጠቋሚው ዋጋ እና L ጠቋሚው የተከማቸበት ማህደረ ትውስታ ቦታ ነው.
በስርዓቱ ውስጥ ጥቅም ላይ ሲውል
ዘዴው ከፊል ጠቋሚ ዳግም መፃፍ (ዝቅተኛ ባይት መቀየር)፣ የጠቋሚ መልሶ መፃፍ (ወደ አጥቂው ኮድ ማዞር) እና የዝርዝሩን አቀማመጥ ባልተሰለፈ አድራሻ ከሚጠቀሙ ጥቃቶች ለመከላከል ውጤታማ ነው። እንደ ምሳሌ፣ Safe-Linking በ malloc ውስጥ መጠቀም በቅርቡ ብዝበዛን ለማገድ እንደሚያስችል ታይቷል።
ምንጭ: opennet.ru