6 soluciones para mitigar riesgos en la seguridad de la cadena de suministro de software

Amenazas a la cadena de suministros de software

La cadena de suministros del software abarca a todo aquello que cumple una función en el desarrollo de una aplicación, en algún punto de su ciclo de vida de desarrollo (SDLC). Debido a que los elementos que forman una cadena de suministros de software suelen ser muchos y muy variados – éstos incluyen herramientas de desarrollo, código propietario y de terceros, métodos de deploy, interfaces y protocolos, infraestructura, prácticas de desarrollo, por mencionar algunos – los riesgos que amenazan la seguridad de la cadena de suministro de software son altos. Para mitigar esos riesgos se requieren técnicas y herramientas especializadas.

A medida que crecen las tendencias a reutilizar código y a adoptar estrategias nativas de nube, los atacantes cibernéticos encuentran nuevos lugares desde donde lanzar sus ataques. Cualquier debilidad en la seguridad de la cadena de suministro de software permite la entrada a los atacantes, que una vez dentro pueden recorrer toda la cadena, robando información sensible, tomando el control de los sistemas o instalando malware. Por esa razón es que existen herramientas específicas para mantener bajo control a los riesgos que amenazan a la cadena de suministros de software.

Si aún no te decides por Bitbucket o GitHub para usar como repositorio de código fuente, en este artículo te ayudo e elegir el más conveniente para tus necesidades.

Mitigando los riesgos en la cadena de suministros

La solución ideal de seguridad para cadena de suministros debe facilitar la detección de vulnerabilidades, permitiendo escanear imágenes, contenedores, código fuente, bibliotecas, entre otros elementos que componen la cadena de suministros del software. Adicionalmente, es útil que dicha solución pueda también eliminar las amenazas, o por lo menos alertar adecuadamente sobre su existencia y sugerir formas de eliminación.

Leer más

¿Bitbucket o GitHub? El mejor repositorio de código fuente para usar en 2022

Bitbucket vs GitHub

A la hora de elegir una solución de repositorios para administración y control de código fuente, Bitbucket y GitHub aparecen inevitablemente como los dos principales contendientes. En esta nota te cuento en qué se parecen y en qué se diferencian, y en qué situaciones conviene elegir uno u otro.

El control de versiones se utiliza en el desarrollo de software para mantener bajo control los cambios en el código fuente. En todo proyecto de desarrollo de software se hace imprescindible utilizar algún mecanismo de control de código fuente y versionado, ya sea para posibilitar el trabajo en equipo sobre proyectos en común, para facilitar el rastreo de bugs o para simplificar la gestión de configuración del software.

Herramientas de control de código fuente

Git es un sistema de control de versiones de código abierto que, desde su creación en el año 2005, ha sido adoptado por millones de desarrolladores en todo el mundo. A pesar de su adopción casi universal, utilizar Git por sí solo es difícil, principalmente por que no cuenta con interfaces de usuario amigables. Por eso han surgido herramientas que se basan en la tecnología Git y le suman servicios y funcionalidades adicionales.

Entre las herramientas que ofrecen un front-end para Git hay dos que se destacan por su popularidad: BitBucket y GitHub. Sigue leyendo para enterarte de las diferencias entre estas dos herramientas, junto con las ventajas y desventajas de cada una.

Leer más

Primeros pasos en ciencias de datos con Anaconda

Anaconda Python download

Tal como lo expresa su sitio web oficial, Anaconda Distribution ofrece una forma sencilla de trabajar en ciencia de datos y aprendizaje automático con los lenguajes de programación Python y R en una única computadora. Puedes descargar e instalar el lenguaje de programación Python para sistemas operativos Windows, MacOS o Linux e iniciar inmediatamente tu carrera trabajando en ciencia de datos.

Kaa, la serpiente pitón (Python) junto a Mowgli, en el Libro de la Selva.
Kaa, la serpiente pitón (Python) junto a Mowgli, en el Libro de la Selva.

¿Qué es Anaconda Python y para qué sirve?

Para decirlo en forma resumida, Anaconda es una distribución y un gestor de paquetes completo, curado, de alta calidad y alto rendimiento para software de código abierto como Python, R y sus muchos paquetes asociados. Ideal para data scientists. Impulsado por la empresa Continuum Analytics (Anaconda Inc.), Anaconda Distribution está pensada para ser utilizada principalmente por científicos de datos. Está disponible para Linux, Windows y MacOS.

Leer más

Primeros pasos con contenedores Docker

Contenedores Docker

La función principal de la plataforma de contenedores de código abierto Docker está explícita en su eslógan: «Build, Ship and Run Any App, Anywhere», lo que significa «construye, distribuye y ejecuta cualquier app en cualquier parte». Concretamente, lo que propone Docker es simplificar las tareas de armar entornos de desarrollo o de prueba que emulen las condiciones de ejecución de una aplicación.

Qué son los contenedores en Docker

El concepto de contenedor en Docker reemplaza al concepto de máquina virtual, ofreciendo una alternativa más fácil de manejar para el desarrollo y testeo de aplicaciones. La principal diferencia entre una máquina virtual y un contenedor Docker es que la máquina virtual contiene todos los elementos que componen una máquina real: sistema operativo completo, BIOS, memoria, disco y demás recursos de hardware virtualizado.

A diferencia de los contenedores de la vida real, los contenedores Docker son livianos e independientes.
A diferencia de los contenedores de la vida real, los contenedores Docker son livianos e independientes.

En cambio, un contenedor Docker es un entorno de ejecuión que empaqueta el código y todas sus dependencias para correr aplicaciones de manera confiable, independientemente del hardware o del sistema operativo en donde se lleva a cabo la ejecución real. Los contenedores Docker son paquetes de software livianos, independientes y ejecutables que incluyen todo lo que puede necesitar una aplicación para ejecutar: código, runtimes, herramientas del sistema, bibliotecas del sistema y configuraciones.

Leer más

8 Plataformas no-code para crear apps sin saber programar

Con las plataformas no-code, la programación tradicional sería prehistoria.

Las mejores herramientas para crear software sin escribir código en 2022

Hoy en día todo se hace con apps (o lo que antaño se conocía como «aplicaciones»), ya sea pedir una pizza, averiguar cómo llegar a algún sitio, hacer una transacción bancaria, aprender a tocar un instrumento, entre infinidad de cosas más. A veces se nos ocurre una idea para una app y nos gustaría saber cómo construirla, pero nos detiene el hecho de no saber programar. Buenas noticias: con las plataformas no-code, ya no es necesario saber programar para crear aplicaciones.

¿Qué son las plataformas no-code?

Las plataformas no-code son aplicaciones con cierto grado de inteligencia que facilitan la interpretación de nuestras necesidades o las de los usuarios, con la finalidad de implementarlas y crear software sin saber programar.

Programar bailando, como Hugh Jackman en "Swordfish". Las plataformas no-code hacen que desarrollar software sea fácil, pero no tanto...
¿Programar bailando, como Hugh Jackman en la película «Swordfish»? Las plataformas no-code hacen que desarrollar software sea fácil, pero no tanto…

¿Es posible crear apps sin programar gratis, crear aplicacion sin programar, crear app sin codigo, crear una app gratis sin saber programar o realizar diseño web sin codigo? La respuesta a todas esas preguntas es un rotundo «sí». Pero aunque no haya que escribir código, igual hay que trabajar en otras tareas del desarrollo, como el diseño de bases de datos o el diseño de interfaces de usuario. Y algo muy importante: hay que dominar bien la parte de interpretación de necesidades. Hasta ahora no existe una herramienta a la que le podamos explicar con palabras lo que queremos lograr y, en base a nuestras especificaciones, cree una app que las implemente.

Las plataformas no-code utilizan distintos medios para que les «expliquemos» nuestras necesidades. Por ejemplo, un diseño de base de datos, un diagrama de flujo o un diseño de pantalla.

No tan buenas noticias: para crear aplicaciones web o móviles con plataformas no-code no hace falta saber programar, pero sí es necesario saber diseñar software, ya sea a través del diseño de bases de datos, diseño de flujos de trabajo o diseño de interfaces/experiencia de usuario.

Leer más