Tomáš Hála se v dnešním článku zabývá tím, jak na serveru řešit přístup falešných uživatelů, kteří heslo získali podvodně. Dá se s tím vůbec něco dělat?
Tomáš Kavalek tu už na blogu psal několikrát o vykrádání hesel z Total Commanderu a z praxe bohužel vím, že je to poměrně rozšířená technika. Viděl jsem hodně napadených webů a některé z nich patřily i docela velkým firmám.
ACTIVE 24 má zajímavé řešení na straně serveru, které zabraňuje přihlášení z počítače mimo Českou republiku. Vychází z toho, že útok nepřichází z napadeného klientského PC, ale z nějakého botnetu, který má uzly především v zahraničí. Dá se ale situace řešit na straně klienta?
Zdá se, že to není vůbec jednoduché. V diskusi někdo nabízí přechod na SFTP: „Stačilo by všude zprovoznit SFTP a ne to všelijak obcházet… tím se problém nikdy nevyřeší.“ Souhlasím v tom, že by bylo rozumnější řešit příčinu a ne až důsledek. Bohužel přechodem na SFTP se tento problém nevyřeší. Takovou změnou zabráníme odposlechu hesla na síti (což není málo), ale už ne získání hesla.
Problém je v tom, že i u SSH můžete odposlouchávat klávesnici nebo přečíst přihlašovací klíče. Ty jsou uložené na disku stejně jako hesla z Total Commanderu. „Jasně,“ řeknete si teď, „ale ty klíče jsou šifrované.“ To sice jsou, ale pokud se zákeřný virus zaměří na konkrétní aplikaci (což v případě TC stejně už dělá), tak pro něj nebude problém počkat si na otevření „zadejheslo“ dialogu a přečíst si klávesy z klávesnice. Pak si databázi rozšifruje a je to. Stejný problém bude s master passwordem v TC, až se viry přizpůsobí.
Zdá se tedy, že se jedná o neřešitelný problém. Neexistuje podle mě způsob, jak zabránit nějakému viru, který navíc obvykle ve Windows běží pod administrátorem, přečíst hesla na disku nebo hesla zadávaná přímo z klávesnice. Vidíme to taky na různých zlodějích virů do bankovních institucí. Jste napadeni a zadáte heslo do banky? Jste ztracení.
Napadá mě jediné opravdu funkční řešení: hardwarové tokeny s uloženými klíči. Existují takové varianty (třeba OpenGPG karta), které umožňují i přímou autentizaci na SSH. Fungují tak, že klíče nikdy neopouštějí token. Počítač prostě požádá přes rozhraní (USB) o podepsání nějakých dat a data se mu vrátí podepsaná. Těmi se pak prokáže serveru. Stále je sice možné odposlechnout virem PIN z klávesnice a nechat si jednorázově něco podepsat, ale už prostě klíče (hesla) neodcizíme a nepošleme botnetu. Mimochodem pokud máte od banky čtečku karet do USB, tak se přihlašujete právě tímto bezpečným způsobem.
Bohužel takové řešení je velmi komplikované z hlediska logistiky. Museli byste buďto distribuovat hotové tokeny, ze kterých jste si předem na server stáhli veřejný klíč nebo donutit uživatele si podobné zařízení koupit. Uživatelé jsou bohužel na taková opatření velmi citliví a než aby měli dobrý pocit z toho, že jsou v bezpečí, raději přejdou k jinému webhosterovi, který „je neotravuje nesmysly“.
"Existují takové varianty (třeba OpenGPG karta), které umožňují i přímou autentizaci na SSH." Prihlasovat na SSH sa da vsetkymi zariadeniami, ktore podporuju Cryptoki. Na Windows vdaka PuttySC a na ostatnych OS pomocou openssh.
"Stále je sice možné odposlechnout virem PIN z klávesnice"
V pripade pouzitia citacky kariet s integrovanym pinpadom to mozne pokial viem nie je. PIN sa v tom pripade vykomunikovava priamo medzi pinpadom a smartcard.
Bohužel největší slabinou je uživatel a jeho pohodlí a s tím spojený konkurenční boj o zákazníka. Dobře to bylo vidět na přístupu k účtu v bance přes Inernet. Banky na začátku přišly s dobrým zabezpečením, ale postupně v rámci boje o zákazníka slevovaly až k zabezpečení prostým heslem. A teprve po první vlně zneužití se vrátily zpátky aspoň k ověřování přes sms.
Myslím si, že nejlepší by bylo, kdyby velcí webhosteři dávali HW token ke službě zdarma. Když ne k základní, tak aspoň k nějaké premium. Když si ty tokeny nechají vyrobit na Dálném východě a nakoupí jich vagon, bude cena minimální. Ani nemusí být s PIN klávesnicí, ani se smartcard, stačí něco jako USB flashka, ale aby to umělo podepisovat a nešel z toho stáhnout privátní klíč.
Klidně bych pak ověřování tokenem udělal volitelné a vypínatelné. Když už by uživatel dostal zadarmo token, jen málokdo by imho autorizaci vypnul. Pokud naopak někdo zavede volitelnou autorizaci tokenem s tím, že si ho musíte někde koupit, bude to naprosto neúčinné, nikdo si to nekoupí.
Tady se neřeší FTP ale zavirované Windows a pak už je jedno, jestli ukradnou FTP nebo bankovní přístup, stáhnou certifikáty a hesla k VPN atd.. Prostě když je PC pod adminem plně v moci útočníka, tak nějaký ftp přístup je to nejmenší a hw token k němu neřeší nic. Muselo by se na hw tokeny přehodit vše, co komunikuje se světem, jinak vám zneužijí paypal, poštu, cokoliv.
Prostě mi přijde, že řešíte jak uchránit člověka, který se nestará o svoje auto před tím, aby nemohl nabourat v důsledku technické závady a radíte mu jezdit vlakem a o auto se dál nestarat. Je to nesmysl. Řešením je starat se o auto, případně si pořídit bezpečnější (Win->Lin :)), ale řešení není postavit ke všem "Kauflandům" koleje a jezdit do nich vlakem.
> Uživatelé jsou bohužel na taková opatření velmi citliví a než aby měli dobrý pocit z toho, že jsou v bezpečí, raději přejdou k jinému webhosterovi, který „je neotravuje nesmysly“.
Uzivatele by se meli predevsim starat o to, aby meli zabezpeceny vlastni system a webhosteri by se meli starat o to, aby pripadne spatne chovani (at uz zavirovani, nebo jenom spatne napsany skript nadmerne vytezujici zdroje) nektereho ze zakazniku neomezoval ostatni.
Neni divu, ze uzivatele, kteri dodrzuji zakladni pravidla bezpecnosti a tedy nikdy nebyli obeti viru/worma/trojana, nechteji byt buzerovani opatrenimi, ktere tu jsou jenom kvuli spatne zabezpecenym uzivatelum.
> Ani nemusí být s PIN klávesnicí,
Pokud nebude mit PIN klavesnici a nebude pozadovat pri kazdem podpisu autorizaci, pak je to k nicemu - neni treba z toho klic stahovat, cerv na pocitaci si kdykoliv necha podepsat cokoliv.
Podlehnout bezpečnosti hardwarových tokenů je iluze. Bohužel řada bank tento krok udělala. Česká spořitelna například zrušila "OTP kalkulačky" a tvrdí, že HW token je mnohem bezpečnější. Což je samozřejmě kravina.
Když má útočník počítač pod kontrolou, může si nechat podepsat cokoliv. A navíc je to děsná pruda - kompatibilita HW s programy, každý má jiný systém, každému se líbí nějaký jiný klient. Pro FTP naprostý nesmysl, i kdyby to dávali zdarma celé.
Přitom řešení je jednoduché a některé zahraniční banky to používají. Jsou to různé formy jednorázových hesel. Buď vám dají sešitek s hesly, nebo kódovací kartičku, nebo nějakou aplikaci do iPhone, Androidu, Java mobilu.
Stejný princip by šlo použít i pro FTP a i docela snadno implementovat.
"Když má útočník počítač pod kontrolou, může si nechat podepsat cokoliv."
Iba so súhlasom užívateľa. Ten musí zadať PIN. Verím, že by šlo spraviť vírus s integrovaným keylogerom, táto možnosť však prestáva byť aktuálna pri použití pinpadu.
"A navíc je to děsná pruda - kompatibilita HW s programy, každý má jiný systém, každému se líbí nějaký jiný klient."
V prostredí Windows existujú dve API (čisto microsoftácky CryptoAPI a štandardný Cryptoki), väčšina smartcard(SC) podporuje obe API, aplikácie si môžu vybrať ľubovoľné z nich. Na ostatných systémoch je to jednoduchšie, programy majú na výber iba štandardné Cryptoki. Ešte som sa nestretol s nejakou nekompatibilitou SC a SW. Jediný problém býva s rýchlosťou/pomalosťou SC, kedy môže dôjsť ku timeoutu sieťového spojenia.
Mozna se pletu. Ale souvisi to tady jak jiz psal Ondra - v prve rade zabezpecit sve pocitace. A proc v pripade treba FTP obycejne domeny, kde je treba stranka o filmu resit tokeny atp? Pochopitelne pokud by to bylo FTP k datum vltava.cz tak je to neco jineho :-D. Jednoduche reseni jak se vyhnout tomuhle je vyuzivat jak sifrovane FTP, tak neukladat hesla a pouzit VIRTUALNI KLAVESNICI, kterou me napriklad nabizi pouzivat primo Kaspersky Internet Security. A rozhodne bych nepouzival antivir zdarma, ale radeji podobny balik jako KIS, tak i treba Norton IS (mozna ma trosku jiny nazev) a podobne.
Podle mého nejlepší řešení je aby každý webhoster měl na webu jednoduchý interface na povolování IP. (Typicky odkaz, kliknu, pihlásím se a vidím tlačitka:
"Povolit mou současnou IP [trvale] [na dvě hodiny] [dneska] [vypnout kontrolu IP - NEBEZPEČNÉ]"
A je to. A defaultně mu povolit jen jednu - např. tu ze které objednal. To je řešení naprosto v pohodě, které zamezuje útokům "zvenčí", protože typický uživatel si povolí svojí domácí IP, pracovní IP a párkát si na den pustí někde v kavárně, ve škole, na letišti.
Poslední dobou vídám dynamické IP minimálně. Dokonce i O2 už dává (navenek) statické ;) To že na tom visí víc lidí v tomhle případě nevadí.
Já tedy nejsem odborník na bezpečnost ani síťové protokoly, ale když už je tu zmiňováno internetové bankovnictví, co se tak inspirovat a zavést následující model (samozřejmě v rámci Premium služeb, toto řešení by něco stálo):
Přihlašování přes FTP jednorázovým heslem, které přijde jako sms na mobil a dá se vyžádat z webového rozhraní nebo odesláním sms. Pak může mít uživatel keyloggerů třeba dvacet, ale protože heslo platí jen pro jedno přihlášení (a webhoster by se měl postarat o to, aby se jím mohl přihlásit jen jeden uživatel) a získává se fyzicky odděleným kanálem, tak podle mě nejde prakticky (za vynaložení rozumných nákladů) zneužít. Snad jedině se vloupat k majiteli mobilu a držet mu pistoli u hlavy...
Rosto, to je take moznost. Nicmene je tu problem kdo ponese ty naklady. Bud poskytovatel v ramci jak jsi rikal premium sluzby. Jenze, co kdyz se uzivatel hlasi na FTP 100x denne. Pripadne bude chtit poskodit poskytovatele (ano lze nastavit limity atp, ale potom uz to je o kompromisech a vzdy nekdo bude na tom mene dobre).
Pokud to ma tahnout uzivatel, tak je problem s tim jak to bude platit. Ano muze slouzit kredit, ale kvuli treba 1Kc posilat 100KC na tri mesice do kreditu me prijde vice nakladnejsi na zauctovani u obou stran nez, aby to bylo k uzitku.
Nicmene ano, model to je dobry, ono by stacilo aby to heslo chodilo i na email, i to eliminuje tisice pripadu zneuziti, ale do jake doby? Jakmile uz je jednou v PC uzivatele vir, tak je ohrozena i posta. A kdyz to bude utok cileny, tak je ohrozen i cely ucet (zmena emailu atp).
V podstate by jiz stacilo to, aby se zobrazovalo jen heslo pro treba aktualni hodinu nebo aktualni den, tyden v administraci a treba pro jistotou jen jako obrazek. Nicmene, to by se pokazde uzivatel musel hlasit do administrace.
Navic toto vse eliminuje moznost automatickeho prihlasovani (ftp backup atp).
Jistym resenim by bylo kdyby existoval vlastni sw webhostera, ktery by zvolil jiny zpusob prihlasovani a byl jedinecny pokazde. Taktez bez toho sw by se nedalo pripojit. Ano casove narocne na pripravu, ale je to take reseni. Moznosti je spousta. Nicmene je treba zachovat take pohodli uzivatelu. Spousta utoku je (ted me opravte pokud se pletu) roboticka. Tzn, ze se nekde plni db useru a hesel a pote se robot pripoji a udela co ma. K tomu by stacilo, aby byl FTP protokol vybaven nejakou formou "captchy". Nemusel by to pritom byt obrazek..-)
Podle meho nazoru jde o dva velke problemy.
Prvni (a hlavni) problem je uzivatel. Vetsina uzivatelu se o PC vubec nestaraji, vubec nechapou jak ta kraksna funguje a vubec je to nezajima. Pocitac je pro ne jen nastroj, jako pro kucharku varecka a tak k tomu pristupuji. Jenze varecka je videt kdyz je spinava a tak ji kucharka umyje, ale PC kdyz je zavirovane a zmalwarovane tak diky dnesnimu HW vykonu stale funguje, byt zpomalene a spatne, a uzivatel to neresi. A kdyz tam user necha malware, tak ten si ukradne cokoli at se snazime jak chceme a delame zabezpeceni jake cheme. S tim asi nic moc nenadelame, osvetou jako je zde na rootu snad udrzime aspon nejake procento lidi kteri se chovaji jinak-rozumneji.
Druhy problem je v tom, ze existuje jedina dominantni platforma - momentalne MS-Windows - s vysokou penetraci daneho SW - kombinace FTP a TC. V ten moment ma dany malware velkou sanci na uspech. Kdyby nebyla tato "monokultura" tak rozsirena, pak by minimalne nebyl takovy uspech daneho malwaru.
Hodne se tu mluvi o tom, ze SFTP nic nevyresi, ze slo o zcizeni hesel. Jasne, jenze DRTIVA VETSINA WEBHOSTINGU (VCETNE TECH TAK ZVANYCH VELKYCH A KVALITNICH) NEUMOZNUJE JINY PRISTUP NEZ FTP! I ty hostingy se chovaji jako BFU a aktivne pracuji na vlastni monokulture velmi nachylne na jeden typ utoku, misto aby aktivne nabizeli 3-4 varianty a doporucovali novym uzivatelum jeden z nich treba nahodnym vyberem. Nerikejte mi ze existuje jen FTP a SFTP, urcite existuje vice protokolu, jen jsou tyhle dva "nejproflaknutejsi".
Rieseni existuje niekolko.
Hotova/Implemetovana: V administracii je moznost blokovat FTP a SFTP ucty a odomknut ich jednorazovao alebo vsetky na urcitu dobu. Malokto tuto moznost pouziva, inak je celkom dobra lebo by bot musel najprv pochopit ze musi urobit aj nieco specificke pre dany hosting aby sa dostal dalej.
Dalo by sa lahko: SMS sa daju dnes posielat z vacsiny webhostingov a prijmat tiez. Proste posle clovek SMS "FTP 60" alebo "SFTP 60" zo svojho REGISTROVANEHO cisla a zase raz by bolo prihlasovanie pvoolene len 60 min.
System pracuje primitovne. LDAM autorizacia a MySQL FTP ucty.
Inak by bolo mrte simple spravit one time passwordy, aj ked to je z mojho pohladu obtazujucejsie. Tak isto "mobile TAN" pretoze tam by som chcel od ludi aby za tie SMS platili, nakolko outbound ma nieco stoji.
Zajímalo by mě, proč se nikdo nezmiňujete to ochraně centrální bezpečnou úložnou hesel, podobnou např. seahorse. Na windows je ovšem obvykle zásadní problém v tom, že útočník napadl systém a je schopen k němu získat privilegia administrátora, před kterým se jen velice těžko dá cokoliv v počítači uloženého utajit. Jsou všelijaké nástroje na pamatování hesel, jenže takové nástroje mají zásadní problém s integrací do okolních nástrojů. Třeba integrace bezpečnějšího správce hesel do TC by asi nebyla zrovna jednoduchá. Jenže když už nástroj na správu tajností, tak by měl pracovat s asymetrickými klíči o úplně jiné výpočetní složitosti, než nějaké jedno dvě slova. A jsme o problému, jak vysvětlit běžnému uživateli, jak pracovat bezpečně s certifikáty nebo jejich ekvivalenty, a jak je udržet opravdu tajné. Na windows XP pod administrátorem vcelku nemožný úkon.
A protože udělat řešení pořádně znamená přesvědčit toho uživatele, že opravdu není jedno, jestli mu tam ty breberky běhají nebo neběhají na pozadí, když si tahá svoje péčko. Protože je to odsouzeno k neúspěchu, řeší se problémy podobnými zvrácenostmi, jako GeoIP databáze. Bohužel, lepší asi jentak nenajdeme.
Mimochodem zajímalo by mě, zda-li jsou provideři IPv6 ready, a zda by vůbec byli schopni podobně problém vyřešit i pro ipv6. Přijde mi totiž, že IPv6 nemá snadno dostupnou databázi s polohou. Že by to byl hlavní důvod, proč se nešíří mezi lidi?
Jedno docela hezké řešení nabízí firma Yubico:
http://www.pepak.net/bezpecnost/yubikey-v2-0/
A rovnou k tomu FTP server, do kterého jsem to implementoval:
http://www.pepak.net/software/slimftpd/
[5] Tady se neřeší FTP ale zavirované Windows
[7] Když má útočník počítač pod kontrolou, může si nechat podepsat cokoliv. A navíc je to děsná pruda - kompatibilita HW s programy, každý má jiný systém, každému se líbí nějaký jiný klient. Pro FTP naprostý nesmysl, i kdyby to dávali zdarma celé.
Souhlasím, kámen úrazu jsou zavirované počítače. Tyhle věci a detekce na serveru můžou dočasně pomoct, ale je jenom otázka času, kdy se viry přizpůsobí.
[17]Mňa by zaujímalo, že keď je v Ubuntu ten seahorse a niekto sa dostane k jeho konf. súboru, tak či je možné z neho vyčítať heslá... Alebo nie?
Na to potřebuje:
- práva roota
- heslo ke keyringu
Obojí se v principu dá získat - za současného stavu by stačilo odposlouchat heslo při přihlašování zadávané do gksu a změnit binárku display manageru (gdm/kdm). Takže i v Linuxu je potřeba nemít v systému virus. Při instalování jenom z důvěryhodných zdrojů (pokud možno oficiální repozitáře) a pravidelném aktualizování systému by to neměl být problém. Virů nebo škodlivých programů pro Linux se zatím objevilo velice málo.
Myslim ze najlepsie riesenie su jednorazove hesla, zabezpecit sa daju velmi jednoducho: server posle uzivatelovi salt ktory pripise k heslu a zrata md5 (alebo iny hash) a odosle naspat, po odpojeni sa automaticky vygeneruje novy salt.
Napr. uzivatel ma heslo skaredymajkrosoft a server posle salt hk4dgn234fhk5m2lgc25hbd uzivatel ale posle ako heslo 561b3408d1256cdd30eb185ae43273ae server si vygeneruje md5ky a porovna - jednoduche, navyse keby sa dal salt najst na webe poskytovatela nebolo by treba robit ziadny program - staci mat program na ratanie md5 a takych je dost, v spojeni s virtualnou klavesnicou by sa nedalo zachytit ani uzivatelove heslo
Tak to jsem řekl blbost, keyringy jsou opravdu v domovském adresáři uživatele: ~/.gnome2/keyrings. Takže práva roota nejsou nutně potřeba, stačí získat heslo ke keyringu. U výchozího odpovídá heslu uživatele. Takže je potřeba, aby virus zjistil heslo uživatele, a to asi bez roota neudělá.
Ja som sa stretol s niecim, co neviem uplne presne ako funguje. Vypada to ako mala klucenka s displejom na ktorej sa stale menia hesla asi v 12 minutovych intervaloch. Uzivatel sa musi prihlasit svojim menom a heslom a k tomu este tym kodom s klucenky. Neviem ako je ta klucenka synchronizovana so servrom. Myslim si ze nijako, ze iba generuje nove kody v urcitych casovych intervaloch aserver vie ake a kedy...
[13] „V podstate by jiz stacilo to, aby se zobrazovalo jen heslo pro treba aktualni hodinu nebo aktualni den, tyden v administraci a treba pro jistotou jen jako obrazek. Nicmene, to by se pokazde uzivatel musel hlasit do administrace.“
A kdo útočníkovi brání, aby odchytil takto získané heslo v okamžiku, kdy ho uživatel zadává do FTP klienta?
[23] „Napr. uzivatel ma heslo skaredymajkrosoft a server posle salt hk4dgn234fhk5m2lgc25hbd uzivatel ale posle ako heslo 561b3408d1256cdd30eb185ae43273ae server si vygeneruje md5ky a porovna - jednoduche, navyse keby sa dal salt najst na webe poskytovatela nebolo by treba robit ziadny program - staci mat program na ratanie md5 a takych je dost, v spojeni s virtualnou klavesnicou by sa nedalo zachytit ani uzivatelove heslo“
Jenže útočník, který získal na počítači uživatele práva admina, může například vyměnit binárku /usr/bin/md5sum za nakaženou nebo udělat screenshot virtuální klávesnice a poslechnout si pohyby myši.
[all] To je tak složité pochopit, že před rootem/adminem prostě nemáte šanci cokoliv uchránit?
[Jenda] ono ani práce pod prostým uživatelem tady toho moc neřeší, pokud je to ten samý uživatel, co uploaduje web (a že nepředpokládám, že by si BFA dělal extra účty na práci a upload webů).
To odmykání přístupu jen na určitý časový interval není až tak špatné protiopatření - minimálně to zpomalí šíření toho červa (teď může začít upload okamžitě, s tímhle by červ musel čekat na uživatele, než se rozhodne updateovat web). Tím by byla větší šance na reakci např. ze strany antivirů.
Nepomůže vám nic, ani jednorázová hesla ani hardwarové tokeny. Tak si ten virus počká, až se přihlásíte (klidně jednorázovým heslem generovaným hardwarově), a pak tam kromě souborů, co chcete nahrát, pozmění i nějaké další soubory. Ještě by třeba někdo mohl přijít s hardwarovou autentizací pro každý přenesený soubor zvlášť, ale to taky nepomůže --- až tam budete nahrávat index.html, tak ho virus pozmění.
Řešení je nenechat si počítač zavirovat nebo používat dostatečně minoritní ftp klient (klidně bez jakéhokoli šifrování) s vědomím, že se autorům viru nebude chtít na ten program specializovat.
Ta argumentace "proti" SFTP mi přijde dost divná. Ano, pokud má útočník PC pod kontrolou, nezastaví ho ani SFTP. To ale nic nemění na tom, že SFTP mělo FTP už dávno nahradit. Jenže "u nás" je bohužel často problém na docela draze placených hostinzích i ve věcech, které jsou na zahraničních free hostinzích tři čtyři roky zpět standard.
Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. GNU/Linuxem a Unixem obecně se zabývá již více než deset let a věnuje se především jeho nasazení v počítačových sítích a bezpečnostní politice. Zde bloguje o Root.cz, Linuxu, internetu a světě kolem sebe.
Přečteno 112 292×
Přečteno 89 771×
Přečteno 73 163×
Přečteno 58 109×
Přečteno 54 435×