- STPA(System Theoretic Process Analysis, analisis proses teoretis sistem) adalah metode untuk memodelkan loop kontrol-umpan balik pada sistem kompleks berdasarkan teori sistem dan kontrol
- Google menggunakan STPA untuk menganalisis sistem perangkat lunak dan menemukan potensi risiko
- STPA memperlakukan keselamatan sistem sebagai masalah kontrol, dan menganalisis semua tindakan kontrol yang dapat membawa sistem ke keadaan berbahaya
- Alih-alih berfokus pada hasil dari tiap tindakan individual, pendekatan ini mencari akar penyebab dengan berfokus pada keadaan berbahaya
- Dengan memahami tindakan kontrol yang mengarah ke keadaan berbahaya, hal itu dapat dicegah atau dipulihkan secara otomatis
- Jika pemulihan otomatis sulit dilakukan, sistem dapat memberi peringatan kepada operator manusia
Mengapa Google mengustomisasi pelatihan STPA
- Melalui STPA, jumlah studi kasus sukses yang menemukan masalah yang sebelumnya tidak teridentifikasi lebih awal dan mencegah insiden terus bertambah
- Materi pelatihan STPA yang ada sebelumnya berfokus pada sistem fisik, sehingga sulit diterapkan pada lingkungan perangkat lunak
- Karena itu dibutuhkan pelatihan khusus yang disesuaikan dengan sistem perangkat lunak murni milik Google
Upaya awal pelatihan STPA
- Pelatihan awal dimulai sejak 2021 (untuk 40 engineer Google)
- Menggunakan contoh sistem fisik (misalnya kecelakaan Mars Polar Lander) → kurang relevan bagi engineer perangkat lunak
- Muncul kesadaran bahwa dibutuhkan contoh nyata yang diterapkan pada sistem Google
Pendidikan konsep struktur kontrol
- Struktur kontrol(control structure) tersusun dari loop kontrol-umpan balik dasar
- Controller mengendalikan perubahan status → memeriksa status melalui umpan balik lalu menentukan tindakan berikutnya
- Contoh penerapan di lingkungan perangkat lunak
- Misalnya: menghapus atau memperbaiki konten yang salah di database konten buatan pengguna
- Jika loop umpan balik tidak dirancang dengan baik, tindakan kontrol yang salah dapat terjadi
- Tantangan pelatihan
- Sulit mengajarkan perancangan struktur kontrol yang berguna dalam waktu terbatas
- Karena setiap sistem perangkat lunak memiliki struktur kontrol berbeda, sulit memberikan umpan balik
Strategi perbaikan pelatihan STPA
- Mengajarkan semua tahap STPA → membantu engineer agar dapat menjalankan STPA secara mandiri
- Memanfaatkan kasus nyata Google → setelah menjelaskan teori, langsung diterapkan ke contoh nyata
- Berfokus pada penguatan jalur umpan balik dalam struktur kontrol
- Umpan balik yang salah → tindakan kontrol yang salah → analisis kasus yang memicu insiden
- Kurangnya umpan balik kepada operator manusia → timbulnya keadaan berbahaya
Pentingnya umpan balik
- Pada satu sistem Google, umpan balik yang salah memicu tindakan kontrol yang salah setelah 30 hari → terjadi insiden
- Penyebabnya adalah umpan balik yang salah dan kurangnya umpan balik kepada operator manusia
- Jika perancangan umpan balik dilakukan dengan benar, insiden dapat dicegah
- Ledakan roket Ariane 5 juga merupakan contoh kesalahan umpan balik
- Kesalahan terjadi saat data floating-point dikonversi menjadi integer
- Kesalahan umpan balik → pengenalan status yang salah → kesalahan arah roket dan ledakan
Diagram aliran data vs. struktur kontrol
- Diagram aliran data(Dataflow Diagram)
- Menunjukkan bagaimana data berpindah antar komponen perangkat lunak
- Umpan balik dan struktur kontrol tidak terlihat jelas
- Struktur kontrol(Control Structure)
- Menunjukkan tindakan kontrol dan umpan balik → hierarki kontrol menjadi jelas
- Mudah mengidentifikasi masalah umpan balik → memungkinkan pelacakan akar masalah dalam interaksi sistem yang kompleks
Dampak penerapan STPA
- Pada perangkat lunak kompleks, mempersempit area berpotensi bermasalah dari jutaan baris kode menjadi ratusan baris
- Menyusun skenario tindakan kontrol berbahaya → memungkinkan identifikasi kode bermasalah
- Dalam kasus nyata, setelah membangun struktur kontrol, kekurangan umpan balik berhasil diidentifikasi dan diperbaiki
Perubahan strategi pelatihan
- Waktu pelatihan yang panjang → beralih ke sesi pelatihan yang lebih singkat
- Tutorial 30–60 menit → mendorong engineer yang tertarik untuk ikut workshop
- Memperkenalkan model pembelajaran mandiri
- Video singkat + tugas → mendorong penerapan STPA pada sistem nyata
- Memperkuat pelatihan agar STPA awal dapat dijalankan tanpa campur tangan pakar
Strategi penyebaran STPA di Google
- Mencetak pakar STPA → memungkinkan penyebaran STPA di dalam tim
- Keberhasilan awal → menyebar ke tim lain → penerapan STPA di seluruh organisasi
- Setelah pelatihan STPA, elemen risiko dapat dihilangkan lebih awal pada tahap desain
Dapat diterapkan di perusahaan lain juga
- STPA adalah alat yang kuat untuk menemukan "elemen risiko yang belum teridentifikasi" dalam sistem perangkat lunak yang kompleks
- Dapat dimulai dari tim kecil lalu diperluas dengan dipimpin pakar STPA
- Kunci utamanya adalah mengembangkan pelatihan STPA yang disesuaikan dengan kebutuhan perusahaan
- Arah dapat dikoreksi setelah trial and error awal → pada akhirnya meningkatkan stabilitas dan keandalan sistem
1 komentar
Opini Hacker News
Ada kasus di Google di mana software controller menerima umpan balik yang salah dan menjalankan aksi kontrol berbahaya
Kelas STPA terstruktur dengan baik, dan contoh dari Google membantu
STPA adalah framework design review untuk menemukan mode kegagalan yang kurang jelas
Ada pendapat bahwa topiknya sulit dipahami tetapi ingin dimengerti
Jika ada contoh nyata di mana STPA menyelesaikan masalah keandalan di Google, itu akan lebih meyakinkan
STAMP/STPA bekerja dengan baik sebagai model dan metodologi untuk sistem yang kompleks
Setelah bekerja sama dengan para ahli sistem untuk membangun control structure, langsung terlihat bahwa controller C kekurangan umpan balik ke B
Ini adalah upaya khas perusahaan: cerita yang dibesar-besarkan, buzzword, dan usaha membuat ide lama terlihat inovatif
Ada komentar yang berharap Google diam saja selama setahun, seperti vacuum cleaner yang berdengung pelan