Reporte del Taller de expertos
Nova-Coloso
Julio 2015
Índice de contenido
Introducción......................................................................................................................................................3
Estado del Arte.................................................................................................................................................8
Sistemas basados en micro-núcleo.............................................................................................................8
QNX..............................................................................................................................................................8
seL4..............................................................................................................................................................9
Sistemas basados en hipervisores..............................................................................................................9
El micro hipervisor Nova..............................................................................................................................9
El sistema operativo Qubes.......................................................................................................................10
Sistemas operativos y distribuciones GNU/Linux minimalistas.................................................................11
Propuesta de solución....................................................................................................................................13
Capa de sistema operativo........................................................................................................................13
Capa de librerías........................................................................................................................................14
Capa de marco de trabajo propio...............................................................................................................15
Capa de aplicaciones.................................................................................................................................15
Análisis Estructural prospectivo. Identificación de los factores clave de futuro para el desarrollo de
solución propuesta.....................................................................................................................................15
Acciones Propuestas.....................................................................................................................................20
1ra etapa: Concepción...............................................................................................................................20
2da etapa: Preparación..............................................................................................................................20
3ra etapa: Evolución del modelo productivo..............................................................................................21
4ta etapa: Elaboración...............................................................................................................................22
5ta etapa: Consolidación............................................................................................................................22
Consideraciones sobre el modelo de negocio...........................................................................................22
Recursos (Humanos, Tecnológicos y Logísticos)......................................................................................23
Conclusiones..................................................................................................................................................24
Introducción
Varios son los ejemplos históricos del peligro que representan las vulnerabilidades de los sistemas
informáticos para la soberanía de un país, desde la explosión en la antigua Unión Soviética del
gaseoducto transiberiano, considerado uno de los tiros de gracia al campo socialista, hasta el más
reciente, en junio del 2013, cuando el contratista de la Agencia de Seguridad Nacional (NSA)
norteamericana, Edward Snowden, hizo públicos documentos clasificados como alto secreto donde se
exponía que Estados Unidos de América tiene la capacidad de espiar el contenido de gran cantidad de
usuarios de Internet.
Para solventar estos riesgos países de todos los continentes se han dado, con mayor y menor éxito, a la
tarea de migrar sus sistemas informáticos críticos a alternativas libres y de código abierto (FOSS, por sus
siglas en Inglés). Ejemplo de ello son Venezuela, Alemania, Brasil, Bolivia y Argentina.
En Cuba La migración a FOSS está planteada desde el año 2004 pero no ha fructificado con la fuerza
necesaria por diversas razones, entre ellas:
Ausencia de una adecuada legislación, regulaciones y/o procedimientos que indiquen el uso de
FOSS en las empresas cubanas.
La baja calidad de las herramientas que propone el FOSS para el trabajo de oficina es un
impedimento en la migración de los procesos burocráticos.
Existe desplegado en la isla gran cantidad de aplicaciones, accesorios y equipamiento no
compatibles con el FOSS .
No existe infraestructura para colocar las actualizaciones de FOSS, esto favorece en el entorno
actual, amparados en la ley 127, a los sistemas operativos de Microsoft con actualizaciones que
provienen de internet.
El esfuerzo necesario para la migración a FOSS es comúnmente más caro que la información que
se maneja en las empresas.
Existe una baja preparación generalizada, en las empresas, sobre los temas relacionados con las
TICs.
Existe en Cuba desde los años ´90 una pequeña comunidad de usuarios de software libre formada
en su principio por administradores de red y luego enriquecida por estudiantes y académicos de
carreras afines a las tecnologías de la informática y las comunicaciones (TIC). Esta comunidad en
la actualidad se denomina Grupo de Usuarios y Tecnologías Libres (GUTL) y no se ha logrado
conjugarla con el empeño estatal de la migración a FOSS.
Figura 1: Análisis de las 4S para distintos escenarios de utilización de sistemas
operativos en Cuba.
En el plano teórico de la migración a software libre se considera importante destacar el trabajo de
Pierra el cual define los principios del desarrollo de aplicaciones para la OACE (Pierra,
2012). Estos permiten evaluar la factibilidad de la adopción o desarrollo de tecnologías FOSS de
acuerdo a las necesidades de la sociedad cubana y constituyen una herramienta aplicable a los
sistemas operativos. Específicamente dichos principios son:
Seguridad: El sistema debe ser diseñado, implementado, desplegado y configurado de
forma tal que no pueda ser obligado a fallar intencionalmente. Debe mantenerse correcto y
predecible a pesar de los esfuerzos que se realicen para comprometer su fiabilidad.
Soberanía Tecnológica: Mediante la formación de recursos humanos capacitados será un
sistema operativo independiente, con capacidad de decidir sobre las tecnologías
reutilizadas y desarrolladas.
Socio-adaptabilidad: Será un sistema operativo hecho por cubanos para cubanos,
alineado a las políticas que orienta la informatización nacional y optimizado para las
condiciones tecnológicas del País.
Sostenibilidad: Mantendrá un proceso flexible y versátil, en constante innovación y
consonancia con las nuevas tendencias tecnológicas internacionales, garantizando modelos
de comercialización que permitan el ingreso de divisas por el concepto de exportación de
productos y servicios.
Como resultado de la evaluación de los principios antes mencionados en los diferentes escenarios
de migración del país (Figura 4) el autor considera que: la utilización de Windows garantizaría un
proceso de informatización sostenible y acelerado utilizando las mejores tecnologías del mercado,
el desarrollo de un sistema operativo desde 0 garantizaría los niveles de seguridad requeridos en
las TIC demandados por el país en los tiempos actuales pero el costo de desarrollo inherente al
mismo implicaría años de desarrollo hasta obtener un resultado, sumándole a esta situación la
inviabilidad de portarlo para todo el hardware existente en el país y por último una solución
balanceada para los cuatro aspectos es el desarrollo de una distribución de GNU/Linux (Pierra,
2012).
No obstante los desarrollos cubanos de distribuciones basadas en GNU/Linux (Nova y Coloso) no
están ajenos a las dificultades mencionadas anteriormente que no les han permitido avanzar a
mayor velocidad y se encuentran además con otros problemas como:
El éxodo de desarrolladores capacitados ha debilitado los equipos que en muchos casos
fueron sistemáticamente destruidos obligándolos a refundarse casi desde cero perdiendo
los avances alcanzados.
La insuficiente preparación en este tipo de desarrollo que se imparte en las carreras afines, en
todas las universidades del país, impide incorporar en masa a estudiantes y recién graduados a la
producción.
Los equipos de desarrollo se sienten a menudo desmotivados al no ver el impacto de sus
productos en la sociedad.
Es muchas veces más costoso modificar las aplicaciones ya existentes en el FOSS que
desarrollarlas desde cero.
Aún con los problemas antes expuestos, la migración a FOSS y el desarrollo de distribuciones en Cuba ha
dejado algunos desarrollos como saldo positivo. A continuación se presenta una tabla que enumera los
desarrollos propios a los que han llegado Nova y Coloso.
Indicador Nova Coloso Observaciones
Variante para Escritorio X X
Variante para Servidores X X
Variante para Clientes Ligeros X* X Nova: Descontinuado.
Variante para Máquinas de Bajas
PrestacionesX
Herramientas de control de
dispositivos USBX X
Plataformas de Compilación masiva X XLa diferencia entre las plataformas de compilación,
determina que ambas distribuciones sean incompatibles.
Indicador Nova Coloso Observaciones
Gestión de actualizaciones y
dependenciasX X
Cumplimiento con las normas LSB
(Linux Standard Bases)X
Esto influye en la estructura del sistema de archivos y
otras configuraciones.
Cifrado Sistema Archivos X* Descontinuado desde 2009
Entorno de escritorio propio XGuano, Moonlight, NovaShell, WindowsShell y
KioskoElecciones.
Colaboración con la comunidad
internacionalX*
Los oficiales no pueden colaborar con personal extranjero
y en ocasiones se limita con el nacional.
Sistema de clonación X
Variante para dispositivos móviles X*La base tecnológica es diferente y no abarca todos los
modelos de dispositivos móviles.
Sistema de Correo Propio y Seguro X
Sistema de gestión de seguridad
centralizadaX
Herramienta de administración
centralizada de servicios telemáticosX
Despliegue en instituciones del país X X* Se limita solo a las FAR.
Alianzas con fabricantes de Hardware X
Entorno de escritorio propio XGuano, Moonlight, NovaShell, WindowsShell y
KioskoElecciones.
Tabla 1: Relación de desarrollos Nova/Coloso
Es importante señalar que en gran parte de los casos hay un esfuerzo duplicado para lograr
objetivos comunes. cada uno de manera independiente. Aparte de los desarrollos propios antes
mencionados ambas distribuciones comparten un gran número de aplicaciones. Estas se pueden
agrupar en cuatro tipos de acuerdo a su ritmo de aparición de vulnerabilidades de seguridad:
Figura 2: Aparición estable de vulnerabilidades Figura 3: Aparición despreciable de
vulnerabilidades
Figura 4: Aparición incremental de
vulnerabilidades
Figura 5: Desaparición de vulnerabilidades
En el sistema base de la distribución cubana de GNU/Linux, Nova, hay actualmente 58 aplicaciones que
poseen una tasa sostenida en la aparición de vulnerabilidades por año, 9 con tendencia incremental, 17
con tendencia decreciente y 128 cuya tasa de aparición de vulnerabilidades puede despreciarse. Si
consideramos como software con propensión a errores (SPE) aquellos que tienen un ritmo incremental o
estable en la aparición de vulnerabilidades podemos decir que el 31% de las aplicaciones de Nova
pertenecen a este conjunto y esto aplica a la mayoría de las distribuciones convencionales de GNU/Linux
(Coloso, Ubuntu, Debian, OpenSuse, Fedora, Centos).
Esto demuestra que de cualquier forma ninguna de las distribuciones resuelven las necesidades en cuanto
a seguridad informática del país dado que a pesar de que tenemos la posibilidad de acceder al código
fuente de estas últimas, no contamos con la capacidad de revisar las decenas de millones de líneas de
código (LOC, por sus siglas en Inglés) que las componen. Esto crea falsas expectativas sobre una
seguridad aumentada en el producto.
En consecuencia de todo lo antes expuesto el objetivo del presente taller es diseñar una base tecnológica
y logística, utilizando el conocimiento generado por los proyectos Nova y Coloso, que se acomode a las
necesidades de la informatización de la sociedad cubana y solvente los problemas ocurridos en el proceso
de migración a FOSS que permita asegurar la información en las comunicaciones, los procesos y la
infraestructura crítica del país.
Estado del Arte
La seguridad en el diseño y desarrollo de los sistemas operativos constituye un tema recurrente tanto en la
academia como en la industria. Por ello es pertinente explorar las principales soluciones existentes
relacionadas al tema. Se destaca como principales tendencias dentro de la temática: los sistemas basados
en micro-núcleo (también conocidos en la literatura como micro-kernel o μ-kernel), hipervisores
(hypervisors) o monitor de máquina virtual (virtual machine monitor), la verificación formal de sistemas y la
defensa de sistemas en profundidad.
Sistemas basados en micro-núcleo
Se considera un sistema basado en micro-núcleo aquel que provee un conjunto de primitivas o llamadas
mínimas al sistema para implementar servicios básicos como espacios de direcciones, comunicación entre
procesos y planificación básica. Todos los otros servicios (gestión de memoria, sistema de archivos,
operaciones de E/S, etc.), que en general son provistos por el núcleo, se ejecutan como procesos
servidores en espacio de usuario (Herder, 2005).
Las principales ventajas de su utilización son la reducción de la complejidad, la descentralización de los
fallos y la facilidad para crear y depurar controladores de dispositivos. Según los defensores de esta
tendencia, esto mejora la tolerancia a fallos y eleva la portabilidad entre plataformas de hardware.
Por otro lado, sus principales dificultades son la complejidad en la sincronización de todos los módulos que
componen el micro-núcleo y su acceso a la memoria, la anulación de las ventajas de zero copy 1 y la
integración con las aplicaciones. Además, los procesadores y arquitecturas modernas de hardware están
optimizadas para sistemas tradicionales que pueden mapear toda la memoria. Sus detractores le achacan
también y fundamentalmente, mayor complejidad en el código, menor rendimiento y limitaciones en
diversas funciones. Entre los principales exponentes de esta arquitectura se encuentran QNX y seL4, los
cuales son revisados a continuación.
QNX
QNX es un sistema operativo, según sus creadores, robusto y escalable capaz de correr tanto en
pequeños dispositivos de con recursos limitados como en entornos de cómputo distribuidos. Este
implementa la API2 POSIX3 y es compatible con procesadores de la familia X86 y AMD64. Entre las
principales ventajas de su arquitectura centrada en micro-núcleo se encuentra: la creación de código
portable entre diferentes líneas de productos, marco de trabajo común, tiempo de desarrollo reducido.
1 Operaciones de cómputo en las que el procesador no realiza operaciones de copia de datos.
2 Interfaz de programación de aplicaciones.
3 Acrónimo de Portable Operating System Interface.
seL4
Otro sistema basado en arquitectura de micro-núcleo es el seL4 que es una versión formalmente
verificada del L44. Este es el primer sistema operativo formalmente verificado lo cual le tomó a sus
desarrolladores un esfuerzo considerable de 25 hombres / año. Este también tiene capacidades para la
virtualización y 55 000 LOC. Uno de los principales aspectos que lo hacen atractivo es que mediante la
verificación formal proveen una vía para comprobar si han sido introducidas modificaciones (puertas
traseras) en el proceso de compilación. Además permite separar las aplicaciones confiables de las
heredadas sin modificar su código.
Sistemas basados en hipervisores
Un hipervisor es una plataforma que permite aplicar diversas técnicas de control de virtualización para
utilizar, al mismo tiempo, diferentes sistemas operativos (sin modificar o modificados, en el caso de
paravirtualización) en una misma computadora. Es una extensión de un término anterior, «supervisor»,
que se aplicaba a los núcleos de los sistemas operativos.
El micro hipervisor Nova
El micro hipervisor Nova es un puente en la brecha entre los micro kernel y los hipervisores tradicionales.
Como se puede observar (Figura 5) sobre este se colocan una capa que contiene drivers, algunas
aplicaciones y el manejador de particiones. Sobre esta capa se crean las máquinas virtuales que nunca
interactúan directamente sobre el hardware. Este proyecto no se centra en agregar controles de seguridad
el sistema operativo sino en hacer una tecnología de virtualización más segura que las que existen en la
actualidad.
4 Famila de micro-núcleos generalmente utilizados para implementar S.O. similares a Unix.
Figura 6: Arquitectura del micro hipervisor Nova
Nova solo contiene 36 000 LOC. Comparando con que solo en el kernel Linux hay 11 700 000 LOC, en
materia de asimilación tecnológica, esta propuesta es mucho más sostenible. Este proyecto provee una
solución para la utilización de sistemas privativos de una forma más segura, con mínimo esfuerzo.
El sistema operativo Qubes
Qubes es un sistema operativo, al igual que el hipervisor Nova, provee una forma segura de ejecutar
aplicaciones no confiables aislándolas en diferentes dominios. En la Figura 10 se muestra una vista
simplificada de la arquitectura del sistema donde las máquinas virtuales (VM) son la base principal. Este
sistema se favorece de las tecnologías VT-d y TXT de Intel lo que le permite crear dominios para los
controladores más seguros y minimiza la superficie de ataque. El usuario puede dividir sus VMs en
categorías: AppVMs para las aplicaciones que tienen acceso a las redes como clientes de mensajería,
navegadores Web, etc., y las ServiceVMs que se diferencian en que son las que se utilizan para proveer
servicios como el acceso a disco y la interacción con la tarjeta de red. Toda esta complicada filosofía se
desenvuelve de manera tal que es transparente para el usuario final el cual puede ejecutar aplicaciones de
una u otra VM solo que estas no pueden corromperse entre sí.
Esta propuesta está basada en el hipervisor Xen que tiene 600 000 LOC y sobre ella también pueden ser
utilizados de forma segura los sistemas operativos privativos que hay hoy desplegados en la isla por lo
que también supone con un mínimo esfuerzo una solución sostenible al aseguramiento de la información
en las estaciones de trabajo.
Figura 7: Sistema operativo Qubes
Sistemas operativos y distribuciones GNU/Linux minimalistas
Además del estudio de sistemas basados en la virtualización se revisaron sistemas operativos y
distribuciones GNU/Linux que minimizan sus vulnerabilidades reduciendo las LOC. A continuación se
exponen los mismos en una tabla comparativa.
CategoríaEspacio
en discoRequerimientos
Arquitectura
Soportada
Navegación
Web
KolibriOS OS 1.2MB 1GHz CPU, 8MB RAM x86 Incipiente
ReactOS OS 300MB 1GHz CPU, 64MB RAM x86 Sí
Slitaz/DSL/TinyCore OS > 50MB 1GHz CPU, 256MB RAM SíAndroid OS 500MB 1GHz CPU, 512MB RAM x86,ARM,MIPS Sí
Tabla 2: Comparativa sobre distintos sistemas operativos estudiados
De estos ReactOS y Android fueron los que llamaron la atención del equipo. ReactOS porque provee un
sistema compatible con Windows NT completamente libre y ha sido seleccionado por el gobierno ruso
como el segundo sistema operativo a utilizar en la gestión estatal, lo que supone en el futuro cercano una
mejora en sus funcionalidades aún incompletas. La adopción de este sistema operativo propondría una
solución libre para aquellos puestos de trabajo de bajas prestaciones que a causa de las aplicaciones o
hardware no pudiesen ser alcanzadas por las soluciones basadas en la virtualización.
Figura 8: Arquitectura del SO Android
Android, por su parte, muestra varios puntos fuertes en la seguridad desde su diseño como son: El
sistema de gestión de permisos de las aplicaciones, que informa al usuario de las capacidades que tienen
las aplicaciones y requieren de la autorización de este para ser instaladas, la firma de paquetes para
certificar que siempre provengan del mismo desarrollador, el sistema raíz es solo lectura, no existe un
usuario administrador por defecto, Android reduce las LOC y capas de abstracción del sistema.
Para establecer una comparación Nova 2015 tiene instalados 1745 paquetes de software, Android para su
compilación solo requiere 189.
Android no solo es un paradigma en cuanto a la seguridad de los sistemas basados en GNU/Linux
sino que aporta un marco de trabajo único que estandariza las tecnologías para el desarrollo y
permitió que este sistema operativo creciera a 1 576 347 aplicaciones en solo 5 años (Debian que
tiene el repositorio más abundante de las distribuciones GNU/Linux tiene 36 000 aplicaciones en
20 años). Este sistema es el único que brinda la posibilidad de crear con un solo esfuerzo un
sistema operativo para todos los tipos de hardware (Escritorio, Servidores, Móviles y Accesorios)
siendo así la más sostenible de todas las soluciones estudiadas.
Este estudio permitió definir que es posible crear diseños de sistemas operativos donde la
seguridad no dependa totalmente del código fuente. También demostró que es posible utilizar las
aplicaciones con propensión a errores de manera más segura a través del encapsulamiento, que
permite aislarlas completamente y minimizar la superficie de ataque del sistema. Demostró que
hay técnicas de verificación formal a gran escala para validar matemáticamente la seguridad del
software y que hay sistemas con pocas bibliotecas de terceros que son altamente sostenibles.
Propuesta de solución
Para llegar a una propuesta de solución, se evaluaron los diferentes escenarios donde se realizaría el
despliegue del sistema operativo cubano con el objetivo de lograr el mayor impacto y aceptación del
mismo. Los escenarios evaluados se mencionan a continuación:
Control de procesos
Servidores
✔ Hardware-GNU-
Compatible
✔ Hardware-No-GNU-
Compatible
Dispositivos de redes
✔ Switches
✔ Routers
✔ Modems
✔ Firewalls
Hardware de propósito
específico
• Autómatas de control
Escritorios
• Máquinas de bajas
prestaciones (Clientes
Ligeros)
• Máquinas con soporte
Intel-VT
• Máquinas sin soporte
Intel-VT
Virtualización y Nube
Aplicaciones legadas o
heredadas-GNU-Compatible
Aplicaciones legadas o
heredadas-No-GNU-
Compatible
Dispositivos móviles
Hardware de propósito
general
• Impresoras
• Cámaras
Tabla 3: Escenario de hardware.
A partir de los elementos evaluados y teniendo en cuenta los posibles escenarios donde el sistema debe
lograr mayor impacto, la sostenibilidad a partir de la disponibilidad de recursos humanos, técnicos y
logísticos en general, se expresa a continuación la que se estimó como la mejor variante de solución. Un
modelo en capas con el objetivo de lograr alta cohesión y bajo acoplamiento.
Es importante acotar que esto debe enfrentarse en una concepción sistémica, dado que el desarrollo por
separado de una sola de las capas no resolvería el problema de la seguridad inmediatamente, ni a futuro.
Capa de sistema operativo
El proyecto debe tender a desarrollar un núcleo del sistema operativo propio. Este, por sus características,
no debe ser Linux. Se valora además que debe poseer como característica el ser seguro por diseño y
poseer la menor cantidad de LOC con el objetivo de hacer sostenible los mantenimientos y las auditorías
al código fuente. En algunos escenarios, lograr una arquitectura segura del sistema operativo e incluso de
las aplicaciones legadas o heredadas, será una tarea relativamente sencilla si se empleara un hipervisor.
No obstante, no es posible enfrentar todos los escenarios bajo esta propuesta por no contar el hardware
con capacidades de virtualización. Existe la posibilidad de palear este último aspecto empleando hardware
que se ajuste a las necesidades, pero no es posible lograrlo en todos los casos.
Por tanto, no podemos asegurar que existirá un núcleo único, si no dos o más variantes para ajustarse
mejor a todos los posibles escenarios, incluidos los dispositivos móviles. Las diferentes variantes, deberán
exportar un conjunto de interfaces comunes para garantizar el trabajo de las capas superiores.
Se incluirán en esta capa las modificaciones necesarias para poder soportar la mayor cantidad de
hardware.
Figura 9: Propuesta de solución.
Capa de librerías
Se va a crear con el objetivo de interactuar con la capa inferior a partir de las interfaces definidas para ello
y brindar un conjunto de funcionalidades de bajo nivel a la capas superiores. De preferencia, estas
bibliotecas de funciones serán diseñadas para ser seguras, de poca complejidad interna y de mínima
cantidad de LOC. Deberá garantizar la seguridad de las capas inferiores y forzar el diseño seguro de las
superiores. Ejemplos notables en el estado del arte aparecen bajo nombres como Genode, Graphene,
LibOS entre otros. En esta capa se agregarán controles de seguridad como Antivirus, Detectores de
intrusos, Cortafuegos, Gestión de Salvas y Actualización.
Capa de marco de trabajo propio
Su objetivo es, a partir de emplear las interfaces definidas por la capa inferior, ofrecer la mayor cantidad de
funcionalidades que se emplean de forma general en la construcción de aplicaciones, brindando interfaces
de alto nivel que facilite los procesos de desarrollo. Exige ofrecerla con documentaciones que especifiquen
y ejemplifiquen de la forma más clara posible, todas las interfaces existentes para su empleo posterior,
además dotarla de una SDK.
Lograr que se puedan desarrollar aplicaciones rápido y fácil o reutilizar las ya existentes, es un factor
determinante en la adopción de facto del sistema. Es indispensable que se estandaricen las tecnologías
para unificar el desarrollo.
Se valoró como posibilidad de ofrecer un motor JS, atendiendo a la facilidad de programación y la cantidad
de recursos humanos con conocimientos en el país. También se valoró la posibilidad de adaptar el marco
de trabajo de Android a esta capa inferior, con el objetivo de reutilizar las 1 576 347 de aplicaciones ya
existentes. Esta capa es determinante para la sostenibilidad del sistema y su amplia adopción.
Capa de aplicaciones
Esta es la que va a dotar al sistema de funcionalidad ante los ojos del usuario final. Aquí se pretende que
sea mayormente desarrollada por terceros a lo largo del país. Incluirá inicialmente algunas aplicaciones de
alto impacto social.
Análisis Estructural prospectivo. Identificación de los factores clave de futuro para
el desarrollo de solución propuesta
La primera de las labores del estudio prospectivo consiste en tratar de identificar y jerarquizar en función
de su importancia, cuales son los principales factores que determinarán el futuro de la solución propuesta.
Para llevar adelante esta tarea se ha aplicado la herramienta denominada análisis estructural. Esta
herramienta es un método de estructuración de una reflexión colectiva que ofrece la posibilidad de
describir un sistema, en nuestro caso el futuro del sistema operativo cubano.
Tras la consulta a los expertos y la unificación de los diferentes listados obtenidos, el listado de las
variables con las que se ha trabajado son las siguientes:
No Variables Abreviatura Descripción de la variable Agrupación
1 Recursos Humanos RR.HH.Acceso a recurso humanos con buena
formación técnica.Sostenibilidad
2 Código fuente CF
Disponibilidad del código fuente de los
sistemas heredados y la capacidad de
poder revisarlo
Soberanía Tecnológica
3 Hardware HWCompatibilidad hardware desplegado e
importado con la solución propia.Soberanía Tecnológica
4Complejidad de la
solución propiaComplejidad
Complejidad lógica de la solución propia y
su tamañoSoberanía Tecnológica
5 Base legal Base Legal
Bases legales existentes que soporten el
proceso de migración y adopción de
nuevas tecnologías compatibles con las
4S.
Socio-Adaptabilidad
6 Institucionalización ADMONCreación de una estructura administrativa
que ejecute el proyecto.Sostenibilidad
7Relaciones Cuba-
EE.UU.Cub-EEUU Estado de las relaciones Cuba-EE.UU. Socio-Adaptabilidad
8Documentación del
software heredadoDOC
Documentación de usuario y de desarrollo
del software heredadoSostenibilidad
9Encriptación de las
InformaciónEncrypt
Cifrado de los canales de comunicación y
almacenamientoSeguridad
10Desarrollo de un
protocolo IP propioSeg Prop
Implementación de soluciones de
seguridad propiasSeguridad
11
Estandarización de un
marco de trabajo
propio
MTP (sdk)
Ofrecer las herramientas y la
documentación para que terceros
desarrollen aplicaciones
Sostenibilidad
12Interacción Hombre
MáquinaHCI
Usabilidad y Experiencia de Usuario sobre
las aplicaciones e interfaces del sistema
desarrollado
Socio-Adaptabilidad
13Aplicaciones
DisponiblesAPP
Calidad y cantidad de aplicaciones
disponiblesSocio-Adaptabilidad
14 Seguridad por diseño SEG-DISCrear sistemas que sean seguros por
diseñoSeguridad
15Automatización de los
procesosAUTO-PROC
Automatizar todos los procesos de
desarrollo que sea posible
Herramientas de integración continua,
Gestion de Repositorios, de Compilación
masiva.
Soberanía Tecnológica
No Variables Abreviatura Descripción de la variable Agrupación
16Mecanismos de
soporteSoporte Infraestructura y capacidad de dar soporte Sostenibilidad
17Mecanismo de
actualizaciónActualizac
Infraestructura y capacidad de actualizar
las soluciones desplegadas
Socio-
Adaptabilidad
18Investigación y
DesarrolloI+d
Investigar para generar el conocimiento
asociado a la base tecnológica.Sostenibilidad
19 Capacitación FormaciónCapacitación de los RR.HH. humanos
involucrados en la soluciónSostenibilidad
20 Industria y Empresa Industria
Respaldo comercial y modelos de negocio
que sustente la solución. Compromiso de
fabricante y distribuidores
Sostenibilidad
Tabla 4: Variables utilizadas para el estudio de prospectivas
Conocer el binomio causa-efecto de los elementos que influyen en el futuro del desarrollo es
imprescindible para diseñar en el futuro las acciones estratégicas necesarias que permitan afrontar con
éxito y potenciar las oportunidades que de este proceso puedan surgir. Visualizar esta interacción es
también necesario para generar los argumentos pertinentes en la posterior redacción de los escenarios.
Figura 10: Mapa de motricidad/dependencia potencial directa
Mediante la utilización del programa MIC-MAC se realizó la multiplicación matricial, que se aplica a la
matriz directa del análisis estructural permitiendo estudiar la difusión de los impactos por los bucles
interactivos y de reacción y en consecuencia, jerarquizar los factores teniendo en cuenta todos los efectos
indirectos. El resultado queda plasmado en un plano Motricidad-Dependencia que se muestra en la Figura
10. Según el método aplicado los resultados obtenidos pueden interpretarse mediante la ubicación de las
variables en los cuadrante:
En el cuadrante inferior izquierdo aparecen las variables autónomas. Se trata de una serie de variables
con menor dependencia e influencia indirecta. Se puede considerar que, aunque todas las variables que
se han incluido en el análisis son relevantes para el futuro del sistema, el grupo de variables autónomas
no tendrán tanta importancia estratégica cara al futuro del sistema analizado.
En el ángulo contrario se sitúan las variables claves, que se caracterizan por tener tanto un alto grado de
motricidad como por ser muy dependientes del resto de variables. Como se puede apreciar las variables
más influyentes y dependientes para el éxito de la solución son “Investigación y Desarrollo” y “Recursos
Humanos” .
En la zona superior izquierda, se encuentran las variables determinantes, son poco dependientes y muy
motrices, según la evolución que sufran a lo largo del periodo de estudio se convierten en frenos o
motores del sistema.
Por último abajo a la derecha se localizan las denominadas variables resultado que se caracterizan por
su baja motricidad y alta dependencia, y suelen ser indicadores descriptivos de la evolución del sistema.
Figura 11: Grafo de motricidad potencial indirecta
La “Investigación y el Desarrollo”, los “Recursos Humanos” y la “Complejidad de la solución” forman un
triángulo de relaciones sólidas, destacándose una relación cíclica entre las dos primeras. Estas son las
variables que tienen un mayor valor estratégico de futuro de la solución en la informatización de la
sociedad.
Tras la descripción realizada de la distribución de las variables en función de su ubicación en el plano, el
siguiente paso lo constituye el análisis del eje estratégico. Este eje está compuesto por aquellas variables
con un nivel de motricidad que las convierte en importantes en el funcionamiento del sistema combinado
con una dependencia que las hace susceptibles de actuar sobre ellas. La proyección sobre este eje
presenta, por tanto, los retos estratégicos para el desarrollo del sistema operativo cubano, sobre el cual se
proyectarán las acciones a corto, mediano y largo plazo.
Acciones Propuestas
Inicialmente se propone crear un equipo inicial de entre 10 y 20 expertos para llevar a cabo la creación de
la primera versión del sistema operativo cubano, apoyados por una pirámide de investigación que permita
a mediano plazo el crecimiento progresivo de los recursos humanos. El trabajo se dividiría en 5 fases. Las
tres primeras etapas orientadas a la obtención de un prototipo funcional y las otras dos a la terminación y
consolidación del producto y la organización.
1ra etapa: Concepción
Proponer al Consejo de Ciber Seguridad Nacional la creación de una comisión especial que
atienda, administre y asegure la creación del sistema operativo cubano.
Definir la estructura administrativa y organizativa sobre la cual se va a desarrollar el proyecto.
Realizar un estudio de prospectiva a nivel nacional para determinar cuales son las variables que
hay que potenciar para garantizar la adopción del sistema operativo cubano.
Comenzar a elaborar el fundamento legal que respalde la decisión política de apoyo al sistema
operativo cubano y que institucionalice su uso.
Proponer un presupuesto para que las infraestructuras críticas, los OACE, etc., compren el
sistema operativo cubano y los servicios de diseño y capacitación de seguridad de sus
infraestructuras.
Definir los niveles de seguridad que debe de poseer las diferentes entidades.
Definir los niveles de certificación que deben de poseer los operadores del sistema operativo
cubano.
Preparar personal para asumir el soporte nivel 3 de Nova y Coloso.
Terminar compromisos pendientes: Nova 2015, migración del MINFAR.
Congelar nuevos desarrollos independientes para concentrar esfuerzos.
Asumir los nuevos contratos de migración y despliegue en conjunto.
2da etapa: Preparación
Conformar el equipo de expertos.
Diseño de prototipos de solución.
Garantizar capacitación e intercambio de conocimiento dentro y fuera del país.
Realizar alianzas con ReactOS, Kolibri, GENODE, etc.
Ganar en capacidades de análisis de código fuente, extracción de funcionalidades y síntesis de
programas.
Participar en conferencias internacionales de seguridad y hacking. Fundamentalmente para los
teléfonos y dispositivos móviles.
Adquirir hardware para construir equipos que permitan encapsular a diferentes dispositivos de las
infraestructuras críticas. También podrían emplearse para introducir datos en redes de más alta
clasificación de seguridad.
Brindar acceso a internet de banda ancha en las casas para permitir incrementar el tiempo de
desarrollo, posibilitar el teletrabajo y mejorar la superación personal.
Garantizar equipo de cómputo portátil (medio básico) a cada miembro del equipo inicial.
Capacitar el personal en los dominios de conocimiento relacionados en la Tabla 5.
Seguridad
Principios de seguridad
Controles de acceso
Mecanismos de seguridad
Controles de seguridad
Análisis de riesgos
Ciber-Inteligencia
CVE/CWE (Vulnerabilidades,
clasificación e histórico)
Reglas de sentido común de la
seguridad
Criptografía (Sidechannels)
Dispositivos Diseño de firmware
Ingeniería inversa y verificación.
Sistema Operativo RTOS
MicroKernel
Microhipervisor
Arquitecturas de seguridad
Drivers
Embebidos
Hardware Drivers
Certificación
Diseño propio
Diseño seguro
Telefonía celular Diseño de banda base
Osmocom_BB
Ingeniería inversa de Banda
base.
Ingeniería de
software Automatización de los procesos
de desarrollo
Procesos de desarrollos seguros
Requisitos de seguridad
Casos de abuso
Patrones de diseño seguro
Verificación formal
Extracción de funcionalidades y
protocolos
Pruebas unitarias
Compilación e integración
continua
Simulación de eventos de
seguridad y comportamiento
del software
Tabla 5: Relación de dominios de conocimiento asociados al sistema operativo cubano
3ra etapa: Evolución del modelo productivo
Diseñar un modelo de negocio que haga sostenible el futuro desarrollo del SO.
Conformación de los equipos de trabajo por áreas o componentes.
Automatización del proceso de desarrollo.
Definición de las pautas tecnológicas y metodológicas de la interacción hombre-máquina, el diseño
y desarrollo seguro.
Definición de mecanismo de despliegue, actualización y soporte.
4ta etapa: Elaboración
Desarrollo y pruebas de la solución.
Desarrollo del Marco de Trabajo Propio.
Desarrollo de herramientas que provean controles de seguridad.
Implementar soluciones que permitan ejecutar sistemas legados y aplicaciones inseguras
provenientes de terceros.
Despliegue piloto.
5ta etapa: Consolidación
Aprobar el fundamento legal que respalde la decisión política de apoyo al sistema operativo
cubano y que institucionalice su uso.
Creación y capacitación del equipo de soporte.
Comercialización y despliegue de la solución.
Consideraciones sobre el modelo de negocio
El mercado objetivo se conforma por los organismos y entidades de la administración central del
estado (OACE), las empresas de las FAR y empresas extranjeras.
Se deben producir 3 versiones del producto:
Comunitaria: versión de dominio público, orientada al uso doméstico y en entidades
educativas.
Comercial: orientada al sector empresarial tanto nacional como foráneo.
Segura: orientada a los sectores críticos del país.
La comercialización del producto se realizará por medio de:
Acuerdos con fabricantes de hardware. Los dispositivos son comercializados con el SO
instalado y se le cobra en por ciento.
Acuerdos de soporte para las versiones Comercial y Segura. Este puede ser dividido de
acuerdo al nivel: el soporte de nivel 1 y 2 puede ser brindado por otra entidad (aporta un por
ciento de las ganancias) y el soporte nivel 3 y las actualizaciones de seguridad es provisto por
la entidad.
Soluciones a la medida.
Recursos (Humanos, Tecnológicos y Logísticos)
Ver documento anterior en el Anexo 1.
Conclusiones
Al finalizar el presente taller se puede concluir que las distribuciones de GNU/Linux u otros sistemas de
terceros no garantizan la seguridad que requiere el proceso de informatización de la sociedad cubana,
debido a que no se cuenta con la capacidad de revisar las decenas de millones de líneas de código que
las componen y los análisis estático y dinámico de código no ofrecen una solución completa para la
reducción de vulnerabilidades. Además el diseño de las distribuciones de GNU/Linux no comprende
elementos de seguridad como: el encapsulamiento de las aplicaciones y controladores de hardware.
Es preciso aclarar que el sistema operativo cubano no podrá impedir que una impresora a la vez que
imprime mande la información vía satélite. No puede hacer que las aplicaciones sean seguras, solo puede
contenerlas para limitar el daño y evitar que se corrompa el sistema completo. No puede garantizar que el
hardware sobre el que el se ejecuta es seguro.
El equipo que desarrolla este taller considera que no es responsabilidad del sistema operativo proveer
aplicaciones tales como Suite Ofimática, Navegador Web, etc...
El sistema operativo cubano no es, en términos académicos, solo un sistema operativo, será un conjunto
de capas que garantizan el crecimiento de los niveles de socio-adaptabilidad, seguridad, sostenibilidad y
soberanía. Estas serán el resultado de un proceso de asimilación tecnológica que debe enfrentarse de
forma sistémica, dado que el desarrollo por separado de una sola de las capas no garantizaría el éxito
inmediatamente, ni a futuro.