Software virksomheder og sociale tjenester er ofte afhængige af bug jægere til at opdage sårbarheder i deres produkter. Men, nogle gange misforståelser ske, og som i det foreliggende tilfælde, retssager kan være truet. Wesley Weinberg er senior sikkerhedsforsker hos Synack.
Som rapporteret af The Hacker News, for nylig deltog han i Facebooks bug bounty-program, efter at en af hans venner gav ham et tip om en potentiel sårbarhed i sensu.instagram(.)med.
En sårbarhed med ekstern kodeudførelse i sensu.instagram(.)med
Sådan opdagede Weinberg en fjernudførelse af kode (RCE) sårbarhed på den måde sensu.instagram(.)com behandlede session cookies, bruges til at huske bruger loginoplysninger.
RCE-bug kunne ske på grund af to hovedproblemer:
1. Sensu-Admin-webappen, der kører på serveren, indeholdt et hårdt kodet Ruby-hemmeligt token.
2. Værten, der kører en version af Ruby (3.x) der var modtagelig for kodeudførelse via Ruby-session-cookien.
Her er den interessante del. Ved at udnytte sårbarheden, forskeren var i stand til at tvinge serveren til at spytte en enorm database indeholdende Instagram- og Facebook-brugernavne og adgangskoder til virksomhedernes medarbejdere. Selvom adgangskoderne blev beskyttet med en bcrypt-kryptering, Weinberg knækkede let mange adgangskoder, der var svage.
Sandsynligvis bedøvet af denne opdagelse, Weinberg ønskede ikke at stoppe, så han fortsatte med sin forskning.
Han undersøgte derefter andre konfigurationsfiler, han opdagede på sensu.instagram(.)com's server og opdagede, at en af filerne indeholdt nøgler til Amazon Web Services-konti, der blev brugt af sidstnævnte til at være vært for Instagrams Sensu-opsætning. Hans undersøgelse afslørede derefter, at nøglerne var anført 82 Amazon s3 unikke skovle (lagerenheder). Der var ikke noget galt med den nyeste fil i spanden. Men, en ældre version indeholdt et andet nøglepar, der gjorde det muligt for ham at læse indholdet af alle 82 spande:
Instagrams kildekode
SSL-certifikater og private nøgler (inklusive for instagram.com og * .instagram.com)
API-nøgler, der bruges til at interagere med andre tjenester
Billeder uploadet af Instagram-brugere
Statisk indhold fra webstedet instagram.com
Oplysninger om e-mail-server
iOS / Android-app-signaturnøgler
Facebooks reaktion
Logisk, Weinberg fortsatte med at rapportere sin nøglefinding til Facebooks sikkerhedsteam. Men, Facebook var mere bekymret over det faktum, at forskeren fik adgang til medarbejdere og brugeres private data end med selve sårbarheden. Ikke kun Facebook belønnede ham ikke for hans arbejde, men de diskvalificerede ham også fra deres bug bounty-program.
Her er den officielle erklæring fra Facebook:
Vi er stærke fortalere for sikkerhedsforskerfællesskabet og har opbygget positive relationer med tusinder af mennesker gennem vores bug bounty-program. Disse interaktioner skal omfatte tillid, dog, og det inkluderer rapportering af detaljer om fejl, der findes, og ikke brug af dem til at få adgang til private oplysninger på en uautoriseret måde. I dette tilfælde, forskeren tilbageholdt bevidst bugs og information fra vores team og gik langt ud over retningslinjerne i vores program for at trække privat, ikke-brugerdata fra interne systemer.
Vi betalte ham for hans oprindelige fejlrapport baseret på kvaliteten, selvom han ikke var den første til at rapportere det, men vi betalte ikke for de efterfølgende oplysninger, som han havde tilbageholdt. På intet tidspunkt sagde vi, at han ikke kunne offentliggøre sine resultater - vi bad om, at han undlod at videregive de ikke-offentlige oplysninger, som han havde adgang til, i strid med vores programretningslinjer. Vi er fast besluttet på at betale for forskning i høj kvalitet og hjælpe samfundet med at lære af forskere’ hårdt arbejde.
Så, hvilken side er du på?