Offenlegung sensibler Informationen durch Metadaten
Beschreibung
Offenlegung sensibler Informationen durch Metadaten tritt auf, wenn ein Produkt den direkten Zugriff auf eine Ressource mit sensiblen Informationen verhindert, aber den Zugriff auf Metadaten, die aus den originalen, sensiblen Informationen abgeleitet sind, nicht ausreichend einschränkt. Entwickler sichern oft primäre Datenquellen, übersehen dabei aber Metadaten-Repositories. Teile der ursprünglichen Informationen können in Metadaten, Suchindizes, statistischen Berichten oder anderen Ressourcen aufgezeichnet sein. Angreifer können dies ausnutzen, indem sie gezielte Suchabfragen verwenden oder Metadatenmuster wie Erstellungsdaten und Aktivitätsprotokolle analysieren, um sensible Details über Personen oder Systeme abzuleiten.
Risiko
Metadaten-Offenlegung hat erhebliche Sicherheitsauswirkungen. Sensible Informationen können aus Metadatenmustern abgeleitet werden. Suchindizes können geschützte Daten exponieren. Statistische Berichte können private Details offenbaren. Erstellungsdaten und Änderungszeiten können Aktivitäten verraten. Dokumenteigenschaften können vertrauliche Informationen enthalten. Logdateien können Benutzerverhalten exponieren. Aggregierte Metadaten können De-Anonymisierung ermöglichen. Zugriffsmuster können Geschäftsinformationen preisgeben.
Lösung
Identifizieren Sie alle Metadaten, die aus sensiblen Daten abgeleitet sind. Wenden Sie dieselben Zugriffskontrollen auf Metadaten wie auf primäre Daten an. Bereinigen Sie Metadaten vor Speicherung oder Übertragung. Beschränken Sie den Suchindex-Zugriff auf autorisierte Benutzer. Überprüfen Sie statistische Berichte auf Informationslecks. Entfernen Sie Dokumentmetadaten vor dem Teilen. Implementieren Sie Protokollierung und Überwachung des Metadaten-Zugriffs. Berücksichtigen Sie Metadaten beim Design von Zugriffskontrollrichtlinien. Prüfen Sie regelmäßig Metadaten-Repositories auf sensible Inhalte.
Häufige Auswirkungen
| Auswirkung | Details |
|---|---|
| Vertraulichkeit | Bereich: Vertraulichkeit Anwendungsdaten lesen – Angreifer erhalten unautorisierten Zugriff auf sensible Anwendungsinformationen durch Metadatenanalyse. |
Beispielcode und Lösung
Verwundbarer Code
# VERWUNDBAR: Dokumentensystem exponiert Metadaten
class VulnerableDocumentSystem:
def __init__(self):
self.documents = {}
self.metadata = {} # Öffentlich zugänglich!
def upload_document(self, doc_id, content, author, classification):
self.documents[doc_id] = {
'content': content,
'classification': classification,
'access_control': ['authorized_users_only']
}
# VERWUNDBAR: Metadaten separat ohne Zugriffskontrolle gespeichert
self.metadata[doc_id] = {
'author': author,
'created': datetime.now().isoformat(),
'classification': classification, # Verrät Sensibilitätsstufe!
'keywords': self.extract_keywords(content) # Verrät Inhalt!
}
def get_metadata(self, doc_id, user):
# VERWUNDBAR: Keine Zugriffskontrolle auf Metadaten!
return self.metadata.get(doc_id)
Sichere Lösung
# SICHER: Dokumentensystem mit Metadatenschutz
class SecureDocumentSystem:
def __init__(self):
self.documents = {}
def upload_document(self, doc_id, content, author, classification):
# Dokument und Metadaten zusammen mit gleicher Zugriffskontrolle speichern
self.documents[doc_id] = {
'content': content,
'metadata': {
'author': author,
'created': datetime.now().isoformat(),
'classification': classification,
'keywords': self.extract_keywords(content)
},
'access_control': self.get_access_list(classification)
}
def get_metadata(self, doc_id, user):
# Gleiche Zugriffskontrolle für Metadaten
doc = self.documents.get(doc_id)
if doc and self.check_access(user, doc['access_control']):
return doc['metadata']
return None # Nicht verraten, dass Dokument existiert
def search(self, query, user):
# Nur Dokumente zurückgeben, auf die der Benutzer Zugriff hat
results = []
for doc_id, doc in self.documents.items():
if self.check_access(user, doc['access_control']):
if query.lower() in str(doc['metadata'].get('keywords', [])).lower():
results.append({
'id': doc_id,
'author': doc['metadata']['author']
})
return results
CVE-Beispiele
Metadaten-Offenlegungs-Schwachstellen wurden in Dokumentenmanagementsystemen, Dateifreigabeplattformen und Social-Media-Anwendungen gefunden, bei denen geschützte Inhalte durch Metadaten-Abfragen entdeckt werden könnten.
Verwandte CWEs
- CWE-285: Improper Authorization (übergeordnet)
- CWE-202: Exposure of Sensitive Information Through Data Queries (untergeordnet)
- CWE-612: Improper Authorization of Index Containing Sensitive Information (untergeordnet)
Referenzen
- MITRE Corporation. "CWE-1230: Exposure of Sensitive Information Through Metadata." https://cwe.mitre.org/data/definitions/1230.html
- OWASP-Richtlinien zum Datenschutz
- Privacy by Design-Prinzipien