Przedstawienie problematyki bezpieczeństwa systemów komputerowych systemów komputerowych należy rozpocząć od zdefiniowania pojęcia bezpieczeństwa. Niestety trudno skonstruować uniwersalną i jednoznaczną definicję tego pojęcia, która pokryłaby wszystkie oczekiwania stawiane w tej dziedzinie systemom komputerowym. Literatura przedmiotu podaje bardzo dużo, często znacznie odbiegających od siebie definicji. Przykład ciekawej definicji można znaleźć w [1]:
Bezpieczeństwo jest elementem szerszego kontekstu, nazywanego wiarygodnością systemu komputerowego. W kontekście tym wyróżnia się w sumie cztery atrybuty wiarygodności:
O doniosłości problematyki bezpieczeństwa dla współczesnej cywilizacji decyduje przede wszystkim wszechobecność technik komputerowych. W szczególności rozważyć należy następujące zagadnienia:
Zagrożenia bezpieczeństwa mają różną naturę. Mogą być najzupełniej przypadkowe lub powstać w efekcie celowego działania. Mogą wynikać z nieświadomości lub naiwności użytkownika, bądź też mogą być motywowane chęcią zysku, poklasku lub odwetu. Mogą pochodzić z zewnątrz systemu lub od jego środka.
Większość działań skierowanych w efekcie przeciwko bezpieczeństwu komputerowemu jest w świetle aktualnego prawa traktowana jako przestępstwa. Możemy tu wyróżnić w szczególności:
Istotne jest, iż w przypadku jurysdykcji większości krajów europejskich, praktycznie wszystkie przypadki naruszające bezpieczeństwo wyczerpują znamiona przestępstw określonych w obowiązującym prawie.
W Polsce w szczególności mają tu zastosowanie:
(http://www.gazeta-it.pl/prawo/przestepstwa_komputerowe.html)
Zazwyczaj przestępstwa te nie są ścigane z oskarżenia publicznego, lecz na wniosek pokrzywdzonego.
W kontekście bezpieczeństwa komputerowego powszechnie spotyka użycie popularnego terminu hacker na określenie osoby podejmującej atak. Termin ten oryginalnie nie posiadał wydźwięku pejoratywnego. Wg „The Hacker's Dictionnary" (Guy L. Steele et al.) hacker jest to (1) osoba, której sprawia przyjemność poznawanie szczegółowej wiedzy na temat systemów komputerowych i rozszerzanie tej umiejętności, w przeciwieństwie do większości użytkowników, którzy wolą uczyć się niezbędnego minimum; (2) osoba, która entuzjastycznie zajmuje się programowaniem i nie lubi teorii dotyczącej tej dziedziny. W związku z tym w niniejszych materiałach stosować będziemy bardziej odpowiednie terminy (zależnie od typu rozważanego ataku), takie jak: cracker, intruz, włamywacz, napastnik, wandal czy po prostu - przestępca.
Przykłady ataków na systemy informatyczne znaleźć można w wielu dziedzinach życia osobistego, gospodarki, przemysłu czy funkcjonowania organów państwowych. Przykładowo w 1997 r. CIWARS (Centre for Infrastructural Warfare Studies) odnotował 2 incydenty (w Brazylii i w Australii) zaciekłej konkurencji gospodarczej, w których zaatakowały się wzajemnie (omawianymi później atakami SYN flood) konkurujące ze sobą firmy ISP (operatorzy dostępu do Internetu). Jako działania anarchistyczne można sklasyfikować przykładowo incydent z 1997 r., w którym grupa Damage Inc. zastąpiła witrynę Urzędu Rady Ministrów stroną proklamującą utworzenie Hackrepubliki Polskiej i Centrum Dezinformacyjnego Rządu z odsyłaczami do playboy.com. Być może jako terroryzm natomiast - incydent z 1998 r., gdy w akcie protestu przeciwko próbom nuklearnym grupa Milw0rm zaatakowała systemy indyjskiego BARC (Bhabba Atomic Research Center).
Elementarne składniki systemu informatycznego jakie należy wyróżnić przy omawianiu problematyki bezpieczeństwa to:
Problematyka bezpieczeństwa, jak każda dziedzina, podlega pewnym ogólnym prawom, niektórym sformalizowanym, innym - nieformalnym. Można wyróżnić pewne truizmy obowiązujące podczas projektowania i realizowania zabezpieczeń. Niektóre z nich to:
Skoro zatem nie mamy 100% bezpieczeństwa, jaki jego poziom można uznać za zadowalający? Otóż wydaje się, że najwłaściwszą odpowiedzią na to pytanie jest - taki, który okaże się dla atakującego na tyle trudny do sforsowania, wymagając operacji żmudnych lub czasochłonnych, iż uczyni to atak nieatrakcyjnym lub nieekonomicznym (lub oczywiście nieopłacalnym wg innego kryterium obranego przez atakującego). Zatem należy na tyle utrudnić włamywaczowi atak, aby z niego zrezygnował widząc marne, choć nadal niezerowe, szanse powodzenia.
Wzrost poziomu bezpieczeństwa odbywa się kosztem wygody. Użytkownicy systemu pragną przede wszystkim efektywności i wygody swojej pracy.
Opracowanie skutecznych zabezpieczeń jest problemem bardzo złożonym. Wymaga uwagi i systematyczności na każdym etapie. Niewątpliwie decydujące znaczenia ma etap projektowy, na którym popełnione błędy mogą być nienaprawialne w kolejnych etapach. Etap projektowy powinien rozpocząć się od wypracowania strategii firmy dotyczącej bezpieczeństwa (i to nie wyłącznie systemu informatycznego). Polega to w ogólnym schemacie na odpowiedzi na następujące pytania:
Zasoby jakie mogą podlegać ochronie obejmują m.in. (w zależności od typu instytucji, dziedziny działalności itp.):
Zagrożenia jakie należy rozważyć stanowią m.in.:
Polityka bezpieczeństwa stanowi element polityki biznesowej firmy. Jest to formalny dokument opisujący strategię bezpieczeństwa. Jej realizacja podlega oczywistym etapom:
Szczególnie godnym podkreślenia jest etap 3. odzwierciedlający ciągłą ewolucję jaką przechodzą działalność firmy, środowisko rynkowe jej funkcjonowania, zagrożenia i technologie obrony. Wymaga to ciągłego "trzymania ręki na pulsie".
Zakres tematyczny jaki powinna obejmować polityka bezpieczeństwa to:
Polityka bezpieczeństwa winna definiować środki jej realizacji obejmujące takie elementy jak:
Istnieje wiele dokumentacji poświęconej realizacji polityki bezpieczeństwa, w tym również norm i standardów międzynarodowych, którymi należy posiłkować się przy opracowywaniu własnej polityki bezpieczeństwa. Pod tym względem kanonem jest norma ISO/IEC Technical Report 13335 (ratyfikowana w naszym kraju jako PN-I-13335). Norma ta jest dokumentem wieloczęściowym obejmującym następujące zagadnienia:
Jednakże norm ISO dotyczących bezpieczeństwa jest wiele. Można tu wymienić chociażby bogaty podzbiór (wycinek listy do roku 1995):
ISO 2382-8:1986 Information processing systems - Vocabulary - Part 08: Control, integrity and security ISO 6551:1982 Petroleum liquids and gases - Fidelity and security of dynamic measurement - Cabled transmission of electric and/or electronic pulsed data ISO 7498-2:1989 Information processing systems - Open Systems Interconnection - Basic Reference Model - Part 2: Security Architecture ISO/IEC 7816-4:1995 Information technology - Identification cards - Integrated circuit(s) cards with contacts - Part 4: Interindustry commands for interchange ISO/IEC 9796:1991 Information technology - Security techniques - Digital signature scheme giving message recovery ISO/IEC 9797:1994 Information technology - Security techniques - Data integrity mechanism using a cryptographic check function employing a block cipher algorithm ISO/IEC 9798-1:1991 Information technology - Security techniques - Entity authentication mechanisms - Part 1: General model ISO/IEC 9798-2:1994 Information technology - Security techniques - Entity authentication - Part 2: Mechanisms using symmetric encipherment algorithms ISO/IEC 9798-3:1993 Information technology - Security techniques - Entity authentication mechanisms - Part 3: Entity authentication using a public key algorithm ISO/IEC 9798-4:1995 Information technology - Security techniques - Entity authentication - Part 4: Mechanisms using a cryptographic check function ISO/IEC 10118-1:1994 Information technology - Security techniques - Hash-functions - Part 1: General ISO/IEC 10118-2:1994 Information technology - Security techniques - Hash-functions - Part 2: Hash-functions using an n-bit block cipher algorithm ISO/IEC 10164-7:1992 Information technology - Open Systems Interconnection - Systems Management: Security alarm reporting function ISO/IEC 10164-8:1993 Information technology - Open Systems Interconnection - Systems Management: Security audit trail function ISO/IEC DIS 10181-1 Information technology - Open Systems Interconnection - Security Frameworks for Open Systems: Overview ISO/IEC DIS 10181-2 Information technology - Open Systems Interconnection - Security frameworks for open systems: Authentication framework ISO/IEC DIS 10181-3 Information technology - Open Systems Interconnection - Security frameworks in open systems - Part 3: Access control ISO/IEC DIS 10181-4 Information technology - Open Systems Interconnection - Security frameworks in Open Systems - Part 4: Non-repudiation ISO/IEC DIS 10181-5 Information technology - Security frameworks in open systems - Part 5: Confidentiality ISO/IEC DIS 10181-6 Information technology - Security frameworks in open systems - Part 6: Integrity ISO/IEC DIS 10181-7 Information technology - Open Systems Interconnection - Security Frameworks for Open Systems: Security Audit Framework ISO/IEC 10736:1995 Information technology - Telecommunications and information exchange between systems - Transport layer security protocol ISO/IEC 10745:1995 Information technology - Open Systems Interconnection - Upper layers security model ISO 11166-1:1994 Banking - Key management by means of asymmetric algorithms - Part 1: Principles, procedures and formats ISO 11166-2:1994 Banking - Key management by means of asymmetric algorithms - Part 2: Approved algorithms using the RSA cryptosystem ISO 11442-1:1993 Technical product documentation - Handling of computer-based technical information - Part 1: Security requirements ISO/IEC 11577:1995 Information technology - Open Systems Interconnection - Network layer security protocol ISO/IEC DIS 11586-1 Information technology - Open Systems Interconnection - Generic upper layers security: Overview, models and notation ISO/IEC DIS 11586-2 Information technology - Open Systems Interconnection - Generic upper layers security: Security Exchange Service Element (SESE) service specification ISO/IEC DIS 11586-3 Information technology - Open Systems Interconnection - Generic upper layers security: Security Exchange Service Element (SESE) protocol specification ISO/IEC DIS 11586-4 Information technology - Open Systems Interconnection - Generic upper layers security: Protecting transfer syntax specification ISO/IEC DIS 11586-5 Information technology - Open Systems Interconnection - Generic Upper Layers Security: Security Exchange Service Element Protocol Implementation Conformance Statement (PICS) ISO/IEC DIS 11586-6 Information technology - Open Systems Interconnection - Generic Upper Layers Security: Protecting Transfer Syntax Implementation Conformance Statement (PICS) ISO/IEC DIS 11770-1 Information technology - Security techniques - Key management - Part 1: Framework ISO/IEC DIS 11770-2 Information technology - Security techniques - Key management - Part 2: Mechanisms using symmetric techniques ISO/IEC DISP 12059-7 Information technology - International Standardized Profiles - OSI Management - Common information for management functions - Part 7: Security alarm reporting ISO/IEC DISP 12059-8 Information technology - International Standardized Profiles - OSI Management - Common information for management functions - Part 8: Security audit trail ISO/IEC DISP 12060-6 Information technology - International Standardized Profiles - OSI Management - Management functions - Part 6: Security management capabilities ISO/IEC DTR 13335-1 Information technology - Guidelines for the management of IT security - Part 1: Concepts and models for IT security ISO/IEC DTR 13335-2 Information technology - Guidelines for the management of IT security - Part 2: Planning and managing IT security (Future Technical Report) ISO/IEC DTR 13335-3 Information technology - Guidelines for the management of IT security - Part 3: Techniques for the management of IT security ISO/IEC TR 13594:1995 Information technology - Lower layers security ISO/IEC DIS 14980 Information technology - Code of practice for information security management
[1] Simson Garfinkel, "Practical Unix and Internet Security", II ed., O'Reilly, 2003