Sdílené hostování a starosti o bezpečnost? Zde je to, co potřebujete vědět

  • Brian Curtis
  • 0
  • 2151
  • 611
reklama

Sdílený hosting. Je to levná varianta, že? A pro obrovské množství obyvatel je to vše, co budou potřebovat k hostování svých webových stránek nebo webových aplikací. A když se to povede dobře, sdílený hosting je škálovatelný, rychlý a bezpečný.

Ale co se stane, když se to nedělá dobře?

V tu chvíli se začnou objevovat nebezpečné problémy se zabezpečením. V tom případě hrozí riziko poškození vašeho webu nebo úniku soukromých dat, která držíte. Ale nedělej si starosti. Drtivá většina webových hostitelů má slušná bezpečnostní opatření. Je to jen hostitelé létající v noci, výhodní suterén, se kterým musíte být opatrní.

Doporučujeme sdílený hosting InMotion Hosting s úložištěm SSD.

Budeme zkoumat bezpečnostní problémy spojené se sdíleným hostingem. Nejprve si ale promluvíme o tom, co dělá sdílenou hostingovou platformu bezpečnou.

Co dělá zabezpečeného webového hostitele

S ohledem na sdílený hosting by mělo být provedeno několik bezpečnostních hledisek.

  • Každý uživatel na serveru by měl být izolován od ostatních uživatelů a neměl by mít přístup k souborům jiných uživatelů ani je upravovat.
  • Chyba zabezpečení v logice webů hostovaných na serveru by neměla mít vliv na ostatní uživatele.
  • Server je pravidelně opravován, aktualizován a monitorován za účelem řešení architektonických bezpečnostních problémů.
  • Každý uživatel by měl mít svůj vlastní izolovaný přístup k databázi a neměl by mít dovoleno provádět změny uložených záznamů nebo oprávnění tabulek jiných uživatelů.

Většina webových hostitelů opět splňuje tyto požadavky na své sdílené nabídky. Ale pokud se díváte na hostování více webových stránek na jednom serveru, nebo jste zvědaví, jak se vaše hostitelská společnost hromadí, nebo dokonce přemýšlíte o spuštění své vlastní hostingové společnosti a dychtivě přijdete na to, jak zabezpečit své uživatele, přečtěte si prosím na.

Ale nejprve, Zřeknutí se odpovědnosti

Než se dostaneme do masa pohledu na společné útoky zaměřené na sdílený hosting, chci jen uvést, že tento příspěvek nebude (a neměl by být čten jako) vyčerpávající seznam možných bezpečnostních problémů.

Bezpečnost je jedním slovem velká. Existuje mnoho způsobů, jak můžete kompromitovat web. Pro sdílený hosting to jde dvojnásobně. Zakrývat je do jediného článku nebylo nikdy na kartách.

Pokud jste o své bezpečnosti paranoidní, získejte VPS nebo dedikovaný server. Toto jsou prostředí, ve kterých máte (z větší části) absolutní kontrolu nad tím, co se děje. Pokud si nejste jisti různými druhy webhostingu, podívejte se na tento příspěvek Různé formy hostování webových stránek vysvětlil [technologie vysvětlil] Různé formy webhostingu vysvětlil [technologie vysvětlil] od mého kolegy, James Bruce.

Chtěl bych také zdůraznit, že tento příspěvek nelze chápat jako útok na sdílený hosting. Spíše je to čistě akademický pohled na bezpečnostní otázky obklopující tuto kategorii webhostingu.

Adresář Traversal

Začněme útoky na adresářové procházení (často se nazývají „procházení cesty“). Tento druh útoku umožňuje přístup k souborům a adresářům, které jsou uloženy mimo webový kořenový adresář.

Jednoduše anglicky? Představme si, že Alice a Bob používají stejný server k hostování svých webových stránek. Alice soubory jsou uloženy v / var / www / alice, zatímco Bobovy dokumenty najdete v / var / www / bob. Předpokládejme také, že na serveru je další složka (/ usr / crappyhosting / myfolder), která obsahuje nezašifrovaný soubor prostého textu (nazýváme jej pwd.txt) obsahující systémová uživatelská jména a hesla.

Zatím se mnou? Dobrý. Nyní si představme, že Bobův web obsluhuje soubory PDF, které jsou generovány místně, a na místní soubor se odkazuje v adrese URL. Něco jako:

http://example.com/soubor?=report.pdf

Co by se stalo, kdybych nahradil soubor 'report.pdf' některými parametry systému UNIX, které mění adresář?

http://example.com/soubor?=… / alice /

Pokud je server nakonfigurován nesprávně, umožní vám to vidět kořen dokumentu Alice. Zajímavé, ale mnohem více se zajímáme o tento šťavnatý soubor pasů. Hesla Accio!

http://example.com/soubor?=… /… /… /usr/crappyhosting/myfolder/pwd.txt

Je to opravdu tak snadné. Ale jak se s tím vypořádáme? To je jednoduché.

Slyšeli jste někdy o málo známém Linuxovém nástroji s názvem chroot? Pravděpodobně jste už uhodli, co to dělá. Nastaví kořenový adresář Linux / UNIX na libovolnou složku, což uživatelům znemožní jeho ukončení. Účinně zastaví útoky adresářů v jejich stopách.

Je těžké říct, zda váš hostitel má toto místo, aniž by porušil zákon. Koneckonců, abyste to otestovali, měli byste přistupovat k systémům a souborům, ke kterým nemáte oprávnění. S ohledem na to by asi bylo rozumné mluvit se svým webovým hostitelem a zeptat se, jak izolují své uživatele od sebe.

Provozujete svůj vlastní sdílený hostingový server a nepoužíváte chroot k ochraně svých uživatelů? Je pravda, že chrootování prostředí může být obtížné. Naštěstí existuje spousta pluginů, které to usnadňují. Podívejte se zejména na mod_chroot.

Příkazové vstřikování

Vraťme se k Alice a Bobovi. Takže víme, že Bobova webová aplikace má několik… Ahem… bezpečnostních problémů. Jedním z nich je zranitelnost příkazového injekce, která vám umožní spouštět libovolné systémové příkazy. Rychlý průvodce Začínáme s příkazovým řádkem Linuxu Rychlý průvodce Začínáme s příkazovým řádkem Linuxu Můžete dělat spoustu úžasných věcí pomocí příkazů v systému Linux a opravdu není těžké se učit. .

Bobův web vám umožňuje spustit dotaz whois na jiném webu, který se poté zobrazí v prohlížeči. K dispozici je standardní vstupní pole HTML, které přijímá doménové jméno, a poté spustí příkaz whois system. Tento příkaz se provede voláním příkazu PHP systému ().

Co by se stalo, kdyby někdo zadal následující hodnotu?

example.com && cd… / alice / && rm index.html

Pojďme to rozebrat. Něco z toho vám může být známo, pokud jste si přečetli naši „Začínáme průvodce Linuxem“ Začínáme průvodce Linuxem Začínáme průvodce Linuxem Nováček Začínáme průvodce Linuxem! Pravděpodobně jste už slyšeli o Linuxu, svobodném operačním systému s otevřeným zdrojovým kódem, který tlačí proti společnosti Microsoft. e-book, který jsme dříve publikovali v roce 2010, nebo jsme se podívali na náš Linux Command Line Cheat Sheet.

Nejprve spustí dotaz whois na webu example.com. Poté by změnil aktuální pracovní adresář na kořen dokumentu Alice. Poté by odstranila soubor s názvem 'index.html', který je indexovou stránkou jejího webu. To není dobré. Ne, pane.

Jak se tedy jako správci systému proti tomu zmírníme? Vrátíme-li se k předchozímu příkladu, můžeme vždy dát každého uživatele do svého izolovaného, ​​dezinfikovaného, ​​chrootovaného prostředí.

Můžeme k tomu přistupovat také z jazykové úrovně. Je možné (i když to může zlomit věci) globálně odstranit prohlášení o funkcích z jazyků. To znamená, že je možné odebrat funkce z jazyků, ke kterým mají uživatelé přístup.

Zejména při pohledu na PHP můžete odstranit funkčnost pomocí Runkit - oficiální sady nástrojů PHP pro úpravu funkčnosti jazyka. Je tam spousta dokumentace. Přečtěte si to.

Můžete také upravit konfigurační soubor PHP (php.ini) a zakázat funkce, které hackeři často zneužívají. Chcete-li to provést, otevřete terminál na serveru a otevřete soubor php.ini v textovém editoru. Baví mě používat VIM, ale NANO je také přijatelné.

Najděte řádek začínající deaktivačními funkcemi a přidejte definice funkcí, které chcete zakázat. V tomto případě by to bylo exec, shell_exec a system, ačkoli stojí za zmínku, že existují další vestavěné funkce, které hackeri mohou využít.

disable_functions = exec, shell_exec, system

Útoky na základě jazyka a tlumočníka

Pojďme se tedy podívat na PHP. To je jazyk, který pohání překvapující počet webů. Také přichází s řadou zvláštností a podivným chováním. Takhle.

PHP se obvykle používá ve spojení s webovým serverem Apache. Z větší části je nemožné načíst více verzí jazyka s touto konfigurací.

Proč je to problém? Představme si, že Bobova webová aplikace byla původně postavena v roce 2002. To je už dávno. To je zpět, když Michelle Branch stále trvala na žebříčku, Michael Jordan stále hrál za Washington Wizards a PHP bylo mnohem odlišný jazyk.

Ale Bobův web stále funguje! Využívá celou řadu ukončených a zastaralých funkcí PHP, ale funguje to! Používání moderní verze PHP by účinně rozbilo Bobův web a proč by měl Bob přepsat svůj web tak, aby vyhovoval rozmarům jeho webhostingu?

To by vám mělo poskytnout představu o dilematu, kterému někteří weboví hostitelé čelí. Musí udržovat rovnováhu a udržovat architektonicky spolehlivou a bezpečnou službu, přičemž ji musí udržovat v souladu s tím, aby byli spokojeni platící zákazníci.

V důsledku toho není neobvyklé vidět, že nezávislí hostitelé používají starší verze tlumočníka PHP (nebo v jakémkoli jazyce).

Není neobvyklé, že menší nezávislí hostitelé používají starší verze PHP a potenciálně vystavují uživatele bezpečnostním rizikům.

Proč je to špatná věc? Za prvé, vystavilo by to uživatelům řadu bezpečnostních rizik. Stejně jako většina hlavních softwarových balíčků je PHP neustále aktualizován, aby reagoval na množství bezpečnostních chyb, které jsou neustále objevovány (a zveřejňovány).

Navíc to znamená, že uživatelé nemohou používat nejnovější (a největší) jazykové funkce. To také znamená, že funkce, které byly z nějakého důvodu zamítnuty, zůstanou. V případě programovacího jazyka PHP to zahrnuje směšně hrozné (a nedávno zastaralé) funkce mysql_, které se používají k interakci s relačním databázovým systémem MySQL, a dl (), které umožňují uživatelům importovat jejich vlastní jazyková rozšíření..

Jako uživatel byste měli mít možnost vidět, jakou verzi tlumočníka ve vaší službě běží. Pokud je zastaralý nebo obsahuje řadu bezpečnostních chyb, kontaktujte svého hostitele.

A co sysadminové? Máte zde několik možností. Prvním (a nejslibnějším) je použití doku pro každého z vašich uživatelů. Docker vám umožňuje spouštět více izolovaných prostředí současně, podobně jako virtuální stroj, i když nemusíte spouštět jiný operační systém. Výsledkem je, že je to rychlé. Opravdu, opravdu rychle.

Jednoduše anglicky? Pro většinu svých uživatelů můžete spustit nejnovější a největší tlumič krvácení.

To má také tu výhodu, že je jazyková agnostika. PHP, Python, Ruby. To je jedno. Je to stejné.

Don't Nightmares.

Tento příspěvek měl za cíl udělat pár věcí. Za prvé, bylo to upozornit na řadu bezpečnostních problémů, kterým musí webhostingové společnosti čelit, aby zajistily bezpečnost svých zákazníků a jejich dat.

Účelem bylo také ukázat, jak se weby hostované na stejném serveru mohou vzájemně ovlivňovat. Chcete do toho vložit důlek? Začněte se řídit dobrými a bezpečnými standardy kódování. Zejména začněte dezinfikovat své vstupy na front-endu i back-endu.

Dobrý začátek je s novou funkcí ověřování formátu HTML5. O tom jsme již mluvili v našem průvodci HTML5. Společně můžeme zajistit, aby byly webové stránky bezpečnější tím, že budeme lepší a svědomitější programátoři.

Jako vždy jsem připraven slyšet vaše myšlenky. Zašlete mi komentář níže.

Fotografický kredit: Každý potřebuje hackera (Alexandre Dulaunoy), nálepku na okno taxi (Cory Doctorow), serverovnu (Torkild Retvedt), knihy a časopisy Linux (library_mistress), PHP Elephant (Markus Tacker)




Bisher hat noch niemand einen Kommentar zu diesem Artikel abgegeben.

O moderní technologii, jednoduché a cenově dostupné.
Váš průvodce ve světě moderních technologií. Naučte se, jak používat technologie a pomůcky, které nás každý den obklopují, a naučte se, jak objevovat na internetu zajímavé věci.