Melakukan Audit Keamanan untuk Kode Anda: Dasar-dasar

Diterbitkan: 2021-10-01

Keamanan itu penting, dan itu lebih penting dari sebelumnya di zaman sekarang ini. Dengan meningkatnya serangan siber, banyak orang menganggap serius audit keamanan untuk kode mereka. Dalam posting blog ini, kita akan membahas apa yang dimaksud dengan audit keamanan dan bagaimana Anda dapat melakukannya pada kode Anda sendiri!


Teknik Umum

1) Analisis Statis

Analisis statis adalah proses memeriksa kode tanpa mengeksekusinya. Ini memiliki banyak manfaat, termasuk dapat mengidentifikasi potensi kerentanan sebelum diterapkan!

Anda dapat melakukan audit keamanan statis dengan alat seperti Brakeman dan Peepcode. Alat-alat ini mencari masalah umum dalam aplikasi Ruby on Rails, seperti serangan injeksi SQL, Cacat Cross-Site Scripting (XSS), cacat fiksasi sesi, dll.

Anda juga dapat menggunakan jenis alat ini saat melakukan audit manual dengan menelusuri file kode sumber aplikasi Anda mencari string atau perintah tertentu yang mungkin mengindikasikan masalah.

Catatan: Analisis Statis TIDAK boleh digunakan sendiri karena terlalu banyak kesalahan positif ketika dilakukan secara manual menggunakan perintah grep / findstr. Biasanya hanya memberi tahu Anda apa yang sudah Anda ketahui, dan bukan hal-hal yang tidak Anda ketahui.

Keuntungan Analisis Kode Statis
  • Mengidentifikasi potensi kelemahan keamanan sejak dini, yang menghemat waktu dan uang di masa mendatang.
  • Memberikan titik awal yang baik untuk upaya peninjauan kode manual lebih lanjut.
  • Memberikan ikhtisar tingkat tinggi tentang basis kode Anda.
  • Dapat diotomatisasi dengan alat.
Kekurangan Analisis Kode Statis
  • Membutuhkan waktu lama untuk dijalankan jika tidak dilakukan dengan alat otomatisasi.
  • Tidak akurat saat digunakan di lingkungan runtime.
  • Alat otomatis bisa sangat bagus untuk mengotomatisasi tugas yang berulang, tetapi mungkin tidak mendukung setiap bahasa pemrograman.
Beranda Brakeman

2) Analisis Dinamis

Analisis dinamis adalah proses menjalankan kode dan melacak apa yang dilakukannya. Ini memberi Anda gambaran yang lebih baik tentang bagaimana aplikasi Anda berinteraksi dengan lingkungannya, yang dapat mengungkapkan potensi kelemahan dalam sistem.

Anda dapat menggunakan alat seperti Brakeman dan WebInspect (untuk aplikasi web) untuk mengidentifikasi kerentanan umum selama fase ini, serta menggunakan kumpulan aturan yang telah ditentukan sebelumnya yang mencakup beberapa jenis serangan, seperti injeksi SQL atau Cross-Site Scripting (XSS).

Anda juga dapat memantau hal-hal seperti header yang dikirim oleh server Anda, cookie yang digunakan untuk sesi, dll. Penting untuk dicatat bahwa mesin ini tidak akan menemukan semuanya! Mereka selalu meningkat, jadi pastikan untuk mengikuti pembaruan/catatan rilis mereka di Github.

Keuntungan Analisis Kode Dinamis
  • Ia bekerja di lingkungan runtime.
  • Anda dapat menemukan negatif palsu dalam analisis kode statis Anda.
  • Periksa analisis terhadap aplikasi langsung.

Kekurangan Analisis Kode Dinamis

  • Ini adalah tugas yang menakutkan untuk menemukan kerentanan dalam kode. Dibutuhkan waktu dan kesabaran, tetapi itu bisa dilakukan dengan usaha yang cukup!
  • Alat otomatis dalam analisis kode dinamis rentan terhadap kesalahan positif dan negatif.
  • Mereka memberikan rasa aman yang palsu.
Beranda Fokus Mikro

Pentingnya Melakukan Audit Keamanan

Sekarang setelah Anda memiliki gagasan yang lebih baik tentang apa itu audit keamanan, mari kita lihat mengapa itu penting. Ada beberapa alasan:

  • Mencegah kerusakan yang terjadi karena serangan atau peretasan pada aplikasi Anda. Anda dapat mencegah hal-hal semacam ini dengan menggunakan alat yang disebutkan di atas dalam posting blog ini! Itu tidak akan sempurna tetapi itu akan membantu!
  • Hindari denda karena melanggar kebijakan/peraturan, seperti GDPR (General Data Protection Regulation). Denda seperti ini dapat membuat Anda bangkrut jika tidak ditangani dengan benar.
  • Buat pelanggan senang ketika mereka melihat bahwa data mereka telah diamankan dari akses tidak sah dengan teknik enkripsi dll. Pelanggan ingin ketenangan pikiran mengetahui bahwa data mereka aman.
  • Tetap kompetitif di pasar dengan pendekatan “utamakan keamanan” akan selalu bermanfaat jika dilakukan dengan benar. Audit keamanan seharusnya tidak hanya dilakukan untuk lulus audit, tetapi karena itu adalah hal yang benar untuk dilakukan untuk aplikasi dan bisnis/pelanggan Anda!
  • Anda juga dapat membantu pengembang lain untuk melakukan audit keamanan pada kode mereka dengan menerbitkan temuan Anda secara publik sehingga mereka tahu masalah apa yang Anda temukan saat mengauditnya (jika ada). Ini membantu meningkatkan kualitas perangkat lunak secara keseluruhan di semua aplikasi karena alat ini open source dan tersedia untuk diunduh gratis. Hanya perlu satu orang untuk menemukan sesuatu yang salah sebelum orang lain mulai memperhatikan juga!
seseorang meretas komputer

Melakukan Audit Keamanan Anda Sendiri

Sekarang kita telah membahas mengapa melakukan audit keamanan itu penting, mari kita lihat bagaimana Anda dapat melakukan audit keamanan Anda sendiri!

Anda harus mulai dengan mengaudit buah yang menggantung rendah terlebih dahulu. Ini termasuk:

  • Keluar dan masuk sebagai administrator atau pengguna super untuk memastikan kredensial tidak di-cache di mana pun (file log, riwayat browser, dll).
  • Jalankan melalui akun admin default apa pun yang disertakan dengan aplikasi Anda, karena akun tersebut akan dapat diakses publik jika dibiarkan tidak berubah, seperti /admin/users.
  • Periksa kekuatan kata sandi berdasarkan aturan standar industri yang ditetapkan oleh NIST (Institut Standar & Teknologi Nasional) (jika menggunakan Rails, ini sudah ada di dalam Rancangan).

Terkait: Cangkang Aman Tingkat Lanjut: 6 Hal yang Dapat Anda Lakukan Dengan SSH.

seseorang yang membuat kode di komputer

FAQ

Apa saja masalah paling umum dalam aplikasi web?

Injeksi SQL, Cross-Site Scripting (XSS), fiksasi sesi, referensi objek langsung yang tidak aman, dll.

Apakah ada daftar periksa yang bisa saya lalui saat melakukan audit keamanan saya?

Ya ada! Buka OWASP (Open Web Application Security Project) dan unduh daftar periksa mereka untuk melakukan audit keamanan.

Apa sajakah sumber daya yang bagus untuk mempelajari tentang keamanan aplikasi web?

OWASP, Proyek Sepuluh Teratas OWASP, Ruang Baca Keamanan SANS (SysAdmin, Audit, Jaringan), dll.

Berapa lama waktu yang saya perlukan untuk melakukan audit keamanan saya sendiri?

Itu tergantung pada seberapa kompleks aplikasi Anda, tetapi Anda biasanya dapat menyelesaikan semua buah yang tergantung rendah dalam beberapa hari atau kurang tergantung pada kerumitannya.

Apakah ada titik di mana saya harus mengalihdayakan pekerjaan audit keamanan ini atau menyewa konsultan karena kerumitan aplikasi web saya?

Jika terlalu lama, atau jika Anda belum pernah melakukan jenis audit ini sebelumnya, mungkin masuk akal untuk mempertimbangkan untuk mempekerjakan seseorang yang memiliki keahlian khusus. Ini juga merupakan ide yang baik jika aplikasi Anda terlalu rumit untuk Anda lakukan sendiri.


Kesimpulan

Kesimpulannya, melakukan audit keamanan penting untuk memastikan kualitas kode dan melindungi dari akses yang tidak sah. Penting juga untuk dicatat bahwa alat ini TIDAK sempurna, jadi Anda harus selalu melakukan tes penetrasi manual sebagai tambahan!

Jika Anda menjalankan situs Anda di Joomla, maka Anda mungkin tertarik dengan daftar 20 tips keamanan kami untuk keamanan yang kokoh terhadap peretas!