Warning: Table './d1394_drupal/cache' is marked as crashed and last (automatic?) repair failed query: SELECT data, created, headers, expire, serialized FROM cache WHERE cid = 'variables' in /data/web/virtuals/1394/virtual/www/includes/database.mysql.inc on line 136

Warning: Table './d1394_drupal/cache' is marked as crashed and last (automatic?) repair failed query: UPDATE cache SET data = 'a:996:{s:13:\"theme_default\";s:5:\"fever\";s:13:\"filter_html_1\";s:1:\"1\";s:18:\"node_options_forum\";a:1:{i:0;s:6:\"status\";}s:18:\"drupal_private_key\";s:64:\"5fe6eae150af4e56112c001190001c50f30fff335724864ea3d95df181c7224f\";s:10:\"menu_masks\";a:30:{i:0;i:127;i:1;i:125;i:2;i:63;i:3;i:62;i:4;i:61;i:5;i:60;i:6;i:59;i:7;i:58;i:8;i:57;i:9;i:56;i:10;i:31;i:11;i:30;i:12;i:29;i:13;i:28;i:14;i:25;i:15;i:24;i:16;i:22;i:17;i:21;i:18;i:15;i:19;i:14;i:20;i:13;i:21;i:12;i:22;i:11;i:23;i:7;i:24;i:6;i:25;i:5;i:26;i:4;i:27;i:3;i:28;i:2;i:29;i:1;}s:12:\"install_task\";s:4:\"done\";s:13:\"menu_expanded\";a:1:{i:0;s:9:\"menu-user\";}s:9:\"site_name\";s:5:\"FLOPS\";s:19:\"file_directory_temp\";s:23:\"sites/default/files/tmp\&quo in /data/web/virtuals/1394/virtual/www/includes/database.mysql.inc on line 136

Warning: Cannot modify header information - headers already sent by (output started at /data/web/virtuals/1394/virtual/www/includes/database.mysql.inc:136) in /data/web/virtuals/1394/virtual/www/includes/bootstrap.inc on line 726

Warning: Cannot modify header information - headers already sent by (output started at /data/web/virtuals/1394/virtual/www/includes/database.mysql.inc:136) in /data/web/virtuals/1394/virtual/www/includes/bootstrap.inc on line 727

Warning: Cannot modify header information - headers already sent by (output started at /data/web/virtuals/1394/virtual/www/includes/database.mysql.inc:136) in /data/web/virtuals/1394/virtual/www/includes/bootstrap.inc on line 728

Warning: Cannot modify header information - headers already sent by (output started at /data/web/virtuals/1394/virtual/www/includes/database.mysql.inc:136) in /data/web/virtuals/1394/virtual/www/includes/bootstrap.inc on line 729
Jak zabezpečit přístup k hostingu: FTPS, SFTP, SSH? | FLOPS

Jak zabezpečit přístup k hostingu: FTPS, SFTP, SSH?

Obory článku
internet, autorizace, bezpečnost, hosting, prevence, šifrování
Zmiňované firmy
Ignum

FTP (File Transfer Protokol) je platformě nezávislým internetovým protokolem aplikační vrstvy a v současnosti je nejvíce využívaný pro dvě základní činnosti: sdílení dat a administraci webových stránek. Jak napovídá název článku, zaměříme se zde především na druhou možnost využití tohoto protokolu a její bezpečnostní úskalí.

Jedná se o jeden z nejstarších protokolů na principu klient – server. Většina uživatelů by jistě řekla, že provoz FTP probíhá na portu 21. Není to však zcela pravda. Port 21 slouží k řízení samotného přenosu a jsou jím přenášeny „pouze“ řídící příkazy. Musí být tedy na straně serveru vždy otevřený, aby server mohl „naslouchat“ požadavkům klientů. Navázání komunikace probíhá zjednodušeně tak, že se klient připojí k požadovanému serveru a odešle mu autorizační informace (jméno a heslo) a další data (metoda přenosu – binární, ASCII, výchozí adresář atd.). Server tyto informace zpracuje, a pokud je vše v pořádku, dojde k úspěšnému přihlášení. Samotný přenos souborů je pak realizován na portu 20. FTP potřebuje ke svému provozu tedy hned dva porty.

Jde o opravdu starý internetový protokol definovaný poprvé v RFC 959 (Request for Comments) z roku 1985. Pozdější rozšíření popsané v RFC 2228 je z roku 1997. Především z tohoto důvodu samotný FTP neobsahuje prakticky žádné prvky zabezpečení a používání „holého“ FTP je dnes v přeplněném světě internetu, kde zdaleka ne všichni jeho uživatelé mají tak ušlechtilé záměry jako v jeho počátcích, skutečná bezpečnostní hrozba.

Tohle se objevilo na jednom populárním českém webu. Crew Iranian Hackers měli tentokrát jednoduchou práci (náhled celé stránky po kliknutí na obrázek). Jak jste na tom vy?

Jaká jsou rizika?

V čem tedy konkrétně spočívá (ne)bezpečnost protokolu FTP? Základním kamenem úrazu je především to, že přenos autorizačních a dalších dat (viz výše) probíhá nešifrovaně a v čistě textové podobě. Odposlechnutí jména a hesla je pro pokročilého uživatele (což hackeři/crackeři většinou jsou) triviální záležitostí. Ukázku zachycené FTP komunikace probíhající na portu 21 najdete pro představu i zde v tomto článku. K zachycení byl použit velmi známý „sniffer“ (nebo také packet analyzer) Wireshark. Jde o volně stažitelnou multiplatformní aplikaci, podobných programů pro různé operační systémy existují desítky. Samotná jejich existence ani používání není nelegální. Jde v zásadě o nástroje určené pro diagnostiku síťové komunikace a ladění síťových aplikací. Nelegální je až použití těchto nástrojů pro odposlouchávání datového provozu druhé strany bez jejího vědomí a následné zneužití takto získaných informací.

Zachycená FTP komunikace

0000 00 4f 74 30 73 90 00 4f 6a 02 af 87 08 00 45 00 .Ot0s..O j.....E.
0010 00 4a 5d d2 40 00 80 06 d0 c0 c0 a8 01 17 d9 1f .J].@... ........
0020 31 3c 40 58 00 15 ab 79 d7 17 a8 00 7a cb 50 18 1<@X...y ....z.P.
0030 11 16 16 42 00 00 55 53 45 52 20 6d 75 6a 2d 6f ...B..US ER muj-o
0040 64 70 6f 73 6c 6f 75 63 68 61 76 61 6e 79 2d 75 dposlouc havany-u
0050 63 65 74 2e 63 7a 0d 0a cet.cz..
0000 00 4f 6a 02 af 87 00 4f 74 30 73 90 08 00 45 00 .Oj....O t0s...E.
0010 00 5f 83 ff 40 00 39 06 f1 7e d9 1f 31 3c c0 a8 ._..@.9. .~..1<..
0020 01 17 00 15 40 58 a8 00 7a cb ab 79 d7 39 50 18 ....@X.. z..y.9P.
0030 00 2e 79 e5 00 00 33 33 31 20 50 61 73 73 77 6f ..y...33 1 Passwo
0040 72 64 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 rd requi red for
0050 6d 75 6a 2d 6f 64 70 6f 73 6c 6f 75 63 68 61 76 muj-odpo slouchav
0060 61 6e 79 2d 75 63 65 74 2e 63 7a 0d 0a any-ucet .cz..
0000 00 4f 74 30 73 90 00 4f 6a 02 af 87 08 00 45 00 .Ot0s..O j.....E.
0010 00 3c 5d d3 40 00 80 06 d0 cd c0 a8 01 17 d9 1f .<].@... ........
0020 31 3c 40 58 00 15 ab 79 d7 39 a8 00 7b 02 50 18 1<@X...y .9..{.P.
0030 11 08 9d c9 00 00 50 41 53 53 20 76 69 64 69 6d ......PA SS vidim
0040 73 76 65 68 65 73 6c 6f 0d 0a sveheslo ..

Box s kódem zachycené komunikace obsahuje pro nás zajímavé fragmenty komunikace. Stěžejní informace jsou na první pohled vidět. Útočník se dozví vše, co potřebuje. Tedy přihlašovací jméno „muj-odposlouchavany-ucet.cz“ a následně i heslo „vidimsveheslo“. V komunikaci lze vidět i adresu cílového serveru (zde úmyslně vynecháno). Samozřejmě, tato metoda zachytávání paketů má svá úskalí.

V praxi je poměrně obtížné sledovat pakety proudící z konkrétního počítače připojeného kdesi v internetu a taková akce vyžaduje důkladnou přípravu a sběr informací o cíli. Útočníci proto velmi často využívají jinou možnost k získání citlivých dat, která už nepramení přímo z návrhu protokolu FTP, ale především z nevědomosti a neopatrnosti samotných uživatelů.

Druhý způsob je daleko nebezpečnější a především efektivnější. Dá se říci, že většina úspěšných útoků na webové prezentace je provedena právě touto cestou. Scénář je vždy stejný. Uživatelský počítač, který má v FTP klientu uložena v nešifrované podobě hesla k FTP účtům, je napaden nějakým druhem trojského koně (k infiltraci dojde například otevřením nevyžádané pošty, návštěvou závadných stránek, stažením infikované aplikace atd.). Malware následně po celou dobu své existence v napadeném počítači odesílá útočníkovi informace o všech aktivitách, které uživatel provádí. Získání nezabezpečeně uloženého jména a hesla je otázkou okamžiku. Následně agresorovi nic nebrání v destrukci, nebo libovolné modifikaci webových stránek, ke kterým získal přístup. Následný útok navíc nemusí vykonávat člověk, ale často jde o dílo automatizovaných robotů, které na weby umisťují další škodlivý kód.

Jak se bránit? FTPS nic nestojí!

Nyní, když víme, jaké techniky a slabiny útočníci využívají, bude pro nás daleko snadnější proti nim najít obranu. Nástroje pro efektivní obranu existují, nic nestojí a jsou bez problémů dostupné. Bohužel je většina běžných uživatelů stále nevyužívá.

Odposlouchávání FTP komunikace lze zabránit použitím FTPS. Jedná se rozšíření protokolu FTP o vrstvu SSL (Secure Socket Layer). Novější verze této metody se jmenuje „explicitní FTPS“ a probíhá tak, že se definuje příkaz, který určí, že bude použito TLS zabezpečení přenosu. Klient se připojí na port 21, zahajuje nešifrovanou komunikaci a žádá o aktivaci TLS před tím, než budou posílána citlivá data. Tento postup je velmi dobře čitelný z druhé tabulky, kde je již záznam šifrované komunikace (výpis je zkrácen).

Záznam šifrované FTP komunikace

0000 00 4f 74 30 73 90 00 4f 6a 02 af 87 08 00 45 00 .Ot0s..O j.....E. 
0010 00 32 00 50 40 00 80 06 2e 5b c0 a8 01 17 d9 1f .2.P@... .[...... 
0020 31 3c 41 31 00 15 3c 7a fe ad ed 52 0a 61 50 18 1<A1..<z ...R.aP. 
0030 11 16 4f 20 00 00 41 55 54 48 20 54 4c 53 0d 0a ..O ..AU TH TLS.. 
00b0 55 04 0a 13 07 45 71 75 69 66 61 78 31 2d 30 2b U....Equ ifax1-0+ 
00c0 06 03 55 04 0b 13 24 45 71 75 69 66 61 78 20 53 ..U...$E quifax S 
00d0 65 63 75 72 65 20 43 65 72 74 69 66 69 63 61 74 ecure Ce rtificat 
00e0 65 20 41 75 74 68 6f 72 69 74 79 30 1e 17 0d 30 e Author ity0...0 
0000 00 4f 6a 02 af 87 00 4f 74 30 73 90 08 00 45 00 .Oj....O t0s...E. 
0010 00 7d c6 08 40 00 39 06 af 57 d9 1f 31 3c c0 a8 .}..@.9. .W..1<.. 
0020 01 17 00 15 41 31 ed 52 10 c2 3c 7b 00 9f 50 18 ....A1.R ..<{..P. 
0030 00 36 80 e5 00 00 17 03 01 00 50 76 79 27 de 0e .6...... ..Pvy'.. 
0040 dd e3 95 98 5f 47 90 63 6f 04 08 06 8e 86 92 60 ...._G.c o......` 
0050 f3 3b 1c b7 b8 7a 5b 5b da 12 68 2c 77 24 ab d6 .;...z[[ ..h,w$.. 
0060 b7 5f 26 0e d4 f7 84 15 3f d2 22 e5 10 74 49 86 ._&..... ?."..tI. 
0070 ae df 64 0c 92 7c 2c 20 5a 93 f8 0c 86 ec ca 0a ..d..|, Z....... 
0080 4f f2 47 19 5d 2a d0 1c 9e 5e d7 O.G.]*.. .^.

Jako první vidíme „AU TH TLS“. Tímto příkazem je sděleno serveru, že si klient přeje dále komunikovat pouze šifrovaně. Pokud je na serveru FTPS povolen a nainstalován bezpečnostní certifikát, dojde k navázání šifrované komunikace a veškerý další provoz mezi klientem a serverem je již šifrovaný, viz poslední zachycený paket, který ve skutečnosti obsahuje přihlašovací údaje. 

Hlavní podmínkou pro použití FTPS na straně uživatele je FTP klient, který tuto možnost podporuje. Aktuálně se jedná prakticky o všechny dostupné aplikace. Zde se budeme bavit jen o těch nejrozšířenějších (za předpokladu, že jako operační systém používáme Windows) a těmi jsou FileZilla a Total Commander (dále jen TCM). FileZilla má podporu FTPS již implementovanou a stačí ji v konfiguraci připojení pouze povolit (bohužel většina uživatelů nedělá ani toto). Mnohem více používaný TCM však vyžaduje k aktivaci FTPS o něco více péče. Postup pro poslední verzi 7.50a (stáhnout můžete zdarma na stránkách vývojáře: www.ghisler.com) je následující:

TCM používá pro šifrování komunikace Opensource knihovny OpenSSL. Tyto nejsou součástí základní instalace. Lze je však zdarma stáhnout například zde. Na výběr je hned několik verzí, včetně 64bitové, která ovšem v TCM nefunguje. My sáhneme po Win32 OpenSSL v0.9.8k Light. Jelikož se jedná o poslední verzi zkompilovanou pro Windows 2000 a vyšší, budete pravděpodobně potřebovat stáhnout také Visual C++ 2008 Redistributables.

Šifrujeme komunikaci

Jako první nainstalujeme balíček Visual C++ 2008 Redistributables. Hned poté stažený soubor Win32OpenSSL_Light-0_9_8k.exe. Během instalace OpenSSL lze vybrat cílové umístění (můžete ponechat výchozí). Důležitá je možnost „copy OpenSSL DLLs to windows system directory“, kterou zcela jistě ponechte zatrhnutou. Vyhnete se tak případným problémům s funkčností.

Nyní přišel čas spustit samotný TCM a přejít do nabídky FTP připojení. Jedno vybereme a stiskneme „upravit“. Zatrhneme volbu SSL/TLS přičemž adresa serveru se automaticky změní na ftps://nazev_serveru. Pokud ne, nebo se vypíše chyba, nebylo OpenSSL správně nainstalováno.

Pro využití šifrování přenosu v Total Commanderu potřebujete doinstalovat knihovny OpenSSL. Podpora musí ale figurovat i na straně hostingového serveru

Změny uložíme a hned se s novým nastavením můžeme pokusit připojit. Pro úplnost upozorňuji, že FTPS (tedy provoz FTP s rozšířením o SSL vrstvu) musí podporovat i server. V současnosti tento protokol podporují snad všichni velcí webhosteři.

Takto bude vypadat stav v okamžiku, kdy úspěšně navážete šifrované FTPS připojení

Problém s odposlechnutím hesla bychom tedy měli vyřešený. Jak ale řešit hrozbu číslo dvě? První opatření by mělo spočívat v dodržování určitých zásad „internetové hygieny“. Tedy mít na počítači aktualizovaný antivir, antispyware a aktivní bránu firewall. Další zásady se týkají práce s poštou a stránkami s „pochybným obsahem“, ale to už bychom zacházeli do přílišných detailů, na které zde není místo.

Navíc žádná z těchto metod není v současnosti 100% efektivní, a proto je dobré mít důležitá data ve vašem počítači vždy zabezpečena. To byl donedávna při použití TCM coby FTP klienta problém, jelikož neumožňoval šifrovat uložená FTP hesla. Díky opravdu velkému rozšíření této aplikace (alespoň v našich končinách) tak měli hackeři doslova žně. Vše se naštěstí mění příchodem poslední verze 7.50a, která šifrování hesel nativně podporuje a připojuje se tak o statním FTP klientům, kteří tuto možnost měli již dávno. Berte ale na vědomí, že není od věci stále používat silná hesla.

Jak šifrovat uložená FTP hesla?

Vyvoláme dialog FTP připojení (např. klávesovou zkratkou Ctrl+F). Na první pohled jsou patrné jisté změny. Nás ale bude nejvíce zajímat nové tlačítko s nápisem „šifrovat“.


Šifrování uložených hesel jsme se dočkali u Total Commanderu až nedávno. Přitom již před lety bylo pozdě…

Ochrana probíhá zadáním jednoho jediného hlavního hesla, které bude následně sloužit pro přístup ke všem uloženým FTP účtům. Právě pod tímto heslem jsou zašifrována hesla k jednotlivým FTP připojením. Aplikace před samotným zadáním ještě důrazně uživatele upozorní, že v případě ztráty hlavního hesla je ztraceno opravdu vše (jedna z nevýhod tohoto řešení).

Po zadání hlavního hesla se u afektovaných FTP připojení zobrazí symbol zámku, čímž je uživateli jasně dáno najevo, že dílo bylo dokonáno. Nově vytvořená FTP připojení jsou pak hlavním heslem chráněna automaticky. Šifrování lze následně i odebrat opětovným stiskem tlačítka „šifrovat“. Možnost změny hlavního hesla je obsažena též.


I přes šifrování hesel v Total Commanderu doporučujeme využívat hesla dostatečně složitá. Popularita programu hraje v jeho neprospěch a útočníci se na něj budou i nadále zaměřovat

Jaké jsou další možnosti?

Existují i další cesty bezpečné komunikace. Kromě popisovaného FTPS je to například SFTP (ano, jedná se o dva různé termíny a protokoly). SFTP používá k přenosu dat protokol SSH (Secure Shell) – aktuálně ve verzi 2. SSH byl navržen jako náhrada za telnet a další nezabezpečené protokoly pro vzdálenou správu, které posílají heslo v nezabezpečené formě a umožňují tak jeho odposlechnutí při přenosu pomocí počítačové sítě. Šifrování přenášených dat, které SSH poskytuje, slouží k zabezpečení dat při přenosu přes nedůvěryhodnou síť, jako je například internet.

 

Nevýhodou SFTP je, že v současnosti stále ještě mnozí webhosteři tento protokol standardně nepodporují

 

Velmi rozšířeným klientem umožňujícím zabezpečený přenos souborů pomocí SSH pod Windows je WinSCP. Při přenosu je využíváno právě SFTP. Nevýhodou je, že v současnosti naprostá většina webhosterů nenabízí ke standardnímu webhostingu přístup přes SFTP. Pokud však ano, jistě bude tato skutečnost na stránkách vašeho poskytovatele hostingu jasně uvedena.

SSH, potažmo SFTP je ale běžně používáno ke správě tzv. VPS (Virtuálních Privátních serverů) běžících na platformě Linux a samozřejmě také u dedikovaných serverů. Za použití SSH lze vzdálený server spravovat způsobem „jako byste u něj seděli“. Tedy pracujete přímo v příkazové řádce, přičemž veškerá komunikace je šifrována. Jakmile pak chcete na server poslat nějaká data, je automaticky navázána komunikace přes SFTP.

Na závěr lze ještě doporučit jedno – pokud už si musíte hesla někam ukládat, je lepší činit to mimo FTP manager. Ideálně pod nejvyšším možným zabezpečením. K tomu slouží například KeePass Pasword Safe, nebo jiné podobné aplikace.  

 


Autor: Jiří Pomazal - Specialista technické podpory IGNUM. 

 

Váš hlas: Žádné Průměr: 5.8 (6 votes)