Exfiltración de credenciales a través de WLAN SSIDs

"Aparcó el coche lo más cerca posible de las oficinas y reflejado en los cristales de sus ventanas, ahora convertidas por la luz del día en auténticos espejos, veíamos la silueta de nosotros, como observadores furtivos contemplando ante nosotros una muralla infranqueable. Teníamos como misión robar las credenciales del director ejecutivo para acceder a su cuenta de correo en la nube y poder interceptar ciertos mensajes, pruebas irrefutables para destapar al mundo su podrida corrupción.

Mi socio acarició la tapa de su portátil cuidadosamente decorada por varias pegatinas testigos de su presencia en mil y una conferencias de hacking, la abrió y observó pensativo la pantalla de login, que proyectaba un tenue reflejo sobre su (sin embargo) relajado rostro. A continuación desbloqueó su blackphone y, como por arte de magia, una de las redes WiFi a su alcance tenía como nombre el anhelado usuario y contraseña del director, en seguida comprobó el acceso al correo y desaparecimos raudos del lugar con tremebundo trofeo.

Al día siguiente, un caso más de corrupción abría las portadas de todos los telediarios matinales e instigados por el CISO, los equipos de redes escudriñaron palmo a palmo los paquetes que atravesaron los firewalls, el tráfico de cada dispositivo de seguridad perimetral, cada log de navegación del proxy, cada una de las alertas generadas por los IPS, ... pero no encontraron ni rastro de la exfiltración de las credenciales. Nadie imaginó que durante unas horas la contraseña fue emitida al aire en un SSID ligeramente ofuscado, y nadie pudo demostrar nunca que nosotros la obtuvimos simplemente viendo las redes dentro del alcance de un simple smartphone, pues cualquiera que pasaba por ahí las podría haber leído..."


Con esta breve historia quiero ilustrar que hasta las técnicas más rocambolescas, más inesperadas, pueden ser de una efectividad máxima. Y es que aunque los nombres de SSID admiten un máximo de 32 bytes pueden ser utilizados para exfiltrar información tan sensible como una contraseña. Precisamente, Nikhil SamratAshok Mittal se dió cuenta de llo jugando con la característica de Windows Hosted Network y elaboró un script de PowerShell que permite hacerlo, es decir, exfiltrar datos usando sólo nombres SSID.

El script es Invoke-SSIDExfil.ps1 y proporciona múltiples opciones para exfiltrar datos. Usa la lógica de Invoke-CredentialsPhish de Nishang para mostrar un mensaje de credenciales al usuario y poder capturar las credenciales en texto claro. Las credenciales capturadas se codifican mediante ROT13, crea una red Windows Hosted y se inicia con el nombre SSID con el formato Dominio: Nombre de usuario: Contraseña. 

A continuación se muestra el script en acción. Ten en cuenta que el script se debe ejecutar desde un shell con privilegios:


Y, si tenemos proximidad física con el objetivo - veremos el SSID tal que así:


Ahora, podemos decodificar las credenciales de usuario usando la opción -Decode del script:


El script se puede utilizar como payload en ataques dirigidos al cliente, dispositivos de interfaz humana (Kautilya), ejecución de comandos autenticados y otras técnicas.

Utilizando los parámetros -StringToExfiltrate y -ExfilOnly, también es posible exfiltrar un pequeño fragmento de datos sin mostrar un mensaje de solicitud de credenciales al usuario.

Además, el autor creó un backdoor llamado Gupt que es capaz de ejecutar comandos recibiendo las órdenes mediante redes WiFi cercanas con SSID con nombres especiales. ¡Impresionante!

Fuentes:
- Exfiltration of User Credentials using WLAN SSID
- Introducing Gupt: A Backdoor which uses Wireless network names for command execution

AntiFooling, simula que tu máquina es virtual para que el malware no se ejecute

Hoy nos llegaba una petición de un amigo en nuestro grupo de Telegram para que echáramos un vistazo a una herramienta publicada por Scorpio en Indetectables, concretamente AntiFooling.

AntiFooling es una sencilla pero útil herramienta hecha con AutoIt para simular que un sistema Windows es una máquina virtual, pero ¿para qué?. Pues hoy en día la mayoría del malware es analizado dinámicamente en máquinas virtuales y sandboxes, por lo que el software malicioso suele implementar medidas que lo detectan y detienen su ejecución en tal caso. Por lo tanto, si "engañamos" al malware para que crea que está en un entorno de análisis de este tipo podremos conseguir que tampoco se ejecute en nuestra máquina, obteniendo así un eficaz "antivirus".

Por el momento, AntiFooling puede simular ser un sistema virtualizado con VirtualBox o VMWare, para lo cuál utiliza los siguientes artefactos:

Processes:
'VBoxService.exe' (VBOX)
'VBoxTray.exe' (VBOX)
'VMwareUser.exe' (VMWARE)
'VMwareTray.exe' (VMWARE)
'VMUpgradeHelper.exe' (VMWARE)
'vmtoolsd.exe' (VMWARE)
'vmacthlp.exe' (VMWARE)

Files:
@WindowsDir & '\System32\drivers\VBoxMouse.sys' (VBOX)
@WindowsDir & '\System32\drivers\VBoxGuest.sys' (VBOX)
@WindowsDir & '\System32\drivers\VBoxSF.sys' (VBOX)
@WindowsDir & '\System32\drivers\VBoxVideo.sys' (VBOX)
@WindowsDir & '\System32\vboxdisp.dll' (VBOX)
@WindowsDir & '\System32\vboxhook.dll' (VBOX)
@WindowsDir & '\System32\vboxmrxnp.dll' (VBOX)
@WindowsDir & '\System32\vboxogl.dll' (VBOX)
@WindowsDir & '\System32\vboxoglarrayspu.dll' (VBOX)
@WindowsDir & '\System32\vboxoglcrutil.dll' (VBOX)
@WindowsDir & '\System32\vboxoglerrorspu.dll' (VBOX)
@WindowsDir & '\System32\vboxoglfeedbackspu.dll' (VBOX)
@WindowsDir & '\System32\vboxoglpackspu.dll' (VBOX)
@WindowsDir & '\System32\vboxoglpassthroughspu.dll' (VBOX)
@WindowsDir & '\System32\VBoxService.exe' (VBOX)
@WindowsDir & '\System32\VBoxTray.exe' (VBOX)
@WindowsDir & '\System32\VBoxControl.exe' (VBOX)
@WindowsDir & '\System32\drivers\vmmouse.sys' (VMWARE)
@WindowsDir & '\System32\drivers\vmhgfs.sys' (VMWARE)
@ProgramFilesDir & '\VMWare\VMware Tools\VMwareUser.exe' (VMWARE)
@ProgramFilesDir & '\VMWare\VMware Workstation\VMwareTray.exe' (VMWARE)
@ProgramFilesDir & '\VMWare\VMware Tools\VMUpgradeHelper.exe' (VMWARE)
@ProgramFilesDir & '\VMWare\VMware Tools\vmtoolsd.exe' (VMWARE)
@ProgramFilesDir & '\VMWare\VMware Tools\vmacthlp.exe' (VMWARE)

Directories:
@ProgramFilesDir & '\Oracle\Virtualbox Guest Additions\' (VBOX)
@ProgramFilesDir & '\VMWare\' (VMWARE)
@ProgramFilesDir & '\VMWare\VMware Tools' (VMWARE)
@ProgramFilesDir & '\VMWare\VMware Workstation' (VMWARE)

Por el momento, añade sólo técnicas Anti-Virtualización, pero también se le puede hacer creer al malware que esta siendo debuggeado o emulado para prevenir su ejecución en equipos legítimos.

Descarga:
-Compilados x64 & x86: https://www.sendspace.com/file/rph4dh
-Source Code (AutoIt): https://www.sendspace.com/file/lvdx2x

Documentación:
-http://www.xylibox.com/2011/05/anti-vmware.html
-https://github.com/LordNoteworthy/al-khaser

Fireaway, una herramienta para evadir firewalls de nueva generación

Fireaway es una herramienta escrita en Python para auditar, bypassear y exfiltrar datos contra las reglas de inspección de capa 7/AppID en firewalls de próxima generación o NGFW. Sus tácticas se basan en el principio de tener que permitir que las conexiones se establezcan a través del NGFW para ver los datos de capa 7 a filtrar, comportándose como aplicaciones falsas que intentan ocultar canales de comunicación dentro de los logs del firewall como si fueran tráfico normal de usuario, como navegación hacia Internet.

Inicio del servidor FireAway: Normalmente, el servidor FireAway se iniciará fuera del perímetro del firewall (como cualquier servidor en Internet) y escuchará en un puerto que se cree cerrado para ver si alguna regla basada en aplicaciones permite el tráfico en este puerto:

python fa_server.py

Todos los datos recibidos por el servidor en ese puerto se guardarán en el archivo ReceivedData.txt del directorio donde se inició el servidor. Si el servidor detecta diferentes tamaños en la suma de los datos recibidos (indicando que se ha iniciado el filtrado del firewall), esta salida se mostrará en la consola del servidor:

Got the same or lower amount of data on two consecutive runs.  If sending test data, maximum data leak size may have been reached.

Inicio del cliente FireAway / Application Spoofer: El cliente FireAway tiene dos modos:

- Modo de prueba (modo 0): envía datos aleatorios dentro de trozos (chunks) que va incrementando para ver cuántos datos se pueden enviar antes de que el AppID del cortafuegos funcione y detenga el flujo de tráfico.
- Modo Exfiltración (modo 1): abre un archivo y lo envía fragmentado a través del cortafuegos.

Para iniciar el cliente básico:

python fa_client.py

Para iniciar el cliente de suplantación de aplicaciones:

python fa_spoof.py

El spoofing de aplicaciones insertará aleatoriamente encabezados HTTP con los trozos de datos para contaminar los registros con varias aplicaciones con el fin de enmascarar la exfiltración de datos.

Descarga y más información de Fireaway: https://github.com/tcstool/fireaway

PoisonTap, el nuevo monstruo de las galletas

Muchos de nosotros siempre nos hemos preocupado de conseguir las mejores herramientas para hacer nuestro trabajo de pentesting, ya sea en cuanto a software y hardware, en muchos de los casos, el software es gratuito debido a que se ha publicado en GitHub o en cualquier otra web por el simple hecho de compartir descubrimientos y algún tipo de conocimiento; al contrario que el hardware, la mayoría de las veces (por no decir siempre) cuesta dinero, y también, de vez en cuando, suele costar un ojo de la cara, y si ya hablamos de material dedicado a seguridad informática, añadimos al ojo de la cara, también un riñón.

Hace unos días hice un post de como crear un USB Rubber Ducky "low cost" , bueno pues hoy os traigo un nuevo ataque low-cost (con hardware incluido) que podréis añadir a vuestro inventario por tan solo... ¡5$!

Estoy hablando de una nueva herramienta creada por Samy Kamkar, conocido por detectar vulnerabilidades en geolocalización y su accesorio RollJam (que podréis encontrar en su web), para ello, simplemente utiliza una Raspberry Pi Zero, un cable USB y como software, Node.js. Esta herramienta, llamada PoisonTap, es capaz de emular una conexión Ethernet a través de USB (o Thunderbolt) que funciona de "gateway" para por ejemplo, poder capturar las cookies de las 1.000.000 webs más usadas, la creación de puertas traseras, también llamadas backdoors, o capturar sesiones, todo esto desde un servidor remoto.

Cabe decir, que una de las mayores ventajas de esta herramienta es que funciona también en ordenadores que se encuentran bloqueados.

Características de la herramienta:
  • Mediante la conexión USB, es capaz de emular una conexión Ethernet, ya mencionada anteriormente.
  • Captura todo el trafico de internet que tenga la maquina atacada. 
  • Captura y almacena todas las cookies HTTP de 1.000.000 de sitios web.
  • Expone el enrutador interno, lo que da la posibilidad al atacante de conectarse remotamente.
  • Instala backdoors persistentes en el cache HTTP para multitud de dominios, todo esto con acceso a las cookies del usuario mediante el envenenamiento de cache (cache poisoning).
  • Permite al atacante realizar peticiones HTTP remotamente con las cookies del usuario víctima en cualquier dominio con backdoor.
  • No requiere que la maquina esté desbloqueada.
  • Los backdoors y el acceso remoto persiste, incluso si el dispositivo de removido de la máquina víctima.
Si tienes una Raspberry Pi 1/2/3, también estás de suerte, podrás usarlo en sustitución a la Raspberry Pi Zero, pero necesitaras un cable Ethernet-USB.

PoC de PoisonTap:

Tor Phone, el prototipo de Tor hacia un teléfono seguro

Esperamos ver pronto y en la calle el llamado 'Tor Phone', un nuevo teléfono que ha sido diseñado por el desarrollador de Tor Mike Perry y que se basa en Copperhead OS, una distribución de Android que viene con múltiples mejoras de seguridad. Recordemos que el equipo de seguridad de Android de Google ha aceptado muchos parches de Copperhead en su base de código de Android.

"Copperhead es también la única ROM de Android que soporta el boot verificado, lo que evita que los exploits modifiquen las particiones de arranque, sistema, recuperación y proveedor
", explica Perry.

Tor Phone también usa OrWall, un firewall para Android que dirige todo el tráfico a través de la red Tor y bloquea otras conexiones, de forma similar a lo que hace la distro Tails Linux Live CD.
Además OrWall permite tener el control completo del smartphone, pudiendo elegir qué aplicación debe tener el tráfico cifrado por Tor.

De momento el prototipo actual tiene muchas "piezas" inacabadas. En el futuro, el proyecto desea añadir más soporte de dispositivos, soporte de MicroG, API de Netfilter, reducibilidad, estabilidad de Orbot, etc.

Inicialmente el modelo del hardware elegido es el Google Nexus 6P. Podéis ver el detalle del proceso de instalación del prototipo en la web de Tor Project, además o animamos a colaborar o contribuir con el proyecto:

https://blog.torproject.org/blog/mission-improbable-hardening-android-security-and-privacy

IP sobre códigos QR

Ya hemos visto algunas y variopintas formas de transmitir información por canales poco habituales y hoy vamos a ver otra muy curiosa de la mano de Eric Seifert, que es capaz de enviar datos usando tan sólo un monitor y una cámara web mediante ¡códigos QR!

La idea es sencilla: usar un interfaz tun para enviar datos bidireccionalmente usando códigos qr que son mostrados en los monitores y leídos mediante webcams. Aunque para implementarlo Eric tuvo que resolver algunos problemas.

Primero, idear alguna manera de confirmar que el otro extremo recibe y lee el mensaje, para lo cuál agregó un simple encabezado SEQ/ACK que incrementa la secuencia con cada nuevo qrcode e incrementa el acknowledge cuando lee con éxito el del otro lado.
En segundo lugar, necesitaba una forma de codificar los datos. Los Códigos QR soportan un modo binario, pero este es el menos eficiente por lo que decidió usar en su lugar alfanuméricos y base32 para codificar los datos de los paquetes (base64 no funcionaría porque el código QR en este modo sólo admite letras mayúsculas).
También tuvo un problema con la biblioteca que utilizaba para codificar los datos, qrtools, que generaba un código qr pero los datos no eran los mismos al decodificar y lo arregló mediante la detección de éste y luego añadiendo un padding a los datos y volviéndolo a intentar hasta que funcione, para luego acabar quitando el padding de nuevo en el otro extremo.

De momento el *problema* es la transmisión de los datos. Empezó con tan sólo 100 bytes por segundo y consiguió multiplicar por 10 la velocidad hasta 1-2kBps quitando el header syn/ack. Eso sí, la latencia sigue siendo un gran handicap. De todas formas, no deja de ser interesante como técnica (quizás algo exótica) y posible método de exfiltración de datos, así que os animo a echar un ojo a los vídeos y al código Python en Github:

Videos Poc:
Github:
Fuentes:

"Little Doctor", un gusano capaz de comprometer aplicaciones de chat basadas en JavaScript

Una de las charlas y herramientas más impresionantes de la décima edición de la conferencia de hacking Kiwicon en Wellington fue sin duda "Little Doctor", un gusano capaz de comprometer aplicaciones de chat basadas en JavaScript usando ataques inteligentes con propagación y capacidades de señuelo/decoy.


Los servicios basados en Electron, un framework JavaScript para aplicaciones de escritorio, o que contienen una vista web (webview) incrustada, están en problemas...
Rocket Chat publicó un parche 13 horas después de su divulgación y Ryver lo hizo en un día.  Por otro lado Slack utiliza webviews pero parece ser seguro.

El hacker australiano Shubham Shah, junto con Moloch de Bishop Fox, y su ex colega Matt Bryant, desarrollaron el framework y además encontraron un 0-day en Microsoft Azure Storage Explorer que publicaron al no tener respuesta de Microsoft después de 90 días.

"Éste es un gusano multi-plataforma mediante el cuál podemos robar archivos accediendo a las API de WebRTC y de Cordova", dijo Moloch. "Little Doctor está escrito de forma modular - todo lo que necesitas es tu propio módulo de propagación y puedes crear un gusano básicamente  en cualquier plataforma que desee". "Tan pronto como se inicia el programa se lanza un nuevo canal, se establece el tema en el código de explotación y comienza a buscar e invitar a personas".

Tienes el código en Github en https://github.com/infosec-au/little-doctor.

Puedes usarlo a través de un contenedor docker editando docker-compose.yml y ejecutando docker-compose up, o si "controlas" el servidor, simplemente colocando main.js. Por favor, úsalo con responsabilidad y sólo con propósitos educativos. Sé bueno ;)

ClusterSSH o cómo manejar varias sesiones SSH de forma concurrente

Muchas veces para preparar un DDoS realizar tareas de mantenimiento en un pool de servidores tenemos que teclear los mismos comandos una y otra vez. Afortunadamente con ClusterSSH (cssh) podemos interactuar en varias sesiones SSH a la vez y ejecutar comandos de forma simultánea en un grupo de servidores (cluster).

Básicamente lo que hará esta herramienta tan útil es abrir un xterminal por cada uno de los servidores del clúster y todo lo que escribamos en la consola de administración "central" será replicado a todas ellas. O si eventualmente queremos sólo escribir en un terminal específico sólo tendremos que seleccionarlo y escribir en él. Muy sencillo pero útil.

La mejor manera para acceder por ssh en este escenario es utilizar un par de claves pública/privada sin passphrase de tal manera que no se nos solicite ninguna contraseña durante el acceso. Así que empezamos creándolas:
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ./id_rsa
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in ./id_rsa.
Your public key has been saved in ./id_rsa.pub.
The key fingerprint is:
SHA256:ST+bpz1QgvzRCGl3sL25buzfzFMkDieNkt+fMDflpeY root@machine01
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|        .        |
|       +.. . o   |
|      =.=o+ = + .|
|     o OSooO B o |
|      E * ++= o .|
|     . o Boo.  . |
|        o =+.+.  |
|         =+.o.+. |
+----[SHA256]-----+

En mi caso utilizaré varias máquinas (droplets) de DigitalOcean por lo que sólo tenemos que crear una nueva key ssh (pegando el contenido del fichero id_rsa.pub) y luego seleccionar la clave al crear nuevos servidores desde un snapshot.

BadUSB, fácil y sencillo

Hace bastante tiempo se descubrió una nueva amenaza, llamada BadUSB, que venía en forma de hardware... Concretamente en forma de USB, que en algunos casos da el pego de la típica memoria USB que todo el mundo tiene y conecta y desconecta al ordenador cuando quiere almacenar algún tipo de información o consultar otra que había guardado anteriormente.

Para los que no conozcan estos dispositivos el nombre lo dice todo: BadUSB, porque estos USBs no se utilizan como almacenamiento sino para hacerse pasar por otro dispositivo como por ejemplo: teclados, ratones... que ejecutarán unas ordenes programadas previamente por el atacante. Y es que este falso USB al ser conectado al ordenador o dispositivo objetivo podrá ejecutar comandos en la terminal, instalar una puerta trasera para posteriormente acceder a ese ordenador, robar credenciales y multitud de cosas más.

Todo esto es debido a que los falsos USBs al ser conectados a una máquina objetivo se ejecutan con otro firmware que no es el normal de una memoria USB (como aparentaban), haciéndose pasar por cualquier otro tipo de dispositivo y siendo capaces de ejecutar cualquier clase de acción sobre la máquina a la que está conectada sin que el usuario en cuestión se entere.

Existen en el mercado diversos dispositivos con estas características pero el que más se adecua a lo que estoy hablando es el USB Rubber Ducky, un dispositivo creado por Hak5.

El USB Rubber Ducky actúa como un teclado que ejecuta y teclea las ordenes que hayamos almacenado sobre su micro SD con tan solo haberlo conectado a otro dispositivo.

El precio de este USB son 44,99$ más los gastos de envió, que son algo más de 10$ (para España). Un dispositivo algo caro, ¿no creéis? Así que, que me diríais si pudiésemos conseguir lo mismo por aproximadamente la mitad de precio que el USB Rubber Ducky...Pues sí, podemos montarnos nuestro propio USB Rubber Ducky a la mitad de precio, todo esto gracias a Teensy que funciona con Arduino

Para montarlo necesitamos: una placa Teensy, tener instalado Arduino y un cable USB. 
Muchos me dirán que es más sencillo todo con el USB Rubber Ducky porque la sintaxis al programar el USB es más sencilla, más fácil y rápida que programar con Arduino.

Eso es cierto, pero hoy traigo una muy buena herramienta para ésto, Brutal, una herramienta desarrollada por el grupo ScreetSec (creadores de TheFatRat o LALIN) y que ha sido estrenada hace unos días; esta herramienta tiene diversos módulos que nos proporcionan payloads escritos para Arduino con diversas funciones, que nos facilitarán mucho las cosas a la hora de usar nuestro Teensy como un BadUSB.

La herramienta tiene los siguientes módulos:
  1. Genera un payload que ejecute una conexion TCP reversa a través de PowerShell.
  2. Descarga y ejecuta un backdoor.
  3. Obtiene las credenciales gracias a MimiKatz.
  4. Genera payloads para gastar bromas.
  5. Genera payloads para administrar Windows.
  6. Genera diversos ataques para Windows. 
Instalación y ejecución de esta herramienta:
  • Instalar los paquetes de PaensyLib en la librería de Arduino.
  • git clone https://github.com/Screetsec/Brutal.git
  • cd Brutal
  • chmod +x Brutal.sh
  • ./Brutal.sh
PoC de Brutal:

[ebook gratuito] "Open Source Compliance in the Enterprise": guía práctica para el uso de código abierto en las empresas

La Fundación Linux (Linux Foundation) lanzó hoy un libro electrónico gratuito, "Open Source Compliance in the Enterprise", que sirve como una guía práctica para las organizaciones sobre la mejor manera de usar código abierto y participar en comunidades de código abierto, cumpliendo con su espíritu y licencia.

Escrito por Ibrahim Haddad, Ph.D., vicepresidente de I+D y jefe del grupo de código abierto en Samsung Research America, el nuevo libro electrónico tiene como objetivo mejorar la comprensión de los problemas relacionados con la concesión de licencias, el desarrollo y la reutilización de software de código abierto. Haddad es responsable de supervisar la estrategia y ejecución de código abierto de Samsung, los proyectos internos y externos de colaboración en I+D y es ex gerente de la Fundación Linux.

Los nueve capítulos del libro llevan a los lectores a través de todo el proceso de cumplimiento con código abierto, incluyendo una introducción al tema, una descripción de cómo establecer un programa de administración de código abierto en su organización y una visión general de los roles relevantes. Se proporcionan ejemplos de mejores prácticas y listas de verificación de cumplimiento para ayudar a los responsables de las actividades de cumplimiento a crear sus propios procesos y políticas.

A medida que la combinación y la construcción de componentes de software de código abierto se ha convertido en la manera de facto para las empresas para crear nuevos productos y servicios, las organizaciones quieren saber cómo participar mejor en las comunidades de código abierto y cómo hacerlo de manera legal y responsable.

Bajo este "modelo de desarrollo multi-fuente", los componentes de software pueden consistir en código fuente proveniente de cualquier número de fuentes diferentes y ser licenciados bajo diferentes licencias. Como resultado, los riesgos que las empresas manejaban anteriormente a través de licencias de empresa a empresa y negociaciones de acuerdos se gestionan ahora a través de programas de cumplimiento sólidos y prácticas de ingeniería cuidadosas.

Las iniciativas y proyectos de código abierto proporcionan a las empresas y otras organizaciones un vehículo para acelerar la innovación a través de la colaboración. Pero hay responsabilidades importantes que vienen con los beneficios de trabajar en equipo con la comunidad de código abierto: Las empresas deben garantizar el cumplimiento de las obligaciones que acompañan a las licencias de código abierto.

"El cumplimiento de código abierto es el proceso por el cual los usuarios, integradores y desarrolladores de código abierto observan los avisos de copyright y cumplen las obligaciones de licencia para sus componentes de software de código abierto", según el libro.

Para obtener más información sobre los beneficios de adecuarse al uso de código abierto y cómo lograrlo, no lo dudes y descarga ya el e-libro gratuito: http://go.linuxfoundation.org/open-source-compliance-ebook