Plusieurs jours après l'annonce à travers la mailing list d'OpenSSL d'un bug critique, nous en savant un peu plus.
OpenSSL est une boîte à outils de chiffrement comportant deux bibliothèques, libcrypto et libssl, fournissant respectivement une implémentation des algorithmes cryptographiques et du protocole de communication SSL/TLS, ainsi qu'une interface en ligne de commande, openssl. Développée en C, OpenSSL est disponible sur les principaux systèmes d'exploitation et dispose de nombreux wrappers ce qui la rend utilisable dans une grande variété de langages informatiques. En 2014, deux tiers des sites Web l'utilisaient.
Source : Wikipedia
Quel est le problème ?
Annoncé Mardi 25 Octobre dans la mailing list une vulnérabilité critique a été détectée dans le code :
L'équipe du projet OpenSSL a indiqué que la vulnérabilité est "critique" et que les versions concernées nécessiteront un correctif vers une nouvelle version 3.0.7 ou supérieure.
C'est la deuxième fois qu'OpenSSL a une vulnérabilité étiquetée "critique" (la première datant de septembre 2016).
La bonne nouvelle c'est que ce problème de sécurité n'affecte que la version 3.0 et supérieure d'OpenSSL, ce qui limite la portée des applications concernées. La version 3.0 est sortie il y a un peu plus d'un an, le 7 septembre 2021, et de nombreuses applications utilisent encore des versions plus anciennes qui ne contiennent pas cette nouvelle faille.
OpenSSL a publié deux Common Vulnerabilities and Exposures ou CVE (un référentiel des informations publiques relatives aux vulnérabilités de sécurité) sous le numéro CVE-2022-3786 et CVE-2022-3602 corrigeant buffer overflows dans la fonction de décodage punycode.
A buffer overrun can be triggered in X.509 certificate verification,
specifically in name constraint checking. Note that this occurs after
certificate chain signature verification and requires either a CA to
have signed the malicious certificate or for the application to continue
certificate verification despite failure to construct a path to a trusted
issuer.
In a TLS client, this can be triggered by connecting to a malicious
server. In a TLS server, this can be triggered if the server requests
client authentication and a malicious client connects.
An attacker can craft a malicious email address to overflow
an arbitrary number of bytes containing the.
character (decimal 46)
on the stack. This buffer overflow could result in a crash (causing a
denial of service).
([CVE-2022-3786])
An attacker can craft a malicious email address to overflow four
attacker-controlled bytes on the stack. This buffer overflow could
result in a crash (causing a denial of service) or potentially remote code
execution depending on stack layout for any given platform/compiler.
([CVE-2022-3602])
Paul Dale
Les solutions vulnérables connues à ce jour
Source : NCSC-NL
🐳 Mais aussi de plus de 1000 images de containers Docker sont impactées
Règle YARA
YARA est le nom d'un outil utilisé dans la recherche et la détection de logiciels malveillants. Il fournit une approche basée sur des règles pour créer des descriptions de familles de logiciels malveillants basées sur des modèles textuels ou binaires.
rule openssl_version {
strings:
$re1 = /OpenSSL\s3\.[0-6]{1}\.[0-9]{1}[a-z]{,1}/
condition:
$re1
}
Détection sous Linux de processus utilisant OpenSSL 3.x
sudo lsof -n | grep libssl.so.3
Script linux pour scanner votre système
J'ai développé un script "quick & dirty" pour scanner vos systèmes linux et Windows utilisant la lib OpenSSL
Après analyse, c'est un problème de punycode avec les domaines internationaux utilisés dans les certificats. L'autorité de certification doit signer les certificats malveillants, cela ne me semble pas être un "gros problème", néanmoins restons calme et patchons ...
Néanmoins cela a permis à la communauté de montrer son efficacité quant aux partages d'informations.