Yazılım Hatalarından Öğrenmek – Bölüm 9: Hatalar bir ölüm kalım meselesidir

Önceki kategoriler ekonomik kayıplara veya proje felaketlerine neden olan birçok hatayı kapsıyordu. Ancak çok daha ciddi sonuçları olan bir yazılım hataları sınıfı vardır: Hayata mal olabilecek güvenlik açısından kritik hatalar.

Duyurudan sonra devamını okuyun

Golo Roden, native web GmbH'nin kurucusu ve CTO'sudur. Olay odaklı ve hizmet tabanlı dağıtılmış mimarilere odaklanarak web ve bulut uygulamaları ile API'lerin tasarımı ve geliştirilmesiyle ilgilenmektedir. Yol gösterici ilkesi, yazılım geliştirmenin kendi başına bir amaç olmadığı, her zaman temeldeki profesyonelliği takip etmesi gerektiğidir. “Yazılım Hatalarından Öğrenmek” serisinin bölümleri:

Güvenlik açısından kritik sistemler, yazılımın fiziksel süreçlerle doğrudan etkileşime girdiği her yerde bulunur: havacılıkta, tıbbi teknolojide, otomotiv endüstrisinde, demiryolu teknolojisinde ve endüstriyel otomasyonda. Burada bir hata meydana gelirse, sonuçları genellikle geri döndürülemez.

Therac-25, kanser hastalarının radyoterapisi için geliştirilmiş tıbbi bir doğrusal hızlandırıcıydı. Makine, hala büyük ölçüde donanım sigortalarına ve fiziksel kilitlemelere dayanan önceki Therac-6 ve Therac-20 modellerinin daha da geliştirilmiş haliydi. Üretici, Therac-25 ile bu güvenlik mekanizmalarının çoğunu yazılıma aktardı; bu kararın ölümcül olduğu kanıtlandı.

1985 ve 1987 yılları arasında en az altı belgelenmiş radyoaktif kaza meydana geldi. Sonuç olarak birçok hasta aşırı yüksek dozlar aldı ve bazıları öldü. Kök neden analizi, tasarım ve süreç hatalarının bir kombinasyonunu ortaya çıkardı:

  1. Kontrol yazılımındaki yarış koşulları: Kullanıcılar çok hızlı giriş yaptıysa makine dahili durum değişikliğini iki kez yorumlayabilir. Öyle olmasa da koruyucu mekanizmanın aktif olduğuna inanıyordu.
  2. Yazılım kilitlerine güvenin: Geçmişte fiziksel sigortalar, yüksek güçlü radyasyonun yalnızca doğru yapılandırıldığında etkinleştirilmesini sağlıyordu. Therac-25 ile yazılımın hatasız doğrulama yapmasına güvendik.
  3. Resmi spesifikasyonların ve bağımsız incelemelerin eksikliği: Ne resmi güvenlik kanıtı mevcuttu ne de test süreçleri gerçekçi koşullar altında yarış koşullarını keşfedecek kadar sağlamdı. Yazılım, aynı zamanda tek test uzmanı olan tek bir geliştirici tarafından yazılmıştır.

Therac-25 felaketi, güvenlik açısından kritik birçok olayda tekrarlanan bir modeli gösteriyor:

Duyurudan sonra devamını okuyun

  • Teknik borç yazılıma taşınıyor: Üreticiler, maliyet veya kolaylık nedenleriyle donanım kilitlerini yazılım mantığıyla değiştirirler, ancak çoğu zaman eşdeğer bir koruma yoktur.
  • Rekabet ve zamanlama konusunda anlayış eksikliği: Güvenlik açısından kritik sistemler kararlı bir şekilde çalışmalıdır. Burada öngörülemeyen yarış koşulları özellikle tehlikelidir.
  • Bağımsız doğrulama eksikliği: Geliştiriciler aynı zamanda test yapan kişiler olduğunda birçok varsayım gözden kaçar. Güvenlik mühendisliği yalnızca donanımda değil, testlerde de artıklık gerektirir.

Bu durumda bile karşı önlemlerin benimsenmesi nispeten kolaydır:

  1. Savunma mimarisi: Güvenlik açısından kritik durumlar tek bir sinyale veya sürece bağlı olmamalıdır. Donanım ve yazılım kilitleri birbirini tamamlamalıdır.
  2. Resmi özellikler ve doğrulama: Önemli süreçler matematiksel olarak modellenmeli ve doğrulanmalıdır.
  3. Ödünsüz otopsi: Her sapma, tasarımdaki belirli değişikliklerle birlikte belgelenmeli ve analiz edilmelidir.
  4. Kusursuz telemetri ve kayıt: Güvenlik sistemleri bir eylemi neden gerçekleştirdiklerini veya engellediklerini her zaman açıkça belirtmelidir.
  5. Bağımsız denetimler ve sertifikalar: Tıbbi teknoloji (IEC 62304), havacılık (DO-178C) ve otomotiv (ISO 26262) gibi endüstriler tam olarak bunu gerektirir ve bunun iyi bir nedeni vardır.

Güvenlik açısından kritik hatalara nadiren dikkatsiz geliştiriciler neden olur. Çoğu zaman bunun nedeni organizasyonel baskıda yatmaktadır: teslim tarihleri, maliyetler veya “yazılımın bu işi halledeceğine” duyulan güven. Sorun, yazılım hatalarının aniden görünür ve geri döndürülemez hale gelinceye kadar sessizce artmasıdır.

Therac-25 artık güvenliğin kritik olduğu sistemlerde resmi güvenlik mekanizmalarının hiçbir zaman ortadan kaldırılmaması gerektiğini gösteren bir ders kitabı örneğidir. “Tamamen yazılım tabanlı” bir yaklaşıma giden herhangi bir kısayol, hayatlara mal olabilir.


(DSÖ)


Yayımlandı

kategorisi

yazarı:

Etiketler:

Yorumlar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir