Mengamankan aplikasi bisnis perusahaan | Manila Times

SETIAP kali, saya berkumpul dengan sekelompok teman untuk mengadakan barbekyu, menonton pertandingan, atau makan malam. Kami sering membicarakan pekerjaan dan karier kami; satu teman insinyur mesin pesawat, yang lain mengelola logistik di perusahaan eCommerce, dan yang lain dalam perawatan kesehatan. Dan meskipun kita semua memiliki serangkaian pengalaman profesional dan pukulan kartu yang berbeda di berbagai industri, ada satu kesamaan yang kita semua miliki: kita semua bekerja untuk perusahaan perangkat lunak.

Sekarang era transformasi digital telah berjalan, sebuah perusahaan tidak perlu memiliki perangkat lunak dalam portofolio produknya untuk menjadi perusahaan perangkat lunak. Banyak organisasi di setiap industri mengandalkan aplikasi untuk memungkinkan bisnis mereka, menjangkau pelanggan mereka, dan menjalankan operasi sehari-hari mereka. Lebih sering daripada tidak, perusahaan-perusahaan ini mengembangkan sebagian besar aplikasi ini secara internal. Pikirkan tentang situs web yang Anda gunakan untuk memesan kebutuhan rumah tangga Anda secara online, atau aplikasi seluler yang Anda gunakan untuk menyetor cek ke rekening bank Anda. Ini bukan perangkat lunak yang dijual oleh perusahaan eCommerce atau bank, tetapi tentu saja memainkan peran penting dalam cara mereka melakukan bisnis.

Sifat kompleks aplikasi perusahaan

Namun, menjadi perusahaan perangkat lunak datang dengan tanggung jawab tambahan. Seperti halnya perusahaan perangkat lunak tradisional, organisasi-organisasi ini harus mendedikasikan banyak upaya untuk memelihara dan mengamankan aplikasi yang mereka bangun dan operasikan. Namun, mengingat susunan dan pengiriman yang kompleks dari perangkat lunak ini, ini bukanlah hal yang mudah.

Bagian yang berbeda dari tumpukan teknologi kemungkinan besar akan dibangun oleh tim yang berbeda, masing-masing menggunakan berbagai bahasa dan kerangka kerja, dan masing-masing terdiri dari kombinasi kode sumber terbuka dan berpemilik dan pihak ketiga. Kemungkinan besar, aplikasi yang dihasilkan akan dipotong menjadi layanan mikro, dikemas dan disebarkan ke server yang tidak dimiliki oleh perusahaan, dan dapat diakses oleh konsumen melalui serangkaian API.

Dapatkan berita terbaru


dikirim ke kotak masuk Anda

Daftar untuk buletin harian The Manila Times

Dengan mendaftar menggunakan alamat email, saya menyatakan bahwa saya telah membaca dan menyetujui Persyaratan Layanan dan Kebijakan Privasi.

Ini semua membuat permukaan serangan yang sangat luas. Mengurangi risiko yang terkait dengan aplikasi kompleks seperti ini memerlukan pengamanan setiap komponen di setiap tahap siklus hidup. Dengan demikian, semakin banyak organisasi yang mengadopsi program manajemen risiko rantai pasokan perangkat lunak untuk mendapatkan visibilitas dan kontrol maksimum dari perangkat lunak yang mereka konsumsi, bangun, dan operasikan. Tapi apa yang membuat program seperti ini efektif?

Kebutuhan keamanan

Laporan “Critical Capabilities for Application Security Testing” (AST) 2022 oleh Gartner merinci alat dan proses yang diperlukan untuk mengamankan aplikasi perusahaan. Dengan menerapkan kemampuan kritis ini secara komplementer, organisasi akan menemukan diri mereka paling siap untuk mengatasi risiko yang diperkenalkan di setiap simpul rantai pasokan perangkat lunak mereka.

Kemampuan pertama, dan paling penting, adalah mengamankan dependensi eksternal, seperti kode sumber terbuka dan pihak ketiga. Menurut definisi, dependensi ini dikembangkan oleh orang lain, menggunakan praktik dan alat di luar kendali perusahaan Anda. Sangat penting untuk mengidentifikasi dependensi ini dalam basis kode Anda, memelihara inventaris dinamisnya, dan menggunakannya untuk melacak kerentanan terkait dan kewajiban lisensi. Satu-satunya cara untuk melakukan ini secara efektif dan efisien adalah dengan alat analisis komposisi perangkat lunak (SCA).

Kode eksternal bukan satu-satunya perhatian Anda. Anda dapat menambal setiap kerentanan open source pada hari itu diungkapkan (jika itu mungkin), tetapi jika pengembang Anda tidak mengkodekan dengan aman, upaya Anda sia-sia. Namun, kelemahan keamanan yang diperkenalkan oleh pengembang bisa jadi agak rumit dan sulit dikenali dalam tinjauan kode, bahkan oleh mata yang terlatih. Pengujian keamanan aplikasi statis (SAST) menganalisis aplikasi untuk menemukan potensi kerentanan secara otomatis, itulah sebabnya SAST dianggap sebagai salah satu kemampuan paling penting.

Jika Anda berpikir menyerahkan alat AST kepada insinyur yang dirancang untuk tim keamanan adalah jawabannya, saya punya kabar buruk untuk Anda. Untuk benar-benar menjadikan pengembang sebagai garis pertahanan pertama dalam mengamankan rantai pasokan Anda, sangat penting untuk mengintegrasikan tata kelola sumber terbuka ke dalam alat dan alur kerja pengembang. Alat pemberdayaan pengembang seperti plugin IDE, umpan balik risiko yang dapat ditindaklanjuti, dan bantuan pendidikan dan pelatihan dalam upaya menggeser keamanan ke kiri.

Dan integrasi tidak boleh berhenti pada fase pengembangan. API dan plugin ke sistem kontrol versi, sistem build, alat penerapan, dan alat tiket adalah beberapa integrasi siklus hidup yang diperlukan untuk mengintegrasikan pengujian keamanan aplikasi secara mulus ke dalam seluruh siklus hidup pengembangan perangkat lunak.

Meskipun Gartner merinci kemampuan tambahan, empat yang tercantum di atas membuat lebih dari setengah bobot kekritisan yang ditetapkan dalam laporan. Seperti biasanya dalam keamanan aplikasi, tidak ada pendekatan “satu ukuran cocok untuk semua”. Bisnis Anda akan memiliki kebutuhan, alur kerja, dan toleransi risiko yang unik.

Mike McGuire adalah manajer pemasaran produk di Synopsys Software Integrity Group.