Mae 70% o broblemau diogelwch yn Chromium yn cael eu hachosi gan wallau cof

Datblygwyr y prosiect Chromium wedi'i ddadansoddi 912 o wendidau risg uchel a chritigol wedi’u nodi mewn datganiadau sefydlog o Chrome ers 2015, a daeth i’r casgliad bod 70% ohonynt wedi’u hachosi gan ansicrwydd cof (gwallau wrth weithio gydag awgrymiadau yn y cod C / C ++). Mae hanner y problemau hyn (36.1%) yn cael eu hachosi gan fynediad i'r byffer ar ôl rhyddhau'r cof sy'n gysylltiedig ag ef (di-ddefnydd ar ôl).

Mae 70% o broblemau diogelwch yn Chromium yn cael eu hachosi gan wallau cof

Wrth ddylunio Chromium yr oedd i ddechrau gosod i lawr, ei bod yn bosibl i wallau ymddangos yn y cod, felly rhoddwyd pwyslais mawr ar ddefnyddio ynysu blwch tywod i gyfyngu ar ganlyniadau gwendidau. Ar hyn o bryd, mae'r posibiliadau o ddefnyddio'r dechnoleg hon wedi cyrraedd terfyn eu galluoedd ac mae darnio pellach i brosesau yn anymarferol o safbwynt y defnydd o adnoddau.

Er mwyn cynnal diogelwch y sylfaen cod, mae Google hefyd yn gorfodi "rheol dau“, yn unol â hyn ni ddylai unrhyw god ychwanegol fodloni mwy na dau o dri amod: gweithio gyda data mewnbwn heb ei ddilysu, defnyddio iaith raglennu ansicr (C/C ++) a rhedeg gyda breintiau uchel. Mae'r rheol hon yn awgrymu bod yn rhaid i'r cod ar gyfer prosesu data allanol naill ai gael ei leihau i'r breintiau lleiaf (ynysu) neu ei ysgrifennu mewn iaith raglennu ddiogel.

Er mwyn gwella diogelwch y sylfaen cod ymhellach, mae prosiect wedi'i lansio i atal gwallau cof rhag ymddangos yn y sylfaen cod. Mae yna dri phrif ddull: creu llyfrgelloedd C ++ gyda swyddogaethau ar gyfer gweithredu cof yn ddiogel ac ehangu cwmpas y casglwr sbwriel, gan ddefnyddio mecanweithiau amddiffyn caledwedd MTE (Estyniad Tagio Cof) ac ysgrifennu cydrannau mewn ieithoedd sy'n sicrhau gwaith diogel gyda'r cof (Java, Kotlin, JavaScript, Rust, Swift).

Disgwylir y bydd y gwaith yn canolbwyntio ar ddau faes:

  • Newid sylweddol i'r broses ddatblygu C++, nad yw'n eithrio effaith negyddol ar berfformiad (gwiriadau terfynau ychwanegol a chasglu sbwriel). Yn lle awgrymiadau crai, cynigir defnyddio'r math GwyrthPtr, sy'n eich galluogi i leihau gwallau di-ddefnydd y gellir eu hecsbloetio i ddamweiniau nad ydynt yn fygythiad diogelwch, heb effaith negyddol amlwg ar berfformiad, defnydd cof a sefydlogrwydd.
  • Bydd y defnydd o ieithoedd sydd wedi'u cynllunio i gynnal gwiriadau diogelwch cof ar amser llunio (yn dileu'r effaith negyddol ar berfformiad sy'n gynhenid ​​​​mewn gwiriadau o'r fath yn ystod gweithredu cod, ond bydd yn arwain at gostau ychwanegol ar gyfer trefnu rhyngweithio cod mewn iaith newydd gyda chod yn C++).

Defnyddio llyfrgelloedd cof-ddiogel yw'r ffordd symlaf, ond hefyd yn llai effeithlon. Mae ailysgrifennu cod yn Rust yn cael ei raddio fel y ffordd fwyaf effeithiol, ond hefyd yn ddrud iawn.

Mae 70% o broblemau diogelwch yn Chromium yn cael eu hachosi gan wallau cof

Ffynhonnell: opennet.ru

Ychwanegu sylw