Bezpečnosť web serverov
Ladislav Hudec
L&D Consulting, s.r.o.
Holíčska 12, 851 05 Bratislava 5
http://www.lnd.sk
Abstrakt
The world wide web (www) is a system for exchanging information over the Internet. At the most basic level, the web can be divided into two principal components: web servers, which are applications that make information available over the internet (in essence publish information) and web browsers (clients), which are used to access and display the information stored on the web servers. This paper focuses on the security issues of web servers. Unfortunately, the web server is the most targeted and attacked host on most institutions’ network. As a result, it is essential to secure web servers and the network infrastructure that supports them.
1. Úvod
Celosvetová pavučina (world wide web – www) je v súčasnosti pre inštitúcie najdôležitejší nástroj na publikovanie informácií, interakciu s internetovskými používateľmi a na zavedenie procesov elektronického podnikania a elektronického obchodu. Pokiaľ však inštitúcia nepostupuje striktne pri konfigurovaní a prevádzkovaní svojho web servera, tento web server môže byť zraniteľný rôznymi bezpečnostnými hrozbami. Aj keď bezpečnostné hrozby v kybernetickom priestore sú väčšinou tie isté ako v reálnom priestore (defraudácia, krádež, vandalizmus a terorizmus), hrozby v kybernetickom priestore sú ďaleko nebezpečnejšie. Vyplýva to z troch dôležitých zdokonalení kybernetického priestoru: zvýšená účinnosť, aktivity na diaľku a rýchle techniky šírenia.
Zvýšená účinnosť. Automatizovanie útokov (dokonca aj takých s minimálnou šancou na úspech) spôsobuje, že útoky sú účinné a mimoriadne výnosné. Ak napríklad v reálnom priestore je útok úspešný raz na 10,000 pokusov stáva sa neefektívnym z dôvodov potrebného času a úsilia, ktoré sú priemerne potrebné na dosiahnutie jediného úspechu. Investovanie času na jeden úspešný útok je podmienené stratou investovaním času na 10,000 neúspešných útokov. Automatizovanie tohto útoku na internete umožňuje útok úspešne realizovať. Cena výpočtového výkonu počítačov a cena prenosov po internete klesá. Počet uzlov pripojených na internet, a teda počet potenciálnych cieľov útoku, rastie. Táto synergia znamená, že skoro každý útok (bez ohľadu na pravdepodobnosť úspešnosti útoku) na vybratý cieľ môže byť úspešný.
Aktivita na diaľku. Internet umožňuje vykonať aktivitu na diaľku. Internet nemá hranice a každý uzol v internete je dosiahnuteľný z každého iného uzla internetu. To znamená, že útočník môže útočiť na vzdialený web server (napríklad na inom kontinente) rovnako ľahko ako keby tento web server bol v jeho meste.
Rýchle techniky šírenia. Internet umožňuje jednoduchšie a rýchlejšie techniky šírenia. Pred internetom boli techniky útokov vyvíjané dlhé obdobie, toto dlhé obdobie umožňovalo aj vývoj efektívnych protiopatrení. V súčasnosti môžu byť nové techniky útokov rozšírené za hodiny alebo dni. Dnes je omnoho ťažšie vyvinúť včas účinné protiopatrenie.
Kompromitovaný web server často funguje ako vstupná brána na prieniky do vnútornej sieti inštitúcie. Inštitúcia na túto situáciu môže doplatiť finančnou stratou alebo porušením zákonnej povinnosti ochrany údajov v prípade, že útočník poruší dôvernosť jej chránených údajov. Útok odmietnutia služby (DoS) môže spôsobiť obtiažne, ak vôbec možné, pripojenie používateľov k web serveru inštitúcie. Tieto útoky môžu spôsobiť inštitúcii významnú finančnú stratu prípadne stratu času. Inštitúcia sa môže niekedy po útoku ocitnúť v nepríjemnej situácii, keď v dôsledku útoku bol zmenený obsah web stránok (počmáraný web server).
2 Bezpečnostnosť web serverov
2.1 Bezpečnostné hrozby
Špecifické bezpečnostné hrozby web serveru môžu byť vo všeobecnosti zaradené do jednej z týchto kategorií:
Škodlivé entity môžu využívať softvérové chyby web servera, jeho operačného systému alebo aktívneho obsahu web na získanie neautorizovaného prístupu na web server. Príkladom neoprávneného prístupu je získanie prístupu k súborom alebo adresárom, ktoré neboli určené na verejný prístup alebo vykonanie privilegovaných príkazov a/alebo inštalovanie softvéru na web serveri.
Na web server môžu byť smerované útoky odmietnutia služieb (DoS), ktoré spôsobia nedostupnosť web servera pre oprávnených používateľov počas trvania útoku.
Citlivé informácie z web servera môžu byť distribuované neoprávneným osobám.
Nešifrované citlivé informácie môžu byť odchytené neoprávnenou osobou pri prenose medzi web serverom a web klientom (browserom).
Informácie uložené na web serveri môžu byť modifikované s cieľom spôsobenia škody. Známym príkladom takejto hrozby je “počmáraný web server”.
Prostredníctvom úspešného útoku na web server môžu škodlivé entity získať neautorizovaný prístup k zdrojom umiestneným kdekoľvek na vnútornej počítačovej sieti inštitúcie.
Po úspešnom útoku na web server (kompromitácia web servera) inštitúcie môžu škodlivé entity útočiť z kompromitovaného web servera na ďalšie externé inštitúcie. Takto môže škodlivá entita skryť svoju identitu a môže spôsobiť inštitúcii vlastniacej kompromitovaný web server právnu zodpovednosť za škody spôsobené útokom externým inštitúciám, pretože útoky boli vedené z jej (kompromitovaného) servera.
Kompromitovaný web server inštitúcie môže byť zneužitý ako distribučné centrum pre nelegálne kopírovaný softvér, nástroje útokov alebo pornografiu s prípadnou hrozbou právnej zodpovednosti za spôsobené škody alebo protiprávne konanie.
2.2 Príčiny bezpečnostných problémov
Nižšie sú uvedené hlavné príčiny bezpečnostných problémov verejne dostupných web serverov.
Chybná konfigurácia alebo iná chybná prevádzka web servera, ktorá môže spôsobiť napríklad zverejnenie alebo modifikáciu proprietárnych alebo citlivých informácií. Tieto informáciu môžu predstavovať položky:
Aktíva organizácie.
Konfigurácie servera alebo siete, ktoré budú využité v následnom útoku.
Informácie týkajúce sa používateľov alebo administrátora/ov web servera vrátane ich hesiel.
Existencia zraniteľností samotného web servera umožňujúce napríklad útočníkovi kompromitovať bezpečnosť servera a ďalších uzlov na počítačovej sieti inštitúcie prípadným vykonaním takýchto aktivít:
Počmáranie web servera alebo iné porušenie jeho informačnej integrity.
Vykonanie neautorizovaných príkazov alebo programov na operačnom systéme, vrátane programov inštalovaných útočníkom.
Získanie neautorizovaného prístupu k zdrojom umiestnených kdekoľvek na počítačovej sieti inštitúcie.
Spustenie útokov na externé web servery z kompromitovaného web servera inštitúcie. Skrytie útočníkovej identity a prípadná zodpovednosť inštitúcie za škody spôsobené externým inštitúciám.
Zneužitie kompromitovaného web servera na distribúciu nelegálnych kópií softvéru, nástrojov útoku alebo pornografie s prípadnou hrozbou právnej zodpovednosti za spôsobené škody alebo protiprávne konanie.
Neadekvátne alebo neexistujúce bezpečnostné mechanizmy na web servere, ktoré by zabránili určitým triedam útokov ako sú útoky DoS, pri ktorých sa preruší dostupnosť web servera a bráni sa autorizovaným používateľom v prístupe na web server, keď to požadujú.
Zle napísané softvérové aplikácie a skripty, ktoré umožňujú útočníkovi kompromitovať bezpečnosť web servera.
2.3 Kroky na zaistenie bezpečnosti
Na zaistenie bezpečnosti verejne dostupného web servera je potrebné vykonať niekoľko krokov. Tieto kroky je potrebné vykonať v súlade s bezpečnostnou politikou inštitúcie. Postupnosť jednotlivých krokov je takáto:
Inštalovanie, konfigurovanie a bezpečnostné utesnenie operačného systému počítača, na ktorom bude prevádzkovaný web server.
Inštalovanie, konfigurovanie a bezpečnostné utesnenie softvéru web servera.
Použitie vhodných sieťových bezpečnostných machanizmov (bezpečnostná brána, smerovač s paketovým filtrom, proxy).
Udržiavanie bezpečnej konfigurácie prostredníctvom aplikovania vhodných záplat a aktualizácií, bezpečnostného testovania, monitorovania záznamov, vytvárania záloh údajov a operačného systému.
Používanie, publikovanie a ochrana informácií a údajov starostlivým a systematickým spôsobom.
Používanie bezpečných procesov administrácie a údržby web servera.
Vykonávanie iniciálneho a periodického skanovania zraniteľností web servera a jeho sieťovej podpornej infraštruktúry (bezpečnostná brána, smerovač, prepínač).
Uvedené kroky napomôžu znížiť bezpečnostné riziko, ktorému je vystavený verejne dostupný web server.
3 Kontrolný zoznam na zaistenie bezpečnosti web servera
Na základe dlhoročných skúseností a dobrých praktík sa bezpečnosť web servera môže kontrolovať podľa tohto zoznamu.
3.1 Plánovanie a umiestnenie web servera
Na splnenie tejto úlohy je potrebné preveriť tieto aspekty web servera:
Funkcie web servera.
Kategórie informácií, ktoré budú uložené, spracovávané a posielané prostredníctvom web servera.
Bezpečnostné požiadavky na informácie.
Spôsob publikovania informácií na web servere.
Počítačový systém, na ktorom bude prevádzkovaný web server.
Sieťové služby, ktoré budú poskytované a podporované web serverom.
Používatelia a kategórií používateľov web servera a stanovenie privilégií každej kategórie používateľov.
Metódy autentifikácie používateľa web servera.
3.2 Výber vhodného operačného systému pre web server
Na splnenie tejto úlohy je potrebné preveriť tieto aspekty operačného systému počítača, na ktorom bude prevádzkovaný web server:
Minimálny počet slabín.
Schopnosť striktného obmedzenie administrátorských a rootovských aktivít iba pre autorizovaných používateľov.
Schopnosť odmietnutia prístupu k informáciám na serveri iným než tým, ktorým je zamýšľané informácie sprístupniť.
Schopnosť zablokovať nepotrebné sieťové služby, ktoré môžu byť vstavané do operačného systému alebo softvéru servera.
Schopnosť riadenia prístupu k rôznym formám vykonateľných programov ako sú CGI (Computer Gateway Interface) skripty a pluginy servera v prípade web serverov.
Dostupnosť vyškoleného personálu na inštaláciu, konfigurovanie, bezpečnostné utesnenie a obsluhu operačného systému.
3.3 Plátovanie a aktualizácia operačného systému
Na splnenie tejto úlohy je potrebné preveriť tieto aspekty prevádzky operačného systému a aplikácií:
Sledovanie a inštalovanie všetkých potrebných záplat a aktualizácií operačného systému.
Sledovanie a inštalovanie všetkých potrebných záplat a aktualizácií aplikácií a služieb vrátane služieb operačného systému.
3.4 Odstránenie alebo blokovanie nepotrebných služieb a aplikácií
Na splnenie tejto úlohy je potrebné preveriť tieto aspekty prevádzky operačného systému a aplikácií:
Blokovanie alebo odstránenie nepotrebné služby alebo aplikácie.
3.4 Konfigurovanie autentifikácie používateľov operačným systémom
Na splnenie tejto úlohy je potrebné preveriť tieto aspekty prevádzky operačného systému:
Odstránenie alebo blokovanie nepotrebných prednastavených kont alebo skupín.
Blokovanie neinteraktívnych kont.
Vytvorenie používateľských skupín pre konkrétny počítačový systém.
Vytvorenie používateľských kont pre konkrétny počítačový systém.
Preskúmanie politiky tvorby hesiel inštitúcie a nastavenie hesiel kont primerane tejto politike (napríklad dĺžka a zložitosť hesla).
Konfigurovanie počítačového systému tak, aby odmietol pripojiť používateľa po istom počte neúspešných pokusov.
Inštalovanie a konfigurovanie ďalších bezpečnostných mechanizmov na posilnenie autentifikácie (napríklad dodatočné autentifikovanie pomocou grid karty, jednorázové heslá pomocou autentifikačného tokenu).
3.5 Testovanie bezpečnosti operačného systému
Na splnenie tejto úlohy je potrebné preveriť tieto aspekty prevádzky operačného systému:
Testovanie operačného systému po iniciálnej inštalácii s cieľom zistenia jeho slabín.
Časté testovanie operačného systému s cieľom zistenia jeho nových slabín.
4 Kontrolné zoznamy pre návrh a prevádzku bezpečného web servera
Okrem všeobecného kontrolného zoznamu, ktorý je uvedený vyššie, sa odporúča pri návrhu a prevádzke bezpečného web servera preskúmať ďalšie oblasti a v nich sa podrobnejšie venovať špecifikovaným postupom a vlastnostiam takto:
Oblasť bezpečného inštalovania a konfigurovania web servera:
Bezpečné inštalovanie web servera
Konfigurovanie riadenia prístupu v operačnom systéme počítača, ktorý bude prevádzkovať web server
Konfigurovanie bezpečných adresárov s obsahom web
Použitie kontrolórov integrity súborov
Oblasť zabezpečenia obsahu web
Zaistenie, že na web serveri alebo prostredníctvom neho nie sú dostupné chránené informácie (informácie, ktoré nie je možné zverejniť podľa zákona alebo vnútorných predpisov inštitúcie)
Zriadenie formálnej politiky inštitúcie a smernice na schválenie obsahu verejného web
Stanovisko k privátnosti používateľov web
Stanovisko k bezpečnosti aktívneho obsahu na strane klienta
Stanovisko k bezpečnosti aktívneho obsahu na strane servera
Oblasť používania autentifikácie web a šifrovacích technológií
Autentifikácia web a šifrovacie technológie
Konfigurovanie SSL/TLS
Oblasť používania sieťovej infraštruktúry na zabezpečenie web serverov
Umiestnenie siete
Konfigurovanie bezpečnostných brán
Nástroje IDS
Konfigurovanie prepínačov
Oblasť bezpečnej administrácie web servera
Záznamy
Zálohy web servera
Zotavenie po kompromitácii
Testovanie bezpečnosti
Vzdialené administrovanie a aktualizácia obsahu
Oblasť bezpečnostného utesnenia Apache
Inštalovanie a bezpečnostné utesnenie operačného systému počítača
Inštalovanie softvéru Apache web server
Nastavenie oprávnení pre adresáre a súbory web servera
Odstránenie všetkých nepotrebných skriptov, vykonateľných modulov a služieb
Iniciálna konfigurácia
Udržiavanie bezpečnej konfigurácii Apache
5 Záver
V príspevku sú opísané základné bezpečnostné problémy verejných web serverov. Podrobnejšie sú opísané bezpečnostné hrozby, ich príčiny a kroky na zaistenie bezpečnosti. Na ilustráciu komplexnosti problému sú opísané oblasti kontrolných zoznamov a kontrolný zoznam pre bezpečný web server je opísaný podrobnejšie.
Literatúra
WACK, J. et al: Guideline on Network Security Testing. NIST Special Publication 800-42, February 2002
SAMBRAY, J., WOND, D., SHEMA, M.: Hacking Exposed Web Applications. Osborne McGraw-Hill, 2002
STEIN, L. D.: Web Security: A Step-by Step Reference Guide. Addison-Wesley Publications Co., 1998
GARFINKEL, S., SPAFFORD, G.: Web Security, Privacy and Commerce (Second Edition). O’Reilly and Associates, 2002.
Doc. Ing. Ladislav Hudec, CSc., CISA je certifikovaným audítorom informačných systémov a znalcom pre bezpečnosť a ochranu informačných systémov a výpočtovú techniku. Vyše dvadsaťpäť rokov sa venuje otázkam spoľahlivosti a bezpečnosti výpočtových systémov. Pôsobí ako nezávislý konzultant v oblasti bezpečnosti informačných systémov pre veľké inštitúcie a peňažné ústavy. Vykonáva audity informačných systémov a spracováva bezpečnostné projekty.
|