0:00:00.000,0:00:03.060 Translated by Markus Aurala[br](ITKST56 course assignment at JYU.FI) 0:00:03.060,0:00:12.256 rC3-tunnusmusiikkia 0:00:12.256,0:00:18.400 Herald: Seuraava aiheemme on "Saksan[br]vaalien hakkerointi - turvaton sähköinen 0:00:18.400,0:00:23.600 ääntenlaskenta, kuinka se[br]palasi ja miksi et edes tiedä 0:00:23.600,0:00:32.330 siitä". Teille saksalaisille täällä,[br]huomasitteko, että äänestäminen muuttui 0:00:32.330,0:00:37.647 sähköisemmäksi juuri?[br]Itse asun Saksassa ja 0:00:37.647,0:00:43.200 en tätä huomannut. Molemmat puhujamme[br]ilmoittautuivat vapaaehtoisiksi vaali- 0:00:43.200,0:00:50.080 työntekijöiksi Saksassa ja tutkivat[br]vaalien tietoturvaa. He lupasivat 0:00:50.080,0:00:56.630 kertoa meille kuinka siinä kävi ja kuinka[br]vaaleista voidaan tehdä turvalliset. 0:00:56.630,0:01:01.680 Puhujamme ovat Tobias, tietoturvatutkija,[br]joka keskittyy haavoittuvaisuuksien 0:01:01.680,0:01:07.120 etsimiseen, autojen tietoturvaan ja[br]lipunryöstöhaasteisiin. Sekä Johannes, 0:01:07.120,0:01:11.960 joka on postdoc-tietoturvatutkija.[br]Kummatkin ovat työskennelleet yhdessä 0:01:11.960,0:01:18.528 Fraunhofer AISEC -instituutissa.[br]Nauttikaa esityksestä. 0:01:18.528,0:01:24.722 Hiljaisuus 0:01:24.722,0:01:29.450 Johannes: Hei ja tervetuloa esitykseemme[br]"Saksan vaalien hakkerointi - 0:01:29.450,0:01:33.840 turvaton sähköinen ääntenlaskenta, kuinka[br]se palasi ja miksi et edes tiedä siitä." 0:01:33.840,0:01:39.840 Minun nimeni on Johannes Obermaier.[br]Tobias: Ja minä olen Tobias Madl. Olemme 0:01:39.840,0:01:44.720 hyvin sisällä Baijerin vaaleissa, koska[br]olemme vaalityöntekijöitä ja tarjoamme 0:01:44.720,0:01:49.200 tukeamme täällä Saksassa.[br]J: Olemme haavoittuvuuksia etsiviä 0:01:49.200,0:01:52.778 tietoturvatutkijoita.[br]T: Ihan ensimmäiseksi, haluamme puhua 0:01:52.778,0:01:59.554 esityksemme sisällöstä. Tietomme ja[br]ohjelmistomme ovat peräisin 0:01:59.554,0:02:06.048 Baijerin kunnallisvaaleista, jotka[br]käytiin alkuvuonna 2020. Kyseessä oli 0:02:06.048,0:02:12.237 tietokonepohjainen äänestysteknologia,[br]joten olimme hyvin huolissamme kun me 0:02:12.237,0:02:16.620 aloimme kokeilemaan sitä. Ja lopulta[br]päädyimme esittämään kysymyksen "ovatko 0:02:16.620,0:02:24.025 vaalit turvatut?" Seuraavaksi esitän[br]tämänpäiväisen puheemme rungon. 0:02:24.025,0:02:28.862 Ensiksi, katsomme sähköistä[br]ääntenlaskujärjestelmää. Seuraavaksi, 0:02:28.862,0:02:34.425 tunnistamme käsitteellisiä ja käytännön[br]ongelmia tähän teknologiaan liittyen. 0:02:34.425,0:02:40.626 Sen jälkeen tutkimme ohjelmistoa ja[br]siitä löydettyjä haavoittuvaisuuksia. 0:02:40.626,0:02:46.727 Esityksen lopuksi[br]tehdään yhteenveto. 0:02:46.727,0:02:52.060 J: Ymmärtääkseemme miksi tarvitsemme[br]sähköistä ääntenlaskentaa, katsotaan 0:02:52.060,0:02:57.766 äänestyslippua. Tämä äänestyslippu on[br]paperimuodossaan noin metrin leveä ja 0:02:57.766,0:03:03.466 50 senttimetriä korkea. Joten se on aika[br]iso lipuke, paljon ehdokkaita. 0:03:03.466,0:03:11.091 Vedetään faktat yhteen. On yhteensä[br]599 ehdokasta, jotka jakaantuvat 0:03:11.091,0:03:17.287 yhdeksään puolueeseen. Äänestäjä[br]saa antaa maksimissaan 70 ääntä näissä 0:03:17.287,0:03:23.150 vaaleissa. Kuulostaa yksinkertaiselta,[br]mutta muuttuu monimutkaisemmaksi, koska 0:03:23.150,0:03:28.616 äänestäjä voi antaa maksimissaan 3 ääntä[br]per ehdokas ja jakaa 70 ääntään eri 0:03:28.616,0:03:35.572 puolueiden ehdokkaille.[br]Vaikka äänestäjä päättäisikin 0:03:35.572,0:03:40.771 äänestää yhtä ainoaa puoluetta, hän voi[br]yliviivata ehdokkaan, josta 0:03:40.771,0:03:46.142 ei pidä. Ja näin nuo ehdokkaat eivät saa[br]ääniä lipukkeestasi. Tästä seuraa, että 0:03:46.142,0:03:51.984 äänestysjärjestelmä antaa paljon valtaa[br]kansalaisille ja äänestäminen on hauskaa. 0:03:51.984,0:03:57.902 Äänten laskeminen näistä lipukkeista[br]on hankalaa, koska kaikkien lipukkeiden 0:03:57.902,0:04:03.986 laskeminen oikein edellyttää paljon[br]tietoa erikoissäännöistä. Tästä syystä 0:04:03.986,0:04:09.320 on kehitetty ohjelmisto OK.VOTE.[br]OK.VOTE on tyypillinen 0:04:09.320,0:04:15.154 vaaliohjelmisto, jota käytetään myös[br]äänestyspaikoilla ääntenlaskentaan. 0:04:15.154,0:04:20.478 OK.VOTE:lla on aika suuri markkinaosuus.[br]He sanovat, että se olisi 75% 0:04:20.478,0:04:26.112 Saksassa. Ohjelmistoa käytetään useissa[br]osavaltioissa. OK.VOTE:ssa on useita 0:04:26.112,0:04:32.114 moduuleja vaalien järjestämiseen,[br]mutta tässä esityksessä 0:04:32.114,0:04:40.082 tarkastelemme ainoastaan OK.VOTE:n[br]ääntenlaskentamoduulia, johon 0:04:40.082,0:04:47.328 vaalityöntekijät syöttävät[br]lipukkeet manuaalisesti 0:04:47.328,0:04:52.928 äänien tallentamiseksi tieto-[br]järjestelmään. OK.VOTE:n tehtävä on 0:04:52.928,0:04:58.734 prosessoida jokainen lipuke[br]äänten laskemiseksi, tarkistaa 0:04:58.734,0:05:03.708 oikeellisuus, sitten tallettaa lipukkeen[br]tiedot tietokantaan, lopuksi se tekee 0:05:03.708,0:05:10.065 taikojaan ja laskee lopputuloksen. Tämä[br]kuulostaa aika samalta mitä äänestyskone 0:05:10.065,0:05:17.592 tekee. Mutta hetkinen...[br]Äänestyskoneita, minun Saksassani? 0:05:17.592,0:05:22.585 T: Hetkonen, sehän on laitonta.[br]J: Onko se laitonta? Katsotaan, 0:05:22.585,0:05:29.618 mitä lainsäädäntö siitä sanoo. Kyllä,[br]vuonna 2009 Saksan liittotasavallan 0:05:29.618,0:05:35.258 perustuslakioikeus teki merkittävän[br]päätöksen ja sanoi, että äänestys- 0:05:35.258,0:05:40.474 koneiden käyttö liittopäivävaaleissa[br]vuonna 2005 oli perustuslain vastaista. 0:05:40.474,0:05:48.755 Muun muassa siksi, että ne eivät olleet[br]riittävän avoimia. Tämä on aika lähellä 0:05:48.755,0:05:54.393 kunnallisvaaleja koskevia[br]löydöksiämme. Mutta hetkinen, me 0:05:54.393,0:05:58.564 puhumme liittopäivävaaleista. Mutta[br]nämähän ovat kunnallisvaalit 0:05:58.564,0:06:03.430 ja meillä on eri säännöt kunnallis-[br]vaaleille. Esimerkiksi on olemassa 0:06:03.430,0:06:10.374 GLKrWO, Gemeinde- und[br]Landkreiswahlordnung Bayern, 0:06:10.374,0:06:16.605 joka kääntyy Baijerin kunnallisvaali-[br]säännöiksi. Ja nuo säännöt sanovat, 0:06:16.605,0:06:23.009 että emme saa käyttää äänestämiseen[br]tietokonetta, mutta tietokoneita 0:06:23.009,0:06:29.417 voidaan käyttää ääntenlaskuun. Tässä[br]tapauksessa, olettaisin, että meillä on 0:06:29.417,0:06:35.686 jonkinlaisia tietoturvavaatimuksia[br]noissa säännöissä. Mutta yritin 0:06:35.686,0:06:40.713 löytää niitä. Ja olin todella yllättynyt.[br]Niitä on tarkalleen nolla kappaletta. 0:06:40.713,0:06:45.370 T: Eli jos ei ole laillisia vaatimuksia,[br]onko edes mitään ohjelmistoa koskevia 0:06:45.370,0:06:50.590 vaatimuksia tai sertifiointeja, joilla[br]taataan OK.VOTE:n turvallisuus? 0:06:50.590,0:06:55.813 J: Kyllä, niitä on. Tutkin web-sivustoa[br]ja näin siellä tämän kivan pienen 0:06:55.813,0:07:03.127 kappaleen "Turvalliset vaalit". Siinä[br]sanotaan OK.VOTE:n kehityksen aikana 0:07:03.127,0:07:10.540 heidän laittaneet korkeimman painoarvon[br]turvallisuusasioihin. He seuraavaat BSI:n 0:07:10.540,0:07:16.193 ja OWASP:in tietoturvasuosituksia, ja[br]heillä on sertifioitu palvelinkeskus 0:07:16.193,0:07:20.540 erittäin korkeilla turvastandardeilla.[br]T: Ja miltä tämä näyttää sitten 0:07:20.540,0:07:23.507 käytännössä?[br]J: Voi, en haluaisi näyttää sinulle tätä 0:07:23.507,0:07:29.597 tässä. Se on aika pelottavaa. Tämä[br]tässä oli se näky kun astuin sisään 0:07:29.597,0:07:33.909 vaalihuoneeseen. Tämä ei ole kuva-[br]kirjastosta. Otin tämän kuvan itse ja se 0:07:33.909,0:07:40.187 on todellisuus. Siis, kävelin näiden[br]tyyppien luo ja kysyin, että "pitäisikö 0:07:40.187,0:07:44.069 meidän käyttää näitä ääntenlaskuun?"[br]ja he sanoivat "kyllä, sitä varten 0:07:44.069,0:07:50.037 ne ovat täällä". Ja minä rukoilin[br]Jumalaa, että olisi joku syy, ettei se 0:07:50.037,0:07:55.102 onnistuisi. Ja Windows XP ei pettänyt[br]minua, koska kun käynnistin ohjelmistoa, 0:07:55.102,0:08:02.812 se kaatui, koska ne koneet olivat[br]32-bittisiä ja OK.VOTE vaati 64-bittisen. 0:08:02.812,0:08:09.354 Joo, se oli hienoa. Joten me emme sitten[br]käyttäneet Windows XP -koneita. Etsimme 0:08:09.354,0:08:14.331 sen sijaan muita koneita ja löysimme[br]tämän tässä. Se on Windows 10 -kone. 0:08:14.331,0:08:20.749 Se oli OK. Kuitenkin, siinä oli[br]vanhentunut virusskanneri. No, parempi 0:08:20.749,0:08:26.916 kuin ei mitään. Eli käytimme siis sitä[br]konetta. Mutta pidetään mielessä mitä 0:08:26.916,0:08:34.486 meille luvattiin: turvallisia vaaleja.[br]Epäilimme sitä todellakin. 0:08:34.486,0:08:39.503 Katsotaan IT-ympäristöä ja miten siihen[br]tilanteeseen päädyttiin. Ensimmäiseksi 0:08:39.503,0:08:46.211 tämä ei ollut ihan täysin[br]OK.VOTE:n vika, koska se oli 0:08:46.211,0:08:53.682 paikallishallinnon vastuulla hankkia[br]koneet ääntenlaskuun ja AKDB, OK.VOTE:n 0:08:53.682,0:08:59.771 toimittaja, sanoi, että he suosittelevat[br]käyttämään turvattuja hallinnon koneita. 0:08:59.771,0:09:05.515 OK tähän asti, mutta meillä ei vain ollut[br]tarpeeksi turvattuja hallinnon koneita 0:09:05.515,0:09:10.845 tähän tarkoitukseen. Esimerkiksi,[br]kotikaupungissani tarvitsimme noin 8 0:09:10.845,0:09:16.571 tietokonetta laskemaan vaalitulosta[br]ja meillä ei ollut tarpeeksi 0:09:16.571,0:09:23.211 kaupungintalolla. Ja lisäksi[br]vaalihuone oli koululla ja siellä 0:09:23.211,0:09:27.923 oli valmiina koulu-PC:itä. Joten[br]käytimme sitten koulu-PC:itä. 0:09:27.923,0:09:33.520 Ja ne olivat peruskoulun koneita. En[br]ole todellakaan varma, tietävätkö 0:09:33.520,0:09:38.466 kaikki oppilaat mitä linkkejä saa[br]painaa ja mitä mitä ei pitäisi 0:09:38.466,0:09:43.991 painaa. Joten nämä koneet saattaisivat[br]olla turvattomia. Niissä voisi olla 0:09:43.991,0:09:49.038 haittaohjelmia. Ja olisi mahdollista,[br]että joku olisi manipuloinut niitä 0:09:49.038,0:09:55.854 etukäteen. Emme voi varmuudella sanoa.[br]En haluaisi kuitenkaan syyttää 0:09:55.854,0:10:00.058 hallintoa, koska he olivat tehneet[br]hyvää työtä vaalien järjestämisessä. 0:10:00.058,0:10:05.967 Heillä oli paljon tehtävää ja he[br]tekivät sen hyvin. Kaikki järjestyi 0:10:05.967,0:10:12.283 lopulta. He eivät ole tietoturva-[br]ammattilaisia ja emme voi sitä vaatia 0:10:12.283,0:10:18.532 heiltä, että he tietäisivät, miten[br]pystyttää järjestelmät ja mitä 0:10:18.532,0:10:24.045 riskejä liittyy turvaamattomiin[br]tietokoneisiin vaaleissa. 0:10:24.045,0:10:29.890 Se ei vain ole heidän työtään. Me vain[br]päädyimme käyttämään epäluotettavia 0:10:29.890,0:10:36.069 koneita, koska - kuten olemme nähneet -[br]lailliset vaatimukset eivät sano toisin. 0:10:36.069,0:10:40.108 Nyt, katsotaan miten saimme[br]digitaalisen tuloksen aikaan. 0:10:40.108,0:10:47.214 T: Juuri niin. Menimme äänestys-[br]paikoillemme ja saimme jokainen 0:10:47.214,0:10:52.811 PC:n ja nipun äänestyslipukkeita[br]laskettavaksi ja tulosten syöttämiseksi. 0:10:52.811,0:10:59.468 Johannes oli Tiimissä 2, minä Tiimissä[br]1. Syötimme lipukkeita koneisiimme. 0:10:59.468,0:11:06.232 Ne digitoitiin. Tiimi 1 oli[br]vihreä ja Tiimi 2 oli sininen. 0:11:06.232,0:11:11.103 J: Kun lopetin lipukkeiden syöttämisen,[br]laitoin sisään USB-muistin ja 0:11:11.103,0:11:16.735 annoin sen Tiimi 1:lle.[br]T: Juuri niin. Latasin koneelleni äänet, 0:11:16.735,0:11:22.094 koska siinä vaiheessa minulla oli[br]keskuskone. OK.VOTE:n ohjelmisto 0:11:22.094,0:11:28.578 finalisoi nämä vaalit ja[br]siirsi tulokset sen jälkeen 0:11:28.578,0:11:34.055 jälleen USB-muistille. Ja sitten se[br]kuljetettiin eteenpäin prosessoitavaksi. 0:11:34.055,0:11:39.160 J: Mikä ongelma tässä kaikessa oli?[br]Ensinnäkin, siinä oli paljon 0:11:39.160,0:11:43.301 läpinäkymättömyyttä. Esimerkiksi,[br]ohjelmisto, jota käytimme äänten 0:11:43.301,0:11:49.171 laskemiseen, OK.VOTE, ei ole avointa[br]lähdekoodia. Se on suljettu järjestelmä, 0:11:49.171,0:11:55.572 eikä kukaan pysty sitä analysoimaan. Ja[br]koska se on suljettu järjestelmä, on 0:11:55.572,0:12:00.433 myös hyvin hankala ymmärtää miten [br]se toimii ja varmistaa, että se todella 0:12:00.433,0:12:05.192 laskee oikein. Meillä oli satoja[br]äänestyslipukkeita siellä ja 0:12:05.192,0:12:10.217 on todella vaikeaa sanoa, ovatko[br]ne kaikki oli laskettu oikein. Ja 0:12:10.217,0:12:16.887 me olemme nähneet tämän ennenkin. Ei voi[br]varmistaa laskennan olleen turvattu. 0:12:16.887,0:12:22.264 Meillä olisi voinut olla peukaloitu[br]järjestelmä. Emme voi sulkea pois, että 0:12:22.264,0:12:29.346 joku olisi manipuloinut sitä etukäteen.[br]Jos sitä olisi manipuloitu, sitä olisi 0:12:29.346,0:12:34.988 rivivaalityöntekijän vaikea[br]havaita. Joten se tarkoittaa, että 0:12:34.988,0:12:40.947 koko vaaliprosessi on läpinäkymätön[br]ja siitä tulee vaikeasti ymmärrettävä 0:12:40.947,0:12:46.460 henkilölle, joka vain haluaa seurata[br]vaaleja. Se on täysin vastaan 0:12:46.460,0:12:52.953 julkisen ääntenlaskun ideaa.[br]T: Puhutaan nyt siitä vaiheesta, 0:12:52.953,0:12:58.323 joka tapahtuu sen jälkeen kun[br]lopetamme laskemisen tiimeissämme. 0:12:58.323,0:13:02.038 J: Mitä sitä teit kun sait ulos[br]lopullisen ääntenlaskennan tuloksen? 0:13:02.038,0:13:04.581 Kuinka se toimitettiin[br]keskushallintoon? 0:13:04.581,0:13:10.666 T: Jep, istuin autooni ja otin[br]USB-muistit taskuuni ja ajoin 0:13:10.666,0:13:17.868 keskus-PC:lle. Kuten varmaan tiedät,[br]vaalipäivä on erittäin kiireinen ja 0:13:17.868,0:13:24.386 jotkut tiimit ovat hitaampia laskemaan.[br]Jotkut tiimi ovat nopeampia. Keskustiimi 0:13:24.386,0:13:29.052 ei tiedä milloin USB-muistit saapuvat.[br]Meneekö siinä kaksi, kolme tuntia vai 0:13:29.052,0:13:33.191 puolikas, he eivät tiedä. Joten voisin[br]mennä ja syödä jotain matkallani. 0:13:33.191,0:13:39.311 Tai voisin manipuloida äänestystuloksia.[br]Tarkoitan, jakaa ääniä. Ja kun lopulta 0:13:39.311,0:13:44.307 joku päivä saavun keskus-PC:lle, annan[br]vain USB-muistin, he asentavat sen 0:13:44.307,0:13:48.340 ja ottavat datan joka sieltä löytyy.[br]Siinä kaikki. Jälkeen päin 0:13:48.340,0:13:52.574 he vain lataavat lopulliset[br]tulokset sivulle. 0:13:52.574,0:13:59.035 J: Nyt ehkä mietitte, miten hän[br]voisi manipuloida vaalituloksia? 0:13:59.035,0:14:04.844 Koska niiden autenttisuutta ei ole[br]suojattu. Kuljettavan tiedoston 0:14:04.844,0:14:10.388 koskemattomuus on suojattu. On CRC32[br]ja SHA-tiiviste, mutta ei krypto- 0:14:10.388,0:14:16.464 grafista allekirjoitusta. Jos hän[br]muuttaisi dataa, hän voisi generoida 0:14:16.464,0:14:22.089 uudet koskemattomuustiedot ja data[br]hyväksyttäisiin. Pääongelma tässä on 0:14:22.089,0:14:28.508 myös se, että tämä on harvoja hetkiä kun[br]vain yhdellä ihmisellä on valvomaton 0:14:28.508,0:14:34.268 pääsy kuljettavana olevaan[br]äänestysdataan. Ja se tekee 0:14:34.268,0:14:39.255 manipuloinnista mahdollista ja helposti[br]tehtävissä olevaa. Ja se ei saisi olla 0:14:39.255,0:14:48.145 näin, erityisesti sähköistetyissä[br]vaaleissa. Katsotaanpa 0:14:48.145,0:14:52.487 itse äänteenlaskuohjelmistoa, koska[br]teimme siellä vielä enemmän 0:14:52.487,0:14:55.962 mielenkiintoisia löydöksiä.[br]T: Juuri näin. Aloitetaan järjestelmä- 0:14:55.962,0:15:01.951 arkkitehtuurista. Ensimmäiseksi, tämä on[br]paikallinen tai hajautettu versio 0:15:01.951,0:15:08.008 järjestelmästä. Joten kaikki tämä[br]tapahtuu paikallisilla koneilla, niillä 0:15:08.008,0:15:13.154 joihin tutustuimme luokkahuoneissa. Ja[br]näillä koneilla on asennettuna Apache 0:15:13.154,0:15:18.011 Tomcat -web-palvelin, joka on yhdistetty[br]MariaDB-tietokantaan. Käyttäjä käyttää 0:15:18.011,0:15:25.414 äänestysjärjestelmä siirrettävällä[br]Firefoxilla. AKDB sanoi aiemmin, että he 0:15:25.414,0:15:33.166 suhtautuivat erittäin vakavasti tieto-[br]turvaan. Mietitään mitä hyökkääjiä heillä 0:15:33.166,0:15:38.349 oli mielessään suunnitellessaan[br]järjestelmää ja keneltä pitäisi 0:15:38.349,0:15:44.342 puolustautua. Hyökkääkö järjestelmää,[br]ääntenlaskuohjelmistoa, vastaan käyttäjä, 0:15:44.342,0:15:51.336 joka on normaalisti vain vapaa-ajallaan[br]vaaleissa avustava vaalityöntekijä, 0:15:51.336,0:15:57.549 vai oliko heillä mielessä[br]verkkohyökkääjät, jotka tulevat 0:15:57.549,0:16:03.077 ihan jostain muualta ja yrittävät[br]manipuloida verkkoa ulkoapäin? 0:16:03.077,0:16:09.895 Ensiksi, tarkastelimme käyttäjää yhtenä[br]mahdollisista hyökkääjistä. Ja jopa tässä 0:16:09.895,0:16:15.412 ympäristössä me löysimme todella[br]rikkinäistä tavaraa. Ensimmäiseksi, 0:16:15.412,0:16:20.525 rikkinäinen pääsynhallinta. Mutta ei[br]siinä kaikki. Tässä kirjautumissivu, 0:16:20.525,0:16:26.630 jolla kirjauduimme äänestysjärjestelmään,[br]ja jossa klikkasimme hallintasivua missä 0:16:26.630,0:16:31.467 voimme vaihtaa salasanan tai editoida[br]profiiliamme. Vasemmalla on nappuloita ja 0:16:31.467,0:16:36.585 kuten näette, olemme kirjautuneet sisään[br]"user42":na. Ei ole muuta tehtävää kuin 0:16:36.585,0:16:42.976 valita mitä laskentaa haluamme tehdä:[br]yleistä alueellista äänestystä vai 0:16:42.976,0:16:48.223 kunnallista laskentaa. Ja siinä kaikki[br]mitä voimme tehdä sivulla. Vaihdetaan 0:16:48.223,0:16:53.726 järjestelmänvalvojaksi. Tässä meillä on[br]järjestelmänvalvojan tili, kuten näette 0:16:53.726,0:17:00.193 ylävasemmalta. Siellä voimme tehdä paljon[br]enemmän kuin normaali käyttäjä. Olemme 0:17:00.193,0:17:04.483 taas hallintasivulla, mutta nyt meillä on[br]käyttäjienhallinta, jossa voimme lisätä 0:17:04.483,0:17:12.495 tai poistaa käyttäjiä. Me voimme avata [br]uudelleen tai sulkea äänestystapoja. Me 0:17:12.495,0:17:18.471 voimme tuoda/viedä tietoa. Mikä ei ole[br]käytössä ruutukaappauksissa on 0:17:18.471,0:17:25.003 äänestystulosten poisto jne. Me[br]valitsimme kaksi erittäin kiinnostavaa 0:17:25.003,0:17:31.602 URL-osoitetta teille. Ensimmäiseksi,[br]"Bezirk wieder eröffnen" joka kääntyy 0:17:31.602,0:17:36.360 "avaa uudelleen vaalit". Sen[br]jälkeen kun vaalit on suljettu, 0:17:36.360,0:17:41.296 ääniä ei voi enää syöttää[br]järjestelmään. Ja toinen 0:17:41.296,0:17:46.709 linkki on "Löschen", joka kääntyy[br]"tuhoa". Se puolestaan tuhoaa 0:17:46.709,0:17:53.156 kaiken datan koneelta, jolloin siellä ei[br]ole enää yksityistä tai turvattua dataa. 0:17:53.156,0:17:59.470 Ja tämä on se miltä ne näyttävät kun me[br]avaamme ne vasemmalta puolelta. 0:17:59.470,0:18:04.428 Näemme "avaa uudelleen" -valinnan.[br]Oikealla näemme datan poiston. Hetkinen, 0:18:04.428,0:18:12.609 tämä ei ole järjestelmänvalvojan näkymä,[br]vaan käyttäjän näkymä. He eivät 0:18:12.609,0:18:18.184 tarkastaneet oliko tämä sallittua[br]käyttäjälle. Pakko sanoa ettei tämä 0:18:18.184,0:18:22.008 ollut vain näkymä, vaan ne toimivat.[br]Täysin toimivat prosessit, joilla 0:18:22.008,0:18:25.533 poistat dataa tai avaat vaalit[br]uudelleen. 0:18:25.533,0:18:29.296 Hälytysääni[br]J: Mikä ongelma tässä on? 0:18:29.296,0:18:33.754 T: Jep, kuten varmaan jo arvasit,[br]vaalien avaaminen uudelleen voi 0:18:33.754,0:18:38.529 tehdä siitä todennäköisempää, että[br]mukaan ujutetaan ääniä omalle suosikille. 0:18:38.529,0:18:44.795 Ja lisäksi, jos haluan sekoittaa[br]vaaleja, voin vain poistaa kaiken 0:18:44.795,0:18:50.043 äänestysdatan. Joutuisimme aloittamaan[br]alusta. Olisimme täysin myöhässä tai 0:18:50.043,0:18:53.422 kiistämään äänestyksen.[br]J: Mutta kuinka tämä on edes mahdollista? 0:18:53.422,0:18:59.710 T: Jep, me opimme, että tässä on heidän[br]sovelluksensa pääsyoikeuksien tarkastus. 0:18:59.710,0:19:05.694 Tässä funktiossa "getZugriffRollen",[br]joka kääntyy "hae pääsyroolit". 0:19:05.694,0:19:10.859 Normaalisti siellä olisi koodia joka[br]tarkastaa onko tällä roolilla pääsy 0:19:10.859,0:19:15.304 tähän osaa sivustoa. Mutta se vain[br]palauttaa "null", ei sitä ole toteutettu. 0:19:15.304,0:19:21.863 Ja se on kiva homma implementoida[br]pääsynhallinta. Kuitenkin, me voimme 0:19:21.863,0:19:27.422 ehdottaa mekanismeja, joilla tämä olisi[br]voitu estää. Ensimmäiseksi, et voi 0:19:27.422,0:19:33.174 luottaa piilotettuun tietoon.[br]Jos jätät näyttämättä mistä voi klikata 0:19:33.174,0:19:38.835 URLia tai sivua, se ei ole oikeasti[br]salaisuus, koska ehkä löydät jotain 0:19:38.835,0:19:43.488 vuodettua lähdekoodia, varmistat[br]ajamisen järjestelmänvalvojana, tai 0:19:43.488,0:19:48.774 naputtelet URL:n vahingossa väärin ja[br]pääset piilotettuun tietoon. Tai sitten 0:19:48.774,0:19:54.505 käytät skanneria löytääksesi piilodatan.[br]Datan piilottaminen ei ole turvallista. 0:19:54.505,0:19:59.009 Ja toisaalta, sinun pitäisi implementoida[br]pääsyoikeuksien hallinta, jotta 0:19:59.009,0:20:03.394 se olisi olemassa ja testata edes[br]kerran, että se toimii. Lopulta 0:20:03.394,0:20:07.678 voimme todeta, että piilotettu data[br]ei ole suojattua dataa. 0:20:07.678,0:20:11.802 T: Katsotaaanpa toisentyyppistä[br]hyökkäystä, XSS-hyökkäystä. 0:20:11.802,0:20:17.009 XSS-hyökkäys on eräänlaista[br]häirintää kahden web-sivun välillä. 0:20:17.009,0:20:21.862 Esimerkiksi, yksi sivusto yrittää tehdä[br]jotain toisen puolesta. Tavoite on usein 0:20:21.862,0:20:27.052 huijata käyttäjää tai käynnistää[br]manipulaatio. Ensimmäiseksi, olemme aika 0:20:27.052,0:20:33.217 varmoja, että he ovat miettineet XSS-[br]hyökkäyksiä, koska tehdessämme testausta, 0:20:33.217,0:20:39.979 me näimme lisättyjä HTTP-otsakkeita,[br]jotka torjuvat suuren kirjon erilaisia 0:20:39.979,0:20:45.140 XSS-hyökkäysvektoreita. Esimerkiksi,[br]tässä on "X-Frame-Options: Same Origin". 0:20:45.140,0:20:52.179 Se tarkoittaa, että muut sivut eivät voi[br]sisällyttää ääntenlaskentaohjelmistoa 0:20:52.179,0:20:56.608 omiin kehyksiinsä jne. Myöskin[br]XSS-hyökkäyksen suojaus on asetettu: 0:20:56.608,0:21:03.739 "X-XXS-Protection". Joten tämä näyttää[br]aika hyvältä, koska jo tämä sulkee pois 0:21:03.739,0:21:10.328 useita hyökkäysvektoreita. Mutta entäs[br]CSRF-hyökkäykset? Kun me ensin testasimme 0:21:10.328,0:21:16.157 tätä, meille selvisi, että ääntenlasku-[br]järjestelmää ei oltu täysin suojattu. 0:21:16.157,0:21:21.490 Mitä CSRF-hyökkäys tarkoittaa? Vaiheessa[br]1 vaalityöntekijä käyttää integroitua 0:21:21.490,0:21:26.566 Firefox-selainta vihamielisellä[br]web-sivustolla. Eli käyttäjä 0:21:26.566,0:21:31.965 keksii mennä web-sivustolle. Esimerkiksi[br]joku lähettää hänelle linkin ja se sai 0:21:31.965,0:21:37.805 hänet klikkaamaan sitä, esimerkiksi[br]suloisten eläinkuvien toivossa tai 0:21:37.805,0:21:43.088 jotain sellaista. Ja sitten käyttäjä[br]vierailee sivustolla. Ja tämä sivusto 0:21:43.088,0:21:47.972 sisältää lomakkeen kenttiä, jotka[br]muistuttavat ääntenlaskentaohjelmiston 0:21:47.972,0:21:53.890 kentistä. Ja vihamielinen web-sivusto[br]saa selaimen lähettämään niiden datan 0:21:53.890,0:21:59.576 ääntenlaskentaohjelmistoon sen[br]alkuperäisen web-sivuston sijasta. 0:21:59.576,0:22:04.489 Ja heti kun se saavuttaa Tomcat-[br]web-palvelimen, se hämääntyy, 0:22:04.489,0:22:11.266 koska web-palvelin ei CSRF-hyökkäyksessä[br]erota käyttäjän syötettä vihamielisen 0:22:11.266,0:22:15.432 sivuston syötteestä. Ja sitten[br]Apache Tomcat -palvelin 0:22:15.432,0:22:20.482 vain pitää sitä käyttäjän syötteenä[br]ja käsittelee sen. Ja tätä 0:22:20.482,0:22:25.550 kutsutaan CSRF-hyökkäykseksi.[br]Näimme siis, että joskus siellä 0:22:25.550,0:22:31.360 on suojaus tietyntyyppisiä hyökkäyksiä[br]vastaan. Mutta monet sivut eivät ole 0:22:31.360,0:22:37.647 suojattuja. Se on hyvin huolestuttavaa.[br]Haavoittuvaisuus vuodelta 2001. Se on 0:22:37.647,0:22:43.873 melkein 20 vuotta vanha ja löytyy yhä[br]tästä ohjelmistossa. Tämä on hyvin 0:22:43.873,0:22:49.950 huolestuttavaa. Nyt, vedetään yhteen[br]mitä sillä voi tehdä. Ensimmäiseksi, 0:22:49.950,0:22:55.508 tämä ongelma aiheutuu siitä, että sieltä[br]puuttuu nk. CSRF-tunniste tai mikä vain 0:22:55.508,0:23:00.456 hyvä vastatoimenpide CSRF-hyökkäyksille.[br]Ja toisekseen, vain minimaalinen 0:23:00.456,0:23:05.161 käyttäjän vuorovaikutus tarvitaan.[br]Käyttäjä ei aina edes näe, että 0:23:05.161,0:23:11.233 hän on parhaillaan[br]osallisena CSRF-hyökkäyksessä. 0:23:11.233,0:23:15.695 Se on melkein käyttäjän huomaamattomissa.[br]Ja se on erittäin yksinkertaista huijata 0:23:15.695,0:23:22.824 käyttäjää klikkaamaan linkkiä. Vaikutus[br]on tuhoisa, koska me voimme manipuloida 0:23:22.824,0:23:29.414 asetuksia ääntenlaskentaohjelmistossa.[br]Ja me voimme lisätä feikkilipukkeita. 0:23:29.414,0:23:33.604 Hälytysääni[br]T: Mikä tämän lopputulos on? 0:23:33.604,0:23:37.899 Mitä me voimme tehdä tällä?[br]J: No, me voimme manipuloida koko 0:23:37.899,0:23:42.534 vaalit tällä. Katsotaan demo[br]siitä, kuinka me sen teemme. 0:23:42.534,0:23:45.009 T: Siistiä.[br]J: Olemme jo kirjautuneet sisään 0:23:45.009,0:23:54.763 ääntenlaskentajärjestelmään. Tunnuksemme[br]on "admin321934". Lasketaanpa ääniä. 0:23:54.763,0:23:59.625 Näemme tässä kaikki lipukkeet, jotka[br]voimme syöttää järjestelmään. Nämä ovat 0:23:59.625,0:24:07.226 yhä tyhjiä, koska emme ole syöttäneet[br]lipukkeita vielä. Aloitetaan. Yksin- 0:24:07.226,0:24:12.337 kertaisuuden takia, meillä on vain kaksi[br]puoluetta. Vasemmalla Hyvä Puolue, joka 0:24:12.337,0:24:16.812 haluaa parasta ihmisille. Oikealla[br]meillä on Paha Puolue, joka 0:24:16.812,0:24:22.339 haluaa valtaa ja on valmis turvautumaan[br]jopa vaalivilppiin. Aloitetaan 0:24:22.339,0:24:27.957 ja syötetään ensimmäinen paperilipuke.[br]Äänestäjä on äänestänyt Hyvää Puoluetta, 0:24:27.957,0:24:37.867 joten syötämme tämän ohjelmistoon. Nyt[br]me tallennamme lipukkeen ja jatkamme 0:24:37.867,0:24:44.743 eteenpäin. Se on ääni Hyvälle Puolueelle.[br]Syötetään se ja mennään kolmanteen 0:24:44.743,0:24:52.906 lipukkeeseen. Ja taas, se on Hyvälle[br]Puolueelle. Tallennetaan kolmas lipuke. 0:24:52.906,0:24:59.870 Mennään lipukkeiden yleiskatsaukseen ja[br]katsotaan mitä on tapahtunut. Näette, 0:24:59.870,0:25:05.244 että olemme syöttäneet onnistuneesti 3[br]lipuketta. Seuraavaksi, katsotaan 0:25:05.244,0:25:11.353 alustavia vaalituloksia. Ja kuten[br]näemme, meillä on yhteensä 3 lipuketta, 0:25:11.353,0:25:15.983 jotka olemme syöttäneet järjestelmään.[br]Se on oikein. 3 lipuketta sisälsivät 0:25:15.983,0:25:21.764 ääniä Hyvälle Puolueelle. Se on myös[br]oikein. Ja nolla ääntä on annettu 0:25:21.764,0:25:28.235 Huonolle Puolueelle. Kaikki hyvin vielä.[br]Seuraavaksi, näytän mitä tapahtuu jos 0:25:28.235,0:25:32.616 avaan vihamielisen verkkosivun. Sivusto[br]tekee CSRF-hyökkäyksen ja manipuloi 0:25:32.616,0:25:38.984 vaalituloksia. Oletetaan, että pidämme[br]taukoa ja vierailemme Twitterissä. 0:25:49.004,0:25:54.058 OK, täällä ollaan. Täällä on kiva[br]kissakuva ja täällä on linkki, josta 0:25:54.058,0:26:02.388 löytyy lisää niitä. Leikitään, että[br]meidät huijataan klikkaamaan linkkiä. 0:26:02.388,0:26:08.001 Voi, katsokaa noita suloisia eläinkuvia.[br]Katsokaa tuota nälkäistä kania, apinaa, 0:26:08.001,0:26:14.318 pientä siiliä ja kahta suloista vuohta[br]jne. Kun lopetamme selaamisen, 0:26:14.318,0:26:23.343 suljemme välilehdet ja palaamme äänten-[br]laskentaohjelmistoon. Mitä huomaamme nyt 0:26:23.343,0:26:29.460 on, että käyttäjänimi on muuttunut.[br]Meidät on "häkätty". Meidät huijattiin 0:26:29.460,0:26:34.599 vierailemaan vihamielisellä sivustolla.[br]Se suoritti CSRF-hyökkäyksen sovellukseen 0:26:34.599,0:26:42.758 ja manipuloi sitä. Katsotaan mitä muuta[br]on muuttunut. Kaikki 3 lipuketta on 0:26:42.758,0:26:48.426 yhä siellä, mutta nyt menemme[br]katsomaan alustavia vaalituloksia. 0:26:48.426,0:26:53.792 Mitä näemme siellä on, että[br]lipukkeiden määrä järjestelmässä 0:26:53.792,0:26:58.190 on noussut kahdeksaan. Meillä on nyt 5[br]ylimääräistä lipuketta, joita emme ole 0:26:58.190,0:27:03.728 syöttäneet. Kuten näette, Hyvällä[br]Puolueella on yhä 3 ääntä. Ne me 0:27:03.728,0:27:09.531 syötimme. Mutta nyt Paha Puolue on[br]ottanut johdon. Sillä on nyt 5 ääntä. 0:27:09.531,0:27:15.648 Tämä hyökkäys on manipuloinut[br]vaalituloksia. Tosi huono homma, 0:27:15.648,0:27:21.111 koska me emme näe niitä[br]feikkiääniä, jotka on lisätty. 0:27:21.111,0:27:26.789 Olimme kuitenkin onnekkaita kun[br]huomasimme sen, koska odotimme 0:27:26.789,0:27:31.534 hyökkäystä. Mutta emme huomaisi[br]asiaa jokaisessa tapauksessa. 0:27:33.233,0:27:39.124 T: Mutta mitä tapahtuu, jos emme huomaa?[br]J: No, tämä tapahtuu. Tässä esimerkissä 0:27:39.124,0:27:44.213 me vain oletimme, että Tiimillä 1[br]oli 3 lipuketta, jotka se oli syöttänyt 0:27:44.213,0:27:48.247 järjestelmään ja Tiimillä 2 oli 6[br]lipuketta, jotka se oli syöttänyt 0:27:48.247,0:27:55.038 järjestelmään. Nyt Tiimi 1 vierailee[br]vihamielisellä sivustolla ja 5 feikki- 0:27:55.038,0:28:01.085 lipuketta lisätään vaalituloksiin.[br]Tässä tapauksessa hyökkääjä oli fiksu 0:28:01.085,0:28:06.498 ja injektoi lipukkeet paikkaan,[br]johon Tiimi 2:n äänten odotetaan 0:28:06.498,0:28:14.209 tulevan myöhemmin. Joten mitä tapahtuu:[br]Tiimi 2 vie lipukkeensa Tiimi 1:lle ja 0:28:14.209,0:28:20.736 se yrittää lukea ne sisään. Ja mitä nyt[br]tapahtuu: koska siellä mihin Tiimin 2 0:28:20.736,0:28:26.460 lipukkeiden olisi määrä päätyä, on[br]jo lipukkeita, sisäänlukuprosessi 0:28:26.460,0:28:32.353 ei toimi onnistuneesti. Vain[br]joukko ääniä luetaan sisään. 0:28:32.353,0:28:37.955 Joten enemmistö lipukkeista,[br]5 tai 6 lipuketta, 0:28:37.955,0:28:42.483 ohitetaan, koska ne eivät mahdu[br]tietokantaan, koska niiden paikat 0:28:42.483,0:28:48.120 on jo viety feikkilipukkeiden toimesta.[br]Yleensä me voisimme olettaa, että 0:28:48.120,0:28:52.786 tämä generoisi virheviestin tai ainakin[br]varoituksen, mutta näin ei käy. Tämä on 0:28:52.786,0:28:59.567 ohjelmiston hiljainen epäonnistuminen.[br]Ja mikä on vielä pahempaa, äänimäärät 0:28:59.567,0:29:04.639 ovat jälleen oikein. Se tarkoittaa, että[br]meillä on yhdeksän ääntä järjestelmässä 0:29:04.639,0:29:09.926 ja ne vastaavat yhdeksää paperilipuketta.[br]Näyttää siltä kuin kaikki lipukkeet olisi 0:29:09.926,0:29:14.250 syötetty ja kaikki olisi kuten[br]pitääkin. Siispä suljemme 0:29:14.250,0:29:19.486 äänestyksen ja laskemme vaalituloksen.[br]Ja se tapahtuu nyt. Kuten näette, 0:29:19.486,0:29:25.624 on vain 4 ääntä Hyvälle Puolueelle,[br]mutta 5 ääntä Pahalle Puolueelle. 0:29:25.624,0:29:31.747 Joten Paha Puolue voitti vaalit[br]manipuloimalla äänestysjärjestelmää, 0:29:31.747,0:29:38.272 käyttämällä CSRF-hyökkäystä. Ja sen ei[br]pitäisi olla koskaan mahdollista, koska 0:29:38.272,0:29:45.812 emme se ei vastaa ääntenlaskujärjestelmän[br]odotuksia. Vaalitulos on vilpillinen. 0:29:45.812,0:29:50.570 Mietimmekö verkkohaavoittuvaisuuksia?[br]T: Joo, varmasti, mutta se on kolikon 0:29:50.570,0:29:55.010 toinen puoli. Tarkastimme ensin vaali-[br]työntekijöiden osion hyökkäyksiä vastaan, 0:29:55.010,0:30:00.345 sitten tarkastimme verkkopuolen ja[br]skannasimme ja analysoimme järjestelmää. 0:30:00.345,0:30:07.530 Sitten me huomasimme: avoimia portteja[br]kaikkialla. Kuten näette, he ovat 0:30:07.530,0:30:13.729 jättäneet Apache Tomcatin ja MariaDB:n[br]avoimeksi koko järjestelmän verkolle. 0:30:13.729,0:30:19.010 Ja me mietimme tästä, että "no,[br]testataan tuoreita haavoittuvaisuuksia, 0:30:19.010,0:30:25.090 kuten 2020 löydettyä Ghostcatia".[br]Ghostcat on hyökkäys, joka tehdään 0:30:25.090,0:30:31.290 Apachen AJP-protokollaa vastaan.[br]Tarkastellaan Apachen järjestelmää ja 0:30:31.290,0:30:37.780 miten se on rakennettu. Apachessa on[br]hakemisto, josta jaetaan staattisia 0:30:37.780,0:30:43.270 resursseja, HTML- ja JSP-tiedostoja.[br]Lisäksi se voi sisältää luokkatiedostoja 0:30:43.270,0:30:48.979 tai servlettejä, joita käytetään[br]JSP- tai HTML-tiedostojen yhteydessä. 0:30:48.979,0:30:56.990 Annoimme ajpShooter-skriptille ohjel-[br]miston osoitteen, portin ja tiedoston, 0:30:56.990,0:31:01.980 jonka halusimme sen lukevan. Tässä[br]se oli luokka "PrivateTest", koska 0:31:01.980,0:31:07.250 se voisi vuotaa, ehkäpä. Me sanoimme,[br]että haluamme vain sen luettavan. 0:31:07.250,0:31:10.750 Siinä olisi mahdollisuus,[br]että sen sisältämä koodi tulisi 0:31:10.750,0:31:17.600 suoritettavaksi. Me teimme sen[br]hyökkäyksen ja TA-DAA, tulos! Tässä on 0:31:17.600,0:31:22.510 luokan "PrivateTest" tavukoodi.[br]Tiputetaan tämä koodi kahvikuppiimme 0:31:22.510,0:31:29.132 ja ehkä saamme ongittua sieltä luokan[br]lähdekoodin. Ja, kyllä, saimme sen. 0:31:29.132,0:31:36.700 Miksipä salausmekanismia ei[br]testattaisi tekstijonolla? 0:31:36.700,0:31:42.020 Mutta tämä ei ole tavallinen tekstijono,[br]kuten ehkä huomaat. Tämä on oikea 0:31:42.020,0:31:45.661 ylläpitäjän salasana tuotannossa olevaan[br]MariaDB:een. Ja tämä on... 0:31:45.661,0:31:51.775 Hälytysääni[br]J: Mikä tässä on ongelma? T: Kuten ehkä 0:31:51.775,0:31:56.850 selvästi näet tästä hyökkäyksestä, me[br]voisimme vuotaa MariaDB:n kirjautumis- 0:31:56.850,0:32:02.363 tiedot ja ehkä enemmänkin kirjautumis-[br]tietoja ja salasanoja. Voisimme vuotaa 0:32:02.363,0:32:08.392 koko lähdekoodin verkkoon ilman, että[br]meillä on pääsyä PC:lle vaalihuoneessa. 0:32:08.392,0:32:15.533 Ja tämä oli vain mahdollista, koska he[br]jättivät avoimiksi verkkoon kaikki koneet 0:32:15.533,0:32:22.285 ja sovellukset. Näin ei pitäisi koskaan[br]olla. Joten lopputulos. 0:32:22.285,0:32:26.902 Miten tämän voi estää? Ensiksikin, sinun[br]ei pitäisi koskaan jättää tarpeettomia 0:32:26.902,0:32:31.445 portteja avoimiksi. He eivät edes käytä[br]AJP-välityspalvelinta sovelluksessaan, 0:32:31.445,0:32:38.185 mutta jättivät sen auki koko maailmalle.[br]Seuraavaksi, pidä ohjelmistosi ajan 0:32:38.185,0:32:43.948 tasalla, jotta ohjelmistosi ei olisi[br]haavoittuvainen jos jotain löytyy. 0:32:43.948,0:32:49.771 Ja viimeisenä mutta ei vähäisimpänä:[br]älä koskaan käytä tuotantosalasanoja 0:32:49.771,0:32:55.430 yksikkötesteissäsi. Se ei ole paras idea.[br]Lopuksi, yhteenvetona: vältä kaikin 0:32:55.430,0:33:01.316 keinoin jättämästä ylimääräistä hyökkäys-[br]pinta-alaa tälläisille hyökkäyksille, 0:33:01.316,0:33:04.671 joista et ehkä edes vielä tiedä.[br]J: Nyt kun Tobi on näyttänyt 0:33:04.671,0:33:09.759 mielenkiintoisia Apache-juttuja, minä[br]testasin tietokannan tietoturvaa. 0:33:09.759,0:33:14.918 Ensimmäisen analyysin aloitin[br]samalla PC:llä, jossa ohjelmisto 0:33:14.918,0:33:20.154 oli asennettuna. Kokeilin saada pääsyä[br]tietokantaan, joka oli samalla koneella, 0:33:20.154,0:33:25.040 localhostilla. Kokeilin käyttäjätunnusta[br]"root" ja sitten minä huomasin, että 0:33:25.040,0:33:29.723 minulta kysytään salasanaa[br]pääsyä varten. Se oli kuitenkin 0:33:29.723,0:33:35.338 triviaalia, koska kaikki mitä[br]minun tarvitsi tietää, oli 0:33:35.338,0:33:40.744 edellisessä tiedostossa. Onnistuin[br]purkamaan salasanan salauksen 0:33:40.744,0:33:46.397 helposti. Sillä hetkellä tajusin,[br]että Tobi oli näyttänyt sitä 0:33:46.397,0:33:51.313 aiemmin. Että hän oli löytänyt sen[br]Ghostcat-haavoittuvuudella ja se oli 0:33:51.313,0:33:58.846 MySQL-pääkäyttäjän salasana. Kun sain[br]yhteyden MySQL:ään, yritin dumpata 0:33:58.846,0:34:05.507 käyttäjätietokannan katsoakseni millä[br]käyttäjillä oli pääsy tietokantaan. Ja 0:34:05.507,0:34:11.357 tältä se näyttää. "root"-käyttäjiä[br]on 4 ja käyttäjältä "root" vaaditaan 0:34:11.357,0:34:16.576 salasana kun yhteys otetaan paikalliselta[br]koneelta. Mutta odotapa hetki, täällä on 0:34:16.576,0:34:23.840 myös kone "pci90309". Ja kuten huomaatte,[br]sillä käyttäjällä ei ole MySQL-salasanaa 0:34:23.840,0:34:29.687 asetettuna. Se tarkoittaa, että joku[br]koneelta "pci90309" saa ottaa yhteyden 0:34:29.687,0:34:37.518 käyttäjänä "root" ja siihen ei[br]tarvita edes salanaa. Ja se on 0:34:37.518,0:34:42.104 todella outoa.[br]Hälytysääni 0:34:42.104,0:34:50.530 T: Joten mitä tästä voi seurata?[br]J: No, joku verkossa voi nyt 0:34:50.530,0:34:56.310 vain tehdä massaäänestysmanipulointia.[br]Se on aika triviaalia, koska voin vain 0:34:56.310,0:35:01.250 nimetä koneeni sopivasti ja saan täyden[br]pääsyn tietokantaan, johon kaikki 0:35:01.250,0:35:05.750 äänestystulokset on säilötty. Järjestel-[br]mänvalvojana voin käpistellä niitä. Voin 0:35:05.750,0:35:09.943 muuttaa niitä kuten haluan. Tämä[br]haavoittuvaisuus on niin hitsin outo ja 0:35:09.943,0:35:16.850 itsestäänselvä, että se ei vaadi mitään[br]vaivannäköä. Ja siksi me emme edes demoa 0:35:16.850,0:35:22.770 sitä tässä. Se on typerryttävän yksin-[br]kertaista tässä tapauksessa. Normaalisti 0:35:22.770,0:35:28.370 sanoisin "eiköhän se ollut tässä", koska[br]meillä on täysi pääsy järjestelmään 0:35:28.370,0:35:33.620 ja voimme muuttaa mitä haluamme. Päätimme[br]kuitenkin mennä vielä syvemmälle, koska 0:35:33.620,0:35:42.290 näimme "pci90309":n avaavan ovia. Joten[br]meillä on pääsy äänestystuloksiin. Ja me 0:35:42.290,0:35:47.630 voimme muuttaa niitä, mutta meillä ei[br]ole vielä pääsyä koko järjestelmään. 0:35:47.630,0:35:52.186 Entäs se PC? Olisiko se mahdollista,[br]että järjestelmänvalvojan pääsyllä 0:35:52.186,0:35:59.840 tietokantapalvelimelle voisi ajaa etäältä[br]koodia sillä koneella? Tätä koetta varten 0:35:59.840,0:36:04.740 käytimme seuraavaa asetelmaa. Oikealla[br]meillä on äänestysjärjestelmä avoimen 0:36:04.740,0:36:10.620 MariaDB-tietokantapalvelimen kanssa.[br]Vasemmalla on minun koneeni. Nimesin 0:36:10.620,0:36:16.480 sen "pci90309":ksi, koska voin sen[br]tehdä. Saan siltä avattua yhteyden 0:36:16.480,0:36:23.927 MariaDB-palvelimelle. Käytän tunnusta[br]"root" ilman salasanaa. Ja se 0:36:23.927,0:36:30.119 hyväksytään heti. Kun minulla on[br]nyt yhteys, voin antaa komentoja. 0:36:30.119,0:36:36.440 Esimerkiksi, voin käskeä MariaDB:tä[br]ottamaan käyttöön lisäosia. Tämä lisäosa 0:36:36.440,0:36:42.390 on nimeltään "ha_connect". Se on yksi[br]lisäosista, jotka sisältyvät MariaDB:een. 0:36:42.390,0:36:49.980 Tämä on erittäin voimallinen MySQL-[br]tallennusajuri. Ja nyt näytän mitä 0:36:49.980,0:36:57.020 sillä voi tehdä. Seuraavaksi, luon[br]tietokantataulun nimeltä "pwn". 0:36:57.020,0:37:02.538 Käytän tätä tallennusajuria "ha_connect"[br]ja käsken sitä luomaan tiedoston, jonka 0:37:02.538,0:37:09.470 nimi on "pwn.dll" ja tallentamaan sen[br]lisäosat sisältävään hakemistoon. 0:37:09.470,0:37:14.270 Mikään ei estä meitä tekemästä näin.[br]Se on yksi erikoistoiminnallisuuksista 0:37:14.270,0:37:20.289 tässä tallennusajurissa. Voin sanoa tämän[br]taulun vastaavan nyt tuota tiedostoa 0:37:20.289,0:37:25.180 tiedostojärjestelmässä. Tämä tiedosto on[br]kuitenkin vielä tyhjä, koska taulu on 0:37:25.180,0:37:30.690 tyhjä. Mutta koska tämä on tietokanta,[br]me voimme ajaa "INSERT INTO" -komentoja 0:37:30.690,0:37:36.430 ja tallentaa siihen mitä dataa haluamme,[br]esimerkiksi haitta-DLL:n. Voin vain 0:37:36.430,0:37:41.270 lisätä sen tauluun käyttäen "INSERT[br]INTO" -komentoa ja se kirjoitetaan 0:37:41.270,0:37:49.470 suoraan haitta-DLL:äämme "pwn.dll":ään.[br]Kun olen lopettanut kirjoittamisen, 0:37:49.470,0:37:55.060 käsken MariaDB:n ottaa tuo[br]lisäämäni lisäosa käyttöönsä. 0:37:55.060,0:38:00.447 Lisäosan käyttöönotto tarkoittaa, että[br]me suoritamme sen tallentamamme koodin 0:38:00.447,0:38:05.184 DLL-tiedostossa. Se tarkoittaa, että[br]voimme ajaa etäältä omaa koodiamme. 0:38:05.184,0:38:09.960 Hälytysääni[br]T: En edes aio kysyä mitä etäältä 0:38:09.960,0:38:14.410 suoritettavalla koodilla voi tehdä.[br]J: No, sillä voi tehdä mitä vain. Se 0:38:14.410,0:38:19.870 tarkoittaa, että minulla ei ole esteitä.[br]Täysi kontrolli ääntenlaskujärjestelmään. 0:38:19.870,0:38:24.520 En puhu ainoastaan tiedosta[br]tietokannassa. Puhun koko 0:38:24.520,0:38:30.040 tietokoneesta, jota voin nyt kontrolloida[br]ja manipuloida kuten haluan. Se on 0:38:30.040,0:38:35.580 mahdollista vain käyttämällä[br]äänestysohjelmistoa verkon yli 0:38:35.580,0:38:41.080 käyttäen sen avoimia liittymiä. Ja[br]nyt näytän teille miten helppoa on 0:38:41.080,0:38:49.720 suorittaa mielivaltainen ohjelma siellä.[br]T: Tämä on ääntenlaskujärjestelmä. 0:38:49.720,0:39:01.575 Aloitetaan käynnistämällä ääntenlasku-[br]ohjelmisto. Apache Tomcat -web-palvelin 0:39:01.575,0:39:07.733 ja MariaDB-tietokantapalvelin[br]käynnistyvät. Lopulta siirrettävä 0:39:07.733,0:39:14.598 Firefox on käynnistynyt. Järjestelmä[br]on toimintavalmis. Varovaisuutta, 0:39:14.598,0:39:21.954 hyökkääjä aktivoituu. Hänen koneensa[br]on pahamainen "pci90309". Se käynnistää 0:39:21.954,0:39:28.738 välittömästi Python-hyökkäysskriptin[br]"fun.py". Se ottaa yhteyden MariaDB- 0:39:28.738,0:39:34.845 palvelimeen käyttäjänä "root" ilman sala-[br]sanaa ja lataa haitta-DLL:n lisäosana. 0:39:34.845,0:39:41.512 Kun lataus on ohi, haittakoodi[br]ajetaan. Kuten voimme nähdä, 0:39:41.512,0:39:47.506 laskin käynnistyy eli etäältä tapahtuva[br]suorittaminen oli onnistunut. Äänten- 0:39:47.506,0:39:52.869 laskentajärjestelmä on nyt[br]hyökkääjän hallinnassa. 0:39:52.869,0:40:00.893 J: Sen jälkeen kun löysimme tuhoisat[br]ongelmat ääntenlaskentajärjestelmässä, 0:40:00.893,0:40:06.156 kerroimme välittömästi toimittajalle.[br]T: Ja he olivat erittäin ammattimaisia 0:40:06.156,0:40:11.269 ja vastasivat nopeasti sähköposteihimme.[br]Pidimme työskentelystä heidän kanssaan 0:40:11.269,0:40:18.114 yhdessä ja kerroimme heille meidän[br]tuloksistamme ja he olivat aina 0:40:18.114,0:40:23.340 myönteisiä. He myös[br]suosittelivat korjauksia. 0:40:23.340,0:40:27.624 J: He kertoivat meille esimerkiksi, että[br]ääntenlaskuohjelmaa pitäisi käyttää vain 0:40:27.624,0:40:31.662 turvatussa ympäristössä, kuten[br]hallintoon kuuluvassa verkossa. 0:40:31.662,0:40:35.890 Me emme kuitenkaan usko,[br]että se on hyvä ratkaisu. 0:40:35.890,0:40:39.563 T: Juuri näin. Me emme ole tyytyväisiä[br]tähän ehdotukseen, koska meillä on silti 0:40:39.563,0:40:44.645 kaksi ongelmaa olemassa, vaikka ympäristö[br]olisikin turvattu. Ensiksikin, 0:40:44.645,0:40:50.325 hallinnon PC voi silti olla haitta-[br]ohjelmien saastuttama tai se voi olla 0:40:50.325,0:40:55.583 manipuloitu ennen kuin äänestys[br]alkaa. Ja toisekseen, oli tämä 0:40:55.583,0:40:59.988 bugi rikkinäisessä pääsynhallinnassa,[br]muistattehan? Ja vaikka meillä olisi 0:40:59.988,0:41:05.130 ollut turvattu ympäristö, tämä bugi[br]olisi toiminut varmasti ja olisit 0:41:05.130,0:41:09.303 voinut tuhota kaiken datan tai[br]avata vaalit uudelleen tai jotain 0:41:09.303,0:41:12.260 tälläistä.[br]J: Olemme silti aika tyytyväisiä, 0:41:12.260,0:41:17.833 että he ottivat meidät vakavasti. He[br]ovat jopa ilmoittaneet päivityksistä. 0:41:17.833,0:41:23.090 He kirjoittivat meille suunnittelevansa[br]CSRF-todenteita sivuille, joilta löysimme 0:41:23.090,0:41:28.302 CSRF-haavoittuvaisuuksia. Joten[br]se jo on hyvä askel oikeaan 0:41:28.302,0:41:35.020 suuntaan. Vedetään nyt yhteen mitä olemme[br]tänään esittäneet. Ihan ensimmäiseksi, 0:41:35.020,0:41:40.408 löysimme useita ongelmallisia puolia[br]konseptista ja sen käytännön 0:41:40.408,0:41:45.241 toteutuksesta. Ensimmäiseksi, koko[br]äänestysjärjestelmä pyörii 0:41:45.241,0:41:50.384 epäluotettavissa järjestelmissä.[br]Niitä on voitu manipuloida etukäteen. 0:41:50.384,0:41:56.055 Niissä voi olla haittaohjelmia[br]tai ne eivät vain toimi oikein. 0:41:56.055,0:42:00.638 Jo se on erittäin ongelmallista,[br]koska meillä ei ole luottamusta 0:42:00.638,0:42:05.946 näitä järjestelmiä kohtaan ja[br]me käytämme niitä laskemaan 0:42:05.946,0:42:11.702 ääniä, laskemaan koko vaalitulosta.[br]Ja lisänä tähän, että vaikka 0:42:11.702,0:42:19.430 käytetty ohjelmisto ja sitä ajava PC,[br]olisivat turvatut, se ei tuo vielä 0:42:19.430,0:42:25.326 riittävää läpinäkyvyyttä. Sitä on[br]erittäin hankala ymmärtää mitä softa 0:42:25.326,0:42:31.001 tarkalleen tekee ja miten. Joten en[br]voi oikein ymmärtää miten se päätyy 0:42:31.001,0:42:36.034 tulokseensa. Pitäkää tämä mielessä, että[br]meillä on melkein 600 ehdokasta ja useita 0:42:36.034,0:42:42.445 satoja lipukkeita, jotka pitää kaikki[br]syöttää järjestelmään ja sitten 0:42:42.445,0:42:47.504 jotain magiaa tapahtuu ja se sylkäisee[br]ulos tuloksensa. Ja sitten meidän vain 0:42:47.504,0:42:53.417 ottaa tulos. Koska se on mahdotonta[br]tarkistaa, että laskettiinko jokainen 0:42:53.417,0:42:57.822 ääni oikein ja tapahtuiko siellä jotain[br]outoa tai tapahtuiko siellä mitään 0:42:57.822,0:43:00.619 manipulaatiota.[br]T: Ja tämä on myös mahdollista, koska me 0:43:00.619,0:43:07.262 löysimme paljon haavoittuvaa softaa ja ei[br]vain järjestelmän turvallisuus ollut 0:43:07.262,0:43:12.208 kyseessä vaan oli myös täysin mahdollista[br]manipuloida koko äänestystä useista 0:43:12.208,0:43:19.954 paikoista pitkin verkkoa. Ja tämä johtaa[br]meidät päätelmään, että nämä vaalit ovat 0:43:19.954,0:43:24.900 suuressa vaarassa tällä teknologialla.[br]J: Ja se on se syy miksi me haluamme 0:43:24.900,0:43:31.125 teidät vaalityöntekijöiksi. Mitä enemmän[br]silmiä vaaleissa on, sitä turvallisemmat 0:43:31.125,0:43:35.539 niistä tulee. Ja jos olet kiinnostunut[br]olemaan vaalityöntekijä, ota vain yhteys 0:43:35.539,0:43:40.212 paikallishallintoosi. He ovat aina[br]hyvin tyytyväisiä kun saavat 0:43:40.212,0:43:45.222 vapaaehtoisia, jotka haluavat olla[br]vaalityöntekijöitä. Perustuen omaan 0:43:45.222,0:43:49.961 kokemukseeni usemmalta vuodelta,[br]se on myös hauskaa. Saat olla 0:43:49.961,0:43:54.727 yhteydessä moniin ihmisiin. Minä[br]nautin siitä paljon ja voin vain 0:43:54.727,0:44:00.790 suositella sitä. Tämä on hyvä[br]tapa jokaiselle tukea demokratiaa 0:44:00.790,0:44:05.273 omassa maassaan.[br]T: Päättääksemme esityksemme, meille 0:44:05.273,0:44:11.593 selvisi tämän teknologian tietoturvan[br]olevan huono ja ei siinä vielä kaikki. 0:44:11.593,0:44:16.986 J: Tämä oli vain jäävuoren huippu,[br]koska katsoimme vain yhtä ainoaa 0:44:16.986,0:44:21.965 ratkaisua, joka on saatavilla äänten-[br]laskentaan. Ja tämä oli myös erikois- 0:44:21.965,0:44:28.086 konfiguraatio. Mitä on vielä vaikeampaa[br]nähdä, on se mitä tapahtuu kaiken sen 0:44:28.086,0:44:34.597 takana mitä tänään näimme, koska kun me[br]otamme datan ulos ja viemme sen keskus- 0:44:34.597,0:44:40.264 hallintoon, jossa data luetaan sisään[br]ja ladataan eteenpäin, mihin se kaikki 0:44:40.264,0:44:44.910 data menee? Missä se kaikilta[br]äänestyspaikoilta kertyvä data 0:44:44.910,0:44:49.603 lasketaan yhteen? Me emme tiedä sitä[br]vielä miten tämä toimii. Meillä ei ole 0:44:49.603,0:44:53.868 sitä ohjelmistoa tutkittavana.[br]On siis paljon tehtävää 0:44:53.868,0:44:59.355 jäljellä siinä miten voisimme tarkistaa[br]koko järjestelmän. Me otimme siitä vain 0:44:59.355,0:45:04.149 pienen palan ja se on vain tämä[br]ääntenlaskujärjestelmä tässä. 0:45:04.149,0:45:08.647 T: Olimme hyvin järkyttyneitä siitä[br]tiedosta, että ääntenlaskennan 0:45:08.647,0:45:14.458 siirtyminen tietokoneelle ei ole[br]yleisesti tiedossa. Tästä syystä loimme 0:45:14.458,0:45:19.947 tämänpäiväisen esityksemme. Se on [br]elintärkeä tieto demokratialle, että 0:45:19.947,0:45:26.788 käytössä on ohjelmisto ja että se ei[br]ole erityisen turvallinen. Se oli 0:45:26.788,0:45:33.530 meille iso juttu tuoda[br]tämä tieto ihmisille. 0:45:33.530,0:45:37.829 J: Yksi juttu on vielä se, että kaikki[br]mitä tänään näimme, on täysin laillista, 0:45:37.829,0:45:44.312 koska ainakaan Baijerissa meillä ei ole[br]mitään sääntöjä tai lakeja sitä vastaan, 0:45:44.312,0:45:50.098 että käytämme turvattomia järjestelmiä,[br]ääntenlaskentaohjemistoja. Kuten näimme 0:45:50.098,0:45:55.611 alussa, on vain karkeat ohjeistukset,[br]jotka sanovat, että tietokoneita voidaan 0:45:55.611,0:46:00.322 käyttää vain ääntenlaskentaan. Mutta me[br]tarvitsemme tiukemmat ohjeistukset, koska 0:46:00.322,0:46:06.794 se mitä näimme tänään, ei voi jatkua.[br]Muissa osavaltioissa Saksassa on 0:46:06.794,0:46:12.304 joitakin, sanotaan, ohjeistuksia[br]tai jopa sertifiointiprosesseja 0:46:12.304,0:46:18.347 tälläiselle digitaaliselle ohjelmistolle.[br]Useimmissa tuntemissani osavaltioissa ei 0:46:18.347,0:46:23.780 ole mitään sääntöjä. Tämän ei pidä[br]jatkua seuraavia vuosia näin. 0:46:23.780,0:46:29.963 T: Lisäksi, lopulta, ennen kuin[br]mikään ääntenlaskentaohjelmisto voi 0:46:29.963,0:46:36.671 mennä tuotantoon, riippumattomat testit[br]pitäisivät olla saatavilla kaikille, 0:46:36.671,0:46:41.965 jotta voidaan todistaa ohjelmiston[br]olevan turvallinen ja että se tekee 0:46:41.965,0:46:46.530 sitä meille mitä on luvattu. Koska se[br]vaikuttaa suoraan demokratiaamme. Ja jos 0:46:46.530,0:46:52.002 ohjelmistoa on manipuloitu, se manipuloi[br]äänestystämme, vaalejamme ja meidän 0:46:52.002,0:46:56.333 demokratiaamme. Lopuksi jätämme[br]teille mietittäväksi kaksi kysymystä: 0:46:56.333,0:47:01.158 T: Paljonko digitaalista tukea vaaditaan?[br]J: Ja paljonko on siedettävä? 0:47:01.158,0:47:18.528 Hiljaisuus 0:47:18.528,0:47:25.709 Herald: Paljon kiitoksia kiinnostavasta[br]esityksestänne, Johannes ja Tobias. 0:47:25.709,0:47:30.136 Ja paljon kiitoksia työstänne aiheen [br]parissa. Toivottavasti teillä on aikaa 0:47:30.136,0:47:36.095 kysymyksille. Itse asiassa, meillä[br]on aika monia kysymyksiä. 0:47:36.095,0:47:39.244 J: Toki.[br]H: Hyvä homma. Ensimmäinen nettikysymys: 0:47:39.244,0:47:45.468 "Onko epäilystä, että näitä[br]haavoittuvaisuuksia olisi 0:47:45.468,0:47:49.404 käytetty aktiivisesti?"[br]J: No, sitä on vaikea sanoa. Ainakaan 0:47:49.404,0:47:57.617 siinä kylässä, josta tulen, en[br]havainnut mitään erikoisia tapahtumia. 0:47:57.617,0:48:04.994 Minulla ei kuitenkaan ole kokonaiskuvaa[br]Baijerista, joten se on aika hankala 0:48:04.994,0:48:09.707 sanoa. Luulen, että on mahdoton sanoa,[br]oliko minkäänlaista manipulaatiota. 0:48:09.707,0:48:15.395 Valitettavasti emme[br]voi sanoa niin. 0:48:15.395,0:48:20.292 T: Lisäksi, me olimme vain yhdessä[br]paikassa, joten ei meillä ole 0:48:20.292,0:48:25.328 kokonaiskuvaa yhteensopimattomista[br]numeroista tai muista tapahtumista, 0:48:25.328,0:48:30.702 mutta me emme nähneet,[br]koska olimme vain yhdessä 0:48:30.702,0:48:35.589 paikassa, yhdellä[br]äänestyspisteellä. 0:48:35.589,0:48:41.470 H: OK, kiitos vastauksista. "Uskotteko,[br]että se olisi mahdollista, että 0:48:41.470,0:48:46.300 digitaalinen äänestyslipuke[br]voisi olla yhtä turvallinen kuin 0:48:46.300,0:48:51.560 paperinen?"[br]J: No, minun mielestäni se ei ole 0:48:51.560,0:48:56.560 mahdollista jos haluat saman[br]avoimuuden, joka meillä on 0:48:56.560,0:49:02.010 paperipohjaisissa äänestysjärjestelmissä.[br]Koska kun meillä on paperiäänestys, me 0:49:02.010,0:49:07.470 voimme mennä äänestyshuoneeseen ja nähdä[br]mitä siellä tapahtuu. Me voimme nähdä 0:49:07.470,0:49:12.690 lipukkeet, jotka jätetään. Lipukkeet,[br]jotka otetaan uurnasta. Laskennan, 0:49:12.690,0:49:17.990 yhteenlaskennan. Minä voin yrittää[br]selvittää mitä siellä tapahtuu. Voin 0:49:17.990,0:49:24.220 katsoa sitä, ymmärtää mitä ihmiset[br]tekevät siellä. Mutta sillä hetkellä 0:49:24.220,0:49:29.840 kun meillä on vain digitaalinen äänestys,[br]en voi selvitttää sitä tekeekö tietokone 0:49:29.840,0:49:34.190 mitä sen pitää, onko siellä[br]manipulointia. Joten avoimuuden 0:49:34.190,0:49:40.830 suhteen en usko, että on mahdollista[br]tehdä sama, samalla tavalla kuin 0:49:40.830,0:49:47.910 paperilipukkeiden kanssa, esimerkiksi.[br]T: Minun pitää lisätä tähän, että jos 0:49:47.910,0:49:53.750 siellä olisi mahdollisuus saada[br]jäljitettävyys ja näkyvyys, jolla 0:49:53.750,0:50:00.240 saat aina nähtäväksesi miten tulokset[br]syntyvät kustakin paikasta, jos ne 0:50:00.240,0:50:07.260 olisi allekirjoitettu avoimesti, se voisi[br]olla mahdollista joku päivä. Mutta ei 0:50:07.260,0:50:16.299 tälläisellä ohjelmistolla jonka näimme.[br]H: OK, kiitos. "Tiedättekö sattumalta 0:50:16.299,0:50:21.552 mitkä osavaltiot Saksassa[br]käyttävät OK.VOTE:a?" 0:50:21.552,0:50:29.257 T: Emme osaa sanoa, mitkä osavaltiot[br]käyttävät sitä aktiivisesti, koska me 0:50:29.257,0:50:34.249 olimme mukana vain Münchenin ja Baijerin[br]vaaleissa. Mutta voimme kertoa, että 0:50:34.249,0:50:40.130 lähdekoodissa on viitteitä, että se[br]olisi käytössä myös esimerkiksi 0:50:40.130,0:50:47.481 Hampurissa, Bremenissä, Hessenissä ja[br]Rheinland-Pfalzissa. Mutta emme tiedä 0:50:47.481,0:50:54.180 onko se käytössä siellä, suunnitellaanko[br]sen käyttöönottoa vai onko sitä käytetty 0:50:54.180,0:50:59.010 aikaisemmissa vaaleissa ja sittemmin[br]lopetettu käyttämästä. Me emme oikein 0:50:59.010,0:51:03.330 tiedä tästä tarkalleen.[br]H: OK, ehkä me voimme pitäytyä hetken 0:51:03.330,0:51:11.190 vaalityöläisen tehtävässä.[br]"Manuaalinen datan syöttäminen 0:51:11.190,0:51:16.610 järjestelmään... Onko siihen prosessi?[br]Onko teillä ajatusta riskeistä, joita 0:51:16.610,0:51:21.069 tässä on?"[br]J: Kyllä. Pohjimmiltaan siinä on 0:51:21.069,0:51:26.401 ainakin kaksi tai kolme ihmistä istumassa[br]jokaisella koneella ja sitten he 0:51:26.401,0:51:30.930 syöttävät lipukkeet. Ihmiset tarkastavat[br]toistensa tekemiset, että jokainen 0:51:30.930,0:51:36.180 lipuke syötetään oikein. Yhdellä[br]ihmisellä on lipuke edessään ja 0:51:36.180,0:51:42.290 toinen lukee äänet, jotka[br]ensimmäinen syöttää sisään. 0:51:42.290,0:51:47.645 Ja sitten he tekevät ristiintarkastuksen,[br]jotta vaalitulosten sisäänsyöttämisessä 0:51:47.645,0:51:54.250 koneelle ei ole tullut virheitä.[br]H: OK. Kiitos kun selvensitte asiaa. 0:51:54.250,0:52:00.300 Joku kysyy: "Kuinka järjestelmä on[br]kytketty Internetiin tai johonkin 0:52:00.300,0:52:05.870 muuhun verkkoon? Onko[br]oikein ymmärretty, että 0:52:05.870,0:52:09.740 tulokset kirjoitetaan fyysiselle,[br]tallennusmedialle, jolla tulokset 0:52:09.740,0:52:15.560 siirretään? Fyysisesti tunnusteltavalle...[br]Miksi välittää siitä mitä Windowsia 0:52:15.560,0:52:20.305 tai muuta niissä koneissa[br]ajetaan? Onko tämä oikea 0:52:20.305,0:52:24.941 ymmärrys?"[br]J: No, ongelma tässä on se, että 0:52:24.941,0:52:30.011 se riippuu paikallishallinnosta, että[br]miten he järjestelmä laitetaan pystyyn. 0:52:30.011,0:52:36.242 Luin myös tästä keskustelusta, että[br]joku kirjoitti heidän äänestys- 0:52:36.242,0:52:44.530 ohjelmistollaan olleen erittäin[br]rajattu verkkoyhteys. Se tietokone ei 0:52:44.530,0:52:49.960 ollut yhteydessä Internetiin. Se riippuu[br]pitkälti hallinnosta ja siitä, mitä 0:52:49.960,0:52:54.666 verkkoa siellä käytetään. Joten[br]on täysin mahdollista, että 0:52:54.666,0:52:59.902 tietokoneilla on Internet-yhteys,[br]koska ei ole olemassa ohjeistusta 0:52:59.902,0:53:06.480 siitä, miten tietokoneet voi asentaa.[br]Joten, en voi täysin sulkea pois sitä, 0:53:06.480,0:53:11.370 että joku esimerkiksi ottaa[br]langattoman verkkoyhteyden 0:53:11.370,0:53:16.834 turvaamattomaan tukiasemaan ja on[br]sitten verkossa. On hankalaa sanoa tästä, 0:53:16.834,0:53:22.640 mutta en voi sulkea pois mahdollisuutta.[br]T: Laajentaakseni vastausta, me jopa 0:53:22.640,0:53:27.490 yritimme selvittää, onko ohjelmistossa[br]suojausta, joka tarkastaisi onko 0:53:27.490,0:53:31.189 Internet-yhteys olemassa ja kieltäisi[br]äänestysjärjestelmän käytön. Mutta 0:53:31.189,0:53:36.480 sellaista ei ollut, tai ainakaan emme[br]löytäneet sitä. Joten vaikka hallintoa 0:53:36.480,0:53:44.020 ei olisi ohjeistettu, näiden PC:iden[br]ei pitäisi olla yhteydessä verkkoon. Ei 0:53:44.020,0:53:47.914 ole turvamekanismia, joka tarkastaisi[br]onko näin ja pysäyttäisi sen. Tai edes 0:53:47.914,0:53:51.860 varoittaisi siitä, että kone on verkossa[br]ja pitäisi kytkeytyä irti Internetistä 0:53:51.860,0:53:59.700 ennen kuin laskenta alkaa.[br]M: Mielenkiintoista. OK. Meillä on 0:53:59.700,0:54:03.780 viesti IRC:stä henkilöltä joka on[br]työskennellyt juuri tämän ohjelmiston 0:54:03.780,0:54:09.540 parissa demomoodissa, tietenkin.[br]Ja kysymys, joka hänellä on, kuuluu: 0:54:09.540,0:54:17.890 "Huomasitteko mahdollisuutta syöttää[br]negatiivisia ääniä ehdokkaalle? 0:54:17.890,0:54:25.760 Esimerkiksi kaksi miinusääntä?"[br]J: No, sitä on vaikea sanoa. Minä 0:54:25.760,0:54:31.200 ajattelin tätä, että se onko[br]se mahdollista. Ehkä manipuloimalla 0:54:31.200,0:54:37.360 tietokantaa suoraan. En ole täysin[br]varma. En ole varma, kokeilinko 0:54:37.360,0:54:43.600 tätä. Mutta kuitenkin kun[br]saan pääsyn tietokantaan, 0:54:43.600,0:54:49.920 se on täysin mahdollista manipuloida[br]mitä vain. Joten, me voisimme kokeilla 0:54:49.920,0:54:57.520 tätä uudelleen. En kuitenkaan usko, että[br]se juuri muuttaa lopputulostamme. Se on 0:54:57.520,0:55:03.040 mielenkiintoinen kysymys, johon en voi[br]vastata juuri nyt. Mutta, Tobi, en ole 0:55:03.040,0:55:10.080 varma, kokeilitko sinä tälläistä?[br]T: Kokeilimme muuttaa jo annettuja 0:55:10.080,0:55:17.040 ääniä, mutta en usko, että tuo oli[br]mahdollista. Mutta, kuten näytit 0:55:17.040,0:55:22.640 siirtäessäsi datan keskuskoneelle,[br]äänet, jotka siellä olivat jo, 0:55:22.640,0:55:28.080 mahdollisesti hyökkääjän toimesta,[br]jättäisivät huomioimatta uudet äänet. 0:55:28.080,0:55:34.238 Tämä varmastikin korvaisi datan ja nuo[br]äänet, mutta web-käyttöliittymässä 0:55:34.238,0:55:38.988 en usko tuon olevan mahdollista. Mutta[br]me löysimme tarpeeksi haavoittuvaisuuksia 0:55:38.988,0:55:43.512 tietokantaan pääsyssä, jotta voisit[br]yrittää halutessasi sitä kautta. 0:55:43.512,0:55:50.524 H: OK, kiitos selityksestänne. Ihan[br]puhtaasti mielenkiiinnosta, ihmiset 0:55:50.524,0:55:55.984 kysyvät: "Kuinka pääsitte käsiksi[br]ohjelmistoon analysoidaksenne sitä?" 0:55:55.984,0:56:00.514 J: No, tämä on hyvä kysymys,[br]koska siihen liittyy hyvä tarina. 0:56:00.514,0:56:06.304 Olin vaalityöntekijä ja autoin[br]pistämään järjestelmää pystyyn. 0:56:06.304,0:56:12.470 Annoin IT-tukea iltaisin. Ja jossain[br]vaiheessa yritimme yhdistää tuloksiamme. 0:56:12.470,0:56:17.297 Me otimme tulokset ulos yhdeltä koneelta[br]ja siirsimme ne toiselle koneelle. 0:56:17.297,0:56:22.377 Mutta sisäänluku keskeytyi, koska[br]siellä ohjelmistossa oli joku 0:56:22.377,0:56:27.616 keinotekoinen rajoitus. Tiedostojen[br]ollessa yli 10 megatavua, niitä ei 0:56:27.616,0:56:33.667 lukea enää sisään. Ja tämä tapahtuu[br]aika pian, muutamien satojen äänten 0:56:33.667,0:56:38.479 jälkeen. Muutamien satojen lipukkeiden[br]jälkeen sisäänluku ei enää toimi. 0:56:38.479,0:56:42.106 Katsoin tiedostoa ja se oli pelkkä[br]JSON-tiedosto, paljon tyhjämerkkejä. 0:56:42.106,0:56:46.750 Kopioin kaiken koneelleni[br]korjatakseni asian. Myöhemmin 0:56:46.750,0:56:51.251 ohjelmistovalmistaja julkaisi[br]korjauksen. Siinä vaiheessa minulla 0:56:51.251,0:56:56.466 oli ohjelmisto koneellani, koska[br]halusin korjata nämä vaalit. 0:56:56.466,0:57:00.328 Oli myöhäinen ilta ja olin palannut[br]kotiin, huomanut, että minulla oli 0:57:00.328,0:57:06.867 yhä se ohjelmisto koneellani. Katsoin[br]sitä. Joten se oli ihan sattumaa. 0:57:06.867,0:57:11.943 Yritin korjata jotain, otin ohjelmiston[br]koneelleni ja sitten se oli valmiina 0:57:11.943,0:57:18.028 analysoitavaksi, jopa vähän[br]dataakin. Tiesin miten se toimii 0:57:18.028,0:57:23.840 käytännössä. Ja, kyllä, jos joku[br]haluaisi pääsyn siihen ohjelmistoon, 0:57:23.840,0:57:28.945 se olisi aika helppoa, koska he voisivat[br]vain palauttaa poistetun datan joltain 0:57:28.945,0:57:33.268 koulussa olevalta koneelta.[br]Ehkä joku ei edes poista sitä 0:57:33.268,0:57:38.382 äänestysohjelmistoa koulujensa koneilta,[br]tai ehkä joku voisi vain varastaa 0:57:38.382,0:57:43.292 yhden niistä USB-muisteista, joita[br]oli käytetty asennuksiin. En edes 0:57:43.292,0:57:53.591 usko, että sitä huomattaisiin.[br]H: Kiinnostavaa, todellakin. Mainitsitte 0:57:53.591,0:57:58.920 esityksessänne, että ohjelmisto oli[br]BSI:n sertifioima. Että ne väittävät 0:57:58.920,0:58:02.673 Open Web Application Security Projectin[br]sertifioineen sen. Mutta kuinka näin 0:58:02.673,0:58:07.901 rikkinäinen järjestelmä voi olla näiden[br]tahojen sertifioima alun perin? Mikä on 0:58:07.901,0:58:12.119 mennyt pieleen sertifiointiprosessissa?[br]Tämä siis tapahtui. Tarkoitan, että miksi 0:58:12.119,0:58:19.219 ei käyttää sertifioitua... Miksi me[br]sertifioimme mitään alun perinkään, jos 0:58:19.219,0:58:24.377 se on sertifioitu näin rikkinäisenä?[br]T: Luulen, että ensimmäiseksi - kuten 0:58:24.377,0:58:28.158 olemme maininneet esityksessämme -[br]ei ole olemassa laillisia vaatimuksia. 0:58:28.158,0:58:32.700 Et tarvitse sertifiointia sille, että[br]ohjelmistoa voi käyttää vaaleissa, 0:58:32.700,0:58:38.233 Saksassa tai useimmissa paikoissa[br]Saksassa. Ja lisäksi, tämä 0:58:38.233,0:58:46.323 kuvakaappaus, jota näytimme koskien[br]OWASP:ia ja BSI:tä, oli vain AKDB:n 0:58:46.323,0:58:52.179 markkinointimateriaalia. En usko, että[br]siinä oli oikeaa sertifiointia mukana. 0:58:52.179,0:58:57.930 Me emme tiedä, onko BSI ikinä nähnyt tätä[br]ohjelmistoa vai ovatko he vain laittaneet 0:58:57.930,0:59:02.728 sinne, sanoneet BSI:n sertifioineen sen[br]tai BSI:n standardien olleen mielessä. 0:59:02.728,0:59:07.234 Heillä on jo "IT Grundschutz". Ehkä[br]he ovat yrittäneet implementoida sitä 0:59:07.234,0:59:15.093 tämän järjestelmäarkkitehtuurin jälkeen,[br]mutta BSI ei ole tarkastanut sitä. En 0:59:15.093,0:59:18.818 usko, että ohjelmistolla[br]on oikeaa sertifiointia. 0:59:18.818,0:59:23.035 J: Lisään vain muutaman yksityiskohdan[br]tähän. Se ei ole oikeasti sertifiointi. 0:59:23.035,0:59:28.555 He vain sanovat, että seuraavat BSI:n ja[br]OWASP:in ohjeistuksia. Luulen, että se 0:59:28.555,0:59:32.653 oli myös näin sanoitettu heidän[br]sivuillaan. Ei ole oikeaa sertifiointia 0:59:32.653,0:59:39.494 tämän takana, toistaiseksi.[br]H: Kiitos vastauksestanne. "Tiedättekö 0:59:39.494,0:59:46.197 sattumalta, kuinka kunnat[br]julkistavat vaalitulokset?" 0:59:46.197,0:59:53.581 J: En tiedä yksityiskohtaisesti miten se[br]tapahtuu. Kun me luovutamme tuloksemme, 0:59:53.581,0:59:59.802 ne siirretään toiseen ohjelmistoon.[br]Ja sitä pidemmälle en ole 0:59:59.802,1:00:05.692 nähnyt. Ne päätyvät[br]tietojärjestelmään ja ne siirretään 1:00:05.692,1:00:10.348 sähköisesti. Siinä luodaan aluksi[br]alustava tiedosto ja lopulta 1:00:10.348,1:00:15.767 siitä luodaan lopulliset tulokset.[br]En kuitenkaan tiedä, miten se 1:00:15.767,1:00:20.243 toimii, mutta äänestystulokset, jotka[br]luodaan OK.VOTE:lla menevät varmasti 1:00:20.243,1:00:28.562 lopulliseen tulokseen. Ehkä[br]välissä on joku paperiin perustuva 1:00:28.562,1:00:33.330 toimintatapa. En todella[br]tiedä, jos he käyttävät dataa 1:00:33.330,1:00:38.126 koneella vai dataa paperilla.[br]Mutta se ei loppupeleissä 1:00:38.126,1:00:46.112 muuta paljoa.[br]H: OK, loppumetreillä ollaan. 1:00:46.112,1:00:50.830 Viimeinen kysymys on: "Kokemuksienne[br]perusteella, kuinka käytännöllistä tai 1:00:50.830,1:00:55.964 kallista on laskea äänet uudelleen käsin,[br]ja näittekö tälläistä tapahtuvan?" 1:00:55.964,1:01:01.039 T: Luulen, että tämä vaihtelee[br]äänestyksestä toiseen ja kaupungista 1:01:01.039,1:01:07.167 toiseen. Jos kyseessä on pieni[br]kylä, äänet voisi laskea helposti 1:01:07.167,1:01:13.473 uudelleen. Mutta jos kyseessä on iso[br]kaupunki, kuten esimerkiksi München 1:01:13.473,1:01:20.911 miljoonine äänineen, ja ne[br]pitäisi laskea ne uudelleen, 1:01:20.911,1:01:26.076 se viivästyttäisi ääntenlaskua tai[br]tuloksia aika paljon. Ja sillä voisi 1:01:26.076,1:01:31.071 olla huonoja vaikutuksia, jos sattuisi[br]käymään, että ohjelmistossa on tapahtunut 1:01:31.071,1:01:36.890 manipulointia ja kaikki äänet[br]jouduttaisiin laskemaan käsin uudelleen. 1:01:36.890,1:01:42.242 J: Käsin laskeminen olisi todellakin[br]erittäin kova työ, koska niissä 1:01:42.242,1:01:48.703 lipukkeissa on jopa 70 ääntä kussakin.[br]Niiden yhteenlaskeminen on virhealtista 1:01:48.703,1:01:54.660 jos se tehdään käsin. Se on vaikeaa.[br]Ja minun tietääkseni, sitä ei ole 1:01:54.660,1:02:00.854 tehty yleisesti vaalien[br]jälkeen. Yritin etsiä 1:02:00.854,1:02:07.384 Internetistä jotain tästä. Löysin[br]vain PDF-tiedoston, jossa sanottiin, 1:02:07.384,1:02:15.467 ettei kaikkien lipukkeiden ja tuloksen[br]uudelleenlaskeminen ole tehtävissä. 1:02:15.467,1:02:21.781 Joten tehdään vain ylätason tarkastus:[br]onko protokolla suoritettu loppuun? Entä 1:02:21.781,1:02:26.894 erikoisäänet, ne jotka eivät[br]olleet ihan selkeitä? Ei niitä 1:02:26.894,1:02:31.733 kaikkia lipukkeita lasketa uudelleen,[br]sen perusteella mitä ymmärrän. 1:02:31.733,1:02:37.880 H: OK. Kiitos todella paljon, Tobias[br]ja Johannes vastauksistanne. 1:02:37.880,1:02:41.683 Kiitos uudelleen esityksestänne.[br]J: Kiitos. 1:02:41.683,1:02:42.403 H: Kiitos. 1:02:42.403,1:03:10.210 rC3-tunnusmusiikkia 1:03:10.210,1:03:18.970 Subtitles created by c3subtitles.de[br]in the year 2020. Join, and help us! 1:03:18.970,1:03:22.441 Translated by Markus Aurala[br](ITKST56 course assignment at JYU.FI)