[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:18.00,0:00:24.00,Default,,0000,0000,0000,,Translated by Matti Lassila (ITKST56 course assignment at JYU.FI) Vuonna 2001 järjestetystä 28C3-tapahtumasta alkaen olemme järjestäneet vähintään yhden CTF-haasteen, Dialogue: 0,0:00:24.00,0:00:32.00,Default,,0000,0000,0000,,ja kolme seuraavaa puhujaa ovat olleet mukana järjestämässä niitä. Dialogue: 0,0:00:32.00,0:00:42.00,Default,,0000,0000,0000,,Toivotamme tervetulleeksi suosionosoituksin Andyn, Zahilun ja Marleaun Dialogue: 0,0:00:42.00,0:00:48.00,Default,,0000,0000,0000,,Tervedys kaikille ja tervetuloa meidän puolestamme Dialogue: 0,0:00:48.00,0:00:58.00,Default,,0000,0000,0000,,Mitä CTF tarkoittaa? Tässä puheessa kerromme perusteista: mitä CTF on, kuinka pelata sitä ja mitä eri pelitapoja on olemassa. Dialogue: 0,0:00:58.00,0:01:02.00,Default,,0000,0000,0000,,Tämä on esityksemme ensimmäinen osa, hieman johdantoa asiaan. Dialogue: 0,0:01:02.00,0:01:08.00,Default,,0000,0000,0000,,Sen jälkeen esittelemme kolme haastetta jotka valmistelimme tämän vuoden CTF-kisaa varten Dialogue: 0,0:01:08.00,0:01:12.00,Default,,0000,0000,0000,,joten jos puheemme myötä herää kiinnostus CTF-kisaamiseen Dialogue: 0,0:01:12.00,0:01:18.00,Default,,0000,0000,0000,,on jokin käsitys mitä odottaa Dialogue: 0,0:01:18.00,0:01:23.00,Default,,0000,0000,0000,,Muutama sana meistä. Joukkueemme nimi on Eat Sleep Pwn Repeat. Dialogue: 0,0:01:23.00,0:01:27.00,Default,,0000,0000,0000,,tai lyhennettynä ESPR. Olemme CTF-joukkue. Dialogue: 0,0:01:27.00,0:01:34.00,Default,,0000,0000,0000,,En oikeastaan tiedä kauon joukkueemme on ollut olemassa, kolmen neljän vuoden luokkaa; mahdollisesti jopa viisi. Dialogue: 0,0:01:34.00,0:01:40.00,Default,,0000,0000,0000,,Olemme joukko henkilöitä jotka ovat vapaa-ajallaan kiinnustuneita tietoturvallisuudesta. Dialogue: 0,0:01:40.00,0:01:48.00,Default,,0000,0000,0000,,Tutustuimme toisiimme hackerspacessa tai yliopistolla ja me vain ryhdyimme pelaamaan CTF-kisoja ja kaikki osallistuivat Dialogue: 0,0:01:48.00,0:01:54.00,Default,,0000,0000,0000,,Näin ryhmämme sai alkunsa. Dialogue: 0,0:01:54.00,0:02:00.00,Default,,0000,0000,0000,,Siinäpä se. Olen nyt puhunut CTF-kisoista Dialogue: 0,0:02:00.00,0:02:07.00,Default,,0000,0000,0000,,mutta on mahdollista että kaikki eivät vielä tiedä mikä CTF on. CTF on lyhenne sanoista Capture the Flag, tämä ei kuitenkaan Dialogue: 0,0:02:07.00,0:02:11.00,Default,,0000,0000,0000,,tarkoita samaa asiaa kuin samanniminen Unreal Touramentin pelimoodi. Dialogue: 0,0:02:11.00,0:02:18.00,Default,,0000,0000,0000,,CTF on joukkuekilpailu Dialogue: 0,0:02:18.00,0:02:25.00,Default,,0000,0000,0000,,jossa joukkueen ratkaisevat tehtäviä jotka jollain tavalla liittyvät tietoturvaan Dialogue: 0,0:02:25.00,0:02:33.00,Default,,0000,0000,0000,,CTF-kisaamiseen on kaksi päätapaa, joista on olemassa variaatioita. Dialogue: 0,0:02:33.00,0:02:40.00,Default,,0000,0000,0000,,Ensimmäinen on hyökkäys ja puolustus -pelitapa ja toinen Jeopardy-pelitapa, josta kerrotaan tarkemmin seuraavilla esityskalvoilla. Dialogue: 0,0:02:40.00,0:02:50.00,Default,,0000,0000,0000,,Vuosien mittaan CTF-pelaajayhteisö on kasvanut valtavasti. Kun me aloitimme, CTF-kisoja oli vuodessa oli vain kourallinen. Dialogue: 0,0:02:50.00,0:02:54.00,Default,,0000,0000,0000,,Nyt jos käy katsomassa kuinka monia CTF-tapahtumia on olemassa Dialogue: 0,0:02:54.00,0:03:01.00,Default,,0000,0000,0000,,niitä on miltei joka viikonloppu, yleensä toisten CTF-joukkueiden järjestämänä Dialogue: 0,0:03:01.00,0:03:05.00,Default,,0000,0000,0000,,joten tarjolla on paljon tehtävää Dialogue: 0,0:03:05.00,0:03:10.00,Default,,0000,0000,0000,,Käytännöllisesti katsoen kaikki CTF-tapahtumat ovat pelaajayhteisön järjestämiä Dialogue: 0,0:03:10.00,0:03:14.00,Default,,0000,0000,0000,,halukkaiden on melko helppo päästä tähän mukaan. Dialogue: 0,0:03:14.00,0:03:22.00,Default,,0000,0000,0000,,Esityksemme tavoite onkin juuri tämän. Aikaisemmin mainitsin Jeopardy-tyylisen CTF-pelitavan. Dialogue: 0,0:03:22.00,0:03:27.00,Default,,0000,0000,0000,,Se on helpoin pelitavoista Dialogue: 0,0:03:27.00,0:03:34.00,Default,,0000,0000,0000,,ja se on myös helpoin järjestää, sillä se muistuttaa Jeopardy TV-ohjelmaa Dialogue: 0,0:03:34.00,0:03:44.00,Default,,0000,0000,0000,,Se on yhdysvaltalainen TV-visailu, jossa on eri kategorioihin ja vaikeusasteisiin kuuluvia tehtäviä. Dialogue: 0,0:03:44.00,0:03:50.00,Default,,0000,0000,0000,,Visailussa myönnetään pisteitä tehtävien vaikeusasteen mukaan Dialogue: 0,0:03:50.00,0:03:56.00,Default,,0000,0000,0000,,Pisteiden määrä voi olla kiinteä Dialogue: 0,0:03:56.00,0:04:05.00,Default,,0000,0000,0000,,Esimerkiksi tehtävästä voi saada 100, 200 300, 400 tai 500 pistettä vaikeusasteen mukaan. Nykyään usein käytetään dynaaminen pisteytystä Dialogue: 0,0:04:05.00,0:04:14.00,Default,,0000,0000,0000,,jolloin mitä useampi henkilö ratkaisee tehtävän, sitä vähemmän pisteitä tehtävästä saa Dialogue: 0,0:04:14.00,0:04:24.00,Default,,0000,0000,0000,,Etukäteen on melko vaikeaa määritellä kuinka paljon pisteitä mistäkin tehtävästä on syytä antaa. Dialogue: 0,0:04:24.00,0:04:29.00,Default,,0000,0000,0000,,CTF-pelaaminen on periaatteessa helppoa. Valitaan tehtävä ja yritetään ratkaista se. Dialogue: 0,0:04:29.00,0:04:39.00,Default,,0000,0000,0000,,Ratkaistu tehtävä ilmoitetaan verkon kautta. Tästä saadaan pisteitä ja tätä toistetaan, kunnes kaikki tehtävät on ratkaistu tai joukkue on ensimmäisellä sijalla Dialogue: 0,0:04:39.00,0:04:43.00,Default,,0000,0000,0000,,Pisteitä eniten kerännyt joukkue voittaa Dialogue: 0,0:04:43.00,0:04:52.00,Default,,0000,0000,0000,,Tasatilanteessa voittaa joukkue joka keräsi ensimmäisenä voittoon vaaditut pisteet Dialogue: 0,0:04:52.00,0:04:57.00,Default,,0000,0000,0000,,Tyypillisimmät tehtäväkategoriat Jeopardy-tyylisessä CTF-kisassa ovat Dialogue: 0,0:04:57.00,0:05:02.00,Default,,0000,0000,0000,,Haltuunotto (ownaaminen) joka on klassinen binääritasolla tehtävä hyökkäys Dialogue: 0,0:05:02.00,0:05:08.00,Default,,0000,0000,0000,,jossa hankitaan oikeus ajaa omaa koodia palvelimella Dialogue: 0,0:05:08.00,0:05:15.00,Default,,0000,0000,0000,,Crypto-haasteessa hyökätään huonosti suunniteltuja salaustoteutuksia Dialogue: 0,0:05:15.00,0:05:22.00,Default,,0000,0000,0000,,tai väärin käytettyjä salausalgoritmeja vastaan Dialogue: 0,0:05:22.00,0:05:29.00,Default,,0000,0000,0000,,tehtävässä voi olla tarkoituksena purkaa salaus tai luoda salausavaimn kopio Dialogue: 0,0:05:29.00,0:05:36.00,Default,,0000,0000,0000,,Web-haasteet ovat tavanomaisia, käytetään erilaisia verkkosovelluksia Dialogue: 0,0:05:36.00,0:05:41.00,Default,,0000,0000,0000,,sovelluksia jotka eroavat toteutustekniikoiltaan palvelin ja selaintoteutuksen osalta. Dialogue: 0,0:05:41.00,0:05:48.00,Default,,0000,0000,0000,,ESPR-joukkueessa meillä on tehtäväkategoria, jossa hyödynnetään selainhaavoittuvuuksia Dialogue: 0,0:05:48.00,0:05:53.00,Default,,0000,0000,0000,,mutta näissä ei oikeastaan ole kyse web-haavoittuvuuksista. Dialogue: 0,0:05:53.00,0:05:58.00,Default,,0000,0000,0000,,Takaisinmallinnushaasteessa tehtävänä voi olla selvittää mitä jokin sovellus tekee Dialogue: 0,0:05:58.00,0:06:07.00,Default,,0000,0000,0000,,esimerkiksi takaisinmallintaa sovelluksen tekemää laskentaa. Dialogue: 0,0:06:07.00,0:06:10.00,Default,,0000,0000,0000,,Seuraava pelimoodi on hyökkäys ja puolustus. Tämä on klassinen pelimoodi. Dialogue: 0,0:06:10.00,0:06:20.00,Default,,0000,0000,0000,,Näitä on vain muutama vuodessa sillä se on erittäin vaativa järjestää, koska toiminta tapahtuu aidossa palvelin- ja verkkoympäristössä. Dialogue: 0,0:06:20.00,0:06:29.00,Default,,0000,0000,0000,,Jokainen joukkue saa virtuaalikoneen joka käytännöllisesti katsoen on palvelin joka sisältää kilpailua varten suunnitellut ja konfiguroidut palvelut Dialogue: 0,0:06:29.00,0:06:38.00,Default,,0000,0000,0000,,Nämä virtuaalikoneet ovat yhteydessä toisiinsa VPN:n kautta eli lipuunryöstöön osallistuvien palvelimet ovat toistensa ulottuvulla. Dialogue: 0,0:06:38.00,0:06:46.00,Default,,0000,0000,0000,,Tavoitteena on hyökätä muiden palvelimille ja ladata dataa näiltä haavoittuvaiseksi konfiguroiduista palvelimilta. Dialogue: 0,0:06:46.00,0:06:52.00,Default,,0000,0000,0000,,Joukkue lähettää lataamansa datan pelipalvelimelle ja tästä myönnetään pisteitä. Dialogue: 0,0:06:52.00,0:06:59.00,Default,,0000,0000,0000,,Ja tietysti, jos käytössä olevaan koneeseen on täydet oikeudet, tehtävänä on hyökkäämisen lisäksi Dialogue: 0,0:06:59.00,0:07:03.00,Default,,0000,0000,0000,,korjata oman palvelimen haavoittuvuuksia ja tehdä muiden hyökkäykset vaikeammiksi Dialogue: 0,0:07:03.00,0:07:11.00,Default,,0000,0000,0000,,ja oman palvelimen palvelut on myös pidettävä ylhäällä sillä mikäli palvelut ovat alhaalla Dialogue: 0,0:07:11.00,0:07:16.00,Default,,0000,0000,0000,,muilta pelaajilta ladatuista tiedoista ei myönnetä pisteitä Dialogue: 0,0:07:16.00,0:07:21.00,Default,,0000,0000,0000,,Joten pelaajilla on kolme päätehtävää hoidettavana. Oman palvelimen tietoturvaa on suojausta on parannettava Dialogue: 0,0:07:21.00,0:07:30.00,Default,,0000,0000,0000,,On löydettävä muiden palvelimen suojauksesta heikkouksia ja osattava hyödyntää niitä ja on pidettävä oman palvelimen palvelut ylhäällä Dialogue: 0,0:07:30.00,0:07:35.00,Default,,0000,0000,0000,,Ja kuten sanoin pisteitä myönnetään pääkategorioissa hyökkäys, puolustus ja palvelun saatavuus. Dialogue: 0,0:07:35.00,0:07:43.00,Default,,0000,0000,0000,,Joko hyökätään toisten palveluita kohtaan tai puolustetaan omia palveluita ja pidetään ne verkossa. Dialogue: 0,0:07:43.00,0:07:50.00,Default,,0000,0000,0000,,Tätä pelataan useimmiten kierroksina. Joka kierros alkaa alkutilasta ja pisteitä myönnetään kierroksittain. Dialogue: 0,0:07:50.00,0:07:58.00,Default,,0000,0000,0000,,Viimeisen kierroksen jälkeen pisteet lasketaan yhteen ja eniten pisteitä kerännyt joukkue on voittaja. Dialogue: 0,0:07:58.00,0:08:03.00,Default,,0000,0000,0000,,Jokaisessa hyökkäys-puolustus -kisassa on eroja säännöissä Dialogue: 0,0:08:03.00,0:08:12.00,Default,,0000,0000,0000,,mutta nämä ovat pääperiaatteet. Tässä on tyypillinen hyökkäys-puolustus CTF-kisan tuloslista Dialogue: 0,0:08:12.00,0:08:18.00,Default,,0000,0000,0000,,Kyseessä ovat RUCTFE-kisan tulokset. Ja kyllä vaan, otin tuloslistan missä meidän joukkueemme on ensimmäisellä sijalla. Dialogue: 0,0:08:18.00,0:08:23.00,Default,,0000,0000,0000,,Eri sarakkeista näkee palvelimilla käynnissä olleet palvelut Dialogue: 0,0:08:23.00,0:08:25.00,Default,,0000,0000,0000,,Kuten esimerkiksi, Crash, Bin Dialogue: 0,0:08:25.00,0:08:35.00,Default,,0000,0000,0000,,Weather, Cartographer ja niin edelleen. Punaiset ja vihreät sarakkeet tarkoittavat että palvelu on alhaalla tai ylhäällä. Dialogue: 0,0:08:35.00,0:08:39.00,Default,,0000,0000,0000,,Taulukosta näkee keräämämme pisteet, palvelun ylhäälläoloprosentti. Dialogue: 0,0:08:39.00,0:08:43.00,Default,,0000,0000,0000,,Eli nähdään että palvelumme olivat jonkin aikaa alhaalla. Ja tästä näkee kuinka monta lippua hävisimme Dialogue: 0,0:08:43.00,0:08:49.00,Default,,0000,0000,0000,,Tämä on luku jokaisen sarakkeen oikeassa alareunassa, eli Crash-palvelulle -32. Dialogue: 0,0:08:49.00,0:08:54.00,Default,,0000,0000,0000,,Eli hävisimme 32 lippua ja keräsimme 15000 lippua- Dialogue: 0,0:08:54.00,0:09:05.00,Default,,0000,0000,0000,,FP muodostuu näistä kolmesta osa-alueesta ja tämän luvun perusteella joukkueet asetetaan järjestykseen. Dialogue: 0,0:09:05.00,0:09:11.00,Default,,0000,0000,0000,,Nyt teillä on käsitys kuinka pelata CTF:ää. Mutta miksi sitä kannattaa pelata, no se on miltei itsestäänselvää. Dialogue: 0,0:09:11.00,0:09:19.00,Default,,0000,0000,0000,,Pelaaminen on hienoa, koska silloin on tilaisuus hakkeroida eri asioita täysin laillisesti koska se kuuluu asiaan Dialogue: 0,0:09:19.00,0:09:24.00,Default,,0000,0000,0000,,CTF-pelaaminen on hauskaa ja on hauskaa oppia uusia asioita. Dialogue: 0,0:09:24.00,0:09:32.00,Default,,0000,0000,0000,,CTF-pelatessa oppii paljon uusia asioita, kuten myöskin pelin jälkeen Dialogue: 0,0:09:32.00,0:09:38.00,Default,,0000,0000,0000,,keskustellessa muiden joukkueiden kanssa ratkaisuista Dialogue: 0,0:09:38.00,0:09:49.00,Default,,0000,0000,0000,,Pelaamisen kautta syntyy myös uusia kaverisuhteita. Esimerkiksi, joukkueemme on kavereita puolalaisen Dracon Sector -joukkueen kanssa. Dialogue: 0,0:09:49.00,0:09:53.00,Default,,0000,0000,0000,,Aina kun tapaamme, otamme muutaman oluen ja juttelemme CTF-pelaamisesta ja kaikenlaisesta muusta. Dialogue: 0,0:09:53.00,0:09:59.00,Default,,0000,0000,0000,,Olemme tosiaan saaneet monia hyviä ystäviä peleistä. Ja saattaa olla että pelaamisen myötä pääsee myös matkustamaan eri puolilla maailmaa. Dialogue: 0,0:09:59.00,0:10:01.00,Default,,0000,0000,0000,,pelaamaan paikan päälle Dialogue: 0,0:10:01.00,0:10:12.00,Default,,0000,0000,0000,,Joissain tapauksissa on joitain ennakkokarsintoja jonka jälkeen voidaan osallistua kansainvälisiin kisoihin ja matkustaa paikan päälle pelaamaan ja mahdollisesti jopa voittamaan. Dialogue: 0,0:10:12.00,0:10:21.00,Default,,0000,0000,0000,,Nyt järjestämämme C3CTF on järjestetty joka vuosi 28C3-konferenssista (vuodesta 2011) alkaen. Dialogue: 0,0:10:21.00,0:10:28.00,Default,,0000,0000,0000,,Pyrkimyksemme on noudattaa tehtävissä kongressin teemaa. Dialogue: 0,0:10:28.00,0:10:36.00,Default,,0000,0000,0000,,Tämän vuoden CTF-kisassa meillä oli 636 joukkuetta jotka palauttivat vähintään yhden lipun. Dialogue: 0,0:10:36.00,0:10:40.00,Default,,0000,0000,0000,,Kyseessä oli pieni lippu, pienen pieni tehtävä, eräänlainen järkevyystesti. Dialogue: 0,0:10:40.00,0:10:48.00,Default,,0000,0000,0000,,Tarvitsi vain leikata ja liimata merkkijono tekstikenttään jotta näemme kuinka monta joukkuetta on mukana. Dialogue: 0,0:10:48.00,0:10:56.00,Default,,0000,0000,0000,,Joukkueita oli 636. Kisassa oli 30 tehtävää Dialogue: 0,0:10:56.00,0:11:02.00,Default,,0000,0000,0000,,ja joukkueet ratkaisivat tehtäviä yhteensä 1457 kertaa. Dialogue: 0,0:11:02.00,0:11:06.00,Default,,0000,0000,0000,,Tänä vuonna oli lisäksi muutamia vierailijoiden suunnittelemia tehtäviä Dialogue: 0,0:11:06.00,0:11:10.00,Default,,0000,0000,0000,,joten paljon kiitoksia Kokjo, Tethys, jvoisin, Qubasa ja joernchen Dialogue: 0,0:11:10.00,0:11:18.00,Default,,0000,0000,0000,,ideoista ja kokonaisista tehtävistä joita saatoimme käyttää Dialogue: 0,0:11:18.00,0:11:26.00,Default,,0000,0000,0000,,Kolme voittajaa ovat KJC+MHackeroni ensimmäisellä sijalla, toisena pasten ja kolmantena Dragon Sector. Dialogue: 0,0:11:26.00,0:11:44.00,Default,,0000,0000,0000,,Vielä kerran onnittelut heille. Koska vuosi vuodelta C3CTF on tullut aloittelijoiden kannalta vaikeammaksi Dialogue: 0,0:11:44.00,0:11:52.00,Default,,0000,0000,0000,,viime vuonna järjestimme ensimmäisen kerran Junior CTF -pelin jossa on helpompia tehtäviä jotka ovat lähempänä Dialogue: 0,0:11:52.00,0:11:59.00,Default,,0000,0000,0000,,sitä tehtävien vaikeustasoa kun me aloitimme. Dialogue: 0,0:11:59.00,0:12:09.00,Default,,0000,0000,0000,,Kisaan osallistui 520 joukkuetta, joten ei kovin montaa mutta he ratkaisivat pelin 33 haastetta kaikkiaan 2761 kertaa Dialogue: 0,0:12:09.00,0:12:15.00,Default,,0000,0000,0000,,eli pelissä ratkaistiin enemmän tehtäviä kuin C3CTF:ssä. Dialogue: 0,0:12:15.00,0:12:20.00,Default,,0000,0000,0000,,myös tässä CTF:ssä oli hienoja vierailijoiden suunnittelemia haasteita, joten kiitokset gehaxelt, domenukk, pr0me ja Trolldemorted Dialogue: 0,0:12:20.00,0:12:24.00,Default,,0000,0000,0000,,ja voittajat ovat mahtavia! Dialogue: 0,0:12:24.00,0:12:34.00,Default,,0000,0000,0000,,Voittajia ovat Made in MIM, toisella sijalla sno ja kolmantena ZenHack Dialogue: 0,0:12:34.00,0:12:42.00,Default,,0000,0000,0000,,Ja nyt kun tiedossa on mitä CTF-kisassa tapahtuu niin mitä tarvitse tehdä että pääsee pelaamaan? Dialogue: 0,0:12:42.00,0:12:48.00,Default,,0000,0000,0000,,Ensimmäinen asia jota tarvitaan on CTF-tapahtuma. On olemassa hieno verkkosivusto ctftime.org Dialogue: 0,0:12:48.00,0:12:52.00,Default,,0000,0000,0000,,sieltä näkee kaikki tulossa olevat CTF-tapahtumat Dialogue: 0,0:12:52.00,0:12:58.00,Default,,0000,0000,0000,,ja sivustolla voi rekisteröityä tulossa oleviin peliin. Kun peli käynnistyy, pääsee mukaan. Mitä taitoihin tulee Dialogue: 0,0:12:58.00,0:13:03.00,Default,,0000,0000,0000,,niitä ei tarvitse kovin paljon. Tarvitsee kuitenkin osata ohjelmoida Dialogue: 0,0:13:03.00,0:13:06.00,Default,,0000,0000,0000,,Jonkin skriptauskielen osaaminen on tarpeen, sitä tarvitaan työkaluksi Dialogue: 0,0:13:06.00,0:13:15.00,Default,,0000,0000,0000,,esimerkiksi jonkin tiedoston parserointia varten tai verkkoliikenteen käsittelyyn ja niin edelleen. Takaisinmallinnusta ja binäärihaavoittuvuuksien hyväksikäyttöä varten Dialogue: 0,0:13:15.00,0:13:22.00,Default,,0000,0000,0000,,on ehdottomasti - valitettavasti - tunnettava assembly-kieltä ja takaisinmallinnustaitoja. Kaiken tämän yhdistämistä varten Dialogue: 0,0:13:22.00,0:13:28.00,Default,,0000,0000,0000,,tarvitaan perustason Linux-taitoja, koska tarvittavat työkalut ovat parempia Linuxissa kuin Windowsissa Dialogue: 0,0:13:28.00,0:13:33.00,Default,,0000,0000,0000,,mutta toki tarvittaessa voidaan käyttää Windowsin Linux-alijärjestelmää Dialogue: 0,0:13:33.00,0:13:38.00,Default,,0000,0000,0000,,joka nykyään toimii samoin. Haltuunoton ja binäärihaavoittuvuuksien hyväksikäyttöä Dialogue: 0,0:13:38.00,0:13:41.00,Default,,0000,0000,0000,,oppii niin sanotuista sotapeleistä. Viimeisessä esityskalvossa on joitain linkkejä Dialogue: 0,0:13:41.00,0:13:46.00,Default,,0000,0000,0000,,Niistä kannattaa aloittaa. Sotapeli on CTF joka on jatkuvasti saatavilla verkossa. Dialogue: 0,0:13:46.00,0:13:51.00,Default,,0000,0000,0000,,Sotapelejä voi pelata läpi omaan tahtiin ilman aikarajoitusta. Dialogue: 0,0:13:51.00,0:13:59.00,Default,,0000,0000,0000,,Myös vanhoja CTF-haasteita voi tutkia. Näiden arkistoja löytyy verkosta. Arkistoidun CTF:n voi ladata, ajaa paikallisesti ja koittaa hyväksikäyttää niistä löytyviä haavoittuvuuksia. Dialogue: 0,0:13:59.00,0:14:04.00,Default,,0000,0000,0000,,Ja on ollut Dialogue: 0,0:14:04.00,0:14:12.00,Default,,0000,0000,0000,,muiden joukkueiden laatimia yhteenvetoja CTF-haasteista Dialogue: 0,0:14:12.00,0:14:17.00,Default,,0000,0000,0000,,eli joku saattaa kirjoittaa ratkaistusta haasteista esimerkiksi blogikirjoituksen, kuinka haasteet ratkaistiin Dialogue: 0,0:14:17.00,0:14:22.00,Default,,0000,0000,0000,,Nämä yhteenvedot auttavat oppimaan. Mikäli oppiminen videon kautta tuntuu sopivan paremmin Dialogue: 0,0:14:22.00,0:14:29.00,Default,,0000,0000,0000,,Youtubessa on tili nimeltä Life Overflow jolla julkaistaan todella hienoja videoita erilaisista CTF-haasteista Dialogue: 0,0:14:29.00,0:14:35.00,Default,,0000,0000,0000,,videoijen julkaisija käy haasteita läpi, kertoo kuinka hän ratkaisi haasteen ja mikä idea haasteeen takana on ollut. Dialogue: 0,0:14:35.00,0:14:42.00,Default,,0000,0000,0000,,Toki, tätä ei ole syytä tehdä yksin sillä CTF-haasteita on hauskempi ratkaista yhdessä Dialogue: 0,0:14:42.00,0:14:47.00,Default,,0000,0000,0000,,Verkosta voi löytää ryhmiä, samanhenkisiä ihmisiä ja mene käymään hackespacessa ja kysele Dialogue: 0,0:14:47.00,0:14:54.00,Default,,0000,0000,0000,,olisiko joku kiinnostunut osallistumaan porukalla CTF-tapahtumaan tai pelaamaan sotapeliä, juuri niin kuin me teimme. Dialogue: 0,0:14:54.00,0:15:02.00,Default,,0000,0000,0000,,Nyt kerromme mitä äskeinen CTF piti sisällään. Annan vuoron Martinille joka käy läpi pelin haasteita Dialogue: 0,0:15:02.00,0:15:09.00,Default,,0000,0000,0000,,[ohjaajan kommentti] Dialogue: 0,0:15:09.00,0:15:17.00,Default,,0000,0000,0000,,Aion kertoa kuinka lähestyä CTF-haasteita Dialogue: 0,0:15:17.00,0:15:23.00,Default,,0000,0000,0000,,Voin lämpimästi suositella Polyan kirjaa (How to solve it), joka kertoo ongelmanratkaisusta Dialogue: 0,0:15:23.00,0:15:30.00,Default,,0000,0000,0000,,Käytän esimerkkinä Junior CTF -pelin tehtävää nimeltään Blind. Dialogue: 0,0:15:30.00,0:15:34.00,Default,,0000,0000,0000,,Tämä on tehtäväkuvaus, hakkerointia sokeana Dialogue: 0,0:15:34.00,0:15:37.00,Default,,0000,0000,0000,,ja tässä on polku tehtävään, eli ryöstettävään lippuun Dialogue: 0,0:15:37.00,0:15:44.00,Default,,0000,0000,0000,,vaikeustasteeltaan tehtävä on keskitasoa, suhteessa Junior CTF -pelin yleiseen vaikeustasoon Dialogue: 0,0:15:44.00,0:15:59.00,Default,,0000,0000,0000,,Haaste perustuu bugiin joka löytyi 2017 ja nyt kerron, kuinka haastetta voi lähestyä. Ongelman ratkaiseminen vaatii Dialogue: 0,0:15:59.00,0:16:10.00,Default,,0000,0000,0000,,että ongelma täytyy ymmärtää aluksi. Jep, eli kun menee tuohon osoitteeseen näytetään tämä lähdekoodi. Dialogue: 0,0:16:10.00,0:16:15.00,Default,,0000,0000,0000,,Tämä on PHP-koodia. Nyt käymme sen läpi. Dialogue: 0,0:16:15.00,0:16:18.00,Default,,0000,0000,0000,,Ensimmäinen osa lähdekoodia on itse asiassa vihje. Dialogue: 0,0:16:18.00,0:16:26.00,Default,,0000,0000,0000,,Sitä ei tarvitse haasteen ratkaisuun, mutta se vihjaa PHP Object Injection haavoittuvuuteen Dialogue: 0,0:16:26.00,0:16:30.00,Default,,0000,0000,0000,,joka oli bugi Dialogue: 0,0:16:30.00,0:16:36.00,Default,,0000,0000,0000,,jonka avulla saattoi sisällyttää paikallisia tiedostoja käytettäessä PHP 5.3 -versiota tai vanhempaa Dialogue: 0,0:16:36.00,0:16:45.00,Default,,0000,0000,0000,,Haasteessa kuitenkin käytetään PHP 7-versiota. Seuraava koodilohko on täytettä. Dialogue: 0,0:16:45.00,0:16:56.00,Default,,0000,0000,0000,,Käytössä on kaksi luokkaa, luokat Black ja Green. Ne asettavat syntaksikorostuksen väriasetuksia Dialogue: 0,0:16:56.00,0:17:06.00,Default,,0000,0000,0000,,ja jos funktiolle tarjoaa store-parametrin, voidaan teema-asetukset tallentaa evästeeseen, tämä on tärkeää myöhempää ajatellen. Dialogue: 0,0:17:06.00,0:17:15.00,Default,,0000,0000,0000,,Seuraava osio on kiinnostava sillä se vihjaa polusta joka johtaa haavoittuvuuden hyväksikäyttöön Dialogue: 0,0:17:15.00,0:17:20.00,Default,,0000,0000,0000,,Ensimmäinen askel on URL-osoite teemaan Dialogue: 0,0:17:20.00,0:17:27.00,Default,,0000,0000,0000,,Otetaan GET-parametri ja tallennetaan se $_ -muuttujaan Dialogue: 0,0:17:27.00,0:17:37.00,Default,,0000,0000,0000,,Seuraavalla rivillä tarkistetaan onko muuttuja joko merkkijono "Black" tai "Green". Dialogue: 0,0:17:37.00,0:17:48.00,Default,,0000,0000,0000,,Sitten tarkistetaan onko tällainen luokka olemassa. Seuraavaksi asetetaan muuttuja arvoon joka riippuu URL-parametrista. Dialogue: 0,0:17:48.00,0:17:59.00,Default,,0000,0000,0000,,Tämä on kiinnostava osa, nyt luodaan objekti joka edustaa jompaa kumpaa luokkaa, Black tai Green. Dialogue: 0,0:17:59.00,0:18:08.00,Default,,0000,0000,0000,,tässä on täysi kontrolli parametreista joita annetaan luokan alustajalle Dialogue: 0,0:18:08.00,0:18:17.00,Default,,0000,0000,0000,,Seuraava osa koodia käsittelee myös teemaa mutta tällä kertaa evästeen kautta Dialogue: 0,0:18:17.00,0:18:27.00,Default,,0000,0000,0000,,tässä tarkastetaan onko evästeen ensimmäinen osa olemassaoleva luokka. Dialogue: 0,0:18:27.00,0:18:36.00,Default,,0000,0000,0000,,ja sen jälkeen välitetään evästeeseen tallennetut parametrit luokan alustajalle. Dialogue: 0,0:18:36.00,0:18:43.00,Default,,0000,0000,0000,,Näin luodaan olio tästä luokasta. Viimeinne osa koodia tulostaa tietoa ladatuista moduuleista Dialogue: 0,0:18:43.00,0:18:59.00,Default,,0000,0000,0000,,Bugissa on kyse siitä että on mahdollisuus luoda mielivaltainen objekti siten että on täysi kontrolli luokan alustajan parametreista. Dialogue: 0,0:18:59.00,0:19:13.00,Default,,0000,0000,0000,,Joten seuraava askel on suunnitelman laatiminen. Kerätään yhteen kaikki mitä tehtävässä on annettuna ja mitä pitää saavuttaa. Dialogue: 0,0:19:13.00,0:19:22.00,Default,,0000,0000,0000,,Eli nyt meillä on täysi kontrolli evästeeseen tallennettavasta datasta ja voimme luoda olemassaolevasta PHP-luokasta olion Dialogue: 0,0:19:22.00,0:19:23.00,Default,,0000,0000,0000,,ja luokan rakentajalle annettaviin argumentteihin on täysi kontrolli Dialogue: 0,0:19:23.00,0:19:37.00,Default,,0000,0000,0000,,Seuraavaksi täytyy löytää luokka joka tekee haluttuja asioita, kuten lukee tiedoston kun luokalle annetaan tietyt argumentit. Dialogue: 0,0:19:37.00,0:19:50.00,Default,,0000,0000,0000,,Ja tässä meillä on kätevä luokka, SimpleXML, jolla on mahdollista lukea tiedostoja verkon yli. Dialogue: 0,0:19:50.00,0:19:57.00,Default,,0000,0000,0000,,Jos option-muuttujan asettaa arvoon kaksi, sitä voi käyttää XML-elementtien korvaamiseen toisella Dialogue: 0,0:19:57.00,0:20:02.00,Default,,0000,0000,0000,,Tämä on tärkeää myöhemmin. Dialogue: 0,0:20:02.00,0:20:08.00,Default,,0000,0000,0000,,Nyt meidän täytyy vain toteuttaa suunnitelma Dialogue: 0,0:20:08.00,0:20:16.00,Default,,0000,0000,0000,,Tämä on helppo eksploitaatio. Luodaan theme-eväste Dialogue: 0,0:20:16.00,0:20:21.00,Default,,0000,0000,0000,,siten että ensimmäinnen osa evästettä on luokan nimi, SimpleXMLElement Dialogue: 0,0:20:21.00,0:20:32.00,Default,,0000,0000,0000,,ja toinen osa evästettä on lipun polku. Ja kuten näkyy, lippu tulostuu PHP-varoitusviesteihin Dialogue: 0,0:20:32.00,0:20:41.00,Default,,0000,0000,0000,,joten tämä toimii koska varoitukset olivat päällä. Seuraava askel ongelman ratkaisussa on katsominen taaksepäin Dialogue: 0,0:20:41.00,0:20:48.00,Default,,0000,0000,0000,,ja miettiä kuinka haastetta voisi lähestyä toisella tavalla tai toisenlaisten rajoitteiden ollessa voimassa. Dialogue: 0,0:20:48.00,0:20:54.00,Default,,0000,0000,0000,,Eli jos varoitukset eivät olisi päällä Dialogue: 0,0:20:54.00,0:20:58.00,Default,,0000,0000,0000,,olisimme melko sokeita. Haasteen nimi tulee tästä. Dialogue: 0,0:20:58.00,0:21:11.00,Default,,0000,0000,0000,,Emme saa tulostetta. XML:ään voi sisällyttää ulkoisia entiteettejä, jotka toimivat näin. Määritellään elementti Dialogue: 0,0:21:11.00,0:21:17.00,Default,,0000,0000,0000,,ja polku johon elementti viittaa. Dialogue: 0,0:21:17.00,0:21:25.00,Default,,0000,0000,0000,,eli sisällytetään polku XML.ään. Haavoittuvuuden hyväksikäyttö tapahtuu näin. Dialogue: 0,0:21:25.00,0:21:36.00,Default,,0000,0000,0000,,Omassa hallussa olevalta palvelimelta sisällytetään XML-tiedosto joka näkyy esityskalvon alareunassa Dialogue: 0,0:21:36.00,0:21:43.00,Default,,0000,0000,0000,,joka ottaa lipun ja lähettää sen sisällön omalle palvelimelle. Dialogue: 0,0:21:43.00,0:21:52.00,Default,,0000,0000,0000,,Tämänkaltainen yksinkertainen exploit-koodi ajetaan käynnistämällä PHP-palvelinprosessi ja tekemällä Dialogue: 0,0:21:52.00,0:21:59.00,Default,,0000,0000,0000,,pyyntö tähän osoitteeseen, palvelin antaa tälläisen vastauksen Dialogue: 0,0:21:59.00,0:22:07.00,Default,,0000,0000,0000,,Näyttää tältä. Ja koska lippu on Base64-enkoodattu, se täytyy dekoodata. Dialogue: 0,0:22:07.00,0:22:15.00,Default,,0000,0000,0000,,Ja näin saamme lipun. Seuraava osa kertoo Dialogue: 0,0:22:15.00,0:22:24.00,Default,,0000,0000,0000,,CTF-pääkisasta. Kiitokset! Dialogue: 0,0:22:24.00,0:22:33.00,Default,,0000,0000,0000,,Näitte juuri esimerkin melko tyypillisesti verkossa tapahtuvasta CTF-haasteesta Dialogue: 0,0:22:33.00,0:22:37.00,Default,,0000,0000,0000,,mutta tiedämme että on olemassa paljon joukkueita jotka ovat todella, todella taitavia Dialogue: 0,0:22:37.00,0:22:44.00,Default,,0000,0000,0000,,jotka ovat harrastaneet CTF-tapahtumia useita vuosia. Jotkut työskentelevät tietoturvan parissa päivätyönään Dialogue: 0,0:22:44.00,0:22:50.00,Default,,0000,0000,0000,,joten, tottakai, halusimme luoda erittäin haastavan CTF-kisan myös näille joukkueille Dialogue: 0,0:22:50.00,0:23:02.00,Default,,0000,0000,0000,,Yksi tavoitteemme oli luoda suhteellisen realistisia haasteita jotka perustuvat todellisessa maailmassa käytössä oleviin ohjelmistoihin ja haavoittuvuuksiin Dialogue: 0,0:23:02.00,0:23:10.00,Default,,0000,0000,0000,,Joten tässä kalvossa näkyy joidenkin niiden ohjelmistojen logoja joihin nyt järjestämämme CTF:n haasteet perustuivat. Dialogue: 0,0:23:10.00,0:23:18.00,Default,,0000,0000,0000,,Hauskana yksityiskohtana tällä kertaa kolme joukkuetta käytti kukin eriä nollapäivähaavoittuvuutta Dialogue: 0,0:23:18.00,0:23:22.00,Default,,0000,0000,0000,,ja ratkaisivat tehtävän käyttäen näitä haavoittuvuuksia sen sijaan että olisivat ratkaisseet tehtävän kuten oli aiottu Dialogue: 0,0:23:22.00,0:23:30.00,Default,,0000,0000,0000,,mutta tämä kuuluu pelin henkeen. En tiedä mitä tämä kertoo meidän CTF:stä mutta tämä oli mielenkiintoista. Dialogue: 0,0:23:30.00,0:23:34.00,Default,,0000,0000,0000,,Aion nyt esitellä kaksi pelissä olutta haastetta Dialogue: 0,0:23:34.00,0:23:45.00,Default,,0000,0000,0000,,Esittelen selainhaavoittuvuudmen hyväksikäytön, peliympäristön pystytyksen ja kuinka järjestää tämänkaltainen haaste ja niin edelleen.st such a challenge, cetera. Dialogue: 0,0:23:45.00,0:23:51.00,Default,,0000,0000,0000,,Jo kahtena viime vuonna meillä oli selainhaavoittuvuden hyväksikäyttöön liittyvä haaste Dialogue: 0,0:23:51.00,0:23:56.00,Default,,0000,0000,0000,,Selaimissa on jo useita vuosia ollut oletuksena käytössä sandbox-ominaisuus Dialogue: 0,0:23:56.00,0:24:03.00,Default,,0000,0000,0000,,Joka tarkoittaa sitä, että jos haavoittuvuus on selaimen sisältörenderoinnissä Dialogue: 0,0:24:03.00,0:24:12.00,Default,,0000,0000,0000,,se ei yksin riitä selaimen haltuunottoon. Viime vuonna haasteessa oli vain selaimen renderöinnissä olevan haavoittuvuuden hyväksikäyttö Dialogue: 0,0:24:12.00,0:24:20.00,Default,,0000,0000,0000,,ilman sandboxia. Tänä vuonna päätimme ottaa haasteeseen koko selaimen sandboxin kanssa haasteeseen jossa on kaksi osaa Dialogue: 0,0:24:20.00,0:24:24.00,Default,,0000,0000,0000,,Yksi osa on sisältörenderöinti, WebKit-komponentin hyväksikäyttö. Dialogue: 0,0:24:24.00,0:24:27.00,Default,,0000,0000,0000,,ja toinen osa on Dialogue: 0,0:24:27.00,0:24:37.00,Default,,0000,0000,0000,,sandboxista ulos murtautuminen. Perustimme haasteen todelliseen haavoittuvuuksien hyväksikäyttöketjuun joka esiteltiin tänä vuonna tai viime vuonna Dialogue: 0,0:24:37.00,0:24:45.00,Default,,0000,0000,0000,,Kuinka tällainen haaste järjestestetään? Mitä me teimme, liittyi Webkitiin tällä kertaa. Dialogue: 0,0:24:45.00,0:24:54.00,Default,,0000,0000,0000,,Viime vuonna oli Chrome ja sitä aikaisemmin Firefox, joten tänä vuonna käytimme WebKitiä joka on muun muassa Safarissa käytetty selainmoottori. Dialogue: 0,0:24:54.00,0:25:01.00,Default,,0000,0000,0000,,ja me muutimme sitä niin että muutimme selaimen implementaatiota Javascript-toteutuksen osalta lisäämällä huonosti toteutettua optimointikoodia Dialogue: 0,0:25:01.00,0:25:05.00,Default,,0000,0000,0000,,Tämä oli ensimmäinen osa, eli nyt Webkitissä on haavoittuvuus. Dialogue: 0,0:25:05.00,0:25:12.00,Default,,0000,0000,0000,,Seuraavaksi ohjelmoimme MacOS-järjestelmäpalvelun joissa on haavoittuvuuksia Dialogue: 0,0:25:12.00,0:25:17.00,Default,,0000,0000,0000,,perustuen haavoittuvuuksiin joita on esitelty tänä vuonna Dialogue: 0,0:25:17.00,0:25:21.00,Default,,0000,0000,0000,,joten järjestelmäpalvelut sisältävät bugeja Dialogue: 0,0:25:21.00,0:25:31.00,Default,,0000,0000,0000,,Niissä oli haavoittuvuuksia. Ja sen jälkeen otimme käyttöön muokatun Safarin ja haavoittuvat järjestelmäpalvelut käyttöön MacOSX-virtuaalikoneessa. Dialogue: 0,0:25:31.00,0:25:35.00,Default,,0000,0000,0000,,Oikealla ylhäällä näkyy miten CTF-kilpailijat näkevät tämän Dialogue: 0,0:25:35.00,0:25:39.00,Default,,0000,0000,0000,,Kilpailijoita varten on verkkosivu jota kautta he voivat lähettää osoitteen eksploitaatiomenetelmäänsä. Dialogue: 0,0:25:39.00,0:25:43.00,Default,,0000,0000,0000,,Kyseessä on selainhaavoittuvuus eli eksploitaatiomenetelmä on jokin verkkosivu. Dialogue: 0,0:25:43.00,0:25:47.00,Default,,0000,0000,0000,,Kilpailijat voivat kirjoittaa Dialogue: 0,0:25:47.00,0:25:56.00,Default,,0000,0000,0000,,ja lähettää URL-osoitteen eksploitaatiokoodiin. Tällöin meidän palvelimella käynnistyy virtuaalikone. Dialogue: 0,0:25:56.00,0:26:04.00,Default,,0000,0000,0000,,jossa avautuu käyttäjän antama URL-osoite Safari-selaimessa. Käyttäjät saavat palautteena videon selaimen käynnistymisestä. Dialogue: 0,0:26:04.00,0:26:09.00,Default,,0000,0000,0000,,Haasteen tavoite on lukea palvelimelta tiedosto ./flag.txt Dialogue: 0,0:26:09.00,0:26:18.00,Default,,0000,0000,0000,,Kilpailijat tekevät minkä pystyvät saadakseen tiedoston näkymään palvelimen näytöllä ja siten päätymään videolle. Dialogue: 0,0:26:18.00,0:26:23.00,Default,,0000,0000,0000,,Eli tältä haaste näytti pelaajan näkökulmasta. Dialogue: 0,0:26:23.00,0:26:29.00,Default,,0000,0000,0000,,Ratkaisua varten pelaajat saivat tässä haasteessa meiltä WebKit-patchin Dialogue: 0,0:26:29.00,0:26:34.00,Default,,0000,0000,0000,,ja haavoittuvaisten systeemipalvelut binääreinä, joten pelaajien täytyi käyttää takaisinmallinnusta Dialogue: 0,0:26:34.00,0:26:39.00,Default,,0000,0000,0000,,jonka jälkeen he voivat etsi koodista haavoittuvuuksia, toivottavasti löytäen joitain. Dialogue: 0,0:26:39.00,0:26:44.00,Default,,0000,0000,0000,,Sen jälkeen on mahdollista kirjoittaa haavoittuvuuksia varten eksploit, tässä tapauksessa haittakoodia sisältävän verkkosivun. Dialogue: 0,0:26:44.00,0:26:56.00,Default,,0000,0000,0000,,Joukkue laittaa haittakoodia sisältävän verkkosivun jollekin julkisen verkon palvelimelle jolle heillä on pääsy ja sen jälkeen lähettävät osoitteen haittakoodiin CTF-tulospalveluun. Dialogue: 0,0:26:56.00,0:27:03.00,Default,,0000,0000,0000,,Ja kuten totesin, tämän jälkeen virtuaalikone käynnistyy, tallentaa videon ja näyttää sen pelaajille Dialogue: 0,0:27:03.00,0:27:14.00,Default,,0000,0000,0000,,Video näyttää tältä, toivottavasti se toimii. Hyvä. Pelaajat näkevät juuri tämänkaltaisen videon kun he ovat lähettäneet haittakoodiosoitteen tulospalveluun. Dialogue: 0,0:27:14.00,0:27:18.00,Default,,0000,0000,0000,,Pelaajat näkevät tämän videon. Tutkitaan seuraavaksi mitä tässä tapahtui. Dialogue: 0,0:27:18.00,0:27:24.00,Default,,0000,0000,0000,,Taustalla näkyy modifioitu Safari, johon on avautunut pelaajien lähettämä verkko-osoite Dialogue: 0,0:27:24.00,0:27:29.00,Default,,0000,0000,0000,,ja se on tulostanut joitain asioita eksploitista Dialogue: 0,0:27:29.00,0:27:37.00,Default,,0000,0000,0000,,eli se ajaa WebKit-eksploitin. Joten nyt hyökkääjät voivat ajaa koodia Webkit-prosessissa Dialogue: 0,0:27:37.00,0:27:43.00,Default,,0000,0000,0000,,ja käyttää sandboxin ulkopuolella olevia haavoittuvaksi ohjelmoituja järjestelmäpalveluita Dialogue: 0,0:27:43.00,0:27:48.00,Default,,0000,0000,0000,,eli se voi ajaa mitä tahansa komentoja sandboxin ulkopuolella Dialogue: 0,0:27:48.00,0:27:55.00,Default,,0000,0000,0000,,Eli tässä tapauksessa, eksploit avaa ./flag.txt -tiedoston tekstieditorissa Dialogue: 0,0:27:55.00,0:27:56.00,Default,,0000,0000,0000,,tiedosto on todennäköisesti melko pieni Dialogue: 0,0:27:56.00,0:28:06.00,Default,,0000,0000,0000,,Vasemmalla yläkulmassa näkyy tekstieditorissa avattu lippu jonka sisältö täytyy kirjoittaa tulospalveluun jonka jälkeen järjestelmä antaa haasteeseen kuuluvat pisteet. Dialogue: 0,0:28:06.00,0:28:12.00,Default,,0000,0000,0000,,Eli näin se toimii. Miksi meidän mielestämme tämä on hieno haaste Dialogue: 0,0:28:12.00,0:28:17.00,Default,,0000,0000,0000,,ja miksi kilpailijoiden kannattaa ratkaista tämä. Tietty, tästä saa paljon pisteitä. Dialogue: 0,0:28:17.00,0:28:20.00,Default,,0000,0000,0000,,Kyseessä ei ole yksi, vaan kolme haastetta. Dialogue: 0,0:28:20.00,0:28:29.00,Default,,0000,0000,0000,,Suunnittelimme haasteen niin että sandbox-ulosmurtautumisen voi ratkaista, riippumatta siitä onnistuiko WebKit-hyväksikäytön toteutus. Dialogue: 0,0:28:29.00,0:28:34.00,Default,,0000,0000,0000,,Eli tarjolla oli yksi lippu jos ainoastaan WebKit-osio onnistui Dialogue: 0,0:28:34.00,0:28:41.00,Default,,0000,0000,0000,,Eli pelkästään Safari-osuus. Toinen lippu oli mahdollista saada jos andbox-ulosmurtautuminen onnistui Dialogue: 0,0:28:41.00,0:28:47.00,Default,,0000,0000,0000,,ja kolmas lippu, jos onnistui yhdistämään nämä kaksi. Dialogue: 0,0:28:47.00,0:28:56.00,Default,,0000,0000,0000,,Lisäksi tavoitteemme oli suunnitella haasteet siten, että ne tarjoavat mahdollisuuden oppia jotain uutta. Dialogue: 0,0:28:56.00,0:29:04.00,Default,,0000,0000,0000,,WebKit-osuus mahdollisesti opetti jotain lisää Javascriptistä Dialogue: 0,0:29:04.00,0:29:13.00,Default,,0000,0000,0000,,tai JIT-kääntäjien haavoittuvaisuuksista ratkaistaessa haastettau tai MacOSX-järjestelmäpalveluista. Dialogue: 0,0:29:13.00,0:29:18.00,Default,,0000,0000,0000,,Eli tämän kautta pääsee alkuun MacOSX-tietoturva-asioissa Dialogue: 0,0:29:18.00,0:29:23.00,Default,,0000,0000,0000,,Eli oppimisnäkökulma on myös hyvä muistaa. Olemme julkaisemassa lähdekoodit. Dialogue: 0,0:29:23.00,0:29:33.00,Default,,0000,0000,0000,,Tämän haasteen siis. Koodit tulevavat olemaan muutaman tunnin päästä Github-tililläni Dialogue: 0,0:29:33.00,0:29:42.00,Default,,0000,0000,0000,,tämänkaltaiset haasteet kenties helpottavat siirtymää CTF-kisaamisesta tietoturva-alan töihin. Dialogue: 0,0:29:42.00,0:29:46.00,Default,,0000,0000,0000,,Lähdekoodi antaa toivottavasti mukavan johdannon, jep. Dialogue: 0,0:29:46.00,0:29:51.00,Default,,0000,0000,0000,,Ja tässä oli osuuteni. Seuraavaksi Andy jatkaa. Dialogue: 0,0:29:51.00,0:29:57.00,Default,,0000,0000,0000,,Kiitokset. Minäkin suunnittelin pari haastetta. Dialogue: 0,0:29:57.00,0:30:03.00,Default,,0000,0000,0000,,Te jotka olette riittävän vanhoja, muistanevat tämän puhelimen Dialogue: 0,0:30:03.00,0:30:12.00,Default,,0000,0000,0000,,Tarina minun haasteeni takana on että aikaisemmin olin kiinnostunut GSM-asioista, halusin tietää miten se toimii Dialogue: 0,0:30:12.00,0:30:19.00,Default,,0000,0000,0000,,Joten pystytin kotiin oman ohjelmistoradioon perustuvan GSM-verkon ja käytin vanhoja Nokia-puhelimia Dialogue: 0,0:30:19.00,0:30:25.00,Default,,0000,0000,0000,,Sain sitten idean rakentaa oman puhelimen. Dialogue: 0,0:30:25.00,0:30:32.00,Default,,0000,0000,0000,,Tässä näkyy toteuttamani Nokia-puhelimen käyttöliittymä Dialogue: 0,0:30:32.00,0:30:38.00,Default,,0000,0000,0000,,joka ottaa yhteyttä GSM-verkkoon joka ei kuitenkaan käytä radioaaltoja Dialogue: 0,0:30:38.00,0:30:48.00,Default,,0000,0000,0000,,vaan GSM-liikennöinti tapahtuu UDP-paketteina, multicast-liikenteenä Dialogue: 0,0:30:48.00,0:30:53.00,Default,,0000,0000,0000,,ja lisäksi käytössä on ohjelmistoradio, joten itse toteuttamani puhelin voi kommunikoida aidon puhelimen kanssa Dialogue: 0,0:30:53.00,0:31:01.00,Default,,0000,0000,0000,,Näitte juuri sen. Tämä ominaisuus, jolloin radioaaltoja ei käytetä Dialogue: 0,0:31:01.00,0:31:06.00,Default,,0000,0000,0000,,GSM-verkossa on yleensä käytetty sovelluskehitystyössä yksikkötestatessa Dialogue: 0,0:31:06.00,0:31:15.00,Default,,0000,0000,0000,,GSM-verkon palveluita omassa verkossa koska silloin ei ole järkevää sotkea tähän mukaan radioaaltoja ja kaikkea muuta vain sovellustestausta varten Dialogue: 0,0:31:15.00,0:31:21.00,Default,,0000,0000,0000,,Joten he toteuttivat GSM-verkon Ethernetissä Dialogue: 0,0:31:21.00,0:31:29.00,Default,,0000,0000,0000,,Tämä on täydellistä CTF-haastett ajatellen koska pelaajat eivät ole pelkästään paikallisia Dialogue: 0,0:31:29.00,0:31:38.00,Default,,0000,0000,0000,,Joten teoriassa, voisin pystyttää ohjelmistoradion ja lähettää omaan GSM-verkkoni kautta jos käytössä on oikeanlaiset lisenssit Dialogue: 0,0:31:38.00,0:31:44.00,Default,,0000,0000,0000,,jolloin tämän voisi tehdä radioaalloilla. Dialogue: 0,0:31:44.00,0:31:50.00,Default,,0000,0000,0000,,Mutta teoriassa tämän voisi tehdä. Mutta tällöin joku USA:ssa tai muualla ei voisi osallistua haasteeseen Dialogue: 0,0:31:50.00,0:31:56.00,Default,,0000,0000,0000,,ja olemme aina halunneet että kisaan voi osallistua myös muuten kuin paikan päällä Dialogue: 0,0:31:56.00,0:32:01.00,Default,,0000,0000,0000,,Joten pystytin OpenVPN-tunnelin jossa hyökkäyksen kohteena oleva puhelin on Dialogue: 0,0:32:01.00,0:32:10.00,Default,,0000,0000,0000,,jolloin puhelimeen pääsee UDP monilähetyksen kautta Dialogue: 0,0:32:10.00,0:32:19.00,Default,,0000,0000,0000,,Eli tämä soveltuu tarkoitukseen täydellisesti. Haastetta varten toteutin puhelintoteutukseen bugin yhteenliitettävien SMS-viestien käsittelyyn. Dialogue: 0,0:32:19.00,0:32:25.00,Default,,0000,0000,0000,,Puhelintoteutuksessa on vain kaksi toimintoa. Se voi lähettää viestejä ja voi vastaanottaa viestejäThe phone only has two features. Dialogue: 0,0:32:25.00,0:32:34.00,Default,,0000,0000,0000,,Haasteessa puhelin oli verkossa ja sitä saattoi käyttää vain verkon yli Dialogue: 0,0:32:34.00,0:32:38.00,Default,,0000,0000,0000,,Puhelimella pystyi vain lähettämään viestejä mutta käytännöllisesti katsoen Dialogue: 0,0:32:38.00,0:32:40.00,Default,,0000,0000,0000,,minkälaisia viestejä vain Dialogue: 0,0:32:40.00,0:32:47.00,Default,,0000,0000,0000,,Viesteissä voi pitäytyä standardeissa, mutta voi myös lähettää viestejä jotka eivät ole standardin mukaisia ja tehdä kaikenlaisia erikoisia asioita. Dialogue: 0,0:32:47.00,0:32:55.00,Default,,0000,0000,0000,,SMS viesteihin on käytössä vain 160 merkkiä ja vanhoissa Nokia-puhelimissa oli ominaisuus Dialogue: 0,0:32:55.00,0:33:01.00,Default,,0000,0000,0000,,laskuri oikealla jossa näkyi kuinka monta merkkiä viestiin voi vielä käyttää Dialogue: 0,0:33:01.00,0:33:05.00,Default,,0000,0000,0000,,ja kauttaviiva, jonka jälkeen kuinka moneen viestiin pitkän tekstin sisältävä viesti jakaantui Dialogue: 0,0:33:05.00,0:33:10.00,Default,,0000,0000,0000,,koska puhelin jakaa viestin osiin Dialogue: 0,0:33:10.00,0:33:15.00,Default,,0000,0000,0000,,muutaman sadan merkin mittaisiin osiin ja sisällyttää otsaketiedot viestin alkuun. Dialogue: 0,0:33:15.00,0:33:19.00,Default,,0000,0000,0000,,Yksi, kaksi tai kolme tekstiviestiä lähetetään toiseen puhelimeen. Dialogue: 0,0:33:19.00,0:33:26.00,Default,,0000,0000,0000,,ja vastaanottajapuhelin ryhtyy yhdistämään viestejä Dialogue: 0,0:33:26.00,0:33:31.00,Default,,0000,0000,0000,,SMS-viesti jaetaan maksimissaan kolmeen osaan Dialogue: 0,0:33:31.00,0:33:34.00,Default,,0000,0000,0000,,mutta standardin mukaan osia voi olla jopa 250 Dialogue: 0,0:33:34.00,0:33:41.00,Default,,0000,0000,0000,,Kaikki nämä viestit sisältävät header-tietoja Dialogue: 0,0:33:41.00,0:33:45.00,Default,,0000,0000,0000,,ja indeksinumeron, kuinka monennesta viestistä on kyse Dialogue: 0,0:33:45.00,0:33:51.00,Default,,0000,0000,0000,,indeksi alkaa ykkösestä ja jatkuu 225:een. Tässä tapauksessa voi käyttää numeroita yksi, kaksi ja kolme Dialogue: 0,0:33:51.00,0:33:58.00,Default,,0000,0000,0000,,Nyt koostettava SMS on jossain päin paikallista pinopuskuria Dialogue: 0,0:33:58.00,0:34:03.00,Default,,0000,0000,0000,,Sijainti jossa purettu teksti ensimäisestä viestistä on Dialogue: 0,0:34:03.00,0:34:10.00,Default,,0000,0000,0000,,ja viesti rakennetaan uudelleen järjestysnumeroiden pohjalta Dialogue: 0,0:34:10.00,0:34:16.00,Default,,0000,0000,0000,,Haasteessa ei tarkasteta viestin järjestysnumeroa, onko numero yksi, kaksi tai kolme Dialogue: 0,0:34:16.00,0:34:22.00,Default,,0000,0000,0000,,joten numeroksi voi asettaa minkä vain, jolloin kirjoittaminen menee pinopuskurin ulkopuolelle Dialogue: 0,0:34:22.00,0:34:33.00,Default,,0000,0000,0000,,prosessit pitävät kirjaa tilastaan pinossa Dialogue: 0,0:34:33.00,0:34:39.00,Default,,0000,0000,0000,,esim tietoa siitä missä kohtaa prosessi oli menossa ennen funktiokutsua jotta kohtaan voidaan palata tehtävän suorittamisen jälkeen Dialogue: 0,0:34:39.00,0:34:46.00,Default,,0000,0000,0000,,Tämän arvo ylikirjoittamalla kontrollivuo voidaan kaapata ja tämän jälkeen voidaan käyttää ROB-nimellä tunnettua tekniikkaa Dialogue: 0,0:34:46.00,0:34:52.00,Default,,0000,0000,0000,,ohjelmakoodin ajo-oikeuden saamiseksi ja ajaa koodia puhelimessa Dialogue: 0,0:34:52.00,0:34:57.00,Default,,0000,0000,0000,,Samaan tapaan kun Zeiler äskettäin havainnollisti kuinka selainta käyttäen avattiin tekstieditori Dialogue: 0,0:34:57.00,0:35:06.00,Default,,0000,0000,0000,,voidaan ottaa yhteys toiseen laitteeseen, saada auki Linux-shell puhelimeen jonka kautta haasteen lippu voidaan ottaa haltuun Dialogue: 0,0:35:06.00,0:35:12.00,Default,,0000,0000,0000,,Siinäpä se, puheeni oli tässä. Haluan kiittää koko CTF-yhteisöä Dialogue: 0,0:35:12.00,0:35:18.00,Default,,0000,0000,0000,,CTF-kisaamme osallistuneita pelaajia ja muita joukkueita jotka järjestävät pelejä Dialogue: 0,0:35:18.00,0:35:23.00,Default,,0000,0000,0000,,CTF-yhteisölle panostaen paljon ei ainoastaan Dialogue: 0,0:35:23.00,0:35:30.00,Default,,0000,0000,0000,,pelaamiseen vaan myöskin järjestelyihin jotka antavat muille mahdollisuuden pelata Dialogue: 0,0:35:30.00,0:35:35.00,Default,,0000,0000,0000,,Haluan myös kiittää 3C-konferenssin järjestäjiä Dialogue: 0,0:35:35.00,0:35:42.00,Default,,0000,0000,0000,,koska saimme tänä vuonna oman alueen käyttöömme jossa paikan päällä pelanneet joukkueet saattoivat kokoontua yhteen Dialogue: 0,0:35:42.00,0:35:52.00,Default,,0000,0000,0000,,Se oli todella hienoa. Oli mahtavaa nähdä 200 hakkeria istumassa yhdessä pöytien ääressä ja ratkaisemassa suunnittelemiamme haasteita Dialogue: 0,0:35:52.00,0:35:57.00,Default,,0000,0000,0000,,Se oli aivan mahtavaa. Haluan vielä uudelleen kiittää vierailijahaasteiden suunnittelijoita. Dialogue: 0,0:35:57.00,0:36:07.00,Default,,0000,0000,0000,,Nyt voisi olla kysymys-vastausosion aika. Dialogue: 0,0:36:07.00,0:36:15.00,Default,,0000,0000,0000,,Yksi asia vielä. Jos CTF-kisaaminen kiinnostaa tässä on linkkejä resursseihin jotka mainitsin aikaisemmin. Dialogue: 0,0:36:20.00,0:36:26.00,Default,,0000,0000,0000,,Vilkaiskaa niitä jos olette kiinnostuneita. Tokitoivon että tulette mukaan CTF-yhteisöön Dialogue: 0,0:36:26.00,0:36:34.00,Default,,0000,0000,0000,,Näen että yleisössä on jo joitain kysymyksiä. Dialogue: 0,0:36:34.00,0:36:41.00,Default,,0000,0000,0000,,Aloitetaan mikrofonista numero kaksi. Dialogue: 0,0:36:41.00,0:36:47.00,Default,,0000,0000,0000,,Kiitokset puheesta. Yliopistoni IT-turvallisuuskurssi oli arvosteltu CTF. Dialogue: 0,0:36:47.00,0:36:52.00,Default,,0000,0000,0000,,saimme arvosanat CTF-haasteesta keräämiemme pisteiden perusteella Dialogue: 0,0:36:52.00,0:36:57.00,Default,,0000,0000,0000,,Mikä on mielipiteenne tämäntyyppisestä arvostelusta? Dialogue: 0,0:36:57.00,0:37:07.00,Default,,0000,0000,0000,,Mitä ajattelett kun yliopistot järjestävät CTF:n arviointitarkoituksessa- Dialogue: 0,0:37:07.00,0:37:12.00,Default,,0000,0000,0000,,Meille tämä on harrastus ja hieno tapa oppia uusia asioita Dialogue: 0,0:37:12.00,0:37:15.00,Default,,0000,0000,0000,,Henkilökohtaisesti en vastusta tällaista arvostelua Dialogue: 0,0:37:15.00,0:37:26.00,Default,,0000,0000,0000,,En ole varma laittaisinko itse arvosanan riippuvaiseksi pisteistä mutta ajatttelen että itsessään tämä on hieno asia tehdä oppimiskokemuksena. Dialogue: 0,0:37:26.00,0:37:32.00,Default,,0000,0000,0000,,Ei ole väliä osallistuuko CTF:ään osana opintoja tai yksityiselämässä. Dialogue: 0,0:37:32.00,0:37:40.00,Default,,0000,0000,0000,,Aina kun me ratkaisemme muiden joukkueiden suunnittelemia haasteita, opimme aina uutta, uusia kikkoja Dialogue: 0,0:37:40.00,0:37:46.00,Default,,0000,0000,0000,,Eli en ajattele että se on huono idea. Dialogue: 0,0:37:46.00,0:37:55.00,Default,,0000,0000,0000,,Kiitoksia kysymyksestä. Seuraava kysymys tulee mikrofonista numero kolme. Mitä tehdä kun johonkin tehtävään jumittuu? Dialogue: 0,0:37:55.00,0:38:00.00,Default,,0000,0000,0000,,Hyvä kysymys. Yleensä auttaa kun pyytää jonkun muun joukkueesta apuun. Dialogue: 0,0:38:00.00,0:38:06.00,Default,,0000,0000,0000,,Pidä tauko ja pyydä jotakuta muuta joukkueesta jolla ei ole mitään käsitystä työn alla olevasta haasteesta Dialogue: 0,0:38:06.00,0:38:10.00,Default,,0000,0000,0000,,käymään läpi löydöksesi tai vain juttelemaan kanssasi haasteesta Dialogue: 0,0:38:10.00,0:38:13.00,Default,,0000,0000,0000,,Toisella henkilöllä voi olla uusia ideoita joita kokeilla Dialogue: 0,0:38:13.00,0:38:22.00,Default,,0000,0000,0000,,vaikka hän ei ole edes tutustunut haasteeseen aikaisemminen tai kun kerrot toiselle mitä olet tehnyt lähituntien aikana Dialogue: 0,0:38:22.00,0:38:29.00,Default,,0000,0000,0000,,jo yksin selittämällä asia jollekuulle muulle saatat saada uuden idean miten jatkaa Dialogue: 0,0:38:29.00,0:38:35.00,Default,,0000,0000,0000,,Tai vain ryhdy googlailemaan aihetta. Saattaa olla että jonkin muun ohjelmiston tapauksessa on ollut samankaltainen bugi, eli on monia asioita tehtäväksi. Dialogue: 0,0:38:35.00,0:38:40.00,Default,,0000,0000,0000,,Mutta niinkin käy useasti ettemme saa ratkaistua haastetta Dialogue: 0,0:38:40.00,0:38:45.00,Default,,0000,0000,0000,,Eli CTF-pelaaminen voi olla myös turhauttavaa, sillä puolen vuorokauden istumisen jälkeen Dialogue: 0,0:38:45.00,0:38:51.00,Default,,0000,0000,0000,,ratkaisua ei saa toimimaan tai ei ole mitään ideaa kuinka ratkaista se Dialogue: 0,0:38:51.00,0:38:54.00,Default,,0000,0000,0000,,Tätäkin tapahtuu kun ei huomaa jotain tiettyä jippoa. Dialogue: 0,0:38:54.00,0:39:03.00,Default,,0000,0000,0000,,Mutta tällöin voi kysyä jälkikäteen muilta joukkueilta esimerkiki IRC:issä kuinka he ratkaisivat tehtävän Dialogue: 0,0:39:03.00,0:39:06.00,Default,,0000,0000,0000,,Voi kysyä yhteenvetoa ratkaisusta ja lukea yhteenvetoja jos niitä on saatavissa. Dialogue: 0,0:39:06.00,0:39:12.00,Default,,0000,0000,0000,,Voi myös kysyä kun seuraavan kerran näkee toiset paikan päällä, esimerkiksi täällä konferenssissa ja niin edelleen. Dialogue: 0,0:39:12.00,0:39:19.00,Default,,0000,0000,0000,,Näin tietämys ja kokemus karttuu ajan myötä. Dialogue: 0,0:39:19.00,0:39:24.00,Default,,0000,0000,0000,,Voimme ottaa vielä yhden kysymyksen. Mikrofoni kaksi on jälleen valmiina. Dialogue: 0,0:39:24.00,0:39:28.00,Default,,0000,0000,0000,,Toimiikohan tämä? OK, anteeksi. Dialogue: 0,0:39:28.00,0:39:34.00,Default,,0000,0000,0000,,Aluksi, paljon kiitoksia CTF-kisan järjestämisestä. Arvostan sitä paljon ja myös sitä, että toteutitte selainhaavoittuvuutta hyväksikäyttävän haasteen Dialogue: 0,0:39:34.00,0:39:40.00,Default,,0000,0000,0000,,Ottaen huomioon että on todella vaikeaa pystyttää selainta hyödyntävä haaste ja pitää haaste verkossa kaikkien pelaajien saatavilla. Dialogue: 0,0:39:40.00,0:39:51.00,Default,,0000,0000,0000,,Kysymykseni on, mikä on teidän kantanne haasteisiin jossa ratkaistaan ongelmia sellaisten ohjelmistojen kanssa joita ei ole modifioitu, jolloin implisiittisesti paljastuu bugeja ohjelmistoista. Dialogue: 0,0:39:51.00,0:40:00.00,Default,,0000,0000,0000,,En ole varma ymmärsinkö kysymyksen oikein. Tarkoitatko että pelaajat käyttävät nollapäivähaavoittuvuuksia haasteiden ratkaisemisesessa? Dialogue: 0,0:40:00.00,0:40:05.00,Default,,0000,0000,0000,,Me emme teen näin. Tarkoitan että kaikissa pelissä käyttämissämme sovelluksissa on modifikaatioita Dialogue: 0,0:40:05.00,0:40:11.00,Default,,0000,0000,0000,,eli niille löytyy tunnettu ratkaisu. Mutta ne ovat todellisesta maailmasta peräisin olevia haasteita Dialogue: 0,0:40:11.00,0:40:14.00,Default,,0000,0000,0000,,Jolloin ei ole sen todellisempaa kuin käyttää nollapäivähaavoittuvuutta ratkaisuna Dialogue: 0,0:40:14.00,0:40:21.00,Default,,0000,0000,0000,,Kunhan nollapäivähaavoittuvuutta ei käytetä CTF:n hallinnoinnissa käytettyä infrastruktuuria vastaan Dialogue: 0,0:40:21.00,0:40:30.00,Default,,0000,0000,0000,,Eli meidän kannaltamme tämä on reilua peliä. Uskon että pelaajat luottavat meihin ja he luottavat siihen että heidän käyttämänsä nollapäivähaavoittuvuudet eivät karkaa Dialogue: 0,0:40:30.00,0:40:33.00,Default,,0000,0000,0000,,Siksi he ovat käyttäneet niitä, tai ainakin jotkin. Dialogue: 0,0:40:33.00,0:40:39.00,Default,,0000,0000,0000,,Mutta ajattelen myös että jos meillä on nollapäivähaavoittuvuus, olemme kaikki samaa mieltä että on oikein Dialogue: 0,0:40:39.00,0:40:44.00,Default,,0000,0000,0000,,vastuullisesti julkaista bugi eikä laittaa sitä verkkoon jakoon jolloin muut joutuisivat vaaraan. Dialogue: 0,0:40:44.00,0:40:53.00,Default,,0000,0000,0000,,Tarkoitan että en ole koskaan nähnyt CTF:n aikana että jokin Dialogue: 0,0:40:53.00,0:40:58.00,Default,,0000,0000,0000,,haavoittuvuus olisi karannut ja vaarantanut tavalliset käyttäjät Dialogue: 0,0:40:58.00,0:41:03.00,Default,,0000,0000,0000,,Tätä ei ole tähän mennessä tapahtunut ja toivotaan että tilanne säilyy samanlaisena. Olisi ikävä asia jos näin tapahtuisi. Dialogue: 0,0:41:03.00,0:41:06.00,Default,,0000,0000,0000,,Olet oikeassa. Dialogue: 0,0:41:06.00,0:41:13.00,Default,,0000,0000,0000,,Paljon kiitoksia. Valitettavasti kysymys-vastausosion aika on ohi mutta olen melko varma että puhujat mielellään vastaavat kysymyksiinne myöhemmin. Dialogue: 0,0:41:13.00,0:41:18.00,Default,,0000,0000,0000,,Isot aplodit esiintyjille! Dialogue: 0,0:41:18.00,0:41:23.90,Default,,0000,0000,0000,,Kiitoksia! Translated by Matti Lassila (ITKST56 course assignment at JYU.FI) Dialogue: 0,0:41:23.90,0:41:45.00,Default,,0000,0000,0000,,Subtitles created by c3subtitles.de\Nin the year 2021. Join, and help us!