Door een kwetsbaarheid in de Bluetooth-stack van Linux zijn pc’s op korte afstand uit te buiten. OpenSSH 8.4 heeft de ondersteuning van FIDO-tokens verbeterd. En er zijn weer diverse malafide JavaScript-pakketten in npm ontdekt. Deze en andere beveiligingsnieuwtjes lees je in Focus op veiligheid.

Koen Vervloesem

BleedingTooth

Andy Nguyen van Google vond enkele kwetsbaarheden in de Bluetooth-stack van de Linux-kernel. BleedingTooth, zoals de verzameling kwetsbaarheden genoemd werd, laat een aanvaller in de nabijheid toe om zonder enige authenticatie willekeurige code met kernelprivileges uit te voeren op kwetsbare apparaten. Nguyen noemde zijn exploit een “zero-click remote code execution”. Het enige wat je hoeft te weten is het Bluetooth hardwareadres (mac-adres), en het apparaat moet discoverable zijn. De exploit maakt misbruik van een onvoldoende invoervalidatie, onvoldoende beperkingen op een geheugenbuffer en onvoldoende toegangscontrole.

Nguyen meldde de fout aan Intel, dat de Bluetooth-stack van Linux beheert. Maar ondanks de belofte van Intel om de fout slechts te publiceren nadat een patch breed beschikbaar was, werd de advisory toch al snel gepubliceerd. Bovendien verwarde Intel iedereen door te beweren dat de patch in Linux 5.9 aanwezig was, wat toen nog niet het geval was. Dat bevorderde de duidelijkheid allemaal niet. Alle Linux-versies van 4.8 tot en met 5.9 zijn kwetsbaar. BleedingTooth is opgelost in Linux 5.9.1. Ook voor oudere Linux-versies zijn er patches gepubliceerd. Android is niet kwetsbaar, omdat de Android-kernel een eigen Bluetooth-stack heeft.

OpenSSH 8.4 en FIDO/U2F

In OpenSSH 8.4 is de ondersteuning van FIDO-tokens zoals YubiKeys sterk verbeterd. Zo ondersteunen ssh en ssh-keygen nu FIDO-tokens die bij elk gebruik een pincode vereisen. Je genereert dan een sleutel met de optie verify-required in ssh-keygen. Ook sshd ondersteunt nu een optie verify-required in het bestand authorized_keys die vereist dat het token heeft geverifieerd dat de gebruiker aanwezig was. Het FIDO-protocol biedt daarvoor meerdere methodes aan, maar OpenSSH ondersteunt alleen verificatie via een pincode. Verder kunnen sshd en ssh-keygen nu ook FIDO WebAuthn-handtekeningen verifiëren. Gebruikers die meerdere FIDO-tekens tegelijk hebben aangesloten, krijgen nu de vraag om het token te kiezen dat ze willen gebruiken voor een actie. Dat voorkomt dat ze een pincode voor het verkeerde token intypen en het token zijn sleutels zo wist na enkele verkeerde pincodes.

Malafide npm-pakketten

Er zijn weer diverse malafide JavaScript-pakketten ontdekt in npm (Node package manager), iets wat tegenwoordig bijna maandelijks gebeurt. Eerst ontdekten onderzoekers van Sonatype de pakketten electorn en loadyaml, die een naam hadden die wel erg veel leek op die van bestaande pakketten (waaronder het populaire framework Electron). Beide pakketten verzamelden de gebruikersnaam, home-directory, IP-adres en locatiegegevens en uploadden deze naar GitHub in de vorm van een commentaar op een issue. Het npm Security Team verwijderde de pakketten na de melding door Sonatype.

Niet veel later werden er nog eens drie kwaadaardige JavaScript-pakketten in npm gevonden. Deze openden een shell op de computer van het slachtoffer, die op afstand door de makers kon worden overgenomen. Dat werkte niet alleen op Windows, maar ook op Linux en andere Unixachtigen. Deze pakketten stonden al sinds midden 2018 in npm en waren samen meer dan duizend keer gedownload. Een ander kwaadaardig npm-pakket verstuurde lokale omgevingsvariabelen naar een server.

SELinux niet meer runtime uit te schakelen in Fedora 34?

Bij de ontwikkelaars van Fedora ligt het voorstel klaar om in Fedora 34 het uitschakelen van SELinux alleen nog maar tijdens het booten mogelijk te maken. Momenteel kun je SELinux runtime uitschakelen met de regel SELINUX=disabled in het configuratiebestand /etc/selinux/config of met de kernelparameter selinux=0 in de bootloader. Vanaf Fedora 34 zou alleen die laatste manier nog mogelijk zijn. Runtime schakelen tussen de permissive en enforcing modes van SELinux kan nog altijd.

Fedora wil nu de LSM-hooks van de kernel read-only maken, waardoor onder andere het runtime uitschakelen van SELinux niet meer mogelijk wordt. Voor wie SELinux in zijn systeem ingeschakeld heeft, is het voorstel goed nieuws: er is nu een manier minder om het uit te schakelen, dus het maakt je systeem veiliger. De read-only LSM-hooks maken het aanvalsoppervlak kleiner.

GitHub voegt codescanning toe

GitHub heeft een functie voor codescanning toegevoegd, die je repository scant op beveiligingskwetsbaarheden. De functie is gratis voor alle publieke repository’s. Codescanning is geïntegreerd met GitHub Actions of je andere favoriete CI/CD-platform. Daardoor wordt je code gescand bij elke commit. Je krijgt dan security reviews in de vorm van pull requests. GitHub richt zich met de functie codescanning voornamelijk op ontwikkelaars, niet zozeer op beveiligingsexperts. De integratie met GitHub en het opnemen van de scan in de dagelijkse workflow van de ontwikkelaars moet het gebruik ervan stimuleren en daardoor minder kwetsbaarheden in de software opleveren.

Het systeem van GitHub heet CodeQL en herkent C, C++, C#, Go, Java, JavaScript, TypeScript en Python. Het voldoet aan de open standaard SARIF (OASIS Static Analysis Results Interchange Format) en je kunt dan ook externe oplossingen voor statische analyse van code in dezelfde GitHub-actie integreren.

Nieuwe versies van Tor en Tails

Het Tor-project heeft Tor Browser 10 uitgebracht. Deze versie van de anonieme webbrowser is gebaseerd op Firefox 78.3.0esr en komt met NoScript 11.0.44 en Tor 0.4.4.5. JavaScript is in Tor Browser 10 weer onder de controle van de browserextensie NoScript. De Firefox-optie javascript.enabled staat daardoor standaard weer op true, maar in NoScript kies je dan of je JavaScript inschakelt. Ook voor Android is Tor Browser 10 uitgekomen, gebaseerd op de nieuwe Android Firefox-browser Fenix.

Ook het besturingssysteem Tails heeft weer enkele nieuwe versies uit. Tails 4.11 levert Tor Browser 10 mee en heeft Mozilla Thunderbird een upgrade gegeven naar versie 68.12. De persistente opslag laat nu ook toe om de toetsenbordindeling, taal en andere instellingen van het welkomstscherm op te slaan, en de wachtwoorddatabase van KeePassXC wordt nu standaard in een persistente directory opgeslagen. In Tails 4.12 is de grootste verandering de upgrade van de kernel naar Linux 5.8, wat de ondersteuning van nieuwere hardware verbetert. En er is nu ook een knopje om een automatische upgrade van software tijdens het downloaden te annuleren.

En verder

Git 2.29 voegt experimentele ondersteuning voor het hashalgoritme SHA-256 toe. Enkele jaren geleden al wezen onderzoekers erop dat de SHA-1-hashes die Git gebruikt om de integriteit van objecten en commits te verifiëren niet veilig meer zijn. Maar het zal nog even duren voordat de transitie van SHA-1 naar SHA-256 volledig is. De onlangs opgerichte Open Source Security Foundation (OpenSSF) lanceert een nieuw certificatieprogramma op edX. Iedereen kan nu gratis drie online cursussen volgen over de ontwikkeling van veilige software. Wie het bijbehorende certificaat wil verkrijgen, dient nog te betalen. En Chrome zal binnenkort zijn eigen root store van vertrouwde certificaatautoriteiten bijhouden in plaats van op die van het besturingssysteem te vertrouwen. De webbrowser volgt daarin Firefox, die dat al van in het begin doet.