FlintGuard
Mobilní a webová aplikace pro správu Wi-Fi routeru GL.iNet: schvalujte nová zařízení z push oznámení, blokujte je a mějte domácí síť pod kontrolou.


Úkol
Administrace domácího routeru je stavěná pro síťové inženýry, ne pro rodiče, který chce vidět, co je připojené, a jednomu zařízení pozastavit internet.
Řešení
- Nejdřív bezpečnostní audit: výchozí kontrola routeru ukázala SSH a HTTPS dostupné z internetu a zapnuté přihlašování heslem přes SSH; uzavřelo se sedm pravidel WAN, přihlašování heslem se vypnulo a router se prověřil na známky kompromitace.
- SDK a nástroje: typovaný klient pro JSON-RPC API routeru s pojistkami, abyste se nezamkli venku, kontraktové testy proti skutečnému routeru, které každou změnu vrátí zpět, nástroj pro příkazový řádek, devět záznamů architektonických rozhodnutí.
- Aplikace: zařízení s filtry, karta zařízení s přejmenováním, profilem a blokováním internetu jedním klepnutím, protokol událostí, „čekající“ zařízení s tlačítky Allow a Block, zablokovaná zařízení mimo vlastní seznam routeru, „to je stejné zařízení“ pro novou soukromou MAC adresu; webová verze servírovaná přímo routerem.
- Agent na routeru: balíček a služba v Lua, které detekují nová zařízení, přidávají vlastní metody API, dávají nová zařízení do karantény a do Wi-Fi pustí jen schválená zařízení.
- Oznámení: push s akčními tlačítky, nativní push v iOS přes malý relay, upozornění na pokusy o připojení, s limity četnosti a krátkodobými akčními tokeny.
- Platformy: sestavení pro iOS přes TestFlight, Android a web.
Výsledek
Osobní projekt pro autorovu domácí síť, v aktivním vývoji, nikoli komerční produkt.