ˇ ´ UCEN ´I TECHNICKE ´ V BRNE ˇ VYSOKE BRNO UNIVERSITY OF TECHNOLOGY
ˇ ´ICH TECHNOLOGI´I FAKULTA INFORMACN ´ ´ U ˚ USTAV INTELIGENTN´ICH SYSTEM FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS
KRYPTOVIROLOGIE
´ DIPLOMOVA´ PRACE MASTER’S THESIS
´ AUTOR PRACE AUTHOR
BRNO 2008
Bc. PAVEL KUB´IK
ˇ ´I TECHNICKE ´ V BRNE ˇ VYSOKE´ UCEN BRNO UNIVERSITY OF TECHNOLOGY
ˇ ´ICH TECHNOLOGI´I FAKULTA INFORMACN ´ ´ U ˚ USTAV INTELIGENTN´ICH SYSTEM FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS
KRYPTOVIROLOGIE CRYPTOVIROLOGY
´ DIPLOMOVA´ PRACE MASTER’S THESIS
´ AUTOR PRACE
Bc. PAVEL KUB´IK
AUTHOR
´ VEDOUC´I PRACE SUPERVISOR
BRNO 2008
Ing. PETER PECHO
Abstrakt Tato diplomov´ a pr´ ace se zab´ yv´ a studiem relativnˇe nov´e oblasti poˇc´ıtaˇcov´e bezpeˇcnosti, kter´a se specializuje na propojen´ı kryptografie s poˇc´ıtaˇcov´ ymi viry – Kryptovirologie. Jsou zde analyzov´ any techniky spojen´ı poˇc´ıtaˇcov´ ych vir˚ u s modern´ımi kryptografick´ ymi algoritmy, zp˚ usoby ˇs´ıˇren´ı virov´e n´ akazy poˇc´ıtaˇcov´ ymi s´ıtˇemi a tak´e moˇznosti souˇcasn´ ych vir˚ u a podobn´ ych hrozeb. V textu je diskutov´ana nejen problematika kryptografie a klasick´ ych vir˚ u, ale tak´e metody pouˇz´ıvan´e pˇri designu kryptovir˚ u, vˇcetnˇe technik, na nichˇz je typick´ y kryptovir´ aln´ı u ´tok zaloˇzen. Jako d˚ ukaz proveditelnosti a re´alnosti zde popisovan´ ych hrozeb vznikl demonstraˇcn´ı program, kter´ y byl implementov´an s ohledem na splnˇen´ı z´akladn´ıch poˇzadavk˚ u kladen´ ych na kryptovirus.
Kl´ıˇ cov´ a slova virus, ˇsifra, kryptografie, algoritmus, kryptografick´ y kl´ıˇc, bezpeˇcnost, poˇc´ıtaˇcov´a s´ıt’
Abstract This thesis is focused on a relatively new branch of computer security called Cryptovirology. It uses cryptography and its principles in conjunction with designing and writing malicious codes (e.g. computer viruses, trojan horses, worms). Techniques such as viral propagation through computer networks, capabilities of current viruses and similar threats are described. Beside cryptography and computer viruses, design of the cryptovirus and methods of a cryptoviral extortion attack along with their related potential are also analyzed below in this paper. As a proof of the concept in the given area of cryptovirology, a demonstrational computer program was written. The program was implemented with the respect to the satisfaction of the essentials set to the cryptovirus.
Keywords virus, ciphertext, cryptography, algorithm, cryptographic key, information security, computer network
Citace Pavel Kub´ık: Kryptovirologie, diplomov´a pr´ace, Brno, FIT VUT v Brnˇe, 2008
Kryptovirologie Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem tuto diplomovou pr´aci vypracoval samostatnˇe pod veden´ım Ing. Petera Pecha. Uvedl jsem vˇsechny liter´ arn´ı prameny a publikace, ze kter´ ych jsem ˇcerpal. ....................... Pavel Kub´ık 16. kvˇetna 2008
Podˇ ekov´ an´ı Dˇekuji Ing. Peteru Pechovi za odborn´e veden´ı, cenn´e rady a za ochotu a vstˇr´ıcnost pˇri poskytov´ an´ı konzultac´ı v pr˚ ubˇehu ˇreˇsen´ı a zpracov´an´ı t´eto diplomov´e pr´ace. Dˇekuji tak´e sv´ ym rodiˇc˚ um za jejich nekoneˇcnou podporu bˇehem studia.
c Pavel Kub´ık, 2008.
Tato pr´ ace vznikla jako ˇskoln´ı d´ılo na Vysok´em uˇcen´ı technick´em v Brnˇe, Fakultˇe informaˇcn´ıch technologi´ı. Pr´ ace je chr´ anˇena autorsk´ym z´ akonem a jej´ı uˇzit´ı bez udˇelen´ı opr´ avnˇen´ı autorem je nez´ akonn´e, s v´yjimkou z´ akonem definovan´ych pˇr´ıpad˚ u.
Obsah ´ 1 Uvod 1.1 C´ıle pr´ ace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Struktura a ˇclenˇen´ı textu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Kryptografie 2.1 Zaveden´ı problematiky . . . . . . . 2.2 Historie vs. souˇcasnost . . . . . . . 2.3 Rozdˇelen´ı . . . . . . . . . . . . . . 2.3.1 Symetrick´ a kryptografie . . 2.3.2 Asymetrick´ a kryptografie . 2.3.3 Hybridn´ı kryptografie . . . 2.4 Digit´ aln´ı podpis . . . . . . . . . . . 2.5 Reˇzimy blokov´ ych ˇsifer . . . . . . . 2.5.1 ECB . . . . . . . . . . . . . 2.5.2 CBC . . . . . . . . . . . . . 2.5.3 CFB . . . . . . . . . . . . . 2.5.4 OFB . . . . . . . . . . . . . 2.6 Podp˚ urn´e n´ astroje . . . . . . . . . 2.6.1 Gener´ atory n´ ahodn´ ych ˇc´ısel 2.6.2 Hashovac´ı funkce . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
3 Malware 3.1 Co je a nen´ı malware . . . . . . . . . . . ˇ 3.2 Zivotn´ ı cyklus malwaru . . . . . . . . . 3.3 Kategorie . . . . . . . . . . . . . . . . . 3.3.1 Virus . . . . . . . . . . . . . . . ˇ 3.3.2 Cerv . . . . . . . . . . . . . . . . 3.3.3 Trojan . . . . . . . . . . . . . . . 3.3.4 Rootkit . . . . . . . . . . . . . . 3.3.5 Spam . . . . . . . . . . . . . . . 3.3.6 Botnet . . . . . . . . . . . . . . . 3.3.7 Podvodn´e techniky . . . . . . . . 3.4 Funkce viru . . . . . . . . . . . . . . . . 3.5 Skr´ yv´ an´ı a identifikace . . . . . . . . . . 3.5.1 Polymorfismus a metamorfismus 3.6 Detekce . . . . . . . . . . . . . . . . . . 3.6.1 Heuristika . . . . . . . . . . . . . 3.7 Mechanismy a modely ˇs´ıˇren´ı . . . . . . . 1
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
3 4 4
. . . . . . . . . . . . . . .
6 6 7 8 9 9 11 11 12 12 12 13 13 14 14 15
. . . . . . . . . . . . . . . .
17 17 18 18 18 19 19 20 20 21 21 21 22 23 24 25 26
3.8
3.7.1 F´ aze virov´e n´ akazy . . . . . . . . . . . ˇ 3.7.2 S´ıˇren´ı . . . . . . . . . . . . . . . . . . Anal´ yza nebezpeˇcnosti malwaru . . . . . . . . 3.8.1 Top 10 – Nejdestruktivnˇejˇs´ı viry vˇsech
4 Kryptovirologie 4.1 Viry a kryptografie 4.2 Kryptovirus . . . . 4.2.1 Koncept . . 4.3 Shrnut´ı . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
5 Implementace 5.1 Implementaˇcn´ı prostˇredky . . . . . . 5.2 CryptoAPI . . . . . . . . . . . . . . 5.2.1 CSP . . . . . . . . . . . . . . 5.2.2 Objekt key container . . . . 5.3 Pouˇzit´e CryptoAPI funkce . . . . . . 5.4 N´ avrh, design a funkˇcnost programu 5.4.1 F´ aze 1 – spuˇstˇen´ı . . . . . . . 5.4.2 F´ aze 2 – payload . . . . . . . 5.4.3 F´ aze 3 – obnova dat . . . . . 5.4.4 Rekapitulace pr˚ ubˇehu u ´toku . 5.5 Efektivnost . . . . . . . . . . . . . . 5.6 Maz´ an´ı soubor˚ u. . . . . . . . . . . . 5.7 Zhodnocen´ı v´ ysledk˚ u . . . . . . . . . 6 Bezpeˇ cnost 6.1 Anonymita v s´ıti . . . . . . . . . . 6.1.1 Mix s´ıtˇe . . . . . . . . . . . 6.1.2 e-cash . . . . . . . . . . . . 6.2 Chov´ an´ı uˇzivatel˚ u. . . . . . . . . . 6.2.1 Soci´ aln´ı inˇzen´ yrstv´ı . . . . . 6.3 Zneuˇzit´ı komunikaˇcn´ıch protokol˚ u. 6.3.1 Protokol SMTP . . . . . . . 6.3.2 P2P s´ıtˇe . . . . . . . . . . . 6.4 Bezpeˇcnostn´ı protiopatˇren´ı . . . . 6.4.1 Klasick´ a protiopatˇren´ı . . . 6.4.2 Kryptovir´ aln´ı protiopatˇren´ı
. . . . . . . . . . .
. . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . dob
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
27 27 29 30
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
32 32 32 32 34
. . . . . . . . . . . . .
35 35 36 36 37 37 38 38 38 39 39 40 41 42
. . . . . . . . . . .
43 43 43 44 45 45 46 46 48 48 48 48
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
7 Z´ avˇ er
50
Literatura
51
A Obsah pˇ riloˇ zen´ eho CD
54
2
Kapitola 1
´ Uvod Bezpeˇcnost informaˇcn´ıch technologi´ı je v souˇcasnosti velmi skloˇ novan´ ym pojmem. Na rozvoji bezpeˇcnosti m´ a z´ asadn´ı vliv v´ yvoj Internetu. Ten dnes mimojin´e slouˇz´ı jako skladiˇstˇe informac´ı, z´ abavn´ı centrum a celosvˇetov´ y komunikaˇcn´ı kan´al, a v mnoha pˇr´ıpadech tak´e jako ide´ aln´ı m´edium k provozov´ an´ı obchodu. Jeho celkov´ y potenci´al lze i dnes jen stˇeˇz´ı odhadnout. Pro vyuˇzit´ı k tolika u ´ˇcel˚ um nebyl Internet dostateˇcnˇe pˇripraven. Nepˇredv´ıdateln´a dynamika rozvoje a n´ ar˚ ustu celosvˇetov´eho vlivu zp˚ usobila jeho uˇzivatel˚ um mnoho probl´em˚ u a pˇrekvapen´ı. Bezpeˇcnostn´ı incidenty s ohromuj´ıc´ım dopadem a souvisej´ıc´ı velk´e finanˇcn´ı ztr´aty poˇskozen´ ych firem zp˚ usobily, ˇze informaˇcn´ı bezpeˇcnost se za posledn´ıch deset let dostala do popˇred´ı z´ ajmu. Statistiky firem o kaˇzdoroˇcn´ım navyˇsov´an´ı v´ ydaj˚ u na bezpeˇcnost jen dokl´ adaj´ı rostouc´ı v´ yznam bezpeˇcnosti, jako oboru informaˇcn´ıch technologi´ı. Mezi obory spadaj´ıc´ı do bezpeˇcnosti bezesporu patˇr´ı tak´e kryptografie. Ta je dnes souˇc´ast´ı mnoha aplikac´ı informaˇcn´ıch technologi´ı, aniˇz by si to bˇeˇzn´ı uˇzivatel´e v˚ ubec uvˇedomovali. Pˇr´ıtomnost kryptografie v modern´ıch operaˇcn´ıch syst´emech, existence mnoha extern´ıch knihoven kryptografick´ ych funkc´ı nebo implementace takov´ ychto algoritm˚ u do zaˇr´ızen´ı kaˇzdodenn´ı potˇreby s sebou pˇrin´aˇs´ı moˇznosti, o kter´ ych uˇzivatel´e pˇred dvˇema desetilet´ımi nemˇeli ani pˇredstavu. Pˇr´ıkladem uved’me nˇekolik moˇznost´ı, kter´e, v´ıce ˇci m´enˇe, vyuˇz´ıv´a kaˇzd´ y z n´as: bezpeˇcn´ a komunikace mezi poˇc´ıtaˇci pomoc´ı tunelov´eho spojen´ı s ˇsifrov´an´ım obsahu (SSH), pˇripojov´an´ı z dom´ ac´ıho poˇc´ıtaˇce do ˇskoln´ı ˇci firemn´ı s´ıtˇe (VPN), pos´ıl´an´ı ˇsifrovan´ ych zpr´av elektronickou poˇstou (PGP), zaruˇcen´ y elektronick´ y podpis slouˇz´ıc´ı k podepisov´an´ı elektronick´ ych dokument˚ u, jeˇz nˇekter´ ymi sv´ ymi vlastnostmi dokonce, z pohledu bezpeˇcnosti, pˇredˇc´ı klasick´ y vlastnoruˇcn´ı podpis, ˇsifrov´ an´ı jednotliv´ ych soubor˚ u nebo cel´ ych obsah˚ u pevn´ ych disk˚ u, popˇr. pˇrenosn´ ych USB zaˇr´ızen´ı (TrueCrypt), pouˇz´ıv´an´ı platebn´ıch a kreditn´ıch ˇcipov´ ych karet v bankovnictv´ı i jinde, a koneˇcnˇe tak´e napˇr´ıklad telefonov´an´ı mobiln´ım telefonem v s´ıt´ıch GSM . . . Ve vˇsech uveden´ ych pˇr´ıkladech naˇsla kryptografie sv´e m´ısto. A mnoh´e ze zm´ınˇen´ ych aplikac´ı by dokonce bez kryptografie nemohly z principu fungovat. Nyn´ı se na bezpeˇcnost informaˇcn´ıch technologi´ı pod´ıvejme z jin´e strany. Bezpeˇcnostn´ı incidenty, pod´ılej´ıc´ı se na zv´ yˇsen´em v´ yznamu bezpeˇcnosti v souˇcasnosti, jsou vˇzdy zp˚ usobeny c´ılenou ˇcinnost´ı jist´ ych osob (budeme je v t´eto pr´aci naz´ yvat u ´toˇcn´ıci ). ´ cn´ıky jsou zde myˇsleni nejr˚ Utoˇ uznˇejˇs´ı naruˇsitel´e bezpeˇcnosti, autoˇri vir˚ u nebo podobnˇe nebezpeˇcn´ ych program˚ u, vesmˇes velmi dobˇre poˇc´ıtaˇcovˇe“ vzdˇel´ani, kteˇr´ı svou ˇcinnost´ı sle” duj´ı r˚ uzn´e c´ıle. M˚ uˇze se tak jednat o pokus nezletil´eho ˇskol´aka dok´azat si vypuˇstˇen´ım nov´eho viru svoje program´ atorsk´e schopnosti, ale stejnˇe tak o organizovanou trestnou ˇcinnost za 3
u ´ˇcelem podvodn´eho z´ısk´ an´ı finanˇcn´ı hotovosti od uˇzivatel˚ u elektronick´eho bankovnictv´ı. Sv˚ uj pod´ıl na ˇcetnosti bezpeˇcnostn´ıch incident˚ u m´a jistˇe tak´e konkurenˇcn´ı boj a pr˚ umyslov´ a ˇspion´aˇz. V dobˇe, kdy byl Internet jeˇstˇe jednoduchou poˇc´ıtaˇcovou s´ıt´ı na akademick´e p˚ udˇe, mˇely prvn´ı viry v plnˇen´ı sv´eho posl´ an´ı snadnou cestu k c´ıli. Nikdo zpoˇc´atku nepoˇc´ıtal s moˇznost´ı nˇejak´eho zneuˇz´ıv´ an´ı takov´eho zp˚ usobu propojen´ı pracovn´ıch stanic. Naivita prvn´ıch uˇzivatel˚ u Internetu v ran´em st´ adiu jeho v´ yvoje, nedostatek zkuˇsenost´ı vypl´ yvaj´ıc´ı z neexistence dˇr´ıvˇejˇs´ıch hrozeb – to vˇse zp˚ usobilo ohromn´ y u ´spˇech prvn´ıch vir˚ u, pˇrestoˇze to byly viry jednoduch´e, co se strategie ˇs´ıˇren´ı t´ yˇce, nikterak zvl´aˇstˇe dobˇre navrˇzen´e. V historii souˇcasn´eho Internetu maj´ı poˇc´ıtaˇcov´e viry na svˇedom´ı“ nemal´e finanˇcn´ı ” ztr´aty zp˚ usoben´e naruˇsen´ım norm´aln´ıho fungov´an´ı postiˇzen´ ych spoleˇcnost´ı. Aˇc by se mohlo zd´at, ˇze riziko napaden´ı poˇc´ıtaˇce pˇripojen´eho do s´ıtˇe je dnes pˇri pouˇzit´ı antivirov´ ych program˚ u a firewall˚ u minulost´ı, opak je pravdou. Dokl´ad´a to st´ale rostouc´ı popt´avka po tˇechto produktech na kompletn´ı zabezpeˇcov´an´ı poˇc´ıtaˇcov´ ych syst´em˚ u. Novˇe vznikaj´ı programy spojuj´ıc´ı v´ yhody kryptografie se zp˚ usoby ˇs´ıˇren´ı a ˇcinnostmi klasick´ ych vir˚ u a jin´eho ˇskodliv´eho softwaru. Pˇredstavuj´ı novou generaci hrozeb, se kter´ ymi se mus´ıme nauˇcit vypoˇr´ ad´ avat. B´ yvaj´ı ˇcasto d˚ umyslnˇe navrhov´any tak, aby dok´azaly nepozorovanˇe vyhled´ avat a pozdˇeji zneuˇz´ıt cenn´e a citliv´e informace. Od p˚ uvodn´ıch vir˚ u, znepˇr´ıjemˇ nuj´ıc´ıch sv´ ym obˇetem ˇzivot, se tak postupnˇe dost´av´ame aˇz ke kryptovir˚ um, kter´e mohou napˇr´ıklad po zaˇsifrov´an´ı urˇcit´ ych dat na disku poˇzadovat zaplacen´ı v´ ykupn´eho“ v´ ymˇenou za jejich opˇetovn´e zpˇr´ıstupnˇen´ı. Nam´ısto relativnˇe m´ alo ” nebezpeˇcn´ ych pokus˚ u o pˇrevzet´ı kontroly nad slabˇe zabezpeˇcen´ ymi syst´emy, popˇr. zneuˇzit´ı jejich v´ ypoˇcetn´ıch i jin´ ych zdroj˚ u, ˇcel´ıme ˇcinnosti organizovan´ ych poˇc´ıtaˇcov´ ych zloˇcinc˚ u (expert˚ u), jejichˇz silnou motivac´ı b´ yv´a znaˇcn´ y finanˇcn´ı zisk.
1.1
C´ıle pr´ ace
Tato pr´ ace nahl´ıˇz´ı na problematiku bezpeˇcnosti z perspektivy tv˚ urce poˇc´ıtaˇcov´ ych vir˚ u a zkoum´ a, jak´ y bezpeˇcnostn´ı dopad m˚ uˇze m´ıt propojen´ı know-how u ´toˇcn´ıka a modern´ı kryptografie, a jak´ a bezpeˇcnostn´ı rizika z tohoto spojen´ı plynou pro uˇzivatele. C´ılem pr´ ace bylo studium z´ aklad˚ u modern´ı kryptografie s popisem princip˚ u pouˇz´ıvan´ ych ve spojen´ı s poˇc´ıtaˇcov´ ymi viry, sezn´amen´ı se s mechanismy p˚ usoben´ı vir˚ u a zp˚ usoby ˇs´ıˇren´ı virov´e n´ akazy poˇc´ıtaˇcov´ ymi s´ıtˇemi. V textu pr´ ace je d´ ale obsaˇzen pˇrehled druh˚ u souˇcasn´eho ˇskodliv´eho softwaru, vˇcetnˇe poznatk˚ u ze studia okrajov´ ych oblast´ı kontextovˇe zasahuj´ıc´ıch do z´abˇeru t´ematu. Je zde detailnˇe pˇredstaven a pops´ an princip samotn´eho kryptoviru, jakoˇzto relativnˇe nov´eho druhu viru, vˇcetnˇe nˇekter´ ych zaj´ımav´ ych vlastnost´ı, jimiˇz se od klasick´ ych vir˚ u odliˇsuje. Z´ıskan´e teoretick´e poznatky z cel´e problematiky vedly k naplnˇen´ı praktick´e ˇc´asti pr´ace. Jako d˚ ukaz proveditelnosti a re´ alnosti popisovan´ ych hrozeb vznikl demonstraˇcn´ı poˇc´ıtaˇcov´ y program, kter´ y m´ a vlastnosti kryptoviru. Tento program je d˚ ukazem toho, ˇze lze pomoc´ı dostupn´ ych prostˇredk˚ u bˇeˇznˇe pouˇz´ıvan´ ych operaˇcn´ıch syst´em˚ u zneuˇz´ıt jejich velk´eho potenci´alu k aktivit´ am nam´ıˇren´ ym proti vlastn´ık˚ um a uˇzivatel˚ um tˇechto syst´em˚ u.
1.2
Struktura a ˇ clenˇ en´ı textu
N´asleduj´ıc´ı kapitola 2 je vˇenov´ ana kryptografii. Jsou zde definov´any kl´ıˇcov´e kryptografick´e pojmy, zm´ınˇeny hlavn´ı bezpeˇcnostn´ı funkce, struˇcnˇe pops´ana jej´ı historie a srovn´ an´ı
4
s vyuˇzit´ım kryptografie v souˇcasnosti. N´asleduje rozdˇelen´ı kryptografie a popis nˇekter´ ych kryptografick´ ych n´ astroj˚ u, kter´ ych se v praxi bˇeˇznˇe vyuˇz´ıv´a. V kapitole 3 je vysvˇetlen v´ yznam slova malware. Budeme se zab´ yvat jeho ˇzivotn´ım cyklem a definujeme si jednotliv´e kategorie, do kter´ ych se malware dˇel´ı. D´ale je v t´eto kapitole nast´ınˇen pohled na ˇskodliv´ y software z pohledu antivirov´ ych spoleˇcnost´ı, vˇcetnˇe technik, kter´e do sv´ ych produkt˚ u urˇcen´ ych k vyhled´av´an´ı malwaru implementuj´ı. Druh´ a ˇc´ast kapitoly se bude vˇenovat model˚ um a mechanism˚ um ˇs´ıˇren´ı vir˚ u a anal´ yze nebezpeˇcnosti souˇcasn´ ych i novˇe vznikaj´ıc´ıch vir˚ u. V dalˇs´ı kapitole (4) si pˇredstav´ıme samotn´ y kryptovirus s charakteristick´ ymi vlastnostmi a moˇznostmi, kv˚ uli n´ımˇz je pro tuto pr´aci tolik zaj´ımav´ y. Srovn´an´ım s klasick´ ym virem naprogramovan´ ym ke stejn´emu u ´ˇcelu, tj. kryptovir´aln´ımu u ´toku, uk´aˇzeme pˇrednosti kryptoviru a d˚ uvod pouˇzit´ı pr´ avˇe asymetrick´e kryptografie u tohoto zvl´aˇstn´ıho typu malwaru. Popis pr˚ ubˇehu praktick´e ˇc´ asti, tzn. popis anal´ yzy, n´avrhu, implementace a koneˇcn´e funkˇcnosti demonstraˇcn´ıho programu, je obsaˇzen v kapitole 5. Protoˇze byla cel´a kryptografick´a ˇc´ ast implementace postavena na moˇznostech knihovny Microsoft Cryptography API, bude pouˇzit´ ym funkc´ım vˇenov´ ana cel´a podkapitola. D´ale bude v t´eto kapitole tak´e zhodnocen´ı dosaˇzen´e efektivity pouˇzit´ ych i novˇe implementovan´ ych funkc´ı a jejich vliv na chov´ an´ı programu, zm´ınka o problematice bezpeˇcn´eho maz´an´ı soubor˚ u a z´avˇereˇcn´e zhodnocen´ı cel´e implementaˇcn´ı f´ aze. ˇ Kapitola 6 bude na t´ema t´eto pr´ace nahl´ıˇzet glob´alnˇe z pohledu bezpeˇcnosti. Casto diskutovan´ ym probl´emem je v bezpeˇcnosti pojem anonymita a jeho ch´ap´an´ı. Toho se pˇr´ımo dot´ yk´a oblast naruˇsov´ an´ı bezpeˇcnosti, at’ uˇz skrze zneuˇz´ıv´an´ı slab´ ych m´ıst v pouˇz´ıvan´ ych komunikaˇcn´ıch protokolech nebo jin´ ymi technikami. Na konci kapitoly budou pops´ana jeˇstˇe nˇekter´ a bezpeˇcnostn´ı doporuˇcen´ı, kter´ ymi lze mnoh´ ym incident˚ um ˇc´asteˇcnˇe pˇredch´azet nebo se jich u ´plnˇe vyvarovat. Posledn´ı kapitolou je Z´ avˇer. Zde je celkov´e zhodnocen´ı dosaˇzen´ ych v´ ysledk˚ u, diskuse o dalˇs´ıch moˇznostech, budoucnosti a smˇeru v´ yvoje kryptovirologie. Tato diplomov´ a pr´ ace navazuje na stejnojmenn´ y semestr´aln´ı projekt, kde byly podrobnˇe studov´ any kl´ıˇcov´e oblasti souvisej´ıc´ı s kryptografi´ı a problematikou poˇc´ıtaˇcov´ ych vir˚ u a malwaru obecnˇe. V´ ysledky pr´ace na semestr´aln´ım projektu jsou obsaˇzeny v kapitol´ach 2 a 3. V implementaˇcn´ı ˇc´asti pr´ace jsem se pokusil tak´e ovˇeˇrit re´alnost hrozeb vypl´ yvaj´ıc´ıch z pˇr´ıtomnosti kryptografick´ ych n´astroj˚ u v modern´ıch operaˇcn´ıch syst´emech platformy Microsoft Windows.
5
Kapitola 2
Kryptografie Studium odvˇetv´ı souvisej´ıc´ıch s poˇc´ıtaˇcovou, resp. informaˇcn´ı, bezpeˇcnost´ı vyˇzaduje urˇcitou znalost z´ akladn´ıch pojm˚ u z kryptografie. V t´eto kapitole budou definov´any ˇcasto pouˇz´ıvan´e pojmy a nˇekter´e principy s nimi u ´zce souvisej´ıc´ı. Nˇekter´e poznatky k t´eto kapitole byly ˇcerp´any z publikac´ı [11, 18, 19]. Jelikoˇz m´ a tato diplomov´ a pr´ ace kryptografii ˇc´asteˇcnˇe jiˇz ve sv´em n´azvu, je zˇrejm´e, ˇze zde hraje kryptografie velmi podstatnou u ´lohu.
2.1
Zaveden´ı problematiky
Kryptografie, neboli jinak ˇreˇceno ˇsifrov´an´ı (encryption 2.1), se zab´ yv´a utajov´an´ım obsahu zpr´av pomoc´ı ˇsifrovac´ıho kl´ıˇce do takov´e podoby, kter´a je ˇciteln´a pouze s pomoc´ı urˇcit´e znalosti (tajemstv´ı). Tajemstv´ım je zde myˇsleno vlastnictv´ı kl´ıˇce pro deˇsifrov´an´ı. Deˇsifrov´an´ı je opaˇcn´ y postup k ˇsifrov´ an´ı (decryption 2.2). Je to v podstatˇe pˇrevod zpr´avy zpˇet do p˚ uvodn´ı podoby. Zpr´ avou M (plaintext, message) jsou takov´a data, kter´a jsou norm´alnˇe ˇciteln´a – jsou v nezaˇsifrovan´e podobˇe. Zaˇsifrovanou zpr´avou C (ciphertext) jsou pak data vznikl´a transformac´ı zpr´ avy pomoc´ı ˇsifrovac´ıho kl´ıˇce K (key). Kryptografie slouˇz´ı pˇredevˇs´ım k prevenci a detekci podvodn´eho jedn´ an´ı a jin´ ych podezˇrel´ ych aktivit. C = EK (M )
(2.1)
−1 M = EK (C)
(2.2)
Pomoc´ı kryptografie se snaˇz´ıme zajistit n´asleduj´ıc´ı ˇctyˇri bezpeˇcnostn´ı funkce [11]: 1. d˚ uvˇ ernost 2. integritu dat 3. autentizaci 4. nepopiratelnost
6
D˚ uvˇ ernost Zaruˇcuje, ˇze obsah zpr´ avy bude utajen vˇsem pˇr´ıjemc˚ um, kromˇe takov´ ych, jeˇz jsou opr´avnˇeni takovou zpr´ avu pˇrijmout. Pˇr´ıstup˚ u, jak zajistit bezpeˇcnost, existuje nˇekolik, od fyzick´e ochrany, aˇz po matematick´e algoritmy, jejichˇz aplikac´ı jsou data transformov´ana. Integrita dat Zaruˇcuje, ˇze data nebyla pˇred doruˇcen´ım ˇz´adn´ ym zp˚ usobem modifikov´ana. K zajiˇstˇen´ı t´eto bezpeˇcnostn´ı funkce mus´ıme m´ıt moˇznost nˇejak´ ym zp˚ usobem zjistit, zda bylo s daty manipulov´ ano. Manipulaci zde ch´apeme jako pˇrid´an´ı, smaz´an´ı nebo nahrazen´ı ˇc´asti nebo cel´e informace. Autentizace Funkce autentizace se vztahuje jak na komunikuj´ıc´ı entity, tak i na samotnou pˇren´aˇsenou informaci. Zpr´ ava pˇrijat´ a komunikaˇcn´ım kan´alem by mˇela b´ yt autentizov´ana, stejnˇe tak jako p˚ uvodce zpr´ avy. Nepopiratelnost Nepopiratelnost´ı je zde myˇslena skuteˇcnost, ˇze komunikuj´ıc´ı entita po proveden´ı dan´e akce nem˚ uˇze tuto aktivitu pozdˇeji popˇr´ıt. Definice 2.1.1 Kryptografie je vˇeda zab´ yvaj´ıc´ı se studiem matematick´ ych technik souvisej´ıc´ıch s aspekty informaˇcn´ı bezpeˇcnosti, jako jsou d˚ uvˇernost, autentizace, integrita a nepopiratelnost.
2.2
Historie vs. souˇ casnost
P˚ uvod slova kryptografie je odvozen z ˇreck´eho krypt´ os – skryt´ y a gr´ afo – ps´at. Pouˇzit´ı ˇsifrovac´ıch algoritm˚ u k utajov´ an´ı informac´ı nen´ı m´odn´ı z´aleˇzitost´ı posledn´ıch nˇekolika desetilet´ı. Nejstarˇs´ı d˚ ukazy o pouˇz´ıv´an´ı kryptografie, byt’ jen v omezen´e podobˇe, poch´azej´ı z Egypta a datuj´ı se nˇekdy kolem roku 4 000 pˇr. n. l. Bˇehem nˇekolika posledn´ıch des´ıtek let vˇsak doch´az´ı k mohutn´emu v´ yvoji a pouˇzit´ı kryptografick´ ych algoritm˚ u. V sedmdes´at´ ych letech byl ve Spojen´ ych st´atech americk´ ych uzn´ an algoritmus DES (Data Encryption Standard ) urˇcen´ y k ˇsifrov´an´ı neklasifikovan´ ych informac´ı. DES se pouˇz´ıv´ a dodnes po cel´em svˇetˇe, napˇr. v bankovn´ım sektoru. Nejvˇetˇs´ı tempo nabral v´ yvoj algoritm˚ u v roce 1976. Tehdy Whitfield Diffie a Martin Hellman publikovali sv˚ uj ˇcl´ anek New Directions in Cryptography, kde pˇredstavili zcela revoluˇcn´ı koncept kryptografie veˇrejn´ ym kl´ıˇcem. V roce 1978 Rivest, Shamir a Adleman publikovali prvn´ı pouˇziteln´ y princip pro ˇsifrov´an´ı veˇrejn´ ym kl´ıˇcem a elektronick´e podepisov´ an´ı dokument˚ u, RSA. Pozdˇeji se objevil algoritmus ElGamal, pˇredstaven´ y Taherem Elgamalem v roce 1985. ElGamal je algoritmus zaloˇzen´ y na zcela jin´em matematick´em probl´emu, neˇz je RSA, kter´ y tak´e zaruˇcuje bezpeˇcnost. ElGamal je zaloˇzen´ y na algoritmu dohodnut´ı kl´ıˇce Diffie-Hellman. Kryptografie se st´ ale v´ıce dost´av´a do popˇred´ı z´ajmu, zaˇc´ın´a pronikat i do bˇeˇzn´eho ˇzivota lid´ı. Sv´e uplatnˇen´ı nach´ az´ı kryptografie vˇsude tam, kde je potˇreba pˇren´aˇset d˚ uvˇern´e informace pˇres nezabezpeˇcen´e a ned˚ uvˇeryhodn´e prostˇred´ı – urˇcen´e ke ˇcten´ı pouze opr´avnˇen´ ym
7
subjekt˚ um. Takov´ ym ned˚ uvˇeryhodn´ ym prostˇred´ım Internet bezesporu je. V historick´em kontextu ˇslo v kryptografii typicky vˇzdy v´ıcem´enˇe o vojensk´e, diplomatick´e nebo vl´adn´ı vyuˇzit´ı. Kryptografie zde slouˇz´ı napˇr. k pˇred´av´an´ı strategick´ ych informac´ı, koordinaci, komunikaci mezi spojenci, transportu utajovan´ ych skuteˇcnost´ı . . . Podobnˇe je tomu s uplatnˇen´ım kryptografie v souˇcasnosti. Algoritmy a jejich aplikace zaˇc´ınaj´ı st´ ale v´ıce pronikat do civiln´ıho sektoru a st´avaj´ı se ned´ılnou souˇc´ast´ı ˇzivota lid´ı i nepˇr´ımo pracuj´ıc´ıch s informaˇcn´ımi technologiemi.
2.3
Rozdˇ elen´ı
Nˇekdy se v souvislosti s kryptografi´ı uv´ad´ı pojem kryptoanal´ yza, coˇz je obor zab´ yvaj´ıc´ı se transformac´ı ˇsifrovan´eho textu na otevˇren´ y, ovˇsem bez znalosti deˇsifrovac´ıho kl´ıˇce. Kryptografii jako takovou rozdˇelujeme podle typu ˇsifrovac´ıch algoritm˚ u a zp˚ usobu pouˇzit´ı na kryptografii klasickou (historickou) a modern´ı. V klasick´e kryptografii se pouˇz´ıvaly jednoduch´e ˇsifrovac´ı techniky jako substituˇcn´ı, transpoziˇcn´ı a kombinovan´e ˇsifry. Tyto jsou ale pˇri dneˇsn´ı v´ ypoˇcetn´ı s´ıle stroj˚ u velmi snadno deˇsifrovateln´e. Bylo proto tˇreba hledat modern´ı postupy, jak zajistit odolnost ˇsifer v souˇcasn´ ych podm´ınk´ ach, s v´ yhledem na dobrou pouˇzitelnost do budoucna aˇz na des´ıtky let. Obr´ azek 2.1 ukazuje rozdˇelen´ı jednotliv´ ych ˇsifer podle typu a zp˚ usobu fungov´an´ı.
Obr´azek 2.1: Typy ˇsifer
Modern´ı kryptografie vyuˇz´ıv´ a v algoritmech sofistikovan´ ych matematick´ ych vlastnost´ı funkc´ı, kdy rozluˇstˇen´ı ˇsifrovan´e zpr´avy bez znalosti deˇsifrovac´ıho kl´ıˇce je st´ale natolik v´ ypoˇcetnˇe n´ aroˇcn´e, ˇze mohou b´ yt tyto algoritmy povaˇzov´any za pˇrijatelnˇe bezpeˇcn´e. Podle typu kl´ıˇce se kryptografie d´ale dˇel´ı na symetrickou kryptografii neboli kryptografii tajn´ ym kl´ıˇcem a na asymetrickou kryptografii, kter´a b´ yv´a ˇcasto oznaˇcov´ana jako kryptografie veˇrejn´ ym kl´ıˇcem. Rozdˇelen´ı podle typu kl´ıˇce je v kontextu kryptovirologie velice podstatn´e, proto si symetrickou a asymetrickou kryptografii pˇredstav´ıme do podrobnˇejˇs´ıch detail˚ u.
8
2.3.1
Symetrick´ a kryptografie
V symetrick´e kryptografii existuje pouze jedin´ y kl´ıˇc, kter´ y je z´aroveˇ n jedin´ ym tajemstv´ım navz´ajem komunikuj´ıc´ıch stran. Z´asadn´ı ot´azkou je, jak tento tajn´ y kl´ıˇc bezpeˇcnˇe pˇredat protistranˇe, se kterou chceme nav´azat ˇsifrovanou komunikaci. Probl´em zajiˇstˇen´ı bezpeˇcn´e v´ ymˇeny kl´ıˇce se ˇreˇs´ı pomoc´ı bezpeˇcnostn´ıch protokol˚ u. Jedn´ım takov´ ym algoritmem je DH (Diffie-Hellman). DH je zaloˇzen na probl´emu diskr´etn´ıch logaritm˚ u modulo n. Princip dohody dvou stran (tj. Alice a Bob) na symetrick´em kl´ıˇci relace je zn´azornˇen posloupnost´ı n´asleduj´ıc´ıch nˇekolika krok˚ u: 1. Obˇe strany, Alice i Bob, zvol´ı stejn´e velk´e prvoˇc´ıslo n a ˇc´ıslo g, kter´e nedˇel´ı n. 2. Alice vygeneruje n´ ahodn´e pˇrirozen´e ˇc´ıslo a, Bobovi poˇsle X = g a mod n. 3. Bob vygeneruje n´ ahodn´e pˇrirozen´e ˇc´ıslo b a Alici poˇsle Y = g b mod n. 4. Alice si vypoˇc´ıt´ a K = Y a mod n. 5. Bob pak vypoˇc´ıt´ a K = X b mod n. 6. Protoˇze plat´ı, ˇze g ab = g ba , Alice i Bob se pr´avˇe dohodli na spoleˇcn´em tajemstv´ı – K = g ab mod n. V pˇr´ıpadˇe algoritmu DH jsou tajn´a pouze ˇc´ısla a a b, kaˇzd´e z nich zn´a pouze jedna komunikuj´ıc´ı strana, ostatn´ı hodnoty se pos´ılaj´ı komunikaˇcn´ım kan´alem v otevˇren´e podobˇe. Abychom mohli prohl´ asit nalezen´ı ˇc´ısla a, resp. b, s pouhou znalost´ı n, g a g a mod n, resp. b g mod n za v´ ypoˇcetnˇe nezvl´ adnuteln´e, je nutn´e volit ˇc´ısla dostateˇcnˇe velk´a (prvoˇc´ıslo n by mˇelo m´ıt d´elku nejm´enˇe 300 cifer a ˇc´ısla a a b alespoˇ n 100 cifer). Naproti tomu nemus´ı b´ yt ˇc´ıslo g nijak velk´e, v praxi se jako g pouˇz´ıvaj´ı napˇr. hodnoty 2 nebo 5. V z´ avislosti na konkr´etn´ım pouˇzit´em protokolu m˚ uˇze u ´toˇcn´ık prov´adˇet u ´toky a pokouˇset se zjiˇstˇenou chybu v n´ avrhu protokolu vyuˇz´ıt. Existuje cel´a ˇrada zn´am´ ych u ´tok˚ u na bezpeˇcnostn´ı protokoly, nˇekter´e z nich jsou pops´any v publikac´ıch [13, 20]. Pˇri u ´toku na protokol v´ ymˇeny ˇsifrovac´ıho kl´ıˇce se u ´toˇcn´ık snaˇz´ı tento kl´ıˇc z´ıskat. Pokud uspˇeje, staˇc´ı uˇz jen n´aslednou komunikaci odposlechnout a z´ıskan´ ym kl´ıˇcem deˇsifrovat. ´ Utoky na prob´ıhaj´ıc´ı komunikaci vyuˇz´ıvaj´ıc´ı symetrick´e kryptografie jsou pˇrev´aˇznˇe u ´toky hrubou silou (brute-force attack ). Pˇri tomto typu u ´toku nejde o odchycen´ı kl´ıˇce, ale o snahu prolomit pouˇzit´ y algoritmus. Tento postup je moˇzn´e pouˇz´ıt prakticky vˇzdy, ovˇsem pˇri dodrˇzen´ı z´ asad pro pouˇz´ıv´ an´ı symetrick´e kryptografie a jej´ıch algoritm˚ u je v´ ypoˇcetn´ı a ˇcasov´a n´ aroˇcnost takov´eho u ´toku velmi velk´a. Z bezpeˇcnostn´ıch funkc´ı (uveden´ ych v kapitole 2) zajiˇst’uje symetrick´a kryptografie pouze d˚ uvˇernost. Pˇr´ıklady nˇekolika bˇeˇznˇe pouˇz´ıvan´ ych symetrick´ ych algoritm˚ u: DES, tripleDES, AES, IDEA, RC4, Blowfish.
2.3.2
Asymetrick´ a kryptografie
Asymetrick´ a kryptografie je zaloˇzena na principu dvojice odpov´ıdaj´ıc´ıch si kl´ıˇc˚ u (soukrom´ y kl´ıˇc, veˇrejn´ y kl´ıˇc). Soukrom´ y kl´ıˇc existuje v jedin´e kopii a je uloˇzen u sv´eho majitele – je jeho tajemstv´ım. Naopak, veˇrejn´ y kl´ıˇc je volnˇe pˇr´ıstupn´ y a z´ıskateln´ y pro vˇsechny z´ajemce o komunikaci. Pokud dvˇe strany chtˇej´ı navz´ajem komunikovat, kaˇzd´a si mus´ı nejprve opatˇrit veˇrejn´ y kl´ıˇc protistrany a odes´ılan´e zpr´avy se pak ˇsifruj´ı t´ımto kl´ıˇcem. Z uveden´eho vypl´ yv´ a, ˇze pouze majitel soukrom´eho kl´ıˇce odpov´ıdaj´ıc´ıho veˇrejn´emu kl´ıˇci, kter´ ym byla zpr´ ava 9
zaˇsifrov´ ana, je schopen ji pˇreˇc´ıst. Pouˇzit´ı jin´eho kl´ıˇce nen´ı moˇzn´e, nebot’ znalost veˇrejn´eho kl´ıˇce nelze pouˇz´ıt k odvozen´ı kl´ıˇce soukrom´eho, ani nen´ı moˇzn´e po zaˇsifrov´an´ı veˇrejn´ ym kl´ıˇcem z´ıskat z v´ ysledku p˚ uvodn´ı zpr´avu. Uved’me nˇekolik matematick´ ych postup˚ u pouˇz´ıvan´ ych u asymetrick´ ych algoritm˚ u a z´astupce implementovan´eho algoritmu: faktorizace ˇc´ısel (RSA), diskr´etn´ı logaritmus (DSA, ElGamal), eliptick´e kˇrivky (ECDSA). Algoritmy modern´ı asymetrick´e kryptografie jsou postaveny na principech v´ ypoˇcetn´ı sloˇzitosti a teorie ˇc´ısel. D´elka kl´ıˇce zde b´ yv´a v´ yraznˇe vˇetˇs´ı neˇz v pˇr´ıpadˇe symetrick´ ych algoritm˚ u. Obecnˇe plat´ı, ˇze ˇc´ım delˇs´ı kl´ıˇc, t´ım bezpeˇcnˇejˇs´ı algoritmus. S d´elkou kl´ıˇce modern´ıch asymetrick´ ych algoritm˚ u, napˇr. 1024 nebo 2048 bit˚ u, v´ yrazn´ ym zp˚ usobem nar˚ ust´ a bezpeˇcnost ˇsifrovan´e zpr´ avy, tzn. tak´e pravdˇepodobnost, ˇze nebude prolomena v rozumn´em ˇcase. Na druh´e stranˇe je tˇreba zv´aˇzit n´ar˚ ust ˇcasov´e n´aroˇcnosti u implementace s velmi dlouh´ ymi kl´ıˇci. To sice m˚ uˇze pro nˇekter´e aplikace zp˚ usobit zv´ yˇsen´ı bezpeˇcnosti, ovˇsem na u ´kor pouˇzitelnosti. Realita je takov´ a, ˇze ani pˇri dneˇsn´ı v´ ypoˇcetn´ı s´ıle poˇc´ıtaˇc˚ u nen´ı moˇzn´e pouˇz´ıt asymetrickou kryptografii k ˇsifrov´ an´ı vˇetˇs´ıch objem˚ u dat, jako u kryptografie symetrick´e. Samotn´e vygenerov´ an´ı dvojice asymetrick´ ych kl´ıˇc˚ u rozumn´e d´elky (1024–4096 bit˚ u) je velmi ˇcasovˇe n´aroˇcn´e. Asymetrick´ a kryptografie se vyuˇz´ıv´a pˇredevˇs´ım pro v´ ymˇenu kl´ıˇc˚ u pro symetrickou kryptografii, kter´ ymi se pak vz´ ajemn´ a komunikace ˇsifruje. Kryptografie veˇrejn´ ym kl´ıˇcem zajiˇst’uje bezpeˇcnost pˇri distribuci n´ ahodn´eho kl´ıˇce protistranˇe, symetrick´a kryptografie pak zajist´ı rychlost pˇri ˇsifrov´ an´ı komunikace dohodnut´ ym kl´ıˇcem. Rychlost je d´ana jednoduchost´ı algoritmu a bezpeˇcnost zaruˇcena (v ide´aln´ım pˇr´ıpadˇe) zcela n´ahodnˇe generovan´ ym kl´ıˇcem. Jelikoˇz je d´elka kl´ıˇc˚ u pouˇz´ıvan´ ych u symetrick´ ych algoritm˚ u v´ yraznˇe kratˇs´ı neˇz u asymetrick´ ych, coˇz plyne z u ´ˇcelu jejich pouˇzit´ı, znamen´a to, ˇze b´ yvaj´ı typicky aˇz o nˇekolik ˇr´ad˚ u rychlejˇs´ı neˇz algoritmy asymetrick´e. Nev´ yhodou je nutnost pouˇzit´ı velk´eho poˇctu kl´ıˇc˚ u N (N −1) v pˇr´ıpadˇe komunikace mezi v´ıce u ´ˇcastn´ıky. Pro N u ´ˇcastn´ık˚ u je potˇreba vygenerovat 2 tajn´ ych kl´ıˇc˚ u. D´elka symetrick´eho kl´ıˇce (bit˚ u) 80 112 128 192 256
D´elka kl´ıˇce RSA a Diffie-Hellman (bit˚ u) 1 024 2 048 3 072 7 680 15 360
D´elka kl´ıˇce EC (bit˚ u) 160 224 256 384 521
Tabulka 2.1: Doporuˇcen´e d´elky kl´ıˇc˚ u, NIST V souvislosti s d´elkou kl´ıˇce a v´ ypoˇcetn´ı n´aroˇcnost´ı stoj´ı za zm´ınku skuteˇcnost, ˇze v pˇr´ıpadˇe algoritm˚ u zaloˇzen´ ych na principu eliptick´ ych kˇrivek je d´elka kl´ıˇce pˇri srovnateln´e s´ıle algoritm˚ u v´ yraznˇe menˇs´ı neˇz u algoritm˚ u zaloˇzen´ ych na faktorizaci ˇc´ısel (napˇr. RSA). V tabulce 2.1 jsou uvedeny organizac´ı NIST (National Institute of Standards and Technology) doporuˇcovan´e d´elky kl´ıˇc˚ u pouˇz´ıvan´e v konvenˇcn´ıch ˇsifrovac´ıch algoritmech, jako je DES nebo de facto nov´ y standard AES, spoleˇcnˇe s nutn´ ymi d´elkami kl´ıˇc˚ u pro algoritmy RSA, Diffie-Hellman a eliptick´e kˇrivky tak, aby byla zaruˇcena ekvivalentn´ı bezpeˇcnost [32]. Pˇri pouˇzit´ı asymetrick´e kryptografie k ˇsifrov´an´ı, tj. v poˇrad´ı pouˇzit´ı kl´ıˇc˚ u: veˇrejn´ y kl´ıˇc 10
→ soukrom´ y kl´ıˇc, je opˇet zajiˇstˇena z bezpeˇcnostn´ıch funkc´ı pouze d˚ uvˇernost. V opaˇcn´em poˇrad´ı pouˇzit´ı asymetrick´ ych kl´ıˇc˚ u, tj. soukrom´ y kl´ıˇc → veˇrejn´ y kl´ıˇc, kter´e se pouˇz´ıv´ a k podepisov´ an´ı (viz d´ ale), jsou zajiˇstˇeny bezpeˇcnostn´ı funkce integrita, autentizace a nepopiratelnost.
2.3.3
Hybridn´ı kryptografie
Spojen´ım v´ yhod symetrick´e kryptografie a kryptografie veˇrejn´ ym kl´ıˇcem vznikaj´ı tzv. hybridn´ı kryptosyst´emy. U hybridn´ıch kryptosyst´em˚ u jsou povolen´e kombinace symetrick´ ych a asymetrick´ ych algoritm˚ u pˇredem definov´any. Nen´ı moˇzn´a zcela libovoln´a kombinace. Syst´emy zaloˇzen´e na tomto hybridn´ım pˇr´ıstupu jsou napˇr. SSL, PGP a GPG. Pˇredmˇetem t´eto pr´ ace je studium moˇznost´ı virov´e problematiky ve spojen´ı pr´avˇe s kryptografi´ı. Hybridn´ı kryptosyst´em je podstatou pˇredstaven´eho kryptoviru (kapitola 4).
2.4
Digit´ aln´ı podpis
Digit´aln´ı podpis se nˇekdy v literatuˇre uv´ad´ı jako zaruˇcen´ y elektronick´ y podpis. Princip obr´acen´ı postupu asymetrick´eho ˇsifrov´an´ı se vyuˇz´ıv´a pr´avˇe u elektronick´eho podepisov´an´ı. Nejprve se zaˇsifrov´ an´ım zpr´ avy (v tomto pˇr´ıpadˇe je ˇsifrovanou zpr´avou hash dokumentu, jenˇz je elektronicky podepisov´ an) tajn´ ym kl´ıˇcem odesilatele zajist´ı, ˇze pˇr´ıjemce, kter´ y zpr´avu deˇsifruje pomoc´ı veˇrejn´eho kl´ıˇce odes´ılatele, bude m´ıt jistotu o p˚ uvodu zpr´avy. Nen´ı tud´ıˇz moˇzn´e podvrhnout zpr´ avu jin´ ym tajn´ ym kl´ıˇcem tak, aby byla deˇsifrovateln´a dan´ ym veˇrejn´ ym kl´ıˇcem. Na stranˇe pˇr´ıjemce tedy dojde k v´ ypoˇctu nov´eho hashe z pˇrijat´eho elektronick´eho dokumentu, ten je porovn´ an (po deˇsifrov´an´ı veˇrejn´ ym kl´ıˇcem odesilatele) s podepsan´ ym hashem. Porovn´ an´ım na shodu obou hash˚ u je zaruˇceno, ˇze dokument opravdu poslal ten, kdo vlastn´ı tajn´ y kl´ıˇc odpov´ıdaj´ıc´ı pouˇzit´emu veˇrejn´emu kl´ıˇci. Jednou z moˇzn´ ych implementac´ı spr´avy asymetrick´ ych kl´ıˇc˚ u je syst´em kryptografick´ ych certifik´ at˚ u veˇrejn´ ych kl´ıˇc˚ u (doporuˇcen´ı CCITT X.509). Rozˇs´ıˇrenou implementac´ı je protokol LDAP [33]. Veˇrejn´e kl´ıˇce, na rozd´ıl od tajn´ ych, je potˇreba distribuovat. Abychom pˇredeˇsli podvrˇzen´ı, zav´ ad´ıme jejich certifikaci. Pˇr´ıjemce zpr´avy si ovˇeˇruje, ˇze dan´ y veˇrejn´ y kl´ıˇc opravdu patˇr´ı odesilateli. K tomuto u ´ˇcelu slouˇz´ı certifik´aty. Certifik´ at je elektronick´ y dokument vydan´ y d˚ uvˇeryhodnou tˇret´ı stranou. Tou je instituce nazvan´ a certifikaˇcn´ı autorita (CA). Je to jak´ ysi prostˇredn´ık komunikace. Certifikaˇcn´ı autorita pˇripoj´ı k veˇrejn´emu kl´ıˇc´ı informaci o dobˇe platnosti certifik´atu a dalˇs´ı u ´daje a podep´ıˇse cel´ y dokument sv´ ym tajn´ ym kl´ıˇcem. Vytvoˇren´ y certifik´at poˇsle ˇzadateli (vlastn´ıkovi veˇrejn´eho kl´ıˇce). Certifik´ at obsahuj´ıc´ı jak veˇrejn´ y kl´ıˇc, tak doplˇ nuj´ıc´ı informace pro zajiˇstˇen´ı bezpeˇcnosti m˚ uˇze jeho vlastn´ık zpˇr´ıstupnit volnˇe na Internetu, nechat jeho distribuci na certifikaˇcn´ı autoritˇe, nebo jej pos´ılat spoleˇcnˇe s kaˇzdou zpr´avou, kterou elektronicky podepisuje. Pˇr´ıjemce pak po ovˇeˇren´ı pravosti certifik´ atu (ovˇeˇrov´an´ı prob´ıh´a opˇet prostˇrednictv´ım nˇejak´e CA) pouˇzije obsaˇzen´ y veˇrejn´ y kl´ıˇc ke kontrole podpisu dokumentu. Spojen´ım symetrick´e kryptografie k utajen´ı obsahu zpr´ av a digit´aln´ıho podpisu vyuˇz´ıvaj´ıc´ıho kryptografii veˇrejn´ ym kl´ıˇcem m˚ uˇzeme dos´ ahnout zajiˇstˇen´ı vˇsech ˇctyˇr poˇzadovan´ ych bezpeˇcnostn´ıch funkc´ı.
11
2.5
Reˇ zimy blokov´ ych ˇ sifer
Tato ˇc´ ast pojedn´ av´ a o vybran´ ych reˇzimech blokov´ ych ˇsifer. Ty se pˇr´ımo t´ ykaj´ı praktick´e ˇc´asti pr´ ace, nebot’ pr´ avˇe jeden z pˇredstaven´ ych reˇzim˚ u je v implementaci pouˇz´ıv´an. Zm´ınˇen´ı dan´e problematiky je podstatn´e tak´e z toho d˚ uvodu, ˇze nevhodnˇe zvolen´ y reˇzim v aplikac´ıch zamˇeˇren´ ych na bezpeˇcnost vede pr´avˇe k oslaben´ı bezpeˇcnosti, a v d˚ usledku tak´e k nespr´avn´e funkˇcnosti dan´e aplikace. Chyby podobn´eho charakteru jsou pomˇernˇe z´avaˇzn´e, i kdyˇz nejsou (bez podrobn´e anal´ yzy n´ avrhu aplikace) ihned patrn´e. Blokov´e ˇsifry pracuj´ı nad bloky ˇsifrovan´ ych dat (vˇetˇsinou o velikosti 64 nebo 128 bit˚ u). Pokud velikost dat pˇrekroˇc´ı velikost bloku, jsou data rozdˇelena do v´ıce blok˚ u a ˇsifrov´ana samostatnˇe. Nejbˇeˇznˇejˇs´ı jsou reˇzimy ECB (electronic codebook ), CBC (cipher-block chaining), CFB (cipher feedback ) a OFB (output feedback ) [30]. Vˇsechny zde zm´ınˇen´e reˇzimy blokov´ ych ˇsifer poskytuj´ı z bezpeˇcnostn´ıch funkc´ı pouze d˚ uvˇernost nebo integritu zpr´avy, ale nikdy obˇe funkce souˇcasnˇe.
2.5.1
ECB
V reˇzimu ECB (obr´ azek 2.2) je pro dan´ y kl´ıˇc kaˇzd´ y blok dat pevnˇe zaˇsifrov´an na odpov´ıdaj´ıc´ı blok zaˇsifrovan´ ych dat. Analogicky jako v k´odov´e knize je ˇsifrov´ano kaˇzd´e slovo na odpov´ıdaj´ıc´ı k´ odov´e slovo. V tomto reˇzimu jsou stejn´e bloky dat zaˇsifrov´any vˇzdy stejnˇe. Pˇreuspoˇr´ ad´ an´ım zaˇsifrovan´ ych blok˚ u se doc´ıl´ı stejn´ y efekt jako pˇreuspoˇr´ad´an´ı p˚ uvodn´ıch nezaˇsifrovan´ ych blok˚ u dat. Jednotliv´e bloky jsou na sobˇe nez´avisl´e.
Obr´azek 2.2: Reˇzim ECB Z bezpeˇcnostn´ıch d˚ uvod˚ u se tento reˇzim nedoporuˇcuje pouˇz´ıvat pro data s d´elkou vˇetˇs´ı, neˇz je d´elka jednoho bloku, nebo kdyˇz je kl´ıˇc pouˇz´ıv´an v´ıcekr´at neˇz jen pro jednu jedinou zpr´ avu. Do jist´e m´ıry je moˇzn´e zv´ yˇsit bezpeˇcnost ECB reˇzimu pˇrid´an´ım n´ahodn´ ych v´ yplˇ nov´ ych bit˚ u (padding) do kaˇzd´eho neˇsifrovan´eho datov´eho bloku.
2.5.2
CBC
Narozd´ıl od ECB, je v reˇzimu CBC ˇsifra (v´ ystup operace) bloku vˇzdy stejn´a pro stejn´ a vstupn´ı data jen tehdy, kdyˇz se kromˇe stejn´ ych vstupn´ıch dat nav´ıc pouˇzije stejn´ y inicializaˇcn´ı vektor (IV) a stejn´ y ˇsifrovac´ı kl´ıˇc. Utajen´ı dat je zde mnohem lepˇs´ı, protoˇze zde doch´az´ı ke kombinov´ an´ı (ˇretˇezen´ı) vstupn´ıch dat s v´ ysledkem z pˇredchoz´ı iterace. Zmˇena IV, kl´ıˇce nebo prvn´ıho bloku dat znamen´a zcela jin´ y v´ ysledek. 12
Princip fungov´ an´ı v reˇzimu CBC je na zn´azornˇen na obr´azku 2.3. CBC je nav´ıc tzv. samosynchronizuj´ıc´ı, a to v tom smyslu, ˇze chyba v jednom ˇsifrovan´em bloku dat, vˇcetnˇe v´ ypadku cel´eho bloku, ovlivn´ı negativnˇe pouze tento a n´asleduj´ıc´ı blok. Dalˇs´ı datov´ y blok, v poˇrad´ı druh´ y od toho s v´ yskytem chyby, bude jiˇz deˇsifrov´an korektnˇe.
Obr´azek 2.3: Reˇzim CBC Jako inicializaˇcn´ı vektor je vhodn´e pouˇz´ıt n´ahodnˇe vygenerovanou bitovou posloupnost. N´ahodn´ y IV by mˇel b´ yt zcela nepˇredpov´ıdateln´ y, tzn. nemˇel by se liˇsit od n´ahodn´eho ˇsumu. V´ıce o generov´ an´ı n´ ahodn´ ych posloupnost´ı je pops´ano v podkapitole 2.6. Pˇrestoˇze nemus´ı b´ yt inicializaˇcn´ı vektor utajen – m˚ uˇze b´ yt souˇc´ast´ı zaˇsifrovan´ ych dat, je doporuˇceno zajistit alespoˇ n jeho integritu. Modifikace IV umoˇzn ˇuje u ´toˇcn´ıkovi prov´est pˇredv´ıdateln´e zmˇeny jednotliv´ ych bit˚ u v prvn´ım bloku deˇsifrovan´ ych dat. Utajen´ım IV lze takov´ ym praktik´ am zabr´ anit.
2.5.3
CFB
Reˇzim CFB vkl´ ad´ a opˇet v´ ystup blokov´e ˇsifrovac´ı funkce zpˇet na sv˚ uj vstup. V´ ystupem ˇsifrovac´ı funkce nen´ı myˇslen pˇr´ımo v´ ysledek operace – jednoho kola CFB nad blokem dat, ale aˇz v´ ysledek operace XOR tohoto v´ ystupu s otevˇren´ ym textem k zaˇsifrov´an´ı. Podobnˇe jako CBC, pˇri zmˇenˇe IV d´av´a operace ˇsifrov´an´ı jin´ y v´ ystup, i pˇri st´ale stejn´ ych vstupn´ıch neˇsifrovan´ ych datech. Protoˇze je ˇsifrovac´ı funkce v CFB pouˇz´ıv´ana z´aroveˇ n pro ˇsifrov´an´ı i deˇsifrov´ an´ı, nesm´ı b´ yt tento reˇzim pouˇzit v pˇr´ıpadˇe, kdy je blokovou ˇsifrou nˇekter´ y z algoritm˚ u veˇrejn´ ym kl´ıˇcem. Pro tento pˇr´ıpad je vhodn´e pouˇz´ıt nam´ısto CFB reˇzimu CBC. ˇ Cinnost detailnˇeji ilustruje obr´ azek 2.4.
2.5.4
OFB
Princip fungov´ an´ı tohoto reˇzimu je velmi podobn´ y CFB s t´ım rozd´ılem, ˇze v´ ystup blokov´e ˇsifrovac´ı funkce je pˇriveden zpˇet na vstup. Aˇz pot´e se prov´ad´ı XOR s ˇsifrovan´ ymi daty. 13
Obr´azek 2.4: Reˇzim CFB
Existuj´ı dvˇe bˇeˇznˇe pouˇz´ıvan´e verze. Prvn´ı je ISO verze OFB (obr´azek 2.5) s u ´plnou zpˇetnou vazbou (full feedback ), kter´a je bezpeˇcnˇejˇs´ı. Druhou je FIPS verze (starˇs´ı) OFB s r -bitovou zpˇetnou vazbou (r-bit feedback ), kdy se v´ ystup blokov´e funkce (r nejlevˇejˇs´ıch bit˚ u) relativnˇe sloˇzitˇe posouv´ a doprava a pak se z v´ ysledku skl´ad´a vstup pro dalˇs´ı iteraci. Za zm´ınku stoj´ı fakt, ˇze nˇekter´e operace mohou b´ yt pˇredzpracov´any, protoˇze v´ ystup blokov´e ˇsifrovac´ı funkce a ˇsifrovan´a data jsou na sobˇe nez´avisl´a. K pˇredv´ ypoˇct˚ um postaˇcuje pouze ˇsifrovac´ı kl´ıˇc a IV.
2.6
Podp˚ urn´ e n´ astroje
Kryptosyst´emy a kryptografick´e protokoly se spol´ehaj´ı na spr´avnou implementaci podp˚ urn´ ych n´ astroj˚ u. Nyn´ı se budeme zab´ yvat nˇekter´ ymi vybran´ ymi n´astroji, a to takov´ ymi, kter´e jsou pro n´ as z pohledu kryptovirologie nejzaj´ımavˇejˇs´ı.
2.6.1
Gener´ atory n´ ahodn´ ych ˇ c´ısel
Snad nejv´ıce kritick´e jsou z pohledu funkˇcnosti kryptografick´ ych algoritm˚ u gener´atory n´ahodn´ ych bit˚ u – RBG (Random Bit Generator ). Ty se v kryptografii pouˇz´ıvaj´ı ke generov´an´ı napˇr. tajn´ ych kl´ıˇc˚ u, inicializaˇcn´ıch vektor˚ u nebo paddingu nutn´eho k spr´avn´e funkˇcnosti (bezpeˇcnosti) nˇekter´ ych algoritm˚ u. Nezbytnou podm´ınkou pˇri pouˇz´ıv´an´ı popsan´ ych algoritm˚ u s dosaˇzen´ım poˇzadovan´e bezpeˇcnosti je pouˇzit´ı skuteˇcnˇe n´ ahodn´ ych posloupnost´ı bit˚ u, tedy n´ahodn´e v´ yskyty jedniˇcek a nul v generovan´e posloupnosti. Nespr´avnˇe generovan´e n´ahodn´e posloupnosti mohou v´est k uh´ adnuteln´ ym kl´ıˇc˚ um pˇr´ıpadn´ ym u ´toˇcn´ıkem. Spolehliv´e RBG pracuj´ı na z´ akladˇe z´ısk´av´an´ı dat z n´ahodn´e zmˇeny fyzik´aln´ıch veliˇcin. Mezi nejspolehlivˇejˇs´ı zdroje skuteˇcnˇe n´ahodn´ ych bit˚ u patˇr´ı zaˇr´ızen´ı pracuj´ıc´ı na principu 14
Obr´azek 2.5: Reˇzim OFB
mˇeˇren´ı radioaktivn´ıho rozpadu nˇejak´eho izotopu. Kaˇzd´ y takov´ y rozpad je zaznamen´an elektronick´ ym detektorem, kter´ y ˇc´ ast energie z´aˇren´ı pˇrev´ad´ı na elektrick´ y sign´al. Existuj´ıc´ı a bˇeˇznˇe pouˇz´ıvan´e gener´atory vyuˇz´ıvaj´ı tak´e napˇr. dvojice krystal˚ u – krystalu generuj´ıc´ıho takt CPU a krystalu hodin re´aln´eho ˇcasu, typicky jsou oba souˇc´ast´ı PC (viz AT & T truerand). Jin´ ym pˇr´ıkladem m˚ uˇze b´ yt vyuˇzit´ı chaotick´ ych vzduchov´ ych turbulenc´ı v pevn´ ych disc´ıch. Ty maj´ı vliv na dobu vystaven´ı diskov´ ych hlav a rotaˇcn´ı zpoˇzdˇen´ı. Kombinac´ı nˇekolika podobn´ ych hardwarov´ ych gener´ator˚ u a pouˇzit´ım algoritm˚ u na zjiˇst’ov´an´ı, zda entropie generovan´ ych bit˚ u opravdu odpov´ıd´a poˇzadavk˚ um na n´ahodnost, lze dos´ahnout spolehlivˇe n´ ahodn´ ych posloupnost´ı [25]. Data z RBG se pouˇz´ıvaj´ı jako vstupy pro gener´atory pseudon´ahodn´ ych ˇc´ısel – PRNG (Pseudo Random Number Generator ). Pouˇzit´ı ne zcela n´ahodn´ ych posloupnost´ı vede k de´ cn´ık z´ısk´av´a jistou ˇsanci uh´adnout nebo gradaci bezpeˇcnosti kryptografick´ ych algoritm˚ u. Utoˇ s urˇcitou pravdˇepodobnost´ı pˇredpovˇedˇet n´asleduj´ıc´ı posloupnost bit˚ u. Pouze skuteˇcnˇe n´ ahodn´ a posloupnost m˚ uˇze zaruˇcit bezpeˇcnost algoritm˚ u. Chybou, kter´ a m˚ uˇze v´est aˇz k u ´spˇeˇsn´emu prolomen´ı ˇsifry u ´toˇcn´ıkem, je pouˇzit´ı hashovac´ıch algoritm˚ u (napˇr. SHA-1, MD5, apod.) jako gener´ator˚ u n´ahodn´ ych posloupnost´ı, nebot’ nelze zaruˇcit m´ıru entropie (viz definice 2.6.1) takto generovan´ ych dat. Definice 2.6.1 Entropie je m´ıra neuspoˇr´adanosti, n´ahodnosti nebo promˇenlivosti v uzavˇren´em syst´emu. Entropie syst´emu X je matematick´a m´ıra mnoˇzstv´ı informace z´ıskan´e pozorov´an´ım syst´emu X. [31]
2.6.2
Hashovac´ı funkce
Hashovac´ı funkce (definice 2.6.2) je speci´aln´ı funkce, kter´a vrac´ı reprezentativn´ı vzorek dan´eho argumentu. Pouˇz´ıv´ a se pˇredevˇs´ım u digit´aln´ıho podpisu a pro zajiˇstˇen´ı datov´e integrity. Princip fungov´ an´ı je zn´ azornˇen na obr´azku 2.6. Zm´ınˇen´e hashovac´ı funkce jsou veˇrejnˇe 15
zn´am´e, nepouˇz´ıvaj´ı ˇz´ adn´ y tajn´ y kl´ıˇc. Jestliˇze slouˇz´ı ke zjiˇstˇen´ı, zda bylo nav´ıc s daty manipulov´ano, naz´ yvaj´ı se MDC (modification detection codes). Pˇr´ıbuzn´e k tˇemto funkc´ım jsou hashovac´ı funkce parametrizovan´e tajn´ ym kl´ıˇcem. Tyto slouˇz´ı k autentizaci p˚ uvodce zpr´avy i k zajiˇstˇen´ı jej´ı integrity – rodina algoritm˚ u MAC (message authentication codes). Jako z´astupce rodiny MAC uved’me algoritmus HMAC.
Obr´ azek 2.6: Obecn´ y model iterovan´e hashovac´ı funkce
Definice 2.6.2 Jednocestn´ a funkce (One-way function) je takov´a funkce f z mnoˇziny X do mnoˇziny Y , ˇze plat´ı: ∀x ∈ X mus´ı b´ yt v´ ypoˇcetnˇe snadn´e z´ıskat f (x), ale ∀y ∈ Im(f ) je v´ ypoˇcetnˇe nezvl´ adnuteln´e naj´ıt takov´e x ∈ X, ˇze f (x) = y. Kromˇe splnˇen´ı podm´ınky preimage resistance uveden´e v definici, klademe na jednocestnou (hashovac´ı) funkci jeˇstˇe tyto dalˇs´ı poˇzadavky: • Je aplikovateln´ a na argument (t´emˇeˇr) libovoln´e velikosti. • M´ a v´ ystupn´ı hodnotu konstantn´ı d´elky n bit˚ u (bˇeˇznˇe n = 160 nebo n = 256). • Plat´ı second-preimage resistance, viz [11]. • Plat´ı collision resistance, viz [11]. Algoritm˚ u pouˇz´ıvan´ ych k z´ısk´av´an´ı jednoznaˇcn´e ˇretˇezcov´e reprezentace libovoln´ ych dat (hashe) existuje nˇekolik: MD4, MD5, SHA, SHA-1, RIPEMD aj. U mnoha hashovac´ıch algoritm˚ u byly zjiˇstˇeny z´ asadn´ı bezpeˇcnostn´ı nedostatky, proto je do budoucna vhodn´e pouˇz´ıvat jejich n´ astupce. U nˇekter´ ych aplikac´ı nemus´ı b´ yt zjiˇstˇen´e nedostatky natolik v´ yznamn´e a mohou b´ yt d´ ale vyuˇz´ıv´ any, toto se t´ yk´a pˇredevˇs´ım aplikac´ı, u nichˇz nem´a relevantnost v´ ystupu hashovac´ıch algoritm˚ u dlouh´eho trv´an´ı (napˇr. s´ıt’ov´e protokoly).
16
Kapitola 3
Malware V t´eto kapitole se zamˇeˇr´ıme na popis r˚ uzn´ ych typ˚ u ˇskodliv´ ych poˇc´ıtaˇcov´ ych program˚ u. Tak ch´apeme pˇredevˇs´ım poˇc´ıtaˇcov´e viry, trojsk´e konˇe, ˇcervy a jin´e specifiˇctˇejˇs´ı druhy. Souhrnnˇe b´ yv´a takov´ yto software produkovan´ yu ´toˇcn´ıky naz´ yv´an jako malware (malicious software). Aktivity malwaru b´ yvaj´ı typicky zac´ıleny na poˇc´ıtaˇcov´e syst´emy s bˇeˇz´ıc´ımi sluˇzbami, jeˇz obsahuj´ı bezpeˇcnostn´ı slabiny. Jako typick´ y pˇr´ıklad zraniteln´eho syst´emu uved’me stanici s nainstalovan´ ym operaˇcn´ım syst´emem MS Windows XP bez zahrnut´ ych kritick´ ych bezpeˇcnostn´ıch z´ aplat. Nezabezpeˇcen´ y syst´em MS Windows XP, pˇripojen´ y k Internetu, vydrˇz´ı pr˚ umˇernˇe 20 minut, neˇz je objeven a u ´spˇeˇsnˇe kompromitov´an [7]. Nemus´ı b´ yt pravidlem, ˇze ˇskodliv´ y software se do syst´emu dostane pouze bez vˇedom´ı uˇzivatele. Existuje teoretick´ a studie, v n´ıˇz je dokonce pops´an takov´ y typ malwaru (pojmenov´an jako Satan Virus), vˇcetnˇe vlastn´ı propagace, vz´ajemn´e komunikace mezi nez´avisl´ ymi instancemi viru, interakce s uˇzivatelem napaden´eho syst´emu a zp˚ usob moˇzn´e implementace. Program popsan´ y v t´eto studii je na poˇc´atku uˇzivatelem vˇedomˇe nainstalov´an jako software s l´ akav´ ymi funkcemi. Pozdˇeji svoji obˇet’ dokonale ovl´ad´a, vyd´ır´a ji a nut´ı jednat podle vlastn´ıch pravidel hry [3].
3.1
Co je a nen´ı malware
Tato ˇc´ ast konkr´etnˇeji definuje pojem malware (definice 3.1.1) a poukazuje na rozd´ıl mezi bˇeˇzn´ ymi a ˇskodliv´ ymi programy. Definice 3.1.1 Malware je program vykon´avaj´ıc´ı nˇejak´e ˇskodliv´e akce nam´ıˇren´e proti uˇzivateli, kter´ y byl za t´ımto u ´ˇcelem vytvoˇren. C´ılem je typick´e zp˚ usoben´ı ˇskody v libovoln´e podobˇe, a to na pracovn´ı stanici, serveru nebo poˇc´ıtaˇcov´e s´ıti. Skupina softwaru oznaˇcovan´ a jako malware tedy reprezentuje vˇsechny obecnˇe zn´am´e kategorie ˇskodliv´eho softwaru, jako jsou viry, ˇcervi, trojˇst´ı konˇe, rootkity aj. P˚ uvodnˇe vznikaly tyto programy jako d˚ ukaz program´atorsk´ ych dovednost´ı, jako zkouˇska, kam aˇz je schopen se dan´ y v´ ytvor po s´ıti rozˇs´ıˇrit nebo jako ˇzertovn´e programy k rozpt´ ylen´ı a nevinn´emu obtˇeˇzov´ an´ı uˇzivatele. Pozdˇeji se objevovaly vandalsk´e programy odstraˇ nuj´ıc´ı data z disku nebo naruˇsuj´ıc´ı konzistenci souborov´eho syst´emu. S rozˇs´ıˇren´ım ˇsirokop´asmov´eho internetu se objevuje st´ ale v´ıce malwaru tvoˇren´eho s c´ılem podvodn´eho finanˇcn´ıho zisku (spyware, keystroke loggery, dialery).
17
Pozn´ amka: Jako malware by nemˇel b´ yt oznaˇcov´an software, kter´ y obsahuje chyby, ale byl naps´an pro legitimn´ı u ´ˇcely.
ˇ Zivotn´ ı cyklus malwaru
3.2
ˇ Zivotn´ ı cyklus malwaru zaˇc´ın´ a jeho vytvoˇren´ım a konˇc´ı u ´pln´ ym odstranˇen´ım z napaden´eho syst´emu. N´ asleduje popis jednotliv´ ych etap [38]: 1. Vytvoˇ ren´ı K vytvoˇren´ı nˇejak´eho ˇskodliv´eho k´odu postaˇcuje z´akladn´ı znalost libovoln´eho programovac´ıho jazyka a pˇr´ıstup k Internetu. Existuj´ı samostatn´e webov´e servery slouˇz´ıc´ı pouze k ˇs´ıˇren´ı malwaru nebo vytv´aˇren´ı nov´ ych verz´ı z hotov´ ych a funkˇcn´ıch verz´ı. 2. Replikace a rozˇ s´ıˇ ren´ı ˇ ˇ S´ıˇren´ı n´ akazy prob´ıh´ a v´ıce zp˚ usoby. Cervi vyuˇz´ıvaj´ı e-mail, sd´ılen´ı soubor˚ u nebo IM (Instant Messaging). Viry se replikuj´ı v r´amci hostitelsk´eho syst´emu. Trojani se skr´ yvaj´ı pod webov´ ymi odkazy ke staˇzen´ı, jsou ˇcasto souˇc´ast´ı e-mail˚ u a pochybn´ ych webov´ ych str´ anek. 3. Aktivace Vˇetˇsina malwaru prov´ ad´ı vlastn´ı ˇcinnost po spuˇstˇen´ı aplikace. Nˇekdy m˚ uˇze b´ yt ˇcinnost spuˇstˇena automaticky, napˇr. ke zvolen´emu datu nebo pˇri splnˇen´ı urˇcit´e podm´ınky. 4. Odhalen´ı Tato f´ aze typicky n´ asleduje po f´azi pˇredch´azej´ıc´ı, avˇsak nemus´ı tomu tak b´ yt vˇzdy. Po odhalen´ı b´ yv´ a malware odesl´an do ICSA Labs [27], kde je analyzov´an, zdokumentov´ an a dokumentace o nˇem distribuov´ana v´ yrobc˚ um antivirov´ ych produkt˚ u. 5. Pˇ rizp˚ usoben´ı Antivirov´e spoleˇcnosti modifikuj´ı sv˚ uj vyhled´av´ac´ı software, aby byl schopen detekovat nov´ y malware. Doba proveden´ı tohoto kroku z´avis´ı na jednotliv´ ych antivirov´ ych spoleˇcnostech – pohybuje se od jednotek hodin, dn˚ u, aˇz mˇes´ıc˚ u.
3.3 3.3.1
Kategorie Virus
Definice 3.3.1 Virus je program, kter´ y je spuˇstˇen nˇejakou akc´ı uˇzivatele. Pot´e vytv´ aˇr´ı sv´e vlastn´ı kopie, pˇr´ıpadnˇe tyto kopie dok´aˇze i s´am modifikovat. Obsahuje nˇejakou funkci (payload ), kter´ a se vykon´ a v pˇr´ıpadˇe splnˇen´ı pˇredem definovan´ ych podm´ınek. Poˇc´ıtaˇcov´ y virus je tedy zˇrejmˇe spustiteln´ y poˇc´ıtaˇcov´ y k´od, kter´ y je schopen vlastn´ı reprodukce v r´ amci hostitele. Pokud dok´aˇze virus nˇejak modifikovat sv´e vlastn´ı kopie – potomky, jedn´a se o typ tzv. polymorfn´ıho viru. Pokud dok´aˇze modifikovat tak´e s´am sebe (aktivn´ı instanci programu), naz´ yv´ ame tento zvl´aˇstn´ı druh vir˚ u jako metamorfn´ı. Reprodukce, neboli ˇs´ıˇren´ı viru z jednoho syst´emu na jin´ y, je moˇzn´a pouze jako souˇc´ast infikovan´eho syst´emu. Virus se tedy nedok´ aˇze ˇs´ıˇrit zcela autonomnˇe. 18
Podle typu c´ılov´e destinace v hostitelsk´em syst´emu m˚ uˇzeme viry rozliˇsovat na souborov´e, boot-sector viry, multipartitn´ı viry atd. Mnoh´e, vyspˇelejˇs´ı formy, dok´aˇz´ı kombinovat zm´ınˇen´e typy destinac´ı a st´ avaj´ı se pak mnohem odolnˇejˇs´ı v˚ uˇci objeven´ı a odstranˇen´ı z napaden´eho syst´emu. ˇıˇren´ı virov´e n´ S´ akazy se m˚ uˇze ub´ırat nˇekolika cestami – skrze s´ıt’ov´e souborov´e syst´emy, syst´emy ke sd´ılen´ı a v´ ymˇenˇe soubor˚ u (typicky jist´ y druh P2P s´ıt´ı), zneuˇz´ıv´an´ım sluˇzby WWW (World Wide Web) a jistˇe i mnoha dalˇs´ımi.
3.3.2
ˇ Cerv
ˇ Definice 3.3.2 Cerv (worm) je program, kter´ y, narozd´ıl od viru, vytv´aˇr´ı sv´e vlastn´ı (i modifikovan´e) kopie bez jak´ehokoli pˇriˇcinˇen´ı uˇzivatele. Propagace n´akazy prob´ıh´a s´ıt’ovou cestou, tzn. ˇcerv se dok´ aˇze ˇs´ıˇrit z infikovan´eho syst´emu pouze prostˇrednictv´ım jeho s´ıt’ov´eho pˇripojen´ı. K´ od nesen´ y v tˇele ˇcerva m˚ uˇze b´ yt zcela libovoln´ y. ˇ Cervi jsou druh malwaru ˇs´ıˇr´ıc´ı se samostatnˇe poˇc´ıtaˇcovou s´ıt´ı. Hlavn´ı rozd´ıl mezi ˇcervy a viry je ten, ˇze prvn´ı jmenovan´a skupina je nez´avisl´a na aktivitˇe v r´amci hostitelsk´eho syst´emu. Jinak ˇreˇceno, ˇcervi maj´ı autoreplikaˇcn´ı schopnost. Pos´ılaj´ı kopie sebe sama do s´ıtˇe na urˇcen´e s´ıt’ov´e adresy, kter´e jsou bud’ pevnˇe d´any nebo jsou n´ahodnˇe vybr´any z cel´eho ˇ adresov´eho prostoru. Casto se pouˇzij´ı pouze relevantn´ı adresy v r´amci s´ıtˇe, v n´ıˇz se dan´ y poˇc´ıtaˇc nach´ az´ı – v´ ybˇer z´ avis´ı na implementovan´e logice kaˇzd´eho konkr´etn´ıho typu ˇcerva. V pˇr´ıpadˇe ˇs´ıˇren´ı prostˇrednictv´ım elektronick´e poˇsty jsou c´ılov´e destinace vyhled´av´any v souborech na lok´ aln´ıch disc´ıch. V minulosti cel´a ˇrada u ´spˇeˇsn´ ych ˇcerv˚ u tohoto typu dok´azala e-mailov´e adresy vyhled´ avat v souborech r˚ uzn´ ych poˇstovn´ıch klient˚ u instalovan´ ych na dan´em poˇc´ıtaˇci, kde byly uloˇzeny kontakty uˇzivatele tohoto poˇc´ıtaˇce. Obsahem pˇren´ aˇsen´ ym v tˇele ˇcerva b´ yv´a ˇcasto jin´ y, mnohdy z´akeˇrnˇejˇs´ı k´od, kter´ y m˚ uˇze napˇr. mazat soubory na disku, rozes´ılat je pˇres e-mail nebo instalovat tajn´e pˇr´ıstupov´e ´ cn´ık tak z´ısk´av´a nav´ıc moˇznost se body do syst´emu, tzv. zadn´ı vr´atka“ (backdoor ). Utoˇ ” kdykoli v budoucnu k syst´emu vzd´alenˇe pˇrihl´asit, t´emˇeˇr neomezenˇe prov´adˇet neautorizovanou ˇcinnost a z˚ ustat pˇri tom nepozorov´an . . . Pˇr´ıtomnost ˇcerva se m˚ uˇze projevovat nedostupnost´ı webov´ ych str´anek v´ yrobc˚ u antivirov´eho softwaru nebo u ´nikem licenˇcn´ıch kl´ıˇc˚ u k instalovan´ ym hr´am a aplikac´ım [38]. Pozn´ amka: Hranice mezi modern´ımi viry a poˇc´ıtaˇcov´ ymi ˇcervy se v re´alu ˇcasto st´ır´a. Spojen´ım v´ yhod jednotliv´ ych typ˚ u malwaru se jejich autoˇri snaˇz´ı pos´ılit schopnosti sv´ ych v´ ytvor˚ u. Vznikaj´ı ˇ st´ale novˇejˇs´ı a vyspˇelejˇs´ı hrozby. Skody zp˚ usoben´e p˚ usoben´ım vir˚ u, ˇcerv˚ u a jin´ ych druh˚ u malwaru se odhaduj´ı aˇz na 100 miliard $ za posledn´ıch dvacet let [9].
3.3.3
Trojan
Definice 3.3.3 Trojsk´y k˚ uˇ n neboli trojan (trojan horse) je program, kter´ y nevytv´aˇr´ı vlastn´ı kopie ani se nijak neˇs´ıˇr´ı, pouze prov´ad´ı ˇcinnost, o n´ıˇz uˇzivatel programu nem´a tuˇsen´ı. Trojsk´ y k˚ un ˇ je program, kter´ y se snaˇz´ı pˇredst´ırat, ˇze je nˇeˇc´ım jin´ ym, neˇz ve skuteˇcnosti je. Na prvn´ı pohled vypad´ a jako uˇziteˇcn´ y program, kter´ y uˇzivatel jistˇe n´aleˇzitˇe ocen´ı. Po spuˇstˇen´ı je realita ale takov´ a, ˇze prov´ad´ı ˇcinnost zcela jinou (nebo m˚ uˇze nab´ızen´e funkce
19
opravdu obsahovat a z´ akeˇrn´ a ˇcinnost prob´ıh´a skrytˇe na pozad´ı). Pot´e, co je nainstalov´an“ ” do syst´emu, vykon´ av´ a ˇcinnosti, jako je vytv´aˇren´ı zadn´ıch vr´atek nebo stahov´an´ı jin´eho malwaru z Internetu. Nem´ a replikaˇcn´ı schopnosti jako virus, proto je jeho pˇreˇzit´ı z´avisl´e na zp˚ usobu, jak´ ym pˇresvˇedˇcuje“ uˇzivatele, ˇze by mˇel b´ yt spuˇstˇen. ”
3.3.4
Rootkit
Definice 3.3.4 Rootkit je oznaˇcen´ı programu, kter´ y disponuje schopnostmi skr´ yvat svoji pˇr´ıtomnost v syst´emu pˇred uˇzivatelem, ovl´adat ˇc´asti syst´emu nebo nad n´ım zcela pˇrevz´ıt kontrolu. Jako rootkity je oznaˇcov´ ana cel´a skupina program˚ u s podobn´ ym chov´an´ım. Bˇeˇznˇe b´ yvaj´ı pomoc´ı antivirov´ ych program˚ u nedetekovateln´e. Nahrazen´ım origin´aln´ıch bezpeˇcnostn´ıch funkc´ı syst´emu se snaˇz´ı zajistit vlastn´ı neodstranitelnost. Mezi pouˇz´ıvan´e techniky patˇr´ı skr´ yv´an´ı bˇeˇz´ıc´ıch proces˚ u, soubor˚ u a dat v operaˇcn´ım syst´emu. Zpravidla s sebou rootkit tak´e zav´ ad´ı do syst´emu zadn´ı vr´atka“ [37]. ”
3.3.5
Spam
Spam je oznaˇcen´ı nevyˇz´ adan´e elektronick´e poˇsty. V souˇcasnosti je to jeden z nejvˇetˇs´ıch probl´em˚ u, s nimiˇz se v Internetu pot´ yk´ame. Aˇckoli se nejedn´a o nˇejak´ y ˇskodliv´ y k´od, jako pˇredeˇsl´e druhy (viz definice 3.3.1, 3.3.2, 3.3.3 a 3.3.4), b´ yv´a velmi ˇcasto k elektronick´ ym u ´tok˚ um vyuˇz´ıv´ an. V dobˇe vzniku tohoto oznaˇcen´ı pro nevyˇz´adan´a obchodn´ı nebo podvodn´a sdˇelen´ı se spam objevoval pˇrev´ aˇznˇe v e-mailov´ ych schr´ank´ach uˇzivatel˚ u. Dnes se probl´em rozr˚ ust´a do nˇekolika dalˇs´ıch rozmˇer˚ u, spam se objevuje uˇz i v diskuzn´ıch skupin´ach, chatu a u komunikaˇcn´ıch program˚ u na b´ azi IM. Poˇrad´ı 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Zemˇe Spojen´e st´ aty americk´e (USA) ˇ ına C´ Rusko Velk´ a Brit´anie (UK) Jiˇzn´ı Korea Nˇemecko Japonsko Francie Indie Kanada
Poˇcet zn´am´ ych incident˚ u 1 546 471 282 206 191 185 160 157 126 123
Tabulka 3.1: Pˇrehled 10 zem´ı jako nejvˇetˇs´ıch p˚ uvodc˚ u spamu, k 28. 4. 2008 Dlouhodob´e mˇeˇren´ı procentu´ aln´ıho pod´ılu spamu dokazuje, ˇze okolo 80 % celosvˇetov´eho obˇehu e-mail˚ u je spam. Statistiky d´ale uk´azaly, ˇze nejv´ıce spamu poch´az´ı ze Severn´ı Ameriky, a ˇze asi 200 producent˚ u spamu m´a na svˇedom´ı cel´ ych 80 % vˇsech nevyˇz´adan´ ych zpr´ av m´ıˇr´ıc´ıch do mailbox˚ u uˇzivatel˚ u. Zaj´ımav´a data pˇrin´aˇs´ı projekt ROKSO (Register of Known Spam Operations), coˇz je registr odesilatel˚ u spamu, spamov´ ych sluˇzeb a zn´am´ ych spamov´ ych incident˚ u [36].
20
Projekt ROKSO nav´ıc udrˇzuje datab´azi s klasifikovan´ ymi daty, do kter´e maj´ı pˇr´ıstup pouze agentury jako: Scotland Yard CCU (UK); FBI, USSS, US Marshal’s Service (USA); OPTA (Nizozem´ı) a ACMA (Austr´alie). Data o nez´akonn´ ych aktivit´ach z t´eto DB slouˇz´ı jako d˚ ukazy pˇri soudn´ıch procesech. Pˇrehled vybran´ ych zem´ı podle poˇrad´ı v produkci spamu ukazuje tabulka 3.1.
3.3.6
Botnet
Napaden´ y syst´em, kter´ y je pod nadvl´adou u ´toˇcn´ıka, se oznaˇcuje jako bot nebo zombie. ˇ Cinnost´ı program˚ u, jako jsou ˇcervi, trojani, rootkity atd., lze vzd´alenˇe zraniteln´ y syst´em ´ cn´ıci mohou kdykoli ovl´adat. Malware v syst´emu naslouch´a na urˇcit´ ych portech poˇc´ıtaˇce. Utoˇ vzd´alenˇe na tyto porty pos´ılat instrukce (s´ıt’ov´e pakety), pomoc´ı nichˇz ˇcinnost sv´eho programu ovlivˇ nuj´ı. Poˇcet syst´em˚ u napaden´ ych jedn´ım konkr´etn´ım typem malwaru se nezˇr´ıdka pohybuje v ˇr´ adech des´ıtek a stovek tis´ıc kus˚ u. Mnoˇzina takto ovl´adan´ ych syst´em˚ u (bot˚ u) se oznaˇcuje jako botnet [16, 1]. Koordinac´ı cel´eho botnetu dok´aˇzou u ´toˇcn´ıci prov´adˇet distribuovan´e u ´toky na internetov´e servery DDoS (Distributed Denial-of-Service), phishingov´e u ´toky nebo rozes´ılat tis´ıce podvodn´ ych e-mailov´ ych zpr´ av. Kdokoli by se snaˇzil vystopovat p˚ uvodce tˇechto spamov´ ych zpr´av, najde sp´ıˇse nicnetuˇs´ıc´ı obˇet’ jin´eho u ´toku neˇz skuteˇcn´eho u ´toˇcn´ıka. Botnety jsou ned´ılnou souˇc´ ast´ı Internetu. Jsou dokonce pˇredmˇetem obchodov´an´ı mezi jejich majiteli“ a ” potenci´ aln´ımi z´ akazn´ıky, tˇemi jsou zadavatel´e reklamy atp. Pozn´ amka: Term´ın bot se nˇekdy pouˇz´ıv´ a tak´e pro oznaˇcen´ı malwaru, kter´ y zp˚ usob´ı zm´ınˇen´e ovl´adnut´ı poˇc´ıtaˇce, ovl´ adnut´ y stroj pak b´ yv´a oznaˇcov´an jako zombie.
3.3.7
Podvodn´ e techniky
Podvodn´e techniky jsou jak´ ymsi prostˇredkem u ´toˇcn´ık˚ u, jak zneuˇz´ıt zranitelnosti obˇeti. Slab´ ym m´ıstem m˚ uˇze b´ yt jednak nedostateˇcn´e technick´e zabezpeˇcen´ı, stejnˇe tak ale i povahov´e rysy ˇclovˇeka sed´ıc´ıho za poˇc´ıtaˇcem. Mezi podvodn´e techniky se ˇrad´ı nejr˚ uznˇejˇs´ı poplaˇsn´e zpr´avy (hoax ), podvodn´e str´anky snaˇz´ıc´ı se z´ıskat pˇrihlaˇsovac´ı jm´ena a hesla nepozorn´ ych uˇzivatel˚ u (phishing). Procentu´aln´ı u ´spˇeˇsnost takov´ ych technik nen´ı zˇrejmˇe nikterak vysok´a. Porovn´ame-li ji vˇsak s podobnˇe vyhl´ıˇzej´ıc´ı statistikou u ´spˇeˇsnosti spamu, m˚ uˇze b´ yt v souˇctu ˇskoda zp˚ usoben´a i mal´emu procentu vˇsech uˇzivatel˚ u Internetu pomˇernˇe vysok´a.
3.4
Funkce viru
Kaˇzd´ y virus se skl´ ad´ a nejm´enˇe ze tˇr´ı, typicky ˇctyˇr, ˇc´ast´ı (tzv. rutin, viz obr´azek 3.1) [10]: • Vyhled´ avac´ı Lokalizace dalˇs´ıch potenci´ aln´ıch c´ıl˚ u (soubor˚ u) na disku. Rozhoduje o rychlosti ˇs´ıˇren´ı vir˚ u, zda bude n´ akaza prob´ıhat na jednom disku nebo v´ıce disc´ıch. Jako kaˇzd´ y program mus´ı v t´eto f´ azi virus volit optim´aln´ı pomˇer – velikost k´odu / mnoˇzstv´ı funkc´ı. • Kop´ırovac´ı ˇ ım je Zajiˇstˇen´ı vlastn´ı reprodukce viru. Sloˇzitost t´eto rutiny z´avis´ı na typu viru. C´ sofistikovanˇejˇs´ı, t´ım m´ a virus vˇetˇs´ı ˇsanci splnit posl´an´ı a neb´ yt odhalen. 21
• Anti-detekˇ cn´ı Definuje chov´ an´ı viru po spuˇstˇen´ı. Jist´a m´ıra n´ahodnosti v chov´an´ı opˇet sniˇzuje pravdˇepodobnost odhalen´ı. Zahrnuje rozhodov´an´ı, zda se m´a dan´ y soubor nakazit nebo nikoli, s ohledem na jeho velikost a m´ıru diskov´e aktivity s procesem n´akazy souvisej´ıc´ı. • Charakteristick´ a – payload Tato (voliteln´ a) ˇc´ ast urˇcuje charakteristick´e chov´an´ı viru. Zpravidla jde o nˇejakou z´ akeˇrnou ˇcinnost (maz´ an´ı soubor˚ u, omezov´an´ı v´ ykonu nebo funkˇcnosti OS, obtˇeˇzov´ an´ı uˇzivatele, . . . ).
Obr´ azek 3.1: Funkˇcn´ı diagram viru [10]
3.5
Skr´ yv´ an´ı a identifikace
Faktem je, ˇze i viry potˇrebuj´ı m´ıt nˇejak´ y mechanismus, jak rozpoznat vlastn´ı pˇr´ıtomnost v syst´emu, aby se pˇredeˇslo opakovan´emu napaden´ı jiˇz jednou infikovan´eho souboru. Nˇekter´e d´ale zm´ınˇen´e principy tedy v sobˇe implementuj´ı i samotn´e viry, i kdyˇz v jejich pˇr´ıpadˇe je u ´kol objeven´ı pˇr´ıtomnosti jin´e instance sebe sama o pozn´an´ı snazˇs´ı neˇz v pˇr´ıpadˇe antivir˚ u. ´ cn´ıci pˇred vypuˇstˇen´ım nov´eho viru do svˇeta testuj´ı, zda bude jejich v´ Utoˇ ytvor schopen proj´ıt pˇres kontrolu bˇeˇzn´ ymi antivirov´ ymi produkty. Dˇelen´ı vir˚ u do kategori´ı se prov´ad´ı na z´akladˇe mnoha jejich vlastnost´ı. At’ uˇz podle c´ılov´e destinace (souborov´e infektory, boot-sector infektory, makroviry, multipartitn´ı viry) nebo zp˚ usobu maskov´ an´ı, pˇr´ıpadnˇe zp˚ usobu pouˇzit´ı kryptografick´ ych algoritm˚ u (klasick´e, polymorfn´ı, metamorfn´ı, stealth viry, adres´aˇrov´e viry). Z pohledu t´eto pr´ace o kryptovirologii jsou nejzaj´ımavˇejˇs´ı pr´ avˇe viry, kter´e nˇejak´ ym zp˚ usobem vyuˇz´ıvaj´ı kryptografii. Typick´ y virus (souborov´ y infektor) napad´a spustiteln´e soubory – nejˇcastˇeji typu EXE. Struktura EXE souboru je na obr´azku 3.2. Jestliˇze chce virus napadnout EXE soubor, mus´ı 22
Obr´ azek 3.2: Struktura EXE souboru [10]
modifikovat jeho hlaviˇcku (File Header) a relokaˇcn´ı tabulku (Relocation Pointer Table) a takt´eˇz pˇridat vlastn´ı k´ od do tˇret´ı ˇc´asti (Load Module). Virus se m˚ uˇze um´ıstit na libovoln´e ˇ m´ısto v souboru. Reknˇ eme, ˇze se v jednom konkr´etn´ım pˇr´ıpadˇe um´ıst´ı na konec EXE souboru. Mus´ı zajistit, aby pˇri spouˇstˇen´ı souboru byl on jako prvn´ı, kdo z´ısk´a kontrolu nad ˇr´ızen´ım, nikoliv p˚ uvodn´ı program.
3.5.1
Polymorfismus a metamorfismus
Snaha uˇcinit viry co nejm´enˇe viditeln´e si vyˇz´adala v´ yvoj dalˇs´ıch technik, jak zakr´ yt jejich ˇ pˇr´ıtomnost v syst´emu (falˇsov´ an´ı data a ˇcasu u soubor˚ u, kontroln´ıch souˇct˚ u). C´ım d´ele dok´azal virus skrytˇe pˇreˇz´ıvat, t´ım vˇetˇs´ı byla jeho ˇsance ˇs´ıˇrit se a replikovat. Nejenˇze se takov´ ymi technikami snaˇz´ı skr´ yt pˇred zraky uˇzivatel˚ u, hlavn´ım jejich c´ılem je zt´ıˇzen´ı pr´ ace vyhled´ avac´ım program˚ um. Technik ukr´ yv´ an´ı existuje cel´a ˇrada, zamˇeˇr´ıme se zde podrobnˇeji na jednu z nich – polymorfismus. U polymorfismu jde o to zakr´ yt vlastn´ı k´od tak, aby nebyl identifikov´ an jako virus. Zjednoduˇsen´ y pˇr´ıklad infikovan´eho souboru je naznaˇcen na obr´azku 3.3. N´ aˇs virus se um´ıstil na konec souboru, samozˇrejmˇe patˇriˇcnˇe pozmˇenil vstupn´ı bod p˚ uvodn´ıho programu (entry point) [14].
Obr´azek 3.3: Bˇeˇzn´ y virus Prvn´ım z´ asadn´ım vylepˇsen´ım bylo zaˇsifrov´an´ı cel´eho k´odu viru v souboru a um´ıstˇen´ı pˇred nˇej pouze mal´e deˇsifrovac´ı smyˇcky – dekryptoru (decryptor ). Vstupn´ım bodem je pak tato deˇsifrovac´ı smyˇcka. Hlavn´ı tˇelo viru je nyn´ı skryt´e, je odhaleno aˇz v dobˇe spuˇstˇen´ı dekryptoru. Polymorfismus je vlastnost m´ıt mnoho r˚ uzn´ ych podob. Proto maj´ı polymorfn´ı viry mnoho typ˚ u deˇsifrovac´ıch smyˇcek. V zaˇsifrovan´e ˇc´asti viru je nav´ıc obsaˇzena funkce, kter´a obstar´ av´ a polymorfn´ı transformace. Novˇe nakaˇzen´ y soubor v sobˇe obsahuje kopii samotn´eho viru, ovˇsem jiˇz v jin´e zaˇsifrovan´e podobˇe. Sch´ema polymorfn´ıho viru je naznaˇceno na obr´ azku 3.4. 23
Obr´azek 3.4: Polymorfn´ı virus
Evoluce polymorfn´ıch vir˚ u vedla jeˇstˇe d´ale – k metamorfn´ım typ˚ um vir˚ u (obr´azek 3.5). Jsou to zvl´ aˇstn´ı typy vych´ azej´ıc´ı z principu polymorfismu, ale zp˚ usoby zatemˇ nov´an´ı k´odu a maskov´ an´ı se pˇred antiviry dotahuj´ı mnohem d´ale. Idea spoˇc´ıv´a v rozm´ıstˇen´ı mal´ ych ostr˚ uvk˚ u“ virov´eho k´ odu v r˚ uzn´ ych m´ıstech programu. Vstupn´ı bod pak m˚ uˇze z˚ ustat ” nezmˇenˇen, virus pˇreb´ır´ a ˇr´ızen´ı aˇz z kontextu spouˇstˇen´ı p˚ uvodn´ıho programu.
Obr´azek 3.5: Metamorfn´ı virus
3.6
Detekce
Vyhled´ av´ an´ı a likvidace vir˚ u a jin´eho malwaru antivirov´ ymi produkty je hlavn´ı zp˚ usob boje proti ˇs´ıˇr´ıc´ı se n´ akaze. Z´ akladn´ı metody vyhled´av´an´ı jsou stejnˇe star´e jako prvn´ı poˇc´ıtaˇcov´e viry. V t´eto podkapitole se budeme vˇenovat klasick´ ym metod´am detekce zn´am´ ych vir˚ u. O problematice vyhled´ av´ an´ı nov´ ych a nezn´am´ ych vir˚ u bude pojedn´ano v ˇc´asti o heuristick´ ych metod´ ach. Pˇrehled zp˚ usob˚ u detekce malwaru [15]: 1. Vyhled´ av´ an´ı Jedn´ım z hlavn´ıch zp˚ usob˚ u, kter´ y antivirov´e produkty bˇeˇznˇe pouˇz´ıvaj´ı k detekci zn´ am´ ych vir˚ u, je metoda porovn´av´an´ı ˇretˇezc˚ u (string matching). Vyhled´av´an´ı na tomto principu je v podstatˇe pouze vyhodnocov´an´ı nˇejak´e podm´ınky s v´ ysledkem: JE ´ TO VIRUS / NENI TO VIRUS. Testuje se shoda charakteristick´ ych ˇretˇezc˚ u, coˇz jsou ve vˇetˇsinˇe pˇr´ıpad˚ u posloupnosti instrukc´ı. Metoda je relativnˇe ˇcasovˇe n´aroˇcn´a, protoˇze se mus´ı testovat a vyhodnotit cel´a datab´ aze virov´ ych vzor˚ u pro kaˇzd´ y zkouman´ y soubor, na kter´ y se implicitnˇe pohl´ıˇz´ı jako na potenci´ alnˇe infikovan´ y virem. Optimalizace algoritm˚ u na porovn´av´an´ı ˇretˇezc˚ u je velmi ˇz´adouc´ı. Vynaloˇzen´e u ´sil´ı pˇri v´ yvoji se pak projevuje v rozd´ıln´e rychlosti antivirov´eho softwaru u jednotliv´ ych v´ yrobc˚ u. V´ yhody: • jednoduchost • spolehlivost • u ´spˇeˇsnost l´eˇcen´ı
24
Nev´ yhody: • mal´ a rychlost • probl´emy s polymorfn´ımi viry • neschopnost detekce nov´ ych vir˚ u 2. Skenov´ an´ı Antivirov´ y vyhled´ avaˇc znak˚ u (scanner ) je z´akladem kaˇzd´eho antivirov´eho softwaru. K p´ atr´ an´ı se pouˇz´ıv´ a jak´ ysi soubor charakteristick´ ych znak˚ u – virov´ y otisk, hledaj´ı se pouze znaky typick´e pro konkr´etn´ı virus. V´ yhody: • rychlost • u ´spˇeˇsnost l´eˇcen´ı Nev´ yhody: • mal´ a spolehlivost • probl´emy s polymorfn´ımi viry • neschopnost detekce nov´ ych vir˚ u
3.6.1
Heuristika
Heuristika neboli heuristick´ a anal´ yza je zp˚ usob detekce vir˚ u, kter´e v dobˇe vyd´an´ı antivirov´eho softwaru jeˇstˇe nebyly naps´any. Jelikoˇz je virus program jako kter´ ykoli jin´ y, je rozhodov´an´ı, zda uˇz se jedn´ a o ˇskodliv´ y k´od nebo poˇr´ad jen obyˇcejn´ y program, velmi sloˇzit´e. Stejn´ y probl´em nast´ av´ a tak´e u polymorfn´ıch vir˚ u. Tento typ vir˚ u nejenˇze pouˇz´ıv´a symetrick´e ˇsifrov´ an´ı obsahu tˇela viru, ale dok´aˇze mˇenit i dekryptovac´ı smyˇcku. V podstatˇe tak m˚ uˇze virus nab´ yvat ohromn´eho mnoˇzstv´ı r˚ uzn´ ych podob, ˇc´ımˇz maj´ı antiviry sn´ıˇzenou ˇsanci jej odhalit [14]. U heuristick´e anal´ yzy antivirus jakoby nahl´ıˇz´ı do k´odu potenci´aln´ıho viru, postupuje po instrukc´ıch tak, jako by program spustil a jednotliv´e instrukce postupnˇe vykon´aval. Naraz´ıli na podezˇrel´e instrukce, varuje o moˇzn´em nebezpeˇc´ı uˇzivatele. Ten mus´ı rozhodnout, zda se o virus opravdu jedn´ a, ˇci nikoliv. Schopnost odhalit“ nezn´am´ y virus je z´avisl´a na nastaven´ı ” prahov´e hodnoty konkr´etn´ıho antiviru. Operaˇcn´ı syst´emy poskytuj´ı mnoho prostˇredk˚ u (service routines), jak usnadnit ostatn´ım program˚ um pˇr´ıstup k perifern´ım zaˇr´ızen´ım, a naplno tak vyuˇz´ıvat vˇsech moˇzn´ ych funkc´ı. Pomoc´ı tohoto rozhran´ı je dosaˇzeno vˇetˇs´ı u ´rovnˇe abstrakce pro aplikace vyuˇz´ıvaj´ıc´ı hardware poˇc´ıtaˇce. Programy a aplikace sm´ı volat sluˇzby operaˇcn´ıho syst´emu pomoc´ı mechanismu zvan´eho softwarov´e pˇreruˇsen´ı. Moˇznost zasahovat do syst´emu pˇreruˇsen´ı je zp˚ usob, jak zabr´anit vir˚ um v jejich spouˇstˇen´ı. Stejnou moˇznost m´ a ale i virus, ten m˚ uˇze u ´spˇeˇsn´ ym ovl´adnut´ım tohoto mechanismu obch´ azet detekˇcn´ı antivirov´e programy. Dalˇs´ı (proaktivn´ı) metody a techniky detekce jsou: 1. Sledov´ an´ı toku ˇ r´ızen´ı Jde o jistou dynamickou kontrolu. Sleduj´ı se vstupn´ı body programu pˇri spouˇstˇen´ı. Vstupn´ı bod (entry point) je m´ısto, kde operaˇcn´ı syst´em pˇred´av´a ˇr´ızen´ı programu, jenˇz zaˇc´ın´ a vykon´ avat ˇcinnost, pro kterou byl naprogramov´an.
25
Na z´ akladˇe jist´ ych statistick´ ych vlastnost´ı kompilovan´ ych spustiteln´ ych program˚ u vznikl n´ astroj PEAT (Portable Executable Analysis Toolkit), kter´ y dok´aˇze vyhodnocovat anom´ alie toku ˇr´ızen´ı v programu [22]. 2. Detekce kryptografick´ eho k´ odu Pouˇz´ıvanou heuristickou metodou zjiˇst’ov´an´ı vir˚ u je detekce kryptografick´eho k´odu v programu. Absence kryptografick´eho k´odu je jistou z´arukou toho, ˇze v syst´emu nen´ı pˇr´ıtomen kryptovirus nebo jin´ y malware pouˇz´ıvaj´ıc´ı kryptografii. Viry m´ıvaj´ı nav´ıc implementov´ any nejr˚ uznˇejˇs´ı algoritmy souvisej´ıc´ı s kryptografi´ı – napˇr. test, zda je ˇc´ıslo prvoˇc´ıslem nebo algoritmus n´asoben´ı velk´ ych ˇc´ısel – Karatsuba [28], popˇr. dalˇs´ı speci´ aln´ı algoritmy. Detekov´an´ı uspoˇr´ad´an´ı nejmenˇs´ıch prvoˇc´ısel (2, 3, 5, 7, 11, 13, 17, 19 . . . ) v programu m˚ uˇze znamenat odhalen´ı skryt´eho viru. 3. Integritn´ı kontrola Metoda zaloˇzen´ a na porovn´an´ı aktu´aln´ı informace o programu s uloˇzenou hodnotou, kter´ a vznikla v dobˇe instalace (nebo ji poskytuje dodavatel pˇr´ısluˇsn´eho softwaru). K tomuto u ´ˇcelu se v´ ybornˇe hod´ı CRC (Cyclic Redundancy Check ). Nam´ısto samotn´ ych vir˚ u se integritn´ı kontrolou daj´ı zjistit pouze jejich projevy v syst´emu. Probl´emy s integritn´ı kontrolou nast´avaj´ı v pˇr´ıpadˇe legitimn´ı modifikace souboru v ˇcase. Hl´ aˇsen´ı antiviru o nalezen´ı viru je zˇrejmˇe faleˇsn´ y poplach, protoˇze z´asahem poruˇsuj´ıc´ım integritu (kontroln´ı souˇcet) souboru je napˇr. i proveden´a aktualizace programu pomoc´ı tzv. patch˚ u. Pozn´ amka: Zv´ yˇsit bezpeˇcnost syst´emu lze sv´ ym zp˚ usobem i pˇri spouˇstˇen´ı program˚ u. Zde hovoˇr´ıme o ovˇeˇrov´ an´ı podepisovac´ıch“ certifik´at˚ u softwaru, kter´e se prov´ad´ı za asistence operaˇcn´ıho ” syst´emu.
3.7
Mechanismy a modely ˇ s´ıˇ ren´ı
Poˇc´ıtaˇcov´e viry se sv´ ym chov´ an´ım a zp˚ usobem ˇs´ıˇren´ı pˇr´ıliˇs neliˇs´ı od klasick´ ych biologick´ ych patogen˚ u. Proto se poˇc´ıtaˇcov´ y program napadaj´ıc´ı zraniteln´e syst´emy naz´ yv´a tak´e virus“ ” (latinsky virus, coˇz znamen´ a jed“, zhouba“). ” ” Sledov´ an´ı pr˚ ubˇehu n´ akazy biologick´ ym virem v re´aln´em prostˇred´ı je velice obt´ıˇzn´e. T´ımto probl´emem se zab´ yvalo mnoho studi´ı, dnes se prov´ad´ı pˇrev´aˇznˇe jako poˇc´ıtaˇcov´e simulace, napˇr. pomoc´ı celul´ arn´ıch automat˚ u – CA (Cellular Automata), coˇz jsou diskr´etn´ı modely, kter´ ymi se zab´ yv´ ame v teorii syst´em˚ u, matematice a teoretick´e biologii. Buˇ nkou v celul´ arn´ım automatu je koneˇcn´ y automat, FSA (Finite State Automaton). Pˇrevratn´e v´ ysledky v oblasti pˇredpovˇed´ı ˇs´ıˇren´ı epidemi´ı pˇrinesl projekt nazvan´ y Where’s George? [40]. Projekt byl zamˇeˇren na sledov´an´ı pohybu bankovek v USA. Z´ıskan´a data odhalila zaj´ımav´e statistick´e z´ akony o pohybu osob ve Spojen´ ych st´atech americk´ ych a pomohla k v´ yvoji matematick´eho popisu, kter´ y m˚ uˇze b´ yt pouˇzit k modelov´an´ı ˇs´ıˇren´ı infekˇcn´ıch nemoc´ı v dan´e zemi. Autoˇri projektu (studie) Where’s George? vˇeˇr´ı, ˇze takto z´ıskan´e v´ ysledky v´ yraznˇe vylepˇs´ı pˇredpovˇedi o geografick´em ˇs´ıˇren´ı epidemi´ı [39]. Nakaˇzen´ y hostitel je takov´ y hostitel, kter´ y vykazuje pˇr´ıznaky n´akazy. Symptomy jsou vˇetˇsinou mechanismy, kter´e viru pom´ahaj´ı ˇs´ıˇrit se na dalˇs´ı hostitele. Vztahy mezi jednotliv´ ymi f´ azemi infekce jsou na obr´ azku 3.6 [6].
26
Obr´azek 3.6: Vztah mezi infekˇcnost´ı a virov´ ymi symptomy (popisky nad ˇcasovou osou popisuj´ı infekˇcnost, zat´ımco pod osou dynamiku n´akazy)
3.7.1
F´ aze virov´ e n´ akazy
• Obdob´ı skr´ yv´ an´ı V pr˚ ubˇehu ran´eho st´ adia infekce, kdy si virus buduje schopnost ˇs´ıˇren´ı na nov´eho hostitele. • Infekˇ cn´ı obdob´ı V t´eto f´ azi je virus jiˇz nakaˇzliv´ y a m˚ uˇze se pˇrirozen´ ymi mechanismy ˇs´ıˇren´ı pˇren´aˇset na jin´e hostitele. • Odstranˇ en´ı V z´ avislosti na hostiteli – z´ısk´an´ı imunity nebo jeho smrt – v t´eto f´azi nen´ı virus schopen dalˇs´ıho ˇs´ıˇren´ı. • Inkubaˇ cn´ı doba Tato f´ aze infekce se nemus´ı u hostitele projevovat ˇz´adn´ ymi pˇr´ıznaky. Bˇehem pr˚ uniku t´eto f´ aze a f´ aze infekˇcn´ıho obdob´ı se virus ˇs´ıˇr´ı nejv´ıce. Je to d´ano t´ım, ˇze hostitel dosud nem´ a ponˇet´ı o tom, ˇze je pˇrenaˇseˇcem viru a udrˇzuje norm´aln´ı kontakt s ostatn´ımi. • Symptomatick´ e obdob´ı Posledn´ı f´ az´ı infekce je symptomatick´e obdob´ı, kdy jsou jiˇz patrn´e zn´amky n´akazy.
3.7.2
ˇ ıˇ S´ ren´ı
Modely ˇs´ıˇren´ı viru jsou navrhov´any z mnoha d˚ uvod˚ u. Epidemiologov´e potˇrebuj´ı jednoduch´e modely k testov´ an´ı dopadu specifick´ ych parametr˚ u na celkov´e chov´an´ı epidemi´ı. V poˇc´ıtaˇcov´e vˇedˇe se studiem ˇs´ıˇren´ı biologick´ ych vir˚ u a aplikac´ı poznatk˚ u do svˇeta poˇc´ıtaˇc˚ u snaˇz´ıme pˇredpov´ıdat rychlost ˇs´ıˇren´ı a dopady infekce zp˚ usoben´e malwarem. Pˇrestoˇze se m´ısto skuteˇcn´eho svˇeta pohybujeme v prostˇred´ı Internetu, d´avaj´ı v´ ysledky simulac´ı mnohdy pˇrekvapivˇe pˇresn´e v´ ysledky [5]. Poˇc´ıtaˇcov´ y virus m˚ uˇze b´ yt naps´an tak, aby se dok´azal ˇs´ıˇrit na libovolnou platformu. Obr´azek 3.7 bude slouˇzit jako modelov´a situace, kterou si detailnˇeji pˇredstav´ıme. Z pohledu modelov´e organizace je okoln´ı svˇet pln´ y poˇc´ıtaˇcov´ ych vir˚ u, jeˇz se snaˇz´ı proniknout skrze jej´ı polopropustn´e hranice, kter´e ji oddˇeluj´ı od vnˇejˇs´ıho prostˇred´ı. Frekvence pokus˚ u o pr˚ unik z´ avis´ı na poˇctu virov´ ych n´akaz v prostˇred´ı (napˇr. Internetu), d´ale na poˇctu poˇc´ıtaˇc˚ u v dan´e organizaci a na propustnosti“ hranic organizace (odolnosti bezpeˇcnostn´ıch ” 27
ˇıˇren´ı poˇc´ıtaˇcov´eho viru z perspektivy organizace; b´ıl´e objekty“ reprezentuj´ı Obr´azek 3.7: S´ ” nenakaˇzen´e poˇc´ıtaˇce, ˇcern´e nakaˇzen´e poˇc´ıtaˇce a ˇsed´e poˇc´ıtaˇce, jeˇz jsou pr´avˇe v procesu nakaˇzen´ı virem. a): virus pronik´ a za hranice organizace z okoln´ıho svˇeta – zaˇc´atek virov´eho incidentu. b): n´ akaza se ˇs´ıˇr´ı na ostatn´ı poˇc´ıtaˇce v r´amci organizace – rozsah n´akazy je vyj´adˇren poˇctem poˇc´ıtaˇc˚ u, na kter´ ych je n´akaza objevena a odstranˇena.
opatˇren´ı). Dˇr´ıve ˇci pozdˇeji si virus najde cestu dovnitˇr. Okamˇzik pr˚ uniku viru pˇres hranice organizace znaˇc´ı zaˇc´ atek virov´eho incidentu [23]. Poˇcet nov´ ych vir˚ u stabilnˇe roste, ale nezvyˇsuje se exponenci´alnˇe. M´ıra schopnosti ˇs´ıˇrit se je u kaˇzd´eho viru r˚ uzn´ a. V teoretick´ ych modelech zamˇeˇren´ ych na porozumˇen´ı zp˚ usob˚ um, jak se poˇc´ıtaˇcov´e viry ˇs´ıˇr´ı (viz [23]), existuj´ı pouze dva stavy sledovan´eho syst´emu. Syst´em bud’ je nakaˇzen virem, nebo nen´ı. Pokud je nakaˇzen, existuje jist´a pravdˇepodobnost, ˇze kaˇzd´ y den pˇrijde do kontaktu“ s jin´ ymi syst´emy a dojde k pˇrenosu viru. V souˇcasnosti se ” pˇrenos dˇeje sp´ıˇse skrze poˇc´ıtaˇcovou s´ıt’, dˇr´ıve to bylo zpravidla prostˇrednictv´ım disket. Tuto pravdˇepodobnost kontaktu naz´ yv´ame porodnost“ (birth rate) viru. Podobnˇe exis” tuje nˇejak´ a pravdˇepodobnost objeven´ı n´akazy v syst´emu a jej´ı odstranˇen´ı. Pak hovoˇr´ıme o tzv. u ´mrtnosti“ (death rate) viru. ” Dvˇe zm´ınˇen´e pravdˇepodobnosti jsou ovlivˇ nov´any mnoha faktory. Jednak zp˚ usobem, kter´ y konkr´etn´ı virus pouˇz´ıv´ a k replikaci a ˇs´ıˇren´ı, d´ale t´ım, jak rychle je v syst´emu objeven a eliminov´ an (vlivy: zkuˇsenost uˇzivatele, ˇcinnost viru, pouˇz´ıv´an´ı antivirov´eho software). Podle v´ yzkumu, prezentovan´eho v [23], je z´asadn´ı zjiˇstˇen´ı existence jist´e prahov´e hodnoty epidemie (epidemic threshold ). Nad touto hodnotou se virus ˇs´ıˇrit m˚ uˇze, pod nikoli. Pokud je porodnost“ viru vˇetˇs´ı neˇz u ´mrtnost“, m´a virus ˇsanci se u ´spˇeˇsnˇe ˇs´ıˇrit (i kdyˇz ” ” m˚ uˇze tak´e zaniknout dˇr´ıve, neˇz se masovˇe rozˇs´ıˇr´ı). Dalˇs´ı pozoruhodn´ y z´avˇer tohoto v´ yzkumu je, ˇze rychlost rozˇs´ıˇren´ı viru m˚ uˇze b´ yt mnohem menˇs´ı, neˇz je exponenci´aln´ı, kter´a b´ yv´ a pˇredpov´ıd´ ana v jedn´e publikovan´e teorii [21]. Na obr´azku 3.8, zm´ınˇen´e studie, je zn´azornˇeno typick´e chov´ an´ı v prostˇred´ı nad prahovou hodnotou. Jestliˇze je porodnost“ menˇs´ı neˇz u ´mrtnost“ (kdyˇz je virus v syst´emu objeven a elimi” ” nov´an rychleji, neˇz se ˇs´ıˇr´ı), pak nem˚ uˇze doj´ıt k masov´emu rozˇs´ıˇren´ı. M˚ uˇze se sice ˇs´ıˇrit na nˇekolik poˇc´ıtaˇc˚ u po jistou dobu, ale pot´e bude odhalen a eliminov´an z cel´e populace (stane se mrtv´ ym“). Toto chov´ an´ı ilustruje obr´azek 3.9. ”
28
Obr´azek 3.8: Nad prahovou hodnotou rozˇs´ıˇren´ı viru nar˚ ust´a rychlost´ı, kter´a z´avis´ı na mnoha faktorech, pak se ust´ al´ı v urˇcit´e rovnov´aze (v t´eto simulaci porodnost“ viru 5-kr´ at ” pˇrevyˇsovala u ´mrtnost“) ”
Obr´azek 3.9: Pod prahovou hodnotou sice mohou propuknout mal´e incidenty, ovˇsem vy” huben´ı“ n´ akazy je nevyhnuteln´e (v t´eto simulaci byla porodnost“ viru o 10 % menˇs´ı, ” neˇz u ´mrtnost“; nav´ıc je zaj´ımav´e, ˇze horizont´aln´ı i vertik´aln´ı stupnice se velmi liˇs´ı od ” pˇredchoz´ıho pˇr´ıpadu, viz obr´ azek 3.8)
3.8
Anal´ yza nebezpeˇ cnosti malwaru
Problematika okolo malwaru je pomˇernˇe dynamick´a. Uv´ad´ı se, ˇze se dennˇe na Internetu objevuje nˇekolik des´ıtek nov´ ych aktivn´ıch poˇc´ıtaˇcov´ ych vir˚ u a ˇcerv˚ u. Pˇri takov´em mnoˇzstv´ı je obt´ıˇzn´e pˇresnˇe odhadnout ztr´ aty zp˚ usoben´e u ´toky. Do kalkulac´ı by se jistˇe daly zahrnout i mimoˇr´ adn´e v´ ydaje firem do dalˇs´ıch bezpeˇcnostn´ıch opatˇren´ı (HW, SW, bezpeˇcnostn´ı politika), kter´e se zav´ adˇej´ı bezprostˇrednˇe po nˇejak´em v´ yznamn´em bezpeˇcnostn´ım incidentu. Intervaly mezi incidenty, jak ukazuje ˇzebˇr´ıˇcek Top 10 nejv´ıce devastuj´ıc´ıch vir˚ u, nejsou nikterak dlouh´e. Je ot´ azkou ˇcasu, kdy pˇrijde dalˇs´ı drtiv´ yu ´tok ze strany malwaru. Zd´a se, ˇze v´ yˇse ˇskod ˇ astky nap´achan´ ych p˚ usoben´ım tˇechto z´ akeˇrn´ ych program˚ u nen´ı shora nikterak omezena. C´ v ˇr´adech milion˚ u americk´ ych dolar˚ u, realita pˇred dvˇema dek´adami, byly mnohon´asobnˇe pˇrekon´ any u ´toky za posledn´ıch deset let. Trh s bezpeˇcnostn´ımi produkty je naplnˇen podobn´ ymi softwarov´ ymi i hardwarov´ ymi
29
ˇ adn´a ochrana nen´ı 100%, ale provozovat aktualizoˇreˇsen´ımi zac´ılen´ ymi stejn´ ym smˇerem. Z´ van´ y OS s doplˇ nkov´ ymi programy (antivirov´ y software, anti-spyware, firewall, bezpeˇcnˇejˇs´ı internetov´ y prohl´ıˇzeˇc) je v dneˇsn´ı dobˇe absolutn´ı nutnost´ı. Obecnˇe vˇsechen potenci´alnˇe zraniteln´ y software by mˇel b´ yt udrˇzov´an a pravidelnˇe aktualizov´an. Ke sloˇzitˇejˇs´ım, avˇsak obdobnˇe d˚ uleˇzit´ ym, u ´kon˚ um patˇr´ı spr´avn´a konfigurace (ve smyslu bezpeˇcnosti) vˇseho, co lze jakkoli pˇripojit k poˇc´ıtaˇcov´e s´ıti. Pokud je toto vˇse splnˇeno, zb´ yv´ a posledn´ı – nadm´ıru d˚ uleˇzit´ a souˇc´astka k tomu, aby cel´ y stroj“ spr´avnˇe fungoval – tou je ” koneˇcnˇe spr´ avn´e a uvˇedomˇel´e chov´an´ı uˇzivatel˚ u. Bezpeˇcnosti a s n´ı souvisej´ıc´ım oblastem budeme vˇenovat pozornost jeˇstˇe v jedn´e z n´ asleduj´ıc´ıch kapitol.
3.8.1
Top 10 – Nejdestruktivnˇ ejˇ s´ı viry vˇ sech dob
Tato ˇc´ ast pˇrin´ aˇs´ı pˇrehled o des´ıtce nejdestruktivnˇejˇs´ıho poˇc´ıtaˇcov´eho malwaru vˇsech dob (ˇrazeno chronologicky) [9]. • CIH a.k.a. Chernobyl (1998) Odhadovan´ a zp˚ usoben´ a ˇskoda: 20–80 mil. $. P˚ uvodem z Tchaj-wanu, napadal EXE soubory OS Windows 95/98/ME. Mazal data, pˇrepisoval BIOS a zabraˇ noval nabootov´ an´ı poˇc´ıtaˇce. • Melissa (1999) Odhadovan´ a zp˚ usoben´ a ˇskoda: 300–600 mil. $. Nakaˇzeno aˇz 20 % vˇsech firemn´ıch poˇ ˇc´ıtaˇc˚ u. S´ıˇril se pomoc´ı programu MS Outlook. Modifikoval dokumenty form´atu MS Word. • ILOVEYOU a.k.a. Loveletter (2000) ˇ Odhadovan´ a zp˚ usoben´ a ˇskoda: 10–15 mld. $. P˚ uvodem z Filip´ın. Cerv se ˇs´ıˇril pomoc´ı e-mail˚ u, pˇrepisoval hudebn´ı a grafick´e form´aty soubor˚ u. Vyhled´aval nav´ıc hesla a pos´ılal je e-mailem autorovi viru. • Code Red (2001) Odhadovan´ a zp˚ usoben´ a ˇskoda: 8,7 mld. $. Navrˇzen za u ´ˇcelem zp˚ usobit maxim´aln´ı ˇskodu. Napadal syst´emy IIS (Internet Information Server ). Po dobu 20 dn´ı zobrazoval zpr´ avu: "HELLO! Welcome to http://www.worm.com! Hacked By Chinese!" na webov´ ych str´ ank´ ach bˇeˇz´ıc´ıch pod IIS vˇsech infikovan´ ych syst´em˚ u, pot´e prov´adˇel u ´toky typu DoS. • SQL Slammer a.k.a. Sapphire (2003) Odhadovan´ a zp˚ usoben´ a ˇskoda: 1,3 mld. $. C´ılem nebyly jednotliv´e stanice, ale servery. Mˇel negativn´ı dopad na fungov´an´ı cel´eho Internetu. • Blaster a.k.a. Lovsan (2003) Odhadovan´ a zp˚ usoben´ a ˇskoda: 2–10 mld. $. Napadal syst´emy OS Windows 2000/XP. Zp˚ usoboval vyp´ın´ an´ı syst´emu napaden´eho poˇc´ıtaˇce. • Sobig.F (2003) Odhadovan´ a zp˚ usoben´ a ˇskoda: 5–10 mld. $. Napadal prostˇrednictv´ım e-mailu. Dok´azal vygenerovat milion sv´ ych vlastn´ıch kopi´ı za dobu 24 hodin. Za identifikaci autora nab´ıdl Microsoft odmˇenu ve v´ yˇsi 250 000 $.
30
• Bagle a.k.a. Beagle (2004) Odhadovan´ a zp˚ usoben´ a ˇskoda: Des´ıtky mld. $. Tento ˇcerv se ˇs´ıˇril opˇet prostˇrednictv´ım e-mailu jako pˇr´ıloha. Existuje aˇz 100 variant tohoto malwaru. V syst´emu zˇrizoval zadn´ı vr´ atka“. Oznaˇcov´ an za pr˚ ukopn´ıka – prvn´ı malware, kter´ y byl vytvoˇren pro ” finanˇcn´ı zisk. • MyDoom (2004) Odhadovan´ a zp˚ usoben´ a ˇskoda: Des´ıtky mld. $. V dobˇe nejsilnˇejˇs´ıho p˚ usoben´ı zp˚ usoboval zpomalen´ı naˇc´ıt´ an´ı webov´ ych str´anek o 50 % a v´ ykon cel´eho Internetu asi o 10 %. • Sasser (2004) Odhadovan´ a zp˚ usoben´ a ˇskoda: Des´ıtky mld. $. Nepouˇz´ıval k ˇs´ıˇren´ı e-mail, ale zneuˇz´ıval bezpeˇcnostn´ı slabiny v neaktualizovan´ ych OS Windows 2000/XP. Zp˚ usoboval p´ady a nestabilitu napaden´ ych syst´em˚ u.
31
Kapitola 4
Kryptovirologie 4.1
Viry a kryptografie
Techniky ukr´ yv´ an´ı, resp. zatemˇ nov´an´ı vlastn´ıho k´odu u vir˚ u, jsme si pˇredstavili v kapitole 3. Jako odpovˇed’ na viry ukr´ yvaj´ıc´ı se pomoc´ı symetrick´e kryptografie pˇriˇsli v´ yrobci antivirov´ ych produkt˚ u s r˚ uzn´ ymi podobami implementace tzv. p´ıskoviˇstˇe“ (sandbox environ” ment). Jde v podstatˇe o emul´ ator syst´emu, specifick´ y pˇr´ıklad virtualizace. T´ımto se antiviry snaˇz´ı pˇresvˇedˇcit virus (resp. pouze jistou ˇc´ast – dekryptor), aby se spustil (v domnˇen´ı, ˇze bˇeˇz´ı pˇr´ımo v hostitelsk´em syst´emu), deˇsifroval a odkryl tak sv˚ uj vlastn´ı k´od. Kompletn´ı a vˇerohodn´ a emulace prostˇred´ı antivirem je nezbytn´a z toho d˚ uvodu, ˇze sofistikovan´e viry detekˇcn´ı techniky antivirov´ ych spoleˇcnost´ı znaj´ı a m´ıvaj´ı implementov´any obrann´e funkce. Takov´e funkce, kter´e dok´aˇzou odhalit, ˇze syst´em, na nˇemˇz se m´a dekryptor viru spustit a deˇsifrovat – odhalit – tˇelo samotn´eho viru, nen´ı skuteˇcn´ y hostitelsk´ y syst´em, ale ˇze jde o snahu nepˇr´ atelsk´eho softwaru odhalit a zlikvidovat skr´ yvaj´ıc´ı se virus. Pokud se antiviru podaˇr´ı pˇresvˇedˇcit virus, aby se odhalil a spustil, pˇrich´az´ı na ˇradu klasick´e, dˇr´ıve popsan´e detekˇcn´ı metody. I kdyˇz jde v tomto pˇr´ıpadˇe o vyuˇzit´ı kryptografie ke skr´ yv´an´ı viru v operaˇcn´ım syst´emu, nehovoˇr´ıme zde st´ ale o skuteˇcn´em kryptoviru. Pojd’me si tento nov´ y pojem pˇredstavit a definovat.
4.2
Kryptovirus
Definice 4.2.1 Kryptovirus (cryptovirus) je poˇc´ıtaˇcov´ y virus, kter´ y vyuˇz´ıv´a kryptografii veˇrejn´ ym kl´ıˇcem. [25]
4.2.1
Koncept
Koncept kryptoviru byl poprv´e pops´an a pˇredstaven v roce 1996. Jde o typ poˇc´ıtaˇcov´eho viru, kter´ y se snaˇz´ı z´ıskat v´ yhodu (vedouc´ı k jeho pˇreˇzit´ı) t´ım, ˇze urˇcit´ ym postupem donut´ı obˇet’ pˇristoupit na dan´ a pravidla hry. V´ yhody dosahuje pˇredevˇs´ım pouˇzit´ım veˇrejn´eho kryptografick´eho kl´ıˇce, kter´ y si nese ve sv´em tˇele. Veˇrejn´ ym kl´ıˇcem obvykle zaˇsifruje symetrick´ y kl´ıˇc relace, j´ımˇz jsou ˇsifrov´ ana d˚ uleˇzit´a data na disku. Po u ´spˇeˇsn´em zaˇsifrov´ an´ı cenn´ ych dat kryptovirus zobraz´ı na obrazovce informaˇcn´ı zpr´ a’ vu o proveden´em u ´toku a potˇrebn´e informace o zp˚ usobu, jak´ ym m´a obˇet viru postupovat, chce-li z´ıskat svoje data zpˇet. Typicky virus za zpˇr´ıstupnˇen´ı zaˇsifrovan´ ych soubor˚ u poˇzaduje zaplacen´ı v´ ykupn´eho [25, 2]. 32
Jelikoˇz odpov´ıdaj´ıc´ı soukrom´ y kl´ıˇc z´asadnˇe nikdy nen´ı souˇc´ast´ı viru, nelze ani po jeho d˚ ukladn´e anal´ yze disasemblov´ an´ım k´odu zaˇsifrovan´a data z´ıskat zpˇet. Z definice asymetrick´e kryptografie plyne, ˇze nen´ı moˇzn´e ze znalosti veˇrejn´eho kl´ıˇce z´ıskat soukrom´ y kl´ıˇc. Pokud chce obˇet’ z´ıskat sv´ a data nazpˇet, mus´ı splnit poˇzadavky u ´toˇcn´ıka. Ten pak poskytne soukrom´ y kl´ıˇc k deˇsifrov´ an´ı pouˇzit´eho symetrick´eho kl´ıˇce relace. Takto vypad´a jednoduch´ y sc´en´aˇr kryptovir´ aln´ıho u ´toku a jeho n´asledky. Ve skuteˇcnosti nen´ı cel´a procedura ani zdaleka tak jednoduch´ a a pˇr´ımoˇcar´ a, jako v tomto uveden´em pˇr´ıkladu. Nutnou podm´ınkou u ´spˇeˇsnosti u ´toku kryptovirem je totiˇz absence datov´ ych z´aloh. Pokud z´alohy existuj´ı (zde je z´ alohou myˇsleno uloˇzen´ı dan´ ych cenn´ ych soubor˚ u mimo napaden´ y syst´em – extern´ı u ´loˇziˇstˇe), nen´ı pro poˇskozen´eho vˇetˇs´ı probl´em napaden´ y syst´em z poˇc´ıtaˇce kompletnˇe odstranit, prov´est jeho novou instalaci a z´alohovan´a data obnovit. Autoˇri kryptovir˚ u mus´ı ˇreˇsit mnoh´e pˇrek´aˇzky br´an´ıc´ı kryptovir˚ um v dotaˇzen´ı u ´toku do zd´arn´eho konce. Pokud by poˇskozen´ y majitel dat souhlasil s podm´ınkami u ´toˇcn´ıka, zaplatil poˇzadovan´e v´ ykupn´e, a pak z´ıskal jeho soukrom´ y kl´ıˇc potˇrebn´ y k obnovˇe soubor˚ u, mohl by ´ jej posl´eze poskytnout i dalˇs´ım obˇetem t´ehoˇz viru (tzn. se stejn´ ym veˇrejn´ ym kl´ıˇcem). Utok by tak ztratil na efektivitˇe. Z pohledu autora viru je moˇzn´ ym ˇreˇsen´ım pouˇzit´ı vlastn´ıho gener´atoru n´ahodn´ ych ˇc´ısel nebo vyuˇzit´ı funkce syst´emu obˇeti a vygenerov´an´ı n´ahodn´eho symetrick´eho kl´ıˇce relace a inicializaˇcn´ıho vektoru (problematika diskutov´ana v kapitole 2) pro pouˇzit´ y algoritmus. Tato dvojice (IV, kl´ıˇc relace) se zaˇsifruje veˇrejn´ ym kl´ıˇcem. Data na disku obˇeti se budou ˇsifrovat symetrick´ ym algoritmem, pro kter´ y se jako symetrick´ y kl´ıˇc a inicializaˇcn´ı vektor pouˇzije pr´ avˇe vygenerovan´ a dvojice. Symetrick´ y kl´ıˇc k ˇsifrov´ an´ı dat je pouˇzit tak´e z toho d˚ uvodu, ˇze symetrick´e algoritmy jsou v ˇsifrov´ an´ı mnohem rychlejˇs´ı neˇz asymetrick´e – pˇrek´aˇzka v podobˇe nepouˇzitelnosti ˇsifrov´an´ı dat asymetrick´ ym algoritmem – veˇrejn´ ym kl´ıˇcem je tedy odstranˇena. Obˇet’ je kryptovirem informov´ana o nastal´e situaci stejnˇe, jako ve sc´en´aˇri u pˇredchoz´ıho zjednoduˇsen´eho pˇr´ıkladu. Novˇe je zde ale poˇzadov´ano zasl´an´ı pouze prvotnˇe vygenerovan´e ´ cn´ık provede deˇsifrov´an´ı sv´ a zaˇsifrovan´e dvojice (IV, kl´ıˇc relace) u ´toˇcn´ıkovi. Utoˇ ym soukrom´ ym kl´ıˇcem a pos´ıl´ a nazpˇet, opˇet po splnˇen´ı poˇzadavk˚ u, kl´ıˇc relace a IV, nyn´ı uˇz v ˇciteln´e podobˇe – neˇsifrovanˇe. Vz´ajemn´ a spolupr´ ace v´ıce obˇet´ı pomoc´ı sd´ılen´ı deˇsifrovac´ıho kl´ıˇce je znemoˇznˇena, nebot’ t´ım je pouze deˇsifrovac´ı symetrick´ y kl´ıˇc, kter´ y se generuje aˇz pˇri napaden´ı poˇc´ıtaˇce kryptovirem a je tedy v pˇr´ıpadˇe kaˇzd´e obˇeti zcela unik´atn´ı. Pod´ıv´ ame-li se na klasick´ y virus vyuˇz´ıvaj´ıc´ı kryptografii ke stejn´emu u ´ˇcelu, nikoli vˇsak jeˇstˇe kryptovirus z definice 4.2.1, je jasn´e, ˇze po podrobn´e anal´ yze bude obsah tˇela viru z pohledu antivirov´eho analytika stejn´ y, jako z pohledu jeho tv˚ urce. Virus v sobˇe obsahuje urˇcit´ y ˇsifrovac´ı kl´ıˇc a algoritmus, kter´ ym se pomoc´ı kl´ıˇce zaˇsifruj´ı urˇcit´a data. V tomto pˇr´ıpadˇe vˇzdy existuje zpˇetn´ y mechanismus – deˇsifrovac´ı algoritmus, kter´ ym lze ˇsifrovan´ a data pˇrev´est zpˇet do p˚ uvodn´ı podoby. St´ale hovoˇr´ıme o symetrick´e kryptografii, kde staˇc´ı pro obˇe zm´ınˇen´e operace jedin´ y kl´ıˇc. To by u viru, s c´ılem vyd´ırat uˇzivatele a poˇzadovat v´ ykupn´e prostˇrednictv´ım zaˇsifrovan´ ych dat, pˇredstavovalo pomˇernˇe slab´e m´ısto. Zjiˇstˇen´ım zp˚ usobu, jak byla data virem zaˇsifrov´ana, by je bylo moˇzn´e tak´e obnovit, samozˇrejmˇe k nelibosti u ´toˇcn´ıka. Naopak pouˇzit´ım asymetrick´e kryptografie pˇrin´aˇs´ı kryptovirus u ´toˇcn´ıkovi nad antivirov´ ym analytikem velkou v´ yhodu. Virus samozˇrejmˇe opˇet obsahuje ˇsifrovac´ı algoritmus a kl´ıˇc, zde jde vˇsak jde o kl´ıˇc veˇrejn´ y. Odpov´ıdaj´ıc´ı soukrom´ y kl´ıˇc v tˇele viru pˇr´ıtomen nen´ı (viz obr´ azek 4.1). Jedin´ a kopie je bezpeˇcnˇe uloˇzena pouze na stranˇe u ´toˇcn´ıka, m˚ uˇze b´ yt napˇr. na jeho ˇcipov´e kartˇe. Kl´ıˇc na ˇcipov´e kartˇe s sebou pˇrin´aˇs´ı pro u ´toˇcn´ıka dalˇs´ı 33
Obr´ azek 4.1: Kryptovirus z pohledu tv˚ urce a antivirov´eho analytika
pˇr´ıjemnou v´ yhodu, a to pro pˇr´ıpad soudn´ıho procesu po jeho odhalen´ı. Muselo by mu b´ yt tak´e dok´ az´ ano, ˇze pouˇzit´ y veˇrejn´ y kl´ıˇc nebyl faleˇsn´ y atd. Detailnˇe je ot´azka viny a neviny u ´toˇcn´ıka v souvislosti s pouˇzit´ım faleˇsn´eho veˇrejn´eho kl´ıˇce rozebr´ana v literatuˇre, viz [25]. Z definice kryptosyst´emu veˇrejn´ ym kl´ıˇcem je zˇrejm´e, ˇze neexistuje zp˚ usob, jak ze znalosti bˇeˇznˇe dostupn´eho veˇrejn´eho kl´ıˇce odvodit odpov´ıdaj´ıc´ı kl´ıˇc soukrom´ y, kter´ ym se ˇsifrovalo. Antivirov´ y analytik nem˚ uˇze tedy ani detailn´ım rozborem viru z jeho veˇrejn´eho kl´ıˇce z´ıskat soukrom´ y kl´ıˇc u ´toˇcn´ıka. S´ıla kryptoviru spoˇc´ıv´ a v principech asymetrick´e kryptografie. Jedin´ ym a teoreticky moˇzno provediteln´ ym ˇreˇsen´ım nepˇr´ıtomnosti soukrom´eho kl´ıˇce na stranˇe obˇeti viru by snad bylo vyuˇzit´ı slab´eho m´ısta samotn´eho ˇsifrovac´ıho algoritmu pouˇzit´eho pˇri u ´toku a prolomen´ı tohoto algoritmu.
4.3
Shrnut´ı
Popsan´ y kryptovirus byl poprv´e pˇredstaven relativnˇe ned´avno. V porovn´an´ı s bˇeˇzn´ ymi poˇc´ıtaˇcov´ ymi viry a jin´ ym ˇskodliv´ ym softwarem by se dalo ˇr´ıci, ˇze u kryptovir˚ u zat´ım nedoˇslo k takov´emu rozˇs´ıˇren´ı, aby se tento relativnˇe nov´ y druh stal hrozbou ˇc´ıslo jedna. Teoreticky nach´ az´ı kryptovirus nejlepˇs´ı uplatnˇen´ı v syst´emu pˇredevˇs´ım v tom pˇr´ıpadˇe, kdy objev´ı nezabezpeˇcen´ a, pˇresto vysoce cenn´a“ data. Nedostateˇcn´e zabezpeˇcen´ı takov´ ych ” syst´em˚ u ale m˚ uˇze b´ yt pˇrekon´ ano dnes zcela bˇeˇzn´ ymi zp˚ usoby, proto z pohledu zajiˇstˇen´ı bezpeˇcnosti nerozliˇsujeme, zda se jedn´a o protiopatˇren´ı zabraˇ nuj´ıc´ı klasick´e nebo kryptovir´aln´ı n´ akaze. Kryptografie byla vˇzdy urˇcena sp´ıˇse k ochranˇe dat a k zajiˇstˇen´ı celkov´e bezpeˇcnosti. Nyn´ı se vˇsak ukazuje, ˇze pˇr´ıtomnost kryptografick´ ych algoritm˚ u v modern´ıch OS paradoxnˇe m˚ uˇze znamenat i velmi v´ aˇznou hrozbu. V pˇr´ıpadˇe, ˇze neexistuj´ı z´alohy dat kryptovirem napaden´eho syst´emu, nevede k jejich obnovˇe zpravidla jin´a cesta, neˇz je splnˇen´ı poˇzadavk˚ u drˇzitele soukrom´eho kl´ıˇce – u ´toˇcn´ıka. Moˇznost vym´ah´an´ı v´ ykupn´eho, pod v´ yhr˚ uˇzkou zveˇrejnˇen´ı z´ıskan´ ych utajovan´ ych firemn´ıch dat, by mohlo pro spoleˇcnosti pohybuj´ıc´ı se ve vysoce konkurenˇcn´ım prostˇred´ı pˇredstavovat v´aˇzn´ y probl´em. 34
Kapitola 5
Implementace Implementaˇcn´ı ˇc´ ast pr´ ace m´ a za c´ıl poslouˇzit jako d˚ ukaz proveditelnosti a pouˇzitelnosti mechanism˚ u popisovan´ ych v pˇredchoz´ıch kapitol´ach. Jako nejvhodnˇejˇs´ı se k tomuto u ´ˇcelu uk´azala b´ yt platforma MS Windows. Cel´ y v´ yvoj (k´odov´an´ı programu) prob´ıhal konkr´etnˇe pod OS Windows XP. Pr´ avˇe Windows XP je v souˇcasnosti nejrozˇs´ıˇrenˇejˇs´ım operaˇcn´ım syst´emem, proto je velice pravdˇepodobn´e, ˇze kryptovir´aln´ı u ´tok zaloˇzen´ y na podobn´em principu, jak´ y je zde prezentov´ an, by v re´alu znamenal v´aˇzn´ y bezpeˇcnostn´ı probl´em. Na zm´ınˇen´em OS byl v´ ysledn´ y program tak´e patˇriˇcnˇe otestov´an, nicm´enˇe pouˇzit´e funkce by mˇely zaruˇcit jeho funkˇcnost (pˇr´ıp. s drobn´ ymi u ´pravami) tak´e na OS Windows 2 000 a novˇe i na Windows Vista. Implementaˇcn´ım jazykem je, tak´e z d˚ uvod˚ u pouˇzit´ı knihovny Windows API, jazyk C. Dobr´a pˇrenositelnost v r´ amci platformy Microsoft Windows je zaruˇcena pouˇzit´ım standardu ISO C99. Jazyk C je vhodn´ ym kandid´atem tak´e z toho d˚ uvodu, ˇze (narozd´ıl od jazyka C++) m´a program´ ator nad sv´ ym programem u ´plnou kontrolu a v´ ysledn´ y k´od je relativnˇe mal´ y. Pozn´ amka: Implementace vyuˇz´ıv´ a nˇekolika funkc´ı a postup˚ u z programu, kter´ ym autoˇri kryptovirologie Adam Young a Moti Yung jiˇz dˇr´ıve prezentovali moˇznosti zneuˇzit´ı n´astroj˚ u knihovny CryptoAPI. Zdrojov´e k´ ody, z nichˇz i tato implementace ideovˇe vych´az´ı, jsou volnˇe dostupn´e ke staˇzen´ı na str´ ank´ ach autor˚ u, viz http://www.cryptovirology.com/.
5.1
Implementaˇ cn´ı prostˇ redky
Softwarov´ e prostˇ redky • operaˇcn´ı syst´em – Windows XP SP2, verze 2002 • virtu´ aln´ı stroj – VMware Player 2.0.3 • n´ astroje – MinGW 5.1.3 (Minimalist GNU for Windows) s GCC 3.4.5 (mingw special) • textov´ y editor – PSPad 4.5.3 • knihovny – Windows API a Cryptography API
35
Hardwarov´ e prostˇ redky • procesor – AMD Athlon XP mobile 3 000+, 2 200 MHz • operaˇcn´ı pamˇet’ – 1 280 MB DDR RAM • disk – 60 GB, 7 200 RPM Pˇreklad lze prov´est pomoc´ı pˇriloˇzen´eho Makefile, kde jako parametry pˇrekladaˇce byly pouˇzity volby: -std=c99 -Wall -W -pedantic -O3.
5.2
CryptoAPI
Kryptografick´e n´ astroje nebyly dˇr´ıve bˇeˇznou souˇc´ast´ı distribuc´ı operaˇcn´ıch syst´em˚ u. Realizace u ´toku s pouˇzit´ım kryptografie veˇrejn´ ym kl´ıˇcem si v minulosti tedy vyˇzadovala zvl´aˇstn´ı implementaci podp˚ urn´ ych funkc´ı. Cel´a z´aleˇzitost pouˇzit´ı kryptografie v aplikac´ıch se velice usnadnila s pˇr´ıchodem Microsoft Windows 95 OEM Service Release 2, s n´ımˇz bylo spoleˇcnˇe distribuov´ ano tak´e aplikaˇcn´ı programov´e rozhran´ı Cryptography API (CryptoAPI) [24]. CryptoAPI bylo vyvinuto jako prostˇredek k usnadnˇen´ı pr´ace program´ator˚ um pˇri v´ yvoji aplikac´ı zaloˇzen´ ych na operaˇcn´ıch syst´emech Microsoft Windows a Windows Server. Program vyvinut´ y na z´ akladˇe studia kryptovirologie, jakoˇzto souˇc´asti t´eto diplomov´e pr´ace, je cel´ y zaloˇzen´ y na moˇznostech plynouc´ıch z pˇr´ıtomnosti CryptoAPI v syst´emech Windows. Demonstruje, jak´e hrozby m˚ uˇze existence kryptografick´ ych n´astroj˚ u v celosvˇetovˇe rozˇs´ıˇren´ ych OS pˇredstavovat pro jejich uˇzivatele. Jeho relativn´ı jednoduchost ukazuje, jak by mohl vypadat malware budoucnosti – vyuˇz´ıvaj´ıc´ı kryptografick´ ych funkc´ı poskytovan´ ych operaˇcn´ımi syst´emy.
5.2.1
CSP
Cryptographic Service Provider neboli CSP je implementace kryptografick´ ych algoritm˚ u pro specifick´e d´elky kl´ıˇc˚ u. CSP sest´av´a z jedn´e nebo v´ıce dynamicky linkovan´ ych knihoven, kter´e implementuj´ı kryptografick´e syst´emov´e programov´e rozhran´ı (CryptoSPI). CSP m˚ uˇze b´ yt implementov´ an v softwaru, jindy zase mohou b´ yt funkce implementov´any hardwarovˇe, napˇr. na ˇcipov´e kartˇe. Pokud CSP neimplementuje vˇsechny sv´e funkce, pak slouˇz´ı jako mezivrstva, kter´ a umoˇzn ˇuje operaˇcn´ımu syst´emu komunikovat s platnou implementac´ı CSP. Platforma Windows m´ a vlastn´ı mnoˇzinu zabudovan´ ych CSP poskytovatel˚ u – Microsoft Cryptographic Service Providers. Pˇrehled vˇsech kryptografick´ ych poskytovatel˚ u uv´ ad´ı n´asleduj´ıc´ı v´ yˇcet [29]: • Microsoft Base Cryptographic Provider • Microsoft Strong Cryptographic Provider • Microsoft Enhanced Cryptographic Provider • Microsoft AES Cryptographic Provider • Microsoft DSS Cryptographic Provider • Microsoft Base DSS and Diffie-Hellman Cryptographic Provider
36
• Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider • Microsoft DSS and Diffie-Hellman / Schannel Cryptographic Provider • Microsoft RSA / Schannel Cryptographic Provider • Microsoft RSA Signature Cryptographic Provider Microsoft Base Cryptographic Provider poskytuje implementaci 512bitov´eho algoritmu RSA a 56bitov´eho DESu. MS Enhanced Cryptographic Provider implementuje 1024bitov´ y RSA, 56bitov´ y DES a triple-DES (3DES). MS Base Cryptographic Provider bohuˇzel nepodporuje kl´ıˇce vˇetˇs´ı neˇz 512 bit˚ u a nen´ı podporov´an ani algoritmus 3DES. V demonstraˇcn´ım programu (pojmenovan´em pˇr´ıhodnˇe cryptovirus.exe) je pouˇzit pr´avˇe zm´ınˇen´ y Microsoft Enhanced Cryptographic Provider. Skuteˇcn´e jm´eno tohoto poskytovatele je MS ENHANCED PROV. Typ pouˇzit´eho poskytovatele je PROV RSA FULL. CSP ukl´ ad´ a p´ ary kl´ıˇc˚ u v nonvolatiln´ı pamˇeti. Softwarovˇe implementovan´e CSP mohou tyto kl´ıˇce ukl´ adat v ˇsifrovan´e podobˇe v registrech (Windows Registry). U CSP v hardwaru se k tomuto u ´ˇcelu pouˇz´ıvaj´ı tzv. tamper-resistant zaˇr´ızen´ı.
5.2.2
Objekt key container
Kryptografick´ y p´ ar kl´ıˇc˚ u je uloˇzen v logick´em datov´em objektu zvan´em kontejner (key container ). Pro kaˇzd´eho klienta (resp. uˇzivatele) CSP udrˇzuje jeden takov´ y kontejner. Kaˇzd´ y kl´ıˇcov´ y kontejner m˚ uˇze uchov´ avat jeden p´ar kl´ıˇc˚ u dan´eho typu, kter´ y je ze strany CSP podporov´ an. Microsoft Base CSP napˇr´ıklad podporuje dva typy kl´ıˇcov´ ych p´ar˚ u: kl´ıˇce k digit´aln´ımu podepisov´ an´ı a p´ ar slouˇz´ıc´ı k v´ ymˇenˇe kl´ıˇc˚ u. Kontejner˚ u m˚ uˇze b´ yt otevˇreno v jednom okamˇziku, ze strany programu, i v´ıce. Pˇri kaˇzd´em vol´ an´ı CryptoSPI mus´ı volan´a funkce specifikovat, kter´ y kl´ıˇcov´ y kontejner m´ a b´ yt pouˇzit. Specifikace kontejneru se prov´ad´ı prostˇrednictv´ım jednoho z parametr˚ u volan´e funkce. Kl´ıˇc generovan´ y pro symetrickou blokovou ˇsifru m´a pro pouˇzit´ y reˇzim CBC (viz kapitola 2) implicitnˇe nastaven nulov´ y inicializaˇcn´ı vektor [24]. Nulov´ y IV m˚ uˇze, a mˇel by, b´ yt zmˇenˇen pomoc´ı CryptoAPI funkce CryptSetKeyParam.
5.3
Pouˇ zit´ e CryptoAPI funkce
Pˇri implementaci byly z CryptoAPI pouˇzity n´asleduj´ıc´ı funkce: • CryptAcquireContext • CryptReleaseContext • CryptGenRandom • CryptGenKey • CryptDeriveKey • CryptSetKeyParam • CryptEncrypt
37
• CryptDecrypt • CryptExportKey • CryptImportKey • CryptDestroyKey • CryptCreateHash • CryptHashData • CryptDestroyHash
5.4
N´ avrh, design a funkˇ cnost programu
V t´eto podkapitole bude podrobnˇeji pops´ana architektura programu s popisem jeho nejzaj´ımavˇejˇs´ıch funkc´ı a ˇcinnost´ı, tak jak je vykon´av´a od okamˇziku spuˇstˇen´ı aˇz do chv´ıle ukonˇcen´ı bˇehu.
5.4.1
F´ aze 1 – spuˇ stˇ en´ı
Po spuˇstˇen´ı na hostitelsk´em syst´emu program nejprve neˇcinnˇe vyˇck´av´a po dobu 60 s (aby ihned neprozradil n´ ahlou aktivitou svoji pˇr´ıtomnost). Kdyˇz uplyne vyˇck´ avac´ı obdob´ı, zjist´ı, zda uˇz v syst´emu nebˇeˇz´ı jin´a instance t´ehoˇz k´odu. Pokud ne, vytvoˇr´ı pojmenovan´ y mutexov´ y objekt. Existence takov´eho mutexu se stejn´ ym jm´enem zp˚ usob´ı, ˇze se dan´ a instance kryptoviru ukonˇc´ı. Tak se zajist´ı, ˇze data nebudou modifikov´ ana dvˇema procesy z´ aroveˇ n. Po testu pˇr´ıtomnosti jin´e instance v syst´emu se program pokus´ı z´ıskat debuggovac´ı pr´ava pro bˇeˇz´ıc´ı proces. Ta jsou v´ yhodn´a pro dalˇs´ı ˇcinnost. V pˇr´ıpadˇe, ˇze byl kryptovirus spuˇstˇen pouze pod bˇeˇzn´ ymi uˇzivatelsk´ ymi pr´avy, nemˇel by moˇznost zasahovat do syst´emov´ ych registr˚ u, mazat nˇekter´e typy soubor˚ u z disku nebo ovlivˇ novat bˇeh ostatn´ıch program˚ u v syst´emu. Bˇeˇznou prax´ı je detekce proces˚ u bˇeˇz´ıc´ıch antivirov´ ych program˚ u a jejich n´asiln´e ukonˇcov´ an´ı, popˇr. tak´e maz´an´ı z disku. Dubuggovac´ı pr´ava umoˇzn ˇuj´ı kryptoviru prov´adˇet nˇekter´e ze zm´ınˇen´ ych praktik. Pˇredpokl´ adejme, ˇze byl proces spuˇstˇen pod administr´atorsk´ ym uˇzivatelsk´ ym u ´ˇctem – tato moˇznost je velice ˇcast´ a a obvykl´a u mnoha uˇzivatel˚ u syst´emu Windows XP. Dalˇs´ım krokem je editace hodnot v registru Windows – program se pokus´ı zablokovat moˇznost spuˇstˇen´ı spr´ avce proces˚ u, a to vytvoˇren´ım a spuˇstˇen´ım k´odu v jazyce VBScript. Nav´ıc pˇrid´ a do registru novou hodnotu, kter´a zajist´ı jeho spuˇstˇen´ı po dalˇs´ım startu syst´emu. Program se tak stane rezidentn´ım.
5.4.2
F´ aze 2 – payload
Po spuˇstˇen´ı a zajiˇstˇen´ı opˇetovn´eho spuˇstˇen´ı po restartu syst´emu program zahajuje vlastn´ı z´akeˇrnou ˇcinnost (payload ). Vol´ an´ım funkce CryptAcquireContext z´ısk´a ovladaˇc (handle) ke kl´ıˇcov´emu kontejneru vybran´eho CSP. Generuje se symetrick´ y kl´ıˇc relace, kter´ ym se budou data ˇsifrovat. Pouˇzit algoritmus 3DES s d´elkou kl´ıˇce 168 bit˚ u. Jako reˇzim byl zvolen m´od CBC. Funkc´ı CryptGenRandom generuje 8 bajt˚ u, kter´e poslouˇz´ı jako inicializaˇcn´ı vektor. Symetrick´emu kl´ıˇci se tento parametr
38
nastav´ı zavol´ an´ım funkce CryptSetKeyParam. CryptExportKey zajist´ı vyexportov´an´ı symetrick´eho kl´ıˇce z CSP, kl´ıˇc je pˇri exportu zaˇsifrov´an veˇrejn´ ym kl´ıˇcem. Je pˇreveden z bin´arn´ı podoby do hexadecim´ aln´ıho tvaru ASCII k´odov´an´ı a uloˇzen do souboru. Za zm´ınku jistˇe stoj´ı fakt, ˇze dvojice asymetrick´ ych kl´ıˇc˚ u pouˇz´ıv´a algoritmus RSA, d´elka kl´ıˇce je 1024 bit˚ u. Dalˇs´ım krokem programu je zjiˇstˇen´ı aktivn´ıch jednotek pevn´ ych disk˚ u v poˇc´ıtaˇci. Aktivn´ı disky se postupnˇe prohledaj´ı. Proch´az´ı vˇsechny soubory na disku, jeden po druh´em, a porovn´ av´ a jejich typ s mnoˇzinou specifikovan´ ych typ˚ u soubor˚ u. Pokud naraz´ı na soubor, kter´ y m´ a b´ yt zaˇsifrov´ an, zavol´ a funkci FileEncrypt. FileEncrypt vytvoˇr´ı nov´ y soubor stejn´eho jm´ena, ale nav´ıc pˇripoj´ı k souboru koncovku .encrypted “, pomoc´ı t´eto koncovky se daj´ı pouh´ ym pohledem na obsah adres´aˇre odliˇsit ” soubory vznikl´e ˇcinnost´ı kryptoviru. Ihned po zaˇsifrov´an´ı je cesta a jm´eno souboru zaps´ano do souboru, kter´ y slouˇz´ı jako seznam soubor˚ u, kter´e jsou drˇzeny jako pˇredmˇet v´ ykupn´eho. Na p˚ uvodn´ı soubor je vol´ ana funkce WipePlaintextFile. Jelikoˇz nen´ı pouˇzit´ y IV ˇz´ adn´ ym tajemstv´ım, je tˇechto 8 bajt˚ u vloˇzeno na zaˇc´atek kaˇzd´eho zaˇsifrovan´eho souboru. Dvojice textov´ ych soubor˚ u vznikl´ ych v t´eto f´azi ˇcinnosti kryptoviru, tj. seznam zaˇsifrovan´ ych soubor˚ u a veˇrejn´ ym kl´ıˇcem ˇsifrovan´ y symetrick´ y kl´ıˇc relace, je nutn´a k obnovˇe dat po splnˇen´ı podm´ınek u ´toˇcn´ıka. Po ukonˇcen´ı t´eto f´ aze dojde ke zniˇcen´ı kl´ıˇcov´eho kontejneru CSP, vˇcetnˇe uloˇzen´ ych kl´ıˇc˚ u, k tomuto u ´ˇcelu CryptoAPI poskytuje funkce CryptDestroyKey a CryptReleaseContext. Program informuje uˇzivatele syst´emu o proveden´ı u ´toku. Pot´e pˇrejde do n´asleduj´ıc´ı f´aze – ˇcek´a, aˇz uˇzivatel z´ısk´ a deˇsifrovan´ y symetrick´ y kl´ıˇc – zadrˇzovan´a data pak mohou b´ yt opˇet zpˇr´ıstupnˇena.
5.4.3
F´ aze 3 – obnova dat
Nyn´ı se virus nach´ az´ı ve f´ azi ˇcek´ an´ı, aˇz uˇzivatel spln´ı stanoven´e podm´ınky a z´ısk´a deˇsifrovan´ y symetrick´ y kl´ıˇc. Pot´e, co je kl´ıˇc k dispozici, kryptovirus jej naˇcte ze souboru a provede import do CSP pomoc´ı funkce CryptImportKey. Kdyˇz byl kl´ıˇc u ´spˇeˇsnˇe importov´an, m˚ uˇze doj´ıt k obnovˇe kryptovirem zadrˇzovan´ ych soubor˚ u. K tomuto u ´ˇcelu slouˇz´ı seznam vytvoˇren´ y v pˇredchoz´ı f´azi. Soubory jsou postupnˇe deˇsifrov´ any do p˚ uvodn´ı podoby. Pro pˇr´ıpad chybn´eho deˇsifrov´an´ı souboru z˚ ust´avaj´ı soubory s pˇr´ıponou .encrypted “ nad´ ale v syst´emu. V pˇr´ıpadˇe jak´ ychkoli komplikac´ı lze tedy postup ” deˇsifrov´ an´ı opakovat. Z bezpeˇcnostn´ıch d˚ uvod˚ u je soukrom´ y kl´ıˇc (komplement veˇrejn´eho kl´ıˇce v tˇele kryptoviru), slouˇz´ıc´ı k deˇsifrov´ an´ı symetrick´eho kl´ıˇce relace, chr´anˇen pomoc´ı hesla. Heslo zn´ a pouze u ´toˇcn´ık a slouˇz´ı zde jen jako pojistka proti pouˇzit´ı soukrom´eho kl´ıˇce jinou osobou, neˇz je autor kryptoviru (´ utoˇcn´ık). Hashovan´e heslo (funkc´ı CryptHashData) bylo pouˇzito k odvozen´ı symetrick´eho kl´ıˇce slouˇz´ıc´ıho pouze k zaˇsifrov´an´ı tajn´eho kl´ıˇce. Odvozen´ı hesla, resp. derivaci z hodnoty parametru, prov´ad´ı funkce CryptDeriveKey.
5.4.4
Rekapitulace pr˚ ubˇ ehu u ´ toku
1. Vygenerov´ an´ı RSA dvojice kl´ıˇc˚ u. 2. Zak´ odov´ an´ı veˇrejn´eho kl´ıˇce do tˇela kryptoviru. 3. Uloˇzen´ı soukrom´eho kl´ıˇce v ˇsifrovan´e podobˇe na disk (popˇr. ˇcipovou kartu) u ´toˇcn´ıka. 4. Spuˇstˇen´ı kryptoviru na c´ılov´em syst´emu.
39
5. Zaˇsifrov´ an´ı dat uˇzivatele n´ ahodnˇe generovan´ ym symetrick´ ym kl´ıˇcem relace. 6. Poskytnut´ı ˇsifrovan´eho symetrick´eho kl´ıˇce relace uˇzivateli. 7. Poˇzadov´ an´ı v´ ykupn´eho v´ ymˇenou za deˇsifrov´an´ı pouˇzit´eho kl´ıˇce. 8. Vyjedn´ av´ an´ı a splnˇen´ı podm´ınek u ´toˇcn´ıka. 9. Deˇsifrov´ an´ı kl´ıˇce relace pomoc´ı soukrom´eho kl´ıˇce na stranˇe u ´toˇcn´ıka. 10. Obnoven´ı (deˇsifrov´ an´ı) dat pomoc´ı z´ıskan´eho symetrick´eho kl´ıˇce relace.
5.5
Efektivnost
Protoˇze je c´ılem kaˇzd´eho malwaru splnit sv´e posl´an´ı dˇr´ıve, neˇz bude v syst´emu objeven a zlikvidov´ an, je pro autora takov´eho ˇskodliv´eho k´odu takˇrka pravidlem, aby byl jeho program pokud moˇzno co nejmenˇs´ı, dostateˇcnˇe rychl´ y a svou ˇcinnost´ı v napaden´em syst´emu pˇr´ıliˇs neupout´ aval pozornost, alespoˇ n do t´e doby, neˇz dojde k jeho u ´spˇeˇsn´emu ˇs´ıˇren´ı na dalˇs´ı hostitelsk´e syst´emy. Kryptovirus se od jin´ ych vir˚ u liˇs´ı pouze svou charakteristickou f´az´ı ˇcinnosti malwaru (funkc´ı), kter´ a se naz´ yv´ a payload. Jin´e f´aze, resp. funkce malwaru, jsou naprosto totoˇzn´e pro vˇsechny druhy tˇechto program˚ u. Efektivitou zde ch´ apeme hlavnˇe rychlost, jakou dok´aˇze kryptovirus splnit sv´e specifick´e posl´ an´ı a mnoˇzstv´ı spotˇrebovan´ ych syst´emov´ ych zdroj˚ u za dobu p˚ usoben´ı. Mˇeˇren´ı efektivnosti implementovan´ ych funkc´ı prob´ıhalo na referenˇcn´ım stroji, na kter´em prob´ıhala i implementace, nˇekter´e parametry byly z d˚ uvod˚ u bezpeˇcnosti mˇeˇreny na virtu´aln´ım stroji. Pomoc´ı vol´ an´ı funkce clock, resp. konstrukc´ı clock()/CLOCKS_PER_SEC, byla zjiˇst’ov´ana doba bˇehu programu. Rozd´ıl mezi dvˇema ˇcasy, pˇred a po zavol´an´ı funkce FileEncrypt, n´am d´ av´ a dobu trv´ an´ı (v sekund´ ach). Testov´ an´ım efektivnosti implementace bylo zjiˇstˇeno, ˇze doba potˇrebn´a k prohled´ an´ı cel´eho obsahu pevn´eho disku (cca 300 000 soubor˚ u) trv´a pˇribliˇznˇe 90 sekund, s pˇrihl´ednut´ım k moment´ aln´ımu vyt´ıˇzen´ı procesoru a mnoˇzstv´ı spuˇstˇen´ ych program˚ u. Namˇeˇren´a doba 90 sekund by mohla pˇredstavovat okamˇzik vyzrazen´ı pˇr´ıtomnosti kryptoviru v syst´emu. Jelikoˇz prob´ıh´ a ˇsifrov´ an´ı vybran´ ych soubor˚ u ihned pˇri nalezen´ı v syst´emu, celkov´a doba vyt´ıˇzenosti CPU bude jistˇe mnohem delˇs´ı – z´avis´ı na v´ ykonu poˇc´ıtaˇce, poˇctu soubor˚ u na disku a hlavnˇe na tom, kolik soubor˚ u spln´ı vyhled´avac´ı kriteria programu. Rychlost samotn´eho ˇsifrov´ an´ı dat bylo testov´ano na mal´ ych (100 KB), stˇrednˇe velk´ ych (2 MB) i velk´ ych souborech (30 MB). Pr˚ umˇern´a rychlost pak dosahovala hodnot okolo 8,5 MB/s, coˇz je v´ ysledek pomˇernˇe pˇr´ızniv´ y, protoˇze velikosti c´ılov´ ych soubor˚ u (pˇrev´aˇznˇe dokumenty) zpravidla nedosahuj´ı zvl´aˇst’ extr´emn´ıch hodnot a ani se nepˇredpokl´ad´a vˇetˇs´ı celkov´ y objem nalezen´ ych cenn´ ych“ dat. Efektivnost kryptoviru je z´avisl´a tak´e na volbˇe ” typ˚ u soubor˚ u, kter´e se budou ˇsifrovat. K prohled´ an´ı disku a zaˇsifrov´ an´ı nˇekolika des´ıtek vybran´ ych soubor˚ u (velikosti jednotek MB) staˇcilo ˇr´ adovˇe nˇekolik des´ıtek sekund. To je dostateˇcnˇe kr´atk´a doba na to, aby si napaden´ y uˇzivatel stihl uvˇedomit, ˇze se v syst´emu dˇeje nˇeco nekal´eho, a staˇcil zamezit kryptoviru dokonˇcit jeho posl´ an´ı. Spoleˇcnˇe s blokov´an´ım spouˇstˇen´ı nˇekter´ ych syst´emov´ ych n´astroj˚ u (editac´ı pˇr´ısluˇsn´ ych hodnot v registrech), jako je napˇr. spr´avce proces˚ u, a tak je t´ımto programem prakticky nemoˇzn´e vˇcas hrozbu lokalizovat a zabr´anit tak nap´ach´ an´ı ˇskody.
40
5.6
Maz´ an´ı soubor˚ u
Problematika bezpeˇcn´eho maz´ an´ı soubor˚ u je v dan´em kontextu velmi d˚ uleˇzit´a. Aby mohl b´ yt u ´tok kryptovirem smysluplnˇe proveden, je kromˇe u ´spˇeˇsn´eho zaˇsifrov´an´ı dat na disku tak´e potˇreba jejich nen´ avratn´e odstranˇen´ı – smaz´an´ı. Pokud by k smaz´an´ı v˚ ubec nedoˇslo nebo by nebylo provedeno zcela nen´avratnˇe, k ˇz´adn´emu u ´toku typu DoS by v podstatˇe nedoˇslo. Pokud by soubory po skonˇcen´ı t´eto f´aze kryptovir´aln´ıho u ´toku z˚ ustaly v nˇejak´em stavu i nad´ ale na disku, mohly by b´ yt tyto nespr´avnˇe smazan´e soubory pomoc´ı dostupn´ ych program˚ u opˇet obnoveny. Z pohledu u ´toˇcn´ıka je takov´ y postup neakceptovateln´ y, proto je nen´avratn´e maz´ an´ı soubor˚ u jednou z kl´ıˇcov´ ych podm´ınek u ´spˇeˇsnosti kryptovir´aln´ıho u ´toku. Klasick´e smaz´ an´ı souboru neodstran´ı skuteˇcnˇe jeho obsah z disku, pouze odstran´ı z´aznam o souboru z tabulky, kde se udrˇzuje seznam soubor˚ u a jejich struktura v r´amci souborov´eho syst´emu. Protoˇze bin´ arn´ı data (posloupnost hodnot 1 a 0) jsou fyzicky st´ale na disku, pouze m´ısto, kde jsou uloˇzena, je v syst´emu oznaˇcen´e jako voln´e – je na nˇej tedy moˇzn´e zapisovat jin´a data, existuje st´ ale vysok´ a pravdˇepodobnost, ˇze p˚ ujdou smazan´a“ data obnovit. ” Aby se zabr´ anilo takov´ ym praktik´am pomoc´ı specializovan´ ych program˚ u, prov´ad´ı se bezpeˇcn´e, tzn. nevratn´e maz´ an´ı dat. Jedin´ y zp˚ usob, jak data trvale odstranit, je jejich nˇekolikan´ asobn´ y pˇrepis zcela n´ ahodn´ ymi hodnotami. Opravdu bezpeˇcn´e smaz´an´ı dat je netrivi´ aln´ı z´ aleˇzitost, viz [8]. Maz´an´ı klasifikovan´ ych dat z pevn´ ych disk˚ u se u nˇekter´ ych instituc´ı americk´e st´ atn´ı spr´ avy bere opravdu velmi v´aˇznˇe. Jako standard maz´an´ı disk˚ u pouˇz´ıvaj´ı aˇz sedmin´ asobn´ y pˇrepis cel´eho obsahu disku n´ahodn´ ymi bity. Po t´eto proceduˇre nav´ıc n´ asleduje jeˇstˇe fyzick´ a likvidace disku roztaven´ım. ´ cn´ık zˇrejmˇe nepotˇrebuje pˇri kryptovir´aln´ım u Utoˇ ´toku zaj´ıt do podobn´ ych extr´em˚ u. Pro takov´e potˇreby naprosto postaˇcuje jednoduch´ y, popˇr. dvojn´asobn´ y, pˇrepis p˚ uvodn´ıho souboru n´ ahodn´ ymi daty. V implementovan´em demonstraˇcn´ım programu cryptovirus.exe k u ´ˇcelu permanentn´ıho smaz´ an´ı p˚ uvodn´ıch soubor˚ u obˇeti slouˇz´ı funkce WipePlaintextFile. Ta byla implementov´ ana s ohledem na moˇznosti kryptoviru. Funkce je vol´ana vˇzdy po kaˇzd´em zaˇsifrov´ an´ı p˚ uvodn´ıho souboru. Program cryptovirus.exe zjist´ı pˇresnou velikost souboru, ten pak v jeho cel´e d´elce pˇrep´ıˇse n´ ahodn´ ymi bity, kter´e byly vygenerov´any pomoc´ı funkce CryptGenRandom po spuˇstˇen´ı instance tohoto programu. CryptGenRandom generuje n´ ahodn´a data pomoc´ı kryptograficky bezpeˇcn´eho gener´atoru n´ahodn´ ych ˇc´ısel. CryptoAPI ukl´ ad´a seed pro gener´ator n´ahodn´ ych ˇc´ısel pro kaˇzd´eho uˇzivatele a jeho zdrojem jsou jak ud´alosti z perifern´ıch zaˇr´ızen´ı (kl´avesnice, myˇs), tak i jin´ a syst´emov´ a data (ID proces˚ u, ID vl´aken, syst´emov´e hodiny, stav pamˇeti, poˇcet voln´ ych diskov´ ych cluster˚ u, . . . ). Tato data se hashuj´ı pomoc´ı algoritmu SHA-1 a v´ ystup je pouˇzit jako seed RC4 datov´eho proudu. Aˇz teprve v´ ysledek cel´e t´eto procedury se pouˇzije k aktualizaci uloˇzen´eho seed u. Data z´ıskan´ a funkc´ı CryptGenRandom lze povaˇzovat k dan´emu u ´ˇcelu za dostateˇcnˇe n´ ahodn´ a. Takov´eto smaz´ an´ı soubor˚ u je pro naprostou vˇetˇsinu uˇzivatel˚ u postaˇcuj´ıc´ı. Obnoven´ı dat dˇr´ıve pˇrepsan´ ych n´ ahodn´ ymi bity je t´emˇeˇr nemoˇzn´e. Dokonce i pro zkuˇsen´eho uˇzivatele vybaven´eho patˇriˇcn´ ym softwarem. T´ım je podm´ınka pro u ´spˇeˇsnˇe proveden´ yu ´tok kryptovirem splnˇena.
41
5.7
Zhodnocen´ı v´ ysledk˚ u
Vyuˇzit´ım nˇekolika funkc´ı knihoven CryptoAPI a WinAPI vznikl program, kter´ y dok´ aˇze vyhled´ avat na disku potenci´ alnˇe cenn´e soubory (dokumenty, fotografie, e-cash) a ˇsifruje je veˇrejn´ ym kl´ıˇcem. Doplnˇen´ım o replikaˇcn´ı ˇc´ ast a implementac´ı protokolu komunikace obˇeti s u ´toˇcn´ıkem by se z programu mohla st´ at potenci´aln´ı internetov´a hrozba. Jelikoˇz ale u vir˚ u nejde pouze o payload, musela by b´ yt pˇrid´ana technika pr˚ uniku do syst´emu (vyuˇzit´ım neopraven´e bezpeˇcnostn´ı d´ıry SW nebo e-mail spolu s oklam´an´ım uˇzivatele) a nov´a – origin´aln´ı technika zamezuj´ıc´ı detekci souˇcasn´ ymi antivirov´ ymi programy, aby se kryptovirus mohl st´at skuteˇcnou hrozbou. Zat´ım nebyl zaznamen´ an ˇz´ adn´ y vˇetˇs´ı bezpeˇcnostn´ı incident zaloˇzen´ y na kryptografii veˇrejn´ ym kl´ıˇcem. Tato pr´ ace a program cryptovirus.exe nem´a za c´ıl slouˇzit jako n´avod, jak podobn´e u ´toky prov´ adˇet – naopak, hlavn´ım posl´an´ım je prozkoumat potenci´al propojov´an´ı vir˚ u a kryptografie a pˇrimˇet ˇcten´aˇre k zamyˇslen´ı nad prezentovan´ ymi z´avˇery. Pouze porozumˇen´ım cel´e problematice a zajiˇstˇen´ım patˇriˇcn´ ych protiopatˇren´ı se lze pozdˇeji kryptovir´aln´ım u ´tok˚ um ubr´ anit.
42
Kapitola 6
Bezpeˇ cnost Obor bezpeˇcnost m´ a ve svˇetˇe informaˇcn´ıch technologi´ı relativnˇe ˇsirok´ y z´abˇer a problematika spadaj´ıc´ı do t´eto kategorie je proto znaˇcnˇe obs´ahl´a. N´asleduj´ıc´ı kapitola je zamˇeˇrena konkr´etnˇeji – budou zde probr´ any oblasti, kter´e se pˇr´ımo dot´ ykaj´ı t´ematu t´eto diplomov´e pr´ace.
6.1
Anonymita v s´ıti
V poˇc´atc´ıch masovˇejˇs´ıho pouˇz´ıv´ an´ı Internetu nebyla moˇznost anonymity a anonymn´ıho pouˇz´ıv´ an´ı dostupn´ ych sluˇzeb br´ ana pˇr´ıliˇs v potaz. Kaˇzd´a entita pˇripojen´a do s´ıtˇe je v r´amci t´eto s´ıtˇe identifikov´ ana pˇridˇelenou unik´atn´ı IP adresou, t´ım p´adem je tak´e snadno lokalizovateln´a. To je v´ yhodn´e z pohledu smˇerov´an´ı provozu komunikace, avˇsak jiˇz nikoli z pohledu bezpeˇcnosti (anonymity uˇzivatel˚ u). V dneˇsn´ı dobˇe je moˇznost anonymn´ıho – bezpeˇcn´eho a nevysledovateln´eho pohybu v s´ıti Internetu v jist´ ych pˇr´ıpadech velmi ˇz´adouc´ı. Anonymn´ı komunikace v elektronick´em svˇetˇe, resp. z´ısk´an´ı a udrˇzen´ı takov´e anonymity, m˚ uˇze pˇredstavovat probl´em. Nutno zd˚ uraznit, ˇze potˇreba anonymity pˇri pohybu na s´ıti se net´ yk´a pouze legitimn´ıch ˇcinnost´ı (napˇr. elektronick´e volby, anonymn´ı prohl´ıˇzen´ı webov´ ych str´anek), ale tak´e tˇech ´ cn´ıci potˇrebuj´ı k bezpeˇcn´e“ ˇcinnosti stejnˇe siln´e prostˇredky. ileg´aln´ıch. Utoˇ ” Souvislost anonymity v s´ıti s kryptovirologi´ı m˚ uˇzeme naj´ıt v pˇr´ıpadˇe, kdy autor kryptoviru (viz kapitola 4) potˇrebuje anonymnˇe komunikovat s obˇet´ı. D˚ uvodem takov´e komunikace u ´toˇcn´ıka s obˇet´ı je z´ısk´ an´ı v´ ykupn´eho za obnoven´ı kryptovirem zaˇsifrovan´ ych dat.
6.1.1
Mix s´ıtˇ e
K zajiˇstˇen´ı anonymity pˇri komunikaci v nezabezpeˇcen´em prostˇred´ı existuje teoreticky velmi siln´ y prostˇredek. Jedn´ a se o zvl´ aˇstn´ı druh logick´ ych s´ıt´ı (funguj´ı nad fyzickou s´ıt’ovou infrastrukturou), ve kter´ ych je adresace a smˇerov´an´ı provozu zcela odliˇsn´e, neˇz jak je tomu v klasick´em pˇr´ıpadˇe. Vesmˇes vˇsechny takto specializovan´e prostˇredky pracuj´ı na podobn´em principu, proto zde budou pops´ any pouze vlastnosti mix s´ıt´ı a jejich moˇzn´e vyuˇzit´ı. Mix s´ıtˇe (mix networks) funguj´ı na n´asleduj´ıc´ım principu (viz obr´azek 6.1). Uzel s´ıtˇe (tzv. mix) pˇrij´ım´ a zpr´ avy a odes´ıl´ a je d´ale na m´ısto urˇcen´ı v takov´em poˇrad´ı, ˇze vnˇejˇs´ı pozorovatel (naruˇsitel) nedok´ aˇze odvodit ˇz´adnou souvislost mezi pˇrijatou a odeslanou zpr´avou. Zpr´ava nen´ı pˇreposl´ ana ihned po pˇrijet´ı uzlem s´ıtˇe, ale definovan´e mnoˇzstv´ı pˇr´ıchoz´ıch zpr´ av
43
je vysl´ ano jako jedna d´ avka v jednom ˇcasov´em okamˇziku. D´ıky sdruˇzov´an´ı pˇr´ıchoz´ıch zpr´ av pˇred samotn´ ym odesl´ an´ım je moˇzn´e prov´adˇet tzv. ˇcasov´e pˇreuspoˇr´ad´an´ı. Vys´ıl´ an´ı pˇreuspoˇr´ adan´ ych zpr´av po d´avk´ach je ochranou pˇred u ´toky zaloˇzen´ ymi na principu sledov´ an´ı ˇcasov´ ych souvislost´ı (timing based attack ) [26]. Pˇri pouˇzit´ı mix s´ıt´ı by pro pˇr´ıpadn´eho naruˇsitele mˇelo b´ yt velmi obt´ıˇzn´e vysledovat, kdo komunikuje s k´ ym.
Obr´azek 6.1: Topologie mix s´ıtˇe
Pojem anonymita je vhodn´e si jeˇstˇe detailnˇeji specifikovat. Anonymitu vztahu (relationship anonymity) ch´ apeme jako nevysledovatelnost skuteˇcnosti, ˇze jedna konkr´etn´ı strana komunikuje s jinou. Anonymita odesilatele (sender anonymity) pak zakr´ yv´a fakt, ˇze konkr´etn´ı odesilatel zaslal danou zpr´ avu. A koneˇcnˇe, anonymita pˇr´ıjemce (recipient anonymity) znamen´a, ˇze nelze zjistit, kdo je pˇr´ıjemcem dan´e zpr´avy. Z uveden´eho jasnˇe vypl´ yv´ a, ˇze anonymita vztahu a anonymita odesilatele, resp. pˇr´ıjemce, nejsou zcela totoˇzn´e pojmy. Pouze zajiˇstˇen´ım obou typ˚ u – anonymity odesilatele i anonymity pˇr´ıjemce – lze dos´ ahnout funguj´ıc´ı anonymity vztahu vz´ajemnˇe komunikuj´ıc´ıch stran [17]. Nevysledovatelnost takov´eho zp˚ usobu komunikace je zajiˇstˇena pomoc´ı ˇretˇezen´ı mnoha uzl˚ u s´ıtˇe (mix˚ u) a hlavnˇe pouˇzit´ım kryptografie veˇrejn´ ym kl´ıˇcem. Kaˇzd´a zpr´ava je zaˇsifrov´ ana veˇrejn´ ym kl´ıˇcem uzlu, na kter´em se cestou k pˇr´ıjemci pr´avˇe nach´az´ı. Na kaˇzd´em uzlu je dan´a ˇsifrovac´ı ob´ alka“ odstranˇena pouˇzit´ım odpov´ıdaj´ıc´ıho soukrom´eho kl´ıˇce tohoto uzlu. ” Deˇsifrov´ an´ım zpr´ avy tajn´ ym kl´ıˇcem a inspekc´ı jej´ıho obsahu mix zjist´ı, kam m´a b´ yt zpr´ava d´ ale smˇerov´ ana. Anonymita je za jist´ ych podm´ınek zaruˇcena [17] a funguje i v pˇr´ıpadˇe, ˇze aˇz N −1, z celkov´eho poˇctu N , uzl˚ u mix s´ıtˇe je nˇejak´ ym zp˚ usobem kompromitov´ano.
6.1.2
e-cash
Jako e-cash (electronic cash) se oznaˇcuje elektronick´a mˇena, coˇz je reprezentace fyzick´e mˇeny hmotn´eho svˇeta. Nˇekdy tento pojem b´ yv´a oznaˇcov´an jako e-money. Hotovost v elektronick´e podobˇe m˚ uˇze b´ yt uloˇzena na ˇcipov´e kartˇe nebo na pevn´em disku v poˇc´ıtaˇci – neexistuje v hmatateln´e formˇe. V pˇr´ıpadˇe e-cash jde o technologii, jak lze napˇr. realizovat penˇeˇzn´ı transakce po Internetu nebo jeho prostˇrednictv´ım nakupovat zboˇz´ı. Anonymita je zde mnohem vˇetˇs´ı neˇz pˇri pouˇzit´ı bˇeˇzn´ ych kreditn´ıch karet, kdy pˇri kaˇzd´e takov´e penˇeˇzn´ı operaci vznik´a nov´ y z´aznam obsahuj´ıc´ı ˇc´ıslo pouˇzit´e kreditn´ı karty a dalˇs´ı potenci´alnˇe citliv´e a zneuˇziteln´e u ´daje. Pˇr´ıkladem syst´emu postaven´eho na principech elektronick´e mˇeny je mezin´arodn´ı platebn´ı syst´em PayPal.
44
´ cn´ık m˚ Utoˇ uˇze po u ´spˇeˇsn´em kryptovir´aln´ım u ´toku poˇzadovat zaplacen´ı urˇcit´e penˇeˇzn´ı sumy jako v´ ykupn´eho v´ ymˇenou za obnoven´ı soubor˚ u. Platba bezhotovostn´ım pˇrevodem na u ´ˇcet by zcela jistˇe znamenala riziko vystopov´an´ı totoˇznosti u ´toˇcn´ıka. Nejsch˚ udnˇejˇs´ı zp˚ usob, jak anonymnˇe a bezpeˇcnˇe z´ıskat v´ ykupn´e, je pr´avˇe pouˇzit´ı technologie e-cash. Protoˇze m˚ uˇze b´ yt e-cash uloˇzen v souboru, na disku poˇc´ıtaˇce, m˚ uˇze b´ yt samozˇrejmˇe tak´e pos´ıl´an po s´ıti. Kombinac´ı mix s´ıt´ı a e-cash z´ısk´av´a u ´toˇcn´ık dobrou ˇsanci na z´ısk´an´ı k´ yˇzen´e finanˇcn´ı odmˇeny“ spolu s vysokou m´ırou anonymity. Prakticky to znamen´a, ˇze m˚ uˇze takto nez´ a” konnˇe generovat zisk a pˇritom d´ıky zneuˇzit´ı vyspˇel´ ych informaˇcn´ıch technologi´ı v˚ ubec nic neriskovat [4].
6.2
Chov´ an´ı uˇ zivatel˚ u
Bezpeˇcnost nen´ı jen ot´ azka technick´eho a fyzick´eho zabezpeˇcen´ı, kvality pouˇzit´eho softwaru nebo s´ıly kryptografick´ ych algoritm˚ u. Podstatn´e procento bezpeˇcnostn´ıch incident˚ u by nikdy nenastalo bez selh´ an´ı lidsk´eho faktoru. Ten je, jak se zd´a, v boji proti u ´toˇcn´ık˚ um a jejich malwaru st´ ale nejslabˇs´ım ˇcl´ankem. Neznamen´ a to vˇsak, ˇze by incidenty vznikaly s tich´ ym souhlasem nebo pˇriˇcinˇen´ım dotyˇcn´ ych zodpovˇedn´ ych pracovn´ık˚ u. Jde sp´ıˇse o d˚ usledek jejich nekvalifikovanosti a nedostateˇcn´e obezˇretnosti pˇri nakl´ ad´ an´ı s d˚ uvˇern´ ymi informacemi (hesla k u ´ˇct˚ um, telefonn´ı ˇc´ısla organizace, jm´ena zamˇestnanc˚ u, topologie podnikov´e s´ıtˇe, . . . ). Lid´e by si mˇeli uvˇedomit, s jak´ ymi informacemi pˇrich´ azej´ı do styku a jakou maj´ı takov´e informace v dneˇsn´ım svˇetˇe hodnotu. M´ıra ochrany a zabezpeˇcen´ı by pˇredevˇs´ım mˇela odpov´ıdat celkov´e hodnotˇe informac´ı nach´azej´ıc´ıch se v konkr´etn´ım poˇc´ıtaˇci. D˚ uleˇzit´a data je potˇreba chr´anit tak´e pravideln´ ym z´alohov´ an´ım – pouze tak se lze u ´ˇcinnˇe br´anit i pˇred kryptoviry.
6.2.1
Soci´ aln´ı inˇ zen´ yrstv´ı
Soci´aln´ı inˇzen´ yrstv´ı neboli sociotechnika je zp˚ usob manipulace s lidmi, kter´ y vyuˇz´ıv´a vlivu a pˇresvˇedˇcov´ an´ı k oklam´ an´ı obˇeti, ˇze sociotechnik je ten, za koho se vyd´av´a, a nikoli t´ım, k´ ym ve skuteˇcnosti je. Ve v´ ysledku dok´aˇze sociotechnik vyuˇz´ıt sv´eho vlivu a vym´amit z obˇeti cenn´e informace, at’ uˇz s pouˇzit´ım informaˇcn´ıch technologi´ı nebo bez nich [12]. V umˇen´ı sociotechniky vynikal zn´ am´ y hacker, a patrnˇe tak´e nejzn´amˇejˇs´ı pˇr´ıklad exempl´arnˇe potrestan´eho poˇc´ıtaˇcov´eho zloˇcince“ v historii, Kevin Mitnick. Mitnick dok´azal pomoc´ı ” telefonu i osobnˇe (po kr´ atk´e pˇr´ıpravˇe), d´ıky sebevˇedom´emu vystupov´an´ı a pouˇzit´ım sociotechniky, z´ıskat mnoho uˇzivatelsk´ ych jmen a hesel pro pˇr´ıstup do podnikov´ ych syst´em˚ u; a mnohdy dokonce pˇr´ıstup k administr´atorsk´ ym u ´ˇct˚ um na jinak velmi dobˇre zabezpeˇcen´ ych serverech, jeˇz obsahovaly zdrojov´e k´ody aplikac´ı. Jejich zkop´ırov´an´ım na jin´e servery u ´dajnˇe vznikly ztr´ aty v ˇr´ adech des´ıtek milion˚ u dolar˚ u mnoha pˇredn´ım softwarov´ ym spoleˇcnostem. Manipulace byla sociology studov´ana v´ıce neˇz pades´at let. Na ot´azku, proˇc jsou lid´e zraniteln´ı v˚ uˇci soci´ aln´ımu inˇzen´ yrstv´ı, d´av´a odpovˇed’ pr´avˇe v´ ysledek tohoto dlouhodob´eho studia a v´ yzkumu. N´ asleduje v´ yˇcet ˇsesti z´akladn´ıch sklon˚ u lidsk´e povahy, na kter´e se u ´toˇcn´ıci pˇri manipulaci lid´ı (sociotechnice) zamˇeˇruj´ı [12]: • Autorita Lid´e maj´ı sklon vyhovˇet nˇekomu, kdo m´a v jejich oˇc´ıch dostateˇcnou autoritu, nebo kdyˇz jeho ˇz´ adost p˚ usob´ı opr´avnˇenˇe.
45
• N´ aklonnost Lid´e maj´ı sklon vyhovˇet ˇz´ adosti i ciz´ıho ˇclovˇeka, kdyˇz je tento dok´aˇze pˇresvˇedˇcit, ˇze maj´ı podobn´e z´ ajmy, n´ azory a stanoviska, nebo kdyˇz se jim dotyˇcn´ y jev´ı jako pˇr´ıjemn´ a a sympatick´ a osoba. • Vz´ ajemnost Lid´e maj´ı sklon vyhovˇet ˇz´ adosti v pˇr´ıpadˇe, kdy je jim na opl´atku za tuto laskavost“ ” sl´ıbeno nˇeco pro nˇe cenn´eho a v´ yznamn´eho (rada, pomoc, dar, atd.). • Z´ asadovost Lid´e maj´ı zpravidla sklon vyhovˇet pot´e, co daj´ı nˇekomu sv˚ uj veˇrejn´ y pˇr´ıslib nebo souhlas s angaˇzov´ an´ım se v dan´e z´aleˇzitosti. • Spoleˇ censk´ e potvrzen´ı Lid´e maj´ı sklon vyhovˇet ˇz´ adosti, kter´a v d˚ usledku vede k takov´emu jedn´an´ı, jeˇz se zd´ a b´ yt ve spoleˇcnosti bˇeˇzn´e a pˇrijateln´e, tzn. t´ım, co ostatn´ı norm´alnˇe dˇelaj´ı. Chov´ an´ı okol´ı funguje jako potvrzen´ı legitimity poˇzadovan´e akce. • Vz´ acnost Lid´e maj´ı sklon vyhovˇet, kdyˇz uvˇeˇr´ı, ˇze jist´a vˇec, o niˇz usiluj´ı, se zd´a b´ yt v omezen´em mnoˇzstv´ı a ostatn´ı o ni mus´ı soupeˇrit; nebo ˇze je jej´ı dostupnost omezena pouze na kr´ atk´ y ˇcasov´ y interval. Nˇekolika v´ yˇse uveden´ ych rys˚ u lidsk´e povahy nezneuˇz´ıv´a malware (vˇc. kryptovir˚ u) pˇr´ımo, ale sp´ıˇse se tˇechto poznatk˚ u o lidsk´e povaze snaˇz´ı vyuˇz´ıt autoˇri (´ utoˇcn´ıci) ve f´azi n´avrhu implementace zp˚ usobu ˇs´ıˇren´ı sv´ ych ˇskodliv´ ych program˚ u. Uˇzivatel´e si pak pod nejr˚ uznˇejˇs´ımi pohnutkami nevˇedomky nainstaluj´ı z´akeˇrn´ y malware staˇzen´ y z Internetu spoleˇcnˇe s jin´ ym softwarem. Studie v kapitole 3, viz Satan Virus, m˚ uˇze b´ yt modelov´ ym pˇr´ıkladem pˇrevzet´ı kontroly virem a z´ısk´ an´ı rozhoduj´ıc´ı v´ yhody nad uˇzivatelem [3].
6.3
Zneuˇ zit´ı komunikaˇ cn´ıch protokol˚ u
Zneuˇz´ıv´ an´ı slab´ ych m´ıst komunikaˇcn´ıch protokol˚ u pˇredstavuje oblast z´ajmu mnoha u ´toˇcn´ık˚ u. Protoˇze jsou komunikaˇcn´ı protokoly ned´ılnou souˇc´ast´ı jak´ekoli poˇc´ıtaˇcov´e s´ıtˇe, jsou i v prostˇred´ı Internetu pˇr´ıtomny takˇrka v kaˇzd´e aplikaci. Bez jejich existence by mˇely poˇc´ıtaˇce znaˇcnˇe omezen´e moˇznosti. V t´eto podkapitole se zamˇeˇr´ıme na pouˇz´ıvan´ y komunikaˇcn´ı protokol SMTP a s´ıtˇe typu P2P. Protokol SMTP b´ yv´ a velmi ˇcasto zneuˇz´ıv´an tv˚ urci malwaru jako prostˇredek ˇs´ıˇren´ı n´akazy po s´ıti – v podobˇe e-mailov´ ych zpr´av. S´ıtˇe P2P pak slouˇz´ı k podobn´emu u ´ˇcelu, a to tak´e jako distribuˇcn´ı kan´ al malwaru, pˇriˇcemˇz rozd´ıl mezi obˇema zp˚ usoby ˇs´ıˇren´ı malwaru spoˇc´ıv´a v m´ıˇre vlastn´ıho pˇriˇcinˇen´ı uˇzivatele vedouc´ıho k dalˇs´ımu bezpeˇcnostn´ımu incidentu.
6.3.1
Protokol SMTP
Protokol SMTP (pops´ an v RFC 821, resp. RFC 2821) je textovˇe orientovan´ y protokol urˇcen´ y k pˇr´ım´emu zas´ıl´ an´ı e-mailov´ ych zpr´av mezi koncov´ ymi stanicemi. Pracuje nad transportn´ım protokolem TCP a bˇeˇz´ı na portu ˇc. 25 [34]. SMTP servery funguj´ıc´ı v reˇzimu open relay jsou nejjednoduˇsˇs´ım c´ılem rozes´ılatel˚ u spamu. Server v t´eto konfiguraci pˇrij´ım´a zpr´avy od libovoln´eho odesilatele a pos´ıl´a je na zvolenou adresu pˇr´ıjemce. Nijak si neovˇeˇruje, zda-li je uˇzivatel opr´avnˇen vyuˇz´ıvat sluˇzeb 46
serveru, jestli je c´ılov´ a adresa zpr´avy platn´a, nebo zda je uˇzivatel skuteˇcnˇe t´ım, za koho se vyd´av´a. Chybˇej´ıc´ı autentizace umoˇzn ˇuje ˇcinnost malwaru generuj´ıc´ımu ohromn´e mnoˇzstv´ı spamov´ ych zpr´ av. Malware si nese seznam server˚ u typu open relay k ˇs´ıˇren´ı bud’to statick´ y – je pevnˇe d´ an uˇz v dobˇe kompilace – nebo si open relay servery dok´aˇze vyhled´avat v Internetu, aˇz v dobˇe u ´spˇeˇsn´eho napaden´ı poˇc´ıtaˇce obˇeti. Ne ve vˇsech pˇr´ıpadech m˚ uˇze malware vyuˇz´ıvat sluˇzeb nˇejak´eho otevˇren´eho serveru. Extr´emn´ım pˇr´ıpadem je implementace vlastn´ıho SMTP serveru nesen´eho v tˇele viru, pak neexistuje z´ avislost na extern´ıch serverech, coˇz nav´ıc sniˇzuje moˇznost odhalen´ı a blokov´ an´ı IP adresy um´ıstˇen´ım na ˇcernou listinu. Nev´ yhoda podobn´eho ˇreˇsen´ı spoˇc´ıv´a v n´ar˚ ustu velikosti bin´ arn´ıho k´ odu. Malwarem generovan´e zpr´ avy urˇcen´e k vlastn´ımu ˇs´ıˇren´ı maj´ı pochopitelnˇe podvrˇzenou adresu odesilatele. P˚ uvodn´ı implementace SMTP server˚ u ovˇeˇrov´an´ı odesilatele nevyˇzadovaly. Pro potˇreby zajiˇstˇen´ı alespoˇ n z´akladn´ı autentizace poˇstovn´ıho klienta MUA (Mail User Agent) vzniklo rozˇs´ıˇren´ı SMTP-AUTH. Tak je zajiˇstˇen z´akladn´ı mechanismus pˇrihlaˇsov´ an´ı klienta na poˇstovn´ı server. SMTP-AUTH je ˇc´asteˇcn´ ym ˇreˇsen´ım dˇr´ıvˇejˇs´ıho probl´emu, nebot’ technikou spoofingu lze tak´e podvrhnout informaci o skuteˇcn´em odesilateli zpr´avy nahrazen´ım dan´e poloˇzky v hlaviˇcce adresou jin´eho, skuteˇcnˇe existuj´ıc´ıho uˇzivatele [35]. Na zvolen´e strategii ˇs´ıˇren´ı a ˇcinnosti malwaru z´avis´ı jeho s´ıt’ov´a aktivita. Druhy ˇs´ıˇr´ıc´ı se pomoc´ı elektronick´e poˇsty zpravidla v t´eto f´azi negeneruj´ı takov´e mnoˇzstv´ı zpr´av, kter´e by vyˇcerp´ avalo pˇrenosov´ a p´ asma linek a doch´azelo by k jejich zahlcen´ı. Zv´ yˇsen´a s´ıt’ov´ a aktivita totiˇz znamen´ a zv´ yˇsenou pozornost uˇzivatele, pozornost uˇzivatele pak zvyˇsuje riziko odhalen´ı. Pozdˇeji, po u ´spˇeˇsn´em ukonˇcen´ı replikaˇcn´ı f´aze, m˚ uˇze malware generovat spam dle libosti. Mnoh´e druhy toto dˇelaj´ı jako sv´e hlavn´ı posl´an´ı. Snaˇz´ı se odes´ılat maxim´aln´ı ´ mnoˇzstv´ı zpr´ av, jak´e jim druh pˇripojen´ı poˇc´ıtaˇce k s´ıti umoˇzn ˇuje. Utok formou zahlcen´ı serveru pˇr´ıjemce mnoˇzstv´ım pˇr´ıchoz´ıch e-mailov´ ych zpr´av se naz´ yv´a e-mail bomb a jde ou ´tok z kategorie DoS. Protoˇze lze relativnˇe snadno filtrovat pˇr´ıchoz´ı zpr´avy se st´ale stejnou odchoz´ı adresou, vyuˇz´ıvaj´ı u ´toˇcn´ıci k tomuto u ´toku rozs´ahl´ ych botnet˚ u. Proti z´aplavˇe milion˚ u e-mailov´ ych zpr´av z r˚ uzn´ ych IP adres, pˇrich´ azej´ıc´ıch v jeden okamˇzik, se lze br´anit takto jiˇz jen stˇeˇz´ı. Koordinovan´e u ´toky za pomoc´ı botnet˚ u spadaj´ı do kategorie typu DDoS. Nˇekter´e poˇstovn´ı servery nyn´ı proto b´ yvaj´ı konfigurov´any tak, aby odm´ıtaly pˇrenosy na portu ˇc. 25, pouze autentizovan´ ym uˇzivatel˚ um na portu ˇc. 587 je dovoleno odes´ılat zpr´avy, a pouze na existuj´ıc´ı adresy. T´ım vˇsak moˇznosti k dalˇs´ımu zneuˇz´ıv´an´ı nekonˇc´ı. V minulosti spol´ehaly nˇekter´e druhy malwaru na dostupnost knihovn´ıch funkc´ı urˇcen´ ych pro pr´aci s poˇstovn´ım klientem MS Outlook Express. Ten je zahrnut ve standardn´ı instalaci OS Windows XP. Konkr´etnˇe jde o knihovnu MAPI32.DLL. Malware pak mohl k ˇs´ıˇren´ı pouˇz´ıt nakonfigurovan´ yu ´ˇcet uˇzivatele t´eto aplikace. Pˇ r´ıklad: K´od umoˇzn ˇuj´ıc´ı zneuˇzit´ı knihovny v MS Windows skuteˇcnˇe existuj´ıc´ıho malwaru . . . HINSTANCE MAPIlHnd; MAPIlHnd = LoadLibraryA("MAPI32.DLL"); Po u ´spˇeˇsn´em zavol´ an´ı funkce LoadLibraryA staˇcilo jen nˇekolik dalˇs´ıch ˇr´adk˚ u k´odu (v jazyce C), aby byl virus schopen generovat mnoˇzstv´ı poˇstovn´ıch zpr´av (pos´ılal se jako spus-
47
titeln´a pˇr´ıloha) a pˇrid´ avat je do fronty odes´ılan´ ych zpr´av k ostatn´ım legitimn´ım zpr´av´ am uˇzivatele.
6.3.2
P2P s´ıtˇ e
Nejvˇetˇs´ı potenci´ al P2P s´ıt´ı, resp. jejich konkr´etn´ıch implementac´ı, spoˇc´ıv´a, z pohledu mal´ cn´ıci mohou sv´e v´ waru, pr´ avˇe v t´emˇeˇr ide´ aln´ım prostˇred´ı k ˇs´ıˇren´ı n´akazy. Utoˇ ytvory maskovat pod n´ azvy aktu´ alnˇe v Internetu nejv´ıce stahovan´ ych program˚ u (nebo malware integrovat do skuteˇcn´ ych instalaˇcn´ıch bal´ık˚ u legitimn´ıho softwaru). Uˇzivatel´e si jej pak vlastn´ı vinou vpouˇst´ı“ do sv´ ych poˇc´ıtaˇc˚ u. ” Malware by se teoreticky dok´ azal ˇs´ıˇrit pomoc´ı P2P s´ıt´ı zcela autonomnˇe – vyhled´av´an´ım zraniteln´ ych syst´em˚ u sd´ılen´ı soubor˚ u a vytv´aˇren´ım sv´ ych vlastn´ıch kopi´ı pod jm´eny zd´anlivˇe uˇziteˇcn´ ych program˚ u. Nakonec by mohl, v z´avislosti na implementaci sluˇzby, generovat vlastn´ı soubory s metadaty (jako je napˇr. torrent u protokolu BitTorrent). Zpˇr´ıstupnˇen´ım se pak nasd´ılet ke staˇzen´ı potenci´aln´ım obˇetem.
6.4
Bezpeˇ cnostn´ı protiopatˇ ren´ı
Oblast komunikaˇcn´ıch technologi´ı je velmi dynamick´a – nov´e moˇznosti vyuˇzit´ı se objevuj´ı ve velmi kr´ atk´ ych intervalech. Stejnou rychlost´ı se objevuj´ı z´akeˇrn´e praktiky zaloˇzen´e na zneuˇzit´ı slab´ ych m´ıst tˇechto, co se t´ yˇce zabezpeˇcen´ı, dosud nevyspˇel´ ych technologi´ı. Nejen zneuˇz´ıv´ an´ı s´ıt’ov´ ych technologi´ı k neleg´aln´ım aktivit´am ze strany uˇzivatel˚ u, ale hlavnˇe zneuˇz´ıv´ an´ı tˇechto vlastnost´ı poˇc´ıtaˇcov´ ymi u ´toˇcn´ıky vyˇzaduje nasazen´ı mnoha bezpeˇcnostn´ıch protiopatˇren´ı.
6.4.1
Klasick´ a protiopatˇ ren´ı
Moˇzn´ ych bezpeˇcnostn´ıch incident˚ u existuje cel´a ˇrada – riziko v´ yskytu nˇejak´eho probl´emu nen´ı nikdy moˇzn´e stoprocentnˇe eliminovat. Dodrˇzov´an´ım z´akladn´ıch z´asad bezpeˇcnosti pˇri pohybu na s´ıti m˚ uˇzeme doc´ılit relativnˇe vysok´eho stupnˇe ochrany pˇred malwarem. Nutnou podm´ınkou je vˇsak pouˇz´ıv´ an´ı ovˇeˇren´eho a aktualizovan´eho softwaru, vˇcetnˇe antivirov´eho a anti-spyware softwaru, a firewallu. V neposledn´ı ˇradˇe patˇr´ı mezi nej´ uˇcinnˇejˇs´ı obrann´e prostˇredky souˇcasnosti hlavnˇe vysok´a m´ıra obezˇretnosti a ned˚ uvˇeˇrivosti ke vˇsemu, co poch´ az´ı z nezn´ am´eho zdroje. Podceˇ nov´ an´ı d˚ uleˇzitosti bezpeˇcnosti se m˚ uˇze kaˇzd´e organizaci vymst´ıt. Autoˇri malwaru dnes netvoˇr´ı z´ akeˇrn´e programy pro vlastn´ı potˇeˇsen´ı, ale je to pˇrev´aˇznˇe c´ıleno na generov´ an´ı ´ podvodn´eho finanˇcn´ıho zisku. Utoky se odehr´avaj´ı ve velk´ ych mˇeˇr´ıtk´ach, s vyuˇzit´ım botnet˚ u. Samotn´e vytv´ aˇren´ı botnet˚ u, jejich prodej a vyuˇz´ıv´an´ı za u ´ˇcelem ˇs´ıˇren´ı nevyˇz´adan´e poˇsty, popˇr. jin´ ych praktik, spad´ a do oblasti organizovan´eho zloˇcinu. V ˇz´adn´em pˇr´ıpadˇe nen´ı Internet bezpeˇcn´ ym m´ıstem pro pˇripojen´ı nechr´anˇen´eho poˇc´ıtaˇce. Pˇr´ıtomnost cenn´ ych dat na takov´em poˇc´ıtaˇci nen´ı rozhoduj´ıc´ı. Samotn´a v´ ypoˇcetn´ı s´ıla poˇc´ıtaˇce a jeho prostˇredky hraj´ı d˚ uleˇzitou roli. Koordinovan´emu u ´toku tis´ıc˚ u ovl´adnut´ ych poˇc´ıtaˇc˚ uu ´toˇcn´ıkem se mohou c´ılov´e komerˇcn´ı servery br´ anit jen pomoc´ı extr´emn´ıch a kr´atkodob´ ych protiopatˇren´ı. Ztr´aty zp˚ usoben´e DDoS u ´toky jsou vˇzdy prakticky nevyhnuteln´e.
6.4.2
Kryptovir´ aln´ı protiopatˇ ren´ı
Nejvˇetˇs´ı s´ıla kryptoviru spoˇc´ıv´ a v asymetrick´em soukrom´em kl´ıˇci, kter´ y nen´ı souˇc´ast´ı viru. Mechanismus kontroly nad pouˇz´ıv´an´ım kryptografie v syst´emu by mˇel b´ yt souˇc´ast´ı j´adra 48
OS. Pˇred zaˇsifrov´ an´ım souboru by j´adro syst´emu vyˇzadovalo od uˇzivatele d˚ ukaz, ˇze on je t´ım, kdo vlastn´ı pˇr´ısluˇsn´ y soukrom´ y kryptografick´ y kl´ıˇc (tzv. zero-knowledge proof ). To by mohlo b´ yt dokazov´ ano vˇzdy v dobˇe pˇrihl´aˇsen´ı uˇzivatele do syst´emu, napˇr. pomoc´ı ˇcipov´e karty. Jinou moˇznost´ı, jak dos´ ahnout podobn´eho c´ıle, je ovˇeˇren´ı podpisu veˇrejn´eho kl´ıˇce, kter´ y patˇr´ı certifikaˇcn´ı autoritˇe, jenˇz je pro j´adro syst´emu d˚ uvˇeryhodn´a. Pokud by autor kryptoviru pouˇzil certifikovan´ y veˇrejn´ y kl´ıˇc k u ´toku, stal by se ihned hlavn´ım podezˇrel´ ym. Cel´ a strategie by fungovala pouze za pˇredpokladu, ˇze j´adro syst´emu nebylo modifikov´ano kryptovirem. Faktem vˇsak i nad´ ale z˚ ust´ av´ a skuteˇcnost, ˇze veˇsker´a kryptografick´a funkˇcnost m˚ uˇze b´ yt naimplementov´ ana do tˇela viru, tedy b´ yt nez´avisl´a na operaˇcn´ım syst´emu [24].
49
Kapitola 7
Z´ avˇ er V t´eto diplomov´e pr´ aci jsem se zab´ yval kryptovirologi´ı, coˇz je pomˇernˇe nov´ y obor poˇc´ıtaˇcov´e bezpeˇcnosti. Hlavn´ım c´ılem bylo nastudovat bezpeˇcnostn´ı dopady plynouc´ı z propojen´ı kryptografick´ ych algoritm˚ u a poˇc´ıtaˇcov´ ych vir˚ u. Demonstraˇcn´ı program cryptovirus.exe vznikl jako uk´azka toho, jak by mohly vypadat novˇe vznikaj´ıc´ı hrozby ˇs´ıˇr´ıc´ı se po s´ıti. Program vyuˇz´ıv´a moˇznost´ı bˇeˇzn´ ych operaˇcn´ıch syst´em˚ u platformy Microsoft Windows – CryptoAPI, simuluje chov´an´ı poˇc´ıtaˇcov´eho viru. Po spuˇstˇen´ı v hostitelsk´em syst´emu vyhled´av´a vybran´e soubory, zaˇsifruje je symetrick´ ym kl´ıˇcem a kl´ıˇc (zaˇsifrovan´ y jeˇstˇe asymetrick´ ym veˇrejn´ ym kl´ıˇcem) zpˇr´ıstupn´ı uˇzivateli. Ten, aby z´ıskal sv´ a zaˇsifrovan´ a data zpˇet, mus´ı splnit podm´ınky u ´toˇcn´ıka. Z ˇcasov´ ych d˚ uvod˚ u nebyl protokol komunikace obˇeti s u ´toˇcn´ıkem, nutn´ y k pˇred´ an´ı v´ ykupn´eho“, v programu implementov´an. Cel´a procedura by byla realizov´ana nejsp´ıˇse ” s vyuˇzit´ım mix s´ıt´ı a elektronick´e mˇeny e-cash (zm´ınˇeno v kapitole 6). Virus by mohl zvyˇsovat svoji ˇsanci na pˇreˇzit´ı v syst´emu aktualizac´ı k´odu a pˇrid´av´an´ım nov´ ych funkc´ı. K tomuto u ´ˇcelu se nab´ız´ı zabudov´an´ı interakce u ´toˇcn´ıka s virem, napˇr. pomoc´ı komunikaˇcn´ıho kan´ alu IRC nebo veˇrejn´ ych diskusn´ıch skupin, kdy by virus mohl v tˇechto m´edi´ıch vyhled´ avat ˇsifrovan´e instrukce ke sv´emu dalˇs´ımu chov´an´ı. Zde je pomˇernˇe velk´ y prostor k dalˇs´ımu rozˇs´ıˇren´ı programu. Pro zajiˇstˇen´ı bezpeˇcn´eho testov´an´ı programu nebyla implementov´ana ani replikaˇcn´ı procedura viru, takˇze nem˚ uˇze doj´ıt k jeho n´ahodn´emu u ´niku. K tomuto u ´ˇcelu by bylo moˇzn´e pouˇz´ıt jeden z klasick´ ych postup˚ u ˇs´ıˇren´ı malwaru, viz kapitola 3. Pˇri experimentech s replikac´ı a ˇs´ıˇren´ım vˇsak bylo zjiˇstˇeno, ˇze poskytovatel´e internetov´eho pˇripojen´ı monitoruj´ı odchoz´ı datov´e toky sv´ ych klient˚ u, a pˇri podezˇrel´e s´ıt’ov´e aktivitˇe reaguj´ı zablokov´an´ım nˇekter´ ych TCP a UDP port˚ u na stranˇe klienta. Pˇr´ınosem t´eto pr´ ace je poskytnut´ı ucelen´eho pohledu na celou problematiku kryptovirologie a pouk´ az´ an´ı na re´ alnost nebezpeˇc´ı plynouc´ıho z volnˇe dostupn´ ych kryptografick´ ych funkc´ı OS, o kter´ ych uˇzivatel´e bˇeˇznˇe ani nemaj´ı tuˇsen´ı. Jako d˚ ukaz proveditelnosti m˚ uˇze poslouˇzit zm´ınˇen´ y demonstraˇcn´ı program. Kryptografie, jako souˇc´ ast dneˇsn´ıch OS, je velmi mocn´ y n´astroj k zajiˇstˇen´ı vˇetˇs´ı bezpeˇcnosti pˇri komunikaci v ned˚ uvˇeryhodn´em prostˇred´ı Internetu, z´aroveˇ n ale m˚ uˇze nespr´avn´ ym pouˇzit´ım nebo zneuˇzit´ım u ´toˇcn´ıky pˇredstavovat velk´a rizika. Uˇzivatel´e informaˇcn´ıch technologi´ı by si mˇeli tato rizika uvˇedomovat. Tak´e v´ yrobci operaˇcn´ıch syst´em˚ u by mˇeli zneuˇz´ıv´ an´ı kryptografick´ ych funkc´ı pˇredch´ azet implementac´ı dodateˇcn´ ych bezpeˇcnostn´ıch protiopatˇren´ı.
50
Literatura ¨ ¨ [1] BACHER, P.; HOLZ, T.; KOTTER, M.; aj.: Know your Enemy: Tracking Botnets. [online], [cit. 2008-04-16]. URL
[2] BALEPIN, I.: Superworms and Cryptovirology: a Deadly Combination. [online], [cit. 2008-01-06]. URL [3] BOND, M.; DANEZIS, G.: A Pact With the Devil. In Proceedings of the 2006 workshop on New Security Paradigms, 2006, ISBN 978-1-59593-923-4, s. 77–82. [4] CHAUM, D.: Achieving Electronic Privacy. [online], [cit. 2008-05-04]. URL [5] FU, S. C.: Realism in Epidemic Models. [online], 2002, [cit. 2008-05-01]. URL [6] FU, S. C.; MILNE, G.: Epidemic Modelling Using Cellular Automata. Proceedings of the Australian Conference on Artificial Life, 2003. [7] GRANNEMAN, S.: Infected in 20 minutes. [online], [cit. 2008-04-29]. URL [8] GUTMANN, P.: Secure Deletion of Data from Magnetic and Solid-state Memory. In Proceedings of the 6 th Conference on USENIX Security Symposium, Focusing on Applications of Cryptography – Volume 6, USENIX Association, 1996, s. 8–8. [9] JONES, G.: The 10 Most Destructive PC Viruses Of All Time. [online], [cit. 2008-04-28]. URL [10] LUDWIG, M. A.: The Little Black Book of Computer Viruses (Electronic Edition). American Eagle Publications, Inc., Post Office Box 1507, Show Low, Arizona 85901, 1996, ISBN 0-929408-02-0, 183 s. [11] MENEZES, A. J.; van OORSCHOT, P. C.; VANSTONE, S. A.: Handbook of Applied Cryptography. CRC Press, 1996, ISBN 0-8493-8523-7, 816 s. [12] MITNICK, K. D.; SIMON, W. L.: The Art of Deception: Controlling the Human Element of Security. Wiley Publishing, Inc., 2002, ISBN 0471237124, 352 s.
51
[13] NEEDHAM, R. M.; SCHROEDER, M. D.: Using Encryption for Authentication in Large Networks of Computers. Communications of the ACM, roˇcn´ık 21, ˇc. 12, 1978: s. 993–999. [14] PEARCE, S.: Viral Polymorphism. [online], [cit. 2008-03-13]. URL ˇ [15] PRIBYL, T.: Pozor! Soubor napaden nezn´am´ ym virem! [online], [cit. 2008-04-29]. URL [16] SCHLUTING, C.: Botnets: Who Really “0wns” Your Computers? [online], 1995, [cit. 2008-04-16]. URL [17] SHMATIKOV, V.; WANG, M.-H.: Measuring Relationship Anonymity in Mix Networks. In Proceedings of the 5 th ACM Workshop on Privacy in Electronic Society, 2006, ISBN 1-59593-556-8, s. 59–62. [18] STALLINGS, W.: Cryptography and Network Security: Principles and Practice c (3 rd Edition). Prentice Hall, 2003, ISBN 0130914290, 681 s. [19] STINSON, D. R.: Cryptography: Theory and Practice. CRC Press, 2005, ISBN 1584885084, 616 s. [20] SYVERSON, P.: A Taxonomy of Replay Attacks. In Proceedings of the 7 th IEEE Computer Security Foundations Workshop, 1994, s. 131–136. [21] TIPPETT, P. S.: The Kinetics of Computer Virus Replication: A Theory and Preliminary Survey. Safe Computing: Proceedings of the 4 th Annual Computer Virus and Security Conference, 1991: s. 66–87. [22] WEBER, M.; SCHMID, M.; SCHATZ, M.; aj.: A Toolkit for Detecting and Analyzing Malicious Software. In 18 th Annual Computer Security Applications Conference, Las Vegas, NV, USA, IEEE Computer Society, 2002, ISBN 0-7695-1828-1, s. 423–431. [23] WHITE, S. R.; KEPHART, J. O.; CHESS, D. M.: Computer Viruses: A Global Perspective. Proceedings of the 5 th Virus Bulletin International Conference, Boston, 1995. [24] YOUNG, A.: Cryptoviral Extortion Using Microsoft’s Crypto API: Can Crypto APIs Help the Enemy? International Journal of Information Security, roˇcn´ık 5, ˇc. 2, 2006: s. 67–76. [25] YOUNG, A.; YUNG, M.: Malicious Cryptography: Exposing Cryptovirology. c Indianapolis, Indiana: Wiley Publishing, Inc., 2004, ISBN 0-7645-4975-8, 392 s. [26] ZHU, Y.; FU, X.; BETTATI, R.; aj.: Anonymity Analysis of Mix Networks Against Flow-Correlation Attacks. In Proceedings of IEEE Global Communications Conference, St. Louis, MO, USA, IEEE Computer Society, 2005. [27] International Computer Security Association. [online], [cit. 2008-02-15]. URL 52
[28] Karatsuba Multiplication. [online], [cit. 2008-03-03]. URL [29] Microsoft Cryptographic Service Providers. [online], [cit. 2008-05-08]. URL [30] NIST: Recommendation for Block Cipher Modes of Operation. [online], [cit. 2008-4-25]. URL [31] NIST: Recommendation for Using Approved Hash Algorithms. [online], [cit. 2008-4-27]. URL [32] NSA: The Case for Elliptic Curve Cryptography. [online], [cit. 2007-12-15]. URL [33] RFC 1487: X.500 Lightweight Directory Access Protocol. [online], [cit. 2008-4-26]. URL [34] RFC 2821: Simple Mail Transfer Protocol. [online], [cit. 2008-03-03]. URL [35] RFC 4954: SMTP Service Extension for Authentication. [online], [cit. 2008-03-03]. URL [36] Register of Known Spam Operations. [online], [cit. 2008-04-28]. URL [37] The Threat – Rootkits. [online], [cit. 2008-03-16]. URL [38] Virus Primer. [online], [cit. 2008-04-29]. URL [39] Web Game Provides Breakthrough in Predicting Spread of Epidemics. [online], 2006, [cit. 2008-05-01]. URL [40] Where’s George? [online], [cit. 2008-05-01]. URL
53
Dodatek A
Obsah pˇ riloˇ zen´ eho CD Souˇc´ast´ı t´eto pr´ ace je tak´e datov´ y nosiˇc typu CD-ROM, kter´ y obsahuje veˇsker´e zdrojov´e k´ody vytvoˇren´e v implementaˇcn´ı ˇc´asti pr´ace, vˇcetnˇe souboru Makefile slouˇz´ıc´ıho k bezprobl´emov´emu pˇrekladu do bin´ arn´ı podoby. CD-ROM obsahuje rovnˇeˇz elektronickou verzi tohoto dokumentu ve form´ atu PDF.
54