Blog | Náš přístup k bezpečnosti

Náš přístup k bezpečnosti

Bezpečnost vaší aplikace je pro nás důležitá. Průběžně se tomuto tématu věnujeme a usilujeme o to, aby útoky na vaše systémy byly neúspěšné.

Pokud firma nemá kostlivce ve skříni, používá správné postupy, může zveřejnit, jak k bezpečnosti přistupuje.

Naše bezpečnostní politika v dnešní podobě (tuto politiku pouze zpřísňujeme, nikdy nepovolujeme) vypadá takto:

Každý zákazník má vlastní server a vlastní databázi. Případný problém u jiného zákazníka nebude mít žádný vliv na vaši aplikaci ani vaše data.

Pokud je aplikace provozována u vás, je obvykle za VPN. Pokud je online, vždy vám nabídneme HTTPS s certifikátem.

Každý uživatel má vlastní uživatelský účet. Protože neplatíte žádné licence za uživatele, nejste nijak nuceni nevytvořit každému člověku účet. Uživatele při neaktivitě odhlašujeme. Přihlášení lze udělat kombinací uživatel/heslo, čtečkou otisků prstů nebo vícefaktorovou autorizací.

Na tzv. zahashování hesla používáme algoritmus scrypt, v dnešní době nejspíš nejsilnější hashovací algoritmus. Každý uživatel má náhodně vygenerovaný salt, který při hashování využíváme. Scrypt máme nastavený tak tvrdě, že na běžném počítači (jako je MacBook Pro) nelze ověřit víc než 10 hashů za vteřinu. Tím jsou naše hesla neprolomitelná pro kohokoliv včetně institucí vlastnící superpočítače za miliony dolarů.

Architektura našich aplikací vynucuje uvedení rolí, kteří smí danou akci provést. Z povahy našeho kódu není vůbec možné třeba náhodně něco vystavit ven veřejně.

Každou operaci s daty logujeme, vždy se loguje uživatel, datum a čas a prováděná změna.

Pravidelně zálohujeme. Zálohu zašifrovanou pomocí nástroje GnuPG v šifře AES 256 ukládáme do geograficky odlišné lokality.

Děláme tzv. code review. Každou změnu, kterou vývojář udělá, prohlíží další člověk. Je nemožné, aby jeden člověk dostal až na produkční server nějaký kód bez toho, aby jiný člověk tento kód viděl.

Průběžně refaktorujeme a čistíme zdrojové kódy, protože v přehledném kódu je menší šance nějakého problému (bezpečnostního, výkonnostního, v logice).

Všechny dotazy do databáze escapujeme, nikdy neskládáme dotaz z dat zvenčí, ty slouží pouze jako parametry, pokud to není možné (custom parametry, skládané podmínky v hledání), máme napsanou validaci, která ověřuje proti povoleným hodnotám (tzv. whitelist), pokud se v dotazu objeví cokoliv jiného (překlep, útok, použití staré verze API), aplikace okamžitě ukončí vyhodnocování dotazu a zobrazí chybovou hlášku.

Všechny změny, které vývojáři dělají, kromě toho, že projdou code review, jsou i podepsány konkrétním vývojářem s časovou značkou (tzv. commit), dovedeme vám tedy říci, kdy přesně případná chyba vznikla, odkdy je systém napadnutelný, kdy přišla oprava a jsme schopni vám vyexportovat logy mezi těmito daty.

Předejte zkušenosti i dalším a sdílejte tento článek!


Prohlédněte si naše reference

Pomůžeme vám dostat vaši firmu pod kontrolu, nastavíme vaše procesy a vyvineme vám nástroje pro jejich řízení. Naučíme vás efektivně řídit týmy a posuneme vás i váš byznys o krok dál.

Sledujte naše postřehy na sociální síti