¿Cómo aseguro mi inicio de SaaS?

10

Encontré esta pregunta

Me gusta ofrecer mi inicio 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 Yahoo! Tiendas.

Programación: hecha mayormente por mí. A veces contrato a profesionales independientes para que me ayuden con cosas que no conozco.

Yo uso el framework CakePHP para mi aplicación web.

Alojamiento: mediante 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 es todavía una pregunta de alto nivel. Permítanme dividir esto en varias subáreas.

Programación, colaboración con freelancers

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 profesionales independientes trabajan para mí, siempre les pido que realicen su trabajo en una rama separada y me fusionaré en la rama principal.

No estoy seguro si hay algún vacío de seguridad allí. Por favor, hágamelo saber.

Programación, el código en sí mismo

Bueno, ustedes no pueden ver el código, pero estoy usando el framework 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 lo que debo hacer al respecto.

No estoy seguro si hay algún vacío de seguridad allí. Por favor, hágamelo saber.

Despliegue

Uso capistrano para hacer el despliegue por mí. Básicamente, pienso el capistrano ssh'd en el servidor y desde allí le da una instrucción para hacer una búsqueda de git desde el repositorio remoto.

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

No estoy seguro si hay algún vacío de seguridad allí. Por favor, hágamelo saber.

Aplicación web para usuarios

Acaba de comprar e instalar certificados SSL. 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 creo que lo necesite.

No estoy seguro si hay algún vacío de seguridad allí. Por favor, hágamelo saber.

Administrador de sistemas, colaboración, alojamiento:

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

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

Servicios web de Amazon, administración de sistemas, colaboración:

Contraté a un administrador independiente de administración de sistemas para que me ayude 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 mis Servicios web de Amazon, ¿cómo lo hago sin poner en riesgo mi SaaS?

Vi esto para Servicios web de Amazon

No estoy seguro de cómo usarlo.

¿Alguien me puede dar un buen protocolo para permitir que los freelancers contratados resuelvan los problemas de administración de mi sistema de manera segura?

Otras áreas en las que NO he pensado

Por favor, hágamelo saber.

    
pregunta Kim Stacks 27.02.2011 - 15:07
fuente

4 respuestas

8

Está bien, esta respuesta no es exhaustiva, ya que esta es una pregunta grande, pero justo en la parte superior de mi cabeza hay algunos pensamientos:

GIT:
Es bueno que hagas las combinaciones por tu cuenta, ¿eso significa que vas a manejar todas las diferencias? Si no va a hacerlo, la confianza del programador podría ser un POF, pero si va a depender de la cantidad de fusiones que pasen mucho tiempo haciendo todo lo posible.

Programación / Framework:
Es posible que desee tener cuidado al deshabilitar CSRF, siempre que haga eso y tenga flash, puede haber algunas proezas 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 acceda a un recurso. Puede encontrar más información sobre temas CSRF comunes aquí: Preguntas frecuentes sobre CSRF . Además, tenga cuidado con esta vulnerabilidad . No tengo mucha familiaridad con CakePHP, pero lo mejor es asegurarse de limpiar, agregar listas blancas si es posible, usar ACL, etc. Here es una forma muy básica de agregar un poco de seguridad adicional a su instancia de CakePHP.

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

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

Resumen:
Con todo, realmente recomendaría contratar a un profesional de seguridad de aplicaciones web que sea creíble en el campo y tenga experiencia para echar un vistazo a su aplicación. Dado que tratará con datos financieros, que es uno de los tipos más sensibles, es muy importante tener una visión exhaustiva y sólida de su software. Sé que es difícil cuando recién empiezas, pero si no te tomas el tiempo de proteger tu aplicación por completo, un exploit podría acabar con todo tu negocio.

Espero que ayude :)

    
respondido por el mrnap 28.02.2011 - 05:05
fuente
7

1) Lo primero y más importante es dominar OWASP Top 10 . / p>

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

3) Bloqueo de PHP con PHPSecInfo .

5) Cierre su base de datos .

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

7) Usa Linux, especialmente Ubuntu, porque AppArmor rompe las vulnerabilidades.

8) Por último, pero no menos importante, pruebe su aplicación web de código para detectar vulnerabilidades. Esto no tiene que costar mucho dinero, Sitewatch tiene un servicio gratuito de análisis de vulnerabilidades.

    
respondido por el rook 06.03.2011 - 08:14
fuente
5

Además de los comentarios de @Rook, si estuviera ejecutando un servidor en Internet, recomendaría encarecidamente el uso de OSSEC. Gran análisis de registro gratuito / software HIDS. Lo ejecuto en todo mi kit público.

    
respondido por el xntrik 06.04.2011 - 04:17
fuente
0

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

Esosignificaqueespecialmentelaaplicaciónylosdatosentránsitodebenserprotegidosporusted,porejemplo.implementandolasyamencionadas directrices de OWASP .

    
respondido por el superuser0 29.12.2016 - 10:52
fuente

Lea otras preguntas en las etiquetas