Proč bývají „zadní vrátka“ v softwaru, že mohou být nebezpečná, ale i využitelná ke vzdálené údržbě, a jak využít AI v posílení bezpečnosti, vysvětluje Petr Kocmich, Global Cyber Security Delivery Manager společnosti Soitron.
V softwarovém kódu jsou občas „zadní vrátka“. Pokud nejde vyloženě o chybu v softwaru nebo úmysl, proč je tam vývojáři dávají? Může se tak dít i v souvislosti s hardwarem?
Takzvaná zadní vrátka (backdoors) představují způsob, jak se zpětně dostat do programu, aniž by bylo potřeba procházet autentizačním procesem. Existuje několik důvodů, proč se zadní vrátka mohou v softwaru objevit. Někdy jsou vývojáři vytvořena úmyslně pro účely vzdálené správy nebo ladění systému. Vzniknout mohou ale i nechtěně, což může způsobit chyba ve vývoji nebo nedostatečné penetrační testování. Takže ano, objevit se mohou i v souvislosti s hardwarem. Skrytá „zadní vrátka“ se mohou objevit i prostřednictvím neoprávněných úprav hardwarových komponent, jako jsou mikročipy nebo síťová zařízení. Tyto nedokončené úpravy umožňují útočníkům přístup do systému.
Není to dlouho, co společnost Eclypsium, zabývající se kybernetickou bezpečností se specializací na analýzu firmware, objevila na několika základních deskách Gigabyte skrytá zadní vrátka. Ta mohou vést k instalaci malwaru do operačního systému. Šlo o 271 různých modelů základních desek Gigabyte, které byly na trh uvedeny s backdoorem, což mohlo vést k zneužití aktualizačního systému. Ten mohl být spuštěn během zavádění operačního systému přímo firmwarem, respektive BIOSem základní desky. Obsahuje kód, který během zavádění systému umožní spustit aktualizační software a v případě potřeby se připojí k internetu, stáhne nejnovější verzi firmwaru pro základní desku a nainstaluje ji. Podle Eclypsia je implementace, jakou společnost Gigabyte použila, nebezpečná a hackeři pak mohou tuto zranitelnost využít k infikování počítače oběti malwarem. Odstranění tohoto chování, tedy aktualizačního procesu, přitom není možné, protože je přímo ve firmwaru základní desky.
Jaké jsou nejčastější typy zadních vrátek? Může to být i neošetřené místo po alokaci paměti při výpočtu a jeho neuvolnění, nebo je to zase jiný druh chyby, vzniklý při vývoji?
Existuje několik nejběžnějších typů zadních vrátek v softwaru. Mezi ně patří:
• Zanechání výchozích přihlašovacích údajů – zařízení nebo software často přicházejí s výchozími uživatelskými jmény a hesly, která jsou pevně zakódována do systému. Pokud je lidé nezmění, mohou útočníci tyto výchozí údaje zneužít k získání neoprávněného přístupu.
• Vzdálená správa – jedná se o záměrně umístěné administrativní přístupové body, které jsou běžnému uživateli skryté, ale vývojáři nebo správci je znají. Útočníci mohou tato zadní vrátka objevit.
• Vložení škodlivého kódu – jde o vložení slabého „článku“ do softwaru, který umožní útočníkovi vložit škodlivý kód a získat tak přístup.
• Trapdoors – jsou to skryté přístupové body, které vývojáři nebo správci zanechali v systému pro účely ladění nebo testování. Pokud nejsou po vývoji odstraněny, útočníci je mohou najít a zneužít.
• Hardware backdoors – jedná se o nežádoucí úpravy hardwarových komponent, jako jsou mikročipy nebo síťová zařízení, které posléze umožní neoprávněný přístup do systému.
Neošetřená alokace paměti a uvolnění chyb během výpočtu není situace, která přímo souvisí se zadními vrátky. Spíše jde o příklad jiného typu programovací chyby, známé jako memory leak. K němu dochází, když program neuvolní přidělenou paměť poté, co již není potřeba. Časem to může vést k vyčerpání dostupné paměti, což způsobí zpomalení nebo pád systému. Memory leak může nepřímo vést k bezpečnostním chybám. Pokud by útočník získal kontrolu nad procesem správy paměti, mohlo by to vést k neoprávněnému přístupu nebo kontrole systému. Jde však spíše o nezamýšlený důsledek programátorské chyby než o úmyslná zadní vrátka. Vývojáři by se měli vždy snažit identifikovat a opravit memory leaky a další zranitelnosti během procesu vývoje softwaru, aby zajistili bezpečnost a stabilitu svých aplikací.
Jak se těmto situacím bránit, když organizace dostane hotovou aplikaci, na jejíž vývoj nemá prakticky žádný vliv? Tj. nemůže ovlivnit čistotu vývoje, konzistenci paměti atd.?
Obrana proti potenciálním bezpečnostním rizikům v aplikacích, kde je omezený vliv na proces vývoje, může být náročná, ale ne nemožná. Pro zvýšení bezpečnosti takovýchto aplikací by se měla dodržovat určitá pravidla. Předně je nutné důkladně posoudit zabezpečení a audit aplikace. Organizace by měly zapojit bezpečnostní experty nebo společnosti třetích stran specializující se na identifikaci potenciálních zranitelností a zadních vrátek. Provádět by se měly penetrační testy za účelem simulace útoků v reálném světě a posouzení odolnosti aplikace vůči potenciálním hrozbám. Dále je potřeba monitorovat anomálie prostřednictvím implementace robustních mechanismů monitorování a protokolování, aby se ukázalo jakékoliv podezřelé chování nebo pokusy o neoprávněný přístup. Tyto mechanismy mohou pomoci najít potenciální zadní vrátka. Izolací aplikací od kritických systémů a citlivých dat implementací segmentace sítě lze omezit dopad jakýchkoliv úspěšných útoků. A v neposlední řadě to chce udržovat aplikace a všechny související součásti updaty v nejnovější verzi. Tím se minimalizuje riziko zneužití známých zranitelností.
Organizace by neměly zapomínat ani na implementaci brány firewall, IDS pro monitorování síťového provozu a detekci jakékoli nežádoucí aktivity. Použít by měly rovněž whitelisting aplikací, aby v systémech omezily spouštění neautorizovaných nebo nedůvěryhodných aplikací. Dále doporučuji omezit uživatelská oprávnění na minimální nezbytnou úroveň. To může zmírnit škody způsobené úspěšným útokem. A pokud je to jen trochu možné, tak se spojit s dodavatelem aplikace a požádat ho o ujištění o bezpečnostních postupech a opatřeních, která zabraňují vzniku zadních vrátek.
Bezpečnostní technici by se měli neustále vzdělávat, aby věděli o nejnovějších bezpečnostních hrozbách a zranitelnostech. Rovněž by se měli přihlásit k odběru služeb pro informace o hrozbách, což jim může pomoci proaktivně řešit vznikající rizika. Podceňovat by neměli ani pravidelné zálohování důležitých dat a konfigurací, aby je mohli v případě bezpečnostního incidentu rychle obnovit. V neposlední řadě by neměl chybět ani plán reakce na incidenty, aby mohly organizace v případě narušení bezpečnosti rychle a efektivně reagovat.
I když tato opatření mohou pomoci zvýšit zabezpečení, aplikace nejsou na 100 % spolehlivé. Je nezbytné pravidelně přehodnocovat stav zabezpečení a být připraven podniknout příslušná opatření, objeví-li se nějaká významná zranitelnost. V některých případech, pokud představuje aplikace nepřijatelné bezpečnostní riziko, pak bude nutné zvážit alternativní řešení, nebo spolupracovat s dodavatelem, aby byl problém adekvátně vyřešen.
Lze pro posílení bezpečnosti využít AI, když už AI používají i kyberútočníci? Kde je, nebo bude hranice, kde končí válka strojů a kde bude muset opět nastoupit člověk, když se teď snažíme tuto hranici posouvat snahou o automatizaci rutinních úloh kvůli jejich množství, roztříštěnosti systémů a kvůli tomu i nepřehlednosti a následné chybovosti co nejdál?
Ano, umělou inteligenci lze použít ke zvýšení bezpečnosti a obraně proti kybernetickým útočníkům, i když i oni ji mohou využívat pro své aktivity. Bezpečnostní řešení s AI nabízejí v probíhajícím boji proti kybernetickým hrozbám hned několik výhod. Mezi ně patří detekce hrozeb v reálném čase, kdy algoritmy umělé inteligence mohou analyzovat obrovské množství dat z různých zdrojů v reálném čase, což umožňuje rychlou identifikaci potenciálních hrozeb a anomálií. Umělá inteligence se může naučit a porozumět typickému chování uživatelů a systému, což pomáhá odhalit odchylky, které mohou naznačovat neoprávněný přístup nebo podezřelé aktivity. Bezpečnostní systémy řízené umělou inteligencí navíc mohou reagovat na hrozby automaticky a rychle, čímž zmírňují dopad a minimalizují dobu reakce. Umělá inteligence dokáže rozpoznat složité vzory útoků, které nelze snadno odhalit pomocí tradičních bezpečnostních metod. Navíc se může adaptovat, učit se z nových hrozeb a neustále zlepšovat svou schopnost obrany proti vyvíjejícím se útočným technikám. AI úspěšně snižuje počet falešných poplachů, což bezpečnostním týmům umožňuje efektivněji se zaměřit na skutečné hrozby. Zpracování a analýza velkých souborů dat usnadňuje identifikaci potenciálních zranitelností a slabin v systému.
Stále však existují omezení toho, čeho může v kontextu kybernetické bezpečnosti umělá inteligence dosáhnout. Některé výzvy zahrnují:
• Předpojatost AI – modely AI mohou využívat zkreslená data, na kterých jsou trénovány, což může vést k diskriminačním nebo nespravedlivým závěrům.
• Útoky nepřátelské umělé inteligence – útočníci mohou pomocí umělé inteligence vytvářet sofistikované útoky, které je pro tradiční AI obranu obtížné odhalit.
• Nedostatek kontextového porozumění – modely AI mohou mít potíže s pochopením celého kontextu útoku nebo s identifikací jemných indikátorů, kterých by si lidský analytik mohl všimnout.
• Lidský dohled – zatímco umělá inteligence přebírá rutinní úkoly, lidští analytici a experti musí stále dohlížet a výsledky generované umělou inteligencí ověřovat.
• Obavy o soukromí – bezpečnostní systémy založené na umělé inteligenci mohou zpracovávat a analyzovat citlivá data, což vyvolává problémy s ochranou soukromí a dodržováním předpisů.
Pokud jde o hranici mezi bezpečností řízenou strojem a lidským zásahem, je nezbytné najít rovnováhu. Automatizace může výrazně zlepšit efektivitu a dobu reakce, což umožňuje bezpečnostním týmům soustředit se na složitější úkoly a strategická rozhodnutí. Lidský dohled však zůstává důležitý. Lidé mohou poskytnout kreativitu, intuici a schopnost porozumět širšímu kontextu bezpečnostních incidentů, což AI může postrádat. V dohledné budoucnosti bude nejúčinnější přístup ke kybernetické bezpečnosti pravděpodobně zahrnovat symbiotický vztah mezi umělou inteligencí a lidskými experty. Umělá inteligence bude zvládat rutinní úkoly, rozšiřovat lidské schopnosti a rychle detekovat a reagovat na hrozby, zatímco lidé budou i nadále poskytovat strategické vedení, etické úvahy a kritické myšlení, aby se neustále se vyvíjejícímu prostředí hrozeb přizpůsobili. Spojením silných stránek AI a lidských odborných znalostí mohou organizace vybudovat robustní a odolné bezpečnostní pozice.