Kuidas kasutada lihtsat tööriista haavatavuste otsimiseks programmikoodis

Graudit toetab mitmeid programmeerimiskeeli ja vÔimaldab integreerida koodibaasi turvatestimise otse arendusprotsessi.

Kuidas kasutada lihtsat tööriista haavatavuste otsimiseks programmikoodis
Allikas: Unsplash (Markus Spiske)

Testimine on tarkvaraarenduse elutsĂŒkli oluline osa. On olemas palju erinevaid testimisviise, igaĂŒhel on oma eesmĂ€rk. TĂ€na tahan rÀÀkida koodis turvaprobleemide leidmisest.

On ilmne, et tĂ€napĂ€eva tarkvaraarenduse tingimustes on oluline tagada protsesside turvalisus. Mingil ajal ilmus isegi spetsiaalne mĂ”isted DevSecOps. Selle terminiga mĂ”istetakse rida protseduure, mis on suunatud rakenduse haavatavuste kindlakstegemisele ja kĂ”rvaldamisele. On olemas spetsialiseeritud avatud lĂ€htekoodiga lahendused haavatavuste kontrollimiseks vastavalt standarditele OWASP, mis kirjeldavad erinevaid tĂŒĂŒpe ja kĂ€itumist haavatavusi lĂ€htekoodis.

On erinevaid lĂ€henemisviise turvaprobleemide lahendamiseks, nĂ€iteks rakenduste staatiline turvatestimine (SAST), dĂŒnaamiline turvatestimine (DAST), interaktiivne rakenduste turvatestimine (IAST), tarkvara koostisosade analĂŒĂŒs (Software Composition Analysis) jne.

Staatiline rakenduste turvatestimine avastab vigu juba kirjutatud koodis. See lĂ€henemine ei nĂ”ua rakenduse kĂ€ivitamist, seetĂ”ttu nimetatakse seda staatiliseks analĂŒĂŒsiks.

Ma peatun koodi staatilisel analĂŒĂŒsil ja kasutan lihtsat avatud lĂ€htekoodiga tööriista, et demonstreerida kĂ”ike praktikas.

Miks ma valisin avatud lĂ€htekoodiga tööriista koodi staatiliseks turvaanalĂŒĂŒsiks

Sellel on mitmeid pÔhjuseid: esiteks, see on tasuta, kuna kasutate tööriista, mille on vÀlja töötanud sarnaste huvidega kogukond, kes soovib aidata teisi arendajaid. Kui teil on vÀike meeskond vÔi idufirma, on teil suurepÀrane vÔimalus sÀÀsta, kasutades avatud lÀhtekoodiga tarkvara oma koodibaasi turvalisuse kontrollimiseks. Teiseks, see vabastab teid vajadusest palgata eraldi DevSecOps meeskond, mis veelgi vÀhendab teie kulusid.

Headless open source tööriistad arvestavad alati suurenenud paindlikkuse nĂ”udmistega. SeetĂ”ttu saab neid kasutada praktiliselt igas keskkonnas, katab lai valik ĂŒlesandeid. Arendajatele on palju lihtsam neid tööriistu siduda sĂŒsteemiga, mida nad on juba oma projektide kallal töötades ehitanud.

Aga vÔivad tekkida olukorrad, kus vajate funktsiooni, mida teie valitud tööriist ei paku. Sellisel juhul on teil vÔimalus selle koodi forkitada ja arendada selle alusel oma tööriist, millel on vajalikud funktsionaalsused.

Kuna avatud lÀhtekoodiga tarkvara arendusele avaldab enamasti tugevat mÔju kogukond, vÔetakse muudatuste tegemise otsus piisavalt kiiresti ja asjakohaselt: avatud lÀhtekoodiga projekti arendajad tuginevad kasutajate tagasisidele ja ettepanekutele, nende sÔnumitele leitud vigade ja teiste probleemide kohta.

Graudit'i kasutamine koodi turvaanalĂŒĂŒsiks

Koodi staatiliseks analĂŒĂŒsiks saab kasutada erinevaid avatud lĂ€htekoodiga tööriistu, universaalset tööriista kĂ”igi programmeerimiskeelte jaoks ei eksisteeri. MĂ”ned arendajad jĂ€rgivad OWASP-i soovitusi ja pĂŒĂŒavad katta nii palju keeli kui vĂ”imalik.

Siin kasutame Graudit, lihtsat kÀsurea utiliiti, mis vÔimaldab meil leida haavatavusi meie koodibaasis. See toetab erinevaid keeli, kuid siiski on nende hulk piiratud. Graudit on vÀlja töötatud grep'i teenusutiliidi pÔhjal, mis toodi kunagi vÀlja GNU litsentsi all.

On olemas sarnased tööriistad staatiliseks koodi analĂŒĂŒsiks — Rough Auditing Tool for Security (RATS), Securitycompass Web Application Analysis Tool (SWAAT), flawfinder ja nii edasi. Kuid Graudit on vĂ€ga paindlik ja omab minimaalset tehnilist nĂ”udlust. Siiski vĂ”ivad tekkida ĂŒlesanded, mida Graudit lahendada ei suuda. Siis vĂ”ite otsida teisi variante siit selles nimekirjas.

Me saame integreerida selle tööriista konkreetse projekti, muuta selle valitud kasutajale kergesti kĂ€ttesaadavaks vĂ”i kasutada seda samaaegselt kĂ”igis meie projektides. See on veel ĂŒks Graudit'i paindlikkuse nĂ€ide. Nii et kĂ”igepealt kloonime repositooriumi:

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

NĂŒĂŒd loome Graudit jaoks sĂŒmboolse lingi, et seda kĂ€surea formaadis kasutada.

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

Lisame aliase .bashrc faili (vÔi mÔnda teise konfiguratsioonifaili, mida kasutate):

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

Laadime sĂŒsteemi uuesti:

$ source ~/.bashrc # VÕI
$ exec $SHELL

Kontrollime, kas installatsioon Ônnestus:

$ graudit -h

Kui nÀete midagi sarnast, siis kÔik on hÀsti.

Kuidas kasutada lihtsat tööriista haavatavuste otsimiseks programmikoodis

Ma hakkan testima ĂŒht minu olemasolevat projekti. Enne tööriista kĂ€ivitamist tuleb sellele edastada andmebaas, mis vastab selle programmeerimiskeelele, milles minu projekt on kirjutatud. Andmebaasid asuvad kaustas ~/gradit/signatures:

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

Seega testisin kahte js-faili oma projektist ja Graudit nÀitas konsoolis teavet minu koodi haavatavuste kohta:

Kuidas kasutada lihtsat tööriista haavatavuste otsimiseks programmikoodis

Kuidas kasutada lihtsat tööriista haavatavuste otsimiseks programmikoodis

Saate proovida oma projekte selliselt testida. Erinevat tĂŒĂŒpi programmeerimiskeelte andmebaaside nimekirja leiate siin.

Grauditi plussid ja miinused

Graudit toetab mitmeid programmeerimiskeeli. SeetĂ”ttu sobib see laiale kasutajaskonnale. See suudab vÀÀrika konkurentsiga toime tulla mis tahes tasuta vĂ”i tasuliste analoogidega. On vĂ€ga oluline, et projekti parendused jĂ€tkuvad ja kogukond aitab mitte ainult arendajaid, vaid ka teisi kasutajaid, kes pĂŒĂŒavad tööriista mĂ”ista.

See on mugav tööriist, kuid praegu ei suuda see alati tÀpselt nÀidata, milles probleem seisneb, mis on seotud kahtlase koodiosas. Arendajad jÀtkavad Grauditi tÀiustamist.

Kuid igal juhul on kasulik pöörata tÀhelepanu potentsiaalsetele turvaprobleemidele koodis, kasutades sarnaseid tööriistu.

Algus


Selles artiklis kĂ€sitlesin vaid ĂŒhte paljusid viise haavatavuste otsimiseks — rakenduste staatilist turvatestimist. Koodi staatiline analĂŒĂŒs on lihtne teostada, kuid see on vaid algus. Et rohkem teada saada oma koodibaasi turvalisusest, tuleb integreerida tarkvaraarenduse elutsĂŒklisse teisi testimisviise.

Reklaami Ôigustes

UsaldusvÀÀrne VPS ja Ă”ige hinnaplaani valik aitab vĂ€ltida hĂ€irivaid probleeme arendamisel — kĂ”ik töötab sujuvalt ja vĂ€ga kĂ”rge uptime’iga!

Kuidas kasutada lihtsat tööriista haavatavuste otsimiseks programmikoodis

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster