ADC

Verificación de protección de inyección de comandos HTML

La comprobación de inyección de comandos HTML examina si el tráfico entrante tiene comandos no autorizados que interrumpen la seguridad del sistema o modifican el sistema. Si el tráfico contiene algún comando malintencionado cuando se detecta, el dispositivo bloquea la solicitud o realiza la acción configurada.

El perfil NetScaler Web App Firewall ahora se ha mejorado con una nueva comprobación de seguridad para los ataques de inyección de comandos. Cuando la comprobación de seguridad de la inyección de comandos examina el tráfico y detecta cualquier comando malintencionado, el dispositivo bloquea la solicitud o realiza la acción configurada.

En un ataque de inyección de comandos, el atacante pretende ejecutar comandos no autorizados en el sistema operativo NetScaler. Para lograr esto, el atacante inyecta comandos del sistema operativo mediante una aplicación vulnerable. Un dispositivo NetScaler es vulnerable a los ataques de inyección si la aplicación pasa datos inseguros (formularios, cookies o encabezados) a la consola del sistema.

Cómo funciona la protección de inyección de comandos

  1. Para una solicitud entrante, WAF examina el tráfico en busca de palabras clave o caracteres especiales. Si la solicitud entrante no tiene patrones que coincidan con ninguna de las palabras clave o caracteres especiales denegados, la solicitud está permitida. De lo contrario, la solicitud se bloquea, se descarta o se redirige en función de la acción configurada.

  2. Si prefiere excluir una palabra clave o un carácter especial de la lista, puede aplicar una regla de relajación para eludir el control de seguridad en determinadas condiciones.
  3. Puede habilitar el registro para generar mensajes de registro. Puede supervisar los registros para determinar si las respuestas a las solicitudes legítimas se están bloqueando. Un gran aumento en la cantidad de mensajes de registro puede indicar intentos de lanzar un ataque.
  4. También puede habilitar la función de estadísticas para recopilar datos estadísticos sobre infracciones y registros. Un aumento inesperado en el contador de estadísticas podría indicar que su aplicación está siendo atacada. Si las solicitudes legítimas se bloquean, es posible que tenga que volver a visitar la configuración para ver si debe configurar la nueva regla de relajación o modificar la existente.

Palabras clave y caracteres especiales denegados para la comprobación de inyección de comandos

Para detectar y bloquear los ataques de inyección de comandos, el dispositivo tiene un conjunto de patrones (palabras clave y caracteres especiales) definidos en el archivo de firma predeterminado. A continuación se muestra una lista de palabras clave bloqueadas durante la detección de inyección de comandos

    <commandinjection>
      <keyword type="LITERAL" builtin="ON">7z</keyword>
      <keyword type="LITERAL" builtin="ON">7za</keyword>
      <keyword type="LITERAL" builtin="ON">7zr</keyword>
…
</commandinjection>
<!--NeedCopy-->

Los caracteres especiales definidos en el archivo de firma son: | ; & $ > < ' \ ! >> #

Configuración de la comprobación de inyección de comandos mediante la CLI

En la interfaz de línea de comandos, puede utilizar el comando set the profile o el comando add the profile para configurar los ajustes de inyección de comandos. Puede habilitar las acciones de bloqueo, registro y estadísticas. También debe configurar las palabras clave y los caracteres de cadena que desea detectar en las cargas.

En la línea de comandos, escriba:

set appfw profile <profile-name> –cmdInjectionAction <action-name> -CMDInjectionType <CMDInjectionType>]

Nota:

De forma predeterminada, la acción de inyección de comandos se establece como “Ninguno”. Además, el tipo de inyección de comando predeterminado se establece comoCmdSplCharANDKeyWord.

Ejemplo:

set appfw profile profile1 -cmdInjectionAction block -CMDInjectionType CmdSplChar

Donde las acciones de inyección de comandos disponibles son:

  • Ninguno: desactive la protección de inyección de comandos.
  • Registro: registra las infracciones de inyección de comandos para la comprobación de seguridad.
  • Bloquear: bloquea el tráfico que infringe la comprobación de seguridad de la inyección de comandos.
  • Estadísticas: genera estadísticas de infracciones de seguridad de inyección de comandos.

Donde los tipos de inyección de comando disponibles son:

  • Cmd SplChar. Comprueba los caracteres especiales
  • Palabra clave CMD. Comprueba las palabras clave de inyección de comandos
  • CmdSplCharandKeyword. Comprueba los caracteres especiales y la inyección de comandos. Palabras clave y bloques solo si ambos están presentes.
  • CmdSplcharor o palabra clave. Comprueba los caracteres especiales y las palabras clave de inyección de comandos y bloquea si se encuentra alguno de ellos.

Configuración de reglas de relajación para la comprobación de la protección por inyección de comandos

Si su aplicación requiere que omita la inspección por inyección de comandos para un ELEMENTO o ATRIBUTO específico de la carga, puede configurar una regla de relajación.

Las reglas de relajación de la inspección por inyección del comando tienen la siguiente sintaxis:

bind appfw profile <profile name> –cmdInjection <string> <URL> -isregex <REGEX/NOTREGEX>

Ejemplo de regla de relajación para Regex en el encabezado

bind appfw profile sample -CMDInjection hdr "http://10.10.10.10/" -location heaDER -valueType Keyword '[a-z]+grep' -isvalueRegex REGEX

Como resultado, la inyección exime de la comprobación de inyección de comandos permite que el encabezado hdr contenga variantes de “grep”.”

bind appfw profile sample -CMDInjection ck_login "http://10.10.10.10/" -location cookie -valueType Keyword 'pkg[a-z]+' -isvalueRegex REGEX

Configuración de la comprobación de inyección de comandos mediante la interfaz gráfica de usuario de NetScaler

Complete los siguientes pasos para configurar la comprobación de inyección de comandos.

  1. Vaya a Seguridad > Perfiles y NetScaler Web App Firewall.
  2. En la página Perfiles, seleccione un perfil y haga clic en Modificar.
  3. En la página del perfil de NetScaler Web App Firewall, vaya a la sección Configuración avanzada y haga clic en Comprobaciones de seguridad.
  4. En la sección Comprobaciones de seguridad, seleccione Inyección de comandos HTML y haga clic en Configuración de acciones.
  5. En la página de configuración de inyección de comandos HTML, defina los siguientes parámetros:

    1. Acciones. Seleccione una o más acciones para realizar la comprobación de seguridad de la inyección de comandos.
    2. Comprobar solicitud que contiene. Seleccione un patrón de inyección de comandos para comprobar si la solicitud entrante tiene el patrón.
  6. Haga clic en Aceptar.

Visualización o personalización de patrones de inyección de comandos mediante la GUI

Puede utilizar la GUI para ver o personalizar los patrones de inyección de comandos HTML.

Los patrones de inyección de comandos predeterminados se especifican en el archivo de firmas predeterminado. Si no vincula ningún objeto de firma a su perfil, el perfil utilizará los patrones de inyección de comandos HTML predeterminados especificados en el objeto de firmas predeterminados para procesar la comprobación de seguridad de inyección de comandos. Las reglas y patrones, especificados en el objeto de firmas predeterminado, son de solo lectura. No puede modificarlos ni modificarlos. Si quiere modificar o cambiar estos patrones, haga una copia del objeto SSignatures predeterminado para crear un objeto de firma definido por el usuario. Realice cambios en los patrones de inyección de comandos en el nuevo objeto de firma definido por el usuario y utilice este objeto de firma en su perfil que procesa el tráfico para el que quiere utilizar estos patrones personalizados.

Para obtener más información, consulte Firmas

Para ver los patrones de inyección de comandos predeterminados mediante la GUI:

  1. Vaya a Firewall de aplicaciones > Firmas, seleccione *Firmas predeterminadas y haga clic en Modificar.

  2. Haga clic en Administrar patrones CMD/SQL/XSS. La tabla Rutas CMD/SQL/XSS (solo lectura) muestra patrones relacionados con la CMD/SQL/XSS inyección:

Ver los patrones de inyección de comandos predeterminados

  1. Seleccione una fila y haga clic en Administrar elementos para mostrar los patrones de inyección de comandos correspondientes (palabras clave, cadenas especiales, reglas de transformación o caracteres comodín) utilizados por la comprobación de inyección de comandos de Web App Firewall.

Para personalizar un patrón de inyección de comandos mediante la GUI

Puede modificar el objeto de firma definido por el usuario para personalizar las palabras clave de CMD, las cadenas especiales y los caracteres comodín. Puede agregar nuevas entradas o eliminar las existentes. Puede modificar las reglas de transformación de las cadenas especiales de inyección de comandos.

  1. Vaya a Firewall de aplicaciones > Firmas, resalte la firma definida por el usuario de destino y haga clic en Agregar. Haga clic en Administrar patrones CMD/SQL/XSS.
  2. En la página Administrar rutas CMD/SQL/XSS, seleccione la fila de inyección CMD de destino.
  3. Haga clic en Administrar elementos, Agregaro quitar un elemento de inyección de comandos.

    Advertencia:

    Debe tener cuidado antes de quitar o modificar cualquier elemento de inyección de comandos predeterminado o eliminar la ruta CMD para eliminar toda la fila. Las reglas de firma y la comprobación de seguridad de inyección de comandos se basan en estos elementos para detectar ataques de inyección de comandos a fin de proteger sus aplicaciones. La personalización de los patrones SQL puede hacer que la aplicación sea vulnerable a los ataques de inyección de comandos si se elimina el patrón necesario durante la edición.

Visualización de estadísticas de tráfico de inyección de comandos e infracciones

La página Estadísticas de NetScaler Web App Firewall muestra los detalles del tráfico de seguridad y las infracciones de seguridad en formato tabular o gráfico.

Para ver las estadísticas de seguridad mediante la interfaz de comandos.

En la línea de comandos, escriba:

stat appfw profile profile1

Estadísticas de tráfico del perfil Appfw Tasa (/s) Total
Solicitudes 0 0
Bytes de solicitud 0 0
Respuestas 0 0
Bytes de respuesta 0 0
Aborta 0 0
Redireccionamientos 0 0
Tiempo de respuesta promedio a largo plazo (ms) 0
Tiempo de respuesta promedio reciente (ms) 0
Estadísticas de infracciones de HTML/XML/ Tasa (/s) Total
URL de inicio 0 0
Denegar URL 0 0
Encabezado referer 0 0
Desbordamiento de búfer 0 0
Consistencia de cookies 0 0
Secuestro de cookies 0 0
Etiqueta de formulario CSRF 0 0
Scripts HTML entre sitios 0 0
Inyección HTML SQL 0 0
Formato de campo 0 0
Coherencia de 0 0
Tarjeta de crédito 0 0
Objeto seguro 0 0
Infracciones de firma 0 0
Tipo de contenido 0 0
Denegación de servicio JSON 0 0
Inyección JSON SQL 0 0
Scripting entre sitios JSON 0 0
Tipos de carga de archivos 0 0
Deducir carga útil XML del tipo de contenido 0 0
Inyección de HTML CMD 0 0
Formato XML 0 0
Denegación de servicio XML (XDoS) 0 0
Validación de mensajes XML 0 0
Interoperabilidad de servicios web 0 0
Inyección XML SQL 0 0
Scripting entre sitios XML 0 0
Datos adjuntos XML 0 0
Infracciones de errores de 0 0
Infracciones genéricas XML 0 0
Infracciones totales 0 0
Estadísticas de registro HTML/XML/J Tasa (/s) Total
Iniciar registros de URL 0 0
Denegar registros de URL 0 0
Registros de encabezado de referencia 0 0
Registros de desbordamiento 0 0
Registros de consistencia de cookies 0 0
Registros de secuestro de cookies 0 0
CSRF a partir de registros de etiquetas 0 0
Registros de scripts HTML entre sitios 0 0
Registros de transformación de scripting de sitios HTML 0 0
Registros de inyección HTML SQL 0 0
Registros de transformación HTML SQL 0 0
Registros de formato de campo 0 0
Registros de coherencia de campo 0 0
Tarjetas de crédito 0 0
Registros de transformación de tarjetas de crédito 0 0
Registros de objetos seguros 0 0
Registros de firmas 0 0
Registros de tipos de contenido 0 0
Registros de denegación de servicio JSON 0 0
Registros de inyección JSON SQL 0 0
Registros de scripts JSON entre sitios 0 0
Registros de tipos de carga de archivos 0 0
Deducir carga útil XML del tipo de contenido L 0 0
Registros de inyección de comandos HTML 0 0
Registros en formato XML 0 0
Registros de denegación de servicio (XDoS) XML 0 0
Registros de validación de mensajes XML 0 0
Registros de WSI 0 0
Registros de inyección XML SQL 0 0
Registros de scripts XML entre sitios 0 0
Registros de datos adjuntos XML 0 0
Registros de errores SOAP 0 0
Registros genéricos XML 0 0
Mensajes de registro totales 0 0

**Tasa de estadísticas de respuesta a errores del servidor (/s) > Total** | |—|–|–| Errores de cliente HTTP (4xx Resp) | 0 | 0| Errores del servidor HTTP (5xx Resp) | 0 | 0 |

Visualización de las estadísticas de inyección de comandos HTML mediante la interfaz gráfica de usuario de NetScaler

Complete los siguientes pasos para ver las estadísticas de inyección de comandos:

  1. Vaya a Seguridad > NetScaler Web App Firewall> Perfiles.
  2. En el panel de detalles, seleccione un perfil de Web App Firewall y haga clic en Estadísticas.
  3. La página de estadísticas del firewall de NetScaler Web App muestra los detalles del tráfico de inyección de comandos HTML y de las infracciones.
  4. Puede seleccionar Vista tabular o cambiar a Vista gráfica para mostrar los datos en formato tabular o gráfico.