A CSV injekciós támadások magyarázata
A vesszővel elválasztott értékek fájlok vagy CSV-fájlok ma már szinte mindenhol megtalálhatók. Ha irodai környezetben dolgozik (valójában az emberek még most is ezt teszik?), akkor valószínűleg már küldött, fogadott és megnyitott CSV-fájlokat Microsoft Excelben vagy Google Táblázatokban. A CSV-fájlok lehetővé teszik számunkra, hogy összetett adatkészleteket strukturáljunk ember által olvasható formátumban.
De a CSV-fájlok – minden praktikum ellenére – komoly támadási vektort is képviselnek a CSV injekciós támadások formájában. CSV-befecskendezési támadások, más néven képlet-injektálási támadások, akkor fordulhatnak elő, ha egy webhely vagy webalkalmazás lehetővé teszi a felhasználók számára, hogy a tartalom ellenőrzése nélkül exportáljanak adatokat egy CSV-fájlba. Érvényesítés nélkül az exportált CSV-fájl rosszindulatúan kialakított képleteket tartalmazhat. Ha egy rosszindulatú képletet CSV-alkalmazások (például Microsoft Excel, Apple Numbers vagy Google Sheets) hajtanak végre, az veszélyeztetheti az Ön adatait, a rendszerét vagy mindkettőt.
A CSV-fájlok támadási vektorként való használatának másik módja a rosszindulatú hivatkozások beágyazása a fájlba. Ha egy felhasználó rákattint a rosszindulatú linkre, mindenféle rossz dolog történhet.
Mik azok a CSV fájlok?
Jó esély van rá, hogy korábban már megnyitott egy CSV-fájlt. Ha valaha is használta a Microsoft Excelt, akkor CSV-fájlokkal játszott.
A vesszővel tagolt értékek (CSV) egyszerűen egy egyszerű szöveges fájl, amely adatokat tartalmaz. A CSV-fájlokat gyakran használják adatok, jellemzően adatbázisok, különböző alkalmazások közötti cseréjére.
A CSV-fájlokat néha karakterrel elválasztott értékeknek vagy vesszővel tagolt fájloknak is nevezik. A vessző karakter a különböző adatpontok elválasztására (vagy elhatárolására) szolgál. Más karaktereket, például pontosvesszőt is használnak néha elhatárolásra, bár a vessző a leggyakoribb. A CSV-fájlok használatának előnye, hogy összetett adatokat exportálhat az egyik alkalmazásból egy CSV-fájlba, és importálhatja azokat egy másik alkalmazásba. Az adatokkal műveleteket is végezhet képletek vagy makrók használatával.
Például a táblázat fenti képe így néz ki .csv formátumban, ha egy szövegszerkesztőben megnyitja: Figyelje meg, hogy az egyes értékeket vessző választja el, innen ered a vesszővel elválasztott értékek (CSV) elnevezés.
CSV injekciós támadástípusok
Rosszindulatú linkek
Tehát miért veszélyesek a CSV-fájlok? Nos, ennek három módja van. Az első módja annak, hogy a CSV-fájlokat támadások elkövetésére használják fel, valójában minden olyan digitális fájl osztja meg, amely szöveget jelenít meg és támogatja a hiperhivatkozásokat. És ez egyszerűen egy rosszindulatú hivatkozás beágyazása az egyik cellába. Ha egy gyanútlan felhasználó rákattint a rosszindulatú linkre, akkor valószínűleg feltörte a rendszerét, adatait vagy mindkettőt. Ez a támadási vektor mérsékelhető egy kis józan ésszel: ne kattintson a nem megbízható fájlok (CSV vagy egyéb) hivatkozásaira. A Microsoft Excel a hivatkozás követése előtt a felhasználó megerősítését kéri, de a legtöbben arra számítanak, hogy megbízható CSV-fájlokban találnak beágyazott hivatkozásokat, és figyelmen kívül hagyják a biztonsági figyelmeztetést.
Egy ilyen link valahogy így nézhet ki:
|_+_|
Ez kattintáskor a CSV-fájlban található információkat a támadó szerverére továbbítaná.
CSV alkalmazások
De van egy másik, sokkal gyakoribb támadási vektor a CSV-fájlokkal: maguk a CSV-alkalmazások. A táblázat megfelelő értékekkel történő megjelenítése érdekében a CSV-alkalmazások az összes képletet közvetlenül a táblázat megjelenítése előtt végrehajtják. Ez azt jelenti, hogy nincs szükség felhasználói beavatkozásra a képletek vagy makrók végrehajtásához. Tehát ha egy rosszindulatú képletet ágyaztak be a táblázatba, akkor az automatikus végrehajtáshoz csak annyit kell tennie, hogy egy gyanútlan felhasználó megnyitja a feltört CSV-fájlt.
A képletek vagy makrók alapvetően egyenletek, amelyeket a fájlban található különböző adatpontok között hajtanak végre. Tegyük fel például, hogy van egy egyszerű táblázata két oszloppal: az A oszlop a heti bevételeit, a B oszlop pedig a heti költségeket tartalmazza. Egy képlet segítségével kivonhatja a költségeket a bevételből, és az eredményül kapott adatokat egy harmadik oszlopba (C) sorolhatja fel. Egy ilyen képlet így nézne ki: =A1-B1. A CSV-fájlok képletei a következő karakterek valamelyikével kezdődnek: egyenlő (=), plusz (+), mínusz (-), at (@).
Az alábbi példa egy rosszindulatú képlet, amely csendben továbbítja egy Google Táblázatok-dokumentum tartalmát a támadó által irányított szerverre:
|_+_|
Dinamikus adatcsere
A harmadik CSV-támadás a Windows rendszerű számítógépekre jellemző. A Microsoft megvalósította az Excelben a Dynamic Data Exchange (DDE) funkciót. A DDE lehetővé teszi, hogy az Excel kommunikáljon a rendszer más részeivel, és akár alkalmazásokat is indítson. Tehát a DDE használatával egy rosszindulatú támadó rosszindulatú képletet hozhat létre a parancssor elindításához és tetszőleges kód futtatásához a kérdéses gépen. Ezt linkként is meg lehet alkotni. Ebben az esetben, mint fent, megjelenik egy Windows előugró ablak, amely megkérdezi a felhasználót, hogy megbízik-e a hivatkozásban. A felhasználónak az „Igen” gombra kell kattintania a hivatkozás követéséhez. Noha ezt a CSV-támadások mérséklésére szolgáló intézkedésnek szánják, a legtöbb felhasználó elvárja, hogy a táblázatai együttműködjenek a számítógépével, legalábbis irodai környezetben.
Az alábbiakban egy példa látható a DDE használatával a terminál elindítására és egy távoli számítógép pingelésére, ami DDOS támadást eredményezhet (természetesen több áldozatra lenne szükség).
|_+_|
Szociális tervezés
Sok más online támadáshoz hasonlóan a CSV-injektáló támadások is valamilyen társadalmi manipulációt foglalnak magukban, amelyek arra késztetik az áldozatot, hogy vagy nyissa meg a CSV-fájlt, vagy nyissa meg, és kattintson egy rosszindulatú hivatkozásra. Ez lehet e-mail, Facebook-bejegyzés, bármi. Legyen óvatos a véletlenszerű hivatkozásokkal.
CSV injekciós támadási példa
2018 júniusában a holland rendőrség átvette a sötét web piacterét, Hansa , CSV injekciós támadás segítségével.
A Hansa piactér drogokat árult a sötét weben (Tor) keresztül. A piactér felhasználói letölthettek egy szöveges fájlt, amely a legutóbbi vásárlásaik listáját tartalmazza. Amikor a holland rendőrség 2018. június 20-án átvette az oldalt, módosította a webszerver kódját, és a „legutóbbi vásárlások” szövegfájlt CSV-fájllal helyettesítette. A CSV-fájl rosszindulatú rakományt tartalmazott, amely a felhasználók IP-címét a holland rendőrség által ellenőrzött szerverre küldte. 64 eladó vette át a csalit. Mialatt a holland rendőrség átvette a szervert, az akció során 27 nap alatt 27 000 kábítószer-tranzakció gyűlt össze.
Hogyan lehet enyhíteni a CSV injekciós támadásokat
Az ilyen típusú támadások mérséklésének módja meglehetősen egyszerű. Megvalósítása csak az Ön forgatókönyvétől függően változik.
Két forgatókönyv létezik:
- Webhelye/alkalmazása CSV-fájlokat állít elő
- Webhelye/alkalmazása CSV-fájlokat használ
Webhelye/alkalmazása CSV-fájlokat állít elő
Ha az alkalmazás CSV-fájlokat állít elő, engedélyezőlistás ellenőrzést végezhet a nem megbízható bemeneteken, és letilthatja az egyenlő (=), plusz (+), mínusz (-) és At (@) karaktereket. Az engedélyezési lista ellenőrzése egyszerűen azt jelenti, hogy létrehoz egy engedélyezőlistát az engedélyezett karakterekből, és hivatkozik a bemenetre az engedélyezőlistára. Az engedélyezőlistán nem szereplő karakterek nem engedélyezettek és eltávolíthatók. Talán ez a legbiztonságosabb módszer. Feltételezi azonban, hogy a webhelynek/alkalmazásnak nem kell engedélyeznie ezeket a karaktereket, hogy elláthassa funkcióit.
Ha el kell fogadnia ezeket a karaktereket, akkor kódolhatja a cellaértékeket, hogy a CSV-alkalmazás ne kezelje képletként ezeket a karaktereket a következő cellaértékekkel, amelyek a következő karakterekkel kezdődnek: =, +, - vagy @ egyetlen idézőjellel. Ezt a módszert a karakterek „megszökésének” nevezik, és biztosítja, hogy ezeket a karaktereket adatként, nem pedig képletként értelmezzük.
Webhelye/alkalmazása CSV-fájlokat használ
Ha webhelye/alkalmazása máshol előállított CSV-fájlokat tölt be, akkor érvényesítenie kell és kódolnia kell a fájl tartalmát, mielőtt az alkalmazás feldolgozná. Az, hogy pontosan hogyan éri el ezt, a webhely felépítésétől függ, és ezért nem tartozik ennek a cikknek a körébe.
Számos, a CSV-injektálás enyhítését tárgyaló online cikk azonban csak a sértő karaktereket (=, +, - és @) tartalmazó cellák érvényesítését és kódolását javasolja. Azt javaslom, hogy az összes cellát kódolja, ne csak azokat, amelyek a következőket tartalmazzák: =, +, - vagy @. Az összes adat értelmezhető marad az alkalmazás számára, és biztos lehet benne, hogy egyik cellát sem értelmezi képletként.
Következtetés
A CSV injekciónak nagyon kellemetlen következményei lehetnek. Szerencsére a webhely/alkalmazás védelme nem nehéz. Egyszerűen tiltsa le a CSV-alkalmazások által képletként értelmezett karaktereket, vagy ellenőrizze és kódolja a CSV-bevitelt.
De mivel ez a támadás valamilyen társadalmi manipulációt igényel, felhasználóként néhány józan ésszel kapcsolatos lépést megtehet, hogy csökkentse az áldozattá válás esélyét.
- Használjon tűzfalat – Minden nagyobb operációs rendszer rendelkezik beépített bejövő tűzfallal, és minden kereskedelmi forgalomban lévő útválasztó rendelkezik beépített NAT tűzfallal. Győződjön meg arról, hogy ezek engedélyezve vannak, mert megvédhetik Önt abban az esetben, ha rosszindulatú hivatkozásra kattint.
- Ha a CSV-alkalmazás figyelmeztetést jelenít meg egy olyan hivatkozásról, amelyet elérni próbál, figyeljen oda, és alaposan ellenőrizze a hivatkozást.
- Ne kattintson az e-mailek mellékleteire, hacsak nem tudja, hogy pontosan ki küldte és mi az.
Lásd még:
- Hogyan lehet megakadályozni a Trojan Horse rosszindulatú programokat
- A gyakori rosszindulatú támadások magyarázata
- Több mint 300 megdöbbentő számítógépes bűnözési statisztika