He estado desarrollando una pequeña aplicación CRUDish Ruby on Rails en mi tiempo libre para una organización sin fines de lucro. La aplicación ya se está ejecutando a pequeña escala en Heroku.
Últimamente he estado pensando en abrir la fuente de la aplicación. Hay muchas ventajas para esto, por ejemplo. Ya conozco un par de posibles contribuyentes, e incluso mi empleador ha mostrado interés en apoyar el proyecto de varias maneras si fuera de código abierto.
Normalmente, no dudaría en absoluto en este tipo de posibilidad, pero el problema aquí es que la aplicación almacena al menos información algo sensible sobre las personas que la usan. Me temo que, dado que el proyecto es pequeño y, después de todo, siempre tendrá una cantidad limitada de tiempo y recursos para el desarrollador, la fuente abierta atraerá a más piratas informáticos maliciosos que a los colaboradores reales. No quiero hacerle daño a nadie, y especialmente a los usuarios específicos de la aplicación, por lo que incluso el ligero aumento en la propensión a una fuga de datos me preocupa.
Cuando pienso con sensatez, entiendo que
- Como la aplicación es muy pequeña, existe una posibilidad muy limitada de que alguien intente atacarla
- RoR me brinda un entorno bastante bueno y probado en la vida real para construir sobre
- La seguridad a través de la oscuridad se considera en su mayoría como algo sin sentido
- Los profesionales de IMHO del abastecimiento abierto superponen las desventajas
No quiero que esto se convierta en otra discusión sobre Open Source vs Closed Sistemas fuente . Sin embargo, para aliviar mi mente, me gustaría saber qué puedo hacer de forma realista para minimizar la posibilidad de un ataque . Hasta ahora, al menos estas cosas se han preguntado en mi mente:
- Use la última versión de Rails y aplique todos los arreglos de seguridad lo más rápido posible
- Compre un certificado SSL y haga cumplir las conexiones HTTPS para que todos los datos que ingresen los usuarios se transfieran cifrados
- Cifre los datos en la base de datos con una clave almacenada en las configuraciones de Heroku. Sin embargo, no estoy seguro de esto, porque después de todo, tengo que confiar en Heroku y, por lo que tengo entendido, esto solo ayudaría en los casos en que la base de datos real se vea comprometida. ¿O me equivoco aquí?
- Pida a una empresa de seguridad que realice una auditoría de la aplicación de forma gratuita (ya que no hay $$ involucrado)
¿Qué más podría / debería hacer?