Det var under sommaren som signaturen Nullbyte bestämde sig för att ta en närmare titt på appen till transaktionstjänsten Swish, som byggts av HiQ på uppdrag av de sex stora bankerna.
- Min första tanke var att sätta upp en transparent proxy för att kunna övervaka trafik som skickas mellan appen och Swish backend, men det gick inte så enkelt som jag hade hoppats, skriver Nullbyte i ett blogginlägg.

Det visade sig nämligen att de använde ett självsignerande certifikat och hade implementerat "certificate pinning", mer bestämt Moxie Marlinspikes AndroidPinning som är licenserat under GPLv3.

För att komma runt "certifikate pinning"-funktionen behövde Nullbyte gå igenom följande steg:

1. Dekompilera deras app till smali-kod.
2. Hitta var valideringen av certifikat utförs.
3. Ändra valideringsmetoden så att den godkänner alla certifikat.
4. Kompilera en ny app från den modifierade smali-koden.
5. Installera appen på telefonen.

- Efter att ha gjort detta kunde jag ansluta appen genom en proxy och på så sätt se all trafik som gick mellan appen och Swish servrar, berättar Nullbyte.

Sårbarheten, som nu är lagad, gjorde att det enkelt gick att ändra MSISDN, vilket är detsamma som telefonnumret som är anslutet till Swish, för att se hela betalningshistoriken: .../mpc-swish/rest/paymenthistory/46701234567/ALL/0/30/

- Uppenbarligen, vad gäller betalningshistoriken, användes mobilt BankID enbart för att autentisera användare, inte auktorisera, skriver Nullbyte på bloggen.

Så efter en lyckad autentisering kunde användaren fritt ändra i url:en.
- Sårbarheten, som nu är åtgärdat, kunde användas till att hämta andra användares fullständiga transaktionshistorik med namn, telefonnummer, meddelanden och så vidare. Vad exakt den informationen kan användas till vill jag inte spekulera i men jag misstänker att den informationen kan anses vara väldigt känslig, inte minst om man har en offentlig position i samhället, berättar Nullbyte.

Buggen har antagligen funnits i systemet sedan start, så vad säger det om säkerheten i Swish?

- Jag har inga konkreta misstankar om att det finns fler säkerhetsbrister i Swish men med tanke på hur länge detta hål har funnits och hur lättupptäckt det var så kan man fundera på hur säkerheten i resten av deras system ser ut.

Nullbyte försökte kontakta Swish och berätta om buggen, men mötes inte av något större intresse.
- Responsen från deras håll var i början rätt dålig. Getswish AB har inga direkta kontaktuppgifter på webbsidan utan hänvisar istället till de olika bankerna eller Twitter och Facebook. Deras support på Twitter verkade inte särskilt intresserad utan bad mig istället kontakta min bank.

Till sist fick Nullbyte dock kontakt med en person på Handelsbanken som i sin tur kontaktade en utvecklare på HiQ som åtgärdade problemet. Ett tack kom också från ansvarige Anders Edlund på Getswish AB.