Kai pastumiate commit, Jūsų CI/CD pipeline Paleidžiama, testai sėkmingi, o diegimas – vos už vieno paspaudimo. Tada staiga jūsų kompiliavimas nepavyksta ir pateikiamas užšifruotas TLS pranešimas.
Nėra jokių kaltų kodo pakeitimų, tačiau pipeline yra raudona. Kas nutiko? Daugeliui komandų kaltininkas dažnai yra TLS saugumo problema, pvz., pasibaigęs sertifikatas, silpnas šifras arba netinkamai sukonfigūruotas serveris. Geros naujienos? Šias problemas lengva aptikti, kol jos nesugadino jūsų kompiliacijų, jei žinote, kaip jas naudoti. OpenSSL s_klientas.
Šis straipsnis padės jums diagnozuoti ir išvengti SSL klaidų CI/CD pipelines naudojant openssl s_klientasAptarsime realius pavyzdžius, automatizavimo metodus ir guardrails kurie užtikrina jūsų diegimų saugumą.
Kai tavo Pipeline Klyksmai: tikras TLS gedimas
Štai daugeliui „DevOps“ inžinierių pažįstamas vaizdas:
Kad SSL klaida reiškia, kad galinio taško sertifikato galiojimo laikas pasibaigė. In CI/CD, tai sustabdo diegimus, nutraukia integracijos testus ir gali užblokuoti visą jūsų leidimą.
Dar blogiau, jei ši TLS saugumo spraga bus ignoruojama, ji gali paveikti gamybos sistemas „žmogus tarp jų“ atakomis arba sukelti paslaugų prastovą.
Kodėl „OpenSSL s_client“ yra kūrėjo TLS derinimo peilis
Kitaip nei naršyklės įspėjimai, kurie yra neaiškūs ir rankiniu būdu įvedami, „OpenSSL“ s_klientas pateikia neapdorotą, išsamų TLS rankos paspaudimo vaizdą.
Tai idealiai tinka:
- Tikrinama, kurią TLS versiją ir šifrą naudoja galinis taškas
- Sertifikatų galiojimo ir patikimumo patvirtinimas
- Ryšių derinimas tiesiogiai CI/CD darbas
Rankos paspaudimo patikrinimo pavyzdys:
Derybų metu galite iš karto matyti sertifikato informaciją, palaikomus šifrus ir visas SSL klaidas. Štai kodėl daugelis „DevSecOps“ komandų tai laiko pagrindine TLS saugumo priemone.
Dažnos TLS/SSL klaidos, kurios sutrikdo CI Pipelines
Išanalizuokime gedimus, kurie greičiausiai pasitaiko CI/CD, su trumpais pavyzdžiais ir poveikiu.
1 Nebegaliojantys arba dar negaliojantys sertifikatai
Poveikis: Automatiniai testai nepavyksta, kai priklausomybė naudoja pasenusį sertifikatą. Mikropaslaugų architektūrose vienas pasibaigusio galiojimo sertifikatas vidinėje paslaugoje gali sustabdyti visą diegimo grandinę.
2 Silpni šifrai arba nebenaudojami protokolai
Poveikis: Apsaugos vartai neveikia, kai paslauga palaiko TLS 1.0/1.1 arba silpnus šifrus. Tai dažnai nutinka atliekant atitikties nuskaitymus reguliuojamoje aplinkoje.
3. Neatitikimai pagrindinio kompiuterio pavadinime ir savarankiškai pasirašyti sertifikatai
Pavyzdys: vidinė testavimo paslauga naudoja sertifikatą, išduotą paslauga.vietinė, Tačiau pipeline ragina paslauga.devArba sertifikatas gali būti pasirašytas paties vartotojo ir juo nepasitiki paleidėjo patikimų saugykla.
Poveikis: Rankos paspaudimo patvirtinimas nepavyksta, nebent jis būtų aiškiai apeitas, o tai pavojinga gamybinėje aplinkoje. Tai dažnai nutinka vidiniuose API iškvietimuose, vietiniuose testavimo nustatymuose arba netinkamai sukonfigūruotose kūrimo aplinkose.
4 Neišsamios sertifikatų grandinės
Pavyzdys: Parengimo sertifikatui trūksta tarpinio sertifikato.
Poveikis: Vykdytojai su griežtesnėmis patikimumo saugyklomis nutrauks ryšius, dėl to gali kilti protarpiais nepavykusių kūrimo klaidų.
Norisi giliau pasinerti CI/CD Grasinimai?
CI/CD pipelineatlieka pagrindinį vaidmenį palengvinant supaprastintą programinės įrangos kūrimą. Vis dėlto, kadangi šie pipelinetampa vis svarbesni, tuo labiau išryškėja būtinybė juos apsaugoti nuo pažeidžiamumų. Pasinerkite į išsamų tyrimą, kuriame daugiausia dėmesio skiriama svarbios rizikos, nustatytos OWASP 10 svarbiausių rizikų sąraše, sprendimui. CI/CD Saugumo rizika!
TLS gedimų diagnostika CI/CD su OpenSSL s_client
Pirmas žingsnis: atkartokite gedimą savo įrenginyje CI/CD aplinka.
Tai suteikia jums visą TLS patvirtinimo stenogramą, protokolą, šifrą, sertifikatų grandinę ir visas patvirtinimo klaidas.
Ieškoti:
- Patvirtinimo klaida pranešimus
- Senos TLS protokolo versijos
- Trūkstami tarpiniai produktai grandinėje
Perėjimas prie automatizavimo:
Kai išsiaiškinsite pagrindinę priežastį, kitas žingsnis – automatizuoti šiuos patikrinimus. Rankinė diagnostika vieną kartą tinka, bet be automatizavimo pamatysite tą patį. SSL klaida kitame pipeline po savaičių.
TLS patikrinimų automatizavimas kaip apsauga Guardrails
Galite įterpti TLS patikrinimus į savo CI/CD kad blogos konfigūracijos anksti sugestų:
- Įspėjimas, jei sertifikato galiojimas baigiasi mažiau nei po 30 dienų
- Blokuoti silpnus šifrus ir nebenaudojamas TLS versijas
- Reikalauti pilnų sertifikatų grandinių
Apsauginio turėklo pavyzdys:
Patarimas: paleiskite tai prieš diegimą, kad pastebėtumėte problemas prieš sujungdami kodą.
TLS netikėtumų prevencija gamyboje
TLS problemos kyla ne tik diegimo metu. Sertifikatai nustoja galioti bet kuriuo metu. Štai kodėl nuolatinis stebėjimas yra būtinas. būtinas „DevSecOps“ srityje.
Suplanuoto patikrinimo su „GitHub Actions“ pavyzdys:
Galite pritaikyti tai „cron“ užduotims, „Jenkins“ arba „Kubernetes CronJobs“, kad nuolat nuskaitytumėte galinius taškus, ar nėra TLS saugumo problemų.
Tikri „AppSec“ pavojai dėl pažeisto TLS
Sugadintos TLS konfigūracijos yra ne tik kūrimo problemos; tai saugumo atsakomybė:
- MITM atakos jei šifravimas silpnas arba jo nėra
- Sumažinti atakas jei leidžiami senesni protokolai
- Tiekimo grandinės rizika jei paketų atsisiuntimai vyksta per nesaugų ryšį
Viską sudėjus kartu Guardrails
Įsivaizduokite šį procesą taip: Diagnozuoti → Automatizuoti → Vykdyti.
Kodėl Guardrails Klausimas: In CI/CD, guardrails sustabdyti nesaugias TLS konfigūracijas prieš joms paleidžiant. Jos gali blokuoti diegimą, jei:
- Sertifikato galiojimo laikas tuoj baigsis
- Įjungtas silpnas šifras
- Naudojamas pasenęs protokolas
Pavyzdys: „GitLab CI“ sistemoje užduotis akimirksniu nepavyksta, jei galinis taškas atsako naudodamas TLS 1.0, todėl taisymas atliekamas prieš sujungimą.
Įrankiai kaip Ksigeni gali pratęsti šiuos guardrails nuskaityti visą jūsų programinės įrangos tiekimo grandinę, ar nėra TLS saugumo spragų.
Patogūs „OpenSSL s_client“ vieno sakinio paaiškinimai CI
Patikrinkite galiojimo laiką:
Sąrašo šifrai:
Galutinis išsinešimas
OpenSSL s_klientast yra daugiau nei trikčių šalinimo komanda; tai „DevSecOps“ įrankis, skirtas aktyviam TLS saugumui. Naudokite jį SSL klaidoms aptikti, kol jos nesugadins jūsų kompiliacijų, ir automatizuokite tai, kad daugiau niekada nenustebtumėte dėl sertifikato galiojimo pabaigos ar silpno šifro.





