Taggat med: openssl

Kommande kritisk sårbarhet i OpenSSL

OpenSSL-teamet har gått ut med förhandsinformation gällande en ny sårbarhet som uppdagats i kryptobiblioteket OpenSSL. Information och en ny version av OpenSSL-biblioteket kommer att släppas den 1:a November någon gång mellan klockan 13 och 17:00 UTC.

Den nya versionen har nummer 3.0.7 och åtgärden klassas som KRITISK. Och enligt OpenSSL-projektets policy så innebär KRITISK att det är en sårbarhet som enkelt kan utnyttjas via internet och kan ge möjlighet att läsa minne eller godtycklig exekvering av kod.

Det är oklart i dagsläget huruvida andra forkar av OpenSSL påverkas såsom LibreSSL och BoringSSL. Viktigt är också att OpenSSL 1.1.x inte är drabbad av denna sårbarhet.

Vi får hoppas att detta inte blir en ny Heartbleed. Men OpenSSL är en viktig del av otroligt många produkter, system osv så oavsett vad som händer på tisdag den 1:a november så kommer det att komma många uppdateringar till diverse system och produkter.

Bugbounties är en av flera metoder att öka säkerheten i opensource-mjukvaror och Google betalar ut pengar till den som hittar buggar i OpenSSL sedan 2013.

Uppdatering: Även om OpenSSL 1.x är den vanligare versionen där ute så finns OpenSSL 3.x på rätt många ställen, bl.a. så skeppar Red Hat Enterprise Linux 9.x och Ubuntu 22.04 med OpenSSL 3.x som är sårbar.

Uppdatering 2: Lista med mjukvara som är berörd av patchen: https://github.com/NCSC-NL/OpenSSL-2022/blob/main/software/README.md

Två nya sårbarheter i OpenSSL

Den som följer mig på LinkedIn vet att jag flaggade upp för en eller flera nya sårbarheter i OpenSSL. Idag den 24:de Augusti så släpptes informationen om dessa.

Sårbarheterna återfinnes dels i ASN.1-hanteringen (no suprise) samt hanteringen av SM2-signaturer. SM2 är framtaget av Kina och återfinnes som standarden ISO/IEC 14888 (GM/T 0003-2012).

Gällande ASN.1 så skriver OpenSSL-projektet följande:

If a malicious actor can cause an application to directly construct an ASN1_STRING and then process it through one of the affected OpenSSL functions then this issue could be hit. This might result in a crash (causing a Denial of Service attack). It could also result in the disclosure of private memory contents (such as private keys, or sensitive plaintext).

Sårbara funktioner listas bl.a. X509_get1_email(), X509_REQ_get1_email() och X509_get1_ocsp().

Den allvarligaste är SM2-hanteringen som är en buffer-overflow, men troligtvis används av färre.

Varför är dessa två sårbarheterna allvarliga? Jo det är så att OpenSSL och dess olika forkar såsom BoringSSL återfinnes i många hundratals miljoner enheter och mjukvaror. Att patcha och åtgärda sårbarheter kommer att ta otroligt lång tid.

Mer information om sårbarheterna hittar du här: https://www.openssl.org/news/vulnerabilities.html

NSA varnar för ny Windows-sårbarhet

NSA varnar för ny sårbarhet i Windows

TL;DR Windows CryptoAPI Spoofing-sårbarhet

Uppdatering: Nu finns det en PoC ute, se nedan bild (källa)

Uppdatering 2: Attacken fungerar även mot Chrome.

NSA gick precis ut och varnade för en ny krypto-relaterad sårbarhet som drabbar samtliga installationer av Windows 10 samt  Windows Server 2016/2019. Även påverkade är tredjepartsprogram som använder vissa kryptofunktioner i Windows.

Även skriver NSA att angripare med en god förmåga kommer snabbt att förstå hur dessa sårbarheter kan utnyttjas samt kommer att försöka utnyttja dessa nya sårbarheter.

Exempel där denna bristfälliga signaturvalidering förekommer är:

  • HTTPS-anslutningar
  • Signerade filer och signerad E-post
  • Signerade binärer som startas som användare

Och rekommendationen som åtgärd är att snabbt som ögat installera månadens patchar från Microsoft som släpptes idag. Denna sårbarhet har fått CVE enligt: CVE-2020-0601.

För att upptäcka intrångsförsök eller utnyttjande av bristerna som åtgärdas så kan verktyget certutil eller openssl användas rekommenderar NSA, specifikt på följande sätt:

certutil –asn <certificate_filename> 
openssl asn1parse –inform DER –in <certificate_filename> –i –dump 

Eller 

openssl x509 –inform DER –in <certificate_filename> –text 

Håll då koll på avvikande elliptiska kurvor skriver NSA:

Review the results for elliptic curve objects with suspicious properties. Certificates with named elliptic curves, manifested by explicit curve OID values, can be ruled benign. For example, the curve OID value for standard curve nistP384 is 1.3.132.0.34. Certificates with explicitly-defined parameters (e.g., prime, a, b, base, order, and cofactor) which fully-match those of a standard curve can similarly be ruled benign.

Certificates containing explicitly-defined elliptic curve parameters which only partially match a standard curve are suspicious, especially if they include the public key for a trusted certificate, and may represent bona fide exploitation attempts. 

Kom ihåg att du även kan läsa ut certifikat från PCAP och nätverkstrafik och sedan granska dem enligt ovan.

Mycket bra att NSA har rapporterat denna brist/brister till Microsoft så en patch kunde släppas. Inga aktiva försöka att utnyttja denna sårbarhet har identifierats rapporterar även Microsoft och NSA.

Varningen i sin helhet kan du läsa här (PDF)

Säkerhetsuppdateringar från Apple

Apple släppte igår en stor mängd säkerhetsuppdateringar till iOS, macOS, watchOS samt tvOS. En eller flera av dessa åtgärdar säkerhetsbrister som gör att en angripare kan exekvera kod över nätverket.

Även så åtgärdas tre kryptobuggar där två av dessa är relaterade till S/MIME (e-postkryptering):

  • A S/MIME encrypted email may be inadvertently sent unencrypted if the receiver’s S/MIME certificate is not installed
  • An encryption issue existed with S/MIME credetials. The issue was addressed with additional checks and user control.
  • OpenSSL X.509 IPAddressFamily parsing

Hela listan med säkerhetsåtgärder följer nedan:

apache

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6, OS X El Capitan 10.11.6

Impact: Processing a maliciously crafted Apache configuration directive may result in the disclosure of process memory

Description: Multiple issues were addressed by updating to version 2.4.28.

CVE-2017-9798

curl

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6, OS X El Capitan 10.11.6

Impact: Malicious FTP servers may be able to cause the client to read out-of-bounds memory

Description: An out-of-bounds read issue existed in the FTP PWD response parsing. This issue was addressed with improved bounds checking.

CVE-2017-1000254: Max Dymond

Directory Utility

Available for: macOS High Sierra 10.13 and macOS High Sierra 10.13.1

Not impacted: macOS Sierra 10.12.6 and earlier

Impact: An attacker may be able to bypass administrator authentication without supplying the administrator’s password

Description: A logic error existed in the validation of credentials. This was addressed with improved credential validation.

CVE-2017-13872

Intel Graphics Driver

Available for: macOS High Sierra 10.13.1

Impact: An application may be able to execute arbitrary code with kernel privileges

Description: A memory corruption issue was addressed with improved memory handling.

CVE-2017-13883: an anonymous researcher

Intel Graphics Driver

Available for: macOS High Sierra 10.13.1

Impact: A local user may be able to cause unexpected system termination or read kernel memory

Description: An out-of-bounds read issue existed that led to the disclosure of kernel memory. This was addressed through improved input validation.

CVE-2017-13878: Ian Beer of Google Project Zero

Intel Graphics Driver

Available for: macOS High Sierra 10.13.1

Impact: An application may be able to execute arbitrary code with system privileges

Description: An out-of-bounds read was addressed through improved bounds checking.

CVE-2017-13875: Ian Beer of Google Project Zero

IOAcceleratorFamily

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6, OS X El Capitan 10.11.6

Impact: An application may be able to execute arbitrary code with system privileges

Description: A memory corruption issue was addressed with improved memory handling.

CVE-2017-13844: found by IMF developed by HyungSeok Han (daramg.gift) of SoftSec, KAIST (softsec.kaist.ac.kr)

IOKit

Available for: macOS High Sierra 10.13.1

Impact: An application may be able to execute arbitrary code with system privileges

Description: An input validation issue existed in the kernel. This issue was addressed through improved input validation.

CVE-2017-13848: Alex Plaskett of MWR InfoSecurity

CVE-2017-13858: an anonymous researcher

IOKit

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6, OS X El Capitan 10.11.6

Impact: An application may be able to execute arbitrary code with system privileges

Description: Multiple memory corruption issues were addressed through improved state management.

CVE-2017-13847: Ian Beer of Google Project Zero

Kernel

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6, OS X El Capitan 10.11.6

Impact: An application may be able to execute arbitrary code with kernel privileges

Description: A memory corruption issue was addressed with improved memory handling.

CVE-2017-13862: Apple

Kernel

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6, OS X El Capitan 10.11.6

Impact: An application may be able to read restricted memory

Description: An out-of-bounds read was addressed with improved bounds checking.

CVE-2017-13833: Brandon Azad

Kernel

Available for: macOS High Sierra 10.13.1

Impact: An application may be able to execute arbitrary code with kernel privileges

Description: A memory corruption issue was addressed with improved memory handling.

CVE-2017-13876: Ian Beer of Google Project Zero

Kernel

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6, OS X El Capitan 10.11.6

Impact: An application may be able to read restricted memory

Description: A type confusion issue was addressed with improved memory handling.

CVE-2017-13855: Jann Horn of Google Project Zero

Kernel

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6, OS X El Capitan 10.11.6

Impact: A malicious application may be able to execute arbitrary code with kernel privileges

Description: A memory corruption issue was addressed with improved memory handling.

CVE-2017-13867: Ian Beer of Google Project Zero

Kernel

Available for: macOS High Sierra 10.13.1

Impact: An application may be able to read restricted memory

Description: A validation issue was addressed with improved input sanitization.

CVE-2017-13865: Ian Beer of Google Project Zero

Kernel

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6, OS X El Capitan 10.11.6

Impact: An application may be able to read restricted memory

Description: A validation issue was addressed with improved input sanitization.

CVE-2017-13868: Brandon Azad

CVE-2017-13869: Jann Horn of Google Project Zero

Mail

Available for: macOS High Sierra 10.13.1

Impact: A S/MIME encrypted email may be inadvertently sent unencrypted if the receiver’s S/MIME certificate is not installed

Description: An inconsistent user interface issue was addressed with improved state management.

CVE-2017-13871: an anonymous researcher

Mail Drafts

Available for: macOS High Sierra 10.13.1

Impact: An attacker with a privileged network position may be able to intercept mail

Description: An encryption issue existed with S/MIME credetials. The issue was addressed with additional checks and user control.

CVE-2017-13860: Michael Weishaar of INNEO Solutions GmbH

OpenSSL

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6, OS X El Capitan 10.11.6

Impact: An application may be able to read restricted memory

Description: An out-of-bounds read issue existed in X.509 IPAddressFamily parsing. This issue was addressed with improved bounds checking.

CVE-2017-3735: found by OSS-Fuzz

Screen Sharing Server

Available for: macOS High Sierra 10.13.1, macOS Sierra 10.12.6

Impact: A user with screen sharing access may be able to access any file readable by root

Description: A permissions issue existed in the handling of screen sharing sessions. This issue was addressed with improved permissions handling.

CVE-2017-13826: Trevor Jacques of Toronto

Nyheterna i Transport Layer Security version 1.3 (TLS 1.3)

SSL och TLS har under lång tid säkrat upp en betydande del av den krypterade kommunikationen på Internet. Sedan SSL version 1.0 släpptes internt hos Netscape Communications år 1994 så har det hänt en hel del.

Den nya versionen som just nu håller på att utvecklas inom en arbetsgrupp hos IETF har versionsnumret 1.3 där målsättningen är högre prestanda samt tillhandahålla en ännu högre säkerhet. Man kan säga att designkriteriet för denna nya version är ”less is more” och det innebär att en hel del föråldrade krypton har fått stryka på foten:

  • RSA är borttaget – RSA tillhandahåller inte Forward Secrecy
  • Svaga Diffie-Hellman grupper kan inte användas (SSL_OP_SINGLE_DH_USE)
  • CBC är borta – Är orsaken till attacker såsom Lucky13 och BEAST
  • RC4 samt SHA1 får inte längre användas
  • Export-algoritmer (ansvarig för attacker såsom FREAK, LogJam etc)
  • Nytt är ChaCha-Poly1305 samt stöd för OCB-modes (tipstack till Joachim Strömbergson)
  • Algoritmen för RSA-padding är Probablilistic Signature Scheme (PSS)
  • Nytt meddelande av typen EncryptedExtension. Som nu är krypterat, tidigare skickades många okrypterat

När det gäller prestanda så har ett antal åtgärder införts:

  • 0-RTT samt 1-RTT

Genom att få ner antalet TCP-paket som måste skickas fram och tillbaka vid varje anslutning så kan snabbare TLS (och webbsidor etc) uppnås.

Här följer en bild hur 1-RTT ser ut där klienten skickar ett ClientHello direkt, samt så gissar klienten vilka krypton som kommer att användas:

När du sedan har en session etablerad så kan sedan 0-RTT användas vid senare tillfälle (Session Resumption) men detta möjliggör dock återuppspelningsattacker.

Vill du redan nu testa TLS 1.3 i Google Chrome så kan du göra följande:

  1. Skriv in ”chrome://flags/” i adressbaren och trycker enter
  2. Gå till ”Maximum TLS version enabled.” och välj ”TLS 1.3”
  3. Starta om Chrome

Och vill du testa med Firefox så behöver du ladda hem senaste nightly-build där TLS 1.3 är påslaget som standard.

Och nu när vi besöker kryptera.se och tar upp Developer Tools (DevTools) så synes följande:

Viktigt att tillägga är att TLS 1.3 inte är färdigt ännu och ändras löpande. Detta gör att mjukvara såsom OpenSSL är försiktiga med att göra förändringar. Den senaste uppdateringen till TLS 1.3 heter draft-19 och släpptes för cirka 2 veckor sedan.

För att exempelvis Nginx ska stödja TLS 1.3 så måste även OpenSSL stödja detta. Och OpenSSL kommer med stöd inom några veckor i version 1.1.1.

Uppdaterad 2017-12-27: Enligt Cloudflare är det bara %0.06 av webbläsarna som använder TLS 1.3 och detta beror främst på att många mellanlådor inte stödjer TLS 1.3.

Uppdaterad: 2017-06-06, användes internt hos Netscape. Inte Mozilla som grundades först många år senare.

Sajter som är sårbara för LuckyNegative20 CVE-2016-2107

LuckyNegative20

En av de sårbarheter vi skrev om i förrgår går under CVE-2016-2107 eller LuckyNegative20. Filippo Varsoda är en av de som genomfört en analys av buggen samt lagt upp en sajt för att testa om man är sårbar. Buggen återfinnes i en tidigare fix i biblioteket OpenSSL.

Så här skriver Filippo om buggen på CloudFlares blogg:

a skilled MitM attacker can recover at least 16 bytes of anything it can get the client to send repeatedly just before attacker-controlled data (like HTTP Cookies, using JavaScript cross-origin requests).

A more skilled attacker than me might also be able to decrypt more than 16 bytes, but no one has shown that it’s possible yet.

Vi har genomfört en skanning på några svenska sajter, och många är sårbara. Men som ovan skriver så kräver det att du kan sitta i mitten för att utnyttja attacken.

Listan med sajter

  • aftonbladet.se
  • bankomat.se
  • bth.se
  • cert.se
  • coresec.se
  • detectify.com
  • di.se
  • dn.se
  • expressen.se
  • forsakringskassan.se
  • fxm.se
  • halon.se
  • hd.se
  • kau.se
  • liu.se
  • mdh.se
  • metro.se
  • migrationsverket.se
  • nwt.se
  • oru.se
  • ownit.se
  • privataaffarer.se
  • romab.com
  • sectra.com
  • sentor.se
  • specialfastigheter.se
  • spp.se
  • svtplay.se
  • svt.se
  • tre.se
  • volvofinans.se
  • www3.skatteverket.se (används av Skatteverkets App)

Listan ovan baseras på denna.

Ny version av OpenSSL åtgärdar allvarliga brister

OpenSSLOpenSSL åtgärdade nyligen sex stycken identifierade sårbarheter. De två allvarligaste bristerna var minneskorruption i ASN.1-avkodaren samt en som möjliggör padding-attacker mot AES-NI CBC MAC.

Att hantera ASN.1 från okända källor är något som är otroligt svårt och komplext och därmed finns en hög sannolikhet för sårbarheter. För just denna allvarliga bugg är resultatet av två andra icke allvarliga buggar.

Samtliga åtgärdade sårbarheter med CVE

  • Memory corruption in the ASN.1 encoder (CVE-2016-2108)
  • Padding oracle in AES-NI CBC MAC check (CVE-2016-2107)
  • EVP_EncodeUpdate overflow (CVE-2016-2105)
  • EVP_EncryptUpdate overflow (CVE-2016-2106)
  • ASN.1 BIO excessive memory allocation (CVE-2016-2109)
  • EBCDIC overread (CVE-2016-2176)

Uppgradera till följande versioner:

  • OpenSSL 1.0.2h  för 1.0.2 användare
  • OpenSSL 1.0.1t  för 1.0.1 användare

Och som vanligt finns mer information att hitta på openssl.org

Även så har det nyligen uppdagats att nyckelderiveringen för kommandot openssl enc enbart består av en runda md5. Detta är otroligt svagt och därför bör openssl undvikas när det gäller kryptering av filer, och det gäller inte enbart openssl enc utan även liknande kommandon såsom openssl aes-256-cbc -a, läs mer här:

Weak Key Derivation in OpenSSL

Sex nya sårbarheter i OpenSSL

opensslAtt desto fler ögon som tittar på kod leder till säkrare mjukvara råder det ingen tvivel om. Allt sedan Heartbleed-sårbarheter uppdagades i OpenSSL har flertalet personer granskat koden och identifierat brister.

Nu släpper OpenSSL nya versioner som åtgärdar minst sex av dessa identifierade bristerna. Den allvarligaste medger att en angripare kan modifiera innehållet i en krypterad anslutning mellan klient och server.

Dock så måste både server och klient inneha en sårbar version för att attacken ska gå att genomföras. Samtliga OpenSSL-versioner på klientsidan är sårbara men enbart version 1.0.1 samt 1.0.2-beta1 på serversidan.

  • ChangeCipherSpec: SSL/TLS MITM vulnerability (CVE-2014-0224)

Övriga brister som åtgärdats är följande:

  • DTLS recursion flaw (CVE-2014-0221)
  • DTLS invalid fragment vulnerability (CVE-2014-0195)
  • SSL_MODE_RELEASE_BUFFERS NULL pointer dereference (CVE-2014-0198)
  • SSL_MODE_RELEASE_BUFFERS session injection or denial of service (CVE-2010-5298)
  • Anonymous ECDH denial of service (CVE-2014-3470)

Här kan du läsa mer om sårbarheterna:

Samt:

Akamais patch till OpenSSL

Akamai-logoSom vi skrev om i går så släppte Akamai en patch till OpenSSL som gör att de skyddsvärda p q och d delen av den privata nyckeln skyddas med hjälp av dess secure_malloc().

Dock så innehåller denna patch ett antal olika fel som Willem Pinckaers påpekar. Bland annat så skyddas ej parametrarna för den kinesiska restsatsen. Samt så innehåller minnet fortfarande p q och d parametrarna:

Start the server, do one SSL request to it. Dump all memory, search for p/q/d and CRT parameters. You will find one copy of p,q, and d in the secure area. Outside of the 'secure' area you will find p,q, and the CRT parameters.

Du kan läsa Willems samtliga synpunkter på patchen i följande dokument:

Eller läsa ytterligare diskussion på HackerNews.

Heartbleed dag sex

broken-heartbleedYtterligare ett antal dagar har nu passerat sedan OpenSSL-buggen Heartbleed offentliggjordes och det är dags att göra ett antal till reflektioner.

Det har visat sig att buggen går att nyttja till att erhålla den privata nyckeln, framförallt via Hearbleed Challenge.

The bad news is that [discovery] changes our recommendation from: reissue and revoke as a medium priority to reissue and revoke as a high priority.

Skrev Matthew Prince, CEO på CloudFlare till Ars Technica.

Akamai har släppt en patch för att säkra upp minnesallokeringen i OpenSSL. Deras implementation går under namnet secure_malloc (OpenSSL använder sig av OPENSSL_malloc). Läs även mer här av Alex Clemmer.

Även oklart huruvida denna sårbarhet nyttjas innan den blev offentligt känd. EFF hävdar dock att så är fallet och har bevis på detta.

Bra saker som händer efter Heartbleed

OpenSSL får mer donationer som går att granska kodbasen samt så kontrollerar generellt fler ögon OpenSSL efter buggar.

Revokeringen av certifikat ses över då exempelvis Chrome har revokeringskontroll avstängt som standard.

Forward-secrecy eller PFS som det också kallas blir mer använt.

Uppdatering: Bra blogginlägg av Einar Otto Stangvik om hur han gick till väga för att hitta den privata nyckeln.