Bezpečnostní

10 typů chyb zabezpečení

10 typů chyb zabezpečení
Neúmyslná nebo náhodná chyba softwarového kódu nebo jakéhokoli systému, díky nimž je potenciálně zneužitelný, pokud jde o přístup k nelegitimním uživatelům, škodlivé chování jako viry, trojské koně, červy nebo jakýkoli jiný malware, se nazývá chyba zabezpečení. Použití softwaru, který již byl zneužit, nebo použití slabých a výchozích hesel také vede k tomu, že je systém zranitelný vůči vnějšímu světu. Tyto typy chyb zabezpečení vyžadují opravu, aby hackeři zabránili opětovnému použití dříve použitých exploitů k získání neoprávněného přístupu do systému. Zranitelností zabezpečení, která se také nazývá bezpečnostní díra nebo slabost, je chyba, chyba nebo chyba v implementaci kódu, designu a architektury webové aplikace a serverů, která, pokud nebude adresována, může vést k ohrožení systému a celá síť zranitelná vůči útoku. Mezi osoby, které budou infikovány, patří vlastník aplikace, uživatelé aplikace a jakákoli další osoba, která se na tuto aplikaci spoléhá. Podívejme se na nejnebezpečnější a nejběžnější bezpečnostní rizika pro webové aplikace.

Obsah

  1. Vložení databáze
  2. Nefunkční ověřování
  3. Citlivá expozice dat
  4. Externí entity XML (XEE)
  5. Nefunkční řízení přístupu
  6. Chybná konfigurace zabezpečení
  7. Cross-site Scripting (XSS)
  8. Nejistá deserializace
  9. Používání komponent se známými chybami zabezpečení
  10. Nedostatečné protokolování a monitorování

Vložení databáze:

V případě zasílání nedůvěryhodných dat k tlumočníkovi jako součást příkazu přes jakoukoli oblast, která přijímá vstup uživatele i.Při zadávání formulářů nebo jakékoli jiné oblasti pro odesílání dat dochází k chybám vstřikování. Útočné škodlivé dotazy mohou tlumočníka přimět k provedení příkazů, které mohou zobrazit důvěrná data, na která uživatel nemá oprávnění se podívat. Například při útoku s injektáží SQL, když není vstup formuláře správně dezinfikován, může útočník vstoupit do databáze SQL a přistupovat k jejímu obsahu bez povolení, pouze zadáním škodlivého kódu databáze SQL ve formuláři, který očekává prostý text. Jakýkoli typ pole, které přijímá vstup uživatele, je injektovatelný i.Parametry, proměnné prostředí, všechny webové služby atd.

Tato aplikace je zranitelná vůči injekčnímu útoku, když data dodaná uživateli nejsou dezinfikována a ověřena, a to pomocí dynamických dotazů bez úniku podle kontextu a přímým použitím nepřátelských dat. Poruchy vstřikování lze snadno zjistit zkoumáním kódu a použitím automatizovaných nástrojů, jako jsou skenery a fuzzery. Aby se zabránilo útokům vstřikováním, je možné provést určité opatření, jako je oddělení dat od příkazů a dotazů, použití bezpečného rozhraní API, které poskytuje parametrizované rozhraní, použití „bílého seznamu“ ověření vstupu na straně serveru prostřednictvím nástrojů, jako je Snort, únik speciálních znaků pomocí specifické syntaxe úniku atd.

Injekční útok může vést k obrovské ztrátě dat, zveřejnění důvěrných informací, odepření přístupu a může dokonce vést k úplnému převzetí aplikace. Některé ovládací prvky SQL, jako je LIMIT, lze použít k ovládání obrovského množství ztráty dat v případě útoku. Některé typy injekčních útoků jsou SQL, OS, NoSQL, LDAP injekční útoky.

Nefunkční ověřování:

Útočníci mohou přistupovat k uživatelským účtům a dokonce mohou ohrozit celý hostitelský systém prostřednictvím účtů správce a využívat chyby zabezpečení v ověřovacích systémech. Chyby ověřování umožňují útočníkovi prolomit hesla, tokeny relace, ověřovací klíče a mohou být spojeny s dalšími útoky, které mohou dočasně a v některých případech trvale vést k neoprávněnému přístupu k jakémukoli jinému uživatelskému účtu nebo relaci. Řekněme, že uživatel má seznam slov nebo slovník milionů platných uživatelských jmen a hesel získaných během porušení. Může je používat jeden po druhém za extrémně kratší dobu pomocí automatizovaných nástrojů a skriptů v přihlašovacím systému, aby zjistil, zda někdo funguje. Špatná implementace správy identit a řízení přístupu vede k zranitelnostem, jako je nefunkční ověřování.

Aplikace je zranitelná vůči autentizačnímu útoku, když umožňuje zkoušení různých uživatelských jmen a hesel, umožňuje útoky slovníků nebo útoky hrubou silou bez jakékoli obranné strategie, používá snadná výchozí hesla nebo hesla, která jsou při jakémkoli porušení prozrazena, odhaluje ID relace v URL, používá špatné schéma obnovy hesla, používá vzor cookies. Zlomené ověřování lze snadno zneužít pomocí jednoduchých nástrojů pro útoky hrubou silou a slovníky s dobrým slovníkem. Těmto typům útoků lze zabránit pomocí vícefaktorových autentizačních systémů, implementací slabých kontrol hesel spuštěním hesla v databázi chybných hesel, nepoužíváním výchozích pověření, sladěním zásad složitosti hesel, použitím dobrého serveru správce relací, který po přihlášení vygeneruje nové náhodné ID relace atd.

Zranitelná chyba zabezpečení může mít za následek ohrožení několika uživatelských účtů a účtu správce, to je vše, co útočník potřebuje ke kompromitování systému. Tyto typy útoků vedou ke krádeži identity, podvodům v oblasti sociálního zabezpečení, praní peněz a prozrazení vysoce utajovaných informací. Mezi útoky patří slovníkový útok, brutální vynucení, únos relace a útoky na správu relace.

Citlivá expozice údajů:

Webové aplikace někdy nechrání citlivá data a informace, jako jsou hesla, pověření databáze atd. Útočník může tato slabě chráněná pověření snadno ukrást nebo upravit a použít je k nelegitimním účelům. Citlivá data by měla být šifrována v klidu nebo na cestě a měla by mít další vrstvu zabezpečení, jinak by je mohli útočníci ukrást. Útočníci mohou dostat do rukou citlivá vystavená data a ukradnout hashované nebo vymazané textové uživatele a pověření databáze ze serveru nebo webového prohlížeče. Například pokud databáze hesel používá k ukládání hesel nesolené nebo jednoduché hashe, chyba nahrávání souboru může útočníkovi umožnit načíst databázi hesel, což povede k odhalení všech hesel s duhovou tabulkou předem vypočítaných hashů.

Hlavní chybou je nejen to, že data nejsou šifrována, i když jsou šifrována, ale slabé generování klíčů, slabé hashovací algoritmy, slabé použití šifry mohou také vést k těmto typům jednoho z nejběžnějších útoků. Abyste těmto typům útoků zabránili, nejprve klasifikujte, jaký druh dat lze podle zákonů o ochraně soukromí považovat za citlivý, a použijte kontroly podle klasifikace. Snažte se neukládat žádná utajovaná data, která nepotřebujete, ihned je umyjte. U přenášených dat je zašifrujte zabezpečenými protokoly, tj.e TLS se šiframi PFS atd.

Tyto typy chyb zabezpečení mohou vést k odhalení vysoce citlivých informací, jako jsou údaje o kreditní kartě, zdravotní záznamy, hesla a jakékoli další osobní údaje, které mohou vést ke krádeži identity a bankovním podvodům atd.

Externí entity XML (XEE):

Špatně nakonfigurované procesory XML zpracovávají odkazy na externí entity uvnitř dokumentů XML. Tyto externí entity lze použít k načtení dat interních souborů / etc / passwd soubor nebo provádět jiné škodlivé úkoly.  Zranitelné procesory XML lze snadno zneužít, pokud může útočník nahrát dokument XML nebo zahrnout XML atd. Tyto zranitelné entity XML lze zjistit pomocí nástrojů SAST a DAST nebo ručně kontrolou závislostí a konfigurací.

Webová aplikace je zranitelná útokem XEE z mnoha důvodů, například pokud aplikace přijímá přímý vstup XML z nedůvěryhodných zdrojů, jsou povoleny definice typu dokumentu (DTD) v aplikaci, aplikace používá pro zpracování identity SAML, protože SAML používá XML pro identitu vložení atd. Útoky XEE lze zmírnit tím, že se vyhnete serializaci citlivých dat pomocí méně komplikovaných datových formátů, i.e JSON, oprava procesorů XML, které aplikace aktuálně používá a dokonce i knihovny, deaktivace DTD ve všech analyzátorech XML, ověření funkčnosti nahrávání souborů XML pomocí ověření XSD atd.

Aplikace zranitelná těmito typy útoků může vést k útoku DOS, útoku Billion Laughs, skenování interních systémů, skenování interních portů, spuštění vzdáleného příkazu, což má dopad na všechna data aplikace.

Nefunkční řízení přístupu:

Řízení přístupu dává uživatelům oprávnění provádět konkrétní úkoly. K chybě zabezpečení týkající se nefunkčního přístupu dochází, když uživatelé nejsou řádně omezeni na úkoly, které mohou provádět. Útočníci mohou tuto chybu zabezpečení zneužít, což může vést k přístupu k neoprávněným funkcím nebo informacím. Řekněme, že webová aplikace umožňuje uživateli změnit účet, ze kterého je přihlášen, a to pouze změnou adresy URL na účet jiného uživatele bez dalšího ověřování.  Využití zranitelnosti řízení přístupu je útokem každého útočníka, tuto chybu zabezpečení lze zjistit ručně i pomocí nástrojů SAFT a DAFT. Tyto chyby zabezpečení existují kvůli nedostatečnému testování a automatizované detekci webových aplikací, ačkoli nejlepším způsobem, jak je najít, je provést to ručně.

Zranitelnosti obsahují eskalaci oprávnění i.Jako uživatel nejste nebo jednáte jako administrátor, když jste uživatel, obejdete kontroly kontroly přístupu pouze úpravou adresy URL nebo změnou stavu aplikace, manipulací s metadaty, umožněním změny primárního klíče jako primárního klíče jiného uživatele, atd. Aby se zabránilo těmto druhům útoků, musí být mechanismy řízení přístupu implementovány v kódu na straně serveru, kde útočníci nemohou upravovat řízení přístupu. Aby se zmírnily tyto druhy útoků, musí být zajištěno vynucování jedinečných obchodních limitů aplikací podle doménových modelů, zakázání výpisů adresářů serveru, upozornění správce na opakované neúspěšné pokusy o přihlášení, zneplatnění tokenů JWT po odhlášení.

Útočníci mohou působit jako jiný uživatel nebo správce, který pomocí této chyby zabezpečení provádí škodlivé úkoly, jako je vytváření, mazání a úpravy záznamů atd. K masivní ztrátě dat může dojít, pokud nebudou data zabezpečena ani po narušení.

Chybná konfigurace zabezpečení:

Nejběžnější chybou zabezpečení je chybná konfigurace zabezpečení. Hlavním důvodem této chyby zabezpečení je použití výchozí konfigurace, neúplné konfigurace, konfigurací Adhoc, špatně nakonfigurovaných záhlaví HTTP a podrobných chybových zpráv obsahujících více informací, než by uživatel ve skutečnosti měl vědět. Na jakékoli úrovni webové aplikace může dojít k chybným konfiguracím zabezpečení, i.e databáze, webový server, aplikační server, síťové služby atd. Útočníci mohou zneužít neopravené systémy nebo přistupovat k nechráněným souborům a adresářům za účelem neoprávněného zadržení systému. Například aplikace nadměrně podrobně zobrazuje chybové zprávy, které útočníkovi pomohou poznat zranitelná místa v aplikačním systému a způsob jeho fungování. K detekci těchto typů bezpečnostních nedostatků lze použít automatické nástroje a skenery.

Webová aplikace obsahuje tento typ chyby zabezpečení, pokud chybí opatření k posílení zabezpečení v jakékoli části aplikace, jsou zbytečné porty otevřené nebo umožňuje zbytečné funkce, používají se výchozí hesla, zpracování chyb odhalí útočníkovi informativní chyby, používá neopravený nebo zastaralý bezpečnostní software atd. Lze tomu zabránit odstraněním nepotřebných funkcí kódu, tj.ea minimální platforma bez zbytečných funkcí, dokumentace atd., umožňující úkol aktualizovat a opravit bezpečnostní díry jako součást procesů správy oprav, použití procesu k ověření účinnosti přijatých bezpečnostních opatření, použití opakovatelného procesu kalení je snadné nasadit jiné prostředí, které je správně uzamčeno.

Tyto typy chyb zabezpečení nebo chyby umožňují útočníkovi získat neoprávněný přístup k systémovým datům, což vede k úplnému kompromisu systému.

Cross-Site Scripting (XSS):

Zranitelnosti XSS se stávají v okamžiku, kdy webová aplikace začlení nedůvěryhodná data na novou webovou stránku bez legitimního schválení nebo úniku, nebo obnoví aktuální webovou stránku pomocí dat poskytnutých klientem s využitím rozhraní API prohlížeče, které umí vytvářet HTML nebo JavaScript.  K chybám XSS dochází v případě, že web umožňuje uživateli přidat do cesty URL vlastní kód, který mohou ostatní uživatelé vidět. Tyto chyby se používají ke spuštění škodlivého kódu JavaScript v prohlížeči cíle. Řekněme, že útočník může zaslat oběti odkaz obsahující odkaz na web jakékoli společnosti. V tomto připojení může být vložen nějaký škodlivý JavaScriptový kód. V případě, že webová stránka banky není náležitě zabezpečena proti útokům XSS, bude po kliknutí na odkaz spuštěn škodlivý kód v prohlížeči oběti.

Cross-Site Scripting je chyba zabezpečení, která je přítomna téměř v ⅔ webových aplikací. Aplikace je zranitelná vůči XSS, pokud aplikace ukládá neočištěný uživatelský vstup, který může vidět jiný uživatel, a to pomocí struktur JavaScriptu, jednostránkových aplikací a rozhraní API, která na stránku účinně začleňují informace, které lze ovládat útočníkem, proti DOM XSS. Útoky XSS lze zmírnit použitím rámců, které unikají a dezinfikují vstupy XSS od přírody, jako je React JS atd., Učením se o omezeních rámců a jejich zakrytím pomocí vlastních případů, únikem zbytečných a nedůvěryhodných dat HTML všude i.e v atributech HTML, URI, Javascript atd., použití kontextového kódování v případě úpravy dokumentu na straně klienta atd.

Útoky založené na XSS jsou tří typů, tj.e Odráží XSS, DOM XSS a Uložené XSS. Všechny typy těchto útoků mají značné množství dopadu, ale v případě Uloženého XSS je dopad ještě větší i.e krádež přihlašovacích údajů, zasílání malwaru oběti atd.

Nejistá deserializace:

Serializace dat znamená pořizovat objekty a převádět je do libovolného formátu, aby tato data mohla být později použita pro jiné účely, zatímco deserializace dat znamená opak toho. Deserializace rozbaluje tato serializovaná data pro použití aplikací. Nejistá deserializace znamená temperování dat, která byla serializována těsně před tím, než bude vybalena nebo deserializována.  Nejistá deserializace vede ke vzdálenému spuštění kódu a používá se k provádění dalších úkolů se škodlivými účely, jako je eskalace oprávnění, útoky injekcí, útoky opakování atd. K odhalení těchto druhů nedostatků jsou k dispozici některé nástroje, ale k ověření problému je často nutná lidská pomoc. Využití deserializace je trochu obtížné, protože exploity nebudou fungovat bez některých manuálních změn.

Když aplikace deserializuje škodlivé objekty dodávané útočící entitou. To může vést ke dvěma typům útoků, tj.Útoky související s datovou strukturou a objekty, ve kterých útočník upravuje logiku aplikace nebo spouští vzdálený kód, a typické útoky na neoprávněnou manipulaci s daty, při nichž se používají stávající datové struktury s upraveným obsahem, například útoky související s řízením přístupu.  Serializaci lze použít ve vzdálené procesní komunikaci (RPC) nebo meziprocesové komunikaci (IPC), ukládání dat do mezipaměti, webové služby, server mezipaměti databází, souborové systémy, autentizační tokeny API, soubory cookie HTML, parametry formuláře HTML atd. Útoky deserializace lze zmírnit nepoužíváním serializovaných objektů z nedůvěryhodných zdrojů, implementací kontrol integrity, izolací kódu běžícího v prostředí s nízkými oprávněními, sledováním příchozích a odchozích síťových připojení ze serverů, které často deserializují.

Používání komponent se známými chybami zabezpečení:

Většina vývojářů ve webové aplikaci používá různé komponenty, jako jsou knihovny, rámce a softwarové moduly. Tyto knihovny pomáhají vývojáři vyhnout se zbytečné práci a poskytnout potřebné funkce. Útočníci hledají chyby a chyby zabezpečení v těchto součástech, aby koordinovali útok. V případě nalezení bezpečnostní mezery v komponentě mohou být všechny weby používající stejnou komponentu zranitelné. Využití těchto chyb zabezpečení je již k dispozici, zatímco psaní vlastního zneužití od začátku vyžaduje velké úsilí. Jedná se o velmi běžný a rozšířený problém, použití velkého množství komponent při vývoji webové aplikace může vést k tomu, že ani nebudete znát a rozumět všem použitým komponentám, oprava a aktualizace všech komponent je dlouhá cesta.

Aplikace je zranitelná, pokud vývojář nezná verzi použité komponenty, software je zastaralý i.e operační systém, DBMS, běžící software, běhová prostředí a knihovny, skenování zranitelností se neprovádí pravidelně, vývojáři netestují kompatibilitu opraveného softwaru. Lze tomu zabránit odstraněním nepoužívaných závislostí, souborů, dokumentace a knihoven, pravidelnou kontrolou verze klientských a serverových komponent, získávání komponent a knihoven z oficiálních a důvěryhodných zabezpečených zdrojů, monitorováním neopravených knihoven a komponent, zajištěním plánu pro pravidelnou aktualizaci a opravu zranitelných komponent.

Tyto chyby zabezpečení vedou k menším dopadům, ale mohou také vést ke kompromitaci serveru a systému. Mnoho velkých porušení se spoléhalo na známé chyby zabezpečení součástí. Použití zranitelných komponent podkopává obranu aplikace a může být výchozím bodem pro velký útok.

Nedostatečné protokolování a monitorování:

Většina systémů nepřijímá dostatečná opatření a kroky k detekci narušení dat. Průměrná doba odezvy na incident je 200 dní poté, co k němu došlo, je spousta času udělat pro útočící entitu všechny ty ošklivé věci. Nedostatečné protokolování a monitorování umožňuje útočníkovi dále útočit na systém, udržovat jeho držení v systému, manipulovat, zadržovat a extrahovat data podle potřeby. Útočníci využívají nedostatečné monitorování a reakci ve svůj prospěch k útoku na webovou aplikaci.
K nedostatečnému protokolování a monitorování dochází kdykoli i.e protokoly aplikací, které nejsou sledovány kvůli neobvyklým činnostem, auditovatelné události, jako jsou neúspěšné pokusy o přihlášení a vysoké hodnoty transakcí, nejsou správně protokolovány, varování a chyby generují nejasné chybové zprávy, žádná výstraha spouštění v případě testování pomocí automatických nástrojů DAST, neschopnost detekovat nebo rychle upozornit aktivní útoky atd. Lze je zmírnit zajištěním všech přihlašovacích údajů, selhání řízení přístupu a ověření vstupu na straně serveru, které lze protokolovat k identifikaci škodlivého uživatelského účtu, a držet je po dostatečně dlouhou dobu pro zpožděné forenzní vyšetřování, a to zajištěním toho, že generované protokoly jsou ve formátu kompatibilní s centralizovanými řešeními pro správu protokolů, zajištěním kontroly integrity u transakcí vysoké hodnoty, vytvořením systému pro včasné upozornění na podezřelé aktivity atd.

Většina úspěšných útoků začíná kontrolou a zkoumáním zranitelností v systému. Povolení těchto zkoušek zranitelnosti může vést k ohrožení celého systému.

Závěr:

Chyby zabezpečení ve webové aplikaci ovlivňují všechny entity související s touto aplikací. O tyto chyby zabezpečení je třeba se starat, abychom uživatelům poskytli bezpečné a zabezpečené prostředí. Útočníci mohou pomocí těchto chyb zabezpečení napadnout systém, zmocnit se ho a eskalovat oprávnění. Dopad napadené webové aplikace lze vizualizovat od odcizených údajů o kreditní kartě a krádeže identity až po únik vysoce důvěrných informací atd. v závislosti na potřebách a útočných vektorech škodlivých entit.

Hry Nejlepší emulátory herních konzolí pro Linux
Nejlepší emulátory herních konzolí pro Linux
Tento článek uvádí seznam populárního softwaru pro emulaci herních konzolí, který je k dispozici pro Linux. Emulace je vrstva softwarové kompatibility...
Hry Nejlepší linuxové distribuce pro hraní her v roce 2021
Nejlepší linuxové distribuce pro hraní her v roce 2021
Operační systém Linux má za sebou dlouhou cestu od svého původního, jednoduchého vzhledu založeného na serveru. Tento OS se v posledních letech nesmír...
Hry Jak zachytit a streamovat vaši herní relaci v systému Linux
Jak zachytit a streamovat vaši herní relaci v systému Linux
V minulosti bylo hraní her považováno pouze za koníček, ale postupem času došlo v herním průmyslu k obrovskému nárůstu z hlediska technologie a počtu ...