Gradnja Go, namestitev Composerja in odjemalec Python vsi delujejo doma in vsi spodletijo znotraj poslovnega VPN. Ta vzorec govori o poti, ne o aplikaciji. Nekaj na tunelu je spremenilo verigo potrdil, ki jo vidi vaš proces, ali je ponastavilo rokovanje, preden je sploh prispela kakšna veriga. Obe napaki sta v terminalu videti podobno in zahtevata povsem različne odzive.

Tri sporočila, tri mehanizmi

Napaka x509 certificate signed by unknown authority pomeni, da je bila veriga zgrajena in da njena korenina manjka v shrambi zaupanja, ki jo uporablja ta proces. Napaka self-signed certificate in certificate chain običajno pomeni, da je pregledovalni posrednik odgovoril z lastnim potrdilom, to pa je veriga, ki je vaše izvajalno okolje ne pozna. SSL EOF med rokovanjem pomeni, da je bila povezava zaprta, preden je bilo poslano katero koli uporabno potrdilo, in to je vmesna naprava, ki zavrača ClientHello, nikakor ne težava z zaupanjem.

Dodajanje zastavice za negotov način povzroči, da vsa tri sporočila izginejo, medtem ko prestrezanje ostane na mestu, in odstrani preverjanje, ki bi ujelo resničnega napadalca.

Poiščite paket, ki ga proces dejansko bere

Poslovna korenina, nameščena v shrambi Windows, popravi brskalnike in aplikacije .NET, ki poizvedujejo po sistemski shrambi. Nič ne naredi za gradnjo, ki teče v vsebniku in nosi svoj paket CA, niti za proces Python s certifi ali proces Node z njegovim vgrajenim seznamom. Go bere sistemski sklad okolja, v katerem teče binarna datoteka, torej vsebnika, ne prenosnika. Zato en stroj hkrati daje delujoč brskalnik in spodletelo orodje za gradnjo.

Vprašajte orodje, namesto da bi domnevali. python3 -c "import ssl; print(ssl.get_default_verify_paths())" izpiše datoteke, ki jih bo Python pregledal, in node -e "console.log(process.env.NODE_EXTRA_CA_CERTS)" pokaže, ali je prepis že nastavljen. Za vsebnik zaženite isto preverjanje znotraj slike, ker je to okolje, ki ga gradnja dejansko uporablja.

Namestite eno korenino tam, kjer teče gradnja

Pridobite pregledovalno korenino pri IT kot datoteko PEM in preverite njen prstni odtis po ločenem kanalu, preden ji zaupate. Na slikah, ki temeljijo na Debianu, jo kopirajte v /usr/local/share/ca-certificates/ in zaženite update-ca-certificates; slike iz družine RHEL uporabljajo update-ca-trust, potem ko je datoteka vstavljena v /etc/pki/ca-trust/source/anchors/. Pri gradnji vsebnika dodajte te korake pred ukazom, ki spodleti, da se plast shrani v predpomnilnik nad namestitvijo odvisnosti.

Za lokalni devcontainer pripnite PEM in ob zagonu zaženite isti ukaz za posodobitev, namesto da bi ga zapekli v osebno sliko, ki je nihče drug ne more poustvariti. Orodja, ki prinašajo svoj paket, potrebujejo svoj dokumentirani prepis: pip ima nastavitev potrdila, npm ima nastavitev cafile, večina drugih pa sprejme standardne okoljske spremenljivke.

To ni isto kot sprejemanje katerega koli potrdila. Dodajate eno določeno korenino, pridobljeno pri strani, ki izvaja pregled, v eno okolje, preverjanje pa ostane vključeno za vsako drugo verigo. Zapišite, katera datoteka je bila dodana in kdaj poteče, ker se pregledovalna korenina obnavlja kot vsak drug CA.

Ko rokovanje umre pred potrdilom

Če ni predstavljeno nič, nobena sprememba shrambe zaupanja ne bo pomagala. Primerjajte isto zahtevo z vklopljenim in izklopljenim tunelom, nato pregledajte verigo neposredno z openssl s_client -connect host:443 -servername host -showcerts. Povezava, ki se zunaj VPN konča in znotraj njega ponastavi, je politična odločitev vmesne naprave, zdravilo pa je izjema za tega gostitelja, ne še eno potrdilo. Zahtevajte, da se register paketov ali končna točka API prepustita nespremenjena.

Razdelitev tunela, da orodje obide VPN, se izogne pregledu tega prometa, kar lahko krši politiko in orodja ne naredi zaupanja vrednega.

Zapišite izid za vsako orodje

Kratka opomba, ki našteje binarno datoteko, datoteko zaupanja, ki jo bere, okoljsko spremenljivko v igri in odobreno izjemo, prihrani naslednji osebi celotno diagnostiko. Vodite opombo za vsako orodje, ne za vsak prenosnik, ker je prenosnik redko tisto, kar se je spremenilo.

In v prijavi držite dva stavka ločeno: namestili smo določeno poslovno korenino in izklopili preverjanje. Samo eno od tega je dejanje podpore.

Sorodni članki