Principios de Diseño de Seguridad Flashcards

1
Q

¿Cuáles son los principios de diseño de seguridad?

A
  1. Least Privilege: Tener el menor privilegio requerido para hacer las acciones.
  2. Fail-safe defaults: Por defecto, no tener acceso a los recursos.
  3. Complete Mediations: El sistema debe validar los permisos de acceso a todos los recursos.
  4. Keep it Simple
  5. HTTPs
  6. Password Hashes
  7. Never expose information on URLs: usernames, passwords, session tokens y API keys no deberían aparecer en la URL, para evitar ser logueadas en los logs de web server logs.
  8. Considerar agregar Timestamp en los requests.
  9. Validación de los parámetros de entrada.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Qué sería Monitorear transacciones sospechosas?

A
  • Ver la cantidad de requests por IP o por token/JWT/user para evitar problemas de denegación de servicio, o controlar/reducir el uso excesivo.
  • Limitar la velocidad o tiempos de demora agregados entre request y request para ayudar a reducir las solicitudes excesivas que ralentizan una API; para también identificar una posible actividad maliciosa.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Cuál es la diferencia entre Autenticación y Autorización?

A

Autenticación: Quién sos
Autorización: Qué podés hacer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Qué métodos de Autenticación y Autorización tenemos?

A

Se tienen:

  • Basic Auth
  • API Keys
  • Bearer Authentication
  • OAuth
  • JWT
  1. Basic Auth son credenciales en texto plano (encodeando en base64). Puede usarse con HTTPs/SSL
  2. Api keys son keys secretas para comunicación entre sistemas, sólo el cliente y el servidor la conocen [HTTPs/SSL].
  3. Bearer Authentication es un token de seguridad que habilita a hacer algo/acceder a algo. Se envía por header.
  4. OAuth es un protocolo de autenticación que delega la autenticación del usuario a un servicio que gestiona las cuentas. Usa access tokens para gestionar accesos, ID Token para firmar y verificar, y Refresh Token para reutilizar credenciales.
  5. JWT es la forma de firmar un token, que puede o no contener información, para no enviar las credenciales de forma repetida en cada petición. Ayuda a mantener a la aplicación stateless.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Qué es el refresh?

A

Los access token deberían tener un tiempo limitado de vida, por lo que aparecen los refresh tokens. Estos son tokens de un sólo uso, usados para obtener un nuevo access token, sin necesidad de usar credenciales de usuario/contraseña.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Cómo maneja Rest el versionado?

A

Rest no provee un mecanismo definido para versionado, pero se suelen usar 3 distintas estrategias.

  1. Usando la URL
  2. Usando un Custom Header
  3. Usando el Header Accept
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿qué es HATEOAS?

A

HATEOAS: Hypermedia as the engine of application state.

Una api REST debe permitir que un cliente interactúe con la misma sin conocimiento previo de ella, mediante hypermedia (links a qué se puede hacer con un recurso).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly