Säkerhetspodcasten #190 - Server Side Request Forgery
Lyssna
Innehåll
I dagens avsnitt diskuterar panelen en härlig sårbarhet som fått ett rejält uppsving de senaste åren.
Inspelat: 2020-10-07. Längd: 01:00:54.
AI transkribering
AI försöker förstå oss… Ha överseende med galna feltranskriberingar.
1 00:00:00,180 --> 00:00:03,040
Hej och välkommen till Säkerhetspodcasten.
2 00:00:03,440 --> 00:00:07,780
Jag som pratar ikväll heter Rickard Bordfors och med mig har jag Jesper Larsson.
3 00:00:08,260 --> 00:00:08,860
Yes sir!
4 00:00:09,700 --> 00:00:11,040
Peter Magnusson.
5 00:00:11,580 --> 00:00:12,860
Den osynlige.
6 00:00:13,820 --> 00:00:15,240
Och Mattias Idage.
7 00:00:16,400 --> 00:00:17,080
Jabbadabadoo!
8 00:00:18,000 --> 00:00:22,320
Johan är lite krasslig idag och valde att stanna hemma så här i coronatider.
9 00:00:22,580 --> 00:00:25,660
Och vi övriga sitter på varsitt håll och spelar in.
10 00:00:25,660 --> 00:00:30,640
Jag hade lite förkylningskänning själv men kände att det var ändå läge att få vara med.
11 00:00:31,240 --> 00:00:34,620
Det är ju bra att han inte är här och smittar ner oss i vårt virutella samtal.
12 00:00:35,300 --> 00:00:35,960
Ja, det är dumt.
13 00:00:36,060 --> 00:00:38,560
Virtuell corona är ju det senaste nu. Hypervisad.
14 00:00:40,240 --> 00:00:41,000
Så är det.
15 00:00:41,640 --> 00:00:42,960
Jag missade just den faktiskt.
16 00:00:43,600 --> 00:00:45,080
Ja, det är läskigt nu. Det är en mutation.
17 00:00:45,900 --> 00:00:52,100
Idag tänkte vi ju spela in ett strukturerat avsnitt om SSRF.
18 00:00:52,940 --> 00:00:53,660
Stämmer bra det?
19 00:00:53,660 --> 00:00:58,720
Det hade jag ingen aning om vad det var förrän det dök upp i slacken här.
20 00:00:58,860 --> 00:01:06,960
Så jag har tokstuderat och kommer självklart att spela dumma kusinen från landet och visa hur okunnig jag är i området.
21 00:01:07,760 --> 00:01:10,260
Det går jättebra tänker jag. Det var egentligen Johans tema det här.
22 00:01:11,940 --> 00:01:16,620
Vi pratade om det på slacken och sen så drog han sig ur för att han var krasslig.
23 00:01:16,940 --> 00:01:17,760
Vilket är en bra sak.
24 00:01:17,780 --> 00:01:22,620
Innan vi kastar oss in i ämnet så tycker jag att vi ska nämna att det är torsdag.
25 00:01:22,620 --> 00:01:23,840
Det är torsdag. Onsdag.
26 00:01:24,260 --> 00:01:25,420
Onsdag den 7 oktober.
27 00:01:25,520 --> 00:01:26,480
7 oktober, precis.
28 00:01:27,120 --> 00:01:28,880
Och att vi har sponsorer.
29 00:01:29,140 --> 00:01:32,740
En av sponsorerna heter Ashord. Du kan läsa mer om det på ashord.se.
30 00:01:33,200 --> 00:01:35,060
En annan sponsor heter Bodfors Consulting.
31 00:01:35,420 --> 00:01:38,300
Det finns det mer att läsa om på bodfors.se.
32 00:01:38,560 --> 00:01:43,280
Och så finns det en sponsor som heter 0x4A som du kan läsa mer om på 0x4A.se.
33 00:01:44,360 --> 00:01:49,400
Och vill man läsa mer om oss så kan man gå in på sakerhetspodcasten.se.
34 00:01:50,120 --> 00:01:52,460
Eller twittra på at sakpodcasten.
35 00:01:52,620 --> 00:01:55,000
Nu känner jag mig redo.
36 00:01:55,440 --> 00:01:57,720
Ja, men det är bra. Vi är lite ringrostiga.
37 00:01:57,820 --> 00:02:00,100
Vi har ju faktiskt inte setts på jättelänge nu.
38 00:02:00,860 --> 00:02:05,840
Det vill säga att vi har inte suttit tillsammans vid samma bord och spelat in på väldigt lång tid.
39 00:02:06,380 --> 00:02:06,920
Det är tråkigt.
40 00:02:07,120 --> 00:02:08,620
Men så är det i de här tiderna.
41 00:02:09,560 --> 00:02:11,560
När handsprit är det nya guldet.
42 00:02:13,040 --> 00:02:19,940
Ska vi försiktigt försöka bryta ner tarmen SSRF?
43 00:02:19,940 --> 00:02:22,520
Vad var orden?
44 00:02:22,620 --> 00:02:24,620
Vad betyder den innan vi försöker…
45 00:02:25,260 --> 00:02:26,540
Ja, men det tycker jag är en bra idé.
46 00:02:27,220 --> 00:02:32,120
Så SSRF står för Server Side Request Forgery.
47 00:02:32,780 --> 00:02:34,880
Det vill säga, jag vet inte om man ska översätta det ens.
48 00:02:35,320 --> 00:02:42,580
Men server side är ju ändå ganska lätt att fatta om man inte har koll på det.
49 00:02:42,660 --> 00:02:46,020
Det är någonting som händer på serversidan.
50 00:02:46,940 --> 00:02:47,720
Precis så.
51 00:02:50,020 --> 00:02:51,220
Och request då?
52 00:02:51,300 --> 00:02:51,720
Det är egentligen…
53 00:02:52,620 --> 00:02:54,900
Någonting kommer skickas på ett eller annat sätt.
54 00:02:55,520 --> 00:02:57,260
Ja, det är typ en HTTP-fråga.
55 00:02:57,900 --> 00:02:59,560
Ja, precis.
56 00:02:59,940 --> 00:03:00,660
Ett put request.
57 00:03:02,080 --> 00:03:02,820
Eller, ja.
58 00:03:03,640 --> 00:03:05,180
En HTTP-fråga är bättre.
59 00:03:06,800 --> 00:03:11,180
Hjälpsamt för att förstå SSRF kanske man då kan…
60 00:03:12,580 --> 00:03:17,580
Alltså, vi pratar om förfalskade request på serversidan.
61 00:03:19,020 --> 00:03:20,580
Ja, bra summerat. Verkligen.
62 00:03:20,580 --> 00:03:21,100
Och…
63 00:03:21,100 --> 00:03:31,140
Och innan SSRF så har det ju funnits en gammal sårbarhet som hette att CSRF som var ett client side request forgery.
64 00:03:31,760 --> 00:03:32,000
Precis.
65 00:03:32,000 --> 00:03:34,480
Som var ett klient förfalskade request.
66 00:03:36,320 --> 00:03:36,800
Och…
67 00:03:36,800 --> 00:03:44,200
Och även cross site request forgery har du väl haft också va?
68 00:03:45,180 --> 00:03:47,000
Ja, men det är nog bara…
69 00:03:48,540 --> 00:03:51,080
Det har nog mer att göra med att folk inte kan…
70 00:03:51,080 --> 00:03:52,940
Det kan enas som ett namn än någonting annat.
71 00:03:54,180 --> 00:03:54,920
Ja, det är…
72 00:03:54,920 --> 00:03:59,440
Du ser min okunnighet inom den här magiska världen av webbsäkerhet.
73 00:03:59,440 --> 00:04:05,860
Eller, jag vet inte om det finns någon stridskillnad mellan CSRF och XSRF.
74 00:04:06,000 --> 00:04:09,960
Det kanske någon kunnig person kommer håna mig sen.
75 00:04:10,500 --> 00:04:10,860
Men…
76 00:04:10,860 --> 00:04:12,460
Säkerligen.
77 00:04:12,620 --> 00:04:16,520
Men vad de här grejerna handlade om, det var ju att man…
78 00:04:16,520 --> 00:04:20,560
Man försökte lura klienten.
79 00:04:20,800 --> 00:04:21,040
Och det…
80 00:04:21,080 --> 00:04:24,340
Det som var i…
81 00:04:24,340 --> 00:04:29,920
Då var ju typiskt att när du anslöt till en webbsajt så var ju klienten var ju då din webbläsare.
82 00:04:30,300 --> 00:04:34,920
Så man försökte få klienten att felaktigt skicka in…
83 00:04:35,780 --> 00:04:36,860
Lokala saker som klienten…
84 00:04:36,860 --> 00:04:38,180
Frågor till serversidan.
85 00:04:38,960 --> 00:04:39,440
Precis så.
86 00:04:41,440 --> 00:04:43,200
Och det här är ju egentligen…
87 00:04:43,200 --> 00:04:47,040
Den här typen av sårbarhetsvektor, om vi skiter i historiken egentligen.
88 00:04:47,320 --> 00:04:50,920
Om vi tittar på server side request forgery så handlar det ju om…
89 00:04:51,080 --> 00:04:54,080
Om att man ska på något sätt utnyttja…
90 00:04:54,780 --> 00:04:55,380
Eller…
91 00:04:55,380 --> 00:04:59,080
Ja, om man ska exploatera eller utnyttja funktionaliteten…
92 00:04:59,900 --> 00:05:03,220
För att få ut resurser som servern bara kan nå.
93 00:05:04,760 --> 00:05:05,280
Precis.
94 00:05:05,620 --> 00:05:06,380
Om jag…
95 00:05:06,380 --> 00:05:08,300
Om jag får…
96 00:05:08,300 --> 00:05:13,080
Det elevator learningen som jag gjorde här nu innan.
97 00:05:13,820 --> 00:05:16,040
För att åtminstone kunna ställa insiktsfulla frågor.
98 00:05:16,040 --> 00:05:21,040
Så förstod jag det som att mycket av det handlar om trasigheter i…
99 00:05:21,080 --> 00:05:26,440
I URL-parsning på olika serversidor eller liknande.
100 00:05:27,560 --> 00:05:29,400
Har jag förstått rätt så långt, eller?
101 00:05:29,660 --> 00:05:33,100
Kanske inte just i parsningen, men det handlar om att…
102 00:05:33,100 --> 00:05:35,380
Man lurar servern…
103 00:05:35,380 --> 00:05:40,060
Till exempel då, man har en parameter som ska hämta någonting.
104 00:05:40,780 --> 00:05:44,100
Och den parametern är sårbar för en SSR-attack, säger vi då.
105 00:05:44,980 --> 00:05:48,080
Då kan inte servern skilja på…
106 00:05:48,080 --> 00:05:50,080
Eller det som fylls i den parametern…
107 00:05:51,080 --> 00:05:54,440
Kommer servern att skicka utan att validera innehållet på egentligen.
108 00:05:55,260 --> 00:06:03,400
Så i det här fallet då så skulle man kunna utnyttja möjligheten att servern sitter på en del utav ett nätverk.
109 00:06:03,540 --> 00:06:07,780
Som har access till resurser som du som klient inte har access till.
110 00:06:08,760 --> 00:06:10,960
Så att säga att man kan utnyttja den här parametern.
111 00:06:11,400 --> 00:06:16,580
Genom att man kan skicka in en HTTP-fråga till någon godtycklig instans.
112 00:06:16,700 --> 00:06:18,720
Som borde finnas på det interna nätverket.
113 00:06:18,720 --> 00:06:20,280
Eller som bara finns lokalt.
114 00:06:20,360 --> 00:06:20,720
Kanske localhost.
115 00:06:21,420 --> 00:06:22,100
På maskinen.
116 00:06:22,800 --> 00:06:24,560
För det där såg jag mycket just där.
117 00:06:24,620 --> 00:06:31,720
Hur man kunde hitta smarta sätt att få den att adressera localhost.
118 00:06:32,580 --> 00:06:37,440
För att man då misstänkte att det finns andra saker som lyssnar på andra portar.
119 00:06:37,500 --> 00:06:39,580
Men som är firewallade till exempel.
120 00:06:40,120 --> 00:06:40,460
Precis.
121 00:06:41,000 --> 00:06:43,200
Eller att den har kanske en egen instans.
122 00:06:43,200 --> 00:06:46,200
Som en SOX…
123 00:06:46,720 --> 00:06:49,200
Eller den har någon form av…
124 00:06:49,920 --> 00:06:50,780
Vad säger man?
125 00:06:51,080 --> 00:06:54,560
Den har någon form av demon som körs lokalt.
126 00:06:54,680 --> 00:06:58,300
Som inte kan nås av någon annan än sig själv.
127 00:06:59,320 --> 00:07:02,860
Det här blir väldigt aktuellt i det fallet.
128 00:07:03,360 --> 00:07:06,380
Mycket av det jag gör är ju cloud-instrumentering.
129 00:07:06,460 --> 00:07:07,980
Eller instrumentering utav tjänster.
130 00:07:08,720 --> 00:07:11,320
Och för att hålla koll på detta så behöver man implementera någonting.
131 00:07:11,860 --> 00:07:13,620
Man kallar det för ett metadata-lager.
132 00:07:14,660 --> 00:07:18,620
Och metadata-lagret i molninstanser har koll på…
133 00:07:19,460 --> 00:07:21,060
Mycket utav tjänster.
134 00:07:21,060 --> 00:07:22,440
Som körs.
135 00:07:22,500 --> 00:07:24,760
Och vilken akkreditering de har.
136 00:07:24,980 --> 00:07:28,100
Vilka credentials har de.
137 00:07:28,180 --> 00:07:30,300
Vilken möjlighet till att skala har de.
138 00:07:30,460 --> 00:07:32,040
Vilka resurser får de nå.
139 00:07:32,840 --> 00:07:38,500
Vilken typ av rättighet och behörighetsnivå är applicerat på den här tjänsten.
140 00:07:39,820 --> 00:07:44,820
Som attackerar då att man ska kunna utnyttja en service-side request forgery.
141 00:07:44,960 --> 00:07:48,920
Att nå till exempel ett metadata-lager i Google Cloud-plattform till exempel.
142 00:07:48,920 --> 00:07:50,920
Gör att man kan göra krav.
143 00:07:51,060 --> 00:07:55,420
Att man kan göra queries som servern genom den här sårbarheten.
144 00:07:55,500 --> 00:07:58,220
Och kan då få ta del av privilegierad information.
145 00:07:58,440 --> 00:08:00,060
Så som miljövariabler.
146 00:08:00,860 --> 00:08:01,960
Eller konfiguration.
147 00:08:02,400 --> 00:08:04,500
Eller endpunkter.
148 00:08:05,080 --> 00:08:05,680
Certifikat.
149 00:08:05,880 --> 00:08:07,260
Om man nu kör mutual TLS.
150 00:08:07,540 --> 00:08:10,440
Eller om man har Kubernetes till exempel.
151 00:08:10,620 --> 00:08:12,060
Som har en…
152 00:08:12,740 --> 00:08:13,060
En…
153 00:08:13,960 --> 00:08:14,420
Vad ska man säga?
154 00:08:14,460 --> 00:08:19,080
En managerings-svit som heter kubekontroll.
155 00:08:19,080 --> 00:08:20,980
Och kubekontroll bygger på…
156 00:08:20,980 --> 00:08:25,600
Att man kör en autentisering via certifikat oftast.
157 00:08:26,300 --> 00:08:32,400
Men enkelt förklarat så lurar du helt enkelt servern att ställa en fråga åt dig.
158 00:08:32,760 --> 00:08:37,860
Och på så vis utnyttjar antingen trasigheter i infrastruktur.
159 00:08:37,980 --> 00:08:39,500
Eller i rättighetsstyrning.
160 00:08:40,020 --> 00:08:40,140
Ja.
161 00:08:40,520 --> 00:08:45,860
Jag sitter ju och tjurkikar på när Portswigger Web Security…
162 00:08:45,860 --> 00:08:46,800
Ja, den är jättebra.
163 00:08:47,620 --> 00:08:49,040
På Portswigger Academy.
164 00:08:49,360 --> 00:08:50,840
Nu vet inte jag hur…
165 00:08:50,980 --> 00:08:58,700
Hur realistiska de här är från riktiga sårbarheter som pen-testare hittar i miljöer på riktigt.
166 00:08:58,760 --> 00:09:01,560
Men de har ju ett exempel på en…
167 00:09:01,560 --> 00:09:06,960
Typ någon har bryggt ett API där man postar till produkt slash stock.
168 00:09:07,880 --> 00:09:15,740
Och av någon jäkla anledning då så med i liksom bodyn på requestet så kan man spesa stock-API.
169 00:09:17,340 --> 00:09:20,740
Och det man kan då ange på stock-API det är liksom hela jävla…
170 00:09:20,980 --> 00:09:26,260
URL-en till var någonstans aktie-API-et då var.
171 00:09:26,440 --> 00:09:28,160
Eller vad nu stock-API-et ska vara för något.
172 00:09:28,240 --> 00:09:29,800
Men vilken URL det ligger på.
173 00:09:31,180 --> 00:09:33,560
Så att du verkligen…
174 00:09:33,560 --> 00:09:39,700
Du spesar i requestet var någonstans backen till webbservern står någonstans.
175 00:09:40,480 --> 00:09:43,280
Och det där sammanfattar väl SSRF lite grann.
176 00:09:43,380 --> 00:09:48,680
Det vill säga att vi har använda styrd indata som server använder för att bygga upp requests.
177 00:09:49,660 --> 00:09:50,680
Och det gör ju att då kan…
178 00:09:50,980 --> 00:09:52,380
Användaren manipulerar det här.
179 00:09:52,860 --> 00:09:55,520
Och styra de här förfrågningarna lite som man vill.
180 00:09:55,900 --> 00:09:59,000
Och då utnyttja någon slags privilegium som servern har.
181 00:09:59,000 --> 00:10:04,060
Antingen beroende på någon slags position, IP-adress eller någon hemlighet som den automatiskt har med sig.
182 00:10:04,240 --> 00:10:07,000
Precis, så det här är ju lite grann som att proxy…
183 00:10:07,680 --> 00:10:14,060
Eller det är lite grann som att webbservern eller API-et du snackar med fungerar som en proxy för angriparna.
184 00:10:14,060 --> 00:10:14,540
Typ så, ja.
185 00:10:15,120 --> 00:10:17,400
Men jag har en jättestor fråga här.
186 00:10:17,840 --> 00:10:18,780
Och det är…
187 00:10:18,780 --> 00:10:19,460
Varför gör man så?
188 00:10:20,420 --> 00:10:20,860
Alltså…
189 00:10:20,860 --> 00:10:28,800
Alltså när har man behovet att skicka med data ifrån användaren som styr exakt till vilken host en fråga ska gå?
190 00:10:29,340 --> 00:10:30,000
Det har man inte.
191 00:10:30,400 --> 00:10:30,740
Nej.
192 00:10:30,740 --> 00:10:31,520
Det är det enkla svaret.
193 00:10:31,600 --> 00:10:32,600
Precis min tanke.
194 00:10:32,920 --> 00:10:34,020
Men jag tänker mig att…
195 00:10:34,020 --> 00:10:38,300
Men det vet vi ju att indata-validering är ju någonting som har förföljt oss.
196 00:10:39,020 --> 00:10:41,020
Jo men varför ens använda?
197 00:10:41,100 --> 00:10:45,900
För jag menar ofta har du integrationer så tänker jag att spontant att de är ganska fasta och statiska.
198 00:10:46,020 --> 00:10:48,200
Det är ju sällan att de är så dynamiska som de är användarstyrda.
199 00:10:48,200 --> 00:10:49,280
Nu får vi lugna ner oss lite.
200 00:10:49,860 --> 00:10:50,140
Ja.
201 00:10:50,140 --> 00:10:50,200
Ja.
202 00:10:50,200 --> 00:10:50,220
Ja.
203 00:10:50,220 --> 00:10:50,280
Ja.
204 00:10:50,280 --> 00:10:50,300
Ja.
205 00:10:50,300 --> 00:10:50,320
Ja.
206 00:10:50,320 --> 00:10:50,340
Ja.
207 00:10:50,340 --> 00:10:50,360
Ja.
208 00:10:50,360 --> 00:10:50,380
Ja.
209 00:10:50,380 --> 00:10:50,400
Ja.
210 00:10:50,400 --> 00:10:50,460
Ja.
211 00:10:50,860 --> 00:11:20,840
Ja.
212 00:11:20,840 --> 00:11:20,860
Ja.
213 00:11:20,860 --> 00:11:26,440
Den vill man kanske ligga i någon form av säker enklavel, i någon form av VPC eller någonting sånt.
214 00:11:26,920 --> 00:11:28,800
Så det tycker inte jag är så orimligt att man vill göra.
215 00:11:28,800 --> 00:11:34,660
Men det konstiga är ju att du spesar själv exakt var backen ligger någonstans.
216 00:11:35,620 --> 00:11:40,200
Det gör man ju oftast inte dynamiskt då.
217 00:11:40,280 --> 00:11:42,800
Det vill säga man låter inte klienten bestämma vart backen ligger.
218 00:11:43,360 --> 00:11:44,880
Och det är ju där problembilden är lite.
219 00:11:44,880 --> 00:11:50,280
Det vill säga att du ska ju ha färdiga frågor egentligen som inte går att extenda.
220 00:11:50,860 --> 00:11:52,940
Och det är ju svårt.
221 00:11:53,420 --> 00:12:02,240
Jag såg ett validexempel där jag kan se att användaren matar in url-er och hostar som man ska använda.
222 00:12:02,660 --> 00:12:03,800
Som servern ska använda.
223 00:12:03,860 --> 00:12:07,200
Det var till exempel om man ska lägga upp en profil och ha ett profilfoto eller något.
224 00:12:07,320 --> 00:12:09,180
Alltså inkludera foton från en annan url.
225 00:12:09,680 --> 00:12:11,920
Det ser jag som ett valit use case.
226 00:12:12,400 --> 00:12:13,060
Ett CDN då?
227 00:12:13,060 --> 00:12:18,400
Som dessutom är jättesvårt att validera.
228 00:12:18,580 --> 00:12:20,160
Alltså hur ska jag veta var fan du har din bild?
229 00:12:20,860 --> 00:12:24,380
Ja, men det finns flera exempel.
230 00:12:24,580 --> 00:12:36,180
Säg till exempel att du tillhandahåller någon miljö där du kan specificera var någonstans backen ligger.
231 00:12:36,620 --> 00:12:46,000
Till exempel om användarna själva får regga upp var någonstans man får sina samhällsbiljetter.
232 00:12:46,000 --> 00:12:50,100
Eller den gamla idén om OpenID.
233 00:12:50,100 --> 00:12:56,600
Det byggde ju på att alla fick ange på vilken url deras autentiseringsöverlog och så.
234 00:12:59,160 --> 00:13:06,940
Det som är lite konstigt är ju just att det är fritt blås och spesar lite vad som helst.
235 00:13:08,060 --> 00:13:12,860
Ja, det är inte helt sant utan det här är ju upp till indatavalideringen egentligen.
236 00:13:14,940 --> 00:13:16,860
Sårbarhetsklassen är ju inte…
237 00:13:17,420 --> 00:13:19,240
Men om vi säger indatavalideringen.
238 00:13:20,100 --> 00:13:23,100
Göra som vi anser då…
239 00:13:23,100 --> 00:13:27,980
Alltså vad lägger du in datavalidering som skulle skydda mot den här typen av sårbarheter?
240 00:13:28,920 --> 00:13:31,020
Att man inte får lov att…
241 00:13:31,020 --> 00:13:35,280
Ja, men okej. I Mattias fall det här med att man pekar på en url.
242 00:13:36,240 --> 00:13:38,080
Att peka på en bild eller någonting.
243 00:13:38,740 --> 00:13:40,660
Där man måste ju validera att det är…
244 00:13:40,660 --> 00:13:42,100
Alltså där ska man ju inte…
245 00:13:43,560 --> 00:13:50,100
Där ska man ju vara tydlig med vilken fråga som får lov att skickas inom det inne i den parametern.
246 00:13:50,100 --> 00:13:52,560
Om det makes sense.
247 00:13:54,560 --> 00:13:57,060
Ja, men det är ju det jag funderar på.
248 00:13:58,560 --> 00:14:01,600
För mycket är ju att man till exempel extenderar någonting.
249 00:14:02,340 --> 00:14:06,560
Man frågar efter någonting och tittar också efter det här.
250 00:14:08,580 --> 00:14:16,500
Säg till exempel om man får spesa domännamnet så skulle du ju fortfarande med en ondextern DNS
251 00:14:16,500 --> 00:14:18,500
så hade du ju kunnat ha att…
252 00:14:20,100 --> 00:14:30,180
1.attack.nu hade ju kunnat mappa till 127.0.0.1
253 00:14:30,180 --> 00:14:39,920
och 2.attack.nu hade ju kunnat peka på 127.0.0.2 eller något liknande.
254 00:14:40,780 --> 00:14:41,120
Absolut.
255 00:14:42,000 --> 00:14:46,740
Ja, du kunde ju även mappa upp gråadresser och sånt till att se på.
256 00:14:48,060 --> 00:14:48,540
Gråa?
257 00:14:48,560 --> 00:14:49,000
Ja.
258 00:14:50,100 --> 00:14:51,920
Eller ja, det kanske man inte kan i och för sig.
259 00:14:52,020 --> 00:14:56,060
Men det jag tänkte var egentligen, det var ju Amazons metadata-lagar.
260 00:14:56,320 --> 00:15:02,380
Att du räcker din egen domän och så pekar den mot den IPN som är den klassiska AVS-IPN.
261 00:15:02,860 --> 00:15:05,100
Jo, men varför ska servern använda er DNS?
262 00:15:05,680 --> 00:15:07,160
Nu var det många som pratade samtidigt.
263 00:15:07,440 --> 00:15:09,140
Varför ska servern använda er DNS?
264 00:15:10,160 --> 00:15:11,220
Om jag kan styra domänen.
265 00:15:11,860 --> 00:15:12,140
Precis.
266 00:15:13,480 --> 00:15:15,200
Om du kan styra domänen, ja absolut.
267 00:15:16,300 --> 00:15:16,740
Absolut.
268 00:15:16,980 --> 00:15:19,180
Och i bildfallet så kan jag ju styra domänen.
269 00:15:19,280 --> 00:15:20,060
Det är ju liksom min bild.
270 00:15:20,100 --> 00:15:21,560
Den ligger på jidhagel.se.
271 00:15:22,740 --> 00:15:26,880
Jo, men den gör ju då en lookup och den kommer ju leta efter en bild, eller hur?
272 00:15:27,520 --> 00:15:29,240
Den förväntas ju i ett resultat, eller hur?
273 00:15:29,320 --> 00:15:30,140
Och som den renderar.
274 00:15:30,160 --> 00:15:30,300
Nej.
275 00:15:33,020 --> 00:15:36,480
Ja, men om du vill ha liksom ett testpunkt.
276 00:15:36,820 --> 00:15:41,160
Jasper, du vet ju om det är en bild först efter att du gjort frågan.
277 00:15:42,380 --> 00:15:42,920
Ja, precis.
278 00:15:43,200 --> 00:15:45,260
Men outputen måste ju presenteras någonstans.
279 00:15:46,860 --> 00:15:48,060
Jo, men det är påverkan.
280 00:15:48,300 --> 00:15:48,760
Man måste ju rendera outputen också.
281 00:15:49,220 --> 00:15:50,080
Du kan ju plottföra den.
282 00:15:50,100 --> 00:15:51,700
Du kan ju ha en blind server-side request.
283 00:15:51,700 --> 00:15:52,440
Ja, jo, absolut.
284 00:15:52,900 --> 00:15:56,100
Det kan du absolut ha, men den kommer ju inte hjälpa dig så långt.
285 00:15:58,400 --> 00:16:08,100
Nej, men då är du inne på nästa nivå, om man kan se resultatet från sin SSRF.
286 00:16:09,260 --> 00:16:09,420
Ja.
287 00:16:10,020 --> 00:16:11,840
Blind versus icke-blind.
288 00:16:12,420 --> 00:16:15,420
Och det beror ju på vad man vill göra, typ om det finns…
289 00:16:15,420 --> 00:16:18,580
Men i det fallet när man vill till exempel läsa metadata-lagret,
290 00:16:18,580 --> 00:16:19,920
ja, då vill man ju…
291 00:16:19,920 --> 00:16:22,540
Definitivt inte ha en blind SSRF alls.
292 00:16:22,540 --> 00:16:28,580
Men om vi nu har den här sårbarheten i till exempel USAs webbserver för att sköta atombomberna,
293 00:16:29,220 --> 00:16:33,420
och så kan vi posta in till slash nuke slash launch,
294 00:16:33,560 --> 00:16:37,560
då spelar det ju inte så stor roll om den är blind eller inte blind.
295 00:16:38,260 --> 00:16:39,300
Nej, det är sant. Det är sant.
296 00:16:40,780 --> 00:16:46,580
Under de här slash launch slash all slash vi slash nukes.
297 00:16:47,200 --> 00:16:48,960
Men sen ska man ju också…
298 00:16:48,960 --> 00:16:49,600
Så måste det vara.
299 00:16:49,920 --> 00:16:53,980
Vi pratade om att det var oftast valet förekommande via HTTP bara,
300 00:16:54,080 --> 00:16:55,760
men det är inte helt sant.
301 00:16:55,840 --> 00:16:59,160
Man kan ju använda file, man kan använda data, dictionary.
302 00:16:59,500 --> 00:17:05,660
Det finns massa olika typer av entiteter som faktiskt går att kalla på i sann SSRF-maner då.
303 00:17:06,580 --> 00:17:08,540
Men är det vanligt att man har kontroll över…
304 00:17:09,200 --> 00:17:11,940
Ja, det tog vi just uppgift att säga, att det finns en hel del fall
305 00:17:11,940 --> 00:17:15,540
där man har hela hostname och url-en anges utav klienten.
306 00:17:16,220 --> 00:17:16,940
Det kan vara.
307 00:17:17,140 --> 00:17:19,840
Men det kan också vara att man ska peka ut.
308 00:17:19,920 --> 00:17:22,740
Någonting lokalt, eller som ska vara lokalt.
309 00:17:22,840 --> 00:17:24,420
Säg att man har en dashboard till exempel.
310 00:17:26,440 --> 00:17:30,840
Och den dashboarden är någonting som du ska bygga upp som användare.
311 00:17:31,980 --> 00:17:35,320
Då kommer du behöva länka saker och ting i det lokala kontextet.
312 00:17:35,320 --> 00:17:39,000
Det känns ju som att väldigt mycket av det här handlar om folk som
313 00:17:39,000 --> 00:17:45,660
hellre bygger någonting supergeneriskt än att komfa saker i serverkonfigurationen.
314 00:17:46,620 --> 00:17:48,320
För att hade man…
315 00:17:48,320 --> 00:17:49,760
De flesta när jag har varit med…
316 00:17:49,920 --> 00:17:52,900
Om man gör grejer så ligger det ju som Mattias var inne på.
317 00:17:53,080 --> 00:17:56,940
Det vanligaste är ju att allting ligger ju i konfiguration.
318 00:17:57,120 --> 00:17:58,720
Liksom var man går någonstans.
319 00:17:59,640 --> 00:18:03,500
Men det kanske är de som är väldigt web 2.0-poppiga
320 00:18:03,500 --> 00:18:05,480
och har extremt mycket beroende.
321 00:18:05,660 --> 00:18:08,160
Att det är lättare att man råkar göra sådana här grejer då.
322 00:18:10,240 --> 00:18:12,400
Jag skulle säga att det är ganska vanligt förekommande.
323 00:18:12,400 --> 00:18:16,720
Och det är ju en otrolig vinst när man tittar på cloud-prylar.
324 00:18:16,820 --> 00:18:18,300
Det blir ju en perfekt vektor in.
325 00:18:18,760 --> 00:18:19,400
För att…
326 00:18:19,400 --> 00:18:21,200
På något sätt…
327 00:18:21,200 --> 00:18:22,860
Få någon form av elevering då liksom.
328 00:18:22,880 --> 00:18:24,700
Men jag har ytterligare en fråga här.
329 00:18:24,840 --> 00:18:25,440
Alltså…
330 00:18:25,440 --> 00:18:28,820
När jag kollar på de här…
331 00:18:28,820 --> 00:18:30,740
Portswigger-exemplerna.
332 00:18:32,320 --> 00:18:35,260
Jag hade ju blivit extasis…
333 00:18:35,260 --> 00:18:37,300
Vad heter det?
334 00:18:37,320 --> 00:18:43,580
Jag hade blivit possig och väldigt hyper om jag tittar på en url.
335 00:18:43,660 --> 00:18:46,320
Och det ser ut som att den urlen styr någonting på insidan.
336 00:18:46,320 --> 00:18:47,320
Det hade ju jag…
337 00:18:48,040 --> 00:18:49,260
Tänker jag att jag borde reagera.
338 00:18:49,400 --> 00:18:50,340
Rätt kraftigt på.
339 00:18:50,480 --> 00:18:53,360
Och jag känner inte riktigt att det här är någonting jag stöter på.
340 00:18:54,520 --> 00:18:55,960
Men det handlar ju om att du…
341 00:18:55,960 --> 00:18:56,920
Ja men alltså…
342 00:18:56,920 --> 00:18:57,860
Du ser ju inte det.
343 00:18:57,940 --> 00:18:59,440
Du ser ju bara att den kallar på en funktion.
344 00:19:00,180 --> 00:19:03,620
Och sedan så ändrar du ju requestet innan du skickar det.
345 00:19:04,740 --> 00:19:07,200
Och extenderar det till exempel med…
346 00:19:07,200 --> 00:19:09,680
Du kanske utökar det med frågetecken.
347 00:19:11,180 --> 00:19:12,000
Ja jag vet inte.
348 00:19:12,600 --> 00:19:15,460
Givet metadata-lager eller någon interna host liksom.
349 00:19:15,460 --> 00:19:16,920
Så du extenderar ju en fråga.
350 00:19:16,980 --> 00:19:17,120
Precis.
351 00:19:17,300 --> 00:19:19,240
Så du är egentligen inne på att många…
352 00:19:19,240 --> 00:19:23,840
Många gånger du hittar de här sårbarheterna så är det…
353 00:19:23,840 --> 00:19:26,980
För att du vet vilka typer av fel någon brukar göra.
354 00:19:27,140 --> 00:19:30,140
Till exempel i Google-tjänster eller Amazon-tjänster.
355 00:19:30,840 --> 00:19:32,640
Ja det skulle inte säga att det är unikt där.
356 00:19:32,760 --> 00:19:39,060
Utan att folk implementerar funktioner där man ska titta efter saker och ting som borde ligga lokalt.
357 00:19:40,160 --> 00:19:40,680
Parameterstyrt.
358 00:19:40,680 --> 00:19:46,120
Och inte då tillåter att man extenderar frågan med ett och eller med ett frågetecken.
359 00:19:46,240 --> 00:19:47,320
Eller vad fan det nu kan tänkas vara.
360 00:19:48,120 --> 00:19:49,080
Så får man möjlighet…
361 00:19:49,240 --> 00:19:54,480
Det kan ju vara i vad som helst.
362 00:19:54,600 --> 00:19:55,700
Det kan ju vara i…
363 00:19:55,700 --> 00:19:58,760
Ja det blir så brett område här.
364 00:19:59,080 --> 00:20:02,240
Men det kan ju vara i precis var som helst.
365 00:20:04,080 --> 00:20:08,080
Som är skrivet av någon godtycklig person då.
366 00:20:10,480 --> 00:20:12,240
Okej så det du menar är att du…
367 00:20:13,540 --> 00:20:17,920
Det är svårt att hitta ett speciellt ställe där du typiskt letar efter en SSRF.
368 00:20:17,920 --> 00:20:18,920
Utan istället så sprayar du…
369 00:20:19,240 --> 00:20:22,920
Och sen så märker du att shit här ändrades ju någonting.
370 00:20:23,260 --> 00:20:24,940
Nu duktar det upp en…
371 00:20:24,940 --> 00:20:27,080
I ordinarie så sitter man ju i Burp då.
372 00:20:27,200 --> 00:20:29,640
Även jag som är ganska infranärast.
373 00:20:29,800 --> 00:20:32,460
Allting är ju i någon form av restlager idag.
374 00:20:32,600 --> 00:20:35,520
Och det är liksom allting i ett API som ska vara med och bestämma.
375 00:20:35,920 --> 00:20:38,600
Så oftast så sitter man ju i Burp.
376 00:20:38,660 --> 00:20:41,280
Och så tittar man på de requesten som går fram och tillbaka.
377 00:20:41,340 --> 00:20:43,700
Man klickar igenom funktionaliteten i en…
378 00:20:43,700 --> 00:20:44,580
Ja men…
379 00:20:44,580 --> 00:20:45,740
Jag vet inte om man kan säga de här.
380 00:20:46,240 --> 00:20:47,900
Jag testar ju en del open source grejer.
381 00:20:47,900 --> 00:20:48,480
Så det tänker jag.
382 00:20:48,480 --> 00:20:49,620
Det är det jag sitter och letar efter nu.
383 00:20:49,640 --> 00:20:50,340
För den skulle jag kunna säga.
384 00:20:50,420 --> 00:20:51,180
För den är publik.
385 00:20:51,320 --> 00:20:55,180
Men ta till exempel Systig och Falco då.
386 00:20:55,260 --> 00:20:58,820
Som är två projekt för att på något sätt…
387 00:20:58,820 --> 00:21:03,400
Ja det är som ett sårbarhetsprojekt för orkestrering.
388 00:21:03,520 --> 00:21:06,100
Typ Kubernetes och Docker och sådär då.
389 00:21:07,420 --> 00:21:10,360
Där är det en dashboard som agerar som en IDS.
390 00:21:10,480 --> 00:21:13,040
Som håller koll på lite olika regler som du själv kan spara.
391 00:21:13,160 --> 00:21:17,860
Kan validera och titta på olika funktioner som finns lokalt på systemet.
392 00:21:17,860 --> 00:21:18,360
Och övervaka kontakterna.
393 00:21:18,480 --> 00:21:20,700
Titta vilka imager du har.
394 00:21:20,840 --> 00:21:21,600
Se till att de är okej.
395 00:21:21,660 --> 00:21:24,120
Se till att dina network and security policies stämmer.
396 00:21:24,340 --> 00:21:24,980
Och jada jada.
397 00:21:25,180 --> 00:21:30,140
Det är som en säkerhetsprodukt som du jackar in i ditt kluster då.
398 00:21:31,100 --> 00:21:33,900
Här då så finns det ju då möjlighet för systemadministratören.
399 00:21:34,000 --> 00:21:36,480
Eller användaren av systemet att skapa egna triggers.
400 00:21:37,380 --> 00:21:39,660
Egen monitorering och det ena med det andra.
401 00:21:40,460 --> 00:21:43,400
Vilket gör att användaren själv skapar logik i systemet.
402 00:21:44,140 --> 00:21:46,500
Den logiken bygger ju på olika parametrar.
403 00:21:46,500 --> 00:21:48,460
Som är fördefinierade av projekten.
404 00:21:48,480 --> 00:21:49,820
Av systemet.
405 00:21:49,880 --> 00:21:50,860
De är ju byggda av någon.
406 00:21:51,840 --> 00:21:55,520
Och när en sån parameter går att utöka eller manipulera.
407 00:21:56,200 --> 00:21:58,780
Med hjälp av att man manipulerar requestet som skickas.
408 00:21:58,920 --> 00:21:59,740
Det vill säga proxy.
409 00:21:59,960 --> 00:22:02,580
Man ser vad requestet kommer att vara.
410 00:22:02,760 --> 00:22:03,480
Man manipulerar parametern.
411 00:22:04,180 --> 00:22:07,400
Där finns det ju en ganska given idé.
412 00:22:07,620 --> 00:22:11,700
Om vilka typer av funktioner som borde vara sårbara för en SSRF.
413 00:22:12,620 --> 00:22:13,800
Jag hängde inte riktigt med där.
414 00:22:13,800 --> 00:22:16,800
Du menar att det finns en koppling från applikationen.
415 00:22:16,800 --> 00:22:18,800
Till de här hjälpsystemen på insidan.
416 00:22:18,800 --> 00:22:25,800
Och du kan med hjälp av användarindata styra om dem lite.
417 00:22:25,800 --> 00:22:27,800
Eller ändra lite på frågan hur den ställs.
418 00:22:27,800 --> 00:22:29,800
Ja, extenda koden.
419 00:22:29,800 --> 00:22:31,800
Så att det webbrequestet.
420 00:22:31,800 --> 00:22:33,800
Eller HTTP requestet.
421 00:22:33,800 --> 00:22:35,800
Det använder getparameter.
422 00:22:35,800 --> 00:22:37,800
Eller vad fan det nu heter.
423 00:22:37,800 --> 00:22:39,800
Eller gettransaction.
424 00:22:39,800 --> 00:22:41,800
Eller vad fasken det nu kan tänkas vara.
425 00:22:41,800 --> 00:22:43,800
Den här funktionen som är sårbar.
426 00:22:43,800 --> 00:22:45,800
Vad kan vi ta som exempel.
427 00:22:45,800 --> 00:22:53,800
Vi har en funktion där vi kan lägga upp en subdomän säger vi.
428 00:22:55,800 --> 00:22:59,800
Och då kanske vi kan lägga till typ.
429 00:22:59,800 --> 00:23:02,800
I requestet lägger vi till frågetecken.
430 00:23:02,800 --> 00:23:07,800
X är lika med www.onsite.com eller någonting.
431 00:23:07,800 --> 00:23:10,800
Och sen så kollar man inte.
432 00:23:10,800 --> 00:23:14,800
De kollar inte ordentligt om frågetecken X.
433 00:23:14,800 --> 00:23:16,800
De validerar inte det.
434 00:23:16,800 --> 00:23:22,800
Men du la till det.
435 00:23:22,800 --> 00:23:24,800
Precis.
436 00:23:24,800 --> 00:23:26,800
Hur vet du att ens X finns menar jag.
437 00:23:26,800 --> 00:23:28,800
Varför skulle den över huvud taget parsa det på server side.
438 00:23:28,800 --> 00:23:30,800
Nej men det är ju det.
439 00:23:30,800 --> 00:23:32,800
Det är inte definierat och den renderar det ändå.
440 00:23:32,800 --> 00:23:34,800
För den ser det som en vanligt B-fråga liksom.
441 00:23:34,800 --> 00:23:36,800
Spännande.
442 00:23:36,800 --> 00:23:38,800
Så då blir det typ så här.
443 00:23:38,800 --> 00:23:40,800
Get?X är lika med någonting.
444 00:23:40,800 --> 00:23:42,800
Som är lokalt då kanske.
445 00:23:42,800 --> 00:23:44,800
Och då så här.
446 00:23:44,800 --> 00:23:46,800
Get?X metadata lager.
447 00:23:46,800 --> 00:23:48,800
Ge mig alla dina hemligheter.
448 00:23:48,800 --> 00:23:50,800
Eller vad fan ska det nu.
449 00:23:50,800 --> 00:23:52,800
Du kan inte ens svara.
450 00:23:52,800 --> 00:23:54,800
Och så kan du då använda typ collaborator eller någonting.
451 00:23:54,800 --> 00:23:58,800
För att få en postback till en host som du har koll på.
452 00:23:58,800 --> 00:24:02,800
Men själva grundtesen för att man ska kunna ha den här typen av problem då.
453 00:24:02,800 --> 00:24:04,800
Det måste ju vara.
454 00:24:04,800 --> 00:24:08,800
Antingen utvecklarna själva skriver sjukt dynamiskt kod.
455 00:24:08,800 --> 00:24:10,800
För att hantera det.
456 00:24:10,800 --> 00:24:12,800
Det är ju oftast där det är liksom.
457 00:24:12,800 --> 00:24:14,800
Det vill säga att man använder.
458 00:24:14,800 --> 00:24:16,800
Ja men som i det här fallet då.
459 00:24:16,800 --> 00:24:18,800
Så är ju subdomän.
460 00:24:18,800 --> 00:24:20,800
Det är ju någonting som sätts av mig som användare.
461 00:24:20,800 --> 00:24:22,800
Mm.
462 00:24:22,800 --> 00:24:26,800
Och hela responset som renderas då i koden.
463 00:24:26,800 --> 00:24:28,800
Är typ request.get.
464 00:24:28,800 --> 00:24:30,800
Och så då url.
465 00:24:30,800 --> 00:24:32,800
Och url är hela definitionen av.
466 00:24:32,800 --> 00:24:34,800
Min dynamiska subdomän.
467 00:24:34,800 --> 00:24:36,800
Och en sträng.
468 00:24:36,800 --> 00:24:38,800
Så det enda som är statiskt där.
469 00:24:38,800 --> 00:24:40,800
Det är ju det som kommer efter den dynamiskt.
470 00:24:40,800 --> 00:24:42,800
Populerade indatan.
471 00:24:42,800 --> 00:24:44,800
Men när responsen säger.
472 00:24:44,800 --> 00:24:46,800
Rendera allting i som.
473 00:24:46,800 --> 00:24:48,800
Som jag har definierat som url.
474 00:24:48,800 --> 00:24:50,800
Ja och i de fall.
475 00:24:50,800 --> 00:24:52,800
Det är ju ett dåligt exempel men ja.
476 00:24:52,800 --> 00:24:54,800
Då går man ju förbi det.
477 00:24:54,800 --> 00:24:56,800
Så som det var tänkt att använda det här systemet.
478 00:24:56,800 --> 00:24:58,800
Ja men då är det ju.
479 00:24:58,800 --> 00:25:00,800
Typiskt.
480 00:25:00,800 --> 00:25:02,800
Fall då man har väl.
481 00:25:02,800 --> 00:25:04,800
Alltså via.
482 00:25:04,800 --> 00:25:06,800
Användarens egen konfiguration.
483 00:25:06,800 --> 00:25:08,800
För att göra.
484 00:25:08,800 --> 00:25:10,800
Sjukt mycket.
485 00:25:10,800 --> 00:25:12,800
Systemintegration och det.
486 00:25:12,800 --> 00:25:14,800
Det kan ju vara till exempel.
487 00:25:14,800 --> 00:25:16,800
Ja det kan ju vara vad som helst i ett socialt nätverk.
488 00:25:16,800 --> 00:25:18,800
Eller i ett community.
489 00:25:18,800 --> 00:25:20,800
Eller vad fasken som helst.
490 00:25:20,800 --> 00:25:22,800
I Mattias fall där man laddar in en bild till exempel.
491 00:25:22,800 --> 00:25:24,800
Eller att man i ditt fall.
492 00:25:24,800 --> 00:25:26,800
Att man ska ladda in någon sammel eller någon.
493 00:25:26,800 --> 00:25:28,800
Ja men jag vet ju fan.
494 00:25:28,800 --> 00:25:30,800
Någon OpenID.
495 00:25:30,800 --> 00:25:32,800
Ja precis men.
496 00:25:32,800 --> 00:25:34,800
Autentiseringsbackend.
497 00:25:34,800 --> 00:25:36,800
Så är ju ett fall där det skulle kunna hända.
498 00:25:36,800 --> 00:25:38,800
Om du.
499 00:25:38,800 --> 00:25:40,800
Lägger sig upp liksom att.
500 00:25:40,800 --> 00:25:42,800
För användarna som kommer in.
501 00:25:42,800 --> 00:25:44,800
Vid den här federerings.
502 00:25:44,800 --> 00:25:46,800
Grejen så.
503 00:25:46,800 --> 00:25:48,800
Så har man det här.
504 00:25:48,800 --> 00:25:50,800
De har autentiserat sig borta på den här servern.
505 00:25:50,800 --> 00:25:52,800
Och.
506 00:25:52,800 --> 00:25:54,800
Och där borta kommer det finnas en.
507 00:25:54,800 --> 00:25:56,800
Discovery url.
508 00:25:56,800 --> 00:25:58,800
Som.
509 00:25:58,800 --> 00:26:00,800
Som berättar vad resten av OpenID systemet.
510 00:26:00,800 --> 00:26:02,800
Ligger eller någonting sånt.
511 00:26:02,800 --> 00:26:04,800
Då bygger man ju definitivt ett läge då.
512 00:26:04,800 --> 00:26:06,800
För.
513 00:26:06,800 --> 00:26:08,800
Om du ska kunna ansluta och göra discovery.
514 00:26:08,800 --> 00:26:10,800
Så måste du ju gå till.
515 00:26:10,800 --> 00:26:12,800
En url som kommer från.
516 00:26:12,800 --> 00:26:14,800
Fjärran.
517 00:26:14,800 --> 00:26:16,800
Nu tänkte jag också det.
518 00:26:16,800 --> 00:26:18,800
Discovery funktioner känns intressanta i det här läget.
519 00:26:18,800 --> 00:26:20,800
Ja.
520 00:26:20,800 --> 00:26:22,800
Ja hela den här.
521 00:26:22,800 --> 00:26:24,800
Jag har alltid älskat.
522 00:26:24,800 --> 00:26:26,800
Och hatat på den här.
523 00:26:26,800 --> 00:26:28,800
Idén om OpenID och sådär.
524 00:26:28,800 --> 00:26:30,800
Jag är jävla bakåtsträvare där.
525 00:26:30,800 --> 00:26:32,800
Ända sen de försökte.
526 00:26:32,800 --> 00:26:34,800
Promota det här för årtusen och sådant.
527 00:26:34,800 --> 00:26:36,800
Men där är det ju.
528 00:26:36,800 --> 00:26:38,800
Där är det ju liksom.
529 00:26:38,800 --> 00:26:40,800
Att du via.
530 00:26:40,800 --> 00:26:42,800
Konfiguration eller via öppna frågor.
531 00:26:42,800 --> 00:26:44,800
Ska kunna länka ihop.
532 00:26:44,800 --> 00:26:46,800
Serverar.
533 00:26:46,800 --> 00:26:48,800
Ehm.
534 00:26:48,800 --> 00:26:50,800
Så antingen.
535 00:26:50,800 --> 00:26:52,800
Antingen verkar det ju vara.
536 00:26:52,800 --> 00:26:54,800
Sådana fall då någon har sjukt stora behov.
537 00:26:54,800 --> 00:26:56,800
Av att bygga.
538 00:26:56,800 --> 00:26:58,800
Dynamiska.
539 00:26:58,800 --> 00:27:00,800
Liksom.
540 00:27:00,800 --> 00:27:02,800
Alltså typ server side mashups.
541 00:27:02,800 --> 00:27:04,800
Eller vad vi ska kalla det för.
542 00:27:04,800 --> 00:27:06,800
Länka ihop systemen.
543 00:27:06,800 --> 00:27:08,800
Och den andra skulle väl vara då om.
544 00:27:08,800 --> 00:27:10,800
Om det finns.
545 00:27:10,800 --> 00:27:12,800
Faliga APIar i.
546 00:27:12,800 --> 00:27:14,800
Det som folk kodar i.
547 00:27:14,800 --> 00:27:16,800
Där det inte är uppenbart att viss typ av indata.
548 00:27:16,800 --> 00:27:18,800
Skulle kunna bli.
549 00:27:18,800 --> 00:27:20,800
En dynamisk HTTP fråga.
550 00:27:20,800 --> 00:27:22,800
Där har jag.
551 00:27:22,800 --> 00:27:24,800
Den bara ordbajsar.
552 00:27:24,800 --> 00:27:26,800
Jag har ingen exempel på.
553 00:27:26,800 --> 00:27:28,800
När något sånt skulle kunna.
554 00:27:28,800 --> 00:27:30,800
Det handlar ju om att man missbrukar.
555 00:27:30,800 --> 00:27:32,800
Ehm.
556 00:27:32,800 --> 00:27:34,800
Använda eller utveckla.
557 00:27:34,800 --> 00:27:36,800
Dens idé om vad.
558 00:27:36,800 --> 00:27:38,800
Konstanterna i det programmeringsspråket.
559 00:27:38,800 --> 00:27:40,800
Man använder gör.
560 00:27:40,800 --> 00:27:42,800
Jag hade väldigt gärna velat.
561 00:27:42,800 --> 00:27:44,800
Alltså.
562 00:27:44,800 --> 00:27:46,800
Jag hade väldigt gärna velat förbereda mig lite mer.
563 00:27:46,800 --> 00:27:48,800
Jag hade ju missat hela inspelningen.
564 00:27:48,800 --> 00:27:50,800
Men jag hade gärna velat se lite sådana här.
565 00:27:50,800 --> 00:27:52,800
Dissekeringar av.
566 00:27:52,800 --> 00:27:54,800
Ett antal olika sådana här.
567 00:27:54,800 --> 00:27:56,800
Sårbarheter vad.
568 00:27:56,800 --> 00:27:58,800
Alltså någon sorts.
569 00:27:58,800 --> 00:28:00,800
Varför det gick åt skogen.
570 00:28:00,800 --> 00:28:02,800
För jag.
571 00:28:02,800 --> 00:28:04,800
Fortfarande att.
572 00:28:04,800 --> 00:28:06,800
Vi kommer på.
573 00:28:06,800 --> 00:28:08,800
Några få fall då.
574 00:28:08,800 --> 00:28:10,800
Det känns rimligt att någon skulle kunna hamna.
575 00:28:10,800 --> 00:28:12,800
I den här problematiken.
576 00:28:12,800 --> 00:28:14,800
Det hade varit kul att se lite såhär.
577 00:28:14,800 --> 00:28:16,800
Vad gick.
578 00:28:16,800 --> 00:28:18,800
Faktiskt fel ute i dem.
579 00:28:18,800 --> 00:28:20,800
Som har fått de här problemen på riktigt.
580 00:28:20,800 --> 00:28:22,800
Och hur fan såg koden ut som.
581 00:28:22,800 --> 00:28:24,800
Som försatte dem med det här problemet.
582 00:28:24,800 --> 00:28:26,800
Alltså om vi räknar bort.
583 00:28:26,800 --> 00:28:28,800
Alla människor som har ett.
584 00:28:28,800 --> 00:28:30,800
Validt use case för att bygga sig in.
585 00:28:30,800 --> 00:28:32,800
I den här typen av problematik.
586 00:28:32,800 --> 00:28:34,800
Så kan vi gärna velat se hur det ser ut.
587 00:28:34,800 --> 00:28:36,800
De gånger då någon bara fuckat upp.
588 00:28:36,800 --> 00:28:38,800
Mm.
589 00:28:38,800 --> 00:28:40,800
Ja för det där exemplet som var på portsbookens sida.
590 00:28:40,800 --> 00:28:42,800
Det känns inte så realistiskt liksom.
591 00:28:42,800 --> 00:28:44,800
Att hela jävla API host och url.
592 00:28:44,800 --> 00:28:46,800
Går med i som ett postparameter.
593 00:28:46,800 --> 00:28:48,800
Det känns inte som det.
594 00:28:48,800 --> 00:28:50,800
Hovet finns ju inte så himla ofta iallafall.
595 00:28:50,800 --> 00:28:52,800
Ja men ofta så är det.
596 00:28:52,800 --> 00:28:54,800
Ofta så är det att man kan byta ut.
597 00:28:54,800 --> 00:28:56,800
Innehållet i ett request.
598 00:28:56,800 --> 00:28:58,800
Det vill säga att den visar en hel länk.
599 00:28:58,800 --> 00:29:00,800
En hel url länk.
600 00:29:00,800 --> 00:29:02,800
Och den kan du byta ut.
601 00:29:02,800 --> 00:29:04,800
Och den validerar inte att du har bytt ut den.
602 00:29:04,800 --> 00:29:06,800
Så ganska vanligt med blinda då.
603 00:29:06,800 --> 00:29:08,800
Det är att man använder till exempel burp collaborator.
604 00:29:08,800 --> 00:29:10,800
Jag har en misstanke här.
605 00:29:10,800 --> 00:29:12,800
Det är ju det att.
606 00:29:14,800 --> 00:29:16,800
Typ jag och Mattias är ju.
607 00:29:16,800 --> 00:29:18,800
Vi är ju gamla gubbar liksom.
608 00:29:18,800 --> 00:29:20,800
Jag tror att ju äldre man är.
609 00:29:20,800 --> 00:29:22,800
Ju mer.
610 00:29:22,800 --> 00:29:24,800
Ju mer van man är.
611 00:29:24,800 --> 00:29:26,800
I den gamla skolan.
612 00:29:26,800 --> 00:29:28,800
Desto mer tänker man i termer av att.
613 00:29:28,800 --> 00:29:30,800
Mer och mer grejer.
614 00:29:30,800 --> 00:29:32,800
Är liksom hårt konfatt.
615 00:29:32,800 --> 00:29:34,800
Och det är liksom så här.
616 00:29:34,800 --> 00:29:36,800
Och vi diskuterar mycket.
617 00:29:36,800 --> 00:29:38,800
Och liksom så här.
618 00:29:38,800 --> 00:29:40,800
Ska man ändra och göra någonting dynamiskt.
619 00:29:40,800 --> 00:29:42,800
Så är man där.
620 00:29:42,800 --> 00:29:44,800
Men jag tänker mig att.
621 00:29:44,800 --> 00:29:46,800
Väldigt vanligt skulle jag säga.
622 00:29:46,800 --> 00:29:48,800
Att det är just dynamisk allokering.
623 00:29:48,800 --> 00:29:50,800
Det ska jag säga är typ.
624 00:29:50,800 --> 00:29:52,800
Jo men jag tänker mig ju mer.
625 00:29:52,800 --> 00:29:54,800
Ju mer modern man är.
626 00:29:54,800 --> 00:29:56,800
Och ju mer man är.
627 00:29:56,800 --> 00:29:58,800
Van vid att göra liksom.
628 00:29:58,800 --> 00:30:00,800
Mashups på typ.
629 00:30:00,800 --> 00:30:02,800
Klientsidan och så.
630 00:30:02,800 --> 00:30:04,800
Desto mindre konstigt kanske det känns.
631 00:30:04,800 --> 00:30:06,800
Att mashuppa serversidan.
632 00:30:06,800 --> 00:30:08,800
Det kan vara mycket väl kopplat till just att det är feta klienter.
633 00:30:08,800 --> 00:30:10,800
Och att applikationen är klienten.
634 00:30:10,800 --> 00:30:12,800
Och så vilken server man pratar med.
635 00:30:12,800 --> 00:30:14,800
Det är någonting som.
636 00:30:14,800 --> 00:30:16,800
Det är lite olika från ena sekunden till den andra.
637 00:30:16,800 --> 00:30:18,800
Ja det här är ju ett webb.
638 00:30:18,800 --> 00:30:20,800
Det är oftast ett webbkontext då.
639 00:30:20,800 --> 00:30:22,800
Det är ju inte tjockis.
640 00:30:22,800 --> 00:30:24,800
Det är ju inte renderade klienter vi pratar om.
641 00:30:24,800 --> 00:30:26,800
Alltså det är ju inte typ.
642 00:30:26,800 --> 00:30:28,800
Nej nej nej.
643 00:30:28,800 --> 00:30:30,800
En javascript klient menar jag.
644 00:30:30,800 --> 00:30:32,800
Okej.
645 00:30:32,800 --> 00:30:34,800
Att det hamnar mer och mer av funktionaliteten.
646 00:30:34,800 --> 00:30:36,800
Hamnar i javascript klienten liksom.
647 00:30:36,800 --> 00:30:38,800
Och då för att få utföra det du vill utföra då.
648 00:30:38,800 --> 00:30:40,800
Så måste ju det gå med i anropet till apit.
649 00:30:40,800 --> 00:30:42,800
Ja.
650 00:30:42,800 --> 00:30:44,800
Jag tänker ett exempel på.
651 00:30:44,800 --> 00:30:46,800
Där du faktiskt.
652 00:30:46,800 --> 00:30:48,800
Ganska ofta skickar med.
653 00:30:48,800 --> 00:30:50,800
Hela url är ju sådana här.
654 00:30:50,800 --> 00:30:52,800
Alltså marknadsföringskampanjer.
655 00:30:52,800 --> 00:30:54,800
Och liknande.
656 00:30:54,800 --> 00:30:56,800
Som vill hålla koll på.
657 00:30:56,800 --> 00:30:58,800
Klicks och.
658 00:30:58,800 --> 00:31:00,800
Vem öppnade mailet.
659 00:31:00,800 --> 00:31:02,800
Och sådana här saker.
660 00:31:02,800 --> 00:31:04,800
Där kanske en.
661 00:31:04,800 --> 00:31:06,800
Ja leverantören.
662 00:31:06,800 --> 00:31:08,800
Av den här marknadsföringsplattformen.
663 00:31:08,800 --> 00:31:10,800
Som har skickat ut mailet.
664 00:31:10,800 --> 00:31:12,800
Vill ha requesten tillbaks till sig.
665 00:31:12,800 --> 00:31:14,800
Men att det i den där requesten.
666 00:31:14,800 --> 00:31:16,800
Skickas med vilken url.
667 00:31:16,800 --> 00:31:18,800
Som användaren ska landa på.
668 00:31:18,800 --> 00:31:20,800
När de väl har klickat.
669 00:31:20,800 --> 00:31:22,800
Den känns ju som.
670 00:31:22,800 --> 00:31:24,800
Att den vore uppenbart möjlig.
671 00:31:24,800 --> 00:31:26,800
Att ja.
672 00:31:26,800 --> 00:31:28,800
Bråka med.
673 00:31:28,800 --> 00:31:30,800
Med den här typen av.
674 00:31:30,800 --> 00:31:32,800
Ja alltså oftast så blir det väl mer än.
675 00:31:32,800 --> 00:31:34,800
Det du är inne på brukar ju ofta.
676 00:31:34,800 --> 00:31:36,800
Sluta med i en open redirect.
677 00:31:36,800 --> 00:31:38,800
Liksom att det är.
678 00:31:38,800 --> 00:31:40,800
Att det blir klienten.
679 00:31:40,800 --> 00:31:42,800
Som studsas iväg någonstans.
680 00:31:42,800 --> 00:31:44,800
Här är det ju mer att någon faktiskt studsar.
681 00:31:44,800 --> 00:31:46,800
Servern någonstans.
682 00:31:46,800 --> 00:31:48,800
Ja just det.
683 00:31:48,800 --> 00:31:50,800
Och det handlar ju om hur man väljer att implementera koden.
684 00:31:50,800 --> 00:31:52,800
Det vill säga är det användaren som får lov att rendera.
685 00:31:52,800 --> 00:31:54,800
Eller är det servern som renderar.
686 00:31:54,800 --> 00:31:56,800
Och det båda har ju.
687 00:31:56,800 --> 00:31:58,800
Båda är ju problematiska.
688 00:31:58,800 --> 00:32:00,800
Och bara för att adressera.
689 00:32:00,800 --> 00:32:02,800
Hur vanligt det här är då.
690 00:32:02,800 --> 00:32:04,800
Så tar det ju ett avs.
691 00:32:04,800 --> 00:32:06,800
Koncept eller perspektiv.
692 00:32:06,800 --> 00:32:08,800
Alltså Amazons.
693 00:32:08,800 --> 00:32:10,800
Måntjänst.
694 00:32:10,800 --> 00:32:12,800
De har ju valt att ändra.
695 00:32:12,800 --> 00:32:14,800
Hela sin metadata.
696 00:32:14,800 --> 00:32:16,800
Konsumtion.
697 00:32:16,800 --> 00:32:18,800
Det vill säga att de har någonting.
698 00:32:18,800 --> 00:32:20,800
Som heter instant metadata version.
699 00:32:20,800 --> 00:32:22,800
Ett och kallar de den första.
700 00:32:22,800 --> 00:32:24,800
Som är sårbar för den här typen av attack.
701 00:32:24,800 --> 00:32:26,800
Det vill säga att.
702 00:32:26,800 --> 00:32:28,800
Har man en service side request forgery sårbarhet.
703 00:32:28,800 --> 00:32:30,800
Så kan man rycka ut innehållet där.
704 00:32:30,800 --> 00:32:32,800
Och då få ta del av.
705 00:32:32,800 --> 00:32:34,800
Privilegierad information som.
706 00:32:34,800 --> 00:32:36,800
IAM credentials.
707 00:32:36,800 --> 00:32:38,800
Eller en bootstrap skript.
708 00:32:38,800 --> 00:32:40,800
Och vad fasken det nu kan tänkas vara.
709 00:32:40,800 --> 00:32:42,800
Och det har gått så långt att de har.
710 00:32:42,800 --> 00:32:44,800
Som en generisk rekommendation.
711 00:32:44,800 --> 00:32:46,800
Att man uppdaterar tjänsten.
712 00:32:46,800 --> 00:32:48,800
Och deras nya tjänst då.
713 00:32:48,800 --> 00:32:50,800
Går egentligen ut på att man.
714 00:32:50,800 --> 00:32:52,800
De implementerar en token.
715 00:32:54,800 --> 00:32:56,800
I hela requestet.
716 00:32:56,800 --> 00:32:58,800
Så då måste man göra.
717 00:32:58,800 --> 00:33:00,800
Ett specifikt HTTP put request istället.
718 00:33:00,800 --> 00:33:02,800
Om en given token för att kunna.
719 00:33:02,800 --> 00:33:04,800
Göra en query mot metadata instansen då.
720 00:33:04,800 --> 00:33:06,800
Så att det här är.
721 00:33:06,800 --> 00:33:08,800
Ganska utbredd.
722 00:33:08,800 --> 00:33:10,800
Typ av attack liksom.
723 00:33:10,800 --> 00:33:12,800
Där är vi inne på.
724 00:33:14,800 --> 00:33:16,800
Mitigering liksom.
725 00:33:16,800 --> 00:33:18,800
Vi har ju första lagret.
726 00:33:18,800 --> 00:33:20,800
Det är ju.
727 00:33:20,800 --> 00:33:22,800
Det är liksom.
728 00:33:22,800 --> 00:33:24,800
Ta bort sårbarheten.
729 00:33:24,800 --> 00:33:26,800
Skriv inte sårbar kod.
730 00:33:26,800 --> 00:33:28,800
Precis.
731 00:33:28,800 --> 00:33:30,800
Men de nöjde sig inte.
732 00:33:30,800 --> 00:33:32,800
Med det.
733 00:33:32,800 --> 00:33:34,800
Utan de gjorde ju.
734 00:33:34,800 --> 00:33:36,800
En rätt intressant grej där.
735 00:33:36,800 --> 00:33:38,800
Det här med.
736 00:33:38,800 --> 00:33:40,800
Att kräva token där.
737 00:33:40,800 --> 00:33:42,800
Det handlar ju helt enkelt om man vill att.
738 00:33:42,800 --> 00:33:44,800
Om det sker en.
739 00:33:44,800 --> 00:33:46,800
En väldigt blind.
740 00:33:46,800 --> 00:33:48,800
SSRF.
741 00:33:48,800 --> 00:33:50,800
Det här är fel.
742 00:33:50,800 --> 00:33:52,800
Ordval här.
743 00:33:52,800 --> 00:33:54,800
Eftersom att de använder blind.
744 00:33:54,800 --> 00:33:56,800
I en annan betydelse.
745 00:33:56,800 --> 00:33:58,800
I artikeln vi kollar på.
746 00:33:58,800 --> 00:34:00,800
Som att du är en ovetande.
747 00:34:00,800 --> 00:34:02,800
Om omständigheterna.
748 00:34:02,800 --> 00:34:04,800
Du kan inte.
749 00:34:04,800 --> 00:34:06,800
För det första kanske du inte kan.
750 00:34:06,800 --> 00:34:08,800
Trycka in ett token.
751 00:34:08,800 --> 00:34:10,800
Via den här sårbarheten du har.
752 00:34:10,800 --> 00:34:12,800
För att du kanske bara kan styra.
753 00:34:12,800 --> 00:34:14,800
Vilken URL den går till.
754 00:34:14,800 --> 00:34:16,800
Men sen vet du ju inte heller.
755 00:34:16,800 --> 00:34:18,800
Så att du kräver.
756 00:34:18,800 --> 00:34:20,800
Du kräver mycket.
757 00:34:20,800 --> 00:34:22,800
Du kräver en mycket djupare ägande.
758 00:34:22,800 --> 00:34:24,800
Av det sårbara systemet.
759 00:34:24,800 --> 00:34:26,800
För att kunna ha tokenet.
760 00:34:26,800 --> 00:34:28,800
För att kasta rätt fråga.
761 00:34:28,800 --> 00:34:30,800
På insidan.
762 00:34:30,800 --> 00:34:32,800
Ja precis precis.
763 00:34:32,800 --> 00:34:34,800
Du behöver ju ha mer kontroll helt enkelt.
764 00:34:34,800 --> 00:34:36,800
Och säg till exempel att man ville.
765 00:34:36,800 --> 00:34:38,800
Alltså att man skulle.
766 00:34:38,800 --> 00:34:40,800
Skydda sig mot en.
767 00:34:40,800 --> 00:34:42,800
Mot en blind.
768 00:34:42,800 --> 00:34:44,800
SSRF.
769 00:34:44,800 --> 00:34:46,800
Så att det fanns ett superenkelt token.
770 00:34:46,800 --> 00:34:48,800
Som uppdaterades dynamiskt.
771 00:34:48,800 --> 00:34:50,800
Och som behövde det.
772 00:34:50,800 --> 00:34:52,800
Alltid följa med.
773 00:34:52,800 --> 00:34:54,800
Där det inte behövs.
774 00:34:54,800 --> 00:34:56,800
Super mycket säkerhet.
775 00:34:56,800 --> 00:34:58,800
För att skydda sig lite grann.
776 00:35:00,800 --> 00:35:02,800
Så är det ju.
777 00:35:02,800 --> 00:35:04,800
Men som tar till exempel.
778 00:35:04,800 --> 00:35:06,800
Ja skitsamma.
779 00:35:06,800 --> 00:35:08,800
Det blir mer kaka på kaka.
780 00:35:08,800 --> 00:35:10,800
Men det som är.
781 00:35:10,800 --> 00:35:12,800
Potentiellt livsfarligt då.
782 00:35:12,800 --> 00:35:14,800
Med molninstrumentering.
783 00:35:14,800 --> 00:35:16,800
Vi behöver ju då ha någon form av.
784 00:35:16,800 --> 00:35:18,800
Kommunikationslager.
785 00:35:18,800 --> 00:35:20,800
För att hålla koll på entiteter.
786 00:35:20,800 --> 00:35:22,800
Runt om i molnmiljön.
787 00:35:22,800 --> 00:35:24,800
Det vill säga man måste kunna.
788 00:35:24,800 --> 00:35:26,800
Sätta sina boundaries.
789 00:35:26,800 --> 00:35:28,800
Baserat på ett eget IAM koncept.
790 00:35:28,800 --> 00:35:30,800
I det här fallet.
791 00:35:30,800 --> 00:35:32,800
Eller AVS större IAM koncept.
792 00:35:32,800 --> 00:35:34,800
För alla som är med på en Nord till exempel.
793 00:35:34,800 --> 00:35:36,800
Så det här är ju liksom en sårbarhetsklass.
794 00:35:36,800 --> 00:35:38,800
Som är här för att stanna.
795 00:35:38,800 --> 00:35:40,800
Som är ganska allvarlig.
796 00:35:40,800 --> 00:35:42,800
Men du säger att den är här för att stanna.
797 00:35:42,800 --> 00:35:44,800
AVS har löst det.
798 00:35:44,800 --> 00:35:46,800
Men hur många tror du har implementerat det då?
799 00:35:46,800 --> 00:35:48,800
Hur många tror du inte har skrivit funktionalitet.
800 00:35:48,800 --> 00:35:50,800
För att kunna konsumera till exempel innehåll i metadata lager.
801 00:35:50,800 --> 00:35:52,800
För att validera.
802 00:35:52,800 --> 00:35:54,800
Det är ju två grejer där.
803 00:35:54,800 --> 00:35:56,800
Den ena är ju.
804 00:35:56,800 --> 00:35:58,800
Om de skyddar sitt metadata lager.
805 00:35:58,800 --> 00:36:00,800
Men det kan ju fortfarande finnas.
806 00:36:00,800 --> 00:36:02,800
Massa annat på insidan.
807 00:36:02,800 --> 00:36:04,800
Som man har byggt själv.
808 00:36:04,800 --> 00:36:06,800
Som är känslighet.
809 00:36:06,800 --> 00:36:08,800
Och det här blir ju ytterligare problematiskt då.
810 00:36:08,800 --> 00:36:10,800
För då säger man att EC2 instansen.
811 00:36:10,800 --> 00:36:12,800
Är skyddad.
812 00:36:12,800 --> 00:36:14,800
Men EKS klustret.
813 00:36:14,800 --> 00:36:16,800
Eller det här Kubernetes klustret som vi kör.
814 00:36:16,800 --> 00:36:18,800
Den är inte skyddad.
815 00:36:18,800 --> 00:36:20,800
För den ligger i en annan VPC.
816 00:36:20,800 --> 00:36:22,800
I en mikrotjänst.
817 00:36:22,800 --> 00:36:24,800
Som en helt annan stack.
818 00:36:24,800 --> 00:36:26,800
En helt annan nätverks stack.
819 00:36:26,800 --> 00:36:28,800
Gentemot vad målsystemet ligger i.
820 00:36:28,800 --> 00:36:30,800
Så exponeringen blir väldigt indikat.
821 00:36:30,800 --> 00:36:32,800
Det är väldigt sällan.
822 00:36:32,800 --> 00:36:34,800
Man har en in och ut sida nu i moderna applikationer.
823 00:36:34,800 --> 00:36:36,800
Man har ofta i moderna webb applikationer då framför allt.
824 00:36:36,800 --> 00:36:38,800
Man har ju multipla delar.
825 00:36:38,800 --> 00:36:40,800
Och det har ju delar.
826 00:36:40,800 --> 00:36:42,800
Dels med.
827 00:36:42,800 --> 00:36:44,800
Kostnader att göra.
828 00:36:44,800 --> 00:36:46,800
Det vill säga att vissa delar av hemsidan.
829 00:36:46,800 --> 00:36:48,800
Har man inte lika höga tillgänglighetskrav på.
830 00:36:48,800 --> 00:36:50,800
Till exempel.
831 00:36:50,800 --> 00:36:52,800
Och andra delar av hemsidan har man jävligt höga tillgänglighetskrav på.
832 00:36:52,800 --> 00:36:54,800
Vissa delar vill man ha.
833 00:36:54,800 --> 00:36:56,800
Någon form av autoskalningsfunktion.
834 00:36:56,800 --> 00:36:58,800
Det vill säga att när det blir mycket last.
835 00:36:58,800 --> 00:37:00,800
Så måste vi kunna tillgodose det.
836 00:37:00,800 --> 00:37:02,800
För det är vårt sätt att make business.
837 00:37:02,800 --> 00:37:04,800
Så då sätter man helt andra krav.
838 00:37:04,800 --> 00:37:06,800
Konfigurationsmässigt på de här olika delarna.
839 00:37:06,800 --> 00:37:08,800
Av applikationen.
840 00:37:08,800 --> 00:37:10,800
Där oftast det blir svårt och komplext.
841 00:37:14,800 --> 00:37:16,800
Jag försöker få Google att få mig att framstå.
842 00:37:16,800 --> 00:37:18,800
Som smartare än vad jag är.
843 00:37:18,800 --> 00:37:20,800
Så jag har tjugoglat lite nu.
844 00:37:20,800 --> 00:37:22,800
Och hittade Bug Crowd.
845 00:37:22,800 --> 00:37:24,800
Har en vulnerability rating taxonomy.
846 00:37:24,800 --> 00:37:26,800
Den är lite rolig.
847 00:37:26,800 --> 00:37:28,800
För att de har.
848 00:37:28,800 --> 00:37:30,800
SSRF så har de.
849 00:37:30,800 --> 00:37:32,800
De har delat upp den i.
850 00:37:34,800 --> 00:37:36,800
Fyra olika impacts.
851 00:37:36,800 --> 00:37:38,800
De har ju då en.
852 00:37:38,800 --> 00:37:40,800
En P2 då.
853 00:37:40,800 --> 00:37:42,800
P1 är det absolut värsta de kan få.
854 00:37:42,800 --> 00:37:44,800
Så.
855 00:37:44,800 --> 00:37:46,800
Så P2 är.
856 00:37:46,800 --> 00:37:48,800
Riktigt allvarligt men inte jorden går under.
857 00:37:48,800 --> 00:37:50,800
Och då.
858 00:37:50,800 --> 00:37:52,800
Har de beskrivit det som.
859 00:37:52,800 --> 00:37:54,800
Variant slash affected function.
860 00:37:54,800 --> 00:37:56,800
Då är det internal high impact.
861 00:37:56,800 --> 00:37:58,800
Och det är.
862 00:37:58,800 --> 00:38:00,800
Det är väl lite som vi har pratat om.
863 00:38:00,800 --> 00:38:02,800
Att det finns en väldigt känslig tjänst på insidan.
864 00:38:02,800 --> 00:38:04,800
Som det är jättedumt.
865 00:38:04,800 --> 00:38:06,800
Att man via SSRF kan snacka.
866 00:38:06,800 --> 00:38:08,800
Med den.
867 00:38:08,800 --> 00:38:10,800
Ja.
868 00:38:10,800 --> 00:38:12,800
Sen har de en.
869 00:38:12,800 --> 00:38:14,800
En P3 variant av den här.
870 00:38:14,800 --> 00:38:16,800
Då de.
871 00:38:16,800 --> 00:38:18,800
Då de säger att ja du kan scanna insidan.
872 00:38:18,800 --> 00:38:20,800
Med hjälp av SSRF.
873 00:38:20,800 --> 00:38:22,800
Eller så kan du snacka.
874 00:38:22,800 --> 00:38:24,800
Med något system som har.
875 00:38:24,800 --> 00:38:26,800
Medium impact då.
876 00:38:26,800 --> 00:38:28,800
Så att.
877 00:38:28,800 --> 00:38:30,800
Så deras.
878 00:38:30,800 --> 00:38:32,800
Det finns många tillämpningar.
879 00:38:32,800 --> 00:38:34,800
Men via SSRF är också ganska nice för vissa.
880 00:38:34,800 --> 00:38:36,800
Där kan man ju använda.
881 00:38:36,800 --> 00:38:38,800
Alltså 400 meddelar.
882 00:38:38,800 --> 00:38:40,800
Eller man kan använda liksom arrow coden i HTTP.
883 00:38:40,800 --> 00:38:42,800
Protokollet egentligen.
884 00:38:42,800 --> 00:38:44,800
Där man kan validera att man får man en 500.
885 00:38:44,800 --> 00:38:46,800
Eller får man en 404.
886 00:38:46,800 --> 00:38:48,800
Så kan man bedöma hur vidare det faktiskt finns en host eller inte då.
887 00:38:48,800 --> 00:38:50,800
Så det finns ju payloads för.
888 00:38:50,800 --> 00:38:52,800
Ja en så här.
889 00:38:52,800 --> 00:38:54,800
Rudimentär.
890 00:38:54,800 --> 00:38:56,800
Ping eller port scanner typ.
891 00:38:56,800 --> 00:38:58,800
Så det är en ganska kul.
892 00:38:58,800 --> 00:39:00,800
Klassa så det finns mycket roligt här.
893 00:39:00,800 --> 00:39:02,800
Och.
894 00:39:02,800 --> 00:39:04,800
Precis.
895 00:39:04,800 --> 00:39:06,800
Och det.
896 00:39:06,800 --> 00:39:08,800
Jag antar att det som styr.
897 00:39:08,800 --> 00:39:10,800
Om man anser high eller medium.
898 00:39:10,800 --> 00:39:12,800
Det blir ju väsentligen bara hur.
899 00:39:12,800 --> 00:39:14,800
Hur känsliga grejer kan du köra.
900 00:39:14,800 --> 00:39:16,800
Med din SSRF liksom.
901 00:39:16,800 --> 00:39:18,800
Ehm.
902 00:39:18,800 --> 00:39:20,800
Ja men så här.
903 00:39:20,800 --> 00:39:22,800
Man ska ju kunna summera det som att du kan nå.
904 00:39:22,800 --> 00:39:24,800
Rest interface.
905 00:39:24,800 --> 00:39:26,800
Ehm alltså.
906 00:39:26,800 --> 00:39:28,800
Typiskt metadata lagret i en cloud instans.
907 00:39:28,800 --> 00:39:30,800
Ehm.
908 00:39:30,800 --> 00:39:32,800
Du har ju också då möjlighet att läsa filer.
909 00:39:32,800 --> 00:39:34,800
Jag vet inte.
910 00:39:34,800 --> 00:39:36,800
Och datafält.
911 00:39:36,800 --> 00:39:38,800
Jag vet inte ens vad de här står för riktigt.
912 00:39:38,800 --> 00:39:40,800
Men filer vet jag att du kan.
913 00:39:40,800 --> 00:39:42,800
Liksom nå.
914 00:39:42,800 --> 00:39:44,800
I POP har vi något som heter par.
915 00:39:44,800 --> 00:39:46,800
Eller vad heter det.
916 00:39:46,800 --> 00:39:48,800
Alltså PHR.
917 00:39:48,800 --> 00:39:50,800
Jag vet inte vad det är förkortning för egentligen.
918 00:39:50,800 --> 00:39:52,800
Men.
919 00:39:52,800 --> 00:39:54,800
Det är ju lite hela konceptet.
920 00:39:54,800 --> 00:39:56,800
Så allting som du kan nå.
921 00:39:56,800 --> 00:39:58,800
Alla HTTP interface i stort sett.
922 00:39:58,800 --> 00:40:00,800
Men men.
923 00:40:00,800 --> 00:40:02,800
Ja men du.
924 00:40:02,800 --> 00:40:04,800
Men du är lite inne på mer.
925 00:40:04,800 --> 00:40:06,800
Än att bara använda.
926 00:40:06,800 --> 00:40:08,800
HTTP rullar då liksom.
927 00:40:08,800 --> 00:40:10,800
Precis det finns.
928 00:40:10,800 --> 00:40:12,800
Det är inte bara begränsat dit.
929 00:40:12,800 --> 00:40:14,800
Men oftast den tillämpningen.
930 00:40:14,800 --> 00:40:16,800
Som exploateras.
931 00:40:16,800 --> 00:40:18,800
Det är just i HTTP.
932 00:40:18,800 --> 00:40:20,800
Mot HTTP interface på olika sätt.
933 00:40:20,800 --> 00:40:22,800
Jag såg.
934 00:40:22,800 --> 00:40:24,800
Idag när jag försökte.
935 00:40:24,800 --> 00:40:26,800
Snabbt skapa mig en bild av detta.
936 00:40:26,800 --> 00:40:28,800
Så såg jag någon som rappade.
937 00:40:28,800 --> 00:40:30,800
SMTP.
938 00:40:30,800 --> 00:40:32,800
I HTTP.
939 00:40:32,800 --> 00:40:34,800
Och liksom lyckades prata med.
940 00:40:34,800 --> 00:40:36,800
En mail server.
941 00:40:36,800 --> 00:40:38,800
Det går säkert alldeles.
942 00:40:38,800 --> 00:40:40,800
Alldeles utmärkt.
943 00:40:40,800 --> 00:40:42,800
Beroende lite på vad man har för kontroll.
944 00:40:42,800 --> 00:40:44,800
Vad du kan göra med den här parametern.
945 00:40:44,800 --> 00:40:46,800
Du manipulerar.
946 00:40:46,800 --> 00:40:48,800
Vad din vektor är.
947 00:40:48,800 --> 00:40:50,800
Så absolut.
948 00:40:50,800 --> 00:40:52,800
Vad är det du pekar på i andra änden.
949 00:40:52,800 --> 00:40:54,800
Kan du liksom.
950 00:40:54,800 --> 00:40:56,800
Konkatenera ett request.
951 00:40:56,800 --> 00:40:58,800
Både att göra det här och sen göra det här.
952 00:40:58,800 --> 00:41:00,800
Och sen göra det här.
953 00:41:00,800 --> 00:41:02,800
För i det du pratar om Rickard.
954 00:41:02,800 --> 00:41:04,800
Så är det ju antingen så att någon har byggt.
955 00:41:04,800 --> 00:41:06,800
En helt amazing web.
956 00:41:06,800 --> 00:41:08,800
Backend interface i andra änden.
957 00:41:08,800 --> 00:41:10,800
Mm.
958 00:41:10,800 --> 00:41:12,800
Eller att man stackade.
959 00:41:12,800 --> 00:41:14,800
SSRF med ytterligare.
960 00:41:14,800 --> 00:41:16,800
Någon sårbarhet i.
961 00:41:16,800 --> 00:41:18,800
Ytterligare ett system.
962 00:41:18,800 --> 00:41:20,800
Så jag antar att de som gör extremt.
963 00:41:20,800 --> 00:41:22,800
Coola saker de har väl oftast klistrat ihop.
964 00:41:22,800 --> 00:41:24,800
Många olika sårbarheter i sina attacker.
965 00:41:24,800 --> 00:41:26,800
Precis.
966 00:41:26,800 --> 00:41:28,800
Men det är ju oftast parsing.
967 00:41:28,800 --> 00:41:30,800
Det här var ett black hat talk.
968 00:41:30,800 --> 00:41:32,800
Men det du säger.
969 00:41:32,800 --> 00:41:34,800
Det är definitivt görbart.
970 00:41:34,800 --> 00:41:36,800
Det vill säga att man kan använda.
971 00:41:36,800 --> 00:41:38,800
Olika.
972 00:41:38,800 --> 00:41:40,800
Jag kan inget svenskt ord för det här.
973 00:41:40,800 --> 00:41:42,800
Men bypass tekniker.
974 00:41:42,800 --> 00:41:44,800
För att komma förbi filter som man sätter.
975 00:41:44,800 --> 00:41:46,800
Kringgångstekniker tycker jag.
976 00:41:46,800 --> 00:41:48,800
Ja det blir ju knasigt bara.
977 00:41:48,800 --> 00:41:50,800
Men det är ju samma som.
978 00:41:50,800 --> 00:41:52,800
Man kan ju obfuskera IP adresser.
979 00:41:52,800 --> 00:41:54,800
Kan du köra decimalform till exempel.
980 00:41:54,800 --> 00:41:56,800
Du kan använda colon colon.
981 00:41:56,800 --> 00:41:58,800
Alltså det finns mycket sådana här konstig.
982 00:41:58,800 --> 00:42:00,800
Gammal herkelogik.
983 00:42:00,800 --> 00:42:02,800
Som går att nyttja till din fördel.
984 00:42:02,800 --> 00:42:04,800
Om du behöver.
985 00:42:04,800 --> 00:42:06,800
Så det finns massa.
986 00:42:06,800 --> 00:42:08,800
Alltså som cross-site scripting.
987 00:42:08,800 --> 00:42:10,800
Har ju massa olika triggers.
988 00:42:10,800 --> 00:42:12,800
Det finns ju en miljard olika payloads.
989 00:42:12,800 --> 00:42:14,800
Baserat på i vilket kontext.
990 00:42:14,800 --> 00:42:16,800
Du har hittat en potentiell.
991 00:42:16,800 --> 00:42:18,800
Skriptkälla liksom.
992 00:42:18,800 --> 00:42:20,800
Ja och det man kan säga.
993 00:42:20,800 --> 00:42:22,800
Det är ju att hur en SSRF.
994 00:42:22,800 --> 00:42:24,800
Beter sig måste ju bero skit mycket.
995 00:42:24,800 --> 00:42:26,800
På vilket.
996 00:42:26,800 --> 00:42:28,800
Sårbart API det har gått ner i.
997 00:42:28,800 --> 00:42:30,800
Ja eller hur koden ser ut.
998 00:42:30,800 --> 00:42:32,800
Vad förväntas i koden.
999 00:42:32,800 --> 00:42:34,800
Det kan ju vara liksom.
1000 00:42:34,800 --> 00:42:36,800
För att det ska bli.
1001 00:42:36,800 --> 00:42:38,800
Ett giltligt request.
1002 00:42:38,800 --> 00:42:40,800
Så kan vi manipulera statiskt sträng.
1003 00:42:40,800 --> 00:42:42,800
Parameter.
1004 00:42:42,800 --> 00:42:44,800
Och en annan grej.
1005 00:42:44,800 --> 00:42:46,800
Parameter.
1006 00:42:46,800 --> 00:42:48,800
Med den här parameter.
1007 00:42:48,800 --> 00:42:50,800
Så du kan ju oftast.
1008 00:42:50,800 --> 00:42:52,800
Ofta är det ju inte linjärt.
1009 00:42:52,800 --> 00:42:54,800
Det här att.
1010 00:42:54,800 --> 00:42:56,800
Det kan ju till exempel.
1011 00:42:56,800 --> 00:42:58,800
Vara så att du detonerar ner i kod.
1012 00:42:58,800 --> 00:43:00,800
Som faktiskt vet att den ska skjuta.
1013 00:43:00,800 --> 00:43:02,800
Åter till p-request och tänker.
1014 00:43:02,800 --> 00:43:04,800
Det är den enda den kommer göra.
1015 00:43:04,800 --> 00:43:06,800
Men jag har ju.
1016 00:43:06,800 --> 00:43:08,800
Någon gång i tiden suttit på.
1017 00:43:08,800 --> 00:43:10,800
Java server side.
1018 00:43:10,800 --> 00:43:12,800
Och då finns det ju den här.
1019 00:43:12,800 --> 00:43:14,800
Hamnar du ner i javas.
1020 00:43:14,800 --> 00:43:16,800
URL API istället.
1021 00:43:16,800 --> 00:43:18,800
Då är det ju liksom.
1022 00:43:18,800 --> 00:43:20,800
Vilka URL handlers är liksom installerade.
1023 00:43:20,800 --> 00:43:22,800
I din Java miljö.
1024 00:43:22,800 --> 00:43:24,800
Så det påverkar super mycket.
1025 00:43:24,800 --> 00:43:26,800
Vad du kan göra då.
1026 00:43:26,800 --> 00:43:28,800
Som default så finns det.
1027 00:43:28,800 --> 00:43:30,800
File och sådana grejer.
1028 00:43:30,800 --> 00:43:32,800
Som du nämnde liksom.
1029 00:43:32,800 --> 00:43:34,800
Tror inte det är statiskt heller.
1030 00:43:34,800 --> 00:43:36,800
För det till exempel.
1031 00:43:36,800 --> 00:43:38,800
Men det är ju inte det.
1032 00:43:38,800 --> 00:43:40,800
Det är ju så supply.
1033 00:43:40,800 --> 00:43:42,800
Eller att man hämtar det någonstans oftast.
1034 00:43:42,800 --> 00:43:44,800
Men det är ju också generiskt.
1035 00:43:44,800 --> 00:43:46,800
För vilket jävla programmeringsspråk som helst.
1036 00:43:46,800 --> 00:43:48,800
Jag menar det.
1037 00:43:48,800 --> 00:43:50,800
Det finns ju ingenting som säger.
1038 00:43:50,800 --> 00:43:52,800
Helt och hållet på personen.
1039 00:43:52,800 --> 00:43:54,800
Som har skrivit funktionen.
1040 00:43:54,800 --> 00:43:56,800
Så det spelar ju dels roll.
1041 00:43:56,800 --> 00:43:58,800
Alltså typ.
1042 00:43:58,800 --> 00:44:00,800
Vilket språk är det felet ligger i.
1043 00:44:00,800 --> 00:44:02,800
Men också ner i vilket API.
1044 00:44:02,800 --> 00:44:04,800
Är det som faktiskt.
1045 00:44:04,800 --> 00:44:06,800
Gör någonting med.
1046 00:44:06,800 --> 00:44:08,800
Med data till slutändan.
1047 00:44:08,800 --> 00:44:10,800
Ja eller vad renderar requestet.
1048 00:44:10,800 --> 00:44:12,800
Vilket ram.
1049 00:44:12,800 --> 00:44:14,800
Vilken del är det ramverket du kodar i.
1050 00:44:14,800 --> 00:44:16,800
Renderar requestet och vad blir resultatet.
1051 00:44:16,800 --> 00:44:18,800
Och det är ju det man måste förstå då.
1052 00:44:18,800 --> 00:44:20,800
Därför är det ju.
1053 00:44:20,800 --> 00:44:22,800
Det finns ju lite olika SSRF scanners.
1054 00:44:22,800 --> 00:44:24,800
Där man tittar på.
1055 00:44:24,800 --> 00:44:26,800
Enkla vektorer.
1056 00:44:26,800 --> 00:44:28,800
Som man sedan injektar en massa böse i.
1057 00:44:28,800 --> 00:44:30,800
För att få ett förväntat resultat.
1058 00:44:30,800 --> 00:44:32,800
Men mycket av de testen jag gör.
1059 00:44:32,800 --> 00:44:34,800
Så har vi ju källkoden.
1060 00:44:34,800 --> 00:44:36,800
Och då går det ganska snabbt att hitta.
1061 00:44:36,800 --> 00:44:38,800
När man då sitter med både en proxy och källkoden.
1062 00:44:38,800 --> 00:44:40,800
Så kan man snabbt gå till funktionen.
1063 00:44:40,800 --> 00:44:42,800
Här verkar det konstigt. Okej bra vad är det här.
1064 00:44:42,800 --> 00:44:44,800
Ja men den här parametern validerar inte.
1065 00:44:44,800 --> 00:44:46,800
Eller kontrollerar inte innehållet på det här sättet.
1066 00:44:46,800 --> 00:44:48,800
Eller det går att extenda på den här grejen.
1067 00:44:48,800 --> 00:44:50,800
Eller vad det kan tänkas vara.
1068 00:44:50,800 --> 00:44:52,800
Så att.
1069 00:44:52,800 --> 00:44:54,800
Det är svårt att ge en.
1070 00:44:54,800 --> 00:44:56,800
Ja men så här det här är SSRF punkt.
1071 00:44:56,800 --> 00:44:58,800
Utan det beror lite på.
1072 00:44:58,800 --> 00:45:00,800
Andemeningen och.
1073 00:45:00,800 --> 00:45:02,800
Implementationen av den som har skrivit.
1074 00:45:02,800 --> 00:45:04,800
Funktionen som är sårbar.
1075 00:45:04,800 --> 00:45:06,800
Så det kommer påverka till exempel.
1076 00:45:06,800 --> 00:45:08,800
Hur mycket kan du styra.
1077 00:45:08,800 --> 00:45:10,800
Av det hela.
1078 00:45:10,800 --> 00:45:12,800
Kan du bara styra hostnammet.
1079 00:45:12,800 --> 00:45:14,800
Eller kan du styra rubbet.
1080 00:45:14,800 --> 00:45:16,800
Både.
1081 00:45:16,800 --> 00:45:18,800
Kan du utöka frågan.
1082 00:45:18,800 --> 00:45:20,800
Hålla dig till x antal tecken.
1083 00:45:20,800 --> 00:45:22,800
Behöver frågan innehålla.
1084 00:45:22,800 --> 00:45:24,800
Den här statiska strängen.
1085 00:45:24,800 --> 00:45:26,800
Okej hur kan vi filtrera bort den statiska strängen.
1086 00:45:26,800 --> 00:45:28,800
För att få den att trigga på bara vår.
1087 00:45:28,800 --> 00:45:30,800
Alltså det är ju massa olika.
1088 00:45:30,800 --> 00:45:32,800
Så vi tänker då så att.
1089 00:45:32,800 --> 00:45:34,800
Speciellt om man inte har tillgång till källkod.
1090 00:45:34,800 --> 00:45:36,800
Så när man hittat en.
1091 00:45:36,800 --> 00:45:38,800
SSRF så kan det vara väldigt olika.
1092 00:45:38,800 --> 00:45:40,800
Hur.
1093 00:45:40,800 --> 00:45:42,800
Hur lätt den är att utnyttja.
1094 00:45:42,800 --> 00:45:44,800
Yes verkligen.
1095 00:45:44,800 --> 00:45:46,800
Min idé är att.
1096 00:45:46,800 --> 00:45:48,800
Blind.
1097 00:45:48,800 --> 00:45:50,800
SSRF är oftast.
1098 00:45:50,800 --> 00:45:52,800
Då använder man oftast.
1099 00:45:52,800 --> 00:45:54,800
Någon form av host.
1100 00:45:54,800 --> 00:45:56,800
Om man kan köra sin egen dns tjänst.
1101 00:45:56,800 --> 00:45:58,800
Eller om man använder burp collaborator.
1102 00:45:58,800 --> 00:46:00,800
Det är ju väldigt hjälpsamt.
1103 00:46:00,800 --> 00:46:02,800
Burp collaborator är egentligen.
1104 00:46:02,800 --> 00:46:04,800
Att man genererar ett dns namn.
1105 00:46:04,800 --> 00:46:06,800
Som är kopplat till din burp instans.
1106 00:46:06,800 --> 00:46:08,800
Som visar responset.
1107 00:46:08,800 --> 00:46:10,800
Eller ett request som görs.
1108 00:46:10,800 --> 00:46:12,800
Till den instansen.
1109 00:46:12,800 --> 00:46:14,800
Eller om du har en egen domän.
1110 00:46:14,800 --> 00:46:16,800
Där du kan göra exakt samma sak.
1111 00:46:16,800 --> 00:46:18,800
Det är väldigt nära min lilla.
1112 00:46:18,800 --> 00:46:20,800
Den här listan som jag var inne på.
1113 00:46:20,800 --> 00:46:22,800
På bugcrowd här.
1114 00:46:22,800 --> 00:46:24,800
De hade ju.
1115 00:46:24,800 --> 00:46:26,800
Vi gick ju igenom P2 som hade.
1116 00:46:26,800 --> 00:46:28,800
Där det fanns high impact.
1117 00:46:28,800 --> 00:46:30,800
Och P3 så kunde man bara göra.
1118 00:46:30,800 --> 00:46:32,800
Scanna insidan.
1119 00:46:32,800 --> 00:46:34,800
Scanna insidan.
1120 00:46:34,800 --> 00:46:36,800
Eller göra något på insidan.
1121 00:46:36,800 --> 00:46:38,800
Som hade mediocre impact.
1122 00:46:38,800 --> 00:46:40,800
Deras P4 då.
1123 00:46:40,800 --> 00:46:42,800
Den är så sunkig.
1124 00:46:42,800 --> 00:46:44,800
P4 den har grön färg.
1125 00:46:44,800 --> 00:46:46,800
Så den är inte längre borta på röda färger.
1126 00:46:46,800 --> 00:46:48,800
Utan.
1127 00:46:48,800 --> 00:46:50,800
Men en server side request forgery.
1128 00:46:50,800 --> 00:46:52,800
Som.
1129 00:46:52,800 --> 00:46:54,800
De bara tycker blir en P4.
1130 00:46:54,800 --> 00:46:56,800
Det är en där du bara kan scanna externt.
1131 00:46:56,800 --> 00:46:58,800
Så att du har.
1132 00:46:58,800 --> 00:47:00,800
En server side request forgery.
1133 00:47:00,800 --> 00:47:02,800
Men typ.
1134 00:47:04,800 --> 00:47:06,800
Du kan inte nå interna resurser.
1135 00:47:06,800 --> 00:47:08,800
Men du kan göra request externt.
1136 00:47:08,800 --> 00:47:10,800
Som servern.
1137 00:47:10,800 --> 00:47:12,800
Så du kan studsa via deras insida.
1138 00:47:12,800 --> 00:47:14,800
Mm.
1139 00:47:14,800 --> 00:47:16,800
Det skulle ju kunna vara en dum grej.
1140 00:47:16,800 --> 00:47:18,800
Om du kan plocka med dig någonting.
1141 00:47:18,800 --> 00:47:20,800
Från insidan i registret.
1142 00:47:20,800 --> 00:47:22,800
Eller om den typ.
1143 00:47:22,800 --> 00:47:24,800
IPn är whitelistad eller något.
1144 00:47:24,800 --> 00:47:26,800
I en annan tjänst.
1145 00:47:26,800 --> 00:47:28,800
Du tänker att den internt är inte så internt.
1146 00:47:28,800 --> 00:47:30,800
Nej precis.
1147 00:47:30,800 --> 00:47:32,800
Det är ju inte det längre.
1148 00:47:32,800 --> 00:47:34,800
För ofta så konsumerar man ju multipla delar.
1149 00:47:34,800 --> 00:47:36,800
Så att allt det här.
1150 00:47:36,800 --> 00:47:38,800
Som i alla sårbarheter.
1151 00:47:38,800 --> 00:47:40,800
Beror ju på lite vad det är man håller på med.
1152 00:47:40,800 --> 00:47:42,800
Jag har ju fått liksom SSRFar.
1153 00:47:42,800 --> 00:47:44,800
Med lokala miljövariabler via.
1154 00:47:44,800 --> 00:47:46,800
Genom att studsa till min.
1155 00:47:46,800 --> 00:47:48,800
Kontrollerade host liksom.
1156 00:47:48,800 --> 00:47:50,800
Ja just det.
1157 00:47:50,800 --> 00:47:52,800
För att man kan läsa filer då.
1158 00:47:52,800 --> 00:47:54,800
Om det är något jävla API som alltid appendar.
1159 00:47:54,800 --> 00:47:56,800
Någon token.
1160 00:47:56,800 --> 00:47:58,800
För att det ska funka mot någonting på insidan.
1161 00:47:58,800 --> 00:48:00,800
Så hade det varit jävligt roligt.
1162 00:48:00,800 --> 00:48:02,800
Om man kunde studsa den externt.
1163 00:48:02,800 --> 00:48:04,800
Det man ska säga också.
1164 00:48:04,800 --> 00:48:06,800
Som är ganska vanligt.
1165 00:48:06,800 --> 00:48:08,800
Är att man använder då basic auth.
1166 00:48:08,800 --> 00:48:10,800
Så man får med sig en auth.
1167 00:48:10,800 --> 00:48:12,800
För flygandes över internet då.
1168 00:48:12,800 --> 00:48:14,800
Ja då är det inte så bra om då.
1169 00:48:14,800 --> 00:48:16,800
Alla de här grejerna.
1170 00:48:16,800 --> 00:48:18,800
Man får bara liksom.
1171 00:48:18,800 --> 00:48:20,800
Tänka.
1172 00:48:20,800 --> 00:48:22,800
Tänka på alla olika tillämpningar.
1173 00:48:22,800 --> 00:48:24,800
Det här skulle kunna vara ett problem.
1174 00:48:24,800 --> 00:48:26,800
Så hittar man någonting så är väl tipset att.
1175 00:48:26,800 --> 00:48:28,800
Om magkänslan från början säger att.
1176 00:48:28,800 --> 00:48:30,800
Så här ska det inte vara.
1177 00:48:30,800 --> 00:48:32,800
Då är det nog inte så.
1178 00:48:32,800 --> 00:48:34,800
Men sen så händer det givetvis.
1179 00:48:34,800 --> 00:48:36,800
Att man inte löser det.
1180 00:48:36,800 --> 00:48:38,800
Och det är ju tråkigt.
1181 00:48:38,800 --> 00:48:40,800
Men det finns många tillämpningar.
1182 00:48:40,800 --> 00:48:42,800
De tråkiga delarna av SSRF.
1183 00:48:42,800 --> 00:48:44,800
Men då har vi ju någonstans.
1184 00:48:44,800 --> 00:48:46,800
Ringat in vad det är.
1185 00:48:46,800 --> 00:48:48,800
Vad ska man göra åt det då?
1186 00:48:48,800 --> 00:48:50,800
Ja.
1187 00:48:50,800 --> 00:48:52,800
Nej men där är ju.
1188 00:48:52,800 --> 00:48:54,800
Det är också jättetråkigt som säkerhetsexpert.
1189 00:48:54,800 --> 00:48:56,800
För det finns inget plåster.
1190 00:48:56,800 --> 00:48:58,800
Utan det är så här.
1191 00:48:58,800 --> 00:49:00,800
Det beror också helt och hållet på.
1192 00:49:00,800 --> 00:49:02,800
Men jag predikar ju ändå på att.
1193 00:49:02,800 --> 00:49:04,800
Ni måste tänka i någon form av.
1194 00:49:04,800 --> 00:49:06,800
Lagermodell här också.
1195 00:49:06,800 --> 00:49:08,800
Det vill säga att ett skydd kanske inte är tillräckligt.
1196 00:49:08,800 --> 00:49:10,800
Utan man måste tänka i många steg.
1197 00:49:10,800 --> 00:49:12,800
Det brukar vara min grundgrej nu.
1198 00:49:12,800 --> 00:49:14,800
För jag ser samma sak hela tiden.
1199 00:49:14,800 --> 00:49:16,800
Folk håller på med alla de här fräcka.
1200 00:49:16,800 --> 00:49:18,800
Orkestreringsmotorerna.
1201 00:49:18,800 --> 00:49:20,800
Det är ball för att det är så jävla mycket rörliga delar.
1202 00:49:20,800 --> 00:49:22,800
Nu blir det explicit language på den här podcasten.
1203 00:49:22,800 --> 00:49:24,800
Men skit i det.
1204 00:49:24,800 --> 00:49:26,800
Det är så mycket rörliga delar.
1205 00:49:26,800 --> 00:49:28,800
Och det är så mycket som hänger ihop i dagens läge.
1206 00:49:28,800 --> 00:49:30,800
Så att ingen har kontroll.
1207 00:49:30,800 --> 00:49:32,800
På vilken stack man håller på att jobba med egentligen.
1208 00:49:32,800 --> 00:49:34,800
Och det gör ju att.
1209 00:49:34,800 --> 00:49:36,800
Din designtopologi.
1210 00:49:36,800 --> 00:49:38,800
Din design när det kommer till säkerhetstopologi.
1211 00:49:38,800 --> 00:49:40,800
Vad är skyddsvärt.
1212 00:49:40,800 --> 00:49:42,800
Det är där man måste börja och sedan.
1213 00:49:42,800 --> 00:49:44,800
Ja men implementera skydd.
1214 00:49:44,800 --> 00:49:46,800
På det sättet som att.
1215 00:49:46,800 --> 00:49:48,800
Vi kommer att bli hackade.
1216 00:49:48,800 --> 00:49:50,800
Vi kommer att åka på det.
1217 00:49:50,800 --> 00:49:52,800
Jag tror att en av de stora lärdomarna.
1218 00:49:52,800 --> 00:49:54,800
Från SSRF.
1219 00:49:54,800 --> 00:49:56,800
Är ju det att.
1220 00:49:56,800 --> 00:49:58,800
Ja.
1221 00:49:58,800 --> 00:50:00,800
Den ena är ju naturligtvis.
1222 00:50:00,800 --> 00:50:02,800
Sluta ha buggar.
1223 00:50:02,800 --> 00:50:04,800
Ta bort det här säkerhetshållet.
1224 00:50:04,800 --> 00:50:06,800
Det kan vi ha då som steg ett.
1225 00:50:06,800 --> 00:50:08,800
Men om vi nu inte tror. Det är en bra lärdom.
1226 00:50:08,800 --> 00:50:10,800
Om vi nu inte tror på det här.
1227 00:50:10,800 --> 00:50:12,800
Så är ju lite det där vi har pratat om.
1228 00:50:12,800 --> 00:50:14,800
Att mitigera med hjälp av.
1229 00:50:14,800 --> 00:50:16,800
Av tokens.
1230 00:50:16,800 --> 00:50:18,800
Och sånt.
1231 00:50:18,800 --> 00:50:20,800
Där har vi ju ett intressant skydd.
1232 00:50:20,800 --> 00:50:22,800
Som bygger på antagandet att.
1233 00:50:22,800 --> 00:50:24,800
Ett system kan.
1234 00:50:24,800 --> 00:50:26,800
Ett system på insidan.
1235 00:50:26,800 --> 00:50:28,800
Kan liksom vara ägt.
1236 00:50:28,800 --> 00:50:30,800
Till någon promille.
1237 00:50:30,800 --> 00:50:32,800
Alltså att.
1238 00:50:32,800 --> 00:50:34,800
För egentligen handlar ju SSRF om att.
1239 00:50:34,800 --> 00:50:36,800
Vi har fått insidan.
1240 00:50:36,800 --> 00:50:38,800
Att vara.
1241 00:50:38,800 --> 00:50:40,800
Styrd.
1242 00:50:40,800 --> 00:50:42,800
Av någon onding på utsidan.
1243 00:50:42,800 --> 00:50:44,800
Men.
1244 00:50:44,800 --> 00:50:46,800
Men det är inte dom här domedagstankarna.
1245 00:50:46,800 --> 00:50:48,800
Som man ofta har.
1246 00:50:48,800 --> 00:50:50,800
Ja men har någon tagit över.
1247 00:50:50,800 --> 00:50:52,800
Har någon tagit över servrarna.
1248 00:50:52,800 --> 00:50:54,800
Finns det ju ingen mening för att då.
1249 00:50:54,800 --> 00:50:56,800
Då har ju dom alla våra hemligheter.
1250 00:50:56,800 --> 00:50:58,800
Som ligger på servern och dom liksom.
1251 00:50:58,800 --> 00:51:00,800
Det är game over om någon har tagit över servern.
1252 00:51:00,800 --> 00:51:02,800
Men i SSRF.
1253 00:51:02,800 --> 00:51:04,800
Så är ju verkligen fallet att.
1254 00:51:04,800 --> 00:51:06,800
Nej men det är inte game over.
1255 00:51:06,800 --> 00:51:08,800
Den som gör ett SSRF.
1256 00:51:08,800 --> 00:51:10,800
Attack.
1257 00:51:10,800 --> 00:51:12,800
Kan ju ofta inte.
1258 00:51:12,800 --> 00:51:14,800
Appenda så mycket till.
1259 00:51:14,800 --> 00:51:16,800
Frågorna så att han kan ju förmodligen.
1260 00:51:16,800 --> 00:51:18,800
Inte skjuta in tokens och sånt.
1261 00:51:18,800 --> 00:51:20,800
Och om det dessutom.
1262 00:51:20,800 --> 00:51:22,800
Har bara tillgång till en blind SSRF.
1263 00:51:22,800 --> 00:51:24,800
Så har han ju ingenstans att få ut.
1264 00:51:24,800 --> 00:51:26,800
Alltså.
1265 00:51:26,800 --> 00:51:28,800
Enkelt få ut data från insidan.
1266 00:51:28,800 --> 00:51:30,800
Och så.
1267 00:51:30,800 --> 00:51:32,800
Så att om du bara mygger någon form av.
1268 00:51:32,800 --> 00:51:34,800
Skydd med dina APIer.
1269 00:51:34,800 --> 00:51:36,800
Även någon sorts autentisering.
1270 00:51:36,800 --> 00:51:38,800
För att köras.
1271 00:51:38,800 --> 00:51:40,800
På insidan och sånt liksom.
1272 00:51:40,800 --> 00:51:42,800
Det finns lite dynamik i.
1273 00:51:42,800 --> 00:51:44,800
Så blir SSRF en väldigt.
1274 00:51:44,800 --> 00:51:46,800
Det blir svårare.
1275 00:51:46,800 --> 00:51:48,800
Att exploatera.
1276 00:51:48,800 --> 00:51:50,800
Men det gäller ju då att den inte är en del.
1277 00:51:50,800 --> 00:51:52,800
Utav den lösningen som är utvecklad.
1278 00:51:52,800 --> 00:51:54,800
Det vill säga att man inte kan konsumera det också.
1279 00:51:54,800 --> 00:51:56,800
Det vill säga att källkoden som körs.
1280 00:51:56,800 --> 00:51:58,800
Har en funktion för att generera en giltig nyckel.
1281 00:51:58,800 --> 00:52:00,800
Som användaren kan manipulera också.
1282 00:52:00,800 --> 00:52:02,800
Det är svårt alltså.
1283 00:52:02,800 --> 00:52:04,800
För jag skulle nog vilja summera det.
1284 00:52:04,800 --> 00:52:06,800
Som att vi har en brandvägg.
1285 00:52:06,800 --> 00:52:08,800
Den droppar allting.
1286 00:52:08,800 --> 00:52:10,800
Eller den är liksom.
1287 00:52:10,800 --> 00:52:12,800
Den har bara 80 och 443 öppet.
1288 00:52:12,800 --> 00:52:14,800
Och 80 är liksom en redirect till.
1289 00:52:14,800 --> 00:52:16,800
En 443 då liksom.
1290 00:52:16,800 --> 00:52:18,800
Det gör ju att vi.
1291 00:52:18,800 --> 00:52:20,800
Man skulle kunna se det här som den traditionella.
1292 00:52:20,800 --> 00:52:22,800
Pinnhål grejen.
1293 00:52:22,800 --> 00:52:24,800
Det vill säga att vi genom webblagret.
1294 00:52:24,800 --> 00:52:26,800
Kan konsumera andra tjänster på insidan.
1295 00:52:26,800 --> 00:52:28,800
Mm.
1296 00:52:28,800 --> 00:52:30,800
Och det gör ju att.
1297 00:52:30,800 --> 00:52:32,800
Det blir väldigt användbart.
1298 00:52:32,800 --> 00:52:34,800
Och det är ju också.
1299 00:52:34,800 --> 00:52:36,800
Det är väldigt viktigt då för att säkra detta.
1300 00:52:36,800 --> 00:52:38,800
Att man ser till till exempel.
1301 00:52:38,800 --> 00:52:40,800
Igressdata.
1302 00:52:40,800 --> 00:52:42,800
Att man håller koll på ingress och egress.
1303 00:52:42,800 --> 00:52:44,800
Även i sina interna zoner.
1304 00:52:44,800 --> 00:52:46,800
Vilket är sjukt ovanligt att man håller koll på.
1305 00:52:46,800 --> 00:52:48,800
Det vill säga att man definierar hur ett API-flöde ska ske.
1306 00:52:48,800 --> 00:52:50,800
Det finns ingen idé.
1307 00:52:50,800 --> 00:52:52,800
Alltså den här personen ska inte kunna fråga den här frågan.
1308 00:52:52,800 --> 00:52:54,800
Den ska inte gå den här vägen.
1309 00:52:54,800 --> 00:52:56,800
Eller vad det nu kan tänkas vara.
1310 00:52:56,800 --> 00:52:58,800
Och då tänker jag att man.
1311 00:52:58,800 --> 00:53:00,800
I det här fallet så handlar det ju mer om då.
1312 00:53:00,800 --> 00:53:02,800
Att man exploaterar andra.
1313 00:53:02,800 --> 00:53:04,800
Nätverksbundna prylar i.
1314 00:53:04,800 --> 00:53:06,800
Som den här servern kan nå.
1315 00:53:06,800 --> 00:53:08,800
Men bara för att återkoppla till det.
1316 00:53:08,800 --> 00:53:10,800
Mattias sa förut.
1317 00:53:10,800 --> 00:53:12,800
Vi hade en jävligt bra.
1318 00:53:12,800 --> 00:53:14,800
Jag tycker ändå den var bra.
1319 00:53:14,800 --> 00:53:16,800
Idén det här med att man lägger in en bild.
1320 00:53:16,800 --> 00:53:18,800
Det vill säga du är på ett community.
1321 00:53:18,800 --> 00:53:20,800
Och du får liksom spesa din egen bild.
1322 00:53:22,800 --> 00:53:24,800
Det var liksom en.
1323 00:53:24,800 --> 00:53:26,800
Det var det vi pratade om innan.
1324 00:53:26,800 --> 00:53:28,800
Och hur vidare det var bra eller dåligt.
1325 00:53:28,800 --> 00:53:30,800
Jag tänkte stå på hur det skulle kunna vara problematiskt.
1326 00:53:30,800 --> 00:53:32,800
Till exempel då att.
1327 00:53:32,800 --> 00:53:34,800
Du har en funktion liksom.
1328 00:53:34,800 --> 00:53:36,800
Om man pekar på din bild här.
1329 00:53:36,800 --> 00:53:38,800
Du klickar på den.
1330 00:53:38,800 --> 00:53:40,800
Och när du kallar på den funktionen.
1331 00:53:40,800 --> 00:53:42,800
Så har du definierat en funktion.
1332 00:53:42,800 --> 00:53:44,800
Som heter getURL till exempel.
1333 00:53:46,800 --> 00:53:48,800
Och det som getURL förväntas.
1334 00:53:48,800 --> 00:53:50,800
Är i en giltlig URL.
1335 00:53:50,800 --> 00:53:52,800
Så då skulle man kunna tänka sig.
1336 00:53:52,800 --> 00:53:54,800
Att om funktionen är i URL.
1337 00:53:54,800 --> 00:53:56,800
Så kanske du säger.
1338 00:53:56,800 --> 00:54:00,800
HTTP://localhost.
1339 00:54:00,800 --> 00:54:02,800
Frågetecken.
1340 00:54:02,800 --> 00:54:04,800
URL är lika med.
1341 00:54:04,800 --> 00:54:06,800
http://minbild.com
1342 00:54:06,800 --> 00:54:08,800
Så kommer den nu genereras.
1343 00:54:08,800 --> 00:54:10,800
Om man inte kollar på.
1344 00:54:10,800 --> 00:54:12,800
Hur gestet ser ut.
1345 00:54:12,800 --> 00:54:14,800
Som ett respons.
1346 00:54:14,800 --> 00:54:16,800
Och där gäller det att man håller koll på.
1347 00:54:16,800 --> 00:54:18,800
Var det du stackar din fråga med.
1348 00:54:22,800 --> 00:54:24,800
Så det.
1349 00:54:24,800 --> 00:54:26,800
Det är en ganska.
1350 00:54:26,800 --> 00:54:28,800
Det är en rolig grej det här tycker jag.
1351 00:54:28,800 --> 00:54:30,800
Det är spännande när man.
1352 00:54:30,800 --> 00:54:32,800
Abjusar någonting som.
1353 00:54:32,800 --> 00:54:34,800
Som det inte var tänkt.
1354 00:54:34,800 --> 00:54:36,800
Att abusas.
1355 00:54:36,800 --> 00:54:38,800
Men det är lite sanningen för all webb.
1356 00:54:38,800 --> 00:54:40,800
Det finns en miljard sätt att göra samma sak på.
1357 00:54:40,800 --> 00:54:42,800
Ja.
1358 00:54:42,800 --> 00:54:44,800
Jag är ju verkligen.
1359 00:54:44,800 --> 00:54:46,800
Inte van vid att det finns så mycket.
1360 00:54:46,800 --> 00:54:48,800
Dynamik.
1361 00:54:48,800 --> 00:54:50,800
På.
1362 00:54:50,800 --> 00:54:52,800
Serversidan.
1363 00:54:52,800 --> 00:54:54,800
Nej alltså.
1364 00:54:54,800 --> 00:54:56,800
Du tittar på typ.
1365 00:54:56,800 --> 00:54:58,800
Kubernetes OpenShift och de här grejerna.
1366 00:54:58,800 --> 00:55:00,800
Och du kommer tappa hakan.
1367 00:55:00,800 --> 00:55:02,800
Alltså.
1368 00:55:02,800 --> 00:55:04,800
Det senaste jag har tittat jäkligt mycket på nu är.
1369 00:55:04,800 --> 00:55:06,800
COPS.
1370 00:55:06,800 --> 00:55:08,800
Som är en instrumentering för Kubernetes.
1371 00:55:08,800 --> 00:55:10,800
Där allt du behöver göra för att starta.
1372 00:55:10,800 --> 00:55:12,800
Ett Kubernetes kluster är typ.
1373 00:55:12,800 --> 00:55:14,800
COPS Build Cluster och så får du ett kluster.
1374 00:55:14,800 --> 00:55:16,800
Det är bara det att.
1375 00:55:16,800 --> 00:55:18,800
Där lämnar jävligt mycket folk det.
1376 00:55:18,800 --> 00:55:20,800
De bara okej men fan vad gött.
1377 00:55:20,800 --> 00:55:22,800
Nu har jag ett kluster nu kör vi.
1378 00:55:22,800 --> 00:55:24,800
Det är bara det att det finns liksom.
1379 00:55:24,800 --> 00:55:26,800
Ingen lager av säkerhet.
1380 00:55:26,800 --> 00:55:28,800
Med överhuvudtaget.
1381 00:55:28,800 --> 00:55:30,800
När man har kört det här.
1382 00:55:30,800 --> 00:55:32,800
Och det finns ju ingen grund.
1383 00:55:32,800 --> 00:55:34,800
Idé om vad din säkerhetsdesign.
1384 00:55:34,800 --> 00:55:36,800
Borde vara.
1385 00:55:36,800 --> 00:55:38,800
Men om vi.
1386 00:55:38,800 --> 00:55:40,800
Kan du rakt av koppla det till.
1387 00:55:40,800 --> 00:55:42,800
SSRF.
1388 00:55:42,800 --> 00:55:44,800
Ja här är ju allting då.
1389 00:55:44,800 --> 00:55:46,800
Det jag vill hävda här då är att allting.
1390 00:55:46,800 --> 00:55:48,800
All modern typ av infrastruktur.
1391 00:55:48,800 --> 00:55:50,800
Instrumenteras helt dynamiskt.
1392 00:55:50,800 --> 00:55:52,800
På antingen ett ramverk.
1393 00:55:52,800 --> 00:55:54,800
Eller på någons infrastruktur som kod.
1394 00:55:54,800 --> 00:55:56,800
Definitioner.
1395 00:55:56,800 --> 00:55:58,800
Som är typ Jamel eller.
1396 00:55:58,800 --> 00:56:00,800
Eller någon form av Json.
1397 00:56:00,800 --> 00:56:02,800
Eller vad fan det nu kan tänkas vara.
1398 00:56:02,800 --> 00:56:04,800
Vilket är ganska läskigt.
1399 00:56:04,800 --> 00:56:06,800
Men hur kommer du åt COPS då.
1400 00:56:06,800 --> 00:56:08,800
Genom en SSRF.
1401 00:56:08,800 --> 00:56:10,800
Ja alltså COPS.
1402 00:56:10,800 --> 00:56:12,800
Generellt det är ju bara liksom.
1403 00:56:12,800 --> 00:56:14,800
Man skulle kunna jämföra det.
1404 00:56:14,800 --> 00:56:16,800
Med Ghost.
1405 00:56:16,800 --> 00:56:18,800
Norton Ghost.
1406 00:56:18,800 --> 00:56:20,800
När man gjorde imager.
1407 00:56:20,800 --> 00:56:22,800
Förr i tiden på datorer.
1408 00:56:22,800 --> 00:56:24,800
Fast nu skriver man bara.
1409 00:56:24,800 --> 00:56:26,800
Ge mig min data.
1410 00:56:26,800 --> 00:56:28,800
Och så bygger den upp datorn.
1411 00:56:28,800 --> 00:56:30,800
Genom någon annans fördefinierad idé.
1412 00:56:30,800 --> 00:56:32,800
Om vad datorn borde vara.
1413 00:56:32,800 --> 00:56:34,800
Så hur kopplar man det till SSRF.
1414 00:56:34,800 --> 00:56:36,800
Det gör man inte.
1415 00:56:36,800 --> 00:56:38,800
Men det det blir är att.
1416 00:56:38,800 --> 00:56:40,800
Det är ju som vilken annan server som helst.
1417 00:56:40,800 --> 00:56:42,800
Det vill säga koden som utvecklaren.
1418 00:56:42,800 --> 00:56:44,800
Har skrivit.
1419 00:56:44,800 --> 00:56:46,800
Den vet ju inte om att den är ett COPS kluster.
1420 00:56:46,800 --> 00:56:48,800
Den förhåller sig ju bara.
1421 00:56:48,800 --> 00:56:50,800
Till de protokollen.
1422 00:56:50,800 --> 00:56:52,800
Som den är kodad för att agera på.
1423 00:56:52,800 --> 00:56:54,800
Men då givet att allt annat.
1424 00:56:54,800 --> 00:56:56,800
Runt omkring infrastrukturellt.
1425 00:56:56,800 --> 00:56:58,800
Är dynamiskt populerat.
1426 00:56:58,800 --> 00:57:00,800
Så har man ju en.
1427 00:57:00,800 --> 00:57:02,800
En svår uppförsbacke.
1428 00:57:02,800 --> 00:57:04,800
Om man ska gå på Peter och Mattias idé.
1429 00:57:04,800 --> 00:57:06,800
Om att man ska ha statiska request för allting.
1430 00:57:06,800 --> 00:57:08,800
I ett kluster som skalar.
1431 00:57:08,800 --> 00:57:10,800
Och inte ha så mycket konstanter egentligen.
1432 00:57:10,800 --> 00:57:12,800
Det vill säga att man försöker undvika det.
1433 00:57:12,800 --> 00:57:14,800
Mm.
1434 00:57:14,800 --> 00:57:16,800
Det är ett svårt problem.
1435 00:57:16,800 --> 00:57:18,800
Du kan väl fortfarande ha.
1436 00:57:18,800 --> 00:57:20,800
Att du via.
1437 00:57:20,800 --> 00:57:22,800
Environment variabler eller något annat.
1438 00:57:22,800 --> 00:57:24,800
Trycker ut.
1439 00:57:24,800 --> 00:57:26,800
Vilka urlar man ska gå till och sånt.
1440 00:57:26,800 --> 00:57:28,800
Absolut.
1441 00:57:28,800 --> 00:57:30,800
Istället för att ha det via.
1442 00:57:30,800 --> 00:57:32,800
Post request.
1443 00:57:32,800 --> 00:57:34,800
Jag tänker då direkt i.
1444 00:57:34,800 --> 00:57:36,800
Alltså direkt i källkoden då.
1445 00:57:36,800 --> 00:57:38,800
Det vill säga att man inte har statiska grejer.
1446 00:57:38,800 --> 00:57:40,800
Utan man kallar på någonting som ligger lokalt.
1447 00:57:40,800 --> 00:57:42,800
Definierat som en miljövariabel på den instansen man kör.
1448 00:57:42,800 --> 00:57:44,800
Ja. Och det är ganska vanligt.
1449 00:57:44,800 --> 00:57:46,800
Det är så.
1450 00:57:46,800 --> 00:57:48,800
Men det spelar ju ingen roll om jag kan konsumera dem.
1451 00:57:48,800 --> 00:57:50,800
Alltså.
1452 00:57:50,800 --> 00:57:52,800
Det spelar ju ingen roll tänker jag.
1453 00:57:54,800 --> 00:57:56,800
Allting kommer ju ändå på något sätt.
1454 00:57:56,800 --> 00:57:58,800
Koka ner till det.
1455 00:57:58,800 --> 00:58:00,800
Utvecklaren har kodat liksom.
1456 00:58:00,800 --> 00:58:02,800
Den funktionen som jag exploaterar.
1457 00:58:02,800 --> 00:58:04,800
Ja.
1458 00:58:04,800 --> 00:58:06,800
Så jag hävdar att det alltid är utvecklarens fel.
1459 00:58:08,800 --> 00:58:10,800
Det där var ju faktiskt en suverän avslutning.
1460 00:58:10,800 --> 00:58:12,800
Hävde jag.
1461 00:58:12,800 --> 00:58:14,800
Ja jag tror det också. Jag fick en corona attack här också.
1462 00:58:14,800 --> 00:58:16,800
Ja det är inte bra.
1463 00:58:16,800 --> 00:58:18,800
Jag tänkte bara säga att den sista sunkigaste
1464 00:58:18,800 --> 00:58:20,800
SSRFen i den här listan.
1465 00:58:20,800 --> 00:58:22,800
Jag är tjursäker på.
1466 00:58:22,800 --> 00:58:24,800
Det är DNS query only.
1467 00:58:24,800 --> 00:58:26,800
Det vill säga att.
1468 00:58:26,800 --> 00:58:28,800
Du har en SSRF.
1469 00:58:28,800 --> 00:58:30,800
Men det går aldrig iväg några.
1470 00:58:30,800 --> 00:58:32,800
HTTP frågor.
1471 00:58:32,800 --> 00:58:34,800
Till sajten.
1472 00:58:34,800 --> 00:58:36,800
Antingen.
1473 00:58:36,800 --> 00:58:38,800
Det görs DNS lockup på det du skickar in.
1474 00:58:38,800 --> 00:58:40,800
Och det är det enda som händer.
1475 00:58:40,800 --> 00:58:42,800
Mm.
1476 00:58:42,800 --> 00:58:44,800
Det är potentiellt en ond
1477 00:58:44,800 --> 00:58:46,800
DNS responder då för din domän.
1478 00:58:46,800 --> 00:58:48,800
Och ställa frågor om
1479 00:58:48,800 --> 00:58:50,800
hemliga subdomäner
1480 00:58:50,800 --> 00:58:52,800
som inte finns.
1481 00:58:52,800 --> 00:58:54,800
Här finns ju en mäktig sårbarhet.
1482 00:58:54,800 --> 00:58:56,800
Jag tror att Stök har
1483 00:58:56,800 --> 00:58:58,800
har det här.
1484 00:58:58,800 --> 00:59:00,800
Jag vet inte var den finns men han har den mäktigaste
1485 00:59:00,800 --> 00:59:02,800
DNS sårbarheten någonsin.
1486 00:59:02,800 --> 00:59:04,800
Jag tror att det var en blind SSRF.
1487 00:59:04,800 --> 00:59:06,800
Han har en video som kommer upp rätt högt
1488 00:59:06,800 --> 00:59:08,800
om man googlar.
1489 00:59:08,800 --> 00:59:10,800
Ja men det kan det nog vara.
1490 00:59:10,800 --> 00:59:12,800
SSRF one for all.
1491 00:59:12,800 --> 00:59:14,800
Från maj den året.
1492 00:59:14,800 --> 00:59:16,800
Han gör massa
1493 00:59:16,800 --> 00:59:18,800
DNS requests som han inkluderar
1494 00:59:18,800 --> 00:59:20,800
payloads i. Så när
1495 00:59:20,800 --> 00:59:22,800
DNSen gör uppslag
1496 00:59:22,800 --> 00:59:24,800
så är det typ Calicula.com
1497 00:59:24,800 --> 00:59:26,800
slash payload.
1498 00:59:26,800 --> 00:59:28,800
Och han gör miljarder sådana.
1499 00:59:28,800 --> 00:59:30,800
Till slut.
1500 00:59:30,800 --> 00:59:32,800
Så är det någonting annat som
1501 00:59:32,800 --> 00:59:34,800
konsumerar DNS cashen.
1502 00:59:34,800 --> 00:59:36,800
Där sårbarheten
1503 00:59:36,800 --> 00:59:38,800
triggar.
1504 00:59:38,800 --> 00:59:40,800
Det är mäktigt.
1505 00:59:40,800 --> 00:59:42,800
Det har man hållit på ett tag.
1506 00:59:42,800 --> 00:59:44,800
Ja det skulle vara kul att veta hur
1507 00:59:44,800 --> 00:59:46,800
jag skulle vilja se hans burp-fil för det.
1508 00:59:46,800 --> 00:59:48,800
Han kanske körde hur länge som helst.
1509 00:59:48,800 --> 00:59:50,800
Men vad han gör då är att han
1510 00:59:50,800 --> 00:59:52,800
skjuter in det tills det konsumeras någon gång
1511 00:59:52,800 --> 00:59:54,800
och då smäller det liksom.
1512 00:59:54,800 --> 00:59:56,800
Det kanske är en Youtube
1513 00:59:56,800 --> 00:59:58,800
film. Jag vet inte
1514 00:59:58,800 --> 01:00:00,800
Jag vet att han
1515 01:00:00,800 --> 01:00:02,800
det var på någon bug bounty
1516 01:00:02,800 --> 01:00:04,800
tävling han var på som han
1517 01:00:04,800 --> 01:00:06,800
han körde detta.
1518 01:00:06,800 --> 01:00:08,800
Jag kommer fan inte ihåg men Stök
1519 01:00:08,800 --> 01:00:10,800
har det någonstans. Ni får googla.
1520 01:00:10,800 --> 01:00:12,800
Härligt. Det blir kvällens
1521 01:00:12,800 --> 01:00:14,800
tittning på Youtube helt klart.
1522 01:00:14,800 --> 01:00:16,800
Vi antar att han har en bättre
1523 01:00:16,800 --> 01:00:18,800
SSRF än oss själva.
1524 01:00:18,800 --> 01:00:20,800
Det är så kul att kolla på honom mutad
1525 01:00:20,800 --> 01:00:22,800
och försöka gissa vad han säger.
1526 01:00:22,800 --> 01:00:24,800
Det är svårt.
1527 01:00:24,800 --> 01:00:26,800
Men med de orden så får vi
1528 01:00:26,800 --> 01:00:28,800
tacka för oss för ikväll.
1529 01:00:28,800 --> 01:00:30,800
Ja precis.
1530 01:00:30,800 --> 01:00:32,800
Och jag som pratade
1531 01:00:32,800 --> 01:00:34,800
ikväll hette Rickard Wolfors
1532 01:00:34,800 --> 01:00:36,800
och med mig hade jag Jesper Larsson.
1533 01:00:36,800 --> 01:00:38,800
Det vet du.
1534 01:00:38,800 --> 01:00:40,800
Peter Magnusson. Den är otrolig.
1535 01:00:40,800 --> 01:00:42,800
Och Mattias Idhage.
1536 01:00:42,800 --> 01:00:44,800
Hej hopp.
1537 01:00:44,800 --> 01:00:46,800
Tack för att ni lyssnade.
1538 01:00:46,800 --> 01:00:48,800
Ha det gott.
1539 01:00:48,800 --> 01:00:50,800
Boombox.