Cara nggunakake sarana prasaja kanggo nemokake kerentanan ing kode program

Graudit ndhukung macem-macem basa pamrograman lan ngidini sampeyan nggabungake tes keamanan codebase langsung menyang proses pangembangan.

Cara nggunakake sarana prasaja kanggo nemokake kerentanan ing kode program
Source: Unsplash (Markus Spiske)

Tes minangka bagean penting saka siklus urip pangembangan piranti lunak. Ana macem-macem jinis tes, saben-saben ngrampungake masalah dhewe. Dina iki aku arep ngomong babagan nemokake masalah keamanan ing kode.

Temenan, ing kasunyatan modern pangembangan piranti lunak, penting kanggo njamin keamanan proses. Ing sawijining wektu, istilah khusus DevSecOps malah dikenalake. Istilah iki nuduhake serangkaian prosedur sing dituju kanggo ngenali lan ngilangi kerentanan ing aplikasi. Ana solusi open source khusus kanggo mriksa kerentanan miturut standar OWASP, sing nggambarake macem-macem jinis lan prilaku kerentanan ing kode sumber.

Ana macem-macem pendekatan kanggo ngrampungake masalah keamanan, kayata Pengujian Keamanan Aplikasi Statis (SAST), Pengujian Keamanan Aplikasi Dinamis (DAST), Pengujian Keamanan Aplikasi Interaktif (IAST), Analisis Komposisi Perangkat Lunak, lan liya-liyane.

Pengujian keamanan aplikasi statis ngenali kesalahan ing kode sing wis ditulis. Pendekatan iki ora mbutuhake aplikasi kanggo mbukak, mulane diarani analisis statis.

Aku bakal fokus ing analisis kode statis lan nggunakake alat open source prasaja kanggo nduduhake kabeh ing laku.

Napa aku milih alat open source kanggo analisis keamanan kode statis

Ana sawetara alasan kanggo iki: pisanan, gratis amarga sampeyan nggunakake alat sing dikembangake dening komunitas wong sing duwe pikiran sing padha sing pengin mbantu pangembang liyane. Yen sampeyan duwe tim cilik utawa wiwitan, sampeyan duwe kesempatan sing apik kanggo ngirit dhuwit kanthi nggunakake piranti lunak open source kanggo nguji keamanan basis kode sampeyan. Kapindho, ora mbutuhake sampeyan nyewa tim DevSecOps sing kapisah, luwih nyuda biaya sampeyan.

Piranti open source sing apik mesthi digawe kanthi njupuk syarat tambah kanggo keluwesan. Mulane, padha bisa digunakake ing meh wae lingkungan, kalebu sawetara saka sudhut tugas. Iku luwih gampang kanggo pangembang kanggo nyambungake piranti kasebut karo sistem sing wis dibangun nalika nggarap proyek.

Nanging bisa uga ana wektu yen sampeyan butuh fitur sing ora kasedhiya ing alat sing sampeyan pilih. Ing kasus iki, sampeyan duwe kesempatan kanggo garpu kode lan ngembangake alat sampeyan dhewe adhedhasar fungsi sing dibutuhake.

Amarga ing pirang-pirang kasus pangembangan piranti lunak sumber terbuka kanthi aktif dipengaruhi dening komunitas, keputusan kanggo nggawe owah-owahan ditindakake kanthi cepet lan langsung menyang titik: pangembang proyek sumber terbuka gumantung marang umpan balik lan saran saka pangguna, ing laporan babagan kesalahan ketemu lan masalah liyane.

Nggunakake Graudit kanggo Analisis Keamanan Kode

Sampeyan bisa nggunakake macem-macem alat open source kanggo analisis kode statis; ora ana alat universal kanggo kabeh basa program. Pangembang sawetara saka wong-wong mau ngetutake rekomendasi OWASP lan nyoba nutupi akeh basa sing bisa.

Kene kita bakal nggunakake Graudit, utilitas baris perintah prasaja sing bakal ngidini kita nemokake kerentanan ing basis kode kita. Ndhukung basa sing beda-beda, nanging set kasebut diwatesi. Graudit dikembangake adhedhasar utilitas utilitas grep, sing tau dirilis ing sangisore lisensi GNU.

Ana alat sing padha kanggo analisis kode statis - Rough Auditing Tool for Security (RATS), Securitycompass Web Application Analysis Tool (SWAAT), flawfinder lan liya-liyane. Nanging Graudit fleksibel banget lan nduweni syarat teknis minimal. Nanging, sampeyan bisa uga duwe masalah sing Graudit ora bisa ngatasi. Banjur sampeyan bisa nggoleki opsi liyane ing kene ing dhaptar iki.

Kita bisa nggabungake alat iki menyang proyek tartamtu, utawa kasedhiya kanggo pangguna sing dipilih, utawa digunakake bebarengan ing kabeh proyek kita. Iki uga dadi keluwesan Graudit. Dadi ayo tiron repo dhisik:

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

Saiki ayo nggawe link simbolis kanggo Graudit kanggo nggunakake ing format printah

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

Ayo nambah alias menyang .bashrc (utawa file konfigurasi apa wae sing sampeyan gunakake):

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

Urip maneh:

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

Ayo priksa manawa instalasi wis sukses:

$ graudit -h

Yen sampeyan ndeleng sing padha, mula kabeh apik.

Cara nggunakake sarana prasaja kanggo nemokake kerentanan ing kode program

Aku bakal nyoba salah sawijining proyek sing wis ana. Sadurunge mbukak alat kasebut, kudu ngliwati basis data sing cocog karo basa sing ditulis proyekku. Basis data dumunung ing folder ~/gradit/signatures:

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

Dadi, aku nguji rong file js saka proyekku, lan Graudit nampilake informasi babagan kerentanan ing kodeku menyang konsol:

Cara nggunakake sarana prasaja kanggo nemokake kerentanan ing kode program

Cara nggunakake sarana prasaja kanggo nemokake kerentanan ing kode program

Sampeyan bisa nyoba nguji proyek kanthi cara sing padha. Sampeyan bisa ndeleng dhaptar database kanggo macem-macem basa program kene.

Kaluwihan lan cacat Graudit

Graudit ndhukung akeh basa pamrograman. Mulane, iku cocok kanggo sawetara saka sudhut pangguna. Bisa saingan karo analog gratis utawa mbayar. Lan penting banget yen dandan isih ditindakake kanggo proyek kasebut, lan komunitas ora mung mbantu para pangembang, nanging uga pangguna liyane sing nyoba ngerteni alat kasebut.

Iki minangka alat sing praktis, nanging nganti saiki ora bisa nemtokake persis apa masalahe karo potongan kode sing curiga. Pangembang terus nambah Graudit.

Nanging ing kasus apa wae, migunani kanggo menehi perhatian marang masalah keamanan potensial ing kode nalika nggunakake alat kaya iki.

Wiwit ...

Ing artikel iki, aku ndeleng mung salah siji saka akeh cara kanggo nemokake kerentanan - static application security testing . Nindakake analisis kode statis gampang, nanging mung wiwitan. Kanggo sinau luwih lengkap babagan keamanan basis kode, sampeyan kudu nggabungake jinis tes liyane menyang siklus urip pangembangan piranti lunak.

Ing Hak Iklan

VPS sing dipercaya lan pilihan rencana tarif sing bener bakal ngidini sampeyan ora ngganggu pembangunan kanthi masalah sing ora nyenengake - kabeh bakal bisa tanpa gagal lan kanthi wektu kerja sing dhuwur banget!

Cara nggunakake sarana prasaja kanggo nemokake kerentanan ing kode program

Source: www.habr.com

Add a comment