DNSFS: Den obehagliga molnlagrings-hack du inte visste var möjlig
DNSFS: Den läskigaste molnlagrings-hack du kommer att se
Börja med en tankelek. Föreställ dig att du lagrar dina filer varken på AWS S3 eller i en finfina distribuerad databas – utan i DNS-cacheminnen hos miljontals servrar runtom i världen. Dina data skulle bokstavligen flyta runt jorden, fragmenterade över enheter du inte äger, i resolvers du antagligen inte ens visste existerade.
Låter som något ur en cyberpunk-roman, eller hur? Jo, någon byggde faktiskt det här.
Upptäckten som startade allt
Innan vi kommer till det vilda, låt oss prata om något de flesta utvecklare tar för givet: DNS TTL-värden. När du frågar efter ett domännamn cachar resolvraren resultatet under en viss tid innan den kollar igen. De flesta av oss antar att det handlar om några minuter eller timmar max.
Men här kommer grejen: vissa resolvers är glada att cacha poster i en hel vecka om du ber snällt.
Den upptäckten ledde till en fascinerande fråga: om DNS-cacheminnen kan hålla data så länge, kan vi då medvetet lagra filer i dem? Inte bara domänuppslagningar, utan faktiskt data?
Svaret, förvånansvärt nog, är ja.
Möt DNSFS: Fillagring gömda i fullt dagsljus
DNSFS hämtar inspiration från en tidigare hack kallad PingFS, som lagrade data i nyttolastsektionerna hos ICMP ping-paket. Problemet med PingFS? Du var tvungen att ständigt pinga paket fram och tillbaka för att hålla datan vid liv. Slutade du skicka, försvann allt.
DNSFS förbättrar det här konceptet dramatiskt. Eftersom DNS-resolvers cachar svar, en gång lagrad i en resolvers cache, så finns datan kvar utan att du behöver fråga om den upprepade gånger. Resolvern gör jobbet åt dig.
Tänk på det en stund. Du använder i praktiken andras infrastruktur – utan deras vetskap – som ett distribuerat, redundant fillagringssystem.
Hur det faktiskt fungerar
Den tekniska implementationen är lika smart som oroande.
För att få detta att fungera behöver du öppna DNS-resolvers – servrar som svarar på frågor om vilken domän som helst, inte bara sådana de är auktoritativa för. Tekniskt sett borde dessa vara brandväggade från det offentliga internet eftersom de är en DDoS-reflektionsrisk. Men här är grejen: miljontals enheter levereras med felkonfigurerade DNS-tjänster som går att nå från var som helst.
Systemet fungerar genom att dela upp filer i små bitar, koda dem som DNS-frågor och distribuera dessa frågor över internet. Varje resolver som tar emot och cachar en fråga har nu en bit av din fil. För att hämta datan frågar du helt enkelt samma resolvers och bygger ihop bitarna igen.
Skönheten (och skräcken) i systemet är att datan finns kvar i cachen tills TTL går ut – ingen kontinuerlig uppkoppling behövs.
Att scanna internet efter öppna resolvers
Här blir det både imponerande och lite obehagligt.
Att bygga DNSFS kräver att hitta öppna resolvers över hela internet. Det betyder att scanna miljarder IP-adresser för att identifiera vilka som ska svara på DNS-frågor för godtyckliga domäner.
En utvecklare använde masscan kombinerat med smarta BPF-regler (Berkeley Packet Filter) för effektivt identifiera bara de resolvers som skulle vara användbara – filtrera bort auktoritativa servrar och annat brus. Resultatet? Nästan 4 miljoner öppna DNS-resolvers utspridda över hela världen.
Den geografiska fördelningen är ögonöppnande. Kina leder med över 1,4 miljoner öppna resolvers, följt av USA, Sydkorea, Ryssland och Brasilien. Men här kommer det intressantare måttet: när du normaliserar för internetanvändare har små nationer som Saint Kitts och Nevis anmärkningsvärt hög resolver-densitet – ungefär en resolver per 51 personer.
Varför det här spelar roll (bortom coolhetsfaktorn)
Låt oss vara tydliga: DNSFS är absolut ingen produktionslagringslösning. Det är långsamt, opålitligt, helt ogranskat och troligen en säkerhetsmardröm. Att köra en full internetskanning efter öppna resolvers väcker också allvarliga etiska frågor om samtycke och nätverksgränser.
Men det är inte pointen.
DNSFS representerar den sortens kreativa, gränspressande tänkande som flyttar fram vår förståelse av nätverksystem. Det belyser hur mycket felkonfigurerad infrastruktur som finns på internet, vilket utlöser viktiga samtal om säkerhetshärdning. Det visar den överraskande persistenceen hos cachelagrad data i distribuerade system. Och det visar hur skenbart rigida protokoll kan återanvändas på oväntade sätt.
Det är också en påminnelse om att internet är mycket mer rörigt än vi ofta antar. De miljontals öppna resolvers? De körs på hemmaroutrar, IoT-enheter, företagsutrustning och allt däremellan. De flesta administratörer har ingen aning om att deras DNS-tjänster är åtkomliga utifrån.
Lärdomarna för utvecklare
DNSFS kommer inte att lagra din applikationsdata inom överskådlig framtid, men det erbjuder värdefulla lektioner:
Protokoll är bara utgångspunkter. DNS设计ades för namnupplösning. Det betyder inte att det är begränsat till det användningsfallet.
Säkerhetsantaganden spelar roll. Öppna resolvers existerar för att någon konfigurerade något fel. Granska alltid din infrastrukturs exponering.
Kreativa begränsningar skapar innovation. De bästa hacken kommer ofta från att arbeta inom oväntade begränsningar. DNSFS existerar för att någon frågade "tänk om vi använde cachen?"
Internet är konstigare och mer formbart än de flesta av oss inser. Ibland är de mest intressanta systemen de som förmodligen inte borde fungera alls.
Har du stött på några ovanliga protokollutnyttjanden eller kreativa infrastrukturshack? NameOcean-teamet älskar att höra om de uppfinningsrika sätten utvecklare pressar tekniken till dess gränser.