Vulnerabilidades informáticas
Conjuntamente con el nacimiento de la computación, también nacieron los programas o software que le permitían a aquellas primitivas maquinarias operar. Si bien estas máquinas procesaban la información de una manera precisa, lo cierto es que los programas que las controlaban eran de desarrollo y diseño humano, y por lo tanto su código muy factibles de contener toda clase de errores.
Con el paso de los años, los errores de programación han ido disminuyendo, gracias en gran parte a que los nuevos lenguajes de programación son más flexibles y que existe gran cantidad de información impresa y en Internet acerca de cómo operarlos.
Pero lamentablemente todavía nos podemos encontrar con muchos de estos errores de programación cuando ejecutamos un programa, aún los más reputados y con mayor trabajo en su diseño, incluyen una serie de errores que sus ingenieros van parcheando con actualizaciones a medida que son descubiertos o denunciados por sus usuarios.
Vulnerabilidad. Seguridad informática
Vulnerabilidad. Seguridad informática
Casos como el del sistema operativo Microsoft Windows, los navegadores web Firefox o Internet Explorer y tantos otros programas muy populares muchas veces integran profundos problemas de seguridad que conllevan inconvenientes con su normal funcionamiento, o hasta inclusive presentan “agujeros” por los cuales un hacker debidamente entrenado y con experiencia puede utilizar para ingresar a nuestra PC y cometer toda clase de fechorías en la misma, desde adulterar documentos hasta robarnos valiosa información bancaria o financiera.
Qué es una vulnerabilidad?
Básicamente, una vulnerabilidad es una debilidad presente en un sistema operativo, software o sistema que le permite a un atacante violar la confidencialidad, integridad, disponibilidad, control de acceso y consistencia del sistema o de sus datos y aplicaciones.
Estas vulnerabilidades son producto de fallos producidos por el mal diseño de un software, sin embargo, una vulnerabilidad también puede ser producto de las limitaciones propias de la tecnología para la que fue diseñado.
Existen dos tipos des de vulnerabilidades. El primer tipo es conocido como vulnerabilidad teórica, mientras que el segundo tipo, y el que interesa al usuario, es el conocido como vulnerabilidad real, más conocido por todos como “Exploit”.
Estos exploits son las conocidas vulnerabilidades en las aplicaciones y sistemas operativos que se corrigen mediante parches o “hotfixs”. Muchas veces también sucede que se espera al salto de versión para solucionar este tipo de problemas, aumentando de este modo el riesgo de ataque. En los grandes sistemas, es posible que la solución a una vulnerabilidad se corrija mediante el cambio de alguno de los elementos del hardware que los compone.
Las vulnerabilidades de un sistema de software son motivo de problemas constantes, ya que no existe mes en que no se haga público un problema de seguridad de este tipo. En este sentido, existe una especie de puja por dar a conocer vulnerabilidades de un sistema de un competidor, lo que agrava la situación de todos los usuarios, ya que al quedar expuesto el problema de seguridad tan abiertamente, es aprovechado incluso por hackers y ciberdelincuentes que todavía no lo conocían. Esto es motivo de mucho debate y controversia.
Tipos de vulnerabilidades en informática
La problemática de las vulnerabilidades es un tema que no debe tomarse bajo ningún punto de vista a la ligera, ya que puede acarrearnos una buna cantidad de peligros, aunque no utilicemos datos o documentos muy importantes. Este problema es realmente muy serio, y es estudiado y clasificado por un sinfín de empresas y organizaciones. Estas mismas instituciones fueron quienes llegaron a la conclusión que las vulnerabilidades pueden clasificarse en básicamente 4 tipos.
Crítica: Este tipo de vulnerabilidad permite la propagación de amenazas sin que sea necesaria la participación del usuario.
Importante: Este tipo de vulnerabilidad es capaz de poner en riesgo la confidencialidad, integridad o disponibilidad de los datos de los usuarios, como así también, la integridad o disponibilidad de los recursos de procesamiento que este disponga.
Moderada: Este es uno de los tipos de vulnerabilidades más sencillas de combatir, ya que el riesgo que presenta se puede disminuir con medidas tales como configuraciones predeterminadas, auditorías y demás. Aparte, las vulnerabilidades moderadas no son aprovechables en todo su potencial ya que no afecta a una gran masa de usuarios.
Baja: Este tipo de vulnerabilidad es realmente muy difícil de aprovechar por un atacante, y su impacto es mínimo, ya que no afecta a una gran masa de usuarios.
Cada una de estas clasificaciones enumera los peligros de las vulnerabilidades de acuerdo a su grado de daño. Entre las más destacas vulnerabilidades de la actualidad las más conocidas los desbordes de pila y buffers, los “symlink races”, los errores en la validación de entradas como inyección SQL, bug en el formato de cadenas, secuestro de sesiones y ejecución de código remoto, entre otras.
En las siguientes líneas se explica de una manera más clara en qué consiste cada una de estas vulnerabilidades.
1. Vulnerabilidades de desbordamiento de buffer
Esta condición se cumple cuando una aplicación no es capaz de controlar la cantidad de datos que se copian en buffer, de forma que si esa cantidad es superior a la capacidad del buffer los bytes sobrantes se almacenan en zonas de memoria adyacentes, sobrescribiendo su contenido original. Este problema se puede aprovechar para ejecutar código que le otorga a un atacante privilegios de administrador.
2. Vulnerabilidades de condición de carrera (race condition)
La condición de carrera se cumple generalmente cuando varios procesos tienen acceso a un recurso compartido de forma simultánea. En este sentido, un buen ejemplo son las variables, cambiando su estado y obteniendo de esta forma un valor no esperado de la misma.
3. Vulnerabilidades de error de formato de cadena (format string ugs)
El motivo fundamental de los llamados errores de cadena de formato es la condición de aceptar sin validar la entrada de datos proporcionada por el usuario. Este es un error de diseño de la aplicación, es decir que proviene de descuidos en su programación. En este sentido el lenguaje de programación más afectado por este tipo de vulnerabilidades es C/C++. Un ataque perpetrado utilizando este método definitivamente conduce a la ejecución de código arbitrario y al robo de información y datos del usuario.
4. Vulnerabilidades de Cross Site Scripting (XSS)
Las vulnerabilidades del tipo Cross Site Scripting (XSS) son utilizadas en ataques en donde las condiciones permitan ejecutar scripts de lenguajes como VBScript o JavaScript. Es posible encontrar este tipo de situaciones en cualquier aplicación que se utilice para mostrar información en un navegador web cualquiera, que no se encuentre debidamente protegido contra estos ataques.
EL uso más extendido de este tipo de vulnerabilidad es la técnica llamada “Phishing”, la cual consiste básicamente en la suplantación de un sitio web verdadero por otro que no lo es. El usuario abre su navegador favorito y se dirige a visitar un sitio, pero lo que realmente sucede es que el sitio en que se encuentra no es el verdadero, con todas las probabilidades de que le roben su contraseña y demás datos de ingreso.
5. Vulnerabilidades de Inyección SQL
Las llamadas “vulnerabilidades de inyección SQL” se producen cuando mediante alguna técnica se inserta o adjunta código SQL que no formaba parte de un código SQL programado. Esta técnica se utiliza con el propósito de alterar el buen funcionamiento de la base de datos de una aplicación, “inyectando” código foráneo que permita el proceso de datos que el atacante desee.
6. Vulnerabilidades de denegación del servicio
La técnica de denegación de servicio se utiliza con el propósito de que los usuarios no puedan utilizar un servicio, aplicación o recurso. Básicamente lo que produce un ataque de denegación de servicio es la pérdida de la conectividad de la red de la víctima del ataque por el excesivo consumo del ancho de banda de la red o de los recursos conectados al sistema informático.
7. Vulnerabilidades de ventanas engañosas
Sin duda esta es una de las vulnerabilidades más conocidas y comunes entre los usuarios, sobre todo para aquellos que ya llevan algunos años tras un monitor. Esta técnica, también conocida como “Window Spoofing” permite que un atacante muestre ventanas y mensajes de notificación en la computadora de la víctima, que generalmente consisten en hacernos saber que somos ganadores de un premio o situaciones similares.
Afortunadamente, los sistemas antivirus más modernos y la cultura de Internet más aguda que tienen ahora los usuarios de computadoras lograron que esta metodología ya no sea tan eficiente como antes.
Los problemas de seguridad que provocan las vulnerabilidades
Como hemos visto en docenas de publicaciones, sitios web y sufrido en carne propia, estas vulnerabilidades, también conocidas por muchos usuarios como “agujeros de seguridad”, son una fuente prácticamente inagotable de problemas, ya que como podremos ver en las siguientes líneas, se presentan en prácticamente todos los programas, sean estos gratuitos, como de código abierto y software comercial.
Entonces, podría considerarse que la forma más simple de definir a las mencionadas vulnerabilidades es que se trata de partes del código fuente del programa que no han sido concienzudamente escritas teniendo en cuenta la seguridad global de una aplicación, y por lo tanto es posible que un hacker, o una persona con el suficiente nivel de conocimientos, los aproveche para comprometer la integridad de un sistema informático, sea un mainframe o un simple PC de escritorio.
Para conocer más de cerca esta problemática de seguridad, en la tabla que te mostramos debajo de estas líneas te ofrecemos información más detallada acerca de los tipos de ataques que se aprovechan de las vulnerabilidades más conocidas.
Interrupción: El daño que produce un ataque de interrupción es básicamente conseguir que un recurso de la red deje de estar disponible para sus usuarios.
Intercepción: Básicamente un ataque de intercepción permite que el intruso atacante acceda a la información que tenemos almacenada en nuestro sistema o que estemos transmitiendo por la red a otros usuarios de la misma.
Modificación: El propósito de un ataque de modificación es básicamente es interceptar y manipular la información sin estar autorizado para ello, lo que produce enormes daños debido a que la empresa o el usuario está trabajando con datos que son falsos debido a la mencionada manipulación.
Fabricación: Este tipo de ataque es uno de los más peligrosos, ya que ha sido diseñado para engañar al usuario cuando accede a un sitio web que cree legítimo. En este caso se crea una página web idéntica a una original, por ejemplo el sitio de un banco, por lo cual el usuario ingresa datos personales y confidenciales que luego le son sustraídos con fines delictivos.
Como evitar ser víctimas de un hacker a través de una vulnerabilidad
Las vulnerabilidades más peligrosas son aquellas que le permiten a un atacante ejecutar código arbitrario, lo que le brindaría la oportunidad de tomar el control de nuestra PC, sometiéndola a sus deseos o requerimientos.
También existen casos donde un software o sistema operativo instalado en una computadora puede contener una vulnerabilidad que permite su exploración remota, es decir a través de la red. Por lo tanto, un atacante conectado a Internet, al explorar tal vulnerabilidad en el software, podrá obtener acceso autorizado a la computadora en donde este programa se encuentra instalado.
Estas son las principales y más sólidas soluciones que podemos poner en práctica para evitar ser víctimas de un hacker:
Mantener siempre actualizado nuestro software con los últimos parches provistos por sus desarrolladores.
Poner en práctica un firewall y conocer bien sus prestaciones y características
También es buena idea no instalar cualquier programa que descarguemos u obtengamos desde Internet o cualquier otra fuente, siempre tratar de preferir aplicaciones reconocidas y que tengan un soporte actualizado.
Pero sin duda alguna, la herramienta que mejor nos defenderá de esta amenaza es un buen software de seguridad, al estilo de AVG o Avast!, dos excelentes aplicaciones con las cuales vamos a poder sentirnos bien seguros.
Cómo crear un protocolo de seguridad para no ser víctimas de vulnerabilidades
Como venimos mencionando, las vulnerabilidades son un tema peligroso que debe ser tomado con la mayor seriedad posible. En estos casos, lo mejor que podemos hacer es mantener un protocolo de seguridad, que aunque suene un poco desmesurado para usuarios que solo utilizan la computadora para tareas de oficina, lo cierto es que es la mejor manera de prevenir cualquier tipo de incidentes en relación a la seguridad de los datos y documentos que tengamos almacenados en la computadora, así como de las transacciones que hagamos a través de bancos o tiendas de ventas online como Mercado Libre o eBay.
El mejor y más sencillo protocolo de seguridad que podemos implementar es aquel que implica nuestro control y comprobación en de todas las actividades que realizamos en la computadora. Es por ello que en las siguientes líneas intentaremos aplicar una serie de mecanismos de seguridad que abarcan desde el control hasta la recuperación en caso de que se haya perpetrado un ataque.
Esta política de seguridad incluye herramientas de protección como antivirus y firewalls, pero sobre todo nuestra atención en lo que estamos haciendo. Básicamente, esta política de seguridad de divide en tres partes:
Prevención: Poner especial atención en la actualización de antivirus, estar atentos a los enlaces que aparecen en correos electrónicos, Evitar cualquier circunstancia en la que podamos entrar en peligro.
Detección: Estar seguros que contamos con las herramientas adecuadas para la detección de ataques. En este sentido, lo mejor es utilizar una herramienta antivirus que también nos ofrezca la posibilidad detectar intrusiones en la red.
Recuperación: Este ítem implica la creación de copias de seguridad de todos nuestros documentos, así como el inmediato cambio de todas las contraseñas que utilizamos para los servicios de Internet y demás. Lamentablemente, lo más probable cuando se detecte una violación, es que tengamos que tomar medidas drásticas, y es por ello que las mencionadas copias de seguridad son esenciales para recuperar el buen funcionamiento de nuestras actividades.
Obviamente, de los tres ítems mencionados, a los dos que debemos prestar más atención son a la prevención y la detección, ya que una vez que hemos sido atacados, la recuperación de los datos puede ser una tarea desagradable y que nos demande mucho tiempo en realizar, y no siempre podremos volver exactamente al lugar en que nos encontrábamos.
Otro punto a tener en consideración es el análisis forense, cuyo propósito es analizar el alcance de la violación, y la metodología empleada. Claro está que para poder utilizar estas herramientas deberemos tener un amplio conocimiento, para poder evaluar correctamente la información presentada por los mencionados sistemas forenses.