5. Kártékony kódok
féreg
• nem feltétlenül kell a fertőzéshez felhasználói művelet végrehajtása
(pl. biztonsági rés kihasználásánál), nem ágyazódik más, futtatható
fájlokba („stand-alone”), hálózaton terjed beépített motorok révén (pl.
SMTP-motorral e-mailben)
vírus
• felhasználói művelet végrehajtása kell a fertőzéshez (pl. fertőzött
állomány elindítása), futtatható fájlokba ágyazódik, felhasználó
terjesztheti (pl. e-mail csatolt állományaként fertőzött állományt ad
meg)
trójai, kémszoftver
• felhasználó tudta nélkül működik (pl. „backdoor” nyitása későbbi
támadáshoz, bizalmas adatok, jelszavak gyűjtése és továbbítása),
felhasználó megtévesztése révén (pl. más alkalmazásnak álcázva
magát) települ fel
6. íܲöéԱ
íܲöéԱ (forrás: www.viruslist.com )
1970
Creeper (ARPANET), Tenex operációs rendszer, szöveget írt ki
Reaper (ARPANET), Tenex operációs rendszer, vírusként terjedt és
leirtotta a Creeper vírust
1981
első vírus, Elk Cloner, Apple II számítógépeken, szöveget írt ki, boot
vírusként került a lemezekre, amelyen az operációs rendszert is
tárolták
1986
első vírus IBM PC számítógépekre, Brain, boot vírusként terjedt
7. íܲöéԱ
1987
első adatromboló vírus, Lehigh
Suriv víruscsalád „elsői”:
Suriv-1: első .com fájlokat fertőző vírus
Suriv-2 : első .exe fájlokat fertőző vírus
Suriv-4: Jerusalem, .com és .exe fájlokat fertőzött meg,
memóriában megmaradt, világszerte elterjedt
első féreg, Christmas Tree Worm 4 nap alatt megfertőzte a European
Academic Research Network (EARN) hálózatán keresztül az IBM Vnet
hálózatát
8. íܲöéԱ
1988
hírhedt féreg, Morris Worm, a UNIX operációs rendszerek (VAX és Sun
Microsystems számítógépeken) felhasználó-hitelesítési eljárását
kerülte meg („login/authentication”), így szerzett adatokat és tudta
magát továbbküldeni az ARPANET hálózaton
1989
első trójai, AIDS, az alkalmazás rejtjelezte a merevlemez tartalmát és
kiírta, hogy a visszafejtéshez szükséges kriptográfiai kulcsot a
megfelelő pénzösszeg befizetése ellenében kaphatja meg a áosult
9. íܲöéԱ
1990
első polimorf vírus, Chameleon (Vienna és Cascade vírus
tulajdonságainak ötvözése), minden fertőzés alkalmával változott a
kód, így a vírusmintákon alapuló keresés megnehezült
1992
első komolyabb áokat okozó vírus, Michelangelo, rendszerfájlok,
boot rekordok, FAT (MS-DOS) sérülése, a lemez használhatatlanná
tétele
az első „vírus kit” megjelenése, Dark Avenger Mutation Engine (MtE),
amelyet hamarosan követ a többi (VCS, GenVir, PS-MPC, NGVCK,
stb.), megkönnyítve az új vírusok írását
10. íܲöéԱ
1994
az első .obj fájlokat fertőző vírus, Shifter
hírhedt rejtőzködő, polimorf fájl- és boot vírus, Onehalf, amely
rejtjelezte a merevlemez tartalmát
1995
első makró-vírus, Concept
1996
első Windows 95 vírus, Boza
első OS/2 .exe fájlokat fertőző vírus, AEP
első Excel vírus, Laroux
11. íܲöéԱ
1997
az első Linux vírus megjelenése, Bliss
IRC férgek megjelenése
FTP motorral rendelkező vírus megjelenése, Homer
1998
az első Access vírus, AccessiV
az első flash vírus, CIH, az alaplapi „flash ROM” törlése
az első .vbs vírusok megjelenése
az első PowerPoint vírus megjelenése, Attach
12. íܲöéԱ
1999
első Outlook levelezőt támadó vírus, Happy99
első önmagát frissítő vírus, Babylonia
hírhedt makró-vírus és féreg egyben, Melissa
első féreg, amely nem csatolt állományként terjedt a levelekben,
hanem elegendő volt elolvasni azokat, Bubbleboy, KakWorm,
biztonsági rést használt ki
2000
hírhedt .vbs vírus, LoveLetter
15. íܲöéԱ
Vírusok minden platformon vannak, sokféle alkalmazáshoz.
Néhány érdekesebb példa:
• Linux: Simile
• Apple Macintosh: AplS/Simpson
• WinCE: Duts
• SAP: ABAP/Rivpas
• Lotus: LWP/Spenty
16. Vírusok és férgek csoportosítása
Vírusok csoportosítása fertőzési módok szerint:
• Boot vírusok
• Fájl vírusok
• Memória rezidens vírusok
Férgek csoportosítására még nincs kiforrott szempontrendszer.
Trójai programok csoportosítására még nincs kiforrott szempontrendszer.
17. Vírusok bemutatása
Boot vírusok:
az MBR, vagy a boot-szektor fertőződik meg
MBR:
„boot strap” kód átírása (megmondja, hogy mit töltsön be)
MBR tartalmának változtatása, törlése
partíciós tábla módosítása
Boot-szektor:
merevlemez boot szektorának felülírása
szektor megjelölése „bad” címkével, s a vírus törzsének tárolása
18. Vírusok bemutatása
Fájl vírusok:
felülíró vírusok: a fájl valamely részét felülírják, ezzel elronthatják
annak működését is
hozzáfűződő vírusok: a fájl elejéhez vagy végéhez csatolják magukat,
átirányítják magukra végrehajtást, majd miután elvégezték
műveleteiket, végrehajtják az eredeti programot
beágyazódó („cavity”) vírusok: nem növelik a fájl méretét, a fájl üres
részeibe írja be magát feldarabolva a vírus (pl. „hexa 00” helyekre).
tömörítő vírusok: az eredeti fájl tartalmát vagy önmagukat tömörítik, s
a végrehajtáskor végzik el a kicsomagolást
19. Vírusok bemutatása
EPO („Entry Point Obscuring”) vírusok: nem változtatják meg a
megfertőzött program belépési pontját, csak a kódot valahol a
program törzsén belül, s így kerül sor a vírus véletlenszerű indítására,
futtatására
Egy lehetséges jövőbeli technika: kódépítés, ahol a vírus képes
vizsgálni a megfertőzött fájl utasításait („assembly”), s ezeket az
utasításokat felhasználja saját maga felépítésére (pl. saját
paramétereivel futtatja az adott kódot).
20. Vírusok bemutatása
Memória rezidens vírusok:
memóriába kerül a vírus elindítás után, figyelheti az operációs
rendszer működését („hook”) elvégezve a fertőzést, adatgyűjtést: fájl-,
memóriaműveletek, hálózati forgalom
lopakodó jelleget ölthet (task manager, regedt32 nem jelzi ki).
„mutex” (egy, védett példány futtatása) használata
vírus betöltése (pl. „dll injection”, kernel módban „rootkit”)
hálózaton keresztül betöltheti magát a sérülékeny programba, amely
kapcsolódott a hálózathoz („exploit”)
21. Vírusok önvédelmi stratégiái
tunneling: a megszakítások listájának elejére való kerülés a cél, így
megelőzheti más programok működését (pl. „keylogger”)
páncélozott vírusok: figyelés és heurisztikus keresés elleni védekezés
(pl. lopakodás)
• kódvisszafejtés elleni technikák
• kód összezavarása
• „anti-debugging”
• ellenőrzőösszeg számítása a töréspontok beszúrása ellen
• „stack” ellenőrzése a futás során (pl. „debugger” nem
férhet hozzá a „stack” értékeihez)
• különböző megszakítási pontok használata a „debugger”
futásának összezavarására
22. Vírusok önvédelmi stratégiái
• „debugger” futásának észlelése, memóriafigyelés
• fájlformátumok, belépési pontok elrejtése a fájl
struktúrájának manipulációja révén
• „anti-heurisztika”, „anti-emuláció” (kód működésének
vizsgálata heurisztika alapján elleni védelem)
• vírus kódjának titkosítása (tömörítés, rejtjelezés)
• oligomorf vírusok (változó dekódoló használata)
• polimorf vírusok (aá több millió különböző formát is
felvehet a dekódoló)
• metamorf vírusok (nincs állandó kód, a vírus képes
újrafordítani magát, s teljesen új változatokat létrehozni)
retro-vírusok (a különböző védelmi megoldásokat kiiktatják, fájlokat
törölnek)
23. Férgek bemutatása
Egy átlagos féreg 4 modulból épül fel:
• célpont kiválasztása
• e-mail cím begyűjtés (levelező programból, fájlokból, NNTP, Web,
ICQ, MSN, SMTP folyamatos figyelése)
• megosztott hálózati erőforrások támadása (jelszavak törése,
lehallgatása révén rendszergazdai jogosultsággal)
• hálózati címek felderítése, „fingering” (előre meghatározott
hálózati osztályok alapján, véletlenszerű IP-címek révén)
24. Férgek bemutatása
• terjedés
• már nyitott „hátsó-ajtóval” rendelkező rendszerek támadása
• P2P megosztott könyvtárain keresztül
• „instant messaging”
• e-mail, „attachment”, saját SMTP-motor
• NNTP (Network News Transfer Protocol)
• „kód injekció” hálózaton keresztül (jellegzetesen puffer
túlcsordulási támadások, de lehetnek „script” alapúak is)
25. Férgek bemutatása
• „payload”
• trójai, „rootkit” telepítése („felhasználó” módú „rootkit”, amely
elrejti a trójai futását (pl. cmd, ps), kernel módú „rootkit”, amely
minden információhoz hozzáférhet)
• botnet létrehozása (pl. DDoS támadáshoz)
• „spam”
• távoli menedzsment és frissítés
• a fertőzött rendszereken frissítheti a férget
• új modulokat adhat hozzá, a régieket lecserélheti
• vezérelheti a megfertőzött rendszereket, további rendszereket
támadhat
26. Férgek bemutatása
Koncepció féreg a gyors terjedés bemutatására: Warhol
• aá 15 perc - 1 óra alatt megfertőzheti az interneten található
összes sérülékeny számítógépet
• véletlenszerű keresés helyett találati lista összeállítása a
sérülékeny számítógépekről („finger”), amelyeket az első
hullámban támad meg
• a továbbiakban „permutációs keresés” révén, redundancia nélkül
terjed (pl. IP-címtartomány felosztása, előző találati lista
felhasználása)
• alhálózatban is tudja folytatni a keresést (pl. proxy mögött).
27. Férgek bemutatása
A következő szimulációt végezték el a következőkből kiindulva
• 10^6 sérülékeny gép esetén, 10 ezer fertőzött az első hullámban, 1
perc kell a találati lista feldolgozásához, másodpercenként 100
keresés lehetséges, és 1 másodperc kell egy gép megfertőzéséhez.
• az összes gép megfertőzéséhez 8 perc kellett, míg a 99%-os
fertőzöttséghez 6 perc 30 mp!
• 10 keresés/mp esetén 55 perc, míg 250.000-re csökkentve a gépek
számát 20 perc kellett 99%-os fertőzöttséghez
(forrás: http://www.cs.berkeley.edu/~nweaver/warhol.html )
28. Férgek bemutatása
Mire is használhatók a férgek?
• „spam” (pl. pénzszerzési lehetőség)
• adatgyűjtés, „phising” (pl. netbanki hozzáférés adatai)
• adatrombolás (pl. áokozás piaci versenytársnak)
• DDoS támadás (pl. áokozás piaci versenytársnak)
29. Mobil férgek bemutatása
Új platform: mobiltelefon, PDA, „smartphone”
• Az első koncepció vírus megjelenése: 2004 - Cabir.A
• … amelyet több (legalább 30), hasonló, már áokozásra is képes
követett:
Skulls, Fontal, Locknut, CommWarrior, Drever, Doomboot,
MetalGear, MGDropper, Lasco, Mabir
• terjedési módjuk: MMS, Bluetooth
• elsődlegesen a Symbian operációs rendszerrel rendelkező
telefonokat támadják
30. Mobil férgek bemutatása
A férgek terjedése elsősorban a felhasználók megtévesztésén alapszik.
• Minden esetben, ha telepíteni kell a telefonra valamit, akkor az kéri a
felhasználó engedélyezését.
• Ha ismerőstől kap a felhasználó valamit, vagy játékprogramot kell
telepíteni, meg kell bízni a forrásban.
• A telefonok esetében még nem alakult ki az a tudatosság, mint az e-mailek
esetében.
• Amint a vírusírók képesek lesznek olyan programokat készíteni,
amelyek felhasználói beavatkozás nélkül is települnek, várható
nagyobb méretű járvány...
• Az elemzők 2007. végére becsülik egy nagy méretű járvány létrejöttét,
melynek két előfeltétele a „smartphone”-ok 30% elterjedtsége és
mindennapossá váljon a telefonok közötti futtatható fájlok cseréje.
• Kaspersky, F-secure rendelkezik védelmi megoldással mobilra.
31. Trójai programok bemutatása
Támadás...
• „hátsó ajtót” nyitó programok, amelyek a felhasználót megtévesztve
települnek fel
• vírusok, férgek gyakran töltenek le trójaiakat a megfertőzött
számítógépekre
Védekezés...
• hálózatfigyelő alkalmazások (pl. portok nyitását észleli)
• futó „process”-ek listája (pl. Task Manager, pslist, Linux: ps)
32. Trójai programok bemutatása
ICMP csomagok használatának (az „echo” („ping”) csomagokon kívül
létezik más típus is) előnyei:
• az ICMP jellegéből adódóan nincsenek portok, egy ICMP
csomagokat használó „hátsó ajtó” nem jelenik meg a figyelő
programokban (Fprot, TCPView, lsof)
• sok rendszerben bizonyos ICMP csomagokat átengednek
rendszer-karbantartási célokból
• az üzenetet hozzá lehet csatolni az ICMP csomag végéhez, s így
kommunikálni a „hátsó ajtóval” (Loki, 007shell, ICMP tunnel)
33. Trójai programok bemutatása
„non-promiscuous” módú programok:
• figyeli a hálózati forgalmat („sniffing”), ha megfelelő portot és
üzenettartalmat talál (előre meghatározott tartalmú csomag), akkor
indítja a programot (kinyitja a „hátsó ajtót”)
• nyitott „hátsó ajtónál” már érzékelhető a működés (pl. netstat), de
a műveletek elvégzése után aá be is lehet zárni a portot (pl.
Cd00r)
„promiscuous” módú programok:
• figyeli az egyik gépről egy másik alhálózati gép forgalmát (pl. a
„hub” elemek „broadcast” jellege miatt), a csomagokat tudja
módosítani („spoofing”), így úgy tűnhet, mintha másik gépen lenne
a „hátsó ajtó”
34. Vírusok és férgek elleni védekezés
Vírusok és férgek elleni védekezés lehetőségei:
• vírusirtó, kémszoftver-irtó (figyelve a naprakész adatbázisra)
(pl. Grisoft AVG, Lavasoft Ad-Aware)
• tűzfal („exploit”-okon alapuló férgek ellen nyújthat védelmet)
(pl. ZoneAlarm, Kerio, BlackIce)
• számítógépen használt alkalmazások frissítéseinek, biztonsági
javításainak figyelése, telepítése
• támadási minták észlelése, vizsgálata, szükség esetén ellenintézkedés
megtétele (Intrusion Prevention System – IPS) (pl. Snort Inline)
• felhasználók oktatása (szabályok, szabályzatok kidolgozása)
(pl. levél csatolt állománya fertőzött lehet, honlapról letöltött indítható
állomány fertőzött lehet)
• sértetlenséget ellenőrző alkalmazások (Intrusion Detection System –
IDS) (pl. Snort)
35. Vírusok és férgek elleni védekezés
• viselkedés ellenőrzése, működés megakadályozása (pl. karantén)
• puffer túlcsordulást megakadályozó alkalmazások (pl. StackGuard
compiler)
• „honeypot”
• „rootkit” észlelő programok (adott rendszeren: rootkit revealer, VICE,
chkrootkit, Ghostbuster, ProcessGuard, „tiszta rendszerről”, kívülről:
Win PE, Bart’s boot cd, ERD Commander, portok ellenőrzése saját
gépen (netstat) és külső gépről (nmap))
36. 2005. év érdekességei: célzott támadások
Informatikai hadviselés, célzott támadások
• amerikai kormányzati intézmények ellen indított támadás
(http://www.us-cert.gov/cas/techalerts/TA05-189A.html)
• Nagy-Britanniát, és más országokat ért hasonló támadások
(http://www.securityfocus.com/news/11222)
• Titan Rain incidens (kínai adatlopók megfigyelése)
(http://www.time.com/time/magazine/printout/0,8816,1098961,00.html)
• kémkedés Izraelben (versenytársak figyelése, promóciós CD-n trójai)
(http://www.viruslist.com/en/news?id=164628501)
A legtöbb esetben célzott támadásokhoz nyílt forráskódú trójai
programokat változtatnak meg, amelyek csak kevés felhasználóhoz
jutnak el, így az ellenőrző alkalmazások nem ismerik fel és nem is
kerülnek be az adatbázisukba később sem.
37. 2005. év érdekességei: EICAR 2005
Koncepció vírus az ideális páncélozott jelleg bemutatására: Bradley
• Unix és Windows operációs rendszereken is működött
• rejtjelezett kód: erősebb kriptográfiai algoritmus, megosztott titok
a támadónál (a korábbi hasonló férgek legnagyobb hibája a titkos
kulcs kinyerhetősége volt, ami a kódvizsgálathoz kellett), változó
titkos kulcs (pl. DNS cím, rendszeróra), részenkénti dekódolás
miatt mindig csak egy utasítás látható nyílt formában a
memóriában (nem lehet vizsgálni), az adott rész dekódolásához
szükséges titkos kulcs mindig az előző dekódolt részből nyerhető
ki
• a „polimorf” vírus futás után törli önmagát (nincs kód, amit lehetne
vizsgálni)
38. 2005. év érdekességei: vírusos autók?
(forrás: www.automotive.com ) (forrás: www.viruslist.com )
Lexus LS430
Lexus LX470
Toyota Land
Crusier
Kiderült, hogy „hoax”, de azért jó tudni, hogy...
„[...] Lexus vehicles and a Nokia 6310i phone to seamlessly integrate the
phone into their Lexus audio/navigation system for the added
convenience and security of wireless connectivity. The Lexus
Integrated Phone System is available for buyers of new 2003 Lexus
SC 430, LX 470, GS 300, GS 430 and LS 430 models immediately.”
(forrás: press.nokia.com )
„6310i: Wireless Bluetooth connectivity” (forrás: www.nokia.com )
„Cabir [...] will send a copy of itself to the first Bluetooth® wireless
technology device it finds. [...] Cabir can only infect Symbian OS-based
devices that use the Nokia Series 60 User Interface platform.”
(forrás: www.symbian.com )
Nokia 6310i
39. 2005. év érdekességei: Zotob, Bozori, IRCbot
2005. augusztus 9.
MS05-039 javítás megjelenése
2005. augusztus 10.
houseofdabus kódja („exploit”) nyilvános
2005. augusztus 14.
a Mytob (MyDoom és RBot utódja) férgen alapuló Zotob használja az
MS05-039 (PnP) sérülékenységhez kapcsolódó „exploit” kódot
2005. augusztus 16.
RBot használja az MS05-039 (PnP) és az MS04-011 (LSASS)
sérülékenységhez kapcsolódó „exploit” kódot is
40. 2005. év érdekességei: Zotob, Bozori, IRCbot
A Plug and Play biztonsági rése programkód távoli futtatását és
jogosultság illetéktelen megszerzését teheti lehetővé (899588)
(2005. augusztus 9.)
houseofdabus MS05–039 sérülékenységet kihasználó kódja (exploit részlet)
(forrás: www.frsirt.com )
41. 2005. év érdekességei: Zotob, Bozori, IRCbot
Az IRCBot és Bozori, illetve a Zotob és
RBot írói között kitört a háború.
A jelenség hasonló a Netsky és Bagle
közötti rivalizáláshoz.
A sérülékenység javítása és az „exploit”
kódon alapuló férgek megjelenése
között eltelt idő lerövidült.
Blaster: 32 nap - MS03-026 (RPC)
Sasser: 18 nap - MS04-011 (LSASS)
Zotob: 5 nap - MS05-039 (PnP)
(forrás: www.f-secure.com )
42. Víruslabor a BME Informatikai Központban
Vírusokhoz kapcsolódó munkák a BME IK-ban
• vírusirtó alkalmazások Common Criteria és MIBÉTS alapján történő
bevizsgálása, módszertan kidolgozása (BME IK – IHM együttműködés)
• kapcsolattartás a CERT Hungary (Puskás Tivadar Közalapítvány)
szakembereivel
• vírusok viselkedésének vizsgálata
• aktuális trendek figyelemmel követése
43. Vírusok és férgek vizsgálat
Viselkedésvizsgálat egy virtuális gépen (ne a sajátunkat fertőzzük meg)
• statikus vizsgálat
• szerezzünk információkat magáról a fájlról: strings, bintext
• töltsük be egy „disassembler”, „debugger” alkalmazásba
(OllyDbg, Ida Pro, w32dsm), nézzük meg milyen további
információkat találunk (függvényhívások)!
• dinamikus vizsgálat
• indítsuk el a programot, figyeljük a fájl- és lemezműveleteket
(filemon)
• figyeljük a „registry” változásait (regmon, regshot, hijackthis)
• figyeljük a hálózati forgalmat (netstat, ethereal)
• figyeljük a futó „processzeket”, memóriát (process explorer,
proclog)
• „rootkit” elemzése (rootkit revealer)
• sértetlenség ellenőrzése (filecheckmd5)
44. Vírusok és férgek vizsgálat
kód vizsgálata: a Bagle módosítja a „registry” értékeit is
45. Vírusok és férgek vizsgálat
kód vizsgálata: a Bagle létrehozza a csatolt állományt tartalmazó
levelet
46. Vírusok és férgek vizsgálat
hálózati forgalom figyelése: a Bagle futás közben DNS lekérdezéseket
küld
47. Vírusok és férgek vizsgálat
fájlműveletek figyelése: a Bagle futás közben létrehozza a saját
példányait a rendszerkönyvtárban
48. Vírusok és férgek vizsgálat
„registry” figyelése: a Bagle futás közben a „registry” értékeit is
módosítja
49. Vírusok és férgek vizsgálat
hálózati kapcsolatok figyelése: a Bagle futás közben „hátsó ajtókat”
nyit és megpróbál csatlakozni más gépekhez
53. Adatlopás, pénzszerzés
Mit érdemes megnézni? Bizalmas adatokat tartalmazó leveleket érdemes
letölteni, a „registry” értékeit megnézni, jelszavakat összegyűjteni...
Bizalmas dokumentumok (.doc, .pdf)
Outlook: .pst állományok
• C:Documents and SettingsaronLocal SettingsApplication DataIdentities{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}MicrosoftOutlook Express
Outlook Express: .dbx állományok
• C:Documents and SettingsaronLocal SettingsApplication DataMicrosoftOutlook
Hálózati jelszavak kinyerése
• a www.nirsoft.net termékei (pl. Mail PassView)
Trójai telepítése, „hátsó ajtó” nyitása
• kapcsolat elrejtése (csak bizonyos csomagok esetén nyílik ki a port)
54. Irodalomjegyzék
• Peter Szor: The Art of Computer Virus Research and Defense
• Ed Skoudis, Lenny Zeltster: Malware – Fighting Malicious Code
• Greg Hoglund, Gary McGraw: Exploiting Software
• Szappanos Gábor: Kirándulás a számítástechnika sötét oldalára
• http://www.sans.org
• http://www.insecure.org
• http://vx.netlux.org
• http://www.sysinternals.com
• http://www.caida.org
• http://www.f-secure.com/weblog/
• http://www.packetstormsecurity.com
• www.eicar.org
55. Köszönöm a figyelmet!
Adamkó Péter (BME IK)
adamko@ik.bme.hu
Szabó Áron (BME IK)
aron@ik.bme.hu