Bien, equipos de NetOps. Ahora que os estáis volcando en la automatización y no paráis de crear scripts, es hora de recordaros amablemente la importancia de la seguridad. No me refiero a los cortafuegos, los WAF u otros servicios de seguridad que quizá tengáis la responsabilidad de implementar y gestionar. Me refiero a los scripts y al código que vais a desarrollar al emprender el camino de la transformación digital.
Hoy me gustaría recordaros la regla cero de la seguridad. Para refrescaros la memoria:
REGLA CERO DE SEGURIDAD: NO CONFIARÁS JAMÁS EN LOS DATOS INTRODUCIDOS POR EL USUARIO.
Una regla bastante sencilla, ¿verdad?
Debería serlo, pero no lo es. Una brecha tras otra brecha en el mundo empresarial puede atribuirse al incumplimiento de la Regla Cero de Seguridad. Las infracciones de esta regla son muy frecuentes en el código de ejemplo que se ofrece a los desarrolladoresmientras investigan y aprenden nuevos lenguajes y frameworks y, por desgracia, también están empezando a aparecer en el apasionante nuevo ámbito de NetOps.
Permítanme presentar la prueba A:

Ahora bien, para ser justos, al menos este script tiene la decencia de advertir de que los datos no están validados. Y menos mal, porque después realiza todo tipo de manipulaciones remotas de las configuraciones de los routers basándose en los datos introducidos.
Mi objeción es que el código está diseñado para enseñar a los equipos de operaciones de red a iniciarse en el uso de scripts para automatizar dispositivos de red en producción y se limita a mencionar de pasada la validación de datos sin proporcionar ninguna información útil sobre cómo hacerlo.
Para obtener buenos consejos sobre cómo validar direcciones IP en Python, consulta este hilo de Stack Overflow.
Pero, Lori, esto es scripting y estamos trabajando con la CLI; vamos, ¿qué riesgo puede haber?
Es difícil abandonar los malos hábitos.
Ignorar la Regla Cero de Seguridad plantea dos problemas.
En primer lugar, los días de la CLI están contados, amigo mío. La API es la nueva CLI, y la mayoría de los frameworks de automatización están adoptando el uso de API RESTful para aprovisionar y gestionar dispositivos y servicios de red. Eso implica pilas de aplicaciones y analizadores sintácticos. Implica dispositivos potencialmente vulnerables a ataques, ya que su configuración puede modificarse mediante una API que podría contener vulnerabilidades.
Como prueba de que no exagero, presento este aviso de Cisco sobre la vulnerabilidad de Apache Struts, de la que tanto se ha hablado. Existe consenso en que pasar entradas sin sanear al framework Struts provoca todo tipo de problemas.
Pero, por si la posibilidad de que se aproveche esta vulnerabilidad no le lleva a preocuparse por aplicar la Regla Cero de Seguridad, permítame señalar que no sanear los datos de entrada puede tener un radio de impacto mucho mayor que el de un solo dispositivo. Pensemos en lo que sabemos sobre la interrupción de Amazon S3 a principios de 2017:
A las 9:37 a. m. (hora del Pacífico), un miembro autorizado del equipo de S3, siguiendo un procedimiento establecido, ejecutó un comando destinado a retirar un pequeño número de servidores de uno de los subsistemas de S3 utilizados en el proceso de facturación. Lamentablemente, uno de los parámetros del comando se introdujo de forma incorrecta y se retiró un conjunto de servidores mayor de lo previsto.
-- Resumen de la interrupción del servicio Amazon S3 en la región de Virginia del Norte (US-EAST-1)
El número que introdujo en el script era mucho mayor de lo que pretendía. Pero los scripts que aceptan a ciegas cualquier dato que les proporcione el operador (ignorando la Regla Cero de la Seguridad) están abocados a provocar tarde o temprano este tipo de errores. Una sencilla comprobación por parte del script —aunque, hay que reconocerlo, molesta— podría haber evitado que el incidente fuera el tema de conversación en Twitter durante más de una semana.
En la red, en producción, solemos contemplar la seguridad desde la perspectiva de la autorización. ¿Tiene Bob autorización para realizar esta acción? ¿Puede Alice ejecutar este script? Y necesitamos esos controles; siguen siendo fundamentales.
Pero, a medida que aceleramos nuestro proceso (interno) de transformación digital, adoptamos más marcos de trabajo y utilizamos API y scripts para automatizar al máximo el aprovisionamiento y la gestión, también debemos tener muy en cuenta la seguridad desde la perspectiva del desarrollo.
Y la primera de esas reglas es la Regla Cero de la Seguridad: NO CONFIARÁS JAMÁS EN LOS DATOS INTRODUCIDOS POR EL USUARIO.
Valida siempre los datos de entrada. Esto no solo aporta seguridad adicional, sino que también puede evitar que una buena automatización acabe dando problemas.
Sobre el autor

Lori MacVittie es ingeniera distinguida y evangelista jefe en la Oficina del CTO de F5, y cuenta con una amplia experiencia en entrega de aplicaciones, estrategia de automatización e infraestructura. Es conocida por convertir la complejidad en claridad, ya sea definiendo mecanismos de protección para agentes de IA, analizando arquitecturas multinube frágiles o explorando los límites de los sistemas escalables. Aporta más de treinta años de experiencia en el sector en desarrollo de aplicaciones, arquitectura de TI y operaciones de redes y sistemas. Antes de incorporarse a F5, fue una galardonada editora de tecnología. MacVittie posee un máster en Informática y es una autora prolífica cuyas publicaciones abarcan la seguridad, la nube y la arquitectura empresarial. También es una apasionada de los juegos de mesa y los videojuegos, y expresa sin complejos sus firmes opiniones sobre el queso.
Más artículos de Lori Mac VittieArtículos relacionados del blog

Cree servicios públicos seguros, resilientes y preparados para la IA con F5 y AWS
Descubre cómo las organizaciones del sector público pueden modernizar de forma segura sus aplicaciones y soluciones de IA, al tiempo que gestionan los sistemas heredados, el cumplimiento normativo y el riesgo operativo.
Protección de los sistemas de IA: por qué la seguridad debe avanzar al ritmo de la innovación
Desde acelerar avances revolucionarios en medicina y educación hasta transformar la vida cotidiana, la IA está cambiando nuestra forma de vivir y trabajar. Pero también ofrece grandes oportunidades a los ciberdelincuentes.
Avanzar hacia la optimización digital tras la transformación
Descubre estrategias de optimización digital para garantizar políticas de seguridad coherentes, impulsar la madurez de la transformación digital y superar los retos de la transformación.
Proyecto de código abierto destacado: mayor observabilidad con F5 Cloud Logger iApp
En el punto de mira del código abierto: cómo aumentar la observabilidad. Lee el blog de F5 para descubrir cómo exportar fácilmente la telemetría de BIG-IP a plataformas modernas de análisis en la nube.
El estado de la entrega de aplicaciones en 2018: la transformación digital impulsa la automatización y la multinube pese a las preocupaciones de seguridad
Descubre las principales conclusiones del cuarto informe anual de F5 sobre el estado de la entrega de aplicaciones.
Estado de la entrega de aplicaciones en 2017: automatización, API y DevOps
Descubre el informe sobre el estado de la entrega de aplicaciones de 2017. Lee el blog retrospectivo de F5 sobre los inicios del auge de las redes declarativas y los flujos de DevOps.