Шифровање диска и монтирање са nosuid звуче као варијанте исте идеје, а нису уопште повезани. Једно штити податке у мировању, а друго одлучује да ли ће кернел поштовати бит привилегија у тренутку када се програм покреће. Помоћник који не може да достигне идентитет који очекује жали се на друго. Претпоставка да је прво одговорно шаље људе да поново инсталирају клијенте који никада нису били покварени.

Два неповезана својства

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

Читање њих као једног својства ствара теорију да шифрирани почетни директоријум спречава root приступ. Та теорија опстаје зато што се два симптома појављују на истом рачунару, а не зато што деле узрок.

Шта заиста потискује прелаз

Референца за execve описује како извршна датотека са set-user-ID мења ефективни идентитет новог процеса у идентитет власника датотеке. Иста страница наводи услове који потискују тај прелаз и њихов еквивалент за идентификаторе група: поставку no_new_privs, датотечни систем монтиран са nosuid и процес који се прати. Могућности датотеке се занемарују под истим условима. Та четири правила покривају готово сваки извештај ове врсте.

Тај списак објашњава зашто режим који исписује ls никада није цела прича о ауторизацији. Не говори вам који је услов проузроковао одређену поруку о грешци, а апликација може да пријављује неповезану операцију са акредитивима истим речима. Забележите тачан програм, покретач и редослед грешака пре него што донесете закључак.

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

Шта не треба радити

Постављање битова set-user-ID на непроверену бинарну датотеку и њено премештање док ограничење не нестане није поправка. То замењује правило које нисте разумели привилегијом коју не можете да ревидирате, а иста техника примењена на помоћника је познат пут за ескалацију. Уклањање nosuid са монтирања је још горе, јер погађа сваки програм на том датотечном систему, а не само један.

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

Потврдите стварни контекст покретања

Након одобрене исправке покрените помоћник онако како га покреће производ, а не из root љуске. Успех као root не доказује ништа о путу којим иде обичан корисник, а разлика између та два контекста управо је оно о чему је реч.

Затим потврдите мрежну операцију због које помоћник постоји. Помоћник који се покрене, али не може да конфигурише интерфејс, померио је проблем једну фазу даље, а није га решио.

findmnt -no TARGET,OPTIONS /home
getcap /usr/libexec/openvpn-helper 2>/dev/null; ls -l /usr/libexec/openvpn-helper

Забележите опције монтирања и власништво помоћника у истој белешци. Иначе ће следећа особа која ово буде отклањала поново почети теорију о шифровању.

Повезани чланци