In Zeiten, in denen vertrauliche, personenbezogene Informationen wie Namen, Passwörter und Sozialversicherungsnummern ein wertvolles Gut sind, steigt das Risiko ungewollter Datenpreisgabe zusehends an. Wenn es zu einer Datenschutzverletzung kommt, wird das Unternehmen für mangelnde Sicherheitsvorkehrungen verantwortlich gemacht. Allerdings können Entwickler:innen selbst zur Datensicherheit in ihren Anwendungen beitragen, sofern sie entsprechend geschult werden und die richtigen Tools an der Hand haben. In diesem Blog erfahren Sie, wie sensible Daten über Logs an die Öffentlichkeit gelangen können und wie Sie die Logverschleierungsfunktion von New Relic zum Schutz vertraulicher Daten nutzen können.

Die Folge der Preisgabe vertraulicher Daten über Logs 

Angenommen, jemand nutzt eine Online-Handelsplattform. Bei der Anmeldung erfasst die Anwendung eine Reihe personenbezogener Daten. In den USA gehört dazu die Sozialversicherungsnummer (SSN), um die Identität eines Kunden bzw. einer Kundin gemäß den KYC-Finanzvorschriften zu identifizieren. Wenn Kriminelle sich unbefugten Zugang zu einer SSN verschaffen, können sie sie für zahlreiche weitere Straftaten nutzen, z. B. für unbefugten Zugriff auf Kredite, für die Erstellung von Bankkonten und vieles mehr. Dementsprechend müssen Anwendungsentwickler:innen die SSNs beim Sammeln und Logging solcher Daten so gut wie möglich schützen. 

Sehen wir uns genauer an, was passiert, wenn jemand sich bei der Handelsplattform TechieVibez Finance anmeldet. Sie können die Schritte selbst mitverfolgen und dieses Repository anhand der Anweisungen in der ReadMe-Datei klonen.

Das aktuelle Programmdesign erfasst jedes Mal, wenn jemand auf „Log In“ klickt, eine beliebige Nummer im Format einer Sozialversicherungsnummer in den Logs.

Eine ungeschützte SSN ist problematisch, da solche personenbezogenen Daten nicht nur für Mitarbeiter:innen mit Zugriff auf die Anwendung und die Produktionsumgebung zugänglich sind, sondern auch von jeder Person mit Zugang zu den integrierten Monitoring-Tools von Drittanbietern wie New Relic aufgerufen werden können. Glücklicherweise verfügt New Relic über eine Log-Forwarding-Funktion, die dabei hilft, vertrauliche Daten entweder automatisch oder durch die Erstellung von Regeln für bestimmte Szenarien zu verschleiern, um diese Art von Datenverstoß einzudämmen. 

Was ist Logverschleierung?

Unter Verschleierung versteht man den Prozess, Inhalte für Menschen und Computer unverständlich zu machen. Dieser Prozess ist wichtig, um personenbezogene Daten wie SSNs oder Passwörter zu schützen, da diese Daten dadurch für niemanden mehr lesbar sind, auch nicht für Hacker. New Relic unterstützt Maskierung und Hashing, um sensible Daten zu verschleiern. Bei der Maskierung werden vertrauliche Informationen vollständig entfernt und durch „X“-Zeichen ersetzt, sodass diese Werte nach der Maskierung nicht mehr durchsuchbar sind. Datenmaskierung ist nützlich, wenn Sie personenbezogene Daten anonymisieren möchten. Zum Beispiel: 

Die ursprünglichen Logdetails im Klartext:

{
  "username": "mmaka",
  "password": "mM@ck3s",
  "ssn": "123-45-6789"
}

Die gleichen Logdetails, aber mithilfe der Maskierungstechnik verschleiert:

{
  "username": "XXXXXXXX",
  "password": "XXXXXXXX" ,
  "ssn": "XXXXXXXX"
}

Weitere Informationen zu verschiedenen Datenmaskierungstechniken, Anwendungsfällen und Best Practices finden Sie in diesem Artikel zur Datenmaskierung

Im Gegensatz zur Datenmaskierung werden beim Hashing die ursprünglichen Klartextdaten in einen verschlüsselten Wert umgewandelt, der später abgerufen und durchsucht werden kann. Dieser Wert kann als aussagekräftiger Datenpunkt verwendet werden, solange Sie sich an den ursprünglichen Klartextwert erinnern. Es gibt eine Reihe sicherer Hashing-Algorithmen (SHA), New Relic unterstützt das SHA-256-Format. Zum Beispiel: 

Die ursprünglichen Logdetails im Klartext:

{
  "username": "mmaka",
  "password": "mM@ck3s",
  "ssn": "123-45-6789"
}

Die gleichen Logdetails, aber mithilfe der Hashing-Technik verschleiert:

{
  "username": "007affa7d313e4b5b2b85b3d42f2aa3a70423c83a93d9ee058aed3a3145b23cc",
  "password": "528be89abeea17a90e98b4872394a28437eb14911006a55d34ead0c647dea2cf",
  "ssn": "01a54629efb952287e554eb23ef69c52097a75aecc0e3a93ca0855ab6d7a31a0"
}

Die New Relic Plattform ist so konzipiert, dass sie in Logdaten automatisch Nummernmuster verschleiert, die als vertraulich eingestuft werden, wie etwa Kreditkarten- oder US-Sozialversicherungsnummern (SSN). Sie können auch selbst Obfuscation-Regeln für bestimmte Anwendungsfälle erstellen und sogar ein Hashing-Tool verwenden, um die Daten in Ihren Logs zu verschleiern. Werfen wir einen Blick darauf, wie eine verschleierte SSN in New Relic angezeigt wird, nachdem sie über die Logs weitergeleitet wurde.

Verwenden der UI für die Logverschleierung in New Relic

So sehen Sie, wie die Logverschleierung in New Relic funktioniert:

  1. Melden Sie sich bei New Relic an.
  2. Leiten Sie Ihre Logs an New Relic weiter
  3. Klicken Sie links auf den Tab All Entities und wählen Sie Ihre Anwendung aus.

4.  Navigieren Sie im Kontext Ihrer Anwendung zum Tab Logs.

Bisher hat ein/e Benutzer:in mit der Anwendung interagiert und diese Aktivität wurde in den Logs erfasst, die im Terminalfenster angezeigt werden (im Video im Fenster rechts zu sehen). Es ist wichtig zu beachten, dass die SSN im Terminalfenster als Klartext erfasst wird, während dieselbe SSN automatisch verschleiert wird, wenn die Logs an New Relic weitergeleitet werden (im Video im Bereich links). Die automatische Verschleierung, die zum Schutz der erkannten SSNs in New Relic verwendet wird, ist die Maskierungsmethode. Sie wollten sich allerdings erweiterte Verschleierungsfunktionen ansehen, die nicht automatisch erfolgen, oder vielleicht sogar die Hashing-Technik integrieren, damit Sie diese Werte später durchsuchen können. Hier kommt das zusätzliche Logverschleierungs-Feature zum Einsatz. 

Erweiterte Logverschleierung mit Data Plus

Mit einem Data Plus Konto ist die erweiterte Logverschleierungsfunktion von New Relic verfügbar. Sie können Regeln direkt in der Logmanagement-UI erstellen und nachverfolgen und nach Belieben den Hashing- oder Maskierungsalgorithmus auswählen, den Sie in dem Prozess durchsetzen möchten.

Um auf das Tool zuzugreifen, wählen Sie links außen den Tab Logs und dann den Tab Obfuscation aus.

Sobald Sie sich in der Verschleierungsansicht befinden, haben Sie die Möglichkeit, eines oder alle der folgenden Tools zu verwenden, um die vertraulichen Daten in Ihren Logs zu schützen. Lesen Sie weiter, um mehr über jede dieser Funktionen zu erfahren.

Hashing-Tool

Wenn Ihre Logs sensible Daten enthalten, die Sie später zu Nachverfolgungszwecken abrufen möchten, wie z. B. Benutzernamen, eignet sich das Hashing-Tool perfekt für Ihren Anwendungsfall. Um dieses Tool zu verwenden, gehen Sie folgendermaßen vor:

  1. Wählen Sie auf der Benutzeroberfläche den Tab Hashing Tool aus.
  2. Kopieren Sie die gewünschten Daten in ihrer ursprünglichen Klartextform in das Feld Value.
  3. Im Feld Hash wird automatisch ein SHA-256-Hash-Wert generiert.
  4. Wählen Sie die Schaltfläche Copy hash to clipboard, um den Hash-Wert zur späteren Verwendung zu kopieren.

Erstellen Sie einen Ausdruck, um eindeutige Muster personenbezogener Daten zu erkennen und zu verschleiern

Wie bereits erwähnt, verschleiert New Relic automatisch Daten, die entweder als SSN oder als Kreditkartennummer (CCN) identifiziert werden. Dies ist durch die jeweiligen Regex-Regeln möglich.

 

In Sonderfällen, beispielsweise wenn Sie alle in Ihren Logs erkannten Passwörter verschleiern möchten, bietet Ihnen die Verschleierungsfunktion von New Relic die Möglichkeit, einen Ausdruck zu erstellen, der später beim Erstellen Ihrer Obfuscation-Regel verwendet werden kann.Sobald Sie Ihre Obfuscation-Regel erstellt haben, können Sie sie auf ausgewählte Logs anwenden, sodass die geänderten Daten in den Logs widergespiegelt werden können. Werfen wir einen Blick darauf, wie das funktioniert.

In der Beispielanwendung TechieVibez Finance lauten die Passwortkriterien bei der Registrierung eines Kontos wie folgt:

 

(?=(?:.*[A-Z]){1,}) (?=(?:.*[a-z]){1,})(?=(?:.*\d){1,}) (?=(?:.*[!@#$%^&*()\-_=+{};:,<.>]){1,}) ([A-Za-z0-9!@#$%^&*()\-_=+{};:,<.>]{6,})$

Da New Relic jedoch die ?=-Syntax nicht unterstützt, müssen wir jede Instanz dieser Zeichen entfernen, damit die New-Relic-Query-Language(NRQL)-freundliche Regex-Version wie folgt lautet:

((?:.*[A-Z]){1,}) ((?:.*[a-z]){1,})((?:.*\d){1,}) ((?:.*[!@#$%^&*()\-_=+{};:,<.>]){1,}) ([A-Za-z0-9!@#$%^&*()\-_=+{};:,<.>]{6,})$ 

Sie verfügen nun über die erforderlichen Informationen zum Erstellen eines Ausdrucks in New Relic.

  1. Wählen Sie die Schaltfläche Create expression.
  2. Geben Sie im Feld Expression name einen Namen für Ihren Ausdruck ein.
  3. Geben Sie das Regex-Muster für Ihren Use Case in das Feld Regex ein. 
    • Klicken Sie auf das Informationssymbol, um besser zu verstehen, wie das Feld Regex funktioniert.
  4. Wählen Sie die Schaltfläche Create expression, um den Vorgang abzuschließen.

Nachdem Sie Ihren Ausdruck erstellt haben, können Sie zum Tab Expressions navigieren, um den Ausdruck (und alle weiteren zukünftig von Ihnen erstellten Ausdrücke) zu sehen. Sie haben die Möglichkeit, die Ausdrücke mit den Optionen „Edit“ oder „Delete“ zu bearbeiten oder zu löschen. Sobald Sie den Ausdruck erstellt haben, können Sie mit dem letzten Schritt fortfahren: dem Erstellen der Obfuscation-Regel.

Erstellen Sie eine Obfuscation-Regel, um personenbezogene Daten zu schützen

Um eine Obfuscation-Regel in New Relic zu erstellen, müssen Sie zuvor einige wichtige Details bereithalten. Werfen wir noch einmal einen Blick auf den Logdatensatz, der aus der Interaktion mit TechieVibez Finance generiert wurde. 

{
  "username": "mmaka",
  "password": "mM@ck3s",
  "ssn": "123-45-6789",
  "serviceName": "login"
}

Das Feld serviceName wurde dem Datensatz hinzugefügt, um auf andere Details aus dem Log verweisen zu können. Sie verfügen nun über genügend Details, um die Obfuscation-Regel zu erstellen.

  1. Wählen Sie die Schaltfläche Create obfuscate rule.
  2. Geben Sie den Namen Ihrer Regel in das Feld Rule name ein.
  3. Geben Sie im Feld Matching criteria eine NRQL-Abfrage ein.
  4. Geben Sie im Feld Attributes die Attribute ein, auf die Sie die Obfuscation-Regel anwenden möchten.
  5. Wählen Sie einen Ausdruck aus der Dropdown-Liste Select expression aus oder erstellen Sie einen Ausdruck. Dieser Ausdruck teilt New Relic mit, nach welcher Regex in den Logs gesucht werden soll, sobald diese weitergeleitet werden.
  6. Wählen Sie entweder die Verschleierungsmethode Hash oder Mask aus der Dropdown-Liste Select obfuscation method aus, um Ihre Daten mit dem gewünschten Algorithmus umzuwandeln.
  7. Wählen Sie die Schaltfläche Create rule, um Ihre Obfuscation-Regel zu erstellen und zu aktivieren.

Sobald die Obfuscation-Regel erstellt wurde, wird sie auf alle eingehenden Logs angewendet, die die Kriterien der Regel erfüllen, und in New Relic widergespiegelt. 

Wenn Sie die für das Passwort Mask auswählen, wird dessen Wert in „X“-Zeichen umgewandelt.

Bei der Auswahl von Hash für das Passwort wird dessen Wert in das SHA-256-Format umgewandelt.

Fazit 

Mit New Relic können Sie nicht nur die Performance Ihrer Anwendungen überwachen und die Ursache von Problemen erkennen, sondern auch die in Ihre Logs gelangten personenbezogenen Daten schützen, um die Sicherheit der gesamten Anwendung zu verbessern. New Relic verschleiert automatisch alle erkannten SSNs und CCNs, aber ein Upgrade auf ein Data Plus Konto bietet Ihnen zusätzliche Verschlüsselungstechniken zum Maskieren oder Hashen Ihrer personenbezogenen Daten sowie das Hashing-Tool und mehr. Eine kostenlose Alternative wäre die Verschleierung von Logs mithilfe von Log-Forwardern wie Fluent Bit.

Nächste Schritte

Sie haben noch kein Konto, möchten aber die Logverschleierung von New Relic und andere verfügbare Sicherheitsfunktionen testen? Erstellen Sie noch heute ein kostenloses Konto!