Feed subscription » blog | » comments | » google+ | » mobi | » twitter

11 tipov ako si zabezpečiť blog

11 tipov ako si zabezpečiť blogPo posledných dňoch a desiatkach emailoch som sa rozhodol napísať pár rád ako si zabezpečiť svoj blog. Tybi napísal pár skvelých článkov, ako optimalizovať blog (pokročilé SEO), alebo aké pluginy zvoliť pre svoj blog. Ja by som sa dnes rád pozrel na zabezpečenie vášho blogu.

Po mojom poslednom väčšom článku sa strhla celkom zaujímavá diskusia na viacerých miestach. Snažil som sa ju sledovať všade kde sa dalo a kde aj za niečo stála. Mnoho firiem ma požiadalo o privátne otestovanie bezpečnosti a mnoho ľudí sa dožadovalo základných tipov ako zabezpečiť svoje stránky. Tu ma napadá zábavný fakt. Napriek tomu, že svoj kontakt celkom dosť dobre utajujem, ani nie tak z dôvodu, že by ma začal spamovať nejaký dobrák, ale skôr aby som sa vyhol záplave prosebných emailov, v ktorým mnohí žiadajú pomoc. Nieže by som nechcel pomôcť, to nie, ale dostať za deň 70 emailov, v ktorých vás niekto prosí o pomoc, to je už trošku veľa. Takže aj napriek faktu, že kontakt nie je voľne prístupný, mi prišlo momentálne do troch stoviek emailov. Niektorým som napísal sám (tým, ktorí ma v komentároch zaujali), iní si našli svoju cestu, čo ma veľmi teší. Tento článok by mohol odpovedať 80% z nich. Článok bude venovaný skôr systému WordPress, ale postupy sú aplikovateľné kdekoľvek.

Úvod

Základom bezpečnosti webu je zdravá paranoja. O to viac, ak používate open-source produkt. Málo kto vie, ako reálne funguje black market (čierný trh), kde sa predávajú privátne bugy (chyby) známych a rozšírených aplikácií. Možno budete poznať pojem exploit (white hats používajú výraz proof of concept [POC]). Takto sa označujú programy (skôr kód), ktoré zneužívajú bezpečnostné zraniteľnosti aplikácií (pod aplikáciou je treba chápať aj web). Takto je možné kúpiť bugy, alebo už hotové exploity od výmyslu sveta. Aj toto je cesta, ako si “hackeri” (správne black hat) privyrábajú. Jedná sa o obrovské peniaze. Ak napríklad niekto objaví chybu, ktorá umožní vzdialené spustenie škodlivého kódu (RFI) v tak populárnom systéme akým je WordPress, chyba postihne desiatky miliónov blogov. Útočník môže potom poľahky využiť ich systém pre svoje podnikanie, ako napríklad rozosielanie spamu. Chyby sú ošetrované neskoro až keď sú ohlásené tvorcom, čo môže znamenať často mesiace, alebo jednoducho nikdy. Takže verejné exploity, ktoré si môžete dnes stiahnuť na množstve webov predstavujú ledva 10% odhalených a ohlásených chýb. Preto je lepšie vytvoriť špecifické podmienky zabezpečenia, aby pri najhoršom možnom scénare útočníka odradila priveľká námaha vynaložená k prieniku do vášho blogu.

Jednotlivé tipy

1. Zvoľte bezpečné témy/motívy

WordPress je veľmi rozsiahly systém, ktorý umožňuje užívateľom vkladať pluginy, alebo poľahky meniť celé motívy. Práve tie sa stávajú najväčšou slabinou celého systému. Pre tých, ktorí programujú nemusím hovoriť, že čo programátor, to kód, čo dizajnér, to dizajn. Preto je veľmi dôležité dávať si pozor na motív/tému, ktorú si vyberiete. Sám som sa popálil na dizajne, ktorý môžete vidieť na mojom blogu. Nie je to môj výtvor, je to prebraný dizajn, ktorý som si dodatočne upravil. Tvorcovia však na bezpečnosť moc nedbali (a ani na kvalitu kódu) a tak sa s ním trápim dodnes. Chyby som odstraňoval postupne, ako mi boli hlásené a bolo ich dosť. Preto vás chcem upozorniť, vyberajte si design, ktorý je populárny a prešiel pod rukami mnohým ľudom, tak je menšia pravdepodobnosť, že je design zraniteľný. Pre tých, ktorí si vytvárajú vlastný design, nepoužívajte
<?php echo $_SERVER ['PHP_SELF']; ?>miesto toho používajte funkciu bloginfo(); (ak nechcete aby sa výstup hneď vypisoval tak get_bloginfo();)<?php bloginfo ('home'); ?>Viac tipov pre dizajnérov, ktorí tvoria vlastní dizajn pre WordPress nájdete na stránkach WPDesigner.

2. Zakážte robotom prístup do “tajných” sekcií

Zakážte robotom, ktorý prechádzajú vaše stránky prístup do sekcií, ktoré obsahujú časti systému, ako napríklad wp-content. Urobíte tak vložením tohoto kódu do súboru robots.txt.
User-agent: *
Disallow: /wp-*
Aj keď roboti pravdepodobne nebudú v týchto častiach nič vidieť, je dobré mať istotu. Rovnako tam môžete vložiť aj iné sekcie, ktoré by mohol eventuálne robot vysnoriť.

3. Zakážte serveru listovať súbory

Neumožňujte voľný prístup do adresárovej štruktúry na serveri. Ak hostingová spoločnosť nezakázala listovanie súborov štandardne, vložte tento reťazec do súboru .htaccess (ak používate Apache) v roote vašeho webu, tzn. najvyšší možný priečinok (zložka), kde ste nahrávali webovú aplikáciu.
Options All -Indexes

4. Nezobrazujte verziu ani typ systému

Mnoho designérov zachováva kódex open-source a zobrazujú v meta tagu systém, ktorý stránky vygeneroval. Na WordPresse je to dokonca aj s verziou. Tým útočník okamžite vie, či váš blog obsahuje chybu, ktorú by mohol zneužiť. Preto vyhľadajte v motívoch (presentation) súbor hlavička (header) a buď úplne odstráňte celý kód (zobrazený nižšie v rámčeku), alebo z neho odstráňte informáciu o verzii systému. Som za prvé riešenie, takto nebude možné nájsť typ vášho systému cez Google jednoduchým príkazom (Google hack). Toto riešenie využíva veľké množstvo spambotov (robot, ktorý spamuje diskusiu) a rapídne ubudne komentárov odchytených napríklad Akismetom. Ak ho ešte nemáte, šup šup inštalovať! Prvý plugin, ktorý musíte na “čistej” inštalácii WordPressu mať.
<meta content="WordPress &lt;?php bloginfo(’version’); ? /&gt;" name="generator" />

5. Obmedzujte monitoring návštevnosti

Väčšina z vás používa tzv. 3rd party monitorovacie systémy návštevnosti stránok (nie som výnimkou) ako napríklad Google Analytics, alebo Statcounter. Ja ešte k tomu používam widget whos.among.us, ktorý zobrazuje počet užívateľov on-line v rozmedzí pár minút. Všetky tieto aplikácie ukladajú tzv. referer, čo je údaj, odkiaľ ste na stránku prišli. Ak ste kód takejto aplikácie zadali do header-u (hlavičky), alebo footer-u (pätičky), tak je kód zobrazovaný aj keď si prezeráte články, ktoré ste ešte nepublikovali. Rovnako je to aj AdSense, alebo inými reklamnými systémami. Preto odporúčam dať pred takýto kód podmienku
<?php if(!$_GET['preview'] == "true") { ?>
kód
<?php } ?>
Pri tejto téme mi nedá dodať, že referer by ste mali mať zakázaný by default, ale tomuto problému sa mienim venovať niekedy inokedy.

6. Ochráňte administráciu systému

Veľmi dôležité je tiež dodatočne ochrániť administráciu systému. Ak nie je závislá od zvyšku systému, môžete zmeniť jej umiestnenie. Napríklad na WordPresse z /wp-admin/ na /x7dv4f9/. Väčšina systémov však vyžaduje mať administráciu na pôvodnom mieste, inak stratí funkčnosť, alebo sa inak znehodnotí chod aplikácie. Myslím, že aj WordPress patrí medzi ne, ale nemám to odskúšané. Ak takúto vedomosť máte, môžete sa o ňu podeliť v komentári pod článkom.

Vstup do systému len na IP adresu
Ďalšou možnosťou je zablokovať prístup na konkrétnu IP adresu. Takto je prakticky nemožné sa do administrácie dostať (ale aj pre vás) z inej IP adresy, akou je tá, ktorú ste zadali. K tomuto kroku sa odhodlajte len ak máte stále rovnakú IP adresu a pripájate sa len z jediného miesta. IP adresu zablokujete, ak do súboru v .htaccess pridáte údaje uvedené v rámčeku nižšie. Súbor .htaccess sa musí nachádzať v adresári administrácie. Na WordPress-i je to wp-admin. Za xxx je treba dopísať vašu IP adresu.
order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx
allow from xxx.xxx.xxx.xxx

Doplnkové heslo do administrácie
Pravdepodobne ste sa už stretli s autentifikáciou vyžadovanou priamo serverom a nie aplikáciou. Práve toto je jedna z možností, ako chrániť svoju administráciu. Má hneď niekoľko výhod. Ak používate jednoduché heslo pre prihlásenie do systému, alebo vo viacerých aplikáciách, alebo vám bude odcudzené, nedokáže útočník prejsť touto ochranou (ak nezvolíte rovnaké, alebo príliš jednoduché heslo). Zároveň sa heslo vzťahuje na všetky priečinky (zložky) a podpriečinky v rámci koreňového adresára, čím nie je možné využiť tzv. bypass, teda možnosť obísť celú autentifikáciu (je možné, že sa raz takáto chyba objaví). Na túto ochranu je vytvorený plugin, ktorý funguje výborne aj bez znalosti .htaccess.
AskApache Password Protect

Chráňte administráciou limitovaním pokusov o prihlásenie
Ak vám nevyhovuje ani jeden vyššie zmienený spôsob ochrany administrácie, potom určite uvažujte o tomto, alebo ho kľudne skombinujte s predošlými dvoma. Jedná sa o limitáciu pokusov o prihlásenie. Ak sa útočník rozhodne otestovať vaše heslo použitím napríklad slovníka, je dobré ho odstaviť a neumožniť mu pokračovať. Na to slúži výborný plugin, ktorý po x zlých pokusoch prestane vykonávať autentifikáciu a zablokuje prístup na x minút. Štandardne je nastavený na 3 zlé pokusy a 60 minútové obmedzenie. Upozorňujem, že ak sa pomýlite tri krát, ďalších 60 minút sa nebudete môcť do administrácie prihlásiť. Preto si svoje heslo dobre pamätajte, alebo používajte RoboForm ako ja.
Login LockDown

7. Neustále aktualizujte systém

WordPress vás vždy upozorní, že vyšla nová verzia. Existujú síce pluginy, ktoré aktualizáciu vykonávajú samostatne, ale odporúčam sa spoliehať na seba už hneď z niekoľkých dôvodov. Plugin môže prestať fungovať a vy si ani neuvedomíte, že je treba aktualizovať systém, aj keď WordPress v administrácii “vyhadzuje” informačné hlásenie o dostupnosti novej verzie. Môže dôjsť k poškodeniu pri zámene súborov a váš blog bude odstavený niekoľko hodín a možno aj dní. Môže sa objaviť závažná chyba v plugine, ktorý má plný prístup k prepisovaniu súborov a útočník vás môže použiť pre skladovanie a rozosielanie mallwaru. Preto si vždy nájdite pár minút, prečítajte si zmeny, ktoré boli v poslednom systéme urobené a systém aktualizujte. Väčšinou sú v každej novej verzii opravené závažné chyby, ktoré by ste nemali nechať bez záplaty. Aktualizovať systém je najdôležitejší spôsob ochrany.

8. Neustále aktualizujte pluginy/widgety

Rovnako dôležité, ako aktualizovať systém je aktualizovať pluginy/widgety. Väčšina z nich má plný prístup k súborom, databáze a iným citlivým miestam a práve pluginy najčastejšie obsahujú závažnú zraniteľnosť. Preto je dôležité, vždy pluginy/widgety aktualizovať.

Nikdy však neaktualizujte naslepo, tzn. bez prečítania tzv. changelogu (súbor/text obsahujúci zmeny, ktoré boli urobené v jednotlivých verziách) pluginu. Raz takú chybu urobil jeden môj priateľ. Na server, odkiaľ sa plugin inštaloval sa dostal útočník, ktorý pozmenil kód vďaka čomu si vytvoril bypass a vytvoril aktualizáciu pluginu. Takto si jeho novú verziu nainštalovalo niekoľko tisíc ľudí, až kým si skutočný tvorca pluginu uvedomil, že sa niečo stalo. Infikované systémy začali okamžite rozosielať tony spamu a boli z toho dosť nepekné problémy. Preto si pre istotu overte, že je plugin v poriadku.

Taktiež je dôležité používať známe a overené pluginy (poľahky si kvalitu pluginu overíte na oficiálnych stránkach systému (napríklad WordPress), alebo priamo na stránkach tvorcu pluginu podľa komentárov). Mnohokrát sa stalo, že vznikol plugin, ktorý lákal užívateľov na “sladké” sľuby a po nainštalovaní prevzal prakticky okamžite kontrolu nad systémom. Zmenil heslo do administrácie, pridal nového administrátora atď. Preto vám odporúčam, aby ste si pred každou inštaláciou pluginu dôkladne overili, či je plugin skutočne tým, za čo sa vydáva a že sa nesnaží poškodiť, alebo zneužiť váš systém.

9. Neustále zálohujte databázu

Dôležité je taktiež neustále zálohovať databázu. Informácie, ktoré v nej máte uložené nebudete schopní viac nahradiť. Stiahnuť novú inštaláciu, pluginy/widgety a nastaviť ich problém nie je, ak však prídete o dáta uložené v databáze, ako články, komentáre, atď. nebudete viac schopní ich obnoviť. Preto odporúčam robiť raz denne zálohu databázy. Je možné použiť aj existujúci plugin, ktorý takýto úkon bude robiť za vás.
WordPress Database Backup

10. Používajte “inteligentné” presmerovanie

Tento plugin vám pomôže držať určité URL na “uzde”. Jeho význam z pohľadu bezpečnosti nie je až tak veľký, je však vhodný pre SEO a rovnako nápomocný pri zmenách URL článkov, pričom si staré uchováva a presmerováva na nové. Taktiež je jednoduché presmerovať ktorúkoľvek URL. Ja takto riešim napríklad /feed, ktorý presmerovávam na službu feedburner.com. Taktiež plugin zabezpečuje presmerovanie URL ak na konci ne/požívate opačné lomítko a rovnako udržuje 404 log, teda zoznam nenájdených stránok, kde môžete vidieť pokusy o prístup a možnú manipuláciu na vašom blogu.
Redirection

11. Zvoľte si zložité heslo

Nenechajte útočníka jednoducho uhádnuť/cracknúť vaše heslo. Nepoužívajte žiadne z bežných hesiel, ktoré by mohol niekto uhádnuť, lebo vás dobre pozná. Útočník sa často vykľuje z kamaráta, ktorý vás pozná roky a takto sa chcel zabaviť. Preto je dobré zvoliť si buď úplne náhodné heslo (napríklad používať generátor RoboForm-u a samotný RoboForm), alebo iný systém. To už nechám na vás.

Záver

Tipov ako ochrániť blog je určite mnoho, tieto sa mi však zdajú byť asi najdôležitejšie. Ak máte otázky, kľudne sa pýtajte v komentároch pod článkom. Momentálne riešime technické problémy, o ktorých sme už informovali. Po ich vyriešení sa tešte na záplavu nových článkov a služieb.

Zaujal vás článok? Sledujte ma na Twitteri.


8 Responses to “11 tipov ako si zabezpečiť blog”


  1. 1 addam Feb 20th, 2008 at 18:36

    Dalsie (a samozrejme aj prekryvajuce sa) tipy na zabezpecenie WordPressu sa na http://www.net-security.org/article.php?id=1099

  2. 2 Lubos Feb 20th, 2008 at 22:16

    Nuž niektoré veci praktikujem, niektoré nie (via Piki-ho blog).
    Zálohovanie databázy cez WP plugin vyzerá rozkošne, doteraz som zálohoval len články cez export a šablónu šablónu.
    Otázka ku 6., prístup obmedzím len pre administráciu WP, alebo aj ftp prístup? Mám totiž dynamickú IP (síce sa dlhšie nemenila) a nerád by som sa odrezal.

    AD 4: zmazanie info o tom, že ideš na WP je v súlade s GNU GPL?
    AD 5: Google analytics umožňuje obmedziť IP, takže to môže byť šikovnejšie ako pridávať nejaký kód (nerád šahám do šablóny, lebo som ju párkrat pošahal :)

  3. 3 oooo Feb 20th, 2008 at 22:29

    k otazke c.6: iba http, na ftp to samozrejme nema ziadny vplyv
    k otazke c.4: myslim, ze ano, isty si sice nie som, ale na 90%. kazdopadne radsej porusim podmienky, ako si necham bombardovat blog spamerom
    k otacke c.5: za prve nie vsetci pouzivaju analytics, za druhe mi ide skor o to, aby ani google nemal pristup tam, kam nemusi, za tretie ostatne sluzby na 99% nepodporuju obmedzenie ip adresy, za stvrte ak mas plavajucu ip adresu, obmedzenie ti nepomoze. kodom nic zo zasblony neposahas, ak ho umiestnis presne tak, ako je napisane.

  4. 4 Vladky Feb 21st, 2008 at 01:25

    Caf ty oooo:)

    Precital som si tento clanok nakolko aj ja pouzivam WP. No podla mna si treba hned na zaciatku uvedomit, ze ide o system hlavne pre blogerov. Teda nejaka prehnana bezpecnost v podobe obmedzovania IP adries, kazdodeny backup…no neviem. Asi som v tychto veciach naivny, ale vzdy ma napadne otazka preco by to ten clovek spravil? Co ziska tym, ze mi vymaze clanok ktory som pisal hodinu, dve? Na blogoch vecsinou nenajde nejake utajovane informacie, citlive data…
    Som vsak za ochranu v rozumnej miere. Nespomenul si napr. antispam. A to je podla mna dolezita vec. Ved sam dobre vies kolko webov uzavrelo komentare prave kvoli spamu v nich.
    Tiez sa mi nezda dobre ihned aktualizovat verziu WP. Treba si pockat a poznat nazory ludi ktorych bavi testovat nove verzie. A az ked je vsetko v poriadku tak potom update.
    Co sa tyka pluginov tak je to podobne. Ja sam som si nejake otestoval a nektore pouzivam, ale vela som vylucil prave kvoli tzv. spinavemu kodu. Snazim sa aby bol napr moj blog validny, rovnako sa zobrazoval v prehliadacoch, korektne na mobiloch, iphone, pda….atd. S WP som maximalne spokojny a lepsi system nepoznam. Co sa tyka tvojich technickych problemov tak ti mozno poradim. Ja som mal mensie problemy ked som WP dal na server kde bezalo PHP 5. Ihned bol problem aj s webeditorom…atd.. Behom chvilky ma chalani v Yegone supli na iny server a odvtedy ide vsetko ako hodinky.

    Vladky

  5. 5 oooo Feb 21st, 2008 at 01:43

    vladky, zacnem postupne:
    system pre bloggerov ano, http://www.techcrunch.com. ked si bloggera pozvu na davos, neviem ci je to este stale blogger. vezi si, ak tvoj blog dosahuje navstevnosti news portalu, si stale este blogger? tazko povedat. co by ziskal pristupom? pravdepodobne by ho tvoje clanky vobec nezaujimali ale moct si na serveri nechat kusocek kodu, to vzdy potesi (tomuto sa budem venovat mozno niekedy inokedy). ak to bude script kiddie, tak ho proste potesi, ze sa ti dostal dnu a ze ti moze spravit skodu.
    obmedzovanie pristupu k administracii je dolezity faktor ochrany v akomkolvek systeme, nielen na blogoch. antispam som spomenul len okrajovo, nie je to cast bezpecnosti, kazdopadne sa v texte akismet nachadza. novy update je dobre aplikovat okamzite, urcite je toho menej co moze pokazit ako toho co zaplata. poznam z vlastnej skusenosti, neraz na nezaplatanu verziu doplatili mnoho ludi. ja mam pluginov 7 alebo 8, vybral som si tie co sa mi pacili a presiel som si ich kod. to vsak vacsina ludi urobit nemoze a tak som svoje odporucania napisal.

    co sa tyka wp je to maximalna … zarucene lepsi je napriklad modx cms. kazdopadne wp je hodne rozsireny. technicke problemy su pravdepodobne kvoli php ale nie verzii ale sposobu nastavenia. od zajtra (pozajtra) som v yegone tiez, takze by nemal byt ziadny problem, uvidime

  6. 6 2ge Feb 21st, 2008 at 02:41

    ja napisem k tomuto len tolko, ze cez jeden wp plugin (wordtube ci ako sa ten debil volal) mi napisala hostingova spolocnost, ze ak to neopravim do 24 hodin, tak mi cely server shutdovnuju, bezal cez to php irc robot, cez ktoreho posielali spamy a pripadne robili DDOS utoky. Nieco, co je siroko nasadene a pouzivane, by sa malo kontrolovat. Jednoducho vsetky pluginy by mali mat nejaky podpis, ci to preslo kontrolou, alebo nie (aj vtedy to nemusi byt 100% safe, ale aspon pre dobry pocit:)

  7. 7 oooo Feb 21st, 2008 at 10:41

    2ge pekne si mi potvrdil teoriu :)
    nad podpismi som rozmyslal ale nemali by zmysel (vid ff). tam tiez mas cert a zatial len mozilla products ma. takze neviem ci je to dobra cesta

  1. 1 concer.to » Blog Archive » Zbavte se volného času jednou a provždy Pingback on Feb 22nd, 2008 at 18:10

Zanechajte odkaz

  • na ďalšie komentáre odkazujte za použitia čísla komentáru v hranatej zátvorke, napríklad [3]
  • vaša IP adresa je logovaná a zneužívaná na výskumné účely
  • môžete mi tykať
  • komentáre sú moderované, kritiku prijímam, snažte sa prosím strániť invektív