Leveson membicarakan pengaruh perangkat lunak dalam sistem kritis keamanan ketika menulis:
Sebelum perangkat lunak digunakan di dalam sistem kritis keamanan, perangkat lunak itu sering dikontrol oleh alat mekanik konvensional (tidak dapat diprogram) dan dektronik. Teknik keamanan sistem didesain untuk mengatasi kegagalan acak dalam sistem-sistem tersebut. Kesalahan perancangan oleh manusia dapat sepenuhnya dihindari atau dihilangkan sebelum perangkat lunak tersebut diluncurkan dan dioperasikan,
ketika perangkat lunak diguanakn sebagai bagian dari sistem kontrol, kompleksitasnya dapat bertambah dengan satu urutan besaran atau lebih. Kesalahan desain yang tidak kentara yang disebabknan oleh kesalahan manusia sesuatu yang dapat diunkapkan dan dikurangi dalam kontrol konvensional berbasis perangkat keras rnenjadi lebih sulit ditemukan pada waktu perangkat lunak digunakan.
Keamanan Perangkat Lunak dan Analisis Risiko |
Keastanan perangkat lunak dan analisis risiko adalah aktivitas jaminan kualitas perangkat lunak yang berfokus pada identifikasi dan penilaian risiko potensial yang mungkin berpengaruh negatifterhadap perangkat lunak dan menyebabkan seluruh sistem menjadi gagal. Jika risiko dapat diidentifikasi pada awal proses rekayasa perangkat lunak, maka ciri-ciri desain perangkat lunak dapat ditetapkan sehingga akan mengeliminasi atau mengontrol risiko potensial.
Proses analisis dan modeling dilakukan sebagai bagian dari keamanan perangkat lunak. Awalnya, risiko diidentifikasi dan dipilah-pilahkan berdasarkan kekritisan dan risiko. Sebagai contoh, beberapa risiko yang berkaitan dengan kontrol peluncuran berbasis komputer untuk automobil mungkin:
m Menyebabkan percepatan yang tidak terkontrol tidak dapat dihentikan
m Tidak lepas ketika pedal rem ditekan
m Tidak nyambung ketika skalar diaktifkan
m Perlahan-lahan kehilangan atau menambah kecepatan
Setelah risiko tingkat sistem diidentifikasi, maka digunakan teknik analisis untuk menandai kehebatan dan probabilitas event. Supaya efektif, perangkat lunak harus dianalisis dalam konteks keseluruhan sistem. Sebagai contoh, kesalahan input pemakai yang tidak kentara (manusia sebagai komponen sistem) dapat diperbesar oleh kesalahan perangkat lunak, sehingga menghasilkan data kontrol yang memposisikan sebuah perangkat lunak, sehingga menghasilkan data kontrol yang memposisikan sebuah perangkat mekanik secara tidak tepat. Jika ada serangkaian kondisi lingkungan eksternal (dan hanya jika mereka ditemui), maka posisi perangkat mekanik yang tidak tepat dapat menyebabkan kegagalan fatal. Teknik analisis seperti analisis pohon kegagalan, logika real-time , atau model Petrinet , dapat digunakan untuk memprediksi rantai event yang dapat mengakibatkan risiko dan kemungkinan di mana setiap event akan terjadi untuk menciptakan rantai.
Analisis pohon kesalahan membangun model grafts dan kombinasi event yang konkuren dan berurutan yang dapat menyebabkan suatu event atau sistem yang penuh risiko. Dengan menggunakan pohon kesalahan yang dikembangkan dengan baik, maka dimungkinkan untuk meneliti kosekuensi urutan kegagalan yang terinterelasi yang terjadi pada komponen sistem yang berbeda. Logika real-time (RTL) membangun sebuah model sistem dengan menentukan event dan aksi yang sesuai. Model event-action dapat dianalisis dengan menggunakan operasi logika untuk menguji tuntutan keamanan seputar komponen sistem dan timing-nya. Model Petrinet dapat digunakan untuk menentukan kesalahan yang paling berisiko.
Sekali risiko diidentifikasi dan dianalisis, maka keamanan yang berhubungan dengan kebutuhan untuk perangkat lunak dapat ditetapkan. Spesifikasi dapat berupa sederetan event yang tidak diinginkan dan sistem yang diinginkan merespon event tersebut. Peran perangkat lunak dalam mengatur event yang tidak diinginkan kemudian diindikasi.
Meskipun reliabilitas perangkat lunak berhubungan erat satu sama lain dengan lainnya, namun sangat penting untuk memahami perbedaan tipis yang ada di antara mereka. Reliabilitas perangkat lunak menggunakan analisis statistik untuk menentukan kemungkinan terjadinya kegagalan perangkat lunak. Tetapi kegagalan tidak perlu menghasilkan risiko atau kecelakaan. Kemanan perangkat lunak mengamati bagairnana kegagalan menimbulkan keadaan yang dapat menyebabkan kecelakaan. Kegagalan tidak perlu dipertimbangkan di dalam ruang hampa, tetapi dievaluasi dalam konteks keseluruhan sistem berbasis komputer.
EmoticonEmoticon