ማይክሮሶፍት የC ኮድ ደህንነትን ለማሻሻል የሃርድዌር መፍትሄ የሆነውን CHERIoT ይከፍታል።

ማይክሮሶፍት ከ CHERIoT (የአቅም ሃርድዌር ኤክስቴንሽን ወደ RISC-V ለኢንተርኔት ኦፍ የነገሮች) ፕሮጀክት ጋር የተያያዙ እድገቶችን አግኝቷል፣ ይህም በC እና C++ ውስጥ ያሉትን የደህንነት ችግሮችን ለመዝጋት ነው። CHERIoT ያሉትን የC/C++ Codebases እንደገና መስራት ሳያስፈልግ እንዲጠብቁ የሚያስችልዎ መፍትሄ ይሰጣል። ጥበቃ የሚከናወነው ልዩ የተራዘመ የማቀነባበሪያ መመሪያዎችን (ISA) የሚጠቀም በተሻሻለው ማጠናቀቂያ በመጠቀም ነው ፣ በአቀነባባሪው እና በሃርድዌር ደረጃ ክትትል ማህደረ ትውስታ ተደራሽነት ፣ የሥራውን ትክክለኛነት በጠቋሚዎች በመፈተሽ እና የኮድ ብሎኮችን መነጠል ያረጋግጣል ።

ኘሮጀክቱ የተፈጠረው የC ቋንቋ ዝቅተኛነት ባህሪ ከማስታወስ ጋር ሲሰራ የስህተቶች ምንጭ ይሆናል፣ ይህም እንደ ቋት መጨናነቅ፣ ቀድሞ የተለቀቀውን ማህደረ ትውስታ ማግኘት፣ የጠቋሚ ማጣቀሻዎች ወይም ድርብ ነጻነቶችን የመሳሰሉ ችግሮች እንዲፈጠሩ ያደርጋል። . ልምምድ እንደሚያሳየው ጥብቅ የለውጥ ፖሊሲ ያላቸው እንደ ጎግል እና ማይክሮሶፍት ያሉ ትልልቅ ኮርፖሬሽኖች እንኳን ዘመናዊ የእድገት ዘዴዎችን እና የማይንቀሳቀስ ትንተና መሳሪያዎችን የሚጠቀሙ ፣ ከማስታወስ ጋር ሲሰሩ ስህተቶች አለመኖራቸውን ማረጋገጥ አይችሉም (ለምሳሌ ፣ በማይክሮሶፍት ውስጥ 70% የሚሆኑት ተጋላጭነቶች እና Google በአስተማማኝ የማህደረ ትውስታ አያያዝ የተከሰቱ ናቸው።

ችግሩን መፍታት የሚቻለው ደህንነቱ የተጠበቀ ስራን የሚያረጋግጡ የፕሮግራሚንግ ቋንቋዎችን በመጠቀም ወይም ከተጨማሪ ቼኮች ጋር በማያያዝ ለምሳሌ እንደ MiraclePtr (raw_ptr) ያሉ ተራ ጠቋሚዎችን በመጠቀም ነፃ የሆኑ የማስታወሻ ቦታዎችን ለመድረስ ተጨማሪ ፍተሻዎችን በማድረግ ነው። ነገር ግን እንደዚህ አይነት ዘዴዎች ለአዲስ ኮድ ይበልጥ ተስማሚ ናቸው, እና አሁን ያሉትን የC/C++ ፕሮጀክቶች እንደገና መስራት በጣም ችግር ያለበት ነው, በተለይም በንብረት ውስን አካባቢዎች ውስጥ ለመስራት የተነደፉ ከሆነ, እንደ የተከተቱ ስርዓቶች እና የበይነመረብ መሳሪያዎች.

የ CHERIoT ሃርድዌር ክፍሎች በ RISC-V አርክቴክቸር መሰረት እንደ ማይክሮ መቆጣጠሪያ ተዘጋጅተዋል ጥበቃ የሚደረግለት CHERI (የአቅም ሃርድዌር ኤክስቴንሽን ወደ RISC-V) ፕሮሰሰር ስነ-ህንፃ በመተግበር በ"ችሎታ" ላይ የተመሰረተ ቁጥጥር ያለው የማህደረ ትውስታ ተደራሽነት ሞዴል (እያንዳንዱ ማንበብ እና መፃፍ ወደ ማህደረ ትውስታ ክዋኔ ተፈቅዶለታል) . በ CHERIoT ውስጥ በተሰጠው መመሪያ ስብስብ (ISA) ላይ በመመስረት በማህደረ ትውስታ የመሥራት ደህንነትን የሚያረጋግጥ በነፍስ ወከፍ እቃዎች ደረጃ ላይ የመሥራት ደህንነትን የሚያረጋግጥ ፣ ቀድሞውንም የተለቀቀውን ማህደረ ትውስታን ከማግኘት ጥበቃ የሚያደርግ እና ቀላል ክብደት ያለው የማህደረ ትውስታ ተደራሽነት ማግለል ስርዓትን የሚተገበር የሶፍትዌር ሞዴል ተገንብቷል። . የተገለጸው የሶፍትዌር ጥበቃ ሞዴል በቀጥታ በC/C++ ቋንቋ ሞዴል ውስጥ ተንጸባርቋል፣ ይህም ነባር መተግበሪያዎችን ለመጠበቅ ጥቅም ላይ እንዲውል ያስችለዋል (የ ISA CHERIoTን በሚደግፉ መሣሪያዎች ላይ ብቻ ማጠናቀር እና መሥራት ያስፈልጋል)።

የታቀደው መፍትሄ አንድ ነገር ከማስታወሻ ወሰን በላይ እንዲሄድ የሚያደርጉ ስህተቶችን እንዲያግዱ ይፈቅድልዎታል ፣ ጠቋሚዎችን መተካት አይፈቅድም (ሁሉም ጠቋሚዎች አሁን ካሉት ጠቋሚዎች መፈጠር አለባቸው) እና ከተለቀቀ በኋላ የማህደረ ትውስታ መዳረሻን ይከታተላል (የተሳሳተ በመጠቀም ማንኛውንም የማህደረ ትውስታ መዳረሻ። ጠቋሚ ወይም ጠቋሚ የተለቀቀ ነገርን የሚያመለክት መወርወርን ያስከትላል)። ለምሳሌ፣ CHERIoTን በመጠቀም በራስ-ሰር የድንበር ፍተሻን፣ የማህደረ ትውስታን የህይወት ዘመን መከታተል እና የጠቋሚ ታማኝነት ማስፈጸሚያ ምንም አይነት የኮድ ለውጥ ሳያስፈልጋቸው ታማኝ ያልሆኑ መረጃዎችን በሚያስተናግዱ አካላት ውስጥ እንዲተገብሩ ይፈቅድልዎታል።

ፕሮጀክቱ የተራዘመውን የCHERIoT መመሪያ ስብስብ አርክቴክቸር መግለጫን፣ CHERIoT ISAን የሚደግፍ ባለ 32-ቢት RISC-V ሲፒዩ ማጣቀሻ እና የተሻሻለ የኤልኤልቪኤም መሣሪያ ስብስብ ያካትታል። በVerilog ውስጥ የሲፒዩ ፕሮቶታይፕ ንድፎች እና የሃርድዌር ብሎክ መግለጫዎች በ Apache 2.0 ፍቃድ ስር ተሰራጭተዋል። ከ lowRISC ፕሮጀክት የሚገኘው Ibex ኮር ለሲፒዩ መሰረት ሆኖ አገልግሏል። የCHERIoT ISA ኮድ ሞዴል በሴይል ቋንቋ ይገለጻል እና በ BSD ፍቃድ ፍቃድ ተሰጥቶታል።

በተጨማሪም፣ የ CHERIoT RTOS የእውነተኛ ጊዜ ኦፕሬቲንግ ሲስተም ፕሮቶታይፕ ቀርቧል፣ይህም በ256 ሜባ ራም በተካተቱ ሲስተሞች ላይ ክፍሎችን የመለየት ችሎታ ይሰጣል። የ CHERIoT RTOS ኮድ በC++ የተፃፈ ሲሆን በ MIT ፍቃድ ተሰራጭቷል። የስርዓተ ክወናው መሰረታዊ ክፍሎች እንደ ቡት ጫኝ ፣ መርሐግብር አዘጋጅ እና የማህደረ ትውስታ ስርጭት ስርዓት በክፍሎች መልክ የተነደፉ ናቸው።

በCHERIoT RTOS ውስጥ ያለ ክፍል የጋራ ቤተ-መጽሐፍትን የሚመስል የኮድ እና ዓለም አቀፍ ተለዋዋጮች ጥምረት ነው፣ ነገር ግን ከኋለኛው በተለየ መልኩ፣ ሁኔታውን ሊለውጥ እና በተለየ የደህንነት አውድ ውስጥ ሊሄድ ይችላል። ወደ ሌላ ክፍል ሲደውሉ በልዩ ሁኔታ የተቀመጡ የመግቢያ ነጥቦችን ከመድረስ እና በግልጽ ወደ ሌላ ክፍል ሲደውሉ ጠቋሚዎችን ከመጠቀም በስተቀር ማንም ከውጭ የመጣ ኮድ መቆጣጠሪያውን ወደ ክፍል ውስጥ ወደ ኮድ ማስተላለፍ እና እቃዎችን መድረስ አይችልም ። ታማኝነት እና ሚስጥራዊነት በክፍል ውስጥ ለኮድ እና ለአለምአቀፍ እቃዎች ዋስትና ተሰጥቷቸዋል.

ምንጭ: opennet.ru

አስተያየት ያክሉ