ietoturvallisten verkkojen suunnittelu graateorian avulla FM-tutkielma Visa Vallivaara 1800283 Matemaattisten tieteiden laitos Oulun yliopisto Syksy 2014
Esipuhe ämä gradu on tehty eknologian tutkimuskeskus V:llä tietoturvan tutkimustiimissä vuosien 2013-2014 aikana. Opinnäytetyöni on osa ekesin ja Euroopan unionin rahoittamaa projektia SaSER, Safe and Secure European Routing. Projektin päätavoiteena on tutkia ja kehittää eurooppalaisten tietoverkkojen turvallisuutta, varmuutta ja luotettavuutta suojaamalla ne ulkoisia ja sisäisiä hyökkäyksiä vastaan. Projektia on tehty yhteistyössä saksalaisten ja ranskalaisten tutkijoiden sekä monien kansainvälisten yritysten kanssa. ämän gradun osalta haluan kiittää tiimikavereitani kaikesta avusta ja erityisesti crypto tohtoriamme Kimmo Halusta. Kiitokset myös työn ohjaajina toimineille lehtori Erkki Laitiselle ja tutkijatohtori Leena Pasaselle. Monia on myös kiitettävä kannustuksesta, jonka ansiosta sain tutkimukseni valmiiksi ajallaan. Oulussa 18.8.2014 Visa Vallivaara 1
Sisältö Johdanto 3 1 raaen teoriaa 4 1.1 raan ominaisuuksia...................... 4 1.2 Puugraa............................. 8 1.3 Painotettu graa......................... 10 2 Algoritmeja graafeille 11 2.1 Dijkstran algoritmi........................ 11 2.2 Kruskalin algoritmi........................ 12 2.3 Primin algoritmi......................... 14 3 ietoturvallinen tietoliikenneverkko 16 3.1 ietoliikenneverkon mallintaminen............... 16 3.2 raan yhtenäisyyden määritelmiä............... 18 4 Algoritmin analysointi 19 4.1 Pseudoalgoritmi.......................... 19 4.2 Puut algoritmi.......................... 21 4.3 ulosten analysointi....................... 22 5 Loppupäätelmät 24 Lähdeluettelo 25 2
Johdanto ietomurrot lisääntyvät nopealla vauhdilla johtuen uusista kehittyneemmistä hyökkäystekniikoista, joilla saa luvattoman yhteyden tietoverkkoon. Datavarkaudet ja hyökkäysyritykset ovat yleisiä ongelmia nykyajan organisaatiolla. ämä luo tarpeita erilaisten ratkaisujen löytämiseksi verkkojen tietoturvan ja luotettavuuden parantamiseksi. ietoliikenneverkossa on eriarvoisia komponentteja, jotka vaativat eri määrän tietoturvaa riippuen niiden luonteesta. Arvokkaimpia ovat yleensä tietokannat, joissa säilytetään luottamuksellista ja arvokasta informaatiota. Verkon arvokkaat osat halutaan suojata mahdollisimman hyvin ja eräs suojauskeino on sijoittaa ne verkon rakenteessa kaikkein suojaisimpaan kolkkaan, kauas Internetistä tulevista uhista. Vaikka jokin haittaohjelma saisikin osan verkon koneista saastutettua, voidaan silti välttyä katastrolta mikäli verkon topologia on estänyt haittaohjelmien leviämisen kriittisiin osiin. Esimerkiksi Filiol et al. (2007) ovat tutkineet tietokonematojen leviämistä tietoverkoissa ja havainneet, että reititys topologialla voi olla erittäin suuri vaikutus matojen leviämiseen [1]. Verkko ei kumminkaan saa olla liian putkimainen tai hajanainen sujuvan tiedonsiirron mahdollistamiseksi. ässä gradussa lähdetään ratkaisemaan näitä ongelmia graateorian avulla. raat ovat erinomainen työkalu tietoverkkojen mallintamiseen sekä optimointiin. raaen avulla pystytään tutkimaan ja analysoimaan verkkojen topologiaa ja niitä on käytetty paljon verkkojen optimointiin. Kuten Ahmat (2009) on tutkinut graateorian avulla isojen monimutkaisten verkkojen reitittämiseen ja tarkkailuun liittyviä optimointiongelmia ja on näyttänyt, että suurin osa näistä ongelmista on NP-täydellisiä tai NP-vaikeita [2]. Kun graalla kuvataan tietoverkkoa, niin jokainen graan solmu on jokin verkon komponentti, kuten tietokone. Viivoilla voimme merkitä sallittuja yhteyksiä verkon komponenttien välillä. Jokaisella solmulla on tärkeysarvo, eli mitä pienempi arvo solmulla on, sitä tärkeämpää sen suojaus on. Voimme antaa myös viivoille painoarvon, joka voi kertoa joko paljonko yhteyttä normaalisti käytetään tai sitten etäisyyden komponenttien välillä isossa verkossa. Käyttämällä näitä painoarvoja voimme muokata verkon topologian paremmaksi siten, että arvokkaat solmut ovat mahdollisimman suojassa ja vilkkaasti keskenään kommunikoivat koneet ovat lähellä toisiaan. ämän tutkielman ensimmäisessä kappaleessa käydään läpi graaen perusomaisuuksia ja määritelmiä. oisessa kappaleessa perehdytään algoritmeihin joita käytämme graaen optimoinnissa. Kolmannessa kappaleessa esitellään verkkojen tietoturva ominaisuuksia. Neljännessä kappaleessa sovelletaan algoritmeja verkkoihin ja analysoidaan tuloksia. Viimeisessä kappaleessa on yhteenveto tämän tutkielman tuloksista. 3
1736 E =(V,E ) V V E V ={A,B,C,D}E ={a,b,c,d,e,f,g} V =4 E =7 u v u v E V v uv uv v
v (v) v A B a A A (A)=5 1736 =(V,E ) H =(V H,E H ) H =(V V H,E E H ) =(V,E ) E (v) 2 E = v V (v) P(n):= n (v i )=2 E P(1) i=1 (V ) =2 E =1 P(k) E = k (V )=2k e H =(V,E e) e E H =k+1 (V H )=2k+2=2(k+1) P(k+1) V 1 V 2 =(V,E ) 2 E = v V (v)= v V 1 (v)+ v V 2 (v) 2 E
E = E H H = H V = V H a b W W :v 1 v 2 v k+1 V W :v 1 v k+1 W = k P P:v 1 v 2 v k+1 v 1 v 2 v k+1 v P v C C:v 1 v 2 v k v 1 v 2 v k 1 v 1 =v k P 1 P 2 W : A B D A C W =4 P 1 :C D B P 2 :C A B C:A B D C A P =4 u v u u v v v 0 v 1 v k v 0 =u v k =v k=1 v 0 v 1 v j k 2 v 0 v i v j v k v i =v j i j v i v u v u d(v,u)=min{k v u} d(v,u)=
d(v,u)< u v v u v,u V (A)=5 (B)=3 (C)=3 (D)=3 K n =(V K,E K ) V K = n n 1 n n 2 v (v)=
Kuva 2: ietoliikenneverkko joka muodostaa puugraan. 1.2 Puugraa Puut ovat yksinkertaisten graaen erikoistapauksia. Puun mallisilla graafeilla on hyviä käytännön sovelluksia niiden yksinkertaisemman rakenteen ansiosta, kuten organisaatiokaavioiden tarkastelu tai siirtoverkkojen minimointi. Ne ovat myös perusmalli erilaisille tietorakenteille. Esimerkiksi Kuvassa 2 on tietoliikenneverkko, jolla on puurakenne. Määritelmä 1.17. Puu = (V, E ) on yhtenäinen piiritön graa. Määritelmä 1.18. Puussa olevaa solmua, jonka aste on yksi, kutsutaan lehdeksi. Määritelmä 1.19. raa H = (V H, E H ) on graan = (V, E ) aligraa, jos V H V ja E H E. Voidaan merkitä H. Jos H ja V H = V niin tällöin graa H on graan virittävä aligraa. Lemma 1.20. Jokainen puun aligraafeista on myös puu. odistus. ehdään vastaoletus: puun aligraa ei ole puu, eli siinä on oltava piiri. Mutta jos aligraassa on piiri, on sen oltava myös alkuperäisessä graassa. ästä seuraa ristiriita, koska alkuperäinen graa on puu jossa ei ole piirejä. 8
n n 1 1 } P(n)={ n n P(1) P(k) v v k P(k+1) v k 1
E R + α =(V,E,α) α: P:v 1 v 2 v k+1 α(p)= k α(v i v i+1 ) i=1 d(v,u)=min{α(p) P:v u} v u α
α s v s V s S S u s O( E + V 2 ) O( E + V log V ) s Min(V ) v V α(sv) v ( α =(V,E ),s) v V d(s,v):= d(s,s):=0 S:= V v:=min(v ) V :=V {v} S:=S v u S d(s,u)>d(s,v)+α(vu) d(s,u):=d(s,v)+α(vu)
1956 O( E log V ) ( α =(V,E ) α := v V S(v):=v E α(e ) E < V 1 S(v) S(u) α = α (u,v) S=S(u) S(v) =(V,E ) E = V 1 V = E +1 S m E m V =V =(V,E ) α S m E P(m) ={ =(V,E ) α S m E S m E m } m =0 S 0 = E m = k P(k) =(V,E ) S k E e S k e E S k+1 =(S k {e}) E P(k+1) e/ E E {e} e (E S k+1 ) e e e e =(V,E ) E =(E {e }) {e} S k+1 E P(k+1)
α S n n 1 S V e=e S n 1 H1,H2,...,H10
1957 1958 1929 1956 α s Min(V ) v V α(uv) u v/ v e O( E + V log V )
( α =(V,E ),s) := v V d(,v):= d(,s):=0 V (v,e):=min(v ) :=(V {v},e {e}) V :=V {v} u V α(vu)<d(,u) d(,u):=α(vu) v =(V,E ) uv E i v/ V i 1,u V i 1 V = V E = V 1 α α =(V,E ) α = e k =vu v u e P (k 1) P e α(e ) α(e k ) e e k e e k e k
Kuva 6: Erilaisten tietoliikenneverkkojen topologia graafeja. 3 ietoturvallinen tietoliikenneverkko ietoturva on käsitteenä erittäin laaja. Siihen sisältyvät kaikki keinot, joilla pyritään estämään tiedon tuhoutuminen, muuttuminen tai päätyminen vääriin käsiin. Samalla kuitenkin tiedon täytyy olla niiden saatavilla, joilla on siihen oikeus. Luottamuksellista tietoa yritetään varastaa organisaatiolta käyttämällä erilaisia hyökkäystekniikoita kuten tietojenkalastelu, välistävetohyökkäys, troijalaiset ja muut haittaohjelmat. 3.1 ietoliikenneverkon mallintaminen Ohjelmiston määrittelemä tietoliikenneverkko, englanniksi Software-Dened Networking (SDN ), on uudehko lähestymistapa tietoliikenneverkon suunnitteluun, luomiseen ja hallintaan. Perusidea on se, että SDN erottaa toisistaan verkon hallinnan eli "aivot"ja pakettiliikenteen välitystason hallinnan eli "lihakset". ämä tarkoittaa sitä, että teoriassa kaikki verkon laitteet voivat olla suoraan yhteyksissä toisiinsa, kuten täydellisessä graassa. ämän tyyppistä verkkoa on helpompi optimoida ja sen rakennetta pystyy hetkessä muuttamaan, koska verkon fyysiset rakenteet eivät ole rajoitteena. ämän tutkielman laajuuteen ei kuuluu perehtyä tämän syvällisemmin SDN verkkoarkkitehtuurin teoriaan. ietoliikenneverkkoa voi mallintaa graalla, siten että solmut ovat jotain verkon komponentteja joilla on MAC osoite, kuten tietokone, tulostin tai tietokanta. Viivoilla voidaan merkitä sallittuja yhteyksiä verkon komponenttien 16
K n =(V,E) V K = n E K = n(n 1)/2
7 9 v 1927 λ() λ()=min{ F,F E F } λ()=k v,u V k v u v v v 1 v 2 v 1 v 2 v v v 1 v 2
K 10 α =(V,E ) V =n E =m c Z +
V =(v i,c i ) i=1,...,n p [0,1] E =(e j,p j ) j=1,...,m s R + s=c 1 s>c 1 ( α =(V =(v,c),e =(e,p),s) v i v j E α(v i v j )=p ij + k i k j /s 1 = ( α ) E =E E 1 2 = ( α ) H = 1 2 H s <c 1
C s H = (,C,s,method) n= (C,1); j=2:n i=1:(j 1) (j,i)=(j,i)+abs(c(i,1) C(j,1)/s; = (); i=1:n (i)= ( a +i 1) 2 (C(i,1)]); = (,,method); = H = (,,method)+; (H 100)/100 =tril(rand(n,n), 1) C=randi(c,n,1) n c 10 [0,1] s=4
26 7 1 26 1 s=6 2000 H H λ(h) =2 2
Kuva 11: Muuten sama verkko kuin Kuvassa 10, paitsi turvakerroin on 6. lyy, jolloin verkon muokkausta voi tarvittaessa jatkaa viiva kerrallaan. ai voimme nostaa poistetun viivan painoarvoa ja muodostaa uuden verkon alkuperäisellä algoritmilla, jolloin kyseinen yhteys jää pois. Lisäksi testauksissa havaittiin, että saadut verkot ovat usein myös separoitumattomia. Jolloin graasta voisi poistaa myös minkä tahansa solmun siten että graa pysyy yhtenäisenä. Mutta graain voi syntyä irrotuspiste, jos graa on suuri ja turvakerroin on valittu siten että se painottaa tietoturvaominaisuuksia, kuten Kuvassa 10. Vaihtelemalla turvakerrointa sekä tietoturvaluokkien määriä voi generoida useita erilaisia verkkoja ja valita niistä separoitumattoman tai vähiten irtopisteitä sisältävän. Jos graa on 2-viivayhtenäinen mutta ei separoitumaton, voidaan siitä poistaa saastunut solmu v kutistamalla se sellaisen viereisen solmun u kanssa, jolla on sitä lähinnä oleva turvaluokitus. Kutistus voidaan tehdä siten että kaikki solmuun v kytköksissä olevat viivat yhdistetään solmuun u yksi viiva kerrallaan, jolloin verkko pysyy jatkuvasti yhtenäisenä. ämän jälkeen voi tarvittaessa laskea puut algoritmilla uuden verkon ilman saastunutta solmua, ja lisätä siihen kuuluvat viivat verkkoon ja poistaa vanhat viivat. 23
2 2
Lähdeluettelo [1] É. Filiol, E. Franc, A. ubbioli, B. Moquet and. Roblot: Combinatorial optimisation of worm propagation on an unknown network. Engineering and echnology, World Academy of Science, 2007. [2] K. Ahmat: raph heory and Optimization Problems for Very Large Networks. City University of New York, United States, 2009. [3] R.R. Kadesch: Problem Solving Across the Disciplines. Prentice Hall, United States, 1997. [4] K. Rosen: Discrete mathematics and its applications. Pages 429-607. New York : Mcraw-Hill, 1995. [5] E.W. Dijkstra: A note on two problems in connexion with graphs. Pages 269271. Numerische Mathematik 1, 1959. [6] M.L. Fredman and R. arjan: Fibonacci heaps and their uses in improved network optimization algorithms. Pages 338346. Annual Symposium on Foundations of Computer Science 25, 1984 [7] J.B. Kruskal: On the Shortest Spanning Subtree of a raph and the raveling Salesman Problem. Pages 48-50. Proceedings of the American Mathematical Society 7, 1956. [8] R. Prim: Shortest Connection Networks and Some eneralizations. pages 1389-1401. Bell System echnical Journal 36, 1957. [9] E. Weisstein: Vertex Contraction. A Wolfram Web Resource, http://mathworld.wolfram.com/vertexcontraction.html, 2014. [10] R. Diestel: raph heory. hird edition. Berlin : Springer, 2005 [11] W-K. Chen: heory of Nets: Flows in Networks. New York : John Wiley & Sons, 1990. 25