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.
Tillvägagångssätt
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
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.




