Hace poco, circuló una infografía donde se mencionan los ataques más esperados de 2024. No es de sorprender que los primeros 2 sean Phishing y Ransomware. Es interesante ver que el punto de partida de atacantes está centrado en personas, ya que los usuarios son quienes cuentan con privilegios, información y acceso a sistemas por la propia naturaleza del trabajo a realizar día con día.
Es por esta razón que la seguridad es responsabilidad de todos en una organización, recordando que una brecha surgirá por el punto de menor resistencia. Ahora bien, sabemos que no todos los usuarios de una organización gustan del mundo de los 1 y 0, por lo que hay necesidad de desarrollar y mantener estrategias de seguridad que tome en cuenta a los usuarios y a entender los sistemas que usan, tanto técnicas como de procesos y procedimientos, para cualquier empresa o entidad.
Esta realidad nos lleva a otro problema, el cual es la creciente exposición a líneas de código. Con esto me refiero a la vasta oferta que hay de aplicaciones, sistemas, soluciones, servicios de nube, movilidad, etc. A final de cuentas, la idea de traducirlo a código es por lo siguiente: Vulnerabilidades. Todo usuario está expuesto a ellas, aunque no quiera, ya que es una parte intrínseca del desarrollo de las aplicaciones que usan; no hay código perfecto. Veamos los hechos y números:
¿Cuántas líneas de código tiene:
- un sistema operativo?
- Mac OS X y Windows 10, más de 80 millones de líneas.
- Ubuntu, alrededor de 50 millones de líneas.
- un navegador?
- Chrome, más de 6 millones de líneas.
- Firefox, más de 20 millones.
- un servicio o aplicación?
- Office, más de 40 millones de líneas.
- LinkedIn, alrededor de 8 millones.
- Zoom, hacia 100 mil líneas.
- Photoshop, estimado en 10 millones.
- Google Suite, ¡2 mil millones!
Ahora, se puede buscar en Google cuantos bugs (errores) se esperan por cada mil líneas de código, donde hay estimados conservadores de entre 1 y 15 errores, otros lo llevan a 75. Ahora, vamos a los números de CVE, la lista de vulnerabilidades conocida y reportada cada año por todos los fabricantes:
2018 | 2019 | 2020 | 2021 | 2022 | 2023 |
16,557 | 17,334 | 18,325 | 20,171 | 25,227 | 29,065 |
No todos los errores de código son de seguridad, el riesgo real es entender que no podemos saber dónde saldrá el siguiente bug que se convertirá en un CVE potencialmente dañino para una organización, y que incluso hay vulnerabilidades que no son reportadas hasta que es muy tarde, ya que hay gente que se dedica a atacar directamente y genera ganancias con ello. Hay explotaciones de vulnerabilidades que se venden por 1 a 2 millones de dólares.
¿Por qué explicamos todo esto? Vamos de vuelta a lo básico:
- No podemos evitar errores en código, por mucho que haya metodologías de codificación segura. El ser humano es imperfecto, su código también lo será, la Inteligencia Artificial ayuda a codificar, pero no está centrada en hacer código seguro y existen estudios donde se identifica código más inseguro con la IA.
- Un usuario necesita aplicaciones para interactuar. Con los servicios de nube, los navegadores se vuelven el pan de cada día, así como las aplicaciones a utilizar en diferentes medios. El desarrollo de software se agilizó con los Contenedores, donde se pueden tener librerías enteras sujetas a errores.
- Por consecuencia, los usuarios estarán expuestos a recibir intentos de explotación. No nos referimos a que codificarán. Nos referimos a que recibirán correos, documentos, o aplicaciones maliciosas. Y como dice el dicho, la curiosidad mató al gato: solo se requiere un clic.
De los otros ataques mostrados en la infografía mencionada al principio, por supuesto explotación de vulnerabilidades, ataques a portales o los mismos ataques de Malware (no solo Ransomware) apalancan toda esta cadena de explotación.
Ahora la pregunta que sigue es: ¿qué hacer? Parece que la batalla está perdida. Me gustaría dejar 4 recomendaciones al lector:
- Establecer una estrategia de entendimiento del entorno. No se puede proteger lo que no se conoce. Y saber que siempre, en cualquier infraestructura, habrá debilidades a atender.
- Establecer una cultura de concientización para todo el personal y que puedan entender que los ataques importan. La seguridad es para todos, y cada persona debe verse tanto como usuarios y guardián de información.
- Contar con una arquitectura que permita la prevención. No hay empresa pequeña para un atacante. Ellos tienen motivaciones, recursos y conocimientos técnicos que pueden vulnerar cualquier organización.
- Tener planes de recuperación y respuestas a incidentes. Pensar en escenarios que puedan presentarse. Saber que habrá ataques exitosos y poder recuperar la operación, información, ajustes de accesos, etc. Minimizar el impacto es fundamental.
Entendiendo esta secuencia, podemos enfocar esfuerzos para minimizar el impacto, estableciendo controles y entendiendo que toda la infraestructura estará expuesta, tarde o temprano. Cerrar las puertas a tiempo puede ser la diferencia entre dormir un poco más tranquilo, o ser parte de la estadística.