Homebrew 6.0 Baru Saja Mengubah Cara Mac Anda Menginstal Perangkat Lunak

BBetter Stack
Computing/SoftwareInternet Technology

Transcript

00:00:00Beberapa bulan lalu di kanal ini, kami membuat video yang pada dasarnya menyebut Homebrew
00:00:05sebagai perkakas Zaman Batu yang kita gunakan hanya karena Nix jauh lebih unggul darinya. Jadi adil saja jika saya
00:00:12kembali ke sini untuk memberi tahu Anda hal ini. Perkakas Zaman Batu yang kita gunakan itu baru saja merilis versi mayor pertamanya
00:00:17setelah bertahun-tahun, yaitu Homebrew 6.0. Dan inilah kabar besarnya. Sorotan utamanya bukanlah tumpukan fitur baru,
00:00:23melainkan perombakan keamanan secara menyeluruh. Homebrew kini telah berbenah dan dewasa.
00:00:30Sekarang, izinkan saya menjelaskan apa yang sebenarnya berubah, karena ini jauh lebih menarik daripada sekadar kenaikan nomor
00:00:38versi. Hampir di sepanjang keberadaan Homebrew, saat Anda menambahkan tap pihak ketiga—yaitu repositori paket milik orang lain—
00:00:45Homebrew akan langsung menjalankan kode Ruby mereka begitu saja. Langsung mengeksekusi kode tersebut. Tap mana pun,
00:00:51kode sembarang apa pun, tanpa dipertanyakan sama sekali. Coba renungkan dunia tempat kita berada saat ini.
00:00:56Manajer paket adalah target utama serangan rantai pasokan (supply chain) saat ini. NPM, dan semuanya
00:01:01diserang secara terus-menerus. Sekadar menjalankan kode apa pun yang diberikan repositori adalah setelan bawaan yang buruk. Dan fitur baru
00:01:08Homebrew 6.0 hadir untuk menghentikan itu. Fitur ini disebut Tap Trust. Jika Anda menyukai kiat dan trik pemrograman seperti ini,
00:01:15pastikan untuk berlangganan. Kami selalu merilis video setiap saat. Namun, mari kita mulai dari bagian yang benar-benar
00:01:19akan Anda rasakan setiap hari. Perintah “brew version”. Nah, itu dia, 6.0. Sekarang, perhatikan apa yang terjadi saat saya menginstal
00:01:25sesuatu yang menarik beberapa dependensi. Alih-alih berjalan secara diam-diam, Brew kini memaparkan
00:01:31ringkasan dari semua hal yang akan diinstalnya dan menunggu saya memberikan konfirmasi “ya”. Itulah mode Ask baru,
00:01:38dan mode ini aktif secara bawaan untuk pengembang sekarang. Perubahan kecil, tetapi ini berarti Anda selalu melihat rencananya sebelum Brew
00:01:44melakukan apa pun pada sistem kita. Sekarang masuk ke perubahan besar: Tap Trust. Perhatikan saat saya menambahkan tap pihak ketiga.
00:01:50Homebrew langsung menghentikan saya. Homebrew memberi tahu bahwa tap ini belum dipercayai, dan tidak akan menjalankan sebaris kode pun
00:01:56sampai saya secara eksplisit menyetujuinya. Saya harus mempercayainya secara sengaja dengan perintah “brew trust”, dan barulah setelah itu kodenya
00:02:03dieksekusi. Tap resmi Homebrew sudah dipercayai secara langsung sejak awal. Jadi alur penggunaan Brew harian Anda
00:02:09tetap sama persis. Namun, tap meragukan dari orang tak dikenal di GitHub yang Anda temukan di file readme,
00:02:16sekarang seperti pintu yang terkunci. Anda harus menyetujuinya secara manual. Dan sejujurnya,
00:02:20itu adalah keputusan yang sangat bagus untuk kondisi saat ini. Dan ini bukanlah satu-satunya peningkatan utama di sini.
00:02:25Sistem metadata internal kini menjadi standar bawaan, yang berarti semua informasi paket Anda diunduh dalam satu
00:02:30proses unduhan yang bersih, bukan melalui puluhan permintaan jaringan kecil. Jadi perintah “brew update” kini jauh lebih cepat. Ada juga
00:02:37perintah yang benar-benar baru, yaitu “brew execute”, yang pada dasarnya beroperasi seperti npx untuk Homebrew. Menjalankan suatu perkakas sekali tanpa
00:02:45perlu menginstalnya secara permanen di sistem Anda. Ada juga “brew vulns”, yang memindai paket-paket yang sudah terinstal
00:02:51terhadap masalah keamanan dan peringatan risiko yang diketahui. Dan versi 6.0 ini diam-diam menambal tiga celah keamanan, termasuk celah yang dapat menjalankan
00:02:58kode sebagai root melalui paket penginstal Mac. Ini adalah rilis dengan pendirian yang kuat. Baiklah. Sekarang inilah
00:03:04kendala dari semua ini. Dan bagi sebagian dari Anda, ini bisa menjadi masalah besar. Jadi saya akan langsung menyampaikannya kepada Anda.
00:03:09Tap Trust adalah perubahan yang memicu kompatibilitas (breaking change). Jika Anda memiliki alur kerja CI yang mengandalkan tap pihak ketiga,
00:03:14perintah “brew doctor” sekarang akan menampilkan galat begitu mendeteksi tap yang belum dipercayai. Dan ada begitu banyak GitHub
00:03:20Actions standar yang menjalankan “brew doctor” sebagai langkah paling awal mereka. Akibatnya, saat orang melakukan pembaruan, proses build mereka langsung gagal.
00:03:28Solusinya adalah menandai tap tersebut sebagai terpercaya di konfigurasi Anda, tetapi Anda harus melakukannya sendiri secara manual.
00:03:35Tidak akan ada yang melakukannya untuk Anda. Begitu pula dengan mode Ask. Jika Anda memiliki skrip yang berasumsi
00:03:41Brew akan menginstal tanpa meminta konfirmasi, permintaan baru tersebut dapat membuat skrip Anda menggantung selamanya. Mengenai gambaran keseluruhannya,
00:03:46jika Anda hanya pengguna biasa yang menginstal aplikasi sehari-hari, perubahan ini hampir tidak terlihat bedanya.
00:03:51Ini adalah rilis keamanan dan arsitektur, bukan sekadar pembaruan tampilan luar. Satu mitos cepat di sini juga.
00:03:58Banyak hal yang sedang ditulis ulang dalam Rust. Tidak, Homebrew tidak ditulis ulang dalam Rust,
00:04:04setidaknya tidak untuk saat ini. Itu hanyalah sebuah eksperimen. Fokusnya kini kembali sepenuhnya pada basis kode Ruby seperti
00:04:10sebelumnya. Jadi, apakah Anda harus memperbarui ke Homebrew 6.0? Bagi hampir semua orang, jawabannya adalah ya.
00:04:16Anda mendapatkan tiga perbaikan keamanan dan sejujurnya, perintah “brew update” akan mengalihkan Anda ke versi 6.0,
00:04:22baik Anda merencanakannya ataupun tidak. Pengguna yang mungkin perlu sedikit menahan diri di sini adalah
00:04:27siapa saja yang menjalankan alur kerja CI yang terhubung ke tap pihak ketiga atau otomatisasi yang mengharapkan instalasi tanpa konfirmasi. Tangani hal itu
00:04:33terlebih dahulu, dan Anda akan aman. Dan jika Anda masih menggunakan Mac berprosesor Intel, perhatikan hal ini. Versi 6.0 menjelaskan linimasa untuk
00:04:40menghentikan dukungan Intel dalam beberapa tahun ke depan. Untuk pengguna Apple Silicon, yaitu komputer-komputer baru,
00:04:46kita sepenuhnya aman. Versi ini bahkan menambahkan dukungan untuk chip M5 baru. Kesimpulan yang ingin saya sampaikan adalah seperti ini.
00:04:53Selama bertahun-tahun, Homebrew adalah sebuah kemudahan, sekadar cara tercepat untuk memasang perangkat lunak ke dalam
00:04:59Mac. Dengan versi 6.0, perkakas ini tampaknya telah berubah menjadi sebuah titik pemeriksaan (checkpoint), tempat di mana kode
00:05:05yang masuk ke perangkat akhirnya harus membuktikan bahwa kodenya terpercaya. Ini adalah langkah besar. Manajer paket ini
00:05:10telah mengejar model ancaman yang telah kita hadapi bersama selama bertahun-tahun. Itulah poin utamanya
00:05:15di sini. Bukan angka di dalam kotak versinya, 6.0 atau 6.1, melainkan apa yang dibawanya. Jika Anda menyukai kiat dan trik pemrograman
00:05:21seperti ini, pastikan untuk berlangganan kanal BetterStack. Sampai jumpa di video lainnya.

Key Takeaway

Homebrew 6.0 mengubah arsitektur keamanannya secara mendasar melalui fitur Tap Trust dan konfirmasi mode Ask bawaan guna mencegah serangan rantai pasokan tanpa mengorbankan kecepatan pembaruan metadata.

Highlights

  • Homebrew 6.0 memperkenalkan fitur Tap Trust yang menghentikan eksekusi kode Ruby dari tap pihak ketiga sebelum pengguna menyetujuinya secara manual via perintah 'brew trust'.

  • Mode Ask baru diaktifkan secara bawaan untuk pengembang, menampilkan ringkasan dependensi yang akan diinstal dan meminta konfirmasi sebelum mengeksekusi instalasi.

  • Pembaruan ini menambal tiga celah keamanan kritis, termasuk kerentanan eksekusi kode sebagai root melalui installer paket macOS.

  • Perubahan kompatibilitas (breaking change) pada Tap Trust dapat menyebabkan kueri 'brew doctor' dan alur kerja CI/CD seperti GitHub Actions gagal jika tap pihak ketiga belum disetujui secara eksplisit.

  • Sistem metadata internal baru mempercepat perintah 'brew update' dengan mengunduh informasi paket dalam satu proses unduhan terpadu.

  • Dukungan untuk arsitektur Mac berbasis Intel dijadwalkan akan dihentikan secara bertahap dalam beberapa tahun ke depan, sementara dukungan chip Apple Silicon M5 telah ditambahkan.

Timeline

Perubahan Akses Keamanan dan Tap Trust pada Homebrew 6.0

  • Homebrew 6.0 memprioritaskan perombakan arsitektur keamanan dibandingkan penambahan fitur antarmuka.
  • Versi sebelumnya mengeksekusi kode Ruby dari tap pihak ketiga secara langsung tanpa verifikasi.
  • Fitur Tap Trust menangani ancaman serangan rantai pasokan (supply chain attack) yang kerap menargetkan manajer paket.

Eksekusi kode bawaan pada versi terdahulu berisiko tinggi saat pengguna menambahkan repositori eksternal. Homebrew 6.0 mengubah perilaku ini dengan memblokir eksekusi otomatis dari kode pihak ketiga untuk melindungi sistem lokal dari manipulasi repositori yang tidak terverifikasi.

Peningkatan Fitur Operasional, Perintah Baru, dan Patch Keamanan

  • Mode Ask aktif secara bawaan untuk menampilkan ringkasan instalasi sebelum meminta konfirmasi pengguna.
  • Perintah 'brew execute' memungkinkan pengoperasian perkakas sekali pakai tanpa instalasi permanen.
  • Pemeriksaan kerentanan dilakukan melalui perintah 'brew vulns' dan sistem metadata baru mempercepat proses 'brew update'.

Selain mode Ask yang memberikan transparansi dependensi, perintah baru seperti 'brew execute' menghadirkan alur kerja mirip npx. Konsolidasi pengunduhan metadata internal memangkas puluhan permintaan jaringan menjadi satu proses ringkas, sementara patch internal menutupi celah eksekusi kode berakses root.

Dampak Breaking Changes pada Otomatisasi CI/CD dan Dukungan Perangkat Harware

  • Skrip otomatisasi dan GitHub Actions yang menggunakan 'brew doctor' atau eksekusi tanpa konfirmasi berisiko mengalami kegagalan.
  • Homebrew tetap menggunakan basis kode Ruby dan tidak melakukan penulisan ulang ke bahasa Rust.
  • Dukungan untuk prosesor Mac Intel memiliki linimasa penghentian bertahap, sementara chip Apple Silicon M5 telah didukung penuh.

Persyaratan persetujuan manual pada Tap Trust dapat menghentikan alur kerja CI jika konfigurasi tidak diperbarui secara eksplisit. Pengembangan difokuskan pada penguatan basis kode Ruby yang ada, sekaligus menegaskan transisi jangka panjang dari arsitektur Intel menuju Apple Silicon.

Community Posts

View all posts