PM / SE

SE#10.1 საინფორმაციო სისტემის მდგრადობა (System Dependability)

Reference: Sommerville, Software Engineering, 10 ed., Chapter 10  and  #2

ციფრული სამყაროს ძირითადი მახასიაათებელი თვისება იმაში მდგომარეობს, რომ მას მართავენ საინფორმაციო სისტემები, რომლთა უმნიშვნელოვანესი კომპონენტი პროგრამული უზრუნველყოფაა. პროგრამული უზრუნველყოფა კი ხასიათდებიან სხვადასხვა, ობიექტური თუ სუბიექტური მიზეზების გამოწვეული ხარვეზებით.  მათი არსებობა შეიძლება გამოვლინდეს პროგრამული პროდუქტის ფუნქციონირების სხვადასხვა ეტაპზე და შედეგად გამოიწვიოს სხვადასხვა სახის და შედეგების მქონე საფრთხეები.

პროგრამული უზრუნველყოფის შექმნის დროს, აღნიშნული საფრთხეების მოხდენის პრევენციისთვის გამოიყენება,  ხარისხის უზრუნველყოფის (Quality Ashurance),  რისკების მართვის (Risk Management), სისტემის უსაფრთხოების (System Security), სისტემის ტესტირების (System Testing), სისტემის გაუმჯობესების (Software Evolution) და ოპერაციული გარემოს გაუმჯობესების (DevOps) მექანიზმები.

სისტემის მდგრადობა დამოკიდებულია შემდეგ კომპონენტებზე:

  1. Availability (მზადყოფნის დონე) – სისტემის უნარი მოახდინოს სერვისი მიწოდება საჭიროების დადგომისთვანავე;
  2. Reliability (სრულფასოვნების დონე) – სისტემის უნარი უნდა მიაწოდოს სერვისი მისთვის დადგენილი მონაცემთა დამუშავების და გაცემის ნორმების შესაბამისად;
  3. Safety (უწყვეტობის დონე) – სისტემის უნარი მოახდინოს სერვისის მიწოდება,  მისთვის დადგენილი უწყვეტობის პარამეტრების შესაბამისად;
  4. Security (უსაფრთხოების დონე) -სისტემის უნარი წინ აღუდგეს მის ოპერირების გარემოში შეღწევის და აკრძალული ინსტრუქციების გენერირებას არასანქცინირებული ოპერატორების მიერ;
  5. Resilence (აღდგენის უნარი) – სისტემის უნარი, მოაახდინოს სერვისის მიწოდების განახლება ავარიული ინციდენტის მოხდენის შემდეგ.
  6. Maintainability (განახლებადობის უნარი) – სისტემის უნარი მოახდინოს ახალი ფუნქციონალური შესაძლებლობის ინტეგრაცია, მდგრადობის სხვა პარამეტრების დასუსტების გარეშე;
  7. Error tolerance (შეცდომებისთვის მზადყოფნის დონე) – სისტემის უნარი პრევენცია გაუკეთოს მისთვის მიწოდებული არაკორექტული მონაცემების მიწოდებას და დამუშავებას.

 

პრაქტიკული თვალსაზრისით, სისტემის მაღალი მდგარადობა მიიღწევა მისი ფუნქციონირების წარმადობის დეგრადაციის ხარჯზე. ამიტომ სისტემის შემუშავების დროს სამუშაო ჯგუფმა, მუდმივად უნდა იფიქროს მათ შორის კომპრომისზე. სისტემის მაღალი მდგარადობის  მიიღწევა, ასევე  სისტების შექმნის ხარჯების გაზრდის წყაროა, რადგან ითხოვს სამუშაო ჯგუფის უფრო ინტენსიური და დეტალური მუშაობას (ზოგ შემთხვევაში ძვირადრირებულ გარე რესურსების მობილიზებას).

სისტემის მდგრადობის დეგრადაციის, წარმოშობის მიზეზები შესაძლებელია იყოს:

  1. System hardware components may fail because of mistakes in their design or manufacturing errors – სისტემის აპარატული ნაწილის დიზაინის შექმნის და წარმოების დროს დაშვებული შეცდომები;
  2. System software may fail due to mistakes in its specification, design or implementation – სისტემის პროგრამული უზრუნველყოფის  დიზაინის შექმნის, კოდის დაწერის და დანერგვის დროს დაშვებული შეცდომები
  3. Human operators of the system may fail to operate the system correctly – ადამიანური ფაქტორით გამოწვეული შეცდომები;

სისტემის არამდგრადი ფუნქციონირება, ზოგ შემთხვევაში შესაძლებელია შეუმჩნეველი იყოს (მაგ.  კომპანიის საინფორმაციო პორტალი) ზოგ შემთხვევაში კი გამოიწვიოს სერიოზული ფინანსური დანაკარგები (მაგ: ელექტრონული საგადამხდელო სისტემის შეფერხება).

კრიტიკულუბის თვალსაზრისით სისტემების იყოფიან შემდეგი კატეგორიებიებად:

  1. Safety-critical systems – სისტემის არამდგრადობამ შეიძლება გამოიწვიოს,  ადამიანთა სიცოცხლისთვის ან ბუნებრივი გარემოსთვის საზიანო შედეგები;
  2. Mission-critical systems – სისტემის არამდგრადობამ შეიძლება გამოიწვიოს მიზნების მიღწევის შეფერხება ან შეუსრულებლობა;
  3. Business-critical systems. – სისტემის არამდგრადობამ შეიძლება გამოიწვიოს, კომპანიის ბიზნეს აქტივობის სერიოზული შეფერხება და ფინანსური ზარალი;
  4. Security critical systems – სისტემის არამდგრადობამ შეიძლება გამოიწვიოს,  მონაცემების მთლიანობის დარღვევა, დაკარგვა და მოპარვა.

კრიტიკული სიტემების მნიშვნელობისდან გამომდინარე, მათი ფუნქციონირების დროს საფრთხეებისწარმოშობის შემცირებისთვის, გამოყენებული უნდა იქნეს მინიმალური რისკის შემცველი ინსტრუმენტები, პროცესები და რესურსები.

სისტემის ხელმისაწვდომობა და მდგრადობა – Availability and reliability

 საინფორმაციო სისტემის სერვისების ხელმისაწვდომობის (Availability) და მისი სრულფასოვანი მიწოდებისთვის (Reliability),  პრაქტიკული თვალსაზრისით ეფექტურია შემდეგი აქტივობების ჩატარება:
  1. Fault avoidance. ისეთი  სისტემის შექმნის ინსტრუმენტების გამოყენება, რომლებიც უზრუნველყოფს, სისტემაში ხარვეზების არ არსებობას და მათ ფუნქციონირების შეცდომების პრევენციას რეალური ზიანის მოტანამდე.
  2. Fault detection and removal. The use of verification and validation techniques that effectively helps to detect and remove the faults before the system is used. –  სისტემის შემოწმების, ოპერირების მონიტორინგის და მასში ცვლილებების განხორციელების გეგმის დადასტურების მექანიზმების შექმნა, რომელიც მოახდენს ფუნქციონირების შეცდომების პრევენციას რეალური ზიანის მოტანამდე.
  3. Fault tolerance.  სიტემაში ისეთი მექანიზმების დანერგვა, რომელიც სისტემის  კომპონენტების შეცდომების დროს არ გამოიწვევს სისტემის ფუნქციონირების შეწყვეტას.

სისტემის უსაფრთხოება – Security

თანამედოვე ციფრულ (გლობალურ ინტერნეტ) სამყაროში, კონკრეტული სისტემის საჭიროებებიდან გამომდინარე, სისტემის მდგარდობის უზრუნველყოფა უნდა მყარდებოდეს ინფორმაციული უსაფრთხოების კუთხით (Information Security), კერძოდ  პრევენციული მეთოდებით უნდა წარმოებს შემდეგი მიმართულებებით:

  1. Confidentiality – მონაცემების კონფიდენციალობა;
  2. Integrity – მონაცების მთლიანობა;
  3. Authentication -მონაცემებთან წვდომის კონტროლი;
  4. Availability – მონაცემების გაცემის უზრუნველყოფა;
  5. Authorization – სისტემაში მომხმარებლისთვის მისთვის დადგენილი უფლებების მინიჭება;
  6. Non-repudiation  –  მომხმარებლის მიერ, სისტემაში განხორციელებული ქმედების უარყოფის პრევენციის მექანიზმი;
  7. The software is secure against known and unknown vulnerabilities – სისტემის მდგრადობა ცნობილ  და უცნობ საფრთხეების მიმართ;
  8. Software data is secure – მონაცემთა განთავსების და წვდომის მართვა;
  9. The software is according to all security regulations – სისტემის საინფორმაციო სისტემების უსაფრთხოების სტანდარტებთან შესაბამისობა;
  10. Input checking and validation – სისტემისათვის დასამუშავებლად დამახინჯებული ინფორმაცის გადაცემის პრევენცია და კონტროლი;
  11. SQL insertion attacks –  მონაცემთა ბაზებთან ურთიერთობის საშუალებების კონტროლი;
  12. Injection flaws – მონაცემთა ბაზებთან ურთიერთობის კოდებში, უცხო კოდების ჩაცვლების პრევენცია;
  13. Session management issues – სისტემასთან ურთიერთობის არხების მონიტორინგი და კონტროლი;
  14. Cross-site scripting attacks –  სისტემებს შორის ურთიერთობის არხების უსაფრთხოება და კონტროლი;
  15. Buffer overflows vulnerabilities – მონაცემთა დამუშავების შუალედური მოდულების გადავსების კონტროლი;
  16. Directory traversal attacks – HTTP  კოდის აკრძალვა, რომელიც ცდილობს სისტემის, მონაცემთა სტრუქტურის შესწავლას (#).

აღნიშნული ამოცანების უზრუნველყოფა შესაძლებელია შემდეგი ხერხებით:

  1. Vulnerability avoidance.  – სისტემის დიზაინი კრიტიკულობის შესაბამისად ახდენს შეტევებისადმი მდგრადობის უზრუნველყოფას;
  2. Attack detection and neutralization – შეტევების მომიტორინგის, აღმოჩენის და ნეიტრალიზაციის აქტივობების შექმნა;
  3. Exposure limitation.- შეტევების გავლენის მინიმიზირება, სისტემის ფუნქციონირების ზონებად დანაწევრებით.

კრიტიკული სისტემების შექმნა – Critical systems development

კომპიუტერულმა ტექნოლოგიების სწრაფმა განვითარებამ, ინფორმაციული სისტემების შექმნის მეთოდების (Software Engineering) და ხარისხის მართვის (Quality Management) ინსტრუმენტების მიმართ, ახალი პირობები დააყენა და ეს მოთხოვნები სულ უფრო მკაცრდება, დღის წესრიგში დგება სისტემის მდგრადობის უზრუნველყოფის ახალი სტანდარტები, რომელთა განვითარება მიმდინარეობს შემდეგი სამი მიმართულებით:

  1. Fault avoidance – პროგრამული სისტემების შექნის დროს გამოიყენება მეთოდები და ინსტრუმენტების, რომლების უზრუნველოფენ მინიმალურ ნარჩენ შეცდომებს და შედეგად უზრუნველყოფენ მაღალ მთლიანი სიტემის მაღალ მდგრადობას;
  2. Fault detection. The verification and validation processes are designed to discover and remove faults in a program before it is deployed for operational use. –   გამოიყენება სისტემაზე დაკვირვების ანალიზის და კორექტივების მექანიზმები, რომლეთა შაშუალებისც ფიქსირდება სისტემის ფუნქციონირების ხარვეზები. შედეგად მაღლდება სისტემის მდგრადობა ახალი გამოწვევების მიმართ;
  3. Fault tolerance. The system is designed so that faults or unexpected system behaviour during execution are detected and managed in such a way that system failure does not occur. – სისტემის კონსტრუირების და შექმნის დროს, გამოიყენება სისტემის კომპონენტის შეფერხების ან მწყობრიდან გამოსვლის შედეგად, მთლიანი  სისტემის მდგრადობის შენარჩუნების ინსტრუმენტები.

სისტემის მდგრადობის და ალტერნატიული ოპერირების მექანიზმები – Redundancy and diversity

 საინფორმაციო სისტემის მდგრადობის უზრუნველყოფის ამოცანაში, Redundancy  (მდგრადობის მექანიზმი) და Diversity – (ოპერირების დივერსიფიკაცია) ძირითადი,  ფუნდამენტური  მცნებებია.

 ქვემოთ წარმოდგენილ დიაგრამაზე ვიტყვით რომ, სისტემაში მდგრადობის მექანიზმი უზრუნველყოფილია, რადგან ორგანიზაციის მართვის ქვეშ მყოფი ინფრასტრუქტურაში, ინტერნეტ რესურსებთან წვდომის მდგრადობის უზრუნველსაყოფად, მარჯვენა მხარეს (ძირითადი არხი) არსებული მოწყობილობების მწყობრიდან გამოსვლის შემთხვევაში,  ფუნქციონირებას იწყებს მარცხენა მხარის  (სათადარიგო) შესაბამისი მოწყობილობა, რომელიც სისსტემის ოპერირების ნორმალურ რეჟიმი არა აქტიურია, მხოლოდ ამუშავებს, ძირითადი კომპონენტის აქტივობის სიგნალებს და აქტიურდება მარჯვენა მხარეში შეფერხების სიგნალის მიღებისთანევე.  კომპანიის მართვის გარეთ კი ინტერნეტ რესურსებთან წვდომა დივერსიფიცირებულია,  ორი სხვადასხვა ინტერნეტ ოპერატორის სერვისის სარგებლობით.

Image result for redundant network

Redundant and  Diversified network

სტატიის დასასრულს უნდა ვთქვათ, რომ სისტემის მდგრადობის უზრუნველყოფა, მისი კომპონენტების კრიტიკულობა, შესაბამისი უნდა იყოს ორგანიზაციის მიზნების, რადგან მაღალი ხარისხის მდგრადი სისტემა, თავისთავად მოითხოვს შესაბამის ინვესტიციებს სისტემის დიზაინის, შექმნის და მომსახურებისთვის უზრუნველყოფისთვის.

საკითხავი მასალა:

  • Statistics for Software #1
  • Critical Systems #1, #2
  • Critical Systems Engineering #1,

  • System Dependability by Ian Somerville #2

  • Software Systems Performance & Dependability #1

დავალება:

  1. დაასახელეთ სისტემის მდგრადობის განმსაზღვრელი კომპონენტები. მოიყვანეთ მაგალითები.
  2. დაასახელეთ სისტემის მდგრადობის დაზიანების წარმოშობის შესაძლო წყაროები, მოიყვანეთ მაგალითები.
  3. დაასახელეთ კრიტიკული და არაკრიტიკული სისტემები. რა კრიტერიუმით განსაზღვრეთ მათი ისინი?
  4. რა კავშირის სისტემის მაღალ მდგრადობასა და სისტემის შექმნის ხარჯებს შორის ?
Advertisements

2 thoughts on “SE#10.1 საინფორმაციო სისტემის მდგრადობა (System Dependability)

  1. Pingback: SE#13.1 Information Security and Cyber Security | IN@TIMES

  2. Pingback: SE#1.1 Introduction to Software Engineering | IN@TIMES

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s