Słownik terminów bezpieczeństwa IT.

Słownik skupia się głównie na pewnych aspektach bezpieczeństwa informatycznego.

UWAGA – słownik aktualnie w trakcie tworzenia – sukcesywnie będą pojawiać się tutaj nowe hasła i uzupełniane już istniejące.


3DES – triple-DES, algorytm kryptograficzny, potoczna nazwa algorytmu Triple Data Encryption Algorithm (TDEA lub Triple DEA), który odnosi się do potrójnego zastosowania standardu Data Encryption Standard (DES) dla każdego bloku danych. Długość klucza dla DES wynosi 56 bitów, więc długość klucza dla 3DES wynosi 3×56 = 168 bitów. Po długości klucza można spróbować rozpoznać algorytm szyfrowania. Oryginalne kodowanie DES z wielkością 56 bitów było ogólnie wystarczające w czasach, kiedy algorytm został opublikowany, ale zwiększająca się moc obliczeniowa komputerów, przyspieszyła metody słownikowe i umożliwiła szybsze łamanie kluczy. 3DES po prostu zwiększył długość klucza aby zabezpieczyć się przed tego rodzaju atakami, bez potrzeby projektowania całkowicie nowego algorytmu kodowania bloków danych.

A – rekord odnośnika (linka) w języku HTML. Może odnosić się do zasobów lokalnych (te same źródło, ten sam serwer), jak i zewnętrznych. Można zdefiniować w nim protokoły komunikacji: http, ftp, https, ssh – lecz obecnie, ze względów bezpieczeństwa, stosuje się jedynie odnośniki do protokołów http i https.

AAA – authentication, authorization and accounting. Procesy autentykacji (badania tożsamości), autoryzacji (określenie możliwości konkretnych działań) i parametrów kont użytkowników w systemach serwerów, baz danych, aplikacji webowych itp.

AAC

ACL – access control list, lista kontroli dostępu zawierająca nazwę użytkownika, zakres jego uprawnień oraz inne parametry. Lista może dotyczyć dostępów do serwerów, baz danych, aplikacji webowych, zasobów danych itp.

AD – active directory. Usługa katalogowa w systemach Windows. Określa relacje między obiektami: grupa, komputer, użytkownik i gromadzi je w bazie, ułatwiając zarządzanie i kontrolę.

AES – Advanced Encryption Standard (AES) – Algorytm szyfrowania danych, odwracalny. Specyfikacja kodowania danych elektronicznych ustanowiona przez NIST w 2001. Opiera się o kodowanie Rijndael stworzone przez dwóch belgijskich kryptografów: Joan Daemen’a i Vincent’a Rijmen’a, którzy zgłosili propozycję do NIST podczas wybierania standardu AES. Rijndael jest rodziną kodów z różnymi kluczami i wielkościami bloków. Dla AES, NIST wybrało trzy kody z rodziny Rijndael, każdy o długości bloku 128 bitów, ale o trzech różnych długościach kluczy: 128, 192 i 256 bitów. Mamy więc AES128, AES192 i AES256. AES zostało zaakceptowane przez władze USA i jest obecnie powszechnie używane na świecie. Zastąpiło standard DES, który został upowszechniony w 1977. Algorytm opisywany przez AES jest oparty o symetryczne klucze, co oznacza, że ten sam klucz jest używany do kodowania i dekodowania danych.
Nazwa Rijndael (Dutch pronunciation: [ˈrɛindaːl]) jest utworzona z nazwisk twórców (Joan Daemen and Vincent Rijmen).

ASA – advanced security appliance – urządzenia UTM / firewall produkowane przez CISCO, od prostych ASA5505, do rozbudowanych systemów ASA5580.

Bitcoin – wirtualna waluta w środowisku hackerskim i nie tylko. Za jej pomocą opłaca się też np. ataki hackerskie, ataki DoS… 1 bitcoin to aktualnie ok. 132 Euro. Zobacz aktualny kurs

BSD – Berkeley Software Distribution, jądro systemów operacyjnych typu UNIX, na bazie którego stworzono systemy FreeBSD, OpenBSD, NetBSD oraz szereg systemów komercyjnych. Mniej popularne niż jądro Linux, czyli bardziej bezpieczne (mniej wykrytych podatności, dziur i exploitów).

Firewall – zapora ogniowa, kontroluje ruch sieciowy w oparciu o protokoły warstwy od 2 do 4 (ethernet, IP, TCP, ICMP, UDP). Może filtrować adresy MAC, IP, protokoły TCP/UDP (porty), są też wersje zaawansowane działające również w wyższych warstwach. Może pełnić funkcję rutera i/lub translatora adresów NAT.

GPG – opensource’owa, darmowa realizacja systemu Pretty Good Privacy, PGP. Umożliwia praktycznie to samo co PGP.

IDS – intrussion detection system. System służący do wykrywania zagrożeń na podstawie obserwacji ruchu sieciowego i wyłapywania specyficznych charakterystycznych parametrów pakietów i samych pakietów. IDS generuje ostrzeżenia, lecz nie blokuje ruchu. Służy jedynie do wykrywania potencjalnych zagrożeń.

Injection – wstrzykiwanie. Rodzaj działań i ataków polegających na wprowadzaniu kodu do systemu / aplikacji za pomocą różnych metod: wklejania fragmentów kodów, wypełniania formularzy, formatowania URL, ładowania plików i innych. Systemy i aplikacje powinny posiadać ścisłą kontrolę danych wprowadzanych do systemu, zarówno danych binarnych, jak i tekstowych. W ramach injection funkcjonują m.in. SQL Injection, Code Injection, Script Injection, Variable Injection.

IPS – intrussion prevention system. System zapobiegania zagrożeniom, aktywnie blokujący ruch sieciowy w przypadku wykrycia podejrzanych / groźnych charakterystycznych pakietów. IPS jest systemem aktywnym – wykrywa i blokuje zagrożenia, w przeciwieństwie do IDS, który jedynie wykrywa i loguje / informuje.

Java – uniwersalny, obiektowy język programowania, którego podstawową cechą jest uniwersalność (aplikacje javy można uruchamiać na bardzo wielu różnych urządzeniach), wystarczy raz „napisać” aplikację, aby można ją było uruchamiać wszędzie. Do tego celu stworzono specjalny system Java Virtual Machine, który służy do uruchamiania aplikacji Java i stanowi „środowisko uruchomieniowe”. Jest o tyle bezpieczny, że pracuje na własnym wirtualnym środowisku, a dostęp np. do urządzeń jest kontrolowany przez uprawnienia dla JVM.

Java Virtual Machine – specjalny wirtualny „system” służący do uruchamiania aplikacji napisanych w Java. Dostępny praktycznie dla każdego systemu operacyjnego, zarówno ogólnodostępnego, jak i wbudowanego (embedded). Aby móc uruchamiać programy Java, należy mieć zainstalowaną ostatnią stabilną wersję (ze względu na bezpieczeństwo i możliwości)

Javascript – język skryptowy, obiektowy, podobny nieco do Javy, często używany w aplikacjach webowych po stronie klienta. Za jego pomocą można realizować np. ataki XSS, script injection, przekierowania, nakładki okien itp. Posiada dostęp do pewnych danych użytkownika, np. ciasteczek (cookies) sesji, umożliwia przesyłanie parametrów miedzy różnymi stronami.

Linux – jądro systemu stworzone przez Linusa Torvaldsa w roku 1991. Bazował na jądrze Minix, które Linus nieco przerobił i uzupełnił (korzystając z języków C oraz asemblera). Zasadniczo jest podobny do systemów UNIX / BSD – posiada podobną strukturę plików i katalogów. Nie jest zgodny z systemami Windows (struktura, parametry, kod). Obecnie bardzo rozbudowane jądro Linux stanowi bazę wielu dystrybucji (systemów operacyjnych z jądrem Linux), z których najpopularniejsze to Debian, Ubuntu, Fedora, jak również dystrybucji komercyjnych jak Suse, czy RedHat.

MD5 Algorym haszujący (hash algorithm), albo message-digest enerujący hasza (hash) o długości 128-bitów, jeden z najpopularniejszych , czyli nieodwracalnie kodujący dane wejściowe. . MD5 został zaprojektowany przez Rona Rivesta, jako następca wcześniejszego MD4. Efektem kodowania MD5 jest najczęściej 32 cyfrowa liczba szesnastkowa. W 1996 znaleziono podatność w MD5, która wprawdzie nie była krytyczna, ale zaczęto rekomendować inne algorytmy, takie jak np. SHA-1. W 2004 pokazano, że MD5 nie jest odporny na kolizje (można wygenerować taki sam kod dla różnych danych wejściowych), dlatego nie zaleca się używania MD5 w aplikacjach, które wymagają tej odporności (jak np. certyfikaty SSL, czy podpisy elektroniczne). W 2004 odkryto kolejne podatności w MD5 co poddaje w wątpliwość używanie tego algorytmu w ważnych aplikacjach.

OpenBSD – System operacyjny oparty na jądrze BSD, stworzony i rozwijany przez Theo de Raadta od 1997 roku. System określany jako jeden z najbardziej bezpiecznych systemów (tylko dwie znalezione dziury dla standardowej instalacji od dłuższego czasu..). Popularny również ze względu na kilka wdrożonych rozwiązań, takich jak OpenSSL, OpenBGP, OpenSSH, pf… które to rozwiązania znalazły zastosowanie również np. w systemach opartych o jądro Linux, a nawet systemach Windows. Czasem nieco niedoceniany, ale OpenBSD posiada rozbudowany system paczek-pakietów / portów, zapewniający całą gamę przydatnych aplikacji, włącznie z systemem X-window i managerami Gnome, KDE i innymi. Aktualna wersja to 5.4 opublikowana 1 listopaa 2013. Zapewnia wsparcie dla kilku architektur (procesorów), w tym Intel x86, Intel x64, alpha, arm, macppc, sparc64 i inne.

Perl Język programowania, interpretowany, skryptowy (instrukcje wykonywane są tak, jak są napisane). Używany również w aplikacjach webowych jako skrypty CGI. Uniwersalny, dający sporo możliwości, jednak czasem nieco zagmatwany w składni.

PGP – pretty good privacy, stworzony przez Phila Zimmermanna w 1991 roku. Oprogramowanie służące do cyfrowego podpisywania (signing), kodowania (encryption), kompresji (compression) oraz używania systemu PKI. Może służyć do obsługi np. bezpiecznej poczty (nadawca i adresat tylko za pomocą kluczy mogą pisać i odczytywać wiadomości). PGP zapewnia rzetelność, autentyczność, kompatybilność, poufność informacji otrzymywanych pocztą elektroniczną. Wysłanie i odczytanie wiadomości wymaga posiadania kluczy.

PKI – public key infrastructure. Struktura klucza publicznego, zapewniająca poufność i autentyczność informacji. Jest częścią m.in. PGP.

PHP Język programowania PHP Hypertext Preprocesor, działający po stronie serwera, nie przeglądarki klienta (w przeciwieństwie do Javascript), dający spore możliwości tworzenia dynamicznych stron. Efektem działania aplikacji napisanej w PHP jest najczęściej kod HTML / CSS. Z poziomu użytkownika nie da się bezpośrednio znaleźć kodu PHP, który jest umieszczony na serwerze. Do detekcji PHP używa się technik obserwacji (np. nazw stron, kończących się na .php, lub .php5), lub formacie URL.

Rails – Framework aplikacyjny dla języka Ruby.

Rainbow table – tablica zawierająca zestaw hashy dla najpopularniejszych (dużej ilości) haseł. Za pomocą Rainbow tables można próbować odczytać / odgadnąć hasło poprzez proste przeszukanie i porównanie. Tablica najczęściej zawiera pary hash – hasło, generowane dla kilku standardów, np. MD5, SHA-1. Atak polega na porównaniu oryginalnego hasha hasła z tablicą, jeśli znajdzie się pasujący wynik to hasło jest odgadnięte. Co ciekawe odgadnięte hasło nie musi odpowiadać oryginalnemu, wystarczy, że wygeneruje takiego samego hasha (algorytmy hashujące starają się unikać takich wad). Metoda rainbow tables należy do klasy ataków brute force / słownikowych (atakuje się tak długo, aż pozyska się hasha, następnie przeszukuje tablicę aby znaleźć pasujące). Pewnym utrudnieniem dla metod słownikowych / brute force jest zastosowanie przyprawy, albo inaczej soli (salt) do haseł.

RubyJęzyk programowania dla aplikacji webowych.

SHA-1 Algorytm hashujący, generujący hash o długości 160 bitów dla bloku danych wejściowych.

SIEM

SQL – structured query language, język zapytań strukturalnych, używany w relacyjnych bazach danych. Posiada kilka implementacji, w różnych systemach baz danych, w tym najpopularniejsze to: MySQL, PostgreSQL, MSSQL, Oracle, DB2 i inne. Często uzupełniany o dodatki np. T/SQL, PL/SQL.

SSL – secure socket layer, kodowana warstwa sieci, zapewniająca szyfrowanie transmisji. Dane „po łączu” są zaszyfrowane, aby je odczytać należy posiadać klucz. Nadawca szyfruje kluczem dane wysyłane, odbiorca deszyfruje swoim kluczem dane otrzymane. W przypadku braku kluczy niemożliwe jest odczytanie treści. System opiera się na kluczach prywatnych i publicznych. Najczęściej używana technika kluczy niesymetrycznych (prywatny + publiczny). Za pomocą SSL realizowane są protokoły HTTPS, FTPS, IMAPS, POP3S.

SSH – Secure Shell

UNIX – nazwa rodziny systemów operacyjnych opartych o pewne charakterystyczne parametry. Do rodziny Unix należy m.in. HP-UX, IBM AIX, Oracle Solaris, SCO-Unix, częściowo oparte są na nim BSD oraz Linux.

UTM – unified threat management, urządzenie łączące w sobie funkcje firewalla, IDS, IPS, Application Gateway, zdolne do kontrolowania ruchu na prawie wszystkich warstwach modeli OSI (prócz fizycznej, kablowej). Może pełnić rolę rutera, antywirusa, klienta/serwera VPN, SSL, http-proxy, email-proxy, spam-filtru, analizatora pakietów itd. Najczęściej jest to wyspecjalizowany komputer (wiele UTM to systemy Linux / FreeBSD / OpenBSD z dołożonym autorskim oprogramowaniem) z kilkoma interfejsami sieciowymi (najczęściej 2 do 8, zdarzają się też większe ilości portów)

VPN – virtual private network, rozwiązanie tworzące wirtualny (jedynie logiczny) kanał komunikacyjny (tunel) za pomocą wirtualnych interfejsów sieciowych. Interfejsy fizyczne są „przezroczyste” dla połączeń VPN. Najczęściej oparte o tunelowanie ruchu sieciowego z szyfrowaniem połączenia i szyfrowaniem transmisji. Stosuje się klucze symetryczne, klucze niesymetryczne, PSK (pre-shared key). Istnieje wiele rozwiązań VPN, w tym np. z użyciem tunelowania SSH, IPSec, L2TP, PPTP, natywnych klientów (CISCO, Hamachi) lub popularnego rozwiązania OpenVPN. VPN pozwala na zrealizowanie bezpiecznej transmisji. Transmisja daje również możliwość zastosowania kompresji przesyłanych danych

WEP Protokół w sieci radiowej WiFi – należy do klauzuli 8.2 standardu 802.11. WEP jest szyfrowaniem wymiany danych w sieciach radiowych, lecz informacje znajdujące się poza punktem dostępowym nie są chronione. Podczas fazy projektowania wystąpiło wiele niedociągnięć, a ostatecznie standard został „złamany” w 2001 roku, gdzie wykazano wady klucza kryptograficznego. Do ochrony danych w standardzie WEP wykorzystuje się algorytm RC4, który jest symetrycznym szyfrem strumieniowym z kluczem poufnym. Szyfr strumieniowy korzysta z ciągu bitów zwanych strumieniem klucza, które w połączeniu z komunikatem tworzą szyfrogram. W celu odkodowania wiadomości, odbiorca musi użyć identycznego strumienia do tego, który został użyty do zaszyfrowania wiadomości. Podczas szyfrowania metodą RC4 zostaje wykorzystana operacja różnicy symetrycznej XOR. Obecnie standard WEP nie jest zalecany i określany jako bardzo mało bezpieczny sposób ochrony sieci radiowych, dlatego czasem spotyka się określenie Weak Encryption Prococol – słaby protokół szyfrowania

WPA Wireless

WPA2 Wireless

XSF – cross site forging. Specjalny atak koncentrujący się na „przejęciu” lub „symulacji” zalogowanego użytkownika, prób wykorzystania jego danych autoryzacyjnych w celu uzyskania dostępu do danych chronionych / niejawnych / zasobów dostępnych tylko po zalogowaniu. Aplikacja „ma wrażenie”, że użytkownik jest poprawnie zalogowany. Służy głównie do pozyskania sposobów obejścia autoryzacji / autentykacji użytkownika.

XSS – cross site scripting, jeden z rodzajów ataków „między-aplikacyjnych”, gdzie skrypt umieszczony na serwerze może bez kontroli wymieniać dane z innymi stronami/aplikacjami. Przykładowo może służyć do wyświetlenia zawartości pliku cookies, przekierowania ruchu, ataków phishingowych. Skrypt można „wstrzyknąć” do formularzy, źle kontrolowanych adresów URL, danych ciasteczek itd. Udany atak objawia się możliwościa wykonania kodu poza strukturą strony (odwołanie do zewnętrznych zasobów, w tym zasobów plików malware)

to be continued and expanded…