Aunque en este año aún no hay evidencia de que la IA pueda desplazarlos, el Día del Programador los releva. Por si acaso.
La manera en que esta profesión mutará, de cara a los aportes de la Inteligencia Artificial generativa están por verse.
Para quienes piensan que las efemérides sólo consagran a grupos vulnerables y especies en peligro de extinción, el Día del Programador no les resulta disonante.
Y es que, con los enormes cambios y otras transformaciones que está planteando el desarrollo acelerado de la Inteligencia Artificial generativa (GenIA), no son pocas las profesiones que se desdibujan.
En apariencia, ahora se requiere de más programadores que nunca. El hecho de que las herramientas de GenIA puedan progranar, sin embargo, introduce algunas dudas.
Hoy, más que nunca su labor es vital para la economía digital, el desarrollo tecnológico y la innovación en diversos sectores.
El trabajo del programador impacta a todos los usuarios de software e Internet.
Cada interacción en línea, aplicación móvil o sistema operativo está respaldada por el trabajo minucioso de los desarrolladores. Por otro lado, delegar estas tareas genera vulnerabilidades de seguridad adicionales.
“Comprender los riesgos de la cadena de suministro de software es esencial, ya que un eslabón débil puede comprometer la seguridad de todo el sistema”, destacó el gerente de ingeniería de Check Point, empresa líder en ciberseguridad, Alejandro Botter.
El especialista recalcó la creciente dependencia de componentes de terceros, como bibliotecas de código abierto o herramientas de desarrollo.
Dicha dependencia incrementa las vulnerabilidades de la gestión diaria.
Rol primordial en la era digital
Botter destacó también que, en el Día de Programador, hay que reconocer la importancia de este rol en nuestra sociedad.
Los programadores no sólo crean nuevas funcionalidades sino que, también aseguran que el software sea eficiente y seguro.
“Desde las grandes empresas hasta los usuarios individuales, todos se benefician de los avances que los programadores aportan a la tecnología”, recordó Alejandro Botter, gerente de ingeniería de Check Point.
No obstante, el desarrollador es solo una (importante) parte de un proceso de producción. En el contexto del desarrollo de software, la cadena de suministro se refiere a los diferentes componentes, herramientas y actores involucrados en su creación y distribución.
Esta cadena, sin embargo, puede ser un punto vulnerable que los ciberdelincuentes aprovechan para infiltrarse en sistemas y robar datos sensibles.
Un ejemplo claro de esto paso en el 2020, cuando un software de terceros llamado Orion puso a más de 30.000 organizaciones en una posición comprometida debido a un ataque a la cadena de suministro en el sistema de SolarWinds.
Para garantizar la seguridad en el ciclo de vida del desarrollo de software, es fundamental seguir los siguientes ocho pasos:
1.- Identificar componentes del software
Es esencial que las organizaciones mantengan un inventario completo y actualizado de todos los componentes de software, incluyendo:
- Bibliotecas de terceros
- Frameworks
- Y herramientas utilizadas en el desarrollo
Esto les permite tener una visión clara de los elementos que componen el software, lo que facilita la gestión de riesgos y la identificación de posibles vulnerabilidades.
2.- Evaluar la seguridad de proveedores
Las organizaciones deben evaluar rigurosamente la postura de seguridad de sus proveedores de software de terceros.
Es crucial que estos proveedores sigan prácticas de seguridad sólidas, tales como auditorías regulares, certificaciones de seguridad y cumplimiento normativo.
De este modo, se mitigan los riesgos potenciales que estos proveedores pueden introducir en la cadena de suministro de software, garantizando que los componentes adquiridos sean seguros y conformes con los estándares de seguridad exigidos.
3.- Analizar y priorizar riesgos
Después de identificar los componentes y evaluar la seguridad de los proveedores, las organizaciones deben realizar un análisis de riesgos detallado. Este análisis permite determinar el impacto y la probabilidad de las amenazas identificadas.
El uso de metodologías estándar, como ISO 31000, ayuda a priorizar los riesgos según su nivel critici, de modo que los recursos y esfuerzos se concentren en mitigar las amenazas más graves.
4.- Implementar controles de seguridad
Completado el punto anterior, las organizaciones deben implementar controles de seguridad adecuados para mitigar los riesgos críticos.
Esto incluye adoptar procesos de revisión del código y actualizar el software así como implementar herramientas que ayuden a los equipos en estas tareas.
Esto también logrará prevenir la posibilidad de que se exploten vulnerabilidades, como es el caso del WAF (firewall de aplicaciones web) y el IPS (sistema de prevención de amenazas).
5.- Monitorear continuamente
Las organizaciones deben adoptar una estrategia de monitoreo continuo para mantener la seguridad de su software, debido a que siempre emergen nuevas vulnerabilidades y amenazas.
Esto supone, entre otras cosas, la realización de:
- Auditorías regulares
- Escaneos automáticos
- Y pruebas de penetración
Además, se requiere implementar sistemas de alertas en tiempo real. Esto es fundamental para responder, rápidamente, a las amenazas emergentes.
También para ajustar las medidas de seguridad de manera proactiva.
6.- Crear una lista de materiales de software (SBOM)
Las organizaciones deben establecer una lista de materiales de software (SBOM) que detalle todos los componentes de software utilizados, incluidos módulos de código abierto y dependencias.
Esto permite una respuesta rápida y efectiva ante vulnerabilidades descubiertas en componentes de terceros.
Contar con una SBOM bien organizada facilita las auditorías de seguridad, mejora la transparencia y asegura una gestión de riesgos eficiente.
7.- DevSecOps
DevOps es un conjunto de prácticas culturales que apuntan a unificar el desarrollo de software (Dev) y las operaciones de TI (Ops).
La integración de prácticas de seguridad (Sec) en el flujo de trabajo de DevOps se denomina DevSecOps.
Este enfoque garantiza que la seguridad no sea solo una verificación final, sino un proceso continuo que se integra en cada etapa del ciclo de vida del desarrollo de software, en línea con los principios de los controles de seguridad de la información.
8.- Respuesta y recuperación ante incidentes
Si ocurre un ataque, es fundamental contar con una estrategia de respuesta bien diseñada.
Un enfoque estructurado para responder a un ataque garantiza que pueda detectar, contener y recuperarse rápidamente de cualquier incidente de seguridad, minimizando su impacto en su organización.