Ishonchli tizimni loyihalashda quyidagilarni e'tiborga olmoq lozim: 1. Apparat ta'minotidagi nosozliklar. Tizim apparat ta'minoti o'zining qurilishidagi xatolar yoki biror ehtiyot qismning o'z vazifasini o'tab bo'lgani sababidan nosozlikka duchor bo'ladi.
2. Dasturiy ta'minot nosozligi. Tizim dasturiy ta'minoti uning tavsifidagi, loyihasidagi yoki realizatsiyasidagi xatoliklar tufayli nosoz bo'lib qolishi mumkin.
3. Faoliyatdagi nosozlklar. Insonlar tizimdan to'g'ri foydalanishda va uni to'g'ri qo'llashda xato qilishlari mumkin. Apparat va dasturiy ta'minotlar ancha mustahka bo'lgan hozirgi davrda faoliyatdagi nosozliklar tizim nosozlilarining ko'pchiligini tashkil etadi deyish mumkin.
Bu nosozliklar ko'pincha bir-biriga bo'g'langan bo'ladi: nosoz apparat ta'minoti tizim operatorlariga qo'shimcha ishlar yuklashi ularni qiyin ahvolga tushirib qo'yishi mumkin. Bu narsa esa ulani asabiylashishiga sabab bo'ladi, insonning asabiylashganida xato qilishi esa tabiiy holdir. Nosoz dasturiy ta'minot bilan ham shunday holatni kuzatish mumkin.
Hisoblash tizimi ishonchliligi - bu tizimga qanchalik ishonish mumkinligini o'zida aks ettiruvchi xususiyatdir. Bu bilan ishonchlilikni raqamlarda ifodalashni ko'zda tutmayapmiz. Balki shu o'rinda "ishonchsiz", "ishonchli", "juda ishonchli" kabi atamalar tzizm ishonchliligini aks ettirish uchun qo'llaniladi.
Ishonchlilikning to'rtta asosiy qismi bor: 1. Tayyorlik. Bu xususiyat tizim foydalanuvchi talab qilgan har qanday vaqtda oz' xizmatlarini taqdim eta olishidir.
2. Mustahkamlik. Bu xususiyat tizim o'ziga berilgan vazifani bexato, tavsiflarda keltirilganidek bajarishidir.
3. Himoyalanganlik. Bu tizim kishilarga yoki o'z muhitiga qanchalik ziyon yekazishi mumkinligini ko'rsatadigan xususiyat.
4. Xavfsizlik. Bu tizimning qasddan qilingan yoki tasodifiy tahdidlarga qanchalik qarshilik ko'rsata olishini aks ettiradigan xususiyatdir.
Bu asosiy qismlarga qo'shimcha ravishda quyidagi xususiyatlarni ham ishonchlilikning tarkibiga kiritish mumkin:
1. Tuzatilish. Tizim nosozliklari muqarrar hodisadir, lekin nosozlik natijasida kelib chiqqan buzilish agar tizimni tezda tuzatish imkoniyati bo'lsa minimallashtirilishi mumkin. Ochiq kodli dasturiy ta'minotlarda bu ish ancha oson, lekin komponentalarni qayta qo'llayverish buni qiyinlashtirishi mumkin.
2. Qo'llab - quvvatlanish. Tizim ishlatilgani sari unga yangi talablar qo'tib boriladi, shuning uchun talablar asosida tizimning yangi versiyalari ishlab chiqarilishi orqali uni qo'llab-quvvatlash muhimdir.
3. Saqlanib qolish. Bu Internetga asoslangan tizimlar uchun muhim xossadir. Saqlanib qolish bu - tizimning biror hujum ostida, hatto biror qismi o'chirib qo'yilganda ham ishda davom eta olish xususiyatidir. Albatta bunda minimal xizmat ko'rsata olish nazarda tutilmoqda. Saqlanib qolishni kuchaytirish uchun 3 ta strategiya qo'llaniladi - hujumga qarshilik qilish, hujumni aniqlash va hujum natijasida ko'rilgan ziyondan qayta tiklanish.
4. Xatolarga chidamlilik. Bunda ko'pincha foydalanuvchi xato ma'lumotlar kiritganida, iloji bo'lsa ularni tuzatish yo'qsa foydalanuvchiga bu haqdagi xabarni yetkazish tushiniladi.
3.2. Dasturiy ta’minot xavfsizligi
Biz yuqorida xavfsizlik bu tizimning tashqi qasddan uyushtirilgan yoki tasodifiy hujumlardan o'znin himoyalay olish xususiyati ekanligi haqida so'z yuritgan edik. Bu tashqi hujumlar muqarrardir, chunki ko'pchilik kompyuterlar hozirda internetga ulanadi va bu bilan tashqi tomondan nishonga aylanishi hech gap emas. Bunday hujumlarga viruslar tushishi, tizim xizmatlaridan ruxsatsiz foydalanish, tizimga uatorizatsiyasiz ulanib uning ma'lumotlarini o'zgartirish kabilarni misol tariqasida keltirish mumkin. Agar siz haqiqatdan xavfsiz tizimda ishlashni xohlasangiz, unda yaxshisi internetga ulanamay qo'ya qoling. Shunda agar autorizatsiya qilingan foydalanuvchilar ishonchli bo'lsa sizning xavfsizlik bo'yicha muammolaringiz o'z yechimini topadi. Amalda esa katta tizimlar online rejimida ishlagani uchun yuqori darajada foyda ko'radilar, internetdan uzilish ular uchun
daromadlarning keskin pasayishiga sabab bo'ladi.
Ko'pgina tizimlar uchun xavfsizlik bu ishonchlilikning asosiy mezonidir. Harbiy tizimlar, elektron savdo uchun yaratilgan tizimlar hamda o'ta maxfiy ma'lumotlarga ishlov berish bilan shug'ullanuvchi tizimlar yuqori darajada xavfsizlik ta'minlangan holda loyihalashtirilishi zarur. Masalan, agar havo tarnsportlariga chiptalarni buyurtma qiluvchi tizimda tayyorlik xususiyati past
bo'lsa, bu ishonchning yo'qolishi hamda ba'zi chiptalardagi kechikishga sabab bo'lishi mumkin. Agar bu tizim xavfsizligi past bo'lsa unda hujum qiluvchilar unga kirib barcha buyurtmalarni o'chirib tashlashlari, buning natijasida esa normal havo yo'llari harakatlarini davom ettirishga imkoniyat bo'lmay qolishi mumkin. Ishonchlilikning boshqa qismlari kabi xavfsizlik ham o'zining maxsus atamalariga ega.
Pflegeer tomonidan muhim atamalar quyidagicha ta'riflanadi:
Mulk ( asset ) - himoyalanadigan va biror qiymatga ega bo'lgan narsa. Mulk bu dasturiy ta'minot tizimining o'zi yoki bu tizim tomonidan ishlatiladigan ma'lumot bo'lishi mumkin.
Zararlanish ( exposure ) - Hisoblash tizimi zaralanishi yoki undagi elementlar yo'qotilishi bo'lishi mumkin. Bunda zarar yoki yo'qotish ma'lumotlarda, vaqtda yoki xavfsizlik buzilganda keyingi tiklash ishlariga ketgan mehnatda ko'rinadi.
Zaif himoyalanganlik ( vulnerability ) - Hisoblash tizimi zaifligi, bundan foydalanib tizimga zarar yetkazilishi mumkin.
Hujum ( attack ) - Tizimning himoyasi zaifligidan foydalanib qolish. Odatda bu tashqi tarafdan bo'ladi va bunda zarar qasddan yetkazilishi nazarda tutiladi.
Tahdidlar ( threats ) - zarar yetkazishi mumkin bo'lgan holatlar, vaziyat va sharoitlar. Bularga tizimga hujum uchun yo'l ochib beruvchi zaif himoyaga qaragandek qarash lozim.
Nazorat ( Control ) - tizim himoyasi zaifligini ketkazuvchi chora. Bunga shifrlashni misol qilib keltirish mumkin.
Ixtiyoriy tarmoqqa ulangan tizimda, uch xil asosiy xavfsizlikka qilinadigan tahdidlar uchraydi:
1. Tizim va uning ma'lumotlari maxfiyligiga tahdidlar. Bular axborotlarning autorizatsiyadan o'tmagan shaxslar yoki dasturlarga ochilishiga sabab bo'lishi mumkin.
2. Tizim va uning ma'lumotlari sofligiga tahdid. Bu tahdidlar dasturiy ta'minot yoki ma'lumotlarga zarar yekazishi, ularni buzishi mumkin.
3. Tizim va uning ma'lumotlari tayyorligiga tahdidlar. Bu tahdidlar autorizatsiyadan o'tgan foydalanuvchilarga ruxsatlarni chegaralab qo'yishi mumkin.
Albatta bu tahdidlar o'zaro ichki bog'lanishga ega Agar hujum tizim tayyorligiga zarar yetkazsa, unda siz vaqt o'tishi bilan o'zgarib turadigan axborotlarni yangilay olmaysiz. Bu o'z navbatida tizim sofligini yo'qqa chiqaradi.
Shunday qilib zararlar bir - biriga ulanib ketadi. Amalda, sotsialtexnik tizimlardagi ko'pchilik himoya zaifligi texnik muammolardan ko'ra ko'proq insonlarning xatolari natijasida paydo bo'ladi. Odamlar oson parollar tanlaydilar, yoki parollarini topib olish oson bo'lgan joylarga yozib qo'yadilar, tizim administratorlari ruxsatlarni belgilashda yoki fayllarni joylashtirishda xato qiladilar bundan tashqari foydalanuvchilar himoyalovchi dasturiy ta'minotlarni qo'llamaydilar.
Siz tizim xavfsizligini kuchaytirish uchun qo'yishingiz mumkin bo'lgan nazoratlar quyidagilardir:
1. Himoya zaifligidan chetlanish. Qilinayotgan hujumlar muvaffaqiyatsiz bo'lishiga ishonch hosil qilish uchun qo'yiladigan nazoratlar. Bu yerda strategiya tizimni xavfsizlikka oid muammolardan chetda loyihalashdan iborat. Masalan, harbiy tizimlar mahalliy tarmoqlarga ulanmagan bo'ladi, shuning uchun ularga tashqi kirish yo'llari berkdir. Ma'lumotlarni shifrlashni ham bu turdagi nazoratlarga kiritish mumkin. Shifrlangan ma'lumotga har qanday autorizatsiyasiz kirishda, bu ma'lumot hujumchilar tomonidan o'qib bo'lmaydigan ko'rinishda bo'ladi. Amalda, kuchli shifrlangan ma'lumotlarni deshifrlash ko'p vaqt talab qiladi va qimmatga tushadi.
2. Hujumni aniqlash va uni bartaraf etish. Bu turdagi nazoratlar hujumlarni aniqlab ularni yo'q qilishga mo'ljallangan. Bu nazoratlar tizimda bajarilayotgan amallarni kuzatib turadi va g'ayrioddiy holatni aniqlaganda chora ko'radi: tizimning ushbu qismini o'chirib qo'yishi yoki aniqlangan foydalanuvchiga kirish yo'lini yopib qo'yishi mumkin.
3. Chegaralar qo'yish va tiklash. Bu nazoratlar muammolardan keyin qayta tiklanishni qo'llab-quvvatlaydi.
Talabga javob beradigan xavfsizliksiz, biz tizimning tayyorligi, mustahkamligi hamda himoyalanganligiga ishonolmaymiz.
Tizimni ishlab chiqarishdagi xatoliklar keyinchalik xavfsizlikni aylanib o'tilishiga olib kelishi mumkin. Agar tizim ko'zda tutilmagan kiruvchi parametrlarga javob bermasa yoki kiritilayotgan massiv ko'riniishidagi ma'lumotlarning chegarasi aniqlanmasa, hujumchilar bu zaifliklardan tizimga ruxsatsiz kirish uchun foydalanishlari mumkin. Asosiy xavfsizlik buzilish hodisalari ushbu zaifliklar orqali kelib chiqadi. C# tilida tuzilgan dasturlar massiv chegarasini tekshirishni o'z ichiga olmaydi, bu esa tizimga ruxsatsiz kirish orqali xotiraning biror qismini qayta yozishga imkon yaratadi.
Dasturiy ta’minot ishonchliligi va xavfsizligining xususiyatlari Tizimning ishonchliligi apparat ta'minot ishonchliligi, dasturiy ta'minot ishonchliligi hamda tizim operatorlari ishonchliligiga bog'liq. Tizim dasturiy ta'minoti bu yerda alohida o'rin tutadi. Bu o'z ichiga dasturiy ta'minot nosozligini qoplaydigan talablarni olish bilan birga operator hamda apparat ishonchlilik talablariga bog'liq bo'lib apparatdagi nosozliklar hamda operator xatolarini aniqlashda yordam berishi mumkin.
Ishonchlilik xavfsizlik hamda himoyalanganlikdan farqli ravishda tizimning o'lchasa bo'ladigan xususiyatdir. Tizim ishonchlilik darajasini tavsiflash mumkin, biror vaqt daomida tizim amallari kuzatib turiladi, hamda talab qilingan ishonchlilikka erishilgan bo'lsa bu belgilab qo'yiladi. Masalan, ishonchlilikka quyidagicha talab qo'yish mumkin: tizim qayta yuklanishiga sabab bo'ladigan tizim nosozligi haftada bir martadan ortiq ro'y bermasin. Aytilgan nosozlik har ro'y berganda siz bundan xabar topasiz hamda belgilab qo'yasiz, shunday qilib talab etilgan ishonchlilikka erishildimi yo yo'qmi bilib olasiz. Agar erishilmagan bo'lsa
ishonchlilik talablarini qayta ko'rib chiqasiz yoki tizimdagi muammolarni tuzatishga kirishasiz. Siz past darajadagi ishonchlilikka ham rozi bo'laverishingiz mumkin, chunki ishonchlilikni oshirish uchun tizimga kiritiladigan o'zgartirishlar juda qimmatga tushishi mumkin.
Ishonchlilik talablari ikkiga bo'linadi:
1. Nofunksional talablar. Bular tizim normal ishlab turganida yoki tizim ishga tayyor bo'lmaganida qabul qilinishi mumkin bo'lgan nosozliklar sonini aniqlaydi.
2. Funksional talablar. Bular tizim va dasturiy ta'minotning dasturiy ta'minot nuqsonlarini chetlatish, aniqlash va ularga bardosh berish funksiyalarini aniqlaydi va bu nuqsonlar tizim nosozligiga olib kelmasligini ta'minlaydi.
Ishonchlilik talablari shunga bogliq bo'lgan funksional tizim talablariga yo'l ochadi. Biror darajadagi ishonchlilikka erishish uchun bu tizimning funksional hamda loyihaviy talablari aniqlanadigan xatoliklarni hamda ular tizim nosozligiga olib kelmasligini ta'minlash uchun ko'riladigan choralarni tavsiflamog'i lozim.
Umuman olganda tizim ishonchliligini o'sha tizim biror operatsion muhitda ishlatilganida tizim nosozligi ro'y berishi ehtimoli bilan tavsiflash mumkin. Maslan 1000 ta ixtiyoriy xizmatdan bittadida nosozlik ro'y bersa unda nosozlik ehtimolligi 0.001 bo'ladi. Albatta bu har 1000 ta amalda, aniq bitta nosozlik uchraydi degani emas. Bu agar siz 1000 * N ta amalni kuzatsangiz shunda nosozliklar soni N atrofida bo'ladi degan ma'noni anglatadi.
Ishonchlilikni tavsiflash uchun ikkita asosiy miqdordan va bunga qo'shimcha ravishda ishonchlilikka bo'gliq bo'lga xususiyat tayyorlikni tavsiflash uchun yana bitta miqdordan foydalaniladi:
1.Talab qilingan nosozlik ehtimolligi - Probability of failure on demand (POFOD). Agar siz bu miqdorni qo'llasangiz, unda tizim tomnidan biror xizmat uchun belgilangan tizim nosozligi ehtimolligini natija sifatida olasiz.
Shunday qilib POFOD = 0.001 ifoda talab bajarilganida nosozlik ro'y berishi imkoniyati 1/1000 ga bo'lishini ko'rsatadi.
2. Nosozliklar sodir bo'lish darajasi - Rate of occurrence of failures (ROCOF) . Bu biror vaqt davomida yoki biror sondagi amallar bajarilish jarayonini kuzatish davomida qayd etilgan nosozliklar soni bilan belgilanadi.
Masalan bir soatda ikkita nosozlik yuz bersa unda nosozlik yuz berish oralig'i yarim soat bo'ladi.
3.Tayyorlil -Availability(AVAIL). Tizimning tayyorligi so'rovlar jo'natilganida xizmatlarni yetkazib berishida aks etadi. Masalan AVAIL = 0.9999 bu tizim har vaqt amallarni bajarishga 99.99% tayyor degani. Tizimlarning xavfsizligiga qo'yiladigan talablar tavsifi bir jihatdan olib qaraganda himoyalanganlik talablari bilan umumiydir. Shunday bo'lsa ham xavfsizlik himoyalanganlikka qaraganda muhimroq muammodir. Buning sabablari quyidagicha:
1. Himoyalanganlikni olib qaraydigan bo'lsak, siz tizim o'rnatilgan muhitni "dushman" sifatida qaramasligingiz mumkin. Hech kim himoyalanganlik tomonidan muammo chiqarishga urinib ko'rmaydi. Ammo xavfsizlik tarafdan yondashuv mutlaqo boshqa natijaga olib keladi. Bunda tashqaridan tizimning zaif nuqtalaridan yaxshigina xabardor qandaydir g'arazli kimsa tizimga tashqi tomondan ta'sir o'tkazishga harakat qiladi.
2. Agar nosozlik himoyalanganlikdagi tavakkalchilikdan kelib chiqsa, siz nosozlikka sabab bo'lgan xatolarni va bo'shliqlarni ko'rishingiz mumkin. Tashqi hujumlar tizim nosozligini keltirib chiqarganida esa, ildizni topish qiyinlashib ketadi. Chunki hujumchilar nosozlik sababini yashirishga intiladilar.
3. Odatda tizimni o'chirib qo'yish, yoki uning biror xizmatlarini to'xtatish himoyalanganlik buzilishi natijasida paydo bo'lgan nosozliklar uchun eng ma'qul yechimlardan hisoblanadi. Tashqi hujumlar esa ko'pincha tizimni o'chirib qo'yishga yo'naltirilgan bo'ladi.Tizim o'chirib qo'yilsa hujum muvaffaqiyatli yakunlanibdi deb hisoblayvering.
4. Himoyalanganlik bilan bo'gliq harakatlar aqlli "dushman" tomonidan amalga oshirilmaydi. Tashqi tomondan hujum qiluvhchi shaxs esa bir qancha tizimlarga hujum qilib tajriba orttirgan bo'lishi, tizim va uning javoblari haqida ega bo'lgan bilimlarini qo'llab o'z hujumlarini o'zgartirib turishi mumkin.
Yuqoridagilardan xavfsizlikka qo'yiladigan talablarrning himoyalanganlik talablariga nisbatan nechog'lik keng miqyosda bo'lishini ko'rishimiz mumkin.
Qiyoslashlar natijasida, tizimga duch keladigan turli tahdidlarni o'z ichiga qamrab oluvchi bir necha tur xavfsizlik talablarini keltirish mumkin. Firesmith ( 2003 - yili ) tizim tavsifida mavjud bo'lishi mumkin bo'lgan 10 ta xavfsizlik talablarini keltiradi:
1. Identifikatsita talablari. Tizim o'z foydalanuvchilari bilan muloqotga kirishishdan oldin ular identifikatsiya qilingan yo qilinmaganini tavsiflaydi.
2. Autentifikatsiya talablari. Foydalanuvchilar qanday identifikatsiyalanganini tavsiflaydi.
3. Avtorizatsiya talablari. Identifikatsiyalangan foydalanuvchining imtiyozlari va kirish ruxsatlarini tavsiflaydi.
4. Qarshi turish (immunitet) talabari. Tizim viruslar, vormlar va shunga o'xshash tahdidlardan o'zninqanday himoyalashini ko'rsatadi.
5. Soflik talablari. Ma'lumotlar buzilishidan qanday saqlanish mumkinligini ko'rsatadi.
6. Ruxsatsiz kirishni aniqlash talablari. Tizimga qilinayotgan hujumlarni aniqlashda qanday mexanizm qo'llanishini ko'rsatadi.
7. Rad etilmaslik talablari. Biror xizmat a'zolaridan biri xizmatning o'ziga tegishli qismini inkor etmasligini ko'rsatadi.
8. Sir saqlash talablari. Ma'lumotlarni sir saqlash qanday qo'llab- quvvatlanishini ko'rsatadi.
9. Xavfsiz nazorat talablari. Tizimdan foydalanish qanday kuztilishi va tekshirilishi mumkinligini ko'rsatadi.
10. Tizimni qo'llab-quvvatlashning xavfsizligi talablari. Ilova qanday qilib xavfsizlik mexanizmidagi tasodifiy muvaffaqiyatsizlikdan so'ng autorizatsiyada yuzga keladigan o'zgarishlardan saqlanishini ko'rsatadi.
Albatta siz yuqoridagi xavfsizlik talablarning har birini barcha tizimlarda ham uchratavermaysiz. Bu talablarning qo'llanishi tizim turiga, undan foydalanish holatiga va undan foydalanishi mumkin bo'lgan iste'molchilarga bo'gliqdir.