Гоогле је открио стотине расних услова у Линук кернелу користећи КЦСАН

Линук Кернел

Гоогле-ови инжењери који доприносе Линук језгру су објавили да су открили стотине "Раце Цондитионс", у језгру користећи КЦСАН. Компанија већ дуго ради на АддрессСанитизер-у како би пронашла грешке повезане са оштећењем меморије или УндефинедБехавиорСанитизер за недефинисано понашање у коду.

Овај пут, Гоогле нуди нови детектор „Раце Цондитионс“ за Линук језгро под називом КЦСАН (Средство за дезинфекцију кернела). Ове критичне рањивости нису нове. У ствари Услови трке се јављају када две или више нити у истом процесу истовремено приступају истој меморијској локацији, где је барем један од приступа писање и када нити не користе никакве ексклузивне браве за контролу приступа овој меморији.

Када су ови услови испуњени, налог за приступ није детерминистички и прорачун може дати различите резултате од једног до другог извођења, у зависности од овог налога.

Услови расе се све више виде као истовремене грешке у приступу и тешко их је дуплирати и дијагностиковати у паралелним програмима. Линук језгро је софтверски систем великих размера у коме паралелност интензивних нити и недетерминисано преплитање нити више подлежу условима конкуренције.

Неке конкурентске ситуације могу бити бенигне, али многе од њих до сада идентификоване сматрају се грешкама.

Линук језгро пружа неколико механизама за избегавање и управљање овим врстама услова С обзиром да постоје алати као што су Тхреад Анализер или КТСАН (Кернел Тхреад Санитизер) за откривање критичних грешака у извршењу у Линук кернелу.

Међутим, Гоогле, који такође доприноси Линук језгру, недавно је предложио КЦСАН, нови детектор услова расе за језгро, сличан КТСАН-у.

Према Гоогле-у, КЦСАН се фокусира на откривање конкурентских ситуација у коду језгра. Овај динамички детектор критичних погодака је алтернатива средству за дезинфекцију навоја језгра (КТСАН).

Према Гоогле-овом објашњењу, КЦСАН се заснива на тачкама надзора узорковања, за разлику од КТСАН детектора, што је детектор критичног удара пре догађаја. Кључни приоритети у дизајну КЦСАН-а су недостатак лажних позитивних резултата, скалабилност и једноставност.

КЦСАН користи алате за компилацију за приступ меморији. КЦСАН је компатибилан са ГЦЦ и Цланг компајлерима. За ГЦЦ потребна је верзија 7.3.0 или новија, а за Цланг верзија 7.0.0 или новија.

На ГитХуб страници пројектаГоогле-ов Марцо Елвер написао је да су користећи тестове КЦСАН прошлог месеца за само два дана открили више од 300 јединствених основних такмичарских ситуација. КЦСАН пружа неколико опција конфигурације за прилагођавање свог понашања.

„КЦСАН користимо преко Сизкаллера већ неколико недеља и пронашли смо пуно грешака. У почетку у септембру 2019. године, током само два дана идентификовали смо више од 300 јединствених такмичарских ситуација “, написао је.

Гоогле је рекао да се целокупни приступ заснива на ДатаЦоллидеру, још један динамички детектор конкурентних ситуација у модулима језгра. Али за разлику од ДатаЦоллидер, КЦСАН не користи тачке за надзор хардвера, већ се ослања на алате за компилацију.

Надзорне тачке су имплементиране помоћу ефикасног кодирања које тип, величину и приступну адресу чува у дугој датотеци. Предности употребе флексибилних тачака надзора су преносивост и већа флексибилност у ограничавању приступа који тачка надзора може активирати.

Ево неколико кључних тачака које је КЦСАН изнео за Гоогле:

  • Високих перформанси: КЦСАН време извршавања је минимално и не захтева дељено закључавање стања за сваки приступ. Резултат су много боље перформансе од КТСАН-а.
  • Нема додатне меморије: према Гоогле-у није потребна кеш меморија. Тренутна имплементација користи мали број дужина за кодирање информација о тачки надзора, што је занемарљиво
  • Команда меморије: КЦСАН не зна правила управљања језгром Линук меморије (ЛКММ). То може довести до губитка критичних трка (лажни негативи) у поређењу са детекторима трка пре догађаја, попут КТСАН-а
  • Тачност: Према Гоогле-у, КЦСАН је непрецизан јер користи стратегију узорковања;
  • Захтева напомену: потребна је минимална белешка изван времена извршавања КЦСАН-а. У случају преслушавача догађаја предуслова, било који пропуст доводи до лажних позитивних резултата, што је посебно важно у контексту језгра које укључује прилагођене механизме за одређивање времена.
  • Откривање динамичког писања са уређаја: Провером вредности података током подешавања тачке надзора такође се могу открити динамичка писања са уређаја.

Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. Odgovorni za podatke: AB Internet Networks 2008 SL
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.