Hakin9 31 (11 2007) PL

background image
background image
background image
background image

4

www.hakin9.org

hakin9 Nr 11/2007

hakin9

5

hakin9 Nr 2/2006

W skrócie

6

Mateusz Stępień

Przedstawiamy garść najciekawszych wiadomości ze

świata bezpieczeństwa systemów informatycznych.

Zawartość CD

10

Prezentujemy zawartość i sposób działania najnow-

szej wersji naszej sztandarowej dystrybucji hakin9.live

Narzędzia

Recenzja Kaspersky Internet

Security 6.0

14

Recenzja mks_vir 2K7

15

Początki

C# – diagnostyka połączeń

sieciowych

16

Sławmoir Orłowski

Sławek w swoim artykule wyjaśni naszym początkują-

cym Czytelnikom jak obsługiwać środowisko programi-

styczne Visual C# 2005 Express Edition.

Atak

Hakowanie Xboksa

22

Michał Majchrowicz, Marcin Wyczechowski

Michał i Marcin opiszą genezę zabezpieczeń konsoli

Xbox oraz omówią wszelkie błędy, jakie zostały po-

pełnione przy tworzeniu Xboksa.

Spoofing i Sniffing w Pythonie

30

Piotr Łaskawiec

Artykuł Piotra przedstawia zagadnienia dotyczące jak

pisać aplikacje sieciowe w języku Python oraz jak szybko

przechwytywać i odczytywać pakiety w Sieci.

Hakowanie serwisów multimedialnych

36

Konrad Witaszczyk

Konrad przekaże wiele przydatnych wiadomości doty-

czących sposobu udostępniania multimediów na stro-

nach.

Luki w plikach wykonywalnych

40

Damian Daszkiewicz

Damian w swoim artykule przedstawi garść informacji

na temat jak edytować pliki wykonywalne.

Kryptograficzne funkcje skrótu

46

Cezary Cerekwicki

Czarek pokaże jak działają najpopularniejsze kryptogra-

ficzne funkcje skrótu oraz jakie typy ataków im zagrażają.

Witam!

To już jedenasty numer naszego pisma w tym roku, za mie-

siąc święta i koniec roku, a my już rozdajemy prezenty.

Zachęcam wszystkich naszych Czytelników, do zapre-

numerowania hakin9. Dla nowych prenumeratorów mamy

zawsze atrakcyjne prezenty i oferty promocyjne. Zapraszam

do subskrybcji naszych newsletterów, a będziecie zawsze

na bieżąco!

W hakin9 11/2007 znajdziecie wiele prezentów. Gorąco

polecam naszym Czytelnikom programy, które znajdują

się na płycie CD. Postaraliśmy się, aby to były pełnowarto-

ściowe i godne uwagi narzędzia. Na krążku dołączanym do

magazynu będzie można znaleźć między innymi: Advanced

Office Password Recovery (AOPR) Elcomsoft, Data Scrub-

ber, Disk Cleaner by SBMAV, Dr.Web Antywirus, My privacy,

SecuBox aikoSolutions, SpyDetector SystemSoftLab, SpyXie

UnderNetwork. Prawda, że ciekawe...? W listopadowym

numerze hakin9 – jak się obronić mamy prezent dla dużych

chłopców... Zapewne większość naszych Czytelników to

mężczyźni, którzy pamiętają lata dzieciństwa i godziny spę-

dzone na playstation czy konsolach. Rynek gier komputero-

wych dynamicznie rozwinął się w ciągu ostatnich lat. To już

nie jest to samo czego używaliście w latach szkolnych. Za-

pewne teraz nasi Panowie mają większe wymagania co do

tego typu zabawy... Dlatego zachęcam do zapoznania się

z tematem numeru: Hakowanie Xboksa, Michała Majchro-

wicza i Marcina Wyczechowskiego. Rozrywka ukazana

jest tu od innej strony niż mogliście ją poznać do tej pory.

W artykule autorzy omówią wszelkie błędy, jakie zostały

popełnione przy tworzeniu pierwszej konsoli giganta z Red-

mond.

Oczywiście to nie wszystko co mamy do zaoferowania,

ale reszty nie będę zdradzała...

Życzę przyjemnej lektury!

Katarzyna Juszczyńska

background image

4

www.hakin9.org

hakin9 Nr 11/2007

hakin9

5

hakin9 Nr 2/2006

Obrona

Niekonwencjonalne metody

wykrywania włamań

52

Grzegorz Błoński

Grzegorz dokładnie omówi strefy zdemilitaryzowane.

Przedstawi zasady działania honeypot – pułapka na

hakera.

Ukrywanie tajnych informacji

58

Damian Daszkiewicz

Artykuł omawia dwa ciekawe sposoby na ukrycie tajnych

informacji w plikach graficznych.

Bezpieczeństwo Silverlight

62

Artur Żarski

Z artykułu Artura można się będzie dowiedzieć o nowo-

ściach w modelu bezpieczeństwa technologii Silverlight

i jego aspektów istotnych dla programisty.

Bezpieczny ekstranet – strefy DMZ

66

Grzegorz Błoński

Grzegorz przybliży nam pojęcie ekstranetu i wszystko to

co jest z nim związane.

Księgozbiór

72

Recenzujemy książki: Hakerskie łamigłówki oraz PKI.

Podstawy i zasady działania. Koncepcje, standardy

i wdrażanie infrastruktury kluczy publicznych.

Wywiad

Wywiad z prezesem Mediarecovery

Sebastianem Małychą

74

Katarzyna Juszczyńska, Robert Gontarski

W rozmowie z członkami redakcji hakin9 Sebastian

Małycha opowiada o informatyce śledczej.

Klub Techniczny

Trend Micro chroni komputery

pracujące poza biurem

77

Felieton

Infomafia.pl

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

Redaktor prowadząca: Katarzyna Juszczyńska

katarzyna.juszczynska@software.com.pl

Redaktor prowadzący: Robert Gontarski,

robert.gontarski@software.com.pl

Wyróżnieni betatesterzy: Marcin Kulawinek, Maurycy Rudnicki

Opracowanie CD: Rafał Kwaśny

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

Skład i łamanie: Marcin Ziółkowski

marcin.ziolkowski@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 427 36 77, Fax +48 22 427 36 69

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:

Martyna Żaczek

e-mail: martyna.zaczek@software.com.pl

tel.: +48 (22) 427 36 77

fax: +48 (22) 427 36 69

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 11/2007

www.hakin9.org

6

Mateusz Stępień

www.hakin9.org

7

hakin9 Nr 11/2007

Skazany na 30 lat więzienia

Znany amerykański spamer Chri-

stopher William Smith, znany jako

Rizler, został skazany na 30 lat wię-

zienia! Smithowi postawiono zarzu-

ty dotyczące m. in. nielegalnej dys-

trybucji leków, prania brudnych pie-

niędzy, grożenia śmiercią świad-

kom uczestniczącym w jego proce-

sie. Sędzia Michael Davis nazwał

Smitha królem narkotyków.

Christopher William Smith został

złapany w 2005 roku w Republice

Dominikany, gdzie prowadził swoją

nielegalną działalność online.

Smith rozpoczął rozsyłanie spamu

w 2004 r. i od tamtego czasu

wysłał ponad miliard listów elektro-

nicznych będących spamem. FBI

szacuje, iż straty wynikłe wskutek

działalności Smitha w ciągu ostat-

niego roku działalności sięgają

blisko 18 milionów dolarów.

Urząd emigracyjny odmówił

możliwości wzięcia udziału

w Black Hat

Halvarowi Flake'owi odmówio-

no możliwości wjazdu do Stanów

Zjednoczonych w celu zaprezen-

towania materiałów treningowych

na konferencji Black Hat. W swoim

blogu Halvar napisał, że został

poinformowany, iż nie będzie miał

możliwości powrotu do Stanów

w ramach programu wizowego –

tak więc szanse, że w ogóle kiedy-

kolwiek tu powróci, są małe. Flake

powiedział, że każda jego wizyta w

Stanach jest związana z prowadze-

niem konferencji, treningów

i przygotowywaniem prezentacji.

Tym razem go zatrzymano i prze-

słuchiwano przez prawie 5 godzin,

żądając odpowiedzi na pytanie,

kim jest i jaka jest właściwa przy-

czyna jego współpracy z Black

Hat. Najwyraźniej wysocy urzędni-

cy wierzą, iż odkąd ich kraj wie o

wszystkich zabezpieczeniach Inter-

web, nie ma powodu dla, którego

mieliby potrzebować jakiegoś tam

obcokrajowca, aby im się spowia-

dał, jak to wszystko działa. Chcie-

li po prostu wiedzieć, dlaczego to

Amerykanin nie mógłby prowadzić

tego typu zajęć i treningów. Jak na

ironię, jeśli istniałoby porozumienie

pomiędzy jego firmą a Black Hat,

wjazd Halvara do Stanów odbyłby

się w pewnym stopniu na zasadzie:

Niemiecka firma wysyła człowie-

ka do wykonania roboty i wszystko

byłoby w porządku. Niestety, orga-

nizacja zajęłaby za dużo czasu.

R

ozpoczęła się jedenasta już
coroczna konferencja Black

Hat poświęcona bezpieczeństwu
IT. Pierwsze otwierające przemó-
wienie wygłosił Tony Sager z Naro-
dowej Agencji Bezpieczeństwa
.
Dotyczyło ono tworzonych standar-
dów bezpieczeństwa narodowego.
Dalszy postęp w dziedzinie bezpie-
czeństwa informacji w instytucjach
publicznych i biznesowych będzie
możliwy tylko dzięki bliskiej współ-
pracy podmiotów gospodarczych
oraz agencji rządowych i pozarzą-
dowych. Na wnioskach ze wspól-
nych obserwacji skorzystają wszy-
scy
– przekonywał. Tony Sager
podkreślał, że w przeszłości NSA
opracowywało procedury związane
z bezpieczeństwem, jednak więk-
szość agencji rządowych robiła
to samo na własną rękę – dopiero
w ostatnim czasie znacznie wzrosła
otwartość podmiotów publicznych,
które chętnie udostępniają własne
obserwacje innym. Z oceną Sage-
ra zgadzają się eksperci zajmu-
jący się bezpieczeństwem w sek-
torze publicznym. Ray Kaplan, nie-
zależny konsultant ds. bezpieczeń-
stwa informacji, wskazuje, że: Kom-
plementarna natura działań NSA,
podobnych organizacji i firm pry-
watnych, umożliwi stworzenie ca-
łej gamy standardowych rozwiązań,
zwiększających bezpieczeństwo in-
formacji
.

Na tegorocznej konferencji Black

Hat specjaliści z firmy Errata Secu-
rity zaprezentowali ciekawy sposób
nieautoryzowanego uzyskania dos-
tępu do kont użytkowników, którzy
za pośrednictwem sieci Wi-Fi ko-
rzystają z serwisów wymagających
logowania – np. do konta poczto-
wego, serwisu blogowego, spo-
łecznościowego czy aplikacji dos-
tępnych online (np. Google Docs).
Robert Graham oraz David Maynor

Black Hat 2007

z Errata Security tłumaczą, że pro-
blem polega na tym, iż większość
serwisów internetowych do komu-
nikacji z przeglądarką używa szy-
frowanego połączenia jedynie
w momencie logowania – później
wszystkie dane przekazywane są
otwartym kanałem. Dzięki temu wła-
mywacz bez problemu może prze-
chwytywać (przy pomocy sniffera)
pliki cookie użytkownika, które za-
wierają informacje służące serwiso-
wi do jego zidentyfikowania. Na
szczęście istnieją stosunkowo pro-
ste metody zabezpieczenia się przed
takim niebezpieczeństwem – naj-
prostsze z nich to rezygnacja z od-
wiedzania serwisów wymagających
logowania za pośrednictwem sieci
Wi-Fi, korzystanie z VPN (Virtual
rivate Network
) lub SSL (Secure
Sockets Layer
).

Kolejną niezwykle interesującą

prezentację przygotowała firma
Siphera Systems, która pokaza-
ła technikę umożliwiającą zdalne
przejęcie kontroli nad komputerem
korzystającym z oprogramowania
VoIP oraz protokołu Session Ini-
tiation Protocol
. Specjaliści z Sip-
hery poinformowali, że w technolo-
gii VoIP odkryli ponad 20000 po-
tencjalnych błędów. Współczesne
oprogramowanie antywirusowe nie
jest w stanie zapobiec wykorzystu-
jącym je atakom.

background image

W skrócie

hakin9 Nr 11/2007

www.hakin9.org

6

Mateusz Stępień

www.hakin9.org

7

hakin9 Nr 11/2007

Damn Small Linux 4.0 RC1

Ukazała się nowa wersja Rele-

ase Candidate małej, lekkiej dys-

trybucji Linuksa Damn Small Linux

4.0. W nowej wersji zamiast jądra

2.4.34.1 użyto 2.4.31, aby móc

wykorzystać moduły stworzo-

ne przez użytkowników. Usunięto

błąd w dsl-config związany z insta-

lacją na twardym dysku. Dodano

nowe moduły supportowe: cloop,

unionfs, ndiswrapper, fuse i madwi-

fi. Zmieniony został proces instala-

cyjny usbhdd dla pendrive'ów, który

używa teraz GRUBa mając DSL na

drugiej oddzielnej partycji. Damn

Small Linux nie wymaga insta-

lacji, system mieści się na małej

płycie CD 50MB, a od tego wyda-

nia pojawiła się też wersja ładują-

ca się w całości do pamięci RAM.

Dystrybucja zawiera wszystko to,

czego przeciętnemu użytkowniko-

wi potrzeba do szczęścia. Jest śro-

dowisko graficzne, odtwarzacze

dźwięku, klient FTP, przeglądarka

internetowa, klient poczty elektro-

nicznej, arkusz kalkulacyjny, edytor

tekstu, menedżer plików, komunika-

tor internetowy, a także wiele innych

przydatnych programów. Ze wzglę-

du na to, że wszystkie aplikacje

są bardzo małe i szybkie, DSL to

świetne rozwiązanie zwłaszcza dla

posiadaczy starszych komputerów.

Pomimo, że jest to tzw. Live CD,

dystrybucję można również zainsta-

lować na dysku twardym. Najnow-

szą wersję dystrybucji Damn Small

Linux 4.0 RC1 można pobrać z ser-

werów producenta.

Strona internetowa ONZ

padła ofiarą hakerów

Oficjalna strona sekretarza gene-

ralnego Organizacji Narodów Zjed-

noczonych Ban Ki-moona padła

w niedzielę 12 sierpnia rano ofiarą

hakerów. Włamywacze zamieści-

li na stronie krótkie oświadcze-

nie: Hej, Izraelu i USA, nie zabijaj-

cie więcej dzieci ani innych ludzi.

Pokój wieczny, nie wojna. Napis

zniknął ze strony około godziny

9.15 czasu lokalnego.

M

icrosoft ogłosił oficjalną listę
zwycięzców konkursu techno-

logicznego Microsoft Imagine Cup
2007, który odbył się w Seulu, w Ko-
rei Południowej. W konkursie wzięło
udział 372 studentów z całego świa-
ta, w tym 17 z Polski.

Polacy, którzy startowali w 7 z 9

rozgrywanych kategorii konkurso-
wych zajęli pierwsze miejsca w 3
z nich! W kategorii Algorytmy pierw-
sze miejsce zajął Przemysław Dę-
biak z Uniwersytetu Warszawskiego,
w kategorii Fotografia Iwona Bielec-
ka z Wojskowej Akademii Technicz-
nej i Małgorzata Łopaciuk z Uniwer-
sytetu Kardynała Stefana Wyszyń-
skiego, a w kategorii Film Krótko-
metrażowy
Julia Górniewicz z Uni-
wersytetu Warmińsko-Mazurskiego
i Jacek Barcikowski z Politechniki Poz-
nańskiej.

Dodatkowo drużyna InPUT z Po-

litechniki Poznańskiej, reprezentują-
ca Polskę w kategorii Projektowanie
Oprogramowania
, znalazła się wśród
sześciu wyróżnionych zespołów, któ-
re stworzyły aplikacje o największym
potencjale biznesowym.

W pozostałych kategoriach kolej-

ne miejsca na podium zajęli studenci
reprezentujący następujące kraje:

• projektowanie systemów wbu-

dowanych – Brazylia, Rumunia,
Chiny,

Imagine Cup 2007 – Polacy znowu

najlepsi

• projekt Hoshimi – Argentyna,

Francja, Serbia,

• technologie Informatyczne – Chi-

ny, Francja, Rumunia,

• projektowanie Oprogramowania

– Tajlandia, Korea, Jamajka,

• projekt Interfejsu – Austria, Chiny,

Francja,

• projektowanie Aplikacji Interneto-

wych – Francja, Irlandia, Chiny.

Nasza reprezentacja spisała się dos-
konale w Korei. Jesteśmy dumni z jej
wyników. Po raz kolejny udowodni-
liśmy, że Polska jest prawdziwą kuź-
nią młodych talentów w zakresie
technologii. Cieszę się, że jako firma
mamy możliwość uczestniczyć w tym
niesamowicie motywującym i ener-
getycznym wydarzeniu, które z roku
na rok zyskuje coraz więcej sympa-
tyków wśród studentów i nie tylko.
Nadal będziemy wspierać młodych
pasjonatów technologii i stwarzać im
podobne okazje do twórczej rywali-
zacji. Jestem przekonany, że jeszcze
nie raz usłyszymy o sukcesach Pola-
ków, a tymczasem wielkie gratulacje
należą się wygranym w edycji 2007
Microsoft Imagine Cup
– powie-
dział Karol Wituszyński z Microsoft
Polska.

Organizatorzy Imagine Cup już

przygotowują się do kolejnej edycji
turnieju, którego finał będzie miał
miejsce w przyszłym roku w Paryżu.

background image

W skrócie

hakin9 Nr 11/2007

www.hakin9.org

8

Mateusz Stępień

www.hakin9.org

9

hakin9 Nr 11/2007

Polak znalazł lukę

w DirectX SDK

Krystian Kloskowski, polski spe-

cjalista ds. Zabezpieczeń, odkrył

poważną lukę w produkcie Micro-

soft DirectX Media SDK. Błąd

występuje w kontrolce ActiveX

"DXSurface.LivePicture.FlashPix",

która podatna jest na błąd przepeł-

nienia bufora - aby do niego dopro-

wadzić, napastnik musi tylko skło-

nić użytkownika do otwarcia

w przeglądarce Internet Explo-

rer 6 odpowiednio spreparowa-

nej strony WWW lub wiadomości

e-mail w formacie HTML. Problem

jest poważny, ponieważ ewentual-

ny atak może zostać przeprowa-

dzony przy minimalnym udziale ze

strony użytkownika.

Błąd dotyczy Microsoft DirectX

Media SDK 6.x. Portale szacują-

ce podatności wyceniły lukę na

poziomie krytycznym (FrSIRT) lub

wysoce krytycznym (SECUNIA).

Autor wystawił też exploita dostęp-

nego na stronie http://www.

milw0rm.com/exploits/4279.

Nie wiadomo, kiedy przygotowa-

ne zostanie uaktualnienie usuwa-

jące błąd, wobec czego zaleca się

użytkownikom IE wyłączenie obsłu-

gi ActiveX lub tylko kontrolki Flash-

Pix ActiveX w rejestrze.

Włamanie na serwery

Ubuntu

Serwery społeczności Ubuntu

sponsorowane przez firmę Cano-

nica zostały zaatakowane przez

hakerów. Cyberprzestępcy włama-

li się na pięć z ośmiu serwerów na,

których nie przechowywano opro-

gramowania, a głównie witryny

z informacjami, blogi oraz doku-

mentację. Z tego co wiadomo to

włamywacze dostali się do syste-

mów poprzez działające, nieak-

tualizowane usługi FTP. Nie było

również używane SFTP ani inny

protokół pozwalający na szyfrowa-

nie danych (SSL).

J

oanna Rutkowska udostępniła
nowy kod źródłowy swojej tech-

nologii Blue Pill, która została zapre-
zentowana po raz pierwszy w roku
2006 na konferencji Black Hat w Las
Vegas. Mechanizm został napisa-
ny od początku i poprawiony. Blue
Pill wykorzystuje technologię wirtu-
alizacji AMD (SVM/Pacifica), nato-
miast nie potrafi jeszcze korzystać
z technologii obecnych w proceso-
rach Intela. Rootkit Blue Pill, dzięki
wykorzystaniu techniki wirtualizacji
procesorów, pozwala na uruchamia-
nie procesów w sposób określany
jako całkowicie niewykrywalny.

Nowy Blue Pill jest w stanie prze-

nieść system operacyjny Windows
w wirtualne środowisko bez restar-
towania systemu. Cały proces jest
niewidoczny dla użytkownika i nie-
wykrywalny na przykład przez syste-
my antywirusowe używające dotych-
czasowych metod skanowania. Poza
tym Blue Pill rozbudowano o nowe
funkcje, których zadaniem jest utru-
dnienie wykrycia przez różnego ro-
dzaju detektory i skanery. Blue Pill
posiada jeszcze sporo niedopraco-
wań, między innymi podczas urucha-
miania na Microsoft Virtual PC 2007
następuje crash aplikacji. Uaktualnio-
na Niebieska Pigułka zawiera nowe
funkcjonalności, a sama filozofia ukry-

Niebieska Pigułka dla każdego

cia robaka wzbogaciła się o wyko-
rzystanie wirtualizacji zaimplemento-
wanych w nowoczesnych proceso-
rach (Hardware Virtualized Machi-
nes – HVM).

Ponowne stworzenie Blue Pilla

to najprawdopodobniej reakcja Rut-
kowskiej na stwierdzenia kilku spe-
cjalistów: Thomasa Ptacka z firmy
Matasano Security, Nate'a Lawsona
z Root Labs i Petera Ferriego z kor-
poracji Symantec, których zdaniem
nie można stworzyć oprogramowa-
nia niewykrywalnego przez skane-
ry. Wielokrotnie wzywali oni Joannę
Rutkowską do przedstawienia dzia-
łającego przykładu potwierdzające-
go, że jest inaczej.

Wersję do pobrania można sa-

modzielnie skompilować wyłącznie
w systemie Windows, używając Dri-
ver Development Kit (NTDDK).

Joanna Rutkowska – polska spe-

cjalistka w dziedzinie zabezpieczeń
komputerowych. Od wielu lat zwią-
zana z zagadnieniami bezpieczeń-
stwa komputerowego, w szczegól-
ności z technikami stosowanymi
przez intruzów w celu ukrycia się
w systemie. Ciekawy wywiad z Jo-
anną Rutkowską dostępny jest na
portalu HACK.pl – http://hack.pl/
artykuly/wywiady/joanna_rutkowska_-
_wywiad_dla_hackpl_102.

background image

W skrócie

hakin9 Nr 11/2007

www.hakin9.org

8

Mateusz Stępień

www.hakin9.org

9

hakin9 Nr 11/2007

FBI używa tajnego

oprogramowania do

złapania żartownisia

Magazyn WIRED stwierdził, że FBI

używa tajnego programu obserwa-

cyjnego. Pomógł on w wyśledze-

niu dzieciaka ze szkoły, który przesy-

łał fałszywe zawiadomienia o podło-

żeniu bomby. Informacje o podłoże-

niu bomby w liceum Timberline koło

Seattle były przesłane z anonimowe-

go profilu MySpace. Agenci zdołali

nakłonić właściciela profilu do insta-

lacji szpiegowskiego oprogramowa-

nia na jego komputerze.

W rezultacie 15-letni Jose Glazebro-

ok skończył w sądzie, przyznając się

do zarzutów wywoływania fałszy-

wych alarmów bombowych. Glaze-

brook podawał informacje

w imieniu innego ucznia.

W sercu nietykalnego oprogramo-

wania jest coś co WIRED nazywa

”Computer and Internet Protocol

Address Verificator”. Zasadniczo to

malware nagrywa adresy IP, adres

MAC karty sieciowej, listę otwartych

portów TCP i UDP, działających pro-

gramów, systemów operacyjnych,

numerów seryjnych oraz numerów

wersji, dane dotyczące przegląda-

rek internetowych, zarejestrowanych

użytkowników systemów operacyj-

nych, zarejestrowanych nazw firm

i zalogowanych użytkowników.

Program po zainstalowaniu kontrolu-

je w ukryciu wykorzystanie Interne-

tu, logując każdy adres IP, do które-

go maszyna się podłącza.

Darmowy wykrywacz

rootkitów McAfee

Firma McAfee,wydała nowe, dar-

mowe narzędzie – McAfee Root-

kit Detective 1.0. Aplikacja firmy

McAfee służy do walki z rootkita-

mi i może stanowić uzupełnienie dla

innych programów antywirusowych

działających na systemach Windows

NT/2000/XP. McAfee Rootkit Detec-

tive 1.0 ujawnia wszystkie procesy,

wpisy w rejestrze, a także pliki.

W wypadku znalezienia podejrzane-

go obiektu użytkownik decyduje,

co z nim zrobić: może np. przemia-

nować plik czy usunąć klucz. Root-

kit infekuje jądro i usuwa ukrywa-

ne programy z listy procesów oraz

plików zwracanych do programów.

Istnieją rootkity dla różnych syste-

mów operacyjnych, m. in. Micro-

soft Windows, Solarisa i Linuksa.

Rootkit może się dostać do kompu-

tera użytkownika wraz z aplikacją

będącą w rzeczywistości trojanem.

F

irma Symantec udostępniła uak-
tualnienie usuwające bardzo po-

ważny błąd w popularnym progra-
mie antywirusowym Norton Antivi-
rus. Luka umożliwia, poprzez błędy
w ActiveX, skuteczne zdalne zaata-
kowanie każdego komputera, w któ-
rym zainstalowane są aplikacje Sy-
manteca. Problem dotyczy wersji
2006 (i częściowo 2005) produktów
z serii Norton – czyli Symantec Nor-
ton AntiVirus 2006, Symantec Nor-
ton Internet Security 2005, Syman-
tec Norton Internet Security 2006,
Symantec Norton SystemWorks
2006. Osoby korzystające z wyżej
wymienionych aplikacji powinny jak
najszybciej uruchomić system aktu-
alizacyjny – LiveUpdate i za jego
pośrednictwem pobrać poprawki.
Błędy związane z ActiveX są dość
powszechne – ale potrafią być wy-
jątkowo groźne. Problem polega na
tym, iż programiści piszący rozwią-
zania oparte na ActiveX nie dbają
odpowiednio o bezpieczeństwo ko-
du
– mówi Johannes Ullrich z SANS
Institute.

Poważny błąd w programie Norton

Antivirus

Norton AntiVirus jest jednym z naj-

popularniejszych programów antywi-
rusowych na świecie, chroniącym pocz-
tę e-mail, komunikatory internetowe
oraz pliki, automatycznie usuwającym
wirusy, robaki i konie trojańskie. Posia-
da największą bazę danych wirusów,
którą można łatwo uaktualnić poprzez
moduł LiveUpdate. Program jest prosty
w obsłudze, podaje jasne i zrozumiałe
komunikaty oraz ostrzeżenia. Najnow-
sza wersja to Norton Antivirus 2007.
Zużywa ona mniej zasobów systemo-
wych od swoich poprzedników, oferu-
je szybsze skanowanie i posiada odno-
wiony interfejs użytkownika.

D

omena internetowa UK2.net stała
się celem ataku hakera, pozosta-

wiając tym samym internautów czaso-
wo odciętych od dostępu do e-maili.

Internauci pojawiający się na stro-

nie 12 lipca ujrzeli przeobrażoną wit-
rynę. Najwidoczniej była to sprawka
islamskiego hakera. Wiele osób zwró-
ciło się do nas w tej sprawie z informa-
cjami, ż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 rezultatu, oba nie działały – jedyne

Haker odcina dostęp do kont

e-mailowych na UK2.net

co mogły mi zaoferować to zmienioną
stronkę. Wcześniej też miałem dużo
problemów z UK2. Moje konta były nie-
stabilne przez 3 tygodnie pod koniec
maja i na początku czerwca. Czasa-
mi działało, ale zazwyczaj odmawiało
posłuszeństwa.

Firma oficjalnie ogłosiła, że w go-

dzinach porannych we czwartek stała
się ofiarą ataku hakerskiego. Atak unie-
możliwił internautom wejście na stronę
UK2 i na skrzynkę e-mailową. UK.net
na swoich stronach napisał, że ta kwe-
stia została już rozwiązana przez spe-
cjalistów. Pomimo tego, jak dodali au-
torzy komunikatu, niektórzy użytkow
nicy mogli nadal mieć problemy z dos-
tępem do serwisu, dopóki DNS nie
naniesie zmian.

background image

hakin9.live

hakin9 Nr 11/2007

www.hakin9.org

10

hakin9.live

hakin9 Nr 11/2007

www.hakin9.org

11

N

a dołączonej do pisma płycie znajduje się dys-
trybucja hakin9.live (h9l) w wersji 4.0.2 on Back-
Track2.0, zawierająca przydatne narzędzia, do-

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

Programy:

• Advanced Office Password Recovery by Elcomsoft,
• Data Scrubber,
• Dr.Web Anti-virus,
• My privacy,
• Disk Cleaner from SBMAV,
• SecuBox by Aiko Solutions,
• SpyDetector by System SoftLab,
• SpyXie UnderNetwork – client/server.

Advanced Office Password Recovery

by Elcomsoft

Jest narzędziem do odzyskiwania straconych lub zagu-
bionych haseł do plików dokumentów stworzonych w pa-
kiecie Microsoft Office (wszystkie wersje do MS Offi-
ce 2003). Obsługuje następujące formaty plików: Word,
Excel, Access, PowerPoint, Visio, Publisher, Project, Out-
look, OneNote, Money, Backup, Schedule+, Mail, Internet
Explorer.

Data Scrubber

Umożliwia kompletne wyczyszczenie wszystkich infor-
macji o plikach, na których pracowałeś i zapewni Ci świa-
dectwo poufności Twojej pracy. Możesz być pewny, że
po użyciu Data Scrubber'a żadne narzędzie nie będzie
w stanie odzyskać plików, które edytowałeś.

Dr.Web Antywirus dla Windows

Jest nie tylko produktem antywirusowym. Posiada znacz-
nie większe możliwości mogąc wykrywać, leczyć i usu-
wać złośliwe oprogramowanie takie jak: robaki mass-ma-
iling, wirusy e-mail, wirusy plikowe, trojany, wirusy ste-
alth, wirusy polimorficzne, wirusy bezpostaciowe, wirusy
makro, wirusy MS Office, wirusy skryptowe, oprogramo-
wanie szpiegowskie, oprogramowanie wykradające ha-
sła, keyloggery, płatne dialery, oprogramowanie rekla-
mowe, backdoory, programy-żarty, złośliwe skrypty i in-
ne rodzaje malware.

Narzędzie może zostać zainstalowane już na zainfe-

kowanym komputerze i wyleczyć jego system bez potrze-
by instalowania żadnych dodatkowych aplikacji. Istnieje
opcja aktualizowania baz antywirusowych Dr.Web przed

Zawartość CD

instalacją, co zajmuje tylko kilka sekund i zapewnia po-
siadanie najnowszych sygnatur wirusów.

Aktualizacje baz antywirusowych Dr.Web są publiko-

wane natychmiast, gdy dodane są nowe rekordy – nawet
do kilkunastu razy w ciągu godziny. Najnowsze aktualiza-
cje są gotowe do pobrania zaraz po wychwyceniu nowe-
go zagrożenia przez producenta, jego analizie i opraco-
waniu odpowiedniej szczepionki.

Dr.Web posiada najbardziej kompaktową bazę anty-

wirusową. Pozwala to na szybsze skanowanie plików, co
przekłada się na oszczędność czasu użytkownika i niskie
wymagania względem zasobów jego komputera. Jeden
wpis w bazie antywirusowej Dr.Web może wykryć setki
lub nawet tysiące podobnych wirusów.

Program w bardzo małym stopniu obciąża zasoby

komputera i jest całkowicie kompatybilny z Microsoft Win-
dows od wersji 95 OSR2 do XP Professional. Pakiet in-
stalacyjny Dr.Web for Windows do instalacji wymaga tyl-
ko 12-15 MB wolnej przestrzeni dyskowej. Oszczędza za-
soby komputera i nigdy nie jest dla niego zbytnim obcią-
żeniem – co czyni go niezastąpionym na wysłużonych
maszynach starszej generacji.

Proces instalacji jest bardzo prosty i przebiega bez

żadnych problemów. W trakcie instalacji nie są wymaga-
ne żadne dodatkowe operacje czy ustawienia.

Narzędzie zapewnia ochronę dla poczty elektro-

nicznej. Zainfekowane wiadomości nigdy nie przenikną
do Twojego komputera, jeśli tylko monitor poczty elek-
tronicznej Dr.Web (SpIDer Mail) będzie aktywny. Jego
zadaniem jest wykrycie i usunięcie szkodliwego kodu
jeszcze zanim wiadomość trafi do lokalnej skrzynki
użytkownika. Dr.Web SpIDer Mail skanuje wszystkie
komponenty wiadomości: ciało, załączniki, spakowane
pliki itd.

Rysunek 1.

Dr.Web Antywirus

background image

hakin9.live

hakin9 Nr 11/2007

www.hakin9.org

10

hakin9.live

hakin9 Nr 11/2007

www.hakin9.org

11

background image

hakin9.live

hakin9 Nr 11/2007

www.hakin9.org

12

MyPrivacy

Jest narzędziem zapewniającym poufnym danym bez-
pieczeństwo, chroniąc je przed hakerami. Program oce-
nia także poziom Twojej ochrony prywatności i proponu-
je sposoby jego podwyższenia. MyPrivacy zapewnia to-
talną ochronę na dwóch poziomach, on-line i off-line, co
sprawia, że narzędzie to znajduje się w czołówce aplika-
cji zapewniających odpowiedni poziom bezpieczeństwa.

Disk Cleaner from SBMAV

Jest zaawansowanym narzędziem do czyszczenia dys-
ków twardych dla systemów Windows. Narzędzie jest tak
zaprojektowane, aby czyścić dysk z zalegających na nim
mało ważnych informacji. Używając Disk Cleaner'a mo-
żesz wyszukiwać i kasować tymczasowe pliki systemo-
we, nieprawidłowe skróty, które odpowiadają za nieistnie-
jące pliki czy foldery, resztki po odinstalowanych progra-
mach, niepotrzebne pliki cookies i duplikujące się pliki.
Program pomaga także pracować z plikami użytkownika:
potrafi wykrywać i kasować stare kopie zapasowe i do-
kumenty, wyszukiwać duplikaty plików wykorzystujących
różne parametry i następnie kasować te niepotrzebne.

SecuBox by Aiko Solutions

Jest narzędziem kodującym, które chroni poufne infor-
macje przechowywane na palmtopach, smartphone'ach
i kartach pamięci. Od kiedy kieszonkowe PC-ty są łatwe
do zgubienia, jesteś narażony na ryzyko utraty dokumen-
tów i plików, a nawet danych klientów, które mogą trafić
w niepowołane ręce. SecuBox tworzy bezpieczny kon-
tener dla wszystkich plików, zabezpieczając je praktycz-
nie niemożliwym obecnie do złamania algorytmem AES
z 256-bitowym kluczem. Dane zapisane do tego kontene-
ra są automatycznie kodowane. W przypadku, kiedy stra-
cisz urządzenie lub kartę pamięci, możesz być pewny, że
nikt nie będzie miał dostępu do twoich informacji. Secu-
Box dla kieszonkowych PC-tów oferuje wyjątkowo pro-
sty sposób użycia oraz nie zmniejsza wydajności same-
go urządzenia. Narzędzie zamienia palmtopa czy smart-
phone'a w wysoce bezpieczne urządzenie, niewymaga-
jące żadnego wysiłku i interakcji użytkownika.

Główne cechy programu:

• zaawansowany algorytm bezpieczeństwa (AES 256-bit),
• wsparcie dla wszystkich typów kart pamięci,
• łatwa instalacja,
• kodowanie w locie,
• weryfikacja złożoności hasła,
• bezpieczne usuwanie danych,
• konfiguracja właściwości,
• menu systemowe,
• przeglądarka plików,
• brak backdoorów.

SpyDetector

Jest narzędziem antyszpiegowskim, które wykrywa wszyst-
kie działające procesy na komputerze i wyświetla ewentual-
ne związane z nimi zagrożenia. Kolejną opcją programu jest
możliwość wykrywania procesów zawierających i wykonu-
jących obcy kod innego procesu. Użytkownicy już na pierw-
szy rzut oka widzą szczegółowe informacje dla wyselekcjo-
nowanych procesów oraz wszystkie wykryte zagrożenia,
w tym spyware, keyloggery oraz trojany. Narzędzie wyko-
rzystuje aż 17 metod wykrywania procesów. Poziom zagro-
żenia poszczególnych procesów jest zaznaczany odpowied-
nim kolorem, co umożliwia użytkownikowi łatwą ocenę sytu-
acji. Poza kolorystyką stopnia zagrożenia program pokazu-
je ID procesu, ID źródła, status bezpieczeństwa, nazwę pli-
ku .exe, ścieżkę do pliku wraz z jego opisem itd. Kiedy narzę-
dzie oznaczy proces na czerwono lub na żółto, użytkownik
może wybrać czy usunąć go z pamięci, czy zaakceptować
jako bezpieczny. Lista procesów może być wyeksportowana
do pliku Excela w celu późniejszej analizy. Program wykry-
wa także nowe, niewykrywalne przez skanery antywiruso-
we, trojany, wirusy i oprogramowanie spyware.

SpyXie UnderNetwork – client/server

Jest zdalnym komputerem monitorującym i administrują-
cym oprogramowaniem. Narzędzie daje Ci pełną kontro-
lę nad wszystkimi komputerami podłączonymi do sieci.
Z pojedynczego komputera administrującego możesz zo-
baczyć i kontrolować każdą czynność na zdalnie sterowa-
nych komputerach. Dzięki temu narzędziu możesz bardzo
łatwo połączyć się z każdym komputerem w sieci – jedy-
ne, czego potrzebujesz, to zainstalowany klient SpyXie na
sterowanych stacjach roboczych. Aplikacja służy także do
monitorowania w czasie rzeczywistym i śledzenia czyn-
ności użytkowników w sieci. Z SpyXie administrator mo-
że nadzorować pracę klawiatury, sprawdzać odwiedzane
strony i aplikacje, z których korzystał użytkownik. Wszyst-
kie czynności kontrolowanego komputera w sieci są za-
pisywane i można przejrzeć je w późniejszym terminie.
Przeznaczeniem tej aplikacji jest umożliwienie administra-
torowi wglądu i nadzoru stacji roboczych z tej samej do-
meny. SpyXie zapewnia dużą różnorodność funkcji admi-
nistracyjnych, takich jak monitorowanie i śledzenie błędów
aplikacji oraz użytkowników, a także prowadzenie proak-
tywnych korekt tych błędów w czasie rzeczywistym. l

Rysunek 2.

Disk Cleaner from SBMAV

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

14

Narzędzia

hakin9 Nr 11/2007

www.hakin9.org

15

hakin9 Nr 11/2007

www.hakin9.org

Narzędzia

I

nstalacja KIS 6 przebiega wyjątkowo szybko i bez-
problemowo. KIS składa się z modułów ochrony
plików, ochrony poczty, ochrony WWW, ochrony pro-

aktywnej, anti-spy, zapory ogniowej anti-hacker oraz
anti-spam. Użytkownik podczas instalacji ma możliwość
wyboru tylko tych modułów, które są mu potrzebne. Po
instalacji możemy też wyłączyć wybrany moduł, jeśli
stwierdzimy, że chwilowo jest nam zbędny – ale warto
zainstalować i uruchomić je wszystkie dla pełnej ochro-
ny naszego systemu. Brakuje trochę opcji czasowego
wyłączenia danego modułu, ale jeśli wyłączymy np.
moduł anti-hacker i zapomnimy ponownie uaktywnić
ochronę, program przypomni o tym przy najbliższym
uruchomieniu.

Zaraz po instalacji następuje proces aktywacji i konfi-

guracji produktu, podczas którego mamy m. in. możliwość
wyboru częstotliwości aktualizacji. Możemy także zabez-
pieczyć dostęp do ustawień programu hasłem. Autorzy
programu pomyśleli jednocześnie o drobnym udogodnie-
niu dla użytkowników w postaci opcjonalnego zapamię-
tywania hasła na czas trwania sesji, dzięki czemu mo-
żemy wpisać hasło tylko raz, a dostęp do zmiany opcji
programu będziemy mieli do chwili ponownego rozruchu
komputera.

Konfiguracja zapory sieciowej może wymagać tro-

chę wiedzy technicznej (sposoby adresowania, maski sie-
ciowe itp.), ale domyślne ustawienia powinny być pra-
widłowe i wystarczające dla większości użytkowników.
Aplikacje, które korzystają z połączeń sieciowych, zosta-
ną automatycznie wykryte i będą stworzone dla nich
domyślne reguły, które można w dowolnym momencie
zmienić.

Po instalacji i konfiguracji program proponuje restart

systemu i dobrze jest zaakceptować tę propozycję. Domyśl-
nie KIS 6 analizuje programy ładujące się przy starcie sys-
temu i obserwuje akcje, jakie zachodzą w systemie pod-
czas tego procesu. Pozwala to wychwycić oprócz trady-
cyjnych wirusów także rootkity. Warto również przeprowa-
dzić pełne skanowanie systemu, co zwiększy bezpieczeń-
stwo – w przeciwnym razie KIS będzie nam o tym notorycz-
nie przypominał.

Jeśli chodzi o moduł ochrony poczty i ochrony przed

spamem to – choć KIS 6 nie wyposażono we wtycz-
kę dla popularnego programu pocztowego Thunderbird
– domyślnie skanuje on cały ruch odbywający się pro-
tokołami SMTP i POP3. Dzięki temu nawet korzystając

z niestandardowych klientów pocztowych mamy zapew-
nioną ochronę.

Po instalacji programu w menu kontekstowym poja-

wia się opcja skanowania antywirusowego. W ten sposób
można skanować pojedyncze pliki lub katalogi oraz ca-
łe dyski. Podczas skanowania jest wyświetlany czas,
w jakim jest oczekiwane zakończenie procesu i, o dziwo,
czas ten zazwyczaj się sprawdza. Po zakończeniu ska-
nowania użytkownik podejmuje decyzje co do zainfe-
kowanych plików. W zależności od wyboru zagrożenia
można usunąć, poddać kwarantannie, bądź ignorować
infekcje.

W głównym oknie programu mamy dostęp do najważ-

niejszych informacji o stanie zabezpieczeń, jak np. aktu-
alność bazy sygnatur zagrożeń. Warto zaznaczyć, że
bazy te mogą być aktualizowane nawet kilka razy dzien-
nie, a proces ten jest całkowicie automatyczny.

Jeśli KIS stwierdzi, iż nasz system może nie być

wystarczająco chroniony (np. nie przeprowadzono peł-
nego skanowania antywirusowego), to poinformuje nas
o tym przy każdym starcie systemu, dopóki nie zdecy-
dujemy się przeskanować całego dysku twardego. Od-
powiednią notkę zobaczymy też w głównym oknie pro-
gramu.

Dla każdego z modułów programu możemy wybrać

poziom zabezpieczeń lub konfigurować ustawienia ręcz-
nie. Warto skorygować domyślne ustawienia dla zapew-
nienia większej ochrony naszego systemu. Szczególnie
zalecane jest uaktywnienie opcji Kontrola integralności
aplikacji
oraz Ochrona rejestru w module ochrony pro-
aktywnej.

Ochrona anti-spy zawiera opcje blokowania okien

pop-up oraz opcję blokującą banery. Komfort przeglą-
dania stron przy użyciu tych opcji w moim przypadku
wyraźnie się podniósł. Większość niechcianych reklam
i niebezpiecznych treści jest blokowana. Nad bezpie-
czeństwem surfowania po stronach internetowych czuwa
ochrona WWW – przeglądając raport z jej działania
odkryłem wielką liczbę zagrożeń, przed jakimi KIS mnie
uchronił zaledwie w ciągu kilku minut, a poziom zabez-
pieczeń, jaki ustawiłem, był średni!

Co do systemu pomocy, to jest on dostępny w każdym

oknie programu i prezentuje informacje zgodne z kontek-
stem, w jakim się znajdujemy.

Łukasz Witczak

Producent: Kaspersky

System: Windows 2000, Windows XP, Windows Vista

Typ: Internet Security 6.0

Strona producenta: http://www.kaspersky.pl/

Ocena: 5/5

Recenzja KIS 6

background image

14

Narzędzia

hakin9 Nr 11/2007

www.hakin9.org

15

hakin9 Nr 11/2007

www.hakin9.org

Narzędzia

mks_vir 2K7

Producent: MKS Sp z o.o.

System: Windows XP / Windows Vista

Typ: Program Antywirusowy

Strona producenta: http://mks.com.pl

Ocena: 5/5

F

irma MKS sp. z o.o. powstała w 1996 roku. Jej
założycielem był Marek Sell. Prężnie rozwijającą
się firmę zna chyba każdy. Pierwsze wersje MKSa

były napisane dla DOSa. Wtedy jeszcze Internet nie był
tak rozpowszechniony, wirusy atakowały pliki przeno-
szone na dyskietkach. Obecnie infekcja przebiega naj-
częściej drogą elektroniczną (strony WWW, poczta
elektroniczna, komunikatory). Naprzeciw tym zagroże-
niom wychodzi najnowszy produkt firmy MKS – mks_
vir 2K7.

Najprostszym sposobem zdobycia programu jest

odwiedzenie strony producenta. Po przejściu do działu
Pobierz znajdziemy interesujący nas program. Następ-
nie możemy ściągnąć najbardziej aktualną jego wersję
demonstracyjną (pełną funkcjonalnie, ale ograniczoną
czasowo). W tej recenzji będzie to mks_vir 2k7 DOM. Ze
ściągnięciem programu nikt nie powinien mieć proble-
mów, jednakże pozwoliłem sobie zamieścić link: http://
www.mks.com.pl/files/mksvir2007setup.exe

Po uruchomieniu ściągniętego pliku pojawia się okno

instalacji programu. Procedury instalacyjne w większo-
ści programów są podobne, więc nie powinny przyspo-
rzyć większych problemów. Ciekawym rozwiązaniem
jest konfigurowanie zapory poprzez włączenie lub wyłą-
czenie standardowych protokołów wykorzystywanych
przez użytkownika. Mamy do wyboru: WWW (porty 80,
443), pocztę (25, 110, 465, 995), udostępnianie plików
i drukarek (139, 445, 137, 138). Podczas instalacji jeste-
śmy także pytani o klucz aktywacyjny produktu. Nie ma
znaczenia, czy zainstalujemy wersję demonstracyjną,
gdyż w późniejszym czasie będzie można zmienić klucz
produktu z poziomu uruchomionego programu. Warto
tutaj wspomnieć o licencji, która pozwala nam na wszel-
kiego rodzaju aktualizacje, włączając w to pojawienie się
nowej wersji programu. W przypadku, gdy wybierzemy
wersję demonstracyjną, licencja jest ważna tylko przez
14 dni.

Obsługa programu jest bardzo prosta i nawet począt-

kujący użytkownicy komputera nie powinni mieć z nią
żadnych problemów. Nowoczesny wygląd oraz zmiany
organizacyjne w stosunku do poprzedniej wersji (polega-
jące na odpowiednim pogrupowaniu narzędzi) sprawiają,
że obsługa jest nie tylko łatwa, ale i przyjemna.

Program mks_vir 2k7 jest pakietem narzędzi chronią-

cych nasz komputer. Pakiet ten oparty jest na modułach,
które zostały pogrupowane w następujący sposób:

Program – zawiera informacje na temat stanu progra-

mu, licencji, ustawień ogólnych, posiada także zbiór
raportów ze wszystkich modułów, dostarcza pomocy
i informacji o wersji:
• moduł automatycznej aktualizacji programu i baz

zagrożeń.

Ochrona przed wirusami – grupa odpowiedzialna za

wykrywanie i neutralizację złośliwego oprogramo-
wania:
• skaner antywirusowy pozwalający na kontrolę

wybranych zasobów komputera,

• monitor antywirusowy stale skanujący wszystkie

wykorzystywane pliki,

• kwarantanna zainfekowanych plików.

Bezpieczeństwo w sieci – grupa zapobiegająca prze-

nikaniu infekcji do systemu:
• zapora (firewall), wykrywa każdy program próbu-

jący uzyskać dostęp do sieci Internet i wyświe-
tla zapytanie o pozwolenie. Obok bardzo uprosz-
czonej wersji konfiguracji istnieje także dostęp do
konfiguracji zaawansowanej.

• skaner poczty kontrolujący wszystkie odbierane i wy-

syłane listy,

• filtr niechcianej poczty AntySpam.

Narzędzia systemowe – grupa obsługująca system

operacyjny:
• menedżer procesów,
• monitor kontrolujący stan rejestru systemowego.

Rafał Podsiadły

Rysunek 1.

mks_vir 2k7 podczas pracy

background image

www.hakin9.org

hakin9 Nr 11/2007

16

Początki

P

latforma .NET firmy Microsoft została
oficjalnie zaprezentowana w sierpniu
roku 2000, tworząc nowy standard pro-

gramowania dla systemów operacyjnych z ro-
dziny Windows. Jej powstanie to odpowiedź
na technologię Java firmy Sun oraz związa-
ny z nią zakaz sądowy samodzielnej modyfi-
kacji Javy. Platforma .NET składa się ze śro-
dowiska uruchomieniowego (.NET Framework)
oraz biblioteki klas i komponentów. Podstawo-
wym językiem programowania dla nowej plat-
formy jest język C#. Oczywiście można progra-
mować w języku C++ w kodzie zarządzanym,
jednak jest to dosyć pracochłonne zajęcie. In-
nym językiem, jakiego możemy standardowo
użyć, jest Visual Basic. Programy napisane dla
.NET nie są bezpośrednio kompilowane do po-
staci maszynowej, a jedynie tłumaczone na ję-
zyk pośredni MSIL (ang. Microsoft Intermedia-
te Language
, nazywany czasem Common In-
termediate Language – CLI
) i uruchamiane
przez środowisko uruchomieniowe CLR (ang.
Common Language Runtime)
. Zatem pomię-
dzy systemem operacyjnym, a napisanym pro-
gramem istnieje warstwa pośrednia. Nie jest to
nowość, ponieważ Java oferuje podobne roz-
wiązanie. Gwarantuje nam ono poprawę bez-

pieczeństwa i stabilności systemu oraz prze-
naszalność kodu pomiędzy różnymi architek-
turami procesorów, a nawet pomiędzy różnymi
systemami operacyjnymi. Ponieważ .NET jest
standardem ECMA (ang. European Computer
Manufacturers Association),
powstają nieza-
leżne implementacje tego środowiska. Mowa tu
o projekcie Mono http://www.mono-project.com/,

C# – diagnostyka

połączeń sieciowych

Sławomir Orłowski

stopień trudności

Pisząc samodzielną aplikację dla systemu Windows, analizującą

połączenia sieciowe na lokalnym komputerze, musimy

zebrać wiele informacji dotyczących ustawień DHCP, DNS,

przydzielonych adresów IP itd. Używając do tego celu platformy

.NET możemy uniknąć kłopotliwego odwoływania się do systemu

operacyjnego.

Z artykułu dowiesz się

• jak obsługiwać środowisko programistyczne

Visual C# 2005 Express Edition,

• jak używać podstawowych klas platformy .NET

służących do analizy połączeń sieciowych na
komputerze lokalnym.

Co powinieneś wiedzieć

• znać podstawy jednego z następujących języ-

ków: C, C++, Java, lub oczywiście C#. W razie
niespełniania tego warunku potrzebny jest duży
zapał,

• znać podstawy programowania zorientowane-

go obiektowo,

• posiadać podstawową znajomość sieci kompu-

terowych.

background image

hakin9 Nr 11/2007

www.hakin9.org

17

C# – diagnostyka połączeń sieciowych

sponsorowanym przez firmę Novell,
oraz o projekcie dotGNU http://www.
dotgnu.org/
. W ramach technologii
.NET istnieje również implementa-
cja platformy dla urządzeń przeno-
śnych. Platforma .NET to również
szereg nowych technologii. Mamy tu
bardzo dobry mechanizm tworzenia
aktywnych stron internetowych ASP.
NET, obsługi baz danych ADO.NET
i XML. Sama nazwa zobowiązuje
również do posiadania rozbudowa-
nych możliwości programowania
aplikacji sieciowych. I rzeczywiście
tak jest – co, mam nadzieję, uda mi
się pokazać.

Visual C# 2005

Express Edition

Osoby programujące w C# pod Vi-
sual C# 2005 Express Edition mogą
bez większych obaw ominąć ten akapit.
Ma on pomóc wszystkim tym, którzy
nie mieli wcześniej kontaktu ani z ję-
zykiem C#, ani z innymi środowiska-
mi programistycznymi firmy Microsoft.
Rozpoczniemy od pobrania środowis-
ka Visual C# 2005 Express Edition.

I tu od razu miła niespodzianka. Jest
to środowisko darmowe! Można je
pobrać ze strony: http://msdn2.micro
soft.com/en-us/express/aa975050.
aspx.
W momencie pisania tego arty-
kułu dostępna jest również wersja
beta 2 Visual Studio 2008. Dla Visual
C# 2005 Express Edition mamy możli-
wość wyboru instalacji: sieciowa lub lo-
kalna. Jeżeli zdecydujemy się na sie-
ciową, wówczas pobierzemy jedynie

mały plik, który sam pobierze i zain-
staluje całe środowisko oraz dodatko-
we komponenty. Jeśli zaś wybierze-
my instalację lokalną – pobierzemy ca-
ły obraz płyty. Myślę, że lepsze jest to
drugie rozwiązanie. Jeżeli nie posiada-
my na naszym komputerze platformy
.NET w wersji przynajmniej 2.0, wów-
czas instalator również ją zainstaluje.
Jest ona niezbędna do prawidłowego
działania środowiska Visual C# 2005
Express Edition oraz programu opisa-
nego dalej. Zachęcam również do ak-
tualizacji platformy .NET.

Po skutecznej instalacji możemy

uruchomić Visual C#. Aby teraz roz-
począć nowy projekt, z menu File
wybieramy opcję New Project… Zgło-
si się okno widoczne na Rysunku 1.
Mamy tu do wyboru kilka rodzajów pro-
jektów. Na początek wybieramy ikonę
Console Application, co pozwoli nam
napisać aplikację konsolową. Ozna-
cza to, że nasz program nie będzie
posiadał okna – będzie uruchamia-
ny z wiersza poleceń systemu Windows.
W polu Name wpisujemy nazwę na-
szej aplikacji, która będzie również
nazwą nowej przestrzeni nazw.

Po zatwierdzeniu wyboru klikamy

przycisk OK. Utworzony zostanie no-
wy projekt (patrz Rysunek 2). Środo-
wisko Visual C# 2005 Express Edi-
tion wygeneruje automatycznie stan-
dardowy kod dla aplikacji konsolo-
wej, który jest widoczny na Listin-
gu 1. Na początku kodu z Listingu 1.
następują deklaracje przestrzeni nazw,
jakich chcemy używać w projekcie.
Dalej zadeklarowana jest nowa

Rysunek 1.

Okno wyboru typu projektu

Listing 1.

Pusty projekt aplikacji konsolowej

using

System

;

using

System

.

Collections

.

Generic

;

using

System

.

Text

;

namespace

NetInfo

{

class

Program

{

static

void

Main

(

string

[]

args

)

{

}

}

}

Listing 2.

Program Witaj Świecie

using

System

;

using

System

.

Collections

.

Generic

;

using

System

.

Text

;

namespace

PierwszyProgram

{

class

Program

{

static

void

Main

(

string

[]

args

)

{

Console

.

WriteLine

(

"Witaj Świecie!"

);

}

}

}

background image

hakin9 Nr 11/2007

www.hakin9.org

Początki

18

przestrzeń nazw dla naszej aplika-
cji i nowa klasa. Przestrzenie nazw
to bardzo pożyteczny pomysł. Po-
magają one grupować klasy o po-
dobnym działaniu lub operujące na
podobnych danych oraz zapobie-
gają konfliktom nazw. Przestrze-
nie nazw mogą zawierać podprze-
strzenie. Należy jednak pamiętać,
że deklaracja przestrzeni nazw nie
oznacza automatycznego dołącze-
nia wszystkich jej podprzestrzeni.
W klasie

Program

zadeklarowana

jest statyczna metoda

Main

. Jest to

wejście

do naszego programu. Kom-

pilator języka C# we wszystkich pli-
kach projektu szuka właśnie tej me-
tody, która jest uruchamiana przy
starcie programu przez platformę
.NET. Składnia języka jest bardzo
podobna do C/C++ i do Javy, zatem
sądzę, że większość Czytelników
sobie z nią poradzi. Jednak, aby tra-
dycji stało się zadość, napiszemy
program Witaj Świecie.

Przechodzimy do wnętrza metody

Main

i rozpoczynamy wpisywanie na-

zwy klasy

Console

, która reprezentuje

konsolę systemową. Od razu zgłasza
się nam system podpowiedzi Intelli-
Sense, który w środowiskach Visual
Studio działa naprawdę dobrze (patrz
Rysunek 3). Z rozwiniętego menu In-
telliSense możemy wybrać sobie od-
powiednią pozycję – bez wpisywania
całości nazwy. Jeszcze większą za-

letą jest mechanizm podpowiedzi
wszystkich własności i metod danej
klasy. W końcu nie sposób zapamię-
tać nazw wszystkich klas, a co dopiero
ich własności i metod. Po wpisaniu

Console

i naciśnięciu kropki powinna

pojawić się nowa podpowiedź syste-
mu IntelliSense. Teraz musimy wy-
brać statyczną metodę

WriteLine

, któ-

ra wyświetla na ekranie tekst przeka-
zany jako argument. Metody statycz-
ne pozwalają na ich użycie bez dekla-
rowania egzemplarza klasy, z której

dana metoda pochodzi.Myślę, że kod
programu Witaj Świecie nie wymaga
dalszych komentarzy (Listing 2).

Środowisko Visual C# 2005 Ex-

press Edition to naprawdę rozbudo-
wane narzędzie. Jego pełny opis wy-
rasta poza ramy tego artykułu. W tej
części opisane są jedynie najważ-
niejsze funkcje, które umożliwią nam
dalsze pisanie programów.

Połączenia sieciowe

Pora teraz na skorzystanie z szero-
kich możliwości platformy .NET w za-
kresie programowania sieciowego.
Napiszemy prostą aplikację konsolo-
wą, która wyświetli nam informacje
dotyczące interfejsów i połączeń sie-
ciowych na lokalnym komputerze. Ze
względu na wyświetlane dane, cały
kod tej aplikacji podzielony został na
6 części (Listingi 3-8), niemniej jed-
nak stanowi on jedną całość.

Aby uzyskać dostęp do klas umo-

żliwiających zebranie informacji na te-
mat połączeń sieciowych komputera
lokalnego, musimy w sekcji using za-
deklarować użycie odpowiednich prze-
strzeni nazw (Listing 3).

Przestrzeń nazw

System.Net.Net-

workInformation

daje programiście

dostęp do klas, które udostępniają sze-
reg informacji dotyczących wszyst-
kich zainstalowanych interfejsów

Rysunek 2.

Okno środowiska Visual C# 2005 Express Edition z otwartym

projektem aplikacji konsolowej

Listing 3.

Deklaracja nowych przestrzeni nazw

using

System

;

using

System

.

Collections

.

Generic

;

using

System

.

Text

;

using

System

.

Net

.

NetworkInformation

;

using

System

.

Net

;

Listing 4.

Prezentacja nazwy komputera i nazwy domeny

namespace

NetInfo

{

class

Program

{

static

void

Main

(

string

[]

args

)

{

IPGlobalProperties

wlasnosciIP

=

IPGlobalProperties

.

GetIPGlobalP

roperties

();

Console

.

WriteLine

(

"Nazwa komputera: "

+

wlasnosciIP

.

HostName

);

Console

.

WriteLine

(

"Nazwa domeny: "

+

wlasnosciIP

.

DomainName

);

Console

.

WriteLine

();

background image

hakin9 Nr 11/2007

www.hakin9.org

19

C# – diagnostyka połączeń sieciowych

sieciowych, ich statusu, adresów
MAC, IP, aktualnych połączeń sie-
ciowych, konfiguracji sieciowej kom-
putera (adresy serwerów DHCP, DNS,
WINS) itd. W przestrzeni nazw

Sys-

tem.Net

zawarte są podstawowe kla-

sy obsługujące protokoły sieciowe.
Rozpoczniemy od prezentacji nazwy
komputera oraz – jeżeli jest przydzie-
lona – nazwy domeny (Listing 4).

Użyliśmy klasy

IPGlobalProperties

z zadeklarowanej wcześniej prze-
strzeni nazw

System.Net.NetworkInfor-

mation

. Dzięki tej klasie mamy do-

stęp do informacji na temat aktual-
nych połączeń na komputerze lokal-
nym. W dalszej części użyjemy jej do
wypisania aktywnych połączeń TCP
i UDP. Teraz wypiszemy wszystkie
adresy IP, jakie przypisane są do na-
szego komputera. Jeżeli jedynym ad-
resem IP będzie adres pętli zwrotnej
(127.0.0.1), to wypiszemy komunikat
o braku połączenia z siecią. Referen-
cja klasy IPHostEntry, która jest konte-
nerem, będzie przechowywać wszyst-

kie odnalezione adresy IP, uzyskane
przy użyciu metody

GetHostEntry

klasy

Dns

. Argumentem tej metody jest naz-

wa hosta, dla którego chcemy uzy-
skać adres IP. Nazwę tę uzyskamy
używając z kolei metody

GetHostName

.

Jest to kolejny sposób, za pomocą
którego możemy uzyskać nazwę lokal-
nego komputera. Użyte w tej części
klasy należą do przestrzeni nazw

System.Net

. Ponieważ referencja Ad-

resyIP klasy

IPHostEntry

jest konte-

nerem, możemy w łatwy sposób wy-

świetlić wszystkie jej elementy, uży-
wając pętli

foreach

. Pętla ta iteruje

po wszystkich elementach z danego
zakresu, w związku z tym świetnie
nadaje się do prezentacji zawartości
kontenerów i wszelkiego rodzaju ko-
lekcji. Pojedynczy adres IP uzyskany
poprzez działanie metody

AddressList

reprezentowany będzie przez obiekt
klasy

IPAddress

. Wszystkie te czyn-

ności przedstawia Listing 5.

Przejdźmy teraz do wypisania

informacji na temat zainstalowa-
nych w komputerze kart sieciowych.
Dzięki własnościom klasy Networ-
kInterface w bardzo łatwy sposób
uzyskamy adres MAC, nazwę, opis,
status i maksymalną szybkość, z ja-
ką dana karta sieciowa może pra-
cować w sieci lokalnej. Statyczna
metoda

GetAllNetworkInterfaces

klasy

NetworkInterface

zwraca listę

(o elementach typu

NetworkInter-

face

) wszystkich interfejsów siecio-

wych zainstalowanych na lokalnym
komputerze. Aby je odczytać, wystar-
czy posłużyć się, tak jak poprzed-
nio, wygodną pętlą

foreach

. Całość

przedstawiona jest na Listingu 6.

Kolejnymi informacjami, jakie wy-

świetli pisany przez nas program,
będą adresy bram sieciowych, ser-
werów DNS, DHCP i WINS patrz Li-
sting 7. Informacje o adresach bram
sieciowych zaszyte są we włas-
ności

GatewayAddresses

. Jej użycie

zwraca obiekty klasy

GatewayIP

AddressInformation

. Własność Ad-

dress tego obiektu daje nam adres
bramy sieciowej w postaci obiektu
klasy

IPAddress

. Aby teraz taki ad-

res wyświetlić, musimy zamienić go
na obiekt typu

string

. Służy do tego

metoda

ToString

, która jest standar-

Rysunek 3.

Mechanizm IntelliSense

Listing 5.

Lista wszystkich przydzielonych adresów IP

IPHostEntry

AdresyIP

=

Dns

.

GetHostEntry

(

Dns

.

GetHostName

());

int

licznik

=

0

;

Console

.

WriteLine

(

"Przydzielone adresy IP: "

);

foreach

(

IPAddress

AdresIP

in

AdresyIP

.

AddressList

)

{

if

(

AdresIP

.

ToString

()

==

"127.0.0.1"

)

Console

.

WriteLine

(

"Komputer nie jest podłączony do sieci.

Adres IP: "

+

AdresIP

.

ToString

());

else

Console

.

WriteLine

(

" adres IP #"

+

++

licznik

+

": "

+

AdresIP

.

ToString

());

}

Console

.

WriteLine

();

Listing 6.

Zbieranie informacji na temat zainstalowanych interfejsów

sieciowych

licznik

=

0

;

foreach

(

NetworkInterface

kartySieciowe

in

NetworkInterface

.

GetA

llNetworkInterfaces

())

{

Console

.

WriteLine

(

"Karta #"

+

++

licznik

+

": "

+

kartySieciowe

.

Id

);

Console

.

WriteLine

(

" Adres MAC: "

+

kartySieciowe

.

GetPhysica

lAddress

()

.

ToString

());

Console

.

WriteLine

(

" Nazwa: "

+

kartySieciowe

.

Name

);

Console

.

WriteLine

(

" Opis: "

+

kartySieciowe

.

Description

);

Console

.

WriteLine

(

" Status: "

+

kartySieciowe

.

OperationalS

tatus

);

Console

.

WriteLine

(

" Szybkość: "

+

(

kartySieciowe

.

Speed

)

/

(

double

)

1000000

+

" Mb/s"

);

background image

hakin9 Nr 11/2007

www.hakin9.org

Początki

20

dowo zaimplementowana dla więk-
szości klas. W podobny sposób uzys-
kujemy pozostałe informacje. Służą
do tego odpowiednio własności

Dhcp

ServerAddresses

i

WinsServersAddres-

ses

. Oprócz klasy

IPAddress

, która

należy do przestrzeni nazw

System.Net

,

użyte tutaj klasy należą do przestrze-
ni nazw

System.Net. NetworkInforma-

tion

. Komendy przedstawione na Lis-

tingu 7. zawarte są w pętli

foreach

, któ-

ra jest rozpoczęta na Listingu 6. Dla
pokazania zakresu tej pętli jej nawiasy
klamrowe zostały wytłuszczone.

Na koniec pozostała nam jeszcze

kwestia aktualnie otwartych portów
na komputerze lokalnym dla połączeń
TCP i UDP. I tym razem z pomocą przy-
chodzą nam dobrze skonstruowane
klasy platformy .NET. Rozpoczniemy
od połączeń TCP typu klient. Metoda

GetActiveTcpConnections

zwraca nam

listę obiektów klasy

TcpConnectionInf

ormation,

reprezentujących aktywne

połączenia. Aby wyświetlić całość in-
formacji, jak zwykle używamy pętli

foreach

. Chcąc odczytać zdalny adres

IP oraz port serwera, z którym nawią-
zaliśmy połączenie, używamy własno-
ści

RemoteEndPoint

klasy

TcpConnection

Information

(własności Address i Port).

Własność

State

określa stan, w jakim

znajduje się obecnie dane połączenie
TCP.

TcpState

jest zwracanym przez tę

własność typem wyliczeniowym i może
przyjmować następujące wartości:

Closed – połączenie TCP zamk-
nięte,

Closing – połączenie w trakcie za-
mykania. Komputer lokalny ocze-
kuje na potwierdzenie zamknię-
cia połączenia,

DeleteTcb – bufor kontrolny TCB
(ang. Transmission Control Buf-
fer)
został skasowany,

Established – połączenie TCP
zostało ustanowione. Dane mo-
gą być transmitowane,

FinWait1 – komputer lokalny
oczekuje na sygnał zamknięcia
połączenia od komputera zdalne-

go lub oczekuje na potwierdzenie
zamknięcia, które zostało wcze-
śniej przez niego wysłane,

FinWait2 – komputer lokalny
oczekuje na sygnał zamknięcia
połączenia od komputera zdal-
nego,

Listing 7.

Komplet informacji dotyczących adresów bram sieciowych, serwerów DNS, DHCP i WINS

Console

.

WriteLine

(

" Adresy bram sieciowych:"

);

foreach

(

GatewayIPAddressInformation

adresBramy

in

kartySieciowe

.

GetIPProperties

()

.

GatewayAddresses

)

Console

.

WriteLine

(

" "

+

adresBramy

.

Address

.

ToString

());

Console

.

WriteLine

(

" Serwery DNS:"

);

foreach

(

IPAddress

adresIP

in

kartySieciowe

.

GetIPProperties

()

.

DnsAddresses

)

Console

.

WriteLine

(

" "

+

adresIP

.

ToString

());

Console

.

WriteLine

(

" Serwery DHCP:"

);

foreach

(

IPAddress

adresIP

in

kartySieciowe

.

GetIPProperties

()

.

DhcpServerAddresses

)

Console

.

WriteLine

(

" "

+

adresIP

.

ToString

());

Console

.

WriteLine

(

" Serwery WINS:"

);

foreach

(

IPAddress

adresIP

in

kartySieciowe

.

GetIPProperties

()

.

WinsServersAddresses

)

Console

.

WriteLine

(

" "

+

adresIP

.

ToString

());

Listing 8.

Lista aktualnych połączeń sieciowych dla protokołów TCP i UDP na lokalnej maszynie


Console

.

WriteLine

(

" Aktualne połączenia TCP typu klient:"

);

foreach

(

TcpConnectionInformation

poloczenieTCP

in

IPGlobalProperties

.

GetIPGlobalProperties

()

.

GetActiveTcpC

onnections

())

{

Console

.

WriteLine

(

" Zdalny adres: "

+

poloczenieTCP

.

RemoteEndPoint

.

Address

.

ToString

()

+

":"

+

polocz

enieTCP

.

RemoteEndPoint

.

Port

);

Console

.

WriteLine

(

" Status: "

+

poloczenieTCP

.

State

.

ToString

());

}

Console

.

WriteLine

(

" Aktualne połączenia TCP typu serwer:"

);

foreach

(

IPEndPoint

poloczenieTCP

in

IPGlobalProperties

.

GetIPGlobalProperties

()

.

GetActiveTcpListeners

())

Console

.

WriteLine

(

" Zdalny adres: "

+

poloczenieTCP

.

Address

.

ToString

()

+

":"

+

poloczenieTCP

.

Port

);

Console

.

WriteLine

(

" Aktualne połączenia UDP:"

);

foreach

(

IPEndPoint

poloczenieUDP

in

IPGlobalProperties

.

GetIPGlobalProperties

()

.

GetActiveUdpListeners

())

Console

.

WriteLine

(

" Zdalny adres"

+

poloczenieUDP

.

Address

.

ToString

()

+

":"

+

poloczenieUDP

.

Port

);

}

}

}

O autorze

Sławomir Orłowski – Z wykształcenia
fizyk. Obecnie jest doktorantem na Wy-
dziale Fizyki, Astronomii i Informatyki
Stosowanej Uniwersytetu Mikołaja Ko-
pernika w Toruniu. Zajmuje się symu-
lacjami komputerowymi układów bio-
logicznych (dynamika molekularna)
oraz bioinformatyką. Programowanie
jest nieodzowną częścią jego pracy
naukowej i dydaktycznej. Ma doświad-
czenie w programowaniu w językach C,
C++, Delphi, Fortran, Java i Tcl. Z ję-
zykiem C# i platformą .NET pracuje od
2002 roku. Jest autorem książek infor-
matycznych. Strona domowa: http://
www.fizyka.umk.pl/~bigman/
.
Kontakt: bigman@fizyka.umk.pl

background image

hakin9 Nr 11/2007

www.hakin9.org

21

C# – diagnostyka połączeń sieciowych

LastAck – komputer lokalny ocze-
kuje na ostateczną odpowiedź
komputera zdalnego i zamknięcie
połączenia,

Listen – nasłuchiwanie. Kompu-
ter lokalny czeka na połączenie
TCP od dowolnego komputera
zdalnego,

Podsumowanie

W ten sposób stworzyliśmy pierwszy
program, który może dostarczać in-
formacji na temat połączeń siecio-
wych na komputerze lokalnym. Mam
nadzieję, że przekonałem dzięki nie-
mu Czytelników, iż platforma .NET
posiada ogromną liczbę klas, któ-
re znacznie ułatwiają i przyspiesza-
ją proces tworzenia aplikacji siecio-
wych. Proszę zauważyć, że w tym
przykładzie do zebrania odpowied-
nich informacji praktycznie nie mu-
sieliśmy używać żadnych sztuczek,
przechwytywania pakietów itd. Nie
używaliśmy interfejsu WinAPI, co
z pewnością pozytywnie wpływa na
jakość i niezawodność naszego ko-
du. Wszystko zrobiliśmy korzysta-
jąc ze standardowych klas .NET, ich
własności i metod. Zachęcam do sa-
modzielnych eksperymentów i do
rozszerzenia możliwości tego pro-
stego programu. l

W Sieci

http://www.microsoft.com/poland/

developer/net/podstawy/default.
mspx
– strona firmy Microsoft za-
wierająca informacje o podstawach
platformy .NET,

http://msdn2.microsoft.com/en-us/

netframework/default.aspx – kolej-
na strona firmy Microsoft,

http://www.codeproject.com/ – zbiór

bardzo wielu przykładów aplikacji
dla platformy .NET i nie tylko. Na-
prawdę godny polecenia,

http://www.codeguru.pl/ - polska

strona dla programistów .NET.

SynReceived – synchronizacja
połączenia TCP. Lokalny kompu-
ter wysłał i odebrał prośbę o po-
łączenie i oczekuje odpowiedzi,

SynSent – synchronizacja połą-
czenia TCP. Lokalny komputer
wysłał pakiet synchronizacji (bit
SYN)
i oczekuje na odpowiedź,

TimeWait – komputer lokalny
oczekuje przez określony czas,
aby upewnić się, że komputer
zdalny otrzymał pakiet informu-
jący o zakończeniu połączenia,

Unknown – stan połączenia TCP
nieznany.

Kolejnym krokiem jest wyświetlenie
wszystkich serwerów, jakie działają
na naszym komputerze. Służy do tego
metoda

GetActiveTcpListeners

. Wy-

świetla ona listę adresów IP oraz por-
tów, na jakich nastąpiło połączenie.
Na koniec wyświetlane są wszystkie
procesy, które oczekują na połączenie
UDP. Służy do tego metoda

GetActive

UdpListeners

pokazana na

Listingu 8.

R

E

K

L

A

M

A

background image

www.hakin9.org

hakin9 Nr 11/2007

22

Atak

W

tej gałęzi rynku rywalizują tacy gi-
ganci jak Sony, producent rodziny
konsol: Playstation, Nintendo, oraz

Microsoft wraz ze swoim Xboksem i Xbok-
sem 360. Jednakże stworzenie dobrej konsoli
nie polega jedynie na zapewnieniu, że ma ona
świetne parametry graficzne. Liczy się również
prostota tworzenia gier oraz bezpieczeństwo
sprzętu. I właśnie tematowi bezpieczeństwa
konsoli Microsoftu poświęcimy więcej uwagi.
W artykule tym omówimy wszelkie błędy, jakie
zostały popełnione przy tworzeniu pierwszej
konsoli giganta z Redmond – Xboksa.

W 2 lata wykonamy plan

wieloletni

Microsoft konkuruje z koncernem Sony na rynku
multimediów. W roku 2000 Sony miało w swojej
ofercie takie produkty jak np. Discmany, nagry-
warki DVD oraz konsole Playstation. Microsofto-
wi brakowało do szczęścia tylko konsoli, którą
postanowił stworzyć przed wydaniem Playsta-
tion 2, czyli w czasie krótszym niż dwa lata. Jed-
nakże w tak krótkim czasie nie da się stworzyć
produktu, który można byłoby określić jako kon-
solę. To, co udało się zrobić, jest w rzeczywisto-
ści zminiaturyzowanym PC. Na pokładzie Xbok-

sa znalazł się procesor Intel Celeron 733, karta
graficzna Nvidia GeForce 3 z wyjściem TV, dysk
twardy 10 GB oraz DVD-ROM. Konsola posia-
dała także interfejsy Fast Ethernet oraz USB
i była nadzorowana przez zubożony Windows
2000, który zużywał mniej pamięci operacyjnej.
Warto wiedzieć, że wnętrze Xboksa kryje trzy
jeszcze bardziej interesujące rzeczy, a mianowi-
cie kontroler przerwań z 1982 roku (PIC), Timer
z 1982 roku oraz złącze A20, które zostało skon-
struowane przez firmę IBM i umożliwiało kon-
trolę nad High Memory Area (HMA), a konkret-
nie nad pierwszymi 64 kilobajtami pamięci. Tak
więc Microsoft właściwie nie stworzył konsoli,
lecz komputer, który miał na celu odgrywanie wy-
kreowanych gier. Takie podejście do sprawy stwo-
rzyło jednak pewne zagrożenia. Twór Microsoftu
potrzebował zatem systemu bezpieczeństwa.

Hakowanie Xboksa

Michał Majchrowicz, Marcin Wyczechowski

stopień trudności

Rynek gier komputerowych rozwija się dynamicznie od wielu

lat. Każdy czasem ma ochotę pograć w jakąś dobrą grę

o realistycznej grafice, dlatego wielkie koncerny informatyczne

starają się sprostać wciąż rosnącym wymaganiom, tworząc

popularne konsole do gier i coraz to wydajniejsze komponenty

bazowe do naszych komputerów domowych.

Z artykułu dowiesz się

• jak działają i jaka jest geneza zabezpieczeń

konsoli Xbox.

Co powinieneś wiedzieć

• znać architekturę x86.

background image

Hakowanie Xboksa

hakin9 Nr 11/2007

www.hakin9.org

23

Jakie były potencjalne zagrożenia?

Rozpocznijmy od faktu, iż Microsoft na
pewno nie życzyłby sobie, aby na jego
konsoli uruchomiono inny system ope-
racyjny, np. Linux. W efekcie pozwoli-
łoby to na traktowanie Xboksa jak nor-
malnego PC, a to z kolei prowadziłoby
do strat finansowych. Nie byłaby rów-
nież korzystna możliwość stworzenia
przez kogoś oprogramowania działa-
jącego na konsoli, ponieważ MS dą-
żył do monopolu programowego na
tę platformę sprzętową. Doskonałym
przykładem jest odtwarzacz multime-
diów, czy też przeglądarka. Kłopot
sprawiałyby także skopiowane gry bez
licencji, napisane przez kogokolwiek
– to także powodowałoby uszczerbek
finansowy. Remedium na wszystkie te
problemy musiałoby zawrzeć się w jed-
nym systemie bezpieczeństwa. Jak to
zrobić? Główną zasadą działania sys-
temu bezpieczeństwa konsoli Xbox by-
ło uruchamianie tylko zaufanego kodu,
który przechodziłby kolejne testy zgod-
ności. Takie kolejne kroki potwierdza-
nia poprawności uruchamianego ko-
du określa się mianem Chain of Trust
– łańcucha zaufania.

Czemu ufamy i co z tym

robimy

Pora opisać, co dzieje się, kiedy włącza-
my Xboksa. Gdy konsola startuje, musi
załadować system operacyjny. Zanim
jednak to zrobi, sprawdza, czy system,

który zostanie uruchomiony jest w po-
rządku – czy jest sprawny i czy nikt nie
dokonał w nim żadnych zmian. Po zała-
dowaniu systemu operacyjnego nastę-
puje włączenie aplikacji lub gry, a na-
stępnie kolejne sprawdzenie, czy uru-
chamiany kod legitymuje się certyfika-
tem autentyczności. Przyjrzyjmy się te-
mu, co Xbox kryje wewnątrz. Znajdzie-
my tam procesor, procesor graficzny
zintegrowany z mostkiem północnym,
mostek południowy, RAM, oraz układ
pamięci Flash. Dokładny opis proce-
su startu konsoli możemy zobaczyć na
Rysunku 1.

Na Rysunku 1. znajdziemy mapę

pamięci. Na niej widzimy RAM, Flash
chip oraz resztę pamięci. CPU startuje
od adresu

0xFFFFFFFF0

. Kolejne 16 baj-

tów służy do wykonania dowolnego ko-
du uruchamiającego system, jak rów-
nież może na przykład przestawić pro-
cesor w tryb chroniony. Dokonują się
tam różnorodne procesy. Co się jednak
stanie, jeśli Flash chip zostanie zmody-
fikowany? Wówczas atakujący będzie
mógł uruchomić swój kod. W jaki więc
sposób moglibyśmy spowodować, aby
nasz kod znalazł się na początku wyko-
nywania instrukcji w pamięci? Możemy
usunąć Flash chip i zastąpić go innym
(np. własnym), ale to zbyt ryzykow-
ne. Lepszym pomysłem byłoby obej-
ście zainstalowanego na płycie ukła-
du przez użycie dodatkowego gniazda,
do którego podłączylibyśmy własnego

Flash chipa. Gniazdo takie zostało za-
instalowane z powodu zmniejszenia
kosztów produkcji konsoli. Przegranie
zawartości jednego układu pamięci na
drugi dzięki dodatkowemu gniazdu jest
o wiele bardziej ekonomiczne niż pod-
łączanie do płyty już zaprogramowa-
nego Flasha. Ostatnią metodą może
być po prostu nadpisanie Flash chipa
znajdującego się na płycie własnymi
instrukcjami. Tak więc system bezpie-
czeństwa Xboksa umożliwił nam doko-
nanie manipulacji już przy starcie sys-
temu. Rozważmy teraz, jak można by
zabezpieczyć się przed takim działa-
niem. Po pierwsze, istnieje opcja uży-
cia układu ROM, który nie mógłby być
nadpisany (ale nadal mógłby zostać
wymieniony na inny). Takie działanie
podniosłoby jednak koszty produkcji
konsoli. Inną alternatywą byłoby zinte-
growanie ROMu, z którego startowała-
by konsola, z jakimś innym komponen-
tem. Jest to dobry pomysł, bo nikt nie
wymieniłby takiego komponentu na in-
ny. To rozwiązanie niemal optymalne,
ale również prowadzące do podnie-
sienia ceny konsoli. Ciekawszym wyj-
ściem jest zintegrowanie małego RO-
Mu z jakimś innym chipem na płycie,
który weryfikowałby poprawność Fla-
sha, a następnie przekazywał do nie-
go kontrolę. Takie rozwiązanie jest bar-
dzo efektywne i znacznie tańsze. Ów
ROM można by zintegrować na przy-
kład z mostkiem południowym, gdyż
ten komponent jest zawsze tworzony
specjalnie pod daną architekturę. Na-
leży się zastanowić, jak wobec tego
będzie teraz wyglądać weryfikacja po-
prawności Flasha. Można by na przy-
kład sprawdzić poprawność sygnatu-
ry RSA. Niestety, nie da się umieścić
takiej sygnatury w 512 bajtach, a uży-
wanie większego ROMu znów podnio-
słoby bardzo koszty. Innym wyjściem
jest sprawdzenie sumy kontrolnej, lecz
wtedy nie ma możliwości uaktualnie-
nia kernela we Flashu bez zmiany ca-
łego chipsetu mostka południowego,
ponieważ każda modyfikacja zawar-
tości Flasha spowoduje zmianę sumy
kontrolnej. Bardzo dobrym rozwiąza-
niem byłoby dodanie jeszcze jedne-
go ogniwa w naszym Chain of Trust,
w którym zintegrowany ROM hasho-
wałby drugi bootloader. Co dzięki temu

Rysunek 1.

Mapa pamięci konsoli Xbox

���

�����

�����������

���������

����������

����������

�����

background image

hakin9 Nr 11/2007

www.hakin9.org

Atak

24

można uzyskać? Ten drugi bootlo-
ader, znajdujący się we Flashu, mógł-
by już być dowolnej wielkości – dzięki
czemu bezproblemowo przeprowadził-
by sprawdzenie sygnatury RSA kerne-
la. Zapewnia to pewien poziom bez-
pieczeństwa. W celu modyfikacji jądra
systemu nie trzeba już wymieniać ca-
łego mostka południowego - wystarczy
wymienić Flash chip, ponieważ suma
kontrolna drugiego bootloadera pozo-
stanie niezmieniona. Skupmy się jesz-
cze przez chwilę na ROMie ukrytym w
mostku południowym. Jego zadania to
sprawdzenie sumy kontrolnej drugiego
bootloadera i przekazanie mu kontroli,
ale również jego deszyfracja (korzyst-
ne jest zaszyfrowanie całego Flashu).
I tu pojawia się drobny problem zwią-
zany z budową Xboksa. Mianowicie,
do deszyfracji potrzebna jest pamięć
RAM, która zaraz po włączeniu Xbok-
sa zachowuje się bardzo niestabilnie.
Można sobie zadać pytanie: dlaczego
tak jest? Dzieje się tak z prostej przy-
czyny. Microsoft zakupił kości RAM od
Samsunga. Nie były to jednak układy
o konkretnie ustalonych parametrach.
Gigant z Redmond zakupił każdą kość
RAM, jaką firma Samsung mogła mu
dostarczyć. Nie tylko te dobre kości,
ale również te z błędami. Jasne jest
więc, że dane układy działają na róż-
nych częstotliwościach zegara. Za-
tem przed ich użyciem konieczne jest
przeprowadzenie tzw. Stress Test, co

pozwala na ustalenie parametrów RA-
Mu. Dopiero potem możemy użyć go
do własnych celów. Jednakże takiego
działania nie jest w stanie dokonać kod
zapisany w pamięci ROM, ponieważ
przekraczałby on 512 bajtów. Wskaza-
ne jest więc zastosowanie innego roz-
wiązania. Można choćby umieścić we
Flashu wirtualną maszynę, która bę-
dzie zawierać napisane w specyficz-
nym języku instrukcje przeznaczone
do testowania RAMu. Ten język to tzw.
Xcodes. Wirtualna maszyna spraw-
dzałaby wydajność RAMu na zasadzie
jednej pętli, przesyłającej do pamięci

pewną daną i odczytującej ją. Jeśli da-
na zostanie odczytana poprawnie, wia-
domo już, z jaką częstotliwością pracu-
je RAM. W przeciwnym wypadku czę-
stotliwość zostanie zmniejszona i ca-
ły proces się powtórzy. Po ustawie-
niu wszystkich parametrów ROM mo-
że rozpocząć deszyfrację drugiego bo-
otloadera do RAMu. Jedyne zagroże-
nie stanowi możliwość poznania Xco-
des
przez osobę niepożądaną. Trzeba
więc pisać instrukcje trudne do zrozu-
mienia bez znajomości zawartości Se-
cret ROMu.

Ataki na Secret ROM

Pierwszy możliwy do przeprowadzenia
atak w celu poznania zawartości Se-
cret ROMu byłby możliwy po dobrym
poznaniu Xcodes. Wówczas przy ich
użyciu zachodziłaby możliwość prze-
słania zawartości ROMu na jakiś niski
port i zesniffowanie tego na tym wła-
śnie porcie. By zabezpieczyć się przed
tego typu atakiem, należy uniemoż-
liwić Xcodes dokonywanie wszelkich
operacji na Secret ROMie. Alternatyw-
ny atak to możliwość wyłączenia Se-
cret ROMu. Po wyłączeniu ROMu wy-
konanie zostanie od razu przekazane
do pamięci Flash (która może być pod-
mieniona przez atakującego). Zatem
odpowiednie zabezpieczenia powinny
zapewnić, iż Xcodes nie mogą wyłą-
czyć Secret ROMu. W związku z tym,
należy sprawdzić za każdym razem,

Rysunek 2.

Schemat ideowy algorytmu deszyfrującego i haszującego

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

��������

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

����������

�����������

����������

����

Rysunek 3.

Górna częś pamieci oraz instrukcje wyłączające Secret ROM

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

����������

������
�����

���
������

���

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

�����������

�����������

��������

��������

���������

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

����������

background image

Hakowanie Xboksa

hakin9 Nr 11/2007

www.hakin9.org

25

czy jest w danym momencie wykony-
wana instrukcja

POKEPCI (8000880h,2)

.

Jeśli tak - musimy wyłączyć bit odpo-
wiadający za wyłączenie ROMu.

Jądro i jego

bezpieczeństwo

Teraz opiszemy, jak ma się sprawa de-
szyfracji kernela Xboksa, następująca
po inicjalizacji pamięci i wszystkich
czynnościach związanych z obsługą
wirtualnej maszyny. Na wstępie wy-
pada powiedzieć, że potrzebny jest
krótki, wydajny algorytm, pozwalający
na przeprowadzenie deszyfracji jądra.
Może on znajdować się w pamięci
Flash (możliwej do podmienienia). Na-
stępnie algorytm sprawdzi sumę kon-
trolną jądra. Niektóre z algorytmów po-
siadają tzw. secret key, przekazywany
do seeda, mogącego wygenerować
ciąg, który jest XORowany z każdym
zaszyfrowanym tekstem znajdującym
się we Flashu. Tym sposobem otrzy-
mujemy odszyfrowany tekst. Tak wła-
śnie działają algorytmy RC4 i RC5.
Dodatkową własnością jest możliwość
uruchomienia sprzężenia zwrotnego
– w tym wypadku odszyfrowany tekst
wraca do seeda, co widzimy na Ry-
sunku 2.

Efekt jest taki, że w przypadku

modyfikacji choćby jednego bajtu
w zaszyfrowanym tekście, zmie-
nia nam się tekst wyjściowy, a po-
przez sprzężenie zwrotne – także

cała część strumienia znaków se-
cret key. Powoduje to modyfikację
całości tekstu wyjściowego – aż do
ostatniego bajtu. W skrócie: dzięki
temu otrzymujemy nowy, darmowy
hash. Jest to bardzo efektywne dzia-
łanie, gdyż dzięki funkcjonowaniu
sprzężenia tekstu wyjściowego z se-
edem jednocześnie przeprowadza
się deszyfrację oraz hashowanie. Co
jednak powinno się dziać, jeśli spraw-
dzenie Flasha się nie powiodło?
W jaki sposób Xbox powinien po-
wiadomić użytkownika o nieprawi-
dłowościach? Wówczas powinno
się zaświecić diodę, wyłączyć CPU
oraz wyłączyć Secret ROM. Dzięki
temu zablokujemy możliwość łatwe-
go zrzucenia zawartości ROMu. Pro-
blem jednak jest, co dokładnie powin-
no się zrobić po wystąpieniu błędu we
Flashu. Jeśli najpierw zostanie wyłą-
czony CPU, nie ma możliwości wyłą-
czenia Secret ROMu. Z drugiej stro-
ny, gdzie mają się znaleźć instrukcje
do wyłączenia CPU po uprzednim
zablokowaniu Secret ROMu? Micro-
soft okazał się tutaj bardzo pomysło-
wy. Po nieudanym sprawdzeniu Fla-
sha, zostaje wykonany skok na sa-
mą górę pamięci, gdzie znajdują się
instrukcje wyłączające Secret ROM.
Po przejściu tych instrukcji kończy
się mapa pamięci i zgodnie ze spe-
cyfikacją Xboksa następuje błąd,
z powodu którego wyłącza się CPU.

Możemy to zobaczyć na Rysunku 3.
W ten sposób zostały przeprowadzo-
ne równocześnie dwa procesy: wyłą-
czenie Secret ROMu oraz CPU. Pod-
sumowując to, co dotychczas ustalili-
śmy na temat Xboksa, możemy krót-
ko powiedzieć, iż Secret ROM jest
ukryty w mostku południowym i nie
może zostać zastąpiony ani nadpi-
sany. Pamięć RAM jest inicjalizowa-
na z użyciem Xcodes, przeprowadza-
na jest deszyfracja i hashowanie dru-
giego bootloadera znajdującego się
we Flashu.

Po drugiej stronie

barykady

Pokażemy teraz, jak opisane wyżej
zabezpieczenia funkcjonują w rze-
czywistości, i co jest zgodne z zapo-
wiedziami Microsoftu. Na początku
porozmawiajmy na temat Secret RO-
Mu. Pewnej osobie o pseudonimie
Bunnie (odpowiedzialnej również za
złamanie konsoli Xbox 360) udało
się – sniffując magistralę HyperTran-
sport
– wydobyć zawartość Secret
ROMu. W kodach znajdowała się
maszyna wirtualna, instrukcje do de-
szyfracji algorytmem RC4 oraz tzw.
panic code. Oczywiście drugi bootlo-
ader jest zahashowany. Przyjrzyjmy
się jeszcze raz algorytmowi RC5.
Jeśli zmieniłoby się jakikolwiek bajt
w tekście zaszyfrowanym, zmianie
uległby jednocześnie tekst wyjścio-
wy. Dzieje się tak z powodu istnie-
nia wyżej wspomnianego sprzężenia
zwrotnego. Jednakże tylko algorytm
RC5 ma takie sprzężenie. RC4 go
nie posiada i właśnie takiego algoryt-
mu używa Secret ROM. Możemy wy-
snuć jasny wniosek, że ten algorytm
nie może być stosowany do genero-
wania hasha. Jedyne, co należy zro-
bić, to zaszyfrować algorytmem RC4
własne instrukcje i umieścić je tam,
gdzie powinien znajdować się wła-
ściwy drugi bootloader. Takim dzia-
łaniem charakteryzują się tzw. Mod-
chipy. Dzielą się one na dwa rodzaje.
Tak zwana pierwsza generacja wyłą-
czała ROM umieszczony na płycie,
w wyniku czego poprzez dodatkowe
złącze można było uruchomić dodat-
kowy. Mógł on pozwalać na przy-
kład na uruchamianie skopiowanych

Rysunek 4.

Pamięć Xbox-a pokazana jako okrąg

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

����������

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

��������

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

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

�����������

��������

���

�����

���������

background image

hakin9 Nr 11/2007

www.hakin9.org

Atak

26

gier. Druga generacja powodowa-
ła, że wirtualnie ROM znajdujący się
na płycie był pusty. Dzięki uziemie-
niu magistrali danych D0, konsola
korzystała z dołożonego zewnętrz-
nie ROMu.

Zwróćmy uwagę również na sy-

tuację, w której wedle specyfikacji,
gdy wykonywanie instrukcji dojdzie
do najwyższego adresu, następu-
je tzw. double fault i zatrzymywa-
ny jest CPU. Wartościową informa-
cją jest to, że pamięć tak napraw-
dę nie jest linią. Jest ona okręgiem
i gdy dojdziemy do jej końca, wró-
cimy na początek. A więc, czy tak
naprawdę po natrafieniu na adres

0xFFFFFFFF

następuje błąd? Otóż

nie. Po napotkaniu końcowego ad-
resu

0xFFFFFFFF

wykonanie przecho-

dzi do adresu zerowego, a ten adres
to adres pamięci RAM, co widzimy
na Rysunku 4.

W celu sprawdzenia słuszności ta-

kiej teorii, musimy umieścić nasz kod
na początku pamięci RAM i dobrowol-
nie sprawić, aby drugi bootloader spo-
wodował błąd. Jak wcześniej wspo-
mnieliśmy, spowoduje to przeskocze-
nie do końcowych obszarów pamięci,
gdzie nastąpi wyłączenie Secret ROM.
Aby zawrzeć instrukcje w RAMie, nale-
ży użyć Xcodes, ponieważ to one mo-
gą umieszczać dane w pamięci opera-
cyjnej. Umieścimy tam tylko dwa roz-

kazy, skaczące do początku pamię-
ci Flash, gdzie już znajdują się na-
sze instrukcje. Taka koncepcja działa.
Nie pojawia się żaden błąd. Wszystko
działa tak, jak chcieliśmy. Teraz posta-
ramy się wyjaśnić, dlaczego. Można
krótko przypomnieć, iż procesory Inte-
la zawsze zaczynały startując od naj-
wyższych adresów. Systemy operacyj-
ne jednak nie zawsze tak postępowały
(nawet te tworzone w Redmond). Aby
sprostać tym wymaganiom, Intel za-
stosował specjalną sztuczkę. Na pro-
cesorach tej firmy niepodłączone frag-
menty pamięci są zawsze zwracane
jako 0xFF, a kombinacja

0xFF,0xFF

na

procesorach z serii x86 zachowuje się
jak instrukcja NOP. Dzięki temu proce-
sor rozpoczynał działanie od adresu

0xFFFFFFF0

, następnie wykonywał 4 in-

strukcje

0xFF,0xFF

i dochodził do adre-

su zerowego, gdzie znajdował się sys-
tem operacyjny. I tu pojawia się pyta-
nie: czemu Microsoft postąpił wbrew
dokumentacji Intela? Odpowiedź jest
dość ciekawa. Dzieje się tak, ponieważ
procesory AMD nie posiadają takiej
funkcji. Procesory AMD z założenia
przerywają wykonanie kodu w takim
przypadku. Tylko co z tym wszystkim
ma wspólnego AMD? Otóż wszystkie
prototypy Xboksa korzystały z tych
procesorów. To bardzo interesująca
kwestia. Na początku uzgodniono,
że AMD robi chipset, natomiast Nvi-

dia – sprzęt graficzny. Tymczasem
w pewnym momencie Intel zapropo-
nował Microsoftowi, że to oni się tym
zajmą. Nie było to takie proste, wszyst-
kie komponenty wykonywało bowiem
AMD.

Okazuje się, że błędów Microsoftu

jest więcej. Istnieje również możliwość
wyłączenia Secret ROMu, a potem wy-
konania bezpośrednio kodu znajdu-
jącego się we Flashu. Wcześniej mówi-
liśmy o jednej instrukcji Xcodes, na
którą Xbox nie pozwala

(POKEPCI(8000

880h,2)

. Jeśli zajrzymy w specyfikację,

znajdziemy tam kompletny opis bitów,
jakie możemy ustawić. Znajduje się
tam kilka oznaczonych jako reserved.
Co się stanie, gdy zamienimy te bity na
FF? Nasza instrukcja wyglądać będzie
tak:

POKEPCI(FF00880h, 2)

. I to już za-

działa. Operacja nie zostanie wykryta
jako próba zamknięcia Secret ROMu,
a ROM mimo to będzie wyłączony i wy-
konanie będzie przekazane do Flasha.
Ten pomysł nie jest jedyną możliwo-
ścią wyłączenia Secret ROMu. Moż-
na również skorzystać z innych Xco-
des
. Kilka odpowiednio napisanych in-
strukcji OUTB również nie jest spraw-
dzanych – a ich działanie jest takie sa-
mo, jak zmodyfikowanej instrukcji PO-
KEPCI. Popatrzmy teraz, jak na te
błędy zareagował Microsoft. Gigant
z Redmond zdecydował się na na-
prawienie hasha. Potrzebował do te-
go celu bardzo małego algorytmu ha-
shującego. Jeśli włączymy Google
i poszukamy tiny encryption algori-
thm
to właśnie taki znajdziemy (TEA).
W RC4 zmieniono tylko secret key na
inny. Nie użyto algorytmu RC5, który
mógłby jednocześnie służyć jako al-
gorytm hashujący. Nie wiadomo, dla-
czego – być może na przeszkodzie
stanęły problemy patentowe. W każ-
dym razie Microsoft dostatecznie po-
prawił swoje błędy.

Kolejne podejście

W celu wydobycia Secret ROMu nadal
można było zrobić to samo, co po-
przednio, gdyż nie zostało to w żaden
sposób utrudnione. Znalazł się jednak
i inny pomysł. Jak już wcześniej wspo-
mnieliśmy, Xbox posiada bramę A20#.
Pozwalała ona zaadresować więcej
niż 1MB pamięci. Architektura proce-

Rysunek 5.

Schamat pamięci z pokazanym miejscem startu Xboks

po uziemieniu A20#

����������

����������

����������

����������

����������

����������

���

�����

�����

background image

Hakowanie Xboksa

hakin9 Nr 11/2007

www.hakin9.org

27

sorów 8086 mogła zaadresować mniej
niż 1MB pamięci. Procesory 286 po-
siadały bramę A20# zapewniającą im
wsteczną kompatybilność. Jeśli w ar-
chitekturze 286 otworzyliśmy linię A20,
mieliśmy możliwość adresowania wię-
cej niż 1MB. MS-DOS nazywał to High
Memory
. Jednak po zamknięciu tej
bramy, symulowaliśmy koło w pamięci,
a wszystkie adresy dokonywały ope-
racji logicznej

AND 0xFFEFFFFF

. Obec-

ne procesory x86 posiadają tę bramę,
lecz jest ona tylko pinem na proceso-
rze. Wróćmy do teraz naszej konsoli.
Jeśli więc linię A20 uziemimy, czyli in-
aczej mówiąc wyłączymy wszystkie in-
ne, dokonana zostanie operacja logicz-
na AND na adresach. Toteż procesor,
zamiast startować na

0xFFFFFFF0

, roz-

pocznie pracę na

0xFEFFFFF0

. Odzwier-

ciedlenie tej sytuacji w pamięci widzi-
my na Rysunku 5.

Widzimy tam odbicie Flasha na

16 MB pamięci. Zatem jedyną rze-
czą, jaką musimy zrobić, jest umiesz-
czenie w odpowiednim miejscu kodu,
który posłuży do zrzucenia zawarto-
ści Secret ROMu.

Błędy oprogramowania

Jak pamiętamy, podczas włącze-
nia konsoli Xbox mamy do czynie-
nia z tzw. Chain of trust. Zajmiemy

się teraz punktem tego łańcucha,
w którym Windows sprawdza po-
prawność gry. System weryfikuje grę
algorytmem RSA z 2048-bitowym
kluczem. Proces analizowania gry
wygląda na dość dobrze zabezpie-
czony, wszakże został zaimportowa-
ny z kodu MS Windows. Nie było tutaj
możliwości spowodowania błędu, jak
w przypadku wspomnianych 512 baj-
tów Secret ROMu. Kontynuując po-
szukiwania miejsca, w którym dało-
by się znaleźć błąd, widzimy, że brak
jest jakiejkolwiek weryfikacji w mo-
mencie, gdy gra wgrywa swoje da-
ne (co nie wydaje się w zasadzie po-
trzebne). Umożliwia to zastosowanie
standardowych metod prowadzą-
cych do uruchomienia kodu (np. buf-
fer overflow
). Zastanówmy się teraz,
w jaki sposób przyczynić się do prze-
pełnienia bufora. Gra wgrywa wszyst-
kie grafiki i muzykę z płyty. Zamia-
na płyty z grą na dowolną własnej
produkcji (mamy tu na myśli DVD-R)
nie daje rezultatu – inny krążek nie
będzie działać, a stworzenie klona
płyty jest bardzo trudne. Inna moż-
liwość to użycie stanów gier, tzw.
Savegames
. Zapisy stanów gier są
przechowywane na twardym dys-
ku Xboksa lub na pendrivie. Trzeba
tylko zaopatrzyć się w grę, która ma

błędy w przetwarzaniu zapisanych
stanów (np. 007), spreparować taki
stan odpowiednio i wczytać. Kolej-
ną, bardzo interesującą rzeczą jest
fakt, że przy standardowym użyciu
exploita (np. w Internet Explorerze),
nie mamy możliwości choćby włą-
czenia innego systemu, gdyż pra-
cujemy w danym momencie w trybie
użytkownika. Gry na Xboksie są uru-
chamiane w trybie nadzorcy, co daje
pełny dostęp. Nie wiadomo, dlacze-
go Microsoft tak zrobił – możliwe, że
dla osiągnięcia większej wydajności.
Zmodyfikowano Windows w ten spo-
sób, że nie posiada on już trybu użyt-
kownika, tylko tryb nadzorcy. Nieste-
ty, w celu włączenia Linuksa za każ-
dym razem musimy ładować grę,
a potem jej odpowiednio spreparo-
wany stan, umieszczony np. na pen-
drivie. Jest to więc bardzo uciążli-
we. Istnieje jednak prostszy sposób
na uruchomienie Linuksa. Przyjrzyj-
my się aplikacji, która uruchamia się
w momencie, gdy Xbox startuje i w
napędzie nie ma żadnej płyty DVD.
W aplikacji tej (tzw. Dashboard) mo-
żemy przejrzeć nasze stany gry, od-
tworzyć muzykę i zmienić pewne
dodatkowe ustawienia. Zastanawia
przyczyna, dla której ta aplikacja jest
przechowywana na dysku twardym

R

E

K

L

A

M

A

background image

hakin9 Nr 11/2007

www.hakin9.org

Atak

28

i dlaczego w ogóle Microsoft go użył.
Twórcy konsoli GameCube umieścili
taki sam kod w chipie ROM o pojem-
ności 2 MB. Niestety, dla firmy Bil-
la Gatesa to było za mało. Utworzo-
na aplikacja zajęła aż 100 MB; ukła-
dy ROM o takiej pojemności kosztu-
ją sporo, a twórcy konsoli chcieli za-
oszczędzić. Wobec tego dodali dysk
twardy i starali się poszukać jakiejś
innej możliwości jego wykorzystania.
Na dysku można zatem przechowy-
wać na przykład muzykę. Dashbo-
ard ładuje pliki muzyczne, grafikę 3D
oraz czcionki do wyświetlania napi-
sów. Sprawdza również sumy kon-
trolne plików audio, grafiki, ale nie
czcionek. W przetwarzaniu tych ostat-
nich występuje błąd. Gdyby to wy-
korzystać, możemy zmienić Xboksa
w coś bardziej zadowalającego (Ry-
sunek 6).

Wykorzystując powyższą lukę,

możemy dodać do tej aplikacji nową
funkcję, np. startowanie bootloadera
Linuksa z dysku twardego. Konklu-
dując: jeżeli zamierzamy skorzystać
tylko z błędów popełnionych w opro-
gramowaniu, w celu uruchomienia
Linuksa. Możemy użyć spreparowa-
nego stanu gry lub wyeksploitować
błąd w aplikacji powitalnej. Nawet
gdyby gry nie ładowały się w trybie
nadzorcy, a suma kontrolna czcionek
byłaby sprawdzana, to istnieje jesz-
cze szereg innych popełnionych błę-

dów – na przykład związanych z listą
odtwarzanych plików muzycznych.
Jak wyglądała naprawa dashboar-
du przez Microsoft? Wydał on nową
wersję aplikacji, nieposiadającą tego
błędu. Osoby korzystające z sieci
w Xboksie również dostały odpo-
wiedni update. Nie spowodowało
to jednak dużych zmian, gdyż cią-
gle można było wydobyć stary dash-
board z lukami. Następnym krokiem
było wpisanie starej wersji na czarną
listę
– wykluczono możliwość uru-
chomienia błędnego dashboardu.
Mimo to na dysku nadal znajdował
się plik o nazwie xonlinedash.xbe,
posiadający dziurę. Z biegiem cza-
su naturalnie poprawiono również
ten błąd, uniemożliwiając korzysta-
nie ze zbioru, lecz na dysku znajdo-
wał się jeszcze jeden plik – dashup-
date.xbe
. Choć zawierał on takie sa-
me błędy, celowo nie umieszczono
go na czarnej liście – w takim przy-
padku osoby używające nowych kon
sol z tym uaktualnieniem zostały-
by pozbawione możliwości zagrania
w stare gry.

Podsumowanie

Podczas tworzenia konsoli Xbox Mi-
crosoft postawił zbyt duży nacisk na
niską cenę, a za mało dbał o bezpie-
czeństwo. Nie należało za wszel-
ką cenę dążyć do tego, aby konso-
la była jak najtańsza. Kłopoty spowo-

dowało choćby użycie wszelkich do-
stępnych kości pamięci RAM. Z te-
go powodu producent musiał wpro-
wadzić inicjalizację pamięci poprzez
wirtualną maszynę, w której były błę-
dy. Układ Secret ROM został umiesz-
czony w mostku południowym za-
miast od razu w CPU, co uniemożli-
wiłoby jego zesniffowanie przez ma-
gistralę. Ponadto nie należy próbo-
wać uzyskać tylko minimalnie więk-
szej wydajności na danym sprzęcie
kosztem bezpieczeństwa, jak zrobił
to Microsoft decydując się na uru-
chamianie gier w trybie nadzorcy.
Gigant z Redmond powinien rów-
nież zrozumieć, że tworzenie zabez-
pieczeń zaledwie trudnych do prze-
łamania nie spełnia swojej roli. Po-
winny być one niemożliwe (lub – re-
alnie – niemal niemożliwe) do złama-
nia dla hakerów. W innym wypadku
zawsze znajdzie się osoba z dostę-
pem do odpowiedniego sprzętu lub
innych zasobów, która to zrobi. Na-
leżałoby odpowiednio zabezpieczyć
dysk – najlepiej jakimś hasłem, mieć
pełną kontrolę nad stanami gier, uży-
wać tylko dobrych, sprawdzonych al-
gorytmów i – jeśli potrzeba – wy-
konać operację deszyfracji czy ha-
showania. Wskazane jest uważne
przyjrzenie się już wykrytym lukom
i metodzie ich wykorzystania. Jeśli
w systemie bezpieczeństwa znajdu-
ją się jeszcze podobne miejsca, ry-
chło mogą zostać wykryte kolejne
błędy. Dokonując zmian w ostatniej
chwili, należało dokładnie przeczy-
tać, z czego się korzysta. Mam tu na
myśli chociażby fakt, że dla proceso-
rów Intela pamięć jest kołem. Micro-
soft tego nie uwzględnił, bo nie prze-
czytano dokumentacji i nie sprawdzo-
no, jakie konsekwencje niosła za so-
bą zmiana procesora. Dobrym po-
mysłem byłaby również rozmowa
z tymi, którzy stoją po drugiej stronie
barykady. Umożliwiłoby to dojście do
kompromisu. Jeśli Microsoft pozwolił-
by na uruchamianie Linuksa na Xbok-
sie, pewnie pozbyłby się przynajmniej
Linuksowych hakerów. Niemniej po-
trzeba byłoby tutaj woli rozmowy z obu
stron, a takowej nigdy nie było. l

Rysunek 6.

Linux uruchomiony na konsoli Xbox

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 11/2007

30

Atak

O

becnie eksperci zajmujący się bez-
pieczeństwem komputerowym mo-
gą korzystać z całej gamy aplikacji

służących do analizy ruchu w sieci, pisania
exploitów, skanowania portów czy wykrywa-
nia włamań. Niektóre z tych programów ma-
ją już ugruntowaną pozycję i korzystanie z
nich stało się pewnym standardem. Bywa
jednak, że niektóre ze znanych narzędzi nie
spełniają wszystkich naszych wymagań lub
z pewnych przyczyn nie możemy z nich sko-
rzystać. Wtedy z pomocą przychodzi język
Python i nasza kreatywność – w kilka chwil
możemy napisać skrypt, który będzie dosto-
sowany do konkretnego problemu i, co naj-
ważniejsze, jego budowa będzie nam do-
brze znana.

Dlaczego Python?

Jest kilka powodów, dla których warto rozpo-
cząć naukę tego języka. Po pierwsze, jest to
język, który stale się rozwija i jest ciągle udo-
skonalany. Wydany jest na licencji Open So-
urce
, zapewniającej stałe wsparcie rzeszy
oddanych programistów. Co więcej, Python
jest językiem łatwym w nauce, a jego kod jest
bardzo przejrzysty. Pozwala to na łatwą mo-

dyfikację źródła aplikacji, nawet przez oso-
by niebędące znawcami tego języka. Jednak
największym plusem jest ogromna ilość mo-
dułów i frameworków rozszerzających możli-
wości języka. Dotyczą one zarówno progra-
mowania sieciowego, interfejsów graficznych
jak i np. obróbki grafiki.

Idealnym przykładem jest moduł Inline-

Egg, który został już opisany na łamach ha-
kin9. Kolejnymi, doskonałymi przykładami,
mogą być rozszerzenia przybliżane w tym

Spoofing i Sniffing

w Pythonie

Piotr Łaskawiec

stopień trudności

Każdy specjalista ds. bezpieczeństwa komputerowego powinien

być w stanie pisać programy pomagające w audycie lub analizie

ewentualnych zagrożeń. Programy te powinny być proste,

przejrzyste i co najważniejsze, ich budowa powinna zajmować

mało czasu. Programy pisane w Pythonie spełniają wszystkie

powyższe warunki.

Z artykułu dowiesz się

• jak pisać aplikacje sieciowe w języku Python,
• jak szybko przechwytywać i odczytywać pakie-

ty w Sieci,

• czym jest spoofing i jak można napisać pro-

gram modyfikujący pakiety w Pythonie.

Co powinieneś wiedzieć

• powinieneś znać podstawy działania sieci

TCP/IP,

• powinieneś znać podstawy Pythona.

background image

Aplikacje sieciowe w Pythonie

hakin9 Nr 11/2007

www.hakin9.org

31

artykule, czyli Pcapy i Impacket.
Wszystkie programy napisane na
potrzeby tej publikacji były testo-
wane na systemie operacyjnym Li-
nux, z zainstalowanym Pythonem
w wersji 2.5 (którego można po-
brać ze strony (1)).

Moduł Socket

Python posiada duży zbiór stan-
dardowych modułów służących do
programowania sieciowego. Ideą
Pythona jest udostępnienie wszyst-
kich najpotrzebniejszych narzę-
dzi wraz z pakietem instalacyjnym.

Moduł socket daje nam swobodny
dostęp do gniazd (sockets), czyli
abstrakcyjnych obiektów pozwala-
jących nam na nawiązywanie połą-
czeń, transmisję danych itd.

Funkcja

socket([rodzina _ adresu[,

typ _ gniazda[, numer _ protokolu]]])

odpowiedzialna jest za tworzenie
nowego gniazda. W Ramce przed-
stawione są możliwe typy gniazd
i rodziny adresów wraz ze sto-
sownym opisem. Do gniazda przy-
porządkowane są także niezbęd-
ne funkcje, odpowiadające opera-
cjom które może wykonywać soc-
ket:

listen()

– oczekiwanie na połą-

czenia dla danego gniazda,

accept()

– akceptacja oczekują-

cego połączenia,

bind()

– przypisanie adresu do

gniazda,

connect()

– nawiązanie połącze-

nia,

close()

– zamknięcie połączenia

i anulowanie wszystkich operacji.

Listingi 1 i 2 obrazują łatwość pisa-
nia programów w Pythonie. W kilka
minut można napisać prostą aplika-
cję typu klient-serwer. Kod pokaza-
ny na Listingach jest bardzo pro-
sty i tym samym jest dobrym wpro-
wadzeniem do dalszej części arty-
kułu.

Pcapy i Impacket

Są to dwa moduły usprawniające
programowanie sieciowe w Pytho-
nie. Pcapy pozwala na wyłapywa-
nie pakietów z sieci, natomiast Im-
packet
służy do ich szczegółowej
analizy i modyfikacji. Obsługuje on
zarówno protokoły niskopoziomowe
(IP, TCP, UDP, ICMP), jak i proto-
koły wysokiego poziomu. Oba mo-
duły idealnie ze sobą współpracu-
ją. Można je pobrać ze strony (2).
W celu instalacji obu modułów,
przechodzimy do katalogu ze źró-
dłem i wydajemy polecenie:

python setup.py install

Należy także pamiętać, że do po-
prawnego działania Pcapy potrzeb-

Rodziny adresów

AF_UNIX

– Gniazdo uniksowe, zapewniające wydajną komunikację międzyproceso-

wą na tej samej maszynie. W Pythonie adresy tych gniazd reprezentowane są w po-
staci łańcuchów.

AF _ INET

– Gniazdo zapewniające komunikację na dwóch różnych maszynach

przy wykorzystaniu adresowania IPv4. Reprezentowane jest przez układ (

host

,

port

), gdzie

host

jest łańcuchem znaków a

port

liczbą całkowitą.

AF _ INET6

– Gniazdo różni się od

AF _ INET

tylko zmianą adresowania z IPv4 na

IPv6. Obecnie jest ono bardzo rzadko używane.

Typy gniazd

SOCK_STREAM

– odpowiada za komunikację połączeniową,

SOCK _ DGRAM

– odpowiada za komunikację bezpołączeniową,

SOCK _ RAW

– zapewnia dostęp do warstw położonych poniżej warstwy aplikacyj-

nej. Pozwala na manipulację surowymi pakietami na poziomie warstwy sieciowej,

SOCK _ RDM

– gniazdo komunikatów niezawodnie doręczanych,

SOCK _ SEQPACKET

– gniazdo pakietów uporządkowanych.

Rysunek 1.

Działanie sniffera

W Sieci

http://www.python.org – strona domowa Pythona (1),
http://www.oss.coresecurity.com/ – strona domowa modułów pcapy i impacket (2),
http://www.tcpdump.org – strona projektu libpcap (3),
http://www.twistedmatrix.com – strona projektu Twisted (4).

background image

hakin9 Nr 11/2007

www.hakin9.org

Atak

32

ny jest Libcap w wersji 0.9.3 lub now-
szej. Można go pobrać ze strony (3).

Inne rozwiązania

Szybki wzrost popularności Py-
thona powoduje ciągłe powstawa-
nie nowych rozwiązań programi-
stycznych. Jednym z nich jest Twi-
sted
– alternatywa dla omawianych
w tym artykule modułów Pcapy
i Impacket. Twisted jest framewor-
kiem, który dostarcza nam wielu
mechanizmów pomagających w pi-
saniu aplikacji sieciowych. Zapew-
nia on wsparcie takich protokołów
jak TCP, UDP, SSL/TLS, HTTP,
SSH itd. Z Twisted korzysta wie-
le znanych programów, m. in. Bit-
Torrent oraz Zope3. Twisted moż-
na pobrać ze strony (4). Instalacja
przebiega analogicznie, jak w przy-
padku Pcapy i Impacket. Wchodzi-
my do katalogu, w którym umiesz-
czone są źródła i wydajemy polece-
nie python setup.py install. Gorąco
polecam zaznajomienie się z tym
projektem w wolnej chwili.

Piszemy sniffer

Pierwszym przydatnym programem
który napiszemy, będzie sniffer. Za-
danie stawiane przed naszą apli-
kacją jest oczywiste – ma on prze-
chwytywać pakiety i wyświetlać ich
zawartość. Program ten stanowi
świetne narzędzie diagnostyczne
i jest nieoceniony w pewnych sytu-
acjach, dlatego uważam, że war-
to poznać jego budowę. Przeana-
lizujmy kod zamieszczony w Listin-
gu 3. Źródło składa się z kilkunastu
linijek i stanowi w pełni działający
sniffer. Program wykorzystuje tzw.
surowe gniazda (raw sockets) oraz
dwa moduły: moduł socket, któ-
ry jest standardowym składnikiem
Pythona, a także moduł Impacket.
W kodzie na Listingu 3. należy zwró-
cić uwagę na sposób tworzenia
obiektu socket. Do funkcji

socket()

przekazywane są 3 argumenty:

AF _ INET, SOCK _ RAW

i numer proto-

kołu. Numer protokołu jest elemen-
tem wymaganym podczas manipu-
lowania surowymi gniazdami. Nu-
mer ten możemy pozyskać za po-
mocą funkcji

getprotobyname()

, któ-

Listing 1.

Prosty serwer

import

socket

#tworzymy gniazdo

mysocket

=

socket

.

socket

(

socket

.

AF_INET

,

socket

.

SOCK_STREAM

)

#laczymy gniazdo z odpowienim portem

mysocket

.

bind

((

''

,

1234

))

mysocket

.

listen

(

5

)

while

True

:

#Akceptacja polaczenia

client

,

address

=

mysocket

.

accept

()

print

'Nowe polaczenie: '

,

address

# Wysylamy banner do klienta

client

.

send

(

'Witamy na testowym serwerze'

)

#Zamykamy polaczenie

client

.

close

()

Listing 2.

Prosty klient

import

socket

#tworzymy gniazdo

mysocket

=

socket

.

socket

(

socket

.

AF_INET

,

socket

.

SOCK_STREAM

)

#nawiazujemy polaczenie

mysocket

.

connect

((

'localhost'

,

1234

))

#odbior i drukowanie danych

temp

=

mysocket

.

recv

(

1024

)

print

temp

#zamykamy polaczenie

mysocket

.

close

()

Listing 3.

Sniffer-Impacket

import

socket

from

impacket

import

ImpactDecoder

#wykorzystywany protokol

protocol

=

"tcp"

#zamiana nazwy protokolu na liczbe

int_protocol

=

socket

.

getprotobyname

(

protocol

)

#tworzymy surowe gniazdo

mysocket

=

socket

.

socket

(

socket

.

AF_INET

,

socket

.

SOCK_RAW

,

int_protocol

)

mysocket

.

setsockopt

(

socket

.

IPPROTO_IP

,

socket

.

IP_HDRINCL

,

1

)

print

"Nasluchuje..."

#tworzymy dekoder

ipdecoder

=

ImpactDecoder

.

IPDecoder

()

while

True

:

#odbieranie danych

packet

=

mysocket

.

recvfrom

(

4096

)[

0

]

if

0

==

len

(

packet

):

mysocket

.

close

()

break

;

else

:

#dekodowanie danych

packet

=

ipdecoder

.

decode

(

packet

)

print

packet

background image

Aplikacje sieciowe w Pythonie

hakin9 Nr 11/2007

www.hakin9.org

33

ra zwraca nam odpowiednią liczbę
na podstawie nazwy protokołu. Ko-
lejną ważną i często używaną funk-
cją jest

setsockopt()

, która służy do

ustawiania opcji gniazda. W na-
szym przypadku ustawiamy para-
metr

IP _ HDRINCL

na wartość

True

.

Jest on odpowiedzialny za dostar-
czenie aplikacji nagłówków pakie-
tu. Opcja ta może występować tyl-
ko wtedy, gdy korzystamy z suro-
wych gniazd.

W kodzie przedstawionym na

Listingu 3. kluczową rolę odgrywa
obiekt

ipdecoder

. Jest on tworzony

poprzez

ipdecoder = ImpactDecoder

.IPDecoder()

i służy do konwersji su-

rowych pakietów na jednostki zrozu-
miałe dla modułu Impacket. Umożli-

wia to swobodną manipulację pakie-
tami i wyświetlenie pakietu w spo-
sób przejrzysty. Sam proces deko-
dowania odbywa się poprzez funkcję

decode()

, do której przekazujemy po-

brane dane.

Wykorzystanie modułu socket

nie jest jedyną drogą prowadzą-
cą do napisania sniffera. Możemy
również wykorzystać moduł Pcapy.
Kod programu, który opiera się na
Pcapy i Impacket, przedstawiony
jest na Listingu 4. Niewątpliwą za-
letą takiego rozwiązania jest moż-
liwość wykorzystania kilku przy-
datnych funkcji będących częścią
Pcapy.

Pierwszą rzeczą, na którą warto

zwrócić uwagę, jest funkcja

findall-

devs()

. Zwraca ona listę wszystkich

aktywnych interfejsów sieciowych.
Umożliwia to łatwy wybór źródła
pakietów i nie ogranicza nas do do-
myślnego interfejsu.

Kolejne ułatwienie przychodzi

wraz z funkcją

setfilter()

. Umożli-

wia ona dostosowywania naszego
sniffera do konkretnego protokołu.
Oprócz TCP, który został wykorzy-
stany w naszym przykładzie, może-
my także skorzystać z innych zna-
nych protokołów (np. ICMP).

Sercem programu jest funkcja

open _ live()

. Służy ona do otwie-

rania konkretnego urządzenia w ce-
lu wyłapania pakietów. Przekazuje-
my do niej nazwę urządzenia, ilość
pobieranych bajtów, flagę trybu pro-
miscuous i opóźnienie. Działający
sniffer przedstawia Rysunek 1.

Piszemy spoofer

Czas na napisanie innego, równie
przydatnego programu. Na Listingu
5. został zamieszczony kod proste-
go spoofera napisanego w Pythonie
przy użyciu modułów socket i Impac-
ket
. W czasie pisania programu zo-
stały wykorzystane sposoby progra-
mowania opisane przy okazji wcze-
śniejszych przykładów. Sam pro-
gram spełnia kilka ważnych warun-
ków:

• kod jest krótki, przejrzysty i opty-

malny,

• program potrafi modyfikować ad-

res nadawcy i port,

• program potrafi zmieniać usta-

wienia flag SYN i ACK,

spoofer potrafi zmieniać wartość

TTL (time-to-live).

Dzięki aplikacji z Listingu 5. jesteśmy
w stanie wysłać własnoręcznie zmo-
dyfikowany pakiet na dowolny adres
w sieci. Jest to przydatne przy pew-
nych rodzajach ataków, o których na-
piszę później. Nasz spoofer urucha-
miamy poprzez wywołanie z konso-
li komendy:

python sniff.py<adres_odbiorcy>
<port_odbiorcy><adres_nadawcy>
<port_nadawcy><wart_SYN>
<wart_ACK><wart_TTL>

Terminologia

Sniffing – jest to monitorowanie komunikacji między urządzeniami w sieci. Snif-

fery pasywnie przechwytują pakiety komunikacji sieciowej serwera, routera czy
bramy. Podstawą działania sniffera jest tworzenie kopii informacji wysyłanych
i odbieranych przez urządzenie sieciowe. Wśród tych informacji można zna-
leźć wiele przydatnych danych, które mogą być pomocne w analizie architektu-
ry sieci lub podczas opracowywania odpowiedniego wektora ataku. Należy jed-
nak pamiętać, że sniffing jest możliwy tylko wtedy, gdy pakiety docierają do na-
szych interfejsów sieciowych.

Spoofing – jest to podrabianie adresów IP i nazw DNS w celu uzyskania autoryza-

cji i możliwości komunikacji z chronioną stacją docelową. Spoofing polega głównie
na przechwyceniu i modyfikacji pakietów przesyłanych między dwoma urządzenia-
mi lub przekierowaniu pakietów ze stacji docelowej do atakującego.

Tryb promiscuous

Jest to tryb pracy karty sieciowej (lub innego, dowolnego interfejsu sieciowego), w któ-
rym przechwytuje ona wszystkie pakiety krążące w sieci, a nie tylko te adresowane
bezpośrednio do niej (poprzez adres MAC). Pozwala to na podsłuchiwanie ruchu w ra-
mach swojego segmentu Sieci.

Raw Sockets

Raw sockets są rodzajem gniazd sieciowych, które zapewniają dostęp do nagłów-
ków pakietów wysyłanych i pobieranych z sieci. W przypadku korzystania z raw soc-
kets, programista otrzymuje pełną kontrolę nad procesem tworzenia pakietu i co za
tym idzie, odpowiada za jego poprawne oznakowanie i zaadresowanie. Surowe gniaz-
da pozwalają także na dostęp do warstw leżących poniżej warstwy aplikacji w mode-
lu OSI, a więc do warstwy transportowej i warstwy sieciowej. Zwiększa to nasze moż-
liwości i oferuje praktycznie nieograniczone sposoby na modyfikację wysyłanych i od-
bieranych pakietów.

background image

hakin9 Nr 11/2007

www.hakin9.org

Atak

34

Przeanalizujmy teraz kod progra-
mu. Po zaimportowaniu odpowied-
nich modułów następuje przypisa-
nie zmiennym wartości podanych
przez użytkownika oraz deklara-
cja protokołu (w naszym przypadku
jest to TCP). Korzystamy z surowych
gniazd, więc konieczne będzie obli-
czenie wartości liczbowej odpowia-
dającej protokołowi TCP. Następ-
nie tworzymy obiekt IP poprzez mo-
duł impacket. Instancja klasy IP jest
implementacją protokołu IP działają-
cego w warstwie sieciowej modelu
OSI. Zgodnie z tym uzupełniamy da-
ne potrzebne do prawidłowego zbu-
dowania nagłówka – adres nadawcy
i odbiorcy, a także wartość TTL. Do-
konujemy tego za pomocą funkcji:

set_ip_src(), set_ip_dst()

oraz

set_ip_ttl().

Analogicznie postępujemy z obiek-
tem reprezentującym protokół TCP.
Aby uzupełnić braki w nagłówku
TCP (port źródłowy, port docelowy,
wartości SYN i ACK), posługujemy
się funkcjami:

set_th_sport(), set_th_dport(),

set_th_seq()

i

set_th_ack().

Ostatnią rzeczą o jakiej musimy pa-
miętać, jest wygenerowanie sumy
kontrolnej. Suma kontrola (check-
sum
) jest częścią nagłówka pakietu
TCP i jest wymagana do ustanowie-
nia połączenia:

tcp.calculate_checksum()
tcp.auto_checksum = 1

Ustawienie atrybutu

auto _ checksum

na wartość 1 (równoznaczne z

True

)

informuje program, że suma kontro-
lna będzie wygenerowana automa-
tycznie dla każdego kolejnego pa-
kietu. Zmiana tego atrybutu na 0
wymusi na nas ręczne podawanie

Listing 4.

Sniffer-Pcapy, Impacket

import

pcapy

from

impacket

import

ImpactDecoder

def

packet_recive

(

handler

,

data

):

#dekodowanie danych

decoded

=

ImpactDecoder

.

EthDecoder

()

.

decode

(

data

)

print

decoded

#listujemy interfejsy sieciowe

eths

=

pcapy

.

findalldevs

()

print

"Interfejsy sieciowe: "

i

=

0

for

eth

in

eths

:

print

"%d: %s"

%

(

i

,

eths

[

i

])

i

+=

1

choose

=

int

(

raw_input

(

"Wybierz interfejs: "

))

eth

=

eths

[

choose

]

#

source

=

pcapy

.

open_live

(

eth

,

1500

,

1

,

100

)

source

.

setfilter

(

'tcp'

)

print

"Siec:%s Maska:%s

\n

"

%

(

source

.

getnet

()

,

source

.

getmask

())

#reakcja na przychodzące pakiety

source

.

loop

(-

1

,

packet_recive

)

Listing 5.

Spoofer

import

socket

import

sys

from

impacket

import

ImpactPacket

protocol

=

"tcp"

int_protocol

=

socket

.

getprotobyname

(

protocol

)

dst_host

=

sys

.

argv

[

1

]

dst_port

=

int

(

sys

.

argv

[

2

])

src_host

=

sys

.

argv

[

3

]

src_port

=

int

(

sys

.

argv

[

4

])

SYN

=

int

(

sys

.

argv

[

5

])

ACK

=

int

(

sys

.

argv

[

6

])

TTL

=

int

(

sys

.

argv

[

7

])

#tworzymy obiekt IP

ip

=

ImpactPacket

.

IP

()

#deklarujemy adresata, odbiorce i wartosc TTL

ip

.

set_ip_src

(

src_host

)

ip

.

set_ip_dst

(

dst_host

)

ip

.

set_ip_ttl

(

TTL

)

#tworzymy obiekt TCP

tcp

=

ImpactPacket

.

TCP

()

tcp

.

set_th_sport

(

src_port

)

#deklarujemy port zrodlowy, port docelowy, wartosci SYN i ACK

tcp

.

set_th_dport

(

dst_port

)

tcp

.

set_th_seq

(

SYN

)

tcp

.

set_SYN

()

tcp

.

set_th_ack

(

ACK

)

tcp

.

set_ACK

()

ip

.

contains

(

tcp

)

#obliczamy sume kontrolna

tcp

.

calculate_checksum

()

tcp

.

auto_checksum

=

1

#nawiazujemy polaczenie i wysylamy pakiet

mysocket

=

socket

.

socket

(

socket

.

AF_INET

,

socket

.

SOCK_RAW

,

int_protocol

)

mysocket

.

setblocking

(

0

)

mysocket

.

setsockopt

(

socket

.

IPPROTO_IP

,

socket

.

IP_HDRINCL

,

1

)

mysocket

.

sendto

(

ip

.

get_packet

()

,

(

dst_host

,

dst_port

))

background image

sumy kontrolnej (co w niektórych przypadkach jest sytu-
acją pożądaną).

Ciekawą i na pewno godną zapamiętania funkcją

jest

setblocking()

. Gdy przekażemy do funkcji 0, gniaz-

do nie będzie blokowane. Oznacza to, że każde nie-
udane wysłanie pakietu danych lub brak możliwości
odebrania takiego pakietu z sieci spowodują wywoła-
nie wyjątku.

Należy teraz zastanowić się nad praktycznym za-

stosowaniem takiego programu. Istnieje wiele ataków,
u podstaw których leży modyfikacja wysyłanych pakie-
tów. Jednym z takich ataków jest atak typu SYN. Do ata-
kowanego komputera wysyłane jest żądanie połącze-
nia TCP (SYN). Wysyłane pakiety mają zmieniony ad-
res nadawcy (na adres innego komputera w sieci). Wy-
słanie odpowiednio dużej ilości takich pakietów powo-
duje zaangażowanie bardzo dużych zasobów na atako-
wanej maszynie.

W wyniku tego możemy doprowadzić do zawiesze-

nia atakowanej maszyny. Kolejnym atakiem wykorzy-
stującym spoofing jest DNS Amplification. Polega on
na wysłaniu zapytań do serwerów DNS ze zmodyfi-
kowanym adresem zwrotnym (adres zwrotny ustawia-
ny jest na adres atakowanej maszyny). Przy wykorzy-
staniu większej ilości komputerów wysyłających zapy-
tanie, komputer ofiary nie jest w stanie obsłużyć połą-
czeń kierowanych z serwerów DNS i najczęściej zawie-
sza się. Jak widać, spoofing ma swoje zastosowanie
w praktyce.

Podsumowanie

Umiejętność pisania aplikacji sieciowych w Pythonie jest
cenna. Pozwala nam szybko i przyjemnie pisać aplikacje
dostosowane do konkretnego przypadku. Łatwość pisa-
nia gwarantuje nam duży komfort pracy, a duże możliwo-
ści samego języka i jego modułów pozwalają na stworze-
nie praktycznie dowolnego programu.

W tym artykule zostały przedstawione podstawy pro-

gramowania sieciowego. Jest to pewna fundamentalna
wiedza, która przy odrobinie chęci i samozaparcia po-
zwala pisać bardziej złożone aplikacje. W dzisiejszych
czasach umiejętność pisania programów mających prak-
tyczne zastosowanie w procesie audytu jest na wagę zło-
ta. Równie ważny jest czas poświęcony na kodowanie.
Pamiętajmy więc, że Python jest językiem, który ideal-
nie łączy szybkość pracy z instynktownym programowa-
niem. l

O autorze

Piotr Łaskawiec od wielu lat związany z tematyką bezpie-
czeństwa komputerowego. Pasjonat języka Python. Założy-
ciel i przewodniczący Koła Naukowego PK IT Security Gro-
up (www.pkitsec.pl). W wolnych chwilach programuje i zajmu-
je się publicystyką.
Kontakt z autorem: hellsource@gmail.com

background image

www.hakin9.org

hakin9 Nr 11/2007

36

Atak

I

stnieje wiele sposobów publikowania dyna-
micznych treści w Internecie. Najbardziej
popularne jest tworzenie odtwarzacza we

Flashu. To rozwiązanie wybrały takie serwi-
sy jak youtube, google, myspace czy lastfm.
Dzięki temu można stworzyć prostą i funkcjo-
nalną aplikację. Popularne jest również uży-
wanie tzw. streamingu, który stosuje – ostat-
nio bardzo popularne w Polsce – iTVP. Wy-
branie tej metody chroni przed pobieraniem
danych bezpośrednio z serwera http. W celu
ściągnięcia materiału na dysk należy odtwo-
rzyć plik programem obsługującym protokół
mms i włączyć funkcję zapisywania. Polecam
mplayer, który jest wieloplatformową aplikacją
i doskonale sobie radzi ze streamingiem. Za-
bezpieczenia odtwarzaczy możemy zmieniać
wprowadzając sesje, cookies,

mod _ rewrite

czy zwykłą autoryzację.

Pierwsze kroki,

czyli zbadanie terenu

Niedawno Google Inc. postanowiło zmienić kod
niektórych swoich aplikacji. Wśród nich znala-
zło się video.google.com. Jednak nadal może-
my pobierać dane. Wchodząc na stronę z fil-
mem widzimy, że odtwarzacz został napisany

we Flashu. Spoglądając w źródło strony może-
my zauważyć, iż zastosowano tu iframe, czy-
li tzw. ramkę HTML'a. Znacznik ten ma ID rów-
ny 3rdPartyFrame, a jego źródło jest pobiera-
ne poprzez funkcje JavaScript. Szukamy więc
w kodzie 3rdPartyFrame. Efekt został pokaza-
ny na Listingu 1.

Mamy potrzebny URL do analizy kodu. Jed-

nak jest on niepełny. Przypominam, że w PHP

Hakowanie serwisów

multimedialnych

Konrad Witaszczyk

stopień trudności

Wraz z nadejściem Web 2.0 trendy stały się strony internetowe

pozwalające na udostępnianie mediów wszystkim użytkownikom.

Znakomitym przykładem jest serwis YouTube, który dziennie

odwiedzają miliony osób. Jedyną wadą takich portali jest brak

możliwości pobierania plików.

Z artykułu dowiesz się

• w jaki sposób są udostępniane multimedia na

stronach,

• jakie są zabezpieczenia stron udostępniają-

cych multimedia,

• jak zbudować stronę, aby nie miała wycieku da-

nych.

Co powinieneś wiedzieć

• powinieneś znać obsługę podstawowych aplika-

cji systemowych (np. wget, mplayer),

• powinieneś wiedzieć, czym jest protokół mms,
• powinieneś posiadać podstawową wiedzę

o programowaniu.

background image

Hakowanie serwisów multimedialnych

hakin9 Nr 11/2007

www.hakin9.org

37

wartości zmiennych GET znajdują
się po znaku =. Przyjrzyjmy się od-
powiedniemu ciągowi. Korzystając
z tablicy ASCII dla wartości szes-
nastkowych, możemy stwierdzić, że
\u003d
to nic innego, jak właśnie
poszukiwany przez nas znak rów-
ności. Poprawmy adres i otwórzmy
stronę w przeglądarce. Nastąpiło
przekierowanie. Skorzystajmy zatem
z narzędzia każdemu znanego –
wget – aby pobrać plik strony. Wpisu-
jemy w konsoli:

wget "http://video.google.pl/
videohosted?docid=3418263437173679038"

Teraz możemy przeglądać ukryty
przez programistów kod. Skoro vi-
deo.google.com
używa odtwarzacza
we Flashu, to będzie on mieć praw-
dopodobnie rozszerzenie swf. Wy-
szukajmy taki ciąg w pliku. Zosta-
ła znaleziona funkcja JS (skrót od
JavaScript) o nazwie

insertFlash

HtmlOnLoad()

. Widzimy wywołanie

odtwarzacza z parametrami (może
być również z adresem do filmu).
Zastanawiająca jest zmienna video-
Url
. Wydaje się, że to ona jest wła-
śnie tym, czego szukamy. Zanim jed-
nak adres będzie gotowy do otwo-
rzenia, musimy zmienić znaki ASCII
na normalne.

Napiszmy aplikację, aby zauto-

matyzować ten proces. Wykorzystaj-
my w tym celu język ruby, ponieważ
idealnie nadaje się do tego typu za-
dań. Listing 2 przedstawia kod skryp-
tu. Zapisujemy go np. do google.rb
i uruchamiamy w konsoli:

ruby google.rb adres _ do _ filmu

gdzie „

adres _ do _ filmu

” to np.: http://

video.google.pl/videoplay?docid=
-8303451606856880000.

Streaming

Skoro już znamy samą ideę udo-
stępniania multimediów, możemy
zapoznać się z drugim – po odtwa-
rzaczu we Flashu – sposobem, czyli
zastosowaniem streamingu. Jako
przykład posłuży nam wcześniej
wspomniane iTVP. Przykładowy link
do odtwarzania filmu wygląda na-

Listing 1.

Wynik wyszukania frazy 3rdPartyFrame

function init()

{

sendform

=

ele(

"sendform"

)

;

_lpaf_onResize()

;

showRelated()

;

deleteCookie(

"ResultPageClick"

,

"video.google.pl"

)

;

ele(

'3rdPartyFrame'

).src

=

"http://video.google.pl/videohosted?docid\u003d

3418263437173679038"

+ document.location.hash

;

initPicker()

;

}

Listing 2.

Skrypt wyświetlający źródło filmu na video.google.com

require

'open-uri'

url

=

ARGV

[

0

]

unless

url

=

~

/.+?video\.google\..+?\/

.

+

?\?docid

=

.

+

?$/

puts

"

\n

Zły adres do filmu!"

exit

()

end

open

(

url

)

do

|f|

f.each_line

do

|line|

if

line

=

~

/

"(http:

\/\/

video

\.

google

\.

pl

\/

videohosted

\?

docid.+?)"

/

url_

=

$1

url_.

gsub

!

(

'\u003d'

,

'='

)

f_

=

`wget -O- "

#{url_}"`

f_.each_line

do

|line_|

if

line_

=

~

/&videoUrl\\u003d(http%3A%2F%2Fvp\.video\.google\.com%2Fvideodo

wnload%3Fversion%3D.+?%26secureurl%3D.+?%26begin%3D.+?
%26len%3D.+?%26docid%3D.+?)&/

out

=

$1

out.

gsub

!

(

'%3A'

,

':'

)

out.

gsub

!

(

'%2F'

,

'/'

)

out.

gsub

!

(

'%3F'

,

'?'

)

out.

gsub

!

(

'%26'

,

'&'

)

out.

gsub

!

(

'%3D'

,

'='

)

puts

"

\n\n

Adres do filmu to:

\n\n

"

+

out

+

"

\n\n

"

end

end

end

end

end

Rysunek 1.

Użycie wtyczki Live HTTP Headers dla Firefoksa

background image

hakin9 Nr 11/2007

www.hakin9.org

Atak

38

stępująco: http://www.itvp.pl/player.
html?mode= 0&channel=452&vi-
deo_id=17747.

Zawiera on ID – video_id=17747

który przyda nam się do znalezienia
źródła. Zajrzyjmy do kodu powyżej
podanej strony. Wśród kilku skryp-
tów JS, znajduje się również:

<script type="text/javascript"

src="http:

//img.v2.itvp.pl/portal/js/

player2.js"></script>

Na pewno służy on do obsługi i łado-
wania multimediów. Przyjrzyjmy się
funkcji pokazanej na Listingu 3.

Widzimy tutaj parsowanie URLa

z wysyłaniem danych metodą GET.
Adres do tego pliku będzie wyglądał
tak: http://itvp.pl/pub/stat/common/
materialinfo2?video_id=17747.

Naszym oczom ukazał się prosty

xml, w którym m.in. znajdujemy:

<material>gcd1.b4a204694f9341e0b2427

363fe66aaaa</
material>

Mamy już jakieś informacje, ale zo-
baczmy, jakie jeszcze funkcje zawie-
ra player2.js. Jak wskazuje na to ko-
mentarz, w funkcji

initLoadFormat()

znajduje się część kodu, którego za-
daniem jest lokalizacja materiału (Li-
sting 4).

Postępując analogicznie do czyn-

ności wykonywanych przy

loadVideo()

,

przejrzyjmy plik: http://www.itvp.pl/
pub/sess/common/playrequest2?
material_id=gcd1.b4a204694f9341e
0b2427363fe66aaaa.
Interesująca wy-
daje się linia

request _ id

, która u mnie

prezentuje się następująco:

<request_id>123.123.123.123_4jBSwvuh4S
ZjULvj7wqH65syi1gO2hnS_1183810606378
</request_id>

Wygląda na to, że mamy ID pliku
wideo, ale nie wiemy jeszcze, gdzie
faktycznie się on znajduje. W tym
celu możemy użyć wtyczki Live
HTTP Headers
do popularnej prze-
glądarki Firefox. Można ją pobrać i za-
instalować ze strony https://addons.
mozilla.org/en-US/firefox/addon/3829.

Listing 3.

Funkcja ładująca plik wideo w serwisie iTVP

function loadVideo(videoid, mode)

{

var

bindArgs

=

{

content :

{

video_id : videoid,
mode : mode

}

,

method :

"GET"

,

url:

"/pub/stat/common/materialinfo2"

,

load: function(type, data)

{

processMaterialData(data)

;

}

,

mimetype: "text

/

xml

"

}

;

dojo.io.bind(bindArgs)

;

return

false

;

}

Listing 4.

Dalsza część pliku, który wczytuje dane

//

zlecenie lokalizacji materialu

function initLoadFormat(materialId, mode, formatId)

{

document.getElementById(

'playContentInfo'

).style.display

=

'block'

;

document.getElementById(

'playContent'

).innerHTML

=

'

<

div class

=

"foto"

><

img

src

=

"http:

//

img.v2.itvp.pl

/

video_new

/

images

/

'+current_

video_image.

substring

(

0

,

2

)+

'/uid_'

+current_video_imag

e.

substring

(

0

,current_video_image.

indexOf

(

'.jpg'

))+'_

width_406.jpg

" alt="" /></div>';

var

bindArgs

=

{

content :

{

material_id : materialId,
mode : mode,
format_id : formatId

}

,

method :

"GET"

,

url:

"/pub/sess/common/playrequest2"

,

load: function(type, data)

{

processFormatData(data)

;

}

,

mimetype: "text

/

xml

"

}

;

dojo.io.bind(bindArgs)

;

return

false

;

}

Listing 5.

Część kodu po dekompilacji odtwarzacza

if

(System.capabilities.playerType

==

"External"

)

{

_root.url

=

"http:

//

pyke.dev.dailymotion.com

/

get

/

1

/

320x240

/

flv

/

9375.

flv?key

=

9aee1d1b3fb343b16c13b9cbdd5cb8d012bd3ad

";

_root.preroll

=

"http:

//

mc-

01.

dailymotion.com

/

2

/

dailymotion

/

instream

/

12345

67890

@x08?DMVIDEO

=

3245859

";

_root.postroll

=

"http:

//

mc-

01.

dailymotion.com

/

2

/

dailymotion

/

instream

/

1234

567890

@x08?DMVIDEO

=

3245859

";

_root.allowZoom

=

1

;

}

background image

Hakowanie serwisów multimedialnych

hakin9 Nr 11/2007

www.hakin9.org

39

Włączmy tę funkcję, otwórzmy na
nowo film i zobaczmy, czy zosta-
nie wyświetlony jakiś wpis z plikiem
ze streamingiem (np. z rozsze-
rzeniem asx). Wynik działania został
przedstawiony na Rysunku 1. Fak-
tycznie pojawiło się m.in.: http://
www.itvp.pl/pub/stat/common/itvp.
asx?request_id=80.50.255.74_UJp
BqY8Kwu0X1iYYhNMtYQsqTY29y-
JUl_1184664631558

Sprawdźmy, co dokładnie zawiera

ten plik. Wśród kilku wpisów znajdu-
je się adres: mms://212.191.227.67/
3 1j A 3 y D y r d % 2 bYm w k h y f 5 U -
E9euy%2bwABsYdjc1%2fc6QW-
P%2fg4%2foxU4VuA0dQ6yRU5y-
FVgAaQ1iBf68rbjdriZiyNztUpU0F
HWGLshdEind2NZbH1pWiQzH3mB
Oimwr%2fNuN1EjGN7q8chCTnGD
HZmSDcrIWkQw%3d%3d/1.wmv.

Znaleźliśmy film. Teraz wystar-

czy zmienić znaki ASCII i użyć do
ściągania programu mplayer:

mplayer -dumpstream
-dumpfile wideo.wmv adres

Uwaga: wideo.wmv to plik, do któ-
rego zostanie zapisany film, a ad-
res to link mms. Czasem dojście do
źródła zajmuje dużo czasu, jednak
wynik może być dla nas miłym za-
skoczeniem, np. kiedy w URLu po-
trzebny jest jedynie ID, który wi-
dać w adresie, jaki podaje nam do
filmu serwis. Spróbuję to zobrazo-
wać. Wróćmy do video.google.com
i sprawdźmy go jeszcze raz z wy-
korzystaniem Live HTTP Headers.
Po krótkiej analizie możemy stwier-
dzić, że wystarczy pobrać ID ze
zmiennej docid:

id = url.scan(/http:\/\/video
\.google\..+?\/.+?
\?docid=(-?\d+).{0,}$/).flatten

Końcowy adres może wyglądać na-
stępująco: return http://video.google.
com/videofile/GreetZ_From_def-
c0n.flv?docid="+ id.to_s

Jak widać, usunąłem tutaj pa-

rę zmiennych, zostawiając tylko
jedną. Uzyskałem podobny rezultat,
jak w przykładzie z odtwarzaczem
we Flashu. Nazwa pliku flv w ad-

resie nie musi być zgodna z poda-
ną przez serwis. Pobieranie danych
wymaga od nas nie tylko umiejęt-
nej analizy kodu, ale i logiczne-
go myślenia. Przykładowo link do
filmu na http://wrzuta.pl wygląda
tak: http://username.wrzuta.pl/vid/
file/id.

Jest go bardzo łatwo uzyskać,

ponieważ został podany jako para-
metr już na stronie z odtwarzaczem.
Inaczej jest z plikami dźwiękowymi.
Player nie jest tak samo skonstru-
owany. Możnaby w tej sytuacji użyć
Live HTTP Headers
.

Zastosowanie tej metody byłoby

najłatwiejszym sposobem ściągnię-
cia danych, jednak spróbujmy roz-
wiązać ten problem inaczej. Link do
plików mp3 prezentuje się następu-
jąco: http://username.wrzuta.pl/aud/
file/id
Jak widać vid to skrót od video,
a aud od audio. Zamiana będzie wy-
glądać tak:

• strona – http://cos.wrzuta.pl/au-

dio/cSds126da/tytul_piosenki,

• plik mp3 – http://cos.wrzuta.pl/

aud/file/cSds126da.

Dzięki temu ominęliśmy kilka dzia-
łań. Ostatnią metodą, jaką chciałbym
tu zaprezentować, jest dekompilacja
odtwarzacza. Zaprezentuję ją na przy-
kładzie dailymotion.com.

Player znajduje się pod adresem:

http://www.dailymotion.com/flash/
flvplayer.swf
Na Listingu 5. zosta-
ła przedstawiona część kodu, który
zwrócił mój flash decompiler. Pierw-
szy link prowadzi do reklamy w for-
macie flv. W takich zdekompilowa-
nych plikach można znaleźć cieka-
we informacje na temat budowy róż-
nych serwisów.

Pobieranie a prawo

Pobieranie plików z serwisów, któ-
re je udostępniają, jest legalne tyl-
ko wtedy, gdy serwis poinformu-
je o tym użytkowników. Zazwyczaj
tak się nie dzieje. Wszystkie meto-
dy, które pokazałem wyżej, służą
więc jedynie do poznania zabez-
pieczeń stron, a nie do pozyskiwania
danych.

Zabezpieczenia przed

wyciekiem danych?

Przed ściąganiem multimediów ze
stron praktycznie nie da się zabez-
pieczyć, ponieważ możemy np. na-
grać to, co się dzieje aktualnie na
danym komputerze i zapisać do pli-
ku. Programista serwisu może je-
dynie utrudnić działanie użytkowni-
kom. Dlatego, gdy ktoś tworzy taki
portal, powinien pamiętać o wpro-
wadzeniu sesji, które wygasają po
odtworzeniu pliku i są generowane
za każdym razem. Oprócz tego
można skutecznie ukryć pliki przez
trzymanie ich na różnych serwerach.
Dobrym rozwiązaniem jest rów-
noczesne stosowanie streamingu,
lecz wtedy trzeba posiadać dobry
serwer, aby użytkownicy nie mieli
kłopotu z korzystaniem z danego
portalu. Musimy określić, co jest dla
nas ważniejsze: zabezpieczenie
danych czy zadowolenie odwiedza-
jącego wywołane sprawnym dzia-
łaniem usługi.

Podsumowanie

Zaskakującym faktem jest to, że ser-
wisy należące do takich znanych firm
jak MTV, BBC czy CNN słabo chronią
dane, na które nakładają prawa au-
torskie. Większego niedociągnięcia
dopuścił się AOL (America Online).
Udostępnia on pliki tylko mieszkań-
com Stanów Zjednoczonych, a mimo
to każdy może sprawić (w tym miesz-
kańcy Europy), iż dany film znajdzie
się na jego dysku. Powyższe przykła-
dy pokazały, jak mało dokładnie pro-
jektowane są niektóre witryny. Omi-
janie ograniczeń nakładanych przez
deweloperów portali może okazać się
trudne, ale całkowite zabezpieczenie
się przed tym jest jeszcze bardziej
skomplikowane. l

O autorze

Autor jest programistą PHP w firmie
zajmującej się projektowaniem stron in-
ternetowych. Dodatkowo prowadzi kil-
ka projektów, w tym Ruby Movie Get
(http://movie-get.org) oraz wyklady.net.
Kontakt z autorem:
defc0n@defc0n.iq.pl

background image

www.hakin9.org

hakin9 Nr 11/2007

40

Atak

W

artykule pokażę, jak w Gadu-Gadu
w oknie Tlenofon zamienić oryginal-
ny banner reklamowy na swój, a tak-

że jak w komunikatorze Tlen zmienić stronę Po-
wiadom znajomego
. Jeśli jesteś programistą,
to pewnie zainteresuje Cię informacja, jak się
zabezpieczyć przed innymi osobami grzebiący-
mi w Twoich plikach wykonywalnych.

Aby wykonać ćwiczenia zawarte w tym ar-

tykule będą Tobie potrzebne następujące pro-
gramy: UPX, HexWorkshop (lub inny edytor pli-
ków binarnych), kompilator języka C, Notatnik,
a także komunikatory: Gadu-Gadu i Tlen. Przy-
da się również miejsce na serwerze, gdzie bę-
dzie można wrzucać spreparowane strony.

Parę słów teorii

Aby napisać program, należy posiadać dowol-
ny kompilator. Program piszemy w zwykłym pli-
ku tekstowym, wydając odpowiednie komendy,
które zna dany kompilator. Następnie tak napi-
sany program kompilujemy do pliku wykonywal-
nego (czasami taka kompilacja składa się z kil-
ku etapów, ale to nie jest w tej chwili istotne).
Oczywiście dzisiaj nikt nie pisze programów
w Notatniku, zazwyczaj instalując dany kompi-
lator mamy do dyspozycji wygodny edytor z nim

zintegrowany. Jeśli w napisanym programie jest
jakiś błąd (albo zajdzie potrzeba dodania nowej
funkcjonalności) to należy wyedytować plik źró-
dłowy, a następnie go skompilować (nie może-
my naprawić błędu edytując plik wykonywalny).
Na Listingu 1. przedstawiam najprostszy pro-
gram napisany w języku C (jego celem jest wy-
świetlenie na ekranie napisu Hello world!).

Luki w plikach

wykonywalnych

Damian Daszkiewicz

stopień trudności

Nie trzeba posiadać wielkich zdolności programistycznych,

aby modyfikować pliki wykonywalne. Za pomocą zwykłego

edytora plików binarnych będziesz mógł podmieniać

w programach różnego rodzaju komunikaty.

Z artykułu dowiesz się

• jak edytować pliki wykonywalne,
• jak kompresować/dekompresować pliki wyko-

nywalne,

• jak zniechęcić innych do grzebania w Twoich

plikach wykonywalnych,

• jak usunąć w Gadu-Gadu banner reklamowy

w oknie dialogowym Tlenofon.

Co powinieneś wiedzieć

• znać podstawy dowolnego języka programo-

wania,

• umieć obsługiwać dowolny edytor plików binar-

nych (np. HexWorkshop),

• znać elementarne podstawy HTML'a i PHP.

background image

Luki w plikach wykonywalnych

hakin9 Nr 11/2007

www.hakin9.org

41

Jeśli skompilujesz ten program

do pliku wykonywalnego (np. EXE),
to po otworzeniu tego pliku w Notat-
niku zobaczysz jakieś dziwne krza-
czki (Rysunek 1).

Co te krzaczki oznaczają? Otóż

są to rozkazy dla procesora (po prostu
w języku procesora jest tam zapisa-
ne, że ma wyświetlić na ekranie napis
Hello world!). W pliku źródłowym na-
tomiast też są rozkazy, ale są one za-
pisane w takim formacie, aby człowiek
mógł je zrozumieć. Kompilator przetłu-
maczył plik źródłowy (zrozumiały dla
człowieka) na plik wynikowy (zrozu-
miały dla procesora). Nie istnieją pro-
gramy tłumaczące plik wynikowy na
plik źródłowy (tzn. istnieją, ale tłuma-
czą one do języka asembler, który jest
dość trudny do zrozumienia, natomiast
istniejące programy tłumaczące plik
wykonywalny do języka wyższego po-
ziomu – np. C – są dość nieudolne).

W tym artykule pokażę, że jed-

nak można edytować pliki wykony-
walne – co prawda jest to znacznie
trudniejsze niż edytowanie plików
źródłowych. Zazwyczaj w plikach
wykonywalnych dokonuje się edycji
w celu obejścia jakiegoś zabezpie-
czenia, np. crackerzy starają się wpro-
wadzić w odpowiednim miejscu drob-
ną zmianę, która spowoduje, że pro-
gram w wersji trial zamieni się w peł-
ną wersję. Jednak to, co robią crac-

kerzy, jest nielegalne – a poza tym
wymaga bardzo dużej wiedzy, więc
w tym artykule zajmiemy się prost-
szymi modyfikacjami. Jeśli chciałbyś
w przyszłości zostać crackerem, to
musisz znać bardzo dobrze język ni-
skiego poziomu, jakim jest asembler.

Budowa pliku EXE

Zanim przystąpisz do edycji plików wy-
konywalnych, należy poznać ich budo-
wę. Nie będę tutaj szczegółowo oma-
wiał budowy plików EXE, gdyż jest to
temat na osobną książkę. Podam je-
dynie kilka niezbędnych informacji.

Po otworzeniu pliku wykonywal-

nego w dowolnym edytorze plików bi-
narnych (polecam HexWorkshop) za-
uważysz, że dwa pierwsze bajty pli-
ku EXE to znaki MZ – są to inicjały
pracownika Microsoftu (Mark Zbikow-
ski), który pracował nad plikami wyko-
nywalnymi dla systemu operacyjnego
DOS. W niektórych źródłach wyczy-
tałem, że standard dopuszcza, aby
dwa pierwsze znaki były ze sobą za-

mienione (ZM), jednak nigdy nie spo-
tkałem plików wykonywalnych z ta-
kim nagłówkiem (jeśli zamienię ze so-
bą te dwa znaki to plik EXE się uru-
chomi). Jeśli w danym pliku binarnym
dwa pierwsze znaki do MZ, to z dużym
prawdopodobieństwem można powie-
dzieć, że masz do czynienia z plikiem
wykonywalnym. Oprócz plików EXE
są też inne pliki wykonywalne: DLL
(plik z funkcjami bibliotecznymi), SCR
(wygaszacz ekranu – tak naprawdę to
zwykły plik EXE ze zmienionym roz-
szerzeniem), CPL (aplet panelu ste-
rowania), OCX (plik kontrolki ActiveX).
Pierwsze 27 bajtów pliku EXE zawie-
ra informacje niezbędne dla systemu
operacyjnego do uruchomienia dane-
go programu (np. informacja, pod któ-
rym bajtem znajduje się pierwsza in-
strukcja dla procesora).

Dla systemu operacyjnego Linux

pliki wykonywalne mają trzy pierw-
sze znaki: ELF – w tym artykule sku-
pię się na modyfikowaniu plików wy-
konywalnych dla systemu operacyj-

Listing 1.

Prosty program

w języku C

#include

<stdio.h>

void

main

(

void

)

{

printf

(

"Hello world!"

);

}

Rysunek 1.

Tak wygląda plik EXE

Rysunek 2.

Tak wygląda program HexWorkshop w akcji

background image

hakin9 Nr 11/2007

www.hakin9.org

Atak

42

nego Windows, jednak pod Linuksem
większość rzeczy jest podobnych.

Pliki EXE dla systemu operacyjne-

go Windows są hybrydowe, tj. na po-
czątku znajduje się kod sprawdzający,
z jakiego systemu operacyjnego korzy-
stamy. Jeżeli jest to DOS, to zostanie
wyświetlony komunikat: This program
cannot be run in DOS mode
(lub po-
dobny) i program zakończy swoje dzia-
łanie. Za tym kodem znajduje się dru-
gi nagłówek pliku EXE zaczynający się
od znaków PE, który zawiera podobne
informacje, co poprzednio omawiany
nagłówek zaczynający się od znaków
MZ, ale jest on przeznaczony dla sys-
temu operacyjnego Windows. Nie bę-
dziemy dokładnie wnikać w to, jakie in-
formacje znajdują w tych nagłówkach,
gdyż w dalszej części tego artykułu te
informacje nie będą potrzebne.

Pliki wykonywalne składają się

z sekcji. Są trzy rodzaje sekcji:

• kodu – są to instrukcje przezna-

czone dla procesora,

• dane – daną jest np. ciąg zna-

ków, który ma wyświetlić instruk-
cja printf, daną jest również za-
wartość tablicy lub zmiennej,

• zasobów – jeśli jesteś programi-

stą i miałeś do czynienia z pli-
kami RES, to wiesz dokładnie
co jest umieszczone w tej sekcji.

W sekcji zasobów znajdują się naj-
częściej bitmapy, ikony, kursory my-
szy. Czasami są tam dłuższe ciągi
znaków i okna dialogowe.

W tym artykule skupię się na edycji
sekcji danych.

Skompresowane

pliki EXE

Jeśli dany plik EXE jest skompreso-
wany (spakowany), to nie można przy-
stąpić do jego edycji, należy go wcze-
śniej rozpakować. Spakowane pli-
ki EXE z pozoru wyglądają tak samo
jak niespakowane. Nie trzeba wyko-
nywać specjalnych zabiegów aby taki
plik uruchomić – często nawet nie wie-
my, że taki plik jest skompresowany.

Rysunek 3.

Okno dialogowe powiadom znajomego, tlen.bmp

Rysunek 4.

Okno dialogowe

powiadom znajomego po
modyfikacji

Listing 2.

Zawartość pliku gg.php

<

html

>

<

head

>

<

/head

>

<

body topmargin=

"0"

leftmargin=

"0"

bgcolor=

"#FFFFE6"

frameborder=

"no"

scroll=

"no"

>

<

p

><

img SRC=

"banner.gif"

BORDER=

"0"

WIDTH=

"230"

HEIGHT=

"33"

><

/a

>

<

/p

>

<

/body

>

<

/html

>

Listing 3.

Funkcja kodująca/dekodująca znak algorytmem Cezara

char

cezar

(

char

z

,

int

offset

)

{

int

c

;

if

((

z

>=

'A'

)

&&

(

z

<=

'Z'

))

{

c

=

z

+

offset

;

if

(

c

>

90

)

c

-=

26

;

if

(

c

<

65

)

c

+=

26

;

return

(

c

);

}

else

if

((

z

>=

'a'

)

&&

(

z

<=

'z'

))

{

c

=

z

+

offset

;

if

(

c

>

122

)

c

-=

26

;

if

(

c

<

97

)

c

+=

26

;

return

(

c

);

}

else

return

(

z

);

}

background image

Luki w plikach wykonywalnych

hakin9 Nr 11/2007

www.hakin9.org

43

Pewnie niejednokrotnie miałeś

do czynienia z kompresowaniem pli-
ków za pomocą programu WinZIP
lub WinRAR. Kompresowanie plików
EXE odbywa się na podobnej zasa-
dzie, jednak do tego celu używa się
specjalnego programu. Najpopular-
niejszy program do kompresji plików
wykonywalnych to darmowy UPX (the
Ultimate Packer for eXecutables
).

Taki spakowany plik EXE działa

na tej zasadzie, że zostaje uruchomio-
na funkcja, która wczytuje do pamięci
resztę pliku wykonywalnego i dokonu-
je jego dekompresji w pamięci RAM.
Wszystko dzieje się automatycznie,
więc użytkownik nawet nie zdaje sobie
sprawy, że plik został wcześniej skom-
presowany. Przykładowo plik wykony-
walny komunikatora Tlen zajmuje oko-
ło 1,1 MB, jednak po dekompresji zaj-
muje aż 5 MB. Jedyna zaleta kompre-
sji plików wykonywalnych jest taka, że
taki plik zajmuje mniej miejsca na dys-
ku. Natomiast do wad można zaliczyć
fakt, że taki program się dłużej urucha-
mia, gdyż należy go rozpakować (przy
obecnych osiągach techniki nie jest
to odczuwalne). Kolejna wada (która
w pewnym sensie jest zaletą) jest ta-
ka, że skompresowany plik trudniej
edytować, gdyż przed przystąpieniem
do edycji należy go rozpakować.

Aby spakować plik wykonywalny

(programem UPX), należy w linii ko-

mend napisać:

upx <nazwa _ pliku>

. Że-

by z kolei tak skompresowany plik roz-
pakować, należy w linii komend napi-
sać

upx <nazwa pliku> -d

. Czasami

może wystąpić pewien problem z roz-
pakowaniem pliku – np. starszą wersją
programu UPX nie można rozpakować
plików skompresowanych nowszą wer-
sją aplikacji. Gdy dany plik wykonywal-
ny został skompresowany innym pro-
gramem, to należy znaleźć w Inter-
necie aplikację, która potrafi takie pliki
rozpakowywać (tutaj może się pojawić
problem, gdyż nie każdy producent ta-
kiego oprogramowania udostępnia na-
rzędzia pozwalające na dekompresję
plików skompresowanych danym pro-
gramem). Z mojego doświadczenia
wynika, że większość osób używa do
kompresji plików darmowego programu
UPX, który jest liderem w tej dziedzinie
(gdyż jest darmowy, a oprócz tego ist-
nieje również wersja dla Linuksa).

Modyfikacja

komunikatora Tlen

Po poznaniu niezbędnej teorii czas
na praktyczne ćwiczenie. Zmodyfi-
kujemy komunikator Tlen (podczas
pisania tego artykułu korzystałem
z wersji: 6.00.1.13).

Uwaga: Komunikator nie może

być uruchomiony podczas edycji pli-
ku Tlen.exe!

Przed każdą modyfikacją należy

wykonać kopię pliku, gdyż modyfikując
taki plik można go łatwo uszkodzić. Po
otworzeniu pliku Tlen.exe w edytorze
binarnym zauważysz, że na początku
pliku występują ciągi znaków UPX0,
UPX1. Jest to wskazówka, że plik zo-
stał skompresowany programem UPX.
Należy go rozpakować przed dalszym
przystąpieniem do edycji (po wyedy-
towaniu pliku nie ma potrzeby, aby go
kompresować). Jeśli rozpakujesz plik
i ponownie otworzysz go w edytorze bi-
narnym, to możesz przystąpić do edycji.
W tym ćwiczeniu proponuję odnaleźć
w pliku wszystkie ciągi znaków zaczy-
nające się od http://. W programie He-
xWorkshop należy wybrać opcję Edi-
t|Find
, pojawi się okno dialogowe Find.
W polu Type należy wybrać Text String,
w polu Value należy wpisać poszuki-
wany ciąg znaków, natomiast w Pane-
lu Options wybierz opcję ASCII String.

W pliku Tlen.exe znajdziesz wiele róż-
nych adresów do różnych stron WWW,
jednak jeden jest dość ciekawy: http://
tlen.pl/pow/index.php?od=
(każdy ciąg
znaków kończy się kodem ASCII 0).
Rysunek 2. przedstawia, jak powinien
wyglądać HexWorkshop po wyedyto-
waniu pliku.

Ta strona WWW ładuje się, gdy

w komunikatorze Tlen klikniesz
w przycisk Powiadom znajomego
(ikona strzałki znajdująca się pod
listą kontaktów). Okno dialogowe
przedstawiłem na Rysunku 3.

Możesz zmienić ten adres na ad-

res dowolnej strony WWW (np. alle-
gro.pl
). Jednak tutaj mam dwie uwagi:
po pierwsze sprawdź, czy Twój edytor
pracuje w trybie nadpisywania (wtedy
jeśli wpiszesz jakiś znak, to nadpi-
szesz znak przy którym stoi kursor)
– tryb edycji zmienia się zazwyczaj
klawiszem Insert. Zmodyfikowany
plik wykonywalny nie może mieć in-
nej długości niż plik oryginalny, gdyż
w ten sposób uszkodzisz plik! Druga
uwaga jest taka, że wpisany adres nie
może być dłuższy od tego, który się
w nim oryginalnie znajduje, gdyż się
nie zmieści (nadpiszesz inne informa-
cje znajdujące się w pliku). Jeśli ciąg
znaków jest krótszy od oryginalnego
to znaki, które zostały, zastąp koda-
mi ASCII 0 (kod ASCII 0 informuje, że
w tym miejscu kończy się string).

Gdy dokonasz odpowiedniej zmia-

ny, możesz zamknąć edytor i urucho-
mić komunikator Tlen. Niestety, za-
miast oczekiwanej strony pojawił się
znany z przeglądarki Internet Explo-
rer komunikat: Ten program nie może
wyświetlić strony sieci Web
. Dlaczego
tak jest? Odpowiedź jest prosta: ory-
ginalny adres to: http://tlen.pl/pow/
index.php?od=,
czyli można się domy-
ślić, że po znaku = komunikator dokleja
login użytkownika Tlen.pl i taką stronę
ładuje w tym oknie dialogowym. Przy-
kładowo, jeśli wpisałem adres strony:
http://www.allegro.pl, a mój login w ko-
munikatorze to damiandaszkiewicz, to
komunikator Tlen spróbuje załadować
stronę http://www.allegro.pldamiandas
zkiewicz
. Nie jest to zbyt dobre rozwią-
zanie, ale i na to jest sposób. Otóż na-
leży na swoim serwerze umieścić plik
PHP o dowolnej zawartości (może to

Rysunek 5.

Okno dialogowe

Tlenofon po modyfikacji

background image

hakin9 Nr 11/2007

www.hakin9.org

Atak

44

być nawet statyczny plik HTML). Na-
stępnie modyfikując plik Tlen.exe na-
leży wpisać nazwę pliku z dodaną koń-
cówką ?a= np. http://313.pl/a.php?a=.
Komunikator załaduje wtedy stronę
http://313.pl/a.php?a=damiandaszkie-
wicz
. Oczywiście ten skrypt może zu-
pełnie zignorować zmienną $a. Na Ry-
sunku 4. przedstawiam wygląd zmody-
fikowanego okna dialogowego Powia-
dom znajomego.

Modyfikacja

Gadu-Gadu

Komunikator Gadu-Gadu (w chwili pi-
sania tego artykułu używałem wersji
7.7.0 build 3445) również zawiera pew-
ną lukę. Niestety, w najnowszych wer-
sjach większość ciekawych stringów
jest zakodowanych (pamiętam, że w ro-
ku 2003 w komunikatorze można by-
ło zmienić banner z reklamą w oknie
rozmowy na dowolny banner). Jednak
nie wszystko stracone – można zmie-
nić banner pojawiający się w oknie dia-
logowym Tlenofon. Aby to zrobić, na-
leży otworzyć plik gg.exe (plik nie jest
skompresowany) w edytorze plików bi-
narnych i odnaleźć ciąg znaków: http://
adserver.gadu-gadu.pl/etphonebanner.
asp?uid=
i zamienić go na dowolny
ciąg znaków wskazujący na plik PHP
znajdujący się na jakimś serwerze (do

tego ciągu znaków jest doklejany nu-
mer GG osoby korzystającej z Ga-
du-Gadu, więc ciąg znaków powinien
się kończyć sekwencją „?a=”, np. http://
www.313.pl/gg.php?a=
). Natomiast plik
gg.php powinien mieć następującą za-
wartość (patrz Listing 2.):

Na Rysunku 5. przedstawiłem

efekt osiągnięty po dokonaniu edycji
pliku gg.exe.

Zagrożenia

Tak spreparowany komunikator moż-
na podrzucić na stronę WWW, nato-
miast w oknie dialogowym Powiadom
znajomego może ładować się sprepa-
rowana strona WWW mająca na ce-
lu zbieranie adresów emailowych. In-
nym zagrożeniem może być ładowa-
nie strony, która próbuje zainstalować
złośliwe oprogramowanie (np. wirusa).
Jest to tym bardziej niebezpieczne, że
komunikator Tlen tuż po instalacji za-
chęca użytkownika, aby powiadomił
znajomych, że używa tej aplikacji.

Jak się przed tym bronić?

Jeśli jesteś programistą, to dobrze by
było w jakiś sposób zakodować klu-
czowe stringi. Niestety, po skompilo-
waniu programu w pliku wykonywal-
nym wszelkie stringi są zapisywane w
zwykłym formacie tekstowym. Do za-
kodowania stringów można użyć do-
wolnego algorytmu. Najbardziej znany
algorytm kodowania to szyfr Cezara
(Juliusz Cezar kodował listy w ten spo-
sób, że pisał znak znajdujący się o 3
pozycje dalej w alfabecie niż znak któ-
ry chciał napisać, np. zamiast a pisał
d, zamiast b pisał e itp.). Jest to bardzo
prosty szyfr, niemający zastosowania
w profesjonalnych aplikacjach krypto-
graficznych. Jednak zakodowanie klu-

czowych stringów w aplikacji nawet
tak banalnym algorytmem spowodu-
je, że większość domorosłych cracke-
rów nie wyłowi z aplikacji przydatnych
stringów. Oczywiście nic nie stoi na
przeszkodzie, aby kodować stringi ja-
kimś wymyślniejszym sposobem.

Listing 3. przedstawia funkcję, która

dany znak koduje bądź dekoduje szy-
frem Cezara (jeśli jako offset podasz
liczbę dodatnią to zakodujesz znak, na-
tomiast podając offset ujemny odkodu-
jesz go). Ponieważ alfabet składa się z
26 znaków, więc może być 25 różnych
szyfrów Cezara. Niestety, funkcja ta nie
koduje nic innego poza małymi i wielki-
mi literami, jednak celem tego artykułu
nie jest omawianie wyjątkowo mocnych
algorytmów kryptograficznych, a jedy-
nie zasygnalizowanie problemu z nie-
zakodowanymi stringami.

Można również zakodować plik

EXE programem AsProtect (program
działa podobnie jak UPX, ale oprócz
kompresji pliku EXE jest możliwość
dodania kodu, który spowoduje, że
program będzie się uruchamiał np.
tylko przez pierwsze 30 dni). Program
kosztuje 99 lub 299 dolarów w zależ-
ności od rodzaju licencji.

Jeśli kwota 99 dolarów wyda-

je się zbyt duża, można plik wykony-
walny spakować darmowym progra-
mem UPX, a następnie w edytorze
binarnym zamienić trzy pierwsze wy-
stępujące na początku pliku ciągi zna-
ków UPX jakimiś innymi znakami (np.
abc). Z moich obserwacji wynika, że
taki plik będzie działał normalnie, na-
tomiast utrudni identyfikację programu,
jakim został on spakowany. Natomiast
przy próbie dekompresji programem
UPX pojawi się komunikat: upx: a.exe:
CantUnpackException: file is modified/
hacked/protected; take care!!!

Podsumowanie

Jeśli piszesz program, który będzie
wyświetlał banner reklamowy, posta-
raj się zabezpieczyć program kodując
kluczowe stringi lub skorzystaj z odpo-
wiedniego oprogramowania (np. As-
Protect). Jeśli zignorujesz tę lukę, mo-
żesz być pewien, że szybko powsta-
ną programy usuwające z Twojej apli-
kacji bannery reklamowe. l

O autorze

Damian Daszkiewicz jest samoukiem
od wielu lat interesującym się informa-
tyką i e-biznesem. Obecnie studiuje na
Politechnice Rzeszowskiej na kierunku
Informatyka. W roku 2003 wydawnictwo
Helion wydało jego książkę: Vademe-
cum hakera. Edycja plików binarnych
.
Kontakt z autorem:
damian@daszkiewicz.net.

W Sieci

• komunikator Gadu-Gadu: http://gadu-gadu.pl/,
• komunikator Tlen: http://www.tlen.pl,
• HexWorkshop: http://www.bpsoft.com,
• UPX: http://upx.sourceforge.net,
• AsProtect: http://www.aspack.com/,
• książka Vademecum Hakera. Edycja plików binarnych: http://helion.pl/ksiazki/

vahace.htm,

• dwa krótkie artykuły, które są uzupełnieniem tego tekstu:

http://www.daszkiewicz.net/uzupelnienia.php.

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 – sprze-

daż, dystrybucja oraz import na zamó-

wienie. W ofercie programy autorstwa

ponad dwustu firm z całego świata. Za-

praszamy do współpracy – zostań na-

szym klientem lub dostawcą. Chcesz

kupić oprogramowanie i nie możesz

znaleźć polskiego dostawcy? Skontak-

tuj się z nami? sprowadzimy nawet po-

jedyncze licencje.

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 11/2007

46

Atak

F

unkcje skrótu (znane też pod innymi na-
zwami, m. in. jako funkcje mieszające al-
bo hashujące) odwzorowują zbiory o do-

wolnej wielkości (często dużej) w zbiór o stałej
wielkości. W zależności od zastosowania stawia
im się szereg dodatkowych wymagań. Zacznij-
my od zastosowań niezwiązanych bezpośrednio
z bezpieczeństwem informatycznym. Pierwsze
z nich to tablice asocjacyjne. Są to takie struk-
tury danych, które wiążą klucz z odpowiadającą
mu wartością. Miłą własnością tych struktur jest
bardzo krótki czas dostępu do danych. Inne za-
stosowania funkcji skrótu to wszelkiego rodzaju
weryfikacja poprawności danych (np. przesyła-
nych potencjalnie stratnym kanałem).

Kryptograficzne funkcje skrótu

Od kryptograficznej funkcji skrótu wymaga się
już znacznie więcej niż od zwykłej funkcji skró-
tu. Dodatkowe wymagania dotyczą natural-
nie odporności na manipulacje zagrażające
bezpieczeństwu opartych na nich protokołów.
Dwie najpopularniejsze rodziny kryptograficz-
nych funkcji skrótu to Message Digest oraz Se-
cure Hash Algorithm
. W Tabeli 1. zawarto naj-
bardziej znane algorytmy z tych rodzin wraz
z długością tworzonych przez nie skrótów.

Dobra kryptograficzna funkcja skrótu po-

winna zapewniać następujące cechy:

• odwzorowywać zbiór o dowolnej długości

w zbiór o stałej długości (zwany skrótem kry-
ptograficznym albo hashem),

• drobna zmiana wejścia (np. zmiana jedne-

go bitu) powinna skutkować istotną zmianą
wyjścia,

• odtworzenie wejścia na podstawie wyjścia

(odwracalność) powinno być możliwie trud-
ne (najlepiej niemożliwe). Nazywamy tę ce-
chę także odpornością na tzw. ataki prze-
ciwdziedzinowe,

Kryptograficzne

funkcje skrótu

Cezary G. Cerekwicki

stopień trudności

Kryptograficzne funkcje skrótu są bardzo ważnym prymitywem

kryptograficznym, służącym jako istotny element wielu

protokołów i algorytmów. Ich nieodwracalność to warunek

konieczny bezpieczeństwa prawie każdego działającego obecnie

systemu informatycznego.

Z artykułu dowiesz się

• jak działają najpopularniejsze kryptograficzne

funkcje skrótu,

• jakie typy ataków im zagrażają.

Co powinieneś wiedzieć

• wskazane jest rozumienie podstaw terminologii

kryptologicznej, elementarna znajomość mate-
matyki i informatyki.

background image

Kryptograficzne funkcje skrótu

hakin9 Nr 11/2007

www.hakin9.org

47

• odnalezienie dla danego pliku

drugiego (różnego od niego) pli-
ku, który będzie mieć taki sam
skrót kryptograficzny, powinno
być możliwie trudne. Tę cechę
nazywamy odpornością na atak
drugiej przeciwdziedziny,

• kiedy moc przeciwdziedziny funk-

cji jest większa niż jej dziedzina,
funkcja na pewno nie będzie róż-
nowartościowa, a więc będą się w
niej zdarzały kolizje. Dobra funkcja
skrótu kryptograficznego powin-
na mieć owe kolizje porozrzucane
możliwie losowo, aby nie dało się
ich zbyt łatwo znajdować. Nazywa-
my tę cechę także odpornością na
tzw. ataki kolizyjne. Tu ciekawost-
ka: aby zapewnić tę własność,
wyjście funkcji skrótu musi być aż
dwukrotnie większe, niż jest to nie-
zbędne dla zapewnienia odporno-
ści na ataki przeciwdziedzinowe,

• funkcja musi być deterministyczna,
• powinno dać się ją w miarę szyb-

ko obliczyć.

Paradoks urodzin

Podchwytliwe pytanie: jeśli w danym
pokoju znajdą się 23 przypadkowe
osoby, to jakie jest prawdopodobień-
stwo, że dowolne dwie z nich mają
urodziny tego samego dnia w tym
samym miesiącu? Otóż okazuje się,
że zaskakująco duże, bo aż 50%.
Nie jest to paradoks w klasycznym
tego słowa znaczeniu, tzn. nie jest
to twierdzenie prowadzące do sprze-
czności. Jego paradoksalność leży
w sprzeczności z intuicją, wedle któ-
rej taka kolizja dnia urodzin jest dużo
mniej prawdopodobna. Ma to swoje
implikacje dla funkcji skrótu. Mogło-
by się wydawać, że liczba unikalnych
n-bitowych skrótów, które wygeneru-
jemy przed napotkaniem kolizji, bę-
dzie rzędu 2^n – lecz w rzeczywisto-
ści będzie to raczej 2^(n/2).

Ataki kolizyjne,

przez wydłużenie

Istotą ataków kolizyjnych jest odnajdy-
wanie takich kolizji funkcji skrótu, które
będą pozwalały na oszukanie jakie-
goś mechanizmu ochronnego. Ataki dru-
giej przeciwdziedziny możemy trakto-
wać jako wariant ataków kolizyjnych,

gdyż cel jest taki sam (znalezienie wia-
domości z kolizją skrótu), różna jest
tylko wartość wyjściowa (wiadomość
w przypadku ataku drugiej przeciw-

dziedziny i skrót w przypadku ataku ko-
lizyjnego). Ataki przez wydłużenie to
kolejny wariant ataku kolizyjnego. Po-
legają one na doawaniu redundantnej

Listing 1.

Pseudokod MD5

//

r

oznacza

liczb

ę

przesuni

ęć

na

rund

ę

r

[

0

..

15

]

:=

{

7

,

12

,

17

,

22

,

7

,

12

,

17

,

22

,

7

,

12

,

17

,

22

,

7

,

12

,

17

,

22

}

r

[

16

..

31

]

:=

{

5

,

9

,

14

,

20

,

5

,

9

,

14

,

20

,

5

,

9

,

14

,

20

,

5

,

9

,

14

,

20

}

r

[

32

..

47

]

:=

{

4

,

11

,

16

,

23

,

4

,

11

,

16

,

23

,

4

,

11

,

16

,

23

,

4

,

11

,

16

,

23

}

r

[

48

..

63

]

:=

{

6

,

10

,

15

,

21

,

6

,

10

,

15

,

21

,

6

,

10

,

15

,

21

,

6

,

10

,

15

,

21

}

// Jako stałych użyjemy binarnych części stałych sinusów liczb całkowitych

for

i

from

0

to

63

k

[

i

]

:=

floor

(

abs

(

sin

(

i

+

1

))

×

(

2

pow

32

))

// Inicjalizacja zmiennych

var

int

h0

:=

0x67452301

var

int

h1

:=

0xEFCDAB89

var

int

h2

:=

0x98BADCFE

var

int

h3

:=

0x10325476

// Obróbka wstępna

do

łą

cz

bit

1

do

wiadomo

ś

ci

do

łą

cz

tyle

bit

ó

w

0

”,

aby

d

ł

ugo

ść

wiadomo

ś

ci

w

bitach

by

ł

a

kongruentna

do

448

(

mod

512

)

do

łą

cz

bit

oryginalnej

wiadomo

ś

ci

(

czyli

tej

jeszcze

przed

dwiema

poprzednimi

operacjami

)

jako

64

-

bitow

ą

liczb

ę

ca

ł

kowit

ą

zakodowan

ą

jako

little

-

endian

.

// Najpierw definicja funkcji leftrotate

leftrotate

(

x

,

c

)

return

(

x

<<

c

)

or

(

x

>>

(

32

-

c

));

// Przez „<<” rozumiemy przesunięcie bitowe z zawinięciem
// Przetwarzaj wiadomość w blokach 512-bitowych

dla

ka

ż

dego

512

-

bitowego

bloku

wiadomo

ś

ci

{

podziel

blok

na

16

32

-

bitowych

s

łó

w

little

-

endian

w

[

i

]

,

0

?

i

?

15

// Inicjuj wartości skrótu dla tego bloku:

int

a

:=

h0

int

b

:=

h1

int

c

:=

h2

int

d

:=

h3

// Główna pętla

for

i

from

0

to

63

{

if

0

?

i

?

15

then

f

:=

(

b

and

c

)

or

((

not

b

)

and

d

)

g

:=

i

else

if

16

?

i

?

31

f

:=

(

d

and

b

)

or

((

not

d

)

and

c

)

g

:=

(

5

×

i

+

1

)

mod

16

else

if

32

?

i

?

47

f

:=

b

xor

c

xor

d

g

:=

(

3

×

i

+

5

)

mod

16

else

if

48

?

i

?

63

f

:=

c

xor

(

b

or

(

not

d

))

g

:=

(

7

×

i

)

mod

16

}

temp

:=

d

d

:=

c

c

:=

b

b

:=

b

+

leftrotate

((

a

+

f

+

k

[

i

]

+

w

[

g

])

,

r

[

i

])

a

:=

temp

// Dodaj skrót tego bloku do wyniku:

h0

:=

h0

+

a

h1

:=

h1

+

b

h2

:=

h2

+

c

h3

:=

h3

+

d

}

int

skr

ó

t

:=

h0

do

łą

cz

h1

do

łą

cz

h2

do

łą

cz

h3

//

wyra

ż

amy

to

jako

little

-

endian

background image

hakin9 Nr 11/2007

www.hakin9.org

Atak

48

informacji do wiadomości w celu gene-
rowania kolejnych skrótów i liczeniu na
to, że któryś z nich będzie kolidował ze
skrótem oryginalnym.

Przykład 1

Wiele mechanizmów aktualizacji opro-
gramowania (polegających na ściąga-
niu z sieci patchy lub nowszych wer-
sji) używa kryptograficznych funkcji
skrótu dla potwierdzenia, że autor po-
prawki jest w rzeczywistości tym, za
kogo się podaje. Możemy sobie ła-
two wyobrazić wykorzystanie takie-
go mechanizmu do podrzucenia ko-
muś konia trojańskiego (np. Keylogge-
ra). Bobek ściąga kod, ale też pobie-
ra ze strony WWW skrót kryptograficz-
ny, po czym oblicza skrót dla pobrane-
go pliku (oczywiście używając takie-
go samego algorytmu). Jeśli są ta-
kie same, to uznaje ściągnięty kod za
autentyczny. Tu istotna uwaga: wiele
automatycznych mechanizmów aktu-
alizacji ma podobną procedurę zaszytą
w sobie. Jak więc można, pomimo za-
stosowania kryptograficznych funkcji
skrótu, jednak ominąć to zabezpiecze-
nie? Alicja pisze swojego trojana i do-
łącza go do autentycznego kodu (bę-
dziemy go nazywać nosicielem). Ata-
kowanym kodem może być aktualiza-
cja Windows, najnowszy kernel Linuk-
sa itd. Wybór nosiciela jest o tyle waż-
ny, że nasz spreparowany kod będzie
miał taki dostęp do systemu, jak nosi-
ciel. Należy zatem podczepić się pod
aplikację o wystarczających dla na-
szego podstępnego planu uprawnie-
niach, a jednocześnie nie zabezpie-
czoną zbyt starannie (np. jakimś do-
datkowym mechanizmem, prócz zwy-
kłego skrótu kryptograficznego). By-
łoby kolosalnym zbiegiem okoliczno-
ści, gdyby skrót kryptograficzny spre-
parowanego przez Alicję kodu był
akurat równy skrótowi kodu legalne-
go. Takiego szczęścia (lub nieszczę-
ścia, z punktu widzenia Bobka) ra-
czej mieć nie będziemy, ale szczęściu
można dopomóc. Zauważmy, że pli-
ków o identycznym działaniu, ale róż-
nej zawartości, może być bardzo du-
żo (teoretycznie nieskończenie wiele).
A więc dołączamy do atakowanego
archiwum całkowicie zbędny plik, któ-
rego jedynym celem jest różnicowa-

Listing 2a.

Pseudokod SHA-2

//

Inicjalizacja

zmiennych

// (pierwsze 32 bity części ułamkowych pierwiastków kwadratowych pierwszych

ośmiu liczb pierwszych 2..19):

h0

:=

0x6a09e667

h1

:=

0xbb67ae85

h2

:=

0x3c6ef372

h3

:=

0xa54ff53a

h4

:=

0x510e527f

h5

:=

0x9b05688c

h6

:=

0x1f83d9ab

h7

:=

0x5be0cd19

// Inicjalizacja tablicy stałych
// (pierwsze 32 bity części ułamkowych pierwiastków trzeciego stopnia

pierwszych 64 liczb pierwszych 2..311):

k

[

0

..

63

]

:=

0x428a2f98

,

0x71374491

,

0xb5c0fbcf

,

0xe9b5dba5

,

0x3956c25b

,

0x59f111f1

,

0x923f82a4

,

0xab1c5ed5

,

0xd807aa98

,

0x12835b01

,

0x243185be

,

0x550c7dc3

,

0x72be5d74

,

0x80deb1fe

,

0x9bdc06a7

,

0xc19bf174

,

0xe49b69c1

,

0xefbe4786

,

0x0fc19dc6

,

0x240ca1cc

,

0x2de92c6f

,

0x4a7484aa

,

0x5cb0a9dc

,

0x76f988da

,

0x983e5152

,

0xa831c66d

,

0xb00327c8

,

0xbf597fc7

,

0xc6e00bf3

,

0xd5a79147

,

0x06ca6351

,

0x14292967

,

0x27b70a85

,

0x2e1b2138

,

0x4d2c6dfc

,

0x53380d13

,

0x650a7354

,

0x766a0abb

,

0x81c2c92e

,

0x92722c85

,

0xa2bfe8a1

,

0xa81a664b

,

0xc24b8b70

,

0xc76c51a3

,

0xd192e819

,

0xd6990624

,

0xf40e3585

,

0x106aa070

,

0x19a4c116

,

0x1e376c08

,

0x2748774c

,

0x34b0bcb5

,

0x391c0cb3

,

0x4ed8aa4a

,

0x5b9cca4f

,

0x682e6ff3

,

0x748f82ee

,

0x78a5636f

,

0x84c87814

,

0x8cc70208

,

0x90befffa

,

0xa4506ceb

,

0xbef9a3f7

,

0xc67178f2

// Przetwarzanie wstępne

do

łą

cz

bit

1

do

wiadomo

ś

ci

do

łą

cz

k

bit

ó

w

0

”,

gdzie

k

to

minimalna

liczba

>=

0

taka

, ż

e

d

ł

ugo

ść

w

bitach

wynikowej

wiadomo

ś

ci

jest

kongruentna

do

448

(

mod

512

)

do

łą

cz

bit

oryginalnej

wiadomo

ś

ci

(

czyli

tej

jeszcze

przed

dwiema

poprzednimi

operacjami

)

jako

64

-

bitow

ą

liczb

ę

ca

ł

kowit

ą

zakodowan

ą

jako

little

-

endian

// Przetwarzaj wiadomość w blokach 512-bitowych

dla

ka

ż

dego

512

-

bitowego

bloku

wiadomo

ś

ci

{

podziel

blok

na

16

32

-

bitowych

s

łó

w

little

-

endian

w

[

i

]

,

0

?

i

?

15

// Rozszerz 16 32-bitowych słów na 64 32-bitowe słowa

for

i

from

16

to

63

s0

:=

(

w

[

i

-

15

]

rightrotate

7

)

xor

(

w

[

i

-

15

]

rightrotate

18

)

xor

(

w

[

i

-

15

]

rightshift

3

)

s1

:=

(

w

[

i

-

2

]

rightrotate

17

)

xor

(

w

[

i

-

2

]

rightrotate

19

)

xor

(

w

[

i

-

2

]

rightshift

10

)

w

[

i

]

:=

w

[

i

-

16

]

+

s0

+

w

[

i

-

7

]

+

s1

// Inicjalizuj wartość skrótu dla tego bloku

a

:=

h0

b

:=

h1

c

:=

h2

d

:=

h3

e

:=

h4

f

:=

h5

g

:=

h6

h

:=

h7

// Główna pętla

for

i

from

0

to

63

{

s0

:=

(

a

rightrotate

2

)

xor

(

a

rightrotate

13

)

xor

(

a

rightrotate

22

)

maj

:=

(

a

and

b

)

xor

(

a

and

c

)

xor

(

b

and

c

)

background image

Kryptograficzne funkcje skrótu

hakin9 Nr 11/2007

www.hakin9.org

49

nie skrótów kryptograficznych. Może
my to opisać następującym algoryt-
mem:

• losujemy zawartość (i/lub dłu-

gość) zbędnego pliku,

• dołączamy go do patcha, pakuje-

my całość,

• liczymy z wyniku skrót kryptogra-

ficzny,

• jeśli jest on równy skrótowi legalne-

go kodu, ogłaszamy zwycięstwo,

• w przeciwnym wypadku skacze-

my do punktu 1.

Jak widać, jest to algorytm działający
w paradygmacie brutalnym, polegają-
cy na losowym przeszukiwaniu prze-
strzeni dziedziny funkcji skrótu w na-
dziei na znalezienie właściwej kolizji.
Jeśli się uda, będziemy mogli podło-

żyć spreparowany plik i mieć pew-
ność, że zostanie rozpoznany jako le-
galny patch. Na podstawie paradoksu
dnia urodzin możemy oczekiwać, że ja-
kaś sensowna kolizja trafi się relatyw-
nie szybko (a w każdym razie szybciej
niż w czasie 2^n, gdzie n jest ilością bi-
tów przeciwdziedziny; prędzej będzie
to 2^(n/2), a i to przy dość mało re-
alistycznych założeniach wstępnych).
Jeśli znana jest jakaś słabość kolizyj-
na użytej funkcji skrótu, możemy spró-
bować to wykorzystać do sprytniejsze-
go przeszukiwania przestrzeni dziedzi-
ny funkcji. Dla niektórych algorytmów
(np. MD5) znane są dość szybkie al-
gorytmy wyszukiwania kolizji. Mając
taki algorytm, możemy najpierw zna-
leźć możliwie dużo kolizji, a następnie
próbować dopasować nasz spreparo-
wany kod do którejś z nich.

Tabela 1.

Wybrane funkcje skrótu oraz długości generowanych przez nie

skrótów

Algorytm funkcji skrótu

Długość skrótu w bitach

Message Digest (MD4)

128

MD5

128

Secure Hash Algorithm 1 (SHA-1)

160

SHA-256

256

SHA-384

384

SHA-512

512

Listing 2b.

Pseudokod SHA-2

t2

:=

s0

+

maj

s1

:=

(

e

rightrotate

6

)

xor

(

e

rightrotate

11

)

xor

(

e

rightrotate

25

)

ch

:=

(

e

and

f

)

xor

((

not

e

)

and

g

)

t1

:=

h

+

s1

+

ch

+

k

[

i

]

+

w

[

i

]

h

:=

g

g

:=

f

f

:=

e

e

:=

d

+

t1

d

:=

c

c

:=

b

b

:=

a

a

:=

t1

+

t2

}

// Dołącz to do całego skrótu

h0

:=

h0

+

a

h1

:=

h1

+

b

h2

:=

h2

+

c

h3

:=

h3

+

d

h4

:=

h4

+

e

h5

:=

h5

+

f

h6

:=

h6

+

g

h7

:=

h7

+

h

}

// Wygeneruj ostateczną wartość skrótu (w notacji big-endian):

skr

ó

t

=

h0

do

łą

cz

h1

do

łą

cz

h2

do

łą

cz

h3

do

łą

cz

h4

do

łą

cz

h5

do

łą

cz

h6

do

łą

cz

h7

background image

hakin9 Nr 11/2007

www.hakin9.org

Atak

50

Przykład 2

Dysponujemy dokumentem wery-
fikowanym skrótem i chcemy pod-
łożyć inny dokument, który będzie
mieć taki sam skrót. Na przykład Ali-
cja chciałaby zwędzone komuś refe-
rencje od poważnej firmy sfałszować
tak, aby Bobek myślał, że dotyczą
właśnie jej. W tym celu Alicja prepa-
ruje możliwie dużą liczbę dokumen-
tów, które mają następujące cechy:

• są w miarę wierną kopią orygina-

łu z podmienionymi danymi,

• są semantycznie tożsame, ale róż-

nią się na minimum jednym bicie.

Alicja może tworzyć takie warianty po-
przez dodawanie niewidocznych zna-
ków (np. spacji na końcach linii, za-
miany spacji na tabulacje i odwrotnie),
zamiany słów na ich synonimy, zmia-
nę szyku zdania itd. Następnie Alicja
generuje kryptograficzne skróty spre-
parowanych wariantów i porównuje je
z oryginałem. Jeśli będą takie same,
może zatańczyć taniec radości. Za-
uważmy, że trudność przeprowadze-
nia ataku kolizyjnego jest wprost pro-
porcjonalna do mocy przeciwdziedzi-
ny funkcji skrótu. Innymi słowy, im
większy jest generowany skrót, tym
trudniej jest znaleźć kolizję.

Ataki przeciwdziedzinowe

Atak przeciwdziedzinowy to (bardzo
ambitna) próba odtworzenia wejścia
funkcji skrótu na podstawie jej wyj-
ścia. Uważnemu Czytelnikowi od razu
przyjdzie na myśl, że z faktu koniecz-
ności istnienia kolizji wynika, że każdy
skrót odpowiada nie jednemu wejściu,
ale zbiorowi wejść (i to w dodatku teo-

retycznie nieskończenie dużemu). Ata-
ki przeciwdziedzinowe są – a raczej
byłyby – bardzo groźne, bo na nieod-
wracalności kryptograficznych funkcji
skrótu opiera się bezpieczeństwo wie-
lu algorytmów i ogromnej ilości syste-
mów. Byłyby, ponieważ efektywne ata-
ki przeciwdziedzinowe nie są znane
dla żadnej popularnej funkcji skrótu.
Wszystkie głośnio oznajmiane złama-
nia MD5, czy SHA-1 to były wyłącznie
ataki kolizyjne. Efektywny atak prze-
ciwdziedzinowy byłby zabójczy choć-
by dla mechanizmu składowania haseł
wykorzystywanego m. in. w Linuksie.

Kryptograficzne

funkcje skrótu

Najbardziej znane rodziny kryptogra-
ficznych funkcji skrótu to Message
Digest
oraz Secure Hash Algorithm.

Message Digest

MD5 to jedna z najpopularniejszych
kryptograficznych funkcji skrótu, acz-
kolwiek w ostatnich latach gwałtow-
nie tracąca na popularności ze wzglę-
du na liczne (i, co gorsza, udane) ataki
kolizyjne. Funkcję tę zaprojektował Ro-
nald Rivest (tak, to ten od RSA) w 1991
roku. W 1996 oraz w 2004 roku odkry-
to poważne podatności MD5, w związ-
ku z czym algorytm ten jest uważany
za nieprzydatny dla nowo projektowa-
nych aplikacji. Oczywiście dotyczy to
tylko aplikacji, w przypadku których
niezbędna jest odporność na ataki ko-
lizyjne. MD5 ciągle daje się bezpiecz-
nie stosować tam, gdzie potrzebna jest
tylko odporność na ataki przeciwdzie-
dzinowe, choć nawet tam jest to algo-
rytm obecnie unikany. Niemniej trze-
ba go znać choćby dlatego, że ciągle
funkcjonuje mnóstwo systemów infor-
matycznych, w których MD5 stanowi
jeden ze składników systemu bezpie-
czeństwa. Listing 1. prezentuje algo-
rytm MD5 w pseudokodzie. Wszystkie
zmienne to 32-bitowe słowa bez zna-
ku. Stosowana jest wyłącznie arytme-
tyka modulo 2^32, zatem operacja 0-1
nie spowoduje rzucenia wyjątku wyj-
ścia poza zakres, tylko zawinięcie licz-
by do jej maksymalnej wartości. Dekla-
rujemy dwie tablice int[64] r oraz k.

Jak widać, MD5 wykonuje tylko

jedno przejście przez wiadomość

źródłową, co uważa się za podsta-
wową wadę tego algorytmu.

Secure Hash Algorithm

Funkcje z rodziny SHA powstały
w National Security Agency i są ame-
rykańskim standardem rządowym.
Funkcje zwracające skrót dłuższy niż
200 bitów określane są jako SHA-2.
Pseudokod SHA-2 przedstawiono na
Listingu 2. Wszystkie zmienne to 32-
bitowe słowa bez znaku. Stosowa-
na jest wyłącznie arytmetyka modu-
lo 2^32, zatem operacja 0-1 nie spo-
woduje rzucenia wyjątku wyjścia po-
za zakres, tylko zawinięcie liczby do
jej maksymalnej wartości.

Rightrotate jest analogiczne do Le-

ftrotate; Rightshift również – z tym, że
tu przesunięcie bitowe jest bez zawi-
nięcia. SHA-2 to ciągle (jak na stan-
dardy kryptograficzne) dość młoda ro-
dzina funkcji. Dla SHA-256 i SHA-512
nie znaleziono jak dotąd żadnego efek-
tywnego ataku kolizyjnego. Być może
w końcu zostanie on odkryty, ale szan-
se na to, że będzie mniej złożony niż
ataki na SHA-1 są raczej minimalne.
Dlatego na chwilę obecną w każdej
aplikacji, gdzie bezpieczeństwo jest
kwestią życia lub śmierci, warto użyć
którejś z funkcji z rodziny SHA-2. Nie
znaczy to, że SHA-1 jest mało bez-
pieczna. Najlepszy atak kolizyjny na
SHA-1 wymaga w przybliżeniu 2^69
iteracji, co jest liczbą astronomiczną,
więc zrealizowanie ataku na normal-
nym komputerze nie wchodzi w grę.
Niemniej po pierwsze, niektórzy napast-
nicy mogą dysponować znacznie wy-
dajniejszym środowiskiem obliczenio-
wym, a po drugie, zgodnie z prawem
Moore'a moc procesorów podwaja się
co 18 miesięcy, zatem opieranie się na
SHA-1 w nowo projektowanych aplika-
cjach generalnie nie jest zalecane.

Podsumowanie

W tekście opisano najważniejsze ce-
chy funkcji skrótu oraz dwie najpopu-
larniejsze rodziny algorytmów gene-
rujących skróty kryptograficzne – Mes-
sage Digest
oraz Secure Hash Al-
gorithm.
Przedstawiono charaktery-
stykę ataków na funkcje skrótu wraz
z przykładami nadużyć oraz algoryt-
mów wyszukujących kolizje. l

O autorze

Autor jest z wykształcenia informaty-
kiem i politologiem. Pracował jako pro-
jektant, programista, administrator, kon-
sultant, tłumacz, koordynator międzyna-
rodowych projektów, dziennikarz i publi-
cysta. Pisał programy w dziesięciu języ-
kach programowania (od asemblerów
po języki skryptowe), w czterech sys-
temach operacyjnych, na dwóch platfor-
mach sprzętowych. Kontakt do autora:
cerekwicki@tlen.pl

background image

Kryptograficzne funkcje skrótu

hakin9 Nr 11/2007

www.hakin9.org

51

background image

www.hakin9.org

hakin9 Nr 11/2007

52

Obrona

A

dministratorzy chcą jednak coraz le-
piej zabezpieczać swoje Sieci i sys-
temy komputerowe przed takimi ata-

kami. Najbardziej obszerny i skomplikowany
jest temat zabezpieczeń technicznych zawar-
tych w oprogramowaniu,sprzęcie kompute-
rowym i urządzeniach telekomunikacyjnych.
Trudno jest wykryć atak w jego pierwszych fa-
zach tym bardziej jeśli nasz system nie posia-
da odpowiedniego zabezpieczenia i bazuje tyl-
ko na programowym firewallu. Przeglądanie lo-
gów serwera w celu znalezienia czegoś podej-
rzanego jest czasochłonnym i żmudnym zaję-
ciem.

Strategie i warstwy

Istnieją różne strategie ochrony systemów in-
formatycznych. Jedna z nich to tradycyjna stra-
tegia opierająca się o analizę ryzyka. Identy-
fikuje ona obszary systemu, w których wyma-
gane jest wprowadzenie zabezpieczeń. Druga
strategia, oparta na metodach praktycznych,
nazywana jest w skrócie SKiP od sformułowa-
nia Security Knowledge in Practice. Strategia
została opracowana przez CERT i zakłada, że
system powinien być przygotowany do obsłu-
gi nadużyć bezpieczeństwa, które mogą wy-

stąpić. Schematyczny opis działania strategii
SKiP przedstawiono na Rysunku 1.

W SKiP proces zarządzania bezpieczeń-

stwem rozpoczyna się od analizy i wzmoc-
nienia obecnych w systemie środków bezpie-
czeństwa. Następnie należy przygotować się
na określone zdarzenia, monitorować system
celem wykrywania incydentów, wreszcie tak
poprawiać zabezpieczenia, aby ataki się nie
powtórzyły. Dwie wyżej opisane strategie cie-
szą się największą popularnością wśród ad-
ministratorów oraz są najczęściej wdrażane.
Techniczne zabezpieczenia systemu informa-

Niekonwencjonalne

metody wykrywania

włamań

Grzegorz Błoński

stopień trudności

W każdej firmie system informatyczny jest niezbędny do

jej prawidłowego funkcjonowania w dzisiejszych czasach.

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.

Z artykułu dowiesz się

• co to są strefy zdemilitaryzowane (DMZ),
• jak działa typowy Intrusion Detection System,
• jakie są rodzaje IDS,
• jak działa honeypot – pułapka na hakera.

Co powinieneś wiedzieć

• znać szkieletową budowę Sieci,
• znać zasadę działania firewalli.

background image

Niekonwencjonalne metody wykrywania włamań

hakin9 Nr 11/2007

www.hakin9.org

53

tycznego często dzieli się umownie
na tak zwane warstwy ochrony, do
których jako podstawowe zalicza-
ją się:

• warstwa zabezpieczeń systemu

operacyjnego,

• warstwa zabezpieczeń systemu

baz danych,

• warstwa zabezpieczeń aplikacji,
• warstwa zabezpieczeń siecio-

wych.

Prawidłowe współdziałanie wszyst-
kich warstw ma ogromny wpływ na
poziom bezpieczeństwa ochraniane-
go systemu. Bardzo ważne są logicz-
nie skonstruowane powiązania mię-
dzy warstwami, tak aby nie dopro-
wadzać do sytuacji, w której na przy-
kład zabezpieczenia warstwy siecio-
wej pozwolą na dokonanie ataku na
serwer bazy danych posiadającym
jakąś lukę.

Strefy

zdemilitaryzowane

Tworzenie stref bezpieczeństwa to
kolejna metoda ochrony przed ata-
kami. DMZ (DeMilitarized Zone) to
strefa zdemilitaryzowana, w której
umieszcza się serwery najbardziej na-
rażone na ataki z Internetu (WWW,
E-Mail, FTP). Gdy nastąpi włama-
nie na serwer położony w takiej stre-
fie, nie otwiera to drogi do zasobów
znajdujących się w wewnętrznej sie-
ci firmy.

Rysunek 2.

Strefa DMZ

��������

���

����������

�����������

��������

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

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

���

Rysunek 3.

Schemat blokowy systemu IDS

�������

���������

�����������

��������

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

��������

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

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

���

��������

����

������

��������

����������

Rysunek 1.

Schemat działania SKiP

POPRAWIAJ

ZABEZPIECZENIA

ODPOWIADAJ

NA ATAKI

WYKRYWAJ

PRÓBY

ATAKÓW

PRZYGOTUJ

SIĘ NA ATAKI

WZMOCNIJ

I

ZABEZPIECZ

background image

hakin9 Nr 11/2007

www.hakin9.org

Obrona

54

Systemy IDS / IPS

W celu wczesnego wykrywania wła-
mań powstało kilka technik, które
swój początek biorą od jednego sys-
temu nazwanego IDS (Intrusion De-
tection System
– system wykrywania
intruzów). Typowe systemy IDS dzia-
łają podobnie jak sniffer, zbierając
pakiety krążące w sieci i poddając
je analizie. Niestety, proces bada-
nia przechwyconych ramek jest tyleż
skomplikowany, co narażony na po-
myłki, co znacznie wpływa na niską
wydajność takich systemów.

O jakości systemów IDS decydu-

je kilka własności:

• wykrywalność ataków,
• liczba fałszywych alarmów,
• wydajność,
• baza sygnatur i jej aktualizacja,
• zakres reakcji,
• dostrajanie zabezpieczeń,
• zarządzanie zabezpieczeniami.

Systemy IDS dzielimy na trzy głów-
ne grupy:

• HIDS – Host-based IDS, system

IDS bazujący na maszynie, na
której działa,

• NIDS – Network-based IDS, sys-

tem IDS bazujący na sieci, w któ-
rej działa,

• NNIDS – Network Node IDS, sys-

tem hybrydowy – połączenie obu
powyższych.

Dobrej klasy systemy IDS wykorzy-
stują przeróżne metody identyfikacji
ataków. Do najczęściej wykorzysty-
wanych należą między innymi:

Stateful signatures – wykrywa-

nie oparte o bazę pełnostano-
wych sygnatur, które zawierają
informacje na temat wzorca ata-
ku oraz rodzaju komunikacji,

Protocol Anomalies – wykrywa-

nie niezgodności ruchu sieciowe-
go ze standardami określonych
protokołów,

Backdoor Detection – wykrywa-

nie aktywności koni trojańskich
poprzez analizę ruchu sieciowego
i porównanie z wzorcami, a także
analizę heurystyczną pakietów,

Traffic Anomalies – rozpoznawa-

nie działań w sieci, które są nie-
dozwolone lub podejrzane (np.
skanowanie portów),

Spoofing Detection – wykrywanie

ruchu sieciowego ze sfałszowa-
nymi adresami IP (IP Spoofing),

Layer 2 Detection – wykrywanie

działań i ataków na poziomie 2
warstwy modelu OSI oraz adre-
sów MAC (ARP cache poisoning),

Denial of Service Detection – wy-

krywanie ataków destabilizują-
cych pracę sieci oraz destrukcyj-
nych (DoS, SYN-Flood),

Honeypot – maszyna, która uda-

je serwer lub urządzenie siecio-
we. Pracuje jako przynęta, uda-

jąc w pełni sprawną i wartościo-
wą część infrastruktury siecio-
wej. Jednocześnie rejestruje każ-
dą próbę ataku (jak np. skanowa-
nie portów) i informuje o tych po-
czynaniach administratora.

Istnieją także systemy nazywane inli-
ne IDS, które są połączeniem sniffe-
ra i firewalla. W przypadku takich sys-
temów klasyfikacja aktywności sie-
ciowej jest o wiele bardziej zaawan-
sowana niż w przypadku firewalli.
IDS stosuje do tego wiele technolo-
gii. Ogólnie mówi się, że IDS-y działa-
ją na podstawie dopasowywania sy-
gnatur ataków. Jest to duże uprosz-
czenie. W żadnym wypadku nie

Rysunek 4.

HIDS

Architektura sieci z Host IDS

FIREWALL

+ agent HIDS

Router

Koncentrator

Koncentrator

Konsola

zarządzania

HIDS

Hosty z agentami

HIDS

Hosty z agentami HIDS

WWW

MTA

DNS

LAN

Strefa

DMZ

INTERNET

Rysunek 5.

NIDS

Architektura sieci z Network IDS

FIREWALL

Router

Koncentrator

Koncentrator

Konsola

zarządzania

NIDS

Hosty

WWW

MTA

DNS

LAN

Strefa

DMZ

INTERNET

Sonda IDS

Sonda IDS

background image

Niekonwencjonalne metody wykrywania włamań

hakin9 Nr 11/2007

www.hakin9.org

55

oznacza to, że IDS ma dokładny wzo-
rzec każdego ataku i z taką bazą da-
nych konfrontuje nadzorowany ruch.
Jeśli by tak było, to IDS-y dałoby się
bardzo łatwo oszukać. Przykłado-
wo, jeśli IDS analizowałby zapytania
SQL, to wstawienie jednej lub wię-
cej spacji spowodowałoby brak dopa-
sowania reguły i udałoby się obejść
zabezpieczenie. W rzeczywistości
współczesne IDS-y stosują wiele róż-
nych technik detekcji prób ataku – np.
normalizatory i interpretery poszcze-
gólnych protokołów, sygnatury opiso-
we w miejsce konkretnych wzorców
oraz metody heurystyczne.

Przykładem systemu IDS dla Li-

nuksa może być bardzo znany i ce-
niony SNORT, na temat którego moż-
na więcej przeczytać na stronie http://
www.snort.org
. Jeśli chodzi o podobne
systemy dla środowiska Windows, to
warto wspomnieć o NetScreen IDP fir-
my Juniper Networks, który łączy w so-
bie różne metody wykrywania ataków
sieciowych i zapewnia wysoki poziom
bezpieczeństwa wykorzystując efekt
synergii tych metod.

Powstają nowe odmiany syste-

mów IDS, które są poszerzane o no-
we funkcje. Przykładem może być
DIDS – Distributed IDS, rozproszo-
ny system, w którym na każdym ho-
ście w chronionej sieci działają od-
powiednie czujniki.

Coraz większą popularnością cie-

szą się systemy IPS – Intrusion Pre-
vention Systems
.

Czym są IPS? To sprzętowe lub

programowe rozwiązania, których
zadaniem jest nie tylko wykrywanie
ataków na system komputerowy, ale
także jednoczesne przeciwdziała-
nie i uniemożliwianie takich ataków.
Od strony technicznej można powie-
dzieć, że IPS to połączenie funkcjo-
nalności zapory sieciowej (firewall)
oraz systemu IDS.

Techniki przetwarzania

danych

Do analizy włamań w sieciach wyko-
rzystywanych jest wiele technik prze-
twarzania, które często są ze sobą
łączone w różnych rozwiązaniach.
Duża ilość danych zbieranych i reje-
strowanych przez systemy IDS oraz
IPS powoduje, że wyłowienie z nich
prawdziwego ataku czy skanowania
portów zajmuje dużo czasu, a wiele
wykrytych anomalii jest tak napraw-
dę fałszywym alarmem. Aby zmini-
malizować takie pomyłki, stosuje się
między innymi systemy ekspertowe,
których baza wiedzy jest zbiorem re-
guł opisujących atak. Wychwycone
poprzez IPS/IDS zdarzenia są kla-
syfikowane jako atak (lub nie) po do-
konaniu sprawdzenia i porównania
z bazą systemu ekspertowego.

Kolejną metodą jest analiza sy-

gnatur, w której – podobnie jak
w systemach ekspertowych – korzy-
sta się z pozyskiwania wiedzy o ata-
ku. Opis ataku jest transformowany
do postaci zgodnej z formatem bazy

sygnatur i dokonywane jest porów-
nywanie. Jeśli czynności rozpozna-
ne podczas ataku są zgodne z tymi
zapisanymi w bazie, są one klasyfi-
kowane jako atak. Wysoka skutecz-
ność tej metody znajduje zastosowa-
nie w rozwiązaniach komercyjnych,
takich jak Stalker czy Real-Source.

Sieci Petriego to kolejny ze spo-

sobów detekcji. Wykorzystuje on ko-
lorowane sieci do graficznej repre-
zentacji wykrytych ataków. Metoda ta
została zaimplementowana w syste-
mie wykrywania włamań IDIOT opra-
cowanym na Uniwersytecie Purdue.

Następna technika opiera się na

analizie przejść – stanów. Atak opi-
sywany jest jako zbiór podcelów
i przejść między nimi. Nie doczekała
się ona komercyjnych zastosowań.

Są to tylko wybrane metody, któ-

re doczekały się praktycznego wy-
korzystania w systemach wykrywa-
nia włamań.

Honeypot – Garnek

Miodu

W ostatnim czasie ogromnym zain-
teresowaniem cieszą się wspomnia-
ne wcześniej honeypoty (honeypot
to angielskie słowo określające gar-
nek miodu). Spełniają one rolę przy-
nęty, wabika, którym ma się zainte-
resować potencjalny atakujący. Tego
rodzaju systemy wczesnego ostrze-
gania o atakach są bardzo dobrym
rozwiązaniem ze względu na moż-
liwości, jakie dają administratorom.
Takie przynęty – a mogą nimi być
odpowiednio skonfigurowane pece-
ty, routery, przełączniki lub serwery
oparte o maszyny wirtualne – są co-
raz bardziej popularne.

Ze względu na to, że honeypot

nie jest maszyną produkcyjną (czy-
li nie bierze czynnego udziału w pra-
cy systemu informatycznego firmy),
ataki, które go dotykają, nie czynią
szkód w sieci produkcyjnej firmy. Od-
powiednio skonfigurowany honeypot
zbiera informacje o ataku i przesyła
je do administratora w celu podjęcia
odpowiednich działań.

Jednym z najbardziej znanych

komercyjnych systemów typu ho-
neypot
jest KFSensor firmy KeyFo-
cus (www.keyfocus.net), bardzo czę-

Rysunek 6.

NNIDS

Architektura sieci z Network Node IDS

FIREWALL

+ agent NNIDS

Router

Koncentrator

Koncentrator

Konsola

zarządzania

NNIDS

Hosty z agentami

NNIDS

Hosty z agentami NNIDS

WWW

MTA

DNS

LAN

Strefa

DMZ

INTERNET

background image

hakin9 Nr 11/2007

www.hakin9.org

Obrona

56

sto uaktualniany oraz wyposażony
w szereg mechanizmów wykrywa-
jących ataki. Inne znane rozwiąza-
nia to PatriotBox (www.alkasis.com)
oraz Specter:A (www.specter.com).

W przypadku systemów Unix/

Linux znane jest rozwiązanie Open
Source
o nazwie Honeyd (www.ho-
neyd.org
). Technologia wykorzysta-
nia honeypotów rozwija się w kierun-
ku automatyzacji procesu ich imple-
mentacji w danym systemie czy sie-
ci. Dynamiczne honeypoty mogą zre-
wolucjonizować rynek zabezpieczeń.
Założenia takich rozwiązań to samo-
uczenie się topologii i ruchu w sieci,
łatwiejsze integrowanie się z syste-
mem, wreszcie nawet automatyczna
implementacja nowych honeypotów.

Projekt Honeynet

Na stronach projektu Honeynet (http://
project.honeynet.org
) można znaleźć
narzędzia, które pomogą nam w za-
stosowaniu takich rozwiązań.

Podzielono je na grupy. Pierwsza

z nich, High-Interaction, przedstawia
rozwiązania, które nie emulują ni-
czego – są zwyczajnymi systemami
spotykanymi w domowych kompute-
rach czy firmowych stacjach robo-
czych. Ich zaletą jest zdolność do
zebrania większej ilości informa-
cji o atakach. Możemy tam znaleźć
dwa programy przydatne do tworze-
nia takich honeypotów – Honeywall
oraz Sebek.

Druga grupa, Low-Interaction,

charakteryzuje się tym, że w pełni
emuluje komputery, usługi czy funk-
cjonalności serwerów produkcyjnych.
Takie honeypoty łatwiej jest zaimple-
mentować, natomiast zbierają one
mniej typów informacji. W tej grupie
znajdziemy na wspomnianej stronie
Nepenthes, Honeyd oraz Honeytrap.

Trzecia grupa, Client, to narzę-

dzia inicjujące połączenie z serwe-
rem i zbierające informacje o zdarze-
niach w aplikacjach klienckich usług
takich, jak E-mail czy WWW. Mamy
do wyboru dwa programy – Captu-
reHPC oraz HoneyC.

Kolejna grupa to Infrastructure. Za-

wiera ona narzędzia wspomagające
wdrażanie i zarządzanie honeypotami.
Dostępny zestaw narzędzi do wyboru

to: Pehunter, Google Hack Honeypot,
Honeymole oraz Honeystick.

Ostatnia z przedstawionych na

stronie grup narzędzi to Data Ana-
lysis
. Jak sama nazwa wskazuje, są
to narzędzia do analizy danych prze-
chwyconych przez honeypoty. Znaj-
dują się tutaj dwa narzędzia: Honey-
snap oraz Capture BAT.

Po dokładniejsze opisy wszyst-

kich narzędzi odsyłam na stronę pro-
jektu. (http://project.honeynet.org)

Hybrydy

Zabezpieczeniom stawia się wyma-
gania nie tylko odnośnie poziomu
bezpieczeństwa chronionych zaso-
bów, ale także ich wydajności. Nie
powinny one powodować opóźnień
w transmisji danych. Systemy zapo-
rowe firewall są newralgicznym ele-
mentem, jeśli chodzi o wydajność.

Na rynku rozwiązań hybrydo-

wych prym wiodą takie rozwiązania,
które integrują w sobie kilka techno-
logii naraz – Stateful Inspection, Ap-
plication Gateway
oraz Intrusion De-
tection
. Dodatkowym elementem ta-
kich rozwiązań staje się często mo-
duł ochrony kryptograficznej trans-
misji danych VPN. Pracę firewal-
li można przyśpieszać programo-
wo poprzez wykonywanie podsta-
wowych algorytmów kontroli ruchu
sieciowego na niskim poziomie jądra
systemu operacyjnego.

Istnieją także sprzętowe sposoby

przyśpieszania, których przykładem
może być układ scalony ASIC (Ap-
plication Specific Integrated Circuit
),
pozwalający na uzyskanie przepływ-
ności firewalla na poziomie 12Gb/s.

Podsumowanie

Ciągła rozbudowa i zwiększanie się
stopnia komplikacji systemów infor-
matycznych powoduje, że do ich
ochrony potrzebne są coraz bar-
dziej złożone zabezpieczenia. Fir-
my zajmujące się opracowywaniem
rozwiązań bezpieczeństwa dla sieci
i systemów informatycznych starają
się ciągle doskonalić swoje produk-
ty, aby nadążały one za technikami
wykorzystywanymi przez hakerów.
Wiele rozwiązań staje się popular-
nych, ciesząc się do tego dobrymi

ocenami użytkujących je instytucji,
firm czy administratorów.

Przykładem takiego rozwiązania

jest produkt firmy Checkpoint o na-
zwie IPS-1.

Korzysta on z hybrydowego sil-

nika wykrywania (Hybrid Detection
Engine
), który doskonale sprawdza
się w rzeczywistym działaniu. Roz-
wiązanie Checkpointa zostało opar-
te o technologię przejętą od firmy
NFR Security. IPS-1 integruje w so-
bie firewalla, VPN, UTM i wspomnia-
ne rozwiązanie NFR Security.

Niewątpliwą zaletą rozwoju tech-

nologii wykorzystywanych do zabez-
pieczania sieci i systemów informa-
tycznych jest fakt możliwości wybo-
ru takiej, która odpowiada naszym
wymogom, założeniom i potrzebom.
Niestety, równolegle rozwijają się
technologie włamań i ataków, któ-
re są wykorzystywane przez hake-
rów. Nacisk na bezpieczeństwo po-
winien w dzisiejszych czasach być
na tyle duży, aby spowodować im-
plementowanie rozwiązań zapew-
niających nieprzerwaną pracę sys-
temu informatycznego – bez zakłó-
ceń i przerw spowodowanych przez
próby ataku.

Trudno jest wybrać drogę i me-

todologię stosowania rozwiązań
bezpieczeństwa, nie analizując je-
go obecnego stanu w systemie, któ-
ry chcemy lepiej chronić. Dokładne
i dogłębne przyjrzenie się słabym
punktom w naszej sieci, znalezienie
miejsc bardziej narażonych na ata-
ki, wyizolowanie stref mniej i bardziej
bezpiecznych ułatwi dokonanie wy-
boru stosownego rozwiązania. l

O autorze

Grzegorz Błoński z wykształce-
nia jest informatykiem, certyfiko-
wanym specjalistą IBM. Pracuje
w dużej firmie o zasięgu światowym.
Zajmuje się administracją oraz bez-
pieczeństwem sieciowym. Należy
do międzynarodowych organizacji
ISOC oraz ISACA, zajmujących się
szeroko pojętym bezpieczeństwem
IT. Kontakt z autorem: mancymo-
nek@wp.pl

background image

Niekonwencjonalne metody wykrywania włamań

hakin9 Nr 11/2007

www.hakin9.org

57

background image

www.hakin9.org

hakin9 Nr 11/2007

58

Obrona

J

eśli chcesz przesłać poufne informacje, mo-
żesz zakodować plik za pomocą specjali-
stycznego oprogramowania. Jednak od cza-

su do czasu słyszy się o złamaniu jakiegoś algo-
rytmu kodującego. Kiedy ktoś przechwyci zaszy-
frowany plik, może spróbować go rozkodować.
Istnieje kilka sposobów na zmylenie przeciwnika.
Można w tym celu wykorzystać pliki graficzne.

Struktura plików BMP

Plik BMP to zwyczajny plik graficzny. Jego cechą
charakterystyczną jest duży rozmiar, gdyż pliki
BMP nie są kompresowane. Format pliku BMP jest
bardzo prosty: pierwsze 54 bajty pliku to nagłó-
wek (zawierający podstawowe informacje o pli-
ku, np. szerokość i wysokość grafiki w pikselach),
a następne bajty to kody kolorów każdego piksela.
Pewną ciekawostką jest fakt, iż kolory poszcze-
gólnych pikseli są zapisane od dołu do góry, czy-
li pierwsze trzy bajty (w przypadku plików z 24-bi-
tową paletą kolorów) zawierają informacje o pik-
selu położonym w lewym dolnym rogu, natomiast
ostatnie trzy bajty przechowują dane o kolorze
piksela znajdującego się w prawym górnym rogu.

Do wykonania ćwiczenia opisanego w następ-

nym paragrafie wystarczy wiedzieć, że pod offse-
tem 12h (19-ty bajt od początku pliku) zapisano

szerokość obrazu w pikselach (jako liczbę 32-bi-
tową). Natomiast pod offsetem 16h (23-ci bajt od
początku pliku) znajduje się wysokość obrazu
w pikselach.

Algorytm wyświetlenia pliku BMP przez

program graficzny jest bardzo prosty. Najpierw
program musi odczytać informacje o wysokości
i szerokości grafiki. Następnie odczytywane są
kolory poszczególnych pikseli i aplikacja rysuje
je w odpowiednim miejscu na ekranie (od lewej
do prawej i z dołu do góry).

Modyfikacja pliku BMP

Na początku należy utworzyć w dowolnym
programie graficznym (może być nawet Paint)

Ukrywanie tajnych

informacji

Damian Daszkiewicz

stopień trudności

Artykuł omawia dwa ciekawe sposoby na ukrycie tajnych

informacji w plikach graficznych. Jeden sposób polega na

spreparowaniu nagłówka pliku BMP, natomiast drugi na

wygenerowaniu pliku BMP na podstawie zakodowanego pliku.

Z artykułu dowiesz się

• jaka jest budowa pliku BMP,
• jak ukrywać informacje w pliku BMP.

Co powinieneś wiedzieć

• umieć obsługiwać dowolny edytor plików binar-

nych (np. HexWorkshop),

• znać dowolny program graficzny tworzący pliki

BMP.

background image

Ukrywanie tajnych informacji

hakin9 Nr 11/2007

www.hakin9.org

59

plik BMP o rozmiarach np. 192x96
pikseli (najlepiej, aby plik był mono-
chromatyczy czyli 2-kolorowy). Nas-
tępnie w pliku graficznym wprowadź
jakiś napis (np. tajne hasło). Rysu-
nek 1 przedstawia przykładowy plik
BMP.

Następnie otwórz plik w dowol-

nym edytorze plików binarnych (np.
HexWorkshop). Należy zamienić ze
sobą wartości znajdujące się pod
offsetami: 12h i 16h (są to 32-bitowe
liczby zawierające informacje o szero-
kości i wysokości obrazu). Po zapisa-
niu zmian w pliku możesz otworzyć go
w dowolnym programie graficznym.

Od razu widać, że plik przedstawia
losowy zbiór punktów (spójrz na Ry-
sunek 2).

Niestety, nawet po zmianie na-

główka widać, że prześwitują frag-
menty niektórych liter. Można temu
zapobiec – wystarczy utworzyć plik
mający rozmiary np. 200x100 pikseli,
jednak po wykonaniu tego ćwiczenia
większość programów graficznych
poinformuje, że plik jest uszkodzony
(efekt ten nie występuje, gdy szero-
kość i wysokość są liczbami podziel-
nymi przez 32). Jedynie Paint ta-
ki plik bez problemu otworzy. Rysu-
nek 3 przedstawia plik BMP ze zmie-
nionym nagłówkiem o rozdzielczo-
ści 200x100 pikseli (jest to ten sam
plik, co przedstawiony na Rysunku 1,
tylko przed dokonaniem ingerencji
w nagłówku zwiększyłem w progra-
mie graficznym jego wymiary wła-
śnie do 200x100 pikseli).

Generowanie

pliku BMP

Drugi pomysł jest bardzo prosty
– na podstawie istniejącego pliku
o dowolnej zawartości można utwo-
rzyć plik BMP. W tym celu wystar-
czy utworzyć 54-bajtowy nagłówek
pliku BMP, zaraz za nim należy zapi-
sać w postaci liczby 4-bajtowej roz-
miar kodowanego pliku, a następnie
przekopiować do pliku BMP zakodo-
wany zbiór i ewentualnie dopełnić go
zerami. W zależności od rozmiarów
pliku wejściowego, plik BMP mu-
si mieć odpowiednią rozdzielczość
(np. dla pliku o długości 9800 bajtów
plik BMP będzie mieć przykładową
rozdzielczość 100x100 pikseli, w tym
196 bajtów dopełnienia).

Jedną z ważniejszych rzeczy,

o których należy pamiętać, jest odpo-
wiednie wygenerowanie nagłówka pli-
ku BMP:

#

include

<

iostream

>

#

include

<

fstream

>

using namespace std;

//funkcja rozbija liczbę 32-bitową
//na 4 liczby 8-bitowe

void

rozbij32

(

int

S, unsigned

char

&b1,unsigned

char

&b2,

unsigned

char

&b3,unsigned

char

&b4

)

{

int

X;

b1=S

%256

;

b2=S/256;
X=S/65536;
b3=X

%256

;

b4=X/256;

}

int

main

(

int

argc,

char

*argv

[])

{

int

tmp;

char

b;

char

zero=0;

const

int

width=200;

unsigned

long

int

height;

unsigned

long

int

change;

unsigned

long

int

fsize;

unsigned

char

header

[

54

]

=

{

0x42,0x4D,0x96,0xEA,0x00,0x00,

0x00,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x28,0x00,0x00,
0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,
0x18,0x00

}

;

unsigned

char

fsiz

[

4

]

;

ifstream fileinput

(

argv

[

1

]

,ios::in | ios::binary

)

;

ofstream fileoutput

(

argv

[

2

]

,ios::binary

)

;

//sprawdzenie rozmiaru pliku

fileinput.seekg

(

0 , ios::

end

)

;

fsize = fileinput.tellg

()

;

fileinput.seekg

(

0 , ios::beg

)

;

//obliczenie "wysokości" pliku BMP

height=

(

int

)(((

fsize+4

)

/

(

3*width

))

+1

)

;

//zapisanie w nagłówku pliku BMP

//jego wysokości

header

[

22

]

=height

%256

;

header

[

23

]

=height/256;

//zapisanie w nagłówku szerokości pliku BMP

header

[

18

]

=width

%256

;

header

[

19

]

=width/256;

//zapisanie w nagłówku długość całego pliku w bajtach

rozbij32

(

3*width*height+54,

header

[

2

]

,

header

[

3

]

,

header

[

4

]

,

header

[

5

])

;

//zapisanie w nagłówku rozmiaru całego rysunku

rozbij32

(

3*width*height,

header

[

34

]

,

header

[

35

]

,

header

[

36

]

,

header

[

37

])

;

//obliczenie reszty (ile liczb trzeba dopisać jako

dopełnienie)

change=

(

height*3*width

)

-fsize-4;

//zapisz do pliku BMP nagłówek

for

(

tmp=0; tmp

<

54; tmp++

)

fileoutput

<<

header

[

tmp

]

;

//pierwsze cztery bajty w pliku BMP

//za nagłówkiem

//to rozmiar kodowanego pliku

rozbij32

(

fsize,fsiz

[

0

]

,fsiz

[

1

]

,fsiz

[

2

]

,fsiz

[

3

])

;

for

(

tmp=0; tmp

<

4; tmp++

)

fileoutput

<<

fsiz

[

tmp

]

;

//kopiuj do pliku BMP plik z danymi

while

(

!

(

fileinput.eof

()

)

)

{

b=fileinput.get

()

;

fileoutput

<<

b;

}

//wypełnij resztę pliku zerami

for

(

tmp=0; tmp

<

change; tmp++

)

fileoutput

<<

zero;

fileinput.close

()

;

fileoutput.close

()

;

return

0;

}

Rysunek 1.

Plik BMP zawierający

tajną informację

Listing 1.

Program generujący pliki BMP – kodujbmp.cpp

background image

hakin9 Nr 11/2007

www.hakin9.org

Obrona

60

• pod offsetem 12h należy zapisać

szerokość obrazu w pikselach,

• pod offsetem 16h należy zapisać

wysokość obrazu w pikselach,

• pod offsetem 2h należy zapisać

długość całego pliku w bajtach,

• pod offsetem 22h należy zapisać

rozmiar samego rysunku (jest to
liczba mniejsza o 54 od liczby za-
pisanej pod offsetem 2h; wartość
tę można również obliczyć mno-
żąc ze sobą liczby: szerokość,
wysokość obrazu i ilość bajtów
opisujących jednen piksel).

Listing 1 przedstawia prosty program,
który na podstawie dowolnego pli-
ku generuje plik BMP (nazwy plików:
wejściowego i wyjściowego podaje
się jako parametry). Oto przykłado-
we wywołanie programu:

[kodujbmp.

exe plik.txt plik.bmp]

.

Program jest dość prosty, aby nie

zaciemniać listingu, zrezygnowałem
z dodania obsługi błędów (np. wy-
świetlania komunikatów, że plik wej-
ściowy nie istnieje). W programie na

sztywno założyłem, że szerokość ry-
sunku wynosi 200 pikseli, można to
zmienić edytując linijkę

const int

width=200;

. Rysunek 4. przedstawia

plik BMP wygenerowany z pliku calc.
exe
.

Przyglądając się takiemu pliko-

wi BMP dość trudno jest wpaść na
pomysł, że zawiera on w sobie tajne
informacje. Raczej potencjalny na-
pastnik pomyśli sobie, że plik uległ
uszkodzeniu.

Do wyciągnięcia z pliku BMP cen-

nych danych potrzebne jest kolejne
proste narzędzie (patrz Listing 2). Po-
dobnie jak poprzednio, nazwy plików
podaje się jako parametry, np. (deko-
dujbmp.exe calc.bmp calc2.exe).

Program działa na bardzo intui-

cyjnej zasadzie: najpierw odczytuje

54-bajtowy nagłówek pliku BMP
(całkowicie go ignorując), następnie
odczytuje 32-bitową liczbę, która za-
wiera informację o tym jak długi jest
zakodowany plik. Następnie z pliku
BMP dane właściwe są kopiowane do
pliku wyjściowego. Program ten ma
pewną wadę: nie potrafi rozpoznać,
czy dany plik BMP był utworzony przy
pomocy poprzedniego programu, czy
jest to zwyczajny plik BMP. Ten pro-
blem można rozwiązać poprzez do-
dawanie do wygenerowanych plików
BMP jakiejś specjalnej sygnatury, któ-
ra by jednoznacznie informowała, że
nie jest to standardowa bitmapa.

Podsumowanie

Pierwszy sposób jest dość prosty
i świetnie się nadaje do przesyłania

Listing 2.

Program wyciągający zakodowane zbiory z plików BMP

– dekodujbmp.cpp

#

include

<

iostream

>

#

include

<

fstream

>

using namespace std;

int

main

(

int

argc,

char

*argv

[])

{

unsigned

long

int

fsize;

unsigned

long

int

fsize2;

unsigned

char

b1,b2,b3,b4;

int

tmp;

ifstream fileinput

(

argv

[

1

]

,ios::in | ios::binary

)

;

ofstream fileoutput

(

argv

[

2

]

,ios::binary

)

;

//Sprawdź rozmiar pliku BMP

fileinput.seekg

(

0 , ios::

end

)

;

fsize2 = fileinput.tellg

()

;

fileinput.seekg

(

0 , ios::beg

)

;

//odczytaj nagłówek pliku BMP

for

(

tmp=0; tmp

<

54; tmp++

)

b1=fileinput.get

()

;

//odczytaj rozmiar zakodowanego pliku

b1=fileinput.get

()

;

b2=fileinput.get

()

;

b3=fileinput.get

()

;

b4=fileinput.get

()

;

fsize=b4*16777216+b3*65536+b2*256+b1;

//Sprawdź, czy odczytana liczba nie jest większa od rozmiaru pliku BMP

if

(

fsize

>

fsize2

)

{

cerr

<<

"Plik BMP nie zawiera w sobie zakodowanego pliku"

;

return

0;

}

//Kopiuj dane z pliku BMP do pliku wyjściowego

for

(

tmp=0; tmp

<

fsize; tmp++

){

b1=fileinput.get

()

;

fileoutput

<<

b1;

}

fileinput.close

()

;

fileoutput.close

()

;

return

0;

}

Rysunek 2.

Uszkodzony plik BMP

Rysunek 3.

Nieco lepiej uszkodzony

plik

background image

Ukrywanie tajnych informacji

hakin9 Nr 11/2007

www.hakin9.org

61

krótkich komunikatów. Jednak mo-
dyfikując nagłówek pliku BMP nale-
ży uważać. Po modyfikacji pliku ilo-
czyn wysokości i szerokości obra-
zu musi być taki sam, jak przed mo-
dyfikacją pliku. Wyobraź sobie taką
sytuację: istnieje plik BMP o roz-
dzielczości 100x200 pikseli, edytu-

jesz nagłówek tak, aby rozdzielczość
obrazu wynosiła 200x200 pikseli.
Po odczytaniu pewnej porcji danych
program graficzny poinformuje, że
plik jest uszkodzony (gdyż zabrak-
nie informacji o kolorach nieistnie-
jących fizycznie pikseli). Niektóre
programy graficzne nie otworzą ta-
kiego pliku, natomiast inne – braku-
jące miejsce zapełnią czarnymi pik-
selami. Jeśli oryginalny plik ma wy-
miary 200x100 pikseli a Ty zmienisz
wymiary np. na 400x50 pikseli, to
może pojawić się interesujący efekt
– na rysunku pojawią się dwukrot-
nie zapisane hasła, z tym, że będą
mieć one naturalną szerokość, a ich
wysokość będzie o połowę mniej-
sza niż w oryginalnym pliku. Mimo
to bez większych problemów da się
owe hasła odczytać!

Generowanie plików BMP na pod-

stawie zakodowanego pliku jest dość
ciekawym sposobem na zmylenie
przeciwnika. Ta sztuczka nadaje się
do przesyłania większych ilości taj-
nych informacji (mogą to być pliki bi-

narne). Zawiedzie jednak w przypad-
ku przesyłania plików tekstowych,
gdyż wystarczy taki plik BMP otwo-
rzyć w dowolnym edytorze plików bi-
narnych, aby odczytać jego zawar-
tość. Można ten problem wyelimino-
wać poprzez zakodowanie pliku tek-
stowego lub choćby poprzez skom-
presowanie go dowolnym progra-
mem pakującym pliki. l

Rysunek 4.

Plik BMP

wygenerowany na podstawie pliku
calc.exe

O autorze

Damian Daszkiewicz jest samoukiem
od wielu lat interesującym się informa-
tyką i e-biznesem. Obecnie studiuje na
Politechnice Rzeszowskiej na kierun-
ku Informatyka. W roku 2003 wydaw-
nictwo Helion opublikowało jego książ-
Vademecum hakera. Edycja plików
binarnych
.
Kontakt z autorem:
damian@daszkiewicz.net

W Sieci

• opis struktury pliku BMP: http://pl.

wikipedia.org/wiki/BMP_(format)

R

E

K

L

A

M

A

background image

www.hakin9.org

hakin9 Nr 11/2007

62

Obrona

T

echnologia ta pozwala na tworzenie bo-
gatych, atrakcyjnych wizualnie interfej-
sów użytkownika, które mogą pracować

w dowolnym środowisku – w przeglądarkach in-
ternetowych, na różnych urządzeniach i na róż-
nych systemach operacyjnych (np. Apple Macin-
tosh). Podobnie jak w przypadku WPF (Windows
Presentation Foundation
), technologii prezenta-
cyjnej stworzonej wraz z .NET Framework 3.0,
podstawą Silverlight jest język XAML (eXtensible
Application Markup Language
). Technologia ta,
pomimo tego, że jest ciągle w fazie rozwojowej
(w chwili obecnej dostępne są dwie wersje
Silverlight – 1.0 RC, czyli kandydat do wersji osta-
tecznej oraz wersja 1.1 alfa), staje się coraz bar-
dziej popularna i wciąż rośnie liczba serwisów
używających jej do celów prezentacji treści. Przy
tej okazji bardzo często padają pytania o bezpie-
czeństwo aplikacji opartych o Silverlight, głównie
ze względu na obsługę wielu platform. Artykuł
ma na celu wprowadzenie i ogólne przedstawie-
nie modelu bezpieczeństwa tej technologii.

Trudne początki, czyli wstęp

do modelu bezpieczeństwa

Jak wiadomo, już od samego początku założe-
niem nowej technologii było stworzenie minimal-

nego silnika do uruchamiania aplikacji opar-
tych o Silverlight, czyli de facto o .NET.
Silverlight zawiera bardzo mocno okrojoną
wersję CLR (Common Language Runtime).
Całość zajmuje ok. 5 MB. Znając podstawy
programowania w .NET Framework oraz obję-
tość wszystkich bibliotek i powiązań, można
się zastanawiać, jak to wszystko działa –
a w szczególności, jak rozwiązane są aspekty
bezpieczeństwa. Przecież każdy programista,
który pisał bezpieczne aplikacje, musiał poz-
nać różnorodne aspekty takich narzędzi, jak

Bezpieczeństwo

Silverlight

Artur Żarski

stopień trudności

Podczas konferencji MIX’07, która odbyła się na początku

maja 2007 roku w Las Vegas, została pokazana nowa technologia

prezentacji zawartości stron WWW. Jest nią Silverlight,

która z założenia ma działać na różnorodnych platformach.

Z artykułu dowiesz się

• nowości w modelu bezpieczeństwa technologii

Silverlight i jego aspektów istotnych dla progra-
misty.

Co powinieneś wiedzieć

• czytelnik powinien mieć wiedzę na temat tworze-

nia bezpiecznych aplikacji na platformie .NET,

• znać pojęcia takie jak CAS, kod przeźroczy-

sty, kod krytyczny oraz podstawowe elemen-
ty przestrzeni nazw System.Security.

background image

Bezpieczeństwo Silverlight

hakin9 Nr 11/2007

www.hakin9.org

63

caspol.exe i specyfikę bezpieczeń-
stwa opartego na uprawnieniach
kodu (CAS – Code Access Security).
Bardzo dobrą informacją dla wszyst-
kich, którzy spędzili długie godziny
na rozgryzaniu działania tego roz-
wiązania oraz wszystkich jego usta-
wień jest to, że dla Silverlight po
prostu przestało ono istnieć. Stan-
dardowy CAS znany z pełnej wersji
.NET został wycofany.

W CoreCLR (tak nazywa się

CLR w Silverlight) nie znajdziemy już
uprawnień, poziomów zabezpieczeń
oraz przejść po stosie zabezpie-
czeń. Przestrzeń nazw System.Se-
curity
została bardzo mocno ogra-
niczona. Wnikliwi programiści, któ-
rzy wykonają dekompilację biblioteki
mscorlib.dll, zauważą jednak, że kla-
sa

SecurityPermission

nadal istnie-

je. O co więc chodzi? Jeśli nasza bi-
blioteka zawiera jakiś niesprawdzo-
ny kod, wtedy kompilator wywoła fla-

RequestMinimum

dla właściwości

SkipVerification

.

Model bezpieczeństwa w Co-

reCLR, który musi zastąpić CAS,
może zostać opisany następująco:

• każdy kod użytkownika, który

uruchamiany jest w CoreCLR,
jest zupełnie przeźroczysty,

• kod platformy (charakterystycz-

ny dla danego systemu opera-
cyjnego) może zawierać dwa
rodzaje kodu: przeźroczysty i kry-
tyczny. Jest on odpowiedzialny
za umożliwienie uruchomienia
przeźroczystego kodu w taki
sposób, aby miał on bezpieczny
dostęp do różnych usług syste-
mowych.

Reasumując, oznacza to, że w mo-
delu bezpieczeństwa CoreCLR apli-
kacje Silverlight nie mogą zawierać
kodu, który nie jest zweryfikowany
i mogą wywoływać tylko i wyłącznie

metody API, które są przeźroczyste
lub krytyczne.

Zagłębiamy się

w szczegóły

No dobrze, ale czym właściwie jest
kod przeźroczysty? Jest to taki kod,
który nie może wykonać żadnej ak-
cji skutkującej odwołaniem do sto-
su uprawnień. A dokładniej, prze-
źroczysty kod nie może w żaden
sposób spowodować sprawdzenia
zabezpieczeń, które zakończy się
sukcesem (może natomiast zakoń-
czyć się niepowodzeniem). Przeci-
wieństwem jest kod krytyczny, któ-
rego biblioteki mogą zawierać kom-
binacje kodu krytycznego i przeźro-
czystego. Pojedyncze metody mo-
gą być przeźroczyste lub krytycz-
ne, jednak nie mogą łączyć obu ro-
dzajów kodu.

Ograniczenia dla kodu przeźro-

czystego:

• nie może wykorzystywać atrybu-

tu LinkDemand,

• nie może wywoływać Assert

w CAS,

• nie może zawierać nieweryfiko-

walnego kodu,

• nie może wywoływać natywne-

go kodu przy użyciu P/Invoke lub
COM Interop,

• nie może zapewniać dostępu

do kodu krytycznego lub da-
nych tam, gdzie nie jest to po-
trzebne.

Na początku tekstu mówiliśmy, że
w Silverlight nie ma CAS, więc o co
chodzi w pierwszych dwóch ograni-
czeniach? Przecież bez Code Ac-
cess Security
nie można wywołać
Assert, a nawet zwykłego LinkDe-
mand
. Póki nie mamy koncepcji żą-
dań w Silverlight, którego mecha-
nizm wywołania nie jest właściwy,
zamiast tego wywołujemy wyjątek

klasy

MethodAccessException

– o ile

kod przeźroczysty próbuje złamać
ustalone zasady. Najbardziej inte-
resujące jest ostatnie ograniczenie.
W przypadku, gdy kod przeźro-
czysty próbuje bezpośrednio wy-
wołać kod krytyczny, to wywołany
będzie wyjątek klasy

MethodAccess-

Exception

. Niemniej jednak więk-

szość z interesujących nas usług
wymaga implementacji jako kod
krytyczny (np. dostęp do systemu
plików). Jeśli mamy do czynienia
z takim właśnie przypadkiem, to jak
Silverlight może uzyskać dostęp do
tego typu usług?

Wspominałem wcześniej o tym,

że dostęp do plików oraz wszelkie
operacje wejścia/wyjścia powinny
być implementowane jako bezpie-
czny kod. Aby mieć możliwość trwa-
łego przechowywania danych, mu-
simy posiadać jakąś warstwę dla ko-
du krytycznego, który będzie mógł
być wywoływany. W Silverlight tą
krytyczną warstwą jest

Isolated-

Storage

. Kiedy aplikacja Silverlight

wywołuje

IsolatedStorage

, wtedy

API sprawdza żądanie, aby mieć
pewność, że aplikacja żąda prawi-
dłowego pliku i że nie jest prze-
kroczony dla niej tzw. przydział
(ang. quote). Jest to analogiczne do
modelu wywołań w systemie ope-
racyjnym (patrz Tabela 1).

Podobnie jak aplikacje urucha-

miane na MacOS i Windows nie
mogą odwoływać się bezpośred-
nio do jądra systemu operacyjnego
bez przejścia przez powłokę wywo-
łań systemowych, tak też aplikacje
Silverlight nie mogą bezpośrednio
wywoływać krytycznego kodu bez
przejścia przez bezpieczną powło-
kę krytyczną. W Silverlight cały kod
jest standardowo przeźroczysty (i to
odróżnia go od CLR w wersji desk-
top, gdzie cały kod z definicji jest
krytyczny).

Tabela 1.

Przykłady zastosowania IsolatedStorage

System operacyjny

CoreCLR

Przykład IsolatedStorage

Kod w trybie użytkownika

Kod przeźroczysty

Aplikacja Silverlight

Wywołanie systemowe

Bezpieczne krytyczne API

System.IO.IsolatedStorage

Kod jądra

Krytyczne API

System.IO.FileStream

background image

hakin9 Nr 11/2007

www.hakin9.org

Obrona

64

Kod platformy może być prze-

źroczysty, krytyczny oraz bezpie-
czny krytyczny (ang. safe critical).
CoreCLR automatycznie wykryje
kod platformy, wiedząc, skąd ła-
dowana jest biblioteka (bibliote-
ki platformy muszą być ładowane
z katalogu, w którym jest zainsta-
lowany Silverlight) oraz poprzez
sprawdzenie klucza publicznego,
którym ta biblioteka została pod-
pisana. Tylko i wyłącznie biblioteki
podpisane specyficznym kluczem,
którym podpisuje je Microsoft, bę-
dą traktowane jako biblioteki plat-
formy.

Jeśli metoda w bibliotece plat-

formy jest opisana atrybutem

Secu

rityCriticalAttribute

, oznacza to,

że zawiera ona kod krytyczny. Kod
przeźroczysty nie może wywołać

żadnej metody kodu krytycznego
– nawet, jeśli jest ona publiczna.
Każda próba złamania tej reguły
spowoduje wywołanie wyjątku

Me-

thodAccessException

.

Listing 1. pokazuje konstruktor

dla klasy FileStream w Silverlight 1.1.
Jest on krytyczny (widać to w linii 5),
ponieważ został opisany atrybutem

SecurityCriticalAttribute.

Podobnie jest z każdą metodą

w klasie Marshal – są one również
krytyczne, dopóki będą opisane atry-
butem

SecurityCriticalAttribute

(li-

nia 4 na Listingu 2).

Każda metoda w bibliotece plat-

formy oznaczona atrybutem

Securi

tySafeCriticalAttribute

jest oczy-

wiście bezpieczna krytyczna (safe
critical
). Kod aplikacji może wywoły-
wać te metody, dopóki kod przeźro-

czysty może wywoływać bezpiecz-
ny kod krytyczny. Przykładem kry-
tycznego API jest metoda Isolated-
StorageFileStream.Write
(linia 6 na
Listingu 3).

Ciekawostką jest fakt, że atrybut

SecuritySafeCriticalAttribute

jest

w rzeczywistości połączeniem dwóch
atrybutów z pełnej wersji .NET:

Secur

ityCriticalAttribute

oraz

SecurityT

reatAsSafeAttribute

.

Potrzeba jawnego określania

metod atrybutami SecurityCritical
oraz

SecurityTreatAsSafe

stała się

powszechna, dlatego też stworzo-
no atrybut

SecuritySafeCritical

.

Dzięki stosowaniu tego atrybutu
skracamy czas pisania aplikacji,
a dodatkowo zmniejszamy wielkość
metadanych. Jeśli metoda nie po-
siada ani atrybutu

SecurityCritical

,

ani atrybutu

SecuritySafeCritical

,

wtedy musi być ona przeźroczy-
sta. Jeśli metoda jest widoczna dla
kodu aplikacji, oznacza to, że apli-
kacja ma możliwość wywołania
jej – ponieważ przeźroczysty kod
ma zawsze możliwość wywołania
innego transparentnego kodu.

Dokładnie tak samo jest w sy-

tuacji, w której aplikacja Silverlight
chciałaby być sprytna i opisać się
jednym z atrybutów

SecurityCritical

lub

SecuritySafeCritical

. W tym mo-

mencie nie wydarzy się nic, ponie-
waż CLR wie, że kod aplikacji musi
być przeźroczysty.

Bardzo ważnym jest fakt, że re-

guły te nie zastępują standardowych
reguł dostępu (Public, Private, Inter-
nal
), ale je dopełniają. Dlatego też
kod aplikacji nie może wywoływać
wewnętrznych metod w bibliotekach
systemowych – nawet, jeśli są one
przeźroczyste.

Tabela 2. pokazuje wszystkie te

zależności.

Dziedziczenie

Na koniec jeszcze kilka słów na te-
mat dziedziczenia w Silverlight. Na
początek określmy jednak logicz-
ny porządek pomiędzy poziomami
transparentności:

przeźroczysty (aplikacja i platfor-
ma),

Listing 1.

Przykład konstruktora dla klasy FileStream

1

.

method

public

hidebysig

specialname

rtspecialname

2

instance

void

.

ctor

(

string

path

,

3

valuetype

System

.

IO

.

FileMode

mode

)

cil

managed

4

{

5

.

custom

instance

void

System

.

Security

.

SecurityCriticalAttribute

::

.

ctor

()

=

(

01

00

00

00

)

6

7

// ...

8

}

Listing 2.

Przykład metody w klasie Marshal

1

.

class

public

abstract

auto

ansi

sealed

beforefieldinit

System

.

Runtime

.

Inte

ropServices

.

Marshal

2

extends

System

.

Object

3

{

4

.

custom

instance

void

System

.

Security

.

SecurityCriticalAttribute

::

.

ctor

()

=

(

01

00

00

00

)

5

6

// ...

7

}

//

end

of

class

System

.

Runtime

.

InteropServices

.

Marshal

Listing 3.

Metoda IsolatedStorageFileStream.Write.

1

.

method

public

hidebysig

virtual

instance

void

2

Write

(

uint8

[]

buffer

,

3

int32

offset

,

4

int32

count

)

cil

managed

5

{

6

.

custom

instance

void

System

.

Security

.

SecuritySafeCriticalAttribute

::

.

ctor

()

=

(

01

00

00

00

)

7

8

// ...

9

}

background image

Bezpieczeństwo Silverlight

hakin9 Nr 11/2007

www.hakin9.org

65

bezpieczny krytyczny (tylko plat-
forma),

krytyczny (tylko platforma).

Ale jak się to ma do dziedziczenia?
Otóż kolejność ta jest bardzo istot-
na, kiedy chcemy określić czy da-
na klasa może pochodzić z kla-
sy rodzica. Każda klasa może po-
chodzić z innej, ale tylko i wyłącz-
nie z takiej, która jest na takim sa-
mym lub wyższym poziomie hierar-
chii. Nie może ona nigdy pocho-
dzić z niższej klasy bazowej w hie-
rarchii. Oznacza to, że klasy kry-
tyczne mogą pochodzić z innych
dowolnego typu, podczas gdy kla-
sy transparentne mogą pochodzić
tylko i wyłącznie z innych transpa-
rentnych.

Kolejną istotną kwestią jest moż-

liwość przeciążania metod wirtu-
alnych podczas dziedziczenia. Kie-
dy chcemy przeciążać metody, war-
to je wcześniej pogrupować we-
dług różnych poziomów bezpieczeń-
stwa:

przeźroczysty oraz bezpieczny
krytyczny kod,

kod krytyczny.

Po pogrupowaniu metod w taki wła-
śnie sposób zauważyć można, że
kod przeźroczysty ma dostęp do
wszystkiego, podczas gdy kod kry-
tyczny ma dostęp do grupy z pozio-
mu drugiego. Te same reguły sto-
suje się podczas implementacji in-
terfejsów. Wszystkie te reguły dzie-
dziczenia można opisać za pomo-
cą następujących zasad:

typy mogą pochodzić tylko z ty-
pów bazowych, które są przeźro-
czyste,

tylko przeźroczyste lub bezpiecz-
ne krytyczne metody mogą być
nadpisywane,

tylko transparentne lub krytycz-
ne-bezpieczne metody interfej-
su mogą być implementowane.

Podsumowanie

Jak widać, model bezpieczeństwa
Silverlight znacznie odbiega od tego,
który znamy z pełnej wersji .NET Fra-
mework. Został on znacznie uprosz-
czony, dzięki czemu jest łatwiejszy
w implementacji. Ważne jest, aby pro-
gramista zwracał uwagę na wszyst-
kie wymienione kwestie. l

Tabela 2.

Zależności przy stosowaniu różnych atrybutów i możliwość

wywoływania metod

Atrybut

bezpieczeństwa

Rodzaj

Możliwość

wywołania

przez kod

aplikacji

(jeśli metoda

jest widoczna)

Kod aplikacji

-

Przeźroczysty

Tak

Platforma

None

Przeźroczysty

Tak

Platforma

SecuritySafe
Critical

Bezpieczny
krytyczny

Tak

Platforma

SecurityCritical

Krytyczny

Nie

O autorze

Autor jest pracownikiem firmy Microsoft. Na co dzień zajmuje się m. in. tworze-
niem rozwiązań w oparciu o SQL Server w różnych aspektach – bazy relacyjne,
usługi integracyjne, usługi analityczne. Jest certyfikowanym administratorem baz
danych (MCDBA). W wolnych chwilach pasjonat fotografii.
Kontakt z autorem: arturz@microsoft.com

background image

www.hakin9.org

hakin9 Nr 11/2007

66

Obrona

E

kstranet to wydzielona część sieci lo-
kalnej, udostępniona na zewnątrz, która
najczęściej zawiera stronę WWW danej

firmy, serwer DNS bądź zapewnia dostęp do
usług poczty e-mail dla klientów zewnętrznych
lub inne usługi udostępniane firmom współpra-
cującym czy też kontrahentom.

Ekstranety najczęściej są stosowane w celu

połączenia ze sobą dwóch lub więcej firm czy or-
ganizacji po to, by ich pracownicy mieli dostęp do
kluczowych informacji oraz aplikacji – w taki spo-
sób, aby zminimalizować utrudnienia i czas do-
stępu do danych. W istotny sposób zwiększa to
efektywność szeregu procesów, jakie zachodzą
w pracy firm czy organizacji. Ekstranet ma wiele
zalet, do których można zaliczyć między innymi:

• łatwiejsze zarządzanie danymi,
• automatyzacja wielu procesów,
• skrócenie łańcucha pośredników,
• spadek kosztów prowadzenia działalności,
• zapewnienie ciągłego dostępu do bazy da-

nych kooperantom firmy,

• szybszy dostęp do informacji na temat firmy

i jej kondycji,

• efektywniejsza komunikacja,
• możliwość płatności elektronicznych.

Lista zalet jest jak widać długa i zapewne zna-
lazłyby się jeszcze inne zalety natomiast chcąc
powiedzieć słów kilka na temat wad takiego
rozwiązania można powiedzieć że wadą stoso-
wania ekstranetu w sieci firmowej są koszty.

Niestety nie da się stworzyć bezpiecznego,

sprawnie działającego ekstranetu z szybkim
dostępem do danych, z autoryzacją przy pomo-
cy tokenów czy kart chipowych z bez ponosze-
nia nakładów finansowych.

Jednak jak pokazuje rzeczywistość wie-

le firm chcąc zapewnić swoim danym mak-
symalny stopień ochrony a swoim kontrahen-

Bezpieczny ekstranet

– strefy DMZ

Grzegorz Błoński

stopień trudności

Przy podziale sieci komputerowych często używa się sformułowań

intranetu, ekstranetu, które opisują specyficzne segmenty sieci.

Intranetem określa się wewnętrzną część sieci firmy, która nie jest

widoczna dla osób spoza firm, na przykład z poziomu Internetu.

Można wydzielić część intranetu i udostępnić ją w sposób

bezpieczny poprzez ekstranet.

Z artykułu dowiesz się

• co to jest ekstranet,
• co to jest strefa DMZ i po co się ją stosuje,
• jakie są rodzaje stref DMZ.

Co powinieneś wiedzieć

• znać budowę sieci i funkcje poszczególnych jej

elementów,

• znać podstawy iptables.

background image

Bezpieczny ekstranet – strefy DMZ

hakin9 Nr 11/2007

www.hakin9.org

67

tom, przedstawicielom i innym zdal-
nym pracownikom komfort pracy
decyduje się na używanie bezpiecz-
nego ekstranetu. Kolejną wadą może
być większa ilość elementów w sie-
ci do kontrolowania i monitorowania
przez służby informatyczne choć w
większości przypadków administra-
torzy i specjaliści dbający o bezpie-
czeństwo sieci nie odczuwają zbyt-
niego wzrostu pracy którą muszą
włożyć w monitorowanie pracy eks-
tranetu.

Ryzyko

w ekstranecie

Ekstranet udostępnia określoną ilość
zasobów, przez co naraża w jakiś
sposób część sieci firmy na przeróż-
ne próby ataków, przeprowadzanych
w celu zdobycia cennych danych czy
też zakłócenia stabilności poszcze-
gólnych usług czy serwerów. Poniżej
wymieniłem trzy ważne wskazówki
pozwalające zadbać o właściwe za-
bezpieczenie ekstranetu:

• izolacja – należy zadbać o izolo-

wanie od siebie poszczególnych
części sieci: ekstranetu, intrane-
tu oraz Internetu poprzez właści-
wą konfigurację firewalli,

• silne uwierzytelnianie – kolejny

bardzo ważny element bezpiecz-
nego ekstranetu. Wszelkiego ro-
dzaju karty identyfikacyjne i to-
keny pozwalają na zachowanie
bezpieczeństwa połączeń do na-
szego ekstranetu,

• szyfrowanie – klienci powinni łą-

czyć się przy wykorzystaniu bez-
piecznych połączeń VPN SSL.

W celu zminimalizowania możliwości
ataków stosuje się różne techniki za-
bezpieczania wydzielonej części sie-
ci. Firewall jest standardowym i naj-
częściej stosowanym mechanizmem
zabezpieczania dostępu do zaso-
bów sieciowych. Zastosowanie ta-
kiego rozwiązania w przypadku eks-
tranetu, który jest częścią sieci intra-
netowej firmy, niesie niestety za so-
bą pewne ryzyko, gdyż złamanie za-
bezpieczeń (w tym przypadku kom-
promitacja firewalla) i uzyskanie do-
stępu do którejkolwiek maszyny, ser-
wera czy też stacji roboczej daje in-
truzowi nieograniczony dostęp do
praktycznie całej sieci.

Na Rysunku 1 widać, że zasoby

ekstranetu, czyli serwery i usługi na
nich udostępnione, nie są w żaden
sposób wydzielone – są po pro-
stu częścią intranetu, dlatego ta-
kie rozwiązanie nie zapewnia bez-
pieczeństwa całej sieci. Kiedy wła-
mywacz przedostanie się przez za-
bezpieczenia firewalla i uzyska nie-

autoryzowany dostęp do serwera,
i jeśli tylko uda mu się pozyskać do-
statecznie dużo informacji o struk-
turze sieci oraz o kontach użytkow-
ników, to już nic nie będzie w stanie
przeszkodzić mu w eksplorowaniu
sieci oraz odczytywaniu informacji,
do których nie powinien mieć do-
stępu.

W celu lepszego zabezpiecze-

nia sieci ekstranet stosuje się stre-
fy DMZ (DeMilitarized Zone) – strefy
zdemilitaryzowane, które często są
nazywane sieciami granicznymi czy
też brzegowymi lub sieciami ekra-
nującymi.

Stosowanie takich rozwiązań za-

pewnia większe bezpieczeństwo chro-
nionej części sieci, zatem uzyskanie
dostępu przez intruza do zasobów
w strefie DMZ nie jest groźne dla cen-
nych danych znajdujących się w czę-
ści intranetowej.

Jednym ze sposobów wydziela-

nia strefy DMZ jest stosowanie tak
zwanego stakowania firewalli (cza-
sami można też spotkać się z okre-
śleniem dual-firewall). Stakowanie,
czyli ustawianie firewalli w stos – po-
dobnie jak to się robi z koncentra-
torami w sieciach LAN – pozwala
na bardzo eleganckie wydzielenie
strefy DMZ. Na Rysunku 2 widać
takie rozwiązanie przy wykorzysta-
niu dwóch firewalli, gdzie strefa DMZ
znajduje się dokładnie pomiędzy
nimi.

Tego typu rozwiązania zwane

czasami mid-ground DMZ są dość
popularne, lecz okupione kosztami
związanymi z posiadaniem drugie-

Rysunek 1.

Zabezpieczanie intranetu przy pomocy firewalla

Rysunek 2.

Strefa DMZ pomiędzy dwoma firewallami

background image

hakin9 Nr 11/2007

www.hakin9.org

Obrona

68

go firewalla. Jeden z firewalli chro-
ni strefę DMZ przed atakami z In-
ternetu, drugi natomiast chroni sieć
intranet w przypadku skuteczne-
go przełamania zabezpieczeń na
pierwszym firewallu. Rozwiązanie
takie pozwala na podwyższenie
poziomu bezpieczeństwa, ponie-
waż przełamanie zapory chroniącej
dostępu do strefy DMZ nie pozwa-
la jeszcze na przejście do strefy
intranetu.

Strefa DMZ jest częścią sieci

intranet, ale jednocześnie także czę-
ścią sieci Internet – z powodu umoż-
liwienia dostępu z zewnątrz do jej
zasobów. Ruch w strefie DMZ od-
bywa się najczęściej poprzez wirtu-
alne sieci prywatne (VPN – Virtual
Private Network
), co polepsza bez-
pieczeństwo.

Kolejnym z rozwiązań zapew-

niających wysoki poziom bezpie-
czeństwa jest trójostrzowy firewall
(Three-pronged firewall), w któ-
rym firewall obsługuje trzy inter-
fejsy sieciowe chroniące kolejno:
strefę DMZ, intranet oraz Internet.
Rysunek 3 przedstawia przykład
takiego rozwiązania. Jest to tak
naprawdę najtańsza alternatywa,

ponieważ wykorzystuje tylko jeden
firewall.

Przykładem gotowego rozwiąza-

nia wykorzystującego technikę trójo-
strzową jest urządzenie o nazwie PIX
produkowane przez firmę Cisco, które
jest specjalizowanym firewallem, uży-
wanym przez bardzo wiele firm oraz
instytucji na całym świecie. W przy
padku sprzętowego firewalla PIX ma-
my zdefiniowany domyślnie podział
na poziomy bezpieczeństwa :

• poziom bezpieczeństwa 100 – naj-

wyższy możliwy poziom bezpie-

czeństwa, używany domyślnie
przez interfejs wewnętrzny,

• poziom bezpieczeństwa 0 – naj-

niższy możliwy poziom bezpie-
czeństwa, domyślnie używany
przez interfejs zewnętrzny. Ruch
sieciowy może płynąć z tego in-
terfejsu do innych interfejsów tyl-
ko jeśli ręcznie skonfigurujemy
taki przepływ,

• poziomy bezpieczeństwa 1–99

mogą być zdefiniowane na każ-
dym innym interfejsie firewalla
PIX. W trójostrzowym firewal-
lu PIX wewnętrzny interfejs ma
typowo przypisany poziom 100,
zewnętrzny 0, a trzeci interfejs
– 50.

Do konfiguracji stref DMZ wyko-
rzystać można także linuksowe ip-
tables – Listing 1 prezentuje odpo-
wiedni przykład. Jest to tylko frag-
ment skryptu zawierający podstawo-
we reguły dotyczące ruchu w strefie
DMZ. W Internecie można znaleźć
wiele innych przykładów z dokład-
nymi opisami konfiguracji stref DMZ
przy pomocy iptables.

Jak widać na Listingu 1, ruch z In-

ternetu do serwerów w strefie DMZ
jest akceptowany tylko na tych por-
tach, na których pracują udostępniane
usługi. Taka konfiguracja zapewnia
nam odrzucanie potencjalnych prób
połączeń do maszyn w strefie DMZ
na innych niż przez nas zdefiniowane
portach, co ma pozytywny wpływ nie
tylko na bezpieczeństwo, ale także na
skuteczne zmniejszenie wolumenu nie-
potrzebnego ruchu w sieci. W tym

Listing 1.

Skrypt iptables zawierający reguły ruchu w strefie DMZ

# Sekcja DMZ
#
# Reguły podstawowe
#

$IPTABLES

-A FORWARD -i

$DMZ_IFACE

-o

$INET_IFACE

-j ACCEPT

$IPTABLES

-A FORWARD -i

$INET_IFACE

-o

$DMZ_IFACE

-m state \

--state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES

-A FORWARD -i

$LAN_IFACE

-o

$DMZ_IFACE

-j ACCEPT

$IPTABLES

-A FORWARD -i

$DMZ_IFACE

-o

$LAN_IFACE

-m state \

--state ESTABLISHED,RELATED -j ACCEPT

#
# Serwer HTTP
#

$IPTABLES

-A FORWARD -p TCP -i

$INET_IFACE

-o

$DMZ_IFACE

-d

$DMZ_HTTP_IP

\

--dport 80 -j allowed

$IPTABLES

-A FORWARD -p ICMP -i

$INET_IFACE

-o

$DMZ_IFACE

-d

$DMZ_HTTP_IP

\

-j icmp_packets

#
# Serwer DNS
#

$IPTABLES

-A FORWARD -p TCP -i

$INET_IFACE

-o

$DMZ_IFACE

-d

$DMZ_DNS_IP

\

--dport 53 -j allowed

$IPTABLES

-A FORWARD -p UDP -i

$INET_IFACE

-o

$DMZ_IFACE

-d

$DMZ_DNS_IP

\

--dport 53 -j ACCEPT

$IPTABLES

-A FORWARD -p ICMP -i

$INET_IFACE

-o

$DMZ_IFACE

-d

$DMZ_DNS_IP

\

-j icmp_packets

Rysunek 3.

Trójostrzowy firewall chroni DMZ oraz intranet

background image

Bezpieczny ekstranet – strefy DMZ

hakin9 Nr 11/2007

www.hakin9.org

69

miejscu chciałbym wspomnieć o roz-
wiązaniach hybrydowych które sto-
sowane są także przy budowie stref
DMZ. Bardzo często okazuje się że po-
łączenie kilku dobrych rozwiązań poz-
wala na zbudowanie bardziej skompli-
kowanej strefy DMZ w sytuacjach gdy
właśnie taka jest potrzeba.

Załóżmy że nasza firma współ-

pracuje z dwoma innymi i musi
część zasobów udostępnić jednej
i drugiej lecz każda z tych firm po-
winna mieć dostęp do innego ro-
dzaju zasobów które dodatkowo
znajdują się na różnych serwerach
w naszej firmie. Możemy więc utwo-
rzyć dwie oddzielne strefy DMZ
i tak pokierować ruchem na firewal-
lu znajdującym się po stronie inter-
netu aby połączenia z jednej firmy
były kierowane do strefy DMZ_1
a połączenia z drugiej firmy do strefy
DMZ_2. Warto zauważyć że w przy-
padku tego typu schematu stref DMZ
zakładając że poszczególne firewal-
le są dobrze skonfigurowane intra-
net naszej firmy jest bardzo dobrze
odseparowany od internetu przez co
ryzyko ataku na intranet jest bardzo
mocno obniżone.

Bardzo ciekawym projektem

pozwalającym na zabezpieczenie
sieci ekstranet jest SEVA (Sécu-
risation d'Extranet Virtuel en utili-
sant des Agents intelligents
), fra-
mework, za pomocą którego moż-
na szybko i sprawnie skonfiguro-
wać i uruchomić bezpieczny eks-
tranet. Autorami projektu są Pierre
Vannel oraz Yves Roudier, francu-
scy specjaliści zajmujący się bez-
pieczeństwem w sieci, a sam pro-
jekt jest wspierany między innymi
przez francuskie Ministerstwo Fi-
nansów.

W celu zabezpieczania dostępu

do zasobów ekstranetu stosuje się
oprócz firewalli także inne rozwiąza-
nia, na przykład karty chipowe i to-
keny. Takie właśnie rozwiązania są
składnikami projektu SEVA, wspo-
magając między innymi dynamicz-
ną aktualizację informacji o ruchu
w sieci oraz weryfikując globalne
aspekty polityki bezpieczeństwa.
Dla przykładu, dostęp do zasobów
jest dynamicznie konfigurowany na

background image

hakin9 Nr 11/2007

www.hakin9.org

Obrona

70

firewallu bez udziału człowieka.
Prawa dostępu mogą być automaty-
cznie aktualizowane dla każdego
użytkownika dzięki wykorzystywa-
nym smart-agentom. Użytkownicy
są bardzo dokładnie identyfikowa-
ni dzięki wykorzystaniu kart chipo-
wych oraz tokenów. Każdy użyt-
kownik ma dostęp do zasobów tyl-
ko wtedy, kiedy umieści w czytniku
swojej stacji roboczej kartę chipo-
wą albo token.

Po dokładniejsze informacje na

temat tego rozwiązania odsyłam na
stronę http://www.eurecom.fr/index.
en.htm
.

Pisząc o strefach DMZ, bezpie-

cznym ekstranecie i firewallach PIX,
nie można nie wspomnieć o rozwią-
zaniu o nazwie Connectra, które
jest dziełem firmy Checkpoint – lide-

ra w dziedzinie rozwiązań bezpie-
czeństwa sieciowego. Connectra
wyposażona jest między innymi
w funkcję o nazwie One-Click SSL
Extranet
, która dostarcza znacz-
nie prostszej struktury i możliwości
pozwalających na bezpieczny zdal-
ny dostęp współpracującym firmom
czy organizacjom. Użytkownicy eks-
tranetu mają dostęp poprzez sieć
Web do współdzielonych zasobów
firmy. Poprzez połączenie dostę-

pu do aplikacji, serwerów i innych
zasobów Connectra automatycznie
buduje unikatowy portal Web dla
określonych grup użytkowników eks-
tranetu. Connectra jest dużo prost-
szym rozwiązaniem niż konfiguro-
wanie pojedynczych serwerów dla
zdalnego dostępu czy budowanie
stref DMZ.

Podsumowanie

Sieci korporacyjne są podatne na
zagrożenia stwarzane przez nie-
upoważniony personel, a także tele-
pracowników. Administratorzy i spe-
cjaliści od ochrony sieci w wielu fir-
mach borykają się z takimi proble-
mami na co dzień. Każda sieć kor-
poracyjna jest w jakiś sposób po-
łączona z inną siecią – najczęściej
z Internetem, z którego pochodzi
wiele zagrożeń (na przykład ataki
Denial of Service mogą sparaliżo-
wać działanie krytycznych aplikacji
biznesowych firmy, a hakerzy przej-
mujący kontrolę nad serwerami fir-
my mogą dopuszczać się na nich
sabotażu). Dzisiejsze sieci w różnych
przedsiębiorstwach rozciągają się
niejednokrotnie na cały świat, obsłu-
gując nie tylko pracowników firmy,
ale także partnerów biznesowych,
klientów, dostawców i konsultan-
tów. Niezmiennie jednak największe
zagrożenie atakami zawsze pocho-
dzi z wewnątrz firmy, a więc poten-
cjalnym atakującym może okazać
się niedoceniony, sfrustrowany pra-
cownik.

W świetle informacji zawartych

w niniejszym artykule warto zastano-
wić się przy definiowaniu stref DMZ
lub konfigurowaniu firewalli nad tym,
czy ochrona przed atakami pocho-
dzącymi z Internetu to wystarczający
element dbałości o bezpieczeństwo
w sieci firmy bądź organizacji. l

O autorze

Grzegorz Błoński z wykształcenia jest informatykiem, certyfikowanym specjalistą
IBM. Pracuje w dużej firmie o zasięgu światowym. Zajmuje się administracją i bezpie-
czeństwem sieciowym. Należy do międzynarodowych organizacji ISOC oraz ISACA,
zajmujących się szeroko pojętym bezpieczeństwem IT.
Kontakt z autorem: mancymonek@wp.pl

Rysunek 4.

Poziomy bezpieczeństwa interfejsów firewalla PIX

Rysunek 5.

Hybrydowy układ dwóch stref DMZ

background image

Bezpieczny ekstranet – strefy DMZ

hakin9 Nr 11/2007

www.hakin9.org

71

background image

hakin9 Nr 11/2007

www.hakin9.org

72

Księgozbiór

Księgozbiór

hakin9 Nr 11/2007

www.hakin9.org

73

Tytuł: Hakerskie łamigłówki

Autor: Ivan Sklyarov

Wydawca: Helion

Rok wydania w Polsce: 2006

Liczba stron: 280

Hakerskie łamigłówki to debiut Ivana Sklyarova. I to,
moim zdaniem, bardzo udany debiut. Sam autor przy-
znaje, że pisząc tę książkę chciał stworzyć lekturę inte-
resującą i różną od innych pozycji o podobnej tema-
tyce. W moim odczuciu ambitny cel został osiągnię-
ty. Książka składa się z dwóch części. Pierwszej – ze
sporą ilością łamigłówek oraz drugiej – z rozwiązania-
mi tychże zagadek. Łamigłówki zawarte w części pierw-
szej ułożone są w 6 wiązek tematycznych dotyczących
kryptoanalizy, sieci, systemu Windows, kodowania,
bezpiecznego programowania oraz techniki inżynierii
wstecznej. Jednak oprócz podstawowej wiedzy z pre-
zentowanego zakresu tematycznego, pozycja ta wyma-
ga od czytelnika dużego zaangażowania i samodyscy-
pliny, które będą niezbędne podczas rozwiązywania
zagadek.

Większość z nas musi zadowolić się rozwiązywaniem

zagadek ułożonych dla rozrywki: powieściami kryminal-

nymi i krzyżówkami. Odczytywaniem tajemniczych szy-
frów pasjonują się nieliczne jednostki.

Przyznam, że książka ta nie należy do łatwych,

lecz pomimo tego trudno się od niej oderwać. Język,
w jakim została napisana, jak również fakt bardzo prak-
tycznego i profesjonalnego podejścia autora do prezen-
towanych problemów sprawiają, że czytelnik sięgnie
po nią chętnie i w mojej opinii, z pewnością się nie za-
wiedzie.

Podsumowując: Hakerskie łamigłówki, zainteresują

tych, którzy chcą zgłębiać temat szeroko rozumianego
bezpieczeństwa sieci, aplikacji, danych i mają w tej dzie-
dzinie solidne podstawy, zaś rozwiązywanie logicznych
zagadek traktują jako wyzwanie, w celu sprawdzenia
swojej wiedzy.

Tomasz Przybylski

Wydana przez PWN książka PKI Podstawy i zasady dzia-
łania. Koncepcje, standardy i wdrażanie infrastruktu-
ry kluczy publicznych to kolejna publikacja z wyda-
wanej od niedawna serii (Nie)bezpieczeństwo. Jest
ona przeznaczona dla osób odpowiedzialnych za bez-
pieczeństwo informatyczne oraz wdrażanie infrastruk-
tury klucza publicznego (Public Key Infrastructure
– PKI) w firmie. Omawia zastosowanie szyfrowania
z użyciem klucza asymetrycznego (czyli pary klucz
publiczny/klucz prywatny) do tworzenia PKI. Autorzy
w kolejnych rozdziałach opisują historię kryptografii
klucza publicznego, koncepcję infrastruktury, podsta-
wowe usługi PKI (takie jak uwierzytelnianie, integral-

Tytuł: PKI. Podstawy i zasady działania. Koncepcje, standardy

i wdrażanie infrastruktury kluczy publicznych.

Autor: Carlisle Adams, Steve Lloyd

Wydawca: Wydawnictwo Naukowe PWN

Rok wydania w Polsce: 2007

Liczba stron: 360

ność i poufność), dodatkowe usługi zapewniane przez
PKI (bezpieczna komunikacja, znacznik czasu, elektro-
niczny notariat, niezaprzeczalność, zarządzanie upraw-
nieniami, prywatność), certyfikaty i certyfikacje, stan-
dardy związane z PKI oraz kwestie związane z wdraża-
niem PKI.

Infrastruktura klucza publicznego jest bardzo istotna

w nowoczesnym, zinformatyzowanym świecie, ponie-
waż oprócz uwierzytelniania użytkowników w dużej
sieci firmowej pozwala na skuteczne oferowanie usług
finansowych, bezpieczny handel internetowy oraz ofe-
ruje ogólnodostępny podpis cyfrowy. W naszym kraju
wszystkie z powyższych usług, poza podpisem elektro-

background image

hakin9 Nr 11/2007

www.hakin9.org

72

Księgozbiór

Księgozbiór

hakin9 Nr 11/2007

www.hakin9.org

73

Tytuł: Hakerskie łamigłówki

Autor: Ivan Sklyarov

Wydawca: Helion

Rok wydania w Polsce: 2006

Liczba stron: 280

nicznym, są już dość powszechnie stosowane. Wpro-
wadzenie podpisu elektronicznego w Polsce napotyka
ogromne trudności i termin jego wdrożenia jest ciągle
przesuwany w bliżej nieokreśloną przyszłość. Książka
opisuje zasady działania oraz wdrażania infrastruktury
klucza publicznego i można mieć nadzieję, że jej wyda-
nie pozwoli na oswojenie się z podpisem elektronicz-
nym i pomoże przyspieszyć jego powszechne wprowa-
dzenie.

Książka robi dobre wrażenie już na pierwszy rzut

oka. Szczegółowy spis treści, interesujące, ale jedno-
cześnie oszczędnie dawkowane przypisy – widać solid-
nie i starannie przygotowane wydanie. Jest napisana w
dość przystępny i interesujący sposób, co nie jest proste,
ponieważ tematyka niektórych rozdziałów – delikat-
nie mówiąc – nie należy do szczególnie porywających.
Także tłumaczeniu i ogólnemu poziomowi technicznemu
nie można nic zarzucić. Nie napotkałem literówek, dziw-
nych sformułowań i innych niedogodności, które zdarza-
ją się w wydawanych naprędce książkach innych wydaw-
nictw informatycznych. Dobrym pomysłem jest także
zebranie na końcu książki odnośników do źródłowych
stron internetowych. Zwiększa to i tak znakomitą czytel-
ność książki.

Główny mankament, który od razu rzuca się w oczy, to

opóźnienie polskiego wydania w stosunku do oryginału aż o
4 lata – dlatego też stwierdzenie na ostatniej stronie okład-

ki mówiące o prezentacji najnowszych rozwiązań w dziedzi-
nie PKI jest chyba nieco przesadzone. Cztery lata to w infor-
matyce sporo czasu i w kryptografii poczyniono przecież
w tym czasie pewne postępy. Z drugiej jednak strony, książ-
ka nie opisuje konkretnych rozwiązań określonych firm, ale
raczej ogólne zasady oraz standardy, które nie zmieniają się
tak szybko. Książka ta z założenia jest zbiorem zasad, jakimi
rządzi się PKI oraz możliwych metod jej implementacji przy
pomocy różnych protokołów. Wydawnictwo PWN kolejny raz
udowodniło, że jest solidnym wydawcą.
Plusy:

• Solidne wydanie bez literówek, nieudolnego tłuma-

czenia i innych błędów spotykanych przy pospiesz-
nym i oszczędnym wydawaniu książek.

• Konkretny i rzeczowy opis cech, funkcji i zastosowań

PKI.

Minusy:

• Opóźnienie w stosunku do oryginału o 4 lata

Przemysław Prytek

R

E

K

L

A

M

A

Serdeczne podziękowania dla wydawnictwa Helion
i PWN, za udostępnienie książek do recenzji.

background image

www.hakin9.org

hakin9 Nr 11/2007

74

Wywiad

hakin9:

Proszę przybliżyć swoją osobę Czytel-

nikom. Czym się Pan zajmuje?

Sebastian Małycha:

Swoją karierę za-

wodową rozpocząłem 10 lat temu – związa-
na jest głównie z pracą w dziale handlowym
– tam zaczynałem, ten dział jest też moim
ulubionym, ponieważ nie funkcjonuje w ode-
rwaniu od innych ludzi. A ja uwielbiam słu-
chać ludzi i do nich mówić. Od prawie 3 lat
pracuję w Mediarecovery – początkowo ja-
ko dyrektor handlowy, obecnie jako prezes
zarządu. Praca sprawia mi bardzo dużo ra-
dości, ta branża jest dla mnie niezwykle in-
teresująca. Informatyka śledcza jest bardzo
szybko rozwijającą się dziedziną. Odnajduję
się w niej w 100%!

h9:

Czym głównie zajmuje się firma Media-

recovery? Jakie są jej najważniejsze zadania?

SM:

Wyróżniłbym dwa obszary działań fir-

my Mediarecovery. Przede wszystkim jest to
największa w Polsce firma zajmująca się usłu-
gową informatyką śledczą – głównie na potrze-
by organów ścigania: policji, prokuratury i in-
nych służb. To około 90% naszej działalności w
tym obszarze. Pozostałe 10% to usługi dla firm
komercyjnych lub indywidualnych odbiorców
– np. rozwodzących się małżeństw, czy też po-

szukiwanie osób za pomocą informacji dostęp-
nych w formie elektronicznej.

Drugi zakres działania firmy to projekto-

wanie i budowa kompletnych platform bezpie-
czeństwa informacji, ściśle na potrzeby ryn-
ku komercyjnego – głównie w sektorach ta-
kich jak bankowość, finanse, telekomunika-
cja. Są to wysoko specjalizowane platformy,
jak choćby EnCase w wydaniu Enterprise. Bu-
dujemy także kompletne stanowiska do infor-
matyki śledczej, staramy się tłumaczyć dzia-
łom bezpieczeństwa w firmach, że w dzisiej-
szych czasach ważną rzeczą jest przygoto-
wanie się na sytuację, w której zaistnieje po-
trzeba zabezpieczenia dowodów w formie
elektronicznej.

h9:

Czy mógłby Pan opowiedzieć o jakimś

ciekawym zleceniu, jakie otrzymaliście?

SM:

Ciężko tu posługiwać się jakimiś kon-

kretnymi przykładami, ponieważ rzadko kto
chciałby ujawnić, że wyciekły mu cenne infor-
macje, albo że został okradziony przez swoje-
go pracownika. Mogę przytoczyć sprawę za-
walonej hali MTK w Katowicach, w której brali-
śmy udział – poprzez analizę nośników danych
z miejsca tragedii, udało nam się pozyskać
dużo cennych informacji. To dobry przykład

Wywiad z prezesem

Mediarecovery

– Sebastianem Małychą

Sebastian Małycha

Kariera Sebastiana Małychy

zaczęła się 10 lat temu.

Od prawie 3 lat pracuje

w Mediarecovery – początkowo

jako dyrektor handlowy,

obecnie jako prezes zarządu.

background image

Wywiad

hakin9 Nr 11/2007

75

ukazujący, że nie jesteśmy związani tylko ze sprawami
dotyczącymi hakerstwa czy piractwa.

Kolejnym przykładem może być zaginięcie nastolet-

niego chłopaka. Rodzice nie potrafili w żaden sposób wy-
jaśnić, co mogło się stać. Po przeanalizowaniu zawarto-
ści komputera domowego okazało się, że chłopak praw-
dopodobnie należy do sekty – m. in. zajmował się jej stro-
ną internetową. Nie wiem, jak zakończyła się cała spra-
wa, ale przynajmniej udało nam się wskazać kierunek,
w którym należy prowadzić dalsze poszukiwania.

h9:

Co można zrobić, aby zwiększyć tak nikłą w Pol-

sce świadomość istnienia informatyki śledczej i ukazać
możliwości jakie ona stwarza?

SM:

To pytanie za 100 punktów. Jesteśmy polską fir-

mą, nie dysponujemy budżetem w wysokości kilku mi-
lionów dolarów na kampanię reklamową. Na tę chwilę
podjęliśmy szereg działań związanych z edukacją rynku
– konkretnie segmentu organów ścigania. Chcemy zwię-
kszyć wiedzę przedstawicieli organów ścigania w za-
kresie dowodu elektronicznego, przekonać ich, że taki
dowód nie jest żadną czarną magią, za to bardzo przy-
datną rzeczą. Staramy się zatem małymi kroczkami edu-
kować rynek i mam nadzieję że poziom świadomości bę-
dzie się zwiększać.

h9:

Czy uważa Pan, że korzystanie z Waszych usług

stanie się normą w życiu codziennym?

SM:

Korzystanie z usług takich firm jak nasza z pew-

nością stanie się powszechne. Wystarczy popatrzeć na
rynek amerykański, gdzie dowód elektroniczny to do-
słownie chleb powszedni. Do tego stopnia, że gdy od-
chodzi pracownik wyższego szczebla, robi się kopię bi-
narną jego dysku twardego. Jeżeli coś się wydarzy, bę-
dzie możliwość powrotu do zawartych tam informacji.
Przykładem może być tragedia WTC – przebadano wte-
dy ponad 1200 komputerów, stosując elementy informa-
tyki śledczej. Nie wyobrażam sobie, aby w Polsce – przy
tak szybkim rozwoju sektora IT – mogło być inaczej. Wy-
obraźmy sobie sytuację, w której dyrektor marketingu fir-
my X buduje sobie w ciągu roku trzeci dom w Hiszpanii.
To może budzić podejrzenia ze strony zarządu czy ra-
dy nadzorczej. W takiej sytuacji będziemy potrzebni my.
Proszę sobie założyć, że ta firma posiada np. 1500 kom-
puterów – odnalezienie i wyciągnięcie informacji doty-
czących tych 3 domów z tak rozbudowanej infrastruk-
tury bez odpowiedniego przygotowania, wiedzy i sprzę-
tu byłoby niemożliwe. Myślę, że pracodawcy zaczną do-
strzegać możliwości, jakie daje informatyka śledcza. Je-
steśmy w stanie odpowiedzieć na prawie każde pytanie
dotyczące określonej nieprawidłowości albo jeśli nie ma
śladów przestępstwa potwierdzić, że wszystko dzieje się
prawidłowo.

h9:

Jaki sprzęt potrzebny jest do odzyskiwania da-

nych? Czy odzyskiwanie danych to kosztowny zabieg
– jakiego rzędu są to koszta?

SM:

Odzyskiwanie danych to tylko około 20% ca-

łego procesu informatyki śledczej, nie zawsze zacho-
dzi taka konieczność. Jednak jeżeli zaistnieje sytuacja,

background image

hakin9 Nr 11/2007

www.hakin9.org

Wywiad

76

w której ktoś skasuje dane z nośnika, to możliwe jest
ich odzyskiwanie niemal w locie. Posiadamy oprogra-
mowanie, które jest w stanie przeszukać całość struk-
tury dysku twardego. Szukając przykładowo pliku seba-
stian
oprogramowanie to znajdzie wszystkie takie pliki,
nawet skasowane. Jest to w 90% oprogramowanie ame-
rykańskie, w pozostałej części niemieckie. Jeśli chodzi
o koszty to w odniesieniu do innych firm odzyskujących
dane, nasze laboratorium pobiera bardzo konkurencyj-
ne wynagrodzenie.

h9:

Jak wygląda schemat przeprowadzanego przez

Państwa śledztwa?

SM:

Co jest ważne przy tego rodzaju śledztwie?

Przede wszystkim tak zwany chain of custody czyli łań-
cuch zdarzeniowy, który musi zaistnieć od momentu po-
zyskania i zabezpieczenia informacji mających być do-
wodem, do momentu prezentacji w sądzie. Ten łańcuch
musi być nierozerwalny. Musimy być w stanie udowodnić,
co się działo z danym nośnikiem informacji na każdym
etapie od momentu zabezpieczania nośnika, aż do pre-
zentacji znajdujących się na nim dowodów. W tej pracy
trzeba być po trochu informatykiem, analitykiem i praw-
nikiem.

Łącząc te wszystkie umiejętności w jedną całość

otrzymujemy proces zwany informatyką śledczą. Składa-
ją się na nią trzy części: odpowiednie oprogramowanie,
sprzęt oraz wiedza. Żaden z tych elementów nie przy-
niesie efektów bez pozostałych dwóch. Wyobraźmy so-
bie sytuację, w której mamy do przeanalizowania 10 dys-
ków, każdy po 80 GB. Bez odpowiedniego oprogramowa-
nia nie jesteśmy w stanie tego zrobić w rozsądnym cza-
sie. Po drugie, nie będziemy w stanie zrobić nic z tymi no-
śnikami bez odpowiedniego sprzętu – na przykład tzw.
blokerów, które zabezpieczą nośnik przed dodawaniem
wpisów. Bez odpowiedniej wiedzy na temat tego łańcu-
cha zdarzeniowego nie będziemy w stanie zaprezento-
wać dowodów w sądzie.

h9:

Czy wasi klienci współpracują z wami profilak-

tycznie czy tylko w momencie pojawienia się zagroże-
nia?

SM:

Biorąc pod uwagę, że 90% naszych usług wy-

konywanych jest na potrzeby policji czy prokuratury
– można powiedzieć, że pojawiamy się już po fakcie,
a klienci zgłaszają się do nas po zaistniałym incyden-
cie. Natomiast na drugim obszarze działalności Media-
recovery, czyli budowania platform bezpieczeństwa,
klienci zdecydowanie chcą się zabezpieczyć jeszcze
przed wystąpieniem potencjalnego incydentu. Reasu-
mując, w kontekście oferowanych usług występujemy
po fakcie, natomiast od strony koncepcyjnej, przygoto-
wania pewnych rozwiązań dla firm – uprzedzamy wy-
darzenia.

h9:

Do jakiego rodzaju przestępstw stosuje się infor-

matykę śledczą?

SM:

W zasadzie dziedzinę tę można wykorzystać

w przypadku dowolnego rodzaju przestępstw. Informa-
tyka śledcza jest generalnie kojarzona z piractwem,

hakerstwem czy cyberterroryzmem. A tak naprawdę
dotyczy ona prawie każdej dziedziny życia – np. kra-
dzieży, zabójstw, przestępstw gospodarczych, wyłu-
dzeń, poszukiwania zaginionych osób. W dzisiejszych
czasach 90% informacji porusza się drogą elektronicz-
ną, jeżeli szukamy jakichkolwiek śladów, dowodów na
temat jakiegoś incydentu to prawdopodobnie ta infor-
macja znajduje się w jakimś komputerze, telefonie lub
innym nośniku danych. Powoli kończą się czasy, kie-
dy osiłek z kijem baseballowym przychodził do skle-
pu po haracz. Teraz niebezpieczny staje się facet mojej
postury w białym kołnierzyku z palcami zintegrowany-
mi
z klawiaturą. Mało tego – jest on pewniejszy w swo-
im działaniu, bo kara jest w takim przypadku mniejsza,
a wielkość dochodów z cyberprzestępczości na wschód
od Polski przekroczyła już poziom profitów z handlu
narkotykami.

h9:

Czy jest możliwe odzyskanie przez Was danych

z dysku rozmagnesowanego przez profesjonalne urzą-
dzenia przeznaczone do tego celu?

SM:

Nie. Istnieje wiele mitów związanych z odzyski-

waniem danych, szczerze mówiąc nie zwykłem z nimi
walczyć. Na przykład – czy istnieje możliwość odzyska-
nia danych z połamanej płyty CD? Ja powiem, że nie, ale
ktoś inny stwierdzi, że dzisiaj nie. Zawsze można odpo-
wiedzieć, że dana rzecz nie jest możliwa dzisiaj. Przy tak
dynamicznym postępie technologicznym nie jesteśmy
w stanie przewidzieć, co będzie za 10 lat. Teraz mogę
powiedzieć, że nie ma możliwości odzyskiwania danych
z rozmagnesowanego dysku.

h9:

W jakim formacie są odzyskiwane dane – kon-

kretne pliki?

SM:

Tu uwidacznia się największa różnica między

odzyskiwaniem danych, a informatyką śledczą. Jeże-
li ktoś zleci nam odzyskanie dokumentu tekstowego, na
którym przykładowo znajduje się praca dyplomowa, to
na pewno zależy mu na odzyskaniu całości i to jest od-
zyskiwanie danych. Z punktu widzenia informatyki śled-
czej zastanawiamy się, czy w tym dokumencie teksto-
wym nie ma dowodów, które by o czymś świadczyły. In-
teresuje nas wtedy tylko jakiś fragment, część tej cało-
ści. Na tym polega różnica. W całym procesie tak na-
prawdę bardziej nas interesuje analizowanie danych niż
ich odzyskiwanie.

h9:

Czy obowiązuje Państwa jakaś klauzula tajności

narzucona przez prawo, czy tylko tajemnica zawodowa?

SM:

Przede wszystkim obowiązuje nas polskie pra-

wo. Jeżeli na pewnym etapie prac nad konkretną spra-
wą przetwarzanym informacjom zostanie nadana klauzu-
la tajności na poziomie poufne czy tajne – musimy to re-
spektować. W ramach firmy funkcjonuje kancelaria taj-
na oraz odpowiednio przeszkolone osoby po to, aby móc
przestrzegać tych wymagań. Jeżeli ktoś uzna, że doku-
menty powinny być poufne, to traktujemy je jako poufne
– zgodnie ze standardami MSWiA.

h9:

Dziękujemy za rozmowę.

SM:

Dziękuję.

background image

TREND MICRO CHRONI

KOMPUTERY PRACUJĄCE POZA BIUREM

Punkty końcowe systemu przedsiębiorstwa są co-
raz częściej urządzeniami przenośnymi, a w wielu
dużych firmach laptopów jest już więcej niż kom-
puterów stacjonarnych. Przy coraz bardziej za-
awansowanych zagrożeniach czyhających na
użytkowników w Internecie wzrost liczby urządzeń
przenośnych wymaga od przedsiębiorstw nowego
podejścia do zabezpieczeń —
mówi Max Cheng,
dyrektor generalny ds. rozwiązań dla przedsię-
biorstw w firmie Trend Micro

— OfficeScan rozsze-

rza zabezpieczenia poza sieć przedsiębiorstwa,
chroniąc komputery przed zagrożeniami interneto-
wymi w nowatorski i dynamiczny sposób.

OfficeScan 8.0 zapewnia przedsiębiorstwom

wielowarstowe zabezpieczenie skutecznie chro-
niące przed różnego rodzaju atakami, takimi jak
szkodliwe oprogramowanie, programy szpiegują-
ce, wirusy, rootkity oraz ataki z sieci, np. ze strony
hakerów. Obecnie wielu użytkowników mobilnych
łączy się z Internetem poza przedsiębiorstwem —
w hotelach, kawiarniach lub na lotniskach. Ta ten-
dencja będzie się rozwijać. Menedżerowie coraz
więcej czasu spędzają w delegacjach służbowych.
To samo dotyczy innych pracowników firm, han-
dlowców lub serwisantów. Korzystają oni z urzą-

dzeń przenośnych kontaktując się z firmą lub ak-
tualizując różnego rodzaju dane czy chociażby
sprawdzając pocztę. Wreszcie coraz więcej pracow-
ników korzysta ze służbowych notebooków rów-
nież w domu. Do tej pory było to dość ryzykowne.
Teraz dzięki nowatorskim mechanizmom zabez-
pieczającym komputer przed zagrożeniami z Inter-
netu aplikacja OfficeScan 8.0 gwarantuje ochronę
również poza siecią przedsiębiorstwa. Nowe me-
chanizmy stosują dynamiczną ocenę reputacji
domen DNS, zabezpieczając w ten sposób punkty
końcowe przed otwieraniem stron zawierających
szkodliwe oprogramowanie.

-

Wprowadziliśmy na rynek najnowszą wer-

sję aplikacji służącej do zabezpieczania kompu-
terów w przedsiębiorstwach, a także poza nimi.
OfficeScan 8.0 jest nie tylko pierwszym rozwią-
zaniem dla przedsiębiorstw wykorzystującym
metodę oceny reputacji treści internetowych,
lecz również pierwszym programem zabezpie-
czającym, który otrzymał certyfikat zgodności
z systemem operacyjnym Microsoft™ Windows
Vista. Ten produkt zapewnia lepszą ochronę przed
zagrożeniami z Internetu dzięki nowemu narzę-
dziu Web Security Rating oraz rozbudowanemu
mechanizmowi usuwania programów szpiegują-
cych – mówi Filip Demianiuk, Technical Channel
Manager Trend Micro - W ten sposób spełniliśmy
obietnicę, że przedsiębiorstwa, które planują
wdrożenie nowego systemu operacyjnego firmy
Microsoft, będą mogły się cieszyć tym samym
wysokim poziomem bezpieczeństwa – dodaje
Demianiuk.

Wdrożenie systemu zabezpieczeń może być

trudnym zadaniem, zwłaszcza w przypadku dużej

liczby klientów. Biorąc to pod uwagę, firma Trend
Micro wzbogaciła rozwiązanie OfficeScan o roz-
szerzalną architekturę modułową, która umożliwia
wdrażanie dodatkowych funkcji na zainstalowa-
nych klientach bez konieczności ponownego insta-
lowania lub dystrybuowania programu OfficeScan
przez administratorów. W rezultacie przedsiębior-
stwa mogą efektywnie zabezpieczać punkty koń-
cowe przy wykorzystaniu najbardziej aktualnych
mechanizmów OfficeScan.

OfficeScan jest głównym elementem strate-

gii Enterprise Protection Strategy firmy Trend Mi-
cro, która obejmuje również inne rozwiązania
tworzące razem wielowarstwowy system zabez-
pieczający komputer przed zaawansowanymi
atakami przeprowadzanymi za pośrednictwem po-
czty elektronicznej i Internetu. Strategia ta pro-
muje kompleksowy, wielowarstwowy model za-
bezpieczeń sieciowych, który należy do najsku-
teczniejszych jak dotąd zabezpieczeń dla przed-
siębiorstw i chroni każdy punkt sieci, od bra-
my po komputery na biurkach. Wszystkimi roz-
wiązaniami

Enterprise Protection Strategy moż-

na zarządzać centralnie za pomocą narzędzia
Trend Micro Control Manager™ umożliwiającego
koordynację ochrony przed zagrożeniami po-
chodzącymi z sieci.

Na razie aktualizacje i wersje próbne oprogra-

mowania Trend Micro OfficeScan 8.0 są dostępne
w języku angielskim ale wkrótce będą również po
polsku. Więcej informacji o tym oprogramowaniu
można znaleźć pod adresem www.trendmicro-eu-
rope.com. Na razie informacje o cenach są udzie-
lane na żądanie poszczególnych klientów.

Reklama

Menedżerowie i pracownicy firm, którzy korzystają ze swoich notebooków poza

siecią biura np. w domu lub w czasie wyjazdu służbowego również mogą już czuć

się bezpiecznie. Dzięki nowatorskiemu mechanizmowi oceny reputacji treści

internetowych najnowsza wersja oprogramowania Trend Micro™ OfficeScan™

rozszerza ochronę poza sieć przedsiębiorstwa. Office Scan 8.0 jest pierwszym

programem zabezpieczającym przed zagrożeniami internetowymi, który otrzymał

certyfikat zgodności z systemem operacyjnym Microsoft Windows Vista.

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 11/2007

www.hakin9.org

78

M

arzy mi się serwis, istny cud – nie żadne tam
pitu, pitu. Full packet na skalę światową plus
dream team, w którym znajdowaliby się tylko

best players. Ale jak takich zwerbować? W sumie to
proste – dzisiaj każdy chce wiedzieć więcej od wszyst-
kich innych, więc wystarczyłoby powiedzieć jednemu, że
drugi w to wchodzi, to trzeci też by poleciał. O! A tych,
co się nie lubią (a tacy zawsze się znajdą) by się poroz-
mieszczało w różnych sekcjach. Bo sekcji by trochę było.
Od BOKu i administracji przez security do hackingu, no
i po drodze firma audytorska. Każdy szanujący się serwis
ma dzisiaj co najmniej jedną. Pierwsze zlecenie poszło-
by na serwis, żeby deface'a konkurencja nam nie zrobi-
ła (o ile by jakaś się odważyła – w końcu dla nas nie ist-
niałyby granice i bariery – coś jak nietykalni w Indiach),
chociaż to zawsze jakieś promo jest, a potem wrzuciło-
by się kilka luczek, żeby ludki widziały, że my na poważ-
nie z tym wszystkim idziemy. Do kadry, myślę, można
by dodać jeszcze trochę freelancerów. Nie, nie za kasę.
Przecież w tym biznesie ma rządzić wena, a nie pienią-
dze (możliwość lansu by im na razie wystarczyła). Ci, co
myślą inaczej, niech lepiej zaczną od nowa. A dalej nasi
skrobnęliby trochę artów, po engliszu, bo po co rodacy
mają wiedzieć, o co kaman – skoro od razu na między-
narodówkę można wejść z polską domeną. Liczy się
świat, nie ojczyzna. I na hostingu by się zaoszczędziło.
Chłopaki mają wejścia, to by jedynie składka na jakie-
goś demona szybkości była (chociaż sponsor od razu też
by się znalazł), ale za to mirror na każdym MANie by był,
z minutową synchronizacją i monitoringiem przełączają-
cym DNSy w razie awarii – tak dla pewności, że nie da
się nas wyłączyć. Obowiązkowo baza Hacked by była -
rewersów bezpieczeństwa też trzeba kiedyś wprowadzić
na salony, no i to działa na skrypciaki jak Emacs prze-
chodzący przez Sendmaila. By być bardziej user friendly,
założylibyśmy od razu własną szkołę Tak. Elitarną (pod-
ręczniki już teraz można kupić w Internecie!). 2.700 PLN
za semestr – płyta z oprogramowaniem Open Source
gratis (wszystko za darmo prócz tego, jak z niego korzy-
stać) i możliwość zrobienia sobie zdjęcia z wykładow-
cami przed siedzibą w Warszawce. Dalej już chyba by
się samo rozkręciło. Początkowe ponad 15.000 odwie-
dzin dziennie by się przełożyło na obklejenie stronki ban-

Infomafia.pl

nerami w każdym boksie, w połowie artykułu (za możli-
wość przeczytania całego oczywiście płatność SMSem!)
i popupy w każdym aktywnym odnośniku. System newsów
– oczywiście Web 2.0, żeby nie posądzali nas o manipu-
lację medialną, chociaż własny streamer TV też z czasem
by się założyło. Wielki Brat w pokoju programistów to
czysta wiedza i doza humoru non stop. Wszyscy by wystą-
pili, żeby nie psuć atmosfery wspólnoty. Jakby parę kon-
traktów poszło w eter, to i każdy by dostał swojego laptopa
za 1.000 $ per developer, ale pod warunkiem obietnicy, że
wtedy własnego bloga utworzy. Coś pięknego. Ponad stu-
osobowa reprezentacja elity IT Polski (w tym ukryci tytani,
którzy teraz boją publicznie się przyznać, że kura kiedyś
była jajkiem) kształtowałaby gusta mas i to żaden low level
hacking
by nie był. Za każdym razem oszlifowana informa-
cja, z odpowiednim nakierowaniem na Czytelnika. Syste-
mu komentarzy by nie było – bo po co, skoro te krytyczne
i tak by moderator wycinał. Trochę oprogramowania autor-
skiego by poszło na aukcje, wtedy na oszkloną siedzibę
byśmy uzbierali. Potem to tylko wejście na giełdę – własna
partia polityczna i oddział reprezentacyjny z szefem regio-
nu w każdym mieście, ale tylko tam, gdzie mamy lustrza-
ne serwery. Do zleceń byśmy wykorzystali system stoso-
wany przez korporacje taksówkarskie. Kto ma bliżej ten
dyga. Po odwiedzinach paru konferencji i końcowym roz-
głosie zawsze przychodzi czas na trochę relaksu. W okre-
sie wakacyjnym ograniczalibyśmy się do wywiadów i zdal-
nych konsultacji z miejsc wypoczynkowych. Gdyby inte-
resy trochę podupadały, bo członkowie by zaczęli two-
rzyć własne forki projektów, otworzyłoby się jakiś sklep
z firmowymi gadżetami: koszulki, kubki, smycze, długo-
pisy. Dzieciaki uwielbiają takie rzeczy. Ewentualnie wyda-
łoby się parę poradników dla topornych i książkę Skazani
na sukces
z pozycjonowaniem w czołowych księgarniach.
Kasa by była duża, ale też dużo osób do podziału, dlate-
go nikt by nie zarzucił nam monopolu i że nie robimy tego
dla idei, a wiadomo – nie samym kodem człowiek żyje.
I to wszystko oczywiście dla bezpieczeństwa. Ewentualne
zyski pozwalałyby na dalszy rozwój i inwestycję w bada-
nia nad nowymi metodami i udoskonaleniami. Przecież nie
pojadę do klienta Peugeotem 106, skoro Lexus GS ucho-
dzi za jeden z najbezpieczniejszych samochodów świata.
Tak. To wszystko dla bezpieczeństwa. l

Patryk Krawaczyński agresor@nfsec.pl

Felieton

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) 427 36 69 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) 427 36 79

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 grudnia 2007 r.

Redakcja zastrzega sobie prawo zmiany zawartości pisma.

hakin9

12/2007

w następnym numerze

między innymi:

Zapowiedzi

Słabość mocnych haseł

Zastosowanie haseł to nadal podstawowa metoda uwierzytelniania w sys-
temach informatycznych. Wszelkiego typu klucze alfanumeryczne, tajne
słowa, PINy to często jedyne zabezpieczenie aktywów systemu przed nie-
upoważnionym dostępem. Niestety, w dobie stale rosnących możliwości obli-
czeniowych, jest to zabezpieczenie coraz mniej skuteczne, a haker dyspo-
nuje bogatym arsenałem środków i technik, aby ową nieskuteczność wyko-
rzystać.

Domenowi oszuści

Informacje o właścicielach domen internetowych są dostępne w bazie
WHOIS. Pewna firma korzysta z tej bazy w poszukiwaniu domen, które za
mniej niż 90 dni stracą ważność i wysyła informację o konieczności przedłu-
żenia tej domeny. E-mail jest tak skonstruowany, że niejedna osoba może
pomyśleć, iż domena została zarejestrowana w tej właśnie firmie.

Niebezpieczny firefox

Przeglądarka Mozilli zyskuje sobie coraz większą popularność. Wielu użyt-
kowników wybrało ją ze względu na bezpieczeństwo, które oferuje, wydajny
silnik Gecko, czy kilka udoskonaleń, które na stałe zagościły w przeglądar-
kach. Czy jednak Firefox jest tak bezpieczny, za jakiego jest uważany?

Farmy serwerów – zasady bezpieczeństwa

Artykuł Rafała Podsiadłego pokaże Czytelnikom zasady jakimi trzeba się
kierować budując takie farmy. Autor opisze te zagadnienia pod kątem bez-
pieczeństwa fizycznego.

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.

Atak

Obrona

background image
background image

Wyszukiwarka

Podobne podstrony:
Hakin9 31 (11 2007) PL
Hakin9 22 (02 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 30 (10 2007) PL
Hakin9 27 (07 2007) PL
Hakin9 24 (04 2007) PL
Hakin9 32 (12 2007) PL
Hakin9 22 (02 2007) PL
Hakin9 32 (12 2007) PL
Hakin9 26 (06 2007) PL
Hakin9 21 (01 2007) PL
Hakin9 29 (09 2007) PL
Hakin9 28 (08 2007) PL

więcej podobnych podstron