Pust-puff dan pentest



Pendekatan modern terhadap keamanan informasi



Saya menyukai keamanan informasi. Di satu sisi, bisnis sering kali memerlukan peluncuran prototipe setengah matang, yang diterapkan sekali dalam satu jam. Di sisi lain, itu adalah benteng petugas keamanan informasi yang keras dan tidak dapat didekati. Semuanya tergantung mereka. Dan bahkan perkembangan di bidang IoT, di mana S adalah keamanan, menjadi semakin andal di bawah pengawasan mereka.



Isu kunci dalam memperkirakan lubang diameterlubang proses dalam produk Anda adalah waktu. Saya ingin sekali lagi berbicara sedikit tentang piramida pengujian klasik, tetapi dalam konteks keamanan informasi. Dan saya juga akan mencoba untuk berbagi pengalaman saya dalam mengatur pembangunan proses yang nyaman, ketika pengembang tidak menunggu selama berminggu-minggu untuk persetujuan dari keamanan informasi, dan perangkat lunak tidak bersinar dengan semua kemungkinan kerentanan ke dunia luar.Spoiler: dapat diluncurkan tanpa persetujuan.



Dan daftar. Semua orang menyukai daftar. Saya akan memberikan seperangkat kecil perangkat lunak yang diperlukan, yang sangat mencerahkan kehidupan sehari-hari saya.



Jika ada sesuatu yang membosankan, Anda perlu mengotomatiskan





Piramida pengujian klasik. Di suatu tempat di bagian bawah terdapat banyak pengujian unit yang mencakup segala macam hal kecil, seperti memastikan aplikasi tidak mogok jika pengguna memasukkan kata sandi Hindi mereka. Atau mengirimkan sesuatu yang aneh. Dan kemudian ada preseden dengan "لُلُصّبُلُلصّبُررً ॣ ॣ h ॣ ॣ 冗" di iPhone, jika Anda ingat. Jenis pengujian ini bagus untuk otomatisasi, tetapi hanya mencakup kasus-kasus sempit yang sering kali gagal memberikan gambaran lengkap dan keyakinan bahwa aplikasi tidak akan mengalir di tempat yang tidak terduga.



Di bagian paling atas, ini sudah pengujian manual sepenuhnya. Selain memeriksa kasing standar, ini dapat memberikan "kreativitas gratis", ketika seorang spesialis diberi tugas untuk memecahkan sesuatu dengan cara yang eksotis sesuai dengan keinginannya. Seperti biasa, jenis kreativitas ini mengarah pada fakta bahwa jenis tes ini juga yang paling mahal. Tidak hanya dalam hal uang, tetapi juga waktu-ke-pasar yang terkenal, ketika Anda perlu meluncurkan fitur-fitur baru tepat-kemarin-pada-rapat-sudah-dijanjikan.



Masalah tradisional yang dihadapi oleh banyak perusahaan adalah koordinasi yang panjang dan menyedihkan dengan keamanan informasi pada setiap item. Bukan karena mereka sangat marah dan tidak ramah. Hanya saja, tugas mereka adalah meminimalkan risiko. Jadi, mereka meminimalkan sebanyak yang mereka bisa, sekaligus menghentikan setengah dari proses di kemacetan pemeriksaan mereka. Sebenarnya, di masa pra-Penjara, ketika Anda perlahan bisa memoles kode Anda, ini berhasil. Dan sekarang 47 prototipe setengah matang dari pesaing dengan pembuat kode monyet sudah akan dirilis ke solusi Anda yang telah dipoles dari versi pertama. Dan itu saja. Anda sudah kehilangan pasar, semua pengguna terjebak di Tick-Tock lain.



Pipa untuk semuanya



Faktanya, masalah yang paling sering muncul adalah integrasi yang buruk dari proses keamanan informasi ke dalam jaringan pipa yang sudah dikenal oleh pengembang. Untuk beberapa alasan, setiap dorongan disertai dengan banyak pemeriksaan dari flake8 dan mypy yang sama, itu dirakit menjadi paket itu sendiri, diunggah ke wadah pelari GitLab dan dengan senang hati terbang pergi diuji di Artifactory. Atau gagal satu tahap dan kembali untuk revisi.



Dan hanya keamanan informasi yang sering berada di bawah kaca pembesar dengan tangannya setiap rilis, membalik-balik kode dan menusuk tongkat ke port terbuka aplikasi. Menurut saya, salah satu solusi terbaik adalah memindahkan bagian utama pemeriksaan keamanan ke dalam proses otomatis, dan membatasi pengujian manual tepat waktu. IB memiliki hak veto jika mereka menemukan kerentanan kritis, tetapi secara default aplikasi akan langsung diproduksi jika tidak ada keberatan dari pihak mereka. Kedengarannya menakutkan pada pandangan pertama, tetapi struktur proses seperti itu memotivasi untuk mengotomatiskan semua prosedur rutin sebanyak mungkin dan menghabiskan waktu hanya untuk hal-hal yang sangat rumit.



Singkatan seperti DevSecOps dan TriCeraTops lainnya membuat saya sedikit takut, tetapi inilah yang paling sering perlu diatur untuk mengurangi biaya waktu. Mari kita lihat contoh python. Layak dimulai dengan linter. Saya pikir hampir semua orang telah mengacaukan beberapa varian linter dasar seperti flake8 dan mypy. Saya masih akan merekomendasikan versi tambahan dari flake8 - wemake-python-styleguide.



Ini dipasang dan dimulai secara tradisional:



pip install wemake-python-styleguide
flake8 your_module.py


Masalah utama dengan linter ini adalah dapat membuat Anda ingin merusak monitor dengan keyboard pada awalnya. Terutama dalam proyek lama, lebih mudah untuk membakar daripada memperbaikinya. Namun demikian, jika Anda mengecualikan pemeriksaan yang tidak perlu, Anda akan mendapatkan kontrol yang agak ketat atas kualitas kode yang mendasarinya.



Setelah kita memeriksa kode itu sendiri untuk konstruksi bengkok, keterbacaan yang buruk dan kompleksitas siklomatik tinggi, kita harus menjalankan linter keamanan statis. Ya, dalam bahasa yang diketik secara longgar, linter seperti itu tidak begitu baik, tetapi memungkinkan Anda untuk mengidentifikasi masalah umum seperti password = 'qwerty123' dalam kode. Anda dapat menggunakan bandit yang sama di sini .



Ini semua berfungsi dengan baik, tetapi masalah dengan solusi gratis paling sering terjadi pada database kerentanan yang kurang mutakhir. Seringkali masuk akal untuk menambahkan sesuatu yang lain sepertikeamanan .



gambar


Sumber



Opsi pembayaran serupa biasanya terintegrasi sempurna dengan GitLab perusahaan yang sama.

Karena itu, biasanya ada output informatif yang bagus ke konsol:



safety check --full-report





Idealnya, setelah semua manipulasi, Anda harus memiliki pipeline lengkap, di mana Anda selangkah demi selangkah memeriksa semua persyaratan keamanan untuk aplikasi Anda.



gambar


Sumber



Pemeriksaan umum: pemeriksaan



rahasia git - periksa tidak adanya rahasia terbuka dalam kode

SCA - periksa apakah dependensi dan pustaka eksternal bebas dari kerentanan. Penting jika Anda membekukan versi lama pustaka

SAST - analisis kode statis untuk kerentanan.

Audit penampung - audit gambar penampung yang akan digunakan untuk penerapan. Mereka juga seringkali penuh dengan lubang. Apalagi jika Anda menggunakan sandwich eksotis dari banyak lapisan beraneka ragam.

DAST - penerapan aplikasi, registrasi, login sebagai pengguna yang sah dan melakukan serangan tipikal di front-end



Apa yang tersisa untuk keamanan informasi



Sekarang setelah kita melepaskan makhluk daging yang tidak berguna dari manusia dari pekerjaan rutin, kita dapat mentransfer tugas-tugas yang membutuhkan pendekatan yang benar-benar kreatif kepada mereka.



Akan ada gudang alat awet muda yang sama untuk analisis, pengujian jaringan dan menebak kata sandi. Wireshark, hashcat, Hydra, dan utilitas lainnya tidak pernah dihentikan.



Tetapi bahkan di antara alat yang sudah dikenal, sesuatu yang baru dan terkadang cukup berguna muncul. Saya akan menyarankan untuk memperhatikan beberapa di antaranya.



Nikto2



github.com/sullo/nikto

Nikto adalah pemindai server web open source. Dia tidak diam sama sekali. Serius, jika Anda meluncurkannya dari tempat kerja dan selama 15 menit Anda tetap tidak berbaring telungkup di lantai dikelilingi oleh petugas keamanan, maka Anda mengalami masalah dengan deteksi intrusi.



Perangkat lunak ini melakukan pengujian kompleks pada server web untuk banyak elemen, termasuk lebih dari 6700 file / program yang berpotensi berbahaya. Ini juga memeriksa item konfigurasi server seperti pengaturan server HTTP dan mencoba mengidentifikasi server web dan perangkat lunak yang diinstal. Item pindai dan plugin sering diperbarui dan dapat diperbarui secara otomatis.



Fuzzdb



Ini juga merupakan alat yang sangat keren untuk serangan otomatis pada aplikasi web menggunakan pola dan kerentanan yang khas. Dia dengan senang hati akan membombardir aplikasi Anda dengan banyak serangan standar dan pada saat yang sama memeriksa apakah Anda lupa menutupi akses ke panel admin dan file log dengan hak yang dikurangi. Memungkinkan Anda untuk meredakan banyak sakit kepala dan pemeriksaan rutin.



Nmap + Vulners





Vulners adalah agregator dari semua jenis CVE, buletin keamanan vendor, eksploitasi di Metasploit, dan hanya hasil dari menangkap kerentanan secara manual di forum tematik. Pada dasarnya, mereka menyediakan API untuk menanyakan database mereka. Saya hanya terpikat oleh plugin mereka untuk nmap terkenal, yang langsung memberikan penggemar vektor serangan siap pakai untuk layanan web. Saya sangat merekomendasikan untuk melihat lebih dekat.



Sesuatu seperti keluaran





Kematian bagi manusia - kemuliaan bagi robot!



Tapi serius, cobalah untuk meminimalkan rutinitas dan meneruskannya kepada orang yang benar-benar harus melakukannya - skrip dan saluran pipa tanpa jiwa. Dan biarkan orang terlibat dalam kreativitas. Ini lebih benar.










All Articles