Contents

Säkerhetspodcasten avs.71 - HTTP2 & Quic med Vyrus

Lyssna

mp3

Innehåll

Peter och Rikard intervjuar Vyrus under Sec-T 2016. De pratar om Quic - UDP för HTTPS, protokollet som Google har deployat worldwide. Varför är det coolt. hur kan det användas för pentester, data exfiltration, proxy escaping och mycket mer.

Inspelat: 2016-09-07. Längd: 00:26:31.

AI transkribering

AI försöker förstå oss… Ha överseende med galna feltranskriberingar.

1 00:00:00,000 --> 00:00:28,620 Hej allihopa, vi kör detta avsnitt av säkerhetspodcasten från Nalen och vi har precis avslutat en quiz tillsammans med ett gäng galna säkerhetsnördar på den här säkerhetskonferensen SEC-T som har bjudit på massor med spännande föredrag under dagen och nu har vi haft riktigt roligt på kvällen också.

2 00:00:30,000 --> 00:00:37,580 Ikväll så har jag med mig Peter Magnusson och Virus.

3 00:01:00,000 --> 00:01:15,300 Jag hade egentligen inte hört om det heller innan, men som jag sa på staden, orsaken till den här talen var att min kollega har gjort mycket forskning på multipath-TCP, som Apple använde för Siri, vilket är det som gjorde det berömda, men det var i utveckling innan.

4 00:01:15,300 --> 00:01:28,360 Och hon har gjort den här forskningen och i allmänhet tittat på sidkanal-attacker och multiplexing-möjligheter och implementerat multiplexing som sidkanal för saker som C2.

5 00:01:30,000 --> 00:01:39,080 Och den här forskningen har ledt henne till det här som kallas QUIC, quick UDP internet control, och hon har verkligen bara skickat mig en message.

6 00:01:39,080 --> 00:01:53,940 Jag bor i Storbritannien och hon bor i Nya Zeland och hon har bara skickat mig en message över interna workchat en dag och hon har sagt att hon kanske vill skicka det här till Black Hat, jag tror att jag ska försöka skriva en tal om QUIC, tror du att du kan skriva en vapen om det?

7 00:01:53,940 --> 00:01:57,900 Och jag bara, vad vill du? Hon bara, något säkerhetsrelaterat.

8 00:01:57,900 --> 00:01:59,980 För hon är mer av en, läs RFC.

9 00:02:00,000 --> 00:02:05,280 Någon typ av person och inte en sån som är hardcore, så kallad Gray Hat Security.

10 00:02:05,280 --> 00:02:07,820 Och så tänkte jag, okej jag tar en titt på det, jag har ingen aning om vad det är.

11 00:02:07,820 --> 00:02:09,820 Men du kan hitta fantastiska saker i RFC.

12 00:02:09,820 --> 00:02:16,240 Ja, jag menar, bara googla QUIC och läsa wikipedjan var, åh, det är vad det är.

13 00:02:16,240 --> 00:02:20,740 Och sen scrollar du ner och går till att utnyttja det och det är alla instanser av Chrome efter en version.

14 00:02:20,740 --> 00:02:25,120 Och jag bara, åh, åh verkligen, jag tror att det är varje ställe.

15 00:02:25,120 --> 00:02:29,640 Jag tror att, innan vi går in i detaljerna.

16 00:02:29,640 --> 00:02:38,320 För det här är, jag menar, jag tror att vi kan prata mycket om det här, men kan du, kan du gärna introducera dig själv, vem du är, vem du arbetar för?

17 00:02:38,320 --> 00:02:47,760 Ja, jag heter Carl, jag arbetar för Cisco just nu, jag blev tillbaka via en tillgänglighet, jag jobbade för ett företag som kallades Neo Hapsis.

18 00:02:47,760 --> 00:02:52,920 Och de, du vet, köpte oss, så nu, de senaste några åren har jag varit en Cisco-ledare.

19 00:02:52,920 --> 00:02:59,480 Och, nästan som de flesta, jag menar jag kan gå in i hela livet, men nästan hela min hela karriär.

20 00:02:59,480 --> 00:03:02,560 Jag har jobbat med en massa blända threater, typ red team-typer av saker.

21 00:03:02,560 --> 00:03:12,360 Både externa nätverk, interna nätverk, wireless, webbapplikation, säkerhet, en jäkla del fysiska, och andra.

22 00:03:12,360 --> 00:03:25,600 Jag menar, data-exploitation-assesseringar, binära och reverse-ingenjörer, lite exploit-dev, jag är lite av den extrema versionen av Jack of All Trades, Master of None, vilket man måste vara för att jobba med blända threat-assesseringar, eller hur?

23 00:03:25,600 --> 00:03:27,600 Ja, fantastiskt.

24 00:03:27,600 --> 00:03:28,600 Och du, och du gjorde…

25 00:03:28,600 --> 00:03:29,280 Ja, fantastiskt. Och du, och du gjorde…

26 00:03:29,280 --> 00:03:48,160 Jag gjorde en demo, och började visa, och allt du visade var webbrowsern, som tittade på Youtube, och tittade på Google, och alla de sakerna som inte nödvändigtvis är väldigt imponerande.

27 00:03:48,160 --> 00:03:49,160 Ja.

28 00:03:49,160 --> 00:03:50,160 Och sen säger du…

29 00:03:50,160 --> 00:03:51,160 Men TCP är avslutad.

30 00:03:51,160 --> 00:03:52,160 TCP är helt blockerat.

31 00:03:52,160 --> 00:03:53,160 Ja.

32 00:03:53,160 --> 00:03:54,160 I båda hållen.

33 00:03:54,160 --> 00:03:55,160 Ja.

34 00:03:55,160 --> 00:03:56,160 Och hur fungerar det?

35 00:03:56,160 --> 00:03:57,160 Ja.

36 00:03:57,160 --> 00:03:58,160 Och hur fungerar det?

37 00:03:58,160 --> 00:04:03,040 Allt som säger HTTP eller HTTPS är TCP, är det inte?

38 00:04:03,040 --> 00:04:05,040 Det ser ut så.

39 00:04:05,040 --> 00:04:06,040 Nej.

40 00:04:06,040 --> 00:04:17,040 Ja, och faktiskt var det den enda demo som jag inte skrev, Kate skrev den, för det var bara att ladda Chrome och browsa på webben, det var den demo.

41 00:04:17,040 --> 00:04:23,040 Men det är ändå ganska imponerande om nätverkstraffiken är blockad.

42 00:04:23,040 --> 00:04:24,040 Ja.

43 00:04:24,040 --> 00:04:30,920 Men det som är kul är att det enda annat än nätverkstraffiken som du behöver för att göra det fungerar är DNS, vilket också är UDP.

44 00:04:30,920 --> 00:04:31,920 Ja.

45 00:04:31,920 --> 00:04:34,920 Så du kan faktiskt bara avsluta hela TCP och det fungerar.

46 00:04:34,920 --> 00:04:35,920 Det är fantastiskt.

47 00:04:35,920 --> 00:04:52,920 Och ja, så från där började du förklara vad F-Quick är, och du berättade att det här är HTTP 2.

48 00:04:52,920 --> 00:04:53,920 Ja.

49 00:04:53,920 --> 00:04:59,800 Och den kortaste sättet att förklara det är, så HTTP 2 har varit runt länge så att folk vet att det finns.

50 00:04:59,800 --> 00:05:07,800 Det är implementerat i, du vet, åtminstone i de 15-20 världens webbsidor. Alla stora browsar är stödjade på något sätt.

51 00:05:07,800 --> 00:05:16,800 Och utan att gå in i skälet, HTTP 2 är egentligen bara, du vet, den nästa gradueringen av SPDY.

52 00:05:16,800 --> 00:05:20,800 Och om du inte vet vad det är, så borde du säkert bara wikia, för annars är vi här hela natten.

53 00:05:20,800 --> 00:05:21,800 Ja.

54 00:05:21,800 --> 00:05:23,800 Och det är, ja, det är samma.

55 00:05:23,800 --> 00:05:29,800 Det är inte samma saker och mer som HTTP 1, men det är ett binäriskt protokoll baserat på framsteg, så det är bidirektionellt.

56 00:05:29,800 --> 00:05:32,800 Och du öppnar upp en TCP-säkring och du förklarar framsteg.

57 00:05:32,800 --> 00:05:33,800 Ja.

58 00:05:33,800 --> 00:05:41,800 F-Quick är att ta de framstegen och väcka dem med UDP istället för TLS TCP-IP.

59 00:05:41,800 --> 00:05:50,800 Och de använder några regler på deras egen TLS och, du vet, några sessionhandling i stället för att förbättra multiplexing.

60 00:05:50,800 --> 00:05:52,800 Men det är, det blir inte så mycket mer komplicerat än det.

61 00:05:52,800 --> 00:05:54,800 Det är bara en sammanfattning runt HTTP-säkringar.

62 00:05:54,800 --> 00:06:05,800 Och du har också, i dina demoer, visat att även om du tittar på detta i Wireshark, så kommer det inte ut i en bra formaterad mån.

63 00:06:05,800 --> 00:06:11,800 Du måste veta vad du tittar på för att få någon information om det.

64 00:06:11,800 --> 00:06:19,800 Ja, så länge du inte flyttar portarna, så länge du tittar på QYC över sina standardportar, vilka är 80 och 443.

65 00:06:19,800 --> 00:06:20,800 Ja.

66 00:06:20,800 --> 00:06:23,800 Då kommer Wireshark att uppdatera det.

67 00:06:23,800 --> 00:06:29,800 Och sen kan du klicka på det och från det punktet, du vet, det har TLS inbjudit och Google visst pinnar alla sina certs.

68 00:06:29,800 --> 00:06:31,800 Men på det punktet är det lite standard, eller hur?

69 00:06:31,800 --> 00:06:38,800 Du tar bort din UDP-stream för att Wireshark är intelligenta i att om den vet att den tittar på QYC,

70 00:06:38,800 --> 00:06:44,800 så kan den intelligently tracka en connection-stream, som är, du vet, annorlunda än en socket-stream, för det är inte samma sak.

71 00:06:44,800 --> 00:06:46,800 Och sen kan du säga, okej, här är min key.

72 00:06:46,800 --> 00:06:47,800 Dekryp trafik.

73 00:06:47,800 --> 00:06:48,800 Och du får H2 utav det.

74 00:06:48,800 --> 00:06:49,800 Och du kan säga, okej, du vet.

75 00:06:49,800 --> 00:06:53,800 Dekompressa min H2 och sen unenkrypta min H2.

76 00:06:53,800 --> 00:06:58,800 Och sen får du faktiskt något som ser ut som data till människor.

77 00:06:58,800 --> 00:07:06,800 Men problemet är att QYC är så nytt och överhållandet för paketet är så lätt

78 00:07:06,800 --> 00:07:10,800 att oavsett om du parsar hela det här, det är lite svårt att se det på något annat sätt.

79 00:07:10,800 --> 00:07:12,800 Parsarna måste vara bättre, i princip.

80 00:07:12,800 --> 00:07:17,800 Och så faktiskt, jag har några demoer som jag inte har tid att ta in,

81 00:07:17,800 --> 00:07:19,800 bara för att det skulle ha varit en 3-hållande talning.

82 00:07:19,800 --> 00:07:21,800 För att det skulle ha varit en 3-hållande talning.

83 00:07:21,800 --> 00:07:28,800 Jag har redan skrivit en snabb sensor, en snabb detektor, som du bara kan röra.

84 00:07:28,800 --> 00:07:32,800 Och på vilken port det kommer att parsa tillräckligt av paketet för att det ska vara snabbt.

85 00:07:32,800 --> 00:07:37,800 Och sättet jag skrev det var att jag tittade på parsarlogiken, jag tittade på specket,

86 00:07:37,800 --> 00:07:42,800 och sen för att få en bra implementering av hur man kan göra en del av matematiken så lätt

87 00:07:42,800 --> 00:07:46,800 med en del av mittskiftningen, så tittade jag faktiskt på NTOP.

88 00:07:46,800 --> 00:07:53,800 Och NTOP har troligtvis den bästa, snabba parsaren som är tillgänglig just nu.

89 00:07:53,800 --> 00:07:57,800 Och den tittar bara på den första delen av hemmet, och gör lite bitskiftningsmatik.

90 00:07:57,800 --> 00:08:01,800 Och om det fungerar, och det är på rätt port, så tror jag att det är QYC.

91 00:08:01,800 --> 00:08:04,800 Men ja, Wireshark gör inget av det, för det är nära att göra det.

92 00:08:04,800 --> 00:08:06,800 Men kommer NTOP att detektera det?

93 00:08:06,800 --> 00:08:08,800 För det mesta.

94 00:08:08,800 --> 00:08:10,800 Om du skruvar på porten, nej.

95 00:08:10,800 --> 00:08:14,800 Men med väldigt lite modifiering så skulle det troligtvis vara bättre än de flesta verktygen.

96 00:08:14,800 --> 00:08:15,800 Men det är nog inte så.

97 00:08:15,800 --> 00:08:19,800 Men det är därför jag på slutet av min tal, min joke är att jag är ganska säker på att jag har skrivit

98 00:08:19,800 --> 00:08:21,800 den bästa QYC-detektorn där ute.

99 00:08:21,800 --> 00:08:25,800 För jag har faktiskt skrivit en marschaller för hela paketet.

100 00:08:25,800 --> 00:08:26,800 Coolt.

101 00:08:26,800 --> 00:08:32,800 Och QYC var TLS-enkryterad.

102 00:08:32,800 --> 00:08:36,800 Det måste vara det TLS-flavor av TLS, eller hur?

103 00:08:36,800 --> 00:08:38,800 Eftersom det är över UDP?

104 00:08:38,800 --> 00:08:40,800 Det är…

105 00:08:40,800 --> 00:08:45,800 Den enda implementeringen jag har sett, som är Googles, är jag tror jag TLS 1.1.

106 00:08:45,800 --> 00:08:50,800 Och jag förutsätter att de uppdaterar det som nödvändigt.

107 00:08:50,800 --> 00:08:51,800 Ja, ja, ja.

108 00:08:51,800 --> 00:08:52,800 Jag vet inte.

109 00:08:52,800 --> 00:08:59,800 Det som är intressant är att hittills mandaterar HTTP 2 också TLS.

110 00:08:59,800 --> 00:09:01,800 Eller mandaterar SSL.

111 00:09:01,800 --> 00:09:04,800 Vilket är lite oerhört.

112 00:09:04,800 --> 00:09:11,800 För Google-implementeringen är sammanfattad med H2 så att den är nära H2C.

113 00:09:11,800 --> 00:09:13,800 Vilket missar krypto.

114 00:09:13,800 --> 00:09:14,800 Men…

115 00:09:14,800 --> 00:09:16,800 Du vet, du har…

116 00:09:16,800 --> 00:09:18,800 Det är verkligen bara att konceptet med socket…

117 00:09:18,800 --> 00:09:21,800 När du förändrar konceptet med socket, för du går från TCP till UDP,

118 00:09:21,800 --> 00:09:23,800 så förändrar du också konceptet med TLS.

119 00:09:23,800 --> 00:09:24,800 Du måste göra det.

120 00:09:24,800 --> 00:09:27,800 Så det är lite oerhört för mig att stanna på en sida eller annan och säga

121 00:09:27,800 --> 00:09:28,800 att de gjorde det fel.

122 00:09:28,800 --> 00:09:30,800 Nej, det är så oerhört.

123 00:09:30,800 --> 00:09:35,800 Att det enda sättet att göra det rätt är att implementera QYC som sin egen sak

124 00:09:35,800 --> 00:09:38,800 och sen föda standard H2-paket till det.

125 00:09:38,800 --> 00:09:40,800 Och det skulle ha varit, jag är säker på, i stället för att man skulle kunna göra mer.

126 00:09:40,800 --> 00:09:42,800 Så de gjorde inte det.

127 00:09:42,800 --> 00:09:49,800 Jag läste en tweet idag om att Chrome nu berättar om

128 00:09:49,800 --> 00:09:55,800 någonting som inte är enkrypterat som oerhört säkert.

129 00:09:55,800 --> 00:10:03,800 Så jag tror att de verkligen försöker mot TLS-allt.

130 00:10:03,800 --> 00:10:04,800 Ja.

131 00:10:04,800 --> 00:10:06,800 Jag menar, du kan inte ens röra…

132 00:10:06,800 --> 00:10:10,800 Det finns ingen implementering av QYC som rör sig utan TLS.

133 00:10:10,800 --> 00:10:12,800 Och om du ville försöka göra det…

134 00:10:12,800 --> 00:10:14,800 Även när det gäller specifikeringen…

135 00:10:14,800 --> 00:10:19,800 Jag måste titta på mina noter, men jag tror inte att det är helt möjligt.

136 00:10:19,800 --> 00:10:22,800 Även om du ville bygga din egen implementering som inte använde TLS,

137 00:10:22,800 --> 00:10:24,800 så tror jag inte att du kunde göra det.

138 00:10:24,800 --> 00:10:26,800 Det skulle vara svårt, åtminstone.

139 00:10:26,800 --> 00:10:29,800 På ett visst sätt måste du tro att en viss område är nul.

140 00:10:29,800 --> 00:10:34,800 För den verkliga protokollspecifikationen har plats för TLS-handshaken,

141 00:10:34,800 --> 00:10:39,800 den första delen av TLS-handshaken, i den första paketen som sätter upp sessionen.

142 00:10:39,800 --> 00:10:41,800 Vad tror du…

143 00:10:41,800 --> 00:10:45,800 Jag menar, bara tittar jag på den här protokollen…

144 00:10:45,800 --> 00:10:47,800 Vad kan den användas för?

145 00:10:47,800 --> 00:10:51,800 Jag tänker plötsligt på…

146 00:10:51,800 --> 00:10:54,800 Kanske använda den för…

147 00:10:54,800 --> 00:10:56,800 Covert-kanaler…

148 00:10:56,800 --> 00:10:57,800 För…

149 00:10:57,800 --> 00:10:59,800 Exfiltrerande information…

150 00:10:59,800 --> 00:11:00,800 Med…

151 00:11:00,800 --> 00:11:02,800 Passa genom…

152 00:11:02,800 --> 00:11:03,800 Ja…

153 00:11:03,800 --> 00:11:04,800 Färgvallar…

154 00:11:04,800 --> 00:11:05,800 Och…

155 00:11:05,800 --> 00:11:06,800 Routerfilter…

156 00:11:06,800 --> 00:11:07,800 Och allt sånt.

157 00:11:07,800 --> 00:11:09,800 Jag menar, vilken protokoll som finns…

158 00:11:09,800 --> 00:11:10,800 Det är…

159 00:11:10,800 --> 00:11:12,800 En man har C2 som en annan persons…

160 00:11:12,800 --> 00:11:13,800 Du vet…

161 00:11:13,800 --> 00:11:15,800 Sida-kanal som en annan persons effektivitetsprotokoll, eller hur?

162 00:11:15,800 --> 00:11:16,800 Jag menar, i slutet av dagen…

163 00:11:16,800 --> 00:11:17,800 En proxy är en proxy är en proxy.

164 00:11:17,800 --> 00:11:18,800 Ja.

165 00:11:18,800 --> 00:11:19,800 Så det kan…

166 00:11:19,800 --> 00:11:21,800 Jag menar, för att svara på en fråga kan den användas för allt.

167 00:11:21,800 --> 00:11:23,800 Och allt.

168 00:11:23,800 --> 00:11:27,800 För saker som den är särskilt bra på…

169 00:11:27,800 --> 00:11:28,800 Jag menar, jag kommer inte in i grunden.

170 00:11:28,800 --> 00:11:29,800 Inte för att jag…

171 00:11:29,800 --> 00:11:30,800 Är sekretiv.

172 00:11:30,800 --> 00:11:31,800 Men bara för att vi inte har tid.

173 00:11:31,800 --> 00:11:32,800 Men…

174 00:11:32,800 --> 00:11:36,800 Det finns några otroliga möjligheter när det gäller att skriva…

175 00:11:36,800 --> 00:11:38,800 Implantationer…

176 00:11:38,800 --> 00:11:40,800 Eller testpilot för pen-test…

177 00:11:40,800 --> 00:11:41,800 Att göra det…

178 00:11:41,800 --> 00:11:43,800 Särskilt på grund av sin möjlighet att multiplexa.

179 00:11:43,800 --> 00:11:44,800 Du vet, som vi pratade om.

180 00:11:44,800 --> 00:11:47,800 Den kontaktträckningen av Quick händer på applikationslayern.

181 00:11:47,800 --> 00:11:49,800 Och hela implementeringen…

182 00:11:49,800 --> 00:11:50,800 Det i sig…

183 00:11:50,800 --> 00:11:51,800 Ja.

184 00:11:51,800 --> 00:11:52,800 Gör det…

185 00:11:52,800 --> 00:11:53,800 Du vet…

186 00:11:53,800 --> 00:11:54,800 En mörker för att decodera…

187 00:11:54,800 --> 00:11:55,800 Ja.

188 00:11:55,800 --> 00:11:56,800 Ja.

189 00:11:56,800 --> 00:11:57,800 Det är en mörker att hitta.

190 00:11:57,800 --> 00:11:58,800 För man kan inte bara titta på sys-kallar.

191 00:11:58,800 --> 00:11:59,800 Jag menar…

192 00:11:59,800 --> 00:12:00,800 Nej.

193 00:12:00,800 --> 00:12:01,800 Du vet…

194 00:12:01,800 --> 00:12:02,800 Det är bara en rå paket som skapas på röret.

195 00:12:02,800 --> 00:12:03,800 Men från en kapacitetsperspektiv…

196 00:12:03,800 --> 00:12:04,800 Det betyder att…

197 00:12:04,800 --> 00:12:05,800 Protokollet…

198 00:12:05,800 --> 00:12:06,800 Inherentligen…

199 00:12:06,800 --> 00:12:07,800 Sätts för saker som…

200 00:12:07,800 --> 00:12:08,800 Nätverk…

201 00:12:08,800 --> 00:12:09,800 Ja.

202 00:12:09,800 --> 00:12:10,800 Eller…

203 00:12:10,800 --> 00:12:11,800 White noise unilateral tracking.

204 00:12:11,800 --> 00:12:13,800 Och det har krypto byggt in.

205 00:12:13,800 --> 00:12:14,800 Och det är otroligt snabbt.

206 00:12:14,800 --> 00:12:16,800 Eftersom all träckningen händer på applikationslayern.

207 00:12:16,800 --> 00:12:17,800 Du behöver inte bry dig om threading.

208 00:12:17,800 --> 00:12:18,800 Och…

209 00:12:18,800 --> 00:12:19,800 Jag menar…

210 00:12:19,800 --> 00:12:20,800 Om du tänker på…

211 00:12:20,800 --> 00:12:21,800 Att skriva…

212 00:12:21,800 --> 00:12:22,800 Till exempel…

213 00:12:22,800 --> 00:12:23,800 Om vi skulle ta…

214 00:12:23,800 --> 00:12:24,800 Tor…

215 00:12:24,800 --> 00:12:25,800 Speck…

216 00:12:25,800 --> 00:12:26,800 Och bara skicka bort HTTP-transporten.

217 00:12:26,800 --> 00:12:27,800 Ja.

218 00:12:27,800 --> 00:12:28,800 Och förändra det med Quick.

219 00:12:28,800 --> 00:12:29,800 Och sen förbättra det med Self-mesh.

220 00:12:29,800 --> 00:12:30,800 Haha.

221 00:12:30,800 --> 00:12:31,800 Just det.

222 00:12:31,800 --> 00:12:32,800 Ja.

223 00:12:32,800 --> 00:12:33,800 Det är…

224 00:12:33,800 --> 00:12:34,800 Kapaciteterna är…

225 00:12:34,800 --> 00:12:35,800 Riddikulösa.

226 00:12:35,800 --> 00:12:36,800 Ja.

227 00:12:36,800 --> 00:12:37,800 Men…

228 00:12:37,800 --> 00:12:38,800 Du kan också säga att…

229 00:12:38,800 --> 00:12:39,800 Du vet…

230 00:12:39,800 --> 00:12:40,800 Det här kan vara ett steg till…

231 00:12:40,800 --> 00:12:41,800 Till den…

232 00:12:41,800 --> 00:12:42,800 Den…

233 00:12:42,800 --> 00:12:43,800 Den…

234 00:12:43,800 --> 00:12:44,800 Verkliga…

235 00:12:44,800 --> 00:12:45,800 Anonyma…

236 00:12:45,800 --> 00:12:46,800 Anonyma…

237 00:12:46,800 --> 00:12:47,800 Som vi alla vill.

238 00:12:47,800 --> 00:12:48,800 Jag trodde att ditt tal var fantastiskt.

239 00:12:48,800 --> 00:12:49,800 Men jag…

240 00:12:49,800 --> 00:12:50,800 Jag fick bara en annan förändring.

241 00:12:50,800 --> 00:12:51,800 Haha.

242 00:12:51,800 --> 00:12:52,800 Fy fan.

243 00:12:52,800 --> 00:12:53,800 Jag har faktiskt några…

244 00:12:53,800 --> 00:12:54,800 Jag menar…

245 00:12:54,800 --> 00:12:55,800 Jag…

246 00:12:55,800 --> 00:12:56,800 Och…

247 00:12:56,800 --> 00:12:57,800 Och folk vet inte om det här.

248 00:12:57,800 --> 00:12:58,800 Jag menar…

249 00:12:58,800 --> 00:12:59,800 Jag vet inte om det här.

250 00:12:59,800 --> 00:13:00,800 Det är…

251 00:13:00,800 --> 00:13:01,800 Det här var nyheter för mig.

252 00:13:01,800 --> 00:13:02,800 Jag tror inte att någon av er vet om det.

253 00:13:02,800 --> 00:13:03,800 Ja.

254 00:13:03,800 --> 00:13:04,800 Jag menar…

255 00:13:04,800 --> 00:13:05,800 Det var där…

256 00:13:05,800 --> 00:13:06,800 Det var en av de saker som bara var där.

257 00:13:06,800 --> 00:13:07,800 Och ingen av oss läste boken.

258 00:13:07,800 --> 00:13:08,800 Men…

259 00:13:08,800 --> 00:13:09,800 Innan du kom hit…

260 00:13:09,800 --> 00:13:10,800 Skämde du allt.

261 00:13:10,800 --> 00:13:11,800 Mm.

262 00:13:11,800 --> 00:13:12,800 Som…

263 00:13:12,800 --> 00:13:13,800 Som…

264 00:13:13,800 --> 00:13:14,800 Vad är titlarna?

265 00:13:14,800 --> 00:13:15,800 Och jag tittade på detta.

266 00:13:15,800 --> 00:13:16,800 Och…

267 00:13:16,800 --> 00:13:17,800 Min…

268 00:13:17,800 --> 00:13:18,800 Min vaka idé var…

269 00:13:18,800 --> 00:13:19,800 Vi går och tittar på…

270 00:13:19,800 --> 00:13:20,800 Någon…

271 00:13:20,800 --> 00:13:21,800 Protokoll för…

272 00:13:21,800 --> 00:13:22,800 Någon…

273 00:13:22,800 --> 00:13:23,800 Kommunikation…

274 00:13:23,800 --> 00:13:24,800 Någon…

275 00:13:24,800 --> 00:13:25,800 Någon…

276 00:13:25,800 --> 00:13:26,800 Någon…

277 00:13:26,800 --> 00:13:27,800 Någon…

278 00:13:27,800 --> 00:13:28,800 Någon…

279 00:13:28,800 --> 00:13:29,800 Någon…

280 00:13:29,800 --> 00:13:30,800 Någon…

281 00:13:30,800 --> 00:13:31,800 Någon…

282 00:13:31,800 --> 00:13:32,800 Någon…

283 00:13:32,800 --> 00:13:33,800 Någon…

284 00:13:33,800 --> 00:13:34,800 Någon…

285 00:13:34,800 --> 00:13:35,800 Någon…

286 00:13:35,800 --> 00:13:36,800 Någon…

287 00:13:36,800 --> 00:13:37,800 Någon…

288 00:13:37,800 --> 00:13:38,800 Någon…

289 00:13:38,800 --> 00:13:39,800 Någon…

290 00:13:39,800 --> 00:13:40,800 Någon…

291 00:13:40,800 --> 00:13:41,800 Någon…

292 00:13:41,800 --> 00:13:42,800 Någon…

293 00:13:42,800 --> 00:13:43,800 Någon…

294 00:13:43,800 --> 00:13:44,800 Någon…

295 00:13:44,800 --> 00:13:45,800 Någon…

296 00:13:45,800 --> 00:13:46,800 Någon…

297 00:13:46,800 --> 00:13:47,800 Någon…

298 00:13:47,800 --> 00:13:48,800 Någon…

299 00:13:48,800 --> 00:13:49,800 Någon…

300 00:13:49,800 --> 00:13:50,800 Någon…

301 00:13:50,800 --> 00:13:51,800 Någon…

302 00:13:51,800 --> 00:13:52,800 Någon…

303 00:13:52,800 --> 00:13:53,800 Någon…

304 00:13:53,800 --> 00:13:54,800 Någon…

305 00:13:54,800 --> 00:13:55,800 Någon…

306 00:13:55,800 --> 00:13:56,800 Någon…

307 00:13:56,800 --> 00:13:57,800 Någon…

308 00:13:57,800 --> 00:13:58,800 Någon…

309 00:13:58,800 --> 00:13:59,800 альные…

310 00:13:59,800 --> 00:14:00,800 Någon…

311 00:14:00,800 --> 00:14:01,800 Någon…

312 00:14:01,800 --> 00:14:02,800 Någon…

313 00:14:02,800 --> 00:14:03,800 Nina…

314 00:14:03,800 --> 00:14:04,800 Någon…

315 00:14:04,800 --> 00:14:05,800 Någon…

316 00:14:05,800 --> 00:14:06,800 Någon…

317 00:14:06,800 --> 00:14:07,800 Någon…

318 00:14:07,800 --> 00:14:18,660 If you want to decline to answer, but have you seen any, what should I say?

319 00:14:19,740 --> 00:14:20,640 Like nefarious uses?

320 00:14:20,820 --> 00:14:21,100 Yes.

321 00:14:21,380 --> 00:14:22,780 I haven’t seen any directly.

322 00:14:23,360 --> 00:14:27,300 I’ve heard that at least one supposedly exists.

323 00:14:28,300 --> 00:14:34,720 I have talked to at least one other pen tester who works kind of sort of in the federal space

324 00:14:34,720 --> 00:14:37,560 who claims that he’s been using it for a couple of years to do stuff.

325 00:14:37,800 --> 00:14:44,180 But at my talk at Black Hat, I’ve got some payload stuff that since obviously doing this research

326 00:14:44,180 --> 00:14:48,160 now that I have the code, I just plug it into my existing implants and I can use it on assessments.

327 00:14:49,060 --> 00:14:54,660 And I have some plans to hopefully release some more robust, a little more exotic code in the future.

328 00:14:54,660 --> 00:14:58,720 But I haven’t heard of anything explicitly of people using it to like bypass firewalls.

329 00:14:58,720 --> 00:15:07,420 One more question, maybe this is retarded, but what, since I guess you and your colleague have at least

330 00:15:07,420 --> 00:15:07,660 one or two questions.

331 00:15:07,800 --> 00:15:11,520 I think that the RFCs, your colleague has looked at it a lot more than you.

332 00:15:12,160 --> 00:15:16,680 But what are the key reasoning behind implementing this?

333 00:15:16,860 --> 00:15:22,220 I mean, it’s a fairly important move to change the infrastructure of the internet.

334 00:15:22,400 --> 00:15:27,960 Why did Google, one, invent it and two, deploy it?

335 00:15:27,960 --> 00:15:36,220 So some of that was some of the stuff I kind of ripped out of the Black Hat talk because of time for this event.

336 00:15:36,540 --> 00:15:36,960 And I highly, I mean, that is…

337 00:15:37,800 --> 00:15:42,400 I think it was public, or at least will be public, and I know the slides are public as of this recording.

338 00:15:42,400 --> 00:15:43,700 So I highly recommend everybody.

339 00:15:44,420 --> 00:15:50,120 Also, we did a talk at the Capture the Packet Village at DEF CON, which is a much more technical version

340 00:15:50,120 --> 00:15:53,440 of what we gave at Black Hat, much more similar to this talk.

341 00:15:54,120 --> 00:15:59,760 It was a little heavier on the demo, but it was a little more hackneyed together because Black Hat was the focus.

342 00:16:00,100 --> 00:16:07,460 And also, I was silly and was writing a HTTP2 multiplexing demo on stage,

343 00:16:07,560 --> 00:16:07,680 which in the end was a little more technical.

344 00:16:07,680 --> 00:16:07,760 So I think it was a little more technical.

345 00:16:07,760 --> 00:16:07,780 I think it was a little more technical.

346 00:16:07,780 --> 00:16:07,800 I think it was a little more technical.

347 00:16:07,800 --> 00:16:37,780 I think it was a little more technical.

348 00:16:37,780 --> 00:17:07,760 I think it was a little more technical.

349 00:17:07,760 --> 00:17:14,260 Those are some of the metrics kind of proving that at the end of the day, those escalations slow the web down.

350 00:17:14,440 --> 00:17:18,380 So things like this bring the speed and efficiency back to more manageable levels.

351 00:17:18,380 --> 00:17:30,640 Yeah, one of the complaints about TCP when I was really networking years ago was that you cannot handle packet loss nicely.

352 00:17:31,640 --> 00:17:37,000 If packet loss is acceptable, TCP is not the protocol for you.

353 00:17:37,000 --> 00:17:37,360 Yeah.

354 00:17:37,760 --> 00:17:47,380 So that means, so yeah, so like you talked about doing this for video chats and things like that, then it makes sense not using TCP.

355 00:17:47,640 --> 00:17:47,680 Yeah, yeah.

356 00:17:47,940 --> 00:17:55,140 It’s also worth noting that an actual, in Google spec, which is not implemented currently in the implementation that they’ve released to the public at least,

357 00:17:55,660 --> 00:17:59,680 they do have an earmarked and defined section for error correction.

358 00:18:00,400 --> 00:18:04,060 So, I mean, that is totally impossible with TCP.

359 00:18:04,060 --> 00:18:07,740 I mean, it’s, you know, change the sequence number of your whole session.

360 00:18:07,760 --> 00:18:16,080 So, just to, you know, recap for our listeners, where can you read up on this?

361 00:18:16,720 --> 00:18:25,140 So if you Google just the words QUIC and then like space Google, the first stuff that comes up is going to be the actual Google Docs.

362 00:18:25,260 --> 00:18:30,240 And that is without a doubt the best way to get information on the raw protocol itself.

363 00:18:30,340 --> 00:18:32,320 They call it a wiring diagram rather than an RFC.

364 00:18:32,740 --> 00:18:33,720 There is an RFC.

365 00:18:34,200 --> 00:18:35,400 Honestly, don’t start with the RFC.

366 00:18:35,540 --> 00:18:36,400 Start with the wiring diagram.

367 00:18:36,400 --> 00:18:37,740 The wiring diagram has the.

368 00:18:37,760 --> 00:18:41,260 There are full on diagrams of the packets and the order of the packets as their implementation.

369 00:18:41,840 --> 00:18:47,460 And, I mean, if you’re familiar enough with other binary protocols, if you’ve ever done any serial or things like that,

370 00:18:47,500 --> 00:18:52,480 you can pretty much read that document top to bottom and write implementation code.

371 00:18:52,700 --> 00:18:52,780 Yeah.

372 00:18:53,040 --> 00:19:05,200 Beyond that, the Google source that’s out there, the C source, is relatively straightforward in terms of orchestration and construction.

373 00:19:05,620 --> 00:19:07,540 And if you really just want to get.

374 00:19:07,760 --> 00:19:16,540 Like a toy client server running the Go abstraction that is from Google is what I used to write the demo that I launched today.

375 00:19:16,540 --> 00:19:24,480 I will say that for pretty much anything else, stick to the C because the Go abstraction is clearly an afterthought.

376 00:19:26,260 --> 00:19:27,500 And, you know, I mean, that’s fine.

377 00:19:27,840 --> 00:19:29,020 It’s announced as a toy.

378 00:19:29,120 --> 00:19:30,500 It’s not like they’re announcing it as production.

379 00:19:30,640 --> 00:19:33,740 So I’m not going to poke holes in whatever.

380 00:19:33,920 --> 00:19:37,720 But, yeah, for people who want to look at how the core.

381 00:19:37,760 --> 00:19:49,420 Of the implementation is being handled, I highly recommend looking at the C and basically just staying as far away as possible from the part where it calls the quote unquote boring SSL package under the hood.

382 00:19:49,960 --> 00:19:58,260 There is also, if you just want to get into the datagrams and you want to start messing with the protocol as abstracted from Google’s implementation as possible.

383 00:19:58,420 --> 00:20:03,520 There is a native Go attempt by somebody on GitHub.

384 00:20:03,680 --> 00:20:05,320 There’s a project that started about a year and a half ago.

385 00:20:05,400 --> 00:20:06,820 I don’t remember what it’s called offhand.

386 00:20:06,820 --> 00:20:07,500 But it’s.

387 00:20:07,760 --> 00:20:09,540 It’s in my slides and it’s referenced in the Black Hat talk.

388 00:20:10,400 --> 00:20:14,220 And that’s that’s pretty cool, except the client is not functional as of right now.

389 00:20:14,340 --> 00:20:14,880 But the server is.

390 00:20:15,200 --> 00:20:15,980 What about.

391 00:20:19,480 --> 00:20:24,340 I’m thinking about what Wireshark protocol decodes.

392 00:20:25,140 --> 00:20:28,960 Are there any initiatives to to improve that?

393 00:20:29,220 --> 00:20:29,540 No idea.

394 00:20:30,260 --> 00:20:31,020 But it’s not difficult.

395 00:20:31,380 --> 00:20:33,640 I mean, that I assume will just happen with time.

396 00:20:33,640 --> 00:20:37,440 It’s not like there’s any magic that one has to do to parse this stuff.

397 00:20:37,440 --> 00:20:46,060 Somebody just has to do the work and probably do the work to implement some of the math at the beginning, because the protocol’s got enough of a header that you can find it on the wire.

398 00:20:46,200 --> 00:20:47,220 You just got to know what to look for.

399 00:20:48,060 --> 00:20:56,100 So let’s say you’re one of those really paranoid enterprises which wants to lock down the use as much as possible.

400 00:20:56,960 --> 00:21:07,140 I will think one of the takeaways from your talk is that now it’s a really good time to double check that you’re really blocking UDP.

401 00:21:07,440 --> 00:21:20,460 I think it’s a really good time to move over both IPv4 and IPv6, because if you’re afraid of communication, well, everyone who has Chrome installed cannot browse anything over UDP.

402 00:21:20,880 --> 00:21:24,440 So it actually depends on where your paranoia lies in your threat model, right?

403 00:21:24,440 --> 00:21:24,940 Yeah, yeah.

404 00:21:25,260 --> 00:21:33,060 So the one thing you can do is, yeah, between Qwik and H2, you can back proxy H2 to H1.

405 00:21:33,180 --> 00:21:33,680 Yeah.

406 00:21:34,320 --> 00:21:37,440 And there are actually that’s what a lot of gateway devices do.

407 00:21:38,000 --> 00:21:53,180 You can also kill UDP specifically on ADN443, because right now nobody else outside of like me, you know, when having shells call back or somebody, you know, doing something ad hoc, nobody else is running it.

408 00:21:53,540 --> 00:21:55,680 And Google services run on ADN443.

409 00:21:55,820 --> 00:21:59,200 So if you block UDP on ADN443, that’s 90% of it right there.

410 00:21:59,460 --> 00:21:59,640 Yeah.

411 00:22:00,740 --> 00:22:07,420 Beyond that, if your threat model includes, like, if you’re afraid of…

412 00:22:07,420 --> 00:22:15,300 Oh my God, there’s this protocol that’s out there, and it could be an implant right now that I’m not catching, because my primary focus for catching implants is at the protocol layer.

413 00:22:15,520 --> 00:22:23,820 That’s where the paranoia gets weird, because, you know, like I said, I haven’t done enough research to be able to prove the existence of polyglots.

414 00:22:23,820 --> 00:22:26,620 But the way that the…

415 00:22:26,620 --> 00:22:37,400 There’s enough wiggle room in some of the frames that I would not be surprised if it turns out to be relatively easy compared to some of the other protocols doing, like, DNS polyglots or VoIP polyglots.

416 00:22:37,420 --> 00:22:44,560 I was going to say, you should let Peter’s colleague, Jonas, run crazy with this.

417 00:22:44,660 --> 00:22:44,860 Yeah, yeah, yeah.

418 00:22:45,960 --> 00:22:51,860 We have a friend who did his PhD on polyglots.

419 00:22:52,180 --> 00:22:52,420 Wow.

420 00:22:52,940 --> 00:22:55,860 He could go to town on this.

421 00:22:56,320 --> 00:22:57,480 I mean, I’ll put it this way.

422 00:22:57,620 --> 00:23:01,620 I’ve thrown this concept at good speed, and Meredith and both of them have gone, hmm.

423 00:23:01,620 --> 00:23:02,100 Yeah.

424 00:23:04,100 --> 00:23:04,620 Yeah.

425 00:23:05,780 --> 00:23:06,300 Yeah.

426 00:23:07,420 --> 00:23:07,700 Awesome.

427 00:23:08,200 --> 00:23:15,900 Anyway, thank you so much for taking time, you know, away from quiz night with us to give this interview.

428 00:23:16,060 --> 00:23:19,820 It’s much appreciated, and I know our listeners are appreciating this a lot.

429 00:23:20,800 --> 00:23:29,020 We also want to say that your talk will be up on YouTube on the SETI channel, so they can watch it.

430 00:23:29,260 --> 00:23:33,960 It was fast, even for a protocol nerd like myself.

431 00:23:35,360 --> 00:23:36,820 You know, I probably…

432 00:23:37,420 --> 00:23:41,120 We need to go back and review some things, but it was a very good talk.

433 00:23:41,800 --> 00:23:49,580 Well, the big thing for me was really the big surprise over this being deployed.

434 00:23:49,840 --> 00:23:50,080 Yeah.

435 00:23:50,080 --> 00:23:58,740 Yeah, that’s what’s surprising, because you talked a little bit about expected deployments rates based on other technologies,

436 00:23:59,160 --> 00:24:05,360 and you’re quite surprised when you learn that a new technology is deployed in all your networks.

437 00:24:06,200 --> 00:24:06,400 Yeah.

438 00:24:06,500 --> 00:24:07,080 Without you knowing it.

439 00:24:07,080 --> 00:24:07,200 Yeah.

440 00:24:07,960 --> 00:24:11,800 Google just decided that it’s time for you to change.

441 00:24:13,060 --> 00:24:13,500 Yeah.

442 00:24:13,640 --> 00:24:13,860 Yeah.

443 00:24:14,020 --> 00:24:15,040 They own the browser.

444 00:24:15,220 --> 00:24:16,080 They own the internet.

445 00:24:16,580 --> 00:24:17,340 Yeah, yeah, yeah.

446 00:24:17,880 --> 00:24:19,200 Well, it’s not just the browser.

447 00:24:19,200 --> 00:24:19,660 Let’s change protocols.

448 00:24:20,020 --> 00:24:20,860 It’s not just the browser.

449 00:24:20,980 --> 00:24:22,000 It’s the browser and the media.

450 00:24:22,140 --> 00:24:22,340 Yeah.

451 00:24:22,520 --> 00:24:24,480 Because, I mean, Apple could have done the same.

452 00:24:24,540 --> 00:24:26,340 Apple technically did do the same thing with MPTCP.

453 00:24:27,200 --> 00:24:30,940 It’s just that it didn’t matter, because the only service that they used it for was their own service,

454 00:24:31,040 --> 00:24:33,100 and that service wasn’t considered a standard service.

455 00:24:33,160 --> 00:24:33,280 No.

456 00:24:33,580 --> 00:24:36,340 With Google, even if we take away things like…

457 00:24:37,420 --> 00:24:42,160 You know, even if we take away YouTube, and we take away all of Google services,

458 00:24:43,300 --> 00:24:48,120 search and Gmail, I mean, that’s a giant chunk of the internet right there.

459 00:24:48,220 --> 00:24:48,400 Yeah.

460 00:24:48,900 --> 00:24:49,100 Yeah.

461 00:24:49,100 --> 00:24:49,180 Yeah.

462 00:24:50,760 --> 00:24:53,560 So, let’s say we’re closing up here, I think.

463 00:24:53,820 --> 00:24:53,960 Yeah.

464 00:24:54,240 --> 00:24:57,040 Is there anything you’d like to promote?

465 00:24:57,220 --> 00:25:04,960 Some personal project or anything else you would like our listeners to know about before we close down?

466 00:25:05,440 --> 00:25:06,400 Your own research.

467 00:25:06,640 --> 00:25:07,320 Where can you find it?

468 00:25:07,420 --> 00:25:09,000 I’ve got a GitHub.

469 00:25:09,380 --> 00:25:11,480 It is V-Y-R-U-S-001.

470 00:25:12,240 --> 00:25:16,960 And everything I’ve done over the past couple of years has mostly been on there.

471 00:25:17,060 --> 00:25:19,220 I have a couple of other things that are scattered around.

472 00:25:19,340 --> 00:25:23,240 Projects that I’ve been involved in that aren’t necessarily mine solely.

473 00:25:23,400 --> 00:25:24,320 They’re really with other people.

474 00:25:24,580 --> 00:25:27,120 But I’m kind of all over the map recently.

475 00:25:27,380 --> 00:25:29,960 Like, I’ve been doing stuff on distributed networks.

476 00:25:30,240 --> 00:25:33,300 Something called RatNet that came out of TorCamp a couple of months ago.

477 00:25:33,420 --> 00:25:34,380 That’s also on GitHub.

478 00:25:34,380 --> 00:25:36,160 It’s linked off of my page.

479 00:25:36,260 --> 00:25:37,240 But I did that with a friend.

480 00:25:37,240 --> 00:25:38,120 It’s called Ben Kurtz.

481 00:25:39,660 --> 00:25:46,920 And Josh Pitts has been using some of my research under the hood in a lot of the malware packing stuff that we’ve been playing with.

482 00:25:47,240 --> 00:25:51,040 And he, the last big release of that was Infiltrate last year.

483 00:25:51,580 --> 00:25:53,440 They dropped a package called Ebola.

484 00:25:53,820 --> 00:25:55,200 E-B-W-O-L-A.

485 00:25:55,680 --> 00:25:57,040 And that stuff’s pretty cool.

486 00:25:57,760 --> 00:25:57,940 Yeah.

487 00:25:58,200 --> 00:25:58,500 Awesome.

488 00:25:59,960 --> 00:26:00,440 Anyway.

489 00:26:01,920 --> 00:26:05,680 Very big thank you for giving this interview.

490 00:26:06,280 --> 00:26:06,500 And thank you.

491 00:26:07,240 --> 00:26:14,460 I hope our listeners go into the Säkti channel and look at your talk because it was awesome.

492 00:26:14,720 --> 00:26:15,720 I’m glad.

493 00:26:15,920 --> 00:26:16,700 I’m glad it was okay.

494 00:26:16,860 --> 00:26:17,260 Thank you.

495 00:26:17,680 --> 00:26:18,600 Thank you very much.

496 00:26:19,620 --> 00:26:22,100 Det var allt för Säkerhetspodcasten för i dag.

497 00:26:22,260 --> 00:26:25,440 Nu tänker vi gå ner och ta en öl eller två till.

498 00:26:26,080 --> 00:26:27,020 Ha det gott där ute.

499 00:26:27,300 --> 00:26:27,540 Hej.

500 00:26:27,540 --> 00:26:28,320 Hej då.

501 00:26:28,340 --> 00:26:28,400 Hej då.

502 00:26:28,420 --> 00:26:28,440 Hej då.

503 00:26:28,460 --> 00:26:28,480 Hej då.