< Return to Video

#rC3 - Saksan vaalien hakkerointi

  • 0:00 - 0:03
    Translated by Markus Aurala
    (ITKST56 course assignment at JYU.FI)
  • 0:03 - 0:12
    rC3-tunnusmusiikkia
  • 0:12 - 0:18
    Herald: Seuraava aiheemme on "Saksan
    vaalien hakkerointi - turvaton sähköinen
  • 0:18 - 0:24
    ääntenlaskenta, kuinka se
    palasi ja miksi et edes tiedä
  • 0:24 - 0:32
    siitä". Teille saksalaisille täällä,
    huomasitteko, että äänestäminen muuttui
  • 0:32 - 0:38
    sähköisemmäksi juuri?
    Itse asun Saksassa ja
  • 0:38 - 0:43
    en tätä huomannut. Molemmat puhujamme
    ilmoittautuivat vapaaehtoisiksi vaali-
  • 0:43 - 0:50
    työntekijöiksi Saksassa ja tutkivat
    vaalien tietoturvaa. He lupasivat
  • 0:50 - 0:57
    kertoa meille kuinka siinä kävi ja kuinka
    vaaleista voidaan tehdä turvalliset.
  • 0:57 - 1:02
    Puhujamme ovat Tobias, tietoturvatutkija,
    joka keskittyy haavoittuvaisuuksien
  • 1:02 - 1:07
    etsimiseen, autojen tietoturvaan ja
    lipunryöstöhaasteisiin. Sekä Johannes,
  • 1:07 - 1:12
    joka on postdoc-tietoturvatutkija.
    Kummatkin ovat työskennelleet yhdessä
  • 1:12 - 1:19
    Fraunhofer AISEC -instituutissa.
    Nauttikaa esityksestä.
  • 1:19 - 1:25
    Hiljaisuus
  • 1:25 - 1:29
    Johannes: Hei ja tervetuloa esitykseemme
    "Saksan vaalien hakkerointi -
  • 1:29 - 1:34
    turvaton sähköinen ääntenlaskenta, kuinka
    se palasi ja miksi et edes tiedä siitä."
  • 1:34 - 1:40
    Minun nimeni on Johannes Obermaier.
    Tobias: Ja minä olen Tobias Madl. Olemme
  • 1:40 - 1:45
    hyvin sisällä Baijerin vaaleissa, koska
    olemme vaalityöntekijöitä ja tarjoamme
  • 1:45 - 1:49
    tukeamme täällä Saksassa.
    J: Olemme haavoittuvuuksia etsiviä
  • 1:49 - 1:53
    tietoturvatutkijoita.
    T: Ihan ensimmäiseksi, haluamme puhua
  • 1:53 - 2:00
    esityksemme sisällöstä. Tietomme ja
    ohjelmistomme ovat peräisin
  • 2:00 - 2:06
    Baijerin kunnallisvaaleista, jotka
    käytiin alkuvuonna 2020. Kyseessä oli
  • 2:06 - 2:12
    tietokonepohjainen äänestysteknologia,
    joten olimme hyvin huolissamme kun me
  • 2:12 - 2:17
    aloimme kokeilemaan sitä. Ja lopulta
    päädyimme esittämään kysymyksen "ovatko
  • 2:17 - 2:24
    vaalit turvatut?" Seuraavaksi esitän
    tämänpäiväisen puheemme rungon.
  • 2:24 - 2:29
    Ensiksi, katsomme sähköistä
    ääntenlaskujärjestelmää. Seuraavaksi,
  • 2:29 - 2:34
    tunnistamme käsitteellisiä ja käytännön
    ongelmia tähän teknologiaan liittyen.
  • 2:34 - 2:41
    Sen jälkeen tutkimme ohjelmistoa ja
    siitä löydettyjä haavoittuvaisuuksia.
  • 2:41 - 2:47
    Esityksen lopuksi
    tehdään yhteenveto.
  • 2:47 - 2:52
    J: Ymmärtääkseemme miksi tarvitsemme
    sähköistä ääntenlaskentaa, katsotaan
  • 2:52 - 2:58
    äänestyslippua. Tämä äänestyslippu on
    paperimuodossaan noin metrin leveä ja
  • 2:58 - 3:03
    50 senttimetriä korkea. Joten se on aika
    iso lipuke, paljon ehdokkaita.
  • 3:03 - 3:11
    Vedetään faktat yhteen. On yhteensä
    599 ehdokasta, jotka jakaantuvat
  • 3:11 - 3:17
    yhdeksään puolueeseen. Äänestäjä
    saa antaa maksimissaan 70 ääntä näissä
  • 3:17 - 3:23
    vaaleissa. Kuulostaa yksinkertaiselta,
    mutta muuttuu monimutkaisemmaksi, koska
  • 3:23 - 3:29
    äänestäjä voi antaa maksimissaan 3 ääntä
    per ehdokas ja jakaa 70 ääntään eri
  • 3:29 - 3:36
    puolueiden ehdokkaille.
    Vaikka äänestäjä päättäisikin
  • 3:36 - 3:41
    äänestää yhtä ainoaa puoluetta, hän voi
    yliviivata ehdokkaan, josta
  • 3:41 - 3:46
    ei pidä. Ja näin nuo ehdokkaat eivät saa
    ääniä lipukkeestasi. Tästä seuraa, että
  • 3:46 - 3:52
    äänestysjärjestelmä antaa paljon valtaa
    kansalaisille ja äänestäminen on hauskaa.
  • 3:52 - 3:58
    Äänten laskeminen näistä lipukkeista
    on hankalaa, koska kaikkien lipukkeiden
  • 3:58 - 4:04
    laskeminen oikein edellyttää paljon
    tietoa erikoissäännöistä. Tästä syystä
  • 4:04 - 4:09
    on kehitetty ohjelmisto OK.VOTE.
    OK.VOTE on tyypillinen
  • 4:09 - 4:15
    vaaliohjelmisto, jota käytetään myös
    äänestyspaikoilla ääntenlaskentaan.
  • 4:15 - 4:20
    OK.VOTE:lla on aika suuri markkinaosuus.
    He sanovat, että se olisi 75%
  • 4:20 - 4:26
    Saksassa. Ohjelmistoa käytetään useissa
    osavaltioissa. OK.VOTE:ssa on useita
  • 4:26 - 4:32
    moduuleja vaalien järjestämiseen,
    mutta tässä esityksessä
  • 4:32 - 4:40
    tarkastelemme ainoastaan OK.VOTE:n
    ääntenlaskentamoduulia, johon
  • 4:40 - 4:47
    vaalityöntekijät syöttävät
    lipukkeet manuaalisesti
  • 4:47 - 4:53
    äänien tallentamiseksi tieto-
    järjestelmään. OK.VOTE:n tehtävä on
  • 4:53 - 4:59
    prosessoida jokainen lipuke
    äänten laskemiseksi, tarkistaa
  • 4:59 - 5:04
    oikeellisuus, sitten tallettaa lipukkeen
    tiedot tietokantaan, lopuksi se tekee
  • 5:04 - 5:10
    taikojaan ja laskee lopputuloksen. Tämä
    kuulostaa aika samalta mitä äänestyskone
  • 5:10 - 5:18
    tekee. Mutta hetkinen...
    Äänestyskoneita, minun Saksassani?
  • 5:18 - 5:23
    T: Hetkonen, sehän on laitonta.
    J: Onko se laitonta? Katsotaan,
  • 5:23 - 5:30
    mitä lainsäädäntö siitä sanoo. Kyllä,
    vuonna 2009 Saksan liittotasavallan
  • 5:30 - 5:35
    perustuslakioikeus teki merkittävän
    päätöksen ja sanoi, että äänestys-
  • 5:35 - 5:40
    koneiden käyttö liittopäivävaaleissa
    vuonna 2005 oli perustuslain vastaista.
  • 5:40 - 5:49
    Muun muassa siksi, että ne eivät olleet
    riittävän avoimia. Tämä on aika lähellä
  • 5:49 - 5:54
    kunnallisvaaleja koskevia
    löydöksiämme. Mutta hetkinen, me
  • 5:54 - 5:59
    puhumme liittopäivävaaleista. Mutta
    nämähän ovat kunnallisvaalit
  • 5:59 - 6:03
    ja meillä on eri säännöt kunnallis-
    vaaleille. Esimerkiksi on olemassa
  • 6:03 - 6:10
    GLKrWO, Gemeinde- und
    Landkreiswahlordnung Bayern,
  • 6:10 - 6:17
    joka kääntyy Baijerin kunnallisvaali-
    säännöiksi. Ja nuo säännöt sanovat,
  • 6:17 - 6:23
    että emme saa käyttää äänestämiseen
    tietokonetta, mutta tietokoneita
  • 6:23 - 6:29
    voidaan käyttää ääntenlaskuun. Tässä
    tapauksessa, olettaisin, että meillä on
  • 6:29 - 6:36
    jonkinlaisia tietoturvavaatimuksia
    noissa säännöissä. Mutta yritin
  • 6:36 - 6:41
    löytää niitä. Ja olin todella yllättynyt.
    Niitä on tarkalleen nolla kappaletta.
  • 6:41 - 6:45
    T: Eli jos ei ole laillisia vaatimuksia,
    onko edes mitään ohjelmistoa koskevia
  • 6:45 - 6:51
    vaatimuksia tai sertifiointeja, joilla
    taataan OK.VOTE:n turvallisuus?
  • 6:51 - 6:56
    J: Kyllä, niitä on. Tutkin web-sivustoa
    ja näin siellä tämän kivan pienen
  • 6:56 - 7:03
    kappaleen "Turvalliset vaalit". Siinä
    sanotaan OK.VOTE:n kehityksen aikana
  • 7:03 - 7:11
    heidän laittaneet korkeimman painoarvon
    turvallisuusasioihin. He seuraavaat BSI:n
  • 7:11 - 7:16
    ja OWASP:in tietoturvasuosituksia, ja
    heillä on sertifioitu palvelinkeskus
  • 7:16 - 7:21
    erittäin korkeilla turvastandardeilla.
    T: Ja miltä tämä näyttää sitten
  • 7:21 - 7:24
    käytännössä?
    J: Voi, en haluaisi näyttää sinulle tätä
  • 7:24 - 7:30
    tässä. Se on aika pelottavaa. Tämä
    tässä oli se näky kun astuin sisään
  • 7:30 - 7:34
    vaalihuoneeseen. Tämä ei ole kuva-
    kirjastosta. Otin tämän kuvan itse ja se
  • 7:34 - 7:40
    on todellisuus. Siis, kävelin näiden
    tyyppien luo ja kysyin, että "pitäisikö
  • 7:40 - 7:44
    meidän käyttää näitä ääntenlaskuun?"
    ja he sanoivat "kyllä, sitä varten
  • 7:44 - 7:50
    ne ovat täällä". Ja minä rukoilin
    Jumalaa, että olisi joku syy, ettei se
  • 7:50 - 7:55
    onnistuisi. Ja Windows XP ei pettänyt
    minua, koska kun käynnistin ohjelmistoa,
  • 7:55 - 8:03
    se kaatui, koska ne koneet olivat
    32-bittisiä ja OK.VOTE vaati 64-bittisen.
  • 8:03 - 8:09
    Joo, se oli hienoa. Joten me emme sitten
    käyttäneet Windows XP -koneita. Etsimme
  • 8:09 - 8:14
    sen sijaan muita koneita ja löysimme
    tämän tässä. Se on Windows 10 -kone.
  • 8:14 - 8:21
    Se oli OK. Kuitenkin, siinä oli
    vanhentunut virusskanneri. No, parempi
  • 8:21 - 8:27
    kuin ei mitään. Eli käytimme siis sitä
    konetta. Mutta pidetään mielessä mitä
  • 8:27 - 8:34
    meille luvattiin: turvallisia vaaleja.
    Epäilimme sitä todellakin.
  • 8:34 - 8:40
    Katsotaan IT-ympäristöä ja miten siihen
    tilanteeseen päädyttiin. Ensimmäiseksi
  • 8:40 - 8:46
    tämä ei ollut ihan täysin
    OK.VOTE:n vika, koska se oli
  • 8:46 - 8:54
    paikallishallinnon vastuulla hankkia
    koneet ääntenlaskuun ja AKDB, OK.VOTE:n
  • 8:54 - 9:00
    toimittaja, sanoi, että he suosittelevat
    käyttämään turvattuja hallinnon koneita.
  • 9:00 - 9:06
    OK tähän asti, mutta meillä ei vain ollut
    tarpeeksi turvattuja hallinnon koneita
  • 9:06 - 9:11
    tähän tarkoitukseen. Esimerkiksi,
    kotikaupungissani tarvitsimme noin 8
  • 9:11 - 9:17
    tietokonetta laskemaan vaalitulosta
    ja meillä ei ollut tarpeeksi
  • 9:17 - 9:23
    kaupungintalolla. Ja lisäksi
    vaalihuone oli koululla ja siellä
  • 9:23 - 9:28
    oli valmiina koulu-PC:itä. Joten
    käytimme sitten koulu-PC:itä.
  • 9:28 - 9:34
    Ja ne olivat peruskoulun koneita. En
    ole todellakaan varma, tietävätkö
  • 9:34 - 9:38
    kaikki oppilaat mitä linkkejä saa
    painaa ja mitä mitä ei pitäisi
  • 9:38 - 9:44
    painaa. Joten nämä koneet saattaisivat
    olla turvattomia. Niissä voisi olla
  • 9:44 - 9:49
    haittaohjelmia. Ja olisi mahdollista,
    että joku olisi manipuloinut niitä
  • 9:49 - 9:56
    etukäteen. Emme voi varmuudella sanoa.
    En haluaisi kuitenkaan syyttää
  • 9:56 - 10:00
    hallintoa, koska he olivat tehneet
    hyvää työtä vaalien järjestämisessä.
  • 10:00 - 10:06
    Heillä oli paljon tehtävää ja he
    tekivät sen hyvin. Kaikki järjestyi
  • 10:06 - 10:12
    lopulta. He eivät ole tietoturva-
    ammattilaisia ja emme voi sitä vaatia
  • 10:12 - 10:19
    heiltä, että he tietäisivät, miten
    pystyttää järjestelmät ja mitä
  • 10:19 - 10:24
    riskejä liittyy turvaamattomiin
    tietokoneisiin vaaleissa.
  • 10:24 - 10:30
    Se ei vain ole heidän työtään. Me vain
    päädyimme käyttämään epäluotettavia
  • 10:30 - 10:36
    koneita, koska - kuten olemme nähneet -
    lailliset vaatimukset eivät sano toisin.
  • 10:36 - 10:40
    Nyt, katsotaan miten saimme
    digitaalisen tuloksen aikaan.
  • 10:40 - 10:47
    T: Juuri niin. Menimme äänestys-
    paikoillemme ja saimme jokainen
  • 10:47 - 10:53
    PC:n ja nipun äänestyslipukkeita
    laskettavaksi ja tulosten syöttämiseksi.
  • 10:53 - 10:59
    Johannes oli Tiimissä 2, minä Tiimissä
    1. Syötimme lipukkeita koneisiimme.
  • 10:59 - 11:06
    Ne digitoitiin. Tiimi 1 oli
    vihreä ja Tiimi 2 oli sininen.
  • 11:06 - 11:11
    J: Kun lopetin lipukkeiden syöttämisen,
    laitoin sisään USB-muistin ja
  • 11:11 - 11:17
    annoin sen Tiimi 1:lle.
    T: Juuri niin. Latasin koneelleni äänet,
  • 11:17 - 11:22
    koska siinä vaiheessa minulla oli
    keskuskone. OK.VOTE:n ohjelmisto
  • 11:22 - 11:29
    finalisoi nämä vaalit ja
    siirsi tulokset sen jälkeen
  • 11:29 - 11:34
    jälleen USB-muistille. Ja sitten se
    kuljetettiin eteenpäin prosessoitavaksi.
  • 11:34 - 11:39
    J: Mikä ongelma tässä kaikessa oli?
    Ensinnäkin, siinä oli paljon
  • 11:39 - 11:43
    läpinäkymättömyyttä. Esimerkiksi,
    ohjelmisto, jota käytimme äänten
  • 11:43 - 11:49
    laskemiseen, OK.VOTE, ei ole avointa
    lähdekoodia. Se on suljettu järjestelmä,
  • 11:49 - 11:56
    eikä kukaan pysty sitä analysoimaan. Ja
    koska se on suljettu järjestelmä, on
  • 11:56 - 12:00
    myös hyvin hankala ymmärtää miten
    se toimii ja varmistaa, että se todella
  • 12:00 - 12:05
    laskee oikein. Meillä oli satoja
    äänestyslipukkeita siellä ja
  • 12:05 - 12:10
    on todella vaikeaa sanoa, ovatko
    ne kaikki oli laskettu oikein. Ja
  • 12:10 - 12:17
    me olemme nähneet tämän ennenkin. Ei voi
    varmistaa laskennan olleen turvattu.
  • 12:17 - 12:22
    Meillä olisi voinut olla peukaloitu
    järjestelmä. Emme voi sulkea pois, että
  • 12:22 - 12:29
    joku olisi manipuloinut sitä etukäteen.
    Jos sitä olisi manipuloitu, sitä olisi
  • 12:29 - 12:35
    rivivaalityöntekijän vaikea
    havaita. Joten se tarkoittaa, että
  • 12:35 - 12:41
    koko vaaliprosessi on läpinäkymätön
    ja siitä tulee vaikeasti ymmärrettävä
  • 12:41 - 12:46
    henkilölle, joka vain haluaa seurata
    vaaleja. Se on täysin vastaan
  • 12:46 - 12:53
    julkisen ääntenlaskun ideaa.
    T: Puhutaan nyt siitä vaiheesta,
  • 12:53 - 12:58
    joka tapahtuu sen jälkeen kun
    lopetamme laskemisen tiimeissämme.
  • 12:58 - 13:02
    J: Mitä sitä teit kun sait ulos
    lopullisen ääntenlaskennan tuloksen?
  • 13:02 - 13:05
    Kuinka se toimitettiin
    keskushallintoon?
  • 13:05 - 13:11
    T: Jep, istuin autooni ja otin
    USB-muistit taskuuni ja ajoin
  • 13:11 - 13:18
    keskus-PC:lle. Kuten varmaan tiedät,
    vaalipäivä on erittäin kiireinen ja
  • 13:18 - 13:24
    jotkut tiimit ovat hitaampia laskemaan.
    Jotkut tiimi ovat nopeampia. Keskustiimi
  • 13:24 - 13:29
    ei tiedä milloin USB-muistit saapuvat.
    Meneekö siinä kaksi, kolme tuntia vai
  • 13:29 - 13:33
    puolikas, he eivät tiedä. Joten voisin
    mennä ja syödä jotain matkallani.
  • 13:33 - 13:39
    Tai voisin manipuloida äänestystuloksia.
    Tarkoitan, jakaa ääniä. Ja kun lopulta
  • 13:39 - 13:44
    joku päivä saavun keskus-PC:lle, annan
    vain USB-muistin, he asentavat sen
  • 13:44 - 13:48
    ja ottavat datan joka sieltä löytyy.
    Siinä kaikki. Jälkeen päin
  • 13:48 - 13:53
    he vain lataavat lopulliset
    tulokset sivulle.
  • 13:53 - 13:59
    J: Nyt ehkä mietitte, miten hän
    voisi manipuloida vaalituloksia?
  • 13:59 - 14:05
    Koska niiden autenttisuutta ei ole
    suojattu. Kuljettavan tiedoston
  • 14:05 - 14:10
    koskemattomuus on suojattu. On CRC32
    ja SHA-tiiviste, mutta ei krypto-
  • 14:10 - 14:16
    grafista allekirjoitusta. Jos hän
    muuttaisi dataa, hän voisi generoida
  • 14:16 - 14:22
    uudet koskemattomuustiedot ja data
    hyväksyttäisiin. Pääongelma tässä on
  • 14:22 - 14:29
    myös se, että tämä on harvoja hetkiä kun
    vain yhdellä ihmisellä on valvomaton
  • 14:29 - 14:34
    pääsy kuljettavana olevaan
    äänestysdataan. Ja se tekee
  • 14:34 - 14:39
    manipuloinnista mahdollista ja helposti
    tehtävissä olevaa. Ja se ei saisi olla
  • 14:39 - 14:48
    näin, erityisesti sähköistetyissä
    vaaleissa. Katsotaanpa
  • 14:48 - 14:52
    itse äänteenlaskuohjelmistoa, koska
    teimme siellä vielä enemmän
  • 14:52 - 14:56
    mielenkiintoisia löydöksiä.
    T: Juuri näin. Aloitetaan järjestelmä-
  • 14:56 - 15:02
    arkkitehtuurista. Ensimmäiseksi, tämä on
    paikallinen tai hajautettu versio
  • 15:02 - 15:08
    järjestelmästä. Joten kaikki tämä
    tapahtuu paikallisilla koneilla, niillä
  • 15:08 - 15:13
    joihin tutustuimme luokkahuoneissa. Ja
    näillä koneilla on asennettuna Apache
  • 15:13 - 15:18
    Tomcat -web-palvelin, joka on yhdistetty
    MariaDB-tietokantaan. Käyttäjä käyttää
  • 15:18 - 15:25
    äänestysjärjestelmä siirrettävällä
    Firefoxilla. AKDB sanoi aiemmin, että he
  • 15:25 - 15:33
    suhtautuivat erittäin vakavasti tieto-
    turvaan. Mietitään mitä hyökkääjiä heillä
  • 15:33 - 15:38
    oli mielessään suunnitellessaan
    järjestelmää ja keneltä pitäisi
  • 15:38 - 15:44
    puolustautua. Hyökkääkö järjestelmää,
    ääntenlaskuohjelmistoa, vastaan käyttäjä,
  • 15:44 - 15:51
    joka on normaalisti vain vapaa-ajallaan
    vaaleissa avustava vaalityöntekijä,
  • 15:51 - 15:58
    vai oliko heillä mielessä
    verkkohyökkääjät, jotka tulevat
  • 15:58 - 16:03
    ihan jostain muualta ja yrittävät
    manipuloida verkkoa ulkoapäin?
  • 16:03 - 16:10
    Ensiksi, tarkastelimme käyttäjää yhtenä
    mahdollisista hyökkääjistä. Ja jopa tässä
  • 16:10 - 16:15
    ympäristössä me löysimme todella
    rikkinäistä tavaraa. Ensimmäiseksi,
  • 16:15 - 16:21
    rikkinäinen pääsynhallinta. Mutta ei
    siinä kaikki. Tässä kirjautumissivu,
  • 16:21 - 16:27
    jolla kirjauduimme äänestysjärjestelmään,
    ja jossa klikkasimme hallintasivua missä
  • 16:27 - 16:31
    voimme vaihtaa salasanan tai editoida
    profiiliamme. Vasemmalla on nappuloita ja
  • 16:31 - 16:37
    kuten näette, olemme kirjautuneet sisään
    "user42":na. Ei ole muuta tehtävää kuin
  • 16:37 - 16:43
    valita mitä laskentaa haluamme tehdä:
    yleistä alueellista äänestystä vai
  • 16:43 - 16:48
    kunnallista laskentaa. Ja siinä kaikki
    mitä voimme tehdä sivulla. Vaihdetaan
  • 16:48 - 16:54
    järjestelmänvalvojaksi. Tässä meillä on
    järjestelmänvalvojan tili, kuten näette
  • 16:54 - 17:00
    ylävasemmalta. Siellä voimme tehdä paljon
    enemmän kuin normaali käyttäjä. Olemme
  • 17:00 - 17:04
    taas hallintasivulla, mutta nyt meillä on
    käyttäjienhallinta, jossa voimme lisätä
  • 17:04 - 17:12
    tai poistaa käyttäjiä. Me voimme avata
    uudelleen tai sulkea äänestystapoja. Me
  • 17:12 - 17:18
    voimme tuoda/viedä tietoa. Mikä ei ole
    käytössä ruutukaappauksissa on
  • 17:18 - 17:25
    äänestystulosten poisto jne. Me
    valitsimme kaksi erittäin kiinnostavaa
  • 17:25 - 17:32
    URL-osoitetta teille. Ensimmäiseksi,
    "Bezirk wieder eröffnen" joka kääntyy
  • 17:32 - 17:36
    "avaa uudelleen vaalit". Sen
    jälkeen kun vaalit on suljettu,
  • 17:36 - 17:41
    ääniä ei voi enää syöttää
    järjestelmään. Ja toinen
  • 17:41 - 17:47
    linkki on "Löschen", joka kääntyy
    "tuhoa". Se puolestaan tuhoaa
  • 17:47 - 17:53
    kaiken datan koneelta, jolloin siellä ei
    ole enää yksityistä tai turvattua dataa.
  • 17:53 - 17:59
    Ja tämä on se miltä ne näyttävät kun me
    avaamme ne vasemmalta puolelta.
  • 17:59 - 18:04
    Näemme "avaa uudelleen" -valinnan.
    Oikealla näemme datan poiston. Hetkinen,
  • 18:04 - 18:13
    tämä ei ole järjestelmänvalvojan näkymä,
    vaan käyttäjän näkymä. He eivät
  • 18:13 - 18:18
    tarkastaneet oliko tämä sallittua
    käyttäjälle. Pakko sanoa ettei tämä
  • 18:18 - 18:22
    ollut vain näkymä, vaan ne toimivat.
    Täysin toimivat prosessit, joilla
  • 18:22 - 18:26
    poistat dataa tai avaat vaalit
    uudelleen.
  • 18:26 - 18:29
    Hälytysääni
    J: Mikä ongelma tässä on?
  • 18:29 - 18:34
    T: Jep, kuten varmaan jo arvasit,
    vaalien avaaminen uudelleen voi
  • 18:34 - 18:39
    tehdä siitä todennäköisempää, että
    mukaan ujutetaan ääniä omalle suosikille.
  • 18:39 - 18:45
    Ja lisäksi, jos haluan sekoittaa
    vaaleja, voin vain poistaa kaiken
  • 18:45 - 18:50
    äänestysdatan. Joutuisimme aloittamaan
    alusta. Olisimme täysin myöhässä tai
  • 18:50 - 18:53
    kiistämään äänestyksen.
    J: Mutta kuinka tämä on edes mahdollista?
  • 18:53 - 19:00
    T: Jep, me opimme, että tässä on heidän
    sovelluksensa pääsyoikeuksien tarkastus.
  • 19:00 - 19:06
    Tässä funktiossa "getZugriffRollen",
    joka kääntyy "hae pääsyroolit".
  • 19:06 - 19:11
    Normaalisti siellä olisi koodia joka
    tarkastaa onko tällä roolilla pääsy
  • 19:11 - 19:15
    tähän osaa sivustoa. Mutta se vain
    palauttaa "null", ei sitä ole toteutettu.
  • 19:15 - 19:22
    Ja se on kiva homma implementoida
    pääsynhallinta. Kuitenkin, me voimme
  • 19:22 - 19:27
    ehdottaa mekanismeja, joilla tämä olisi
    voitu estää. Ensimmäiseksi, et voi
  • 19:27 - 19:33
    luottaa piilotettuun tietoon.
    Jos jätät näyttämättä mistä voi klikata
  • 19:33 - 19:39
    URLia tai sivua, se ei ole oikeasti
    salaisuus, koska ehkä löydät jotain
  • 19:39 - 19:43
    vuodettua lähdekoodia, varmistat
    ajamisen järjestelmänvalvojana, tai
  • 19:43 - 19:49
    naputtelet URL:n vahingossa väärin ja
    pääset piilotettuun tietoon. Tai sitten
  • 19:49 - 19:55
    käytät skanneria löytääksesi piilodatan.
    Datan piilottaminen ei ole turvallista.
  • 19:55 - 19:59
    Ja toisaalta, sinun pitäisi implementoida
    pääsyoikeuksien hallinta, jotta
  • 19:59 - 20:03
    se olisi olemassa ja testata edes
    kerran, että se toimii. Lopulta
  • 20:03 - 20:08
    voimme todeta, että piilotettu data
    ei ole suojattua dataa.
  • 20:08 - 20:12
    T: Katsotaaanpa toisentyyppistä
    hyökkäystä, XSS-hyökkäystä.
  • 20:12 - 20:17
    XSS-hyökkäys on eräänlaista
    häirintää kahden web-sivun välillä.
  • 20:17 - 20:22
    Esimerkiksi, yksi sivusto yrittää tehdä
    jotain toisen puolesta. Tavoite on usein
  • 20:22 - 20:27
    huijata käyttäjää tai käynnistää
    manipulaatio. Ensimmäiseksi, olemme aika
  • 20:27 - 20:33
    varmoja, että he ovat miettineet XSS-
    hyökkäyksiä, koska tehdessämme testausta,
  • 20:33 - 20:40
    me näimme lisättyjä HTTP-otsakkeita,
    jotka torjuvat suuren kirjon erilaisia
  • 20:40 - 20:45
    XSS-hyökkäysvektoreita. Esimerkiksi,
    tässä on "X-Frame-Options: Same Origin".
  • 20:45 - 20:52
    Se tarkoittaa, että muut sivut eivät voi
    sisällyttää ääntenlaskentaohjelmistoa
  • 20:52 - 20:57
    omiin kehyksiinsä jne. Myöskin
    XSS-hyökkäyksen suojaus on asetettu:
  • 20:57 - 21:04
    "X-XXS-Protection". Joten tämä näyttää
    aika hyvältä, koska jo tämä sulkee pois
  • 21:04 - 21:10
    useita hyökkäysvektoreita. Mutta entäs
    CSRF-hyökkäykset? Kun me ensin testasimme
  • 21:10 - 21:16
    tätä, meille selvisi, että ääntenlasku-
    järjestelmää ei oltu täysin suojattu.
  • 21:16 - 21:21
    Mitä CSRF-hyökkäys tarkoittaa? Vaiheessa
    1 vaalityöntekijä käyttää integroitua
  • 21:21 - 21:27
    Firefox-selainta vihamielisellä
    web-sivustolla. Eli käyttäjä
  • 21:27 - 21:32
    keksii mennä web-sivustolle. Esimerkiksi
    joku lähettää hänelle linkin ja se sai
  • 21:32 - 21:38
    hänet klikkaamaan sitä, esimerkiksi
    suloisten eläinkuvien toivossa tai
  • 21:38 - 21:43
    jotain sellaista. Ja sitten käyttäjä
    vierailee sivustolla. Ja tämä sivusto
  • 21:43 - 21:48
    sisältää lomakkeen kenttiä, jotka
    muistuttavat ääntenlaskentaohjelmiston
  • 21:48 - 21:54
    kentistä. Ja vihamielinen web-sivusto
    saa selaimen lähettämään niiden datan
  • 21:54 - 22:00
    ääntenlaskentaohjelmistoon sen
    alkuperäisen web-sivuston sijasta.
  • 22:00 - 22:04
    Ja heti kun se saavuttaa Tomcat-
    web-palvelimen, se hämääntyy,
  • 22:04 - 22:11
    koska web-palvelin ei CSRF-hyökkäyksessä
    erota käyttäjän syötettä vihamielisen
  • 22:11 - 22:15
    sivuston syötteestä. Ja sitten
    Apache Tomcat -palvelin
  • 22:15 - 22:20
    vain pitää sitä käyttäjän syötteenä
    ja käsittelee sen. Ja tätä
  • 22:20 - 22:26
    kutsutaan CSRF-hyökkäykseksi.
    Näimme siis, että joskus siellä
  • 22:26 - 22:31
    on suojaus tietyntyyppisiä hyökkäyksiä
    vastaan. Mutta monet sivut eivät ole
  • 22:31 - 22:38
    suojattuja. Se on hyvin huolestuttavaa.
    Haavoittuvaisuus vuodelta 2001. Se on
  • 22:38 - 22:44
    melkein 20 vuotta vanha ja löytyy yhä
    tästä ohjelmistossa. Tämä on hyvin
  • 22:44 - 22:50
    huolestuttavaa. Nyt, vedetään yhteen
    mitä sillä voi tehdä. Ensimmäiseksi,
  • 22:50 - 22:56
    tämä ongelma aiheutuu siitä, että sieltä
    puuttuu nk. CSRF-tunniste tai mikä vain
  • 22:56 - 23:00
    hyvä vastatoimenpide CSRF-hyökkäyksille.
    Ja toisekseen, vain minimaalinen
  • 23:00 - 23:05
    käyttäjän vuorovaikutus tarvitaan.
    Käyttäjä ei aina edes näe, että
  • 23:05 - 23:11
    hän on parhaillaan
    osallisena CSRF-hyökkäyksessä.
  • 23:11 - 23:16
    Se on melkein käyttäjän huomaamattomissa.
    Ja se on erittäin yksinkertaista huijata
  • 23:16 - 23:23
    käyttäjää klikkaamaan linkkiä. Vaikutus
    on tuhoisa, koska me voimme manipuloida
  • 23:23 - 23:29
    asetuksia ääntenlaskentaohjelmistossa.
    Ja me voimme lisätä feikkilipukkeita.
  • 23:29 - 23:34
    Hälytysääni
    T: Mikä tämän lopputulos on?
  • 23:34 - 23:38
    Mitä me voimme tehdä tällä?
    J: No, me voimme manipuloida koko
  • 23:38 - 23:43
    vaalit tällä. Katsotaan demo
    siitä, kuinka me sen teemme.
  • 23:43 - 23:45
    T: Siistiä.
    J: Olemme jo kirjautuneet sisään
  • 23:45 - 23:55
    ääntenlaskentajärjestelmään. Tunnuksemme
    on "admin321934". Lasketaanpa ääniä.
  • 23:55 - 24:00
    Näemme tässä kaikki lipukkeet, jotka
    voimme syöttää järjestelmään. Nämä ovat
  • 24:00 - 24:07
    yhä tyhjiä, koska emme ole syöttäneet
    lipukkeita vielä. Aloitetaan. Yksin-
  • 24:07 - 24:12
    kertaisuuden takia, meillä on vain kaksi
    puoluetta. Vasemmalla Hyvä Puolue, joka
  • 24:12 - 24:17
    haluaa parasta ihmisille. Oikealla
    meillä on Paha Puolue, joka
  • 24:17 - 24:22
    haluaa valtaa ja on valmis turvautumaan
    jopa vaalivilppiin. Aloitetaan
  • 24:22 - 24:28
    ja syötetään ensimmäinen paperilipuke.
    Äänestäjä on äänestänyt Hyvää Puoluetta,
  • 24:28 - 24:38
    joten syötämme tämän ohjelmistoon. Nyt
    me tallennamme lipukkeen ja jatkamme
  • 24:38 - 24:45
    eteenpäin. Se on ääni Hyvälle Puolueelle.
    Syötetään se ja mennään kolmanteen
  • 24:45 - 24:53
    lipukkeeseen. Ja taas, se on Hyvälle
    Puolueelle. Tallennetaan kolmas lipuke.
  • 24:53 - 25:00
    Mennään lipukkeiden yleiskatsaukseen ja
    katsotaan mitä on tapahtunut. Näette,
  • 25:00 - 25:05
    että olemme syöttäneet onnistuneesti 3
    lipuketta. Seuraavaksi, katsotaan
  • 25:05 - 25:11
    alustavia vaalituloksia. Ja kuten
    näemme, meillä on yhteensä 3 lipuketta,
  • 25:11 - 25:16
    jotka olemme syöttäneet järjestelmään.
    Se on oikein. 3 lipuketta sisälsivät
  • 25:16 - 25:22
    ääniä Hyvälle Puolueelle. Se on myös
    oikein. Ja nolla ääntä on annettu
  • 25:22 - 25:28
    Huonolle Puolueelle. Kaikki hyvin vielä.
    Seuraavaksi, näytän mitä tapahtuu jos
  • 25:28 - 25:33
    avaan vihamielisen verkkosivun. Sivusto
    tekee CSRF-hyökkäyksen ja manipuloi
  • 25:33 - 25:39
    vaalituloksia. Oletetaan, että pidämme
    taukoa ja vierailemme Twitterissä.
  • 25:49 - 25:54
    OK, täällä ollaan. Täällä on kiva
    kissakuva ja täällä on linkki, josta
  • 25:54 - 26:02
    löytyy lisää niitä. Leikitään, että
    meidät huijataan klikkaamaan linkkiä.
  • 26:02 - 26:08
    Voi, katsokaa noita suloisia eläinkuvia.
    Katsokaa tuota nälkäistä kania, apinaa,
  • 26:08 - 26:14
    pientä siiliä ja kahta suloista vuohta
    jne. Kun lopetamme selaamisen,
  • 26:14 - 26:23
    suljemme välilehdet ja palaamme äänten-
    laskentaohjelmistoon. Mitä huomaamme nyt
  • 26:23 - 26:29
    on, että käyttäjänimi on muuttunut.
    Meidät on "häkätty". Meidät huijattiin
  • 26:29 - 26:35
    vierailemaan vihamielisellä sivustolla.
    Se suoritti CSRF-hyökkäyksen sovellukseen
  • 26:35 - 26:43
    ja manipuloi sitä. Katsotaan mitä muuta
    on muuttunut. Kaikki 3 lipuketta on
  • 26:43 - 26:48
    yhä siellä, mutta nyt menemme
    katsomaan alustavia vaalituloksia.
  • 26:48 - 26:54
    Mitä näemme siellä on, että
    lipukkeiden määrä järjestelmässä
  • 26:54 - 26:58
    on noussut kahdeksaan. Meillä on nyt 5
    ylimääräistä lipuketta, joita emme ole
  • 26:58 - 27:04
    syöttäneet. Kuten näette, Hyvällä
    Puolueella on yhä 3 ääntä. Ne me
  • 27:04 - 27:10
    syötimme. Mutta nyt Paha Puolue on
    ottanut johdon. Sillä on nyt 5 ääntä.
  • 27:10 - 27:16
    Tämä hyökkäys on manipuloinut
    vaalituloksia. Tosi huono homma,
  • 27:16 - 27:21
    koska me emme näe niitä
    feikkiääniä, jotka on lisätty.
  • 27:21 - 27:27
    Olimme kuitenkin onnekkaita kun
    huomasimme sen, koska odotimme
  • 27:27 - 27:32
    hyökkäystä. Mutta emme huomaisi
    asiaa jokaisessa tapauksessa.
  • 27:33 - 27:39
    T: Mutta mitä tapahtuu, jos emme huomaa?
    J: No, tämä tapahtuu. Tässä esimerkissä
  • 27:39 - 27:44
    me vain oletimme, että Tiimillä 1
    oli 3 lipuketta, jotka se oli syöttänyt
  • 27:44 - 27:48
    järjestelmään ja Tiimillä 2 oli 6
    lipuketta, jotka se oli syöttänyt
  • 27:48 - 27:55
    järjestelmään. Nyt Tiimi 1 vierailee
    vihamielisellä sivustolla ja 5 feikki-
  • 27:55 - 28:01
    lipuketta lisätään vaalituloksiin.
    Tässä tapauksessa hyökkääjä oli fiksu
  • 28:01 - 28:06
    ja injektoi lipukkeet paikkaan,
    johon Tiimi 2:n äänten odotetaan
  • 28:06 - 28:14
    tulevan myöhemmin. Joten mitä tapahtuu:
    Tiimi 2 vie lipukkeensa Tiimi 1:lle ja
  • 28:14 - 28:21
    se yrittää lukea ne sisään. Ja mitä nyt
    tapahtuu: koska siellä mihin Tiimin 2
  • 28:21 - 28:26
    lipukkeiden olisi määrä päätyä, on
    jo lipukkeita, sisäänlukuprosessi
  • 28:26 - 28:32
    ei toimi onnistuneesti. Vain
    joukko ääniä luetaan sisään.
  • 28:32 - 28:38
    Joten enemmistö lipukkeista,
    5 tai 6 lipuketta,
  • 28:38 - 28:42
    ohitetaan, koska ne eivät mahdu
    tietokantaan, koska niiden paikat
  • 28:42 - 28:48
    on jo viety feikkilipukkeiden toimesta.
    Yleensä me voisimme olettaa, että
  • 28:48 - 28:53
    tämä generoisi virheviestin tai ainakin
    varoituksen, mutta näin ei käy. Tämä on
  • 28:53 - 29:00
    ohjelmiston hiljainen epäonnistuminen.
    Ja mikä on vielä pahempaa, äänimäärät
  • 29:00 - 29:05
    ovat jälleen oikein. Se tarkoittaa, että
    meillä on yhdeksän ääntä järjestelmässä
  • 29:05 - 29:10
    ja ne vastaavat yhdeksää paperilipuketta.
    Näyttää siltä kuin kaikki lipukkeet olisi
  • 29:10 - 29:14
    syötetty ja kaikki olisi kuten
    pitääkin. Siispä suljemme
  • 29:14 - 29:19
    äänestyksen ja laskemme vaalituloksen.
    Ja se tapahtuu nyt. Kuten näette,
  • 29:19 - 29:26
    on vain 4 ääntä Hyvälle Puolueelle,
    mutta 5 ääntä Pahalle Puolueelle.
  • 29:26 - 29:32
    Joten Paha Puolue voitti vaalit
    manipuloimalla äänestysjärjestelmää,
  • 29:32 - 29:38
    käyttämällä CSRF-hyökkäystä. Ja sen ei
    pitäisi olla koskaan mahdollista, koska
  • 29:38 - 29:46
    emme se ei vastaa ääntenlaskujärjestelmän
    odotuksia. Vaalitulos on vilpillinen.
  • 29:46 - 29:51
    Mietimmekö verkkohaavoittuvaisuuksia?
    T: Joo, varmasti, mutta se on kolikon
  • 29:51 - 29:55
    toinen puoli. Tarkastimme ensin vaali-
    työntekijöiden osion hyökkäyksiä vastaan,
  • 29:55 - 30:00
    sitten tarkastimme verkkopuolen ja
    skannasimme ja analysoimme järjestelmää.
  • 30:00 - 30:08
    Sitten me huomasimme: avoimia portteja
    kaikkialla. Kuten näette, he ovat
  • 30:08 - 30:14
    jättäneet Apache Tomcatin ja MariaDB:n
    avoimeksi koko järjestelmän verkolle.
  • 30:14 - 30:19
    Ja me mietimme tästä, että "no,
    testataan tuoreita haavoittuvaisuuksia,
  • 30:19 - 30:25
    kuten 2020 löydettyä Ghostcatia".
    Ghostcat on hyökkäys, joka tehdään
  • 30:25 - 30:31
    Apachen AJP-protokollaa vastaan.
    Tarkastellaan Apachen järjestelmää ja
  • 30:31 - 30:38
    miten se on rakennettu. Apachessa on
    hakemisto, josta jaetaan staattisia
  • 30:38 - 30:43
    resursseja, HTML- ja JSP-tiedostoja.
    Lisäksi se voi sisältää luokkatiedostoja
  • 30:43 - 30:49
    tai servlettejä, joita käytetään
    JSP- tai HTML-tiedostojen yhteydessä.
  • 30:49 - 30:57
    Annoimme ajpShooter-skriptille ohjel-
    miston osoitteen, portin ja tiedoston,
  • 30:57 - 31:02
    jonka halusimme sen lukevan. Tässä
    se oli luokka "PrivateTest", koska
  • 31:02 - 31:07
    se voisi vuotaa, ehkäpä. Me sanoimme,
    että haluamme vain sen luettavan.
  • 31:07 - 31:11
    Siinä olisi mahdollisuus,
    että sen sisältämä koodi tulisi
  • 31:11 - 31:18
    suoritettavaksi. Me teimme sen
    hyökkäyksen ja TA-DAA, tulos! Tässä on
  • 31:18 - 31:23
    luokan "PrivateTest" tavukoodi.
    Tiputetaan tämä koodi kahvikuppiimme
  • 31:23 - 31:29
    ja ehkä saamme ongittua sieltä luokan
    lähdekoodin. Ja, kyllä, saimme sen.
  • 31:29 - 31:37
    Miksipä salausmekanismia ei
    testattaisi tekstijonolla?
  • 31:37 - 31:42
    Mutta tämä ei ole tavallinen tekstijono,
    kuten ehkä huomaat. Tämä on oikea
  • 31:42 - 31:46
    ylläpitäjän salasana tuotannossa olevaan
    MariaDB:een. Ja tämä on...
  • 31:46 - 31:52
    Hälytysääni
    J: Mikä tässä on ongelma? T: Kuten ehkä
  • 31:52 - 31:57
    selvästi näet tästä hyökkäyksestä, me
    voisimme vuotaa MariaDB:n kirjautumis-
  • 31:57 - 32:02
    tiedot ja ehkä enemmänkin kirjautumis-
    tietoja ja salasanoja. Voisimme vuotaa
  • 32:02 - 32:08
    koko lähdekoodin verkkoon ilman, että
    meillä on pääsyä PC:lle vaalihuoneessa.
  • 32:08 - 32:16
    Ja tämä oli vain mahdollista, koska he
    jättivät avoimiksi verkkoon kaikki koneet
  • 32:16 - 32:22
    ja sovellukset. Näin ei pitäisi koskaan
    olla. Joten lopputulos.
  • 32:22 - 32:27
    Miten tämän voi estää? Ensiksikin, sinun
    ei pitäisi koskaan jättää tarpeettomia
  • 32:27 - 32:31
    portteja avoimiksi. He eivät edes käytä
    AJP-välityspalvelinta sovelluksessaan,
  • 32:31 - 32:38
    mutta jättivät sen auki koko maailmalle.
    Seuraavaksi, pidä ohjelmistosi ajan
  • 32:38 - 32:44
    tasalla, jotta ohjelmistosi ei olisi
    haavoittuvainen jos jotain löytyy.
  • 32:44 - 32:50
    Ja viimeisenä mutta ei vähäisimpänä:
    älä koskaan käytä tuotantosalasanoja
  • 32:50 - 32:55
    yksikkötesteissäsi. Se ei ole paras idea.
    Lopuksi, yhteenvetona: vältä kaikin
  • 32:55 - 33:01
    keinoin jättämästä ylimääräistä hyökkäys-
    pinta-alaa tälläisille hyökkäyksille,
  • 33:01 - 33:05
    joista et ehkä edes vielä tiedä.
    J: Nyt kun Tobi on näyttänyt
  • 33:05 - 33:10
    mielenkiintoisia Apache-juttuja, minä
    testasin tietokannan tietoturvaa.
  • 33:10 - 33:15
    Ensimmäisen analyysin aloitin
    samalla PC:llä, jossa ohjelmisto
  • 33:15 - 33:20
    oli asennettuna. Kokeilin saada pääsyä
    tietokantaan, joka oli samalla koneella,
  • 33:20 - 33:25
    localhostilla. Kokeilin käyttäjätunnusta
    "root" ja sitten minä huomasin, että
  • 33:25 - 33:30
    minulta kysytään salasanaa
    pääsyä varten. Se oli kuitenkin
  • 33:30 - 33:35
    triviaalia, koska kaikki mitä
    minun tarvitsi tietää, oli
  • 33:35 - 33:41
    edellisessä tiedostossa. Onnistuin
    purkamaan salasanan salauksen
  • 33:41 - 33:46
    helposti. Sillä hetkellä tajusin,
    että Tobi oli näyttänyt sitä
  • 33:46 - 33:51
    aiemmin. Että hän oli löytänyt sen
    Ghostcat-haavoittuvuudella ja se oli
  • 33:51 - 33:59
    MySQL-pääkäyttäjän salasana. Kun sain
    yhteyden MySQL:ään, yritin dumpata
  • 33:59 - 34:06
    käyttäjätietokannan katsoakseni millä
    käyttäjillä oli pääsy tietokantaan. Ja
  • 34:06 - 34:11
    tältä se näyttää. "root"-käyttäjiä
    on 4 ja käyttäjältä "root" vaaditaan
  • 34:11 - 34:17
    salasana kun yhteys otetaan paikalliselta
    koneelta. Mutta odotapa hetki, täällä on
  • 34:17 - 34:24
    myös kone "pci90309". Ja kuten huomaatte,
    sillä käyttäjällä ei ole MySQL-salasanaa
  • 34:24 - 34:30
    asetettuna. Se tarkoittaa, että joku
    koneelta "pci90309" saa ottaa yhteyden
  • 34:30 - 34:38
    käyttäjänä "root" ja siihen ei
    tarvita edes salanaa. Ja se on
  • 34:38 - 34:42
    todella outoa.
    Hälytysääni
  • 34:42 - 34:51
    T: Joten mitä tästä voi seurata?
    J: No, joku verkossa voi nyt
  • 34:51 - 34:56
    vain tehdä massaäänestysmanipulointia.
    Se on aika triviaalia, koska voin vain
  • 34:56 - 35:01
    nimetä koneeni sopivasti ja saan täyden
    pääsyn tietokantaan, johon kaikki
  • 35:01 - 35:06
    äänestystulokset on säilötty. Järjestel-
    mänvalvojana voin käpistellä niitä. Voin
  • 35:06 - 35:10
    muuttaa niitä kuten haluan. Tämä
    haavoittuvaisuus on niin hitsin outo ja
  • 35:10 - 35:17
    itsestäänselvä, että se ei vaadi mitään
    vaivannäköä. Ja siksi me emme edes demoa
  • 35:17 - 35:23
    sitä tässä. Se on typerryttävän yksin-
    kertaista tässä tapauksessa. Normaalisti
  • 35:23 - 35:28
    sanoisin "eiköhän se ollut tässä", koska
    meillä on täysi pääsy järjestelmään
  • 35:28 - 35:34
    ja voimme muuttaa mitä haluamme. Päätimme
    kuitenkin mennä vielä syvemmälle, koska
  • 35:34 - 35:42
    näimme "pci90309":n avaavan ovia. Joten
    meillä on pääsy äänestystuloksiin. Ja me
  • 35:42 - 35:48
    voimme muuttaa niitä, mutta meillä ei
    ole vielä pääsyä koko järjestelmään.
  • 35:48 - 35:52
    Entäs se PC? Olisiko se mahdollista,
    että järjestelmänvalvojan pääsyllä
  • 35:52 - 36:00
    tietokantapalvelimelle voisi ajaa etäältä
    koodia sillä koneella? Tätä koetta varten
  • 36:00 - 36:05
    käytimme seuraavaa asetelmaa. Oikealla
    meillä on äänestysjärjestelmä avoimen
  • 36:05 - 36:11
    MariaDB-tietokantapalvelimen kanssa.
    Vasemmalla on minun koneeni. Nimesin
  • 36:11 - 36:16
    sen "pci90309":ksi, koska voin sen
    tehdä. Saan siltä avattua yhteyden
  • 36:16 - 36:24
    MariaDB-palvelimelle. Käytän tunnusta
    "root" ilman salasanaa. Ja se
  • 36:24 - 36:30
    hyväksytään heti. Kun minulla on
    nyt yhteys, voin antaa komentoja.
  • 36:30 - 36:36
    Esimerkiksi, voin käskeä MariaDB:tä
    ottamaan käyttöön lisäosia. Tämä lisäosa
  • 36:36 - 36:42
    on nimeltään "ha_connect". Se on yksi
    lisäosista, jotka sisältyvät MariaDB:een.
  • 36:42 - 36:50
    Tämä on erittäin voimallinen MySQL-
    tallennusajuri. Ja nyt näytän mitä
  • 36:50 - 36:57
    sillä voi tehdä. Seuraavaksi, luon
    tietokantataulun nimeltä "pwn".
  • 36:57 - 37:03
    Käytän tätä tallennusajuria "ha_connect"
    ja käsken sitä luomaan tiedoston, jonka
  • 37:03 - 37:09
    nimi on "pwn.dll" ja tallentamaan sen
    lisäosat sisältävään hakemistoon.
  • 37:09 - 37:14
    Mikään ei estä meitä tekemästä näin.
    Se on yksi erikoistoiminnallisuuksista
  • 37:14 - 37:20
    tässä tallennusajurissa. Voin sanoa tämän
    taulun vastaavan nyt tuota tiedostoa
  • 37:20 - 37:25
    tiedostojärjestelmässä. Tämä tiedosto on
    kuitenkin vielä tyhjä, koska taulu on
  • 37:25 - 37:31
    tyhjä. Mutta koska tämä on tietokanta,
    me voimme ajaa "INSERT INTO" -komentoja
  • 37:31 - 37:36
    ja tallentaa siihen mitä dataa haluamme,
    esimerkiksi haitta-DLL:n. Voin vain
  • 37:36 - 37:41
    lisätä sen tauluun käyttäen "INSERT
    INTO" -komentoa ja se kirjoitetaan
  • 37:41 - 37:49
    suoraan haitta-DLL:äämme "pwn.dll":ään.
    Kun olen lopettanut kirjoittamisen,
  • 37:49 - 37:55
    käsken MariaDB:n ottaa tuo
    lisäämäni lisäosa käyttöönsä.
  • 37:55 - 38:00
    Lisäosan käyttöönotto tarkoittaa, että
    me suoritamme sen tallentamamme koodin
  • 38:00 - 38:05
    DLL-tiedostossa. Se tarkoittaa, että
    voimme ajaa etäältä omaa koodiamme.
  • 38:05 - 38:10
    Hälytysääni
    T: En edes aio kysyä mitä etäältä
  • 38:10 - 38:14
    suoritettavalla koodilla voi tehdä.
    J: No, sillä voi tehdä mitä vain. Se
  • 38:14 - 38:20
    tarkoittaa, että minulla ei ole esteitä.
    Täysi kontrolli ääntenlaskujärjestelmään.
  • 38:20 - 38:25
    En puhu ainoastaan tiedosta
    tietokannassa. Puhun koko
  • 38:25 - 38:30
    tietokoneesta, jota voin nyt kontrolloida
    ja manipuloida kuten haluan. Se on
  • 38:30 - 38:36
    mahdollista vain käyttämällä
    äänestysohjelmistoa verkon yli
  • 38:36 - 38:41
    käyttäen sen avoimia liittymiä. Ja
    nyt näytän teille miten helppoa on
  • 38:41 - 38:50
    suorittaa mielivaltainen ohjelma siellä.
    T: Tämä on ääntenlaskujärjestelmä.
  • 38:50 - 39:02
    Aloitetaan käynnistämällä ääntenlasku-
    ohjelmisto. Apache Tomcat -web-palvelin
  • 39:02 - 39:08
    ja MariaDB-tietokantapalvelin
    käynnistyvät. Lopulta siirrettävä
  • 39:08 - 39:15
    Firefox on käynnistynyt. Järjestelmä
    on toimintavalmis. Varovaisuutta,
  • 39:15 - 39:22
    hyökkääjä aktivoituu. Hänen koneensa
    on pahamainen "pci90309". Se käynnistää
  • 39:22 - 39:29
    välittömästi Python-hyökkäysskriptin
    "fun.py". Se ottaa yhteyden MariaDB-
  • 39:29 - 39:35
    palvelimeen käyttäjänä "root" ilman sala-
    sanaa ja lataa haitta-DLL:n lisäosana.
  • 39:35 - 39:42
    Kun lataus on ohi, haittakoodi
    ajetaan. Kuten voimme nähdä,
  • 39:42 - 39:48
    laskin käynnistyy eli etäältä tapahtuva
    suorittaminen oli onnistunut. Äänten-
  • 39:48 - 39:53
    laskentajärjestelmä on nyt
    hyökkääjän hallinnassa.
  • 39:53 - 40:01
    J: Sen jälkeen kun löysimme tuhoisat
    ongelmat ääntenlaskentajärjestelmässä,
  • 40:01 - 40:06
    kerroimme välittömästi toimittajalle.
    T: Ja he olivat erittäin ammattimaisia
  • 40:06 - 40:11
    ja vastasivat nopeasti sähköposteihimme.
    Pidimme työskentelystä heidän kanssaan
  • 40:11 - 40:18
    yhdessä ja kerroimme heille meidän
    tuloksistamme ja he olivat aina
  • 40:18 - 40:23
    myönteisiä. He myös
    suosittelivat korjauksia.
  • 40:23 - 40:28
    J: He kertoivat meille esimerkiksi, että
    ääntenlaskuohjelmaa pitäisi käyttää vain
  • 40:28 - 40:32
    turvatussa ympäristössä, kuten
    hallintoon kuuluvassa verkossa.
  • 40:32 - 40:36
    Me emme kuitenkaan usko,
    että se on hyvä ratkaisu.
  • 40:36 - 40:40
    T: Juuri näin. Me emme ole tyytyväisiä
    tähän ehdotukseen, koska meillä on silti
  • 40:40 - 40:45
    kaksi ongelmaa olemassa, vaikka ympäristö
    olisikin turvattu. Ensiksikin,
  • 40:45 - 40:50
    hallinnon PC voi silti olla haitta-
    ohjelmien saastuttama tai se voi olla
  • 40:50 - 40:56
    manipuloitu ennen kuin äänestys
    alkaa. Ja toisekseen, oli tämä
  • 40:56 - 41:00
    bugi rikkinäisessä pääsynhallinnassa,
    muistattehan? Ja vaikka meillä olisi
  • 41:00 - 41:05
    ollut turvattu ympäristö, tämä bugi
    olisi toiminut varmasti ja olisit
  • 41:05 - 41:09
    voinut tuhota kaiken datan tai
    avata vaalit uudelleen tai jotain
  • 41:09 - 41:12
    tälläistä.
    J: Olemme silti aika tyytyväisiä,
  • 41:12 - 41:18
    että he ottivat meidät vakavasti. He
    ovat jopa ilmoittaneet päivityksistä.
  • 41:18 - 41:23
    He kirjoittivat meille suunnittelevansa
    CSRF-todenteita sivuille, joilta löysimme
  • 41:23 - 41:28
    CSRF-haavoittuvaisuuksia. Joten
    se jo on hyvä askel oikeaan
  • 41:28 - 41:35
    suuntaan. Vedetään nyt yhteen mitä olemme
    tänään esittäneet. Ihan ensimmäiseksi,
  • 41:35 - 41:40
    löysimme useita ongelmallisia puolia
    konseptista ja sen käytännön
  • 41:40 - 41:45
    toteutuksesta. Ensimmäiseksi, koko
    äänestysjärjestelmä pyörii
  • 41:45 - 41:50
    epäluotettavissa järjestelmissä.
    Niitä on voitu manipuloida etukäteen.
  • 41:50 - 41:56
    Niissä voi olla haittaohjelmia
    tai ne eivät vain toimi oikein.
  • 41:56 - 42:01
    Jo se on erittäin ongelmallista,
    koska meillä ei ole luottamusta
  • 42:01 - 42:06
    näitä järjestelmiä kohtaan ja
    me käytämme niitä laskemaan
  • 42:06 - 42:12
    ääniä, laskemaan koko vaalitulosta.
    Ja lisänä tähän, että vaikka
  • 42:12 - 42:19
    käytetty ohjelmisto ja sitä ajava PC,
    olisivat turvatut, se ei tuo vielä
  • 42:19 - 42:25
    riittävää läpinäkyvyyttä. Sitä on
    erittäin hankala ymmärtää mitä softa
  • 42:25 - 42:31
    tarkalleen tekee ja miten. Joten en
    voi oikein ymmärtää miten se päätyy
  • 42:31 - 42:36
    tulokseensa. Pitäkää tämä mielessä, että
    meillä on melkein 600 ehdokasta ja useita
  • 42:36 - 42:42
    satoja lipukkeita, jotka pitää kaikki
    syöttää järjestelmään ja sitten
  • 42:42 - 42:48
    jotain magiaa tapahtuu ja se sylkäisee
    ulos tuloksensa. Ja sitten meidän vain
  • 42:48 - 42:53
    ottaa tulos. Koska se on mahdotonta
    tarkistaa, että laskettiinko jokainen
  • 42:53 - 42:58
    ääni oikein ja tapahtuiko siellä jotain
    outoa tai tapahtuiko siellä mitään
  • 42:58 - 43:01
    manipulaatiota.
    T: Ja tämä on myös mahdollista, koska me
  • 43:01 - 43:07
    löysimme paljon haavoittuvaa softaa ja ei
    vain järjestelmän turvallisuus ollut
  • 43:07 - 43:12
    kyseessä vaan oli myös täysin mahdollista
    manipuloida koko äänestystä useista
  • 43:12 - 43:20
    paikoista pitkin verkkoa. Ja tämä johtaa
    meidät päätelmään, että nämä vaalit ovat
  • 43:20 - 43:25
    suuressa vaarassa tällä teknologialla.
    J: Ja se on se syy miksi me haluamme
  • 43:25 - 43:31
    teidät vaalityöntekijöiksi. Mitä enemmän
    silmiä vaaleissa on, sitä turvallisemmat
  • 43:31 - 43:36
    niistä tulee. Ja jos olet kiinnostunut
    olemaan vaalityöntekijä, ota vain yhteys
  • 43:36 - 43:40
    paikallishallintoosi. He ovat aina
    hyvin tyytyväisiä kun saavat
  • 43:40 - 43:45
    vapaaehtoisia, jotka haluavat olla
    vaalityöntekijöitä. Perustuen omaan
  • 43:45 - 43:50
    kokemukseeni usemmalta vuodelta,
    se on myös hauskaa. Saat olla
  • 43:50 - 43:55
    yhteydessä moniin ihmisiin. Minä
    nautin siitä paljon ja voin vain
  • 43:55 - 44:01
    suositella sitä. Tämä on hyvä
    tapa jokaiselle tukea demokratiaa
  • 44:01 - 44:05
    omassa maassaan.
    T: Päättääksemme esityksemme, meille
  • 44:05 - 44:12
    selvisi tämän teknologian tietoturvan
    olevan huono ja ei siinä vielä kaikki.
  • 44:12 - 44:17
    J: Tämä oli vain jäävuoren huippu,
    koska katsoimme vain yhtä ainoaa
  • 44:17 - 44:22
    ratkaisua, joka on saatavilla äänten-
    laskentaan. Ja tämä oli myös erikois-
  • 44:22 - 44:28
    konfiguraatio. Mitä on vielä vaikeampaa
    nähdä, on se mitä tapahtuu kaiken sen
  • 44:28 - 44:35
    takana mitä tänään näimme, koska kun me
    otamme datan ulos ja viemme sen keskus-
  • 44:35 - 44:40
    hallintoon, jossa data luetaan sisään
    ja ladataan eteenpäin, mihin se kaikki
  • 44:40 - 44:45
    data menee? Missä se kaikilta
    äänestyspaikoilta kertyvä data
  • 44:45 - 44:50
    lasketaan yhteen? Me emme tiedä sitä
    vielä miten tämä toimii. Meillä ei ole
  • 44:50 - 44:54
    sitä ohjelmistoa tutkittavana.
    On siis paljon tehtävää
  • 44:54 - 44:59
    jäljellä siinä miten voisimme tarkistaa
    koko järjestelmän. Me otimme siitä vain
  • 44:59 - 45:04
    pienen palan ja se on vain tämä
    ääntenlaskujärjestelmä tässä.
  • 45:04 - 45:09
    T: Olimme hyvin järkyttyneitä siitä
    tiedosta, että ääntenlaskennan
  • 45:09 - 45:14
    siirtyminen tietokoneelle ei ole
    yleisesti tiedossa. Tästä syystä loimme
  • 45:14 - 45:20
    tämänpäiväisen esityksemme. Se on
    elintärkeä tieto demokratialle, että
  • 45:20 - 45:27
    käytössä on ohjelmisto ja että se ei
    ole erityisen turvallinen. Se oli
  • 45:27 - 45:34
    meille iso juttu tuoda
    tämä tieto ihmisille.
  • 45:34 - 45:38
    J: Yksi juttu on vielä se, että kaikki
    mitä tänään näimme, on täysin laillista,
  • 45:38 - 45:44
    koska ainakaan Baijerissa meillä ei ole
    mitään sääntöjä tai lakeja sitä vastaan,
  • 45:44 - 45:50
    että käytämme turvattomia järjestelmiä,
    ääntenlaskentaohjemistoja. Kuten näimme
  • 45:50 - 45:56
    alussa, on vain karkeat ohjeistukset,
    jotka sanovat, että tietokoneita voidaan
  • 45:56 - 46:00
    käyttää vain ääntenlaskentaan. Mutta me
    tarvitsemme tiukemmat ohjeistukset, koska
  • 46:00 - 46:07
    se mitä näimme tänään, ei voi jatkua.
    Muissa osavaltioissa Saksassa on
  • 46:07 - 46:12
    joitakin, sanotaan, ohjeistuksia
    tai jopa sertifiointiprosesseja
  • 46:12 - 46:18
    tälläiselle digitaaliselle ohjelmistolle.
    Useimmissa tuntemissani osavaltioissa ei
  • 46:18 - 46:24
    ole mitään sääntöjä. Tämän ei pidä
    jatkua seuraavia vuosia näin.
  • 46:24 - 46:30
    T: Lisäksi, lopulta, ennen kuin
    mikään ääntenlaskentaohjelmisto voi
  • 46:30 - 46:37
    mennä tuotantoon, riippumattomat testit
    pitäisivät olla saatavilla kaikille,
  • 46:37 - 46:42
    jotta voidaan todistaa ohjelmiston
    olevan turvallinen ja että se tekee
  • 46:42 - 46:47
    sitä meille mitä on luvattu. Koska se
    vaikuttaa suoraan demokratiaamme. Ja jos
  • 46:47 - 46:52
    ohjelmistoa on manipuloitu, se manipuloi
    äänestystämme, vaalejamme ja meidän
  • 46:52 - 46:56
    demokratiaamme. Lopuksi jätämme
    teille mietittäväksi kaksi kysymystä:
  • 46:56 - 47:01
    T: Paljonko digitaalista tukea vaaditaan?
    J: Ja paljonko on siedettävä?
  • 47:01 - 47:19
    Hiljaisuus
  • 47:19 - 47:26
    Herald: Paljon kiitoksia kiinnostavasta
    esityksestänne, Johannes ja Tobias.
  • 47:26 - 47:30
    Ja paljon kiitoksia työstänne aiheen
    parissa. Toivottavasti teillä on aikaa
  • 47:30 - 47:36
    kysymyksille. Itse asiassa, meillä
    on aika monia kysymyksiä.
  • 47:36 - 47:39
    J: Toki.
    H: Hyvä homma. Ensimmäinen nettikysymys:
  • 47:39 - 47:45
    "Onko epäilystä, että näitä
    haavoittuvaisuuksia olisi
  • 47:45 - 47:49
    käytetty aktiivisesti?"
    J: No, sitä on vaikea sanoa. Ainakaan
  • 47:49 - 47:58
    siinä kylässä, josta tulen, en
    havainnut mitään erikoisia tapahtumia.
  • 47:58 - 48:05
    Minulla ei kuitenkaan ole kokonaiskuvaa
    Baijerista, joten se on aika hankala
  • 48:05 - 48:10
    sanoa. Luulen, että on mahdoton sanoa,
    oliko minkäänlaista manipulaatiota.
  • 48:10 - 48:15
    Valitettavasti emme
    voi sanoa niin.
  • 48:15 - 48:20
    T: Lisäksi, me olimme vain yhdessä
    paikassa, joten ei meillä ole
  • 48:20 - 48:25
    kokonaiskuvaa yhteensopimattomista
    numeroista tai muista tapahtumista,
  • 48:25 - 48:31
    mutta me emme nähneet,
    koska olimme vain yhdessä
  • 48:31 - 48:36
    paikassa, yhdellä
    äänestyspisteellä.
  • 48:36 - 48:41
    H: OK, kiitos vastauksista. "Uskotteko,
    että se olisi mahdollista, että
  • 48:41 - 48:46
    digitaalinen äänestyslipuke
    voisi olla yhtä turvallinen kuin
  • 48:46 - 48:52
    paperinen?"
    J: No, minun mielestäni se ei ole
  • 48:52 - 48:57
    mahdollista jos haluat saman
    avoimuuden, joka meillä on
  • 48:57 - 49:02
    paperipohjaisissa äänestysjärjestelmissä.
    Koska kun meillä on paperiäänestys, me
  • 49:02 - 49:07
    voimme mennä äänestyshuoneeseen ja nähdä
    mitä siellä tapahtuu. Me voimme nähdä
  • 49:07 - 49:13
    lipukkeet, jotka jätetään. Lipukkeet,
    jotka otetaan uurnasta. Laskennan,
  • 49:13 - 49:18
    yhteenlaskennan. Minä voin yrittää
    selvittää mitä siellä tapahtuu. Voin
  • 49:18 - 49:24
    katsoa sitä, ymmärtää mitä ihmiset
    tekevät siellä. Mutta sillä hetkellä
  • 49:24 - 49:30
    kun meillä on vain digitaalinen äänestys,
    en voi selvitttää sitä tekeekö tietokone
  • 49:30 - 49:34
    mitä sen pitää, onko siellä
    manipulointia. Joten avoimuuden
  • 49:34 - 49:41
    suhteen en usko, että on mahdollista
    tehdä sama, samalla tavalla kuin
  • 49:41 - 49:48
    paperilipukkeiden kanssa, esimerkiksi.
    T: Minun pitää lisätä tähän, että jos
  • 49:48 - 49:54
    siellä olisi mahdollisuus saada
    jäljitettävyys ja näkyvyys, jolla
  • 49:54 - 50:00
    saat aina nähtäväksesi miten tulokset
    syntyvät kustakin paikasta, jos ne
  • 50:00 - 50:07
    olisi allekirjoitettu avoimesti, se voisi
    olla mahdollista joku päivä. Mutta ei
  • 50:07 - 50:16
    tälläisellä ohjelmistolla jonka näimme.
    H: OK, kiitos. "Tiedättekö sattumalta
  • 50:16 - 50:22
    mitkä osavaltiot Saksassa
    käyttävät OK.VOTE:a?"
  • 50:22 - 50:29
    T: Emme osaa sanoa, mitkä osavaltiot
    käyttävät sitä aktiivisesti, koska me
  • 50:29 - 50:34
    olimme mukana vain Münchenin ja Baijerin
    vaaleissa. Mutta voimme kertoa, että
  • 50:34 - 50:40
    lähdekoodissa on viitteitä, että se
    olisi käytössä myös esimerkiksi
  • 50:40 - 50:47
    Hampurissa, Bremenissä, Hessenissä ja
    Rheinland-Pfalzissa. Mutta emme tiedä
  • 50:47 - 50:54
    onko se käytössä siellä, suunnitellaanko
    sen käyttöönottoa vai onko sitä käytetty
  • 50:54 - 50:59
    aikaisemmissa vaaleissa ja sittemmin
    lopetettu käyttämästä. Me emme oikein
  • 50:59 - 51:03
    tiedä tästä tarkalleen.
    H: OK, ehkä me voimme pitäytyä hetken
  • 51:03 - 51:11
    vaalityöläisen tehtävässä.
    "Manuaalinen datan syöttäminen
  • 51:11 - 51:17
    järjestelmään... Onko siihen prosessi?
    Onko teillä ajatusta riskeistä, joita
  • 51:17 - 51:21
    tässä on?"
    J: Kyllä. Pohjimmiltaan siinä on
  • 51:21 - 51:26
    ainakin kaksi tai kolme ihmistä istumassa
    jokaisella koneella ja sitten he
  • 51:26 - 51:31
    syöttävät lipukkeet. Ihmiset tarkastavat
    toistensa tekemiset, että jokainen
  • 51:31 - 51:36
    lipuke syötetään oikein. Yhdellä
    ihmisellä on lipuke edessään ja
  • 51:36 - 51:42
    toinen lukee äänet, jotka
    ensimmäinen syöttää sisään.
  • 51:42 - 51:48
    Ja sitten he tekevät ristiintarkastuksen,
    jotta vaalitulosten sisäänsyöttämisessä
  • 51:48 - 51:54
    koneelle ei ole tullut virheitä.
    H: OK. Kiitos kun selvensitte asiaa.
  • 51:54 - 52:00
    Joku kysyy: "Kuinka järjestelmä on
    kytketty Internetiin tai johonkin
  • 52:00 - 52:06
    muuhun verkkoon? Onko
    oikein ymmärretty, että
  • 52:06 - 52:10
    tulokset kirjoitetaan fyysiselle,
    tallennusmedialle, jolla tulokset
  • 52:10 - 52:16
    siirretään? Fyysisesti tunnusteltavalle...
    Miksi välittää siitä mitä Windowsia
  • 52:16 - 52:20
    tai muuta niissä koneissa
    ajetaan? Onko tämä oikea
  • 52:20 - 52:25
    ymmärrys?"
    J: No, ongelma tässä on se, että
  • 52:25 - 52:30
    se riippuu paikallishallinnosta, että
    miten he järjestelmä laitetaan pystyyn.
  • 52:30 - 52:36
    Luin myös tästä keskustelusta, että
    joku kirjoitti heidän äänestys-
  • 52:36 - 52:45
    ohjelmistollaan olleen erittäin
    rajattu verkkoyhteys. Se tietokone ei
  • 52:45 - 52:50
    ollut yhteydessä Internetiin. Se riippuu
    pitkälti hallinnosta ja siitä, mitä
  • 52:50 - 52:55
    verkkoa siellä käytetään. Joten
    on täysin mahdollista, että
  • 52:55 - 53:00
    tietokoneilla on Internet-yhteys,
    koska ei ole olemassa ohjeistusta
  • 53:00 - 53:06
    siitä, miten tietokoneet voi asentaa.
    Joten, en voi täysin sulkea pois sitä,
  • 53:06 - 53:11
    että joku esimerkiksi ottaa
    langattoman verkkoyhteyden
  • 53:11 - 53:17
    turvaamattomaan tukiasemaan ja on
    sitten verkossa. On hankalaa sanoa tästä,
  • 53:17 - 53:23
    mutta en voi sulkea pois mahdollisuutta.
    T: Laajentaakseni vastausta, me jopa
  • 53:23 - 53:27
    yritimme selvittää, onko ohjelmistossa
    suojausta, joka tarkastaisi onko
  • 53:27 - 53:31
    Internet-yhteys olemassa ja kieltäisi
    äänestysjärjestelmän käytön. Mutta
  • 53:31 - 53:36
    sellaista ei ollut, tai ainakaan emme
    löytäneet sitä. Joten vaikka hallintoa
  • 53:36 - 53:44
    ei olisi ohjeistettu, näiden PC:iden
    ei pitäisi olla yhteydessä verkkoon. Ei
  • 53:44 - 53:48
    ole turvamekanismia, joka tarkastaisi
    onko näin ja pysäyttäisi sen. Tai edes
  • 53:48 - 53:52
    varoittaisi siitä, että kone on verkossa
    ja pitäisi kytkeytyä irti Internetistä
  • 53:52 - 54:00
    ennen kuin laskenta alkaa.
    M: Mielenkiintoista. OK. Meillä on
  • 54:00 - 54:04
    viesti IRC:stä henkilöltä joka on
    työskennellyt juuri tämän ohjelmiston
  • 54:04 - 54:10
    parissa demomoodissa, tietenkin.
    Ja kysymys, joka hänellä on, kuuluu:
  • 54:10 - 54:18
    "Huomasitteko mahdollisuutta syöttää
    negatiivisia ääniä ehdokkaalle?
  • 54:18 - 54:26
    Esimerkiksi kaksi miinusääntä?"
    J: No, sitä on vaikea sanoa. Minä
  • 54:26 - 54:31
    ajattelin tätä, että se onko
    se mahdollista. Ehkä manipuloimalla
  • 54:31 - 54:37
    tietokantaa suoraan. En ole täysin
    varma. En ole varma, kokeilinko
  • 54:37 - 54:44
    tätä. Mutta kuitenkin kun
    saan pääsyn tietokantaan,
  • 54:44 - 54:50
    se on täysin mahdollista manipuloida
    mitä vain. Joten, me voisimme kokeilla
  • 54:50 - 54:58
    tätä uudelleen. En kuitenkaan usko, että
    se juuri muuttaa lopputulostamme. Se on
  • 54:58 - 55:03
    mielenkiintoinen kysymys, johon en voi
    vastata juuri nyt. Mutta, Tobi, en ole
  • 55:03 - 55:10
    varma, kokeilitko sinä tälläistä?
    T: Kokeilimme muuttaa jo annettuja
  • 55:10 - 55:17
    ääniä, mutta en usko, että tuo oli
    mahdollista. Mutta, kuten näytit
  • 55:17 - 55:23
    siirtäessäsi datan keskuskoneelle,
    äänet, jotka siellä olivat jo,
  • 55:23 - 55:28
    mahdollisesti hyökkääjän toimesta,
    jättäisivät huomioimatta uudet äänet.
  • 55:28 - 55:34
    Tämä varmastikin korvaisi datan ja nuo
    äänet, mutta web-käyttöliittymässä
  • 55:34 - 55:39
    en usko tuon olevan mahdollista. Mutta
    me löysimme tarpeeksi haavoittuvaisuuksia
  • 55:39 - 55:44
    tietokantaan pääsyssä, jotta voisit
    yrittää halutessasi sitä kautta.
  • 55:44 - 55:51
    H: OK, kiitos selityksestänne. Ihan
    puhtaasti mielenkiiinnosta, ihmiset
  • 55:51 - 55:56
    kysyvät: "Kuinka pääsitte käsiksi
    ohjelmistoon analysoidaksenne sitä?"
  • 55:56 - 56:01
    J: No, tämä on hyvä kysymys,
    koska siihen liittyy hyvä tarina.
  • 56:01 - 56:06
    Olin vaalityöntekijä ja autoin
    pistämään järjestelmää pystyyn.
  • 56:06 - 56:12
    Annoin IT-tukea iltaisin. Ja jossain
    vaiheessa yritimme yhdistää tuloksiamme.
  • 56:12 - 56:17
    Me otimme tulokset ulos yhdeltä koneelta
    ja siirsimme ne toiselle koneelle.
  • 56:17 - 56:22
    Mutta sisäänluku keskeytyi, koska
    siellä ohjelmistossa oli joku
  • 56:22 - 56:28
    keinotekoinen rajoitus. Tiedostojen
    ollessa yli 10 megatavua, niitä ei
  • 56:28 - 56:34
    lukea enää sisään. Ja tämä tapahtuu
    aika pian, muutamien satojen äänten
  • 56:34 - 56:38
    jälkeen. Muutamien satojen lipukkeiden
    jälkeen sisäänluku ei enää toimi.
  • 56:38 - 56:42
    Katsoin tiedostoa ja se oli pelkkä
    JSON-tiedosto, paljon tyhjämerkkejä.
  • 56:42 - 56:47
    Kopioin kaiken koneelleni
    korjatakseni asian. Myöhemmin
  • 56:47 - 56:51
    ohjelmistovalmistaja julkaisi
    korjauksen. Siinä vaiheessa minulla
  • 56:51 - 56:56
    oli ohjelmisto koneellani, koska
    halusin korjata nämä vaalit.
  • 56:56 - 57:00
    Oli myöhäinen ilta ja olin palannut
    kotiin, huomanut, että minulla oli
  • 57:00 - 57:07
    yhä se ohjelmisto koneellani. Katsoin
    sitä. Joten se oli ihan sattumaa.
  • 57:07 - 57:12
    Yritin korjata jotain, otin ohjelmiston
    koneelleni ja sitten se oli valmiina
  • 57:12 - 57:18
    analysoitavaksi, jopa vähän
    dataakin. Tiesin miten se toimii
  • 57:18 - 57:24
    käytännössä. Ja, kyllä, jos joku
    haluaisi pääsyn siihen ohjelmistoon,
  • 57:24 - 57:29
    se olisi aika helppoa, koska he voisivat
    vain palauttaa poistetun datan joltain
  • 57:29 - 57:33
    koulussa olevalta koneelta.
    Ehkä joku ei edes poista sitä
  • 57:33 - 57:38
    äänestysohjelmistoa koulujensa koneilta,
    tai ehkä joku voisi vain varastaa
  • 57:38 - 57:43
    yhden niistä USB-muisteista, joita
    oli käytetty asennuksiin. En edes
  • 57:43 - 57:54
    usko, että sitä huomattaisiin.
    H: Kiinnostavaa, todellakin. Mainitsitte
  • 57:54 - 57:59
    esityksessänne, että ohjelmisto oli
    BSI:n sertifioima. Että ne väittävät
  • 57:59 - 58:03
    Open Web Application Security Projectin
    sertifioineen sen. Mutta kuinka näin
  • 58:03 - 58:08
    rikkinäinen järjestelmä voi olla näiden
    tahojen sertifioima alun perin? Mikä on
  • 58:08 - 58:12
    mennyt pieleen sertifiointiprosessissa?
    Tämä siis tapahtui. Tarkoitan, että miksi
  • 58:12 - 58:19
    ei käyttää sertifioitua... Miksi me
    sertifioimme mitään alun perinkään, jos
  • 58:19 - 58:24
    se on sertifioitu näin rikkinäisenä?
    T: Luulen, että ensimmäiseksi - kuten
  • 58:24 - 58:28
    olemme maininneet esityksessämme -
    ei ole olemassa laillisia vaatimuksia.
  • 58:28 - 58:33
    Et tarvitse sertifiointia sille, että
    ohjelmistoa voi käyttää vaaleissa,
  • 58:33 - 58:38
    Saksassa tai useimmissa paikoissa
    Saksassa. Ja lisäksi, tämä
  • 58:38 - 58:46
    kuvakaappaus, jota näytimme koskien
    OWASP:ia ja BSI:tä, oli vain AKDB:n
  • 58:46 - 58:52
    markkinointimateriaalia. En usko, että
    siinä oli oikeaa sertifiointia mukana.
  • 58:52 - 58:58
    Me emme tiedä, onko BSI ikinä nähnyt tätä
    ohjelmistoa vai ovatko he vain laittaneet
  • 58:58 - 59:03
    sinne, sanoneet BSI:n sertifioineen sen
    tai BSI:n standardien olleen mielessä.
  • 59:03 - 59:07
    Heillä on jo "IT Grundschutz". Ehkä
    he ovat yrittäneet implementoida sitä
  • 59:07 - 59:15
    tämän järjestelmäarkkitehtuurin jälkeen,
    mutta BSI ei ole tarkastanut sitä. En
  • 59:15 - 59:19
    usko, että ohjelmistolla
    on oikeaa sertifiointia.
  • 59:19 - 59:23
    J: Lisään vain muutaman yksityiskohdan
    tähän. Se ei ole oikeasti sertifiointi.
  • 59:23 - 59:29
    He vain sanovat, että seuraavat BSI:n ja
    OWASP:in ohjeistuksia. Luulen, että se
  • 59:29 - 59:33
    oli myös näin sanoitettu heidän
    sivuillaan. Ei ole oikeaa sertifiointia
  • 59:33 - 59:39
    tämän takana, toistaiseksi.
    H: Kiitos vastauksestanne. "Tiedättekö
  • 59:39 - 59:46
    sattumalta, kuinka kunnat
    julkistavat vaalitulokset?"
  • 59:46 - 59:54
    J: En tiedä yksityiskohtaisesti miten se
    tapahtuu. Kun me luovutamme tuloksemme,
  • 59:54 - 60:00
    ne siirretään toiseen ohjelmistoon.
    Ja sitä pidemmälle en ole
  • 60:00 - 60:06
    nähnyt. Ne päätyvät
    tietojärjestelmään ja ne siirretään
  • 60:06 - 60:10
    sähköisesti. Siinä luodaan aluksi
    alustava tiedosto ja lopulta
  • 60:10 - 60:16
    siitä luodaan lopulliset tulokset.
    En kuitenkaan tiedä, miten se
  • 60:16 - 60:20
    toimii, mutta äänestystulokset, jotka
    luodaan OK.VOTE:lla menevät varmasti
  • 60:20 - 60:29
    lopulliseen tulokseen. Ehkä
    välissä on joku paperiin perustuva
  • 60:29 - 60:33
    toimintatapa. En todella
    tiedä, jos he käyttävät dataa
  • 60:33 - 60:38
    koneella vai dataa paperilla.
    Mutta se ei loppupeleissä
  • 60:38 - 60:46
    muuta paljoa.
    H: OK, loppumetreillä ollaan.
  • 60:46 - 60:51
    Viimeinen kysymys on: "Kokemuksienne
    perusteella, kuinka käytännöllistä tai
  • 60:51 - 60:56
    kallista on laskea äänet uudelleen käsin,
    ja näittekö tälläistä tapahtuvan?"
  • 60:56 - 61:01
    T: Luulen, että tämä vaihtelee
    äänestyksestä toiseen ja kaupungista
  • 61:01 - 61:07
    toiseen. Jos kyseessä on pieni
    kylä, äänet voisi laskea helposti
  • 61:07 - 61:13
    uudelleen. Mutta jos kyseessä on iso
    kaupunki, kuten esimerkiksi München
  • 61:13 - 61:21
    miljoonine äänineen, ja ne
    pitäisi laskea ne uudelleen,
  • 61:21 - 61:26
    se viivästyttäisi ääntenlaskua tai
    tuloksia aika paljon. Ja sillä voisi
  • 61:26 - 61:31
    olla huonoja vaikutuksia, jos sattuisi
    käymään, että ohjelmistossa on tapahtunut
  • 61:31 - 61:37
    manipulointia ja kaikki äänet
    jouduttaisiin laskemaan käsin uudelleen.
  • 61:37 - 61:42
    J: Käsin laskeminen olisi todellakin
    erittäin kova työ, koska niissä
  • 61:42 - 61:49
    lipukkeissa on jopa 70 ääntä kussakin.
    Niiden yhteenlaskeminen on virhealtista
  • 61:49 - 61:55
    jos se tehdään käsin. Se on vaikeaa.
    Ja minun tietääkseni, sitä ei ole
  • 61:55 - 62:01
    tehty yleisesti vaalien
    jälkeen. Yritin etsiä
  • 62:01 - 62:07
    Internetistä jotain tästä. Löysin
    vain PDF-tiedoston, jossa sanottiin,
  • 62:07 - 62:15
    ettei kaikkien lipukkeiden ja tuloksen
    uudelleenlaskeminen ole tehtävissä.
  • 62:15 - 62:22
    Joten tehdään vain ylätason tarkastus:
    onko protokolla suoritettu loppuun? Entä
  • 62:22 - 62:27
    erikoisäänet, ne jotka eivät
    olleet ihan selkeitä? Ei niitä
  • 62:27 - 62:32
    kaikkia lipukkeita lasketa uudelleen,
    sen perusteella mitä ymmärrän.
  • 62:32 - 62:38
    H: OK. Kiitos todella paljon, Tobias
    ja Johannes vastauksistanne.
  • 62:38 - 62:42
    Kiitos uudelleen esityksestänne.
    J: Kiitos.
  • 62:42 - 62:42
    H: Kiitos.
  • 62:42 - 63:10
    rC3-tunnusmusiikkia
  • 63:10 - 63:19
    Subtitles created by c3subtitles.de
    in the year 2020. Join, and help us!
  • 63:19 - 63:22
    Translated by Markus Aurala
    (ITKST56 course assignment at JYU.FI)
Title:
#rC3 - Saksan vaalien hakkerointi
Description:

https://media.ccc.de/v/rc3-11440-hacking_german_elections

Turvaton sähköinen ääntenlaskenta - kuinka se palasi ja miksi et edes tiedä siitä

more » « less
Video Language:
English
Duration:
01:03:23

Finnish subtitles

Revisions