RE:NODE

Bezpečnost

Co doopravdy chrání tvůj účet a tvoje servery

RE:NODE si píše vlastní panel, místo aby si nějaký licencoval, takže bezpečnost tady je něco, co jsme sami postavili a umíme popsat, ne seznam funkcí, který nám prodal někdo jiný. Na této stránce je to, co v něm opravdu je - včetně částí, které jsou spíš omezením než výhodou.

Jen HTTPS
Obyčejné HTTP se přesměruje; certifikáty se obnovují samy.
Dvoufázové ověření
Jednorázové kódy z libovolné ověřovací aplikace a k tomu záložní kódy.
Každou noc, mimo stroj
Zálohy se kopírují na samostatný hardware a po každém kopírování se ověří.
Každý svůj kontejner
Tvůj server má vlastní souborový systém, paměť a strop pro CPU.

Tvůj účet

Všechno, co rozhoduje, jestli je požadavek opravdu od tebe.

Hesla se hashují, neukládají

Panel si drží bcrypt hash a nic víc. Nikdo tady tvoje heslo nepřečte - a ze stejného důvodu ti nikdo neřekne, jaké bylo. Jediná cesta zpátky je reset, a o to právě jde.

Dvoufázové ověření

Časové kódy z libovolné ověřovací aplikace a jednorázové záložní kódy, které dostaneš hned při zapnutí. Ty kódy si ulož jinam než do telefonu: právě ony tě dostanou zpátky, až o telefon přijdeš.

Přihlašování je omezené a prověřované

Přihlášení, registrace a obnova hesla mají limit počtu pokusů na adresu a jsou za captchou. Hádat heslo se přestane vyplácet dlouho předtím, než by to mohlo začít fungovat.

Relace, které vidíš a můžeš ukončit

Stránka účtu ukazuje všechny právě otevřené relace, odkud se používají a kdy byly naposledy aktivní, a ty, které nepoznáváš, můžeš ukončit. Samotné cookies jsou šifrované, pro JavaScript nečitelné a z jiných webů se neposílají.

Vstupní dveře

Čím projde požadavek, než se dostane k čemukoli tvému.

HTTPS a jedině HTTPS

Obyčejné HTTP se přesměruje, ne obslouží, a certifikáty se vydávají a obnovují automaticky - takže certifikát nemůže potichu vypršet v neděli.

Každý formulář má CSRF token

Požadavek, který něco mění a nepřišel ze stránky, kterou jsme ti poslali my, se odmítne. Jiný web nemůže jednat tvým jménem v záložce, kterou jsi nechal otevřenou.

Skenery odmítáme, neodpovídáme jim

Většina provozu, který na panel narazí, ho vůbec nehledá: prochází internet a žádá každý server o soubory s přístupovými údaji a zdrojové kódy, které tu nejsou. Takové požadavky poznáme na první pohled, adrese za nimi se přestane odpovídat a s každým dalším návratem zůstává zablokovaná déle. Každé odmítnutí se zapíše do logu, který operátor opravdu čte.

Blokace na okraji

fail2ban stojí před aplikací, takže provoz, který zjevně není zákazník, nestojí ani jeden PHP proces.

Tvůj server

Server jednoho zákazníka není složka uvnitř serveru jiného.

Izolované kontejnery

Každý server běží ve vlastním kontejneru s vlastním souborovým systémem a vlastními stropy pro paměť, CPU a disk. Soused tvoje soubory nepřečte a ani když má rušný večer, nemůže utrácet tvoje prostředky.

Přístupové údaje pro každý server zvlášť

Hesla správce, hesla RCON a databázoví uživatelé se generují pro tvůj server, nesdílí se v rámci tarifu, a ukazují se tobě, nikomu jinému.

API klíče, které můžeš svázat s adresou

Klíč jde omezit na seznam adres, takže uniklý klíč je odjinud k ničemu. Klíče se ukládají šifrované a ukážou se jen jednou, při vytvoření.

Podúčty místo sdíleného přihlášení

Dej někomu konzoli bez souborů, nebo zálohy bez fakturace. Každá akce se v logu aktivity serveru přiřadí účtu, který ji provedl, takže otázka „kdo ho restartoval“ má odpověď.

Data a zálohy

Pojistka, která neleží na stejném disku jako to, co pojišťuje.

Každou noc a bezpečně bez dozoru

Databáze i běhová data se každou noc vyexportují. Dump se dělá bez zámku, který by zastavil panel, heslo k databázi se nikdy neobjeví na příkazové řádce, kde by ho mohly přečíst jiné procesy, a dva běhy se nemůžou překrýt a navzájem si poškodit data.

Druhá kopie mimo stroj

Panel, svazky zákazníků i zálohy na stroji sdílí jedno úložiště - takže jeho selhání by vzalo produkci i její pojistku zároveň. Proto se všechno stahuje ještě na samostatný hardware.

Ověřené, ne jen zkopírované

U každé kopie se kontroluje integrita archivu a u dumpu databáze i závěrečný záznam, který se zapíše jen tehdy, když dump opravdu doběhl do konce. Záloha, kterou nikdo neověřil, je jen odhad.

Uchovávání, které nezaplní disk

Kopie se mažou podle plánu, místo aby se držely navěky. Zálohy, které rostou, dokud s sebou nestáhnou panel, jsou typ havárie, který bychom raději nevymýšleli.

Čím projde požadavek

Popořadě, od chvíle, kdy v panelu zmáčkneš tlačítko.

  1. 1

    Šifrování

    Spojení je šifrované dřív, než se odešle jediný bajt požadavku. Obyčejné HTTP dostane přesměrování a nic víc.

  2. 2

    Reputace

    Adresa se posuzuje podle toho, co dosud dělala. Požadavky, které se už prozradily jako nepřátelské, tady končí - s chybou 404, která jim nic neřekne.

  3. 3

    Relace a původ

    Cookie relace se dešifruje a zkontroluje se CSRF token - takže požadavek je od tebe a zároveň ze stránky, kterou jsme ti poslali my.

  4. 4

    Oprávnění

    Teprve pak se akce porovná s tím, co tento účet smí na tomto konkrétním serveru dělat, a zapíše se do logu aktivity serveru.

Co neděláme

Ta část stránky o bezpečnosti, která obvykle chybí.

  • Nikoho se neptáme, kde jsi

    Zemi zjišťujeme z tabulky na našem vlastním stroji. Ověřovat adresu přes službu třetí strany by znamenalo prozrazovat někomu dalšímu naše návštěvníky, jeden požadavek po druhém.

  • Zobrazení stránek ukládáme bez adres

    Počítáme, co se čte, abychom věděli, které návody má smysl psát. Kdo je četl, si neuchováváme.

  • Ztracené heslo obnovit neumíme

    Přesně to hashování znamená. A pokud máš zapnuté dvoufázové ověření a ztratíš i záložní kódy, účet nejde nikomu vrátit - ani tobě. Kódy si schovej.

  • Některé herní přístupové údaje se ukládají tak, jak je zadáš

    Arma 3, DayZ, Project Zomboid a 7 Days to Die nejdou nainstalovat anonymně: instalátor se přihlásí do Steamu tvým jménem a server ty údaje potřebuje znovu při každé aktualizaci. Použij účet určený pro servery, nikdy svůj hlavní. Stránka každé z těch her to říká před nákupem, ne až po něm.

Našel jsi něco?

Pokud si myslíš, že jsi našel zranitelnost, řekni nám to dřív než komukoli jinému a opravíme ji. Hlášení o skutečném problému má pro nás větší cenu než pro kohokoli, komu bys ho mohl prodat.

Napiš nám