Taggat med: facebook

WEASEL – Ny bakdörr från Facebook

Facebook har släppt ett intressant nytt implantat (bakdörr) vid namn WEASEL. Mjukvaran är skriven i Python3 och utnyttjar DNS samt AAAA-records för att skicka och ta emot beacons. Den behöver inte heller några externa beroenden och kan således köras under de flesta operativsystem.

Ett implantat är en typ av mjukvara som används av angripare för att utföra olika uppgifter och kommunicera in och ut ur nätverk. WEASELs klientdel har inga direkta inbyggda funktioner förutom att sköta kommunikationskanalen, självradering och intervall för kommunikation. Vill du ha mer funktioner så får du själv bygga till det eftersom WEASEL stödjer exekvering (eval) av Python3-kod.

Fokus vid utvecklingen av WEASEL har varit på att försöka försvåra IT-forensiska undersökningar och därför finns ej stöd för persistens. Mjukvaran stödjer inte heller att flertalet operatörer jobbar mot samma instans.

För kryptering av data över DNS så används AES-128 i CTR mode samt Diffie-Hellman för nycklar. Oklart hur stödet för Windows ser ut men går säkert att åstadkomma med Pyinstaller.

Här hittar du WEASEL på Github:

Jag har tyvärr ej testat WEASEL ännu men har det på min todo-lista. Om du gör det eller redan testat så lämna gärna en kommentar om dina erfarenheter.

Bild på vessla av Keven Law – originally posted to Flickr as On the lookout…, CC BY-SA 2.0

Nytt loggverktyg från Facebook: LogDevice

Facebook har precis släppt ett nytt loggverktyg som open-source. Verktyget går under namnet LogDevice och underlättar det moment som gäller att skriva loggar mot disk via ett kluster.

För att förstå lite bättre så kan följande bild förevisa konceptet:

Varje server i klustret har en lokal instans av LogsDB som bygger på RocksDB. Databasen är byggd på ett sådant sätt så minimalt med disk I/O används. Tekniken bygger på key-value LSM-träd.

Eller som Facebook skriver på sin Github-sida för projektet:

LogDevice is a scalable and fault tolerant distributed log system. While a file-system stores and serves data organized as files, a log system stores and delivers data organized as logs. The log can be viewed as a record-oriented, append-only, and trimmable file

Mer information finns på LogDevice.io samt en video från konferensen @Scale.

Threat Hunting med osquery

Osquery är ett open-source projekt från Facebook som släpptes under år 2014. Osquery är ett verktyg för att ställa SQL-liknande frågor mot servrar och klienter. Detta är bra för att hålla koll på vad som händer i infrastrukturen. Ett axplock med några av de frågeställningar som osquery kan svara på:

  • Vilka processer körs på våra klienter?
  • Vilka TCP och UDP-portar lyssnar våra servrar på?
  • Vilka USB-minnen har varit anslutna till våra system?
  • Finns filen med namn eller checksumman XX någonstans?
  • Vilka processer kommunicerar ut på nätverket?

Osquery stödjer Windows, Linux, FreeBSD samt macOS. Dock kan funktionaliteten skilja sig mellan olika operativsystem.

Exempel på SQL-fråga som ställs via osqueryui:

I sin grundinstallation är osquery relativt avskalat och saknar mycket av den funktionalitet som man kan få med ett kommersiellt verktyg som kommer färdigt med avancerade rapporteringsfunktioner och signaturer. Därför kan du bygga stödfunktioner själv till osquery eller använda något av det som finns tillgängligt såsom Kolide, Doorman eller Uptycs som ser till att SQL-frågor kan ställas över nätverket. Loggningen från osquery kan med fördel hällas in i ELK-stacken eller Splunk.

När det gäller mallar för osquery för att titta på avvikelser eller anomalier så kan jag rekommendera Palantirs osquery-configuration, så kallade query packs.

Här är en skärmdump som visar på att jag 5 st query packs installerade i Kolide Fleet med fokus på Windows:

Det query pack som heter windows-attacks har 15 st SQL-frågor som går var 60:de sekund på 3 st klienter. Rapporter på utfall hamnar hamnar i filen osquery_result centralt på servern som kör Kolide Fleet, och filen ser ut ungefär enligt följande:

Och vill vi titta på hur just den SQL-frågan som genererade ovan JSON-loggrad så tittar vi bara på windows-pack/os-version som ser ut enligt följande:

SELECT * FROM os_version;

Eftersom action är added så är det första gången denna SQL-fråga kördes. Men du behöver inte köra frågor regelbundet utan kan även ställa vissa typer av realtidsfrågor beroende på operativsystem, se stödet i denna tabell (längst uppe i högra hörnet ser du en OS-symbol för varje tabell).

Fördelar med osquery 👍

Osquery gör att du kan inventera hela din infrastruktur och söka rätt på hot, så kallad Threat Hunting. Nästan allt är öppen källkod med bra licenser och gör det enkelt för organisationer med resurser att anpassa osquery till sina behov. För realtidsövervakning skulle jag dock komplettera med sysdig eller sysmon.

Du har även full insyn i samtliga regler och varför dessa larmar , vilket kan vara ett problem med många antivirus-mjukvaror då dessa ofta är stängda.

Nackdelar med osquery 👎

Du måste göra mycket själv och bör ha en god kännedom gällande open-source utveckling. Majoriteten av alla frågor är så kallade poll-baserade och gör att en angripare kan flyga under radarn. Precis som många andra skyddsfunktioner så kan en angripare stänga ner eller modifiera osquery.

Sammanfattning

Jobbar du med cybersäkerhet och inte har tittat på osquery efter att ha läst detta gör du tjänstefel. Undersök och labba själv på egen kammare med exempelvis DetectionLab.

Jag är även rätt säker på att osquery är en av de få säkerhetsrelaterade mjukvaror som snurrar på Mark Zuckerbergs Macbook.

Även kan Wazuh v3.5.0, uppföljaren till OSSEC kan stödja osquery sedan fem dagar tillbaka.

Stöd gärna mitt bloggande via Patreon.

TLS 1.3 är nu ute som RFC 8446

Jag har tidigare skrivit om nya versionen av TLS som kommer att bli version 1.3. Denna nya version har nu fått en RFC (Request for Comments) vilket kan anses av många som en standard på internet. Det är ungefär 10 år sedan TLS 1.2 släpptes.

En av anledningarna till att det tagit så lång tid att få ut denna RFC beror på middleboxes (mellanliggande utrustning på internet) som lägger sig i TLS-kommunikationen. Och för att undersöka detta så behövs det data från hur det ser ut ute i nätverken.

RFC 8446 är på 160 sidor och min favorit är Appendix E som beskriver säkerhetskomponenterna i TLS 1.3.

För att citera Facebook som använder sitt eget bibliotek Fizz:

More than 50 percent of our internet traffic is now secured with TLS 1.3

ISOC samt IETF har även skrivit om TLS 1.3:

 

Diskutera cybersäkerhet på Facebook

Säkerhetsbubblan på Facebook

Undertecknad och Karl Emil Nikka på Nikka Systems har precis startat en grupp på Facebook för den som är intresserad av cybersäkerhet. Namnet på gruppen är Säkerhetsbubblan och länken till gruppen hittar du här:

https://facebook.com/groups/sakerhetsbubblan

Gruppen är givetvis öppen för alla oavsett om du jobbar i branschen, är student eller bara allmänt intresserad. Tidigare har säkerhet diskuterats flitigt i grupper såsom Kodapor eller Teknikbubblan men både jag och Karl Emil kände att det saknades en dedikerad grupp för säkerhetssnack.

Givetvis är reklam och liknande förbjudet och vi kommer att göra det vi kan för att administrera gruppen men vill du hjälpa till kan du kontakta oss.

Facebook stödjer nu inloggning med säkerhetsnyckel (U2F)

Facebook meddelade precis att de nu stödjer tvåfaktorsautentisering med hjälp av en hårdvarunyckel. Det är nycklar som stödjer standarden FIDO U2F som är utvecklad av Google samt svenska företaget Yubico.

En Yubikey U2F från Yubico kostar 160kr och går att beställas från Yubicos hemsida (tillkommer frakt på cirka 50kr). Förutom Facebook så stödjer även populära tjänster såsom Dropbox, Salesforce, och Google U2F-enheter sedan tidigare.

Har du en mobiltelefon med Android och NFC stöd så finns det dock ett antal möjligheter för inloggning eftersom dessa enheter oftast inte har USB.

Bild på en Yubikey U2F från Yubico:

 

En miljon använder nu Facebook över Tor

Facebook över TorAlec Muffett på Facebook rapporterade nyligen att en miljon använder Facebook över Tor. Och så här skriver Alec på Facebook-sidan Facebook over Tor:

Over this period the number of people who access Facebook over Tor has increased. In June 2015, over a typical 30 day period, about 525,000 people would access Facebook over Tor e.g.: by using Tor Browser to access www.facebook.com or the Facebook Onion site, or by using Orbot on Android. This number has grown – roughly linearly – and this month, for the first time, we saw this “30 day” figure exceed 1 million people.

Ökningen beror dels på att Tor blir mer och mer populärt eftersom fler stater väljer att filtrera eller på andra sätt kontrollera Internet. Följande statistik visar på antalet anslutna klienter som kommer via ”gömda bryggor” sedan Januari 2015:

Tor bridge users

För dig som vill surfa till Facebook över Tor behöver först ansluta mot Tor-nätverket med exempelvis Tor Browser. Surfa sedan till följande URL:

https://facebookcorewwwi.onion/

Två nya kryptoattacker mot Telegram

Telegram

Telegram är en app för att skicka krypterade meddelanden mellan telefoner eller till dator. Appen är skapad av grundaren till ryska motsvarigheten till Facebook, VK. Men på grund av ryska myndigheter så valde Pavel Durov att lämna landet i exil.

Även så har Telegram fått stor uppmärksamhet på sistone då det framkommer att ISIS använder en funktionalitet i Telegram som gör det möjligt att skapa krypterade chatt-kanaler.

Ny forskning från Århus Universitet visar dock på att appen innehåller ett antal svagheter. Men grundproblemet med appen är att man har valt att implementera ett eget kryptoprotokoll.

Dessa två sårbarheter som uppdagats är relaterad till padding i dess eget protokoll vid namn MTProto. Klienten är i dagsläget öppen källkod, men ej serverdelen.

Intressant att notera är även att varje nyckel används för 100 stycken chatt-meddelanden eller max 1 vecka.

Så om en nyckel röjs så går det att återskapa max 100 meddelanden:

This means that if an adversary gets hold of an old auth_key he will be able to derive AES keys and read 100 encrypted messages, but he will not be able to construct the next key from the public DH values.

En av attackerna går ut på att lägga på extra padding, enligt följande:

Telegram padding-attack

Denna attack kan motverkas lätt genom att kontrollera längden på padding, vilket även föreslås i uppsatsen som är länkad nedan.

Sen ifrågasätts även användningen av SHA1 i Telegram. Och skulle exempelvis all kraft som finnes i Bitcoin mining-nätverket användas för att hitta en kollisionsattack i SHA1 så skulle det ta 4 sekunder.

Beskrivning av MTProto-protokollet:
MTProto

Här kan du ladda hem hela uppsatsen från Århus universitet:

Facebook + PGP = ❤️

Facebook PGP

Facebook stödjer nu att du kan ladda upp din publika nyckel till din Facebook-profil. Då kommer Facebook att använda denna nyckel när de skickar ut meddelanden via E-post.

Och som ovan bild visar så förhindrar detta även om ditt E-postkonto skulle bli kapat (men du använder väl tvåfaktorsautentisering också?).

Behöver ditt företag hjälp med IT-säkerhet eller kryptering? Kontakta Triop AB >

Detta är så klart ett bra uppsving för hela PGP och web of trust och detta märks tydligt då flertalet nyckelservrar såsom pgp.mit.edu svarar långsamt idag eller är helt nere. En tydlig koppling mellan din Facebook-profil och nyckel stärker förtroendet, lite åt det håll som tjänsten Keybase är tänkt.

För att bekräfta att din publika PGP-nyckel så skickar Facebook även ut ett krypterat verifieringsmail med en länk som du måste klicka på för att funktionen ska aktiveras.

Om du vill ladda hem någons publika PGP-nyckel så kan du göra det enligt följande exempel på URL:

https://www.facebook.com/facebookalias/publickey/download

Facebook PGP

Här laddar du upp din publika nyckel:

https://www.facebook.com/me/about?section=contact-info

Facebook själva använder en nyckel med följande fingerprint:

31A7 0953 D8D5 90BA 1FAB 3776 2F38 98CE DEE9 58CF

och denna subkey fingerprint:

D8B1 153C 9BE9 C7FD B62F 7861 DBF4 E8A2 96FD E3D7

Och Facebook kommer att stödja RSA och ElGamal men undersöker huruvida de även kan stödja elliptiska kurvor (ECC). Obligatorisk XKCD:

XKCD PGP

Tips! Gillade du att läsa detta? Kolla även in: Facebook finns nu på Tor

Så lagrar Facebook lösenord

På en konferens nyligen så avslöjade Facebook hur de lagrar sina lösenord. Eller rättare skrivet hur de hashar sina lösenord.

  1. $cur  = ’plaintext’
  2. $cur  = md5($cur)
  3. $salt = randbytes(20)
  4. $cur  = hmac_sha1($cur, $salt)
  5. $cur  = cryptoservice::hmac($cur)
  6.         [= hmac_sha256($cur, $secret)]
  7. $cur  = scrypt($cur, $salt)
  8. $cur  = hmac_sha256($cur, $salt)

1. Det första steget är tämligen självförklarande.

2. Gör först en MD5 av lösenordet. Detta ligger troligtvis kvar pga historia då detta troligtvis enbart var det enda steget. Om en användare loggar in och enbart har en md5 så kommer lösenordet att uppdateras med det nya systemet enligt nedan.

3. En salt på 160 bitar är genererad slumpmässigt. För att förhindra kollisioner så bör den vara minst 64 bitar pga antalet användare och övriga bitar är troligtvis för att framtidssäkra.

4. En HMAC med sha1 skapas som sedan skickas in i nästa steg.

5. Detta steg är för att inneha en central kontrolldel och att förhindra offline eller online forceringsattacker mot lösenord.

7-8. scrypt för att försvåra forcering samt skapande av regnbågstabeller. Vi har många gånger tidigare skrivit om scrypt. Samt sista steget är för att göra databasen med lösenord mindre.

Facebook håller även koll på lösenordsdumpar som publiceras på internet och förekommer ditt lösenord i en sådan dump så kommer Facebook att varna dig.

Bedömt så har Facebook lagt mycket kraft bakom lösenordshashningen och det ser mycket bra ut.

Joachim Strömbergson
Joachim Strömbergson

Joachim Strömbergson som är säkerhetsexpert på företaget Assured som också har tittat på Facebooks sätt att lagra lösenord kommenterar enligt följande:

För att sammanfatta min känsla efter 5 sekunder är att man är duktig och använder seed, man har till och med vad som ser ut att vara ytterligare en hemlighet vilket gör det än svårare att försöka göra regnbågsattacker. Vidare använder man dessutom scrypt för att införa work factor som försvårar uttömmande sökning.

Källa på informationen är det som Facebook uppgav vid konferensen Real World Crypt 2015.

Uppdatering: Per Thorsehim tipsar även om att Alec Muffett från Facebook höll en presentation vid konferensen Passwords 2014 i Norge där han berättar mer i detalj:

Facebook lösenord