Graudit бірнеше бағдарламалау тілдерін қолдайды және кодтық базаның қауіпсіздік тестін әзірлеу процесіне тікелей біріктіруге мүмкіндік береді.
Ақпарат көзі:
Тестілеу бағдарламалық жасақтаманы әзірлеудің өмірлік циклінің маңызды бөлігі болып табылады. Тестілеудің көптеген түрлері бар, олардың әрқайсысы өз мәселесін шешеді. Бүгін мен кодтағы қауіпсіздік мәселелерін табу туралы айтқым келеді.
Әлбетте, бағдарламалық қамтамасыз етуді әзірлеудің заманауи нақты жағдайында процестің қауіпсіздігін қамтамасыз ету маңызды. Кезінде DevSecOps арнайы термині де енгізілді. Бұл термин қолданбадағы осалдықтарды анықтауға және жоюға бағытталған процедуралар қатарын білдіреді. Стандарттарға сәйкес осалдықтарды тексеруге арналған мамандандырылған ашық бастапқы шешімдер бар
Қауіпсіздік мәселелерін шешудің әртүрлі тәсілдері бар, мысалы, статикалық қолданба қауіпсіздігі сынағы (SAST), динамикалық қолданба қауіпсіздігі сынағы (DAST), интерактивті қолданба қауіпсіздігін сынау (IAST), бағдарламалық құрал құрамын талдау және т.б.
Статикалық қолданба қауіпсіздігі сынағы бұрыннан жазылған кодтағы қателерді анықтайды. Бұл тәсіл қолданбаның іске қосылуын талап етпейді, сондықтан оны статикалық талдау деп атайды.
Мен статикалық кодты талдауға назар аударамын және барлығын іс жүзінде көрсету үшін қарапайым ашық бастапқы құралды қолданамын.
Неліктен мен статикалық код қауіпсіздігін талдау үшін ашық бастапқы құралды таңдадым
Мұның бірнеше себептері бар: біріншіден, бұл тегін, себебі сіз басқа әзірлеушілерге көмектескісі келетін пікірлес адамдар қауымдастығы әзірлеген құралды пайдаланасыз. Егер сізде шағын команда немесе стартап болса, кодтық базаңыздың қауіпсіздігін тексеру үшін ашық бастапқы бағдарламалық құралды пайдалану арқылы ақша үнемдеуге тамаша мүмкіндігіңіз бар. Екіншіден, бұл жеке DevSecOps командасын жалдау қажеттілігін жояды, бұл сіздің шығындарыңызды одан әрі азайтады.
Жақсы ашық бастапқы құралдар әрқашан икемділікке қойылатын талаптарды ескере отырып жасалады. Сондықтан оларды кең ауқымды тапсырмаларды қамтитын кез келген дерлік ортада қолдануға болады. Әзірлеушілерге мұндай құралдарды өз жобаларымен жұмыс істеу кезінде өздері құрастырған жүйемен байланыстыру әлдеқайда оңай.
Бірақ сіз таңдаған құралда жоқ мүмкіндік қажет болатын кездер болады. Бұл жағдайда сізде оның кодын ажыратуға және оның негізінде қажетті функционалдылықпен өз құралыңызды әзірлеуге мүмкіндігіңіз бар.
Көп жағдайда ашық бастапқы бағдарламалық қамтамасыз етуді әзірлеу қоғамдастықтың белсенді әсеріне ұшырағандықтан, өзгертулер енгізу туралы шешім тез және нақты қабылданады: ашық бастапқы жобаны әзірлеушілер пайдаланушылардың пікірлері мен ұсыныстарына, олардың есептеріне сүйенеді. табылған қателер және басқа мәселелер.
Код қауіпсіздігін талдау үшін Graudit пайдалану
Статикалық кодты талдау үшін әртүрлі ашық бастапқы құралдарды пайдалануға болады, барлық бағдарламалау тілдері үшін әмбебап құрал жоқ. Олардың кейбіреулерін әзірлеушілер OWASP ұсыныстарын орындайды және мүмкіндігінше көп тілдерді қамтуға тырысады.
Мұнда біз қолданамыз
Статикалық кодты талдаудың ұқсас құралдары бар - Қауіпсіздікке арналған Rough Auditing Tool (RATS), Securitycompass Web Application Analysis Tool (SWAAT), ақау іздегіш және т.б. Бірақ Graudit өте икемді және минималды техникалық талаптарға ие. Дегенмен, сізде Graudit шеше алмайтын мәселелер болуы мүмкін. Содан кейін басқа опцияларды осы жерден іздеуге болады
Біз бұл құралды белгілі бір жобаға біріктіре аламыз немесе оны таңдалған пайдаланушыға қол жетімді ете аламыз немесе оны барлық жобаларымызда бір уақытта пайдалана аламыз. Бұл жерде Graudit икемділігі де ойнайды. Сондықтан алдымен репо клондаймыз:
$ git clone https://github.com/wireghoul/graudit
Енді Graudit үшін оны пәрмен пішімінде пайдалану үшін символдық сілтеме жасайық
$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/graudit
.bashrc (немесе сіз пайдаланып жатқан кез келген конфигурация файлына) бүркеншік атын қосамыз:
#------ .bashrc ------
alias graudit="~/bin/graudit"
Қайта жүктеу:
$ source ~/.bashrc # OR
$ exex $SHELL
Орнату сәтті болғанын тексерейік:
$ graudit -h
Егер сіз ұқсас нәрсені көрсеңіз, онда бәрі жақсы.
Мен бұрыннан бар жобаларымның бірін сынақтан өткіземін. Құралды іске қоспас бұрын, оған менің жобам жазылған тілге сәйкес дерекқордан өту керек. Дерекқорлар ~/gradit/signatures қалтасында орналасқан:
$ graudit -d ~/gradit/signatures/js.db
Осылайша, мен жобамнан екі JS файлын сынап көрдім және Graudit консольге менің кодымдағы осалдықтар туралы ақпаратты көрсетті:
Сіз өзіңіздің жобаларыңызды дәл осылай сынап көруге болады. Сіз әртүрлі бағдарламалау тілдеріне арналған деректер базаларының тізімін көре аласыз
Graudit артықшылықтары мен кемшіліктері
Graudit көптеген бағдарламалау тілдерін қолдайды. Сондықтан ол пайдаланушылардың кең ауқымы үшін қолайлы. Ол кез келген тегін немесе ақылы аналогтармен жеткілікті түрде бәсекелесе алады. Жобада әлі де жақсартулар жүргізіліп жатқаны өте маңызды және қауымдастық әзірлеушілерге ғана емес, сонымен қатар құралды анықтауға тырысатын басқа пайдаланушыларға да көмектеседі.
Бұл ыңғайлы құрал, бірақ әзірге күдікті код бөлігінде мәселенің не екенін дәл анықтай алмайды. Әзірлеушілер Graudit-ті жақсартуды жалғастыруда.
Бірақ кез келген жағдайда, осындай құралдарды пайдалану кезінде кодтағы ықтимал қауіпсіздік мәселелеріне назар аудару пайдалы.
Басталуда…
Бұл мақалада мен осалдықтарды табудың көптеген әдістерінің бірін ғана қарастырдым - статикалық қолданба қауіпсіздігін тексеру. Статикалық код талдауын жүргізу оңай, бірақ бұл тек бастамасы. Кодтық базаның қауіпсіздігі туралы көбірек білу үшін бағдарламалық жасақтаманы әзірлеудің өмірлік цикліне тестілеудің басқа түрлерін біріктіру қажет.
Жарнама құқықтары туралы
Ақпарат көзі: www.habr.com