You are on page 1of 51

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

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

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

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

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

CYKL SZKOLEŃ
Z OBSZARU
ZARZĄDZANIA
BEZPIECZEŃSTWEM IT


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

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


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

������� � ��������
���������
�������������������� ��������� ���������
�����������
��������������������������������������������
��������������
��������������������������� �������
9/2010 (64)

SPIS TREŚCI

NARZEDZIA
gów programów backupowych? Wydajesz pieniądze
na modernizację serwera? To i tak nie daje pewności,
że w razie awarii odzyskasz pliki. Wiesz o tym! A prze-
6 Słuchawki iBOX HPI 99MV cież są prostsze sposoby zabezpieczenia najważniej-
7 MP4 iBOX Wee szych dla Twojej firmy danych.

34 Stanisław Rejowski

ATAK
Tempo przyrostu ilości cyfrowych danych zwiększa się
z roku na rok. Eksperci z International Data Corpora-
tion (IDC) prognozują, że do 2020 roku objętość cyfro-
8 Pisanie WIN32 shellcode w kompilatorze C wego wszechświata zwiększy się 67-krotnie, a w sa-
Didier Stevens mym tylko 2010 roku świat zaleje 1,2 zettabajtów in-
Czy trudno jest napisać shellcode w kompilatorze formacji elektronicznych. Co zrobić, by nie utonąć
C?Jeśli dokładnie przeczytasz ten tekst łatwo się te- w potopie elektronicznych informacji oraz jak efektyw-
go nauczysz.jeśli posiadasz doświadczenie w pisaniu nie przechowywać dane?
programów w WIN32 C/C++ i WIN32shelcode.

PRAKTYKA
18 Szkodliwe oprogramowanie dla gier –
kompletny ekosystem
Piotr Kupczyk
Jeszcze kilka lat temu nie do pomyślenia było, że ktoś 38 Neurony w komputerze
mógłby chcieć ukraść nam wirtualne przedmioty, pie- Wojciech Terlikowski
niądze, postaci lub konto z gry wideo. Teraz to rzeczy- Sztuczne sieci neuronowe posiadają wiele zalet, któ-
wistość, która dodatkowo stała się poważnym, zorga- re pozwoliły im stać się jedną z najpopularniejszych
nizowanym biznesem cyberprzestępczym. Biznesem, metod obliczeniowych sztucznej inteligencji. Znala-
na którym hakerzy zarabiają prawdziwe, nie wirtual- zły zastosowanie w rozwiązywaniu zadań klasyfika-
ne, pieniądze. A gracze i inni użytkownicy kompute- cji, aproksymacji jak i predykcji. Artykuł przedstawia
rów cierpią... podstawowe zagadnienia związane z budową i ucze-
niem sieci. W dalszej części zaproponowano użycie
sieci neuronowej jako systemu zwiększającego bez-

OBRONA
pieczeństwo sieci komputerowej.

43 Badanie pamięci flash urządzeń mobilnych


22 Monitorowanie sieci Salvatore Fiorillo
Sylwester Zdanowski Jeżeli chcesz dowiedzieć się o badaniach pamięci
Monitoring sieci pozwala na zautomatyzowane infor- flash i jak są one wykorzystywane w mobilnej krymi-
mowanie administratora o pojawiających się proble- nalistyce to koniecznie przeczytaj artykuł Salvatore
mach. Jednak w chwili otrzymania informacji o proble- Fiorillo, który pokazuje charakter pamięci nielotnych,
mie jest on już odczuwalny dla użytkowników. Można które są obecne w dzisiejszych telefonach.
jednak wykryć część problemów zanim staną się od-
czuwalne.

28 Twój backup jest bezsensu


Waldemar Konieczka
Poświęcasz godziny na konfigurację sprawdzanie lo-

4 9/2010
HAKIN9 9/2010

Miesięcznik hakin9 (12 numerów w roku) Kierownik produkcji: i programy były poprawne, jednakże nie bierze
jest wydawany przez Software Press Sp. z o.o. SK Andrzej Kuca andrzej.kuca@software.com.pl odpowiedzialności za efekty wykorzystania ich; nie
gwarantuje także poprawnego działania programów
Prezes wydawnictwa: Paweł Marciniak Adres korespondencyjny: shareware, freeware i public domain.
Software Press Sp. z o.o. SK,
Dyrektor wydawniczy: Ewa Łozowicka ul. Bokserska 1, 02-682 Warszawa, Polska Wszystkie znaki firmowe zawarte w piśmie są
tel. +48 22 427 36 91, fax +48 22 224 24 59 własności odpowiednich firm.
www.sdjournal.org cooperation@software.com.pl Zostały użyte wyłącznie w celach informacyjnych.
Redaktor naczelny:
Katarzyna Dębek katarzyna.debek@software.com.pl Dział reklamy: adv@software.com.pl
Osoby zainteresowane współpracą
Skład i łamanie: Redakcja dokłada wszelkich starań, by publikowane w prosimy o kontakt:
Tomasz Kostro www.studiopoligraficzne.com piśmie i na towarzyszących mu nośnikach informacje cooperation@software.com.pl

Reklama

www.hakin9.org 5
NARZĘDZIA

Słuchawki Producent
iBOX

iBOX HPI 99MV


Typ
Słuchawki
Strona producenta
www.ibox.pl
Recenzent
Artur Żarski

OCENA «««««
Jednym z podstawowych elementów wypo- Słuchawki testowane były oko-
sażenia każdego użytkownika komputerów ło tygodnia i w tym czasie dzia-
są słuchawki. Modeli słuchawek jest bardzo łały bardzo dobrze – nie by-
dużo – nauszne, douszne, przewodowe, bezprzewo- ło żadnych problemów. Nie
dowe. Tym razem testujemy słuchawki nauszne firmy wiadomo jak zachowują się
iBOX model HPI 99MV. po dłuższym użyciu, czy
Słuchawki te wg specyfikacji komunikują się z urzą- głośniki brzęczą czy mikro-
dzeniami za pomocą kabla, ale na szczęście jest on fon nie zniekształca dźwię-
całkiem długi – 2,4 m zupełnie wystarczy w większo- ków. Innym testem, który za-
ści sytuacji. Złącze typu mini-Jack pozwala na użycie kończył się sukcesem by-
ich prawie we wszystkich dostępnych urządzeniach ło starcie pomiędzy dwulet-
– komputerach, wieżach HiFi czy nawet w niektórych nim dzieckiem a słuchawka-
telefonach komórkowych. Słuchawki te maja wbudo- mi – po kilkunastu minutach zabawy, naciągania mi-
wany mikrofon, dzięki czemu automatycznie rozwią- krofonu oraz kabla nie udało się ich zepsuć – dobrze
zują problem komunikacji VoIP. Dodatkowo na prze- wróży na długie użycie
wodzie zainstalowany jest pilot, za pomocą którego Reasumując – słuchawki firmy iBox to dobra alter-
możemy sterować głośnością. Jego podstawowe da- natywa dla droższych modeli znanych firm. Nie wie-
ne (wg producenta) są następujące: pasmo przeno- my ja będą działać po czasie ciągłego użycia ale ja-
szenia wynosi 20Hz-20kHz, czułość mikrofonu -58+- kość do ceny jest dobry.
2 dB a skuteczność słuchawek to 105 +- 1dB. Takie
parametry wystarczają zupełnie do tego, aby przy-
zwoicie słuchać muzyki, grać w gry komputerowe czy
prowadzić konwersację za pomocą komunikatorów
internetowych (nie są to jakieś super wyniki, ale za tą
cenę jest naprawdę OK).
Pierwsze wrażenie jest pozytywne – ładnie
zapakowane w plastikowe, przeźroczyste pudełko.
Drugie wrażanie trochę gorsze – bez ostrego noża
lub nożyczek otwarcie opakowania jest niemal nie-
możliwe – natomiast nie testujemy opakowania a słu-
chawki. Wracając do słuchawek – pierwsze wrażenia
pozytywne – dobra cena (ok 45 PLN), przyzwoity wy-
gląd, jakość wykonania również dobra.
Pierwszy test – zakładamy słuchawki na głowę
– duże i miękkie nauszniki, dzięki czemu nawet przy
dłuższym słuchaniu nie uwierają. Nie mniej jednak
wydają się na pierwszy rzut oka nie wygodne – na-
cisk na uszy czy ułożenie mogą sprawiać wraże-
nie trudnych do użycia. Tutaj mała uwaga dla osób
z większą głową mogą sprawiać wrażenia jakby się
miały rozlecieć.

6 9/2010
Narzędzia

iBOX Wee – Importer


Impet Computers Sp. z o.o.

niska cena to
Typ
Odtwarzacz MP4
Strona producenta

nie wszystko
www.ibox.pl
Recenzent
Patryk Krawaczyński

OCENA «««««
iBOX Wee jest małym odtwarzaczem mp4 mowania odcisków palców. Nie trafionym pomysłem
(wymiary: 80 mm x 41 mm x 8 mm) z 1,72” jest także mała naklejka gwarancyjna obok gniaz-
wyświetlaczem CSTN (65 tys. kolorów). Mo- da zasilania, którą można bardzo szybko zniszczyć
del otrzymany do testów został wyposażony w wbudo- ze względu na mobilne przeznaczenie urządzenia.
waną pamięć o pojemności 2 GB. Dotarł zapakowany Z funkcjonalnością urządzenia jest już trochę lepiej.
w czarno – szare pudełko, na którym zostały zawar- Poruszanie się po menu jest dość intuicyjne i łatwe do
te niektóre z jego funkcjonalności: akumulator, wbu- zapamiętania, chociaż i ono nie zostało w pełni prze-
dowane radio, dyktafon, możliwość odczytu eBooków tłumaczone (np. Language). Instrukcja milczy na te-
oraz obsługa technologii Microsoft PlayFX, która ma mat blokady klawiatury – informacje te można dopiero
za zadanie zapewnienie lepszej jakości odtwarzanego uzyskać poprzez lekturę Internetu (Play+M). Maksy-
dźwięku. Po dokładnym przestudiowaniu opakowania, malny czas pracy z baterią (odtwarzanie muzyki) za-
oprócz specyfikacji technicznej w pięciu językach (ro- kładany przez producenta to 11 godzin. Po pełnym za-
syjskim, słowackim, niemieckim, angielskim i polskim) ładowaniu urządzenia za pomocą portu USB z kom-
można znaleźć dość często spotykany napis „Made putera (+/- 45 minut); ustawienia: wyłączania wyświe-
in China”. Nie jest to żadnym uchybieniem dla sprzę- tlacza po 5 sekundach, jasności 1 na 5, oszczędnym
tu, ale jest to jedynym punktem zaczepienia jeśli cho- trybie wyświetlania oraz głośności 16 na 32 pozwo-
dzi o informacje o producencie. Importerem na rynek liły na uzyskanie wyniku około 6 godzin odtwarzania
polski jest firma Impet Computers sp. z o.o. z siedzi- plików muzycznych. Jakość odtwarzania z załączony-
bą w Warszawie. Próżno też szukać informacji o pro- mi słuchawkami dousznymi oraz włączonym (z sied-
ducencie na stronie internetowej (www.ibox.eu), któ- miu trybów) MS Play FX Pure Bass jest bardzo przy-
ra mimo europejskiej domeny kieruje na polską wer- zwoita. Jeśli znudzi znam lista odtwarzania możemy
sję językową (również przy zmianie języka przeglądar- przełączyć się na radio z ręcznym lub automatycznym
ki) dość skromnej strony. Fakt ten nie budzi zbyt duże- trybem wyszukiwania stacji. Podobnie jak z muzyką
go zaufania u potencjalnego klienta szanującego so- Wee bardzo dobrze radzi sobie z wyświetlaniem ob-
bie wiarygodność elektronicznych zakupów i dalsze- razów w formacie jpeg lub bmp. Gorzej jest już z pli-
go serwisowania sprzętu – szczególnie, że na odtwa- kami video. Wyświetlacz jest na tyle mały, że sprawia
rzacz wystawiona jest bezpośrednia 24 miesięczna dyskomfort przy oglądaniu krótkiego klipu (pasek na-
gwarancja. Ponadto na bocznej stronie opakowania, wigacyjny oraz postępu nie ukrywają się w trybie peł-
która poświęcona jest angielskiemu opisowi w oczy notekstowym). W dodatku dołączone oprogramowa-
rzuca się pojedynczy polski napis o pojemności pa- nie do konwersji plików video wiesza się przy więk-
mięci, co dość dziwnie komponuje się zresztą treści. szych plikach.
W opakowaniu zostały zawarte: odtwarzacz, słuchaw- Niska cena tego odtwarzacza powinna rekompenso-
ki, płyta mini-CD, gwarancja, instrukcja oraz przewód wać niektóre jego wady. Jednak podczas jego użytko-
mini-USB. wania pozostaje przykre wrażenie, że większość rze-
Krótka instrukcja obsługi została napisana w dwóch czy była robiona po prostu po bardzo niskich kosztach
językach – polskim i angielskim. Po lekturze pierw- lub z mniejszym profesjonalizmem niż to ma miejsce
szych stron rażąco rzucają się w oczy literówki oraz w przypadku innych odtwarzaczy tej klasy. Wiele roz-
luki w tłumaczeniach (np. antenna). Sam odtwarzacz wiązań jest na dobrym poziomie, ale szczegóły spra-
prezentuje się ładnie. Po usunięciu foli ochronnej lu- wiają, że użytkownikowi może przejść przez głowę
strzana obudowa nabyła syndrom znany z laptopów myśl o złej decyzji zakupu.
pewnej firmy, które są idealną powierzchnią do zdej-

www.hakin9.org 7
ATAK

Pisanie WIN32 shellcode


w kompilatorze C
Didier Stevens
Napisanie shellcodu jest trudne. Dlatego opracowane metody
w tym artykule pozwolą wygenerować WIN32 shellcode
z kompilatora C. Aby w pełni korzystać z treści tego artykułu,
należy mieć doświadczenie w pisaniu programów w WIN32 C/C++
i WIN32shellcode, i rozumieć różnice między tymi podejściami.

Dowiesz się: Powinieneś wiedzieć:


• Jak napisać shellcode w czystym C • Podstawowe wiadomości o tym co jest shellcode, i umiejęt-
ność programowania w C

D
la celów niniejszego artykułu, określam shellco- i main (linie 45-213). Funkcja main i następujące po niej
de jako niezależny od pozycji kod urządzenia. funkcje nie są częścią generowanego shellcode, dostar-
Normalnie shellcode jest napisany w asemble- czają one wsparcia dla testowania i debugownia shell-
rze, a deweloper zwraca uwagę na tworzenie kodu nie- code i automatycznie wyodrębniają shellcode z genero-
zależnego od pozycji. Innymi słowy, że shellcode zo- wanego pliku PE (plik .exe).
stanie wykonany poprawnie bez względu na jego ad- Jak nazwy wskazują, ShellCodeStart (linia 45) jest
res w pamięci. początkiem naszego shellcode. Wywołuje funkcję
Kompilator jaki używam to Visual C++ 2008 Express. ShellCodeMain, a następnie wraca. To wszystko, co ro-
Jest on darmowy i obsługuje asemblację inline. Shell- bi. Ponieważ ten prosty kod jest rzeczywiście napisany
code generowany przy użyciu tej metody jest dynamicz- w assemblerze, a nie w C, musimy o tym poinformować
ny: nie używa stałej adresacji API, która ogranicza shel- kompilator. Konstrukcja __asm jest tym, czego potrzebu-
lcode do poszczególnych wersji systemu Windows. Me- jemy do osiągnięcia tego celu:
toda wykorzystuje kod Dave Aitel do wyszukiwania ad-
resów niezbędnych funkcji API opisanych w książce __asm
"Shellcoder's Handbook". {
Możliwość debugowania shellcode wewnątrz Visu- call ShellCodeMain
al C + + w okresie rozwoju jest ważnym wymogiem dla ret
mnie. Rozwijanie shellcode nie jest łatwe, możemy ko- }
rzystać z wszystkich pomocy jakie możemy uzyskać,
wizualny debugger jest z pewnością mile widziane. Kil- Kiedy kompilator C emituje kod maszynowy do nor-
ka projektowych decyzji było podjętych z powodu tego malnego funkcjonowania, to dodaje instrukcje insta-
wymogu. lacji i podział ramki stosu (wewnętrznej struktury da-
Metoda nie próbuje wygenerować kompaktowych nych C do przechowywania argumentów i zmien-
shellcode. Jeśli rozmiar jest problemem, zacznij od ma- nych automatycznych na stosie). Kod ten nazywa
łych, ręcznie napisanych i zoptymalizowanych shell- się odpowiednio prolog i epilog. My nie potrzebuje-
codów i wywołaj generator shellcode przez kompilator my ramki stosu funkcji ShellCodeMain. Aby poinfor-
C na późniejszym etapie. mować kompilator C że ma pominąć epilog i prolog,
Kod źródłowy, dla którego kompilator C wygeneruje dekorujemy ShellCodeMain atrybutem _ _ declspec
shellcode znajduje się między funkcjami ShellCodeStart (naked).

8 9/2010
Pisanie WIN32 shellcode w kompilatorze C

Cel funkcji ShellCodeStart jest dwojaki: zrobić pierwszy Po utworzeniu zmiennych na stosie, musimy je za-
bajt shellcode punktem wejścia, a także zapewnienie ad- inicjować. Funkcja ShellCodeInit (linia 57) realizuje kod
resu startowego, aby wyodrębnić shellcode z pliku PE. "The Shellcoder's Handbook" aby dynamicznie wyszu-
ShellCodeMain (linia 196) jest główną funkcją naszego kiwaniać adresy kernel32 dla LoadLibraryA i GetProcAd-
shellcode. Zapewnia pamięć do przechowywania da- dressA. Kod wykonuje to przez przeszukiwanie proce-
nych, zwraca kod do wyszukiwania adresów funkcji API su struktury danych, które zawierają listę załadowanych
które potrzebujemy i wykonuje nasz kod rdzenia. modułów i eksportowanych funkcji. W celu uniknięcia
Następujący wiersz (linia 198) rezerwuje pamięć na stosowania łańcuchów znaków dla nazw funkcji, wyko-
stosie dla naszych danych: rzystuje hashe (linie od 19 do 21):

SHELL_CODE_CONTEXT scc; #define KERNEL32_HASH 0x000d4e88


#define KERNEL32_LOADLIBRARYA_HASH 0x000d5786
SHELL _ CODE _ CONTEXT jest strukturą zawierającą #define KERNEL32_GETPROCADDRESSA_HASH 0x00348bfa
wszystkie dane potrzebne w całym naszym shellcode,
jak adresy funkcji Win32 API. Jest przekazywana do Te dwie funkcje API są wszystkim czego nam potrze-
wszystkich funkcji (które jej potrzebują) przez wskaź- ba do wyszukiwania innych funkcji API. Kod stosowa-
nik. Przechowujemy strukture na stosie (jako automa- ny do tej pory to szablon który będzie ponowne wyko-
tyczna zmienna), aby nasz shellcode był niezależny od rzystany we wszystkich innych shellcode opracowa-
stanowiska. Deklarowanie zmiennej dla struktury ja- nych tą metodą.
ko statycznej poleci kompilatorowi C, aby przechowy- Inicjowania pustego łańcucha jest łatwe (linia 202):
wał zmienną w segmencie danych, co nie jest nieza-
leżne od stanowiska, a tym samym nie nadaje się do scc.szEmptyString[0] = '\0';
naszego shellcode. Dla naszego shellcode MessageBox,
struktura zawiera takich członków (linia 29): Teraz musimy znaleźć adres MessageBoxA który za po-
mocą LoadLibraryA i GetProcAddressA . MessageBoxA
struct SHELL_CODE_CONTEXT jest eksportowany przez user32.dll. Musimy odwołać
{ się do tego modułu, a może załadować go, jeśli nie
TD_LoadLibraryA FP_LoadLibraryA; jest już załadowany wewnątrz procesu, w którym nasz
TD_GetProcAddressA FP_GetProcAddressA; shellcode zostanie wykonany. Robimy to przy pomocy
LoadLibraryA z argumentem "user32". "user32" musi
char szEmptyString[1]; być łańcuchem znaków, ale pamiętaj, że nie możemy
zapisać "user32" literalnie w naszym kodzie C, ponie-
HMODULE hmUSER32; waż kompilator C będzie przechowywał ciąg "user32"
TD_MessageBoxA FP_MessageBoxA; w miejscu niedostępnym dla naszego shellcode. Tri-
}; kiem używanym w celu uniknięcia tego jest zainicjowa-
nie łańcucha przy pomocy tablicy znaków (linia 205):
FP _ LoadLibraryA i FP _ GetProcAddressAsą zmiennymi
(a dokładniej zmiennymi wskaźnika funkcji), aby zapi- char szuser32[] = {'u', 's', 'e', 'r', '3', '2', '\0'};
sać adres kernel32 wexportowania LoadLibraryA i Get-
ProcAddressA . Pamiętaj, że piszemy dynamiczny shell- Niniejszy zapis wymusza aby kompilator wyemito-
code, nie używamy sztywnych adresów API. wał kod w którym każdy znak łańcucha „user32” (wraz
szEmptyString to zmienna do przechowywania pu- z kończońcym 0) będzie przechowywany na stosie
stych łańcuchów. "" - jest łańcuchem pustym, to jest w zmiennej szuser32, tak by przy starcie był dynamicz-
różne od NULL. Nie możemy użyć ciągów bezpośred- nie budowany napis. Zaletą tego sposobu jest to, że sło-
nio w naszym shellcode, ponieważ kompilator C będzie wa są nadal czytelne w naszym kodzie źródłowym. Wa-
przechowywał je w segmencie danych. Obejściem ja- dą jest to, że shellcode wygenerowany w ten sposób
kiego ja używam jest "zbudowanie" łańcucha znaków nie jest kompaktowy: emitowanie instrukcji kodu maszy-
wraz z kodem i zapisanie go w zmiennych na stosie. nowego dla każdego pojedynczego znaku zajmuje miej-
W ten sposób ciągi są częścią naszego shellcode. sce na dysku. Zwróć uwagę aby zawsze kończyć każdą
Jako że pusty ciąg jest ciągiem potrzebnym w kilku tablicę znaków przy pomocy znaku null ('\ 0');
funkcjach, postanowiłem zapisać pusty ciągu w struk- Tworzenie napisu "MessageBoxA" odbywa się w ten
turze shellcode. sam sposób:
hmUSER32 to zmienna do przechowywania adresu za-
ładowanej user32 dll. Zmienna FP_MessageBoxA jest char szMessageBoxA[] = {'M', 'e', 's', 's', 'a', 'g',
wskaźnikiem funkcji MessageBoxA. 'e', 'B', 'o', 'x', 'A', '\0'};

www.hakin9.org 9
ATAK

Listing 1a. Pełen kod źródłowy shellcode do wyświetlenia okna komunikatu.

001 /* 044
002 ShellCodeTemplate v0.0.1: MessageBox demo 045 void __declspec(naked) ShellCodeStart(void)
003 Source code put in public domain by Didier 046 {
Stevens, no Copyright 047 __asm
004 Except for the code in ShellCodeInit, which 048 {
is released under the GNU PUBLIC 049 call ShellCodeMain
LICENSE v2.0 050 ret
005 http://didierstevens.com 051 }
006 Use at your own risk 052 }
007 053
008 Shortcommings, or todo's ;-) 054 #pragma warning(push)
009 - find fix for function allignment 055 #pragma warning(disable:4731)
010 056
011 History: 057 void ShellCodeInit(TD_LoadLibraryA *pFP_
012 2008/10/24: start LoadLibraryA, TD_GetProcAddressA
013 2010/02/02: cleanup *pFP_GetProcAddressA)
014 */ 058 {
015 059 TD_LoadLibraryA FP_LoadLibraryA;
016 #include <windows.h> 060 TD_GetProcAddressA FP_GetProcAddressA;
017 #include <stdio.h> 061
018 062 // Shellcode functions to lookup API functions,
019 #define KERNEL32_HASH 0x000d4e88 based on
020 #define KERNEL32_LOADLIBRARYA_HASH 0x000d5786 063 // The Shellcoder's Handbook http://
021 #define KERNEL32_GETPROCADDRESSA_HASH 0x00348bfa eu.wiley.com/WileyCDA/WileyTitle/
022 productCd-0764544683.html'
023 typedef HMODULE (WINAPI *TD_LoadLibraryA)(LPCTSTR 064 // Released under the GNU PUBLIC LICENSE v2.0
lpFileName); 065
024 typedef FARPROC (WINAPI *TD_ 066 __asm
GetProcAddressA)(HMODULE hModule, 067 {
LPCTSTR lpProcName); 068 push KERNEL32_LOADLIBRARYA_HASH
025 069 push KERNEL32_HASH
026 // Add your API function pointer definitions here: 070 call getfuncaddress
027 typedef int (WINAPI *TD_MessageBoxA)(HWND hWnd, 071 mov FP_LoadLibraryA, eax
LPCTSTR lpText, LPCTSTR lpCaption, 072
UINT uType); 073 push KERNEL32_GETPROCADDRESSA_HASH
028 074 push KERNEL32_HASH
029 struct SHELL_CODE_CONTEXT 075 call getfuncaddress
030 { 076 mov FP_GetProcAddressA, eax
031 TD_LoadLibraryA FP_LoadLibraryA; 077
032 TD_GetProcAddressA FP_GetProcAddressA; 078 jmp totheend
033 079
034 char szEmptyString[1]; 080 getfuncaddress:
035 081 push ebp
036 // Add your module handles and API function 082 mov ebp, esp
pointer members here: 083 push ebx
037 HMODULE hmUSER32; 084 push esi
038 TD_MessageBoxA FP_MessageBoxA; 085 push edi
039 }; 086 push ecx
040 087 push fs:[0x30]
041 void ShellCodeMain(void); 088 pop eax
042 int WriteShellCode(LPCTSTR, PBYTE, size_t); 089 mov eax, [eax+0x0c]
043 void *ShellCodeData(void); 090 mov ecx, [eax+0x0c]

10 9/2010
Pisanie WIN32 shellcode w kompilatorze C

Listing 1b. Pełen kod źródłowy shellcode do wyświetlenia okna komunikatu.

091 nextinlist: 143 mov esp, ebp


092 mov edx, [ecx] 144 pop ebp
093 mov eax, [ecx+0x30] 145 ret 0x08
094 push 0x02 146
095 mov edi, [ebp+0x08] 147 hashit:
096 push edi 148 push ebp
097 push eax 149 mov ebp, esp
098 call hashit 150 push ecx
099 test eax, eax 151 push ebx
100 jz foundmodule 152 push edx
101 mov ecx, edx 153 xor ecx,ecx
102 jmp nextinlist 154 xor ebx,ebx
103 foundmodule: 155 xor edx,edx
104 mov eax, [ecx+0x18] 156 mov eax, [ebp+0x08]
105 push eax 157 hashloop:
106 mov ebx, [eax+0x3c] 158 mov dl, [eax]
107 add eax, ebx 159 or dl, 0x60
108 mov ebx, [eax+0x78] 160 add ebx, edx
109 pop eax 161 shl ebx, 0x01
110 push eax 162 add eax, [ebp+16]
111 add ebx, eax 163 mov cl, [eax]
112 mov ecx, [ebx+28] 164 test cl, cl
113 mov edx, [ebx+32] 165 loopnz hashloop
114 mov ebx, [ebx+36] 166 xor eax, eax
115 add ecx, eax 167 mov ecx, [ebp+12]
116 add edx, eax 168 cmp ebx, ecx
117 add ebx, eax 169 jz donehash
118 find_procedure: 170 inc eax
119 mov esi, [edx] 171 donehash:
120 pop eax 172 pop edx
121 push eax 173 pop ebx
122 add esi, eax 174 pop ecx
123 push 1 175 mov esp, ebp
124 push [ebp+12] 176 pop ebp
125 push esi 177 ret 12
126 call hashit 178
127 test eax, eax 179 totheend:
128 jz found_procedure 180 }
129 add edx, 4 181
130 add ebx, 2 182 *pFP_LoadLibraryA = FP_LoadLibraryA;
131 jmp find_procedure 183 *pFP_GetProcAddressA = FP_GetProcAddressA;
132 found_procedure: 184 }
133 pop eax 185
134 xor edx, edx 186 #pragma warning(pop)
135 mov dx, [ebx] 187
136 shl edx, 2 188 // Write your custom code in this function.
137 add ecx, edx 189 // Add extra functions as needed.
138 add eax, [ecx] 190 void ShellCodePayload(SHELL_CODE_CONTEXT *pSCC)
139 pop ecx 191 {
140 pop edi 192 char szHello[] = {'H', 'e', 'l', 'l', 'o', '\
141 pop esi 0'};
142 pop ebx 193 pSCC->FP_MessageBoxA(NULL, szHello, pSCC-

www.hakin9.org 11
ATAK

Listing 1c. Pełen kod źródłowy shellcode do wyświetlenia okna komunikatu.

>szEmptyString, 0); 221 sprintf_s(szBinFile, MAX_PATH, "%s.bin",


194 } argv[0]);
195 222 printf("Shellcode file = %s\n", szBinFile);
196 void ShellCodeMain(void) 223 if (0 == WriteShellCode(szBinFile,
197 { (PBYTE)ShellCodeStart, dwSize))
198 SHELL_CODE_CONTEXT scc; 224 printf("Shellcode file creation successful\
199 n");
200 ShellCodeInit(&(scc.FP_LoadLibraryA), &(scc.FP_ 225 else
GetProcAddressA)); 226 printf("Shellcode file creation failed\n");
201 227
202 scc.szEmptyString[0] = '\0'; 228 // Calling ShellCodeMain to debug shellcode
203 inside Visual Studio
204 // Add your own API function initialization code 229 // Remove this call if you don't want to execute
here: your shellcode inside Visual Studio
205 char szuser32[] = {'u', 's', 'e', 'r', '3', '2', 230 ShellCodeMain();
'\0'}; 231
206 char szMessageBoxA[] = {'M', 'e', 's', 's', 232 return 0;
'a', 'g', 'e', 'B', 'o', 'x', 'A', 233 }
'\0'}; 234
207 scc.hmUSER32 = scc.FP_LoadLibraryA(szuser32); 235 // Function to extract and write the shellcode to
208 scc.FP_MessageBoxA = (TD_MessageBoxA)scc.FP_ a file
GetProcAddressA(scc.hmUSER32, 236 int WriteShellCode(LPCTSTR szFileName, PBYTE
szMessageBoxA); pbShellCode, size_t sShellCodeSize)
209 237 {
210 ShellCodePayload(&scc); 238 FILE *pfBin;
211 } 239 size_t sWritten;
212 240
213 int main(int argc, char **argv) 241 if (S_OK != fopen_s(&pfBin, szFileName, "wb"))
214 { 242 return -1;
215 size_t dwSize; 243 sWritten = fwrite(pbShellCode, sShellCodeSize,
216 char szBinFile[MAX_PATH]; 1, pfBin);
217 244 fclose(pfBin);
218 dwSize = (PBYTE)main - (PBYTE)ShellCodeStart; 245 if (sWritten != 1)
219 printf("Shellcode start = %p\n", 246 return -2;
ShellCodeStart); 247 return 0;
220 printf("Shellcode size = %08x\n", dwSize); 248 }

Teraz możemy znaleźć adres modułu user32, w któ- typedef int (WINAPI *TD_MessageBoxA)(HWND hWnd,
rym musimy odnaleźć adres funkcji API MessageBo- LPCTSTR lpText, LPCTSTR lpCaption,
xA (linia 207): UINT uType);

scc.hmUSER32 = scc.FP_LoadLibraryA(szuser32); Aby dokładnie wiedzieć jakiego typu są to wartości zwra-


cane i typy argumentów do zadeklarowania, spójrz do
Następnie wyszukujemy adres MessageBoxA (linia API funkcji w witrynie MSDN (http://msdn.microsoft.com/
208): en-us/library/ms645505 28VS.85% 29.aspx%). Zwróć
szczególną uwagę na API funkcji, która jako argumenty
scc.FP_MessageBoxA = (TD_MessageBoxA)scc.FP_GetProcAd przyjmują ciągi znaków. Są 2 wersje tych funkcji: wariant
dressA(scc.hmUSER32, szMessageBoxA); ASCII i wariant UNICODE. Ja używam wariantu ASCII
MessageBox: MessageBoxA.
Dla każdej potrzebnej z Win32 API funkcji (jak Mes- To jest wszystko, czego potrzebujemy do instalacji
sageBoxA), trzeba będzie określić typ wskaźnika środowiska aby nasz shellcode wykonał się prawidłowo
funkcji: (w naszym przykładzie, wywołanie MessageBox).

12 9/2010
Pisanie WIN32 shellcode w kompilatorze C

Rysunek 1. Character Set: Nie ustawiono

Rysunek 2. Wyłączyć optymalizację

www.hakin9.org 13
ATAK

Jeśli zastanawiasz się, dlaczego postanowiłem wy- a następnie wywołujemy MessageBoxA z wskaźnikiem
szukiwać MessageBoxA z GetProcAddressA i łańcuch zna- funkcji FP_MessageBoxA i przekazuje jej niezbędne
ków, a nie z kodu "The Shellcoder's Handbook" i odpo- wartości, takie jak łańcuch znaków do wyświetlenia.
wiedniego hasha, podnosisz ważną kwestię. Nie ma Aby wygenerować shellcode, kompilujesz program
powodu, dlaczego nie można by użyć metody "The w C. Aby wyodrębnić shellcode z wygenerowanego pli-
Shellcoder's Handbook" do wyszukiwania MessageBo- ku PE, uruchamiasz program. Shellcode zostanie za-
xA. Ale to oznacza, że masz do obliczenia skrót Get- pisany w tym samym katalogu co plik .exe, z rozsze-
MessageBoxA i napisać kilka linijek kodu, aby połączyć rzeniem .bin. W przykładzie także wywołuję ShellCo-
kod z wywołaniem getfuncaddress. deMain w funkcji main (linia 230). To wykonuje shell-
I to jest coś, czego chciałem uniknąć, kiedy opraco- code po uruchomieniu programu i pozwala debugować
wywałem mój sposób generacji shellcode. Moja meto- shellcode wewnątrz Visual Studio Express przy wyko-
da, nie wymaga pisania kodu assemblera, ale możesz, rzystaniu wszystkich jego wspaniałych funkcji debugo-
jeśli chcesz. wania! Jeśli nie chcesz, aby shellcode był wykonywa-
Teraz nasze środowisko jest gotowe, wykonaj- ny podczas kompilacji, usuń z funkcji main wywołanie
my nasz kod rdzenia. Robimy to poprzez wywołanie ShellCodeMain.
ShellCodePayload i przekazanie jako wskaźnik do struk- Należy również zmienić kilka właściwości projektu Vi-
tury kontroli shellcode (linia 210): sual Studio, aby poinstruować kompilator C do wyemi-
towania odpowiednich kodów które mogą być wykorzy-
ShellCodePayload(&scc); stane jako shellcode. Kompilator C nie może emitować
plików binarnych w UNICODE, nie może optymalizo-
ShellCodePayload (linia 190) jest łatwa do zrozumienia: wać kodu i nie może dodawać do kodu ochrony stosu.
Ustaw następujące właściwości projektu jak to widać
char szHello[] = {'H', 'e', 'l', 'l', 'o', '\0'}; na Rysunku 1.
pSCC->FP_MessageBoxA(NULL, szHello, pSCC- Gdy jesteś gotowy do generowania wersji ostatecznej
>szEmptyString, 0); poleć kompilatorowi nie emitowanie kodu debugowa-
nia. Przełącz na Release zamiast Debug i usuń wszyst-
Deklarujemy i wypełniamy łańcuch wartości "Hello", kie punkty przerwania jakie masz ustawione.

Rysunek 3. Wyłączyć optymalizację całego programu

14 9/2010
Pisanie WIN32 shellcode w kompilatorze C

Rysunek 4. Wyłączenie ochrony stosu

Jeszcze jedno na co trzeba zwrócić uwagę to: nie Dodaj następujący wiersz do ShellCodeMain:
używać funkcji z biblioteki standardowej C, jak strcpy.
Jeśli potrzebujesz tych funkcji, albo napisz je samemu scc.vpData = ShellCodeData();
albo skorzystaj z podobnych funkcje w ntdll.dll.
Typowa funkcja znajdująca się w shellcode jest wtrą- ShellCodeData to funkcja którą musimy dodać po
ceniem danych (np. pliku) na koniec shellcode. Jest tak- ShellCodeMain:
że możliwe napisanie kodu C do osiągnięcia tego ce-
lu. Poniżej jest przykład z MessageBox, który wyświetla void __declspec(naked) *ShellCodeData(void)
napis załączony na końcu shellcode. {
Musimy dodać element do struktury shellcode aby __asm
przechowywać wskaźnik do załączonych danych: {
call WhereAmI
void *vpData; WhereAmI:

Reklama

www.hakin9.org 15
ATAK

Rysunek 5. Kiedy wykonamy program, shellcode jest wyodrębniony i zapisany, a następnie wykonany

pop eax blera. Ponieważ moim ulubionym asemblerem jest


add eax, 5 NASM (bezpłatny), używam jego uzupełnienie NDI-
ret SASM jako disassemblera. Wymaga to pewnego
_emit 'R' ręcznego czyszczenia kodu, zanim będzie można
_emit 'e' użyć go w NASM.
_emit 'p' W naszym przykładzie nasz shellcode wychodzi po-
... przez zwrot (oświadczenie ret). Ale można zakodować
_emit 0x00 inne wyjścia:
}
} • wywołanie ExitProcess,
• wywołanie ExitThread,
Ostatnim krokiem jest połączenie MessageBox z tym • ustawienie SEH i spowodowanie wyjątku.
ciągiem znaków w funkcji ShellCodePayload:
Użyłem tej metody do generowania shellcode dla
pSCC->FP_MessageBoxA(NULL, (LPCTSTR)pSCC->vpData, programu MemoryLoad Joachima Baucha. Jest to
pSCC->szEmptyString, 0); kod C, który ładuje biblioteki DLL z pamięci do pa-
mięci. Dostosowałem jego kod źródłowy do mo-
Uruchomienie tego shellcode (z załączonym cią- jej metody i byłem w stanie wygenerować shellco-
giem znaków) wyświetla MessageBox z napisem na de, który ładuje biblioteki DLL z pamięci do pamięci.
koniec shellcode (począwszy od pierwszego wystą- DLL musi być dołączona na końcu shellcode.
pienia _ emit). Jeśli chcesz zmienić ten napis, moż-
na po prostu otworzyć plik z shellcode w hex-edyto- Możesz pobrać szablony i przykłady z mojego bloga:
rze i zamienić ciąg znaków w łańcuchu. Nie ma ko- http://blog.DidierStevens.com/software/shellcode
nieczności zmiany kodu źródłowego i rekompilacji
projektu.
Po de-asemblacji shellcode generowanego przy
użyciu tej metody, można zauważyć, że istnieje sze-
reg wystąpień 0xCC lub INT3 których nie dodaliśmy do
naszego kodu źródłowego. Te 0xCC bajty są dodawa-
ne przez kompilator aby wyrównać każdą funkcje do DIDIER STEVENS
granicy 16-bajtów. Powoduje to że shellcode jest więk- Jest Specjalistą IT Security, specjalizuje się w bezpieczeństwie
szy niż potrzeba. aplikacji oraz złośliwym oprogramowaniu (malware). Didier
Jeśli chcesz przekonwertować shellcode z jego bi- pracuje dla Contraste Europe NV. Wszystkie jego narzędzia są
narnego formatu do kodu, należy użyć disassem- open source.

16 9/2010
www.hakerzy.net www.ccns.pl www.antynet.pl www.hcsl.pl www.i-slownik.pl
Strony rekomendowane

Strony rekomendowane
www.mgibki.wordpress.com www.osdev.pl www.ochronainformacji.pl www.topsec.pl www.hackme.pl
ATAK

Szkodliwe
oprogramowanie dla gier
– kompletny ekosystem
Piotr Kupczyk
Jeszcze kilka lat temu nie do pomyślenia było, że ktoś mógłby
chcieć ukraść nam wirtualne przedmioty, pieniądze, postaci lub
konto z gry wideo. Teraz to rzeczywistość, która dodatkowo stała
się poważnym, zorganizowanym biznesem cyberprzestępczym.
Biznesem, na którym hakerzy zarabiają prawdziwe, nie wirtualne,
pieniądze. A gracze i inni użytkownicy komputerów cierpią...

Dowiesz się: Powinieneś wiedzieć:


• W jaki sposób cyberprzestępcy mogą wejść w posiadanie wir- • Powinieneś posiadać podstawową wiedzę na temat zagrożeń
tualnych przedmiotów, pieniędzy czy postaci z gier? Dlaczego IT.
gracze online są atrakcyjnym celem dla hakerów? Ile jest szko-
dliwych programów, które mają na celowniku graczy?

N
a początek dobra wiadomość. Liczba trojanów mało. Ile zatem faktycznie jest takich szkodników? Po-
atakujących użytkowników gier zmniejszyła się niższy wykres przedstawia liczbę szkodliwych progra-
na przestrzeni minionych kilku miesięcy. Jed- mów identyfikowanych jako Trojan-GameThief wykry-
nak gracze online wciąż powinni mieć się na baczno- tych na komputerach polskich użytkowników.
ści. Blisko 12 milionów graczy World of Warcraft sta- Jak widać, do marca liczba trojanów dla gier on-
nowi atrakcyjny cel, szczególnie że niedługo ma poja- line wykrywanych w Polsce rosła, osiągając niemal
wić się kolejna wersja tego hitu. Po premierze eksper- 307 tys., po czym zaczęła powoli spadać, aż do 215
ci spodziewają się kolejnego wzrostu liczby tego typu tys. w czerwcu. Warto jednak zwrócić uwagę, że trend
szkodników. w dalszym ciągu jest rosnący – między styczniem
Granie w World of Warcraft (WoW) stało się teraz tro- a czerwcem nastąpił wzrost o ponad 30 tys. Łącznie,
chę bezpieczniejsze. W ciągu ostatnich miesięcy anali- od stycznia do czerwca 2010, trojany dla gier online
tycy zagrożeń zauważyli spadek liczby ataków na gra- spowodowały ponad 1,5 mln infekcji na polskich kom-
czy online. Przyczyna tego trendu, co dziwne, jest eko- puterach. Z pewnością będziemy obserwować ciągłe,
nomiczna i wiąże się z przesyceniem rynku wirtualnych choć może nie gwałtowne, zwiększanie się popularno-
przedmiotów z gier. Obecnie jednak obserwujemy nie- ści tego typu zagrożeń, ponieważ graczy online jest co-
wielką falę ataków na gry MMORPG (Massively Multi- raz więcej.
player Online Role-Playing Games), takie jak WoW czy Na kolejnym wykresie możemy zaobserwować jak
Aion. Do ataków cyberprzestępcy wykorzystują naj- w ciągu roku zmienił się odsetek trojanów dla gier onli-
częściej sprawdzone techniki, takie jak phishing. Oka- ne wśród wszystkich szkodliwych programów infekują-
zuje się, że sfałszowany e-mail i spreparowana strona cych komputery użytkowników – dane dla całego świa-
WWW wystarczą, aby oszukać wielu użytkowników In- ta. W pierwszym kwartale 2009 r. szkodniki typu Tro-
ternetu i ukraść ich dane. Obecna fala ataków cyberne- jan-GameThief były odpowiedzialne za 5,95% infekcji,
tycznych pokazuje, że na kradzieży informacji dotyczą- natomiast w pierwszym kwartale 2010 r. już za 7,63%
cych gier online wciąż można zarobić dużo pieniędzy. zarażeń. Warto zwrócić uwagę na to, że są to jedyne
To, że w ostatnich kilku miesiącach liczba trojanów trojany, które zanotowały w tym czasie istotny wzrost
dla gier online zmniejszyła się, nie oznacza, że jest ich w swojej kategorii.

18 9/2010
Zagrożenia dla graczy: cisza przed burzą?

Gry rządzą się własną ekonomią rynkową nowią atrakcyjny cel operatorów botnetów, które czę-
Popularne gry online stworzyły własną ekonomię ryn- sto są określane jako sieci komputerów zombie. Kom-
kową, która rządzi ich wirtualnymi przedmiotami. Za putery wchodzące w skład takich sieci nie są już kon-
ukończenie misji dobrzy wojownicy i stratedzy są na- trolowane przez ich właścicieli: zdalną kontrolę za po-
gradzani wartościowymi przedmiotami i wirtualną go- średnictwem Internetu sprawują nad nimi przestępcy.
tówką, przy pomocy których mogą jeszcze bardziej Komputery zombie mogą być na przykład wykorzysta-
rozwinąć swoje postacie online. Gracze, którzy inwe- ne jako broń do przeprowadzenia ataków na inne sys-
stują dużo czasu i wysiłku w takie gry, mogą stworzyć temy komputerowe. Wysoce wydajne komputery PC,
niezwykle wartościowe awatary online. Te wirtualne takie jak te wykorzystywane przez graczy online, są
kosztowności naturalnie stanowią pożądane przedmio- naturalnie preferowanym celem operatorów botnetów.
ty i mogą być sprzedawane za “prawdziwe” pieniądze.
Szczególnie w Korei Południowej i Ameryce Północnej Kradzież rzeczywista i wirtualna
istnieje duża liczba profesjonalnych graczy. Takie oso- Jednak w jaki sposób przestępcy atakują graczy onli-
by grają przez cały dzień, aby zgromadzić wirtualne ne? Wykorzystywane są różne metody - jedną z nich
przedmioty, które następnie zamieniają na gotówkę. jest wspomniany wcześniej phishing. Niedawno, na
przykład, wielu użytkowników platformy Steam (http:
Włamania na konta //store.steampowered.com) otrzymało fałszywe wia-
Jednym ze sposobów zdobycia bogactw należących domości z prośbą o aktualizację ich informacji osobo-
do innych graczy jest włamanie się do ich kont. We- wych. Wiadomości zawierały również odsyłacz, który
dług danych Kaspersky Lab, istnieje około 1,73 miliona należało kliknąć, aby uzyskać dostęp do własnego pro-
wyspecjalizowanych szkodników dla komputerów, któ- filu. Podobnie jak w przypadku serwisów bankowości
re próbują uzyskać hasła i dane dostępu do gier on- online i innych, dostawcy platform dla graczy nigdy nie
line. W ten sposób hakerzy chcą osiągnąć kilka rze- wysyłają tego typu wiadomości pocztą elektroniczną.
czy. Osoby grające w gry online są uważane za eks- Dlatego mamy tu wyraźnie do czynienia ze złodzieja-
pertów komputerowych. Ta grupa nie używa Internetu mi haseł, którzy próbują wyłudzić dane logowania użyt-
jedynie do grania. Oprócz tego dokonują również zaku- kowników. Zamieszczony odsyłacz naturalnie nie pro-
pów i transakcji online. Dlatego cyberprzestępcy mogą wadził do profilu użytkownika, ale do fałszywej strony
zebrać wiele informacji, łącznie z danymi dotyczącymi internetowej stworzonej w celu przechwytywania infor-
karty kredytowej i hasłami do innych serwisów, takich macji logowania.
jak portale społecznościowe. Oprócz kradzieży informacji logowania “w realnym
Kolejną korzyścią dla złodziei jest to, że gracze on- świecie” gracze padają również ofiarą “wirtualnej” kra-
line zwykle posiadają bardzo wysokiej jakości sprzęt dzieży. ENISA(European Network and Information Se-
komputerowy i szybkie łącza internetowe. Dlatego sta- curity Agency) odnotowała niepokojący wzrost liczby

Rysunek 1. Liczba trojanów dla gier wykrytych na komputerach polskich użytkowników w roku 2010

www.hakin9.org 19
ATAK

oszustw w świecie wirtualnym, a około jedna trzecia Zabezpiecz się


graczy padła kiedyś ofiarą kradzieży własności wirtual- Jest kilka rzeczy, o których powinni pamiętać gracze
nej. Fakt, że w 2007 roku na samej sprzedaży wirtual- online, aby zabezpieczyć siebie i swoje systemy. Tak
nych przedmiotów zarobiono około 2 miliardów amery- jak w przypadku innych aktywności internetowych,
kańskich dolarów, nie pozostawia wątpliwości, że jest uaktualnione oprogramowanie antywirusowe jest ko-
to bardzo lukratywny rynek - taki, w którym hakerzy niecznością dla osób, które grają w gry online, i nie po-
próbują przyjąć tożsamość online użytkowników, aby winno zostać wyłączone podczas gry. Ważne jest rów-
uzyskać dostęp do wirtualnego bogactwa. nież to, aby pakiet oprogramowania antywirusowego
Serwisy wymiany plików, które odwiedzają gracze, automatycznie pobierał sygnatury zagrożeń.
aby zaopatrzyć się w najnowsze cheaty, stanowią po-
pularne źródło szkodliwego oprogramowania, podob- Optymalna ochrona antywirusowa dla graczy
nie jak luki w zabezpieczeniach serwerów gier. Po- Jeżeli chodzi o oprogramowanie antywirusowe, gracze
nieważ oficjalne serwery gier zwykle są dobrze utrzy- mają szczególne wymagania. Programy bezpieczeń-
mane, korzystający z nich gracze są stosunkowo bez- stwa muszą zapewnić optymalną ochronę, a przy tym
pieczni. Jednak serwery pirackie, które pozwalają gra- nie powinny zakłócać gry ani wpływać na wydajność
czom bezpłatnie brać udział w grach multiplayer to zu- systemu. Kaspersky Internet Security posiada „Tryb
pełnie inna historia. gracza”, w którym nie są wyświetlane okienka wyska-
kujące przypominające o aktualizacjach i skanowa-
Nowe włamania niu. W ten sposób oprogramowanie bezpieczeństwa
Oszuści online są niezwykle twórczy jeżeli chodzi o ła- nie zakłóca gry, ale działa w tle. Program nie wywiera
manie nowych systemów bezpieczeństwa. Widać to wpływu na wydajność systemu, gra przebiega bez za-
na przykładzie generatora kodów TAN dla WoW. Jest kłóceń, a użytkownik posiada optymalną ochronę.
to niewielki dodatkowy sprzęt, który generuje loso-
we kombinacje numerów, przy pomocy których gra- Uwaga na cheaty
cze mogą na krótki czas zalogować się do gry. Nie- Gracze powinni mieć się na baczności przez cały czas,
dawno, przy użyciu trojana cyberprzestępcom udało nawet gdy nie grają. Cheaty mające za zadanie uła-
się ukraść konto gracza za pośrednictwem tak zwa- twienie gry można rozpoznać po tym, że wiele obiecu-
nego ataku “man-in-the-middle” (http://forums.wow- ją, lepiej jednak całkiem omijać takie programy. Podob-
europe.com/thread.html?topicId=12730404058&sid= nie jak banki, dostawcy gier online nie wysyłają e-ma-
1&pageNo=1). Świadczy to zarówno o aktywności jak ili żądających informacji osobowych: takie wiadomości
i szybkim reagowaniu cyberprzestępców. Dlatego mogą pochodzić jedynie od złodziei haseł. Nie powin-
ważne jest, aby użytkownicy nie mieli fałszywego po- niśmy również ujawniać innym graczom naszych da-
czucia bezpieczeństwa z powodu obecnego spadku nych wykorzystywanych podczas logowania i dokony-
liczby szkodliwych programów. Za każdym razem, gdy wania płatności. Aby zapewnić sobie niczym niezmą-
publikowane są nowe dodatki do gier, eksperci przewi- coną rozrywkę, najlepiej korzystać tylko z oficjalnych
dują natychmiastowy wzrost liczby ataków. Kolejnym serwerów gier. Pirackie serwery obiecujące darmowe
niecierpliwie oczekiwanym wydarzeniem jest premie- gry są kuszące, często jednak zawierają mnóstwo luk
ra Diablo III. bezpieczeństwa.

Rysunek 2. Rozkład szkodliwych programów odpowiedzialnych za infekcje wg kategorii

20 9/2010
Zagrożenia dla graczy: cisza przed burzą?

Przykład z życia wzięty 4. Nie klikaj załączników do wiadomości e-mail ani


W marcu 2010, gdy obserwowaliśmy nasilenie aktyw- obiektów wysyłanych za pośrednictwem portali
ności cyberprzestępców, Internet zalała fala wiadomo- społecznościowych przez nieznanych nadawców.
ści phishingowych wycelowanych w fanów dwóch gier 5. Nie klikaj odsyłaczy w wiadomościach wysyłanych
online: World od Warcraft oraz Aion. Oczywiście, takie za pośrednictwem poczty elektronicznej ani ko-
ataki nie są żadną nowością, jednak te konkretne zo- munikatorów internetowych. Wpisuj adresy bezpo-
stały przygotowane niezwykle starannie. średnio do przeglądarki internetowej.
Adres nadawcy wiadomości phishingowych był 6. Nie podawaj informacji osobowych w odpowiedzi
spreparowany i mógł wyglądać następująco: „nore- na maile, nawet jeżeli wyglądają na oficjalne wia-
ply@blizzard.com”. Temat oszukańczych wiadomo- domości.
ści brzmiał „World of Warcraft - Account Change Noti- 7. Dokonuj zakupów oraz transakcji bankowych na
ce” a ich treść była przygotowana bardzo profesjonal- bezpiecznych stronach. Ich adresy zaczynają się
nie. Po pierwsze, e-maile cechowały się bezbłędno- od ciągu znaków „https://”, a w oknie przeglądarki
ścią językową, po drugie, wygląd portalu internetowe- wyświetlana jest złota kłódka.
go, na którym przechwytywane były dane uwierzytel- 8. Używaj innych haseł na różnych stronach inter-
niające, do złudzenia przypominał oryginał. Z pewno- netowych lub serwisach, z których korzystasz.
ścią nie była to „tania” podróbka, z jakimi spotykaliśmy Twórz hasła, które składają się z więcej niż 5 zna-
się wcześniej wiele razy. Nawet doświadczeni użytkow- ków i zawierają liczby, znaki specjalne oraz wielkie
nicy mogli paść ofiarą takiego oszustwa. i małe litery. Nie twórz nowych haseł na podstawie
Odsyłacz widniejący w sfałszowanej wiadomości e- starszych (np. „hasło1”, „hasło2”) i unikaj takich,
mail nie prowadził do oryginalnej strony WWW, ale do które można łatwo odgadnąć (np. imię Twojej ma-
skryptu, który kierował użytkownika do witryny stworzo- my).
nej przez oszustów po to, aby gracze wprowadzili da- 9. Nie zdradzaj nikomu swoich haseł.
ne uwierzytelniające dostęp do swojego konta gry onli- 10.Nie zapisuj swoich haseł w postaci niezaszyfrowa-
ne. W ten sposób oszuści przechwytują dane uwierzy- nej, na przykład w pliku tekstowym na dysku kom-
telniające do kont gier MMORPG, a następnie sprze- putera.
dają je na aukcjach internetowych. Istnieje wiele troja-
nów kradnących dane uwierzytelniające użytkowników. Podsumowanie
Wiele z nich przechwytuje klawisze wciskane podczas Spadek liczby zagrożeń dla gier online, który zaobser-
wchodzenia przez użytkownika do okna logowania się wowaliśmy w ostatnich miesiącach może być przysło-
do gry. Informacje te są zapisywane w zwykłym pliku wiową ciszą przed burzą. Popularność gier nie maleje,
tekstowym wysyłanym do autora trojana. przed nami kilka premier, na które czeka wielu pasjo-
W ciągu ostatnich 3-4 lat cyberprzestępcy uzyskali natów elektronicznej rozrywki, a aukcje z przedmiotami
spore korzyści finansowe przy pomocy oszustw zwią- z gier ciągle się mnożą. Nic nie wskazuje na to, aby tro-
zanych z grami online, w szczególności wykorzystując jany dla gier miały zniknąć z cyberprzestępczego kra-
konta, postacie oraz przedmioty z gry World of War- jobrazu. Pozostaje nam mieć się na baczności, korzy-
craft. Konta z dobrze rozwiniętymi postaciami mogą stać wyłącznie z oficjalnych serwerów dla graczy i za-
kosztować nawet 1 000 - 3 000 dolarów amerykań- pewnić należytą ochronę naszych komputerów. Prze-
skich. cież stracić możemy nie tylko wirtualne przedmioty...

Jak zmniejszyć ryzyko infekcji? PIOTR KUPCZYK


Najważniejszym i niezbędnym ogniwem ochrony jest Dyrektor działu prasowego w Ka-
aktualna aplikacja antywirusowa, a najlepiej typu In- spersky Lab Polska (producent roz-
ternet Security. Dotyczy to wszystkich użytkowników wiązań do ochrony danych). Z �rmą
Internetu. Poniżej krótka listę porad, które pomogą związany od pierwszego dnia funk-
w podniesieniu bezpieczeństwa i zmniejszą prawdopo- cjonowania jej polskiego przed-
dobieństwo infekcji. stawicielstwa w 2000 roku. Z wy-
kształcenia jest informatykiem.
1. Uaktualniaj system Windows i aplikacje innych pro- Ukończył kierunek Techniki Multi-
ducentów. medialne i Metody Sztucznej Inteli-
2. Regularnie twórz kopię zapasową swoich danych gencji na Politechnice Częstochow-
na płycie CD, DVD lub zewnętrznym nośniku USB. skiej. Interesuje się wszystkim, co
3. Nie odpowiadaj na e-maile ani wiadomości wysy- związane z zagrożeniami internetowymi. Prywatnie pasjonat
łane za pośrednictwem portali społecznościowych, rocka progresywnego oraz gier wideo.
jeżeli nie znasz ich nadawcy. Kontakt z autorem: piotr.kupczyk@kaspersky.pl

www.hakin9.org 21
OBRONA

Monitorowanie sieci
Sylwester Zdanowski

Monitoring sieci pozwala na zautomatyzowane


informowanie administratora o pojawiających się
problemach. Jednak w chwili otrzymania informacji
o problemie jest on już odczuwalny dla użytkowników.
Można jednak wykryć część problemów zanim staną się
odczuwalne.

Dowiesz się: Powinieneś wiedzieć:


• Jak wykorzystać LMS do lokalizacji usterek w sieci • Jak poruszać się w konsoli Linuksa
• Jak monitorować pracę elementów sieci używajac NAGIOS

S
twórzmy na nasze potrzeby sieć w niewielkim LMS
biurze. Przede wszystkim mamy router ADSL Lan Managment System jest przeznaczony dla firm
stanowiący połączenie ze światem. Dalej dwa oferujących dostęp do internetu. Na nasze potrze-
switche, każdy obsługujące inne piętro oraz jeden AP. by użyteczne będą jedynie niektóre z jego możli-
Oczywiście biuro ma kierownika z dwoma komputera- wości. Prócz określania położenia urządzeń możli-
mi, w tym jednego laptopa. Następnie marketing i za- we jest dodanie monitoringu ilości przesyłanych da-
opatrzenie po jednym komputerze. Zostaliśmy my jako nych, wysyłanie korespondencji zbiorowej, przyjmo-
informatyk i księgowość mająca dwa komputery. wanie zgłoszeń czy stworzenie kolejki zadań do wy-
W ramach naszego monitoringu stworzymy za po- konania.
mocą LMS mapę sieci pokazującą połączenia oraz ak- Sama instalacja LMS jest niezwykle prosta i dobrze
tywność komputerów. Dzięki narzędziu NAGIOS stwo- opisana na stronach projektu. Zasadniczo potrzebny
rzymy monitoring zasobów systemów. Dzięki temu bę- będzie serwer LAMP. Do uruchomienia LMS wystarczy
dziemy wiedzieć kiedy ilość wolnego miejsca na hdd konfiguracja vhosta oraz skopiowanie bazy danych.
dowolnej maszyny ulegnie zmniejszeniu lub gdy poja- Wizualne efekty wykorzystania LMS można zoba-
wi sie podejrzanie duża ilość zalogowanych użytkow- czyć na ilustracji pierwszej. Pokazuje ona naszą sieć
ników. znacznie lepiej niż wcześniejszy opis.
Mając tak niewielką sieć można pokusić się o monito- Przed stworzeniem takiej mapy warto wprowadzić
rowanie dosłownie wszystkiego co może spowodować małą zmianę w konfiguracji. W interfejsie użytkowni-
problemy. Podejście takie niema jednak zastosowania ka można dodać parametry konfiguracji. Na nasze po-
w większych sieciach. Przede wszystkim uwagi wyma- trzeby wystarczy dodanie allow_mac_sharing z war-
gają urządzenia istotne dla pracy firmy. Monitorowanie tością 1 do sekcji phpui. Dzięki temu łatwiejsze bę-
wszystkiego spowoduje chaos informacyjny i trudności dzie dodawanie urządzeń dla których nie znamy ad-
w określaniu priorytetów. W prosty sposób może dojść resu MAC.
do sytuacji gdzie technik zasypany informacjami o za- Zaczniemy jednak od dodania klientów którzy zo-
pełniającym się dysku szeregowego pracownika prze- staną posiadaczami komputerów. W naszym przypad-
oczy komunikat o awarii głównego routera. ku najlepsze będzie dodanie nazw działów wraz z nu-
Dlatego też konieczne jest planowanie monitoringu. merami pokojów. W następnym kroku musimy przejść
Zarówno pod względem jego zakresu jak i metod po- do Sieci IP aby dodań nową sieć. Dzięki temu doda-
wiadamiania zależnie od znaczenia usług. jąc nowe urządzenia będziemy mogli wybierać wolny

22 9/2010
Monitorowanie sieci

IP z listy. W tym momencie jasne powinno być iż mu-


Listing 1. host_template.cfg
simy ustawić maszyny ze stałymi adresami IP lub wy-
korzystać DHCP z adresami IP przypisanymi do adre- define host{
sów MAC. name lan-host
notifications _ enabled 0
Korzystając z widoku klientów możemy dodawać event _ handler _ enabled 0
im nowe komputery. Jednak nie mamy ich jeszcze flap _ detection _ enabled 1
gdzie podłączyć. Do dodawania urządzeń służy opcja failure _ prediction _ enabled 1
osprzęt sieciowy. Należy pamiętać o dodawaniu ilości process _ perf _ data 1
retain _ status _ information 1
połączeń jakie mogą występować z danym urządze- retain _ nonstatus _ information 1
niem. Same połączenia można tworzyć w trakcie do- check _ period 24x7
dawania lub edycji urządzeń wybranych z listy. check _ interval 5
retry _ interval 1
Ostatnim etapem jest dodanie komputerów użytkow-
max _ check _ attempts 10
ników i ich podłączenie. Warto pamiętać o dodatkowej check _ command check-host-alive
opcji dla oznaczenia połączeń bezprzewodowych. Ma register 0
to zasadnicze znaczenie dla użyteczności mapy przy }
rozwiązywaniu problemów.
Aby całość była użyteczna należy dodać sprawdze-
nie które maszyny są dostępne. W katalogu lms/bin Jeżeli dodamy skrypt do cronetab będziemy wie-
znajduje się skrypt lms-fping. Wykorzystując program dzieć na bieżąco które urządzenia działają. Przy więk-
fping sprawdzi on aktywność wszystkich komputerów. szych sieciach mechanizm taki niezwykle ułatwia okre-
Dzięki temu przy wszystkich pracujących komputerach ślenie miejsca w którym występuje problem.
zniknie znak zapytania. To samo stanie się z urządze- Mając szybko skleconą mapę sieci zobaczmy co
niami podłączonymi do działających maszyn. Jeżeli za jeszcze możemy zrobić z LMS. Idąc po kolei przez
jakiś czas przestaną one odpowiadać ikony staną się menu, jako że nie sprzedajemy internetu finanse, do-
ciemne. kumenty i konta raczej nie znajdą zastosowania. Je-

Rysunek 1. Widok sieci w LMS

www.hakin9.org 23
OBRONA

żeli dodamy do systemu dane pracowników wraz z ich Dla ograniczenia zamieszania przy instalacji do po-
adresami e-mail, wysłanie korespondencji seryjnej lecenia configure warto dodać | grep gdImagePng. Je-
może się okazać użyteczne. Tym bardziej że możli- żeli nie otrzymamy informacji potwierdzającej odna-
we jest połączenie bazy MySQL z pakietem OpenOf- lezienie bibliotek należy je zainstalować przed przej-
fice. Następna opcja przeładowania jest potrzebna ściem dalej. Gdy po instalacji okaże się iż niemożna
przy wykorzystaniu serwera pppoe co nas nie dotyczy. korzystać z opcji mapy i trendu naprawa problemu bę-
Przydatna może być funkcja helpdesk oraz terminarz. dzie kosztować znacznie więcej czasu.
Szczególnie jeżeli mamy do czynienia z kilkoma roz- Mając zainstalowane wtyczki i ustawione hasło
proszonymi sieciami, ich użytkownicy mogą zgłaszać zgodnie z dokumentacją NAGIOSa pozostaje jego
swej pytania i problemy za pomocą panelu użytkowni- uruchomienie. W katalogu bin należy uruchomić pro-
ka współpracującego z LMS. gram NAGIOS podając jako parametr ścieżkę do pliku
Panel użytkownika dzięki modułowej konstrukcji bar- konfiguracyjnego.
dzo łatwo ograniczyć do samego zgłaszania proble- Pozostaje nam stworzenie konfiguracji monitorującej
mów. Dzięki czemu użytkownicy nie będą mieli poję- jak najwięcej parametrów pracy wszystkich elementów
cia o jego wszystkich możliwościach. Rozwiązanie to sieci. Możemy do tego wykorzystać pliki localhost.cfg
jednak wymaga utworzenia kont dla pracownikół przez oraz switches.cfg. Przy czym plik switches.cfg należy
ich dodanie do LMS jako klientów. dodać do nagios.cfg. W naszym prostym wypadku wy-
starczy dodanie hostów na zasadzie analogi do local-
NAGIOS na skróty host.cfg.
W porównaniu do LMS dokumentacja stworzona dla Zaczynając od routera konieczne będzie doinstalo-
NAGIOSa jest niewiele warta. Trzeba jednak się z nią wanie wtyczki odpowiedzialnej za SNMP. Z kolei do
męczyć jako jedynym źródłem informacji. Aby ułatwić jej skompilowania w systemie muszą się znajdować
sobie zdanie warto wyszukać instrukcję instalacji dla biblioteki net-snmp. W następnej kolejności switch
posiadanej dystrybucji. Będzie ona szczególnie przy- i nasz serwer. Dla switchy nieposiadających wła-
datna dla instalacji dodatkowych pakietów. snych adresów IP można nie podawać żadnych usług.

Listing 2. host.cfg

define host{
use lan-host
host _ name castle
alias castle
address 192.168.1.101
}

Listing 3. service.cfg

define command{
command _ name lan _ ssh _ disk
command _ line $USER1$/check _ by _ ssh -p $ARG1$ -l sylwester -i /home/nagios/.ssh/id _ rsa
-H $HOSTADDRESS$ -C '~/check _ disk -w $ARG2$ -c $ARG3$ -p $ARG4$'
}
define service{
use generic-service
notifications _ enabled 0
host _ name castle
service _ description SSH check Disk
check _ command lan _ ssh _ disk!22!10%!5%!/dev/hda2
}

Listing 4. Zastosowanie polecenia snmptranslate

snmptranslate -IR -On IP-MIB::ipDefaultTTL


No log handling enabled - turning on stderr logging
Undefined OBJECT-GROUP (udpHCGroup): At line 486 in /usr/share/snmp/mibs/udp-mib.mib
.1.3.6.1.2.1.4.2

24 9/2010
Monitorowanie sieci

W efekcie będą one widoczne jako element sieci bez lenie priorytetów. Mając pod swoją opieką sieć z setką
monitoringu. usług monitorowanie wszystkich doprowadzi jedynie
Sam serwer stanowi najprostszy element. Jeżeli na do chaosu. Monitoring powinien ograniczać się do ele-
nim właśnie znajduje się NAGIOS od ręki będzie on mentów istotnych dla działania firmy. Z dużym praw-
monitorowany. Wystarczy dodanie parametru parents dopodobieństwem konieczne będzie rozpoczęcie od
aby został połączony z routerem. usług widocznych dla klientów. Wysoki priorytet otrzy-
Jeżeli na pozostałych komputerach zainstalowa- mają również serwery których awaria wpłynie na firmę
ny jest system Windows będą one wymagały dodat- lub całe jej oddziały. W dalszej kolejności wielofunkcyj-
kowych czynności. Konieczne jest na nich zainstalo- ne urządzenia z interfejsami sieciowymi.
wanie NSClient++ który umożliwi monitoring. Również Punktem wyjścia samej konfiguracji jest oczywiście
konfiguracja wymaga zastosowania oddzielnych po- plik nagios.cfg, nie obędzie się bez dodania nowego
leceń. pliku konfiguracyjnego. Możliwe jest również dodanie
Po zakończeniu konfiguracji nie tylko możemy kon- całego katalogu zawierającego dane obiektów. Doda-
trolować sieć. Niezwykle użyteczna może okazać się my więc wpis cfg_dir=/usr/local/nagios/etc/objects/lan.
opcja trendów. Szczególnie gdy po 5minutowej awarii W katalogu przydadzą nam się na początek dwa pli-
wszechwiedzący kierownik stwierdzi że sieć ciągle nie ki, lan_templates.cfg i lan_hosts.cfg. W razie potrzeby
działa i chce wprowadzać zmiany kadrowe. dla zachowania przejrzystego podziału można się po-
kusić o apache_servers czy dmz_hosts, jest to kwe-
Idea wielkiej sieci stia potrzeb.
Podejście na skróty do NAGIOSa niema racji bytu przy Należało by stworzyć szablon dla naszych kompute-
implementacji dla większej sieci. Konieczne staje się rów w lokalnej sieci.
zapoznanie z zasadami monitoringu i grupowaniem, Na nasze teoretyczne potrzeby stworzyliśmy sza-
tak usług jak i osób za nie odpowiedzialnych. Obejmu- blon wyłączający wysyłanie powiadomień. W efekcie
ją one nie tylko kwestie konfiguracji ale również usta- puki ktoś nie sprawdzi NAGIOSa nie dowie się o pro-

Rysunek 2. Prosta sieć w NAGIOSie

www.hakin9.org 25
OBRONA

blemie. Wyłączony jest również event handler pozwa- monitorować. W najprostszym wariancji możemy sko-
lający na wykonanie dodatkowych poleceń przy zmia- rzystać z domyślnie dostępnych funkcji jak pamięć ro-
nie stanu usługi. W kolejnym pliku możemy dodać de- utera. Wówczas pozostaje na udostępnić na urządze-
finicje hosta. Jednak w tym momencie nie dowiemy ni- niu możliwość monitoringu i wybór protokołu. Jedynie
czego poza tym czy jest włączony. SNTP v3 zapewnia bezpieczeństwo dostępu do urzą-
Na nasze szczęście drugi komputer korzysta z sys- dzenia przez podanie hasła.
temu Linux. Wystarczy więc utworzyć klucz publiczny Jeżeli chcemy monitorować specyficzne parame-
oraz przenieść check_disk na sprawdzany komputer. try urządzenia SNTP zaczyna gryźć użytkowników.
Definicja polecenia składa się z nazwy polecenia oraz Przede wszystkim system monitorujący musi być wy-
wykonywanej komendy. Analizując fragment listingu 3 posażony w snmp do którego należy dograć pliki MIB.
$USER1$ - zmienna równoznaczna z katalogiem za- Zawierają one obiekty możliwe do monitorowania pa-
wierającym check_by_ssh, /usr/local/nagios/libexec. rametry w formie obiektów. Tutaj mamy drugi i naj-
$ARG1$ - podobnie jak ARG2-4 przyjmuje parame- większy problem jakim jest ustalenie który obiekt od-
try przy wywołaniu z definicji usługi są to kolejno nu- powiada za interesujący nas parametr.
mer portu ssh wartość dla ostrzeżenia i wartości kry- Skoro już wiemy jaki obiekt potrzebujemy musimy
tycznej oraz monitorowany dysk. ustalić numer OID. Pomoże nam tu polecenie snmp-
W ramach definicji usługi istotne są grupy. Nazwę translate.
hosta można zastąpić nazwą grupy co jest jedno- Cyfry które uzyskaliśmy będą potrzebne do stworze-
znaczne z dodaniem wszystkich należących do niej nia pliku XML wykorzystywanego przez CACTI do mo-
komputerów. Taka organizacja pozwala zaoszczędzić nitoringu.
bardzo dużo czasu przy uruchamianiu monitoringu no- Od strony samego protokołu, każda z podanych cyfr
wego parametru pracy. stanowi wybór opcji na kolejnym poziomie drzewa. Dla
Pominęliśmy jednak możliwość informowania o pro- przykładu, zgodnie z listingiem 3: 1-iso, 3-org, 6-dod,
blemach. Do tego celu potrzebne są definicje użytkow- 1- internet. Z pomocą polecenia snpwalk możliwe jest
nika grupy oraz samej metody powiadamiania. Należy przejście przez wszystkie opcje SNMP, sprawdzając
wsiąść pod uwagę ze informacja nie dotrze do celu je- co jest dostępne na naszym urządzeniu. Sprawdza
żeli awarii uległ serwer pośredniczący. się ono również jako metoda samej kontroli połącze-
Pierwszą możliwością są komunikatory IM. Po in- nia z urządzeniem.
stalacji komunikatora mogącego przyjmować adresata
i tekst wiadomości w formie polecenia należy zdefinio- Podsumowanie
wać polecenie. Nie zależnie od sposobu powiadamia- Zarówno NAGIOS jak i LMS nie są jedynymi możliwy-
nia składać się ono będzie z dwóch elementów, ułoże- mi narzędziami do wykorzystania. W połączeniu nie-
nia tekstu powiadomienia i przekazania go do progra- zależnie od wielkości sieci umożliwiają szybkie wykry-
mu wysyłającego. wanie problemów i ich lokalizację. Dzięki temu każda
Niewątpliwie najbardziej skuteczną metodą powia- minuta zainwestowana w monitoring zwróci się wie-
damiania jest sms. Jego wykorzystanie wymaga pro- lokrotnie w postaci czasu zaoszczędzonego na kon-
gramu działającego podobnie do sms-pl oraz konta trolowaniu i diagnozowaniu sieci. Mechanizm można
u operatora sieci. W przypadku poczty najłatwiej po- rozbudować o CACTI czy mrtg jednak przy specyficz-
służyć się konfiguracją exim4 dla gmail. Posiadając nych parametrach urządzeń wymagają znacznie wię-
własny serwer można ją łatwo dostosować. cej pracy.
Żadna sieć na dłuższą metę nie obejdzie się bez mo-
CACTI nitoringu. Nawet w niewielkich sieciach składających
CACTI stanowi znakomite narzędzie do uzyskiwa- się z kilku urządzeń warto wykorzystać przedstawione
nia bieżących informacji o wykorzystaniu zasobów rozwiązania. Dzięki temu nie tylko bieżące zarządza-
jak pamięć procesor czy przepustowość. Problemem nie stanie się prostsze, przy rozbudowie sieci uniknie-
w wykorzystaniu tego narzędzia polega na specyfi- my sytuacji w której nikt tak naprawdę nie wie jak jej
ce SNMP. Protokół prostego monitoringu sieci korzy- elementy są połączone.
sta z mało przyjaznej metody określania cóż chcemy

W Sieci SYLWESTER ZDANOWSKI


Autor książki „Debian Linux. System operacyjny dla każdego.
• http://www.lms.org.pl/ – LMS Pierwsze starcie.” Student Europeistyce na Wydziale Humani-
• http://www.nagios.org/ – NAGIOS stycznym Uniwersytetu Szczecińskiego. Obecnie pracuje nad
• http://wiki.debian.org/GmailAndExim4 – Exim4 dla Gmail projektem SPRS, http://code.google.com/p/sprs/ .
Kontakt z autorem: sylwesterzdanowski@o2.pl

26 9/2010
Bądz subskrybentem newslettera najciekawszego miesięcznika
o bezpieczeństwie IT
Wystarczy, że zarejestrujesz się na http://hakin9.org/pl/newsletter

a będziesz informowany o najnowszym numerze do pobrania oraz


o nowościach i szkoleniach z branży bezpieczeństwa komputerowego.
OBRONA

Twój backup
jest bez sensu!
Waldemar Konieczka

Poświęcasz godziny na konfigurację sprawdzanie logów


programów backupowych? Wydajesz pieniądze na modernizację
serwera? To i tak nie daje pewności, że w razie awarii odzyskasz
pliki. Wiesz o tym! A przecież są prostsze sposoby zabezpieczenia
najważniejszych dla Twojej firmy danych.

Dowiesz się: Powinieneś wiedzieć:


• czym jest backup internetowy • czym jest kopia zapasowa
• dla kogo przeznaczone są usługi backupu przez Sieć • jakie są podstawowe potrzeby zabezpieczania danych
• jak trudna jest instalacja tego rozwiązania • co to jest: NAS, storage serwer oraz FTP

A
rtykułów opisujących sposoby wykonywania wych jest ręczne tworzenie duplikatów plików. Ten ar-
kopii zapasowych jest w sieci na prawdę wiele. chaiczny sposób nadal wykorzystuje część indywidual-
Podobnie jak oprogramowania, które – za dar- nych użytkowników.
mo, bądź za pieniądze – pozwoli nam zabezpieczyć Oczywistymi wadami takiego rozwiązania są: cał-
pliki przed zniszczeniem. kowicie manualna obsługa, konieczność pamiętania
Ten artykuł nie ma być kolejnym, przedstawiającym o wykonywaniu kolejnych kopii czy brak możliwości
założenia konfiguracji mniej lub bardziej chałupniczych szybkiego i kompleksowego przywrócenia plików.
systemów archiwizacji danych. Jego celem jest omó- Z wspomnianych wyżej powodów implementacja te-
wienie, w kontekście typowych rozwiązań, nowocze- go rachitycznego systemu w skomplikowanych struktu-
snych systemów tworzenia kopii zapasowych on-line. rach informatycznych jest praktycznie nie możliwa. Nie-
W dzisiejszych czasach, przy co raz większej świa- stety mimo że trudno także wyobrazić sobie jego funk-
domości zarówno użytkowników jak i administratorów cjonowanie nawet w małych firmach, zdarzają się jesz-
co do konieczności zabezpieczania danych, przycho- cze administratorzy wykonujący backupy raczej według
dzi pora na rzetelne rozważanie nie tyle samej idei wskazań swojego przeczucia niż wedle prawideł IT.
backupu ile racjonalności i konkurencyjności poszcze-
gólnych metod jego wykonywania. Opcja „sprzęt”
Należy pamiętać o tym, że wybór rozwiązań w tej W wielu przypadkach użytkownicy komputerów ucie-
dziedzinie zależny jest od wielu czynników. Oczywi- kają się do różnorodnych rozwiązań sprzętowych.
stym jest, że inne metody zastosujemy dla dużych ilo- Bardzo często powtarzana jest obiegowa opinia, że
ści danych czy też dużych sieci, inne zaś dla małych niedrogą i dobrą metodą zabezpieczania danych jest
i średnich. standard RAID.
Na szczęście dostępne dzisiaj rozwiązania w za- Niestety, twierdzenie to nie jest słuszne. Macierze
kresie kopii zapasowych pozwalają stworzyć sprawny RAID mają służyć przede wszystkim wydajniejszemu
system kopii zapasowych, którego koszty będą na tyle i szybszemu dostępowi do danych zgromadzonych na
rozsądne, by mogły je ponieść nie również małe i śred- wielu dyskach twardych. Ich konstrukcja i zastosowa-
nie firmy a nawet indywidualni użytkownicy. na nadmiarowość nie służy zabezpieczeniu owych da-
nych przed ich utratą bądź uszkodzeniem.
Sposób „na piechotę” Oczywiście, RAID w standardach powyżej 0 oferu-
Najprostszym sposobem wykonywania kopii zapaso- je wprawdzie pewną nadmiarowość danych, pamiętaj-

28 9/2010
Twój backup jest bez sensu!

my jednak, że jest to tak na prawdę integralny element sowych należy do jednych z tańszych. Oplata za du-
działania macierzy, forma zabezpieczenia jej przed ży hosting waha się w granicach 400 zł rocznie, a sam
utratą funkcjonalności w wyniku uszkodzenia fizycz- program często nie kosztuje nic. Niestety, pomimo że,
nego jednego lub więcej dysków nie zaś system kopii konfiguracja taka bez problemu radzi sobie z regular-
bezpieczeństwa. nym wykonywaniem kopii, to posiada także kilka man-
Innym sprzętowym rozwiązaniem, o które można się kamentów.
pokusić jest stworzenie serwera backupu dla naszej Przede wszystkim nie ma możliwości sprawnego za-
sieci. Pomysł ten wydaje się dość atrakcyjny. Na rynku rządzania kopiami bezpieczeństwa. Przesłane przez
dostępnych jest wiele darmowych programów, które program pliki po prostu leżą w lokalizacji docelowej.
potrafią wykonać kopię zapasową, a i opisów ich kon- Jedyną możliwością zarządzania nimi jest praktycz-
figuracji jest aż nadto. nie opcja ręcznego umieszczenia plików w katalogach
Nim jednak pochwalimy to wyjście z sytuacji musimy tworzonych wg klucza daty czy godziny.
zwrócić się ku kwestii niezwykle ważnej dla backupu Kolejnym problemem jest brak funkcji przywracania
– kosztów tworzenia kopii zapasowej. Każdy taki sys- danych, nie mówiąc już o możliwości przywracania da-
tem – oprócz tego, że jest niezbędny powinien być tak- nych w zależności od zaistniałej sytuacji.
że dokładnie skalkulowany i opłacalny. Ponadto, choć w ustawieniach można m.in. wyłą-
Jak owa kalkulacja wygląda? Koszt w miarę stabil- czyć pewne rozszerzenia plików z wykonywania kopii
nej maszyny mogącej służyć za serwer backupu (przy zapasowej, istnieje też wspomniana wyżej opcja roz-
założeniu, że komputer posiadać będzie dwurdzenio- dzielania plików lub kopii zapasowych za pomocą da-
wy procesor low cost, 4 GB RAM oraz 2 dyski x 1TB) ty i godziny oraz pakowania każdego pliku do osobne-
to około 2000 zł. Do tego urządzenie to musiałoby syn- go archiwum, to nie ma możliwości łatwego w obsłu-
chronizować się dla bezpieczeństwa z bliźniaczą ma- dze wersjonowania plików.
szyną – kolejne 2000zł. Koszt zużytej rocznie energii Zarządzanie backupem odbywa się niejako na
dla jednego urządzenia (przy założeniu, że zużyje ono dwóch oddzielnych płaszczyznach – programu wy-
100 W, a cena za 1kWh to 0,3 zł) wyniósłby nieco po- konującego kopie oraz serwera składowania danych.
nad 500 zł. Każdy z nich trzeba skonfigurować osobno i oddziel-
Łącznie to 5000 zł, które, jeśli podzielimy je przez nie dbać o jego poprawne funkcjonowanie. Nie ma
12 miesięcy roku, dadzą miesięczny wydatek wahają- również możliwości automatycznego, okresowego
cy się w granicach 400 zł. I to tylko przy uwzględnie- sprawdzenia poprawności archiwum.
niu podstawowych kosztów, nie doliczając m.in. odpo- Administratorów systemów Windows zmartwi brak
wiednich UPS. wsparcia dla natywnego backupu Exchange, baz MS
Należy pamiętać przy tym, że o ile można obejść SQL nie wspominając o bardziej zaawansowanych
koszty oprogramowania, a zakup serwerów to wy- aplikacjach.
datek (nie licząc amortyzacji) jednorazowy to utrzy- Kolejnym mankamentem całego rozwiązania jest
manie w ruchu takiego rozwiązania wiąże się z po- fakt, że serwer ftp w firmie hostingowej nie jest dedy-
noszeniem dodatkowych wydatków. Musimy bowiem kowany do składowania plików. Część hostingów (jak.
doliczyć fundusze na ewentualne awarie oraz bieżą- np. DreamHost) zastrzega już w momencie zakupu li-
cą obsługę całego sprzętu i oprogramowania. Ponad- mity w podziale przestrzeni. Przeznaczanie hostingu
to pozostaje ryzyko, że w przypadku pożaru, zalania www wiąże się często z również z innymi ogranicze-
czy np. rabunku pomieszczeń, w których znajduje się niami – m.in brakiem indywidualnego mirroru konta
sieć i nasz backupowy serwer prawdopodobnie, po- czy też wielkością plików, które można wysłać na ser-
mimo tworzenia kopii zapasowych, stracimy wszyst- wer. To ostatnie obostrzenie wymusza z kolei dzielenie
kie dane. pliku backupu na mniejsze części, co dodatkowo kom-
plikuje sytuację podczas przywracania kopii.
Rozwiązanie (prawie)kompleksowe Nie zapominajmy też o tym, że pomimo wdrożonych
Sposobem wykonywania kopii zapasowych, który zy- w firmach hostingowych zabezpieczeń przed awariami
skuje co raz większą popularność jest backup przez – nie są to serwery backupu i nie mają w regulaminie
internet. Można wykonywać go na kilka sposobów. zapisanej nadrzędnej funkcji ochrony danych.
Pierwszą z możliwości jest proste rozwiązanie sta-
nowiące połączenie oprogramowania backupowego „All in one”
działającego na komputerze z kontem ftp albo serwe- Alternatywą dla wymienionych wyżej rozwiązań są
rem zdalnym. usługi kompleksowego backupu przez internet. Wśród
Jednym z wariantów takiego rozwiązania jest zasto- firm oferujących takie usługi przodują te zza oceanu,
sowanie programu Cobian Backup i konta na serwe- jednak na szczęście w wyborze dostawcy nie ograni-
rze FTP. Tego typu metoda wykonywania kopii zapa- czają nas kraje ani kontynenty.

www.hakin9.org 29
OBRONA

Nim przejdziemy od opisu najważniejszych funkcjo- wano konfiguracją do obsługi zadań backupowych
nalności tego typu produktów warto wspomnieć o ich i nie trzeba ich dodatkowo ustawiać. Kolejnym waż-
najważniejszej zalecie – bezpieczeństwie stworzo- nym założeniem, szczególnie z punktu widzenia koń-
nych kopii zapasowych. W przypadku backupu inter- cowego użytkownika, jest prostota obsługi całego sys-
netowego dane znajdują się w oddzielnych serwerow- temu. Owszem, dostępne są niezwykle rozbudowane
niach a konta są mirrorowane lub nawet wielokrotnie aplikacje, jednak ideą większości programów klienc-
duplikowane na wielu serwerach, co dodatkowo za- kich (niezależnie od stopnia skomplikowania syste-
pewnia zabezpieczenie na wypadek awarii po stro- mu) jest bezproblemowość obsługi. W przypadku ad-
nie serwera. ministracji dużą siecią jest to ważne także dla admi-
Ponadto na bezpieczeństwo plików wpływa także nistratorów, którzy nie muszą długo borykać się z za-
fakt, iż nie przechowujemy backupu w tej samej lokali- znajamianiem użytkowników z interfejsem, jednocze-
zacji, w której znajdują się zabezpieczane nim maszy- śnie mogą pozwolić użytkownikom na pewną swobodę
ny. Wyklucza to ryzyko uszkodzenia danych w wyniku w dobieraniu danych, które chcieliby zarchiwizować.
pożaru i innych zdarzeń losowych a także kradzieży.
Zwłaszcza, że dane są przechowywane w profesjonal- Potencjał i możliwości
nie przygotowanych pomieszczeniach z zabezpiecze- Niezależnie od szczytnych założeń, o przydatności
niami przeciwpożarowymi, przeciwwłamaniowymi oraz danego rozwiązania decyduje przede wszystkim ela-
z pełnym wsparciem na wypadek utraty zasilania. styczność oraz możliwości. W przypadku interneto-
wego backupu większość firm oferuje oprogramowa-
Po co to wszystko? nie i usługi dostosowane wymagań wykonywania ko-
Ideą backupu internetowego jest stworzenie mechani- pii zapasowych dla użytkownika końcowego pracują-
zmu, który pozwoli w wygodny sposób automatycznie cego na możliwie standardowo skonfigurowanej sta-
wykonać kopie zapasową danych. Dostępne na rynku cji roboczej.
systemy w opierają się, w gruncie rzeczy, na tym sa- Istnieje oczywiście opcja definiowania danych i ob-
mym mechanizmie, co opisywana wyżej metoda wy- szarów, których kopie zapasowe chcielibyśmy wyko-
korzystująca Cobian Backup. Istotne różnice pojawia- nać. Większość dostępnych na rynku programów po-
ją się gdy szczegółowo przeanalizujemy funkcjonalno- zwala dowolnie wybierać pliki i katalogi do backupu
ści poszczególnych rozwiązań. oferując przy tym opcję filtrowania zawartości backu-
Pierwszą z różnic jest fakt, iż software instalowane powanych danych pod kątem rozszerzeń czy wielkości
na dysku komputera klienta jest oprogramowaniem plików. Dodatkowo niektórzy producenci oferują zesta-
dedykowanym producenta a same serwery dostoso- wy predefiniowanych ustawień backupu takich jak ko-

Rysunek 1. Konsola kon�guracji programu Cobian Backup

30 9/2010
Twój backup jest bez sensu!

pie zapasowe skrzynek pocztowych programu Outlook Pozostałe dodatki obejmują przede wszystkim wy-
czy skrótów pulpitu Windows. konywanie zadań backupowych według harmonogra-
Software radzi sobie bez większych problemów mu oraz dostęp do kopii zapasowych poprzez różno-
z wykonaniem zadanych mu czynności, niemniej jed- rodne interfejsy.
nak predefiniowane przez producentów ustawienia Zarówno wspomniane wcześniej opcje konfiguracyj-
często mają swoje ograniczenia. Ponadto oferta czę- ne jak i łatwe ustawianie harmonogramu przy prosto-
ści dostawców tego typu usług skonfigurowana jest cie obsługi całości systemu przez użytkownika końco-
tak, by swoją funkcjonalnością obejmować wykonywa- wego wpisują się w zasadę ustaw i zapomnij.
nie kopii zapasowych plików nie zaś całych rozwiązań Oprogramowanie wykona wszystkie zadania w tle,
softwerowych takich jak zwirutalizowane maszyny czy a użytkownik zostanie poinformowany – najczęściej
systemy bazodanowe. komunikatem, a u niektórych dostawców mailowo
– o wykonanej kopii.
Przydatne drobiazgi
Większość firm zajmujących się backupem online od- Przywracanie danych
daje do dyspozycji użytkowników kilka ciekawych funk- Nie należy zapominać, że najważniejszym zadaniem
cjonalności, które ułatwiają życie przy backupach. backupu jest przede wszystkim przywrócenie utraco-
Pierwszym z tych udogodnień jest dostępne niemal nych danych w razie ich skasowania albo uszkodze-
u wszystkich firm wersjonowanie plików. Korzyści wy- nia. W większości programów zadbano o to, by odzy-
nikające z zastosowania tego mechanizmu są nieoce- skanie zasobów było równie proste jak stworzenie ich
nione. Pozwala on nie tylko przywrócić utracone wer- kopii zapasowej.
sje pliku w przypadku utraty bądź uszkodzenia da- Zasadniczo w rozwiązaniach tego typu odzyskiwanie
nych, ale także odtworzyć stan wcześniejszy pliku jeśli odbywa się poprzez to samo oprogramowanie dostar-
w razie błędu użytkownika dokonano w nim niechcia- czone przez firmę, która świadczy dla nas usługi, a któ-
nych zmian. re wykorzystywane jest do robienia kopii zapasowych.
Wersjonowanie odbywa się według różnych zasad. Niektórzy producenci dodatkowo umożliwiają integrację
Jedne systemy (jak np. MozyBackup) przyjmują kryte- odzyskiwania z eksploratorem Windows, co czyni przy-
rium czasowe przechowując wersje pliku przez okre- wracanie danych jeszcze bardziej intuicyjnym.
śloną liczbę dni (w przypadku Mozy jest to okres 30 Różnice pomiędzy software poszczególnych produ-
dni). Inni dostawcy wybierają ograniczenia ilościo- centów dotyczą najczęściej ilości opcji, które mamy
we. W jednych przypadkach, np. w IDrive jest to z gó- w przypadku odzyskiwania. Niektórzy z nich propo-
ry ustalona liczba 30 wersji, w kolejnych to definiowa- nują przywrócenie jedynie ostatniej wersji plików, inni
na przez użytkownika wartość w ramach narzuconych – jak np. Mozy pozwalają swobodnie przeglądać struk-
przez dostawcę ograniczeń. turę plików i przywracać je na dysk

Rysunek 2. Wizualizacja wirtualnego pulpitu jednego z dostawców internetowego backupu

www.hakin9.org 31
OBRONA

Dla wymagających ciekawe rozwiązania say. Jej software działa we wszystkich liczących się
Stosowanie backupu dla użytkowników końcowych systematach operacyjnych (wliczając w to oczywiście
to oczywiście ważny element zabezpieczania da- darmowego Linuxa oraz MacOs i NetWare). Dodatko-
nych. Niemniej jednak kopie zapasowe często mu- wo producent zapewnia, że system ruszy na wszyst-
szą obejmować także rozwiązania specjalistyczne. kich platformach wspierających język Java.
Wśród dostępnych usług z zakresu internetowego Oprogramowanie może wykonywać kopie zapaso-
backupu są także takie, które dzięki swojej funkcjo- we systemów bazodanowych MS Exchange, MS SQL,
nalności pozwalają wykonywać kompleksowe kopie Oracle, Lotus Domino/Notes, MySQL oraz m.in. pili-
bezpieczeństwa. ków Microsoft Outlook / Outlook Express. Ponadto
Firma Novastor dostarcza kilka gotowych pakietów platforma działa także na NASach oraz wspiera Win-
usług. Są w śród nich m.in. rozwiązania pozwalają- dows Active Directory.
ce backupować serwerowe systemy firmy Microsoft Sam producent daje także wiele możliwości ułatwia-
w wersjach 2008 i 2003 (wraz z rozwiązaniami SBS jących samo wykonywanie kopii zapasowych, któ-
i 2008 R2). Produkt pozwala tworzyć kompletny bac- re wychodzą poza przyjęty standard. Należą do nich
kup systemu pozwalający na jego późniejsze odtwo- m.in. możliwość ustawienia indywidualnego publicz-
rzenie w razie awarii dysku. nego URL, z którym będzie można połączyć się w ce-
Ponadto otrzymujemy także możliwość backupu lu wykonania backupu czy też przydzielanie określonej
systemów Exchange i SQL. Novastor proponuje także części pasma pojedynczym użytkownikom.
dwa ciekawe rozwiązania dotyczące backupu w sie-
ciach komputerowych. Pierwszym z nich jest Scala- Dobre, ale za ile?
ble Network Backup Software for all Platforms będą- Opcje i możliwości, jakie daje backup internetowy wy-
ce zestawem klient – serwer umożliwiającym nie tyl- glądają niezwykle się obiecująco. Pozostaje odpowie-
ko wykonywanie kopii na centralnym serwerze (i póź- dzieć sobie na pytanie jakie koszty należy ponieść,
niejsze jej wysłanie na serwer firmy backupowej) ale aby móc zaopatrzyć się w tego typu rozwiązania.
także realizację tej czynności niezależnie od platformy Oczywiście ceny uzależnione są od stopnia skom-
systemowej, która obsługuje stację kliencką. Na plus plikowania usługi, którą chcielibyśmy zamówić. Część
tego oprogramowania zaliczyć należy obsługę syste- firm oferuje nawet darmowe produkty, jednak w więk-
mów NetWare. szości ich oferta skierowana jest do użytkowników do-
Drugim z wartych uwagi rozwiązań jest scentralizo- mowych.
wany backup oparty o storage server. Producent do- Propozycja Mozy dla firm obejmuje opłatę miesięcz-
starcza oprogramowanie, które umożliwia wykona- ną na poziomie ok. 4 USD oraz 0,5 USD za każdy GB
nie backupu lokalnie i przez internet na wspomnia- danych. Podobny możliwościami Ibackup będzie kosz-
nym serwerze a następnie przesłanie go w inne miej- tował nas minimum 10 USD za pakiet 10 GB danych.
sce. Rozwiązanie to jest o tyle wygodne, że jednym Mamy więc tutaj do czynienia z cenami oscylującymi
systemem backupu objąć można zarówno sieć lokal- ok. 50 zł miesięcznie przy backupie wielkości 10 GB.
ną w siedzibie firmy jak i placówki czy też pracujących Polscy dostawcy oferujący usługi backupowe sprze-
zdalnie pracowników. Dodatkowo oprogramowanie dają swoje produkty w zróżnicowanych cenach. Dla
pozwala wykonywać równolegle backup zapisywany przykładu Msejf w ofercie dla firm za licencję na jeden
lokalnie na każdej z maszyn. komputer każe sobie płacić 180 zł netto rocznie dając
przy tym 2 GB miejsca na kopie zapasowe. Za dodat-
Backupowy kombajn kowe miejsce i więcej komputerów trzeba zapłacić do-
Niezwykle rozbudowana ofertę posiada również Ah- datkowo.

Tabela 1. Stosunek funkcjonalności poszczególnych rozwiązań do ich skomplikowania i kosztów

Nazwa Funkcjonalność Prostota Koszt Elastyczność


serwer backup wysoka niska wysoki wysoka
Cobian + FTP niska niska niski niska
MozyBackup średnia wysoka niski Średnia
Ahsay wysoka niska średni wysoka
Novastor wysoka niska średni wysoka

najtańsze rozwiązanie
rozwiązanie najbardziej funkcjonalne w stosunku do kosztów
rozwiązanie najbardziej funkcjonalne

32 9/2010
Twój backup jest bez sensu!

Rozwiązania profesjonalne są droższe. Ich ceny wa- ne podejście do sprawy bezpieczeństwa naszych pli-
hają się na poziomie od kilkunastu do kilkudziesięciu ków.
dolarów miesięcznie i często również zależne są od Choć rozwiązanie to z pewnością nie zadowoli pro-
wielkości plików w backupie. fesjonalnych administratorów i wielkich firm, to znacz-
nej większości użytkowników sprzętu komputerowego
To przecież proste! może dać wewnętrzny spokój i oszczędzić wielu nie-
Internetowy backup sprawia, że zabezpieczenie na- przyjemnych sytuacji.
szych danych staje się co raz prostsze. Nieskompli- Backup przez sieć jest rozwiązaniem idealnym dla
kowana instalacja oraz łatwość konfiguracja prowadzą małych i średnich przedsiębiorstw. Sprawdzi się wszę-
do tego, że nawet w mniejszych firmach można bez dzie tam, gdzie nie nie ma potrzeby (bądź technicz-
kłopotów wdrażać tego typu rozwiązania. nych i finansowych możliwości) zatrudniania informa-
Bez wątpienia pamiętać należy o tym, że stopień tyka i budowania indywidualnego systemu kopii zapa-
skomplikowania implementacji zależy od tego co chce- sowych.
my zabezpieczać a także od tego, jak duża i skompli- Wszyscy ci, którzy posiadają w firmach jedną lub kil-
kowana jest np. struktura sieciowa, w której pracują ka stacji roboczych nie korzystających ze skompliko-
poszczególne jednostki. wanych systemów wirtualizacji czy centralizacji pra-
Uczciwie przyznać należy, że prostota backupów in- cy poprzez rozwiązania oparte o serwery czy bazy da-
ternetowych jest także pewną ich wadą. Trudno za- nych mogą z powodzeniem stosować produkty Mozy
przeczyć, że w niektórych przypadkach niewielkie, czy Ibackup – proste w konfiguracji i bezproblemowe
zautomatyzowane oprogramowanie nie zastąpi nam w działaniu. Oferują one rozsądny zakres możliwości
profesjonalnie skonfigurowanego i dobrze wyposa- konfiguracyjnych, które jednocześnie nie komplikują
żonego serwera kopii zapasowych nadzorowanego obsługi całego systemu.
przez doświadczonego informatyka. Administratorzy nieco bardziej rozbudowanych
Pamiętajmy jednak, że nie można pomijać kwestii ra- i skomplikowanych sieci muszą skorzystać z ofer-
cjonalności wydatków. Firmy oferujące backup przez in- ty usługodawców takich jak Ahsay czy Novastor. Ich
ternet dają nam dobrze i bezpieczne rozwiązanie w roz- funkcjonalność jest na tyle wysoka, że poradzą so-
sądnej cenie, która stanowi ułamek kosztów utrzyma- bie z większością backupowych zadań, nawet tych
nia dedykowanego rozwiązania. Dlatego dla większo- dość specyficznych jak kopie bezpieczeństwa ser-
ści firm i administratorów te rozwiązania są wystarcza- werowych systemów Microsoftu. Niestety, stopień
jąco dobrze zaprojektowane, bezpieczne i mało awaryj- skomplikowania konfiguracji tych rozwiązań sprawia,
ne, a przede wszystkim tańsze w zakupie. że nie poradzą sobie z nimi niedoświadczeni użyt-
kownicy.
Każdy krok jest ważny Niezależnie od wybranej opcji czy dostawcy usług
Każde zastosowane rozwiązanie backupowe zwięk- internetowy backup przyniesie firmie sporo korzyści
sza bezpieczeństwo danych. Każdy kolejny skopio- i umożliwi jej spokojne oraz stabilne funkcjonowanie
wany plik to krok do uniknięcia gigantycznych kłopo- przy rozsądnych nakładach finansowych.
tów, a w wielu przypadkach wymiernych strat mate-
rialnych.
Stosowanie internetowego systemu kopii zapaso-
wych to nieskomplikowany sposób na odpowiedzial-

WALDEMAR KONIECZKA
Autor jest Głównym Specjalistą ds. Informatycznych w �rmie AKTE z Poznania od 10-ciu lat.
Na co dzień łączy wiedzę teoretyczną z praktycznym zastosowaniem wiedzy z zakresu wdrożeń systemów IT.
Autor na łamach tego pisma dzieli się swoim wieloletnim doświadczeniem teoretycznym i praktycznym, zdradza tajniki wiedzy
informatycznej oraz każe nam się przyjrzeć na co zwrócić szczególną uwagę aby nasza praca w IT była bardziej świadoma, a co
za tym idzie bardziej komfortowa.

Firma Akte świadczy usługi Outsourcingu IT oraz Profesjonalnego Odzyskiwania i Archiwizacji Danych komputerowych.
W ramach działań operacyjnych �rma wdraża systemy archiwizacji i bezpieczeństwa danych, gdzie autor nadzoruje projekty od
strony informatyczno-biznesowej.
Po godzinach gra na gitarze w zespole rockowym.
Kontakt z autorem: akte@akte.com.pl
Strona autora: http://www.akte.com.pl

www.hakin9.org 33
OBRONA

Jak uchronić się przed


potopem cyfrowych danych
Stanisław Rejowski, Dyrektor Działu Produkcji Serwerów Actina Solar w ACTION S.A.

Tempo przyrostu ilości cyfrowych danych zwiększa się z roku na rok.


Eksperci z International Data Corporation (IDC) prognozują, że do
2020 roku objętość cyfrowego wszechświata zwiększy się 67-krotnie,
a w samym tylko 2010 roku świat zaleje 1,2 zettabajtów informacji
elektronicznych. Co zrobić, by nie utonąć w potopie elektronicznych
informacji oraz jak efektywnie przechowywać dane?

Dowiesz się: Powinieneś wiedzieć:


• Jakie jest tempo wzrostu cyfrowego wszechświata • podstawowa wiedza z zakresu przechowywania danych
• Jakie są główne problemy związane z przechowywaniem danych
• czym jest duplikacja, deduplikacja, archiwizacja, replikacja,
cloud storage oraz backup

C
yfrowy wszechświat stale rozszerza swoje gra- Nieaktywne dane zabierają miejsce
nice, a specjaliści alarmują, że w kolejnych la- Istotnym problemem współczesnego storage’u jest fakt,
tach możemy spodziewać się jeszcze większe- iż znaczna część przechowywanych danych - niezależ-
go tempa przyrostu informacji cyfrowych. Wg prognoz nie czy na firmowych serwerach, czy na dyskach twar-
IDC 2020 roku ilość danych cyfrowych wzrośnie aż 67- dych komputerów domowych – to informacje nieaktywne,
krotnie. Co ciekawe, jedynie połowa cyfrowego wszech- niewykorzystywane przez użytkowników. Dobrym roz-
świata jest wynikiem bezpośrednich działań ludzi – wy- wiązaniem problemu niekontrolowanego przyrostu zbęd-
syłania maili, zakładania stron internetowych czy też nych plików jest wdrożenie systemu zarządzania dany-
rozmów telefonicznych w technologii VoIP. Drugą po- mi – profesjonalnego w przypadku firmy, racjonalnej po-
łowę stanowi tzw. cyfrowy cień – pozostałość, ślad po- lityki optymalizującej wykorzystanie zasobów dyskowych
dejmowanych przez nas działań zapisany w rejestrach w odniesieniu do użytkowników domowych.
rozmów, historii przeglądanych stron czy nagraniach W przypadku przedsiębiorstw pierwszym i podstawo-
kamer monitoringu. wym krokiem wiodącym do optymalizacji storage’u jest
Za tak dynamicznym przyrostem ilości danych stoi określenie kluczowych z punktu widzenia firmy danych
cały szereg zjawisk - od rosnącej popularności urzą- i wymagań odnośnie ich przechowywania (np. z uwagi
dzeń mobilnych, dynamicznej ekspansji internetu i cy- na uregulowania prawne czy poziom poufności). Istotne
fryzacji coraz większej liczby dziedzin życia, po proce- jest także zapewnienie niezakłóconej pracy aplikacji ro-
sy globalizacji, ciągły rozwój społeczeństwa informa- boczych oraz wdrożenie inteligentnych rozwiązań zapisu
cyjnego oraz gospodarki opartej na wiedzy, w której i magazynowania danych. Ważną rolę odgrywają także
informacje – obok ludzi – stanowią najcenniejsze ak- technologie pozwalające na maksymalne wykorzystanie
tywa firm. Jednak tak szybki przyrost ilości cyfrowych pojemności posiadanych dysków – mowa tu m.in. o tech-
danych niesie ze sobą także pewne wyzwania - chcąc nologiach deduplikacji i archiwizacji. Nieodzowne z punk-
uniknąć sytuacji, w której wielkość cyfrowego świa- tu widzenia przechowywania danych w firmach są rów-
ta przewyższy możliwości nośników informacji, nie- nież procedury backupu oraz zabezpieczania danych.
odzowne stanie się wprowadzenie odpowiedniej po- Powyższe zasady znajdują swoje zastosowanie także
lityki zarządzania danymi, zarówno w wymiarze kor- w przypadku magazynowania danych przez użytkowni-
poracyjnym, jak i w przypadku użytkowników domo- ków domowych, na komputerach których również znajdu-
wych. ją się cenne cyfrowe dane.

34 9/2010
Potop cyfrowych danych

Nieuzasadniona duplikacja z dowolnego miejsca, także za pomocą urządzeń mo-


Kolejną kwestią, z którą przyjdzie nam się zmierzyć w ob- bilnych.
liczu dynamicznego przyrostu danych cyfrowych jest nie- Odpowiedzią na nieuzasadnioną duplikację są proce-
uzasadniona duplikacja. O ile planowa i celowa replika- dury deduplikacji. Polegają one na eliminacji powtarzają-
cja danych jest jednym z podstawowych narzędzi bac- cych się informacji poprzez zastąpienie kopii odnośnika-
kupu, o tyle niczym nieuzasadniona duplikacja stanowi mi do oryginalnej, źródłowej porcji danych. Deduplikacja
istotny problem zarówno dla centrów danych, jak i dla po- to operacja wykonywana automatycznie przez oprogra-
jedynczych serwerów storage’owych czy dysków twar- mowanie, najczęściej w macierzy dyskowej, dzięki której
dych. Duplikacja to zjawisko występowania jednej lub możliwe jest wyeliminowanie powtarzających się danych
wielu kopii tej samej porcji danych w obrębie jednego no- (ich duplikatów). Umożliwia ona przechowywanie jedynie
śnika lub na różnych nośnikach. Z duplikacją danych ma- unikatowych plików lub bloków z danymi, generując tym
my do czynienia nie tylko w firmach, ale także i na prywat- samym znaczne oszczędności przestrzeni dyskowej.
nych, domowych komputerach. Często ten sam plik, zdję- Wyróżnia się dwa rodzaje deduplikacji: na poziomie
cie, utwór czy film występują na kilku komputerach, urzą- systemu plików i na poziomie bloków dyskowych. Dedu-
dzeniach cyfrowych czy nośnikach w obrębie jednego go- plikacja na poziomie bloków dyskowych gwarantuje lep-
spodarstwa domowego. Dobrym rozwiązaniem, eliminu- sze rezultaty, gdyż nie zależy od ilości lub rodzaju plików
jącym multiplikowane porcje danych, jest stworzenie ma- ani od systemu operacyjnego, na którym bazuje dany
łego, domowego centrum danych. Za centrum tego typu system informatyczny.
posłużyć może niewielki serwer storage’owy tzw. Home Funkcje deduplikacji oferowane są przez niektóre apli-
Server, do którego dostęp uzyskają wszyscy domowni- kacje odpowiedzialne za backup. Oprogramowanie to
cy. Wyposażony w wyjście HDMI może on stanowić cen- często pozwala ponadto na jednoczesną na kompresję
trum multimedialne. Podobne funkcje może pełnić dysk danych, co oczywiście daje dodatkowy zysk. Przy szybko
sieciowy NAS. rosnącej ilości przechowywanych informacji funkcje te za-
NAS (Network Attached Storage) to technologia umoż- czynają nabierać szczególnie istotnego znaczenia - więk-
liwiająca podłączenie zasobów zgromadzonych na dys- sza ilość przechowywanych danych archiwizuje się dłu-
kach bezpośrednio do sieci komputerowej. Jest to ma- żej, a czasu na backup pozostaje tyle samo. Tym bar-
cierz dyskowa (lub pojedynczy dysk twardy) podłączo- dziej, że liczne regulacje coraz częściej zmuszają firmy
ny bezpośrednio do sieci lokalnej. W ramach infrastruk- do archiwizowania danych nawet przez dziesiątki lat.
tury serwer-klient pełni rolę serwera, posiada procesor
i okrojoną wersję systemu operacyjnego. Zasoby serwe- Archiwizacja
rów NAS są udostępniane uprawnionym użytkownikom. Gdy mamy do czynienia z danymi, z których na co dzień
Rozwiązanie to umożliwia łatwy dostęp do danych zma- nie korzystamy, ale z różnych względów uznajemy je za
gazynowanych w jednym miejscu z różnych punktów sie- cenne i nie chcemy się z nimi rozstać, z pomocą przy-
ci. Silną stroną dysków sieciowych NAS jest możliwość chodzą nam procedury archiwizacji. Statystyki pokazu-
stosowania ich w heterogenicznych środowiskach siecio- ją, że z 80% stworzonych danych firma nigdy już nie ko-
wych bazujących na różnych rozwiązaniach klienckich, rzysta bądź korzysta bardzo rzadko. Archiwizacja umożli-
dzięki czemu dane dostępne są niezależnie od zainstalo- wia przeniesienie owych danych na wolniejsze, a przez to
wanego systemu operacyjnego. tańsze od dysków twardych nośniki. Archiwizacja to pro-
Ponadto publiczny adres IP czy też usługi VPN oferu- ces przenoszenia danych z systemów komputerowych
ją użytkownikowi dostęp do zgromadzonych zasobów na inne nośniki w celu zredukowania ich ilości. Archiwi-
zacja może przybierać formę kopii analogowych (wydru-
ki dokumentów), kopiowania danych na nośniki wymien-
ne (np. płyty CD-R, płyty DVD-R czy Blu-ray), kopiowa-
nia plików na inny dysk tego samego komputera (np. RA-
ID), kopiowania na taśmę magnetyczną, kopiowania na
inny komputer (np. kopia zwierciadlana, serwer plików)
lub zautomatyzowanej archiwizacji online (np. Przeklej.pl,
Plikus.pl).
Standardowe sposoby archiwizacji to metody ręczne
i półautomatyczne, wymagające od użytkownika nakła-
dów pracy, czasu i pieniędzy. Archiwizacja w obrębie sie-
ci lokalnej wiąże się z koniecznością zakupu oraz regu-
larnego unowocześniania sprzętu, ponoszenia kosztów
związanych z eksploatacją infrastruktury. Ponadto wy-
Rysunek 1. Komputer Actina z monitorem LG maga wygospodarowania bezpiecznej przestrzeni na

www.hakin9.org 35
OBRONA

składowanie zapełnionych nośników, co niesie ze sobą ny istnieją pewne wątpliwości odnośnie bezpieczeństwa
kolejne koszty (instalacja alarmu, zatrudnienie dodatko- danych (szczególnie tych wrażliwych) magazynowanych
wej obsługi). Doskonałe rozwiązanie archiwizacyjne po- w chmurze. Specjaliści zwracają także uwagę na fakt, iż
winno umożliwiać nieprzerwany dostęp do zarchwizowa- dostęp do cyfrowych informacji przechowywanych w ten
nych danych, stąd najczęściej stosowanymi rozwiąza- sposób jest uzależniony od dostępności i jakości połą-
niami archiwizacyjnymi są dyski twarde, dyski zewnętrz- czenia internetowego.
ne i serwery storage’owe czy biblioteki taśmowe. Do ce- Specjaliści z IDC prognozują, że technologia cloud
lów archiwizacji nadają się także nośniki optyczne (DVD, storage będzie zyskiwać coraz większy udział w rynku.
Blu-ray) – ze względu na swoją stosunkowo dużą pojem- Obecnie szeroko pojęte usługi cloud storage stanowią
ność i relatywnie niski koszt stanowią dobre rozwiązanie 9% rynku rozwiązań cloud computing, którego całkowi-
zarówno dla firm, jak i dla zaawansowanych użytkowni- ta wartość szacowana jest na ok. 17,4 mld USD. W 2013
ków domowych. Niestety, czytniki tego typu utrudniają wartość rynku cloud storage ma wzrosnąć do 6,2 mld
dostęp do zarchiwizowanych danych oraz pozostawiają USD. Polscy użytkownicy nadal z ograniczonym zaufa-
wiele do życzenia, jeśli chodzi o bezpieczeństwo zarchi- niem podchodzą do technologii cloud storage – dość nie-
wizowanych informacji z uwagi na ograniczone możliwo- chętnie godzą się z myślą, że ich cenne dane przechowy-
ści kontroli dostępu. wane będą z dala od nich.
Coraz więcej firm decyduje się na usługi archiwizacji
online. Outsourcing procedur archiwizacyjnych to wygod- Bezpieczeństwo danych - backup
ne rozwiązanie, zdejmujące z barków firmy lub użytkow- Wszystkie technologie przechowywania danych mogą
nika konieczność inwestowania w urządzenia i infrastruk- być narzędziem backupu. Kopie zapasowe można prze-
turę magazynowania danych. Sceptycy archiwizacji onli- chowywać w chmurze, na płytach, na dyskach twardych,
ne za jej główną słabość uznają długi - zależny od prze- dyskach zewnętrznych, na serwerach własnych lub wy-
pustowości łącza internetowego- upload danych. najętych od zewnętrznej firmy. Tworzenie zapasowych
kopii bezpieczeństwa ma na celu umożliwienie odtwo-
Jak przechowywać, to z głową… w chmurze rzenia danych utraconych w przypadku ich utraty bądź
Coraz większą popularnością cieszą się rozwiązania uszkodzenia. Choć pierwotnie termin backup odwoływał
tzw. cloud storage – przechowywania danych w chmu- się do zautomatyzowanych i usystematyzowanych form
rze. Cloud storage stanowi model przechowywania da- tworzenia kopii zapasowych, obecnie pojęciem tym okre-
nych online, w którym informacje magazynowane są ślamy wszelkie, nawet amatorskie, sposoby sporządza-
na wirtualnych serwerach hostowanych przez dostaw- nia kopii bezpieczeństwa plików. Kopie bezpieczeństwa
ców usług. W modelu tym użytkownik płaci tylko za po- najczęściej przechowywane są na dyskach HDD lub no-
wierzchnię dyskową, z której rzeczywiście korzysta oraz śnikach taśmowych.
za faktycznie wykorzystywane zasoby. Przechowywa- Wiele programów, np. edytorów tekstów, automatycz-
nie danych w modelu cloud niesie ze sobą liczne korzy- nie tworzy kopie opracowywanych plików, przez co umoż-
ści. Cloud storage nie wymaga od użytkowników pono- liwia odtworzenie ich zawartości w sytuacji awarii kompu-
szenia nakładów na lokalną infrastrukturę fizyczną, zdej- tera lub niespodziewanego odcięcia dopływu prądu. Me-
muje z niego także ciężar przeprowadzania backupów, chanizmy backupu są standardem w przypadku środo-
replikacji, konserwacji urządzeń. Z drugiej jednak stro- wisk serwerowych, gdzie od bezpieczeństwa danych za-
leżeć może funkcjonowanie całej firmy.
Wyróżniamy kilka rodzajów backupu: całościowy,
przyrostowy, różnicowy, lokalny oraz sieciowy. Każdy
z nich ma swoje mocne i słabe strony, decyzja o wybra-
nej metodzie tworzenia kopii zapasowych zawsze nale-
ży do użytkownika.
Backupowi całościowemu (full backup) poddawane są
wszystkie zapisane na nośniku dane, a bit „archive” pli-
ków ustawiany jest w stan „0”. Backup całościowy zde-
cydowanie ułatwia wyszukiwanie danych – wszystkie
znajdują się na jednym nośniku, a w przypadku awa-
rii odtworzenie systemu nie zajmuje zbyt wiele czasu.
Z drugiej jednak strony full backup nie pozwala na efek-
tywne wykorzystanie nośników – permanentnie tworzo-
ne są kopie bezpieczeństwa rzadko modyfikowanych
danych. Kolejną komplikacją może być długi czas wyko-
Rysunek 2. Wnętrze serwera nywania operacji.

36 9/2010
Potop cyfrowych danych

Drugą techniką tworzenia kopii bezpieczeństwa jest Niestety nadal bardzo często – potwierdzając słowa
tzw. backup przyrostowy (incremental backup). W prze- przysłowia „mądry Polak po szkodzie” – o tym, jak istotny
ciwieństwie do swojego całościowego odpowiednika, jest backup dowiadujemy się dopiero po utracie danych.
backup przyrostowy dokonuje zapisu jedynie nowopow- Okazuje się wtedy, że przechowywane na komputerze da-
stałych danych lub tych, które uległy zmianie od czasu ne mają w istocie większą wartość niż samo urządzenie.
wcześniejszego backupu. Backupowane są pliki, które
bit „archive” mają ustawione w stan „1”, a po tej opera- Replikacja
cji bit „archive” jest przestawiany w stan „0”. Silną stro- Jednym z narzędzi backupu jest replikacja - proces po-
ną backupu przyrostowego jest krótki czas jego przepro- wielania danych, tworzenia ich kopii na różnych nośni-
wadzania oraz efektywne wykorzystanie nośników. Bac- kach, np. serwerach. Wyróżniamy trzy podstawowe ro-
kup przyrostowy nie jest jednak metodą idealną, poza dzaje replikacji danych: migawkową, transakcyjną oraz
długim czasem odtwarzania systemu jego podstawową dwukierunkową. Replikacja migawkowa polega na po-
słabością jest trudność wyszukiwania danych - do odna- wieleniu i rozprowadzeniu na różnych nośnikach da-
lezienia zbioru są potrzebne wszystkie nośniki z backu- nych zapisanych w określonym momencie. Ten typ repli-
pami przyrostowymi oraz ostatni nośnik z backupem ca- kacji znajduje swoje zastosowanie głównie w przypadku
łościowym. danych poddawanych rzadkim, ale znacznym modyfika-
Kolejnym sposobem tworzenia kopii zapasowych jest cjom. Za niedogodność możemy uznać fakt, iż dane zapi-
backup różnicowy (differential backup), w którym zapisy- sane pomiędzy kolejnymi migawkami nie są replikowane.
wane są te dane, które uległy zmianie od czasu ostatnie- W przypadku replikacji transakcyjnej dane rozprowadza-
go całościowego lub przyrostowego backupu. Backupo- ne są na podstawie logów transakcji tylko wtedy, gdy od-
wi poddawane są pliki, które bit „archive” mają ustawio- bywa się synchronizacja. Replikacja dwukierunkowa po-
ne w stan „1”. Po tej operacji nie ulega on zmianie. Ten lega zaś na dwukierunkowej wymianie danych – od ser-
typ backupu umożliwia łatwe wyszukiwanie potrzebnych wera głównego, jak i od klientów. Słabością tego rodza-
w danej chwili danych, odtworzenie systemu przeprowa- ju replikacji jest niebezpieczeństwo zaistnienia konfliktu
dza się stosunkowo szybko. Również sama procedura w czasie synchronizacji.
backupu trwa krócej niż w przypadku backupu całościo-
wego. Także i ten sposób tworzenia kopii zapasowych Podsumowanie
nie ustrzegł się słabości, którymi są nieefektywne wyko- Prawie 500 miliardów gigabajtów informacji cyfrowych
rzystanie nośników oraz nadmiarowość backupów – na- wygenerowanych w 2008 roku oraz prognoza mówiąca
wet te dane które nie uległy zmianie, są cały czas backu- o 1,2 zettabajta danych, które mają powstać w 2010 roku,
powane. Backup różnicowy ustępuje przyrostowemu pod nie pozostawiają złudzeń. Tak dynamiczny przyrost ilości
względem czasu wykonywania operacji. informacji elektronicznych wymusi na firmach i użytkow-
Spektrum technik tworzenia kopii bezpieczeństwa za- nikach domowych zmianę podejścia do kwestii storage’u.
mykają backup lokalny oraz backup sieciowy. Backup Zamiast inwestować w kolejne nośniki, coraz więcej osób
lokalny to rozwiązanie proste w instalacji i konfiguracji. zacznie zadawać sobie pytanie, co zrobić, by lepiej wyko-
Gwarantuje szybki transfer danych i krótki czas trwa- rzystać te, które już posiadają.
nia procedury backupu. Niestety wymaga dość dużego
udziału ze strony użytkownika, co zwiększa prawdopodo- STANISŁAW REJOWSKI
bieństwo wystąpienia błędu ludzkiego. Jest ponadto sto- Ukończył Automatykę i Metrolo-
sunkowo drogi. gię na Wydziale Elektrotechni-
Backup sieciowy z kolei umożliwia centralne zarządza- ki, Automatyki, Informatyki i Elek-
nie, intuicyjną automatyzację. Jest tańszy w administro- troniki Akademii Górniczo-Hutni-
waniu aniżeli jego lokalny odpowiednik. Słabością bac- czej w Krakowie. Od 18 lat zwią-
kupu sieciowego jest duże obciążenie sieci, wolny trans- zany z branżą IT. Specjalizuje się
fer danych oraz długi czas potrzebny do przeprowadze- w problematyce serwerowej. Przez
nia backupu. ponad 13 lat pracował w �rmie
Ważne przy tworzeniu kopii bezpieczeństwa jest, by OPTIMUS na stanowiskach: Tech-
pierwotne dane i ich zbackupowane odpowiedniki nie nik w Dziale Sieci Komputerowych,
znajdowały się w tym samym miejscu. Podczas ostat- pracownik w Dziale Integracji Sys-
niej powodzi wiele firm na własnej skórze odczuło jak bo- temów, Dyrektor Centrum Technologicznego Systemów Ope-
lesnym błędem może być lokalizacja wszystkich danych racyjnych, Kierownik Serwisu Serwerów, Manager ds. Techno-
w jednym miejscu. Podobnie w przypadku użytkowników logii Serwerowych w Biznes Unit Serwery, Kierownik Produkcji
domowych – przechowywanie kopii bezpieczeństwa da- i Serwisu Serwerów oraz Dyrektor Działu Badań i Rozwoju. Od
nych razem lub w pobliżu danych pierwotnych odbiera 2006 roku pełni obowiązki Dyrektora Działu Produkcji Serwe-
sens backupowi. rów Actina Solar w �rmie ACTION S.A.

www.hakin9.org 37
PRAKTYKA

Neurony w komputerze
Wojciech Terlikowski

Sztuczne sieci neuronowe posiadają wiele zalet, które pozwoliły


im stać się jedną z najpopularniejszych metod obliczeniowych
sztucznej inteligencji. Znalazły zastosowanie w rozwiązywaniu
zadań klasyfikacji, aproksymacji jak i predykcji. Artykuł przedstawia
podstawowe zagadnienia związane z budową i uczeniem sieci.
W dalszej części zaproponowano użycie sieci neuronowej jako
systemu zwiększającego bezpieczeństwo sieci komputerowej.

Dowiesz się: Powinieneś wiedzieć:


• Co to są sieci neuronowe, jak się je buduje i które ich właści- • Znać pojęcia i ogólne zagadnienia z zakresu optymalizacji glo-
wości decydują o szrokich możliwościach wykorzystania m.in. balnej
w zagadnieniach związanych z bezpieczeństwem.

M
ożliwości ludzkiego mózgu od niepamiętnych sę komórka nerwowa przejdzie do stanu aktywnego,
czasów fascynowały badaczy. Mimo, że pod wysyła przez wyjście infomacyjne sygnał o charaktery-
względem szybkości i dokładności obliczeń stycznych parametrach - kształcie, amplitudzie i czasie
arytmetycznych współczesne komputery uzyskują zna- trwania. Za pośrednicwtem innych synaps impuls taki
komite wyniki to możliwości układu nerwowego czło- przekazywany jest do kolejnych neuronów i może spo-
wieka w zakresie uczenia, rozpoznawania i klasyfika- wodować ich aktywację. Przejście komórki nerwowej
cji pozostają wciąż niedoścignionym wzorem. Wzór ten w stan aktywny następuje, gdy łączny sygnał, który do
z czasem stał się również inspiracją dla badaczy i inży- niej dotarł z wszystkich dendrytów przekroczy pewien
nierów chcących tworzyć maszyny coraz lepsze i bar- poziom progowy. Należy zauważyć, że waga sygnałów
dziej uniwersalne. W celu lepszego zrozumienia budo- z różnych wejść może być różna.
wy i zasady działania sztucznych sieci neuronowych Taki, dość uproszczony model układu nerwowego
warto wiedzieć jak działa ich naturalny pierwowzór. człowieka, stał się inspiracją do zaproponowania mode-
lu matematycznego zwanego sztuczną siecią neurono-
Układ nerwowy człowieka wą (ang. artificial neural network, ANN).
Badania badania wykazują, że mózg człowieka składa
się przede wszystkim z miliardów elementarnych komó- Budowa i działanie
rek nerwowych – neuronów, połączonych w skompliko- sztucznej sieci neuronowej
waną sieć. Ocenia się, iż każdy z neuronów ma śred- Kiedy mówi się o sztucznych sieciach neuronowych,
nio kilka tysięcy połączeń z innymi. Daje to łącznie oko- zwanych w uproszczeniu sieciami neuronowymi, na-
ło stu trylionów połączeń w całym mózgu. Komórki ner- leży pamiętać, że nie są one próbą wiernego odwzo-
wowe mogą przenosiśc i przetwarzać złożone sygna- rowania procesów zachodzących w układzie nerwo-
ły elektrochemiczne. Impulsy te przyjmowane są za po- wym. Podobnie jak w przypadku innych metod wzoro-
średnictwem wielu wejść informacyjnych tzw. dendry- wanych na procesach zachodzących w przyrodzie np.
tów i scalane w ciele tzw. perikarionie. Informacja wyj- algorytmów ewolucyjnych inspiracja biologiczna polega
ściowa jest przekazywana do innych komórek za po- przede wszystkim na przyjęciu odpowiedniego nazew-
średnictwem pojedynczego włókna - aksonu i rozgałę- nictwa oraz ogólnego schematu działania dla zaawan-
zionej struktury wyjściowej - telodendronu. Akson jed- sowanej metody matematycznej.
nego neuronu łączy się z dendrytami kolejnych za po- Najprostszą sztuczną siecią neuronową jest percep-
mocą synapsy. Jeśli w wyniku pobudzenia przez synap- tron. Może się on składać nawet z jednego neuronu,

38 9/2010
Neurony w komputerze

posiadającego wiele wejść xn i jedno wyjście y. Każ- się to ze zmianą struktury sieci neuronowej lub algo-
de z wejść neuronu powiązane jest z wagą synaptycz- rytmu uczenia i ponownym trenowaniem.
ną wn, a dodatkowo istnieje również waga w0 zwana Do uczenia perceptronu stosuje się następujący al-
wartością progową, nie powiązaną z żadnym z wejść. gorytm:
O kształcie i poziomie sygnału wejściowego decydu-
je funkcja aktywacji f. Stosuje się bardzo różne funkcje 1. Wybierz losowo wagi początkowe.
aktywacji, do najpopularniejszych należą: signum, tan- 2. Podawaj na wejścia perceptronu kolejne przykłady
gens hiperboliczny, arcus sinus czy funkcja liniowa. ze zbioru uczącego.
Pojedynczy neuron można opisać za pomocą rów- 3. Dla każdego przykładu oblicz wartość wyjściową.
nania y=f(s) gdzie s jest sumą sygnałów ze wszystkich 4. Jeśli wartość wyjściowa różni się od wzorcowej ob-
wejść z odpowienidmi wagami. s=Σi(xiwi+w0) licz nowe wartości wag według formuły w+d(xj)xj ,
Jak widać sposób działania prostej sieci neuronowej gdzie w to wektor wag w poprzednim kroku ucze-
jest łatwy do zrozumienia. Okazuje się, że już tak nie- nia, xj to wektor wartości wejściowych dla j-tego
skomplikowana sieć jak perceptron złożony z jednego przykładu natomiast d(xj) to wartość wzorcowa dla
neuronu posiada dobre właściwości w zakresie klasy- tego wektora.
fikacji. 5. Wróć do 2 i powtarzaj dopóki nie wyczerpie się
Na podstawie powyższych równań widać, że o tym zbiór uczący, lub nie zostanie uzyskany odpowied-
jak dobrze model realizuje swoje zadanie decyduje nio niski poziom błędu.
funkcja aktywacji oraz wartości wag. W bardziej złożo-
nych przypadkach znaczenie będzie miała również licz- W uzasadnionych sytuacjach, gdy dostępna jest tylko
ba neuronów i ich rozmieszczenie w warstwach. Funk- niewielka liczba przykładów, dopuszczane jest użycie
cja aktywacji jest najczęściej dobierana arbitralnie dla zbioru trenującego kilkukrotnie. Należy się wtedy jed-
całej sieci, więc cała "pamięć" znajduje się w wagach. nak liczyć z większym ryzykiem nadmiernego dopa-
Dlatego proces uczenia perceptronu polega na wyzna- sowania.
czeniu odpowiednich wartości wag. Jak się okazuje taki algorytm uczenia jest zbieżny
i jeśli tylko istnieje wektor wag prawidłowo klasyfikujący
Uczenie perceptronu
Do uczenia perceptronu stosuje się uczenie z nadzo-
rem (ang. supervised learning) zwane również ucze-
niem z nauczycielem. Algorytmy z tej grupy wymaga-
ją znajomości prawidłowej kategorii dla każdego z przy-
kładów. Kolejne elementy zbioru uczącego podawane
są na wejścia sieci. Jeśli na wyjściu przykład zostanie
nieprawidłowo zaklasyfikowany to algorytm modyfiko-
wany jest tab by zmniejszyć prawdopodobieństwo po-
pełnienia kolejnych błędów.
Podczas uczenia można natrafić na wiele trudności.
Istotnym problemem, występującym podczas uczenia
jest „nadmierne dopasowanie” (ang. overfitting) znane
również jako przeuczenie lub przetrenowanie modelu.
Ryzyko to dotyczy nie tylko sieci neuronowych, ale i in-
nych metod uczenia się maszyn. Podstawowym spo-
sobem zapobieżenia takiemu problemowi jest podział
zbioru przykładów wykorzystywanych podczas ucze-
nia na dwie części. Pierwsza z nich, zazwyczaj więk-
sza nazywana zbiorem uczącym, jest wykorzystywana
bezpośrednio w procesie uczenia. Drugiej, tzw. zbio-
ru testowego, używa się po zakończeniu procesu na-
uczania do sprawdzenia jakości wytrenowanego mo-
delu. Popularną metodą określania błędu sieci jest
błąd średniokwadratowy. Jeśli okaże się, że jest on
znacznie większy dla przykładów ze zbioru testowego
niż uzyskiwany podczas uczenia najpewniej oznacza
to nadmierne dopasowanie. Należy wówczas podjąć
odpowiednie działania naprawcze. Najczęściej wiąże Rysunek 1. Schemat komórki nerwowej. Źródło: Wikipedia.

www.hakin9.org 39
PRAKTYKA

wszystkie przykłady to zostanie on znaleziony w skoń- mają bezpośredniego połączenia z wejściem ani wyj-
czonej liczbie kroków. ściem sieci.
Wszystkie neurony mają połączenia z każdym z neu-
Bardziej złożone sieci neuronowe ronów warstwy następnej. Tak zbudowana sieć jest bar-
Sieć, składająca się z jednego neuronu nadaje się do dziej elastyczna i może być zastosowana do rozwiązy-
zastosowania w stosunkowo niewielkiej klasie pro- wania znacznie większej klasy problemów niż tylko kla-
blemów, gdy kategorie przykładów są liniowo sepa- syfikacja kategorii liniowo separowalnych. Pojawia się
rowalne. Z tego powodu w praktycznych zastoso- jednak ryzyko zbytniego skomplikowania modelu po-
waniach używa się bardziej złożonych struktur. Sie- przez dodanie zbyt wielu neuronów warstw ukrytych. Nie
ci wielowarstwowe składają się z wielu neuronów po- istnieje uniwersalna metoda, pozwalająca na wyznacze-
grupowanych w tak zwane warstwy. Do pierwszej nia optymalnej struktury sieci. W praktyce najczęściej
z warstw doprowadzone są wejścia, natomiast ostat- trzeba polegać na własnym doświadczeniu, obserwując
nia ma wyjścia całego modelu. Najczęściej pomiędzy jednocześnie błąd na zbiorze uczącym i testowym. Jeśli
nimi znajdują się warstwy ukryte, czyli takie, które nie ten drugi jest znacząco większy od pierwszego najczę-
ściej oznacza to, że strukturę sieci trze-
ba uprościć, usuwając część neuronów
lub jedną z warstw ukrytych. Jeśli nato-
miast zarówno błąd na zbiorze testowym
jak i uczącym mimo długiego uczenia nie
zmiejsza się do oczekiwanego poziomu,
może to oznaczać, że zakładany model
jest zbyt prosty. W takiej sytuacji pomóc
może rozbudowanie sieci o dodatkowe
neurony lub wartstwę ukrytą.
Uczenie sieci wielowartstowej, po-
dobnie jak w przypadku jednowarstwo-
wej, polega na minimalizacji błędu. Jest
on najczęściej defioniowany jako błąd
średniokwadratowy czyli suma kwadra-
tów różnic pomiedzy uzyskanymi i wzor-
cowymi wartościami wyjściowymi. Do
trenowania sieci można zatem zasto-
sować algorytmy znane z optymalizacji:
od metod gradientowych, na przykład
Rysunek 2. Funkcja signum jest często wykorzystywana jako funkcja aktywacji neuronu. metody największego spadku, poprzez

Rysunek 3. Symulacja sterowania dwoma agentami — myszami za pomocą sieci neuronowych w programie Simbrain.

40 9/2010
Neurony w komputerze

metody drugiego rzędu takie jak algorytm Levenberga- Opisany algorytm, podobnie jak inne metody gradien-
Marquardta, aż do algorytmów ewolucyjnych. towe jest w niewielkim stopniu odporny na minima lo-
Jednym z najpopularniejszych algorytmów uczenia kalne. Oznacza to, że znalezione ekstremum funkcji
sieci wielowarstwowych jest metoda wstecznej propaga- celu, czyli wartości wag sieci neuronowej, mogą wca-
cji błędu (ang. back propagation). Mimo, że zwykle jest le nie być optymalne, a jedynie najlepsze w najbliż-
wolniejsza od nowoczesnych algorytmów, takich jak me- szym otoczeniu. Dlatego też zostało opracowanych kil-
toda Levenberga-Marquardta, wciąż ma wielu zwolenni- ka modyfikacji algorytmu wstecznej propagacji błędu
ków. Przede wszystkim ze względu na prostotę oraz to, przyspieszających jego zbieżność oraz uodparniają-
że nie nakłada na funkcję celu, opisującą błąd wielu, nie- cych na minima lokalne. Do takich modyfikacji należy
kiedy trudnych do sprawdzenia ograniczeń. W efekcie m.in. metoda Quickprop oraz Rprop.
pozwala rozwiązanie praktycznie każdego zadania, choć Artykuł, ze względu na swoją niewielką obietość po-
rzadko będzie to rozwiązanie najszybsze. rusza tylko niewielki zakres tematów związanych z bu-
Algorytm wstecznej propagacji błędu: dową i zasadami działania i uczenia sieci neuronowych.
Jednak podstawowa wiedza w nim zawarta powinna po-
1. Wybierz losowo początkowe wartości wag. Najle- zwolić na zrozumienie tych zasad i świadome a przez to
piej małe liczby z przedziału (0,1). skuteczniejsze i lepsze wykorzystywanie rozwiązań ba-
2. Podawaj na wejście sieci kolejne przykłady ze zbio- zujących na tym modelu.
ru uczącego.
3. Dla każdego przykładu oblicz wartość wyjściową. Propozycja zastosowania sieci neuronowej
4. Oblicz wartości odchyleń w ostatniej warstwie. w systemie wykrywania włamań
5. Oblicz kolejno wartości odchyleń w poprzednich Jako przykład praktycznego zastosowania sieci neuro-
warstwach za pomocą propagacji wstecznej. nowych zaproponowano wykorzystanie ich w systemie
6. Na podstawie odchyleń wyznacz wartości popra- wykrywania włamań do systemów informatycznych.
wek dla wag we wszystkich warstwach. Wiele jest rozwiązań zabezpoieczających komputery
7. Powtarzaj od 2, aż do uzyskania wymaganego po- i sieci komputerowe przed intruzami (ang. Intrusion De-
ziomu błędu lub wyczerpania zbioru uczącego. tection systems, IDS). Systemy tej klasy mają za zada-

www.hakin9.org 41
PRAKTYKA

pozna różne modyfikacje znanych form


ataku. Jeśli odkryte zostaną nowe meto-
dy włamań w większości wystarczy tylko
przeprowadzić uczenie modelu na pod-
stawie nowych przykładów. Można rów-
nież zastosować inne rodzaje sieci neu-
ronowych tak zwane sieci Kohonena lub
samo-organizujące się mapy nie opisa-
ne w artykule.
W praktycznych zastosowaniach rzad-
ko IDS będzie działał w oparciu wyłącz-
nie o sieć neuronową. Najczęściej bę-
dzie ona wykorzystana do wstępnej kla-
syfikacji zdarzeń a jej wyjście przekazy-
wane jest do systemu eksperckiego. In-
nym sposobem połączenia obu rozwią-
zań może być bazowanie głównie na re-
gułach eksperta i wykorzystywanie mo-
delu neuronowego jedynie w przypad-
Rysunek 4. Funkcja tangens hiperboliczny jest często wykorzystywana jako funkcja kach niepewnych, których nie pokrywa-
aktywacji neuronu. ją znane reguły.
nie rozpoznać czy aktywność podejmowana przez użyt-
kowników jest próbą włamania. W tym celu najczęściej Podsumowanie
wykorzystywana jest baza reguł stworzoną przez eks- Sztuczne sieci neuronowe uzyskują bardzo dobre wyni-
pertów. Na podstawie reguł zdarzenia w systemie np. ki podczas badań. Wiele z ich zalet zostało potwierdzo-
ruch sieciowy klasyfikowane są jako atak lub normal- nych nie tylko eksperymentalnie, ale również udowod-
na praca. Takie podejście ma swoje dobre strony. Kla- nionych matematycznie. Mimo to, podobnie jak wiele
syfikator poprawnie rozpoznaje próby włamań i generu- inteligentnych metod obliczeniowych, z trudem zdoby-
je niewiele fałszywych alarmów ponieważ wykorzystu- wają zaufanie zwyczajnych użytkowników. Najczęściej
je głęboką wiedzę i doświadczenie eksperta odpowie- rozwijane i wykorzystywane są na uczelniach lub w in-
dzialnego za stworzenie reguł. Trudności pojawiają się, stytutach naukowych. Jeśli pojawiają się w rozwiąza-
gdy zachodzi konieczność użycia IDS w środowisku dy- niach komercyjnych to stanowią najczęściej mało waż-
namicznym. Intruz może zastosować nową, nieznaną ne, dodatkowe moduły. Artykuł, choć porusza bardzo
wcześniej metodę włamania, lub modyfikację jednej niewielką część tematów związanych ze sztucznymi
ze znanych metod polegającą np. na przeprowadze- sieciami neuronowymi, stara się przybliżyć te zagadnie-
niu kolejnych faz ataku z różnych hostów. Klasyfikator nia i przekonać czytelnika, że metoda jest dobrze opra-
wykorzystujący wiedzę eksperta zazwyczaj nie rozpo- cowana i sprawdza się zarówno w teorii jak i praktyce.
zna prawidłowo takiej sytuacji. Można zwiększyć jego
czułość, jednak wtedy będzie generował wiele fałszy-
W Sieci
wych alarmów. W konsekwencji może zajść koniecz-
ność ingerencji eksperta i rozbudowania systemu o re- • http://memaid.sourceforge.net/ - MemAid, programo-
guły obejmujące nowy rodzaj ataków. we fiszki, wykorzystują sieć neuronową, by zaplanowac
Alternatywą do wykorzystania wiedzy eksperckiej jest optymalny harmonogram nauki
• http://moodss.sourceforge.net/ - moodss, graficzny pro-
zastosowanie modelu, który sam potrafi nauczyć się re- gram do monitorowania stanu usług
guł klasyfikacji. W takim zastosowaniu dobrze spraw- • http://sourceforge.net/projects/rotator/ - Image Rotator,
dzają się sztuczne sieci neuronowe. Nauczona sieć program, który wykorzystuje sieci neuronowe do rozpo-
może mieć nieco gorsze wyniki w klasyfikacji znanych znać orientacji zdjęć.
sposobów włamań niż reguły eksperta, ale jej najwięk-
sze zalety ujawnią się przy rozpoznawaniu nowych ty-
pów ataków. Jedną z najważniejszych cech, która de- WOJCIECH TERLIKOWSKI
cyduje o popularności sieci neuronowych jest ich bar- Autor jest z wykształcenia inżynierem elektroniki. Od ponad
dzo dobra zdolność generalizacji. Nauczony model mo- dwóch lat pracuje w jednej z największych polskich �rm infor-
że uogólnić klasyfikację na przypadki, które nie znala- matycznych, gdzie pełni rolę m.in. konsultanta do spraw bez-
zły się w zbiorze uczącym a jedynie są do nich podob- pieczeństwa systemów informatycznych. Kontakt z autorem:
ne. Dzięki dobrze wytrenowana sieć prawidłowo roz- w.terlikowski@terlikowski.eu.org.

42 9/2010
PRAKTYKA

Badanie pamięci flash


urządzeń mobilnych
Salvatore Fiorillo

Niniejszy dokument stanowi wprowadzenie do


badania pamięci flash ze szczególnym zwróceniem
uwagi na kompletność dowodów uzyskanych
z telefonów komórkowych.

Dowiesz się: Powinieneś wiedzieć:


• jakie są badania pamięci flash • podstawowe informacje na temat urządzeń flash
• o mobilnej kryminalistyce

P
rzedstawiam szczególny charakter pamięci nie- w której dane mogą być przechowywane lub ukrywane
lotnych, które są obecne w dzisiejszych telefo- i dodatkowo komplikując pracę stróżów prawa (Al-Za-
nach komórkowych, jak naprawdę działają i ja- rouni, 2006): ten dokument ma przyczynić się do prze-
kie wyzwania stanowią dla badaczy sądowych. Następ- sunięcia dziedziny badania pamięci flash z poznawal-
nie zostaną zaprezentowane zaawansowane bada- nych do znanych w modelu Cynefin (Kurtz i Snowden,
nia, w których niektóre nowe pamięci flash są wykorzy- 2003).
stywane do ukrywania danych w uszkodzonych przez W dzisiejszych urządzeniach mobilnych istnieją ge-
człowieka blokach: celem jest sprawdzenie, czy opro- neralnie dwie pamięci: jedna dla systemu operacyj-
gramowanie wykorzystywane do badania jest w sta- nego (NOR flash), a druga (NAND flash) na dane
nie pobierać danych z takich bloków,
oraz ocena możliwości ukrywania
����
danych przed oczami analityków.

Środowisko mobilne ��
����� ��
Mobile Equipment (ME) jest tu rozu- ��� �������
������ ���� ����
miane jako słuchawka radiowa bar- ������� ������� �����
���
�����
dziej ogólnego telefonu komórkowe- ����� ��������� ��
go (Jansen i Ayers, 2007), wykona- ��
�� ��
na przez różne elementy, z których
najważniejsze zostały przedstawio- ���
ne na rysunku poniżej (Rys. 1).
������� ����
W trakcie jego ewolucji telefon ���������
�����
��
przeszedł z fazy PDA do dzisiej- �����������
��������� ��
szych inteligentnych telefonów, któ- �� �����
re zmniejszają różnice w stosun- �������
����
ku do komputerów osobistych. Po- ����
�����
jemność przechowywania również �����
����
gwałtownie wzrosła, od kilku Kilo-
bitów na początku do kilku Gigabi-
tów w obecnych telefonach komór-
kowych, zwiększając przestrzeń, Rysunek 1. Stary układ mobilnych urządzeń z opcjonalnym modułem NAND (Kwon, 2009)

www.hakin9.org 43
PRAKTYKA

kach wskazana jest w tabeli zawie-


����������� rająca porównanie tych dwóch pa-
���������� ��������������
��������� mięci flash.
�����������������
�������������
����������� Model kodu
�������������� Istnieją dwie techniki uruchamiania
��������� kodu programu na urządzeniach
����
���� ��������������������� flash (Numonyx, 2008a): Przecho-
��������� �������������
����
waj i Pobierz (Store and Download
- SND), wymagający zewnętrznej
pamięci RAM, i Wykonaj w Miejscu
Rysunek 2. Podstawowe projekt kości pamięci (po lewej) i połączeń pamięci �ash (z prawej) (eXecute in Place - XIP) - szybsza
(O'Kelly, 2007) niż SND, wymagająca swobodne-
go dostępu. NOR wykorzystuje XIP
użytkownika (i Kuo Chang, 2004). Zakres tego do- podczas gdy NAND używa SND.
kumentu jest ograniczony do danych przechowywa-
nych w NAND: analiza ulotnej pamięci RAM i karta Programowania jednokierunkowe
SIM jest odsunięta na bok. Urządzenia flash są w stanie programować warto-
ści jedynie z 1 na 0, ale nie z 0 na 1, więc gdy dane
NOR i NAND są aktualizowane, są one zapisywane w nowe miej-
Pamięć flash jest nieulotną pamięcią, która może być sce a stare miejsce jest oznaczone jako nieprawidło-
elektrycznie wymazana i ponownie zapisana w od- we (Numonyx, 2008a). Nieprawidłowe fragmenty są
powiednim procesie: podobnie jak dysk twardy (mi- następnie kasowane - zwykle przez proces działają-
mo dużych różnic wynikających z braku mechani- cy w tle - przed ponownym użyciem.
zmów fizycznych), pamięć flash nie potrzebuje zasi-
lania do przechowywania danych zapisanych w mi- Zużywający cykl kasowania-zapisywania
kroprocesorze (O'Kelly, 2007). Pochodzące z ewolucji W przeciwieństwie do dysków twardych, cykl skaso-
EPROM, dwa główne rodzaje pamięci flash to NAND wania-zapisu w pamięciach flash jest fizycznie wy-
i NOR. NOR flash wymaga długiego czasu kasowania czerpującym zadaniem, więc czas życia pamięci flash
oraz zapisu, ale za to jest prawie odporna na korupcję jest odwrotnie proporcjonalna do jej użycia. Poszcze-
i złe bloki, umożliwia swobodny dostęp do dowolnego gólny fragment pamięci może być zaprogramowany
miejsca pamięci i prawie wszystkie kontrolery w tele- i wykasowany niezawodnie do 100.000 razu i 10.000
fonach komórkowych posiadają interfejs NOR (Pon et razy respectively jako generalna zasada, następują-
al., 2007). NAND flash oferuje większą gęstość możli- ca formuła może być stosowana do obliczenia spo-
wości, jest tańszy niż NOR, jest mniej stabilna, potrze- dziewanego okres eksploatacji pamięci flash NAND
buje wsparcia oddzielnej pamięci RAM do pracy i nie z systemem plików FAT (Numonyx, 2008a). Techni-
umożliwia sekwencyjnego trybu dostępu (Ga i Toledo, ki służące obejścia problemu zużywania się pamięci
2005). W mobilnych urządzeniach zwykle NOR prze- flash zostaną omówione w dalszej części.
chowuje oprogramowanie wykonywalne (np. BIOS)
a NAND przechowuje dane, takich jak obraz lub pliki ������������������� ����������������������������������������������������������
���������������������
mp3 (Peng, 2006, Raghavan et al., 2005). W dodat-

���� ���
���

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

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

Rysunek 3. Model SND (z lewej) i model XIP (z prawej) (Numonyx, 2008a)

44 9/2010
Badanie pamięci flash urządzeń mobilnych

FAT zawiera wszystkie działania jakie system pli- Architektura systemu plików flash
ków potrzebuje wykonać aby administrować plikami Architektura systemu plików flash jest oparta na jed-
(Hendrikx, 1998) nostkach logicznych (logical unit - LUN), blokach,
stronach i sektorach (Intel, 2006,
Numonyx, 2008a, Samsung, 1999).
LUN jest największą logiczną czę-
��������� � ��������� � ��������� �����������������������
ścią obszaru pamięci.
LUN są następnie podzielone na
bloki. Każdy blok może różnić się
��������� � ��������� � ��������� �������������������������������������� wielkością, gdzie najczęstszym jest
128KB. W większości urządzeń
� � � flash NAND każdy blok składa się
��������� � ��������� � ��������� ������������������������������������������ z 64 stron w każdym 2KB. Stro-
na jest podzielona na dwie czę-
ści: obszar danych i dodatkowy ob-
szar wykorzystywany do celów za-
Rysunek 4. Ograniczenia programowania �ash
rządzania pamięcią (więcej w dal-
szej części). Strony są podzielone
na sektory (lub kawałki) 512-bajto-
we aby naśladować popularny roz-
������ ������
������ ������ miar sektora. Blok jest najmniejszą
������ ������
������ ������ jednostką kasowalną podczas gdy
�� ���� ��
� �� � strona jest najmniejszą programo-
������ ������
������ ������
������� �������
������� �������
walną jednostką.
Na początku, strona miała 528
������ ������ ������ bajtów w związku z tym że orygi-
������ ������ ������ nalną intencją NAND Flash było za-
��������������

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

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

�� �� ��
� � � stąpienie magnetycznych dysków
������ ������ ������
twardych, więc było wymagane aby
������� ������� �������
strona była wystarczająco duża że-
by przechowywać jeden sektor (512
bajtów) danych z dodatkowymi 16
������ ������ ������
bajtami w celu zarządzania (Ino-
������ ������ ������
�� �� �� ue i Wong, 2004). Później, w mia-
� � �
������ ������ ������ rę wzrostu pojemności flash, wzrósł
������� ������� ������� domyślny rozmiar strony aby dosto-
��������������� ��������������� ��������������� sować się do systemu FAT. W 1 GB
pamięci flash, jest 128 MB adreso-
walnych przestrzeni: dla dysków
twardych wielkości do 128 MB, do-
Rysunek 5. Jednostka logiczna w pamięciach NAND myślny rozmiar klastra w systemie

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

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

Rysunek 6. Architektura pamięci �ash

www.hakin9.org 45
PRAKTYKA

����

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


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

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

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


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

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

Rysunek 7. Architektura pamięci �ash

FAT wynosi 2KB i złożony jest on


���� ���� ���� �����������
���
z 4 sektorów, jak w pamięci flash,
� � �����������������������������������������������������������������
��� z wyjątkiem dodatkowych bajtów
��� (64B) ( Microsoft, 2009) .

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

��� Dodatkowa przestrzeń
��� � �����������������������
� Dodatkowa przestrzeń, zwana rów-
���
��� ������������������������������������������ nież poza zakresowymi danymi,
���������������������������

������������������������������������������
jest regionem, zazwyczaj wyko-
���
��������������������������� nanym z 16 bajtów i jest jedna dla
������������������������������������������
���
��������������������������� każdego sektora lub kawałka (Ga

������������������������������������������ i Toledo, 2005, Raghavan et al.,
���
����������������������������������������
��� ������������������������������������������ 2005), a jej wielkość nie jest zawar-
� ����������������������������������������
��� � ����������������������� ta w pojemności urządzenia i nie

���
� ���������������������
jest bezpośrednio adresowalna (El-
���
nec, 2009). Jednym z zastosowań
tej części obszaru jest przechowy-
Rysunek 8. Przypisanie dodatkowej przestrzeni w wewnętrznej pamięci NAND w wanie wyników weryfikacji danych:
OneNANDTM ™ (źródło: Samsung) po tym jak strona została wykaso-
wana, usunięta, zaprogramowana
lub przeczytana, jej stan jest wery-
����������������������������� fikowany za pomocą szczególnego
algorytmu (aka ECC - więcej w dal-
�����������
szej części) i później wyjście tego
algorytmu jest używane do wykry-
wania błędów gdy dane są odczyty-
����������� ����������� ����������� ����������� wane ponownie (BPMicrosystems,
����������� ���������������������� ����������� ����������� ����������� ����������� ����������� 2008). Dodatkowa przestrzeń mo-
���������� ���������� ���������� ����������
�����������������������������
że przechowywać także informacje
o stanie bloków i stron (Tsai et al.,
����������� �������� 2006), lub inne informacje podob-
ne do metadanych w systemie pli-
ków NTFS (Carrier, 2005, Casey,
2004). Poniżej znajduje się przed-
����������� ����������� ����������� ����������� �����������
����������� ����������� ����������� ����������� �����������
stawienie dodatkowej przestrzeni
w Samsung OneNANDTM™, wię-
cej informacji na stronie (Samsung,
Rysunek 9. Metody przechowywania dodatkowej przestrzeni 2005a).

46 9/2010
Badanie pamięci flash urządzeń mobilnych

Są dwie metody przechowywania dodatkowych ob- •


standardowa wielkość sektorów (patrz rozmiar
szarów: obszar przylegający do danych lub oddzielo- sektora flash na zdjęciu poniżej);
ny od nich (Micron, 2006a). Patrząc na większość da- • w przeciwieństwie do dysków twardych, operacja
nych firmy Samsung wydaje się że używają głównie pisania i usuwania w urządzeniu flash mogą być
modelu drugiego. samodzielnymi działaniami i związane są z opro-
gramowania przyrządu flash;
NAND vs. dysk twardy • chipy flash mają ograniczoną trwałość ze wzglę-
Główne różnice pomiędzy urządzeniami flash i dys- du na zużywanie podczas kasowania;
kami twardymi (Raghavan i in., 2005): • urządzenia flash mogą być pozbawione zasilania
bez właściwego zamknięcia i da-
nych pozostaną spójne: nie jest to
������� ���� możliwe w przypadku dysku twarde-
������� go ze standardowym systemem pli-
������ ���� ����� ����� ���� ������
ków, więc systemy wbudowane po-
���� ����� ������ ����� �����
����������� ���������� ������ ���������� �����������
trzebują szczególnego zarządzania
������� �������
����
����
����
plikami ukierunkowanego na flash.
���� ������ ���� ������ ����
����������� ���������� ���� ���������� �����������

�������������
Systemy plików flash
i warstwa przenoszenia flash
"System plików jest strukturą da-
Rysunek 10. Standardowy rozmiar bloku w sektorze urządzeń o gęstości poniżej 256 Mb i nych, która reprezentuje zbiór
ponad 512 Mb (źródło: Samsung)
zmiennych plików o dostępie swo-
bodnym w hierarchicznej przestrze-
ni nazw" (Ga i Toledo, 2005). Do
pracy z systemu plików hosta, pa-
���
���
������� ����� ����� mięci NAND flash wymagały kon-
������ ����� ������ kretnych systemów plików lub ste-
����� ����� ����� rownik. Obecnie mamy zarówno
������ ���� �������
������� konkretne systemy plików flash (jak
����
������
���������� YAFFS, JFFS, UBIFS i LogFS), jak
��������

� � �

��� również specjalny sterownik zna-
��������
� � ������������ ny jako warstwa przenoszenia flash
� � � �������������
�� �� (Flash Translation Layer - FTL).
�� �� �������������
��
��
�� ������������
������
"FTL jest sterownikiem, który
�� ������������
�� �� ������ działa w połączeniu z istniejącym
����������������� �������������������������� systemem operacyjnym (lub, w nie-
������� których aplikacji wbudowanych, ja-
ko systemoperacyjny), aby liniowa
pamięć flash zachowywała się jak
Rysunek 11. FTL przeniesienie sektora dysk" (Intel, 2006).

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


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

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


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

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


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

Rysunek 12. Proces odzyskania w ramach polityki poziomowani zużycia

www.hakin9.org 47
PRAKTYKA

Głównym zadaniem FTL jest wspieranie wszystkich • Sprzątanie: jako że pamięci flash ulegają zużyciu,
zadań niezbędnych do zarządzania danymi w spo- wymagane jest oprogramowanie, które będzie po-
sób przezroczysty dla systemu plików hosta, np.: sys- ziomowało wykorzystania obszarów pamięci.
tem plików FAT będzie delegował na FTL wszystkich
działań koniecznych do przechowywania i pobiera- FTL dla NAND może być dostarczone w różny spo-
nia danych odpowiednio do / z urządzeń NAND flash sób: może być stworzone przez producenta i wbudo-
(BPMicrosystems, 2008, Intel 1998, Morris, 2007). wane w urządzenie (np. Samsung), może być wbu-
Główne zadania FTL to: dowane w system operacyjny zorientowany na flash
(np.: YAFFS) lub może być wykonane przez produ-
• Mapowanie powierzchni przechowywania danych centa jako port dla systemu operacyjnego jak Uni-
w wirtualne małe sektory store II wyprodukowanych przez Samsung dla syste-
• Zarządzanie danymi na flash tak aby wydawało mu operacyjnego Symbian (Morris, 2007, Samsung,
się że są "zapisane w miejscu" 2006b). Aby uzyskać więcej informacji na temat al-
gorytmów i struktur danych patrz
(Ga i Toledo, 2005).
Wracając do UBIFS, jest to no-
wy system plików flash opracowa-
�������������� �������������
ne przez inżynierów firmy Nokia
���� ������ ������ ���� z pomocą Uniwersytetu w Szeged
���� ������ ������ ����
���� ������ ������ ���� i może być traktowany jako kolejna
���� ������ ������ ����
��������������� ������� ������ ��������������� ������ ���� generacja systemu plików JFFS2
����� ������� ����� ������ ����
����
������
������ ������ ����
(MTD_group, 2008).
���� ������ ������ ����
������� ������ ������ ����
���� ������ ������ ���� Zużycie poziomowania
������� ������ ������ ������
���� ������ ������ ������ (Wear Levelling - WL)
������
����
����
������
������ ������
������
������
i Garbage Collection (GC)
��������� ����� ����� ������� Gdy dane w pamięci flash są ak-
����� ����� ����� ����� tualizowane, nie jest możliwe za-
programowanie tej samej strony
w jedno-kierunkowym programo-
Rysunek 13. Stan bloków przed i po procesie Reclaim (Intel, 2006) waniu urządzeń flash, więc stro-
na zawierająca dane do aktualiza-
cji jest całkowicie przepisywana do
nowej lokalizacji (może być w tym
samym bloku lub nie). W dodatko-
���� ��� ���� ���� ���� ���� ���� ��� ���� ���� ���� ���� wym obszarze strona z nowymi da-
�������������������� nymi jest oznaczone jako popraw-
��� ��� na (żywa), a stara jest oznaczo-
ny jako nieprawidłowy (martwa).
Gdy liczba martwych stron w bloku
Rysunek 14. Strategia SBB (z lewej) w porównaniu do RBA (z prawej) (BPMicrosystems, 2008) jest większa niż określają wytycz-

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

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

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

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

Rysunek 15. Ingresja bloku (z lewej) i powielanie numer bloku (z prawej)

48 9/2010
Badanie pamięci flash urządzeń mobilnych

ne wtedy żywe strony są przepisywane do nowych lo- dzenia flash stosują algorytm weryfikacji który wy-
kalizacji i blok zostaje usunięty, aby umożliwić jego twarza coś w rodzaju wartości skrótu/CRC dla każ-
przyszłe programowanie: jest to ukryty proces zwa- dej dostępnej strony: wartość jest następnie zapisy-
ny Odzyskujący Garbage Collection (Reclaim Garba- wane w dodatkowym obszarze (Numonyx, 2008d).
te Collection) i jest aktywowany bez udziału użytkow- Algorytm ten jest powszechnie zwany Error Correc-
nika i nie jest określony w czasie (Tsai et al., 2006). tion Code. Jeżeli błąd zostaje wykryty po fazie czyta-
Uwaga: w powyższym przykładzie, są używane tyl- nia, może być odzyskane przez ECC, jeżeli błąd zo-
ko dwa bloki, ale w świecie rzeczywistym regeneracji stanie wykryty po cyklu programowania lub usuwa-
może podlegać więcej bloków nie następuje aktywacja polityki wymiany blok (Mi-
W celu uniknięcia nadmiernego zużycia jednym cron, 2006a, Samsung, 1999). Więcej informacji na
obszarze na rzecz innych, proces zwany wyrówny- temat ECC, zobacz (Samsung, 2004). W odróżnieniu
waniem zużycia (Wear Levelling) zarządza bloka- od Wear Levelling, logika ECC jest na ogół wbudowa-
mi tak, aby były używane mądrze: istnieje statycz- ne w firmware wszystkich pamięci flash.
ne i dynamiczne wyrównywanie zużycia oba próbu- Pomimo że algorytmy ECC są tajemnice handlowe,
ją przedłużyć żywotność urządzenia flash (Numonyx, niektóre rozwiązania hakerskie są w stanie przero-
2008c, Jones, 2008). Procedury wyrównywania zuży- bić dane w urządzeniu flash rekonstruując ECC (jak
cia możne być wbudowana w firmware pamięci flash kod obecny w Sony PlayStation 3 (NDT, 2008)). Jest
lub pozostawiona pod opieką systemu plików hosta to nowy zakres nielegalnej działalności, nie opisany
(Numonyx, 2008b, Numonyx, 2008c, Jones, 2008, JI tutaj.
et al., 2009).
Dane w nieprawidłowych blokach lub strony mar- Zarządzanie uszkodzonymi blokami
twe mogą przechowywać informacje interesujące (Bad Management Block - BBM)
z punktu widzenia analizy sądowej i należy je pozy- Jeśli ECC raportuje błąd nie do odzyskania, wyma-
ska zostanie przeprowadzony Reclaim Garbage Col- gane jest, aby obszar zaznaczono jako uszkodzo-
lection: analitycy są proszeni o nie zmienianie sta- ny. Ponieważ najmniejszą jednostką kasowalną po-
nu materiału dowodowego, ale ponieważ Wear Le- wierzchni jest blok, każdy nieodwracalny błąd poja-
velling i Reclaim są procesami ukrytymi, wymóg ten wiający się na jakiejkolwiek stronie powoduje że ca-
może być trudny do osiągnięcia i trudny w zarządza- ły blok do którego strona należy zostanie uznany za
niu. W przyszłości pracach będą rozpatrywane wpły- wymagający wymiany, nie będzie on więc ponownie
wy procesu Reclaim na urządzenia wbudowane: wy- dostępny (Samsung, 2006b). Uszkodzone bloki zi-
niki będą podane. dentyfikowane w trakcie cyklu życia NAND flash zo-
staną dodane do listy uszkodzonych bloków wygene-
Kod korekcji błędów (ECC) rowanych w trakcie produkcji w fabryce i nie powin-
Strona może być zaprogramowana, wyczyszczona ny przekraczać 2% ogólnej liczby bloków (Samsung,
i czytana, po każdej operacji jest konieczna weryfika- 2007, STMicroelectronics, 2004).
cja stanu strony. Do dokonania tej weryfikacji, urzą- Do zarządzania nieważnymi blokami, producenci
stosują unikalny zasady, ale odno-
szą się do dwóch strategii: Pomiń
Zły Blok (Skip Bad Block - SBB)
������� ��������� ������� �������
i Rezerwuj Obszar Bloku (Reserve

���������� �������� Block Area – RBA). W SBB, gdy zły

blok zostanie wykryty system pli-
������� ��������
���������������
� ����� ków flash po prostu przeskakuje od
� ������
razu do następnego dobrego bloku.
�� ���������
W strategii RBA, wcześniej wydzie-
��
������� ���������
�� ���� ����������
�� ����
�����������
�� ��������
������������� �������� ������������
����������
����
������������ �����
��� ��� ������������� ��������
������
����
���� ������������������
��������
���� ����

Rysunek 16. Partycjonowanie dla SBB (z lewej) i RBA (z prawej) (White, 2008) Rysunek 17. Kategorie NAND �ash (BPM).

www.hakin9.org 49
PRAKTYKA

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


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

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

Rysunek 18. Układ OneNANDTM™ (z lewej) vs OneNANDTM ™ architektury (z prawej) (Samsung).

lony jako rezerwa obszar, służy do dostarczania do- Surowy NAND i Zarządzany NAND
brych bloków w zamian za złe. Gdy logika FTL i związane z nią funkcje są wbudo-
wanych w NAND, to flash jest wtedy skategoryzo-
Strategia Pomiń Zły Blok (SBB) strategii wany jako zarządzany NAND, a gdy FTL jest pod
i zagadnienia pokrewne opieką systemu plików hosta (logika jest zewnętrz-
SBB mogą powodować przesunięcie pomiędzy fi- na dla NAND), to mówi się o surowym NAND. Suro-
zycznym i logicznym rozmieszczeniem danych w pa- wy NAND zawiera tylko tablice pamięci flash i kontro-
mięci urządzenia flash z więcej niż jednym LUN. SSB ler P/E/R (Program/Erase/Read) (Pon et al., 2007).
może również doprowadzić do ingresji blok, w przy- Do analizy sądowej, konieczne jest branie pod uwa-
padku gdy blok z partycji (B) jest przetwarzany przez gę różnic między surowym i zarządzanym NAND, ze
usługi z poprzedniej i sąsiadującej partycji (A). Ozna- szczególnym uwzględnieniem skutków odzyskiwania
cza to, że będzie można mieć dwa bloki o tym sa- obszaru i zarządzanie złymi blokami.
mym numerze (BPMicrosystems, 2008, Breeuwsma
et al., 2007). Ewolucja pamięci flash: Samsung
OneNANDTM ™
Strategia Rezerwuj obszar bloku (RBA) W 2003 r. Samsung opracował nowy jednolity mo-
i zagadnienia pokrewne duł pamięci flash do przechowywania kodu i danych:
Przy wykorzystaniu RBA, partycjonowanie danych nie OneNANDTM ™. Urządzenie to posiada zarówno
ma miejsca, urządzenie jest po prostu podzielony na dużą prędkości odczytu danych z NOR Flash oraz
obszar bloków przestrzeni użytkownika i obszar re- wysoką prędkość zapisu i możliwości NAND Flash.
zerwowy (BPMicrosystems, 2008, Samsung, 2006a). W dniu pisania tego artykułu można przechowy-
Odpowiednia tabela jest używana do odwzorowania wać dane o pojemności do 16Gb w obszarze NAND.
uszkodzonych bloków na RBA. W przypadku utraty OneNAND posiada interfejs NOR, więc chipset wy-
tej tabeli, powinno być możliwe odtworzenia jej przez kryje OneNANDTM ™ jak NOR, podczas gdy dane
odczytanie flag w dodatkowym obszarze wszystkich mogą być przechowywane bezpośrednio w obsza-
bloków - nawet jeśli niektórzy autorzy twierdzą że jest rze NAND za pomocą multipleksowane linii dostę-
to niezwykle trudne (Inoue i Wong, 2004). pu. OneNANDTM ™ jest sklasyfikowany jako suro-
wy NAND z funkcją wewnętrznego
ECC (Samsung, 2005b).

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

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

�������������������������������
SALVATORE FIORILLO
Konsultant ds. bezpieczeństwa
Rysunek 19. Surowy OneNAND™ salvatore.�orillo @ tesoro.it

50 9/2010
Następny numer dostępny on-line
ostatniego dnia sierpnia 2010

www.hakin9.org 51

You might also like