Добивки:
- Способност за разбирање на DevSecOps и златните правила за управување со тајните (не внесува код, се чува во трезорот, се инјектира во времето на извршување, се враќа, најмалку привилегии)
- Способност да се користи вештачка интелигенција за да се даде приоритет на излезите за безбедно скенирање (SCA, SAST, слика, IaC, тајна) и код за ревизија за одбранбени цели
- Знаејќи дека првиот чекор во тајното протекување е отповикување/превртување и користење вештачка интелигенција само во овластени системи, за одбранбени цели, во законски граници
Колку брзо системот е распореден не значи ништо денот кога ќе биде компромитиран. Додека DevOps се фокусира на брзината, безбедноста понекогаш се остава до крај - а безбедноста оставена до крај честопати воопшто не доаѓа. DevSecOps е пристапот што ја поставува безбедноста на почетокот и на секој чекор од протокот на DevOps: „поместување на безбедноста налево“ - односно фаќање на ранливост во нафтоводот, додека кодот се пишува, наместо во прод. За професионалците на DevSecOps, безбедноста не е работа на посебен тим, туку е дел од секоја посветеност, секоја слика, секој манифест.
Во оваа единица има две главни оски. Првиот е управување со тајните: безбедно генерирање, складирање, дистрибуција и ротација на доверливи информации како лозинки, клучеви, сертификати. Второто е безбедносно скенирање и стврднување: наоѓање ранливости во зависности, слики, конфигурации. Вештачката интелигенција е моќен асистент и во двете - таа открива ранливости, дава приоритет на излезите за скенирање, препорачува поправки. Но, тука важи најкритичното предупредување: вештачката интелигенција е за одбрана; Неовластен пристап до туѓ систем, неовластено скенирање или создавање алатка за напад е нелегално и е строга граница на оваа платформа.
Златни правила за управување со тајните
- Тајната никогаш не влегува во изворниот код. Не Dockerfile, не YAML, не скрипта, не Git. Откако ќе влезе во Git, тајната опстојува во минатото.
- Тајните се чуваат во централен свод. HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, GCP Secret Manager - овие тајни за складирање се шифрирани, го контролираат пристапот и водат евиденција за нив.
- Се инјектира за време на операцијата. Апликацијата ја враќа тајната од сводот или променливата на околината додека работи, а не од дискот.
- Редовно се ротира. Колку подолго трае тајната, толку е поголем ризикот од истекување. Автоматското вртење е идеално.
- Минимален авторитет. Само услугата на која и е потребна може да пристапи до секоја тајна.
Совет: единствената најефикасна контрамерка е да се стави таен скенер (како git-secrets, gitleaks, trufflehog): го запира извршувањето ако случајно се обиде да се изврши тајна. Ова го запира истекувањето на изворот. Вештачката интелигенција помага да се напише интеграцијата на овие прелистувачи.
Чекор по чекор: одговарање на тајно протекување
Ако протече некоја тајна, не паничете, нарачката е важна:
- Откажете и ротирајте веднаш. Неважечки протечениот клуч, генерирај нов. Не е доволно само да се избрише - останува во минатото.
- Оценете го влијанието. Каде пристапи овој клуч? Дали е злоупотребено? Испитајте ги дневниците.
- Исклучете го изворот. Како протече? Исчистете го кодот, историја; Но запомнете: откажувањето доаѓа пред расчистувањето.
- Спречи. Додајте го тајниот прелистувач во нафтоводот за да не се повторува.
Внимание: Најскапиот облог е да не се врати протечената тајна само затоа што „никој не ја видел“. Клучот фрлен во јавно складиште се скенира од ботови за неколку секунди. Кога се сомневате, ротирајте - цената на ротацијата е мала, цената на истекувањето е катастрофална.
Видови безбедносни скенирања
DevSecOps користи повеќе слоеви на скенирање; Вештачката интелигенција е корисна во толкувањето на излезот од секоја од нив:
- SCA (Анализа на композиција на софтвер): Пронаоѓа познати пропусти (CVE) во зависностите со отворен код што ги користите.
- SAST (Static Application Security Testing): Го скенира изворниот код за пропусти без да го стартува.
- DAST (Динамичко безбедносно тестирање на апликации): Ја тестира апликацијата што работи надворешно.
- Скенирање на слики: наоѓа слабости на сликата на контејнерот (триви, докерски извидник).
- Скенирање на IaC: наоѓа погрешни конфигурации во Terraform/манифести (tfsec, checkov).
Внимание: скенер исфрла стотици наоди; Невозможно е да се поправат сите во исто време. Користете вештачка интелигенција за да им дадете приоритет на наодите: кои се вистински експлоатбилни, кои се очигледни во теоријата, но недостапни во пракса? Но, потврдете го конечниот приоритет со вашиот сопствен контекст.
Табела со растерски слоеви
слој
Што скенира?
примерок од возило
кога
SCA
Ранливост на зависност (CVE)
Dependabot, Snyk
секоја градба
САСТ
Пропусти на изворниот код
Semgrep, CodeQL
Секој ПР
скенирање на слики
Ранливост на контејнерите
Триви, извидник
По изградбата
IaC скенирање
Погрешна конфигурација
tfsec, checkov
Terraform PR
тајно скенирање
Откриени тајни
гитликс
Секоја посветеност
три мини футроли
Случај 1 — 300 CVE, 12 реални ризици. Скенирањето на сликата објави 300 пропусти; Тимот беше парализиран. Дајте му го излезот од скенирањето на вештачката интелигенција и прашајте „кои може да се експлоатираат од далечина и дали се достапни? Тие му дадоа приоритет. АИ истакна 12 вистински ризични наоди. Тимот прво ги затвори; Останатите ги ангажирал планирано. Дајте приоритет пред паниката.
Случај 2 - ротацијата спречи напад. Програмер случајно турнал клуч на облак во јавно складиште. Алармот се вклучи; Тимот откажа и го врати клучот за 4 минути. Дневниците покажаа дека клучот веќе бил побаран од бот - но сега е неважечки. Брзиот пресврт спречи потенцијална катастрофа за наплата и истекување на податоци.
Случај 3 - IaC скенирањето фати отворена кофа. Скенирањето на IaC со помош на вештачка интелигенција фати кофа за складирање во Terraform код со дозвола за „јавно читање“ без да оди на продукција. Програмерот го отвори „за тестирање“ и заборави да го затвори. Гасоводот го запре извршувањето; отворена никогаш не успеала да се произведе. Токму тоа е поентата на повлекувањето налево.
Четири шаблони за копирање
1) Дајте приоритет на излезот за скенирање:
Дајте приоритет на излезот за безбедно скенирање подолу. За секое откритие: (1) дали е навистина искористливо (далечинско/неавтентицирано?), (2) дали е достапно во нашиот контекст, (3) напори за санација, (4) препорачан приоритет (критичен/висок/среден/низок). Истакнете ги 5-те најитни.Зборувајте јасно; укажуваат на тоа дека треба да го потврдам секој приоритет со мојот контекст. Излез: [SCAN]
2) Таен дизајн на управување:
Предложете пристап за управување со тајни за [АПЛИКАЦИЈА/ИНФРструктура]: кој свод, како да се вбризгаат тајни при извршување, како да се автоматизира ротацијата, како да се применат минимални привилегии? Опишете конкретен тек кој НИКОГАШ не ја вметнува тајната во кодот.
3) Пребарување на пропусти во кодот (одбрана):
Проверете го мојот СОПСТВЕН код подолу за безбедност (имам дозвола): дали има некакво инјектирање, вградена тајна, небезбедно стандардно, невалиден влез? На секое наоѓање дајте му важност и поправка. Целта е одбрана и консолидација. Код: [КОД]
4) Таен план за одговор на истекување:
[ТАЈН ТИП] можеби случајно се инфилтрирал во [LOCATION]. Дајте ми чекор по чекор наредба за интервенција: што треба прво да направам (откажување/враќање), како да се оцени ефектот, како да се спречи повторување? Објаснете и зошто само бришењето не е доволно.
Слаб промпт / Силен промпт
Слаб: "Како да го хакнам овој систем/ја искористам оваа ранливост?"
Ова барање е и неетичко и строго надвор од границите на оваа платформа. Нелегално е да се користи вештачка интелигенција за напад.
Силно: „Одложете го кодот на мојата сопствена апликација за безбедност: најдете вградени тајни, ризици од инјектирање и несигурни стандардни обврски, поправете го секој од нив. Целта е да се зацврсти системот“.
Разлика: второто барање е за одбранбени цели, во границите на овластувањата и за консолидација. Ова е правилната употреба на вештачката интелигенција во DevSecOps.
Вообичаени грешки
- Вградување на тајната во кодот/историјата. Најчеста и постојана ранливост.
- Не враќање на откриената тајна. „Никој не го видел“ е најскапиот облог.
- Гледајќи ги сите наоди од скрининг како еднакви. Да се биде парализиран од приоретизирање или да се пропушти вистински ризик.
- Оставајќи ја безбедноста да трае. Јазот во производството е многу пати поскап од празнината во гасоводот.
- Заобиколувајќи минимален авторитет. Тајна/улога што има пристап до сè го прави едно протекување катастрофа.
- Се обидува да користи вештачка интелигенција за напад. Нелегално и надвор од платформата.
Сумирано
DevSecOps ја поставува безбедноста на почетокот и на секој чекор од протокот на DevOps - фаќајќи ги пропустите во кодот и нафтоводот, а не во продукцијата. Златни правила за управување со тајните: тајната не влегува во кодот, се чува во централниот трезор, се вбризгува при извршување, се враќа редовно и се пристапува со минимални привилегии. Првиот чекор во истекувањето е секогаш прекин/враќање. Вештачката интелигенција е моќна во приоритизирање на излезот од скенирање, дизајнирање тајни текови и одбранбена проверка на кодот - но се користи само во одбрана и во законски ограничувања на системите над кои имате авторитет.
Задача за апликација
Преземете свој проект (за кој имате авторитет). (1) Нека ги проверат вградените тајни и несигурните стандардни со шаблонот „Бараме пропусти во кодот“. (2) Подреди излез од безбедносно скенирање (вистински или примерок) преку шаблонот „триажа“ и идентификувај ги 3-те најитните наоди. (3) Направете нацрт на проток за вашиот проект со шаблонот „дизајн за тајно управување“ што целосно ја отстранува тајната од кодот.
листа за проверка
- [ ] Потврдив дека нема вградени тајни во мојот код, слика и манифестации.
- [ ] Ги чувам тајните во централен свод и ги инјектувам при извршувањето.
- [ ] Знам дека првиот чекор во сценариото за протекување е прекин/враќање.
- [ ] Јас им дадов приоритет на наодите од скенирањето врз основа на искористливоста и мојот контекст.
- [ ] Ги преместив безбедносните скенови на раните чекори на гасоводот (лево).
- [ ] Јас користев само вештачка интелигенција за одбранбени цели на системи во кои имам авторитет.