Este artículo forma parte del Proyecto de Investigación sobre Ciberseguridad Industrial llevado a cabo conjuntamente por Sec2Crime y Bidaidea.
Resumen
El presente artículo pretende concienciar acerca de la existencia de vulnerabilidades de software dentro de los sistemas informáticos que se usan en ámbitos industriales, lo cual a su vez pretende alertar sobre la necesidad de implementar medidas de seguridad cibernética para proteger dichos sistemas. Para ello, en primer lugar, identificaremos qué es un sistema de control industrial, para qué usan las industrias dichos sistemas y que tipos de tecnologías utiliza. Posteriormente, pasaremos a hablar sobre una vulnerabilidad en concreto: la de buffer overflow, definiendo qué tipo de vulnerabilidad es y qué amenaza supone para la integridad y el buen funcionamiento de un sistema de control industrial. Por último, indicaremos medidas a aplicar para poder contrarrestar las consecuencias de esta vulnerabilidad.
Introducción
Hoy en día es un hecho que la tecnología forma parte de nuestras vidas, tanto en los aspectos más cotidianos, como en aquellos más inusuales. Es tal el alcance de dicha influencia tecnológica que incluso las industrias o fábricas han introducido sistemas informáticos dentro de sus cadenas de producción, para la generación y el suministro de energías o en el control de proyectos. A dichos sistemas, se les conoce como Sistemas de Control Industrial o ICS (Industrial Control Systems).
Un ICS está formado por varios ordenadores o dispositivos eléctricos, hidráulicos y mecánicos, que realizan procesos manuales o automatizados bajo la supervisión de un humano, al cual se le asigna la labor de la vigilancia del correcto desarrollo de los procesos automatizados y la realización de los procesos no automatizados. Estos sistemas llevan a cabo el control de los equipos mecánicos presentes en diversas empresas relacionadas con la industria, por lo que desempeñan una labor muy importante dentro de ellas.
En ocasiones, a pesar de que la integridad y el buen funcionamiento de la empresa depende de estos sistemas, los dispositivos que componen un ICS funcionan con un sistema operativo (hardware y software) que, de vez en cuando, está desactualizado o anticuado. Debido a ello, es muy frecuente encontrar vulnerabilidades informáticas dentro de estos sistemas, lo cual hace que en los últimos años haya aumentado la importancia de asegurar informáticamente los datos y los procesos que son controlados por un ICS.
Vulnerabilidad de Buffer Overflow
Según un informe de Kaspersky Lab (2015), la vulnerabilidad informática que más se presenta en un sistema de control industrial es la de Buffer Overflow. Un Buffer Overflow o desbordamiento de buffer se define como un error que ocurre durante la creación de uno de los dispositivos que componen el ICS, concretamente al programar el funcionamiento del sofware de dicho dispositivo.
Debido a este error de programación, cuando queremos introducir nuevos datos en el dispositivo, el software escribirá o almacenará dichos datos de forma errónea en un único buffer (espacio para almacenar información dentro de un dispositivo informático). Normalmente, el software debe almacenar dicha información escribiéndola en más de un buffer, pero en este caso, al almacenar toda la información en un único espacio, lo sobrecargará, por lo cual terminará sobrescribiendo las ubicaciones de memoria cercanas, las cuales suelen estar ocupadas con información previamente introducida.
Escribir en espacios de memoria que ya contenían información puede causar graves daños al sistema, ya que puede acabar dañando datos o información crucial para la empresa, bloqueando el dispositivo o ejecutando códigos maliciosos o virus. Además, este tipo de vulnerabilidad puede ser creada por un atacante remoto, en caso de que sea un desarrollador externo a la empresa quien haya programado el dispositivo; o por un atacante conocido, en caso de que la empresa tenga su propio equipo de desarrolladores que se encarguen de programar los dispositivos que posteriormente van a ser empleados para el ICS, lo cual disminuye el control sobre la ocurrencia de desbordamientos de buffer y aumenta el riesgo de existencia de daños informáticos en el ICS.
Medidas para paliar las consecuencias de la existencia de un Buffer Overflow en un Sistema de Control Industrial
Como se ha expuesto, en varias ocasiones será imposible controlar la existencia o no de la vulnerabilidad de Buffer Overflow dentro de un ICS, ya que es un defecto que viene de fábrica y que se presenta en los dispositivos que componen un ICS por la forma en la que fueron programados. Por lo tanto, esta vulnerabilidad será difícil de corregir sin recurrir a una reprogramación del software del dispositivo o a sistemas extremadamente caros. Por todo ello, dentro del ámbito de la seguridad informática se ofrecen diversas medidas o técnicas informáticas a aplicar para contrarrestar o paliar las consecuencias de la existencia de un error de este tipo, evitando así la pérdida de datos relevantes o la pérdida de ganancias por errores en las cadenas automatizadas de producción o suministro energético.
Debido a la amplitud y la gran diversidad de medidas que existen hoy en día y que se han creado con el fin indicado, conviene destacar las más relevantes:
Sistemas de detección “Run-time”:
Aplicaciones que permiten identificar a tiempo real el momento exacto en el que se está produciendo una sobrecarga de datos en un buffer y que permiten reescribir el buffer o reordenar los datos para evitar pérdidas. Algunos ejemplos son StackGuard, StackShield, Libsafe o Pax, RSX and kNoX.
Técnicas de “Static-analysis”:
Se trata de un conjunto de técnicas analíticas que, una vez aplicadas sobre un dispositivo, permiten identificar la existencia o ausencia de vulnerabilidades de buffer overflow. Las técnicas más aplicadas son el análisis Integer range de Wagner et al y el análisis estático de anotación asistida de Larochelle y Evans.
Técnicas “Combined static/run-time”:
Es el método que puede otorgar la protección más completa ante la vulnerabilidad de buffer overflow, ya que, como su propio nombre indica, se trata del empleo de aplicaciones informáticas que, además de realizar labores en static y detectar la existencia de vulnerabilidades de buffer overflow en un dispositivo, pueden realizar labores en run-time e identificar el momento exacto en el que se produce un desbordamiento de buffer. Ejemplos de este tipo de aplicaciones son Ccured y
A pesar de la existencia de un amplio catálogo de medidas informáticas que cuentan con técnicas para prevenir la ocurrencia de un error de Buffer Overflow o evitar que sus consecuencias generen grandes daños a un equipo informático, los desbordamientos de buffer siguen siendo una de las vulnerabilidades informáticas que más afectan a los ICS hoy en día. Esto se debe a que las medidas mencionadas apenas son usadas en un entorno de trabajo real.
Por lo tanto, para solucionar este problema informático no bastará con crear medidas preventivas técnicas o principios y normas a aplicar entre los empleados de una empresa, sino que también será necesario concienciar a los empleados y directivos de dichas empresas acerca de la necesidad de implementar de una manera eficaz dichas medidas para garantizar un entorno de trabajo totalmente seguro a nivel informático.
Bibliografía
Foster, J. C., Osipov, V., Bhalla, N., Heinen, N., & Aitel, D. (2005). Buffer Overflows. Buffer Overflow Attacks, (67:2), pp. 3–23. https://doi.org/10.1016/b978-193226667-2/50037-2
Oxana, A., Gordeychik, S., Gritsai, G., Kochetova, O., Potseluevskaya, E., Sidorov, S. I., & Timorin, A. A. (2015). INDUSTRIAL CONTROL SYSTEMS
VULNERABILITIES STATISTICS. Kaspersky Lab. Recuperado 9 de agosto de 2022, de https://media.kasperskycontenthub.com/wp- content/uploads/sites/43/2016/07/07190426/KL_REPORT_ICS_Statistic_vulner abilities.pdf
Romero, H.A. (2018). Ciberseguridad en Sistemas de Control Industrial o ICSs. [Trabajo fin de máster]. Universitat Autónoma de Barcelona, Barcelona.
Spencer, R. (2020, 1 abril). 5 Vulnerabilidades Comunes en los Sistemas de Control Industrial. Lanner. Recuperado 11 de agosto de 2022, de https://www.lanner- america.com/es/blog-es/ciberseguridad-blog/5-vulnerabilidades-comunes-en-
los-sistemas-de-control-industrial/
Suk Lhee, K., & Chapin, S. J. (2003). Buffer overflow and format string overflow vulnerabilities. Software, Practice and Experience, (33:1), pp. 423-460. https://doi.org/10.1002/spe.515