8 min de lectura

Cómo evaluar software de seguridad con código disponible

Evalúa el software de seguridad con código disponible mediante su licencia, acceso al código, lanzamientos, límites comerciales y salida real.

Cómo evaluar software de seguridad con código disponible

Poder leer un repositorio no concede a tu equipo los derechos ni la independencia operativa que ofrece el código abierto. Antes de adoptar software de seguridad con código disponible, trata la licencia, el proceso de publicación y el límite comercial como partes de la arquitectura de seguridad. Una restricción que parece inofensiva durante una prueba de concepto puede impedirte desplegar un parche urgente, atender a un cliente o seguir operando cuando el proveedor cambie de rumbo.

He visto equipos dedicar semanas al diseño criptográfico y media hora a la licencia del código que guarda sus secretos. El orden está al revés. La revisión debe responder una pregunta concreta: si el proveedor, el repositorio y la relación comercial cambian a la vez, ¿qué puede seguir haciendo tu organización de forma legal y técnica?

Esta es una revisión de ingeniería con participación jurídica, no una petición para que los ingenieros ejerzan de abogados. Los ingenieros deben describir cómo se ejecuta realmente el software, quién interactúa con él y qué exige recuperarse de un fallo. Así, el equipo jurídico puede evaluar un despliegue real en lugar de una afirmación vaga sobre la visibilidad del código.

¿Cómo clasifica la licencia el software?

Empieza por nombrar bien la categoría de la licencia, porque "código disponible" y "código abierto" otorgan derechos diferentes. Que el código sea público es un hecho de distribución. El código abierto es una afirmación jurídica que incluye los derechos de usar, modificar y redistribuir el software sin discriminar a personas, grupos ni campos de actividad.

La Open Source Definition de la Open Source Initiative vuelve práctica esa diferencia. Sus criterios exigen acceso al código, pero también obras derivadas, libre redistribución y ausencia de restricciones sobre campos de actividad. Una licencia que prohíbe el uso en producción, los servicios competidores o una clase de negocio puede publicar hasta la última línea. Aun así, no cumple esa definición.

No uses "código abierto" como sinónimo amable de "podemos leer el repositorio". Registra el nombre, la versión y el identificador exactos de la licencia. Después, anota si la Open Source Initiative la ha aprobado. La SPDX License List ayuda a identificar textos de licencia de forma coherente, pero aparecer en la lista no equivale a estar aprobado. La lista tiene un campo separado para la aprobación de OSI e incluye licencias como BUSL-1.1 y Elastic-2.0 sin marcarlas como aprobadas por OSI.

La diferencia afecta a algo más que el vocabulario. Tu escáner de dependencias puede admitir Apache-2.0 automáticamente y enviar una licencia personalizada de código disponible a revisión manual. Tu política de compras puede permitir modificaciones solo cuando los derechos de redistribución están claros. Durante un incidente, alguien puede suponer que el equipo puede parchear y desplegar un repositorio visible, aunque la licencia prohíba ese uso en producción.

Recoge el resultado en una frase que nadie pueda suavizar después: "El código está disponible bajo [licencia exacta], que [está/no está] aprobada por OSI, y nuestro uso previsto depende de [permiso o restricción concreta]". Si el equipo no puede completar esa frase, no ha terminado la primera revisión.

¿Qué permite la licencia en nuestro despliegue real?

Lee el texto vinculante de la licencia contra un diagrama de despliegue, no contra la página de resumen del proveedor. Términos como "producción", "servicio gestionado", "oferta competitiva", "finalidad empresarial interna" y "usuario autorizado" solo adquieren sentido cuando los asocias con procesos, cuentas, clientes y flujos de datos.

Traza el límite alrededor de cada entidad jurídica y de cada persona que usará o recibirá la función del software. Una matriz, una filial, un contratista, un proveedor de servicios gestionados y un cliente pueden ocupar posiciones distintas ante la misma cláusula. Si un agente hace una llamada API por cuenta de un cliente, pregunta si el cliente recibe el producto de código disponible como servicio o solo el resultado de tu propio producto. No cierres la cuestión con un mensaje del chat de ventas.

La Business Source License 1.1 muestra por qué importan los parámetros rellenados. Su texto estándar concede derechos de copia, modificación, creación de obras derivadas, redistribución y uso fuera de producción. El licenciante puede añadir una concesión limitada para producción, y cada versión cambia más tarde a una licencia de código abierto determinada en una Change Date indicada o en el límite máximo de la licencia. El permiso práctico reside, por tanto, en parte en el encabezado de la licencia de ese producto y esa versión. Leer una explicación general de BSL sin revisar Additional Use Grant y Change License deja sin responder las condiciones importantes.

Elastic License 2.0 adopta otra forma. El propio FAQ de Elastic dice que la licencia permite el uso, la modificación, las obras derivadas y la redistribución, pero restringe ofrecer los productos como servicio gestionado, eludir las funciones de clave de licencia y eliminar avisos. Eso no determina si tu arquitectura alojada concreta está permitida. Te dice qué límite necesita una respuesta escrita.

Prueba al menos estos estados concretos por escrito: evaluación interna, producción para el personal propio, producción que atiende a un cliente de pago, acceso de contratistas, redistribución dentro de un dispositivo, recuperación ante desastres en otra entidad y un fork con cambios locales. Para cada estado, anota permitido, prohibido o sin resolver, seguido de la cláusula aplicable. "Gratis para la mayoría de usos" no es un resultado.

El lenguaje ambiguo es un riesgo de despliegue. Pide al proveedor una interpretación escrita vinculada a tu diagrama y deja que el equipo jurídico decida si basta. Si el proveedor concede una excepción, inclúyela en un acuerdo firmado e indica qué versiones cubre. Una respuesta en un foro puede desaparecer; tus obligaciones no.

Separa los permisos de copyright del resto del acuerdo. Una licencia del repositorio puede autorizar un uso mientras que un contrato de suscripción, condiciones de servicio, política de marcas, cláusula de patentes, condición de exportación o contrato de soporte impone otros requisitos. Reúne todos los documentos incorporados por referencia y establece cuál prevalece si se contradicen. La aceptación con un clic del titular de la cuenta debe revisarse junto al archivo LICENSE.

El lenguaje de patentes merece atención en infraestructura de seguridad porque la implementación suele tocar autenticación, cifrado, redes y gestión de dispositivos. Pregunta si la licencia concede derechos de patente expresos, si terminan al presentar una reclamación de patente y si los colaboradores tienen autoridad para concederlos. La visibilidad del código no otorga por sí sola derechos de patente. El equipo jurídico debe valorar el asunto cuando el producto forma parte de una oferta distribuida o cuando el fork previsto cambia su funcionamiento.

Revisa las dependencias por separado de la licencia del repositorio principal. Una licencia superior permisiva no corrige una biblioteca incompatible, un modelo o conjunto de reglas que no puede redistribuirse, una fuente con límites de empaquetado ni un auxiliar solo binario necesario en producción. Genera el inventario de licencias desde la versión que vas a entregar e investiga las entradas marcadas como unknown, custom o NOASSERTION. La palabra "opcional" no ayuda si el despliegue exige ese componente.

No mezcles las promesas contractuales en la columna de la licencia. Los objetivos de respuesta del soporte, las obligaciones de aviso de seguridad, las fechas de entrega del código y las protecciones de precio pueden hacer aceptable la adopción, pero suelen obligar a partes concretas durante un plazo definido. Los derechos de licencia pueden acompañar a cada copia durante más tiempo. El registro debe indicar qué documento aporta cada protección y qué ocurre cuando vence el contrato.

Esta separación deja al descubierto una mala recomendación habitual: aceptar ahora la licencia porque compras podrá negociar una excepción más tarde. Resulta atractiva porque acelera la prueba de concepto. Es errónea cuando datos reales, clientes o automatizaciones ya dependen del software, porque el proveedor conoce entonces el coste del cambio. Resuelve los derechos necesarios antes de que la integración técnica cree esa presión.

¿Podemos inspeccionar, compilar, parchear y entregar lo mismo?

La visibilidad del código permite inspeccionarlo, pero asumir la seguridad exige una cadena más larga de derechos y capacidades. El equipo debe saber si puede obtener el código completo, reproducir el artefacto relevante, cambiarlo, probarlo, desplegar una compilación modificada y distribuirla donde la recuperación lo exija.

Los proveedores suelen publicar un núcleo útil y omitir la infraestructura de compilación, los pasos de firma, los archivos generados, los módulos prémium o el empaquetado de las versiones oficiales. Ese repositorio aún puede ayudar a un investigador a entender un analizador o revisar una llamada criptográfica. No permite mantener un fork de emergencia si el binario publicado depende de piezas que faltan.

Haz una compilación limpia en una máquina sin la caché privada de ningún desarrollador. Fija el commit o la etiqueta, guarda los comandos y compara el paquete resultante con la versión del proveedor. La reproducción byte por byte es excelente cuando el proyecto la admite, pero una diferencia documentada y explicable puede ser aceptable. Un binario sin explicación que contenga archivos ausentes del código correspondiente no es aceptable para un componente al que se confían credenciales o pruebas de auditoría.

Usa un registro de pruebas breve en vez de una captura de una compilación correcta:

release: 4.2.1
source_ref: refs/tags/v4.2.1
source_commit: 8f2c...91a
build_command: ./scripts/build-release
artifact: dist/tool-4.2.1.pkg
artifact_sha256: 1c71...0be
vendor_sha256: 93a4...82d
comparison: differs
explained_differences: signing envelope, build timestamp
unexplained_files: none
patch_deploy_allowed_by: License section 2, counsel ticket LEG-184

El registro obliga a emitir dos conclusiones independientes. "Logramos compilarlo" es técnica. "Podemos ejecutar y redistribuir nuestra compilación" es jurídica. Los equipos suelen confundirlas y descubren la mitad ausente durante un incidente.

Comprueba también la ruta de actualización de seguridad. ¿Puedes aplicar un arreglo de una línea a la última versión que tu organización puede ejecutar? ¿Puedes firmar o autorizar de otro modo el artefacto parcheado en tu flota? ¿Rechazarán los complementos, agentes o servidores una compilación ajena al proveedor? Si el software protege secretos, un fork que no puede recibir credenciales de los sistemas circundantes no es una salida.

Por último, examina las condiciones de colaboración. Un Contributor License Agreement puede permitir que el proveedor cambie la licencia de las aportaciones mientras los colaboradores externos no pueden usar el futuro código comercial. El acuerdo puede ser legítimo, pero cambia quién puede continuar el proyecto tras una división. Registra si las contribuciones usan un Developer Certificate of Origin, una cesión de copyright, un CLA amplio o ningún proceso declarado.

¿Coinciden las versiones con el repositorio público?

Una revisión de seguridad se aplica a un artefacto concreto, no a un repositorio abstracto. Exige una correspondencia fiable entre la versión que instalas, el commit del código, el texto de licencia, el conjunto de dependencias y los avisos de seguridad de esa versión.

Empieza por el historial de publicaciones. Busca etiquetas firmadas u otro mecanismo autenticado, registros de cambios que identifiquen correcciones de seguridad, ramas mantenidas y un retraso repetible entre el binario y el código. Una entrega tardía del código puede ser un error. Una brecha permanente significa que el repositorio público no es la fuente real de producción.

Pide al mantenedor que indique el calendario de publicaciones y el periodo de soporte en documentación duradera. "Actualizaciones frecuentes" no dice nada. Necesitas saber qué ramas reciben parches de seguridad, cuánto se mantienen las versiones antiguas, si las correcciones llegan al código antes o después que a los binarios de clientes y si un embargo puede dejar expuestos a quienes compilan por su cuenta. No inventes una promesa de servicio a partir de la actividad anterior.

Compara tres versiones recientes en lugar de inspeccionar solo la última etiqueta. Responde cuatro preguntas para cada una:

  1. ¿La etiqueta apunta al código usado para crear el artefacto entregado?
  2. ¿Están presentes las instrucciones de compilación y los bloqueos de dependencias?
  3. ¿Cambió la licencia o el límite de las funciones comerciales?
  4. ¿Puede un entorno nuevo producir un paquete ejecutable?

Guarda los resultados en el registro de decisión de ingeniería. Repite la comparación al renovar y antes de una actualización mayor. La disponibilidad del código puede retroceder sin ruido cuando un proveedor traslada el empaquetado a un sistema privado o mueve una función a un repositorio comercial.

Una lista de materiales de software ayuda, pero no la aceptes como prueba de paridad con el código. Un SBOM describe componentes de un artefacto. No demuestra que el repositorio público contenga el código, la lógica de compilación o los derechos necesarios para recrearlo. Usa ambos: el SBOM para dependencias y vulnerabilidades, y la correspondencia entre código y artefacto para valorar la independencia.

La cadencia también indica cuánto mantenimiento puede heredar tu equipo. Un proyecto con funciones mensuales y correcciones solo en la rama más nueva puede forzar actualizaciones rápidas. Uno más lento con una política documentada de backports puede ser más fácil de operar. Cuenta el trabajo impuesto a tu equipo, no el número de versiones anunciado por el proveedor.

¿Dónde está el límite comercial actual y futuro?

Revoca la ejecución de un agente
El diario Sessions revoca un agente activo después de su única aprobación de sesión.

Las funciones comerciales previstas importan cuando están en tu ruta de seguridad, aunque aún no existan. Pide al proveedor que divida el producto entre código abierto o disponible actual, código de pago actual y código de pago previsto, y conecta cada parte con tus controles necesarios.

Evita la pregunta vaga "¿el núcleo seguirá siendo gratis?". La respuesta puede ser sí mientras las funciones que necesitas para un uso seguro en equipo se trasladan a otro sitio. Pregunta por integración de identidad, revocación central, administración de políticas, exportación de auditoría, retención, alta disponibilidad, gestión de flotas, apoyo en incidentes y herramientas de migración. El conjunto depende del producto, pero el método no cambia: asocia cada requisito operativo con un componente publicado y su licencia.

Las hojas de ruta no son contratos, y que algo no figure en ellas tampoco es una promesa. Registra las funciones previstas como señales de planificación con responsable, plazo esperado, licencia prevista y alternativa. Si la adopción depende de un futuro control Enterprise, calcula y aprueba ahora la vía comercial o considera que el control no está disponible. Un equipo no debe desplegar un diseño más débil porque una diapositiva diga que la protección llegará.

Busca también comprobaciones de claves de licencia o derechos remotos en código visible. Determina qué ocurre cuando el servicio de licencias no responde, termina la suscripción, cierra el proveedor o la organización ejecuta un fork parcheado. El comportamiento deseado puede ser mantener lectura, exportación y cierre seguro, no conservar funciones de pago indefinidamente. Sea cual sea el requisito, pruébalo.

Pregunta además quién controla el protocolo y el formato de datos. Una consola comercial es reemplazable cuando los agentes pueden usar un protocolo documentado y exportar registros completos en un formato estable. Cuesta mucho más sustituirla cuando el núcleo visible guarda estado opaco o cuando el servicio de pago emite las credenciales necesarias para arrancar. El código público alrededor de un plano de control privado puede ofrecer poca independencia operativa.

Sallyport ofrece una comparación clara porque su aplicación actual para macOS es completamente de código abierto bajo Apache-2.0, mientras que los componentes comerciales Enterprise están previstos. Esa afirmación no responde qué incluirán o costarán las futuras funciones para equipos, de modo que quien lo adopte debe evaluar la aplicación publicada bajo su licencia actual y considerar desconocidos los componentes previstos hasta que se definan sus límites.

¿Puede el proyecto cambiar el acuerdo después de adoptarlo?

Un licenciante puede publicar versiones futuras bajo otras condiciones si controla los copyrights relevantes. Normalmente no puede borrar la licencia ya concedida sobre una versión que posees, pero quedarse en ella puede dejarte sin correcciones, compatibilidad o soporte de protocolos nuevos.

Por eso, "no pueden quitar el código" consuela poco. La elección real puede ser aceptar condiciones nuevas, quedar congelado en una rama vulnerable o financiar un fork. Evalúa esos costes antes de adoptar, cuando rechazar el software todavía resulta barato.

Examina el gobierno del repositorio y la concentración del copyright. ¿Quién puede fusionar cambios? ¿Quién publica una versión? ¿Pueden mantenedores externos distribuir una variante compatible? ¿Posee una empresa casi todos los derechos mediante contratos laborales y acuerdos de colaboración? Un proyecto dirigido por una empresa puede estar bien mantenido, pero el control concentrado facilita un cambio de licencia y dificulta una continuación comunitaria.

Revisa el historial en busca de cambios de licencia, módulos trasladados, etiquetas eliminadas, entregas tardías del código y funciones movidas entre repositorios. No interpretes cada cambio como una falta automática. Pregunta si el patrón encaja en tu tolerancia y si los usuarios anteriores recibieron aviso, un periodo de transición y una última versión utilizable.

Después, vigila los datos que pueden cambiar:

  • Calcula el hash y conserva cada texto de licencia y archivo de parámetros aceptado.
  • Genera una alerta cuando los metadatos indiquen una expresión de licencia nueva.
  • Revisa las notas de versión para detectar cambios de repositorio o derechos.
  • Vuelve a aprobar las versiones mayores antes de producción.
  • Conserva el último código aprobado y sus instrucciones de compilación en almacenamiento propio controlado.

Estos controles convierten una promesa de licencia en algo observable por ingeniería. También evitan que una actualización rutinaria incorpore obligaciones nuevas sin revisión.

No dependas de una promesa pública de que la licencia nunca cambiará, salvo que la decisión de riesgo acepte expresamente que no es vinculante. Si necesitas derechos estables, prefiere una licencia estándar aprobada por OSI para el código necesario o negocia condiciones que sobrevivan a la relación comercial. Las buenas intenciones no sustituyen un permiso duradero.

¿Existe una salida creíble?

Ejecuta una sola aplicación firmada
El núcleo de la bóveda opera dentro de la aplicación de menú, sin otro daemon privilegiado.

Una salida creíble mantiene la función de seguridad durante el tiempo necesario para migrar sin incumplir la licencia ni depender de un servicio que pueda desaparecer. Un repositorio público es solo un ingrediente.

Prueba la salida como un ejercicio de incidente. Supón que el proveedor deja de publicar versiones, desactiva su punto de licencias y deja de responder al soporte el mismo día. Tu equipo debe identificar la última versión permitida, restaurar código y dependencias, crear un artefacto, cargar la configuración existente, recuperar o migrar datos protegidos y operarlo con sus propios procesos de firma y despliegue.

Incluye secretos y registros de auditoría en el ejercicio. ¿Puedes exportarlos en un formato documentado? ¿Exige la exportación un servicio de pago o un derecho aún vigente? ¿Puede una compilación local descifrar el estado existente con claves bajo control de tu organización? ¿Puedes verificar registros antiguos sin el proveedor? Un diseño que protege los datos del proveedor todavía puede encerrarlos en un formato propietario.

Un fork también necesita personas. Nombra al equipo que asumiría el código, estima los conocimientos de lenguajes y plataformas necesarios e identifica dependencias que no podrían redistribuirse. Si nadie puede aceptar el trabajo, escribe "solo migración" en vez de fingir que el repositorio es una alternativa.

Las marcas merecen una línea aparte en el plan. Las licencias de software suelen conceder derechos sobre el código sin conceder derechos sobre la marca. Tu fork puede necesitar otro nombre, identificador de paquete, identidad de firma, canal de actualización y documentación. Es manejable si se planifica y molesto si se descubre durante una versión urgente.

Una transición diferida a código abierto puede mejorar la posición a largo plazo, pero revísala por versión. Bajo BSL 1.1, cada versión tiene su propia Change Date y la licencia se aplica a cada una por separado. La versión antigua que ya cambió puede carecer de los parches presentes en otra reciente y restringida. "Será código abierto" no significa que la versión mantenida sea abierta cuando la necesitas.

Define un objetivo de salida comprobable, por ejemplo: "En diez días laborables podemos recompilar la última versión aprobada, desplegar un parche local, exportar todos los datos de la organización e iniciar la migración sin infraestructura del proveedor". Elige un plazo acorde al riesgo y ejecuta el ejercicio. Si falla, financia la capacidad ausente o registra la dependencia del proveedor como riesgo aceptado.

¿Quién asume la respuesta de seguridad si el código es visible?

Inspecciona un modelo de aprobación fijo
Tres controles definidos sustituyen políticas que pueden ocultar una configuración peligrosa.

El código visible no asigna responsabilidad sobre clasificación, divulgación, parches ni comunicación con clientes. Pregunta quién recibe informes de vulnerabilidades, qué versiones se corrigen, cómo llegan los problemas bajo embargo a usuarios con licencia y si tu equipo puede crear y distribuir un parche de emergencia.

Lee la política de seguridad del repositorio y compárala con la práctica real. Una política útil nombra versiones admitidas, un canal privado, respuestas esperadas y el proceso de divulgación. Si solo dice "abre una incidencia", un informe sensible puede hacerse público antes de existir una solución. Si promete plazos, determina si son objetivos o compromisos contractuales.

Aclara qué espera el proveedor de quienes compilan por su cuenta. Algunos solo ofrecen soporte a su distribución firmada aunque la licencia permita modificarla. Puede ser razonable, pero tu procedimiento debe mostrar dónde termina el soporte tras un parche local y cómo volver a una compilación admitida. De lo contrario, un arreglo urgente crea una rama privada permanente sin responsable.

Las afirmaciones de seguridad deben poder rastrearse a código y pruebas. En una pasarela de credenciales, examina dónde existe texto sin cifrar, qué proceso ejecuta la acción externa, cómo se vincula el estado de aprobación al emisor y qué demuestra el registro de auditoría. El acceso al código hace que las preguntas tengan respuesta; no garantiza respuestas favorables. Prueba en los límites de proceso, no solo en la función que cifra un valor.

Pide modelos de amenazas, notas de arquitectura, prácticas de actualización y evaluaciones externas si existen. No rechaces un proyecto joven solo porque carece de un informe pulido ni confíes en un distintivo sin comprobar su alcance. Registra qué afirmaciones verificó tu equipo, cuáles dependen del proveedor y cuáles siguen sin probar.

Asigna un responsable interno antes de producción. Esa persona vigila avisos de seguridad, cambios de licencia, desviaciones de las versiones y el límite comercial. Sin responsable, el código público crea la sensación de que alguien puede revisarlo mientras todos suponen que lo hará otro.

¿Qué debe contener el registro de adopción?

La decisión final debe caber en un registro que ingeniería, seguridad, compras y asuntos jurídicos puedan cuestionar. Un chat largo no es un registro de adopción porque pierde el alcance de versión, las suposiciones y las preguntas pendientes.

Usa esta lista breve en la reunión de aprobación:

  • Identidad: versión exacta, commit, resumen del artefacto, resumen del texto de licencia, expresión SPDX y estado OSI.
  • Derechos: usos permitidos y prohibidos para evaluación, producción interna, producción para clientes, modificación, redistribución, contratistas y filiales.
  • Operación: resultado de compilación limpia, diferencias entre código y artefacto, proceso de firma, exportación de datos, archivo de dependencias y prueba de despliegue de parches.
  • Vía del proveedor: ramas admitidas, práctica de publicación y divulgación, límite de pago actual, dependencias comerciales previstas e interpretaciones escritas.
  • Salida y responsabilidad: objetivo de migración, responsable del fork o la migración, riesgos residuales aceptados, motivo de revisión y vencimiento de aprobación.

Asigna responsable y fecha a cada elemento pendiente. Marca las suposiciones con claridad. Si el equipo jurídico espera una respuesta sobre el uso como servicio gestionado, la decisión es condicional, no está aprobada. Si una función comercial prevista controla la retención de auditoría, incluye su ausencia en la excepción de seguridad en vez de ocultarla en las notas de la hoja de ruta.

Rechaza la adopción cuando la licencia prohíba claramente el uso previsto, el artefacto no pueda vincularse con el código disponible o los datos necesarios no puedan salir de la infraestructura controlada por el proveedor. Detente cuando una cláusula relevante sea ambigua. Acepta la dependencia solo si la organización entiende su coste y la elige, no porque el repositorio parezca tranquilizador.

Reabre el registro ante una versión mayor, un cambio de licencia o propiedad, una nueva dependencia comercial, un cambio importante de arquitectura o una prueba de salida fallida. Fija una fecha aunque nada de eso suceda. El software de seguridad se convierte en infraestructura con discreción, y algo fácil de sustituir durante la evaluación puede volverse una dependencia difícil cuando crecen a su alrededor agentes, credenciales y flujos de auditoría.

El mejor resultado no siempre es adoptar el producto con la licencia más permisiva. Un producto restringido con condiciones claras, mantenimiento atento y un plan de migración financiado puede encajar mejor que un proyecto abierto abandonado. La decisión es sólida cuando el equipo puede decir exactamente qué derechos tiene, de qué capacidades depende y qué hará si cualquiera de los dos cambia.

FAQ

¿El software con código disponible es lo mismo que el software de código abierto?

No. El software con código disponible permite leer una parte o todo el código, pero su licencia puede limitar producción, uso comercial, servicios gestionados, modificaciones o redistribución. El código abierto debe cumplir la Open Source Definition, que concede derechos más amplios y prohíbe restringir campos de actividad.

¿Podemos usar software de seguridad con código disponible en producción?

Solo si la licencia exacta y cualquier concesión específica permiten tu modelo concreto. Revisa por separado el uso interno, para clientes, por contratistas o filiales, el acceso alojado y la recuperación. Pide al equipo jurídico que resuelva cualquier ambigüedad relevante antes del despliegue.

¿Un identificador SPDX significa que una licencia es de código abierto?

No. La SPDX License List normaliza identificadores para muchas licencias habituales y muestra la aprobación de OSI como información aparte. Registra ambos datos en vez de interpretar la presencia en la lista como aprobación.

¿Qué debemos preguntar sobre un futuro cambio de licencia?

Pregunta si el proveedor controla el copyright, cómo conservan sus condiciones las versiones existentes, qué ramas seguirán recibiendo correcciones y con cuánto aviso cuentan los usuarios. El riesgo práctico suele ser perder actualizaciones mantenidas aunque la concesión antigua siga vigente.

¿Cómo comprobamos que el código público coincide con un binario del proveedor?

Relaciona la versión instalada con una etiqueta y un commit, compílala en un entorno limpio y compara el resultado con el artefacto del proveedor. Documenta diferencias explicables como firma y marcas de tiempo e investiga cada archivo o conducta sin explicación.

¿Las futuras funciones Enterprise forman parte de la revisión de licencia?

Sí, cuando tu operación segura depende de ellas. Asocia identidad, revocación, auditoría, retención, flota, disponibilidad y migración con componentes publicados, y considera desconocidos el precio y la licencia que no se hayan publicado.

¿Una licencia con apertura diferida es un plan de salida seguro?

Puede ayudar, pero comprueba Change Date y Change License para cada versión. La versión convertida puede ser anterior a la versión restringida mantenida. Aún necesitas código, dependencias, conocimientos de compilación, acceso a datos y personas capaces de operarla.

¿Necesitamos un abogado para revisar software con código disponible?

Los ingenieros deben documentar primero el despliegue real y las cláusulas que parecen regularlo. El equipo jurídico debe revisar usos con riesgo comercial o de redistribución relevante y cualquier restricción ambigua. Una arquitectura precisa obtiene una respuesta mejor que una petición genérica para aprobar un producto.

¿Qué convierte un fork en una alternativa creíble?

El equipo necesita derecho legal, código completo, dependencias, procesos de compilación y firma, formatos de datos y mantenedores designados. Si no puede parchearlo y desplegarlo durante un incidente, debe llamarlo vía de migración.

¿Con qué frecuencia debemos repetir la revisión?

Revisa ante versiones mayores, cambios de licencia o propiedad, nuevas dependencias comerciales, cambios importantes de arquitectura y pruebas de salida fallidas. Añade una revisión programada porque la infraestructura puede arraigarse sin un único hecho desencadenante.

Sallyport

Sallyport ejecuta llamadas de API y comandos SSH por tu agente de IA. Las claves se quedan en una bóveda local de tu Mac; tú apruebas cada ejecución y cada acción queda en un registro sellado.

© 2026 Sallyport · Código abierto bajo Apache-2.0 · Oleg Sotnikov