OpenConnect csd-wrapper: auditálja a szkriptet a bejelentkezés előtt
Kezelje a --csd-wrapper kapcsolót kódfuttatási határként: auditálja a szkriptet, válasszon dedikált csd-felhasználót, és ellenőrizze, mit lát valójában az átjáró.
A --csd-wrapper profilhoz adása egy helyi szkriptet ad át egy démonnak, amely a bejelentkezés során futtatja, tehát az Ön előtt álló döntés kódaudit, nem preferencia-kapcsoló. A kapcsoló azért létezik, hogy az átjáró gazdaellenőrző összetevője lecserélhető legyen, és egy általad szolgáltatott szkript elérési útját várja. Minden alábbi feltételezi, hogy a telepítés tulajdonosa már megmondta, melyik testtartás-ellenőrzés szükséges; ha ez a rész még nyitott, először azt rendezze. A forgatókönyvnek négy lépése van: keresse meg a sikertelen szakaszt, olvassa el a szkriptet, válassza ki az identitást, amely alatt fut, és bizonyítsa az eredményt.
Lépés 1: Keresse meg a sikertelen szakaszt
Az ügyfél utolsó üzenete általában egy sütiről szól, ami egy lánc vége, nem a kezdete. Egy HTTPS-bejelentkezés, egy kiszolgálótanúsítvány-ellenőrzés, egy hitelesítéscsere és egy testtartás-összetevő mind ezen üzenet előtt áll.
Rögzítse a használt verziót és bejelentkezési címet, majd ismételje meg a kísérletet úgy, hogy a részletes kimenet a saját terminálján marad. Az első hibát olvassa, amely nem újrapróbálkozás, ne az átirat utolsó sorát. Ha a napló megáll, mielőtt bármely értékelési összetevőt megneveznének, akkor a burkoló még nem a probléma. Hozzáadása ezen a ponton csak szélesíti a felületet, amelyet később védenie kell.
openconnect --version
openconnect --verbose --user="$VPN_USER" vpn.example.com </dev/nullTartsa az átiratot helyben, mert a sütik és a hitelesítési válaszok hozzáférési anyagok. A csevegésbe beillesztett nyomkövetés hitelesítő adatok szivárgása akkor is, ha az értékelési lépés ártalmatlannak tűnik. Ossza meg a hiba szövegét és a folyamat azon pontját, ahol megjelent, soha ne a terhet.
Lépés 2: Olvassa el a szkriptet, mielőtt profilba kerül
Egy burkoló csak annyira megbízható, mint az általad átnézett változat, ezért rögzítse azt a változatot, és tárolja a hash-ét a jóváhagyási megjegyzés mellett. A két alábbi parancs ujjlenyomatot és olcsó szintaktikai ellenőrzést ad, mielőtt egyetlen sort elolvasna. Egyben fix hivatkozást adnak a következő embernek, ami számít, ha a fájl a csomagkezelésen kívül él. Egyik parancs sem mondja meg, mit tesz a szkript, ezért futtassa őket, és olvasson tovább.
sha256sum ./vpn-csd-wrapper.sh
bash -n ./vpn-csd-wrapper.shOlvassa el az egész fájlt négy kérdéssel a fejében: indít-e kimenő HTTP-hívásokat, olvas-e hitelesítőadat-fájlokat vagy környezeti változókat, ír-e ideiglenes könyvtáron kívülre, és jelent-e valamelyik ág átment testtartást anélkül, hogy bármit mérne. Az utolsó minta naplósorral ellátott házirend-megkerülés. A másolt burkolók hajlamosak elrejteni egy hihetőnek tűnő ellenőrzés mögé. Ha a szkript úgy dönt, hogy az eszköz rendben van, mielőtt ránézne az eszközre, álljon meg ott.
Ellenőrizze a csomagolt terheket is, mert egy olvasható fejléc semmit sem bizonyít a fájl többi részéről. Egy fórumtémából letöltött szkript nem lesz megbízható csak azért, mert a neve valódi gazdaellenőrző összetevőre emlékeztet. Jegyezze fel, ki telepítette, honnan jött és hogyan frissül.
grep -nE 'base64 -d|xxd -r|eval |curl |wget ' ./vpn-csd-wrapper.shLépés 3: Válassza ki az identitást, amely alatt a burkoló fut
--csd-user csökkenti a jogosultságokat, miközben a CSD-, TNCC- vagy HIP-program fut. Ez a fiók a helyi végrehajtási elrendezés része, nem az átjárónak benyújtott felhasználónév.
Adjon a burkolónak dedikált fiókot interaktív héj, sudo-jogosultságok és szükségtelen csoporttagságok nélkül. Adjon olvasási hozzáférést a szkripthez és az általa vizsgált konkrét fájlokhoz, majd tesztelje a jogosultságcsökkentést, mielőtt hozzányúl a VPN-profilhoz. A probléma itteni megtalálása olcsóbb, mint az ügyfélen belül.
sudo -u vpn-csd /usr/local/libexec/vpn-csd-wrapper.shA jogosultságok csökkentése korlátozza a kárt, amelyet egy rossz szkript okozhat. Nem vizsgálja át a kódot, nem teszi igazzá a jelentést, és nem bizonyítja, hogy az átjáró adminisztrátora elfogadja ezt a megvalósítást az eszközházirend teljesítéseként.
Lépés 4: Tartsa visszafordíthatónak a változást
Mentse biztonsági másolatot a profilról szerkesztés előtt, és tartsa a burkolót verziókezelésben, hogy a visszaállítás ismert hash-t állítson helyre, ne másolatot keressen. Jegyezze fel a szkript útvonalát, hash-ét, futtató felhasználóját és jóváhagyóját egy helyen.
A visszaállításhoz távolítsa el a kapcsolót, indítsa újra az ügyfelet, és igazolja, hogy visszatér az eredeti hiba. Ha az átjáró a visszaállítás után is elutasítja a bejelentkezést, valami más is megváltozott, és annak a különbségnek a megtalálása megelőzi a burkolóval való újabb próbát. Tartsa meg az előző másolatot a teljes változási időablak alatt, ami a legtöbb csapatnál a következő karbantartási ablak elmúltáig tart.
Sikeres bevezetés után két dolgot ellenőrizzen egy helyett: az alagút feljön, és az az eszköz, amelynek meg kellene buknia a testtartás-ellenőrzésen, továbbra is elutasításra kerül. Egy mindenki számára működő kapcsolat nem bizonyítja, hogy az értékelés túlélte a változtatást.
Rövidítések, amelyek második problémát teremtenek
Ne engedje, hogy a segéd a szükséges ellenőrzések futtatása nélkül megfelelő állapotot jelentsen, és ne írja felül a platform identitását egy másik operációs rendszerhez igazodva. Egy másik platform állítása nem bizonyítja, hogy a valódi eszköz megfelel a házirendnek. Ez egy olyan ügyfelet hagy, amely minden jövőbeli bejelentkezéskor hazudik.
A kiszolgálóellenőrzés kikapcsolása, egy elavult süti újrajátszása és az át nem vizsgált szkriptek halmozása mind látható hibát cserél láthatatlanra. Ha a telepített ügyfél nem tudja befejezni a támogatott folyamatot, kérjen jóváhagyott alternatívát ahelyett, hogy a meglévőt hajlítaná.
Az OpenConnect kézikönyve külön dokumentálja a --csd-wrapper és a --csd-user kapcsolót, és ez a fontos nyom: a szkript és az identitás két döntés. Vizsgálja át őket külön, és írja le mindkettőt. Akkor a bejelentkezési kérés megszűnik olyan rejtély lenni, amelyet kód beillesztésével old meg.