2025 ж. 26 қыр.·7 мин

Веб‑қолданбаларға арналған DAST: Burp Suite Enterprise, Invicti және Acunetix салыстыруы

Веб‑қолданбаларға арналған DAST: Burp Suite Enterprise, Invicti және Acunetix‑ты бізге тән тест ортасында покритие, авторизация мен жалған срабатываниялар бойынша қалай әділ салыстыруға болатынын түсіндіреміз.

Веб‑қолданбаларға арналған DAST: Burp Suite Enterprise, Invicti және Acunetix салыстыруы

Неліктен DAST‑ты өз тест ортасында салыстыру керек

Веб‑қолданбаларға арналған DAST‑ты «әдемі есеп үшін» емес, практикалық мәселелерді шешу үшін таңдайды: өнімнің нақты қауіпі қандай, аудитормен не көрсету керек және релиздерді қолмен тексерулермен тежегісі келмейтін командалар үшін қалай жұмыс істеу керек.

Өз тест ортасында жүргізілген салыстыру әңгімені «қай құрал көп танымал» дегеннен «қандай құрал біздің қолданбада қажетті нәтиже береді» дегенге ауыстырады. Бір командаға CI‑дегі прогондардың жылдамдығы мен тұрақтылығы маңызды, басқаларға жеке кабинеттегі тексерулердің тереңдігі, үшіншілерге — жалған ескертулердің аз болуы, сонда әзірлеушілер есепке сенуді тоқтатпайды.

Демо және маркетингтік тесттер шынайылыққа сәйкес келмейді. Демода әдетте күрделі аутентификация жоқ, стандарттан тыс API, нақты rate limit шектеулері жоқ, формалар мен қателер сканер үшін «қолайлы» етіп жасалған. Тірі өнімде бір құрал логиннен кейін функционалдың жартысын «жұмсайды», екіншісі captcha немесе редиректтерге ұшырайды, ал үшіншісі көп нәрсе табады, бірақ табылғандардың едәуір бөлігі расталмайды.

«Жедел» салыстырсаңыз, қорытынды қате болып шығады. Салыстыруды бұзатын жиі себептер:

  • құралдар әр түрлі параметрлермен және әртүрлі уақытта іске қосылады, содан кейін оларды санмен салыстыруға тырысады;
  • авторизацияланған аймақтар ішінара тексеріледі, бұл есепте көрінбеуі мүмкін;
  • жалған срабатывания шын багтармен араласып кетеді, сондықтан бағалау субъективті болады;
  • тест ортасы басқа тәртіпте жұмыс істейді (басқа билд, рөлдер, деректер), және эксперимент шынайы эксперимент болудан қалады.

Оңай мысал: порталда қонақ бөлігі мен жеке кабинет бар делік, рөлдері — «пайдаланушы» мен «оператор». Бизнеске маңыздысы — сканер жеке деректер мен төлемдер өңделетін жерде осындай осалдықты көрсете ме және әр прогоннан кейін нәтижені талдауға қанша уақыт кетеді.

Сәйкестік талаптары бар ұйымдар үшін салыстыру әдістемесін алдын‑ала бекіту өте маңызды. Сонда қорытындыларды ішкі бақылау мен сыртқы аудит алдында қорғауға болады, «неге бүгінгі есеп басқа» деп дауласпай.

Не салыстырамыз: покрытие, авторизация және жалған срабатывания

DAST таңдау кезінде «көп тапты» немесе «жылдам сканер» дегендерден басқа да маңызды жайттар бар. Құрал нақты жұмыста (1) сайттың қажетті бөліктерін қарап шығуы, (2) тіркелгеннен кейін тұрақты жұмыс істеуі және (3) сенуге болатын табылғандарды беруі тиіс.

Покрытие: шын мәнінде не тексерілді

Покрытие сұраққа жауап береді: сканер қолданбаның қандай учаскелерін шынымен барып тексерді. Мұнда «барып көру» «теориялық мүмкіндіктен» маңыздырақ. Бір құрал бетті ашып, бірақ форманы жібермейді; екіншісі параметрлер санында адасып, маңызды бөлікті өткізіп жібереді.

Әділ салыстыру үшін алдын‑ала покритие не деп есептелетіні мен оны қалай тексеретініңізді келіспеген дұрыс. Әдетте минимумға мыналар кіреді:

  • қанша уникалды бет пен эндпоинт ашылды;
  • қанша форма мен әрекет (іздеу, құру, жүктеу) жіберілді;
  • қандай API әдістері шын мәнінде шақырылды (GET, POST және т.б.);
  • сканер «терең» экрандарға жетті ме, әлде басты бет пен логинде қалып қойды ма.

Мысалы: кабинетте «Профиль», «Төлемдер» және «Талаптар» бар. Егер есеп сенімді көрінсе де сервер логтарында «Талаптар» бөліміне сұраныстар жоқ болса, покрытие іс жүзінде сәтсіздік болып саналады.

Авторизация: қай жерде кіру керек және одан кейін не болады

Авторизацияланған аймақтарды тексеру жиі салыстыру нәтижін шешеді. Маңыздысы — жай ғана кіре білу емес, сессияны сақтау, токендерді жаңарту және кіргеннен кейін жаңа беттер мен әрекеттер пайда болатынын түсіну.

Бастапқыда шекараны белгілеңіз: қандай рөлдерді тексеру қажет (пайдаланушы, оператор, администратор), қандай ағындар критикалық (пароль өзгерту, тапсырыс беру, деректерді басқару). Табысты қалай есептейтініңізді де анықтаңыз: мысалы, сканер келісімшарт нөмірі көрінетін бетке жетті және «жүмысқа талап құру» әрекетін орындады.

Жалған срабатывания: шуды қауіптен қалай ажырату

Жалған срабатывания қауіпті естіледі, бірақ расталмайды. Олар уақытты жұтып, құралға сенімді жояды.

«Барлығы қанша табылды» дегеннен гөрі расталған проблемалардың үлесін бағалау дұрырақ. Табылғандардың бір бөлігін алдын‑ала тексеру тәсілін келісіп алайық: сұранысты қайталау, параметрді өзгерткенде жауапты салыстыру, браузерде қайта жасау.

Нәтижелерге стенд шектеулері қатты әсер етеді, сондықтан оларды да бекітіңіз:

  • WAF немесе қорғаныс ережелері сұраныстарды кесіп тастауы;
  • rate limit пен IP бойынша блоктаулар;
  • CAPTCHA және кіріс кезінде қосымша тексерулер;
  • тұрақсыз тест деректері (жазба бұрыннан бар, объект жойылған);
  • ортадағы кездейсоқ қателер, сканер бағытын жоғалтуға әкелетін.

Осы шарттарды сипаттамасаңыз, Burp Suite Enterprise, Invicti және Acunetix салыстыруда салыстырмас болып шығады: мәселе ортаның параметрлерінде болмақ, DAST‑та емес.

Тест ортасын және эталондық тексерістерді дайындау

DAST салыстыруы тек бірдей шарттарда ғана мәні бар. «Қызық» нәтижелердің ең жиі себебі — әр түрлі қосымша нұсқалары, әр түрлі деректер немесе кездейсоқ интерфейс элементтері, сондықтан бір сканер алға өтіп, екіншісі жарты жолда тоқтайды.

Ең алдымен бірдей билд пен конфигурацияны бекітіңіз: бірдей feature‑флагтар, кэш параметрлері, қауіпсіздік 헤더лері, интеграциялар (өшіруге болмаса). Егер тест ортасы стейджингпен қатар өмір сүрсе, прогон барысында релиз өзгермейтініне көз жеткізіңіз. Әйтпесе сіз Burp Suite Enterprise, Invicti және Acunetix емес, қосымшаның екі күйін салыстырасыз.

Содан кейін деректер мен қолжетімділікті дайындаңыз. Жабық зоналарды дұрыс сканирлеу үшін әртүрлі рөлдерге арналған тесттік аккаунттар қажет. Бұл аккаунттар болжаулы болу керек: бірдей құқықтар, толтырылған профиль, тұрақты әрекеттер тарихы, автоматтандыруды бұзатын «бірінші рет» міндетті пароль ауыстыру сияқты қадамдар жоқ.

Әрі қарай не табылуы тиіс екенін келісіңіз. Бұл сіздің эталоныңыз: қолмен растауға болатын шағын уязвимдік жиыны немесе тесттік мақсаттар. Практикалық эталон құрамына кіруі мүмкін:

  • бэклогтан алынған 5–10 белгілі проблема немесе арнайы қосылған тесттік нүктелер;
  • 2–3 рұқсат тексеру сценарийі (мысалы, пайдаланушы админ бөлімін ашуға тырысады);
  • 2–3 енгізу орны, мұнда инъекциялар мен XSS‑ты қауіпсіз тексеруге болады.

Кездейсоқ факторларды алып тастаңыз: A/B, динамикалық баннерлер, персонализация, тұрақсыз редиректтер, URL‑дағы «жүзбелі» параметрлер, сондай‑ақ трафикті әр түрлі кесіп тастауы мүмкін шектеулер (rate limit, captcha). Әйтпесе бір сканер 403 алып тұрып қалады және покрытие сәйкес болмайды.

Ақырында, қосымша мен инфрақұрылымда логтауды қосыңыз: access‑логтар, қате логтары, аудит, correlation id арқылы сұраныстарды трассалау. Әр табылуды шын мәнінде растау үшін: сұраныс бар ма, қандай параметр кеткен, қандай жауап қайтты, бұл осалдық па әлде жалған ескерту ме — бұлар қажет.

Тұрақты шарттар (кірусіз сканерлеу)

Бастапқыда ең қарапайым режимді ортақ келтіріңіз: жүйеге кірмей сканерлеу. Осылайша краулинг пен осалдық іздеудің базалық мүмкіндіктерін тексересіз және кіру мен сессия параметрлерін шатастырмайсыз.

Старт нүктесін және аумақты бекітіңіз: не сканерлейміз (негізгі домен, тесттік субдомендер, базалық жолдар /, /api, /swagger) және не сканерлемейміз (админ‑панельдер, сыртқы сервистер, заглушкалар). Қолданба бірнеше хостта болса, тізімді алдын‑ала бекітіңіз: нәтижелерге тек scope‑ке кіретіндер ғана кіреді.

Сол сияқты құралдарға «артықшылық» бермес үшін бірдей шектеулер орнатыңыз:

  • сканерлеуге берілген уақыт және бірдей терезе;
  • максималды тереңдік және уникалды URL шегі;
  • сұраныс жылдамдығы (RPS) және параллелизм;
  • таймауттар, жауап өлшемі шегі және тор қатесі кездегі қайталау режимі.

Редиректтерді қалай өңдеу (әрқашан немесе тек домен ішінде), cookie‑лерге рұқсат, жіберілетін заголовкалар (Accept‑Language, X‑Forwarded‑For, кастомды заголовкалар), қандай User‑Agent қолданылатынын да келісіңіз. Бір құрал «мобильді» ретінде, ал екіншісі «десктоп» ретінде өтсе, әртүрлі беттер мен табылғандар шығады.

«Шикі» нәтижелер ретінде не сақталатынын алдын‑ала ұйғарып алыңыз. Есептен бөлек сұраныс‑жауап логтарын, табылған URL тізімін және обход картасын сақтау пайдалы. Даулы табылыс туындаса (немесе оның жоқтығы), дәл осы деректер себепті түсіндіреді: құрал қажетті бетке жетпеген, 403 алған, редиректте қалып қойған немесе әрекетті жібермеген.

Авторизацияланған аймақтарды сканерлеу: қадамдық баптау

Масштабируйте контур регулярных сканов
Если сканов много, спланируем масштабирование вычислительных ресурсов под нагрузку.
Обсудить масштаб

Авторизацияланған бөлімдер көбінесе көп логика мен деректерді қамтиды. Дәл сол жерлерде DAST жиі бұзылады: құрал сессияны жоғалтады, логин бетіне қайтып кетеді немесе басқа рөлмен сканерлейді. Burp Suite Enterprise, Invicti және Acunetix салыстыруы дұрыс болу үшін авторизация баптауларын бірдей жасап, оларды бекітіңіз.

1) Кіру түрін таңдаңыз

Қолданба нақты қалай пайдаланушыны ішке жіберетінін анықтаңыз. Тестте бұл өндірістік әдіске барынша ұқсас болуы тиіс.

Көбінесе форму арқылы (username/password), SSO, OAuth2, заголовкалар арқылы (прокси арқылы) немесе алдын‑ала берілген cookie арқылы кіру кездеседі. Қолмен қадамдарды қажет ететін (captcha, SMS растамасы) әдістер автоматтандыруға кедергі келтірсе, тесттік ортада әдетте бөлек тесттік кіру жолы құрылады.

2) Сессияның тұрақтылығын қамтамасыз етіңіз

Сканер ұзақ прогоныңызда авторизацияны қалай ұстайтынын шешіңіз. Сессия таймауты, токен жаңартылуы немесе параллель сұраныстарда мәжбүрлеп шығару сияқты себептерден үзілуі мүмкін.

Үш нәрсені тексеріңіз: токен қалай жаңартылады (refresh), уақыт өткенде не болады және бір уақытта белсенді сессияларға шектеу бар ма. Тест ортасында таймаутты ұлғайту орынды болуы мүмкін, әйтпесе сіз «кім cookie‑ны ұзарта алады» деген сынақ жүргізе бересіз.

3) Аймақтар мен рөлдерді шектеу

Нәтижелерді араластырмау үшін шекараларды алдын‑ала белгілеңіз. Мысалы, тек жеке кабинет /cabinet жолын сканерлеу немесе нақты рөлдің функцияларын ғана тексеру. Әр рөл үшін бөлек прогон жасау практикалық.

Әр құрал үшін бекітілетін минималды баптар:

  • аккаунт және рөл;
  • кіру және обходты бастайтын старт URL‑дары;
  • scope ережелері (не қосамыз, не шығарамыз);
  • жылдамдық пен параллелизм лимиттері;
  • разлогин болғанда мінез‑құлық (сканер тоқтай ма, қайта авторизациялана ма).

4) Авторизация фактін бақылау URL‑мен тексеріңіз

Кіруден кейін ғана қолжетімді бір бақылау адресі керек және одан табылатын нақты белгі. Мысалы, пайдаланушы аты көрінетін профиль беті немесе баланс бөлімінің болуы; кіру болмаған кезде бұл бет логин формасына ауысады.

Тек 200 коды емес, күтілетін контенттің бар-жоғын да тексеріңіз. Әйтпесе сканер логин бетін 200 кодымен алып, өзін «іште» деп ойлап қалуы мүмкін.

5) Қысқа прогоны жасап, содан кейін толық сканерлеуді жүргізіңіз

Алдымен 1–2 қысқа тест жүргізіп, батыл беттерге өтулер қажетті бағытта жүретінін және бақылау URL‑ы авторизацияны сенімді растағанын тексеріңіз. Сосын толық сканерлеуді іске қосып, баптауларды эталон ретінде сақтаңыз, сонда Burp Suite Enterprise, Invicti және Acunetix‑та оларды қайталап қолдануға болады.

Қалай анықтау керек, құрал нешінші бөлікті шынымен өтті

DAST салыстырғанда тек табылған осалдықтар санына ғана назар аудармаңыз, сканер қолданбаны қаншалықты толық «көргенін» тексеріңіз. Әйтпесе бір құрал көп бетке жеткендіктен «жақсырақ» көрінуі мүмкін.

Покрытие — бұл келу және әрекет жасау фактісі. Мақсат ретінде жазылғанды емес, шын мәнінде сұралған және өңделген нәрсені қараңыз.

Практикада покрытие не деп есептеу керек

Сканер есептерінен және серверлік логтардан (мүмкіндік болса) метрикалар жинаңыз, олар арқылы сұраныстар қолданбаға жеткенін растаңыз. Төмендегілерді тіркеу ыңғайлы:

  • уникалды URL‑дар және әдістер: қанша әр түрлі бет пен эндпоинт сұралды, GET/POST/PUT/DELETE қоса алғанда;
  • параметрлер және өзгешеліктер: қандай query/path/body параметрлері кездесті және қанша түрлі мән қолданылды;
  • формалар: қай формалар жіберілді, қандай өрістер толтырылды, шекаралық мәндер жіберілді ме;
  • API және HTML емес ресурстар: JSON, GraphQL, файл жүктеу, құжат жүктеу сияқты түрлері ескерілді ме;
  • рөлдер мен бөлімдер: әр рөл үшін қандай бөлімдерге қол жетті.

Салыстыруды бірдей «бөлшектерден» жасаған дұрыс. Мысалы, уникалды комбинацияларды (URL + әдіс + параметрлер жиыны) санау. Тек есептегі бет саны таңдамалы болуы мүмкін.

Қолданба картасымен салыстыру: не жетпеді және неге

Эталон ретінде қысқа қолданба картасын жасаңыз: негізгі бөлімдер, маңызды URL‑дар, негізгі формалар мен API эндпоинттар (мысалы, Swagger/OpenAPI, фронтенд роуттары немесе меню құрылымы). Сканер жетпеген жерлерді белгілеңіз.

Қамтылмаған учаске әдетте мына себептердің бірінен болады:

  • навигация тек күрделі JavaScript арқылы жүзеге асады (орындау өшірілген немесе сканер оған төзбейді);
  • арнайы әрекеттер қажет: көпқадамды форма, растау батырмасы;
  • рұқсат шегі: логинге редирект, сессия аяқталуы, CSRF, IP бойынша шектеу;
  • «дұрыс» деректер жоқ: тесттік жазба болмағандықтан бөлім бос және сілтемелер шықпайды;
  • баптамадағы тыйымдар: жолды шығармау, тереңдіктің шегі, таймауттар.

Мысалы: кабинетте «Төлемдер тарихы» тек мерзім таңдалғанда шығады. Бір сканер бос экранда тұрып қалуы мүмкін, ал екіншісі күндерді жіберіп, операциялар тізімін алады. Есепте бірінші «ештеңе таппады» деп көрінеді, бірақ шындығында оның покрытиесі төмен.

Осы тәсіл Burp Suite Enterprise, Invicti және Acunetix‑ты адал салыстыруға мүмкіндік береді: кім қанша маршрут пен әрекет өтті, ал кім жай ғана аз жетті — бәрі көрінеді.

Жалған срабатыванияларды қалай өлшеу және табылуларды қалай растаймыз

Интеграция безопасности и инфраструктуры
Интегрируем серверы, сети и ПО для регулярных проверок веб-приложений.
Связаться

Burp Suite Enterprise, Invicti және Acunetix‑ты «бар есептері бойынша» салыстыру тиімді емес: түрлі қозғалтқыштар тәуекелді әртүрлі түрде сипаттайды және жиі дубльдер жасайды. Жалған срабатыванияларды бағалау үшін алдын‑ала растау ережелерін және есептеу тәсілін бекітіңіз.

Бастапқыда табылуды екі ось бойынша жіктеңіз: маңыздылығы (Critical/High/Medium/Low/Info) және типі (XSS, SQLi, SSRF, конфигурация мәселелері және т.б.). Осылай шудың қай жерде шоғырланғанын тез көруге болады. Жалған срабатываниялар көбіне конфигурацияларда және күмәнді отраженияларда жинақталады, нақты инъекцияларда емес.

Содан кейін уязвимдік дәлелі не деп есептелетінін бекітіңіз. Тестте шынайы алуға болатын минималды артефакттар жиыны:

  • срабатывание көрінетін сұраныс пен жауаптың суреті (мысалы, XSS үшін отраженная payload немесе SQLi үшін тән қате);
  • сол сұранысты 2–3 рет қайталау арқылы репродукция;
  • серверге әсер ету белгісі: логтарда жазба, күйдің өзгеруі, объектінің жасалуы немесе деректердің өзгеруі;
  • SSRF және ұқсас үшін — желілік сұраныстың бар екендігін растау (прокси/DNS логтары немесе тест сервисінде жазба);
  • конфигурациялар үшін — бірнеше эндпоинтте дәлел (мысалы, хедер шынында да жоқ).

«Шу» категорияларын бөлек көрсету маңызды, әйтпесе сіз зиян емес нәрселер туралы да дауласасыз. Типтік шу көздері: таймауттар, тұрақсыз жауаптар (кэш, балансировщик, бет nұсқаларының айырмашылығы), WAF блоктауы, логин бетіне редиректтену.

Салыстыру сандық болсын десеңіз, қарапайым кесте жүргізіңіз: табылыс, тип, приоритет, расталды/расталмады, бас тарту себебі, артефакт (файл/скрин). Кейін метрикаларды барлық құралдар үшін бірдей есептеңіз:

  • расталғандардың үлесі: confirmed / total;
  • жалғандардың үлесі: false / total (false = «біздің ережелер бойынша расталмады»);
  • «анықталмағандар» үлесі: орта тұрақсыздықтан деректер жетпеген жағдайлар;
  • дубльсіз уникалды табылымдар саны;
  • 10 табылысқа қолмен тексеруге кеткен уақыт (шумның «бағасы").

Дубльдерді топтау маңызды: бір reflected XSS 12 URL‑да шығып жатса, немесе бір конфигурациялық проблема барлық бетте қайталанса, оларды түпкі себеп бойынша (эндпоинт + параметр + класы) группылап санаңыз.

Мысал: сканер іздеуде SQLi деп хабарлайды, себебі 500 қатесі және HTML‑де «SQL» сөзі байқалған. Сіздің ережелеріңізге сай бұл дәлел емес. Сұранысты бірнеше рет орындап, логтарды тексеріп, 500‑дің себеп екенін сыртқы сервис таймауты екенін көресіз — мұндай табылыс «жалған» ретінде жазылады, себебі ортадағы тұрақсыздыққа байланысты шыққан.

Burp Suite Enterprise, Invicti және Acunetix салыстыруындағы жиі қателіктер

DAST салыстырулары шынайылықтан айырылады, себебі құралдар бірдей нәрсені сынамайды. Тіпті шағын айырмашылық та нәтижені салыстырмастырады. Типтік қателіктер:

  • тест барысында қосымшаны өзгертеді (басқа ветка, конфиг, деректер, WAF‑ты қосты/өшіру);
  • іске қосу шекараларын бекітпейді: уақыт шегі, сұраныс жылдамдығы, ағындар саны, исключения, краулинг тереңдігі;
  • тек осалдықтар санын санайды, покрытие мен расталуды қарастырмайды;
  • авторизацияланған аймақ тексерілген деп ойлайды, алайда сканер қонақ күйінде қалып қойған (есептерде кабинет беттері жоқ, ал логтарда көп редирект /login немесе 401/403 бар);
  • қолмен валидацияны кейінге қалдырып, бірнеше апта бойы дау жалғасады.

Жақсы әдет — қысқа салыстыру протоколын қалдыру: қандай билд, қандай аккаунттар, қандай лимиттер, қандай исключения және табылуды қабылдау критерийі. Сонда Burp Suite Enterprise, Invicti және Acunetix‑тың нәтижелері жай ғана әртүрлі сандар емес, түсінікті қорытындылар болады.

Мысал: порталды тестеп жатырсыз. Егер бір құрал «пайдаланушы» рөлінде кіріп, тек профильді көрсе, ал екіншісі «оператор» рөлінде кіріп, талаптар мен ішкі формаларға жетсе — проблемалар санын салыстыру мағынасыз. Біріншіден рөлдерді теңестіру керек, содан кейін табылғандар сапасын талқылау керек.

Сценарий мысалы: түрлі рөлдері бар жеке кабинет порталы

Отечественное железо для закупок
Подберите отечественные ПК и серверы GSE с учетом требований по локальному содержанию.
Запросить предложение

Корпоратив порталды елестетіңіз: жария бөлім (жаңалықтар, контакты, қызмет каталогы) және жеке кабинет, онда пайдаланушылар талап береді және төлем жасайды. Мұндай стенд DAST‑ты жай «сканер жылдамдығы» бойынша емес, жабық зоналардағы табу қабілеті бойынша салыстыру үшін қолайлы.

Кабинетте үш рөл бар:

  • қонақ: жария беттерді көреді, тіркелу формасын ашады;
  • пайдаланушы: талап жасайды, профильді өңдейді, төлем өтеді;
  • администратор: талаптар тізімін көреді, статустарды өзгертеді, есептер шығарады.

Салыстыру мақсаты — құрал кілттік жолдарды өтіп, формаларды (талап, профиль, төлем) дұрыс тексере ала ма, тек басты бетті «атқылап қана» қоймай ма — соны анықтау.

Стендте жиі кездесетін шектеулер бар: rate limit (N сұраныстан кейін 429 қайтарады), интерфейстің бөлігі JavaScript‑пен салынып жатыр, сессия 15 минутқа тұрады. Яғни кез келген сканер авторизацияны ұстай алмаса, жазылып қалған қателер болады.

Адал салыстыру үшін жалпы ережелерді бекітіңіз: барлық құралдарға бірдей аккаунттар, бірдей уақыт терезесі (мысалы, пайдаланушы рөліне 2 сағат, администраторға 2 сағат) және бірдей исключения тізімі. Исключенияға шум тудыратын немесе мақсатқа қатысы жоқ бөлімдерді қосу орынды: logout, тесттік деректер беттері, health‑эндпоинттер, стендті құлатып жіберетін үлкен выгрузкалар.

Және шешімді қалай қабылдайтыныңыз маңызды. Ыңғайлы көрсеткіштер:

  • растау: қанша табылу тез қолмен репродукцияланды (әсіресе төлем және талаптар бойынша);
  • покрытие: сканер кілттік қадамдарды өтті ме (кіру, талап жасау, төлемге өту, тарих көру);
  • жұмыс көлемі: авторизация баптау, жалған срабатыванияларды талдау және сессияның өтуіне байланысты қайта прогонаға кеткен уақыт.

Егер бір құрал кабинетті «көрсе» де, 70% нәтижесі расталмаса, ал екіншісі аз тауып, бірақ барлығы дерлік репродукцияланса және төлем мен талап статустарын қамтыса — екіншісі күнделікті жұмыста тиімдірек болуы мүмкін.

Жылдам чек‑лист және келесі қадамдар

DAST салыстыруын кішкене эксперимент деп қабылдаңыз: бірдей билд, бірдей ережелер, анық метрикалар. Сонда қорытындылар шешім қабылдауға жарамды болады.

Бастамас бұрын шарттарды бір құжатқа түсіріңіз:

  • барлық прогонаға бірдей тесттік билд және логтауды қосу (сұраныстар, қателер, авторизация);
  • рөлдер мен аккаунттар (қонақ, пайдаланушы, администратор) — автоматтандыруды бұзатын қадамдарсыз (2FA/captcha, міндетті пароль ауыстырусыз);
  • бақылау URL және әрекеттер жинағы: 10–20 кілттік бет пен форма;
  • лимиттер: сканер уақыты, краулинг тереңдігі, сұраныс жылдамдығы, уақыт терезесі;
  • қайдан іздеуге: қосымша логтары, WAF/прокси журналдары, авторизация журналдары.

Прогоннан кейін тек «осалдықтар санын» санап қоймаңыз. Алдымен құралдың шын мәнінде не істегенін тексеріңіз:

  • покрытие салыстыру: қандай бөлімдер барылды, қай формалар жіберілді, қай жерде обход тоқтады;
  • табылғандарды расталған/расталмағанға бөліп, тексеру тәсілін жазыңыз;
  • дубльдерді алып тастаңыз (түпкі себеп бойынша группалау);
  • өткізіп алған себептерді жазып алыңыз: редирект, CSRF, captcha, SPA‑навигация, орта тұрақсыздығы, жылдамдық шектеулері;
  • артефакттарды сақтаңыз: сканер конфигтері, нұсқалар, іске қосу уақыты, шикі сұраныс‑жауап логтары.

Қорытындыны метрикалар кестесі түрінде ұсынған ыңғайлы: покрытие (бақылау жинағынан қанша пункт орындалды), скан уақыты, расталған осалдықтар саны деңгейлер бойынша, жалған срабатываниялар пайызы, өткізіп қалған бөлімдердің тізімі мен себептері. 5–10 шағын расталған мысалды «сұраныс — жауап — неге бұл осалдық» форматында беру есептің жүздеген жолынан әлдеқайда сенімді әсер қалдырады.

Кейінен схема қарапайым: бір қолданба мен командада пилот, содан кейін 3–5 қолданбаға кеңейту және кейін регламент құру (қашан іске қосады, кім триаж жасайды, кім растайды, түзетулерге қанша SLA).

Егер тұрақты тесттерге бөлек стенд керек болса, оны бөлек серверлер мен жұмыс орындарында орналастыру дұрыс — солай сканерлер тұрақты және қайта өнімді болады. Мұндай инфрақұрылым мен жүйелік интеграцияда GSE.kz (gse.kz) өндірістік және интеграторлық тәжірибесі пайдалы болуы мүмкін, әсіресе тұрақты прогона үшін сенімді орта мен қолдауды ұйымдастыру маңызды болғанда.

FAQ

Почему нельзя выбрать DAST по демо и «популярности»?

Өйткені нақты ортада кедергілер көрінеді: күрделі аутентификация, редиректтер, сұраныстар шектелуі, API ерекшеліктері және JavaScript‑пен басқарылатын навигация. Демонстрациялық стендтерде сканерге әдетте «ұңғайлы» жағдай жасалған, сондықтан ондағы қорытындылар жиі шамадан тыс оптимистік болып шығады немесе сіздің өніміңізге сәйкес келмейді.

Какие критерии сравнения DAST самые важные на практике?

Алдын ала мақсатты анықтаңыз: құрал сіздің қолданбаңызда нақты не істеуі тиіс. Әдетте практикалық үш өлшем маңызды: покрытие (қай жерлерге жетті), авторизация (сессияны қалай ұстайды) және сигналдың сапасы (қанша табылу қолмен расталады).

Что такое «покрытие» и как понять, что сканер правда проверял нужные места?

Покрытие — сканер шын мәнінде қажетті бөлімдерге келгенін және әрекеттерді орындауға талпынғанын дәлелдейтін факт. Бұл картаны және серверлік логтарды тексеру арқылы анықталады: негізгі URL‑дарға сұраныстар болды ма, қажетті API әдістері шақырылды ма, формалар жіберілді ме.

Почему два сканера дают несопоставимые результаты даже на одном и том же сайте?

Көп жағдайда себеп — іске қосу шарттарының айырмашылығы: әртүрлі уақыт пен жылдамдық шектеулері, scope‑тағы ерекшеліктер, әртүрлі қосымша нұсқалары немесе деректер. Тағы бір жиі жағдай — бір сканер қонақ күйінде ғана өткен немесе сессиясын жоғалтқан, бірақ есепте бұл «тексерілді» деп көрінеді.

Как подготовить тестовую среду, чтобы сравнение было честным?

Барлық прогона үшін бірдей билд пен конфигурацияны бекітіңіз, тесттік рөлдерге тұрақты аккаунттар дайындаңыз және A/B, динамикалық баннерлер, тұрақсыз редиректтер сияқты кездейсоқ факторларды алып тастаңыз. Сондай-ақ логтауды қосыңыз — әр табылудың сұранысы мен жауабы арқылы растау қажет.

Как правильно настроить сканирование авторизованных зон?

Алдымен қандай рөлдер мен ағындар маңызды екенін анықтаңыз және әр рөл үшін жеке прогоны жасаңыз. Содан кейін бақылау URL‑ын көрсетіңіз — ол тек кіруден кейін ғана қолжетімді болуы тиіс — және жауап кодынан бөлек күтулі контенттің бар-жоғын тексеріңіз, әйтпесе сканер кіргендей есептеп қоюы мүмкін.

Что делать, если DAST постоянно разлогинивается и уходит на /login?

Сессияны тұрақтандырыңыз: тесттік ортада таймаутты ұлғайту, токен жаңартылуын тексеру және параллель сұраныстарға шектеулер бар-жоғын қарастыру керек. Егер сессия әр 10–15 минут сайын үзіліп қалса, сіз әлдекімнің cookie‑сын қанша ұстай алатынын емес, осымен күресіп тұрғаныңызды өлшейсіз.

Как измерять ложные срабатывания и не утонуть в шуме?

Алдын ала растау ережелерін бекітіңіз және табылғандардың таңдамасын бірдей әдіспен қолмен тексеріңіз: сұранысты қайталау, жауапты өзгерткен кезде салыстыру, логтардағы із немесе күйді өзгерту. «Не табылды» емес, «қанша расталды» деген көрсеткішке назар аудару командаға есепті талдауға кететін уақытты жылдам көрсетеді.

Как сравнивать Burp Suite Enterprise, Invicti и Acunetix без «гонки цифр»?

Біріншіден, шарттарды теңестіріңіз: бірдей scope, уақыт, сұраныс жылдамдығы, қарау тереңдігі және рөлдер. Содан кейін пайданың көрсеткіштері бойынша салыстырыңыз: бақылау жинағынан қанша пункт орындалды, қанша проблеманы растауға болды және конфигурацияға, триажға және қайта жүгінуге қанша уақыт кетті.

Какие артефакты и договоренности стоит зафиксировать, чтобы защитить результаты перед аудитом?

Минимумында келесі мәліметтерді жазып қалдыру жеткілікті: қосымшаның нұсқасы, тесттік аккаунттар пен рөлдер, іске қосу параметрлері (уақыт, RPS, таймауттар, исключения), бақылау URL/әрекеттер жинағы және табылуларды растау ережелері. Тұрақты стенд қажет болса, оны бөлек серверлерге орналастыру логичнее; мұндай инфрақұрылымда және интеграцияда GSE.kz тәжірибесі көмектесе алады.