- STPA(System Theoretic Process Analysis, Sistem Teorik Süreç Analizi), sistem ve kontrol teorisine dayalı olarak karmaşık sistemlerin kontrol-geri bildirim döngülerini modelleme yöntemidir
- Google, STPA kullanarak yazılım sistemlerini analiz ediyor ve potansiyel riskleri ortaya çıkarıyor
- STPA, sistem güvenliğini bir kontrol problemi olarak ele alır ve sistemin tehlikeli bir duruma düşmesine yol açabilecek tüm kontrol eylemlerini analiz eder
- Tek tek eylemlerin sonuçlarından çok tehlikeli durumlara odaklanarak kök nedeni bulmayı hedefler
- Tehlikeli duruma yol açan kontrol eylemleri anlaşılırsa, bunlar önlenebilir veya otomatik olarak kurtarılabilir
- Otomatik kurtarma zor olduğunda ise insan operatör uyarılabilir
Google neden STPA eğitimini özelleştiriyor?
- STPA sayesinde önceden fark edilmemiş sorunları önceden bulup arızaları önleyen başarılı örneklerin sayısı artıyor
- Mevcut STPA eğitim materyalleri fiziksel sistemlere odaklandığı için yazılım ortamına uygulamak zor oluyor
- Google'ın tamamen yazılımsal sistemlerine uygun, özelleştirilmiş bir eğitime ihtiyaç doğdu
İlk STPA eğitim denemeleri
- İlk eğitimler 2021'den itibaren başladı (40 Google mühendisine yönelik)
- Fiziksel sistem örnekleri kullanıldı (ör. Mars Polar Lander kazası) → yazılım mühendislerinde yeterli karşılık bulmadı
- Google sistemlerine uygulanmış gerçek örneklere ihtiyaç olduğu fark edildi
Kontrol yapısı kavramının eğitimi
- Kontrol yapısı(control structure), temel kontrol-geri bildirim döngülerinden oluşur
- Kontrolör, durum değişimini yönetir → geri bildirimle durumu doğrular ve bir sonraki eyleme karar verir
- Yazılım ortamındaki uygulama örnekleri
- Örneğin: kullanıcı tarafından oluşturulan içerik veritabanında yanlış içeriğin silinmesi veya düzeltilmesi
- Geri bildirim döngüsü doğru tasarlanmazsa hatalı kontrol eylemleri ortaya çıkabilir
- Eğitimdeki zorluklar
- Sınırlı süre içinde faydalı bir kontrol yapısı tasarımını öğretmek zor
- Her yazılım sisteminin kontrol yapısı farklı olduğu için geri bildirim vermek zorlaşıyor
STPA eğitimini iyileştirme stratejisi
- STPA'nın tüm adımlarını öğretmek → mühendislerin STPA'yı bağımsız olarak uygulayabilmesini desteklemek
- Google'ın gerçek örneklerini kullanmak → teoriyi anlattıktan sonra gerçek vakalara uygulamak
- Kontrol yapısındaki geri bildirim yollarını güçlendirmeye odaklanmak
- Hatalı geri bildirim → hatalı kontrol eylemi → arızaya yol açan vakaların analizi
- İnsan operatöre yeterli geri bildirim verilmemesi → tehlikeli durumların ortaya çıkması
Geri bildirimin önemi
- Google'daki bir sistemde hatalı geri bildirim nedeniyle 30 gün sonra yanlış bir kontrol eylemi gerçekleşti → arıza oluştu
- Bunun nedeni hem hatalı geri bildirim hem de insan operatöre yeterli geri bildirim verilmemesiydi
- Geri bildirim tasarımı doğru yapılırsa arızalar önlenebilir
- Ariane 5 roketinin patlaması da bir geri bildirim hatası örneğidir
- Kayan noktalı veriyi tam sayıya dönüştürürken hata oluştu
- Geri bildirim hatası → durumun yanlış algılanması → roket yönünde hata ve patlama
Veri akış diyagramı vs. kontrol yapısı
- Veri Akış Diyagramı(Dataflow Diagram)
- Verinin yazılım bileşenleri arasında nasıl hareket ettiğini gösterir
- Geri bildirim ve kontrol yapısı net değildir
- Kontrol Yapısı(Control Structure)
- Kontrol eylemleri ve geri bildirimi gösterir → kontrol hiyerarşisini netleştirir
- Geri bildirim sorunlarını bulmayı kolaylaştırır → karmaşık sistem etkileşimlerinde sorunun nedenini izlemeyi mümkün kılar
STPA'nın uygulanmasının etkileri
- Karmaşık yazılımlarda milyonlarca satır kod içinden sorun çıkma olasılığı yüksek bölümleri birkaç yüz satıra kadar daraltır
- Tehlikeli kontrol eylemlerini senaryolaştırarak sorunlu kodu belirlemeyi mümkün kılar
- Gerçek vakalarda kontrol yapısı kurulduktan sonra geri bildirim eksikliği tespit edilip düzeltildi
Eğitim stratejisindeki değişim
- Uzun eğitim sürelerinden kısa eğitim oturumlarına geçildi
- 30 ila 60 dakikalık eğitimler → ilgili mühendisleri atölye çalışmalarına yönlendirme
- Kendi kendine öğrenme modeli benimsendi
- Kısa videolar + ödevler → gerçek sistemlerde STPA uygulanmasını teşvik etme
- Uzman müdahalesi olmadan ilk STPA analizinin yapılabilmesi için eğitim güçlendirildi
Google'da STPA'yı yaygınlaştırma stratejisi
- STPA uzmanları yetiştirmek → ekip içinde STPA'nın yayılmasını sağlamak
- İlk başarılar → diğer ekiplere yayılım → organizasyon genelinde STPA uygulanması
- STPA eğitimi sonrasında tasarım aşamasında risk unsurları önceden ortadan kaldırılabilir
Diğer şirketlerde de uygulanabilir
- STPA, karmaşık yazılım sistemlerinde "önceden tanımlanmamış risk unsurlarını" bulmak için güçlü bir araçtır
- Küçük ekiplerle başlayıp STPA uzmanlarının öncülüğünde yaygınlaştırılabilir
- Şirkete uygun, özelleştirilmiş STPA eğitimi geliştirmek kritik önemdedir
- İlk deneme-yanılmalardan sonra yön değiştirilebilir → sonuçta sistem kararlılığı ve güvenilirliği artırılabilir
1 yorum
Hacker News görüşleri
Google'da bir yazılım denetleyicisinin yanlış geri bildirim alıp tehlikeli bir kontrol eylemi gerçekleştirdiği bir vaka varmış
STPA dersi iyi yapılandırılmış ve Google örneği faydalı bulunmuş
STPA, daha az belirgin hata modlarını bulmak için kullanılan bir tasarım inceleme çerçevesi
Anlaması zor ama öğrenmek istendiğine dair bir görüş var
B'ninC'den yetersiz geri bildirim almasının neden kötü olduğuna dair açıklama yetersiz kalmışSTPA'nın Google'da güvenilirlik sorunlarını çözdüğü gerçek bir örnek olsaydı daha ikna edici olurmuş
STAMP/STPA, karmaşık sistemler için bir model ve metodoloji olarak iyi çalışıyor
Sistem uzmanlarıyla iş birliği içinde kontrol yapısı kurulduktan sonra, denetleyici
C'denB'ye geri bildirimin yetersiz olduğu hemen fark edilmişDüzerinden bir geri bildirim döngüsü varB'denD'ye doğrudan bağlantı olmaması sorununun neden geçerli sayılmadığı merak ediliyorKurumsal abartı, moda sözcükler ve eski fikirleri yenilikçi göstermeye çalışma var
Google'ın bir yıl boyunca elektrikli süpürge gibi uğultu çıkarıp sessiz kalmasını isteyen bir görüş var