Ndërtimi Go, instalimi i Composer dhe klienti Python funksionojnë të gjithë në shtëpi dhe të gjithë dështojnë brenda VPN-së të kompanisë. Ky model flet për rrugën, jo për aplikacionin. Diçka në tunel ndryshoi zinxhirin e certifikatave që sheh procesi juaj, ose rivendosi shtrëngimin e duarve përpara se të mbërrinte ndonjë zinxhir. Dy defektet duken njësoj në terminal dhe kërkojnë përgjigje krejt të ndryshme.

Tre mesazhe, tre mekanizma

Gabimi x509 certificate signed by unknown authority do të thotë se një zinxhir u ndërtua dhe rrënja e tij mungon në depon e besimit që përdor ai proces. Gabimi self-signed certificate in certificate chain zakonisht do të thotë se një proxy inspektimi u përgjigj me certifikatën e vet, dhe ky është një zinxhir që mjedisi juaj i ekzekutimit nuk e njeh. Një SSL EOF gjatë shtrëngimit të duarve do të thotë se lidhja u mbyll përpara se të dërgohej ndonjë certifikatë e përdorshme, dhe ky është një pajisje e ndërmjetme që refuzon ClientHello, aspak problem besimi.

Shtimi i një flamuri për gjendje të pasigurt i bën të tre mesazhet të zhduken ndërsa përgjimi mbetet në vend, dhe heq kontrollin që do të kapte një sulmues të vërtetë.

Gjeni paketën që procesi lexon vërtet

Rrënja e korporatës e instaluar në depon e Windows rregullon shfletuesit dhe aplikacionet .NET që konsultojnë depon e sistemit. Nuk bën asgjë për një ndërtim që ekzekutohet brenda një kontejneri, i cili mbart paketën e vet CA, dhe as për një proces Python me certifi ose një proces Node me listën e tij të përfshirë. Go lexon grupin e sistemit të mjedisit në të cilin ekzekutohet binari, domethënë kontejnerin, jo laptopin. Prandaj një makinë e vetme prodhon njëkohësisht një shfletues që funksionon dhe një mjet ndërtimi që dështon.

Pyetni mjetin në vend që të supozoni. python3 -c "import ssl; print(ssl.get_default_verify_paths())" shtyp skedarët që Python do të konsultojë, dhe node -e "console.log(process.env.NODE_EXTRA_CA_CERTS)" tregon nëse një zëvendësim është vendosur tashmë. Për një kontejner, ekzekutoni të njëjtin kontroll brenda imazhit, sepse ai është mjedisi që ndërtimi përdor vërtet.

Instaloni një rrënjë aty ku ekzekutohet ndërtimi

Merrni rrënjën e inspektimit nga IT-ja si skedar PEM dhe verifikoni gjurmën e gishtit përmes një kanali të veçantë përpara se t'i besoni. Në imazhet e bazuara në Debian, kopjojeni në /usr/local/share/ca-certificates/ dhe ekzekutoni update-ca-certificates; imazhet e familjes RHEL përdorin update-ca-trust pasi skedari vendoset në /etc/pki/ca-trust/source/anchors/. Në një ndërtim kontejneri, shtoni ato hapa përpara komandës që dështon, që shtresa të ruhet në memorie mbi instalimin e varësive.

Për një devcontainer lokal, montoni PEM-in dhe ekzekutoni të njëjtën komandë përditësimi në nisje në vend që ta piqni në një imazh personal që askush tjetër nuk mund ta riprodhojë. Mjetet që sjellin paketën e tyre kanë nevojë për zëvendësimin e tyre të dokumentuar: pip ka një cilësim certifikate, npm ka një cilësim cafile, dhe shumica e të tjerëve pranojnë variablat standarde të mjedisit.

Kjo nuk është njësoj si të pranosh çdo certifikatë. Po shton një rrënjë të caktuar, të marrë nga pala që kryen inspektimin, në një mjedis, dhe verifikimi mbetet i ndezur për çdo zinxhir tjetër. Shënoni cili skedar u shtua dhe kur skadon, sepse një rrënjë inspektimi rinovohet si çdo CA tjetër.

Kur shtrëngimi i duarve vdes përpara një certifikate

Nëse nuk paraqitet asgjë, asnjë ndryshim në depon e besimit nuk do të ndihmojë. Krahasoni të njëjtën kërkesë me tunelin aktiv dhe joaktiv, më pas inspektoni zinxhirin drejtpërdrejt me openssl s_client -connect host:443 -servername host -showcerts. Një lidhje që përfundon jashtë VPN-së dhe rivendoset brenda saj është një vendim politike i pajisjes së ndërmjetme, dhe ilaçi është një përjashtim për atë host, jo një certifikatë tjetër. Kërkoni që regjistri i paketave ose pika fundore e API të kalojnë pa ndryshim.

Ndarja e tunelit që mjeti të anashkalojë VPN-në shmang inspektimin për atë trafik, gjë që mund të shkelë politikën dhe nuk e bën mjetin të besueshëm.

Shënoni rezultatin për çdo mjet

Një shënim i shkurtër që liston birarin, skedarin e besimit që lexon, variablin e mjedisit në lojë dhe përjashtimin e miratuar i kursen personit tjetër të gjithë diagnozën. Mbani shënimin për çdo mjet dhe jo për çdo laptop, sepse laptopi rrallë është gjëja që ndryshoi.

Dhe mbani dy fjali të ndara në biletë: instalojmë një rrënjë të caktuar korporative dhe çaktivizuam verifikimin. Vetëm njëra prej tyre është veprim mbështetjeje.

Artikuj të ngjashëm