0:00:01.000,0:00:05.000 Translated by Lauri Lyytinen[br](ITKST56 course assignment at JYU.FI) 0:00:05.000,0:00:19.500 ♪ (36C3 intromusiikki) ♪ 0:00:19.500,0:00:26.220 Juontaja: Seuraavan esityksen aihe on [br]käytännön välimuistihyökkäykset verkossa 0:00:26.220,0:00:33.960 Puhujana on Michael Kurth. Hän tunnisti[br]tämän hyökkäystavan. Hyökkäsytapa on 0:00:33.960,0:00:42.640 ensimmäinen laatuaan. Hän on tutkimuksen[br]pääkirjoittaja ja hänen esityksensä 0:00:42.640,0:00:47.470 tulee olemaan suurenomoinen! Meille on[br]luvattu huonoja sanaleikkejä kissoista ja 0:00:47.470,0:00:52.750 odotan niitä sinulta. Annetaan iso käsi[br]Michael Kurthille! 0:00:52.750,0:00:58.690 (taputusta) 0:00:58.690,0:01:03.800 Michael: Hei kaikille ja paljon kiitoksia[br]kun pääsitte kuuntelemaan esitystäni. 0:01:03.800,0:01:08.780 Nimeni on Michael ja haluan jakaa kansanne[br]tutkimuksemme jonka toteuttamisen 0:01:08.780,0:01:15.659 mahdollisti mahtava VUSec grup osana[br]Pro gradu -tutkimustani. Hieman itsetäni. 0:01:15.659,0:01:20.260 Suoritin tietotekniikan maisteriopintojani[br]ETH Zürichin ja pystyin tekemään graduni 0:01:20.260,0:01:27.869 Amsterdamissa. Nykyään työskentelen[br]turvallisuusanalyytikkona infoGuardilla. 0:01:27.869,0:01:33.450 Tässä näette ihmiset, jotka oikeasti[br]mahdollistivat tämän tutkimuksen. 0:01:33.450,0:01:37.869 He ovat esimiehiäni ja tutkimus-[br]kollegoitani, jotka tukivat minua 0:01:37.869,0:01:43.500 koko ajan ja panostivat aikaa ja vaivaa[br]tutkimukseen. Joten he ovat oikeat 0:01:43.500,0:01:50.990 rokkistarat tämän tutkimuksen taustalla.[br]Mutta aloitetaanpa välimuistiyökkäyksistä. 0:01:50.990,0:01:56.850 Tapa tunnettin paikallisesti suoritet-[br]tavan koodin hyökkäyksenä. Esimerkiksi 0:01:56.850,0:02:03.679 vasemmalla näkyvässä virtuaaliympäristössä[br]on kaksi virtuaalikonetta, jotka jakavat 0:02:03.679,0:02:10.270 laitteiston. Eli ne jakavat aikapaikat [br]CPU:n ja välimuistin osalta. Siksi 0:02:10.270,0:02:18.120 VM2 käyttävä hyökkääjä voi suorittaa [br]välimuistihyökkäyksen VM1 vastaan. Samoin 0:02:18.120,0:02:23.100 myös JavaScriptillä. Haitallinen skripti[br]syötetään selaimelle, joka sitten 0:02:23.100,0:02:28.030 suorittaa sen. Koska se jakaa resursseja[br]koneen kanssa se voi myös 0:02:28.030,0:02:33.330 hyökätä muihin prosesseihin. [br]Tämä JavaScript tapa luo tunteen 0:02:33.330,0:02:39.340 verkon yli tapahtuvasta toiminnasta, eikö?[br]Mutta se vaatii skriptin suorittamisen 0:02:39.340,0:02:46.170 koneellasi ollakseen oikeasti onnistunut.[br]Joten halusimme kehittää tätä ja toteuttaa 0:02:46.170,0:02:54.060 oikean välimuistihyökkäyksen verkon yli.[br]Tässä perusasetelmassa asiakas käyttää SSH 0:02:54.060,0:03:00.790 yhteyttä palvelimeen ja meillä on kolmas,[br]hyökkääjän käyttämä kone. Kuten tulen 0:03:00.790,0:03:08.360 tänään todistamaan, voimme murtaa tämän [br]SSH-istunnon luottamuksen käyttämällä 0:03:08.360,0:03:13.269 kolmatta konetta ilman haitallista koodia[br]tai ohjelman suorittamista asiakkaalla 0:03:13.269,0:03:20.540 tai palvelimella. Lisäksi pavelimen[br]CPU:lla ei ole mitään tekemistä tämän 0:03:20.540,0:03:25.390 välimuistihyökkäyksen kanssa. Joten se[br]vain on, eikä huomaa kun siltä vuotaa 0:03:25.390,0:03:34.689 salaisuuksia. Katsotaanpa hieman tarkemmin.[br]Tässä meillä on kiva kissa suorittamassa 0:03:34.689,0:03:41.409 SSH-istuntoa palvelimen kanssa ja aina, [br]kun kissa painaa nappia yksi paketti 0:03:41.409,0:03:49.700 lähtee palvelimelle. Tämä toteutuu aina[br]interaktiivisessa SSH-istunnossa. Kuten 0:03:49.700,0:03:56.530 nimikin kertoo, se luo interaktiivisuuden[br]tunteen. Kun kurkkaamme hieman 0:03:56.530,0:04:01.459 konepellin alle nähdäksemme mitä palveli-[br]mella tapahtuu, huomamme näiden pakettien 0:04:01.459,0:04:06.950 oikeasti aktivoivan viimeisen tason [br]välimuistia (LLC). Tästä lisää hieman 0:04:06.950,0:04:13.349 myöhemmin. Nyt hyökkääjä toteuttaa saman-[br]aikaisen välimuistihyökkäyksen LLC:een 0:04:13.349,0:04:19.340 vain lähettämällä verkkoliikennepaketteja.[br]Ja näin voimme oikeasti vuotaa 0:04:19.340,0:04:28.020 saapumisajat yksittäisistä SSH-paketeista.[br]Nyt varmaan kysyt itseltäsi miten 0:04:28.020,0:04:36.800 SSH-pakettien saapumisajat vaikuttavat[br]SSH-istunnon luottamuksellisuuteen. No, 0:04:36.800,0:04:43.210 ihmisillä on omintakeisia tapoja kirjoit-[br]taa. Ja tässä näemme esimerkin käyttäjän 0:04:43.210,0:04:50.460 kirjoittaessa sanaa "because". Huomamme,[br]että E:n painallus B:n jälkeen on nopeampi 0:04:50.460,0:04:56.870 kuin esimerkiksi C A:n jälkeen. Tämä[br]voidaan yleistää ja sitä voidaan käyttää 0:04:56.870,0:05:03.960 tilastollisessa analyysissä. Näillä orans-[br]seilla pisteillä, jos saamme mallinnettua 0:05:03.960,0:05:10.530 saapumisajat moittettomasti — ja mitä[br]moitteeton tarkoittaa: voimme mallintaa 0:05:10.530,0:05:16.270 tarkat ajat, kun käyttäjä näppäili —,[br]voimme toteuttaa tämän tilastollisen 0:05:16.270,0:05:22.690 analyysin saapumisien välisistä ajoista.[br]Ja näin voimme vuotaa mitä olit 0:05:22.690,0:05:29.809 kirjoittamssa yksityisessä SSH-istunnossa.[br]Kuuolstaa pelottavalta ja futuristiselta, 0:05:29.809,0:05:36.580 mutta minä selkeytän asian esityksen [br]aikana. Hyvä! Haluan tuoda yhden seikan 0:05:36.580,0:05:42.730 esille heti näin alussa: Kuten on tapana[br]ja kirjoittamien helpottamiseksi 0:05:42.730,0:05:48.180 tutkimuskelle annetaan nimi. Ja jos olette[br]seuranneet InfoSecin twitteriä tarkasti, 0:05:48.180,0:05:53.930 tunnistatte varmaan mistä olen puhumassa.[br]Koska miedän tapauksessa nimesimme 0:05:53.930,0:06:00.740 tutkimuksen NetCAT:ksi. Tämä oli tietenkin[br]sanaleikki. Tässä NetCAT tarkoittaa 0:06:00.740,0:06:08.560 "Network Cache Attack" ja se oli tietenkin[br]huumoria, joka voi joskus kostautua. 0:06:08.560,0:06:17.830 Ja tässä tapauksessa se kostautui pahasti.[br]Näin saimme aikaan himean twitter-draamaa 0:06:17.830,0:06:24.400 viime syyskuussa. Yksi tykätyimmistä [br]twiiteistä tutkimukseen liittyen oli 0:06:24.400,0:06:32.889 Jakelta. Nämä esitykset ovat hyviä, koska [br]tällaiset twiitit voidaan henkilöidä ja 0:06:32.889,0:06:42.599 kyllä: Minä olen tämä idiootti. Korjataanpa[br]tämä! Intel tunnusti työmme palkitsemalla 0:06:42.599,0:06:48.720 ja lisäksi CVE-numerolla, joten nykyään[br]voimme vain käyttää CVE-numeroa. Tai, 0:06:48.720,0:06:54.479 jos se on hankalaa, twitter draaman [br]aikana joku lähetti meille tällaisen 0:06:54.479,0:06:59.800 kivan pienen vaihtoehtoisen nimen ja[br]lisäsi logon, josta minä jopa pidän. 0:06:59.800,0:07:09.240 Sen nimi on NeoCAT. Jokatapuksessa,[br]opimme läksymme nimeämisjutusta. 0:07:09.240,0:07:15.250 Siirrytäänpä eteenpäin. Palataan tukimuk-[br]semme varsinaisesti kiinnostavimpiin 0:07:15.250,0:07:22.460 asioihin! Nopea hamottelu: [br]Aion ensin kertoa taustoista eli 0:07:22.460,0:07:28.240 välimuistihyökkäykset yleisesti. Sitten [br]DDIO ja RDMA, tärketä teknologiat joita 0:07:28.240,0:07:34.330 hyväksikäytimme verkon yli tapahtuvassa[br]hyökkäyksessä. Sitten itse hyökkäys ja kuinka 0:07:34.330,0:07:42.190 käänteisesti suunnittelimme DDIO:n, [br]päästä-päähän hyökkäys ja pieni demo. 0:07:42.190,0:07:47.050 Välimuistihyökkäykset perustuvat mikro-[br]arkkitehtuurin tilan havainnointiin, jonka 0:07:47.050,0:07:53.160 pitäisi säilyä salassa ohjelmistolta. Tämä[br]onnistuu pakottamlla jaetut resurssit 0:07:53.160,0:07:59.759 vuotamaan tietoa. Analogiana voidaan pitää[br]kassakaapin murtamista stetoskoopilla, 0:07:59.759,0:08:06.300 jossa jeattuna resurssina on ilma, [br]joka välittää lukosta tulevat äänet 0:08:06.300,0:08:11.990 kun sitä käsitellään. Tämä tapahtuu[br]jokseenkin samalla tavalla 0:08:11.990,0:08:21.949 tietokoneissa. Mutta, nyt vain välimuis-[br]tissa. Välimuisti ratkaisee pahatkin 0:08:21.949,0:08:28.389 viiveongelmat keskusmistista ladattaessa,[br]eikö? Nämä tekevät karkeasti neljänneksen 0:08:28.389,0:08:34.320 kaikista komennoista. Ja välimuistin avulla[br]voimme käyttää uudelleen datan ja käyttää 0:08:34.320,0:08:41.980 paikaktietoa ohjelmissa. Moderneissa CPU:issa[br]on yleensä 3-kerroksinen välimusitihierarkia: 0:08:41.980,0:08:47.041 L1 on jaettu datan ja komentoväli-[br]muistin kanssa. L2, ja sitten L3, joka 0:08:47.041,0:08:54.290 on jaettu ytimien kesken. Jos käsiteltävä[br]data on jo ladattu välimuistiin, se 0:08:54.290,0:08:58.780 aiheittaa välimuistiosuman. Jos data[br]pitää ladata keskusmuistista, sitä pidetään 0:08:58.780,0:09:06.290 välimuistihutina. Joten, miten saame [br]oikeasti tietää milloin tapahtuu osuma tai 0:09:06.290,0:09:11.549 huti? Koska emme voi lukea dataa [br]suoraan välimuistista. Voimme tehdä 0:09:11.549,0:09:15.700 tämän esimerkiksi alustamalla ja [br]tutkaamalla. Se on tunnettu teknikka, jota 0:09:15.700,0:09:20.980 käytimme verkkoympäsristössä. [br]Haluan paikaisesti kertoa siitä, mitä 0:09:20.980,0:09:26.430 tässä tapahtuu. Alustamisen ja tutkaamisen [br]ensimmäisessä vaiheessa hyökkääjä saattaa 0:09:26.430,0:09:33.860 välimuistin tunnettuun tilaan. Periaat-[br]teessa alustaa välimuistin. Se täyttää sen 0:09:33.860,0:09:42.310 omalla datallaan, jonka jälkeen hyökkääjä[br]odottaa uhrin toimia. Viimeinen vaihe on 0:09:42.310,0:09:49.040 tutkaaminen, joka tekee alustamisen [br]uudelleen, mutta tällä kertaa mittaa 0:09:49.040,0:09:56.260 kirjautumisajat. Nopeat osumat tar-[br]koittavat ettei välimuistia oltu muutettu 0:09:56.260,0:10:02.750 välissä. Ja hutiosumat tuottavat, [br]kuten nyt tiedämme, että uhri 0:10:02.750,0:10:10.270 on todella käyttänyt yhtä välimuistiriviä[br]alustuksen ja tutkaamisen välissä. 0:10:10.270,0:10:15.750 Mitä voimme siis tehdä näillä osumilla ja[br]hutiosumilla? Voimme analysoida niitä! 0:10:15.750,0:10:21.410 Tämä aikatieto kertoo meille paljon[br]uhrin käyttäytymisestä ja ohjelmista. 0:10:21.410,0:10:28.519 Perustuen pelkästään osumiin ja huteihin[br]voimme— tai tutkijat pystyivät —vuotamaan 0:10:28.519,0:10:35.829 salausavaimistoja, arvaamaan nettisaitteja[br]tai muistin sisältöä. Näin siis SPECTRE:llä 0:10:35.829,0:10:42.260 ja MELTDOWN:lla. Katsotaanpa kuinka oike-[br]astaan saamme toteutettua hyökkäyksen 0:10:42.260,0:10:50.550 verkon yli! Toinen tärkeistä teknologioista[br]on DDIO. Mutta ensin haluan kertoa DMA:sta 0:10:50.550,0:10:55.420 koska se on kuin sen edeltäjä. [br]DMA on periaatteessa teknologia, joka 0:10:55.420,0:11:02.010 sallii PCIe-laitteen, kuten esimerkiksi[br]verkkokortin, vaikuttaa suoraan 0:11:02.010,0:11:08.519 keskusmuistiin ilman CPU:n keskeytystä.[br]Joten esimerkiksi, jos paketti on 0:11:08.519,0:11:14.339 vastaanotettu, PCIe-laite vain laittaa[br]sen keskusmuistiin ja sitten, kun 0:11:14.339,0:11:19.110 ohjelma tai sovellus haluaa käyttää dataa,[br]silloin se voi hakea sen keskusmuistista. 0:11:19.110,0:11:27.089 Nyt DDIO:n kanssa tämä käy hieman toisella[br]tavalla. DDIO:n avulla PCIe-laite voi 0:11:27.089,0:11:33.110 laittaa suoraan dataa viimeisen tasan[br]välimuistiin. Tämä on hienoa, sillä nyt 0:11:33.110,0:11:38.620 kun sovellus työskentelee datan kanssa,[br]sen ei tarvitse tehdä kallisarvoista hakua 0:11:38.620,0:11:43.910 keksusmuistista vaan se voi suoraan[br]työstää dataa — tai noutaa sen — 0:11:43.910,0:11:52.010 LLC:sta. DDIO tarkoittaa "Data Direct[br]I/O Technology" ja se on käytössä 0:11:52.010,0:11:58.560 kaikissa Intelin palvelintason prosesso-[br]rissa vuodesta 2012 lähtien. Se on päällä 0:11:58.560,0:12:04.069 oletuksena ja läpinäkyvä ajureille ja [br]käyttöjärjestelmille. Arvaan ettei monikaan 0:12:04.069,0:12:09.279 edes huomannut, että jokin muuttui kone-[br]pellin alla. Muutos oli kuitenkin hyvin 0:12:09.279,0:12:17.100 merkittävä. Miksi oikeastaan DDIO:ta[br]tarvitaan? Se on käytössä suorituskyvyn 0:12:17.100,0:12:23.489 takia. Tässä meillä on kiva Intelin tutki-[br]mus, joka alimpana osoittaa 0:12:23.489,0:12:29.090 0:12:29.090,0:12:35.750 0:12:35.750,0:12:42.850 0:12:42.850,0:12:47.890 0:12:47.890,0:12:56.770 0:12:56.770,0:13:02.250 0:13:02.250,0:13:08.750 0:13:08.750,0:13:15.390 0:13:15.390,0:13:23.520 0:13:23.520,0:13:28.329 0:13:28.329,0:13:34.230 0:13:34.230,0:13:39.670 0:13:39.670,0:13:44.490 0:13:44.490,0:13:52.779 0:13:52.779,0:13:59.740 0:13:59.740,0:14:06.880 0:14:06.880,0:14:12.900 0:14:12.900,0:14:20.639 0:14:20.639,0:14:28.540 0:14:28.540,0:14:33.749 0:14:33.749,0:14:38.780 0:14:38.780,0:14:45.509 0:14:45.509,0:14:52.550 0:14:52.550,0:14:59.230 0:14:59.230,0:15:07.320 0:15:07.320,0:15:12.810 0:15:12.810,0:15:19.339 0:15:19.339,0:15:26.291 0:15:26.291,0:15:34.310 0:15:34.310,0:15:39.320 0:15:39.320,0:15:44.630 0:15:44.630,0:15:50.420 0:15:50.420,0:15:57.860 0:15:57.860,0:16:04.020 0:16:04.020,0:16:09.040 0:16:09.040,0:16:14.240 0:16:14.240,0:16:20.589 0:16:20.589,0:16:26.640 0:16:26.640,0:16:33.180 0:16:33.180,0:16:41.850 0:16:41.850,0:16:46.040 0:16:46.040,0:16:52.000 0:16:52.000,0:16:58.149 0:16:58.149,0:17:03.250 0:17:03.250,0:17:09.820 0:17:09.820,0:17:16.430 0:17:16.430,0:17:23.280 0:17:23.280,0:17:30.290 0:17:30.290,0:17:36.030 0:17:36.030,0:17:40.500 0:17:40.500,0:17:46.350 0:17:46.350,0:17:51.470 0:17:51.470,0:17:58.930 0:17:58.930,0:18:08.080 0:18:08.080,0:18:16.610 0:18:16.610,0:18:22.560 0:18:22.560,0:18:31.760 0:18:31.760,0:18:38.780 0:18:38.780,0:18:48.690 0:18:48.690,0:18:54.050 0:18:54.050,0:19:01.470 0:19:01.470,0:19:06.770 0:19:06.770,0:19:15.410 0:19:15.410,0:19:19.960 0:19:19.960,0:19:25.540 0:19:25.540,0:19:33.750 0:19:33.750,0:19:39.420 0:19:39.420,0:19:46.830 0:19:46.830,0:19:52.960 0:19:52.960,0:20:01.720 0:20:01.720,0:20:07.530 0:20:07.530,0:20:13.700 0:20:13.700,0:20:18.930 0:20:18.930,0:20:24.750 0:20:24.750,0:20:29.200 0:20:29.200,0:20:35.380 0:20:35.380,0:20:41.760 0:20:41.760,0:20:51.310 0:20:51.310,0:20:56.940 0:20:56.940,0:21:04.290 0:21:04.290,0:21:10.300 0:21:10.300,0:21:16.660 0:21:16.660,0:21:22.260 0:21:22.260,0:21:28.010 0:21:28.010,0:21:34.750 0:21:34.750,0:21:40.650 0:21:40.650,0:21:48.940 0:21:48.940,0:21:55.520 0:21:55.520,0:22:00.000 0:22:00.000,0:22:05.780 0:22:05.780,0:22:11.470 0:22:11.470,0:22:16.060 0:22:16.060,0:22:23.880 0:22:23.880,0:22:31.520 0:22:31.520,0:22:37.990 0:22:37.990,0:22:44.300 0:22:44.300,0:22:50.260 0:22:50.260,0:22:57.090 0:22:57.090,0:23:00.710 0:23:00.710,0:23:07.260 0:23:07.260,0:23:15.030 0:23:15.030,0:23:19.690 0:23:19.690,0:23:27.280 0:23:27.280,0:23:35.250 0:23:35.250,0:23:40.590 0:23:40.590,0:23:46.010 0:23:46.010,0:23:52.451 0:23:52.451,0:23:59.380 0:23:59.380,0:24:04.900 0:24:04.900,0:24:10.040 0:24:10.040,0:24:19.260 0:24:19.260,0:24:27.330 0:24:27.330,0:24:33.060 0:24:33.060,0:24:39.340 0:24:39.340,0:24:48.090 0:24:48.090,0:24:55.830 0:24:55.830,0:25:01.230 0:25:01.230,0:25:06.431 0:25:06.431,0:25:11.960 0:25:11.960,0:25:17.550 0:25:17.550,0:25:21.330 0:25:21.330,0:25:26.590 0:25:26.590,0:25:32.910 0:25:32.910,0:25:40.050 0:25:40.050,0:25:47.090 0:25:47.090,0:25:52.880 0:25:52.880,0:25:58.900 0:25:58.900,0:26:02.450 0:26:02.450,0:26:09.500 0:26:09.500,0:26:15.580 0:26:15.580,0:26:22.930 0:26:22.930,0:26:30.750 0:26:30.750,0:26:35.730 0:26:35.730,0:26:43.840 0:26:43.840,0:26:54.610 0:26:54.610,0:27:00.851 0:27:00.851,0:27:07.600 0:27:07.600,0:27:15.470 0:27:15.470,0:27:21.030 0:27:21.030,0:27:27.630 0:27:27.630,0:27:34.060 0:27:34.060,0:27:39.890 0:27:39.890,0:27:45.480 0:27:45.480,0:27:51.260 0:27:51.260,0:27:58.080 0:27:58.080,0:28:04.720 0:28:04.720,0:28:10.590 0:28:10.590,0:28:19.790 0:28:19.790,0:28:24.350 0:28:24.350,0:28:41.600 0:28:41.600,0:28:48.010 0:28:48.010,0:28:53.620 0:28:53.620,0:29:05.450 0:29:05.450,0:29:10.330 0:29:10.330,0:29:16.860 0:29:16.860,0:29:22.960 0:29:22.960,0:29:30.260 0:29:30.260,0:29:37.130 0:29:37.130,0:29:42.640 0:29:42.640,0:29:50.500 0:29:50.500,0:30:00.430 0:30:00.430,0:30:10.250 0:30:10.250,0:30:17.420 0:30:17.420,0:30:22.540 0:30:22.540,0:30:26.950 0:30:26.950,0:30:29.640 0:30:29.640,0:30:36.550 0:30:36.550,0:30:43.250 0:30:43.250,0:30:51.631 0:30:51.631,0:30:55.730 0:30:55.730,0:31:03.320 0:31:03.320,0:31:10.900 0:31:10.900,0:31:20.419 0:31:20.419,0:31:25.740 0:31:25.740,0:31:33.090 0:31:33.090,0:31:38.480 0:31:38.480,0:31:46.970 0:31:46.970,0:31:52.740 0:31:52.740,0:31:58.220 0:31:58.220,0:32:02.720 0:32:02.720,0:32:08.920 0:32:08.920,0:32:13.750 0:32:13.750,0:32:18.120 0:32:18.120,0:32:22.230 0:32:22.230,0:32:27.720 0:32:27.720,0:32:35.620 0:32:35.620,0:32:40.470 0:32:40.470,0:32:45.870 0:32:45.870,0:32:51.030 0:32:51.030,0:32:57.600 0:32:57.600,0:33:03.180 0:33:03.180,0:33:09.580 0:33:09.580,0:33:13.050 0:33:13.050,0:33:18.880 0:33:18.880,0:33:27.180 0:33:27.180,0:33:31.270 0:33:31.270,0:33:37.650 0:33:37.650,0:33:41.980 0:33:41.980,0:33:46.260 0:33:46.260,0:33:52.752 0:33:52.752,0:33:59.360 0:33:59.360,0:34:04.580 0:34:04.580,0:34:09.450 0:34:09.450,0:34:15.649 0:34:15.649,0:34:21.389 0:34:21.389,0:34:27.289 0:34:27.289,0:34:34.770 0:34:34.770,0:34:42.389 0:34:42.389,0:34:49.220 0:34:49.220,0:34:56.520 0:34:56.520,0:35:01.900 0:35:01.900,0:35:06.640 0:35:06.640,0:35:11.820 0:35:11.820,0:35:17.260 0:35:17.260,0:35:24.440 0:35:24.440,0:35:29.120 0:35:29.120,0:35:33.220 0:35:33.220,0:35:40.340 0:35:40.340,0:35:47.410 0:35:47.410,0:35:53.510 0:35:53.510,0:36:01.310 0:36:01.310,0:36:06.540 0:36:06.540,0:36:12.740 0:36:12.740,0:36:20.260 0:36:20.260,0:36:26.800 0:36:26.800,0:36:34.530 0:36:34.530,0:36:41.400 0:36:41.400,0:36:45.550 0:36:45.550,0:36:49.470 0:36:49.470,0:36:56.240 0:36:56.240,0:37:02.740 0:37:02.740,0:37:09.290 0:37:09.290,0:37:15.940 0:37:15.940,0:37:20.620 0:37:20.620,0:37:25.510 0:37:25.510,0:37:32.730 0:37:32.730,0:37:39.520 0:37:39.520,0:37:44.760 0:37:44.760,0:37:51.200 0:37:51.200,0:37:54.310 0:37:54.310,0:37:59.920 0:37:59.920,0:38:03.020 0:38:03.020,0:38:08.410 0:38:08.410,0:38:13.490 0:38:13.490,0:38:18.210 0:38:18.210,0:38:23.910 0:38:23.910,0:38:31.840 0:38:31.840,0:38:37.505 0:38:37.505,0:38:43.800 0:38:43.800,0:38:48.990 0:38:48.990,0:38:54.850 0:38:54.850,0:39:05.140 0:39:05.140,0:39:11.760 0:39:11.760,0:39:15.970 0:39:15.970,0:39:21.210 0:39:21.210,0:39:27.461 0:39:27.461,0:39:31.950 0:39:31.950,0:39:36.910 0:39:36.910,0:39:43.400 0:39:43.400,0:39:49.720 0:39:49.720,0:39:54.020 0:39:54.020,0:39:58.730 0:39:58.730,0:40:03.730 0:40:03.730,0:40:08.840 0:40:08.840,0:40:13.710 0:40:13.710,0:40:20.050 0:40:20.050,0:40:23.190 0:40:23.190,0:40:27.170 0:40:27.170,0:40:30.300 0:40:30.300,0:40:34.330 0:40:34.330,0:40:40.500 0:40:40.500,0:40:45.900 0:40:45.900,0:40:52.180 0:40:52.180,0:40:56.820 0:40:56.820,0:41:03.340 0:41:03.340,0:41:09.400 0:41:09.400,0:41:15.910 0:41:15.910,0:41:21.210 0:41:21.210,0:41:25.950 0:41:25.950,0:41:29.970 0:41:29.970,0:41:34.180 0:41:34.180,0:41:39.750 0:41:39.750,0:41:44.737 0:41:44.737,0:41:58.042 0:41:57.048,0:42:01.400 0:42:01.400,0:42:16.000