Metadata in gepubliceerde bestanden
CWE-200CWE-212OWASP A05:2021Bijgewerkt 3 september 20264 min leestijd
Elk document en elke foto draagt gegevens mee die niet in de inhoud staan: auteursnamen, interne bestandspaden, de gebruikte software met versienummer, bewerkingsgeschiedenis en bij foto's soms locatiegegevens. Wie die bestanden publiceert, publiceert die informatie mee zonder het te weten.
Een document dat u publiceert bevat meer dan wat erin staat. Bestandsformaten houden bij wie eraan heeft gewerkt, met welke software, op welke computer en waar het bestand stond opgeslagen. Die gegevens zijn onzichtbaar tijdens het lezen en volledig zichtbaar voor wie ernaar kijkt. Wat erin zit, is meer dan een curiositeit.
Wat zijn metadata?
Metadata zijn de gegevens die een bestand over zichzelf bijhoudt, los van de inhoud. Bij een tekstdocument gaat het om de auteur, de organisatie, de gebruikte software en versie, de aanmaak- en wijzigingsdatums en vaak het volledige pad waar het bestand stond. Bij een PDF komen daar de producerende software en soms de bewerkingsgeschiedenis bij. Bij een foto zijn het het toesteltype, de instellingen, het tijdstip en bij een telefoon meestal de coördinaten.
Die informatie ontstaat automatisch en wordt zelden bewust beoordeeld. Wie een rapport, een formulier of een handleiding publiceert, denkt aan de inhoud; niemand opent de bestandseigenschappen om te kijken wat er verder in staat.
Vergelijk het met een brief op briefpapier waarop in kleine letters ook de naam van de zetter, het adres van de drukkerij en de datum van de vorige versie staan. Voor de lezer verandert er niets. Voor wie een organisatie in kaart brengt, staat er een hoop bruikbaars.
Wat komt eruit?
Kwetsbaar:
Een organisatie publiceert een rapport op haar website. Wie de eigenschappen uitleest, vindt:
Titel : Jaarrapportage 2025 (concept v4)
Auteur : m.dekker
Laatst bewerkt : j.vanleeuwen
Organisatie : Voorbeeld B.V.
Software : Microsoft Word 2016 (16.0.4266)
Aangemaakt : 2025-11-14 09:22
Pad : \\fileserver01\afdelingen\financien\rapportages\2025\
In zeven regels staat een aanzienlijke hoeveelheid informatie. Er zijn twee gebruikersnamen, en die volgen kennelijk het patroon voorletter-punt-achternaam, daarmee is de gebruikersnaam van elke medewerker af te leiden uit een naam op de bedrijfswebsite. Er is een servernaam en een mappenstructuur van het interne netwerk. En er is een softwareversie, wat aangeeft welke kwetsbaarheden op die werkplekken van toepassing kunnen zijn.
Voor een aanvaller is dit het materiaal voor een gerichte aanval: geldige gebruikersnamen voor een wachtwoordpoging, een intern pad om naar te verwijzen, en kennis van de gebruikte software voor een overtuigende phishingmail.
Veilig:
// Opschonen als onderdeel van het publiceren, niet als losse handeling
import sharp from 'sharp';
import { PDFDocument } from 'pdf-lib';
async function publiceerAfbeelding(bron, doel) {
// Opnieuw genereren verwijdert alle metadata, inclusief locatiegegevens
await sharp(bron).rotate().withMetadata({ exif: {} }).toFile(doel);
}
async function publiceerPdf(bron, doel) {
const pdf = await PDFDocument.load(await fs.promises.readFile(bron));
pdf.setTitle('');
pdf.setAuthor('');
pdf.setSubject('');
pdf.setKeywords([]);
pdf.setProducer('');
pdf.setCreator('');
await fs.promises.writeFile(doel, await pdf.save());
}
De ingreep zit in het publicatieproces, en dat is bewust. Een handmatige stap “vergeet niet de eigenschappen te wissen” werkt de eerste keren en daarna niet meer. Een automatische bewerking bij het publiceren geldt voor elk bestand, ook voor het bestand dat iemand haastig uploadt.
Wat is de impact van metadata in gepubliceerde bestanden?
De ernst is doorgaans laag tot middelzwaar. Er is geen directe aanval mogelijk en er wordt geen toegang verkregen; het gaat om informatie die vervolgstappen vergemakkelijkt.
Die vervolgstappen zijn wel concreet. Gebruikersnamen zijn de helft van elke inlogpoging, en een afgeleid naamgevingspatroon levert er in één keer honderden op. Interne servernamen en paden zijn bruikbaar bij aanvallen waarbij naar een netwerklocatie wordt verwezen, en ze geven een beeld van de interne structuur. Softwareversies bepalen welke bekende kwetsbaarheden relevant zijn. Verder bij documenten die door meerdere partijen zijn bewerkt, verraadt de geschiedenis met wie er is samengewerkt.
De uitzondering waarbij het ernstiger wordt, betreft persoonsgegevens. Locatiegegevens in foto’s en namen van personen in documenten zijn gegevens waarvoor u onder de AVG verantwoordelijk bent. Publiceert u een foto waaruit blijkt waar en wanneer die is gemaakt, dan is dat een verwerking die u waarschijnlijk niet hebt beoogd.
Hoe spoor je metadata in gepubliceerde bestanden op?
Een tester verzamelt de gepubliceerde bestanden van een organisatie (rapporten, formulieren, handleidingen, presentaties, afbeeldingen) en leest daar de eigenschappen van uit. Dat is grotendeels te automatiseren en levert bij een organisatie met veel publicaties vrijwel altijd resultaat op.
De aandacht gaat daarbij naar terugkerende patronen. Twee gebruikersnamen zeggen weinig; twintig gebruikersnamen die allemaal hetzelfde patroon volgen, leveren een werkwijze op waarmee elke medewerker een gebruikersnaam krijgt toegekend. Ook wordt gekeken naar servernamen, interne domeinen en softwareversies, en naar documenten waarin verwijderde of onleesbaar gemaakte tekst nog aanwezig blijkt. AssistSec neemt deze analyse mee bij het in kaart brengen van uw externe zichtbaarheid, omdat de gevonden gebruikersnamen rechtstreeks bruikbaar zijn in de vervolgfase van een test, en dus ook door een aanvaller.
Hoe voorkom je metadata in gepubliceerde bestanden?
- Verwijder metadata automatisch bij het publiceren, niet als handmatige stap achteraf.
- Genereer afbeeldingen opnieuw, zodat locatiegegevens en toestelinformatie verdwijnen.
- Wis auteur, organisatie, paden en softwaregegevens uit documenten en PDF-bestanden.
- Verwijder onleesbaar gemaakte passages uit de bron in plaats van ze af te dekken.
- Controleer of bewerkingsgeschiedenis en opmerkingen zijn verwijderd voordat u publiceert.
- Gebruik voor publicaties een neutrale auteursnaam in plaats van die van een medewerker.
- Neem het opschonen ook op voor bestanden die door gebruikers worden geüpload en weer worden getoond.
- Controleer periodiek wat er al gepubliceerd staat; bestaande bestanden schonen zichzelf niet op.
Bronnen
Veelgestelde vragen
Welke gegevens zitten er in een document?
Doorgaans de naam van de auteur en van wie het laatst heeft bewerkt, de organisatie, de gebruikte software met versienummer, aanmaak- en wijzigingsdatums, en het pad waar het bestand stond. In sommige formaten ook bewerkingsgeschiedenis, opmerkingen en tekst die is verwijderd maar nog in het bestand zit.
Is het verbergen van tekst hetzelfde als verwijderen?
Nee, en dat is een klassieke fout bij het onleesbaar maken van documenten. Een zwart vlak over een tekst is een grafische laag; de tekst eronder blijft in het bestand staan en is te selecteren of te extraheren. Verwijder de tekst en genereer het bestand opnieuw.
Bevatten foto's echt locatiegegevens?
Vaak wel. Foto's van een telefoon dragen standaard coördinaten, een tijdstip en het toesteltype mee. Bij een foto van een kantoor of werkplek is dat zelden bedoeld, en het is een van de weinige gevallen waarin metadata rechtstreeks persoonsgegevens prijsgeeft.
Hoe schoon ik dit geautomatiseerd op?
Door het verwijderen op te nemen in het publicatieproces in plaats van als handmatige stap. Voor afbeeldingen volstaat opnieuw genereren; voor documenten bestaan hulpmiddelen die de eigenschappen wissen. Doe het bij het publiceren, want daar weet u zeker dat het gebeurt.
Verwante artikelen
- KwetsbaarhedenCWE-548A05:2021Mappenstructuur zichtbaarStaat directory listing aan, dan toont de webserver de inhoud van elke map zonder indexbestand. Lees wat een aanvaller daarmee vindt.
- KwetsbaarhedenCWE-200A01:2021Information disclosureInformation disclosure uitgelegd: hoe stack traces, .git-mappen, source maps en te ruime API-responses gegevens lekken, en hoe u dat voorkomt.
- KwetsbaarhedenCWE-200A05:2021Interne IP-adressen en hostnamen blootgesteldInterne adressen en servernamen in headers, foutmeldingen of redirects tekenen uw netwerk voor een aanvaller. Lees waar ze weglekken.
- KwetsbaarhedenCWE-527A05:2021Broncode publiek benaderbaarEen meegepubliceerde.git-map of back-upbestand geeft uw volledige broncode prijs, inclusief wachtwoorden uit oude commits. Lees hoe u dat voorkomt.
- KwetsbaarhedenCWE-200A05:2021Versie-informatie in HTTP-headersHeaders als Server en X-Powered-By vertellen precies welke software u draait. Lees waarom dat gericht scannen vergemakkelijkt en hoe u ze weghaalt.