Ukaz VPN teče kot vaš uporabnik, geslo se ne pojavi in tunel se dvigne. To zaporedje se zdi operacija brez privilegijev, in običajno ni. Omrežne spremembe izvaja ločena storitev, in zanimivo vprašanje je, kaj bo ta storitev naredila za klicatelja, ki ga ni preverila. Štetje pozivov k geslu vam o tej meji ne pove ničesar.

Vmesnik, mehanizem in preverjanje

Vmesnik sprejema zahteve: poveži, prekini, izberi profil. Mehanizem ima omrežne operacije: ustvarjanje vmesnikov, spreminjanje poti, uporabo filtrov. Preverjanje avtorizacije odloči, ali sme ta klicatelj zahtevati to dejanje. Ti trije so lahko razporejeni med binarno datoteko, pomočnika in sistemsko storitev, uporabnik pa vidi le prvega.

Vloge lahko živijo v eni binarni datoteki, v dveh procesih ali v odjemalcu in sistemski storitvi, in ukaz, ki ga uporabnik vidi, le redko razkrije katero. Ikona v pladnju in sistemski demon sta lahko videti kot ena aplikacija, medtem ko tečeta z zelo različno oblastjo. Privilegij ob namestitvi in privilegij ob zahtevi sta tudi različni stvari. Namestitveni program, ki je tekel kot root, lahko pusti storitev, ki posluša poznejše zahteve, dolgo po tem, ko je upravitelj paketov končal. Oblast ima ta storitev, ne ukaz, ki ste ga vtipkali.

Prevajanje je običajna zasnova

Prenos privilegiranega omrežnega dela na storitev je razumna arhitektura. Ohranja običajne aplikacije brez privilegijev in centralizira operacije, ki potrebujejo skrb. Zasnova se obnese le, ko storitev tudi preveri, kdo sprašuje in zakaj. Brez tega preverjanja so to le širša vrata.

NetworkManager je konkreten primer na Linuxu. Njegov vodnik za konfiguracijo pojasnjuje, kako PolicyKit avtorizira zahteve, ki niso od root, v privzeti nastavitvi. To kaže delegirano avtorizacijo v resničnem izdelku. Ne dokazuje, da vsak komercialni odjemalec uporablja NetworkManager, in ne opisuje poti do vtičnice ali politike katerega koli ponudnika.

Vzorec je delegiranje s politiko v ozadju. Primer je ena izvedba tega vzorca, ne univerzalna.

Berite mejo, ne zahtevo

Poiščite storitev, lastnika njene konfiguracije in krajevni vmesnik, ki ga uporablja čelni del. Nato vprašajte, kateri uporabniki lahko zahtevajo katere operacije. Možnost dvigniti in spustiti en shranjen profil ni isto dovoljenje kot nalaganje konfiguracije, ki je operater ni nikoli pregledal. Razlika je celotno vprašanje varnosti.

Začnite pri upravitelju storitev in pri lastnem pogledu odjemalca na njegova dovoljenja. Spodnji ukazi kažejo, ali demon teče, kaj sme klicatelj od njega zahtevati in kaj demon izpostavlja v svoji izvajalni mapi.

systemctl status NetworkManager
nmcli general permissions
ls -l /run/NetworkManager

Vprašajte tudi, na kaj vpliva operacija. Meni, ki je videti oseben, lahko spremeni poti in DNS za celoten stroj, kar pomeni, da lahko moti seje drugih uporabnikov. Obseg vpliva sodi v isti pregled kot dovoljenje, in običajno odloči, ali storitev potrebuje ožjo vlogo.

Popravite dovoljenja na podprt način

Če zaščiteno krmilno vtičnico naredite za pisanje dostopno vsem ali dodate račun v široko skrbniško skupino, odpravite napako dovoljenja in ustvarite večjo. Napaka je bila edino, kar vam je govorilo, da ta meja obstaja. Uporabite dokumentirani postopek članstva ali avtorizacije, vključno z osvežitvijo seje, ki jo zahteva. Članstvo v skupini pogosto velja le za nove prijavne seje, zato se lahko sprememba zdi, da nič ne naredi do naslednje prijave.

Če izdelek izpostavlja ožjo vlogo za operacijo, dajte ji prednost pred splošno odobritvijo. Zapišite izbrano vlogo in njenega lastnika ob imenu storitve.

Kako izgleda dobra delitev

Običajne aplikacije ostanejo brez privilegijev, storitev izvede le nastavitev, za katero je bila zasnovana, in vsak klicatelj se preveri proti politiki, ki jo nekdo ima. To je zagovorljiva zasnova. Je tudi revizijsko preverljiva, ker ima politika ob sebi ime. Vse večje si zasluži pisno izjemo in ne tiho spremembo dovoljenj.

Način odpovedi je storitev, ki izvede vsako zahtevo katerega koli krajevnega uporabnika, ker je vmesnik priročen. Z uporabnikove strani je videti enako in nosi veliko večjo oblast. Preizkusite eno zavrnjeno zahtevo, ne le uspešne. Zavrnitev, ki prihaja iz politike, je dokaz, da politika obstaja.

Sorodni članki