2025 жылы SAST: SonarQube, Semgrep немесе Checkmarx қалай таңдау
2025 жылы SAST: SonarQube, Semgrep және Checkmarx-ты тілдерге қолдау, ережелер сапасы мен алерттер тұрғысынан салыстырып, quality gate‑ты конфигурациялаудың жолдары.

Командалар SAST енгізгенде не мазалайды
2025 жылы SAST-ты есеп үшін емес, уязвимділіктер мен қауіпті паттерндерді кодтың ішінде ерте табу үшін енгізеді: инъекциялар, деректерді қауіпті өңдеу, авторизация қателері, құпия ақпарат ағу қаупі және кейін инцидентке айналатын багтардың бір бөлігі.
Алғашқы іске қосқаннан кейін көптеген командалар алерттерді елемеуге бастайды. Бұл «бар өркет» емес — пайдалы сигнал тез шу ішінде жоғалып кетеді.
Шум көбіне түсінікті себептерден пайда болады: жалған срабатываниялар көп немесе контекст болмаса тәуекел түсініксіз; есептер тым кеш келеді (merge немесе релизден кейін); приоритеттер анық емес (не критикалық, не кейінге қалдырылады); процесс иелері тағайындалмаған (кім триаж жасайды, кім тапсырмалар ашады, кім исключения растауы керек); құрал алдымен легаси-ді «жарып тастап», бірінші күні мыңдаған мәселелер әкеледі.
Quality gate-тен әдетте екі нәрсе күтіледі бірден: тәуекелді азайту және шуды қысқарту. Нақты қауіпті өзгерістерге түсінікті «стоп» керек (мысалы, төлем коды немесе персоналды деректер бар сервиске жаңа критикалық уязвимость), бірақ тарихи проблемалар miatt дамытуды бөгемеу қажет.
Мұнда құрал таңдау мен процесті баптау арасындағы айырмашылық маңызды. Құрал тілдерді қолдау, ережелердің дәлдігі және интеграциялардың ыңғайлылығы үшін жауапты. Процесс — команданың нәтижелермен қалай өмір сүретіні үшін: ескі проблемаларға baseline, критикалдыққа қарай түзету мерзімдері, түсінікті исключениялар және «gate жаңа кодты тексереді» принципі. Бұл жоқ болса, жақсы SAST та фондық шуға айналып, өшіріледі.
SonarQube, Semgrep, Checkmarx: не салыстыру керек
Осы құралдарды тек бірдей тапсырмалар бойынша салыстырған жөн: олар сіздің кодта проблемаларды қалай табады, нәтижелерге қаншалықты сенуге болады және күнделікті тексерулермен өмір сүру қаншалықты ыңғайлы.
SonarQube жиі «код сапасы плюс қауіпсіздік» ретінде қабылданады: багтар, қолданыстағы кодты қолдау және стиль туралы көп ережелер, ал қауіпсіздік солардың қатарында жүреді. Semgrep — «жедел және икемді» идеясында: ережелерді код сияқты жазып, өзгертуге болады, бұл тексерулер логикасын бақылағысы келетін командаларға ыңғайлы. Checkmarx көбіне «корпоративті» сценарийде таңдалады: кең ауқымды тексерулер, саясаттарды басқару, есептер және уязвимділіктерге қатысты процесс.
Тағы бір мәселе — орналастыру (размещение). Бұлт жылдам бастау және масштабтауды жеңілдетеді, бірақ деректер мен желі талаптары қатал болса сай келмеуі мүмкін. On‑prem көбірек бақылау береді, бірақ эксплуатацияны қосады: инфрақұрылым, жаңартулар, есептер және сақтық көшірмелер.
Салыстыру үшін критерийлерді алдын ала бекітіңіз. Әдетте бұл:
- қамту (сіздің стекке тән тілдер мен фреймворктер),
- дәлдік (пайдалы алерттерге対 шуға қатысты),
- жылдамдық (CI-ға қанша минут қосылады),
- әзірлеуші үшін ыңғайлылық (IDE, PR-дегі комментарийлер, түзету бойынша нақты кеңестер),
- басқарымдылық (рөлдер, саясаттар, аудит, қауіпсіздік үшін есептер).
Жасырын шығындарды ұмытпаңыз. Шынайы өмірде уақыт «сатып алуға» емес, ережелерді баптауға, CI мен таскелік жүйеге интеграцияға, техникалық қызмет көрсетуге (арнайы on‑prem болса), команданы оқытуға және тәуекелді кім қалай қабылдайтыны туралы келісімдерге кетеді.
Егер алдын ала не салыстыратыныңыз бен табыс критерийін келіссеңіз, пилот қысқа және адал өтеді, презентация жарысы емес.
Тілдер мен стек бойынша таңдау: қалай қателеспеу
Атымен емес, репозиторийіңізде нақты не барынан бастаңыз: тілдер мен нұсқалар, фреймворктер, сборка, тесттер, типтік паттерндер (ORM, шаблонизаторлар, API-шлюздер). Көбіне қате — «топ өнімді» алып, оның бір сервиске тамаша, ал кодтың жартысына пайдасыз екенін кейін анықтау.
Егер монорепо және бірнеше команда болса, тілді қолдау ғана емес, үлкен ағаштағы жұмысы да маңызды. Фронтенд командасына әдетте PR-та тез кері байланыс керек, ал платформа үшін критикалық сервистерге қатаң тексерулер мен саясат маңызды. Пилотқа дейін негізгі мүмкіндіктерді тексеріңіз: құрал өзгертілген бөліктерді сканерлей ала ма, әртүрлі қалталар үшін әртүрлі ережелер қоюға болады ма, компоненттер бойынша нәтиже шығара ма (жалпы есеп емес) және CI-де қосымша қолмен айналып өтулерсіз жұмыс істей ме.
Өнімнің спецификасын ескеріңіз. Backend үшін инъекциялар, қауіпті сериализация, авторизация қателері және құпиялардың ағуы жиі маңызды. Frontend үшін — XSS, қауіпті HTML-пен жұмыс және тәуелділіктер. Mobile үшін — токендерді сақтау, криптография, желі баптаулары және сборка профилдері. Бір құрал Java-да мықты болса, Swift-та әлсіз болуы мүмкін.
Қолдауды маркетинг кестелеріне қарап емес, өз кодыңызда шағын тестпен тексерген дұрыс. Бір нақты сервис немесе мини-жоба алып, қысқа пилот жасаңыз: 2–3 уязвимділік, сіз ұстап қалғыңыз келетін; 1–2 орын, әдетте жалған срабатывания көп болатын; ветка мен pull request-та прогон жасаңыз; содан кейін бағалаңыз — қажеттілер табылды ма және талдауға қанша уақыт кетті.
IaC мен конфигтерді (Terraform, Kubernetes YAML, CI-скрипттер) бөлек ойлаңыз. Бастапқыда бұл шу қосады, бірақ тез табылатын мәселелердің көзі болуы мүмкін. Практикалық компромисс — негізгі тілдер бойынша алерттердің сапасын жетілдірген соң IaC-ны қосу және ең критикалық ережелерден бастау (ашық порттар, жария бакеттер, құпиялар өзгермелілерде).
Ережелер, жаңартулар және исключения: сатып алудан бұрын бағалау
«Көп ережесі бар» құрал емес, сіздің нақты тәуекелдерді жауып, жұмысты үзіліссіз ұстайтын құрал жеңеді. Сондықтан ережелерді өнім ретінде қарастырыңыз: кім жазады, қалай жаңартылады және нәтижелер қаншалықты түсінікті.
Жақсы ереже көбіне анық көзге сүйенеді (CWE, OWASP, secure coding нұсқаулықтары немесе вендор зерттеулері), сенімділік деңгейін көрсетеді және мысалдар береді. Мысал формал сипаттамадан жиі маңыздырақ: егер алерт не қауіпті екенін және оны қалай түзету керектігін түсіндірмесе, әзірлеуші оны елемеуі немесе «кездейсоқ» түзетуі мүмкін.
Пилотта ережелер жинағын тез тексеру үшін жеткілікті:
- сіздің тілдерге тән 10–15 типтік уязвимділікті таңдау (инъекциялар, SSRF, қауіпті десериализация, құпиялар),
- құралдың түзетуін қалай түсіндіретінін және CWE/OWASP-қа қалай сәйкестендірілетінін қарау,
- нақты кодтағы «сигнал/шу» қатынасын бағалау,
- ережелер қаншалықты жиі жаңартылады және жаңартулардан кейін порогтар қалай өзгереді екенін тексеру.
Кастом ережелер бәріне де керек емес. Олар ішкі фреймворктер, өз оберткалары немесе норматив талаптар болғанда пайдалы. Бірақ олар әдетте 1–2 адамның жүктемесіне айналады: егер уақыт болмаса, ережелер ескіріп, SAST-қа сенім болмайды.
Исключения рұқсат етіледі, егер тәуекел саналы қабылданса. Қалыпты практика — себеп пен қайта қарау мерзімін тіркеу: «санитайзерден болған жалған срабатывание», «код тек тестке арналған», «келесі релизде жоспарлы рефакторинг». Исключение нақты орын мен версияға байланса жақсы, жалпы «ереже everywhere өшіру» болмау керек.
Алерттердің сапасы: қалай өлшеу және жақсарту
Алерттердің сапасын проблемалар саны емес, олардың қаншасы нақты көмектесетінімен өлшеу оңай. Қандай да бір құралда жалған срабатываниялар мен пропустар болады — бұл жұмыс метрикасы.
Пилот үшін әдетте үш көрсеткіш жеткілікті: жалған срабатываниялардың үлесі (қайсысын неактуал деп жаптық), белгілі паттерндер бойынша алерттердің қайталанушылығы және критикалық табылған проблемаларды шешуге кеткен орташа уақыт. Пропустарды да тіркеңіз: егер баг өндірісте немесе пен‑тестте табылса, SAST оны таба алар ма еді және қай ережемен — сол маңызды ақпарат.
Алерттер шудан айналып қалмас үшін қарапайым триаж процесі керек. Ол бір адамның басында болмауы тиіс. Минималды каркас: әзірлеуші контекст растайды, қауіпсіздік немесе архитектор приоритет береді және исключенияға көмектеседі, әрі қарай анық мерзімдер мен статустар бар (түзетілді, жалған себеппен жабылды, қатысты емес — негіздемесі бар, кейінге қалдырылды — нақты датамен).
Көбіне уақыт дубликаттар мен қайталанатын паттерндерге кетеді. «Нормализация» жақсы жұмыс істейді: бірдей алерттер бір тапсырмаға біріктіріледі, сосын жалпы код шаблонды түзету әлде ережені баптау әлде нақты басу — қайсысы тиімді екені шешіледі.
Менеджментке жүздеген жолдық детальдар қажет емес. 3–5 көрсеткіш жеткілікті: ашық критикалықтар қанша, кезең ішінде қаншасы жабылды, орташа реакция уақыты, қайталану себептерінің үздік себептері және жалған срабатываниялардың үлесі — осылар ережелер сапасының жақсарғанын көрсету үшін керек.
Пилоттың қадамдық жоспары: алғашқы іске қосудан масштабқа дейін
Пилотты бәрін бірдей репозиторийге қосып бастап емес, өлшенетін экспериментпен бастау жақсы. 1–2 жоба таңдаңыз, стекті көрсететін: бірі белсенді дамитын сервис, екіншісі архитектурасы жағынан типтік (мысалы, backend пен кішкене фронтенд). Мақсатты 2–4 аптаға бекітіңіз: критикалық уязвимділіктерді азайту, код сапасын жақсарту немесе релиздерді болжауды арттыру.
Анализді CI-ға қосыңыз, бірақ алғашқы күні процесті бұзбауы үшін көрінетін етіп жасаңыз. Көбіне PR-та және түнгі прогондарда іске қосу жеткілікті. Одан соң командаға ритуал керек: кім алерттерді қарайды, қайда талқыланады, «түзету», «подавление» немесе «ереже қайта жазу» шешімі қалай қабылданады.
Алғашқы прогонынан кейін 50–100 алертты триаж жасап, қай ережелер ең көп шуды тудыратынын белгілеңіз. Әдетте 5–10 ереже жалған срабатываниялардың негізгі бөлігін немесе сіздің паттерндерге сәйкес келмейтінін көрсетеді. Легаси‑жобаларда бұл әсіресе айқын: мысалы, «методтың қиындығы» ережесі есептерді жүздеген көрсетіп, қауіпсіздікке қатысты емес мәселелерге алаңдатуы мүмкін.
Пилот таласқа айналмасын десеңіз, «ойын ережелерін» пилот нәтижесі ретінде бекітіңіз: қандай категориялар блоктайды, қандай исключения рұқсат етіледі және кім оларды мақұлдайды, accepted risk уақытша қабылдана ма және қанша уақытқа, қай порогтар табыс саналады және қай конфигурация жаңа репозиторийлерге көшіріледі.
Осы рәсімделгеннен кейін масштабтау үлгі көшіріліп, қайта енгізу емес, көшіріп қосудың нәтижесі болады. Командаларды толқынмен қосып, әр толқын үшін олардың кодынан мысалдармен қысқа разбор өткізіңіз.
Quality gate: порогтар, легаси және исключениялар
Quality gate жиі үміттерден бұзылады. Егер жаңа код пен легаси үшін бір порог қойсаңыз, команда құралмен емес, уязвимдіктермен күрескеннен гөрі құралмен күреседі. Жұмысқа жарамды схема әдетте бір: жаңа код қатаң бақыланады, ал ескі қарыз жоспары бойынша төмендетіледі.
Жаңа код үшін gate қатаң болуы тиіс, бірақ бастау жұмсақ болғаны дұрыс — әйтпесе бірінші күні релиздер бұғатталады. Жақсы старт — нақты қауіпті және дау тудырмайтын нәрселерді ұстап алу: high немесе critical класстар, эксплуатацияға айқын жолы бар жағдайлар, SQL‑инъекциялар, авторизацияны айналып өту паттерндері, құпиялардың ағуы және, егер құрал қолдаса, CVE-і белгілі критикалық тәуелділіктер.
Легаси үшін басқа тәсіл: baseline орнатып, қарызды қадамдармен төмендету. Мысалы, әр спринтте ең қауіпті X табылғанды жабу немесе high санын Y пайызға кеміту. Сол кезде gate қорған қоршауға айналмайды.
Исключения процестің бір бөлігі болуы керек, лазейка емес. Практикалық минимум: исключение автор емес, тағайындалған қауіпсіздік жауаптысы немесе техлид тарапынан мақұлдансын; әр исключениеге мерзім (көбіне 30–90 күн) және себеп берілсін; мерзім аяқталған соң тапсырма қайта жұмысқа оралсын.
Әзірлеушілерге gate-ты қабылдау жеңіл болу үшін пайдасын көрсетіңіз: аз қолмен тексерулер, тезірек ревью, кеш сатыларда жағымсыз тосынсыйлардың азаюы. Типтік компромисс: merge жаңа код жаңа high‑алертов пен құпияларды қоспаса рұқсат етіледі, ал легаси бөлек бэклогта жүреді.
Таңдау мен енгізудегі типтік қателіктер
Көбіне құрал емес, үміттер сәтсіздікке ұшырайды. 2025 жылы кез келген команда сканерді бір күнде іске қоса алады, бірақ тұрақты процесс тек алдын ала келісімдер болса ғана пайда болады: не блоктайды, кім алерттерді талдайды және қанша уақыт бұл іс шынымен алады.
Тағы да қайталанатын қателіктер: бірден барлық ережені қосып, жүздеген алерт алу; бүкіл легаси үшін қатаң gate қойып релиздерді тоқтату; triage иесін тағайындамау және дубликаттардың жиналуына әкелу; скан уақытын елемеу және CI ұзарып, тексерулерді айналып өтуді ынталандыру; SAST-ты тек оқытуға ауыстыруға тырысу (оқыту көмектеседі, бірақ автоматты тексерусіз қателер мерзім алдында қайтып келеді).
Жай қарсы дәрі — төрт қадам: ережелердің кішкене жиынтығынан бастап, сенім пайда болған сайын кеңейту; екі порог енгізу (жаңа кодқа қатаң, легаси үшін жұмсақ); triage жауаптысы мен SLA тағайындау; скан уақытыны өлшеп, не PR-да өтуі керек, не түнгі жүгірістерге жіберілетініне шешім қабылдау.
Енгізуге дейін жылдам чек‑пәрмен
SAST таңдап, CI-ды бүлдірмеу үшін бір репозиторий мен бір типтік pipeline-да бірнеше жылдам тексеріс жүргізу ең пайдалы.
Бір күнде негізгі жағдайларды түсінуге болады:
- сіздің тілдер мен нұсқалар нақты жинақта жұмыс істей ме,\n- скан қанша уақыт алады және ауыр тармақтарда уақыт қалай өзгеретінін,\n- ережелерді команда немесе репозиторий деңгейінде баптауға бола ма,\n- түсінікті триаж бар ма (жауаптылар, жалған срабатыванияларды тіркеу),\n- жаңа код пен легасиді бөліп, тек жаңа проблемаларды блоктауға бола ма.
Содан кейін «шумен» жобаға қалай әрекет ететініне бөлек қарап шығыңыз. Корпоративтік монорепода әзірлеуші тез шешуі тиіс: бұл нақты уязвимділік пе әлде даулы ереже ме және кодта нені өзгерту керек.
Gate-ты барлық жерде қоспас бұрын бірнеше сұраққа жауап беріп қойыңыз: қауіпсіздік, даму және менеджментке қандай есептер мен метрикалар керек; baseline қалай есептеледі және «жаңа код» қалай анықталады; исключения қалай рәсімделеді (мерзім, себеп, кім мақұлдайды); ережелер жаңартылғанда порогтарға және тұрақтылыққа қалай әсер етеді.
Мысал: команда бір айда жұмыс істейтін gate-қа қалай жетті
Өнімді қолдау командасы үш сервисі бар монорепозиторийді басқарды: Java (негізгі бэкенд), JavaScript (админка) және Python (деректер өңдеу пакет). Релиздер апта сайын шығып отырды, және кез келген кідіріс жоспарға әсер ететін.
Пилотта олар таңдалған құралда негізгі ережелер жиынтығын қосып, репозиторийді толығымен сканерледі. Нәтиже мотивацияны түсірді: шамамен 1200 алерт, көбісі стиль мен даулы ұсыныстарға қатысты болып көрінді, қауіпсіздікке тікелей қатысы аз. Есептерді тез оқымады.
Олар мониторингтегі шуды азайтқандай істеді: алдымен шуды азайтып, содан кейін блоктауды қостылар.
4 апталық жоспар осылай болды:
- 1‑апта: негізгі картинаны анықтап, қай жерде алерттер жиі екенін нотап алды. Пилот мақсаты — бәрін жаппай емес, gate-ты пайдалы ету болды.
- 2‑апта: ең көп жалған срабатывания беретін бірнеше ережені өшірді. Легитимді исключенияларға себеп пен қайта қарау мерзімімен комментарийлер қосты.
- 3‑апта: апталық 30–40 минуттық триаж енгізіп, статус пен жұмыс тәртібі туралы келісім жасады.
- 4‑апта: quality gate-ты тек жаңа жоғары критикалдық алерттерді блоктайтындай етіп баптады. Мұрағатталған мәселелер бөлек бэклогқа алынып, иелері мен мерзімдері берілді.
Ай бойы есептер қысқарып, релиздер ескі қарыз miatt тоқтап қалмады, әзірлеушілер сигналдарға сене бастады: блокировка сирек болса да, көбіне орынды еді.
Келесі қадамдар: салыстырудан жұмыс үдерісіне өту
Салыстырудан кейін тоқтап қалу — ең үлкен қауіпті. Күнделікті дамуға кіріскен SAST жеңеді, жылдамдықты өлтірмей.
Масштабтау алдында қысқа дайындық пайдалы: тілдер мен нұсқалардың, негізгі репозиторийлер мен CI инвентаризациясы; процесс иелерін тағайындау (қауіпсіздік — саясат пен тәуекел, тимлидтер — командалар ішінде қабылдау, DevOps — CI және рұқсаттар, менеджмент — приоритеттер мен мерзімдер); минималды quality gate тек жаңа кодқа; понятный исключение процесі; 1–2 репозиторийге 2–4 апта пилот.
Пилот өлшенетін болсын десеңіз, 3–5 метриканы таңдап, оларды апта сайын жазыңыз: жалған срабатываниялардың үлесі, триажға дейін орташа уақыт, қанша табылған түзетілді, қанша рет сборка бұғатталды және неге.
Бірінші аптада «тихий режим» жақсы жұмыс істейді: нәтижелер көрінеді, бірақ сборка құламайды. Екінші аптада блоктауды бір класс мәселе бойынша қосыңыз (мысалы, құпиялар мен SQL‑инъекциялар), ал стиль және code smell ережелерін ұсыныс ретінде қалдырыңыз.
CI, раннерлар, есептер сақтау және исключения процесін баптауға қол жоқ болса, бұл DevSecOps пен интеграция міндетіне айналады. Мұндай жағдайда жүйелік интеграторды тартқан ыңғайлы. Мысалы, GSE.kz жүйелік интеграция және 24/7 қолдау көрсетумен айналысады және quality gate енгізу мен ережелерді орнатуға көмектесуі мүмкін.
FAQ
SAST таңдауына қайдан бастау керек, құралды дұрыс таңдамау үшін?
Репозиторийлеріңізде нақты не бар екенін анықтаудан бастаңыз: тілдер мен олардың нұсқалары, фреймворктер, сборка және типтік паттерндер. Сосын 1–2 нақты сервиске қысқа пилот өткізіп, құралдарды бірдей критерийлер бойынша салыстырыңыз: дәлдік, CI-дағы жылдамдық, PR-дегі ыңғайлылық және ережелерді басқару мүмкіндігі.
Неге SAST алғаш іске қосылғаннан кейін алерттерді елемей бастайды?
Пайдалы сигнал тез шу ішінде жоғалып кетеді: көптеген жалған срабатываниялар, алерттерде контекст жетіспеуі және приоритеттердің анық еместігі. Көмектеседі: базалық триаж, легаси үшін бекітілген baseline және «gate тек жаңа кодқа қарайды» қағидасы, сонда құрал фондық шудан айырылмайды.
Quality gate-ты қалай орнату керек, ол дамытуды бұзбасын?
«Жаңа код» пен легасиі бөліп алыңыз. Жаңа кодқа аса қауіпті категориялар бойынша қатаң стоп қойыңыз, ал тарихи проблемалар үшін baseline орнатып, қарызды кезең-кезеңімен азайтыңыз — әйтпесе релиздер тоқтап қалуы мүмкін.
SonarQube, Semgrep пен Checkmarx арасында практикалық айырмашылық неде?
Күнделікті пайдалы түрде салыстырыңыз, функциялар санымен емес. SonarQube көбіне код сапасы мен қауіпсіздікті бірге қарастырады, Semgrep — ережелерді «код ретінде» тез өзгерту ыңғайымен күшті, ал Checkmarx көбіне саясаттар, рөлдер, аудит пен уязвимділік процесін басқару қажет жерде таңдалады.
SAST үшін бұлт па, әлде on‑prem па таңдау керек?
Облако тезірек іске қосылады және масштабтауға жеңіл, бірақ деректерге және желі талаптарына қатал жағдайларда сәйкес келмеуі мүмкін. On‑prem толық бақылау береді, бірақ эксплуатация — инфрақұрылым, жаңартулар, есептік жазбалар және бэкап — үнемі жүктеме болады.
SAST алерттерінің сапасын нақты қандай метрикалармен өлшеу керек?
Алерттердің сапасын былай өлшеңіз: жалған срабатываниялардың үлесі, бірдей паттерн бойынша қайталанатын алерттер және критикалық табылған мәселелерді шешуге кеткен орташа уақыт. Қосымша ретінде пропусктерді тіркеңіз: егер осалды табуды кейін тапса, SAST оны қай ережемен ұстай алатынын тексеріңіз.
Алерттерді кім талқылайды (triage) және оны қалай ұйымдастыру керек?
Жауаптыларды тағайындаңыз және қарапайым статустар енгізіңіз, сонда шешімдер жеке адамның басында қалмайды. Жұмыс үшін минимум — әзірлеуші контекстті растайды, қауіпсіздік маманы немесе техлид приоритетті анықтайды, ал түзету мерзімдері критикалдыққа байланысты белгіленеді.
Кастом ережелер керек пе, әлде кіріктірілгендері жеткілікті ме?
Кастом ережелер пайдалы, егер ішкі фреймворктеріңіз, өзіңіз жасаған оберткаңыз немесе нормативтік талаптар болса. Бірақ олар әдетте 1–2 адамның жүктемесін талап етеді; егер оларды күтуге уақыт болмаса, ережелер ескіріп, SAST-қа сенім төмендейді.
Исключения мен false positive-тарды қалай дұрыс рәсімдеу керек?
Исключения қалыпты жағдай, егер тәуекел саналы түрде қабылданса. Әрбір исключениеге себеп пен қайта қарау мерзімін көрсетіңіз, оны кодтың нақты жеріне байлаңыз және оны қай автор растауға болмайтынын ескеріңіз — сәйкестікті тағайындалған иесіне немесе техлидке қалдырыңыз.
SAST қосқанда CI-дың жұмыс уақытын қалай өлшеу және керексіз жүктемені болдырмау?
Алдымен қанша минут pipeline-ға қосылатынын өлшеңіз де, PR-ға не қоюға болатынын және не нәрсені түнгі жүгірістерге жіберуге болатынын шешіңіз. Жиі көмектесетін тәсіл — өзгертілген бөліктерде скан жүргізу және ережелерді біртіндеп қосу, әйтпесе CI-дан бас тарту тәуекелі туындайды.