Contents

Säkerhetspodcasten #150 - Reverse Engineering

Lyssna

mp3

Innehåll

I dagens avsnitt har panelen med sig Calle Svensson, också känd som ZetaTwo, för att diskutera reverse engineering, exploit-utveckling, CTFer och mycket mer!

Inspelat: 2019-04-10. Längd: 00:45:18.

AI transkribering

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

1 00:00:00,000 --> 00:00:26,760 Hej och välkommen till Säkerhetspodcasten, jag som pratar idag heter Johan Ryberg Möller, med mig har jag Peter Magnusson, Mattias Idage, Rickard Bofors, Jesper Larsson och dagens gäst Kalle Svensson, hela vägen från Stockholm, härligt, kul att ha dig här, vi ska gå in på dagens ämne om en liten stund men först lite plugs,

2 00:00:26,760 --> 00:00:55,860 ska vi börja med Securitfest kan jag höra, den viktigaste säkerhetskonferensen på rättssida Sverige, den är top of mind åtminstone för mig, mig med, ja Securitfest går av stapeln 23-24 maj, med trainings den 22 maj, bland annat hållda av den eminenta Kalle Svensson som sitter med oss här i studion, kommer vi att köra lite training om binary exploitation, exakt, så det ser vi fram emot, de flesta talare är nu, när detta kommer ut så börjar alla talare ligga uppe på sajten så det är läge att gå in och kolla och köpa biljetter,

3 00:00:56,760 --> 00:01:15,460 vi har haft en strykande åtgång av biljetter nu de sista två veckorna, det är väldigt roligt att se, får vi se om det blir fullt eller inte i år, men det känns så just nu, hoppas på det, ja det verkar bra, men så har du inte köpt din biljett än, köp, så sen har vi dessutom lite Ovasp-nyheter Mattias,

4 00:01:15,720 --> 00:01:26,740 det är faktiskt så att när vi spelar in det här, vilket ju ni kommer vara helt omedvetna om, så kör Ovasp en säkpub, det kommer säkert bli fel, men det är inte därför som vi ska plugga Ovasp, utan det är för att det har hänt grejer,

5 00:01:26,760 --> 00:01:45,280 på den digitala kommunikationssidan när det gäller Ovasp, den fantastiska mejlinlistan har krossats och delats i flera delar, så nu riskerar alla som var med på den gamla listan att missa allting fantastiskt som händer, varför gjorde ni så, det var en väldigt bra anledning för den gamla mejlinlistan sög,

6 00:01:45,720 --> 00:01:54,800 GDPR-skäl kan man alltid slänga sig med, det tror jag inte det var dock, den sög nog bara, det började komma upp spänn på den, nu är det bytt så nu kör man typ Google Groups eller något sånt där coolt,

7 00:01:54,880 --> 00:01:55,160 stämmer,

8 00:01:56,760 --> 00:02:03,640 och förr så var det ju så att i alla fall Stockholm och Göteborg körde en delad lista, nu är det unika lister för Göteborg och Stockholm och Jönköping,

9 00:02:03,800 --> 00:02:04,560 och varje chapter va?

10 00:02:04,800 --> 00:02:18,060 för varje chapter ja, och jag skulle ju kunna skriva, istället prata ur LN här, men det är inte bra radio, så att ramla in på Ovasps hemsida istället och leta upp Sverige chapterna, och så där finns det då länkar till de nya mejlinlisterna,

11 00:02:18,060 --> 00:02:26,740 så gör det annars så missar ni jävligt goa happenings runt omkring i Sverige, för det finns väl, nu ska vi se om jag inte kommer ihåg helt fel, det finns ju Jönköping och Göteborg och Stockholm och även Umeå,

12 00:02:26,760 --> 00:02:28,560 tror jag, har jag missat någon då?

13 00:02:29,160 --> 00:02:55,900 säkert, okej, bra, vem vet, men den som vill rätta oss kan ju gå in på Ovasps hemsida och titta, ja bra, mycket bra idé, precis, så får vi reda på det, det kommer hända, jajamän, vad har vi mer för kul, 0xFF, ja precis, har mejlat oss, ja det är ett nystartat community, säkerhetscommunity, meetup grej i Stockholm, i Stockholm, precis, de kör events ett par gånger i månaden typ,

14 00:02:55,900 --> 00:02:56,740 ja och meetup,

15 00:02:56,760 --> 00:02:58,940 det släpps generellt på pubbar och grejer, har jag förstått,

16 00:02:59,040 --> 00:03:01,360 och du ska prata där också, Kalle,

17 00:03:01,520 --> 00:03:18,340 ja, så jag kommer köra en första liten presentation om CTF, så det är ju imorgon, så det kommer ju redan ha hänt när det här släpps, men jag kommer köra också en workshop runt CTF och pröva på och lite guidning kring det också, senare i april, tror jag, det finns på hemsidan också,

18 00:03:18,340 --> 00:03:26,620 precis, det är 0xFF.se, och sen i maj så har de två events runt web security, så gå in och kolla där,

19 00:03:26,760 --> 00:03:30,320 tänker jag, det är en bra idé, om man vill förkovra sig,

20 00:03:31,000 --> 00:03:32,280 precis, och det låter väl som en bra grej,

21 00:03:32,500 --> 00:03:32,860 tycker jag,

22 00:03:33,040 --> 00:03:34,200 kul att Stockholm har vaknat,

23 00:03:35,520 --> 00:03:36,100 ja, exakt,

24 00:03:36,200 --> 00:03:36,600 äntligen,

25 00:03:36,720 --> 00:03:37,920 äntligen händer det någonting där,

26 00:03:38,080 --> 00:03:46,080 det har ju varit lite dåligt med aktiviteter i Stockholm, man sitter alltid lite avundsjukt på så här, oh wasp, Göteborg, och lyssnar och bara, oh nu var det event igen,

27 00:03:46,320 --> 00:03:54,360 min spaning är ju att det är därför som stockholmarna har velat splitta, för att de hamnar i så dåliga dagar, när det bara händer Göteborgsgrejer hela tiden,

28 00:03:54,640 --> 00:03:56,340 de får en massa hat-mail,

29 00:03:56,760 --> 00:03:58,400 varför händer det så mycket i Göteborg,

30 00:03:59,020 --> 00:04:00,040 men det är bra, flytta till Göteborg,

31 00:04:00,180 --> 00:04:02,040 ja, det är det faktiskt,

32 00:04:02,380 --> 00:04:04,460 de kan få en lokaltrafik,

33 00:04:04,980 --> 00:04:07,320 de kan byta lokaltrafik,

34 00:04:07,440 --> 00:04:08,580 jag har förstått det,

35 00:04:08,600 --> 00:04:11,460 i och med att jag bor i ett hål nu för tiden, och inte får gå ut och se människor,

36 00:04:11,940 --> 00:04:13,460 men jag kan läsa media fortfarande,

37 00:04:13,460 --> 00:04:14,180 i mitt lilla hål,

38 00:04:14,580 --> 00:04:17,620 har jag förstått att ni har krockat spårvagnar på samma plats,

39 00:04:17,780 --> 00:04:19,360 i typ två dagar i rad,

40 00:04:19,700 --> 00:04:20,500 vad är grejen med det?

41 00:04:21,540 --> 00:04:23,360 nu pratar vi inte om säkerhet igen,

42 00:04:23,520 --> 00:04:24,840 men de är min nya grej nu,

43 00:04:24,840 --> 00:04:26,740 nej men ni började väl med att de hade,

44 00:04:26,760 --> 00:04:27,560 bombhot,

45 00:04:28,140 --> 00:04:30,080 ja det var en kille med handgranat i brunnsparken,

46 00:04:30,260 --> 00:04:32,240 och det blir lite stökigt då,

47 00:04:32,300 --> 00:04:34,800 att all kollektivtrafik i Göteborg passerade brunnsparken,

48 00:04:34,880 --> 00:04:35,940 och de spärrade av hela,

49 00:04:36,100 --> 00:04:37,480 men som en,

50 00:04:38,700 --> 00:04:40,700 på något för mig,

51 00:04:40,840 --> 00:04:42,140 oförklarligt sätt,

52 00:04:42,280 --> 00:04:44,760 som en effekt av att vi har någon person som springer ut med en handgranat,

53 00:04:45,920 --> 00:04:46,960 så har vi därefter,

54 00:04:47,260 --> 00:04:48,760 akuta behov av att laga,

55 00:04:50,080 --> 00:04:50,760 spåren,

56 00:04:51,680 --> 00:04:52,900 och jag förstår,

57 00:04:52,900 --> 00:04:56,580 jag slängde ner handgranaten,

58 00:04:56,760 --> 00:04:58,760 i spåret, eller vad hände egentligen,

59 00:04:58,760 --> 00:05:00,760 eller körde liksom polisen in med en tank,

60 00:05:00,760 --> 00:05:02,760 och sabbade spåren, eller vad fan hände,

61 00:05:02,760 --> 00:05:03,760 förmodligen,

62 00:05:03,760 --> 00:05:05,760 byt bort vår lokaltrafik.nu,

63 00:05:05,760 --> 00:05:10,380 eller vi ska ju ändå ge ett försök på att bygga saker under Göteborg i leran,

64 00:05:10,380 --> 00:05:11,380 får vi se hur det går,

65 00:05:11,380 --> 00:05:12,380 det kommer flyta iväg,

66 00:05:12,380 --> 00:05:16,760 frågan är Stockholm, jag är inte säker på att de är helt nöjda med sin tunnelbanetrafik heller va,

67 00:05:16,760 --> 00:05:18,760 tunnelbanan är fin, det är pendeltåget som det är,

68 00:05:18,760 --> 00:05:21,760 ja men det är en liten massa kabelbrott i tid och otyd,

69 00:05:21,760 --> 00:05:23,760 inte det på den linjen jag åker,

70 00:05:23,760 --> 00:05:25,760 jag tror det är betydligt värre i Göteborg faktiskt,

71 00:05:25,760 --> 00:05:26,260 ja,

72 00:05:26,760 --> 00:05:27,760 okej,

73 00:05:27,760 --> 00:05:31,260 så att, det kan ju ha det gött i Stockholm eller,

74 00:05:31,260 --> 00:05:32,260 ja,

75 00:05:32,260 --> 00:05:33,260 vi är inte bittra,

76 00:05:33,260 --> 00:05:35,260 shit vad hårt det blev,

77 00:05:35,260 --> 00:05:36,260 vi gillar er också,

78 00:05:36,260 --> 00:05:37,260 ja det vet vi,

79 00:05:37,260 --> 00:05:38,260 vi ska också tacka,

80 00:05:38,260 --> 00:05:39,260 McLean tror jag han heter,

81 00:05:39,260 --> 00:05:41,760 som har skapat den fantastiska gingern som kommer här,

82 00:05:41,760 --> 00:05:44,760 cyber, cyber, cyber, cyber, cyber,

83 00:05:44,760 --> 00:05:46,760 som bara killarna med hörlurar hörde jag,

84 00:05:46,760 --> 00:05:47,760 precis, vissa har inte medhörning,

85 00:05:47,760 --> 00:05:49,760 så för dem kommer det här bli svårt att hänga med,

86 00:05:49,760 --> 00:05:52,260 men det är ju ett A- och ett B-lag i podcasten,

87 00:05:52,260 --> 00:05:54,760 så det är ju de medhörlurarna och de utan hörlurar,

88 00:05:54,760 --> 00:05:56,760 så Peter du får ju säga till här om du kör igång,

89 00:05:56,760 --> 00:05:57,760 den där så att folk fattar,

90 00:05:57,760 --> 00:05:58,760 okej,

91 00:05:58,760 --> 00:06:02,760 men, ja, stort tack till honom för den fina gingen,

92 00:06:02,760 --> 00:06:05,760 det är väl dags att gå vidare till dagens ämne tror jag,

93 00:06:05,760 --> 00:06:06,760 yes,

94 00:06:06,760 --> 00:06:07,760 och,

95 00:06:07,760 --> 00:06:08,760 vad är det,

96 00:06:08,760 --> 00:06:09,760 vad ska vi prata om Peter,

97 00:06:09,760 --> 00:06:11,760 ja, det här är ett väldigt välförberett ämne,

98 00:06:11,760 --> 00:06:13,760 som är reversionering och,

99 00:06:13,760 --> 00:06:15,760 du är till och med med oss en gästexpert,

100 00:06:15,760 --> 00:06:16,760 ja, precis,

101 00:06:16,760 --> 00:06:17,760 som Peter har bjudit in,

102 00:06:17,760 --> 00:06:19,760 eller,

103 00:06:19,760 --> 00:06:21,760 bra fixat Peter,

104 00:06:21,760 --> 00:06:22,760 ja,

105 00:06:22,760 --> 00:06:25,760 det är absolut inte så att det här löser sig med lite tur,

106 00:06:25,760 --> 00:06:26,760 utan,

107 00:06:26,760 --> 00:06:29,760 nu har vi så tur att vi har en expert här,

108 00:06:29,760 --> 00:06:31,760 som kommer rädda upp det här,

109 00:06:31,760 --> 00:06:33,760 medans vi andra kommer göra ett tapp,

110 00:06:33,760 --> 00:06:35,760 ett försök och hänga med,

111 00:06:35,760 --> 00:06:36,760 det är ju väldigt,

112 00:06:36,760 --> 00:06:38,760 jag gillar också att du är lite som en katt,

113 00:06:38,760 --> 00:06:39,760 du landar på fötterna liksom,

114 00:06:39,760 --> 00:06:41,760 trots att du inte har en aning,

115 00:06:41,760 --> 00:06:42,760 vi får väl se,

116 00:06:42,760 --> 00:06:44,760 eller du har i alla fall 24 timmars förvarning ändå,

117 00:06:44,760 --> 00:06:45,760 jag tror att det här kommer bli mäktigt,

118 00:06:45,760 --> 00:06:47,760 nej, 24 timmars förvarning var det ju inte,

119 00:06:47,760 --> 00:06:49,760 det var ju sent på kvällen som vi försökte rädda ut,

120 00:06:49,760 --> 00:06:51,760 vem fan är det som håller det där,

121 00:06:51,760 --> 00:06:53,760 välkommen till säkerhetspodcasten,

122 00:06:53,760 --> 00:06:55,760 jag räddade ut vem som håller i det,

123 00:06:55,760 --> 00:06:58,760 i min skräck så visar du sig att det var jag som håller i det,

124 00:06:58,760 --> 00:07:00,760 jag gillar också att du,

125 00:07:00,760 --> 00:07:02,760 du kastade verkligen ut på djupt vatten,

126 00:07:02,760 --> 00:07:03,760 genom att posta,

127 00:07:03,760 --> 00:07:05,760 vi gjorde liksom en planering på en whiteboard,

128 00:07:05,760 --> 00:07:07,760 där det var datum och namn bakom,

129 00:07:07,760 --> 00:07:10,760 Peter kastar sig ut i den djupa änden av poolen direkt,

130 00:07:10,760 --> 00:07:12,760 och bara lägger ut bilden,

131 00:07:12,760 --> 00:07:14,760 där han då outar sig själv,

132 00:07:14,760 --> 00:07:16,760 för om du hade hävdat att det var någon annan,

133 00:07:16,760 --> 00:07:18,760 så är det ingen som har råkat syda,

134 00:07:18,760 --> 00:07:20,760 för det är ingen som har sparat den bilden,

135 00:07:20,760 --> 00:07:22,760 det är ju bra att vara ärlig,

136 00:07:22,760 --> 00:07:23,760 det var han ändå,

137 00:07:23,760 --> 00:07:24,760 tackar vi för det,

138 00:07:24,760 --> 00:07:25,760 nu ligger den på kanalen,

139 00:07:25,760 --> 00:07:26,760 nu vet vi.

140 00:07:26,760 --> 00:07:28,760 Okej, reverse engineering, vad är det?

141 00:07:28,760 --> 00:07:29,760 Och varför?

142 00:07:29,760 --> 00:07:30,760 Det låter intressant,

143 00:07:30,760 --> 00:07:32,760 men eftersom vi har vårt proffsgäst,

144 00:07:32,760 --> 00:07:34,760 som dessutom ska hålla en utbildning i ämnet,

145 00:07:34,760 --> 00:07:36,760 så känns det som att vi kan titta på typ,

146 00:07:36,760 --> 00:07:38,760 agendan på den utbildningen,

147 00:07:38,760 --> 00:07:41,760 så borde vi ha en bra agenda för den här sessionen.

148 00:07:41,760 --> 00:07:43,760 Mm, ja.

149 00:07:43,760 --> 00:07:45,760 Har du någon agenda för utbildningen?

150 00:07:45,760 --> 00:07:47,760 Jag har ju en agenda för utbildningen,

151 00:07:47,760 --> 00:07:49,760 men den har ju ett litet annat fokus,

152 00:07:49,760 --> 00:07:52,760 där pratar vi om själva exploitsen,

153 00:07:52,760 --> 00:07:54,760 och hur de mekanismerna fungerar.

154 00:07:54,760 --> 00:07:57,760 Fokusområdet för den här podden är jätteväl definierat.

155 00:07:57,760 --> 00:08:00,760 Nej, jag tycker ju att reverse engineering

156 00:08:00,760 --> 00:08:02,760 är ett väldigt spännande område,

157 00:08:02,760 --> 00:08:05,760 och i de väldigt breda termerna

158 00:08:05,760 --> 00:08:07,760 handlar det bara om att plocka isär

159 00:08:07,760 --> 00:08:09,760 och förstå sig på saker,

160 00:08:09,760 --> 00:08:13,760 och det kan ju vara av väldigt olika anledningar,

161 00:08:13,760 --> 00:08:15,760 men det kan till exempel vara att plocka isär

162 00:08:15,760 --> 00:08:18,760 någon mjukvara för att förstå hur den fungerar,

163 00:08:18,760 --> 00:08:20,760 kanske reverse-ingeniera sig en mobilapp

164 00:08:20,760 --> 00:08:22,760 för att förstå hur protokollet fungerar

165 00:08:22,760 --> 00:08:23,760 när den pratar mot backenden,

166 00:08:23,760 --> 00:08:26,760 för att kunna antingen kanske återskapa

167 00:08:26,760 --> 00:08:29,760 samma kommunikation på något annat sätt,

168 00:08:29,760 --> 00:08:31,760 eller som en del av ett säkerhetstest

169 00:08:31,760 --> 00:08:33,760 att förstå vilka endpoints som finns,

170 00:08:33,760 --> 00:08:37,760 eller kopieringsskydd och knäcka sånt,

171 00:08:37,760 --> 00:08:40,760 inte för att vi uppmanar till någonting sånt,

172 00:08:40,760 --> 00:08:43,760 absolut inte, men det kan ju vara en del i det.

173 00:08:43,760 --> 00:08:45,760 Titta på malware, förstå sig på hur de fungerar,

174 00:08:45,760 --> 00:08:49,760 för att bygga detektionsmotorer och sådär.

175 00:08:49,760 --> 00:08:51,760 Så det kan ju vara både mjukvara, hårdvara, protokoll,

176 00:08:51,760 --> 00:08:57,760 hög-nivå, låg-nivå, det är ju ett brett ämne.

177 00:08:57,760 --> 00:08:58,760 Absolut.

178 00:08:58,760 --> 00:08:59,760 Jag tycker att vi ska ta till protokollet

179 00:08:59,760 --> 00:09:01,760 att säkerhetsprotokollen givetvis inte anser

180 00:09:01,760 --> 00:09:04,760 att man ska gå runt kopieringsskydd och sånt,

181 00:09:04,760 --> 00:09:06,760 men jag hörde att Kalle tyckte att det var

182 00:09:06,760 --> 00:09:08,760 om Göteborg, det var vad jag hörde.

183 00:09:08,760 --> 00:09:12,760 Jag har ju inte exakt koll på juridiska läget här,

184 00:09:12,760 --> 00:09:15,760 men det är ju ganska tillåtande lagar i Sverige

185 00:09:15,760 --> 00:09:16,760 på vissa av de här punkterna,

186 00:09:16,760 --> 00:09:19,760 så länge det är för personligt bruk och så vidare.

187 00:09:19,760 --> 00:09:20,760 Och det är det.

188 00:09:20,760 --> 00:09:23,760 Det är ju inte en utmaning till brott och sådant där.

189 00:09:23,760 --> 00:09:25,760 Men i rent akademiskt syfte

190 00:09:25,760 --> 00:09:27,760 så kan man ju ta reda på hur de fungerar.

191 00:09:27,760 --> 00:09:28,760 Ja, precis.

192 00:09:28,760 --> 00:09:30,760 Du ska ju fortfarande betala för din mjukvara.

193 00:09:30,760 --> 00:09:33,760 Vi är ju inte vana till någon piratkopierare.

194 00:09:33,760 --> 00:09:36,760 Att åsidosätta kopieringsskyddet är ju bara så att

195 00:09:36,760 --> 00:09:39,760 du ska kunna göra säkerhetskopior för ditt eget bruk,

196 00:09:39,760 --> 00:09:41,760 och du har ju redan licensen för användandet.

197 00:09:41,760 --> 00:09:43,760 Ja, givetvis.

198 00:09:43,760 --> 00:09:45,760 Prova att köpa sen.

199 00:09:45,760 --> 00:09:47,760 Eller nej, hur var det nu?

200 00:09:47,760 --> 00:09:49,760 Men det är ju ett av de vanliga ljusgrupperna,

201 00:09:49,760 --> 00:09:53,760 det är ju att patcha och ändra i programmet,

202 00:09:53,760 --> 00:09:56,760 varav att ta bort piratkopieringsskyddet

203 00:09:56,760 --> 00:09:59,760 är väl det mest vanliga ljusgrupperna.

204 00:09:59,760 --> 00:10:01,760 Men om man ska gå ner på det här då,

205 00:10:01,760 --> 00:10:03,760 om vi pratar just mjukvara,

206 00:10:03,760 --> 00:10:05,760 så är det ju oftast att disassembla

207 00:10:05,760 --> 00:10:07,760 eller plocka isär mjukvara som är kompilerad.

208 00:10:07,760 --> 00:10:09,760 Och det är där det börjar bli.

209 00:10:09,760 --> 00:10:12,760 Det är inte så lätt som att bara läsa källkod.

210 00:10:12,760 --> 00:10:15,760 Det är ju inte syntaxdrivet oftast,

211 00:10:15,760 --> 00:10:17,760 utan det är ju kompilerad kod

212 00:10:17,760 --> 00:10:18,760 som ska plockas isär.

213 00:10:18,760 --> 00:10:22,760 Så det är ju assembly, mer eller mindre.

214 00:10:22,760 --> 00:10:23,760 Ja, precis.

215 00:10:23,760 --> 00:10:26,760 Och det är ju där det börjar bli jobbigt.

216 00:10:26,760 --> 00:10:29,760 Följa källkod, det går bra.

217 00:10:29,760 --> 00:10:31,760 Assembly, jobbigare.

218 00:10:31,760 --> 00:10:35,760 Och sen om det dessutom är scramblat

219 00:10:35,760 --> 00:10:39,760 med någon tjeck specialkompilator

220 00:10:39,760 --> 00:10:42,760 för att försvåra, så blir det ännu svårare.

221 00:10:42,760 --> 00:10:45,760 Jag tänker bara funktioner som är mer än

222 00:10:45,760 --> 00:10:47,760 if, then, else, or.

223 00:10:47,760 --> 00:10:49,760 Problem.

224 00:10:49,760 --> 00:10:52,760 Men det är ju ett intressant område.

225 00:10:52,760 --> 00:10:55,760 Upphovspersonen till mjukvaran kan ju

226 00:10:55,760 --> 00:10:58,760 kämpa emot i mer eller mindre utsträckning

227 00:10:58,760 --> 00:11:00,760 genom att försöka obfuskera koden

228 00:11:00,760 --> 00:11:03,760 och göra den svårläst och svårhanterlig.

229 00:11:03,760 --> 00:11:08,760 Det är ju en hel värld av tekniker.

230 00:11:08,760 --> 00:11:11,760 Det finns ett talk, på tal om Ovas,

231 00:11:11,760 --> 00:11:14,760 från ett Ovas-möte här i Göteborg

232 00:11:14,760 --> 00:11:16,760 för tre, fyra år sedan.

233 00:11:16,760 --> 00:11:18,760 En kille från FRA som pratade om

234 00:11:18,760 --> 00:11:21,760 debug och antidebug och lite såna här grejer.

235 00:11:21,760 --> 00:11:23,760 En utav de få Ovas-presentationerna

236 00:11:23,760 --> 00:11:25,760 som verkligen gick mig totalt förbi.

237 00:11:25,760 --> 00:11:27,760 Jag förstod bara att han rörde sig

238 00:11:27,760 --> 00:11:29,760 på en helt annan nivå än vad jag var.

239 00:11:29,760 --> 00:11:31,760 För jag fattar ingenting.

240 00:11:31,760 --> 00:11:34,760 Det var kul att lyssna på det av just den anledningen.

241 00:11:34,760 --> 00:11:36,760 Jag tyckte att jag kunde en del,

242 00:11:36,760 --> 00:11:38,760 men det var väsensskilt.

243 00:11:38,760 --> 00:11:40,760 Jag kommer också ihåg den.

244 00:11:40,760 --> 00:11:42,760 Det var akronym och grejer.

245 00:11:42,760 --> 00:11:44,760 Men vad är det här?

246 00:11:44,760 --> 00:11:46,760 Det är ett helt annat språk.

247 00:11:46,760 --> 00:11:49,760 Konceptuellt kunde jag fatta ungefär vad han pratade om.

248 00:11:49,760 --> 00:11:51,760 Men det roligaste var väl någon gång

249 00:11:51,760 --> 00:11:54,760 när han ställde en fråga till publiken.

250 00:11:54,760 --> 00:11:57,760 Han tittade ut och man börjar se det här

251 00:11:57,760 --> 00:12:01,760 lite sorgsigt när han inser hur dum publiken är.

252 00:12:01,760 --> 00:12:04,760 Publiken är 99 procent.

253 00:12:04,760 --> 00:12:07,760 Några ser förvirrade ut och försöker förstå frågan

254 00:12:07,760 --> 00:12:10,760 och de flesta andra ser hjälplösa och uppgivna ut.

255 00:12:10,760 --> 00:12:13,760 Och man ser på filmen hur liksom,

256 00:12:13,760 --> 00:12:15,760 lite såhär,

257 00:12:15,760 --> 00:12:19,760 hur det är lite lässet, ler eller myn kommer över honom

258 00:12:19,760 --> 00:12:22,760 när han inser hur korkad publiken är.

259 00:12:22,760 --> 00:12:25,760 Men frågan är hur vanligt sånt är.

260 00:12:25,760 --> 00:12:28,760 Om du snackar reverse enering som stort,

261 00:12:28,760 --> 00:12:30,760 hur ofta är det man springer på egentligen

262 00:12:30,760 --> 00:12:32,760 en riktig antidibugg och folk som verkligen

263 00:12:32,760 --> 00:12:34,760 försöker fiskera?

264 00:12:34,760 --> 00:12:37,760 På industriell skala så skulle jag säga

265 00:12:37,760 --> 00:12:40,760 att det är väl i princip hela malwarevärlden

266 00:12:40,760 --> 00:12:42,760 som är liksom det som man,

267 00:12:42,760 --> 00:12:44,760 jobbar med reverse enering och så.

268 00:12:44,760 --> 00:12:46,760 Sen såklart,

269 00:12:46,760 --> 00:12:48,760 säkert inom liksom,

270 00:12:48,760 --> 00:12:50,760 försvararunderrättelser,

271 00:12:50,760 --> 00:12:52,760 bygga exploits.

272 00:12:52,760 --> 00:12:54,760 Reverse enering är ju oftast liksom

273 00:12:54,760 --> 00:12:56,760 som ett förstadie till

274 00:12:56,760 --> 00:12:58,760 exploitutveckling.

275 00:12:58,760 --> 00:13:01,760 Att hitta sårbarheter i koder där du inte redan har

276 00:13:01,760 --> 00:13:03,760 källkoden liksom.

277 00:13:03,760 --> 00:13:05,760 Vilket händer ofta.

278 00:13:05,760 --> 00:13:07,760 När man hittar

279 00:13:07,760 --> 00:13:09,760 sårbarheter i liksom kommersiella produkter och sånt

280 00:13:09,760 --> 00:13:11,760 där inte koden finns tillgänglig, då behöver du liksom

281 00:13:11,760 --> 00:13:13,760 ett första steg i att förstå sig på

282 00:13:13,760 --> 00:13:15,760 vad fan det är du håller på att titta på.

283 00:13:15,760 --> 00:13:16,760 Ja.

284 00:13:16,760 --> 00:13:19,760 Så vad skulle vi kunna ge för exempel där?

285 00:13:19,760 --> 00:13:21,760 Man kan tänka sig såhär firmware

286 00:13:21,760 --> 00:13:23,760 till en Cisco router typ.

287 00:13:23,760 --> 00:13:25,760 Det lär vara såhär som dyker upp lite

288 00:13:25,760 --> 00:13:26,760 tidsomtätt liksom.

289 00:13:26,760 --> 00:13:28,760 De publicerar ju inte liksom källkoden

290 00:13:28,760 --> 00:13:29,760 för hela sin firmware liksom.

291 00:13:29,760 --> 00:13:31,760 Så då får man ju börja med att…

292 00:13:31,760 --> 00:13:33,760 Så proprietär mjukvara egentligen.

293 00:13:33,760 --> 00:13:34,760 Ja.

294 00:13:34,760 --> 00:13:35,760 Som levereras,

295 00:13:35,760 --> 00:13:37,760 som kompilerar blobba egentligen.

296 00:13:37,760 --> 00:13:39,760 Som är ett svart hål.

297 00:13:39,760 --> 00:13:41,760 Precis. Och det kan ju vara både för,

298 00:13:41,760 --> 00:13:44,760 att du vill försöka säkerhetsgranska,

299 00:13:44,760 --> 00:13:46,760 försöka förbättra den,

300 00:13:46,760 --> 00:13:48,760 eller för att du vill göra mer

301 00:13:48,760 --> 00:13:50,760 liksom ondskefulla…

302 00:13:50,760 --> 00:13:51,760 Ja.

303 00:13:51,760 --> 00:13:52,760 För att kunna bygga implants.

304 00:13:52,760 --> 00:13:53,760 Ja.

305 00:13:53,760 --> 00:13:57,760 Så om man jobbar på någon trebokstavsmyndighet liksom.

306 00:13:57,760 --> 00:13:59,760 Det finns ju olika.

307 00:13:59,760 --> 00:14:01,760 Hur kommer det sig att Kalla

308 00:14:01,760 --> 00:14:03,760 har börjat med det här?

309 00:14:03,760 --> 00:14:04,760 Det är ju en bra fråga.

310 00:14:04,760 --> 00:14:06,760 Det är ju så mycket annat när det kommer till

311 00:14:06,760 --> 00:14:08,760 mig och säkerhet genom de här CTF-erna

312 00:14:08,760 --> 00:14:09,760 som jag spelar hela tiden.

313 00:14:09,760 --> 00:14:10,760 Jag tänkte att det var den här

314 00:14:10,760 --> 00:14:12,760 hemliga trebokstavsförkortningen,

315 00:14:12,760 --> 00:14:13,760 K-R-Y.

316 00:14:15,760 --> 00:14:16,760 Ja, just det. Precis.

317 00:14:16,760 --> 00:14:18,760 Det är väldigt lite reversionering på kry.

318 00:14:18,760 --> 00:14:19,760 Ungefär noll.

319 00:14:19,760 --> 00:14:21,760 Ganska exakt noll skulle jag vilja säga.

320 00:14:23,760 --> 00:14:25,760 Vi kanske ska låta Kalle göra en liten introduktion

321 00:14:25,760 --> 00:14:26,760 av sig själv.

322 00:14:26,760 --> 00:14:27,760 För vi känner ju Kalle väldigt bra.

323 00:14:27,760 --> 00:14:28,760 Men jag vet inte om alla våra lyssnare

324 00:14:28,760 --> 00:14:29,760 känner Kalle väldigt bra.

325 00:14:29,760 --> 00:14:30,760 Det låter ju som någonting vi borde ha gjort

326 00:14:30,760 --> 00:14:31,760 för flera minuter sedan.

327 00:14:31,760 --> 00:14:32,760 Eller hur?

328 00:14:32,760 --> 00:14:33,760 Vem är Kalle? Börja med det.

329 00:14:33,760 --> 00:14:35,760 Det är som vanligt. Vi kastar oss in.

330 00:14:35,760 --> 00:14:37,760 Vem är Kalle?

331 00:14:37,760 --> 00:14:38,760 Yes, precis.

332 00:14:38,760 --> 00:14:39,760 Ja, Kalle Svensson.

333 00:14:39,760 --> 00:14:41,760 Kalle Svensson heter jag.

334 00:14:41,760 --> 00:14:43,760 Jag är 27 år i ett par dagar till

335 00:14:43,760 --> 00:14:46,760 och jobbar som säkerhetschef på kry.

336 00:14:46,760 --> 00:14:48,760 Jag gillar långa promenader.

337 00:14:48,760 --> 00:14:50,760 Ja, det är ju faktiskt sant.

338 00:14:54,760 --> 00:14:56,760 Som sagt, jag jobbar som säkerhetschef på kry

339 00:14:56,760 --> 00:14:59,760 som är en digital vårdgivare.

340 00:14:59,760 --> 00:15:02,760 Man erbjuder en vårdcentral online.

341 00:15:02,760 --> 00:15:05,760 Det är en app som man kan prata med läkare

342 00:15:05,760 --> 00:15:08,760 eller psykologer eller numera även sjuksköterskor.

343 00:15:08,760 --> 00:15:12,760 Där försöker jag se till att vi har bra koll

344 00:15:12,760 --> 00:15:15,760 på patientdata och allt vi håller på med

345 00:15:15,760 --> 00:15:17,760 och sköta säkerheten där.

346 00:15:17,760 --> 00:15:20,760 Men egentligen så skulle jag säga att

347 00:15:20,760 --> 00:15:22,760 i de flesta fall jag dyker upp i andra

348 00:15:22,760 --> 00:15:25,760 säkerhetscommunityn så är den biten

349 00:15:25,760 --> 00:15:27,760 ganska oviktig egentligen.

350 00:15:27,760 --> 00:15:32,760 Det är ju framförallt att jag spelar mycket

351 00:15:32,760 --> 00:15:35,760 sådana här CTF-er och är intresserad av

352 00:15:35,760 --> 00:15:37,760 väldigt teknisk säkerhet, reverse engineering

353 00:15:37,760 --> 00:15:42,760 och som lågnivå exploits och relaterade områden där.

354 00:15:42,760 --> 00:15:46,760 Jag dyker upp och pratar på lite konferenser ibland

355 00:15:46,760 --> 00:15:48,760 och meetups.

356 00:15:48,760 --> 00:15:50,760 Anledningen till att jag är här i Göteborg idag

357 00:15:50,760 --> 00:15:52,760 är ju att jag föreläste på Chalmers

358 00:15:52,760 --> 00:15:55,760 för studenterna där.

359 00:15:55,760 --> 00:15:59,760 Jobbade som säkerhetskonsult tidigare

360 00:15:59,760 --> 00:16:01,760 på ett företag som inte finns längre.

361 00:16:01,760 --> 00:16:03,760 Nej.

362 00:16:03,760 --> 00:16:05,760 Pluggat teknisk fysik på KTH och läste master i

363 00:16:05,760 --> 00:16:09,760 datalogi där.

364 00:16:09,760 --> 00:16:11,760 Så det är väl det.

365 00:16:11,760 --> 00:16:14,760 En kort introduktion.

366 00:16:14,760 --> 00:16:17,760 Men du är också känd som Z2 på interwebs.

367 00:16:17,760 --> 00:16:20,760 Ja, precis. Det är väldigt konsekvent.

368 00:16:20,760 --> 00:16:22,760 Handel.

369 00:16:22,760 --> 00:16:26,760 Som jag faktiskt har haft sen jag var typ 11 tror jag.

370 00:16:26,760 --> 00:16:29,760 Jag har aldrig haft ett annat användarnamn på internet.

371 00:16:29,760 --> 00:16:32,760 Så kan man hitta dig på alla gamla Luna Storm och sådant.

372 00:16:32,760 --> 00:16:34,760 Det fanns inte när Kalle var 11.

373 00:16:34,760 --> 00:16:36,760 Då hade det gått i granen.

374 00:16:36,760 --> 00:16:39,760 Det kan ha funnits.

375 00:16:39,760 --> 00:16:44,760 Playahead kan vi ha gjort lite busigheter med vid tillfällen.

376 00:16:44,760 --> 00:16:48,760 Peter och annars är databasdumporna från Luna Storm kvar.

377 00:16:48,760 --> 00:16:53,760 Luna Storm återöppnade ju här nyligen som Styleplace.

378 00:16:53,760 --> 00:16:57,760 Jag har faktiskt ett års VIP där för att jag rapporterade

379 00:16:57,760 --> 00:17:00,760 ett säkerhetshål hos dem.

380 00:17:00,760 --> 00:17:03,760 Mäktigt, mäktigt.

381 00:17:03,760 --> 00:17:05,760 80 till reversing.

382 00:17:05,760 --> 00:17:06,760 Ja, precis.

383 00:17:06,760 --> 00:17:12,760 Det känns ju som att den klassiska plattformen som man reversar är väl x86.

384 00:17:12,760 --> 00:17:17,760 Men det känns som att det har blivit en liten dragning nu det senaste

385 00:17:17,760 --> 00:17:19,760 mot mer och mer ARM.

386 00:17:19,760 --> 00:17:20,760 MIPS och ARM tänker jag.

387 00:17:20,760 --> 00:17:22,760 ARM finns ju hela…

388 00:17:22,760 --> 00:17:23,760 Embedded.

389 00:17:23,760 --> 00:17:27,760 Ja, Embedded och IoT om vi ska använda lite schyssta buzzwords här.

390 00:17:27,760 --> 00:17:28,760 Kanske.

391 00:17:28,760 --> 00:17:30,760 The things of internet.

392 00:17:30,760 --> 00:17:31,760 Nej, men så är det ju.

393 00:17:31,760 --> 00:17:34,760 Det är väl de huvudsakliga plattformarna.

394 00:17:34,760 --> 00:17:35,760 Ja.

395 00:17:35,760 --> 00:17:36,760 Hur kommer det…

396 00:17:36,760 --> 00:17:40,760 Skulle du säga att det är stor skillnad mellan ARM, MIPS och x86

397 00:17:40,760 --> 00:17:42,760 när det kommer till instrumentering och sådär?

398 00:17:42,760 --> 00:17:43,760 Alltså det är ju såhär…

399 00:17:43,760 --> 00:17:46,760 Man kan ju se det från lite olika sätt men jag menar koncepten…

400 00:17:46,760 --> 00:17:52,760 Alltså hur vi ser på datorer, hur programmen är strukturerade

401 00:17:52,760 --> 00:17:54,760 och hur program fungerar.

402 00:17:54,760 --> 00:17:58,760 Det är ju samma trots att det är olika arkitekturer generellt.

403 00:17:58,760 --> 00:18:01,760 Sen är det ju klart att instruktionerna skiljer sig, detaljerna skiljer sig.

404 00:18:01,760 --> 00:18:04,760 Och hur mycket verktyg som finns tillgängligt skiljer sig liksom.

405 00:18:04,760 --> 00:18:09,760 Men koncept, alltså högnivåkoncepten är ju samma liksom.

406 00:18:09,760 --> 00:18:10,760 Och där är ju liksom…

407 00:18:10,760 --> 00:18:14,760 Det finns ju överlägset mest verktyg för x86 och ARM

408 00:18:14,760 --> 00:18:19,760 och sen så är det ju någon slags fallande skala liksom.

409 00:18:20,760 --> 00:18:25,760 Det var ju väldigt positivt nu när NSA släppte sin Ghidra.

410 00:18:25,760 --> 00:18:27,760 Jag tycker vi ska kalla den Ghidra.

411 00:18:29,760 --> 00:18:30,760 Ja, det är ju…

412 00:18:30,760 --> 00:18:34,760 Man har känt den här g-et uttalas som i GIF.

413 00:18:34,760 --> 00:18:37,760 Det funkar ju inte lika bra i talat som i skrivet bara.

414 00:18:37,760 --> 00:18:41,760 Men jag tycker det ska vara Ghidra och GIF så att alla hatar mig.

415 00:18:43,760 --> 00:18:45,760 Nej men för det är ju lite så att…

416 00:18:45,760 --> 00:18:49,760 Ett problem är ju lite såhär att det kräver ju…

417 00:18:49,760 --> 00:18:52,760 Det här området kräver ju liksom kunskap om såhär lågnivåprogrammering

418 00:18:52,760 --> 00:18:54,760 som maskinkod, assembler och så vidare.

419 00:18:54,760 --> 00:18:57,760 Och jag menar i mycket såhär dagens utvecklingsgrejer

420 00:18:57,760 --> 00:18:59,760 alltså det är ju ingen som jobbar med det.

421 00:18:59,760 --> 00:19:01,760 Alltså man skriver inte assembler.

422 00:19:01,760 --> 00:19:03,760 De flesta av oss.

423 00:19:03,760 --> 00:19:06,760 Som lägst kommer man ner liksom till C.

424 00:19:06,760 --> 00:19:09,760 Och då är man lågnivå.

425 00:19:09,760 --> 00:19:12,760 Vi har flyttat var lågnivå ligger liksom.

426 00:19:12,760 --> 00:19:17,760 Ja, precis. Snart är liksom maskinkod i samma kategori som själva…

427 00:19:17,760 --> 00:19:18,760 Protokollet.

428 00:19:18,760 --> 00:19:20,760 ...kretsarna snart.

429 00:19:20,760 --> 00:19:24,760 Förr satt ju Embedded-utvecklare och kodade assembler

430 00:19:24,760 --> 00:19:28,760 och nu är det liksom en pytteliten interruptbot-handler liksom på mikrokontroller.

431 00:19:28,760 --> 00:19:30,760 Så sen…

432 00:19:30,760 --> 00:19:32,760 Sen är ju allt i C liksom.

433 00:19:32,760 --> 00:19:35,760 Man har ju flyttat sig en nivå.

434 00:19:35,760 --> 00:19:37,760 Ja.

435 00:19:37,760 --> 00:19:39,760 Vad tänkte jag på…

436 00:19:39,760 --> 00:19:42,760 Vi kom in lite på Giddra där. Eller Giddra, hur man urligt talar.

437 00:19:42,760 --> 00:19:46,760 Vad finns det för andra tools of the trade som man jobbar med?

438 00:19:46,760 --> 00:19:49,760 Precis, jag menar det dominerande verktyget

439 00:19:49,760 --> 00:19:54,760 och är vi fortfarande liksom i Ida och Hex Race

440 00:19:54,760 --> 00:19:57,760 som är ju väldigt kompetent.

441 00:19:57,760 --> 00:19:59,760 Men också svindyrt liksom.

442 00:19:59,760 --> 00:20:02,760 Så det är ju inget som du generellt sett har tillgång till som privatperson

443 00:20:02,760 --> 00:20:05,760 om man inte är väldigt hängiven.

444 00:20:05,760 --> 00:20:07,760 Vad kostar en licensutdelning?

445 00:20:07,760 --> 00:20:08,760 Ehh…

446 00:20:08,760 --> 00:20:09,760 Alltså det är väl en…

447 00:20:09,760 --> 00:20:11,760 Det är ju såhär de första året det är väl…

448 00:20:11,760 --> 00:20:13,760 Jag vet inte om det är såhär 50 000 eller någonting

449 00:20:13,760 --> 00:20:15,760 och sen kostar det över 20 000 per år efter det.

450 00:20:15,760 --> 00:20:19,760 Det beror lite på vilka dekompileringsmoduler man ska ha.

451 00:20:19,760 --> 00:20:21,760 Har de inte någon del som var gratis mer eller mindre?

452 00:20:21,760 --> 00:20:24,760 Ja, dom har ju en gratis version men den är ju ganska begränsad.

453 00:20:24,760 --> 00:20:26,760 Då är det inga disassemblers med heller va?

454 00:20:26,760 --> 00:20:28,760 Disassemblers känner jag mig, men inte dekompiler.

455 00:20:28,760 --> 00:20:29,760 Inte dekompilerna.

456 00:20:29,760 --> 00:20:32,760 Men då släppte dom en ny studentversion nu

457 00:20:32,760 --> 00:20:35,760 men den var också sådär lite fånigt begränsad.

458 00:20:35,760 --> 00:20:37,760 Det är ju generellt sett inte någonting man har tillgång till.

459 00:20:37,760 --> 00:20:42,760 Och sen har det ju funnits dom stora open source-radare

460 00:20:42,760 --> 00:20:47,760 i det stora open source-ramverket för disassembly och reverse engineering.

461 00:20:47,760 --> 00:20:50,760 Det är ju…

462 00:20:50,760 --> 00:20:56,760 Många brukar prata om att Ida har en väldigt brant inlärningskurva.

463 00:20:56,760 --> 00:20:59,760 Men radare är nog fan ännu värre.

464 00:20:59,760 --> 00:21:03,760 Det är ju i princip en N-curses-interface-liknande.

465 00:21:03,760 --> 00:21:06,760 Det är ju i terminalen i princip.

466 00:21:06,760 --> 00:21:10,760 Man sitter och de har lite olika ASCII-visualiseringar

467 00:21:10,760 --> 00:21:13,760 och allting är liksom kommandon med…

468 00:21:13,760 --> 00:21:15,760 Det är lite som Vim.

469 00:21:15,760 --> 00:21:20,760 Men Windybug är ju också ganska klurig om man tittar på den.

470 00:21:20,760 --> 00:21:23,760 Jag har ändå hållit på med det här ett antal år

471 00:21:23,760 --> 00:21:25,760 och jag har fortfarande inte lyckats lära mig radare.

472 00:21:26,760 --> 00:21:31,760 Det har ju kommit upp stickar över den här Binary Ninja.

473 00:21:31,760 --> 00:21:33,760 Det var ju något som kom upp här för några år sedan.

474 00:21:33,760 --> 00:21:34,760 Det verkar väldigt bra.

475 00:21:34,760 --> 00:21:36,760 Betydligt billigare än Ida.

476 00:21:36,760 --> 00:21:42,760 Men fortfarande är det någon eller några hundra dollar för en licens.

477 00:21:42,760 --> 00:21:46,760 Är man student och intresserad av de här områdena

478 00:21:46,760 --> 00:21:51,760 så är man kanske inte jättesugen på att lägga 150 dollar på ett verktyg

479 00:21:51,760 --> 00:21:55,760 som man inte vet i vilken utsträckning man kommer att vilja använda.

480 00:21:56,760 --> 00:22:00,760 Så när man väl hoppar också till OSX så hoppar det sig sämre.

481 00:22:00,760 --> 00:22:02,760 Precis.

482 00:22:02,760 --> 00:22:06,760 Inte hur stort det är, men det finns ju i alla fall.

483 00:22:06,760 --> 00:22:11,760 Jag såg ett tweet om någonting som låter coolt.

484 00:22:11,760 --> 00:22:15,760 Jag har aldrig kollat på det själv, men Sibyl

485 00:22:15,760 --> 00:22:22,760 som du numera kan länka ihop med Jidra eller vad Jidra nu heter

486 00:22:22,760 --> 00:22:25,760 som tydligen kan hjälpa till.

487 00:22:25,760 --> 00:22:29,760 Det kan hjälpa till vid D-kompilering,

488 00:22:29,760 --> 00:22:33,760 det vill säga att flytta assemble-koden till C-kod

489 00:22:33,760 --> 00:22:38,760 och som tydligen har något ramverk för att känna igen funktioner

490 00:22:38,760 --> 00:22:40,760 baserat på sina sidoeffekter.

491 00:22:40,760 --> 00:22:45,760 Så hittar den en StringLength-funktion så skriver den myStringLength och så.

492 00:22:45,760 --> 00:22:48,760 Så nu är det tydligen att någon bygger upp någon sån här…

493 00:22:48,760 --> 00:22:50,760 Pseudo-C typ?

494 00:22:50,760 --> 00:22:51,760 Ja, den bygger någon sån här…

495 00:22:51,760 --> 00:22:52,760 Databas av signaturer typ?

496 00:22:52,760 --> 00:22:53,760 Ja, precis.

497 00:22:53,760 --> 00:22:54,760 Så kan den liksom…

498 00:22:54,760 --> 00:22:56,760 Dynamiskt allokera?

499 00:22:56,760 --> 00:23:00,760 Ja, så den tittar på vad funktionen gör.

500 00:23:00,760 --> 00:23:03,760 Precis, där finns det ju ett sånt sätt för att underlätta i de här

501 00:23:03,760 --> 00:23:05,760 lite olika sådana tekniker.

502 00:23:05,760 --> 00:23:07,760 Försöka identifiera biblioteksfunktioner.

503 00:23:07,760 --> 00:23:13,760 Typiskt som man har statiskt länkade program där hela C-standardbiblioteket är…

504 00:23:13,760 --> 00:23:17,760 De är ju rätt viktiga, så om man inte stegar sig in i en C-standardfunktion

505 00:23:17,760 --> 00:23:19,760 vad fan händer här liksom?

506 00:23:19,760 --> 00:23:20,760 Ja, precis.

507 00:23:20,760 --> 00:23:22,760 Vissa av de här… Printf är en riktigt…

508 00:23:22,760 --> 00:23:24,760 Det är ju en stor dävel liksom.

509 00:23:24,760 --> 00:23:27,760 Så där kan man ju slösa mycket tid liksom.

510 00:23:27,760 --> 00:23:31,760 Mycket generellt handlar om reverse signering.

511 00:23:31,760 --> 00:23:35,760 På ett sätt det som gör att det är lite roligt är att du har ju all information.

512 00:23:35,760 --> 00:23:36,760 Du har ju programmet.

513 00:23:36,760 --> 00:23:37,760 Handlingen finns där.

514 00:23:37,760 --> 00:23:38,760 Allting finns där.

515 00:23:38,760 --> 00:23:40,760 Och på något sätt så här…

516 00:23:40,760 --> 00:23:44,760 Nästan allt du gör leder dig framåt typ.

517 00:23:44,760 --> 00:23:50,760 Men det handlar ju om att göra det i en sån pass takt att du blir klar innan du dör.

518 00:23:50,760 --> 00:23:51,760 Dör.

519 00:23:51,760 --> 00:23:53,760 Det svåra är ju kodstorlek liksom.

520 00:23:53,760 --> 00:23:56,760 För det är ju jättebinär jobbigt.

521 00:23:56,760 --> 00:24:00,760 Jag lyssnade med en intervju på de som har släppt Jidra, det vill säga…

522 00:24:00,760 --> 00:24:01,760 NSA.

523 00:24:01,760 --> 00:24:02,760 Ja.

524 00:24:02,760 --> 00:24:09,760 Och de pratade ju då om vilka funktioner och varför de släpper verktyget

525 00:24:09,760 --> 00:24:12,760 och olika grejer på hur de ser på livet.

526 00:24:12,760 --> 00:24:18,760 Det som de ändå tog fram som en stor sån här killer feature med Jidra

527 00:24:18,760 --> 00:24:20,760 och de skrattade ju till och med själva runt hur löjda de var.

528 00:24:20,760 --> 00:24:23,760 Det är att det finns en undo-funktion.

529 00:24:23,760 --> 00:24:27,760 Så om du sitter och renoverar någonting typ du är långt ner och du är liksom så här

530 00:24:27,760 --> 00:24:29,760 crack solver bla bla bla.

531 00:24:29,760 --> 00:24:33,760 Så någonstans där när du är tre timmar innan så du inser det att

532 00:24:33,760 --> 00:24:38,760 allting du har gjort på slutet det är liksom att du har försökt säga att printf är

533 00:24:38,760 --> 00:24:40,760 lösenordsalgoritmen eller något sånt där.

534 00:24:40,760 --> 00:24:43,760 Och du börjar inse att det har gått fel då kan du inte sitta där…

535 00:24:43,760 --> 00:24:44,760 Stege tillbaka elektroniskt.

536 00:24:44,760 --> 00:24:46,760 Undo, undo, undo, undo.

537 00:24:46,760 --> 00:24:49,760 Och det är alltså en feature i det här sammanhanget.

538 00:24:49,760 --> 00:24:53,760 Det har ju varit lite så här stående skämt för att det finns ju inte Ida då.

539 00:24:53,760 --> 00:24:59,760 Det finns inte någon funktion där som är industristandarden för att jobba med det här.

540 00:25:03,760 --> 00:25:06,760 Man tvingas ju bli bra på att använda verktyget.

541 00:25:06,760 --> 00:25:09,760 Gör rätt första gången.

542 00:25:09,760 --> 00:25:13,760 Men okej, det här är ju komplext för någon som inte har den minsta aningen.

543 00:25:13,760 --> 00:25:15,760 Var börjar man?

544 00:25:15,760 --> 00:25:17,760 Bra fråga.

545 00:25:17,760 --> 00:25:18,760 Men det finns ju…

546 00:25:18,760 --> 00:25:23,760 Nu kommer vi återigen in på det här med så här CTF-grejer och så.

547 00:25:23,760 --> 00:25:25,760 Men det behöver inte vara dumt.

548 00:25:25,760 --> 00:25:31,760 Det finns ju de här nybörjare CTF för de har ju reverse engineering-uppgifter.

549 00:25:31,760 --> 00:25:36,760 Det är ju en av standardkategorierna inom CTF liksom.

550 00:25:36,760 --> 00:25:42,760 Många sådana uppgifter, det finns ju där en standardformat på en uppgift som de kallar för en crack me.

551 00:25:42,760 --> 00:25:48,760 Som är egentligen att du ska skicka in rätt svar till programmet och så kommer den säga

552 00:25:48,760 --> 00:25:50,760 ja eller nej om det är det rätta.

553 00:25:50,760 --> 00:25:56,760 Och då genom att plocka isär programmet och förstå algoritmen som avgör om det är rätt eller fel

554 00:25:56,760 --> 00:26:01,760 så ska du kunna jobba dig baklänges och förstå vad som är rätt svar.

555 00:26:01,760 --> 00:26:08,760 Och det där kan ju gå från väldigt enkelt att den bara tar en sträng och x-hårar varje byte

556 00:26:08,760 --> 00:26:12,760 med ett fixt värde och jämför mot någonting till ett extremt komplicerat

557 00:26:12,760 --> 00:26:17,760 där de har någon slags egen virtuell maskin med ett eget språk som kör ett…

558 00:26:18,760 --> 00:26:20,760 program.

559 00:26:20,760 --> 00:26:24,760 Det här är ju verkligen, när vi kommer in på det här med kodobfiskering och vad som händer

560 00:26:24,760 --> 00:26:31,760 det går ju verkligen bara att stapla lager av bajs på varandra tills det är bortom all igenkänning.

561 00:26:33,760 --> 00:26:36,760 För det finns ju vissa prestandakostnader och så vidare.

562 00:26:36,760 --> 00:26:40,760 Men det kan ju vara värt då beroende på var man skyddar och så vidare.

563 00:26:40,760 --> 00:26:42,760 Värt att betala det.

564 00:26:42,760 --> 00:26:48,760 För tusen år sedan så var jag intresserad av virus och var ett litet barn som sprang runt här i världen

565 00:26:48,760 --> 00:26:49,760 och…

566 00:26:49,760 --> 00:26:51,760 Det var väldigt länge sedan.

567 00:26:51,760 --> 00:26:55,760 Då hade den här föreningen i Göteborg, jag tror den hette Computer Club West

568 00:26:55,760 --> 00:26:58,760 de hade ju fått virus på sina maskiner och jag…

569 00:26:58,760 --> 00:26:59,760 Peter var oskyldig?

570 00:26:59,760 --> 00:27:07,760 Jag var oskyldig. Jag bad ju då en av personerna att skicka över en infekterad fil så kan jag kolla våran.

571 00:27:07,760 --> 00:27:14,760 Och där gjorde jag ju då min första sån här riktiga reversingenjering där liksom…

572 00:27:14,760 --> 00:27:16,760 Mottagaren av reversingenjeringen var nog mer än mig själv.

573 00:27:16,760 --> 00:27:17,760 Mottagaren av reversingenjeringen var nog mer än mig själv.

574 00:27:17,760 --> 00:27:18,760 Mottagaren av reversingenjeringen var nog mer än mig själv.

575 00:27:18,760 --> 00:27:23,760 Utan faktiskt något jag skulle publicera eller göra något vettigt med.

576 00:27:23,760 --> 00:27:24,760 Så…

577 00:27:24,760 --> 00:27:27,760 Och det här var ju ett litet com-virus då.

578 00:27:27,760 --> 00:27:31,760 Om ni inte säger någonting så fanns det någonting som hette DOS en gång i tiden.

579 00:27:31,760 --> 00:27:33,760 Där livet var mycket enklare.

580 00:27:33,760 --> 00:27:34,760 Long, long ago.

581 00:27:34,760 --> 00:27:39,760 Och com var det allra, allra enklaste exekverbara formatet.

582 00:27:39,760 --> 00:27:40,760 Det är typ…

583 00:27:40,760 --> 00:27:43,760 Koden som ligger i com bara startar.

584 00:27:43,760 --> 00:27:45,760 Så…

585 00:27:45,760 --> 00:27:47,760 Jag reversade ju den och

586 00:27:47,760 --> 00:27:51,760 tog reda på hur den infekterade och vilka grejer den kunde infektera.

587 00:27:51,760 --> 00:27:56,760 Och så hörde jag av mig ganska snart därefter och sa

588 00:27:56,760 --> 00:28:00,760 Ja, men ni kan söka efter det här för då hittar ni alla infekterade filer.

589 00:28:00,760 --> 00:28:05,760 Och så här tar man bort viruset.

590 00:28:05,760 --> 00:28:10,760 Och reaktionen på det var ju att jag blev misstänkt för att ha skrivit viruset.

591 00:28:10,760 --> 00:28:12,760 Så det var liksom så här…

592 00:28:12,760 --> 00:28:13,760 Nej.

593 00:28:13,760 --> 00:28:15,760 Men det anknyter ju lite till…

594 00:28:15,760 --> 00:28:16,760 Jag kommer räcka på två saker.

595 00:28:16,760 --> 00:28:25,760 Men det är ju den här brittiska killen Marcus Hutchins MalwareTech-blogg.

596 00:28:25,760 --> 00:28:30,760 Han har ju sin blogg och håller på mycket med malwareanalys och så vidare.

597 00:28:30,760 --> 00:28:33,760 Och det var ju… Vad hette viruset?

598 00:28:33,760 --> 00:28:35,760 Nej, det kommer jag inte ihåg.

599 00:28:35,760 --> 00:28:37,760 Han upptäckte det redan tidigt och stoppade det.

600 00:28:37,760 --> 00:28:40,760 Ja, precis. Det var en av de här riktigt allvarliga ransomwaren.

601 00:28:40,760 --> 00:28:42,760 Typ NotPetya eller vilken det var.

602 00:28:42,760 --> 00:28:45,760 Var det inte så att den gjorde väl en callback till någon domän?

603 00:28:45,760 --> 00:28:47,760 Ja, precis.

604 00:28:47,760 --> 00:28:49,760 Den hade en killswitch inbyggd.

605 00:28:49,760 --> 00:28:54,760 Exakt. Den gjorde ett DNS-uppslag mot en domän som inte var registrerad.

606 00:28:54,760 --> 00:28:59,760 Jag vet inte om det var en killswitch eller en sandboxdetektering.

607 00:28:59,760 --> 00:29:01,760 Det är ju en ganska vanlig grej man kör i en sandbox.

608 00:29:01,760 --> 00:29:06,760 Alla DNS-uppslag svarar man med någonting för att programmet ska köra vidare.

609 00:29:06,760 --> 00:29:12,760 Men här var det tvärtom. Om DNS-uppslaget lyckades så deaktiverade den sig själv.

610 00:29:12,760 --> 00:29:14,760 Och han reversade ju den här och…

611 00:29:14,760 --> 00:29:16,760 Han reggade domänen.

612 00:29:16,760 --> 00:29:20,760 Precis. Så han stängde ner hela viruset runt om i hela världen.

613 00:29:20,760 --> 00:29:23,760 Det var ju ganska tidigt liksom.

614 00:29:23,760 --> 00:29:25,760 Ja, det var typ dag ett någon gång.

615 00:29:25,760 --> 00:29:32,760 Och sen då när han var på Defcon. Det var inte ens nu i somras utan det var förra sommaren för ett och ett halvt år sedan.

616 00:29:32,760 --> 00:29:36,760 Då när han skulle åka hem därifrån så kom ju FBI och plockade honom.

617 00:29:36,760 --> 00:29:38,760 Och han är väl fortfarande kvar i USA?

618 00:29:38,760 --> 00:29:42,760 Ja. Det är ju pågående rättsfall.

619 00:29:42,760 --> 00:29:49,760 Det var väl inte bara hittepå från amerikanska myndigheter.

620 00:29:49,760 --> 00:29:52,760 Det fanns en intressant eller en misstänkt koppling.

621 00:29:52,760 --> 00:29:55,760 De hade ju återfunnit…

622 00:29:55,760 --> 00:30:00,760 Han hade skrivit någon bloggpost om något exempel på en viss typ av mekanism.

623 00:30:00,760 --> 00:30:04,760 Jag kommer inte exakt ihåg om det var någon anti-debugging-teknik eller vad det var.

624 00:30:04,760 --> 00:30:11,760 Men samma kodsnutt nästan rakt av återfanns i någon sån här bankingtrojan eller någonting.

625 00:30:11,760 --> 00:30:17,760 Och då är det ju absolut inte så att det är någon malwareupphovsmakare som har läst hans blogg och implementerat.

626 00:30:17,760 --> 00:30:24,760 Utan det är ju såklart han som har postat samma kodsample som han har använt i den här bankingtrojan på sin egen blogg.

627 00:30:24,760 --> 00:30:26,760 Det känns ju inte jättetroligt.

628 00:30:26,760 --> 00:30:29,760 Jag tror att han hade gjort lite sådana här små uppskuriga saker i sin ungdom.

629 00:30:29,760 --> 00:30:38,760 Han kan eller kanske inte ha gjort bra och dåliga saker.

630 00:30:38,760 --> 00:30:40,760 Men i alla fall…

631 00:30:40,760 --> 00:30:44,760 Nu har jag inte riktigt hängt med senaste typ halvåret eller någonting.

632 00:30:44,760 --> 00:30:47,760 Men jag tycker att av det som har framkommit än så länge så är det…

633 00:30:47,760 --> 00:30:49,760 Det går liksom inte ihop riktigt.

634 00:30:49,760 --> 00:30:51,760 Nej, och det var lite sådär…

635 00:30:51,760 --> 00:30:55,760 Om man har varit lite kaxig på forumen som ungdom, det är väl en sak.

636 00:30:55,760 --> 00:30:59,760 Men sen om man i vuxet liv ser till att jobba med de bra sakerna istället.

637 00:30:59,760 --> 00:31:03,760 Det där var ju en förvirrande incident.

638 00:31:03,760 --> 00:31:09,760 Men framförallt vore det konstigast att om han hade skapat en killswitch…

639 00:31:10,760 --> 00:31:13,760 Sen i panik aktiverar killswitchen.

640 00:31:13,760 --> 00:31:18,760 Gör det under sitt eget namn via DNSen och sen bloggar om det.

641 00:31:18,760 --> 00:31:23,760 Det är ju väldigt rätt spelat av honom.

642 00:31:23,760 --> 00:31:25,760 Och sen åkte till USA och talade om det också.

643 00:31:25,760 --> 00:31:28,760 Åtalen handlade inte så mycket om den här notpetya grejen.

644 00:31:28,760 --> 00:31:32,760 Det var en bankingtrojan-grej som var separat.

645 00:31:32,760 --> 00:31:36,760 Han var ju känd först för att han gjorde den här…

646 00:31:36,760 --> 00:31:38,760 Han var ju känd inom communityn innan.

647 00:31:38,760 --> 00:31:42,760 Han blev ju värdkänd inom säkerhet av den här notpetya killswitchen.

648 00:31:42,760 --> 00:31:46,760 Men det som de plockade honom för ska ju ha varit den här bankingtrojan-grejen.

649 00:31:46,760 --> 00:31:48,760 Om jag har förstått det rätt.

650 00:31:48,760 --> 00:31:50,760 Det känner jag igen också.

651 00:31:50,760 --> 00:31:53,760 Och sen är ju hela det här med USAs rättssystem.

652 00:31:53,760 --> 00:31:57,760 Att de håller dig tills du inte har råd och försvarar dig längre.

653 00:31:57,760 --> 00:32:00,760 Då kör de dig till Cuba.

654 00:32:00,760 --> 00:32:04,760 Och det är såhär klart. Han kan vara skyldig, han kanske inte är skyldig.

655 00:32:04,760 --> 00:32:06,760 Men jag tycker att hela grejen är väldigt konstig.

656 00:32:06,760 --> 00:32:07,760 Men jag tycker att hela grejen är väldigt konstig.

657 00:32:07,760 --> 00:32:09,760 Men jag tycker att hela grejen är väldigt konstig.

658 00:32:09,760 --> 00:32:11,760 Och jag tycker att hela sättet det hanteras på är ju inte…

659 00:32:11,760 --> 00:32:15,760 USA generellt är väl inte såhär superduktiga på att hanteras med just den här typen av brottslighet.

660 00:32:15,760 --> 00:32:19,760 Det känns som att de bestämmer sig för att någon ska vi ta.

661 00:32:19,760 --> 00:32:23,760 Och så pekar de på honom och så kastar de hur många jävla åtal som helst på den här personen.

662 00:32:23,760 --> 00:32:27,760 Men det var väl det de här USA…

663 00:32:27,760 --> 00:32:32,760 Någon av de tre bokstäverna i USA sa ju det på den…

664 00:32:32,760 --> 00:32:34,760 Han som var Israel som inte fick…

665 00:32:34,760 --> 00:32:35,760 Shamil Adi.

666 00:32:35,760 --> 00:32:36,760 Så kanske det var.

667 00:32:36,760 --> 00:32:39,760 Som inte fick åka in till USA.

668 00:32:39,760 --> 00:32:47,760 Han sa ju just det att det kanske är dags för säkerhetskommunen att fundera på var man lägger konferensen.

669 00:32:47,760 --> 00:32:51,760 Ja men det känns ju som att det är på gång. Vad hette det? Curl-mannen?

670 00:32:51,760 --> 00:32:53,760 Daniel…

671 00:32:53,760 --> 00:32:54,760 Stenberg.

672 00:32:54,760 --> 00:32:56,760 Han får ju inte heller åka in till USA. Det är ju ingen som vet varför.

673 00:32:56,760 --> 00:33:01,760 Han är på no-fly-listan. Han skulle gå och silla meet-up.

674 00:33:01,760 --> 00:33:02,760 Denied.

675 00:33:02,760 --> 00:33:05,760 Och de bara såhär, vi jobbar på ditt visa.

676 00:33:05,760 --> 00:33:06,760 Eller visum.

677 00:33:06,760 --> 00:33:08,760 Men det har de gjort nu på vår…

678 00:33:08,760 --> 00:33:10,760 De har skrivit malware. Curl.

679 00:33:10,760 --> 00:33:12,760 The famous hacking tool.

680 00:33:12,760 --> 00:33:13,760 Curl.

681 00:33:13,760 --> 00:33:14,760 Curl finns i så många malwares.

682 00:33:14,760 --> 00:33:17,760 Det lär ju vara många malwares som använder Curl.

683 00:33:17,760 --> 00:33:19,760 Definitivt. Mäktigt tool.

684 00:33:19,760 --> 00:33:22,760 Och rätt många bilar.

685 00:33:22,760 --> 00:33:27,760 Och typ allting som har en rudimentär Linux-box typ.

686 00:33:27,760 --> 00:33:30,760 Åter till röslinjering.

687 00:33:30,760 --> 00:33:35,760 För de som vill starta så finns ju rätt mycket tutorials där ute.

688 00:33:35,760 --> 00:33:42,760 Jag vet att på exploitsidan på x86 så finns Fuzzy Security och Coreland Team har riktigt bra sådana write-ups.

689 00:33:42,760 --> 00:33:46,760 Hur man skriver exploits och reversar x86-kod.

690 00:33:46,760 --> 00:33:49,760 Hon… Vad heter hon?

691 00:33:49,760 --> 00:33:50,760 Aceria Labs.

692 00:33:50,760 --> 00:33:52,760 Riktigt bra tutorial.

693 00:33:52,760 --> 00:33:54,760 Hon har en ARM-reversing.

694 00:33:54,760 --> 00:33:57,760 Typ en hel online-kurs som hon har lagt upp.

695 00:33:57,760 --> 00:34:00,760 Det börjar med riktiga basics. Typ, vad är ARM?

696 00:34:00,760 --> 00:34:02,760 Hur ser instruction-setten ut?

697 00:34:02,760 --> 00:34:08,760 Det blir ju nu också en typ webbaserad online-realtids-assembler.

698 00:34:08,760 --> 00:34:10,760 Coolt.

699 00:34:10,760 --> 00:34:16,760 Jag kommer inte ihåg om det var båda hållen men du skriver koden och så ser du i realtid vilka bytes som det ger uppåt.

700 00:34:16,760 --> 00:34:19,760 Det är i webbläsaren väldigt fint. Väldigt pedagogiskt.

701 00:34:19,760 --> 00:34:25,760 Jag har inte hunnit riktigt titta in det ordentligt men jag såg lite screenshots och det såg ju riktigt bra ut.

702 00:34:25,760 --> 00:34:31,760 Hela hennes tutorialserie då som som sagt börjar med egentligen bara kompilering i ARM och sådant.

703 00:34:31,760 --> 00:34:34,760 Alltså går du igenom hur en ARM-instruktion fungerar och så vidare.

704 00:34:34,760 --> 00:34:36,760 Och sen går du över mer på exploit.

705 00:34:36,760 --> 00:34:40,760 Hela den är ju riktad mot en Raspberry Pi också.

706 00:34:40,760 --> 00:34:43,760 Så du kan ju liksom ha en egen labbmiljö hemma om du vill.

707 00:34:43,760 --> 00:34:48,760 Och har du nu inte ens en Raspberry Pi, även om många har det, så kan du faktiskt köra det på QEMU också.

708 00:34:48,760 --> 00:34:52,760 Det finns liksom emulering så att du kommer inte undan.

709 00:34:52,760 --> 00:34:54,760 Precis, det går att lära sig.

710 00:34:54,760 --> 00:34:55,760 Det finns inga ursäkter.

711 00:34:55,760 --> 00:34:59,760 Just att titta på ARM är ju förmodligen, om man inte har en bakgrund i x86 eller något så är det förmodligen lättare att titta på.

712 00:34:59,760 --> 00:35:00,760 Det går att lära sig. Det finns inga ursäkter.

713 00:35:00,760 --> 00:35:05,760 Det är förmodligen lättare att titta på ARM för det är ganska lättare i ett mycket mer basic-instruktionssätt.

714 00:35:05,760 --> 00:35:10,760 Och det är rätt ball idag eftersom det finns så sjukt mycket prylar också som kör ARM-grejer.

715 00:35:10,760 --> 00:35:11,760 Herregud ja.

716 00:35:11,760 --> 00:35:12,760 Det snurrar ju ARM överallt.

717 00:35:12,760 --> 00:35:17,760 Så det är en stark rekommendation från min sida att titta på Acerias grejer.

718 00:35:17,760 --> 00:35:22,760 Ja, den är verkligen sån. Den har varit på min att göra lista sådär verkligen att titta på.

719 00:35:22,760 --> 00:35:27,760 Det är ju en sån som jag har känt att jag velat rekommendera den åt folk men jag har inte riktigt tagit del av den.

720 00:35:27,760 --> 00:35:28,760 Så jag har inte riktigt kunnat.

721 00:35:28,760 --> 00:35:30,760 Men jag har ju bara hört bra saker.

722 00:35:30,760 --> 00:35:33,760 Och hon är ju liksom kunnig.

723 00:35:33,760 --> 00:35:39,760 Och sen är det ju som sagt, jag menar koncepten generaliserar liksom.

724 00:35:39,760 --> 00:35:43,760 Visst, specifika arkitekturer, specifika instruktioner.

725 00:35:43,760 --> 00:35:47,760 Men liksom koncepten är samma.

726 00:35:47,760 --> 00:35:49,760 Ja, det är någon slags data.

727 00:35:49,760 --> 00:35:51,760 En datamaskin.

728 00:35:51,760 --> 00:35:53,760 Den har väl någon modemodem i bakgrunden.

729 00:35:53,760 --> 00:35:54,760 Ja, men inte den sladdar.

730 00:35:54,760 --> 00:35:55,760 Ja, någonstans.

731 00:35:55,760 --> 00:35:57,760 Ska vi…

732 00:35:57,760 --> 00:35:59,760 Om vi ska börja avrunda binärer.

733 00:35:59,760 --> 00:36:01,760 Reverse engineering då.

734 00:36:01,760 --> 00:36:03,760 Som är det vi har pratat mest om.

735 00:36:03,760 --> 00:36:07,760 Så första nivån var ju disassemblers då.

736 00:36:07,760 --> 00:36:11,760 Som tar…

737 00:36:11,760 --> 00:36:12,760 Maskinkod.

738 00:36:12,760 --> 00:36:16,760 Maskinkod och olika varianter på det.

739 00:36:16,760 --> 00:36:19,760 Och skapar assemblekod utifrån den.

740 00:36:19,760 --> 00:36:21,760 Och det är ju generellt sett ett väldigt lätt steg.

741 00:36:21,760 --> 00:36:24,760 Det är ju i princip ett till ett översätt.

742 00:36:24,760 --> 00:36:28,760 Alltså man kan skriva en egen disassembler på kanske ett par hundra rader kod.

743 00:36:28,760 --> 00:36:30,760 På någon timme liksom.

744 00:36:30,760 --> 00:36:32,760 En grundläggande liksom.

745 00:36:32,760 --> 00:36:35,760 Om de inte har fuckat med den för att den ska få en disassembler att kräkas.

746 00:36:35,760 --> 00:36:36,760 Jaja, absolut.

747 00:36:36,760 --> 00:36:39,760 Men i det enkla fallet så…

748 00:36:39,760 --> 00:36:43,760 Men sen har vi ju decompilers då.

749 00:36:43,760 --> 00:36:48,760 Som är den svårare nivån att översätta till något C-liknande då.

750 00:36:48,760 --> 00:36:52,760 Sen…

751 00:36:52,760 --> 00:36:56,760 Vi har inte pratat jättemycket om debuggers.

752 00:36:56,760 --> 00:36:58,760 Nej, precis. Och där är ju sådär också en grej att…

753 00:36:58,760 --> 00:37:01,760 Jag menar när man pratar om reversionering så är det ju väldigt mycket…

754 00:37:01,760 --> 00:37:05,760 Man delar in det i statisk och dynamisk analys.

755 00:37:05,760 --> 00:37:07,760 Det är väl liksom…

756 00:37:07,760 --> 00:37:09,760 Och det här vi har pratat om, att plocka isär koden och så.

757 00:37:09,760 --> 00:37:11,760 Det är ju det vi kallar för statisk analys.

758 00:37:11,760 --> 00:37:12,760 Vi tittar på koden.

759 00:37:12,760 --> 00:37:14,760 Och sen dynamisk analys är ju mer…

760 00:37:14,760 --> 00:37:16,760 Köra koden.

761 00:37:16,760 --> 00:37:18,760 Köra i en sandbox, köra i en debugger.

762 00:37:18,760 --> 00:37:19,760 Titta på hur den beter sig.

763 00:37:19,760 --> 00:37:21,760 Ge den olika typer av input.

764 00:37:21,760 --> 00:37:24,760 Stimulus respons för att se hur den svarar på denna sandbok.

765 00:37:24,760 --> 00:37:25,760 Exakt.

766 00:37:25,760 --> 00:37:26,760 Om du ger den ett svar.

767 00:37:26,760 --> 00:37:30,760 Det kommer ju kanske in lite sådär fuzzing som är ett väldigt hett område.

768 00:37:30,760 --> 00:37:32,760 Och symbolisk exekvering.

769 00:37:32,760 --> 00:37:36,760 En annan teknik för att analysera kod.

770 00:37:36,760 --> 00:37:42,760 Det känns nästan som att har man en stor kodbas så måste man ju nästan köra någon form av dynamisk analys i alla fall.

771 00:37:42,760 --> 00:37:43,760 Så man i alla fall…

772 00:37:43,760 --> 00:37:45,760 Kan jag sätta någon breakpoint?

773 00:37:45,760 --> 00:37:47,760 Ja, se var grejen hamnar liksom.

774 00:37:47,760 --> 00:37:50,760 Vilka funktioner som är intressanta.

775 00:37:50,760 --> 00:37:52,760 Precis. Olika typer av sådana här…

776 00:37:52,760 --> 00:37:54,760 Execution tracing liksom.

777 00:37:54,760 --> 00:37:55,760 Där man kör vissa inputs.

778 00:37:55,760 --> 00:37:58,760 Och så får man liksom vart och vad hände.

779 00:37:58,760 --> 00:38:03,760 Höll inte du i en jätterolig presentation om Anger för några år sedan?

780 00:38:03,760 --> 00:38:04,760 Ja.

781 00:38:04,760 --> 00:38:06,760 Skulle du kunna dra idiotversionen av den?

782 00:38:06,760 --> 00:38:12,760 Anger är ju ett ramverk för symbolisk exekvering.

783 00:38:12,760 --> 00:38:17,760 Så det handlar egentligen om att man istället för att köra programmet med konkreta värden.

784 00:38:17,760 --> 00:38:19,760 Så kör man det lite som algebra.

785 00:38:19,760 --> 00:38:23,760 Den här registret är summan av de här två registren.

786 00:38:23,760 --> 00:38:25,760 Oavsett vad som ligger i dem liksom.

787 00:38:25,760 --> 00:38:28,760 Och så försöker man liksom lösa det här på något sätt som någon slags algebra.

788 00:38:28,760 --> 00:38:30,760 Och så göra analyser utifrån det liksom.

789 00:38:30,760 --> 00:38:33,760 Så då kan man kanske ställa frågan som så här.

790 00:38:33,760 --> 00:38:39,760 Vilket värde måste den här indatan ha för att den här if-satsen ska vara sann?

791 00:38:39,760 --> 00:38:41,760 Och så kan man räkna ut det.

792 00:38:41,760 --> 00:38:43,760 Förhoppningsvis.

793 00:38:43,760 --> 00:38:48,760 Problemet är ju det här att det här kan ju vara liksom extremt beräkningsintensivt.

794 00:38:48,760 --> 00:38:52,760 Det blir väldigt snabbt liksom exponentiell växt i liksom antalet kombinationer av…

795 00:38:52,760 --> 00:38:55,760 Av vad saker kan ta vägen och så.

796 00:38:55,760 --> 00:38:56,760 Men en typ…

797 00:38:56,760 --> 00:39:01,760 Man pekar på binärkoden och så ber man en lös problemet.

798 00:39:01,760 --> 00:39:04,760 Och så man en helt magiskt gör det.

799 00:39:04,760 --> 00:39:06,760 Exakt.

800 00:39:06,760 --> 00:39:10,760 Det mystiska var ju det här Petya-viruset.

801 00:39:10,760 --> 00:39:12,760 Som…

802 00:39:12,760 --> 00:39:17,760 Där man som då körde någon variant av Chacha eller någonting för att kryptera.

803 00:39:17,760 --> 00:39:20,760 Så kunde folk säga till Anger.

804 00:39:20,760 --> 00:39:21,760 Ja.

805 00:39:21,760 --> 00:39:24,760 Lös ut vad kryptonyckeln är.

806 00:39:24,760 --> 00:39:25,760 Och den spottade ut.

807 00:39:25,760 --> 00:39:27,760 Det här är kryptonyckeln.

808 00:39:27,760 --> 00:39:29,760 Och där blev det ju liksom bara.

809 00:39:29,760 --> 00:39:31,760 What the fuck?

810 00:39:31,760 --> 00:39:35,760 Hur kan liksom en solution solver lösa det här?

811 00:39:35,760 --> 00:39:38,760 Och finns det problemet även i det riktiga krypto?

812 00:39:38,760 --> 00:39:39,760 Då börjar ju folk bli rädda.

813 00:39:39,760 --> 00:39:41,760 Och sen…

814 00:39:41,760 --> 00:39:45,760 Och det roliga var ju när de hade löst det med Anger.

815 00:39:45,760 --> 00:39:48,760 Så det finns ju ingen människa som har förstått lösningen.

816 00:39:48,760 --> 00:39:50,760 Det är ju bara Anger som fullt ut förstår.

817 00:39:50,760 --> 00:39:52,760 Och förstår varför det funkar.

818 00:39:52,760 --> 00:39:55,760 Du sätter in grejer här och det händer magi.

819 00:39:55,760 --> 00:39:56,760 Och sen så har du en lösning.

820 00:39:56,760 --> 00:40:02,760 Det är ju liksom din robot-armé av matematiker som äger det här.

821 00:40:02,760 --> 00:40:04,760 En sån jag alltid velat ha.

822 00:40:04,760 --> 00:40:08,760 Men vad löste det här N versus NP-problemet?

823 00:40:08,760 --> 00:40:11,760 Det använder ju massa olika tekniker för att försöka liksom.

824 00:40:11,760 --> 00:40:14,760 Väldigt snabbt utesluta vissa möjligheter.

825 00:40:14,760 --> 00:40:18,760 Och bara titta på de möjligheterna som borde ge upphov till något resultat och sådär.

826 00:40:18,760 --> 00:40:22,760 Var det inte Francisco eller vad han hette som höll en presentation?

827 00:40:22,760 --> 00:40:24,760 Jo, på SECTEA.

828 00:40:24,760 --> 00:40:27,760 Där han löste det sen liksom för hand, typ.

829 00:40:27,760 --> 00:40:29,760 Själva matematiken.

830 00:40:29,760 --> 00:40:34,760 Han hittade implementationsfelet som var förklaringen till varför det funkade.

831 00:40:34,760 --> 00:40:36,760 Det var jävla coolt.

832 00:40:36,760 --> 00:40:40,760 Men vad är mer kulare att vara sig än binära?

833 00:40:40,760 --> 00:40:47,760 Det ska man ju gå uppåt i programspråkstaxonomin.

834 00:40:47,760 --> 00:40:51,760 Och titta på sådana här bytecodesbaserade grejer.

835 00:40:51,760 --> 00:40:54,760 Alltså typ Java och .NET-grejer.

836 00:40:54,760 --> 00:40:55,760 Och där är det ju oftast väldigt tacksamt.

837 00:40:55,760 --> 00:40:57,760 Där finns det ju väldigt bra verktyg.

838 00:40:57,760 --> 00:41:00,760 .NET så finns det ju bland annat DN Spy till exempel.

839 00:41:00,760 --> 00:41:10,760 Som i princip kan ge dig ett färdigt, kompilerbart Visual Studio-projekt utifrån en binär.

840 00:41:10,760 --> 00:41:12,760 Så där är ju väldigt mycket mer tacksamt.

841 00:41:12,760 --> 00:41:16,760 Just för att det finns en viss struktur i de här…

842 00:41:17,760 --> 00:41:19,760 ...ramverken och så där.

843 00:41:19,760 --> 00:41:25,760 Men mycket malware och sådant startar väl ofta i obfuskerad JavaScript, va?

844 00:41:25,760 --> 00:41:28,760 Ja, det finns ju många sådana här högnivåspråk.

845 00:41:28,760 --> 00:41:32,760 Alltså typ Word-macron och sådana där grejer.

846 00:41:32,760 --> 00:41:34,760 Och Visual Basic-grejer.

847 00:41:34,760 --> 00:41:39,760 Och sen har man någon slags flerstegsvariant.

848 00:41:39,760 --> 00:41:42,760 Och sen landar man i någon slags lågnivåkod i slutändan.

849 00:41:42,760 --> 00:41:44,760 Som kanske då…

850 00:41:44,760 --> 00:41:46,760 I vissa malware-ramverk så har du ju liksom…

851 00:41:46,760 --> 00:41:50,760 Du har någon dropper som laddar in en steg två-grej.

852 00:41:50,760 --> 00:41:52,760 Och som sköter liksom persistence.

853 00:41:52,760 --> 00:41:55,760 Och sen har du själva den faktiska payloaden.

854 00:41:55,760 --> 00:41:57,760 Alltså det är ju en hel värld av…

855 00:41:57,760 --> 00:42:00,760 Herregud ja, det finns ju massa fina köp-malwares.

856 00:42:00,760 --> 00:42:03,760 Som man kan plocka hem som har många komponenter.

857 00:42:03,760 --> 00:42:05,760 Jag har satt med ett uppdrag för…

858 00:42:05,760 --> 00:42:07,760 Ja, det är en vecka sedan nu med en incident då.

859 00:42:07,760 --> 00:42:09,760 Med en server som blev rägd.

860 00:42:09,760 --> 00:42:12,760 Via en potentiellt jävligt…

861 00:42:12,760 --> 00:42:14,760 Ja, en dålig Comfad-maskin egentligen.

862 00:42:14,760 --> 00:42:15,760 Men det är ganska roligt att se.

863 00:42:15,760 --> 00:42:17,760 Men det är ganska roligt att se då hur…

864 00:42:17,760 --> 00:42:20,760 Det vegetas ner en blobba.

865 00:42:20,760 --> 00:42:24,760 Som kör igång ett obfuskerat Perl-skript mer eller mindre.

866 00:42:24,760 --> 00:42:27,760 Som börjar tanka hem en jäkla massa roliga grejer då.

867 00:42:27,760 --> 00:42:30,760 Men det är kul att sitta och titta just på det här.

868 00:42:30,760 --> 00:42:32,760 Först har du ju droppen då.

869 00:42:32,760 --> 00:42:34,760 Sen så har du ju de olika implementationsvasorna.

870 00:42:34,760 --> 00:42:37,760 Och det här var skrivet på spanska också.

871 00:42:37,760 --> 00:42:39,760 Obfuskering.

872 00:42:39,760 --> 00:42:41,760 Det är lågnivåspråket.

873 00:42:41,760 --> 00:42:43,760 Hade command and control via IRC.

874 00:42:43,760 --> 00:42:45,760 Så det var riktigt sådär.

875 00:42:45,760 --> 00:42:47,760 90-talet ville komma tillbaka och få sin bot liksom.

876 00:42:47,760 --> 00:42:51,760 Men det var coolt för den hade implementerat speed checkers och grejer.

877 00:42:51,760 --> 00:42:53,760 Så den validerades själv.

878 00:42:53,760 --> 00:42:57,760 När den var infekterad hosten och började committa tillbaka till command and control.

879 00:42:57,760 --> 00:43:00,760 Så var den tvungen att uppfylla vissa krav.

880 00:43:00,760 --> 00:43:02,760 Hur snabb är jag?

881 00:43:02,760 --> 00:43:05,760 Hur många publika vägar till internet har jag?

882 00:43:05,760 --> 00:43:07,760 Vad har jag för CPU-kapacitet?

883 00:43:07,760 --> 00:43:09,760 Och hur mycket disk har jag?

884 00:43:09,760 --> 00:43:11,760 Och sen så postade den över det med sitt hostnamn då.

885 00:43:11,760 --> 00:43:12,760 Och sen så postade den över det med sitt hostnamn då.

886 00:43:12,760 --> 00:43:14,760 Till en dynamisk IRC-resolver då.

887 00:43:14,760 --> 00:43:16,760 Till en dynamisk IRC-resolver då.

888 00:43:16,760 --> 00:43:18,760 Som gav den ett unikt ID.

889 00:43:18,760 --> 00:43:20,760 Riktigt coolt faktiskt.

890 00:43:20,760 --> 00:43:22,760 Och sen så r-synkade den alla hemligheter ut till omvärlden då.

891 00:43:22,760 --> 00:43:24,760 Men allt det där var ju…

892 00:43:24,760 --> 00:43:26,760 Det fanns massa funktionaliteter i källkoden som inte användes.

893 00:43:26,760 --> 00:43:28,760 Det var väldigt tecken på att…

894 00:43:28,760 --> 00:43:30,760 Det var på Linux-host och det fanns Windows-instruktioner.

895 00:43:30,760 --> 00:43:32,760 Det var väldigt tecken på att…

896 00:43:32,760 --> 00:43:34,760 Det var på Linux-host och det fanns Windows-instruktioner.

897 00:43:34,760 --> 00:43:36,760 Precis, så man har liksom bara köpt.

898 00:43:36,760 --> 00:43:38,760 Det här är mitt enda mål.

899 00:43:38,760 --> 00:43:40,760 Vi hade ju de här USB-minnerna här i Göteborg för ett par år sedan.

900 00:43:40,760 --> 00:43:42,760 Vi hade ju de här USB-minnerna här i Göteborg för ett par år sedan.

901 00:43:42,760 --> 00:43:44,760 Som jag reversade malware.

902 00:43:44,760 --> 00:43:46,760 Det var ju i någon sån här business park här som någon hade doppat en massa USB-minnen.

903 00:43:46,760 --> 00:43:48,760 Det var ju i någon sån här business park här som någon hade doppat en massa USB-minnen.

904 00:43:48,760 --> 00:43:50,760 Det var på Lindholmen.

905 00:43:50,760 --> 00:43:52,760 Jag lyckades få tag i en kopia av den där USB-minnen.

906 00:43:52,760 --> 00:43:54,760 Jag tror det kunde ha varit genom någon här kanske.

907 00:43:54,760 --> 00:43:56,760 Jag tror det kunde ha varit genom någon här kanske.

908 00:43:56,760 --> 00:43:58,760 Det var ju det att…

909 00:43:58,760 --> 00:44:00,760 I vanliga fall så är det ju så här…

910 00:44:00,760 --> 00:44:02,760 I vanliga fall så är det ju så här…

911 00:44:02,760 --> 00:44:04,760 Vardagsgrej, men det plockades upp av media.

912 00:44:04,760 --> 00:44:06,760 Och det började pratas om så här…

913 00:44:06,760 --> 00:44:08,760 Statligt sponsrad hacking och riketspioner.

914 00:44:08,760 --> 00:44:10,760 Och det var så här…

915 00:44:10,760 --> 00:44:12,760 Va? Nej?

916 00:44:12,760 --> 00:44:14,760 Jag avskyr ju verkligen den här…

917 00:44:14,760 --> 00:44:16,760 FUD-grejerna.

918 00:44:16,760 --> 00:44:18,760 Så jag bara… Nej, men det här måste jag ju kolla på.

919 00:44:18,760 --> 00:44:20,760 Och nej, det var ju liksom ett…

920 00:44:20,760 --> 00:44:22,760 Off-the-shelf-ramverk.

921 00:44:22,760 --> 00:44:24,760 Och det var ju lite roligt för det här var ju typ version…

922 00:44:24,760 --> 00:44:26,760 3 eller 4 eller någonting av det här malwaret.

923 00:44:26,760 --> 00:44:28,760 Och det är någon person som heter…

924 00:44:28,760 --> 00:44:30,760 Fabian eller någonting som jobbar på någon sån här…

925 00:44:30,760 --> 00:44:32,760 Malwareföretag som har typ skrivit…

926 00:44:32,760 --> 00:44:34,760 Lite bloggposter där han har plockat isär de här.

927 00:44:34,760 --> 00:44:36,760 Så det fanns ju så här meddelanden…

928 00:44:36,760 --> 00:44:38,760 I den här koden med så här…

929 00:44:38,760 --> 00:44:40,760 Fabian och…

930 00:44:40,760 --> 00:44:42,760 Grejer. Så det var ganska roligt.

931 00:44:42,760 --> 00:44:44,760 Jag ska se…

932 00:44:44,760 --> 00:44:46,760 Vi kanske ska ta och rappa upp här för den här gången.

933 00:44:46,760 --> 00:44:48,760 Jesper håller på och flyr.

934 00:44:48,760 --> 00:44:50,760 Precis. Så är det faktiskt.

935 00:44:50,760 --> 00:44:52,760 Och vi har ändå pratat i en tre kvart så det är väl dags.

936 00:44:52,760 --> 00:44:54,760 Skulle jag tro innan folk…

937 00:44:54,760 --> 00:44:56,760 Tappar gnistan här.

938 00:44:56,760 --> 00:44:58,760 Så vi hörs…

939 00:44:58,760 --> 00:45:00,760 Igen snart. Jag ska tacka er för oss.

940 00:45:00,760 --> 00:45:02,760 Jag som pratade heter Johan Ryberg Möller men här är jag…

941 00:45:02,760 --> 00:45:04,760 Jesper Larsson. Yes, en stund till.

942 00:45:04,760 --> 00:45:06,760 Som är på väg härifrån. Kalle Svensson. Hej, hej.

943 00:45:06,760 --> 00:45:08,760 Tack för att du var med. Rickard Bortfors. Bortfarande cyber.

944 00:45:08,760 --> 00:45:10,760 Mattias Idage. Hej.

945 00:45:10,760 --> 00:45:12,760 Och Peter Magnusson. Peter.

946 00:45:12,760 --> 00:45:14,760 Ha det gött. Ha det gött.

947 00:45:14,760 --> 00:45:16,760 Hejdå. Hejdå Jesper.

948 00:45:16,760 --> 00:45:18,760 Sorry för dig gammal.