Un cortafuegos de aplicaciones es un tipo de cortafuegos que dirige el tráfico hacia, desde o a través de una aplicación o servicio.
Los cortafuegos de aplicaciones o cortafuegos de la capa de aplicaciones aplican una serie de políticas diseñadas para decidir si se deben bloquear o permitir las comunicaciones hacia o desde una aplicación.
Los cortafuegos tradicionales controlan el flujo de datos hacia y desde la CPU, examinando cada paquete a su paso. Un cortafuegos de aplicaciones va más allá y controla la ejecución de archivos o código por parte de aplicaciones concretas. De este modo, aunque un intruso acceda a una red o un servidor, no puede ejecutar código malicioso.
Los cortafuegos de aplicaciones pueden ser activos o pasivos.
Activos: los cortafuegos de aplicaciones activos inspeccionan activamente todas las peticiones que llegan (incluidos los mensajes que se intercambian) para descubrir vulnerabilidades conocidas como inyecciones de SQL, manipulación de parámetros y cookies y cross-site scripting. Solo se pasan a la aplicación las peticiones consideradas «limpias».
Pasivos: los cortafuegos de aplicaciones pasivos actúan de forma similar a un sistema de detección de intrusos (IDS) en el sentido de que también inspeccionan todas las peticiones que llegan para descubrir vulnerabilidades conocidas, pero no rechazan o deniegan activamente esas peticiones si descubren un posible ataque.
Normalmente, los cortafuegos de aplicaciones se pueden actualizar de forma remota, lo que les permite prevenir vulnerabilidades recién descubiertas. Suelen estar más actualizados que el código de seguridad específico incluido en las aplicaciones, debido a que los ciclos de desarrollo y prueba requeridos para incluir dicho código en las aplicaciones son más largos.
Hoy en día, lo más común es ver cortafuegos de aplicaciones web (WAF) para filtrar, controlar y bloquear el tráfico HTTP/S hacia y desde una aplicación web, específicamente.