Si necesita ofuscación adicional, una opción es ajustar la configuración del reenviador de registros que utiliza (por ejemplo, nuestro agente de infraestructura). Pero una opción mĆ”s sencilla es utilizar nuestra caracterĆstica de ofuscación de registros, disponible con Data Plus. Esta caracterĆstica le permite configurar la regla de ofuscación log directamente desde la UI de administración de registros, o mediante nuestra API NerdGraph, sin una configuración manual prolongada. DefinirĆ” expresiones regulares que coincidan con su información confidencial y luego crearĆ” reglas para ofuscar esos datos. Puede elegir entre tener información confidencial enmascarada o hash.
elimina completamente la información, reemplazĆ”ndola con X caracteres. No puede buscar valores especĆficos una vez hecho esto.
Hashing
oculta información. Puede utilizar la herramienta de hash para obtener el hash de un valor confidencial y luego buscar el registro que contenga ese hash.
Cómo funciona la ofuscación
Los objetos JSON que se muestran en el siguiente ejemplo son simplificaciones de la carga utilizada por nuestra API NerdGraph. Esto le ayudarĆ” a correlacionar mejor las diferentes operaciones de API con sus contrapartes equivalentes de UI.
Ejemplo: registro log antes de la ofuscación
Imagine que tiene el siguiente registro log :
{
"message":"The credit card number 4321-5678-9876-2345 belongs to user user@email.com (born on 01/02/2003) with SSN 123-12-1234",
"creditCardNumber":"4321-5678-9876-2345",
"ssn":"123-12-1234",
"department":"sales",
"serviceName":"loginService"
}
Este log contiene varios datos confidenciales. Idealmente, le gustarĆa que su log terminara luciendo asĆ:
{
"message":"The credit card number 9aa9bc1528859aee1b1df75795f1ebd54beb2f0d26c8a1d4580a71a07189cdd5 belongs to user user@email.com (born on XXXXXXXXXX) with SSN 30e6897f76dc102e32ee1d781c43417d259e586eac15c963d75ab8b5187769da",
MASK la fecha de nacimiento presente en el atributo message .
HASH el nĆŗmero de Seguro Social presente en el atributo message y ssn .
Lo primero que debes hacer es definir alguna expresión de ofuscación que te permita capturar esta información sensible.
Sugerencia
Los siguientes ejemplos muestran expresiones regulares que usarĆa directamente en la UI. MĆ”s adelante en este documento, analizamos cómo se pueden utilizar versiones de escape de estas expresiones regulares para NerdGraph.
Necesitamos capturar 3 grupos de 3, 2 y 4 dĆgitos separados por guiones:
{
"name":"Social Security Number",
"regex":"(d{3}-d{2}-d{4})"
}
Fecha de nacimiento (loginService especĆfica)
En este ejemplo, la fecha de nacimiento es parte del servicio de inicio de sesión. Definimos la parte a ofuscar según la información de fecha en las palabras circundantes "(born on 01/02/2003)":
{
"name":"Born date - loginService specific",
"regex":"born on (.*))"
}
Cada expresión de ofuscación define cómo capturar información confidencial de una cadena (usando una expresión regular) y la asocia con algún nombre descriptivo para que pueda identificarla fÔcilmente mÔs adelante.
La expresión de ofuscación puede ser reutilizable; son totalmente independientes de cómo se nombra el atributo log que contiene los datos confidenciales. Por ejemplo, la expresión del Seguro Social definida anteriormente podrĆa aplicarse a un atributo log denominado ssn, socialSecurityNumber o socSecNum.
No se admiten grupos de captura de expresiones regulares anidados
La principal responsabilidad de esta caracterĆstica es reemplazar datos sensibles con el hash o enmascarar de una manera fĆ”cil y eficaz. Si desea o necesita agrupar diferentes coincidencias dentro de un grupo de captura, recuerde utilizar la sintaxis de grupo sin captura (?:{EXPRESSION}) para evitar crear grupos de captura anidados. Por ejemplo, evite (([A-Z]{12})|([a-z]{6})) y en su lugar utilice ((?:[A-Z]{12})|((?:[a-z]{6})).
"filter":"serviceName = 'loginService' AND department = 'sales'",
"actions":[
{
"attributes":["message","creditCardNumber"],
"expression":{"name":"Credit Card Number"},
"method":"HASH_SHA256"
},
{
"attributes":["message"],
"expression":{"name":"Born date - loginService specific"},
"method":"MASK"
},
{
"attributes":["message","ssn"],
"expression":{"name":"Social Security Number"},
"method":"HASH_SHA256"
}
]
}
Esta regla contiene tres componentes principales:
Componente de regla de ofuscación
Descripción
Nombre
El nombre ayuda a identificar fÔcilmente lo que hace la regla. En este ejemplo, esta regla define cómo ofuscar los diferentes atributos del registro provenientes del Servicio de inicio de sesión.
Filtrar
El filtro utiliza el formato NRQL para indicarle a nuestro sistema cómo identificar el registro de destino proveniente del servicio de inicio de sesión. Este ejemplo consulta para el registro donde serviceName = loginService y department = sales.
Comportamiento
Finalmente, esta regla define el conjunto de acciones de ofuscación a aplicar al registro que coincide con el filtro. Cada acción define:
¿CuÔl expresión de ofuscación creada previamente se utilizarÔ para extraer la información sensible de cada conjunto de atributos?
Para ofuscar el registro de este servicio, solo tendrĆamos que definir otra regla de ofuscación dirigida a estos registros especĆficos, y simplemente reutilizarĆamos la Credit card number expresión de ofuscación creada previamente:
{
"name":"Obfuscate Checkout Service Logs",
"filter":"serviceName = 'checkoutService' AND department = 'sales'",
"actions":[
{
"attributes":["ccn"],
"expression":{"name":"Credit Card Number"},
"method":"HASH_SHA256"
}
]
}
Lista de verificación: pasos para ofuscar el registro
Para ofuscar su registro:
Estudie la forma de su registro identificando patrones de datos confidenciales que aparecen en ellos. Por ejemplo:
ĀæTodo su registro contiene información confidencial? ĀæO puede ser mĆ”s especĆfico (solo el registro del servicio A o la región B)?
La UI Logs obfuscation incluye un Hashing tool para que pueda encontrar un hash de un valor conocido y copiarlo para usarlo con otras expresiones y reglas.
LĆmites de CPU
La ofuscación tiene lĆmites de CPU por minuto. Si una cuenta alcanza estos lĆmites de recursos, el registro no se ocultarĆ” como se esperaba. Para verificar los lĆmites de su CPU, vaya a la pĆ”gina Limits de su sistema en la UI Data management.
"message":"<OBFUSCATION> The account is over its obfuscation per-minute limit, attribute dropped",
...
}
Esto es para evitar que la PII u otros datos confidenciales se ingieran sin darse cuenta.
AdemƔs, se registrarƔ el siguiente `NrIntegrationError' en la cuenta:
{
"category":"RateLimit",
"level":"error",
"limitName":"Log API obfuscation per account per minute",
"message":"Youāve exceeded our limit of per-account obfuscation time per-minute for the Log ingestion pipeline. Please reduce your usage or contact New Relic support.",
Ingrese un nombre para su nueva regla de ofuscación, asà como una expresión regular que coincida con los datos confidenciales que desea capturar. Utilice la sintaxis RE2.
Utilice la mutación logConfigurationsCreateObfuscationExpression en logConfigurations. Consulte el ejemplo completo en GraphiQL, asà como la documentación relacionada en api.newrelic.com/graphiql.
Importante
Debes escapar de las expresiones regulares cuando las uses en NerdGraph. Por ejemplo: ((?:(?:4\\d{3})|(?:5[1-5]\\d{2})|6(?:011|5[0-9]{2}))(?:-?|\\040?)(?:\\d{4}(?:-?|\\040?)){3}|(?:3[4,7]\\d{2})(?:-?|\\040?)\\d{6}(?:-?|\\040?)\\d{5})
Utilice cualquiera de estas opciones para consultar una expresión de ofuscación:
y, en el panel de navegación izquierdo, seleccione
Obfuscation
.
Seleccione la pestaƱa
Expressions
para ver todas las expresiones de ofuscación disponibles y sus definiciones.
Using NerdGraph:
Utilice el buscador obfuscationExpressions en actor.account.logConfigurations. Consulte el ejemplo completo en GraphiQL, asà como la documentación relacionada en api.newrelic.com/graphiql.
Utilice cualquiera de estas opciones para actualizar una expresión de ofuscación:
Haga clic en el icono de puntos suspensivos ... en el lado derecho de la expresión de ofuscación que desea editar y haga clic en Edit.
Modifique los campos segĆŗn sea necesario y haga clic en Update.
Using NerdGraph:
Utilice la mutación logConfigurationsUpdateObfuscationExpression en logConfigurations. Consulte el ejemplo completo en GraphiQL, asà como la documentación relacionada en api.newrelic.com/graphiql.
Importante
Debes escapar de las expresiones regulares cuando las uses en NerdGraph. Por ejemplo: ((?:(?:4\\d{3})|(?:5[1-5]\\d{2})|6(?:011|5[0-9]{2}))(?:-?|\\040?)(?:\\d{4}(?:-?|\\040?)){3}|(?:3[4,7]\\d{2})(?:-?|\\040?)\\d{6}(?:-?|\\040?)\\d{5})
No es necesario especificar todos los campos de una expresión de ofuscación al actualizarla, solo el id (obligatorio) y los campos que desea modificar.
Importante
No podrÔ eliminar una expresión de ofuscación si actualmente estÔ siendo utilizada por una regla de ofuscación.
Utilice cualquiera de estas opciones para eliminar una expresión de ofuscación:
Haga clic en el icono de puntos suspensivos ... en el lado derecho de la expresión de ofuscación que desea eliminar y haga clic en Delete.
Confirme que desea eliminar la expresión haciendo clic en Delete.
Using NerdGraph:
Utilice la mutación logConfigurationsDeleteObfuscationExpression en logConfigurations. Consulte el ejemplo completo en GraphiQL, asà como la documentación relacionada en api.newrelic.com/graphiql.
La mutación devolverÔ una instantÔnea de la expresión antes de ser eliminada.
Expresiones de muestra
A continuación, proporcionamos algunos ejemplos de expresiones regulares para ofuscar algunos de los tipos de datos confidenciales mÔs comunes. La expresión de ofuscación debe crearse para cada cuenta New Relic donde se utilizarÔn esas expresiones.
Sugerencia
Los siguientes ejemplos son expresiones regulares que podrĆa utilizar en la UI. Para usarlos en GraphQL, deberĆ” escaparlos como se muestra en este ejemplo.
Ingrese un nombre para su nueva regla de ofuscación, asà como un criterio coincidente (en formato NRQL ) para capturar el conjunto objetivo de registros que desea ofuscar.
Agregue un nuevo actions (el primero se agrega automÔticamente) para especificar la expresión de ofuscación (regex) para capturar cada conjunto de atributos, asà como si se deben MASK o HASH .
Se pueden especificar varios atributos separados por comas.
MASK reemplazarƔ todos los caracteres coincidentes con Xes. Si usa MASK, no podrƔ consultar un valor ofuscado en particular mƔs adelante.
HASH reemplazarĆ” los datos confidenciales con el valor hash SHA-256. Si utiliza HASH, podrĆ” consultarlos utilizando nuestra herramienta hash, siempre que conozca su valor de texto sin cifrar.
Tu regla deberĆa verse asĆ:
Haga clic en Create rule para crear y activar su regla de ofuscación.
Using NerdGraph:
Utilice la mutación logConfigurationsCreateObfuscationRule en logConfigurations. Consulte el ejemplo completo en GraphiQL, asà como la documentación relacionada en api.newrelic.com/graphiql.
Importante
Debe especificar la ofuscación expressionId para vincularla a una acción de ofuscación determinada. Para recuperar esta identificación, puede consultar el obfuscationRules.
Utilice cualquiera de estas opciones para consultar una regla de ofuscación:
Seleccione la pestaña Rules (predeterminada) para ver todas las reglas de ofuscación disponibles y sus definiciones.
Using NerdGraph:
Utilice el buscador obfuscationRules en actor.account.logConfigurations. Consulte el ejemplo completo en GraphiQL, asà como la documentación relacionada en api.newrelic.com/graphiql
Utilice cualquiera de estas opciones para actualizar una regla de ofuscación:
Haga clic en el icono de puntos suspensivos ... en el lado derecho de la regla de ofuscación que desea editar y haga clic en Edit.
Modifique los campos segĆŗn sea necesario y haga clic en Update rule.
Using NerdGraph:
Utilice la mutación logConfigurationsUpdateObfuscationRule en logConfigurations. Consulte el ejemplo completo en GraphiQL, asà como la documentación relacionada en api.newrelic.com/graphiql.
Importante
Debe especificar la ofuscación expressionId para vincularla a una acción de ofuscación determinada. Para recuperar esta identificación, puede usar obfuscationRules, como se describe en [consulta el obfuscationRules]](#rules-read).
No es necesario especificar todos los campos de una regla de ofuscación al actualizarla, solo el id (obligatorio) y los campos que deseas modificar. A continuación se muestra un ejemplo para actualizar solo el nombre.
Utilice cualquiera de estas opciones para eliminar una regla de ofuscación:
Haga clic en el icono de puntos suspensivos ... en el lado derecho de la regla de ofuscación que desea eliminar y haga clic en Delete.
Confirme que desea eliminar la expresión haciendo clic en Delete.
Using NerdGraph:
Utilice la mutación logConfigurationsDeleteObfuscationRule en logConfigurations. Consulte el ejemplo completo en GraphiQL, asà como la documentación relacionada en api.newrelic.com/graphiql.
La mutación devolverÔ una instantÔnea de la regla antes de ser eliminada.