Программа кодунун кемчиликтерин табуу үчүн жөнөкөй утилитаны кантип колдонсо болот

Graudit бир нече программалоо тилдерин колдойт жана коддук базанын коопсуздук тестин түздөн-түз иштеп чыгуу процессине киргизүүгө мүмкүндүк берет.

Программа кодунун кемчиликтерин табуу үчүн жөнөкөй утилитаны кантип колдонсо болот
Source: Unsplash (Маркус Списке)

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

Албетте, программалык камсыздоону иштеп чыгуунун заманбап реалдуулуктарында процесстин коопсуздугун камсыз кылуу маанилүү. Бир убакта DevSecOps атайын термини да киргизилген. Бул термин колдонмодогу алсыздыктарды аныктоого жана жоюуга багытталган бир катар процедураларды билдирет. Стандарттарга ылайык аялуу жерлерди текшерүү үчүн атайын ачык булак чечимдери бар OWASP, булак кодундагы алсыздыктын ар кандай түрлөрүн жана жүрүм-турумун сүрөттөйт.

Коопсуздук маселелерин чечүү үчүн ар кандай ыкмалар бар, мисалы, Статикалык Колдонмонун Коопсуздук Тести (SAST), Динамикалык Колдонмонун Коопсуздук Тести (DAST), Интерактивдүү Колдонмонун Коопсуздук Тести (IAST), Программанын курамынын Анализи ж.б.

Статикалык тиркеменин коопсуздук тести мурунтан эле жазылган коддогу каталарды аныктайт. Бул ыкма тиркеменин иштешин талап кылбайт, ошондуктан ал статикалык анализ деп аталат.

Мен статикалык код анализине басым жасайм жана бардыгын иш жүзүндө көрсөтүү үчүн жөнөкөй ачык булак куралын колдоном.

Эмне үчүн мен статикалык коддун коопсуздугун талдоо үчүн ачык булак куралын тандадым

Мунун бир нече себептери бар: биринчиден, бул акысыз, анткени сиз башка иштеп чыгуучуларга жардам берүүнү каалаган пикирлеш адамдардын коомчулугу тарабынан иштелип чыккан куралды колдонуп жатасыз. Эгер сизде чакан команда же стартап болсо, код базасынын коопсуздугун текшерүү үчүн ачык программалык камсыздоону колдонуу менен акчаңызды үнөмдөөгө сонун мүмкүнчүлүк бар. Экинчиден, ал өзүнчө DevSecOps командасын жалдоо зарылдыгын жок кылат, бул сиздин чыгымдарыңызды андан ары азайтат.

Жакшы ачык булак куралдары ар дайым ийкемдүүлүккө талаптарды эске алуу менен түзүлөт. Ошондуктан, алар милдеттердин кеңири спектрин камтыган дээрлик бардык шарттарда колдонулушу мүмкүн. Иштеп чыгуучуларга мындай инструменттерди долбоорлордун үстүндө иштеп жатканда өздөрү курган система менен туташтыруу бир топ жеңилирээк.

Бирок сиз тандаган куралда жок өзгөчөлүк керек болгон учурлар болушу мүмкүн. Бул учурда, сизде анын кодун бузуп, анын негизинде керектүү функция менен өз куралыңызды иштеп чыгуу мүмкүнчүлүгү бар.

Көпчүлүк учурларда ачык булактуу программалык камсыздоону иштеп чыгуу коомчулуктун активдүү таасиринде болгондуктан, өзгөртүүлөрдү киргизүү чечими абдан тез жана так кабыл алынат: ачык булактуу долбоордун иштеп чыгуучулары колдонуучулардын пикирлерине жана сунуштарына, алардын отчетторуна таянышат. табылган каталар жана башка көйгөйлөр.

Код коопсуздук талдоо үчүн Graudit колдонуу

Сиз статикалык кодду талдоо үчүн ар кандай ачык булак куралдарын колдоно аласыз; бардык программалоо тилдери үчүн универсалдуу курал жок. Алардын айрымдарын иштеп чыгуучулар OWASP сунуштарын аткарып, мүмкүн болушунча көп тилдерди камтууга аракет кылышат.

Бул жерде биз колдонобуз Graudit, жөнөкөй буйрук сабынын утилитасы, ал бизге код базасындагы кемчиликтерди табууга мүмкүндүк берет. Бул ар кандай тилдерди колдойт, бирок дагы эле алардын топтому чектелген. Graudit бир жолу GNU лицензиясы боюнча чыгарылган grep утилитасынын негизинде иштелип чыккан.

Статикалык кодду талдоо үчүн окшош инструменттер бар - Rough Auditing Tool for Security (RATS), Securitycompass Web Application Analysis Tool (SWAAT), flawfinder жана башкалар. Бирок 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ти жакшыртууну улантууда.

Бирок кандай болгон күндө да, ушул сыяктуу куралдарды колдонууда коддогу мүмкүн болуучу коопсуздук көйгөйлөрүнө көңүл буруу пайдалуу.

Башталууда…

Бул макалада мен аялуу жерлерди табуу жолдорунун бирин гана карадым - static application security testing. Статикалык код анализин жүргүзүү оңой, бирок бул башталышы гана. Код базасынын коопсуздугу жөнүндө көбүрөөк билүү үчүн, сиз программалык камсыздоону иштеп чыгуунун өмүр циклине тестирлөөнүн башка түрлөрүн бириктиришиңиз керек.

жарнама катары

Ишенимдүү VPS жана тарифтик планды туура тандоо жагымсыз көйгөйлөр менен өнүгүүдөн азыраак алаксып калууга мүмкүндүк берет – баары үзгүлтүксүз жана өтө жогорку иштөө убактысы менен иштейт!

Программа кодунун кемчиликтерин табуу үчүн жөнөкөй утилитаны кантип колдонсо болот

Source: www.habr.com

Комментарий кошуу