Hitos históricos recientes traen consigo grandes disrupciones a nivel global, empujan con fuerza la aceleración de la transformación digital y la necesidad de repensar el sector de la ciberseguridad. ¿Cuál es el rol del testing de software en todo esto? ¿Qué es el Pentesting? ¿Por qué es importante prevenir?
“Habrá nuevas tecnologías, habrá nuevas vulnerabilidades. Habrá nuevos ‘exploits’ y, desde luego, habrá malware que aproveche esos ‘exploits’”, enfatizó días atrás Rohit Ghai, CEO de RSA, en la Conferencia RSA 2022, en San Francisco.
“Vivimos en un mundo hiperconectado, en el que lo físico y lo digital son ya indistinguibles. ¿Cómo vamos a seguir el ritmo de este torrente de disrupciones globales? La disrupción es un maestro duro pero justo en la escuela darwiniana de la supervivencia”, esbozó.
Rohit preguntó y respondió: “En un mundo enamorado del cambio, ¿por qué deberíamos preocuparnos por las constantes? Bueno, las constantes son la base del progreso científico. Si la disrupción es un maestro duro, las constantes son ese buen amigo al que siempre se puede acudir en busca de ayuda. Las constantes nos dan una plataforma para construir soluciones”.
La ciberseguridad es considerada como uno de “los riesgos que más empeoraron desde el inicio de la pandemia” según el Informe de Riesgos Globales 2022 del Foro Económico Mundial. De acuerdo al mismo, el malware aumentó un 358% en 2020, mientras que el ransomware se incrementó en un 435%.
“El ransomware como servicio permite que incluso los delincuentes no técnicos puedan ejecutar los ataques, una tendencia que podría intensificarse con la llegada de de los programas maliciosos basados en la Inteligencia Artificial”.
Una pandemia sin precedentes, una guerra trágica… Hoy vemos cómo diferentes hitos históricos, combinados con los avances incesantes de las tecnologías, están dejando marcas profundas. Y con ellas, están emergiendo nuevas formas de vulnerar la seguridad digital en todo el globo, obligando a repensar la ciberseguridad.
Desde las empresas de tecnología más avanzadas hasta los gobiernos de los países más desarrollados. Desde entidades financieras hasta individuos, escuelas y hospitales. Nadie está exento de ser víctima de ciberataques. Cada segundo somos vulnerables a nuevas formas de ataques maliciosos, con efectos en nuestra vida diaria, economía y seguridad.
En Abstracta, estamos convencidos de que el testing con foco en la calidad del software es crucial en el camino de la transformación digital, acelerada por las disrupciones, en las cuales hizo foco Rohit Ghai en la conferencia RSA. El testing debería ser una constante en el ciclo de vida de todo software, como parte de la prevención y cocreación de software seguro y de calidad.
Con todo esto en mente, entrevistamos, por un lado, a Gustavo Betarte, CTO de Tilsor, empresa partner de Abstracta que es especialista en ciberseguridad; y, por otro, a Roger Abelenda, CTO de Abstracta.
¿Cómo es la aplicación de normativas en relación a la ciberseguridad en una sociedad globalizada?
Gustavo: Muy difícil. El derecho requiere definir la ley y jurisdicción aplicable, y muchas veces no es la del país en el que se comete el ilícito. O sí lo es, pero el autor no está en el territorio. Los tratados entre Estados y la cooperación internacional son la solución conocida hasta el momento.
¿Cómo se pueden prevenir los delitos informáticos desde la ciberseguridad?
Gustavo: No es posible prevenir todos los delitos informáticos. Primero, se hace necesario identificar a qué tipo de delitos informáticos puede estar expuesto el sistema que se desea proteger. Esto varía de sistema en sistema. Existen diversas técnicas y procedimientos de prevención: autenticación, control de acceso, encriptación de las comunicaciones y compartimentación, entre otras. Por otro lado, la definición, aplicación y control de políticas organizacionales de seguridad son un complemento importante a las estrictamente técnicas.
Roger: Me parece que lo principal es tener conciencia de la gravedad y el riesgo, y a partir de ahí definir e implementar efectivamente políticas y mecanismos adecuados para reducir el impacto de ataques informáticos. Algo crucial en este aspecto es hacerlo de una manera que sean adecuados a la empresa que se aplican y encontrar un balance entre seguridad (con el riesgo asociado) y practicidad /eficiencia de trabajo. Un ejemplo típico de esto son las políticas de seguridad implementadas en bancos versus las que necesita nuestra casa o una empresa pequeña con poco impacto y atractivo para atacantes.
¿Cómo se gestiona un incidente una vez ocurrido?
Gustavo: El proceso de gestión de incidentes comprende diversas etapas, cada una con su propia problemática y dificultad. Siendo muy esquemático y conciso: etapa de primera respuesta, etapa de contención, etapa de análisis, y etapa de remediación.
Roger: Lo primero siempre es parar el incidente, bloquear el ataque. Luego, evaluar los daños causados identificando si pueden haberse abierto nuevos puntos de ataque; transmitir el impacto del mismo para ser transparentes con los interesados (clientes, empresas asociadas, etc); e implementar medidas para evitar futuros ataques similares u otros que se hayan detectado. Estos esfuerzos no necesariamente tienen que ser secuenciales. Se pueden ir haciendo en paralelo, es decir siendo transparentes con nuestros clientes de lo que está pasando y mantenerlos al tanto mientras se resuelve.
¿Qué rol cumple el testing de software en todo este camino?
Gustavo: El testing de software, y en particular el dirigido a verificar la corrección desde el punto de vista de seguridad, es un mecanismo preventivo.
Roger: Es fundamental al desarrollar software tener en consideración buenas prácticas para evitar ataques y prácticas conocidas que hacen al software vulnerable. Esto requiere del alineamiento y responsabilidad compartida de todos los implicados del desarrollo del mismo: desarrolladores, testers, product owners y project managers, sysadmins, etc. El testing de software en particular es fundamental como una manera de tener un control adicional sobre lo implementado, ya sea con pruebas exploratorias, manualmente automatizadas o mediante el uso de herramientas de búsqueda de vulnerabilidades y/o análisis estático de código.
¿Qué es el Pentesting y por qué es relevante?
Gustavo: Mientras que un análisis de vulnerabilidades tiene como objetivo identificar la presencia de vulnerabilidades conocidas y ya reportadas, por ejemplo escaneando rápidamente un rango de direcciones IP, el test de penetración va un paso más allá e intenta demostrar cómo esas vulnerabilidades pueden ser explotadas por un potencial atacante para dañar a la empresa u organización donde se ejecuta el sistema analizado.
En este tipo de evaluaciones el analista emula la actividad propia de un atacante, buscando identificar formas y métodos que permitan vulnerar la seguridad del sistema bajo análisis. Para eso se utilizan herramientas automáticas pero también se realizan trabajos de tipo artesanal. Además de utilizar herramientas de detección, se usan herramientas de explotación. Y en caso de ser necesario, se desarrollan plugins y/o herramientas a utilizar en cada caso particular.
Roger: El pentesting, o test de penetración, trata de acceder a un sistema y obtener permisos más allá de los esperados y permitidos. La práctica en sí intenta detectar potenciales puntos de ataque para luego identificar cómo remediarlos. Es como tener un “hacker” personal que te identifica los agujeros para que vos vayas después a taparlos. En definitiva, el Pentesting es relevante como medida preventiva.
¿Por qué es importante la prevención en ciberseguridad?
Gustavo: Porque permite anticipar y prepararse ante eventuales tipos de ataques. Sin embargo, la prevención sola no es suficiente. Hay que complementar con mecanismos de detección y de reacción. Obtener alto grado de seguridad en un sistema no es posible usando únicamente mecanismos preventivos. ¿Por qué? Entre otras razones, debido a que eso significa que se es consciente y se sabe cómo manejar todas las vulnerabilidades del sistema que se pretende proteger.
Roger: El principal problema con la seguridad y todas las medidas preventivas es que hasta que no nos atacan no nos damos cuenta del impacto real que puede tener un ataque y el no tener las medidas adecuadas implementadas. Un ataque informático puede llevar a empresas a perder clientes debido a la pérdida de confianza de los mismos, llevar a juicios, generar que clientes/personas sean atacadas directamente por filtración de datos y, lo que es más importante, a mucha gente a perder sus trabajos y vivir momentos muy estresantes y difíciles. Una política de prevención adecuada hace que podamos dormir más tranquilos y que podamos desarrollar nuestras actividades cotidianas de una manera óptima, sin mayores interferencias. Es muy importante que las empresas inviertan activamente en este tipo de medidas, así como que en el desarrollo y testing de software siempre tengamos en cuenta estos aspectos y las buenas prácticas al respecto.
¿Cuáles son las principales características de una buena estrategia de ciberseguridad?
Roger: Es prioritario tener un protocolo para potenciales ataques previstos, que incluyan actores intervinientes, escalado de incidentes y tiempos. Además, siempre hay que tener un plan de backup ante situaciones imprevistas. Como todo plan, si vos ya lo tenés, podés ejecutarlo de manera rápida y evitar puntos ciegos. La alternativa es improvisar en el momento y bajo presión, lo cual puede llevar a problemas potencialmente mayores que el ataque en sí mismo. Considero que la principal característica de una buena estrategia de ciberseguridad es priorizar el factor humano, porque las tecnologías son desarrolladas y configuradas por seres humanos. Entonces, además de recurrir al testing y otras formas de prevención, es muy importante enfocarse en las personas, trabajar con ellas para informarlas y mantenerlas comprometidas con la seguridad.
¿Buscas un proveedor para los servicios de pruebas de software?
En Abstracta, ponemos a tu disposición el compromiso y el talento especializado de +100 ingenieros de calidad expertos en agile. Contáctanos y entérate cómo podemos ayudarte a lanzar tu producto o liberar nuevas versiones de tu app con total confianza.
¡Síguenos en LinkedIn, X, Facebook, Instagram y YouTube para ser parte de nuestra comunidad!
Otros contenidos relacionados
Testing de Software, clave para el éxito de los Pagos Digitales
Cómo planificamos nuestras estrategias en cada proyecto
Calidad de Software y Testing: Prácticas y desafíos para 2022
Posts Relacionados
Testing de seguridad con Selenium: integración de OWASP ZAP
¿Cómo podemos testear posibles vulnerabilidades de seguridad de un sitio web mientras ejecutamos pruebas funcionales automatizadas? ¿Es funcional mi software si tiene un issue de seguridad? En este artículo, detallamos cómo hacer la integración de Selenium y OWASP ZAP para lograr un testing de seguridad con Selenium eficiente y de calidad.
Pruebas funcionales y no funcionales: tipos, diferencias y más
Las pruebas funcionales y no funcionales son necesarias para la creación de software de calidad, desde una visión holística, considerando distintos factores. Conoce en este artículo sus diferencias, tipos, enfoques y técnicas.