Kiel uzi simplan ilon por trovi vundeblecojn en programa kodo

Graudit subtenas plurajn programlingvojn kaj permesas vin integri kodbazan sekurectestadon rekte en la evoluprocezon.

Kiel uzi simplan ilon por trovi vundeblecojn en programa kodo
fonto: Unsplash (Markus Spiske)

Testado estas grava parto de la programaro-disvolva vivociklo. Estas multaj specoj de provoj, ĉiu el ili solvas sian propran problemon. Hodiaŭ mi volas paroli pri trovado de sekurecaj problemoj en kodo.

Evidente, en la modernaj realaĵoj de programaro-disvolviĝo, estas grave certigi procezan sekurecon. Foje, la speciala termino DevSecOps eĉ estis lanĉita. Ĉi tiu termino rilatas al serio de proceduroj celantaj identigi kaj forigi vundeblecojn en aplikaĵo. Estas specialigitaj malfermfontaj solvoj por kontroli vundeblecojn laŭ normoj OWASP, kiuj priskribas la malsamajn specojn kaj konduton de vundeblecoj en fontkodo.

Estas malsamaj aliroj por solvi sekurecproblemojn, kiel Static Application Security Testing (SAST), Dynamic Application Security Testing (DAST), Interactive Application Security Testing (IAST), Software Composition Analysis, ktp.

Senmova aplikaĵa sekureca testado identigas erarojn en jam skribita kodo. Ĉi tiu aliro ne postulas, ke la aplikaĵo rulu, tial ĝi nomiĝas senmova analizo.

Mi koncentriĝos pri statika kodanalizo kaj uzos simplan malfermfontan ilon por pruvi ĉion praktike.

Kial mi elektis malfermfontan ilon por statika koda sekurecanalizo

Estas kelkaj kialoj por tio: unue, ĝi estas senpaga ĉar vi uzas ilon evoluigitan de komunumo de samideanoj, kiuj volas helpi aliajn programistojn. Se vi havas malgrandan teamon aŭ noventreprenon, vi havas bonegan ŝancon ŝpari monon uzante malfermfontecan programaron por testi la sekurecon de via kodbazo. Due, ĝi forigas la bezonon por vi dungi apartan DevSecOps-teamon, plu reduktante viajn kostojn.

Bonaj malfermkodaj iloj ĉiam estas kreitaj konsiderante pliigitajn postulojn por fleksebleco. Tial ili povas esti uzataj en preskaŭ ajna medio, kovrante ampleksan gamon de taskoj. Estas multe pli facile por programistoj konekti tiajn ilojn kun la sistemo, kiun ili jam konstruis dum ili laboras pri siaj projektoj.

Sed povas esti tempoj, kiam vi bezonas funkcion, kiu ne estas disponebla en la ilo, kiun vi elektas. En ĉi tiu kazo, vi havas la ŝancon forki ĝian kodon kaj evoluigi vian propran ilon bazitan sur ĝi kun la funkcioj, kiujn vi bezonas.

Ĉar en la plej multaj kazoj la disvolviĝo de malfermfonta programaro estas aktive influita de la komunumo, la decido fari ŝanĝojn estas farita sufiĉe rapide kaj al la punkto: la programistoj de la malfermfonta projekto fidas je reagoj kaj sugestoj de uzantoj, je siaj raportoj pri trovitaj eraroj kaj aliaj problemoj.

Uzante Graudit por Koda Sekureca Analizo

Vi povas uzi diversajn malfermfontajn ilojn por statika koda analizo; ne ekzistas universala ilo por ĉiuj programlingvoj. La programistoj de iuj el ili sekvas rekomendojn de OWASP kaj provas kovri kiel eble plej multajn lingvojn.

Ĉi tie ni uzos Graudit, simpla komandlinia ilo, kiu permesos al ni trovi vundeblecojn en nia kodbazo. Ĝi subtenas malsamajn lingvojn, sed tamen ilia aro estas limigita. Graudit estas evoluigita surbaze de la grep-utilo, kiu iam estis liberigita sub la GNU-licenco.

Estas similaj iloj por statika kodanalizo - Rough Auditing Tool for Security (RATS), Securitycompass Web Application Analysis Tool (SWAAT), flawfinder ktp. Sed Graudit estas tre fleksebla kaj havas minimumajn teknikajn postulojn. Tamen, vi eble havas problemojn, kiujn Graudit ne povas solvi. Tiam vi povas serĉi aliajn eblojn ĉi tie sur ĉi tiu listo.

Ni povas integri ĉi tiun ilon en specifan projekton, aŭ disponigi ĝin al elektita uzanto, aŭ uzi ĝin samtempe en ĉiuj niaj projektoj. Ĉi tie ankaŭ estas kie la fleksebleco de Graudit venas en ludo. Do ni unue klonu la deponejon:

$ git clone https://github.com/wireghoul/graudit

Nun ni kreu simbolan ligilon por ke Graudit uzu ĝin en komandformato

$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/graudit

Ni aldonu kaŝnomon al .bashrc (aŭ kia ajn agorda dosiero vi uzas):

#------ .bashrc ------
alias graudit="~/bin/graudit"

Rekomencu:

$ source ~/.bashrc # OR
$ exex $SHELL

Ni kontrolu ĉu la instalado sukcesis:

$ graudit -h

Se vi vidas ion similan, tiam ĉio estas en ordo.

Kiel uzi simplan ilon por trovi vundeblecojn en programa kodo

Mi testos unu el miaj ekzistantaj projektoj. Antaŭ ol ruli la ilon, ĝi devas esti preterpasita datumbazo responda al la lingvo en kiu mia projekto estas skribita. La datumbazoj troviĝas en la dosierujo ~/gradit/signatures:

$ graudit -d ~/gradit/signatures/js.db

Do, mi testis du js-dosierojn de mia projekto, kaj Graudit montris informojn pri vundeblecoj en mia kodo al la konzolo:

Kiel uzi simplan ilon por trovi vundeblecojn en programa kodo

Kiel uzi simplan ilon por trovi vundeblecojn en programa kodo

Vi povas provi provi viajn projektojn en la sama maniero. Vi povas vidi liston de datumbazoj por malsamaj programlingvoj tie.

Avantaĝoj kaj Malavantaĝoj de Graudit

Graudit subtenas multajn programlingvojn. Tial ĝi taŭgas por larĝa gamo de uzantoj. Ĝi povas adekvate konkuri kun iuj senpagaj aŭ pagitaj analogoj. Kaj estas tre grave, ke plibonigoj ankoraŭ estas faritaj al la projekto, kaj la komunumo ne nur helpas la programistojn, sed ankaŭ aliajn uzantojn, kiuj provas eltrovi la ilon.

Ĉi tio estas oportuna ilo, sed ĝis nun ĝi ne ĉiam povas precize precize kia estas la problemo kun suspektinda kodo. La programistoj daŭre plibonigas Graudit.

Sed ĉiukaze, estas utile atenti eblajn sekurecproblemojn en la kodo kiam vi uzas ilojn kiel ĉi tiu.

Komencu…

En ĉi tiu artikolo, mi rigardis nur unu el multaj manieroj trovi vundeblecojn - senmova aplikaĵa sekureca testado. Fari statikan kodan analizon estas facila, sed ĝi estas nur la komenco. Por lerni pli pri la sekureco de via kodbazo, vi devas integri aliajn specojn de testado en via programaro-disvolva vivociklo.

Pri la Rajtoj de Reklamado

Fidinda VPS kaj la ĝusta elekto de tarifplano permesos al vi esti malpli distrita de la disvolviĝo per malagrablaj problemoj - ĉio funkcios sen fiaskoj kaj kun tre alta vivdaŭro!

Kiel uzi simplan ilon por trovi vundeblecojn en programa kodo

fonto: www.habr.com

Aldoni komenton