Logo Zephyrnet

CircleCI – layanan pembuatan kode mengalami kompromi kredensial total

Tanggal:

Jika Anda seorang programmer, apakah Anda membuat kode untuk hobi atau profesional, Anda akan tahu bahwa membuat versi baru dari proyek Anda – versi “rilis” resmi yang akan Anda instal sendiri, atau teman Anda, atau pelanggan Anda. dan gunakan - selalu sedikit perjalanan buku putih.

Lagi pula, versi rilis bergantung pada semua kode Anda, bergantung pada semua pengaturan default Anda, keluar hanya dengan dokumentasi yang Anda terbitkan (tetapi tanpa pengetahuan orang dalam), dan perlu bekerja bahkan di komputer yang belum pernah Anda lihat sebelumnya, atur di konfigurasi yang tidak pernah Anda bayangkan, di samping perangkat lunak lain yang belum pernah Anda uji kompatibilitasnya.

Sederhananya, semakin kompleks sebuah proyek, dan semakin banyak pengembang yang Anda kerjakan, dan semakin banyak komponen terpisah yang harus bekerja dengan lancar dengan komponen lainnya…

… semakin besar kemungkinan keseluruhannya menjadi kurang mengesankan daripada jumlah bagian-bagiannya.

Sebagai analogi kasar, pertimbangkan bahwa tim lari dengan sprinter 100m individu tercepat tidak selalu memenangkan estafet 4x100m.

CI untuk menyelamatkan

Salah satu upaya untuk menghindari krisis "tetapi berhasil dengan baik di komputer saya" semacam ini adalah teknik yang dikenal dalam jargon sebagai Integrasi berkelanjutan, atau CI Singkatnya.

Idenya sederhana: setiap kali seseorang membuat perubahan di bagian proyek mereka, ambil kode baru orang itu, dan kocok kode baru mereka melalui siklus build-and-test penuh, seperti yang Anda lakukan sebelum membuat rilis final Versi: kapan.

Bangun lebih awal, sering bangun, bangun segalanya, bangun selalu!

Jelas, ini adalah kemewahan yang tidak dapat diambil oleh proyek di dunia fisik: jika Anda membangun, katakanlah, Sydney Harbour Bridge, Anda tidak dapat membangun kembali seluruh rentang pengujian, dengan bahan mentah yang sama sekali baru, setiap kali Anda memutuskan untuk men-tweak proses memukau atau untuk melihat apakah Anda dapat memasang tiang bendera yang lebih besar di puncak.

Bahkan ketika Anda "membangun" proyek perangkat lunak komputer dari sekumpulan file sumber menjadi kumpulan file keluaran, Anda menghabiskan sumber daya yang berharga, seperti listrik, dan Anda memerlukan lonjakan daya komputasi yang tiba-tiba untuk berjalan bersama semua komputer yang dikembangkan oleh pengembang. mereka sendiri gunakan.

Lagi pula, dalam proses rekayasa perangkat lunak yang menggunakan CI, idenya bukanlah menunggu sampai semua orang siap, dan kemudian semua orang mundur dari pemrograman dan menunggu pembangunan akhir selesai.

Build terjadi sepanjang hari, setiap hari, sehingga pembuat kode dapat mengetahui jauh sebelumnya jika mereka secara tidak sengaja membuat "perbaikan" yang berdampak negatif pada orang lain – merusak bangunan, seperti yang mungkin dikatakan jargon.

Idenya adalah: gagal lebih awal, perbaiki dengan cepat, tingkatkan kualitas, buat kemajuan yang dapat diprediksi, dan kirim tepat waktu.

Tentu, bahkan setelah uji coba yang sukses, kode baru Anda mungkin masih memiliki bug di dalamnya, tetapi setidaknya Anda tidak akan sampai ke akhir siklus pengembangan dan kemudian menemukan bahwa setiap orang harus kembali ke papan gambar hanya untuk mendapatkan perangkat lunak untuk membangun dan bekerja sama sekali, karena berbagai komponen telah keluar dari keselarasan.

Metode pengembangan perangkat lunak awal sering disebut sebagai berikut a model air terjun, di mana setiap orang bekerja secara harmonis tetapi mandiri saat proyek perlahan-lahan mengalir ke hilir di antara tenggat waktu versi, hingga semuanya menyatu di akhir siklus untuk membuat rilis baru, siap untuk terjun ke air terjun yang penuh gejolak dari peningkatan versi, hanya untuk muncul ke yang lain periode lembut air jernih di hilir untuk desain dan pengembangan lebih lanjut. Namun, satu masalah dengan "air terjun" itu adalah bahwa Anda sering terjebak dalam pusaran melingkar yang tampaknya tak berujung tepat di tepi air terjun, terlepas dari gravitasi, tidak dapat melewati bibir tebing sama sekali hingga peretasan yang lama dan modifikasi (dan overruns bersamaan) memungkinkan perjalanan selanjutnya.

Hanya pekerjaan untuk cloud

Seperti yang dapat Anda bayangkan, mengadopsi CI berarti memiliki banyak server yang kuat dan siap pakai yang Anda inginkan kapan pun pengembang Anda memicu prosedur build-and-test, untuk menghindari hanyut kembali ke "terjebak di situasi bibir air terjun”.

Kedengarannya seperti pekerjaan untuk cloud!

Dan, memang, dengan banyak yang disebut layanan cloud CI/CD (ini CD bukan disk musik yang dapat diputar, tetapi singkatan dari pengiriman terus menerus) menawarkan kepada Anda fleksibilitas untuk memiliki jumlah cabang yang berbeda dari produk yang berbeda melalui build yang dikonfigurasi secara berbeda, bahkan mungkin pada perangkat keras yang berbeda, pada waktu yang sama.

lingkaranCI adalah salah satu layanan berbasis cloud…

…tapi, sayangnya untuk pelanggan mereka, mereka baru saja mengalami pelanggaran.

Secara teknis, dan seperti yang umum terjadi akhir-akhir ini, perusahaan belum benar-benar menggunakan kata "pelanggaran", "intrusi", atau "serangan" di mana pun dalam pemberitahuan resminya: sejauh ini, ini hanyalah sebuah insiden keamanan.

Asli melihat [2023-01-04] hanya menyatakan bahwa:

Kami ingin memberi tahu Anda bahwa kami sedang menyelidiki insiden keamanan, dan penyelidikan kami sedang berlangsung. Kami akan memberi Anda pembaruan tentang insiden ini, dan tanggapan kami, saat tersedia. Pada titik ini, kami yakin bahwa tidak ada pelaku tidak sah yang aktif di sistem kami; namun, karena sangat berhati-hati, kami ingin memastikan bahwa semua pelanggan juga mengambil tindakan pencegahan tertentu untuk melindungi data Anda.

Apa yang harus dilakukan?

Sejak saat itu, CircleCI telah memberikan pembaruan rutin dan saran lebih lanjut, yang sebagian besar bermuara pada hal ini: “Silakan putar setiap dan semua rahasia yang tersimpan di CircleCI.”

Seperti yang sudah kami jelaskan sebelumnya, kata jargon memutar dipilih dengan buruk di sini, karena itu adalah warisan dari masa lalu yang berbahaya di mana orang benar-benar "memutar" kata sandi dan rahasia melalui sejumlah kecil pilihan yang dapat diprediksi, tidak hanya karena melacak yang baru lebih sulit saat itu, tetapi juga karena keamanan siber tidak tidak sepenting saat ini.

Yang dimaksud CircleCI adalah Anda perlu MENGUBAH semua kata sandi, rahasia, token akses, variabel lingkungan, pasangan kunci publik-swasta, dan seterusnya, mungkin karena penyerang yang melanggar jaringan memang mencuri milik Anda, atau tidak dapat dibuktikan tidak telah mencuri mereka.

Perusahaan memiliki disediakan daftar dari berbagai jenis data keamanan pribadi yang terpengaruh oleh pelanggaran tersebut, dan telah membuat skrip praktis bernama CircleCI-Env-Inspektur yang dapat Anda gunakan untuk mengekspor daftar berformat JSON dari semua rahasia CI yang perlu Anda ubah di lingkungan Anda.

Selain itu, penjahat dunia maya sekarang mungkin memiliki token akses dan kunci kriptografi yang dapat memberi mereka jalan kembali ke jaringan Anda sendiri, terutama karena proses pembangunan CI terkadang perlu "menelepon ke rumah" untuk meminta kode atau data yang tidak dapat atau tidak Anda inginkan untuk mengunggah ke cloud (skrip yang melakukan ini dikenal dalam jargon sebagai pelari).

Jadi, CircleCI menyarankan:

Kami juga menyarankan pelanggan meninjau log internal untuk sistem mereka untuk setiap akses tidak sah mulai dari 2022-12-21 [hingga dan termasuk 2023-01-04], atau setelah selesai [mengubah rahasia Anda].

Menariknya, jika dapat dimengerti, beberapa pelanggan telah mencatat bahwa tanggal yang tersirat oleh CircleCI di mana pelanggaran ini dimulai [2022-12-21] kebetulan bertepatan dengan posting blog perusahaan diterbitkan tentang pembaruan keandalan terkini.

Pelanggan ingin tahu, “Apakah pelanggaran tersebut terkait dengan bug yang diperkenalkan dalam pembaruan ini?”

Mengingat bahwa artikel pembaruan keandalan perusahaan tampaknya merupakan ringkasan berita bergulir, daripada pengumuman perubahan individu yang dibuat pada tanggal tertentu, jawaban yang jelas adalah, "Tidak"…

…dan CircleCI telah menyatakan bahwa tanggal kebetulan 2022-12-21 untuk posting blog reliabilitas hanyalah: sebuah kebetulan.

Selamat keyregenning!


tempat_img

Intelijen Terbaru

tempat_img