Nos gustaría compartir algunas buenas practicas que consideramos importante al momento de implementar un sitio web o portal.

  1. Al pensar en una implementación de un sitio web o portal de alto valor, es recomendable disgregar en varias capas todos los elementos tecnologicos, base de datos, webservers, servidores de aplicaciones.
  2. Si es posible y entra en el presupuesto del proyecto, se debe pensar en redundancia y alta disponibilidad, asi como disponer de entornos de desarrollo, certficación.
  3. Si se disponen de elementos publicos y privados, se recomienda altamente que estos esten totalmente separados.
  4. Al momento de comenzar una implementación de software en el 98% de los casos los técnicos tienden a eliminar protecciones a nivel de kernel como por ejemplo de SELinux, en lo posible no eliminarlo (En algunos casos el fabricante te manda a eliminar este tipo de protecciones)
  5. Como en todo servidor es importante deshabilitar todos los servicios que no se usan, para que quiero CUPS en un equipo que no lo va a usar o tener share NFS si tampoco va a ser utilizado, es simple, lo que no se usa se apaga.
  6. Si en un servidor que se va a ejecutar una aplicación en PHP, que necesidad se tiene que pueda ejecutar scripts en perl o ruby dentro del webserver, por lo tanto aplicamos lo mismo que lo anterior, no permitir que interpretes innecesarios se ejecuten, no se usa, se quita.
  7. Una buena configuración de cada uno de los componentes de la solución, nos puede ahorrar dolores de cabezas futuros, un buen esquema de particionamiento, tuning adecuado del manejador de base de datos, nuestros webservers, etc…
  8. Si se va a implementar una solucion de un tercero, es muy importante tener por parte del fabricante las mejores practicas de la implementación, asi como los elementos minimos de configuración para un entorno de producción, siempre es muy facil hacer un chmod -R 777 * y que mi solución funcione “bien”.
  9. En puntos anteriores comentábamos acerca que posiblemente se ejecutara una aplicación PHP, imaginemos que usamos algún CMS como Joomla o Drupal, por lo que es muy importante como consultor informarle a los administradores del sitio que es fundamental hacer un seguimiento de las listas de correos o notificaciones acerca de la seguridad.
  10. Las políticas de passwords a nivel de Sistema Operativo, Base de Datos y el aplicativo deben ser fuertes y se recomiendan que estas sean diferentes.
  11. Uno puede tener unas políticas fuertes de passwords, pero si no protegemos nuestras contraseñas de ataques de fuerzas bruta eventualmente algún día van a caer, es recomendable usar elementos como fail2ban que permitan proteger los diferentes servicios que componen tu solución tecnológica.
  12. En muchos casos las organizaciones implementan soluciones informaticas, pero olvidan o no disponen de elementos que permitan monitorear en tiempo real, todos los componentes involucrados dentro de una solucion web (Balanceador de Carga, Webservers, DB, Application Server), algunas soluciones libres: Nagios, Zenoss, Zabix.
  13. Uno de los momentos mas felices es cuando el proyecto llega a etapas avanzadas y el cliente comienza a ver su portal y pregunta cuando va a ser la publicación final, en muchos casos la organización que implementa esta desesperada por finalizar y cobrar, pero en un alto numero de proyectos se comete el error de nunca definir politicas de respaldos y mucho menos definir planes de contigencia adecuados en caso de una catastrofe, por lo que siempre define esto desde un principio, evaluando los costos y recursos necesarios.
  14. Como ultimo, siempre es recomendable hacer un test de seguridad completo despues de realizar la implementación, utilizar herramientas de penetration testing, existen distribuciones dedicadas a esto ejemplo: backtrack.


Hasta una proxima oportunidad de compartir con ustedes mis lectores virtuales.

Fuente: http://www.eidast.me/2010/07/12/mejo...tivos-seguros/