Metamask Snap revisionsrapport för PolkaGate Snap

Ledningssammanfattning

PolkaGate kontaktade Sayfer Security för att utföra penetrationstestning på PolkaGate Snap i februari 2024.

Innan vi utvärderade ovanstående tjänster höll vi ett kickoffmöte med PolkaGates tekniska team och fick en översikt över systemet och målen för denna forskning.

Under forskningsperioden på två veckor upptäckte vi två sårbarheter i systemet.

Sammanfattningsvis bör flera korrigeringar implementeras efter rapporten, men systemets säkerhetsställning är kompetent.

Efter en granskning av Sayfer-teamet intygar vi att alla säkerhetsproblem som nämns i denna rapport har åtgärdats av PolkaGate-teamet.

Riskmetodik

På Sayfer har vi åtagit oss att leverera penetrationstestning av högsta kvalitet till våra kunder. Det är därför vi har implementerat en omfattande riskbedömningsmodell för att utvärdera hur allvarliga våra fynd är och ge våra kunder bästa möjliga rekommendationer för begränsning.

Vår riskbedömningsmodell bygger på två nyckelfaktorer: IMPACT och SANNOLIKHET. Påverkan hänvisar till den potentiella skada som kan bli följden av ett problem, såsom ekonomisk förlust, skada på rykte eller ett icke-operativt system. Sannolikhet avser sannolikheten att ett problem kommer att inträffa, med hänsyn till faktorer som attackens komplexitet och antalet potentiella angripare.

Genom att kombinera dessa två faktorer kan vi skapa en heltäckande förståelse för risken för en viss fråga och ge våra kunder en tydlig och handlingsbar bedömning av problemets allvar. Detta tillvägagångssätt gör att vi kan prioritera våra rekommendationer och säkerställa att våra kunder får bästa möjliga råd om hur de kan skydda sin verksamhet.

Risk definieras enligt följande:

Sårbarheter efter risk

Hög – Direkt hot mot viktiga affärsprocesser.
Medium – Indirekt hot mot viktiga affärsprocesser eller partiellt hot mot affärsprocesser.
Låg – Det finns inget direkt hot. Sårbarheten kan utnyttjas med andra sårbarheter.
Upplysande – Detta fynd indikerar inte sårbarhet, men anger en kommentar som meddelar om designfel och felaktig implementering som kan orsaka problem i det långa loppet.

Svårighetsgraden
# problem
Hög
0
Medium
0
Låg
1
Upplysande
1

Tillvägagångssätt

Beskrivning

PolkaGate kontaktade Sayfer för att utföra penetrationstestning av deras MetaMask Snap-applikation.

Denna rapport dokumenterar den forskning som Sayfer utfört med inriktning på de utvalda resurserna som definieras under forskningsomfattningen. Den här rapporten visar särskilt granskningen av säkerhetsställningen för PolkaGates MetaMask Snap-applikation och dess omgivande infrastruktur och processimplementeringar.

Vårt penetrationstestprojekts livscykel:

01

Omfattningsöversikt

02

Teknisk översikt

03

Omfattningsvalidering

04

Hotmodell

05

Säkerhetsutvärdering

06

Säkerhetsbedömning

Omfattningsöversikt

Under vårt första möte och efter att ha förstått företagets behov definierade vi applikationens omfattning som finns på följande webbadresser som omfattningen av projektet:

Våra tester utfördes i februari 2024.

Låt det inte vara för sent!

Börja din revision med Sayfer

Omfattningsvalidering

Vi började med att se till att den omfattning som kunden definierade för oss var tekniskt logisk.
Att bestämma vilken omfattning som är rätt för ett givet system är en del av den inledande diskussionen. Att få rätt omfattning är nyckeln till att få maximalt affärsvärde från forskningen.

Hotmodell

Under våra kickoffmöten med kunden definierade vi de viktigaste tillgångarna som applikationen besitter.
Vi definierade att det största aktuella hotet mot systemet är illvilliga aktörers förmåga att stjäla pengar från andra användare.

Låt det inte vara för sent!

Börja din revision med Sayfer

Säkerhetsutvärderingsmetodik

Sayfer använder OWASP WSTG som vår tekniska standard vid granskning av webbapplikationer. Efter att ha fått en grundlig förståelse av systemet bestämde vi oss för vilka OWASP-tester som krävs för att utvärdera systemet.

Säkerhetsbedömning

Efter att ha förstått och definierat omfattningen, utfört hotmodellering och utvärderat de korrekta testerna som krävs för att fullständigt kontrollera applikationen för säkerhetsbrister, utförde vi vår säkerhetsbedömning.

Problemtabell Beskrivning

Nummertitel

ID SÄGA-??: Ett ID för enkel kommunikation om varje sårbarhet
Status Öppen/Fastad/Bekräftad
Risk Representerar riskfaktorn för problemet. För ytterligare beskrivning se Sårbarheter efter risk sektion.
Business Impact Den största risken för sårbarheten på affärsnivå.
Plats URL:en eller filen där problemet upptäcktes. Problem utan plats har ingen speciell plats och hänvisar till produkten som helhet.

BESKRIVNING

Här ger vi en kort beskrivning av problemet och hur det uppstod, stegen vi gjorde för att hitta eller utnyttja det, tillsammans med proof of concept (om det finns) och hur detta problem kan påverka produkten eller dess användare.

Mitigation

Föreslagna lösningsalternativ för det här problemet och länkar till rekommenderade webbplatser för ytterligare åtgärdande.

Säkerhetsutvärdering

Följande tester utfördes under revision av systemet

Informationsmöte

Informationsmöte Testnamn
WSTG-INFO-01 Genomför sökmotorupptäcktsspaning för informationsläckage
WSTG-INFO-02 Fingeravtryck webbserver
WSTG-INFO-03 Granska webbservermetafiler för informationsläckage
WSTG-INFO-04 Räkna upp applikationer på webbservern
WSTG-INFO-05 Granska webbsidans innehåll för informationsläckage
WSTG-INFO-06 Identifiera applikationsingångspunkter
WSTG-INFO-07 Kartlägg exekveringsvägar genom applikation
WSTG-INFO-08 Fingerprint Web Application Framework
WSTG-INFO-09 Webbapplikation med fingeravtryck
WSTG-INFO-10 Kartapplikationsarkitektur

Konfigurations- och distributionshanteringstestning

Konfigurations- och distributionshanteringstestning Testnamn
WSTG-CONF-01 Testa nätverksinfrastrukturens konfiguration
WSTG-CONF-02 Testa applikationsplattformens konfiguration
WSTG-CONF-03 Testa filtilläggshantering för känslig information
WSTG-CONF-04 Granska gamla säkerhetskopior och filer utan referens för känslig information
WSTG-CONF-05 Räkna upp gränssnitt för infrastruktur och applikationsadministration
WSTG-CONF-06 Testa HTTP-metoder
WSTG-CONF-07 Testa HTTP Strict Transport Security
WSTG-CONF-08 Testa RIA-policy över flera domäner
WSTG-CONF-09 Testa filbehörighet
WSTG-CONF-10 Testa för övertagande av underdomän
WSTG-CONF-11 Testa molnlagring

Identitetshanteringstestning

Identitetshanteringstestning Testnamn
WSTG-IDNT-01 Testrollsdefinitioner
WSTG-IDNT-02 Testa användarregistreringsprocessen
WSTG-IDNT-03 Testa kontotilldelningsprocessen
WSTG-IDNT-04 Testa för kontouppräkning och gissningsbart användarkonto
WSTG-IDNT-05 Testar för svag eller otillämpad användarnamnspolicy

Autentiseringstest

Autentiseringstest Testnamn
WSTG-ATHN-01 Testa för inloggningsuppgifter som transporteras över en krypterad kanal
WSTG-ATHN-02 Testar för standardinloggningsuppgifter
WSTG-ATHN-03 Testar för svag låsningsmekanism
WSTG-ATHN-04 Testar för att kringgå autentiseringsschema
WSTG-ATHN-05 Testa för sårbara Kom ihåg lösenord
WSTG-ATHN-06 Testar för svagheter i webbläsarens cache
WSTG-ATHN-07 Testar för svag lösenordspolicy
WSTG-ATHN-08 Testa för svag säkerhetsfråga Svar
WSTG-ATHN-09 Testar för svaga lösenordsändringar eller återställningsfunktioner
WSTG-ATHN-10 Testar för svagare autentisering i alternativ kanal

Tillståndstest

Tillståndstest Testnamn
WSTG-ATHZ-01 Testa kataloggenomgångsfil inkluderar
WSTG-ATHZ-02 Testa för att förbigå auktoriseringsschema
WSTG-ATHZ-03 Testar för privilegieupptrappning
WSTG-ATHZ-04 Testa för osäkra direkta objektreferenser

Test av sessionhantering

Test av sessionhantering Testnamn
WSTG-SESS-01 Testning för Session Management Schema
WSTG-SESS-02 Testa för cookiesattribut
WSTG-SESS-03 Testning för sessionsfixering
WSTG-SESS-04 Testa för exponerade sessionsvariabler
WSTG-SESS-05 Testar för förfalskning av förfrågningar mellan webbplatser
WSTG-SESS-06 Testar för utloggningsfunktioner
WSTG-SESS-07 Timeout för testsession
WSTG-SESS-08 Testa för sessionspussel
WSTG-SESS-09 Testar för sessionskapning

Datavalideringstest

Datavalideringstest Testnamn
WSTG-INPV-01 Testa för Reflekterad Cross Site Scripting
WSTG-INPV-02 Testning för lagrad cross Site Scripting
WSTG-INPV-03 Testar för manipulering av HTTP-verb
WSTG-INPV-04 Testar för HTTP-parameterförorening
WSTG-INPV-05 Testa för SQL Injection
WSTG-INPV-06 Testning för LDAP-injektion
WSTG-INPV-07 Testa för XML-injektion
WSTG-INPV-08 Testning för SSI Injection
WSTG-INPV-09 Testar för XPath-injektion
WSTG-INPV-10 Testar för IMAP SMTP-injektion
WSTG-INPV-11 Testning för kodinsprutning
WSTG-INPV-12 Testning för kommandoinjektion
WSTG-INPV-13 Testa för formatsträngsinjektion
WSTG-INPV-14 Testa för inkuberad sårbarhet
WSTG-INPV-15 Testar för HTTP-delningssmuggling
WSTG-INPV-16 Testar för inkommande HTTP-förfrågningar
WSTG-INPV-17 Testning av Host Header Injection
WSTG-INPV-18 Testar för mallinjektion på serversidan
WSTG-INPV-19 Testar för förfalskning av förfrågningar på serversidan

Felhantering

Felhantering Testnamn
WSTG-ERRH-01 Testar för felaktig felhantering
WSTG-ERRH-02 Testar för stackspår

Kryptografi

Kryptografi Testnamn
WSTG-CRYP-01 Testning för svag transportlagersäkerhet
WSTG-CRYP-02 Testar för Padding Oracle
WSTG-CRYP-03 Testa för känslig information som skickas via okrypterade kanaler
WSTG-CRYP-04 Testar för svag kryptering

Affärslogiktestning

Affärslogiktestning Testnamn
WSTG-BUSL-01 Testa affärslogikdatavalidering
WSTG-BUSL-02 Testa förmåga att förfalska förfrågningar
WSTG-BUSL-03 Testa integritetskontroller
WSTG-BUSL-04 Testa för processtiming
WSTG-BUSL-05 Testa Antal gånger en funktion kan användas Gränser
WSTG-BUSL-06 Test för att kringgå arbetsflöden
WSTG-BUSL-07 Testa skydd mot felaktig användning av applikationer
WSTG-BUSL-08 Testuppladdning av oväntade filtyper
WSTG-BUSL-09 Testuppladdning av skadliga filer

Testning på klientsidan

Testning på klientsidan Testnamn
WSTG-CLNT-01 Testning för DOM-baserad Cross Site Scripting
WSTG-CLNT-02 Testa för JavaScript-exekvering
WSTG-CLNT-03 Testa för HTML-injektion
WSTG-CLNT-04 Testar för URL-omdirigering på klientsidan
WSTG-CLNT-05 Testar för CSS-injektion
WSTG-CLNT-06 Testning för resurshantering på klientsidan
WSTG-CLNT-07 Testa Cross Origin-resursdelning
WSTG-CLNT-08 Testar för Cross Site Flashing
WSTG-CLNT-09 Testar för Clickjacking
WSTG-CLNT-10 Testar WebSockets
WSTG-CLNT-11 Testa webbmeddelanden
WSTG-CLNT-12 Testar webbläsarlagring
WSTG-CLNT-13 Testa för inkludering av skript på flera webbplatser

API-testning

API-testning Testnamn
WSTG-APIT-01 Testar GraphQL

Beställ revision från Sayfer

    Den här webbplatsen är skyddad av reCAPTCHA och Google Integritetspolicy och Användarvillkor tillämpa.

    Säkerhetsbedömningsresultat

    Ingen varning vid signering av godtyckliga data

    ID SÄG-01
    Status Fast
    Risk Låg
    Business Impact Ökad risk för framgångsrika nätfiskeattacker mot användare.
    Plats – index.ts:24, 26

    BESKRIVNING

    Under vår bedömning märkte vi att signering av godtyckliga data inte utlöser någon ytterligare varning, enligt skärmdumpen nedan.

    Som standard lägger Metamask till en varning när en användare ombeds att signera godtyckliga data för att förhindra signaturstölder. Även om sådana typer av bedrägerier främst observeras på EVM-baserade kedjor, skulle liknande bedrägerier säkert kunna utföras på andra kedjor

    Mitigation

    Visa en varning som liknar den infödda metamaskens. Kanske något liknande "Varning - fortsätt bara om du förstår meddelandet nedan!".

    För mer information, se här..

     

    Ofullständig enhetstesttäckning

    ID SÄG-02
    Status Fast
    Risk Upplysande
    Business Impact Detta är en bästa praxis-typ av upptäckt - ju mindre enhetstesttäckning är, desto större chans för potentiellt oväntat beteende hos programvaran när den används. I vårt fall omfattas bara en av de tillgängliga funktionerna inte av enhetstester.
    Plats – index.test.ts

    BESKRIVNING

    Snäppet hanterar flera funktioner i sin huvudsakliga OnRpcRequestHandler. Alla av dem förutom setMetadata omfattas av enhetstesterna i index.test.ts.

    Mitigation

    Lägg till ett enhetstest som täcker setMetadata.

    Du kan hitta mer information om det på vår blogg

    Sayfers blogg fokuserar på webb3, säkerhet och sårbarhetsforskning. Vi tror att det inom cybersäkerhetsbranschen är avgörande att hålla sig uppdaterad om de senaste trenderna och framstegen. För närvarande gillar vårt team av erfarna forskare att forska i banbrytande blockchain- och web3-teknologier.
    Kontakta oss

    Hålla kontakten

    Plats
    Tel Aviv, Israel
    Messengers:
    Kontakta oss gärna, vi svarar gärna!

      Den här webbplatsen är skyddad av reCAPTCHA och Google Integritetspolicy och Användarvillkor tillämpa.
      Hoppa till innehåll