El auge del software de código abierto ha proporcionado una gran cantidad de beneficios tanto a los desarrolladores como a las empresas. Pero la falta de conocimiento sobre cómo escribir código seguro y usar librerías de código abierto (Open Source) de manera segura, está causando que las empresas, sin saberlo, permitan a los piratas informáticos comprometer sus sistemas.
La demanda de los consumidores de dispositivos conectados a Internet y las aplicaciones de software que los gestionan se ha disparado en los últimos 10 años. Las aplicaciones inteligen- tes ahora se extienden más allá de los smartphones a otros dispositivos, con televisores, videoporteros y cámaras de seguridad habilitados para la red, cada vez más comunes. El software es un impulsor dominante y crucial de la innovación en el comercio, que ayuda a las organizaciones a ser más ágiles y competitivas.
La funcionalidad de estos dispositivos y aplicaciones está determinada por el código fuente escrito por los desarrolladores. De acuerdo con al AppSec Market Report en 2017 se crearon alrededor de 111 mil millones de líneas de código de software nuevo. Dentro de ese volumen masivo de código nuevo, inevitablemente surgen millones de vulnerabilidades en el código, y los problemas de seguridad se agravan con el tiempo. La creciente dependencia del software, tanto en la empresa como en la sociedad, significa que las brechas de datos son más impactantes que nunca y los piratas informáticos están atacando activamente las vulnerabilidades en el código. En el Informe Verizon’s Data Breach Investigations Report 2018, las aplicaciones web fueron identificadas como la fuente más común de brecha de datos e incidentes de seguridad.
“Las aplicaciones de software son el objetivo principal de los atacantes que desean apoderarse de los activos y datos de una empresa”, dice Paul Farrington, CTO de Veracode en EMEA. “Las aplicaciones web y móviles representan más de un tercio de las brechas de datos, y los ataques en la capa de aplicación están creciendo en un 25 por ciento anual”.
Mientras que hace 20 años el software se desarrollaba en su mayoría de forma interna utilizando código propietario, Gartner ahora pronostica que siete de cada diez aplicaciones se ejecutan en bases de datos de código abierto. Los desarrolladores de hoy afrontan una presión abrumadora para entregar más software en plazos más cortos. Las librerías Open Source pueden ayudar proporcionando piezas de código pre-construidas que brindan una funcionalidad específica sin tener que construirlo desde cero. En consecuencia, el 90 por ciento del código en muchas aplicaciones hoy en día puede provenir de librerías de código abierto. El software de código abierto permite a los desarrolladores cumplir con los requisitos comerciales más rápidamente y a un menor coste, pero también presenta nuevos riesgos.
Cuando el software sale al Mercado bajo licencia de código abierto, significa que el autor original tiene la intención de dar dicho código a los desarrolladores para que lo utilicen, estudien y mejoren libremente. La cantidad de colaboración que estos proyectos pueden fomentar adelanta algunos de los mayores avances en tecnología, y hace que el software sea más accesible para las personas que no pueden pagar los derechos de licencia.
Los beneficios del código abierto pueden ser tan atractivos que las empresas se olviden de los riesgos que implica el uso de fragmentos de software públicos en todas sus aplicaciones.
Las vulnerabilidades en el código Open Source son apreciadas por los piratas informáticos simplemente por la prevalencia de su uso. Una vez que un hacker descubre una vulnerabilidad en un paquete o librería de código abierto, puede explotar potencialmente miles de sistemas que ejecutan ese código, amplificando en gran medida el impacto de la vulnerabilidad.
Según el informe del estado de seguridad del software de Veracode, el 88% de las aplicaciones Java contienen al menos una vulnerabilidad. Una sola vulnerabilidad en un fragmento de código puede afectar a cientos de miles de aplicaciones.
“La comunidad de código abierto está creciendo exponencialmente y el deseo de que las empresas se muevan más rápido alienta a los desarrolladores a utilizar software abierto, lo que reduce el costo para las empresas y significa que los plazos de entrega pueden ser más rápidos que nunca”, dice Paul Farrington, quien predice que hay más de 5 millones de componentes únicos de código abierto que existen en varios repositorios de software con los que los desarrolladores interactúan. “Pronto, esto se convertirá en cientos de millones debido a la tasa de contribución de los desarrolladores”.
Es realmente clave garantizar que los desarrolladores no solo piensen en el riesgo teórico, sino que también se les proporcionen soluciones para detectar los riesgos que existen en el software.
Los desarrolladores son, sin duda, conscientes de la existencia de fallos de seguridad en el software de código abierto. Por ejemplo, la vulnerabilidad de Apache Struts estuvo detrás de la violación masiva de datos que expuso la información personal de 143 millones de estadounidenses en marzo de 2017.
Pero si bien pueden apreciar el imperativo de crear un código seguro, falta el conocimiento de cómo hacerlo. La educación y la concienciación en última instancia permitirán a los equipos de desarrollo mejorar la forma en que crean un código seguro. Veracode proporciona soluciones que permiten a los desarrolladores identificar y corregir los defectos de seguridad a los pocos segundos de escribir el código, y también les dice si las librerías y frameworks de código abierto que están utilizando tienen alguna vulnerabilidad.
Las tecnologías de automatización, como la inteligencia artificial y el aprendizaje automático, están acelerando la capacidad de buscar defectos en el software, pero será un equilibrio adecuado entre las máquinas y los seres humanos el que tenga más éxito. Si bien las computadoras son excelentes para buscar los rasgos de posibles defectos en los datos a velocidad y escala, no pueden prescindir de nuestra capacidad humana para priorizar cómo abordar y remediar los fallos encontrados.
“Utilizamos el aprendizaje automático para identificar posibles vulnerabilidades con una precisión cada vez mayor”, dice Paul Farrington. “Sin embargo, los humanos son excelentes para encontrar la secuencia de pasos que los hackers deben emprender para comprometer ese sistema. Utilizamos la combinación adecuada de automatización e ingenio humano. Llamamos a estas personas Manual penetration testers, buscando defectos de seguridad para probar que estos existen en los sistemas “.
En última instancia, los desarrolladores deben pensar en dónde se ubicará el software una vez que entre en producción o se instale en el dispositivo de un usuario. Las aplicaciones pueden existir en entornos hostiles, mucho más tiempo de lo previsto originalmente y los hackers pueden hacer cualquier cosa para subvertirlos. Como tales, los desarrolladores deben buscar un entendimiento del código seguro y trabajar en conjunto con los equipos de seguridad para eliminar la fricción del proceso de desarrollo.
“A medida que el uso de contenedores continúa reduciendo drásticamente el tiempo requerido para implementar y escalar software, estamos a la vanguardia del desarrollo de técnicas para garantizar la seguridad de las aplicaciones que existen en entornos de contenedor”, dice Paul Farrington. “Sin embargo, abordar el problema desde el origen, cuando los desarrolladores escriban el código, será la forma en que abordemos el problema a escala».
“Es realmente clave garantizar que los desarrolladores no solo piensen en el riesgo teórico, sino que también se les proporcionen herramientas para detectar los riesgos que existen en el software. Veracode señala lo que llamamos “métodos vulnerables” para que podamos mostrarles a los desarrolladores el punto de riesgo entre el código que escriben y el exploit de seguridad que existe en el componente Open Source. Eso es una verdadera ventaja para los equipos de desarrollo que no tienen tiempo para lidiar con potenciales amenazas, sino que deben centrarse en lo que verdaderamente supone un riesgo”.
Para mayor información en relación a las vulnerabilidades que, con más frecuencia, se están encontrando en la industria y especialmente para entender cómo las organizaciones están reduciendo su riesgo, descargue Veracode’s State of Software Security Volume 9 en veracode.com/soss.
1 comentario en “El software deja a las empresas expuestas a ciberdelincuentes”
Pingback: Aumento en recompensas a las personas que denuncien delitos relacionados con Cibersecurity - Assist Consultores