Archiv pro rubriku: Internet

Jidáš Iškariotský zradil Krista i maturanty 2015: Česko má nové meme

Dnes 5. května 2015 se psal maturitní didaktický test z českého jazyka. Pokud na Facebooku nemáte v přátelích studenta ze střední školy, pravděpodobně vás minula vlna hněvu, která se momentálně valí na hlavu Jidáše. Ten patřil do nejbližšího kruhu Ježíše Krista, svého mistra ovšem zradil a usnadnil jeho zatčení výměnou za 30 stříbrných. Na znalost těchto faktů narážela i jedna z otázek zmíněného didaktického testu. Z výchozího krátkého textu bylo nutno postavu Jidáše odvodit z jeho příjmení (Iškariotský), motivu zrady a sumy třiceti stříbrných. Navíc tento rok byla aplikována maturitní novinka — otevřené otázky. Na ně nelze odpovědět výběrem jedné ze čtyř možností, ale na studenta se šklebí prázdné pole, které musí vyplnit. A jak již správně tušíte i otázka týkající se Jidáše byla otevřená. A odpověď znal opravdu málokdo, ostatně, který středoškolák dnes dobrovolně čte Bibli.

Nyní, když jsme si osvětlili situaci, pojďme se společně podívat na ty nejlepší vtipy, které se na účet Jidáše snesly.

jidas-zradil

jidas-body

jidas-zari

 

jidas-wiki

Autentický screenshot české Wikipedie

jidas-walking-dead

 

Na YouTube se můžete podívat na rozhovor se zaměstnancem Cermatu k tomuto tématu.

Po dopsání didaktického testu se píše maturitní slohovka. Na výběr je vždy několik témat. Ještě než se je studenti dozvěděli, téměř jednohlasně se shodli, že je určitě čeká charakteristika Jidáše.

Chybí mi zde nějaké meme s tématikou Jidáše a maturity 2015? Podělte se prosím v komentářích.

Příchozí dotazy:

  • jidas maturita
  • maturita jidas

Návod: jak vyčistit hacknutý WordPress

Stala se mi taková hodně nemilá věc. Můj VPS server byl hacknut, do složky s weby se vtipálkům podařilo nahrát nejrůznější PHP soubory, které začaly rozesílat hromadu SPAMu. V tomto článku vám krok po kroku poradím, jak se z této nemilé situace dostat. Začnu však poněkud obšírněji a popíši, jak se u mě celý problém projevil. Pokud hledáte samotný návod na vyčištění WordPressu, možná budete chtít úvodní povídání přeskočit a podívat se rovnou na něj.

Poznámka: termín hacknutí zde používám ve stejném významu jako redaktoři jedné nejmenované oblíbené české televize.

Přestalo fungovat CSS

Vše začalo poněkud nenápadně, a to přímo na tomto webu. Z ničeho nic se místo úvodní stránky načítala šedá plocha. V HTML přitom vše vypadalo v pořádku. Okamžitě jsem z tohoto problému obvinil plugin W3 Total Cache. Zkoušel jsem pročistit cache, vypnout celý plugin i kompletní odinstalaci. Nic z toho nepomohlo. Řekl jsem si, že se nějak rozhodila šablona. Zkusil jsem aktivovat jinou. To naštěstí pomohlo a já problém dál neřešil.

ZaBANování VPS

Jednu neděli jsem úplně čirou náhodou zjistil, že mi už 22 hodin neběží VPS s většinou mých webů a projektů. Neděle už najednou tak hezká nebyla. Moje VPS se nachází v zahraničí, započala tedy komunikace s tamější podporou, aby mé VPS bylo opětovně nahozeno. Z logu jsem se dozvěděl, že důvod pro suspendování serveru bylo tisíc SMTP spojení a rozesílání SPAMU. Než můj VPS server zase běžel, trvalo to celý den. Opětovně po jeho spuštění jej totiž automatický skript poskytovatele ihned zablokoval, opět pro rozesílání SPAMu. Bylo třeba přidat výjimku, aby VPS šlo vůbec spustit.

Open relay

Nejprve jsem myslel, že jsem na serveru nezakázal open relay (to znamená, že by se kdokoliv mohl na server připojit a přes STMP posílat kamkoliv email). Jak však ukázal jeden z mnoha online testů, tímto to nebylo. Rozhodl jsem se tedy alespoň omezit počet souběžných SMTP připojení. Pro Postfix je nutno v souboru /etc/postfix/master.cf najít tento řádek:


smtp inet n – – – – smtpd

Poslední pomlčku lze nahradit za konkrétní číslo. To udává maximální počet souběžných procesů, které budou obsluhovat SMTP:


smtp inet n – – – 3 smtpd

Když už jsem byl v tom nastavování, rozhodl jsem se ztížit robotům pokusy o přihlášení. Do souboru /etc/postfix/main.cf (klidně např. na konec) stačí přidat následující 3 řádky:


smtpd_error_sleep_time = 1s

smtpd_soft_error_limit = 10

smtpd_hard_error_limit = 20

I když jsem však provedl všechna výše zmíněná opatření, ničemu to nepomohlo — v mailové frontě na serveru se stále objevoval nový SPAM. Začaly mi docházet nápady. Neodesílá emaily náhodou nějaký skript na serveru? Letmo jsem se podíval do adresářové struktury jednoho webu běžícího na WordPressu a skutečně — byly tu soubory, co zde na první pohled nemají co dělat.

Jak vyčistit hacknutý WordPress

Než začnete cokoliv dělat, udělejte si zálohu všech souborů (ano, těch hacknutých) i databáze. Možná to zní zvláštně, ale vyplatí se to. Pravděpodobně totiž budete ve stresu a může se stát, že uděláte něco, čeho budete později litovat.

V mém případě složka s WordPressem obsahovala řadu podivných souborů. Namátkou uvedu některá jména:

    • wpconfig-new.php
    • options.php
    • defines.phps
    • gallery.php
    • view.php
    • exec__root.php — obzvláště tento soubor zní dost podivně

Takže, co je vlastně cílem? Smazat všechny soubory, co zde nemají co dělat. Důležité je, že se nesmí zapomenout ani na jeden. Stačí jeden infikovaný PHP soubor na serveru zanechat a útočník stále bude schopný se serverem provádět řadu věcí. K nalezení zmíněných souborů jsem použil plugin Sucuri Security, který mohu jen doporučit. Tato pomůcka proskenuje adresářovou strukturu a zobrazí změněné i nově přidané soubory. My přitom prahneme po těch nově přidaných. Vžijme se do role útočníka. Přece chceme, aby naše infekce přežila případnou přeinstalaci/aktualizaci WordPressu. Proto nemůžeme modifikovat stávající soubory, ale musíme škodlivý kód uchovávat v těch nově přidaných. Sucuri Security všechny soubory zobrazí v přehledém seznamu. Obzvláště podivné je PHP ve složkách wp-admin, wp-includes, přímo narušení bezpečnosti je poté PHP v wp-content/uploads.

sucuri-security

Výpis změněných souborů

Než nalezené soubory smažete, raději zkontrolujte jejich obsah, zda-li náhodou nemáte v úmyslu odstranit něco důležitého. Pokud soubor obsahuje jeden řádek s hashem (můj případ), okamžitě jej smažte, to zde nemá co dělat. Druhý trik co útočníci u mě použili, byl rádoby prázdný soubor. Respektive na jednom řádku bylo milión mezer a až poté škodlivý kód. Na první pohled to tedy vypadalo, že je soubor prázdný.

Jakmile smažete vše, co na vašem serveru nemá být, vůbec není vyhráno. Útočníci totiž přístup nějakým způsobem získali a je nutno tuto díru záplatovat. Určitě musíte aktualizovat WordPress, pluginy i šablony na nejnovější verzi. Já bohužel používal starou verzi WordPressu, a dopadlo to hackem…

Dále vám doporučím zavítat do nastavení pluginu Sucuri Security a v záložce Hardening povolit vše, co budete moci. Efektivně tím zakážete spouštění PHP souborů zvnějšku serveru. I kdyby se útočníkovi nějak podařilo nahrát na server zákeřný kód, relativně se nic neděje, protože jej nemá jak spustit.

hardening

Záložka „Hardening“

Analýza hacku

Jako programátorovi mi to samozřejmě nedalo a lehce jsem zákeřný kód prostudoval. Uvažoval jsem, že bych zde kódy zveřejnil, nerad bych ovšem, aby si Google myslel, že tento web obsahuje malware.

Infekce začíná spuštěním exec__root.php, což ostatně evokuje i samotný název souboru. Tento skript proskenuje celou adresářovou strukturu a hledá složky, které typicky budou přístupné z webu (např. css, js apod.). Dále bezpečně umí rozpoznat CMS WordPress i Joomla a vyhledává v nich opět přístupné složky. Do každého umístění je poté nakopírován jeden ze souborů s nenápadným názvem (např. wpconfig-new.php, options.php, defines.php apod.). Na konci skriptu je vtipná podmínka, která kontroluje, zda-li server dokáže přes cURL komunikovat s okolním světem. Za tímto účelem se netestuje žádný ze serverů útočníka, ale toto video na YouTube. To je rusky, takže si podle toho možná můžeme udělat obrázek o původu oněch vtipálků. V krátkém pětivteřinovém videu pán říká: „Vy jste kdo? Já vás nezval. Jděte pryč!“. Jak trefné :-D.

Každý z nakopírovaných souborů v mém případě obsahoval kód prohnaný nějakým PHP obfuscatorem, nestudoval jsem jej tedy (ani jsem se nesnažil jej deobfuscatorovat (to je slovo :-) ). Při načtení z webu se zobrazí jednoduchý formulář, který chce jediné — zadat heslo. Po správném zadání se hádám útočníkům zobrazí nějaká administrace , která jim umožní provádět, co se jim zrovna zamane.

Poučení pro příště

Závěrem uvedu stručný výčet několika pravidel, u kterých mi vychází, že je webmaster musí mít na paměti, pokud používá WordPress a chce v noci v klidu spát:

  • pokud používám WordPress, musím jej pravidelně aktualizovat včetně pluginů a šablon
  • uživatelé s vyššími právy musí používat delší/složitější heslo
  • je více než vhodné používat nějaký auditovací nástroj (třeba už zmíněný plugin Sucuri Security)
  • logy pak ovšem někdo musí prohlížet !

Protokol IP, adresa a maska, směrování, IP multicast

Následující článek vám vysvětlí, co je to vlastně ta IP adresa a proč, když si chcete zahrát csko po LANce, tak musíte vyplnit nějaké 255.255.255.0. Ale pěkně popořadě.

IP adresa

Jedná se jednoznačný identifikátor počítače v síti (ale té počítačové), pokud je používán protokol IP, což bude platit prakticky pro každého čtenáře tohoto článku. IP adresa se skládá ze čtyř částí, které oddělují tečky. Každé této čtvrtině se říká oktet, IP adresa je tedy složena ze čtyř oktetů. Každý oktet může obsahovat číslo v rozmezí  0 až 255. Proč zrovna 255? Protože na uložení čísla máme jen 8 bitů, tedy jeden bajt a pokud tento bajt vyplníme samými jedničkami, tak větší číslo než 255 nedostaneme (111111112 => 25510). Takový běžný domácí počítač mívá IP adresu ve stylu 192.168.1.X nebo 10.0.0.X, kde X je typicky malé číslo (např. 1, 2 nebo 3) .

Proč já mám 192.168.1.1, kamarád taky a internet nespadne?

Protože kamarád bydlí jinde, a má u sebe jinou počítačovou síť, než je u vás doma. Koukněte znovu na první řádek předcházejícího odstavce, IP adresa musí být jedinečná v rámci sítě, kterých je ale na světě nepočítaně (Blaník, Jára Cimrman). Kamarád má síť, vy máte síť. Ale zkuste se oba sejít např. u vás doma (v rámci jedné počítačové sítě) a oba dva si nastavte stejnou IP adresu, to se teprve budou dít divy :-).

Protokol IP

Toto téma jsme už načali, troufale jsem tvrdil, že protokol IP používá prakticky každý. Umí totiž velice důležitou věc, propojit více sítí dohromady. Tohoto cíle dosahuje směrováním paketů. Až si budete na Facebooku psát se svým kamarádem, bude to právě protokol IP, který zaslanou zprávu přes různé počítačové sítě doručí na servery Facebooku a odtud až do počítače vašeho známého. Zmíněný paket se skládá jak se samotné zaslané zprávy na Facebooku (např. jj, příjdu), tak metadat, s jejíchž pomocí bude protokol IP vědět, kam paket doručit.

Zajímavé je, že protokol IP nezaručuje, že paket skutečně doručí, jen se o to pokusí. Což může být docela problém, že? Co kdybychom posílali přes datovou schránku daňové přiznání a ono nedorazilo? Proto se IP kombinuje s dalším protokolem TCP. Výsledné kombinaci se říká TCP/IP a zmíněné TCP v této dvojici zaručuje spolehlivé doručení zprávy ve správném pořadí. Ne vždy je to ale výhodné. Až bude Česko sledovat na internetu mistrovství světa v hokeji, počítačové sítě by měly co dělat, pokud by musely garantovat dodání každého pixelu v obraze, přičemž výpadek jednoho čtverečku běžně člověk ani není schopný zaregistrovat. Naštěstí zde máme protokol UDP, opět kombinovaný s IP do podoby UDP/IP. UDP na spolehlivost příliš nehledí, raději se zaměřuje na rychlost. Servery České televize pak nemusí přeposílat ztracený (a v tu dobu již starý) pixel, protože hokejové utkání již pokročilo o nějakou vteřinu a raději odešlou aktuální data.

Maska

Teď se můžeme vrátit k IP adrese a vysvětlit si pojem maska. Správně totiž nemá moc smysl uvádět jen samotnou IP adresu, protože maska s ní umí dělat úplné divy a tak je více než žádoucí ji znát. Každá IP adresa je rozdělena na 2 části. První část udává síť, druhá již identifikuje konkrétní zařízení v síti. Podívejme se například na populární kombinaci 192.168.1.1 a masku 255.255.255.0. Masku si musíme převést do binární podoby a počet jedniček zleva nám říká, kde se IP adresa dělí na zmíněné dvě poloviny.

  • Maska 255.255.255.0 je binárně 11111111.11111111.11111111.0, máme zde tedy 24 jedniček.
  • IP adresa 192.168.1.1 je binárně 11000000.10101000.00000001.00000001, zleva si odpočítáme 24 pozic, protože naše maska má 24 jedniček.

Po rozdělení máme 11000000.10101000.00000001.00000001. Červená část udává síť, modrá prostor, který můžeme použít k identifikaci zařízení (např. počítačů) uvnitř této sítě.

V adresním prostoru automaticky vznikají dvě speciální adresy:

  • 11000000.10101000.00000001.00000000 = 192.168.1.0 — tedy samé nuly v druhé části adresy. Takové IP adrese se říká adresa sítě.
  • 11000000.10101000.00000001.11111111 = 192.168.1.255 — tedy samé jedničky v druhé části adresy. Takové IP adrese se říká adresa broadcastu. Tuto adresu použijeme, pokud chceme zprávu poslat všem uzlům v síti.

K čemu je tedy ta maska? Stručně řečeno, s její pomocí lze měnit rozsah jednotlivých sítí a vytvářet podsítě. U sebe doma si tak např. můžete vyrobit 2 sítě, které se vzájemně neuvidí a k jejich propojení použijete router. K příkladu z úvodu článku — masku při vytváření LAN uvádíme proto, aby počítače byly na stejné síti a vzájemně se viděly.

Směrování

Router neboli směrovač je krabička, která přeposílá pakety. Umí adresovat (směrovat) mezi sousedními sítěmi. Switch dělá něco podobného ale pouze na úrovni lokální sítě. Krásně je to napsáno na Wikipedii:

Rozdílné funkce routerů a switchů si lze představit jako switche coby silnice spojující všechna města ve státě a routery coby hraniční přechody spojující různé země.

Ta krabička co máte pod stolem tedy automaticky není vždy router, i když jí tak možná říkáte. Také může jít o switch. Je jednoduchá metoda, jak poznat, co vám to tam vlastně bliká. Switch ke svému běhu nepotřebuje IP adresu. Koupíte jej v obchodě, donesete domů, strčíte do něj kabel a to je vše. Router je ve své podstatě počítač, který ale nedělá nic jiného, než že neustále přeposílá (směruje) pakety. Ke svému běhu musí mít nastavenou IP adresu, vlastně ideálně dvě, aby mohl mezi těmito dvěma sítěmi směrovat.

IP multicast

Někdy potřebujeme odeslat paket na více cílových stanic zároveň. Představme si například internetové rádio, pro které je zbytečné duplikovat provoz a odesílat ta samá data k mnoha počítačům separátně. Na místo toho je lepší vytvořit tzv. IP multicast. Cílové stanice v tomto případě sdružíme do skupin a paket odešleme právě do této skupiny. Zmíněnou funkcionalitu přináší protokol IGMP.