Gwallau TLS ar y VPN gorfforaethol yn unig: trwsiwch y storfa ymddiriedaeth iawn
Yr un teclyn, yr un gliniadur, dim ond y VPN sy’n torri TLS. Darllenwch y neges, dewch o hyd i’r bwndel CA y mae’r deuaidd yn ei ddarllen, ac ychwanegwch un gwraidd yn lle analluogi gwiriadau.
Mae adeiladwaith Go, gosodiad Composer a chleient Python i gyd yn gweithio yn y tŷ ac i gyd yn methu y tu mewn i VPN y cwmni. Mae’r patrwm hwnnw’n dweud wrthych am y llwybr, nid am y rhaglen. Mae rhywbeth ar y tiwnel wedi newid y gadwyn dystysgrifau y mae eich proses yn ei gweld, neu wedi ailosod yr ysgwyd llaw cyn i unrhyw gadwyn gyrraedd o gwbl. Mae’r ddau feth yn gwneud yr un sŵn mewn terfynell ac yn gofyn am ymatebion hollol wahanol.
Tri neges, tri mecanwaith
Mae gwall x509 certificate signed by unknown authority yn golygu bod cadwyn wedi’i hadeiladu ac nad yw ei gwraidd yn y storfa ymddiriedaeth y mae’r broses honno’n ei defnyddio. Mae gwall self-signed certificate in certificate chain fel arfer yn golygu bod dirprwy archwilio wedi ateb â’i dystysgrif ei hun, sef cadwyn nad yw eich amgylchedd rhedeg yn ei chydnabod. Mae SSL EOF yn ystod yr ysgwyd llaw yn golygu bod y cysylltiad wedi cau cyn i unrhyw dystysgrif ddefnyddiadwy gael ei hanfon, ac mae hynny’n ddyfais ganol sy’n gwrthod y ClientHello, nid yn broblem ymddiriedaeth o gwbl.
Mae ychwanegu baner anniogel yn gwneud i’r tair neges ddiflannu tra’n gadael y rhyng-gipio yn ei le, ac mae’n dileu’r gwiriad a fyddai’n dal ymosodwr go iawn.
Dewch o hyd i’r bwndel y mae’r broses yn ei ddarllen mewn gwirionedd
Mae’r gwraidd corfforaethol a osodwyd yn storfa Windows yn trwsio porwyr a rhaglenni .NET sy’n ymgynghori â storfa’r system. Nid yw’n gwneud dim i adeiladwaith sy’n rhedeg mewn cynhwysydd, sy’n cario ei fwndel CA ei hun, nac i broses Python sy’n defnyddio certifi na phroses Node sy’n defnyddio ei restr gydgysylltiedig. Mae Go yn darllen cronfa’r system yn yr amgylchedd y mae’r deuaidd yn rhedeg ynddo, sef y cynhwysydd, nid y gliniadur. Felly mae un peiriant yn cynhyrchu porwr sy’n gweithio a theclyn adeiladu sy’n methu ar yr un pryd.
Gofynnwch i’r teclyn yn hytrach na thybio. Mae python3 -c "import ssl; print(ssl.get_default_verify_paths())" yn argraffu’r ffeiliau y bydd Python yn ymgynghori â hwy, ac mae node -e "console.log(process.env.NODE_EXTRA_CA_CERTS)" yn dangos a oes gorddadansoddiad eisoes wedi’i osod. Ar gyfer cynhwysydd, rhedwch yr un gwiriad y tu mewn i’r ddelwedd, oherwydd dyna’r amgylchedd y mae’r adeiladwaith yn ei ddefnyddio mewn gwirionedd.
Gosodwch un gwraidd lle mae’r adeiladwaith yn rhedeg
Cewch y gwraidd archwilio gan yr adran TG fel ffeil PEM a gwirio ei ôl bys trwy sianel ar wahân cyn ymddiried ynddo. Ar ddelweddau sy’n deillio o Debian, copïwch ef i /usr/local/share/ca-certificates/ a rhedwch update-ca-certificates; mae delweddau teulu RHEL yn defnyddio update-ca-trust ar ôl gollwng y ffeil i /etc/pki/ca-trust/source/anchors/. Mewn adeiladwaith cynhwysydd, ychwanegwch y camau hynny cyn y gorchymyn sy’n methu fel bod y haen yn cael ei chache uwchben gosod y dibyniaethau.
Ar gyfer devcontainer lleol, mowntiwch y PEM a rhedwch yr un gorchymyn diweddaru ar y dechrau yn hytrach na’i bobi i mewn i ddelwedd bersonol na all neb arall ei hatgynhyrchu. Mae offer sy’n cario eu bwndel eu hunain angen eu gorddadansoddiad dogfededig eu hunain: mae gan pip osodiad tystysgrif, mae gan npm osodiad cafile, ac mae’r rhan fwyaf o’r lleill yn derbyn y newidynnau amgylchedd safonol.
Nid yw hyn yr un peth â derbyn unrhyw dystysgrif. Rydych yn ychwanegu un gwraidd penodol, a gafwyd gan y parti sy’n gwneud yr archwiliad, at un amgylchedd, ac mae gwirio yn parhau i fod ymlaen ar gyfer pob cadwyn arall. Cofnodwch pa ffeil a ychwanegwyd a phryd y daw i ben, gan fod gwraidd archwilio yn cael ei adnewyddu fel unrhyw CA arall.
Pan fydd yr ysgwyd llaw yn marw cyn tystysgrif
Os na chyflwynir dim, ni fydd unrhyw newid i’r storfa ymddiriedaeth yn helpu. Cymharwch yr un cais gyda’r tiwnel i fyny ac i lawr, yna archwiliwch y gadwyn yn uniongyrchol gyda openssl s_client -connect host:443 -servername host -showcerts. Mae cysylltiad sy’n cwblhau y tu allan i’r VPN ac yn ailosod y tu mewn iddi yn benderfyniad polisi gan y ddyfais ganol, a’r feddyginiaeth yw eithriad i’r gwesteiwr hwnnw yn hytrach na thystysgrif arall. Gofynnwch am i’r gofrestr becynnau neu’r pwynt terfyn API gael ei basio heb ei addasu.
Mae hollti’r tiwnel fel bod y teclyn yn osgoi’r VPN yn osgoi archwiliad ar gyfer y traffig hwnnw, a allai dorri polisi ac nid yw’n gwneud y teclyn yn ddibynadwy.
Ysgrifennwch y canlyniad ar gyfer pob teclyn
Mae nodyn byr yn rhestru’r deuaidd, y ffeil ymddiriedaeth y mae’n ei darllen, y newidyn amgylchedd sydd yn y gêm a’r eithriad a gymeradwywyd yn arbed y diagnosis cyfan i’r person nesaf. Cadwch y nodyn fesul teclyn yn hytrach na fesul gliniadur, oherwydd anaml y gliniadur yw’r peth sydd wedi newid.
A chadwch ddwy frawddeg ar wahân yn y tocyn: gosodwyd gwraidd corfforaethol penodol, a throesom y gwirio i ffwrdd. Dim ond un o’r rheini yn weithred cymorth.