Viděli jste někdy takové ty filmy, kde postava zahalená v černé mikině a slunečních brýlích, obklopená šesti monitory zobrazujícími padající zelené znaky, rychle píše rychlostí 600 slov za minutu a stoicky klidně pronese: „Jsem uvnitř“?
Dobře, tento scénář se přesně neodehrál, ale došlo k něčemu ještě trapnějšímu. Víte, náš tým už několik let pilně vyvíjí jistý systém, jen proto, aby byl tento týden hacknut skupinou středoškoláků. Podrobnosti jsou složité, ale je to docela zábavný příběh s naštěstí dobrým koncem.
Předtím než se ponoříme do detailů, věřím, že je nezbytná trocha kontextu k plnému pochopení všech intrik tohoto příběhu. Nicméně nejsem si jistý, do jaké míry mohu otevřeně diskutovat o produktech, na jejichž vývoji se reálně podílím. Sice jsem nepodepsal žádnou formální smlouvu o mlčenlivosti, mohou ale existovat jiné směrnice, které mohou chránit naše klienty a další důležité informace. Proto se budu snažit vyhnout se jmenování nebo popisu něčeho příliš specifického.
Tak to pojďme říct takto: Jeden z našich produktů zahrnuje technologii dotykové obrazovky a má aplikaci podobnou virtuálním nástěnkám, které získaly popularitu v posledních letech. Mezi jeho různorodé funkce patří možnost našim klientům integrovat své vlastní webové stránky (nebo jakoukoli stránku na whitelistu) do této aplikace, pokud se rozhodnou tak učinit.
Tohle je důležité: Nad tím, co naši klienti zobrazují na svých obrazovkách, nemáme plnou kontrolu. Sice nabízíme pokyny pro nejlepší postupy, ve výsledku ale mají klienti svobodu na svých nástěnkách zobrazovat platformy jako Facebook nebo YouTube, pokud si to přejí.
Možná se ptáte: Není to rizikové? No, ano, může to být risk. Proto implementujeme whitelist domén, který zajišťuje, že uživatelé mohou přistupovat pouze na schválené webové stránky, a blokujeme určité prvky webových stránek.
Obvykle blokujeme také modální okna a systémové dialogy, jako jsou dialogy „otevřít soubor“ nebo „uložit soubor“. Nicméně došlo k neočekávanému problému. Mohlo to být způsobeno aktualizací knihovny, upgradem systému nebo změnami v komponentě zabudovaného prohlížeče, kterou využíváme. Hlavní je, že jedno z dialogových oken přestalo být blokováno: dialog pro tisk webových stránek.
I když náš zabudovaný prohlížeč postrádá tradiční nástrojové panely nebo menu, některé webové stránky obsahují v hlavičkách nebo patičkách své vlastní tiskové odkazy, připomínající minulou éru internetu.
K našemu zděšení studenti narazili na jednu takovou stránku, která byla na našem systému zařazena na whitelist. A kliknutím na tiskový odkaz pak otevřeli modální okno tisku ve verzi systému, která byla právě nasazena.
Možná si říkáte: Jak špatné by to mohlo být? Řeknu to takto: Je to katastrofální. Dosáhnutím tohoto bodu efektivně překročili hranice sandboxu naší aplikace a měli možnos uvolnit chaos.
A chaos uvolnili.
Ve většině moderních dialogů pro tisk obvykle existuje zkratka pro tisk do souboru, často do formátu PDF. A co se stane, když na ni kliknete? Uhodli jste – objeví se dialog pro prohlížení souborů, který vám umožní vybrat cílový soubor.
Studenti začali kliknutím na náhodnou složku, ke které měli přístupová práva, a vybrali možnost „Otevřít ve správci souborů“ nebo podobnou volbu. Protože používáme buď Fedoru nebo Ubuntu (UPDATE: prý je to EndeavourOS, předchozí verze byla Ubuntu) pro frontend našich systémů, máme rozhraní podobné systému Windows a tyto zkratky a kontextové nabídky jsou docela povědomé i pro občasného uživatele.
Otevřelo se nové okno prohlížeče souborů, zbavené omezení modálního okna pro výběr souborů. To je okamžik, kdy nastal chaos – získali totiž úplný přístup k souborovému systému.
Možná se ptáte: To nemáte další vrstvy ochrany pro soubory? A oprávnění? Nepoužíváte Docker nebo jiné techniky izolace k zabezpečení proti zlomyslnému chování? A co režim kiosku? Ano, implementujeme tato opatření (i když nejsem obeznámen s podrobnostmi, protože to jde mimo mou pracovní oblast). Nicméně, i přes tyto opatření, měli studenti nyní k dispozici funkční prohlížeč souborů, bez ohledu na jakákoli stále platná omezení.
Myslíte si, že to bylo špatné? Počkejte, až uslyšíte, co udělali potom. Zjistili totiž, že prohlížeč souborů má systémové menu. A v nabídce „Soubor“ byla možnost otevřít terminál...
A tak přesně tohle učinili. Spustili okno Unixového terminálu a začali experimentovat s příkazy jako dítě, které netrpělivě otevírá vánoční dárky. Zkusili apt-get
, pacman
, dpkg
a možná i další nástroje pro správu balíčků, doufajíce, že budou moci nainstalovat cokoli chtějí. Když správně identifikovali program, který používáme, narazili na překážku – neznali heslo k root účtu, a tak uvízli.
S rostoucí frustrací se uchýlili k trollování a spustili příkaz curl parrot.live
, což byl příkaz, o kterém žádný člen našeho týmu ani nevěděl. Ale každý den přináší nové poznatky, takže nyní víme, jak zobrazit pohybující se ASCII art tancujícího papouška v konzolovém okně Linuxu.
Studenti vytrvale pokračovali ve svých pokusech "hackovat" systém po několik dní, pravidelně začínajíc od dialogového okna pro tisk souborů.
Brzy si uvědomili, že na systému není nainstalován standardní internetový prohlížeč, a byli rozhodnuti jeden si zařídit. Nicméně jelikož neznali heslo k účtu root, nemohli ho nainstalovat konvenčním způsobem. Takže vymysleli alternativní plán. Získali přenosnou verzi Google Chrome pro Linux, pravděpodobně pomocí curl
, wget
nebo scp
, což nepotřebovalo další oprávnění. A tu chtěli použít.
Tady je zábavná část: Nebyli si jisti, jak spustit skript pro spuštění prohlížeče. Věděli, že ho musí nastavit na spustitelný pomocí příkazu chmod
, ale byli zmateni, co dělat dál. Zkusili dvojkliknout na soubor v prohlížeči souborů a možná ho tak nechtěně otevřeli k úpravám nebo nedosáhli vůbec ničeho.
Obvykle by člověk jednoduše otevřel terminál a spustil ./něco.sh
, ale zdá se, že o této možnosti nevěděli, což je docela ironické, s ohledem na jejich předchozí úspěchy.
Nicméně jedno se jim musí nechat, byli neuvěřitelně vynalézaví a našli pozoruhodně nekonvenční řešení svého problému.
Objevili, že prohlížeč souborů nabízel možnost upravit systémové zkratky. Uvědomujíce si potenciál, vytvořili zkratku k provedení jakéhokoli vybraného skriptového souboru. Poté, co vytvořili zkratku, vybrali soubor a pomocí virtuální klávesnice na obrazovce spustili zkratku. Voilà! Měli svůj vlastní internetový prohlížeč, osvobozený od jakýchkoli omezení nebo pravidel whitelistu.
Poté mohli hrdě zobrazovat na obrazovce jakékoliv webové stránky, které si přáli, a pravděpodobně se chlubili svým spolužákům. Dokonce se pokusili poslat sami sobě archiv obsahující některé z přístupných systémových souborů, možná s cílem studovat náš systém nebo posílit své hackingové úsilí. Nicméně jejich úsilí bylo marné, protože jsme už o jejich činnosti věděli. Jeden z mých kolegů šikovně naplnil archiv nesmyslnými daty, efektivně tak studenty vytrollil zpět (napadlo mě použít spíš trollface, ale bohužel už bylo pozdě).
Každopádně, zde příběh končí. Personál školy nás informoval o situaci a podrobně nám popsali, co se stalo. Rychle jsme udělali fix bezpečnostní díry tím, že jsme zakázali dialog pro tisk a nějakou dobu jsme monitorovali kiosek pomocí spojení VNC.
Navzdory jejich vytrvalosti studenti marně hledali další vstupní bod do souborového systému. Přestože podnikli statečné pokusy, jejich snahy nakonec nebyly úspěšné a nakonec ustoupili.
Jako malý easter-egg jsme na 24 hodin vložili 5sekundový snímek do seznamu playlistu kiosku, zobrazující zprávu spolu s gifem z parrot.live
:
Děkujeme za otestování systému!
Úspěšné hackování do budoucna přeje tým F.
Přidat komentář