Vývoj softwaru není jen o vytvoření produktu, který funguje podle zadaných požadavků a usnadňuje uživateli život, ale také o věcech, které jsou „neviditelné“ a jejichž dopad se projeví až s odstupem času. Kromě architektury, kvality kódu, testování a mnoha dalších aspektů je při vývoji extrémně důležitá bezpečnost.
Jak bezpečnost uchopit, to je důležitá otázka, kterou bychom si měli klást hned na samém začátku vývoje aplikace, jinak totiž hrozí řada bezpečnostních problémů jako například únik osobních údajů nebo hesel.
O tom, že dbáme na bezpečnost nejen v rámci vývoje, ale i v rámci celé společnosti a procesů, svědčí i přísná certifikace TISAX (Trusted Information Security Assessment Exchange), kterou jsme získali a kde jsme dosáhli nejvyššího stupně úrovně zabezpečení.
Neobjevovat kolo a neusnout na vavřínech
Při zabezpečení mobilních aplikací je naprostým základem držet se doporučení společností Apple a Google a přidávat na ně další vrstvy, které jsou s nimi v souladu.
Důležitým zdrojem je pro nás standard MASVS (Mobile Application Security Verification Standard) od OWASP (Open Web Application Security Project). Tato norma specifikuje pravidla, která by měla být při vývoji dodržována, a rozděluje je do několika podskupin podle citlivosti dat a operací.
A protože se technologický svět vyvíjí velmi rychle a operační systémy přicházejí každý rok s novými verzemi, je důležité neusnout na vavřínech. Ve Futured průběžně sledujeme relevantní zdroje pro vývojáře, jsme součástí vývojářské komunity, která sdílí konkrétní doporučení, a účastníme se konferencí, kde o bezpečnostních otázkách diskutují ti nejlepší ve svém oboru. Poznatky si pak předáváme v rámci vývojových týmů, abychom všichni měli o tématu maximální přehled.
Úrovně zabezpečení: Jakou zvolit?
U každé aplikace dodržujeme určitý standard, který odstraňuje základní bezpečnostní hrozby. V zásadě ale platí jednoduché pravidlo: Čím více citlivých dat aplikace obsahuje, tím důležitější zabezpečení je.
Přestože je každá aplikace jedinečná, neznamená to, že je nemůžeme rozdělit do základních kategorií, které poslouží jako vodítko, jak ke každé z nich přistupovat. Na rozdíl od zmíněného standardu MASVS, který definuje dvě kategorie s jedním rozšířením, používáme ve Futured tři základní kategorie s jedním rozšířením, abychom lépe reflektovali potřeby nás i našich klientů.
Kroky při určování úrovně zabezpečení
- Identifikace dat a operací, se kterými aplikace pracuje
- Stanovení vhodné úrovně
- Dialog s klientem, během kterého projdeme, proč jednotlivé kroky doporučujeme, jak ovlivňují funkčnost aplikace a co znamenají pro vývoj aplikace
I — Standardní úroveň
Bezpečnostní minimum, které musí splňovat každá „naše” aplikace. I relativně jednoduchá aplikace, která na první pohled nemusí obsahovat žádná citlivá data, potřebuje zabezpečení. Takovým ochranným opatřením je například bezpečné ukládání přístupových tokenů do šifrovaného úložiště, obfuskace kódu nebo používání zabezpečené komunikace s backendem. Ve Futured je toto standard, který splňujeme vždy.
II — Vyšší úroveň
Pro aplikace zpracovávající citlivá data nebo operace. U aplikací, které pracují například s finančními, zdravotními nebo obecně osobními údaji, doporučujeme použít vyšší úroveň zabezpečení. Jedná se například o implementace dvoufaktorového ověřování uživatele při přihlášení, biometrické zabezpečení aplikací, certificate pinning nebo zabezpečení proti nadměrnému počtu pokusů o přihlášení.
III — Nejvyšší úroveň
Pokud je bezpečnost nejvyšší prioritou. Pro aplikace, které provádí například finanční operace nebo fungují v prostředí e-governmentu, se bezpečnost stává hlavním tématem, na které je třeba myslet. Diskuze přitom musí být mnohem podrobnější, bezpečnost je totiž nezbytné zahrnout do všech aspektů vývoje. Kromě věcí z předchozích úrovní doporučujeme například pracovat s modely hrozeb, mít jasně definované kryptografické procesy nebo definovanou politiku zveřejňování.
Dodatečná ochrana proti reverznímu inženýrství
Aby útočníci neviděli pod „kapotu“. Jednou z možných hrozeb jsou útoky zaměřené na procesy reverzního inženýrství, kdy se útočník snaží nahlédnout do dění v aplikaci nebo se ji pokouší upravit tak, aby se vydávala za originál. To může být problematické u aplikací, které pracují s duševním vlastnictvím nebo pokud by taková úprava mohla útočníkovi poskytnout určitou výhodu, například při podvádění ve hrách. Takovým útokům se snažíme zabránit řádným podepisováním aplikace nebo použitím obfuskace. V případě aplikace, kde je takové riziko významnější, doporučujeme ještě implementovat nástroje, jako je detekce root/jailbreak, detekce nástrojů reverzního inženýrství nebo složitější procesy obfuskace.
Specifický přístup
Nyní už víte, jak o zabezpečení přemýšlíme ve Futured. Přestože jsme ho rozdělili na několik základních úrovní, je vždy důležité důkladně promyslet specifika každé aplikace. Jen tak zvolíme řešení, které zajistí, že výsledný produkt bude úspěšný nejen po stránce produktové, ale také zajistí, že data uživatelů budou v naprostém bezpečí.
“It takes 20 years to build a reputation and a few minutes of cyber-incident to ruin it.” — Stephane Nappo
Úspěšnou (a bezpečnou) aplikaci můžeme vytvořit i pro vás.
Napište Lukášovi, který Futured založil a vede:
[email protected] & +420 605 312 459
Chcete se k nám přidat? Aktuálně hledáme hned několik kolegů.
Ozvěte se Simoně a pobavte se o možnostech spolupráce:
[email protected] & +420 735 040 126