it-swarm-es.com

¿Cómo aseguro mi inicio SaaS?

Me encontré con esta pregunta

Me gusta ofrecer mi startup también para consejos de seguridad.

Objetivo: crear una aplicación web SaaS que permita a las empresas abrir rápidamente tiendas en línea similares a las de Yahoo! Stores.

Programación: Realizada principalmente por mí. A veces contrato a autónomos para que me ayuden con cosas que no sé.

Utilizo el framework CakePHP para mi aplicación web.

Hospedaje: uso de Amazon EC2 y otros servicios web de Amazon como Elastic Load Balancing.

Administración de sistemas: estoy ejecutando el servidor Ubuntu 10.04

Sé que esta sigue siendo una pregunta de alto nivel. Permítanme dividir esto en varias subáreas.

Programación, colaboración con autónomos

Estoy usando git y un repositorio de git remoto en ProjectLocker. No soy un experto en git. Todo lo que sé es git add, git commit -a, git Push, git merge, git checkout, git pull.

Cuando los autónomos trabajan para mí, siempre les digo que envíen su trabajo en una rama separada y yo mismo me fusionaré en la rama principal.

No estoy seguro de si hay alguna laguna de seguridad allí. Por favor hagamelo saber.

Programación, el código en sí

Bueno, ustedes no pueden ver el código, pero estoy usando el marco CakePHP.

Creo que hice todo correctamente, excepto que tuve que deshabilitar la protección CSRF a veces para permitir que funcionen ciertos complementos flash.

No estoy muy seguro de qué debo hacer al respecto.

No estoy seguro de si hay alguna laguna de seguridad allí. Por favor hagamelo saber.

Implementación

Yo uso capistrano para hacer el despliegue por mí. Básicamente yo ¡piensa el capistrano ingresa al servidor y desde allí le da una instrucción para hacer un git fetch desde el repositorio remoto.

Básicamente, copié y pegué el script de implementación de capistrano desde algún lugar y lo modifiqué.

No estoy seguro de si hay alguna laguna de seguridad allí. Por favor hagamelo saber.

Aplicación web para usuarios

Certificados SSL recién comprados e instalados. Tuve que usar un certificado comodín para los subdominios individuales de mis usuarios y un certificado SSL estándar para la página de registro.

No compré un certificado SSL de validación extendida. No pensé que lo necesitaba.

No estoy seguro de si hay alguna laguna de seguridad allí. Por favor hagamelo saber.

Administración de sistemas, colaboración, hosting:

No tengo un protocolo sobre cómo actualizar mi servidor con actualizaciones de seguridad ya que todavía no estoy EN VIVO.

Agradecería algo simple que un principiante de Ubuntu pueda usar.

Amazon Web Services, administración de sistemas, colaboración:

Contraté a un profesional independiente administrador de sistemas para que me ayudara a instalar certificados SSL porque a) no estoy familiarizado con Linux, b) no estoy familiarizado con los servicios web de Amazon

Si en el futuro, contraté a alguien para que me ayude a solucionar problemas de Ubuntu o de mis servicios web de Amazon, ¿cómo puedo hacerlo sin poner en riesgo mi SaaS?

Vi esto para Amazon Web Services

No estoy seguro de cómo usarlo.

¿Alguien puede darme un buen protocolo para permitir que los autónomos contratados resuelvan mis problemas de administración de sistemas de manera segura?

Otras áreas en las que NO he pensado

Por favor hagamelo saber.

10
Kim Stacks

Muy bien, esta respuesta no es de ninguna manera exhaustiva, ya que es una gran pregunta, pero en la parte superior de mi cabeza aquí hay algunas ideas:

GIT:
Es bueno que estés haciendo las fusiones tú mismo, ¿eso significa que vas a manejar todas las diferencias? Si no va a hacerlo, la confianza del codificador podría ser un POF, pero si va a depender de la cantidad de fusiones, espere pasar mucho tiempo haciendo todas las diferencias usted mismo.

Programación/Marco:
Es posible que desee tener cuidado al deshabilitar CSRF, siempre que lo haga y tenga flash, puede haber algunos exploits desagradables. La mejor opción para evitarlos es asegurarse de tener un manejo de sesión realmente sólido y verificar, verificar, verificar cada vez que un usuario accede a un recurso. Puede encontrar más información sobre cosas comunes de CSRF aquí: Preguntas frecuentes sobre CSRF . Además, tenga cuidado con esta vulnerabilidad . No tengo mucha familiaridad con CakePHP, pero lo mejor es asegurarse de desinfectar, incluir en la lista blanca si es posible, usar ACL, etc. Aquí es una forma muy básica de agregar un poco más seguridad a su instancia de CakePHP.

Seguridad del servidor:
No tengo mucha experiencia con Capistrano, pero por lo que he escuchado es una herramienta bastante sólida, siempre y cuando hayas agarrado un tenedor confiable. Sería más consciente de las vulnerabilidades en el manejo de SSH en sí, ya que me parece que es donde es más probable que se explote capistrano. En cuanto a la seguridad del servidor web, creo que Amazon es una de las mejores opciones que existen.

SSL:
Sería muy cauteloso con un certificado comodín. Si uno de sus subdominios está comprometido, también lo estará toda su red. Todo lo que se necesita es una autoridad de certificación que tenga una vulnerabilidad y todos sus clientes y sus datos se verán comprometidos. Dado que está haciendo comercio electrónico, es realmente importante tener los niveles más altos de seguridad para los datos de los clientes.

Resumen:
En general, realmente recomendaría contratar a un profesional de seguridad de aplicaciones web que sea creíble en el campo y tenga experiencia para revisar su aplicación. Dado que tratará con datos financieros, que es uno de los tipos más confidenciales, es muy importante una mirada exhaustiva y sólida a su software. Sé que es difícil cuando recién está comenzando, pero si no se toma el tiempo para proteger su aplicación completamente, una vulnerabilidad podría derribar todo su negocio.

Espero que ayude :)

8
mrnap

1) En primer lugar, domine el OWASP Top 1.

2) Instale un Firewall de aplicaciones web. Son requeridos por la industria de tarjetas de pago por una razón (PCI-DSS).

3) Bloqueo PHP con PHPSecInfo.

5) Bloquear su base de datos.

6) Utilice análisis de código estático como RIPS-PHP para rastrear vulnerabilidades graves en su código.

7) Utilice Linux, especialmente Ubuntu, porque AppArmor rompe los exploits.

8) Por último, pero no menos importante, pruebe su aplicación web de código en busca de vulnerabilidades. Esto no tiene por qué costar mucho dinero, Sitewatch tiene un servicio gratuito de escaneo de vulnerabilidades.

7
rook

Además de los comentarios de @ Rook, si estuviera ejecutando un servidor en Internet, recomendaría encarecidamente usar OSSEC. Excelente software gratuito de análisis de registros/HIDS. Lo ejecuto en todo mi equipo de cara al público.

5
xntrik

Para agregar al aspecto de alojamiento : AWS facilita un modelo de responsabilidad compartida que ilustra qué partes cubren y cuáles el cliente debe tomar cuidado de:

enter image description here

Eso significa que especialmente la aplicación y los datos en tránsito deben estar protegidos por usted, p. Ej. implementando lo ya mencionado directrices OWASP .

0
superuser0