
Los codificadores conquistan la seguridad: serie Share & Learn - Inyección de comandos del sistema operativo
Un ataque de inyección de comandos del sistema operativo puede producirse cuando una aplicación permite a los usuarios introducir datos en un shell, pero no realiza ninguna acción para comprobar que las cadenas de entrada son válidas. Esto permite a un atacante enviar comandos directamente al sistema operativo que aloja la aplicación y a cualquier nivel de permiso establecido para la aplicación comprometida.
Los ataques de inyección de comandos del sistema operativo pueden ser realizados por piratas informáticos principiantes y menos expertos, lo que los convierte en una de las debilidades más comunes a las que se enfrentan los equipos de seguridad. Afortunadamente, existen bastantes formas muy eficaces de evitar que tengan éxito. En este episodio, aprenderemos:
Cómo funcionan
Por qué son tan peligrosos
Cómo puedes establecer defensas para detenerlos.
¿Cómo utilizan los atacantes la inyección de comandos del sistema operativo?
Lo primero que debe hacer un atacante para iniciar un ataque de inyección de comandos del sistema operativo es localizar las entradas del usuario dentro de una aplicación. Los formularios que los usuarios rellenan son potencialmente buenos puntos de partida. Los atacantes más inteligentes también pueden usar cosas como cookies o incluso encabezados HTTP como punto de partida, algo que utilizan casi todas las aplicaciones o sitios web.
Lo segundo que deben hacer es averiguar qué sistema operativo aloja la aplicación. Dado que solo hay un puñado de opciones, la prueba y error puede funcionar bien en esta fase. La mayoría de los servidores de aplicaciones estarán basados en Windows (el tipo de Windows no suele importar), algún tipo de sistema Linux o, posiblemente, Unix.
En ese momento, el hacker modifica la entrada para inyectar un comando del sistema operativo en una entrada aparentemente inocua. Esto puede engañar al sistema operativo de alojamiento para que ejecute comandos no deseados en cualquier nivel de permiso que tenga la aplicación.
Por ejemplo, los usuarios válidos de una aplicación pueden usar el siguiente comando para ver el contenido de un archivo, en este caso las notas de una reunión mensual de la junta directiva.
exec («cat" + nombre de archivo)
En nuestro ejemplo, esto ejecutaría el siguiente comando y devolvería las notas de la reunión al usuario.
$. /cat MeetingNotes.txt
Tres miembros del comité ejecutivo estuvieron presentes en la reunión de julio. Se discutió el nuevo proyecto presupuestario, pero no se tomó ninguna medida ni se votó.
Esto es lo que ocurre cuando un atacante agrega comandos adicionales al final de la entrada, como el que se usa para enumerar el contenido de un directorio en Linux. En este caso, el comando original, que muestra las notas de la reunión, sigue funcionando. Pero al usuario malintencionado también se le muestra todo lo demás que hay en el directorio y qué otros comandos puede usar en los ataques posteriores de inyección de comandos del sistema operativo. Entran en:
$. /cat MeetingNotes.txt & ls
Y obtén esto en su lugar:
Tres miembros del comité ejecutivo estuvieron presentes en la reunión de julio. Se discutió el nuevo proyecto presupuestario, pero no se tomó ninguna medida ni se votó.
MeetingNotes.txt
JuneMeetingNotes.txt
MayMeetingNotes.txt
formato.c
misnull.c
error de nota.c
tronc.
escribe whatwhere.c
Como puede ver, en este caso, al hacker no solo se le mostró el contenido del directorio, sino que también se le mostró un menú con otros comandos que podían usar» comandos que ahora saben que pueden ejecutar en el sistema operativo host.
¿Por qué son tan peligrosos los ataques de inyección de comandos del sistema operativo?
Permitir a los usuarios eludir el propósito de la aplicación objetivo y utilizarla para ejecutar comandos del sistema operativo es extremadamente arriesgado. Un atacante puede realizar fácilmente acciones devastadoras, como robar datos confidenciales o formatear una unidad de servidor completa, por ejemplo. Las opciones disponibles para un atacante solo están limitadas por los comandos permitidos en el sistema operativo y por su creatividad al usarlos.
Los comandos del sistema operativo se ejecutan en el mismo nivel de permisos que la aplicación. Las aplicaciones que se ejecutan con privilegios administrativos permiten que los piratas informáticos que las pongan en peligro puedan ejecutar todos los comandos del sistema operativo.
Los patrones de ataque de OS Command Injection son bien conocidos y están documentados. Una aplicación vulnerable es tan vulnerable a los niños que escriben scripts como a los piratas informáticos profesionales. Los atacantes con muy poca habilidad pueden intentar cortar y pegar comandos del sistema operativo en las aplicaciones para ver qué ocurre.
Obtener una autorización de seguridad contra las inyecciones de comandos del sistema operativo
Existen varias buenas técnicas que pueden detener las inyecciones de comandos del sistema operativo. El primer paso es ejecutar las aplicaciones con la menor cantidad de privilegios necesarios para cumplir su función. Esto no evita un ataque; sin embargo, si se produce una infracción, el daño se reduce al mínimo.
La mayoría de los lenguajes y marcos de programación proporcionan llamadas a la API para métodos comunes del sistema operativo, como enumerar el contenido del directorio, crear o leer archivos en el disco duro. Una forma perfecta de eliminar las inyecciones de comandos del sistema operativo en su entorno es hacer que todas las aplicaciones utilicen estas llamadas a la API en lugar de utilizar directamente los comandos del sistema operativo.
Cuando esto no sea posible, valide las entradas del usuario antes de usarlas en los comandos del sistema operativo. Las listas blancas se pueden usar para garantizar que solo se pueda usar un pequeño conjunto de valores confiables. Técnicamente, también es posible hacerlo utilizando una lista negra, pero es probable que haya muchos menos comandos permitidos, por lo que la creación de listas blancas casi siempre es más fácil. No olvides incluir parámetros POST y GET válidos en tu lista blanca, así como vectores de entrada de usuario que a menudo se pasan por alto, como las cookies.
Por último, si no hay una API de programación disponible y no se puede usar una lista blanca, use una biblioteca de desinfección para eliminar los caracteres especiales de las entradas del usuario antes de usarlos en los comandos del sistema operativo.
Más información sobre los ataques de inyección de comandos del sistema operativo
Para leer más, puede echar un vistazo al OWASP artículo sobre Ataques de inyección de comandos del sistema operativo. También puede poner a prueba sus nuevos conocimientos defensivos con el demo gratuita de la plataforma Secure Code Warrior, que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para obtener más información sobre cómo derrotar esta vulnerabilidad y la galería de otras amenazas de los delincuentes, visita la Blog de Secure Code Warrior.


Los ataques de inyección de comandos del sistema operativo pueden ser realizados por piratas informáticos principiantes y menos expertos, lo que los convierte en una de las debilidades más comunes a las que se enfrentan los equipos de seguridad. Afortunadamente, existen bastantes formas muy eficaces de evitar que tengan éxito.
Jaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

Secure Code Warrior hier, um Ihrem Unternehmen dabei zu helfen, den Code während des gesamten Lebenszyklus der Softwareentwicklung zu schützen und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie AppSec-Administrator, Entwickler, CISO oder in einem anderen Bereich der Sicherheit tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Eine Vorführung buchenJaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.


Un ataque de inyección de comandos del sistema operativo puede producirse cuando una aplicación permite a los usuarios introducir datos en un shell, pero no realiza ninguna acción para comprobar que las cadenas de entrada son válidas. Esto permite a un atacante enviar comandos directamente al sistema operativo que aloja la aplicación y a cualquier nivel de permiso establecido para la aplicación comprometida.
Los ataques de inyección de comandos del sistema operativo pueden ser realizados por piratas informáticos principiantes y menos expertos, lo que los convierte en una de las debilidades más comunes a las que se enfrentan los equipos de seguridad. Afortunadamente, existen bastantes formas muy eficaces de evitar que tengan éxito. En este episodio, aprenderemos:
Cómo funcionan
Por qué son tan peligrosos
Cómo puedes establecer defensas para detenerlos.
¿Cómo utilizan los atacantes la inyección de comandos del sistema operativo?
Lo primero que debe hacer un atacante para iniciar un ataque de inyección de comandos del sistema operativo es localizar las entradas del usuario dentro de una aplicación. Los formularios que los usuarios rellenan son potencialmente buenos puntos de partida. Los atacantes más inteligentes también pueden usar cosas como cookies o incluso encabezados HTTP como punto de partida, algo que utilizan casi todas las aplicaciones o sitios web.
Lo segundo que deben hacer es averiguar qué sistema operativo aloja la aplicación. Dado que solo hay un puñado de opciones, la prueba y error puede funcionar bien en esta fase. La mayoría de los servidores de aplicaciones estarán basados en Windows (el tipo de Windows no suele importar), algún tipo de sistema Linux o, posiblemente, Unix.
En ese momento, el hacker modifica la entrada para inyectar un comando del sistema operativo en una entrada aparentemente inocua. Esto puede engañar al sistema operativo de alojamiento para que ejecute comandos no deseados en cualquier nivel de permiso que tenga la aplicación.
Por ejemplo, los usuarios válidos de una aplicación pueden usar el siguiente comando para ver el contenido de un archivo, en este caso las notas de una reunión mensual de la junta directiva.
exec («cat" + nombre de archivo)
En nuestro ejemplo, esto ejecutaría el siguiente comando y devolvería las notas de la reunión al usuario.
$. /cat MeetingNotes.txt
Tres miembros del comité ejecutivo estuvieron presentes en la reunión de julio. Se discutió el nuevo proyecto presupuestario, pero no se tomó ninguna medida ni se votó.
Esto es lo que ocurre cuando un atacante agrega comandos adicionales al final de la entrada, como el que se usa para enumerar el contenido de un directorio en Linux. En este caso, el comando original, que muestra las notas de la reunión, sigue funcionando. Pero al usuario malintencionado también se le muestra todo lo demás que hay en el directorio y qué otros comandos puede usar en los ataques posteriores de inyección de comandos del sistema operativo. Entran en:
$. /cat MeetingNotes.txt & ls
Y obtén esto en su lugar:
Tres miembros del comité ejecutivo estuvieron presentes en la reunión de julio. Se discutió el nuevo proyecto presupuestario, pero no se tomó ninguna medida ni se votó.
MeetingNotes.txt
JuneMeetingNotes.txt
MayMeetingNotes.txt
formato.c
misnull.c
error de nota.c
tronc.
escribe whatwhere.c
Como puede ver, en este caso, al hacker no solo se le mostró el contenido del directorio, sino que también se le mostró un menú con otros comandos que podían usar» comandos que ahora saben que pueden ejecutar en el sistema operativo host.
¿Por qué son tan peligrosos los ataques de inyección de comandos del sistema operativo?
Permitir a los usuarios eludir el propósito de la aplicación objetivo y utilizarla para ejecutar comandos del sistema operativo es extremadamente arriesgado. Un atacante puede realizar fácilmente acciones devastadoras, como robar datos confidenciales o formatear una unidad de servidor completa, por ejemplo. Las opciones disponibles para un atacante solo están limitadas por los comandos permitidos en el sistema operativo y por su creatividad al usarlos.
Los comandos del sistema operativo se ejecutan en el mismo nivel de permisos que la aplicación. Las aplicaciones que se ejecutan con privilegios administrativos permiten que los piratas informáticos que las pongan en peligro puedan ejecutar todos los comandos del sistema operativo.
Los patrones de ataque de OS Command Injection son bien conocidos y están documentados. Una aplicación vulnerable es tan vulnerable a los niños que escriben scripts como a los piratas informáticos profesionales. Los atacantes con muy poca habilidad pueden intentar cortar y pegar comandos del sistema operativo en las aplicaciones para ver qué ocurre.
Obtener una autorización de seguridad contra las inyecciones de comandos del sistema operativo
Existen varias buenas técnicas que pueden detener las inyecciones de comandos del sistema operativo. El primer paso es ejecutar las aplicaciones con la menor cantidad de privilegios necesarios para cumplir su función. Esto no evita un ataque; sin embargo, si se produce una infracción, el daño se reduce al mínimo.
La mayoría de los lenguajes y marcos de programación proporcionan llamadas a la API para métodos comunes del sistema operativo, como enumerar el contenido del directorio, crear o leer archivos en el disco duro. Una forma perfecta de eliminar las inyecciones de comandos del sistema operativo en su entorno es hacer que todas las aplicaciones utilicen estas llamadas a la API en lugar de utilizar directamente los comandos del sistema operativo.
Cuando esto no sea posible, valide las entradas del usuario antes de usarlas en los comandos del sistema operativo. Las listas blancas se pueden usar para garantizar que solo se pueda usar un pequeño conjunto de valores confiables. Técnicamente, también es posible hacerlo utilizando una lista negra, pero es probable que haya muchos menos comandos permitidos, por lo que la creación de listas blancas casi siempre es más fácil. No olvides incluir parámetros POST y GET válidos en tu lista blanca, así como vectores de entrada de usuario que a menudo se pasan por alto, como las cookies.
Por último, si no hay una API de programación disponible y no se puede usar una lista blanca, use una biblioteca de desinfección para eliminar los caracteres especiales de las entradas del usuario antes de usarlos en los comandos del sistema operativo.
Más información sobre los ataques de inyección de comandos del sistema operativo
Para leer más, puede echar un vistazo al OWASP artículo sobre Ataques de inyección de comandos del sistema operativo. También puede poner a prueba sus nuevos conocimientos defensivos con el demo gratuita de la plataforma Secure Code Warrior, que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para obtener más información sobre cómo derrotar esta vulnerabilidad y la galería de otras amenazas de los delincuentes, visita la Blog de Secure Code Warrior.

Un ataque de inyección de comandos del sistema operativo puede producirse cuando una aplicación permite a los usuarios introducir datos en un shell, pero no realiza ninguna acción para comprobar que las cadenas de entrada son válidas. Esto permite a un atacante enviar comandos directamente al sistema operativo que aloja la aplicación y a cualquier nivel de permiso establecido para la aplicación comprometida.
Los ataques de inyección de comandos del sistema operativo pueden ser realizados por piratas informáticos principiantes y menos expertos, lo que los convierte en una de las debilidades más comunes a las que se enfrentan los equipos de seguridad. Afortunadamente, existen bastantes formas muy eficaces de evitar que tengan éxito. En este episodio, aprenderemos:
Cómo funcionan
Por qué son tan peligrosos
Cómo puedes establecer defensas para detenerlos.
¿Cómo utilizan los atacantes la inyección de comandos del sistema operativo?
Lo primero que debe hacer un atacante para iniciar un ataque de inyección de comandos del sistema operativo es localizar las entradas del usuario dentro de una aplicación. Los formularios que los usuarios rellenan son potencialmente buenos puntos de partida. Los atacantes más inteligentes también pueden usar cosas como cookies o incluso encabezados HTTP como punto de partida, algo que utilizan casi todas las aplicaciones o sitios web.
Lo segundo que deben hacer es averiguar qué sistema operativo aloja la aplicación. Dado que solo hay un puñado de opciones, la prueba y error puede funcionar bien en esta fase. La mayoría de los servidores de aplicaciones estarán basados en Windows (el tipo de Windows no suele importar), algún tipo de sistema Linux o, posiblemente, Unix.
En ese momento, el hacker modifica la entrada para inyectar un comando del sistema operativo en una entrada aparentemente inocua. Esto puede engañar al sistema operativo de alojamiento para que ejecute comandos no deseados en cualquier nivel de permiso que tenga la aplicación.
Por ejemplo, los usuarios válidos de una aplicación pueden usar el siguiente comando para ver el contenido de un archivo, en este caso las notas de una reunión mensual de la junta directiva.
exec («cat" + nombre de archivo)
En nuestro ejemplo, esto ejecutaría el siguiente comando y devolvería las notas de la reunión al usuario.
$. /cat MeetingNotes.txt
Tres miembros del comité ejecutivo estuvieron presentes en la reunión de julio. Se discutió el nuevo proyecto presupuestario, pero no se tomó ninguna medida ni se votó.
Esto es lo que ocurre cuando un atacante agrega comandos adicionales al final de la entrada, como el que se usa para enumerar el contenido de un directorio en Linux. En este caso, el comando original, que muestra las notas de la reunión, sigue funcionando. Pero al usuario malintencionado también se le muestra todo lo demás que hay en el directorio y qué otros comandos puede usar en los ataques posteriores de inyección de comandos del sistema operativo. Entran en:
$. /cat MeetingNotes.txt & ls
Y obtén esto en su lugar:
Tres miembros del comité ejecutivo estuvieron presentes en la reunión de julio. Se discutió el nuevo proyecto presupuestario, pero no se tomó ninguna medida ni se votó.
MeetingNotes.txt
JuneMeetingNotes.txt
MayMeetingNotes.txt
formato.c
misnull.c
error de nota.c
tronc.
escribe whatwhere.c
Como puede ver, en este caso, al hacker no solo se le mostró el contenido del directorio, sino que también se le mostró un menú con otros comandos que podían usar» comandos que ahora saben que pueden ejecutar en el sistema operativo host.
¿Por qué son tan peligrosos los ataques de inyección de comandos del sistema operativo?
Permitir a los usuarios eludir el propósito de la aplicación objetivo y utilizarla para ejecutar comandos del sistema operativo es extremadamente arriesgado. Un atacante puede realizar fácilmente acciones devastadoras, como robar datos confidenciales o formatear una unidad de servidor completa, por ejemplo. Las opciones disponibles para un atacante solo están limitadas por los comandos permitidos en el sistema operativo y por su creatividad al usarlos.
Los comandos del sistema operativo se ejecutan en el mismo nivel de permisos que la aplicación. Las aplicaciones que se ejecutan con privilegios administrativos permiten que los piratas informáticos que las pongan en peligro puedan ejecutar todos los comandos del sistema operativo.
Los patrones de ataque de OS Command Injection son bien conocidos y están documentados. Una aplicación vulnerable es tan vulnerable a los niños que escriben scripts como a los piratas informáticos profesionales. Los atacantes con muy poca habilidad pueden intentar cortar y pegar comandos del sistema operativo en las aplicaciones para ver qué ocurre.
Obtener una autorización de seguridad contra las inyecciones de comandos del sistema operativo
Existen varias buenas técnicas que pueden detener las inyecciones de comandos del sistema operativo. El primer paso es ejecutar las aplicaciones con la menor cantidad de privilegios necesarios para cumplir su función. Esto no evita un ataque; sin embargo, si se produce una infracción, el daño se reduce al mínimo.
La mayoría de los lenguajes y marcos de programación proporcionan llamadas a la API para métodos comunes del sistema operativo, como enumerar el contenido del directorio, crear o leer archivos en el disco duro. Una forma perfecta de eliminar las inyecciones de comandos del sistema operativo en su entorno es hacer que todas las aplicaciones utilicen estas llamadas a la API en lugar de utilizar directamente los comandos del sistema operativo.
Cuando esto no sea posible, valide las entradas del usuario antes de usarlas en los comandos del sistema operativo. Las listas blancas se pueden usar para garantizar que solo se pueda usar un pequeño conjunto de valores confiables. Técnicamente, también es posible hacerlo utilizando una lista negra, pero es probable que haya muchos menos comandos permitidos, por lo que la creación de listas blancas casi siempre es más fácil. No olvides incluir parámetros POST y GET válidos en tu lista blanca, así como vectores de entrada de usuario que a menudo se pasan por alto, como las cookies.
Por último, si no hay una API de programación disponible y no se puede usar una lista blanca, use una biblioteca de desinfección para eliminar los caracteres especiales de las entradas del usuario antes de usarlos en los comandos del sistema operativo.
Más información sobre los ataques de inyección de comandos del sistema operativo
Para leer más, puede echar un vistazo al OWASP artículo sobre Ataques de inyección de comandos del sistema operativo. También puede poner a prueba sus nuevos conocimientos defensivos con el demo gratuita de la plataforma Secure Code Warrior, que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para obtener más información sobre cómo derrotar esta vulnerabilidad y la galería de otras amenazas de los delincuentes, visita la Blog de Secure Code Warrior.

Klicken Sie auf den untenstehenden Link und laden Sie die PDF-Datei dieser Ressource herunter.
Secure Code Warrior hier, um Ihrem Unternehmen dabei zu helfen, den Code während des gesamten Lebenszyklus der Softwareentwicklung zu schützen und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie AppSec-Administrator, Entwickler, CISO oder in einem anderen Bereich der Sicherheit tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Bericht anzeigenEine Vorführung buchenJaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.
Un ataque de inyección de comandos del sistema operativo puede producirse cuando una aplicación permite a los usuarios introducir datos en un shell, pero no realiza ninguna acción para comprobar que las cadenas de entrada son válidas. Esto permite a un atacante enviar comandos directamente al sistema operativo que aloja la aplicación y a cualquier nivel de permiso establecido para la aplicación comprometida.
Los ataques de inyección de comandos del sistema operativo pueden ser realizados por piratas informáticos principiantes y menos expertos, lo que los convierte en una de las debilidades más comunes a las que se enfrentan los equipos de seguridad. Afortunadamente, existen bastantes formas muy eficaces de evitar que tengan éxito. En este episodio, aprenderemos:
Cómo funcionan
Por qué son tan peligrosos
Cómo puedes establecer defensas para detenerlos.
¿Cómo utilizan los atacantes la inyección de comandos del sistema operativo?
Lo primero que debe hacer un atacante para iniciar un ataque de inyección de comandos del sistema operativo es localizar las entradas del usuario dentro de una aplicación. Los formularios que los usuarios rellenan son potencialmente buenos puntos de partida. Los atacantes más inteligentes también pueden usar cosas como cookies o incluso encabezados HTTP como punto de partida, algo que utilizan casi todas las aplicaciones o sitios web.
Lo segundo que deben hacer es averiguar qué sistema operativo aloja la aplicación. Dado que solo hay un puñado de opciones, la prueba y error puede funcionar bien en esta fase. La mayoría de los servidores de aplicaciones estarán basados en Windows (el tipo de Windows no suele importar), algún tipo de sistema Linux o, posiblemente, Unix.
En ese momento, el hacker modifica la entrada para inyectar un comando del sistema operativo en una entrada aparentemente inocua. Esto puede engañar al sistema operativo de alojamiento para que ejecute comandos no deseados en cualquier nivel de permiso que tenga la aplicación.
Por ejemplo, los usuarios válidos de una aplicación pueden usar el siguiente comando para ver el contenido de un archivo, en este caso las notas de una reunión mensual de la junta directiva.
exec («cat" + nombre de archivo)
En nuestro ejemplo, esto ejecutaría el siguiente comando y devolvería las notas de la reunión al usuario.
$. /cat MeetingNotes.txt
Tres miembros del comité ejecutivo estuvieron presentes en la reunión de julio. Se discutió el nuevo proyecto presupuestario, pero no se tomó ninguna medida ni se votó.
Esto es lo que ocurre cuando un atacante agrega comandos adicionales al final de la entrada, como el que se usa para enumerar el contenido de un directorio en Linux. En este caso, el comando original, que muestra las notas de la reunión, sigue funcionando. Pero al usuario malintencionado también se le muestra todo lo demás que hay en el directorio y qué otros comandos puede usar en los ataques posteriores de inyección de comandos del sistema operativo. Entran en:
$. /cat MeetingNotes.txt & ls
Y obtén esto en su lugar:
Tres miembros del comité ejecutivo estuvieron presentes en la reunión de julio. Se discutió el nuevo proyecto presupuestario, pero no se tomó ninguna medida ni se votó.
MeetingNotes.txt
JuneMeetingNotes.txt
MayMeetingNotes.txt
formato.c
misnull.c
error de nota.c
tronc.
escribe whatwhere.c
Como puede ver, en este caso, al hacker no solo se le mostró el contenido del directorio, sino que también se le mostró un menú con otros comandos que podían usar» comandos que ahora saben que pueden ejecutar en el sistema operativo host.
¿Por qué son tan peligrosos los ataques de inyección de comandos del sistema operativo?
Permitir a los usuarios eludir el propósito de la aplicación objetivo y utilizarla para ejecutar comandos del sistema operativo es extremadamente arriesgado. Un atacante puede realizar fácilmente acciones devastadoras, como robar datos confidenciales o formatear una unidad de servidor completa, por ejemplo. Las opciones disponibles para un atacante solo están limitadas por los comandos permitidos en el sistema operativo y por su creatividad al usarlos.
Los comandos del sistema operativo se ejecutan en el mismo nivel de permisos que la aplicación. Las aplicaciones que se ejecutan con privilegios administrativos permiten que los piratas informáticos que las pongan en peligro puedan ejecutar todos los comandos del sistema operativo.
Los patrones de ataque de OS Command Injection son bien conocidos y están documentados. Una aplicación vulnerable es tan vulnerable a los niños que escriben scripts como a los piratas informáticos profesionales. Los atacantes con muy poca habilidad pueden intentar cortar y pegar comandos del sistema operativo en las aplicaciones para ver qué ocurre.
Obtener una autorización de seguridad contra las inyecciones de comandos del sistema operativo
Existen varias buenas técnicas que pueden detener las inyecciones de comandos del sistema operativo. El primer paso es ejecutar las aplicaciones con la menor cantidad de privilegios necesarios para cumplir su función. Esto no evita un ataque; sin embargo, si se produce una infracción, el daño se reduce al mínimo.
La mayoría de los lenguajes y marcos de programación proporcionan llamadas a la API para métodos comunes del sistema operativo, como enumerar el contenido del directorio, crear o leer archivos en el disco duro. Una forma perfecta de eliminar las inyecciones de comandos del sistema operativo en su entorno es hacer que todas las aplicaciones utilicen estas llamadas a la API en lugar de utilizar directamente los comandos del sistema operativo.
Cuando esto no sea posible, valide las entradas del usuario antes de usarlas en los comandos del sistema operativo. Las listas blancas se pueden usar para garantizar que solo se pueda usar un pequeño conjunto de valores confiables. Técnicamente, también es posible hacerlo utilizando una lista negra, pero es probable que haya muchos menos comandos permitidos, por lo que la creación de listas blancas casi siempre es más fácil. No olvides incluir parámetros POST y GET válidos en tu lista blanca, así como vectores de entrada de usuario que a menudo se pasan por alto, como las cookies.
Por último, si no hay una API de programación disponible y no se puede usar una lista blanca, use una biblioteca de desinfección para eliminar los caracteres especiales de las entradas del usuario antes de usarlos en los comandos del sistema operativo.
Más información sobre los ataques de inyección de comandos del sistema operativo
Para leer más, puede echar un vistazo al OWASP artículo sobre Ataques de inyección de comandos del sistema operativo. También puede poner a prueba sus nuevos conocimientos defensivos con el demo gratuita de la plataforma Secure Code Warrior, que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para obtener más información sobre cómo derrotar esta vulnerabilidad y la galería de otras amenazas de los delincuentes, visita la Blog de Secure Code Warrior.
Inhaltsverzeichnis
Jaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

Secure Code Warrior hier, um Ihrem Unternehmen dabei zu helfen, den Code während des gesamten Lebenszyklus der Softwareentwicklung zu schützen und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie AppSec-Administrator, Entwickler, CISO oder in einem anderen Bereich der Sicherheit tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Eine Vorführung buchenHerunterladenRessourcen für den Einstieg
Themen und Inhalte der Schulung zum Thema sicherer Code
Unsere branchenführenden Inhalte werden ständig weiterentwickelt, um sich an die sich wandelnde Landschaft der Softwareentwicklung anzupassen und dabei Ihre Rolle zu berücksichtigen. Es werden Themen angeboten, die von KI bis hin zu XQuery-Injektion reichen und sich an verschiedene Positionen richten, von Architekten und Ingenieuren bis hin zu Produktmanagern und Qualitätskontrolleuren. Verschaffen Sie sich einen Überblick über unser Angebot an Inhalten nach Thema und Funktion.
Die Kamer van Koophandel setzt Maßstäbe für entwicklergesteuerte Sicherheit in großem Maßstab
Die Kamer van Koophandel berichtet, wie sie sicheres Codieren durch rollenbasierte Zertifizierungen, Trust Score-Benchmarking und eine Kultur der gemeinsamen Verantwortung für Sicherheit in die tägliche Entwicklungsarbeit integriert hat.
Bedrohungsmodellierung mit KI: So wird jeder Entwickler zum Bedrohungsmodellierer
Sie werden besser gerüstet sein, um Entwicklern dabei zu helfen, Ideen und Techniken zur Bedrohungsmodellierung mit den KI-Tools zu kombinieren, die sie bereits verwenden, um die Sicherheit zu erhöhen, die Zusammenarbeit zu verbessern und von Anfang an widerstandsfähigere Software zu entwickeln.
Ressourcen für den Einstieg
Cybermon ist zurück: Die KI-Missionen von Beat the Boss sind jetzt auf Abruf verfügbar.
Cybermon 2025 Beat the Boss ist jetzt das ganze Jahr über bei SCW verfügbar. Implementieren Sie fortschrittliche KI- und LLM-Sicherheitsherausforderungen, um die sichere Entwicklung von KI in großem Maßstab zu stärken.
Erläuterung des Gesetzes zur Cyberresilienz: Was bedeutet es für die Entwicklung sicherer Software?
Entdecken Sie, was das EU-Gesetz zur Cyberresilienz (CRA) verlangt, für wen es gilt und wie sich Ingenieurteams mit sicheren Designpraktiken, der Vermeidung von Schwachstellen und der Entwicklung von Fähigkeiten für Entwickler darauf vorbereiten können.
SCW feiert sein 11-jähriges Bestehen: eine Lektion in Echtzeit über Anpassungsfähigkeit und kontinuierliche Verbesserung
2025 war ein großartiges Jahr für KI, Cybersicherheit und SCW. Ich gehe mit ruhiger Zuversicht und dem Optimismus, den nur harte und lohnende Arbeit mit sich bringen kann, auf das Jahr 2026 zu.




%20(1).avif)
.avif)
