image

Beveiligingslek in Bitdefender kon websites remote commando's laten uitvoeren

maandag 22 juni 2020, 17:09 door Redactie, 3 reacties

Een kwetsbaarheid in de beveiligingssoftware van antivirusbedrijf Bitdefender maakte het mogelijk voor malafide websites om op afstand willekeurige commando's op het systeem van gebruikers uit te voeren. Dat ontdekte Wladimir Palant, ontwikkelaar van de bekende adblocker Adblock Plus.

Het probleem werd veroorzaakt doordat Bitdefender Total Security 2020 zelf problemen met certificaatfouten afhandelt en een eigen foutpagina laat zien. Voor malafide websites was het mogelijk om sommige security tokens van deze foutpagina's uit te lezen en daarmee de Chromium-gebaseerde Safepay-browser te starten en op afstand commando's op het systeem van de gebruiker uit te voeren.

Total Security 2020 biedt onder andere een aparte Safepay-browser voor online bankieren. Daarnaast inspecteert de beveiligingssoftware het https-verkeer van de gebruiker. Hiervoor maakt Bitdefender gebruik van een browser-api, waardoor externe applicaties de versleutelde https-data kunnen bekijken, zonder dat ze die zelf hoeven te ontsleutelen.

Het afhandelen van certificaatfouten besloot Bitdefender echter zelf te doen, in plaats van dit aan de browser over te laten. Iets wat volgens Palant onnodig was. De Adblock Plus-ontwikkelaar ontwikkelde een aanval waarbij een malafide site met een geldig tls-certificaat door de browser van de gebruiker wordt geladen. Vervolgens laadt de website een ongeldig tls-certificaat, wat voor de foutmeldingspagina van Total Security 2020 zorgt. Deze foutmeldingspagina kan door de malafide website worden gedownload.

De foutmeldingspagina bevat security-tokens waarmee het mogelijk is om de Safepay-browser op het systeem van de gebruiker te starten en commando's op zijn of haar systeem uit te voeren. "Het heeft de voorkeur dat antivirusleveranciers zoveel als mogelijk van versleutelde verbindingen wegblijven", aldus Palant. Hij waarschuwde Bitdefender op 15 april van dit jaar over de kwetsbaarheid. Op 23 april kreeg hij te horen dat het probleem was verholpen en er een automatische update onder gebruikers was uitgerold.

Omdat er moest worden gewacht op de "technology partners" van Bitdefender werd besloten om nog geen details over de kwetsbaarheid openbaar te maken. Verschillende partijen maken voor hun eigen producten gebruik van de technologie van het antivirusbedrijf. Nu ook deze partijen bij zijn hebben Palant en Bitdefender vandaag de details over de kwetsbaarheid openbaar gemaakt. Op een schaal van 1 tot en met 10 wat betreft de impact werd het lek met een 8,8 beoordeeld.

Reacties (3)
22-06-2020, 17:18 door Anoniem
Digitalisering, globalisatie, centralisatie bieden niet alleen voordelen.
22-06-2020, 18:40 door Anoniem
Dit is wel weer geweldig. Het derdepartij-oplapmiddel introduceert zelf broekafzakproblemen en oplossen kost heel veel conference calls en schiet dus niet op.
23-06-2020, 00:11 door Anoniem
Een URL-sanitizing probleem. Dat moet toch voor een security vendor niet zo'n moeilijke opgaaf zijn om ziets netjes af te regelen.

console.log(sanitizeHtml(html)); console.log(sanitizeHtml("")); console.log(sanitizeHtml("console.log('hello world')")); console.log(sanitizeHtml("")); npm install sanitize-html var sanitizeHtml = require('sanitize-html'); var dirty = 'some really tacky HTML'; var clean = sanitizeHtml(dirty); // Allow only a super restricted set of tags and attributes clean = sanitizeHtml(dirty, { allowedTags: [ 'b', 'i', 'em', 'strong', 'a' ], allowedAttributes: { 'a': [ 'href' ] }, allowedIframeHostnames: ['www.youtube.com'] }); clean = sanitizeHtml(dirty, { allowedTags: sanitizeHtml.defaults.allowedTags.concat([ 'img' ]) }); allowedTags: [ 'h3', 'h4', 'h5', 'h6', 'blockquote', 'p', 'a', 'ul', 'ol', 'nl', 'li', 'b', 'i', 'strong', 'em', 'strike', 'abbr', 'code', 'hr', 'br', 'div', 'table', 'thead', 'caption', 'tbody', 'tr', 'th', 'td', 'pre', 'iframe' ], disallowedTagsMode: 'discard', allowedAttributes: { a: [ 'href', 'name', 'target' ], // We don't currently allow img itself by default, but this // would make sense if we did. You could add srcset here, // and if you do the URL is checked for safety img: [ 'src' ] }, // Lots of these won't come up by default because we don't allow them selfClosing: [ 'img', 'br', 'hr', 'area', 'base', 'basefont', 'input', 'link', 'meta' ], // URL schemes we permit allowedSchemes: [ 'http', 'https', 'ftp', 'mailto' ], allowedSchemesByTag: {}, allowedSchemesAppliedToAttributes: [ 'href', 'src', 'cite' ], allowProtocolRelative: true, enforceHtmlBoundary: false clean = sanitizeHtml(dirty, { transformTags: { 'a': function(tagName, attribs) { return { tagName: 'a', text: 'Some text' }; } } }); clean = sanitizeHtml(dirty, { transformTags: { 'ol': sanitizeHtml.simpleTransform('ul', {class: 'foo'}), } });

Zoiets dergelijks dus,

#sockpuppet
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.