Desarrollo de sitios web: seguridad

Asegurar sus páginas web es tan importante como desarrollarlas, porque cualquier amenaza que pueda comprometer la seguridad puede dañar la reputación de su negocio, dañarlo financieramente (al robar sus depósitos en línea), dañar a sus clientes que visitan su sitio web, etc.

Según los expertos en seguridad, sugerirán realizar la verificación de seguridad del sitio web en función de la OWASP TOP 10, que es un poderoso documento de concientización sobre la seguridad de las aplicaciones web. El OWASP Top 10 representa un amplio consenso sobre cuáles son las fallas de seguridad de aplicaciones web más críticas.

Inyecciones SQL

Los defectos de inyección, como la inyección de SQL, SO y LDAP, se producen cuando se envían datos que no son de confianza a un intérprete como parte de un comando o una consulta. Los datos hostiles del atacante pueden engañar al intérprete para que ejecute comandos no deseados o acceda a los datos sin la debida autorización.

Solution - Para proteger su página web de iSQL, debe validar las entradas y los símbolos de filtrado.

Autenticación rota y gestión de sesiones

Las funciones de la aplicación relacionadas con la autenticación y la gestión de sesiones a menudo no se implementan correctamente, lo que permite a los atacantes comprometer contraseñas, claves, tokens de sesión o incluso explotar otras fallas de implementación para asumir las identidades de otros usuarios.

Solution - Para proteger su sitio de esta falla, debe crear cookies y sesiones con tiempo de vencimiento.

Secuencias de comandos entre sitios (XSS)

Los defectos de XSS ocurren cuando una aplicación toma datos que no son de confianza y los envía a un navegador web sin la validación o el escape adecuados. XSS permite a los atacantes ejecutar scripts en el navegador de la víctima, que luego pueden secuestrar sesiones de usuarios, desfigurar sitios web o redirigir al usuario a sitios maliciosos.

Solution - La protección contra esto está en las mismas líneas que para iSQL.

Referencia de objeto directo inseguro

Una referencia directa a un objeto ocurre cuando un desarrollador expone una referencia a un objeto de implementación interno, como un archivo, directorio o una clave de base de datos. Sin una verificación de control de acceso u otra protección, los atacantes pueden manipular estas referencias para acceder a datos no autorizados.

Solution - Debe implementar mecanismos de protección específicos como contraseñas para salvaguardar dichos archivos.

Mala configuración de seguridad

Una buena seguridad requiere tener una configuración segura definida e implementada para la aplicación, los marcos, el servidor de aplicaciones, el servidor web, el servidor de base de datos y la plataforma. Se deben definir, implementar y mantener configuraciones seguras, ya que las configuraciones predeterminadas a menudo son inseguras.

Solution - El software debe mantenerse actualizado.

Exposición de datos sensibles

Muchas aplicaciones web no protegen adecuadamente los datos confidenciales, como tarjetas de crédito, identificaciones fiscales y credenciales de autenticación. Los atacantes pueden robar o modificar esos datos débilmente protegidos para cometer fraude con tarjetas de crédito, robo de identidad u otros delitos.

Solution - Los datos sensibles merecen protección adicional, como el cifrado en reposo o en tránsito, así como precauciones especiales cuando se intercambian con el navegador.

Falta el control de acceso de nivel de función

La mayoría de las aplicaciones web verifican los derechos de acceso a nivel de función antes de hacer visible esa funcionalidad en la interfaz de usuario. Sin embargo, las aplicaciones deben realizar las mismas comprobaciones de control de acceso en el servidor cuando se accede a cada función. Si las solicitudes no se verifican, los atacantes podrán falsificar solicitudes para acceder a la funcionalidad sin la debida autorización.

Solution - Debe comprobar los niveles de autenticación.

Falsificación de solicitud entre sitios (CSRF)

Un ataque CSRF obliga al navegador de la víctima que ha iniciado sesión a enviar una solicitud HTTP falsificada, incluida la cookie de sesión de la víctima y cualquier otra información de autenticación incluida automáticamente, a una aplicación web vulnerable. Esto permite al atacante obligar al navegador de la víctima a generar solicitudes que la aplicación vulnerable cree que son solicitudes legítimas de la víctima.

Solution - La prevención más utilizada es adjuntar algunos tokens basados ​​en desafíos impredecibles a cada solicitud que proviene de un sitio web y asociarlos con la sesión del usuario.

Uso de componentes con vulnerabilidades conocidas

Los componentes, como bibliotecas, marcos y otros módulos de software, casi siempre se ejecutan con todos los privilegios. Si se explota un componente vulnerable, dicho ataque puede facilitar la pérdida de datos o la toma de control del servidor. Las aplicaciones que utilizan componentes con vulnerabilidades conocidas pueden socavar las defensas de las aplicaciones y permitir una variedad de posibles ataques e impactos.

Solution - Verifique si esa versión del componente tiene vulnerabilidades e intente evitar o cambiar con otra versión.

Redirecciones y reenvíos invalidados

Las aplicaciones web suelen redirigir y reenviar a los usuarios a otras páginas y sitios web. Estas aplicaciones utilizan datos que no son de confianza para determinar las páginas de destino. Sin la validación adecuada, los atacantes pueden redirigir a las víctimas a sitios de phishing o malware o utilizar reenvíos para acceder a páginas no autorizadas.

Solution - Validar siempre una URL.

Protocolos usados ​​seguros

Este es el caso en el que tienes un plan VPS y lo gestionas todo por tu cuenta. Cuando se instalan los servicios, utilizan puertos predeterminados. Esto hace que el trabajo sea más fácil para un hacker porque sabe dónde buscar.

Algunos de los principales puertos de servicio que se utilizan en el alojamiento de sitios web se indican a continuación:

  • SSH - puerto 22
  • FTP - puerto 21
  • MySQL - puerto 3306
  • DNS - puerto 53
  • SMTP - puerto 25

El cambio de puerto de esos servicios varía según el sistema operativo y sus diferentes versiones. Además de esto, debe instalar un firewall. Si es un sistema operativo Linux, le recomendaremosIPtablesy bloquear todos los demás puertos innecesarios. En caso de que su sistema operativo sea Windows, puede utilizar su firewall incorporado.

Para bloquear los inicios de sesión por fuerza bruta en sus servicios, puede usar Fail2ban, que es un software basado en Linux y bloquea todas las direcciones IP, lo que provoca muchos intentos fallidos de inicio de sesión.