Երբ դուք սեղմում եք a commit, Ձեր CI/CD pipeline գործարկվում է, թեստերը հաջողությամբ են անցնում, և տեղակայումը ընդամենը մեկ սեղմումով հեռու է։ Ապա հանկարծ ձեր կառուցվածքը ձախողվում է՝ գաղտնագրված TLS հաղորդագրության պատճառով։
Կոդի փոփոխությունների համար մեղավորը դեռևս չկա pipeline կարմիր է։ Ի՞նչ է պատահել։ Շատ թիմերի համար մեղավորը հաճախ TLS անվտանգության խնդիրն է, ինչպիսիք են ժամկետանց վկայականը, թույլ գաղտնագիրը կամ սխալ կարգավորված սերվերը: Լավ լուրը՞: Այս խնդիրները հեշտ է հայտնաբերել նախքան ձեր կառուցվածքները խափանելը, եթե գիտեք, թե ինչպես օգտագործել դրանք: OpenSSL s_client.
Այս հոդվածը ձեզ կծանոթացնի SSL սխալների ախտորոշման և կանխարգելման գործընթացին։ CI/CD pipelines օգտագործելով openssl s_clientՄենք կանդրադառնանք իրական օրինակներին, ավտոմատացման մեթոդներին և guardrails որոնք կապահովեն ձեր տեղակայումների անվտանգությունը։
Երբ քո Pipeline Ճիչեր. TLS-ի իրական ձախողում
Ահա մի ծանոթ տեսարան շատ DevOps ինժեներների համար.
Որ SSL սխալ նշանակում է, որ վերջնակետի վկայականի ժամկետը լրացել է։ In CI/CD, սա դադարեցնում է տեղակայումները, խափանում ինտեգրման թեստերը և կարող է արգելափակել ձեր ամբողջ թողարկումը։
Ավելի վատն այն է, որ եթե անտեսվի, նույն TLS անվտանգության բացը կարող է արտադրական համակարգերը ենթարկել միջնակարգ հարձակումների կամ առաջացնել ծառայության անջատումներ։
Ինչու է OpenSSL s_client-ը մշակողի TLS Debug Knife-ը
Ի տարբերություն զննարկչի նախազգուշացումների, որոնք անորոշ են և ձեռքով են գրված, OpenSSL-ի s_client-ը տալիս է TLS ձեռքսեղմման հում և մանրամասն պատկերը։
Այն իդեալական է հետևյալի համար.
- Ստուգելով, թե TLS-ի որ տարբերակն ու կոդն է օգտագործում վերջնակետը
- Վկայագրերի վավերականության և վստահելիության ստուգում
- Միացումների վրիպազերծումը անմիջապես a-ում CI/CD աշխատանք
Ձեռքսեղմման ստուգման օրինակ՝
Դուք անմիջապես կտեսնեք վկայականի մանրամասները, աջակցվող գաղտնագրերը և բանակցությունների ընթացքում առկա ցանկացած SSL սխալ։ Ահա թե ինչու շատ DevSecOps թիմեր այն համարում են TLS անվտանգության հիմնական գործիք։
TLS/SSL-ի տարածված սխալներ, որոնք խաթարում են CI-ն Pipelines
Եկեք վերլուծենք ամենահավանական ձախողումները CI/CD, կարճ օրինակներով և ազդեցություններով։
1 ժամկետանց կամ դեռևս ոչ վավեր վկայականներ
Ազդեցություն: Ավտոմատացված թեստերը ձախողվում են, երբ կախվածությունը օգտագործում է հնացած վկայական։ Միկրոսերվային ճարտարապետություններում ներքին ծառայության մեկ ժամկետանց վկայականը կարող է կանգնեցնել ամբողջ տեղակայման շղթան։
2 թույլ գաղտնագրեր կամ հնացած արձանագրություններ
Ազդեցություն: Անվտանգության դարպասները խափանվում են, երբ ծառայությունը աջակցում է TLS 1.0/1.1 կամ թույլ գաղտնագրեր: Սա հաճախ ի հայտ է գալիս կարգավորվող միջավայրերում համապատասխանության սկանավորման ժամանակ:
3 Հոսթնամի անհամապատասխանություններ և ինքնաստորագրված վկայականներ
Օրինակ՝ Ներքին փուլային ծառայությունը օգտագործում է վկայական, որը տրամադրվել է ծառայություն.տեղական, Սակայն pipeline զանգեր service.devԱյլընտրանքորեն, վկայականը կարող է ինքնաստորագրված լինել և չվստահվել գործարկողի վստահության պահեստին։
Ազդեցություն: Ձեռքսեղմման ստուգումը ձախողվում է, եթե այն բացահայտորեն չի շրջանցվում, ինչը վտանգավոր է արտադրության մեջ: Սա տարածված է ներքին API զանգերի, տեղական թեստավորման կարգավորումների կամ սխալ կարգավորված մշակողի միջավայրերի դեպքում:
4 Անավարտ վկայականների շղթաներ
Օրինակ՝ փուլային վկայական, որում բացակայում է միջանկյալ հավաստագիր։
Ազդեցություն: Ավելի խիստ վստահության պահեստներ ունեցող վազորդները կխափանեն կապերը, ինչը կհանգեցնի պարբերաբար կառուցման ձախողումների։
Ուզում եմ ավելի խորը մտնել CI/CD Սպառնալիքներ
CI/CD pipelineները կարևոր դեր են խաղում ծրագրային ապահովման արդյունավետ մշակման գործում։ Այնուամենայնիվ, քանի որ սրանք pipelineՈրքան ավելի կարևոր են դառնում, այնքան ավելի ակնհայտ է դառնում դրանք խոցելիություններից պաշտպանելու հրամայականը։ Խորասուզվեք խորը հետաքննության մեջ, որը կենտրոնանում է OWASP-ի լավագույն 10-յակում նշված ակնառու ռիսկի լուծման վրա։ CI/CD Անվտանգության ռիսկեր!
TLS խափանումների ախտորոշում CI/CD OpenSSL s_client-ի միջոցով
Առաջին քայլը՝ վերարտադրեք ձախողումը ձեր մեջ CI/CD միջավայրում.
Սա ձեզ կտա TLS ձեռքսեղմման ամբողջական տեքստը, արձանագրությունը, գաղտնագիրը, վկայականների շղթան և ցանկացած վավերացման սխալ։
Փնտրել:
- Հաստատել սխալը Հաղորդագրություններ
- TLS արձանագրության հին տարբերակները
- Շղթայում բացակայող միջանկյալ նյութեր
Ավտոմատացման անցում.
Երբ կարողանաք մեկուսացնել հիմնական պատճառը, հաջորդ քայլը այս ստուգումները ավտոմատ դարձնելն է: Ձեռքով ախտորոշումը մեկ անգամ լավ է, բայց առանց ավտոմատացման դուք նույնը կտեսնեք: SSL սխալ մեկ ուրիշում pipeline շաբաթներ անց։
TLS ստուգումների ավտոմատացում որպես անվտանգություն Guardrails
Դուք կարող եք TLS ստուգումներ ներդնել ձեր մեջ CI/CD որպեսզի վատ կարգավորումները վաղաժամ ձախողվեն՝
- Զգուշացում, եթե վկայականի ժամկետը լրանում է 30 օրից պակաս ժամանակահատվածում
- Արգելափակել թույլ գաղտնագրերը և հնացած TLS տարբերակները
- Պահանջել ամբողջական վկայականների շղթաներ
Օրինակ՝ պաշտպանիչ ցանկապատ.
Հուշում. Գործարկեք սա նախնական տեղակայման փուլում, որպեսզի խնդիրները հայտնաբերեք կոդի միաձուլումից առաջ։
TLS անակնկալների կանխարգելումը արտադրության մեջ
TLS խնդիրները տեղի չեն ունենում միայն տեղակայման ընթացքում։ Վկայագրերի ժամկետը լրանում է ցանկացած պահի։ Ահա թե ինչու է անհրաժեշտ շարունակական մոնիթորինգը։ Անհրաժեշտ է DevSecOps-ում։
GitHub Actions-ի միջոցով պլանավորված ստուգման օրինակ՝
Դուք կարող եք սա հարմարեցնել cron jobs-ին, Jenkins-ին կամ Kubernetes CronJobs-ին՝ TLS անվտանգության խնդիրների անընդհատ սկանավորման համար։
Իրական AppSec ռիսկեր կոտրված TLS-ից
TLS-ի խափանված կարգավորումները պարզապես կառուցման խնդիրներ չեն, դրանք անվտանգության հետ կապված խնդիրներ են։
- MITM հարձակումներ եթե կոդավորումը թույլ է կամ բացակայում է
- Նվազեցնել վարկանիշը եթե թույլատրվում են ավելի հին արձանագրություններ
- Մատակարարման շղթայի ռիսկերը եթե փաթեթների ներբեռնումները տեղի են ունենում անապահով կապերի միջոցով
Ամեն ինչ միասին դնելով Guardrails
Մտածեք այս գործընթացի մասին հետևյալ կերպ. Ախտորոշել → Ավտոմատացնել → Կիրառել.
Ինչու Guardrails Հարց: In CI/CD, guardrails Կանգնեցրեք անապահով TLS կարգավորումները, նախքան դրանք գործարկվեն։ Դրանք կարող են արգելափակել տեղակայումը, եթե՝
- Վկայականի ժամկետը լրանալու է
- Թույլ գաղտնագիրը միացված է
- Օգտագործվում է հնացած արձանագրություն
Օրինակ՝ GitLab CI-ում աշխատանքը անմիջապես ձախողվում է, եթե վերջնակետը պատասխանում է TLS 1.0-ով, ինչը ստիպում է ուղղումը կատարել միաձուլումից առաջ։
Գործիքներ, ինչպիսիք են Քսիգենի կարող է ընդլայնել սրանք guardrails սկանավորել ձեր ամբողջ ծրագրային ապահովման մատակարարման շղթան TLS անվտանգության բացերի հայտնաբերման համար։
Հարմար OpenSSL s_client միատող հրահանգներ CI-ի համար
Ստուգեք ժամկետի ավարտը.
Ցանկի գաղտնագրեր՝
Վերջնական պատրաստություն
OpenSSL s_client Սա ավելին է, քան պարզապես խնդիրների լուծման հրաման. այն DevSecOps գործիք է TLS-ի կանխարգելիչ անվտանգության համար: Օգտագործեք այն SSL սխալները հայտնաբերելու համար, նախքան դրանք կխափանեն ձեր կառուցվածքները, և ավտոմատացրեք այն, որպեսզի այլևս երբեք չզարմանաք վկայականի ժամկետի ավարտից կամ թույլ գաղտնագրից:





