SAST және SCA-ның 30 күндік пилоты төрт кезеңге сыяды: дайындық пен орнатуға бір апта, сканерлеу мен нәтижелерді талдауға екі апта, қорытынды мен шешімге бір апта. Ең бастысы — мақсаттарды, репозиторийлер жиынтығын және табыстың өлшенетін критерийлерін алдын ала белгілеу, әйтпесе өнімдерді салыстыру орнына әсерлер жиынтығын аласыз.
Пилот не үшін қажет және демодан несімен ерекшеленеді
Вендордың демонстрациясы өнім мүмкіндіктерін дайындалған мысалда көрсетеді. Пилот (proof of concept) өнімнің сіздің кодыңызда, сіздің конвейеріңізде және сіздің адамдарыңызбен қалай жұмыс істейтінін көрсетеді. Ол таныстырылыммен жабуға болмайтын сұрақтарға жауап береді: нақты осалдықтардың қаншасы табылады, құрал қанша шу тудырады, сканерлеу қанша уақыт алады және әзірлеушілер онымен жұмыс істеуге келісе ме. Негізге алуға тұрарлық таңдау критерийлері «SAST талдағышын қалай таңдау керек» мақаласында сипатталған.
0-апта: басталғанға дейінгі дайындық
Бұл жұмыс бүкіл пилоттың табысын анықтайды, сондықтан оны өнімдерді орнатқанға дейін орындаңыз.
- Мақсаттарды тұжырымдаңыз. Мысалы: барлық командалар үшін SAST және SCA таңдау; жабық контурда жұмысты растау; жинау уақытына әсерді бағалау.
- Рөлдерді тағайындаңыз. АҚ тарапынан пилот иесі, DevOps тарапынан техникалық жауапты, 2–3 әзірлеуші-қатысушы, вендордың немесе интегратордың өкілі.
- Репозиторийлерді таңдаңыз. 3–5 жоба: әртүрлі тілдер мен командалар, өткен ену тестілерінен белгілі осалдықтары бар бір жоба, тәуелділіктер тарихы үлкен бір жоба. Бұл өткізіп алуларды тексеру үшін эталон береді.
- Қолжетімділікті келісіңіз. Git-тегі тіркелгілер, CI құқықтары, желілік ережелер, сканерлеу серверін орнату орны. Қолжетімділікті кешіктіру — мерзімнің бұзылуының ең жиі себебі.
- Метрикаларды анықтаңыз. Төмендегі бөлімді қараңыз.
- Деректер мәселесін шешіңіз. Кодты сыртқа беруге болмаса, тек локалды орнатуды сұраңыз және мұны жазбаша растаңыз.
1-апта: орнату және алғашқы іске қосу
- Шешімдерді сынақ контурында орнатып, еңбек шығындарын өлшеңіз: қанша сағат және қандай мамандар қажет болды. Бұл меншік құнын бағалауға кіреді.
- Репозиторийлерді қосып, алғашқы сканерлеуді әдепкі параметрлермен орындаңыз. Табылғандар санын және сканерлеу уақытын тіркеңіз.
- SCA үшін өнім тәуелділіктерді қалай анықтайтынын тексеріңіз: манифестерден, жинаудан, транзиттік тәуелділіктер ескеріле ме. Мысалы, Sonatype Lifecycle 20-дан астам тіл мен пакет пішімін қолдайды және SBOM генерациялайды, ал OWASP Dependency-Track CycloneDX пішміндегі SBOM-ды қабылдайды, сондықтан әр өнімге кіріс деректердің қандай түрде қажет екенін нақтылаңыз. SBOM туралы толығырақ — «SBOM деген не».
2–3-апталар: нәтижелерді талдау және CI-ға интеграция
- Әзірлеушілермен бірге триаж. Табылғандардың кездейсоқ іріктемесін алып (мысалы, әр өнімге 50–100), әрқайсысын шынайы, жалған немесе «өзекті емес» деп белгілеңіз. Бірнеше үміткерді салыстырсаңыз, табылғанды қай өнім тапқанын білмей, соқыр талдаңыз.
- Өткізіп алуларды тексеру. Белгілі осалдықтары бар жобада әр құрал пентесттен расталғанды тапқанын тексеріңіз.
- CI/CD-ға интеграция. GitLab, GitHub немесе Jenkins-те pull request сканерлеуін қосыңыз. Тексеру уақытын өлшеп, инкременттік режимнің жұмыс істейтініне көз жеткізіңіз; OWASP SAST-ты дәл pull request кезінде іске қосуды ұсынады.
- SCA саясаттары. Сындарлы осалдықтар мен тыйым салынған лицензиялар бойынша жинауды тоқтататын ереже баптап, ол қанша жинауды тоқтатар еді, соны қараңыз. Командалардың жұмысын салдамау үшін алдымен ескерту режимін қосыңыз.
- Зиянды пакеттерден қорғау. Мұндай функцияны бағаласаңыз, оны бөлек тексеріңіз. Sonatype-та бұл — зиянды компоненттерді жүктеу кезінде бұғаттайтын және күдіктілерін карантинге орналастыратын Firewall өнімінің міндеті.
- Баптау. Жалған іске қосылуларды басып, өз ережеңізді қосып, Jira-да тапсырмаларды тағайындап көріңіз. Бұл сіздің командаңыз үшін қаншалықты оңай екенін бағалаңыз.
4-апта: қорытынды және шешім
- Әр үміткер бойынша метрикаларды біртұтас кестеге жинаңыз.
- Әзірлеушілермен ретроспектива өткізіңіз: не кедергі болды, не көмектесті, олар бұл құралмен күн сайын жұмыс істеуге дайын ба.
- 3 жылға есептелген коммерциялық ұсыныс сұрап, инфрақұрылым мен сүйемелдеу құнын қосыңыз. Есептеу тәсілі — «Open-source немесе коммерциялық AppSec құралдары» мақаласында.
- Басшылыққа қысқа есеп дайындаңыз: нені тексердіңіз, нені анықтадыңыз, қандай шешімді ұсынасыз және қандай тәуекелдер қалады.
Қандай метрикаларды жинау керек
- Шынайы іске қосылулар үлесі: іріктемедегі шынайы табылғандардың оның көлеміне қатынасы.
- Белгілі осалдықтарды қамту: бұрын расталған ақаулардың қаншасы табылды.
- Сканерлеу уақыты: толық репозиторийдің және pull request-тің.
- Тілдер мен тәуелділіктерді қамту: стектің барлық технологиялары талданды ма, «соқыр аймақтар» жоқ па.
- Енгізу мен сүйемелдеуге еңбек шығындары: адам-сағатпен.
- Бір табылғанды талдауға кеткен уақыт: әзірлеушілерде өлшеңіз.
- Әзірлеушіге ыңғайлылық: пилоттан кейін қатысушылардың қысқа сауалнамасы.
- Сіздің контурыңызда жұмыс: талап болса, сыртқы желіге шықпай орнату расталды ма.
Шектік мәндерді алдын ала келісіп алыңыз, мысалы, «шынайы іске қосылулар үлесі келісілген санынан төмен емес» және «pull request тексеруі белгілі бір уақыттан аспайды». Нақты мәндер сіздің ұйымыңызға байланысты, әмбебап нормативтер жоқ.
Пилоттың типтік қателері
- Табыстың жазбаша критерийлері жоқ. Нәтижесінде сенімдірек сөйлейтін адам шешеді.
- Пилот тек демо-жобаларда. Олар нақты шу мен күрделілікті көрсетпейді.
- Әзірлеушілер тартылмаған. Оларсыз шынайы және жалған іске қосылуларды бағалау мүмкін емес.
- Үміткерлер тым көп. Екі-үш өнім — 30 күнде әрқайсысын сапалы бағалауға болатын шек.
- Үміткерлер үшін әртүрлі жағдай. Бірдей репозиторийлер, баптаудың бірдей тереңдігі, бірдей мерзімдер.
- Шешімсіз пилот. Шешімді кім және қашан қабылдайтынын алдын ала анықтаңыз, әйтпесе жоба созылып кетеді.
Пилоттан кейін не істеу керек
Өнімді таңдағаннан кейін қамтуды кезең-кезеңімен кеңейтіңіз: алдымен аса маңызды қосымшалар, содан кейін қалған командалар. «Тек ескертулер» режимінен бастап, сосын аса маңызды табылғандар бойынша бұғаттауды енгізіңіз. Тұтас көрініс үшін DevSecOps картасын қарастырыңыз: DevSecOps енгізу қызметтері құралдарды жай орнатпай, процестерге кіріктіруге көмектеседі. Пилотқа арналған өнімдерді салыстыру: SAST және SCA.
Пилот қорытындысы бойынша есеп үлгісі
Пилот нәтижелерін басшылыққа көрсетуге және сатып алуда пайдалануға болатындай, оларды бес бөлімнен тұратын қысқа құжатқа рәсімдеңіз. Біріншісі — мақсаттар мен шекаралар: қандай репозиторийлер мен өнімдер қатысты және қандай жағдайда. Екіншісі — әр үміткер бойынша метрикалар кестесі. Үшіншісі — әзірлеушілердің қорытындылары: не ыңғайлы болды, не кедергі жасады. Төртіншісі — еңбек шығындары мен үш жылдағы меншік құнын бағалау. Бесіншісі — кезеңдері мен жауапты тұлғалары бар ұсыныс және енгізу жоспары.
Есепке нақты табылғандардың мысалдарын қосыңыз: құралдың анықтаған екі-үш расталған осалдығы және екі-үш типтік жалған. Мұндай мысалдар басшылықты кез келген пайыздан жақсы иландырады, өйткені құндылық пен шығындарды сіздің кодыңыздағы нақты жағдайларда көрсетеді.
Ұйымдастырушылық жағын да ұмытпаңыз: әзірлеу командаларын бір ай ішінде олардың конвейерінде қосымша тексерулер пайда болатыны туралы алдын ала ескертіп, пилот нәтижелері жекелеген әзірлеушілерді бағалауға пайдаланылмайтынын түсіндіріңіз. Онсыз қатысушылар мәселелерді жасырып, сканерлеуді айналып өте бастайды, сіз бұрмаланған көрініс аласыз. Пилот бойынша сұрақтарға арналған біртұтас арнаны және бұғаттаушы мәселелер мен аралық сандар талқыланатын апта сайынғы қысқа кездесуді тағайындаңыз.
Пилот бірнеше елде немесе холдингтің бірнеше заңды тұлғасында өткізілсе, метрикалардың біртұтас жиынтығын алдын ала анықтаңыз: сонда нәтижелерді алаңдар арасында салыстыруға және барлық командаларға арналған сатып алу мен стандарт туралы ортақ шешім қабылдауға болады.
Жиі қойылатын сұрақтар
30 күн жеткілікті ме?
Қанша репозиторий алу керек?
SAST пен SCA-ны бір мезгілде пилоттауға бола ма?
Әзірлеу тарапынан кім қатысуы тиіс?
SAST және SCA пилотын жоспарлап жатырсыз ба? AST Cyber Lab критерийлерді дайындауға, DerScanner мен Sonatype-ты сіздің жобаларыңызда орналастыруға және нәтижелерді командамен бірге бағалауға көмектеседі.
Дереккөздер
- OWASP DevSecOps Guideline: Static Application Security Testing
- Sonatype Lifecycle: өнім беті
- Sonatype Firewall: өнім беті
- OWASP Dependency-Track
- Semgrep Docs: Semgrep Code overview