Teknologi

Cara Keamanan Cyber: Ini semua tentang pengembang, kecuali jika tidak

Oleh: Jonathan Knudsen, Ahli Strategi Keamanan Senior di Synopsys Software Integrity Group

Cara Keamanan Cyber: Ini semua tentang pengembang, kecuali jika tidak

Untuk mendapatkan hasil pengujian keamanan di depan pengembang, yang berada dalam posisi terbaik untuk mengatasinya secara efektif, Anda memerlukan otomatisasi dan integrasi.

Keamanan produk itu sulit. Tujuannya adalah untuk meminimalkan risiko dengan menemukan dan memperbaiki kerentanan sebanyak mungkin.

Pengembang membuat kerentanan. Kerentanan lahir setiap kali pengembang tidak menangani kasus sudut dengan benar atau lupa memvalidasi beberapa input, atau membuat kesalahan lain.

Mengetahui hal ini, Anda dapat dengan cepat menggunakan logika untuk sampai pada kesimpulan yang sama sekali salah:

  • Pengembang membuat kerentanan.
  • Kerentanan meningkatkan risiko.
  • Oleh karena itu, untuk mengurangi risiko, mari kita membuatnya sehingga pengembang tidak akan membuat kesalahan. Kami akan menggunakan kombinasi mempermalukan publik dan pendidikan keamanan.

Masalahnya bukan karena pengembang tidak menyadari keamanan, atau tidak tertarik. Yah, kadang-kadang itu masalahnya, tetapi lebih lanjut tentang itu nanti. Alasan sebenarnya pengembang membuat kerentanan adalah karena mereka adalah manusia. Alasan kerentanan ini bertahan dalam produk yang dirilis adalah bahwa pengembang bekerja di dalam sistem yang rusak.

Pengembang benar-benar bintang rock

Dengan lidah di pipi, kita kadang-kadang mengatakan bahwa pengembang adalah bintang rock. Analoginya masuk akal. Misalkan Anda pergi menonton konser Jonas Brothers. (Saya tidak tahu mengapa. Itu hanya hipotetis.) Jonas Brothers adalah pengembang dalam skenario ini. Sementara mereka membawa bakat mereka sendiri ke acara tersebut, itu tidak akan menjadi pengalaman tanpa instrumentalis di band, teknisi pencahayaan, orang-orang suara, penjual tiket, orang-orang yang mengurus tempat tersebut, dan sebagainya. Pemain tidak dapat berhasil jika mereka tidak ditempatkan di lingkungan yang membantu mereka sukses.

Demikian juga, jika Anda ingin meminimalkan risiko dalam produk yang Anda buat, Anda harus mengelilingi pengembang Anda dengan proses yang membantu mereka sukses.

Sistem rusak

Sayangnya, pengembang dilatih untuk menghargai fungsionalitas di atas segalanya. Pikirkan tentang itu. Ketika mahasiswa sarjana ilmu komputer harus mengerjakan pekerjaan rumah, mereka mulai dengan daftar persyaratan, tugas itu sendiri. Mereka menggunakan apa pun yang bisa mereka dapatkan untuk memenuhi persyaratan. Di luar itu, beberapa tugas memiliki tes otomatis yang juga harus dilalui. Para siswa hanya berfokus pada penyediaan fungsionalitas yang diperlukan.

Maju cepat ke tempat kerja, di mana ceritanya hampir sama. Pengembang mulai dengan daftar persyaratan, yang dibuat oleh manajer produk atau desainer. Mereka menggunakan apa pun yang bisa mereka dapatkan untuk memenuhi persyaratan. Di luar itu, mereka mungkin harus lulus beberapa tes otomatis. Pengembang hanya berfokus pada penyediaan fungsionalitas yang diperlukan.

Ini mirip dengan meminta seseorang yang baru saja belajar cara memakukan dua potong kayu bersama-sama untuk membangun rumah. Apakah Anda merasa aman berjalan-jalan di lantai atas? Apakah dinding akan tetap terjaga dalam angin kencang?

Dengan alat yang tepat, pengembang dapat menjadi aset terbesar Anda

Melalui kombinasi pelatihan keamanan yang intens dan program hukuman berat untuk kerentanan keamanan, kita harus dapat membuat pengembang menulis kode yang lebih baik, bukan?

hampir.

Pelatihan keamanan adalah ide yang bagus. Di antara manfaat lainnya, pelatihan keamanan akan membantu pengembang menulis kode yang lebih baik. Tetapi tidak peduli berapa banyak pelatihan yang didapat pengembang Anda, mereka tetaplah manusia dan masih akan membuat kesalahan.

Kuncinya adalah meningkatkan proses dan memberi pengembang Anda alat yang tepat. Alih-alih meminta pengembang hanya berfokus pada rintangan fungsional, tambahkan alat pengujian keamanan ke dalam proses pembuatan dan pengujian otomatis. Dengan integrasi yang tepat, pengembang dapat bekerja dari daftar tugas yang sama yang telah mereka gunakan (kemungkinan Jira) dan memperbaiki masalah fungsional dan keamanan dalam alur kerja lancar yang sama.

Alat yang tepat

Banyak tim pengembangan produk memulai perjalanan ini menggunakan analisis sumber, kadang-kadang juga dikenal sebagai analisis statis atau SAST. Alat analisis sumber memeriksa kode sumber Anda dan melaporkan kemungkinan bug. Misalnya, Coverity adalah solusi analisis sumber terkemuka di industri. Anda dapat dengan mudah mengintegrasikan analisis Coverity ke dalam build otomatis yang ada, lalu memasukkan masalah yang diidentifikasi ke pelacak masalah Anda. Coverity bahkan dapat menetapkan masalah kepada pengembang secara otomatis berdasarkan informasi dalam sistem manajemen kode sumber Anda (misalnya, git).

Analisis rantai pasokan, juga dikenal sebagai analisis komposisi perangkat lunak, adalah alat lain yang berguna dan berdampak tinggi yang dapat Anda integrasikan dengan mudah ke dalam alur kerja yang ada. Black Duck adalah solusi analisis rantai pasokan utama. Ini membangun daftar lengkap komponen pihak ketiga yang telah Anda gunakan dan membantu Anda mengelola risiko keamanan dan risiko kepatuhan lisensi. Anda juga dapat dengan mudah mengintegrasikan Black Duck ke dalam proses pembuatan otomatis yang ada sehingga dapat menandai kerentanan yang diketahui dan pelanggaran kebijakan lisensi di pelacak masalah reguler Anda.

Anda dapat mengintegrasikan jenis alat pengujian keamanan lainnya ke dalam pipeline yang ada, termasuk IAST(Seeker), fuzzing (Defensics), dan DAST (Tinfoil). Ketika manusia berburu kerentanan, itu adalah pekerjaan yang lambat dan mahal. Salah satu cara Anda dapat mengendalikan risiko secara efektif adalah dengan menggunakan alat keamanan otomatis sebanyak mungkin untuk memaksimalkan investasi keamanan Anda.

Bagi kita yang tidak sabar

Mengintegrasikan ke proses yang ada sangat baik, tetapi pikirkan tentang siklus hidup kerentanan:

  • Pengembang membuat kesalahan dan menciptakan kerentanan.
  • Pembangunan malam terjadi, termasuk pengujian keamanan.
  • Pengujian keamanan mengamati kerentanan dan menciptakan masalah di pelacak masalah.
  • Pengembang merespons masalah dengan memperbaiki kerentanan.

Waktu pulang-pergi adalah 12 – 24 jam dalam keadaan terbaik, yang sangat bagus.

Namun, untuk benar-benar mengoptimalkan pengalaman pengembang, bayangkan jika kita bisa mendapatkan hasil pengujian keamanan yang dikirimkan langsung ke pengembang saat mereka menulis kode.

Plugin Code Sight™ mewujudkannya. Pengembang melakukan pekerjaan mereka di lingkungan pengembangan terintegrasi (IDE) seperti IntelliJ atau Visual Studio. Plugin Code Sight diinstal ke IDE dan menunjukkan informasi dari alat pengujian keamanan di IDE. Code Sight bahkan dapat menggunakan teknologi Coverity untuk menunjukkan kesalahan pengkodean saat ditulis. Ini seperti ketika Anda salah mengeja kata dalam pengolah kata Anda, dan itu memberi Anda garis merah berlekuk-lekuk untuk menunjukkan kepada Anda apa yang harus diperbaiki. Saat melaporkan kerentanan atau masalah lainnya, Code Sight juga menampilkan tautan yang relevan ke pembelajaran keamanan untuk memberi pengembang semua konteks dan pengetahuan yang mereka butuhkan untuk memperbaiki masalah.

Biarkan pengembang menjadi pengembang

Pengembang adalah jantung kreatif dari organisasi produk Anda. Bagian dari pekerjaan untuk beralih ke siklus hidup pengembangan yang aman adalah mencoba meminimalkan gangguan pada organisasi Anda. Meskipun penting untuk memberikan pendidikan keamanan kepada semua orang di organisasi, termasuk pengembang, Anda tidak dapat berharap bahwa pengembang akan mulai menulis kode yang bebas dari kerentanan.

Kunci untuk menerapkan pengujian keamanan secara efektif adalah integrasi dan otomatisasi. Pengujian keamanan harus terjadi secara otomatis, dan harus bekerja dengan proses yang ada. Pengembang berada di pusat tarian ini, jadi penting untuk mendapatkan hasil pengujian keamanan di depan pengembang seperti yang Anda lakukan dengan jenis hasil pengujian lainnya. Mengintegrasikan dengan alur build yang ada dan sistem pelacakan masalah memberikan visibilitas ini, dan solusi berbasis IDE seperti Code Sight memberikan loop umpan balik yang lebih ketat, mempercepat proses pengembangan aman Anda. Dengan alat yang tepat, pengembang akan membantu tim Anda menciptakan produk yang lebih aman, lebih kuat, dan lebih baik.

LEAVE A RESPONSE

Your email address will not be published. Required fields are marked *