Primeros pasos en la protección de secretos
Objetivos de aprendizaje
Después de completar esta unidad, podrá:
- Explicar cuáles son los secretos de la aplicación
- Explicar frente a quiénes debe guardar los secretos de la aplicación.
- Enumerar tres riesgos de exponer secretos de aplicaciones a administradores de Salesforce
¿Qué son los secretos?
Casi todas las aplicaciones manejan datos confidenciales de un tipo u otro, ya sea la contraseña que un usuario ingresa para autenticarse en la aplicación o una clave de cifrado que protege los datos en reposo. A estos se los conoce como secretos de la aplicación. Si los atacantes o usuarios maliciosos obtienen el secreto, pueden usarlo para acceder a sistemas o datos confidenciales.
Es importante que los desarrolladores tengan en cuenta el modo en que se protegen los secretos en cualquier plataforma, incluida la de Salesforce. En este módulo, aprenderá a identificar secretos en sus aplicaciones y a determinar el método más efectivo para almacenar y proteger dichos secretos.
Estos son algunos ejemplos comunes de secretos: datos que se puedan utilizar para verificar los privilegios de un usuario en una determinada situación.
- Contraseñas y frases de contraseña
- Cifrado y claves de API
- Tokens OAuth
Además de estos ejemplos, su negocio puede considerar otros formatos de datos como secretos y someterlos a métodos de protección adicionales. Por ejemplo, puede haber un requisito regulatorio para cifrar algunos tipos de datos de usuario.
¿Frente a quién protege los secretos?
Ahora que sabe lo que se debe proteger, considere frente a quién debe proteger esta información. Quizá esté imaginando a un atacante. Deseará proteger los datos confidenciales frente a atacantes externos que intentan infiltrarse en su instancia de Salesforce. Sin embargo, también debe considerar los riesgos de exponer secretos a otros usuarios, incluidos los administradores de Salesforce, los desarrolladores de AppExchange y los clientes.
Considere los siguientes escenarios.
- Un usuario descarga malware de forma accidental, y su sesión de Salesforce queda expuesta.
- Un empleado disgustado fue despedido hace poco, pero aún tiene acceso a los sistemas de la compañía.
- Un usuario CRM de Communities descubre que tiene acceso de API privilegiado.
En cada escenario, un secreto protegido de forma inadecuada podría volverse visible para alguien que no debería tener acceso a él. Por estos motivos, se recomienda proteger los secretos frente a distintos tipos de usuarios, incluidos los siguientes:
-
Usuarios estándar: usuarios con licencias normales de Salesforce y permisos promedio
-
Usuarios externos: usuarios con permisos reducidos, que posiblemente utilizan una licencia de Communities o ven datos a través de un sitio de Force.com
-
Usuarios administradores con acceso administrativo: usuarios con licencias normales de Salesforce, pero con permisos por encima de la media, hasta Modificar todos los datos
Recuerde que no todos los secretos tienen que protegerse ante cualquier tipo de usuario. El objetivo de este módulo es darle las herramientas para proteger los secretos de aplicaciones de modo que incluso los datos más confidenciales puedan almacenarse con seguridad en Salesforce.
¿Por qué proteger los secretos ante los administradores?
Los administradores tienen puestos de mayor confianza que otros usuarios, ya que tienen un nivel más alto de acceso al sistema. Respete el principio de menor privilegio: Otorgue solo el mínimo de privilegios necesarios para que un usuario, un programa o un proceso puedan realizar su función asignada. Otorgar acceso de administrador para elementos adicionales como claves de cifrado puede parecer inofensivo, pero debe tenerse en cuenta lo siguiente:
- Si un secreto almacenado es la contraseña de un servicio externo, el administrador de Salesforce podría no estar autorizado a acceder al servicio directamente. Por lo tanto, para proteger dicho servicio, deberá asegurarse de que no pueda acceder a la contraseña.
- El secreto almacenado puede ser una clave de cifrado a la que ningún usuario, incluyendo el administrador, pueda acceder. En este caso, también habrá que procurar que un administrador no tenga acceso a esta.
- Si un administrador cuenta con acceso al secreto, un atacante podría comprometer la cuenta del administrador para intentar obtenerlo.
El mero hecho de que alguien pueda acceder a un elemento no significa que debería.
Ahora que sabe cuán importante es proteger los secretos, puede determinar el método más efectivo para almacenarlos y protegerlos a medida que desarrolla la aplicación. A continuación, veremos cómo utilizar las funciones de seguridad de Salesforce Platform.