Ինչպես օգտագործել պարզ կոմունալ՝ ծրագրի կոդի խոցելիությունը գտնելու համար

Graudit-ն աջակցում է բազմաթիվ ծրագրավորման լեզուների և թույլ է տալիս ինտեգրել կոդերի բազայի անվտանգության թեստավորումն անմիջապես զարգացման գործընթացում:

Ինչպես օգտագործել պարզ կոմունալ՝ ծրագրի կոդի խոցելիությունը գտնելու համար
Source: Unsplash (Մարկուս Սպիսկե)

Թեստավորումը ծրագրային ապահովման մշակման կյանքի ցիկլի կարևոր մասն է: Թեստավորման բազմաթիվ տեսակներ կան, որոնցից յուրաքանչյուրը լուծում է իր խնդիրը։ Այսօր ես ուզում եմ խոսել կոդում անվտանգության խնդիրները գտնելու մասին:

Ակնհայտ է, որ ծրագրային ապահովման մշակման ժամանակակից իրողություններում կարևոր է ապահովել գործընթացի անվտանգությունը: Ժամանակին նույնիսկ ներկայացվեց DevSecOps հատուկ տերմինը: Այս տերմինը վերաբերում է մի շարք ընթացակարգերի, որոնք ուղղված են հավելվածի խոցելիության բացահայտմանը և վերացմանը: Կան մասնագիտացված բաց կոդով լուծումներ՝ ստանդարտներին համապատասխան խոցելիությունը ստուգելու համար OWASP- ը, որոնք նկարագրում են սկզբնական կոդի խոցելիության տարբեր տեսակներն ու վարքը։

Անվտանգության խնդիրների լուծման տարբեր մոտեցումներ կան, ինչպիսիք են՝ Ստատիկ հավելվածների անվտանգության թեստավորում (SAST), դինամիկ հավելվածների անվտանգության թեստավորում (DAST), հավելվածների անվտանգության ինտերակտիվ թեստավորում (IAST), ծրագրային կազմի վերլուծություն և այլն:

Ստատիկ հավելվածի անվտանգության փորձարկումը բացահայտում է արդեն գրված կոդի սխալները: Այս մոտեցումը չի պահանջում հավելվածի գործարկումը, ինչի պատճառով այն կոչվում է ստատիկ վերլուծություն:

Ես կկենտրոնանամ ստատիկ կոդի վերլուծության վրա և կօգտագործեմ պարզ բաց կոդով գործիք՝ ամեն ինչ գործնականում ցուցադրելու համար:

Ինչու ես ընտրեցի բաց կոդով գործիք ստատիկ կոդի անվտանգության վերլուծության համար

Դրա համար կան մի շարք պատճառներ. նախ՝ այն անվճար է, քանի որ դուք օգտագործում եք գործիք, որը մշակվել է համախոհների համայնքի կողմից, ովքեր ցանկանում են օգնել այլ մշակողների: Եթե ​​ունեք փոքր թիմ կամ ստարտափ, դուք հիանալի հնարավորություն ունեք գումար խնայելու՝ օգտագործելով բաց կոդով ծրագրակազմ՝ ձեր կոդի բազայի անվտանգությունը ստուգելու համար: Երկրորդ, դա վերացնում է ձեզ համար առանձին DevSecOps թիմ վարձելու անհրաժեշտությունը՝ հետագայում նվազեցնելով ձեր ծախսերը:

Լավ բաց կոդով գործիքները միշտ ստեղծվում են՝ հաշվի առնելով ճկունության աճող պահանջները: Հետեւաբար, դրանք կարող են օգտագործվել գրեթե ցանկացած միջավայրում՝ ընդգրկելով խնդիրների լայն շրջանակ: Ծրագրավորողների համար շատ ավելի հեշտ է միացնել նման գործիքներն իրենց նախագծերի վրա աշխատելիս արդեն իսկ կառուցած համակարգի հետ:

Բայց կարող են լինել դեպքեր, երբ ձեզ անհրաժեշտ է մի գործառույթ, որը հասանելի չէ ձեր ընտրած գործիքում: Այս դեպքում դուք հնարավորություն ունեք պատառաքաղել դրա կոդը և դրա հիման վրա մշակել ձեր սեփական գործիքը՝ ձեզ անհրաժեշտ ֆունկցիոնալությամբ:

Քանի որ շատ դեպքերում բաց կոդով ծրագրային ապահովման մշակման վրա ակտիվորեն ազդում է համայնքը, փոփոխություններ կատարելու որոշումը կայացվում է բավականին արագ և ճշգրիտ. հայտնաբերված սխալներ և այլ խնդիրներ:

Օգտագործելով Graudit կոդի անվտանգության վերլուծության համար

Դուք կարող եք օգտագործել տարբեր բաց կոդով գործիքներ ստատիկ կոդի վերլուծության համար, բոլոր ծրագրավորման լեզուների համար չկա ունիվերսալ գործիք: Դրանցից մի քանիսի մշակողները հետևում են OWASP-ի առաջարկություններին և փորձում են հնարավորինս շատ լեզուներ ծածկել:

Այստեղ մենք կօգտագործենք Graudit, պարզ հրամանի տող օգտակար ծրագիր, որը թույլ կտա մեզ գտնել խոցելի կետեր մեր կոդերի բազայում: Այն աջակցում է տարբեր լեզուների, բայց, այնուամենայնիվ, դրանց հավաքածուն սահմանափակ է: Graudit-ը մշակվել է grep utility ծրագրի հիման վրա, որը ժամանակին թողարկվել է GNU լիցենզիայի ներքո:

Կան ստատիկ կոդի վերլուծության նմանատիպ գործիքներ՝ Անվտանգության կոպիտ աուդիտի գործիք (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"

Reboot:

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

Եկեք ստուգենք, թե արդյոք տեղադրումը հաջող էր.

$ graudit -h

Եթե ​​նման բան եք տեսնում, ուրեմն ամեն ինչ լավ է։

Ինչպես օգտագործել պարզ կոմունալ՝ ծրագրի կոդի խոցելիությունը գտնելու համար

Ես կփորձարկեմ իմ գոյություն ունեցող նախագծերից մեկը: Գործիքը գործարկելուց առաջ անհրաժեշտ է փոխանցել տվյալների բազա, որը համապատասխանում է այն լեզվին, որով գրված է իմ նախագիծը: Տվյալների բազաները գտնվում են ~/gradit/signatures պանակում.

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

Այսպիսով, ես փորձարկեցի երկու js ֆայլ իմ նախագծից, և Graudit-ը ցուցադրեց տեղեկատվություն իմ կոդի խոցելիության մասին կոնսոլում.

Ինչպես օգտագործել պարզ կոմունալ՝ ծրագրի կոդի խոցելիությունը գտնելու համար

Ինչպես օգտագործել պարզ կոմունալ՝ ծրագրի կոդի խոցելիությունը գտնելու համար

Դուք կարող եք փորձել փորձարկել ձեր նախագծերը նույն կերպ: Դուք կարող եք տեսնել տվյալների բազաների ցանկը տարբեր ծրագրավորման լեզուների համար այստեղ.

Graudit-ի առավելություններն ու թերությունները

Graudit-ն աջակցում է ծրագրավորման բազմաթիվ լեզուների: Հետեւաբար, այն հարմար է օգտվողների լայն շրջանակի համար: Այն կարող է համարժեք մրցակցել ցանկացած անվճար կամ վճարովի անալոգների հետ: Եվ շատ կարևոր է, որ նախագծում դեռևս բարելավումներ են կատարվում, և համայնքը ոչ միայն օգնում է մշակողներին, այլև մյուս օգտատերերին, ովքեր փորձում են պարզել գործիքը:

Սա հարմար գործիք է, բայց մինչ այժմ այն ​​միշտ չի կարող ճշգրիտ որոշել, թե որն է կասկածելի կոդի խնդիրը: Մշակողները շարունակում են բարելավել Graudit-ը:

Բայց ամեն դեպքում, նման գործիքներ օգտագործելիս օգտակար է ուշադրություն դարձնել կոդի անվտանգության հնարավոր խնդիրներին:

Սկսել…

Այս հոդվածում ես նայեցի միայն խոցելիությունը գտնելու բազմաթիվ եղանակներից մեկին՝ հավելվածների անվտանգության ստատիկ փորձարկում: Ստատիկ կոդի վերլուծություն կատարելը հեշտ է, բայց դա միայն սկիզբն է: Ձեր կոդի բազայի անվտանգության մասին ավելին իմանալու համար դուք պետք է ինտեգրեք փորձարկման այլ տեսակներ ձեր ծրագրաշարի մշակման կյանքի ցիկլի մեջ:

Գովազդի իրավունքների մասին

Հուսալի VPS իսկ սակագնային պլանի ճիշտ ընտրությունը թույլ կտա ձեզ ավելի քիչ շեղվել զարգացումից տհաճ խնդիրներից. ամեն ինչ կաշխատի առանց ձախողումների և շատ բարձր ժամանակի:

Ինչպես օգտագործել պարզ կոմունալ՝ ծրագրի կոդի խոցելիությունը գտնելու համար

Source: www.habr.com

Добавить комментарий