Cara menggunakan utiliti mudah untuk mencari kelemahan dalam kod program

Graudit menyokong berbilang bahasa pengaturcaraan dan membolehkan anda menyepadukan ujian keselamatan asas kod terus ke dalam proses pembangunan.

Cara menggunakan utiliti mudah untuk mencari kelemahan dalam kod program
Sumber: Unsplash (Markus Spiske)

Pengujian adalah bahagian penting dalam kitaran hayat pembangunan perisian. Terdapat banyak jenis ujian, setiap daripada mereka menyelesaikan masalahnya sendiri. Hari ini saya ingin bercakap tentang mencari masalah keselamatan dalam kod.

Jelas sekali, dalam realiti moden pembangunan perisian, adalah penting untuk memastikan keselamatan proses. Pada satu masa, istilah khas DevSecOps telah diperkenalkan. Istilah ini merujuk kepada satu siri prosedur yang bertujuan untuk mengenal pasti dan menghapuskan kelemahan dalam aplikasi. Terdapat penyelesaian sumber terbuka khusus untuk menyemak kelemahan mengikut piawaian OWASP, yang menerangkan pelbagai jenis dan gelagat kelemahan dalam kod sumber.

Terdapat pendekatan yang berbeza untuk menyelesaikan masalah keselamatan, seperti Ujian Keselamatan Aplikasi Statik (SAST), Ujian Keselamatan Aplikasi Dinamik (DAST), Ujian Keselamatan Aplikasi Interaktif (IAST), Analisis Komposisi Perisian dan sebagainya.

Ujian keselamatan aplikasi statik mengenal pasti ralat dalam kod yang sudah ditulis. Pendekatan ini tidak memerlukan aplikasi untuk dijalankan, itulah sebabnya ia dipanggil analisis statik.

Saya akan menumpukan pada analisis kod statik dan menggunakan alat sumber terbuka yang mudah untuk menunjukkan segala-galanya dalam amalan.

Mengapa saya memilih alat sumber terbuka untuk analisis keselamatan kod statik

Terdapat beberapa sebab untuk ini: pertama, ia percuma kerana anda menggunakan alat yang dibangunkan oleh komuniti orang yang berfikiran sama yang ingin membantu pembangun lain. Jika anda mempunyai pasukan kecil atau permulaan, anda mempunyai peluang besar untuk menjimatkan wang dengan menggunakan perisian sumber terbuka untuk menguji keselamatan pangkalan kod anda. Kedua, ia menghapuskan keperluan untuk anda mengupah pasukan DevSecOps yang berasingan, seterusnya mengurangkan kos anda.

Alat sumber terbuka yang baik sentiasa dicipta dengan mengambil kira peningkatan keperluan untuk fleksibiliti. Oleh itu, ia boleh digunakan dalam hampir mana-mana persekitaran, meliputi pelbagai tugas. Adalah lebih mudah bagi pembangun untuk menyambungkan alat tersebut dengan sistem yang telah mereka bina semasa mengerjakan projek mereka.

Tetapi mungkin ada kalanya anda memerlukan ciri yang tidak tersedia dalam alat yang anda pilih. Dalam kes ini, anda mempunyai peluang untuk menukar kodnya dan membangunkan alat anda sendiri berdasarkannya dengan fungsi yang anda perlukan.

Memandangkan dalam kebanyakan kes pembangunan perisian sumber terbuka dipengaruhi secara aktif oleh komuniti, keputusan untuk membuat perubahan dibuat dengan cepat dan tepat: pembangun projek sumber terbuka bergantung pada maklum balas dan cadangan daripada pengguna, pada laporan mereka tentang ralat ditemui dan masalah lain.

Menggunakan Graudit untuk Analisis Keselamatan Kod

Anda boleh menggunakan pelbagai alat sumber terbuka untuk analisis kod statik; tiada alat universal untuk semua bahasa pengaturcaraan. Pembangun sesetengah daripada mereka mengikuti cadangan OWASP dan cuba merangkumi sebanyak mungkin bahasa.

Di sini kita akan gunakan Graudit, utiliti baris perintah mudah yang akan membolehkan kami mencari kelemahan dalam pangkalan kod kami. Ia menyokong bahasa yang berbeza, tetapi tetapan mereka adalah terhad. Graudit dibangunkan berdasarkan utiliti utiliti grep, yang pernah dikeluarkan di bawah lesen GNU.

Terdapat alat yang serupa untuk analisis kod statik - Alat Pengauditan Kasar untuk Keselamatan (RATS), Alat Analisis Aplikasi Web Securitycompass (SWAAT), pencari cela dan sebagainya. Tetapi Graudit sangat fleksibel dan mempunyai keperluan teknikal yang minimum. Walau bagaimanapun, anda mungkin mempunyai masalah yang tidak dapat diselesaikan oleh Graudit. Kemudian anda boleh mencari pilihan lain di sini dalam senarai ini.

Kami boleh menyepadukan alat ini ke dalam projek tertentu, atau menyediakannya kepada pengguna terpilih, atau menggunakannya serentak dalam semua projek kami. Di sinilah fleksibiliti Graudit turut dimainkan. Jadi mari kita klon repo dahulu:

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

Sekarang mari kita buat pautan simbolik untuk Graudit menggunakannya dalam format arahan

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

Mari tambahkan alias pada .bashrc (atau apa sahaja fail konfigurasi yang anda gunakan):

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

But semula:

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

Mari semak sama ada pemasangan berjaya:

$ graudit -h

Jika anda melihat sesuatu yang serupa, maka semuanya baik-baik saja.

Cara menggunakan utiliti mudah untuk mencari kelemahan dalam kod program

Saya akan menguji salah satu projek saya yang sedia ada. Sebelum menjalankan alat, ia perlu lulus pangkalan data yang sepadan dengan bahasa di mana projek saya ditulis. Pangkalan data terletak dalam folder ~/gradit/signatures:

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

Jadi, saya menguji dua fail js daripada projek saya, dan Graudit memaparkan maklumat tentang kelemahan dalam kod saya kepada konsol:

Cara menggunakan utiliti mudah untuk mencari kelemahan dalam kod program

Cara menggunakan utiliti mudah untuk mencari kelemahan dalam kod program

Anda boleh cuba menguji projek anda dengan cara yang sama. Anda boleh melihat senarai pangkalan data untuk bahasa pengaturcaraan yang berbeza di sini.

Kelebihan dan Kekurangan Graudit

Graudit menyokong banyak bahasa pengaturcaraan. Oleh itu, ia sesuai untuk pelbagai pengguna. Ia boleh bersaing secukupnya dengan mana-mana analog percuma atau berbayar. Dan adalah sangat penting bahawa penambahbaikan masih dilakukan pada projek itu, dan komuniti bukan sahaja membantu pembangun, tetapi juga pengguna lain yang cuba memikirkan alat itu.

Ini adalah alat yang berguna, tetapi setakat ini ia tidak selalu dapat menentukan dengan tepat apa masalahnya dengan sekeping kod yang mencurigakan. Pembangun terus menambah baik Graudit.

Tetapi dalam apa jua keadaan, adalah berguna untuk memberi perhatian kepada masalah keselamatan yang berpotensi dalam kod apabila menggunakan alat seperti ini.

Bermula…

Dalam artikel ini, saya melihat hanya satu daripada banyak cara untuk mencari kelemahan - ujian keselamatan aplikasi statik. Menjalankan analisis kod statik adalah mudah, tetapi ia hanya permulaan. Untuk mengetahui lebih lanjut tentang keselamatan pangkalan kod anda, anda perlu menyepadukan jenis ujian lain ke dalam kitaran hayat pembangunan perisian anda.

Sebagai iklan

VPS yang boleh dipercayai dan pilihan pelan tarif yang betul akan membolehkan anda kurang terganggu daripada pembangunan oleh masalah yang tidak menyenangkan - semuanya akan berfungsi tanpa kegagalan dan dengan masa operasi yang sangat tinggi!

Cara menggunakan utiliti mudah untuk mencari kelemahan dalam kod program

Sumber: www.habr.com

Tambah komen