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