Бағдарлама кодындағы осалдықтарды табу үшін қарапайым қызметтік бағдарламаны қалай пайдалануға болады

Graudit бірнеше бағдарламалау тілдерін қолдайды және кодтық базаның қауіпсіздік тестін әзірлеу процесіне тікелей біріктіруге мүмкіндік береді.

Бағдарлама кодындағы осалдықтарды табу үшін қарапайым қызметтік бағдарламаны қалай пайдалануға болады
Ақпарат көзі: Unsplash (Маркус Списке)

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

Әлбетте, бағдарламалық қамтамасыз етуді әзірлеудің заманауи нақты жағдайында процестің қауіпсіздігін қамтамасыз ету маңызды. Кезінде DevSecOps арнайы термині де енгізілді. Бұл термин қолданбадағы осалдықтарды анықтауға және жоюға бағытталған процедуралар қатарын білдіреді. Стандарттарға сәйкес осалдықтарды тексеруге арналған мамандандырылған ашық бастапқы шешімдер бар OWASP, ол бастапқы кодтағы осалдықтардың әртүрлі түрлерін және әрекетін сипаттайды.

Қауіпсіздік мәселелерін шешудің әртүрлі тәсілдері бар, мысалы, статикалық қолданба қауіпсіздігі сынағы (SAST), динамикалық қолданба қауіпсіздігі сынағы (DAST), интерактивті қолданба қауіпсіздігін сынау (IAST), бағдарламалық құрал құрамын талдау және т.б.

Статикалық қолданба қауіпсіздігі сынағы бұрыннан жазылған кодтағы қателерді анықтайды. Бұл тәсіл қолданбаның іске қосылуын талап етпейді, сондықтан оны статикалық талдау деп атайды.

Мен статикалық кодты талдауға назар аударамын және барлығын іс жүзінде көрсету үшін қарапайым ашық бастапқы құралды қолданамын.

Неліктен мен статикалық код қауіпсіздігін талдау үшін ашық бастапқы құралды таңдадым

Мұның бірнеше себептері бар: біріншіден, бұл тегін, себебі сіз басқа әзірлеушілерге көмектескісі келетін пікірлес адамдар қауымдастығы әзірлеген құралды пайдаланасыз. Егер сізде шағын команда немесе стартап болса, кодтық базаңыздың қауіпсіздігін тексеру үшін ашық бастапқы бағдарламалық құралды пайдалану арқылы ақша үнемдеуге тамаша мүмкіндігіңіз бар. Екіншіден, бұл жеке DevSecOps командасын жалдау қажеттілігін жояды, бұл сіздің шығындарыңызды одан әрі азайтады.

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

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

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

Код қауіпсіздігін талдау үшін Graudit пайдалану

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

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

Статикалық кодты талдаудың ұқсас құралдары бар - Қауіпсіздікке арналған 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-ті жақсартуды жалғастыруда.

Бірақ кез келген жағдайда, осындай құралдарды пайдалану кезінде кодтағы ықтимал қауіпсіздік мәселелеріне назар аудару пайдалы.

Басталуда…

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

Жарнама құқықтары туралы

Сенімді VPS және тарифтік жоспарды дұрыс таңдау жағымсыз мәселелермен дамудан аз алаңдауға мүмкіндік береді - бәрі сәтсіздіксіз және өте жоғары жұмыс уақытымен жұмыс істейді!

Бағдарлама кодындағы осалдықтарды табу үшін қарапайым қызметтік бағдарламаны қалай пайдалануға болады

Ақпарат көзі: www.habr.com

пікір қалдыру