background image
background image

• 

Kup książkę

• 

Poleć książkę 

• 

Oceń książkę

• 

Księgarnia internetowa

• 

Lubię to! » Nasza społeczność

:V]HONLHSUDZD]DVWU]HĪRQH1LHDXWRU\]RZDQHUR]SRZV]HFKQLDQLHFDáRĞFL

OXEIUDJPHQWXQLQLHMV]HMSXEOLNDFMLZMDNLHMNROZLHNSRVWDFLMHVW]DEURQLRQH

:\NRQ\ZDQLHNRSLLPHWRGąNVHURJUDILF]QąIRWRJUDILF]QąDWDNĪHNRSLRZDQLH

NVLąĪNLQDQRĞQLNXILOPRZ\PPDJQHW\F]Q\POXELQQ\PSRZRGXMHQDUXV]HQLH

SUDZDXWRUVNLFKQLQLHMV]HMSXEOLNDFML

:V]\VWNLH]QDNLZ\VWĊSXMąFHZWHNĞFLHVą]DVWU]HĪRQ\PL]QDNDPLILUPRZ\PL

EąGĨWRZDURZ\PLLFKZáDĞFLFLHOL

$XWRURUD]:\GDZQLFWZR+(/,21GRáRĪ\OLZV]HONLFKVWDUDĔE\]DZDUWH

ZWHMNVLąĪFHLQIRUPDFMHE\á\NRPSOHWQHLU]HWHOQH1LHELRUąMHGQDNĪDGQHM

RGSRZLHG]LDOQRĞFLDQL]DLFKZ\NRU]\VWDQLHDQL]D]ZLą]DQH]W\PHZHQWXDOQH

QDUXV]HQLHSUDZSDWHQWRZ\FKOXEDXWRUVNLFK$XWRURUD]:\GDZQLFWZR+(/,21

QLHSRQRV]ąUyZQLHĪĪDGQHMRGSRZLHG]LDOQRĞFL]DHZHQWXDOQHV]NRG\Z\QLNáH

]Z\NRU]\VWDQLDLQIRUPDFML]DZDUW\FKZNVLąĪFH

$XWRU]\/HV]HN.ĊSD3DZHá7RPDVLN6HEDVWLDQ'REU]\ĔVNL

5HGDNWRUSURZDG]ąF\%DUEDUD*DQFDU]:yMFLFND

3URMHNWRNáDGNL-DQ3DOXFK

)RWRJUDILDQDRNáDGFH]RVWDáDZ\NRU]\VWDQD]D]JRGą6KXWWHUVWRFN

:\GDZQLFWZR+(/,21

XO.RĞFLXV]NLF*/,:,&(

WHO

HPDLORQHSUHVV#RQHSUHVVSO

:::KWWSRQHSUHVVSONVLĊJDUQLDLQWHUQHWRZDNDWDORJNVLąĪHN

'URJL&]\WHOQLNX

-HĪHOLFKFHV]RFHQLüWĊNVLąĪNĊ]DMU]\MSRGDGUHV

KWWSRQHSUHVVSOXVHURSLQLHEH]VHF

0RĪHV]WDPZSLVDüVZRMHXZDJLVSRVWU]HĪHQLDUHFHQ]MĊ

,6%1

&RS\ULJKW‹+HOLRQ

3ULQWHGLQ3RODQG

background image

SPIS TRE"CI

PRZEDMOWA

9

WST P

15

Podstawowe informacje o e-commerce

18

Czego chc$ cyberprzest%pcy?

21

Podstawy bezpiecze(stwa

24

1.  PRAWO WOBEC E-COMMERCE

33

Jakie prawo dotyczy e-handlu?

34

Regulamin serwisu

37

+wiadcz$c us,ugi drog$ elektroniczn$

54

Przetwarzanie danych osobowych

57

Zawarcie umowy mi%dzy stronami

60

O czym nale1y informowa2

65

Kodeks spó,ek handlowych

72

Prawo wobec cyberprzest%pców

72

2.

BEZPIECZE#STWO OGÓLNE

77

Informacje o systemie

78

Zapasowe kopie danych

82

3.

BEZPIECZNY HOSTING

89

Hosting czy w,asny serwer?

89

DirectAdmin

90

4.

ZABEZPIECZENIA SERWERA WWW

97

Zabezpieczenia hosta

98

Zabezpieczenia Apache

102

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

6     |     B E Z P I E C Z E & S T W O   S Y S T E M U   E - C O M M E R C E

Konfiguracja PHP

108

Zabezpieczenie kodu PHP

116

Przegl$danie logów

117

Obs,uga komunikatów 403, 404 etc.

118

Zabezpieczanie plików konfiguracyjnych

119

Tripwire

120

Obrona przed atakami DoS — Fail2ban

122

5.

BAZA DANYCH

125

Po,$czenie z baz$

128

Szyfrowanie danych

130

6.

BEZPIECZNA TRANSMISJA DANYCH

133

Dlaczego warto szyfrowa2?

136

Szyfrowanie komunikacji webowej

137

A je;li nie ma szans na SSL?

153

Komunikacja przez e-mail

154

Administrowanie poprzez sie2

156

Integralno;2 danych podczas transmisji

159

7.

IDENTYFIKACJA STRON W BIZNESIE

165

Wiarygodny sprzedawca

166

Zidentyfikowany u1ytkownik

168

8. KONTA I HAS$A

177

Data wprowadzenia danych

177

Hasz zamiast has,a

179

Provisioning — zak,adanie konta

184

Cookies

185

Sesje w aplikacji

189

Sprawdzanie, czy po,$czenie odbywa si% „po SSL”

195

Autoryzacja transakcji

196

9.

ZABEZPIECZENIA KODU APLIKACJI

197

Specyfika j%zyka

198

Jak przesy,a2 dane — GET czy POST?

198

Walidowanie danych przesy,anych do serwera

201

Zabezpieczenia przed automatami

208

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

S P I S   T R E . C I     |     7

SQL injection

212

File inclusions

222

Ataki XSS

226

Ataki CSRF i XSRF

230

HTTP_REFERER

232

Badanie kodu PHP

233

10. KODOWANIE DANYCH

235

ZAKO#CZENIE

239

O AUTORACH

240

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

8     |     B E Z P I E C Z E & S T W O   S Y S T E M U   E - C O M M E R C E

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

Rozdzia6 2.

BEZPIECZE%STWO OGÓLNE

Wspomnieli;my  ju1  wcze;niej,  1e  zagadnienie  bezpiecze;stwa
systemu e-commerce jest z\o]one
. Sk,ada si% na nie:

   bezpiecze(stwo fizyczne serwerów, na których znajduje si% apli-

kacja, serwer WWW, baza danych itd.;

   zabezpieczenie  systemów  operacyjnych,  w  których  s$  zainsta-

lowane aplikacja, serwer WWW i baza danych;

   takie bezpiecze(stwo transmisji, aby danych w trakcie przesy-

,ania nikt nie pods,ucha, ani nie zmieni,;

   bezpiecze(stwo  serwera  DNS  i  domeny  —  to,  1eby  nikt  nie

ukrad, „nazwy internetowej” serwisu ani nie przekierowa, ruchu
do innego, podrobionego systemu;

   bezpiecze(stwo  aplikacji,  a  wi%c  takie  jej  utworzenie,  aby  nie

mo1na by,o ni$ manipulowa2;

   ci$g,o;2  dzia,ania,  tj.  takie  zorganizowanie  systemu  i  uzyskanie

takiej  jego  odporno;ci,  aby  nawet  mimo  ataku  móg,  on  dalej
funkcjonowa2 lub wznowi2 aktywno;2;

   bezpiecze(stwo organizacyjne, czyli procesy zwi$zane z admi-

nistrowaniem  aplikacj$,  zarz$dzanie  zmianami  i  wszystko  to,
co jest dooko,a systemu, a ma na niego (znacz$cy) wp,yw;

   bezpiecze(stwo prawne, a wi%c zarz$dzanie stanem zgodno;ci

z prawem.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

7 8         |         B E Z P I E C Z E & S T W O   S Y S T E M U   E - C O M M E R C E

Tutaj  chcemy  przedstawi2  najogólniejsze  zagadnienia  zwi$za-

ne z bezpiecze(stwem systemu e-commerce.

INFORMACJE O SYSTEMIE

Zapewne nieraz si% zastanawia,e;, jak to si% dzieje, 1e haker w ko(cu
„dopada” okre;lon$ witryn%. Mog$ by2 tego dwa g,ówne powody.
Pierwszy mo1e by2 taki, 1e witryna jest s,abo zabezpieczona i stanowi
dla hakera ,atwy ,up — b%dzie on móg, jej zhakowanie wpisa2 do
ewidencji swoich sukcesów. Drugi to celowy atak na w,a;nie ten,
a nie  inny  serwis.  Na  pewno  jednak  nieod,$cznym  elementem
ka1dego  ataku  jest  rekonesans,  czyli  rozpoznanie.  Odbywa  si%  to
zupe,nie tak jak w „realu” — zanim z,odziej przyst$pi do dzia,ania,
obserwuje  i  zbiera  informacje.  Ka]da  informacja  mo]e  by_
dla hakera przydatna
, a szczególnie o:

   systemie operacyjnym (rodzaj, wersja, uruchomione programy

i us,ugi);

   bazie danych (rodzaj i wersja);

   kodzie aplikacji;

   chronionych cz%;ciach aplikacji;

   konfiguracji i zabezpieczeniach systemu.

Znajomo;2 wersji oprogramowania pozwala hakerowi znaleU2

luki w zabezpieczeniach — przy odrobinie szcz%;cia mo1e on trafi2
na wersj%, w której nie zosta,y one za,atane. Do wyszukania luk za-
bezpiecze( w okre;lonej wersji oprogramowania haker mo1e u1y2
np. bazy CVE

1

. Ty z niej korzystasz, aby wiedzie2, co jest dziurawe,

i 1eby to zaktualizowa2, a cyberprzest%pcy u1ywaj$ jej, aby mie2 in-
formacje o tym, jakie systemy (i jakie ich wersje) „choruj$”, s$ po-
datne na atak.

                                                          

1

https://cve.mitre.org/

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

B E Z P I E C Z E & S T W O   O G Ó L N E         |         7 9

Wiedza o rodzaju bazy danych pozwala z kolei dostosowa2 ata-

ki polegaj$ce na wstrzykiwaniu kodu SQL — ju1 sama ta informacja
jest istotna, bo niektóre ataki s$ specyficzne dla rodzaju bazy da-
nych,  np.  dzia,aj$  w  przypadku  PostgreSQL,  ale  nie  z  MySQL.
Nawet rodzaj j%zyka, w którym napisano aplikacj%, ma znaczenie.

SprawdUmy,  jak  mo1e  wygl$da2  atak  cyberprzest%pcy,  który

dla zabawy chce spróbowa2 swoich si, w hackingu. Pierwsze, co mo1e
on zrobi2, to wpisanie w wyszukiwarce ci$gu 

sql dorks

. Oto przy-

k,adowe ci$gi tego typu:

allinurl:showimg.php?id=
allinurl:view.php?id=
allinurl:website.php?id=
allinurl:hosting_info.php?id=
allinurl:gallery.php?id=

Haker kopiuje i wkleja jeden z nich do wyszukiwarki, a nast%pnie

otwiera  strony  b%d$ce  wynikami  wyszukiwania  i  przeprowadza  re-
konesans. Naj,atwiej jest zacz$2 od sprawdzenia, czy dany ci$g (okre-
;lany  mianem  SQL  dorka)  zadzia,a.  Przyk,adowo  http://www.
witryna.com/gallery.php?id=1
  zawiera  SQL  dork 

gallery.php?id=

.

Wystarczy  w  pasku  adresowym  na  ko(cu  doda2  znak  apostrofu
i w wyniku otrzymujemy:

Fatal error: Uncaught exception 'Exception' with message 'SQL Query
failed: SELECT image,title,location,description,height,width from
tblSCAImages WHERE id=83\\\'You have an error in your SQL syntax; check
the manual that corresponds to your MySQL server version for the right
syntax to use near '\\\'' at line 1' in
/home/sca/wwwlib/gallery_lib.php:16 Stack trace: #0
/home/sca/www/gallery.php(21): sca_gallery_get_image_meta('83\'') #1
{main} thrown in /home/sca/wwwlib/gallery_lib.php on line 16

Mamy tu informacje o b,%dach i ju1 co; wiemy o witrynie —

wiemy, 1e jest to MySQL, a tak1e o nazwach tabel i ich kolumn,
o funkcjach  PHP,  a  nawet  o  systemie  plików.  To  si%  przyda.
SprawdUmy, jak witryna internetowa zareaguje na wpisanie b,%dnego

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

8 0         |         B E Z P I E C Z E & S T W O   S Y S T E M U   E - C O M M E R C E

adresu  strony  http://www.witryna.com/coscokolwiek.  Tu te1  otrzy-
mujemy komunikat:

Not Found

The requested URL /coscokolwiek was not found on this server.
Apache/2.2.3 (CentOS) Server at www.allspeedperformance.com Port 80

Znamy  ju1  wersj%  serwera  Apache.  Zobaczmy  jeszcze,  jakie

cz%;ci witryny s$ chronione. Wpiszmy http://www.witryna.com/
robots.txt
. Otrzymamy:

User-agent: *
Disallow: /checkout/

To tylko przyk,ad tego, jak mo1na zacz$2. Dalej mo1na „grze-

ba2” w cookies, u1y2 programu 

sqlmap

, r%cznie wstrzykiwa2 kod…

Mo1liwo;ci  jest  wiele.  To  pokazuje,  1e  ujawnianie  zbyt  wielu  infor-
macji mo1e dzia,a2 na szkod% systemu, bo pozwala przeprowadzi2
rekonesans. Dla hakera mo1e by2 przydatna w zasadzie ka1da infor-
macja, zadbaj wi%c o to, aby nie wypuszcza2 na zewn$trz komuni-
katów  o  b,%dach  wraz  z  ich  detalami  oraz  informacjami  o  wersji
oprogramowania. Pozwala to hakerowi odnaleU2 s,abe punkty da-
nej wersji.

Jak wprowadziG hakera w b6Ld

Uwa1amy, 1e skoro podstaw$ ataków jest rekonesans, to mo1e warto
atakuj$cego wyprowadzi2 w pole. Gdy wida2 wyraUnie, 1e co; jest
porz$dnie  chronione,  to  pewnie  jest  warte  tego,  aby  to  ukra;2.
Mo1na to wykorzysta2 do stworzenia pu,apki na cyberprzest%pc%.
B%dzie on d,ugo ,ama, zabezpieczenia, aby w efekcie uzyska2 do-
st%p do nic nie wartych informacji lub uruchomi2 alarm informuj$cy,
1e dzieje si% co; z,ego. Takie rozwi$zanie nazywa si% z angielskiego
honeypot. Tak$ pu,apk% mo1na przyk,adowo zastawi2, korzystaj$c
z pliku robots.txt, który s,u1y do zezwalania na indeksowanie lub

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

B E Z P I E C Z E & S T W O   O G Ó L N E         |         8 1

do  wykluczania  z  indeksowania  tych  cz%;ci  witryny,  na  których
przeszukiwanie nie chcemy pozwoli2 tzw. robotom (np. botowi in-
deksuj$cemu strony dla Google). Plik ten znajduje si% w roocie (ka-
talogu g,ównym) witryny, np. http://ecommerce/robots.txt. Mo1na
go u1y2 do zmylenia przeciwnika, wpisuj$c w nim fa,szywe odnie-
sienia, a nast%pnie monitorowa2 te fa,szywie podstawione punkty.

User-agent: *
Crawl-delay: 10
Disallow: /strona_administracyjna/
Disallow: /admin_password.txt

Inn$ mo1liwo;ci$ „wkr%cania” atakuj$cego jest wprowadzanie go

w  b,$d  co  do  wykorzystanego  oprogramowania.  Przyk,adowo  po
zmianie rozszerzenia i nag,ówków kod PHP mo1e udawa2 inny kod:

<?php
error_reporting(0);
header("X-Powered-By: ASP.NET");
?>

Nale1y wtedy jeszcze pami%ta2, aby korzystaj$c z 

session_name()

,

ustawi2 nazw% sesji na przyk,ad na 

SessionID

, poniewa1 domy;lne

PHPSESSID

 od razu wskazuje na PHP.

Rewrite

Parametry kategorii, subkategorii i rozmaitych podstron wyst%puj$ce
w adresie URL mo1na z ,atwo;ci$ ukry2, korzystaj$c z 

mod_rewrite

2

.

Je;li  Twój  system  prezentuje  adres  w  postaci  http://strona/news.
php?kategoria=10&rodzaj=4
,  to  mo1na  to  zmieni2,  zapisuj$c  przy-
k,adowo w .htaccess

3

 na serwerze nast%puj$cy ci$g:

                                                          

2

Coraz cz%;ciej pojawiaj$ si% opinie, 1e modu, ten umiarkowanie wp,ywa
na bezpiecze(stwo, dlatego trzeba mie2 zainstalowan$ aktualn$ wersj%
i stosowa2 go ostro1nie.

3

Nazwa  pliku  .htaccess  zaczyna  si%  od  kropki.  Obecno;2  kropki  na  po-
cz$tku nazwy pliku (lub folderu) oznacza, 1e jest to plik (folder) ukryty.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

8 2         |         B E Z P I E C Z E & S T W O   S Y S T E M U   E - C O M M E R C E

RewriteEngine On
RewriteRule ^([a-z0-9-_]+),([a-z0-9-_]+),([a-z0-9-_]+).html$
$1.php?kategoria=$2&rodzaj=$3 [L,NC,NS]

Zmienne 

$

 z cyfr$ odpowiadaj$ poszczególnym nawiasom regu,-

ki, natomiast 

^

 rozpoczyna, a 

$

 ko(czy wyra1enie regularne. Jesz-

cze ciekawszy wydaje si% zapis

RewriteRule ^artykul/([0-9]+)_(.*)\.html$ articles.php?id=$1

W tym przyk,adzie 

/artykul/24_wielka_wojna

 i 

/artykul/24_protesty_

 acta

  zostan$  zamienione  na 

/articles.php?id=24

  (odniesienie 

$2

jest ignorowane). Jak widzisz, je;li dobrze wykorzystasz ten modu,,
to ci$gi sql-dork nie b%d$ w serwisie widoczne.

ZAPASOWE KOPIE DANYCH

Znamy osoby, które pisz$c prac% magistersk$, nie wykona,y zapa-
sowej kopii danych. Po stracie plików (pó,rocznej pracy) musia,y
napisa2  j$  w  ci$gu  miesi$ca.  W  takich  przypadkach  zwykli;my
1artowa2, 1e ludzie dzielc sid na tych, którzy robic kopie za-
pasowe, i na tych, którzy bddc je robi_
. Bezpowrotna utrata
danych  jest  jedn$  z  najgorszych  rzeczy,  jakie  si%  mog$  przedsi%-
biorcy przydarzy2 — mo1e to prowadzi2 nawet do bankructwa. Skra-
dzione komputery mo1na kupi2, a danych niestety nie. W tej materii
;wiadomo;2 nie jest jednak zbyt wysoka, a sam temat kopii zapaso-
wych (zwanych backupami) staje si% wa1ny dopiero wtedy, gdy  co;
si%  wydarzy.  Tak  samo  jest  w  przypadku  systemów  e-commerce,
szczególnie tych ma,ych i ;rednich. Tymczasem ci$g,y i poprawny
proces wykonywania kopii zapasowych oraz testowania, czy da si%
z nich odtworzy2 dane konieczne do prowadzenia biznesu, pozwala
zminimalizowa2  ryzyko  ich  bezpowrotnej  utraty.  Wiedz$  to  bez
w$tpienia ci, którzy interesuj$ si% zagadnieniami zachowania ci$-
g,o;ci dzia,ania (tzw. BCM

4

).

                                                          

4

BCM — ang. business continuity management.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

B E Z P I E C Z E & S T W O   O G Ó L N E         |         8 3

W jakiej sytuacji kopia danych mo1e si% przyda2? Chyba najle-

piej odpowiedzie2, 1e w ka1dej:

   awaria urz$dze( (najcz%;ciej ulegaj$ jej no;niki danych — dys-

ki twarde);

   b,$d ludzki, czyli utrata danych w wyniku niecelowego dzia,a-

nia pracownika (co; si% niechc$cy usun%,o);

   sabota1  —  utrata  danych  w  wyniku  celowego  szkodliwego

dzia,ania na przyk,ad niezadowolonego pracownika;

   dzia,anie  wirusów  (oprogramowania  z,o;liwego),  których  celem

mo1e by2 usuni%cie b$dU zaszyfrowanie danych, aby uniemo1-
liwi2 do nich dost%p;

   atak hakerów, czyli celowe usuni%cie, zmodyfikowanie czy znisz-

czenie danych.

   kradzie1 sprz%tu i utrata no;ników danych;

   zdarzenie losowe — uszkodzenie sprz%tu w wyniku przepi%cia,

zalania itp.

Jedno z praw Murphy’ego mówi, 1e je0li co0 mo1e pój02 3le, to

z pewno0ci5 pójdzie 3le, wi%c nie ma co liczy2, 1e nic si% nie zda-
rzy. Na pewno si% zdarzy — to tylko kwestia czasu.

Co naleYy backupowaG?

Przede  wszystkim  wykonuje  si%  kopie  zapasowe  danych  bizneso-
wych. B%d$ to bazy  danych,  pliki  i  katalogi  serwisu  e-commerce.
W przypadku hostingu zajmuje si% tym hostingodawca, ale je;li ser-
wery s$ w ca,o;ci pod Twoim w,adaniem, to zadanie to spada na
Ciebie (rysunek 2.1).

Je;li  zarz$dzasz  ca,ym  systemem,  niezb%dny  b%dzie  backup

konfiguracji  aplikacji,  bazy  danych,  systemów  operacyjnych  czy
te1 urz$dze( sieciowych.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

8 4         |         B E Z P I E C Z E & S T W O   S Y S T E M U   E - C O M M E R C E

Rysunek 2.1. Hosting — mo1liwo02 wykonania samodzielnie
backupu z poziomu panelu hostingowego (DirectAdmin)

To, jak cz%sto nale1y wykonywa2 zapasow$ kopi% danych biz-

nesowych, zale1y od systemu i jego specyfiki. Trzeba odpowiedzie2
sobie na pytanie o to, z jakiego okresu dane mog$ zosta2 utracone.
Je;li serwis jest  ma,o  aktywny,  to  zapasowa  kopia  danych  wyko-
nywana  raz  na  tydzie(  te1  mo1e  by2  dobra,  jednak  w  przypadku
aktywnych  systemów  na  pewno  powinna  ona  by2  tworzona  co-
dziennie.  Pami%taj,  1e  serwisy  pracujcce  w  klastrze  to  nie
backup
; nie stanowi go te1 np. disk mirroring.

Dane  dotycz$ce  konfiguracji  mo1na  backupowa2  nieco  rza-

dziej, ale nale1y to robi2 przed ka1d$ zmian$ i po niej.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

B E Z P I E C Z E & S T W O   O G Ó L N E         |         8 5

Je;li chodzi o hosting, to wi%kszo;2 hostingodawców — je;li nie

wszyscy  —  tworzy  zapasowe  kopie  danych  i  udost%pnia  je  u1yt-
kownikowi (rysunek 2.2).

Rysunek 2.2. Backup danych dost=pny w us>udze hostingu

W  wi%kszo;ci  przypadków  dost%pny  jest  tak1e  backup  na  1$-

danie. Przydaje si% on na przyk,ad przed dokonaniem w serwisie
istotnych  zmian,  które  s$  na  tyle  ryzykowne,  1e  lepiej  zapewni2
sobie  kopi%.  Operacj$  tak$  jest  cho2by  aktualizacja  systemu  czy
zmiana struktury bazy danych. System informatyczny to nie cz,o-
wiek — wi%kszo;ci operacji nie powinno si% wykonywa2 na „1y-
wym organizmie”.

Kopia  zapasowa  mo1e  by2  niewiele  warta,  je1eli  oka1e  si%,  1e

zosta,a  nieprawid,owo  wykonana,  dlatego  okresowo  nale1y  spraw-
dza2, czy w kopii zapisane s$ potrzebne dane i czy da si% je odtwo-
rzy2. Za bardzo wa1ne uwa1amy to, aby backup by, przechowywany
tak1e poza siedzib$ firmy, nawet w domu, je;li zostan$ zapewnione
odpowiednie warunki. Dzi%ki temu w przypadku du1ej awarii b%dzie

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

8 6         |         B E Z P I E C Z E & S T W O   S Y S T E M U   E - C O M M E R C E

mo1liwe szybkie odtworzenie systemu na przyk,ad na innym sprz%cie
i (lub) w innej lokalizacji.

Kopia zapasowa danych zawiera wszystko to,  co  jest  w  orygi-

nalnym ;rodowisku e-commerce, wi%c mog,aby by2 cenn$ zdoby-
cz$ dla konkurencji. W zwi$zku z tym backup powinien by2 chro-
niony  na  poziomie  nie  ni1szym  ni1  sam  system  e-commerce.
Dost%p do niego powinny mie2 tylko wybrane osoby. Dobrze by by,o,
aby  dane  na  no;nikach  by,y  szyfrowane,  szczególnie  je1eli  maj$
by2  one  przechowywane  w  domu.  Zapewnienie  tego  jest  akurat
proste, bo ca,y backup mo1na zabezpieczy2 has,em:

~# gpg -c backup.tar  #zaszyfrowanie
~# gpg backup.tar.gpg #odszyfrowanie

Nawiasem mówi$c, polecenie 

gpg

 domy;lnie kompresuje dane

przed szyfrowaniem. Wystarczaj$ce jest te1 spakowanie danych do
pliku ZIP i zabezpieczenie go has,em. Dzi%ki temu jest ma,e ryzy-
ko, 1e dane, za pomoc$ których mo1na by utworzy2 „duplikat fir-
my”, wpadn$ w niepowo,ane r%ce.

Warto te1 zauwa1y2, 1e do zabezpieczania plików mo1na u1y2

pakietu  openssl.  Przyk,adem  s$  nast%puj$ce  polecenia  do  szyfro-
wania i (póUniej) odszyfrowywania danych:

~# openssl aes-128-cbc -salt -in plik.tar -out plik.tar.aes
enter aes-128-cbc encryption password:
Verifying - enter aes-128-cbc encryption password:
~# openssl aes-128-cbc -d -salt -in plik.tar.aes -out plik.tar

Mo1na  te1  zrobi2  to  nieco  inaczej  —  „starowa2”  katalog,  spa-

kowa2 do pliku ZIP, póUniej zaszyfrowa2:

~# tar -zcf - caly_katalog | openssl aes-128-cbc -salt -out
caly_katalog.tar.gz.aes

a w ko(cu odszyfrowa2:

~# openssl aes-128-cbc -d -salt -in caly_katalog.tar.gz.aes | tar -xz -f
-

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

B E Z P I E C Z E & S T W O   O G Ó L N E         |         8 7

Nie zalecamy u1ywania opcji 

-k "hasvo"

 po wyra1eniu 

aes-128-cbc

— wtedy co prawda unikamy interaktywnego pytania o has,o, ale
prowadzi to do zapisania go na przyk,ad w pliku .history

5

. Mo1na

te1 u1y2 

aes-256-cbc

 zamiast 

aes-128-cbc

, je;li jest potrzebne silniejsze

szyfrowanie, ale naszym zdaniem rzadko kiedy jest to konieczne.

Mówili;my  o  backupie  wszystkich  danych,  ale  mo1e  si%  te1

zdarzy2,  1e  pracuj$c  na  pojedynczych  plikach  (np.  kodzie  PHP),
b%dziesz w trakcie ich modyfikacji tworzy, podr%czne kopie zapaso-
we. Chodzi nam o 1ywy organizm, tj. dzia,aj$cy system e-commerce.
Przyk,adowo edytuj$c plik dbconnect.inc, mo1esz zrobi2 kopi% te-
go  pliku  i  zapisa2  j$  jako  dbconnect.inc.old.  Jest  to  bardzo  niebez-
pieczne, gdy1 mo1e si% okaza2, 1e o ile pliki *.inc serwer mo1e bloko-
wa2 przy u1yciu dyrektywy 

<Files "*.inc">

, to mo1e tego nie robi2 dla

plików *.old czy *.backup. Wtedy atakuj$cy b%dzie móg, je odczyta2
przez przegl$dark%, wpisuj$c na  przyk,ad  adres http://ecommerce/
dbconnect.inc.old
. Powiniene; wi%c doda2 do konfiguracji webserwe-
ra  odpowiedni$  dyrektyw%  i  konsekwentnie  trzyma2  si%  nazewnic-
twa takich „backupów” tymczasowych (podr%cznych).

Backup hase6

Has,o mo1na zapomnie2, wi%c je te1 warto w pewien sposób bac-
kupowa2, czyli zapisywa2. Najlepiej u1y2 to tego oprogramowania
—  nie  zalecamy  przechowywania  hase,  w  postaci  jawnej  w  note-
sach,  na  „1ó,tych  karteczkach”  etc.  Korzy;ci  zwi$zane  z  ich  zapi-
sywaniem z u1yciem elektronicznego sejfu s$ do;2 du1e — mo1esz
tworzy2  unikalne,  z,o1one  has,a  dla  ka1dego  serwisu  i  nie  przej-
mowa2  si%  tym,  1e  je  zapomnisz.  Elektroniczny  sejf  to  po  prostu
zaszyfrowany plik z has,ami; pisali;my ju1 wcze;niej o programie
KeePass.  Musisz  mie_  jego  backup!  Najlepiej  mie2  ich  kilka

                                                          

5

W  pliku  .history  przechowywana  jest  historia  wszystkich  polece(  wy-
dawanych w oknie terminalu.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

8 8         |         B E Z P I E C Z E & S T W O   S Y S T E M U   E - C O M M E R C E

i w ró1nych  miejscach  —  wtedy  prawdopodobie(stwo  jednocze-
snej utraty ich wszystkich jest niewielkie.

Piszemy o tym, bo przy tworzeniu has,a na przyk,ad do po,$-

czenia z baz$ systemu e-commerce niekiedy brakuje nam fantazji.
KeePass „wymy;li” has,o za Ciebie (rysunek 2.3), a poniewa1 jed-
nocze;nie  je  zachowa,  nie  b%dziesz  musia,  przejmowa2  si%  tym,
jakie ono jest, i b%dziesz móg, pozwoli2 sobie na to, by by,o hard-
core’owe
 — d,ugie i wr%cz niemo1liwe do zapami%tania. Zalecamy,
aby  tworzy2  z  u1yciem  tego  programu  przede  wszystkim  has,a
administracyjne (a najlepiej wszystkie).

Rysunek 2.3. Generowanie hase> przy u1yciu programu KeePass

Na  koniec  warto  jeszcze  wspomnie2  o  tym,  1e  plik  z  has,ami

powinien by2 zabezpieczony porz$dnym has,em i przechowywany
poza serwerem, na którym znajduje si% Twoja aplikacja.

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ

background image

Czytaj dalej...

Kup ksi

ąĪkĊ

Pole

ü ksiąĪkĊ