Etiqueta: Linux

  • El sistema operativo del mundo: tecnología, libertad y dependencia

    El sistema operativo del mundo: tecnología, libertad y dependencia

    Reflexión de miércoles

    Vivimos rodeados de pantallas, redes, algoritmos y dispositivos. Pero más que rodeados, vivimos dentro de ellos. La tecnología ya no es una herramienta externa: es el ambiente en el que respiramos, el tejido invisible de nuestras decisiones, emociones y vínculos. Este texto explora cómo el software se convirtió en la forma contemporánea del mundo.

    Cuando todo funciona con software, ¿quién gobierna lo invisible?


    Durante siglos pensamos la técnica como un conjunto de herramientas al servicio del ser humano. Sin embargo, en el siglo XXI esa relación se invirtió: ya no manejamos los instrumentos, sino que habitamos dentro de ellos. El sistema operativo —esa capa invisible de código que sostiene el funcionamiento del mundo digital— se convirtió en la nueva infraestructura de la existencia. No solo organiza las máquinas: organiza nuestras vidas.


    1. La invisibilidad del poder tecnológico

    Martin Heidegger lo advirtió en La pregunta por la técnica (1954): la esencia de la técnica no es instrumental, sino ontológica. No se trata solo de medios para fines, sino de una forma de revelar el mundo. Hoy esa revelación adopta la forma del dato: todo lo que no puede medirse tiende a desaparecer. La técnica contemporánea ya no se limita a ayudarnos; nos define, nos traduce, nos anticipa.

    Lo más inquietante de este poder es su invisibilidad. Nadie “decide” los algoritmos que rigen la vida cotidiana, pero todos los seguimos. Desde los motores de búsqueda hasta los sistemas de recomendación, el poder técnico opera sin rostro. Como diría Bruno Latour, las máquinas se volvieron actores sociales: participan, median, intervienen. El problema no es su existencia, sino que no las percibimos como parte de la política.


    2. El código como ontología

    Gilbert Simondon sostenía que comprender una máquina es comprender su génesis. Hoy esa génesis está en el código: líneas de texto que determinan qué puede y qué no puede hacer un cuerpo, un sistema, una ciudad. El código es la nueva gramática de lo real. Escribe las reglas que antes pertenecían a la física o a la moral.

    Donna Haraway, en su Manifiesto Cyborg, propuso superar la frontera entre lo humano y lo técnico. El “cyborg” no es una fantasía futurista, sino nuestra condición presente: seres híbridos, ensamblados entre biología y algoritmo. Ya no usamos tecnología: somos tecnología. Y ese tránsito redefine la idea de libertad.


    3. De Linux a la nube: el poder de lo anónimo

    Linux, símbolo del conocimiento compartido, encarnó una ética de cooperación y autonomía. Pero su triunfo técnico se tradujo, paradójicamente, en dependencia social. Las grandes corporaciones —Amazon, Google, Microsoft— basan su infraestructura en Linux, pero la envuelven en un modelo cerrado. El código libre alimenta ecosistemas que privatizan la red.

    Shoshana Zuboff describió este fenómeno como capitalismo de la vigilancia: los sistemas aprenden de nosotros y, en ese aprendizaje, nos gobiernan. Android, derivado de Linux, representa esa paradoja: libre en origen, controlado en la práctica. La promesa de apertura devino ecosistema de control. Lo mismo ocurre con la nube: un espacio público sostenido por arquitecturas privadas.


    4. Ejemplos de un poder cotidiano

    El teléfono inteligente es el laboratorio perfecto del nuevo orden tecnológico. Nos da acceso, pero también nos encierra. Cada gesto deja un rastro, cada desplazamiento una coordenada. No necesitamos que nos vigilen: colaboramos con nuestra vigilancia.

    En los vehículos eléctricos, el propietario no posee realmente su máquina. Tesla puede activar o desactivar funciones a distancia; un coche puede “morir” por decisión remota. En las casas inteligentes, el confort se compra con privacidad: el hogar se convierte en sensor. Y en las inteligencias artificiales, la conversación se vuelve espejo: creemos dialogar, pero solo completamos patrones.

    Estos ejemplos no hablan de distopías futuras, sino del presente. El sistema operativo del mundo ya está en marcha, y su poder no proviene de la coerción, sino de la conveniencia. El usuario libre es aquel que todavía no actualizó sus términos de servicio.


    5. La humanidad delegada

    Byung-Chul Han observa que el sujeto digital ya no es dominado por la autoridad externa, sino por la autoexplotación. Nos controlamos con la ilusión de libertad. “El sujeto del rendimiento se explota a sí mismo creyendo que se realiza.” Cada notificación es una microtarea emocional. Cada algoritmo, un espejo que nos devuelve una versión optimizada de nosotros mismos.

    Delegamos la memoria en los dispositivos, la orientación en los mapas, la decisión en los sistemas de recomendación. La inteligencia artificial no roba empleos: roba tiempo, atención, sentido. Nos libera de pensar, pero también de experimentar. La dependencia técnica no se impone: se seduce.


    6. Habitar el sistema

    No existe un “afuera” de la tecnología. La desconexión es una fantasía pastoral. La verdadera libertad no consiste en escapar del sistema, sino en comprenderlo. Heidegger decía que la salvación solo puede surgir de donde acecha el peligro: la técnica puede revelar otra forma de habitar el mundo. Pero eso requiere conciencia, pedagogía y política.

    La alfabetización del siglo XXI no es solo aprender a programar: es aprender a pensar el poder inscrito en el código. Linux demostró que otra manera de construir tecnología es posible. Ahora el desafío es construir otra manera de vivir dentro de ella.


    “Ya no vivimos en un mundo con máquinas: vivimos dentro de ellas.”


    Bibliografía orientativa

    • Heidegger, Martin. La pregunta por la técnica. Editorial Anthropos, 1994.
    • Simondon, Gilbert. El modo de existencia de los objetos técnicos. Cactus, 2013.
    • Haraway, Donna. Manifiesto Cyborg. Madrid: Cátedra, 1995.
    • Zuboff, Shoshana. The Age of Surveillance Capitalism. PublicAffairs, 2019.
    • Han, Byung-Chul. La sociedad del cansancio. Herder, 2012.
    • Latour, Bruno. Reensamblar lo social. Manantial, 2008.

    Artículo previo de esta serie: Linux ganó: por qué el software libre gobierna el mundo sin estar en tu escritorio

  • Linux ganó: por qué el software libre gobierna el mundo sin estar en tu escritorio

    Linux ganó: por qué el software libre gobierna el mundo sin estar en tu escritorio

    Reflexión de miércoles

    El software ya no se compra: se alquila, se actualiza, se vigila. Vivimos en una economía donde los sistemas operativos se transformaron en servicios y los usuarios en fuentes de datos. Pero mientras Windows, macOS, Android e iOS dominan la superficie visible, otro sistema gobierna silenciosamente el corazón del mundo digital.

    Del producto al servicio: cómo el capitalismo digital cambió las reglas del mercado


    Durante décadas creímos que el éxito tecnológico se medía por la cantidad de pantallas en las que aparecía un logotipo. Pero el poder real no está en la visibilidad, sino en la infraestructura. Linux, nacido como un proyecto comunitario y gratuito, no conquistó el escritorio, pero hoy sostiene el funcionamiento del planeta. Es el sistema operativo de Internet, de la nube, de los servidores, de los teléfonos, de las máquinas industriales y de los dispositivos inteligentes que nos rodean. Ganó donde los demás ni siquiera miraban.


    1. Del software como producto al servicio como negocio

    El capitalismo digital cambió el modo en que concebimos el software. Durante el siglo XX, los sistemas operativos eran productos: se compraban, se instalaban y duraban hasta que quedaban obsoletos. Pero a medida que la red se volvió omnipresente, el negocio se desplazó hacia el servicio continuo. Hoy no pagamos por un sistema, sino por su actualización, sincronización y permanencia.

    La vieja relación de oferta y demanda se rompió. Jeremy Rifkin ya lo había anticipado en La era del acceso: el capitalismo contemporáneo ya no vende bienes, sino experiencias sostenidas. Windows, macOS, Android y iOS no son realmente sistemas operativos, sino portales a ecosistemas cerrados donde cada acción se monetiza. El software se volvió una suscripción; el usuario, un flujo de ingresos recurrentes.

    Este cambio alteró los fundamentos del mercado. El producto dejó de tener un precio único y pasó a generar rentas constantes. Y donde hay renta, hay vigilancia. Como explicó Shoshana Zuboff, en el capitalismo de la vigilancia el valor no surge de la venta directa, sino de la captura y predicción de la conducta. El software ya no se limita a servir: observa, mide y anticipa.


    2. El triunfo invisible de Linux

    Mientras las grandes corporaciones transformaban el software en servicio, Linux seguía expandiéndose en silencio. Según W3Techs y Netcraft (2024):

    • El 96% de los servidores públicos del mundo corren Linux.
    • El 100% de las 500 supercomputadoras más potentes usan Linux.
    • El 70% de los smartphones lo utilizan mediante Android.
    • El 80% de los dispositivos embebidos (routers, autos, televisores) ejecutan variantes de Linux.
    • Y aunque apenas un 3% de los escritorios lo usan, controla el 99% de la infraestructura que los conecta.

    Su victoria no fue comercial, sino estructural. Linux no necesitó conquistar el escritorio porque ya dominaba todo lo demás: los cimientos físicos y lógicos del capitalismo digital. En un mundo interconectado, el poder no está en la interfaz, sino en el back-end. Y ahí, Linux reina sin oposición.

    Eric S. Raymond lo explicó en su ensayo The Cathedral and the Bazaar: el software libre prospera porque distribuye la inteligencia y la innovación entre miles de colaboradores. No necesita jerarquía ni control centralizado; su ventaja es la cooperación. Mientras los sistemas propietarios defienden su código, Linux libera el conocimiento como recurso común. Esa apertura le permitió evolucionar más rápido que cualquier producto cerrado.


    3. El mercado que se volvió red

    La economía digital ya no responde a la lógica clásica de oferta y demanda. En el siglo XXI, lo que importa no es cuántas licencias se venden, sino cuántos usuarios permanecen conectados. El valor se mide en retención, no en transacción. Es el paso de la economía del producto a la economía de la plataforma.

    Manuel Castells lo sintetizó en La era de la información: las redes son la nueva estructura del poder. Las corporaciones tecnológicas no compiten por el precio, sino por la capacidad de crear entornos cerrados donde el usuario se convierte en nodo cautivo. Apple no vende teléfonos, vende continuidad. Microsoft no vende sistemas, vende integración. Google no vende Android, vende el acceso a tu vida digital.

    En este contexto, Linux representa lo opuesto: un sistema que no captura, no suscribe, no cobra. Su valor radica en el uso libre, en la cooperación descentralizada, en la posibilidad de modificar sin pedir permiso. Y esa libertad, paradójicamente, es lo que le permitió conquistar los espacios donde el control económico es más estricto: los centros de datos, los servidores empresariales, las redes globales.


    4. Capitalismo de plataformas y privatización del entorno digital

    Shoshana Zuboff describe este nuevo orden como un capitalismo que coloniza la experiencia humana. Las plataformas transforman cada gesto en un dato y cada interacción en una oportunidad de predicción. En ese mundo, el software libre aparece como una anomalía política: una zona autónoma de cooperación no mercantil.

    Pero incluso esa autonomía tiene límites. Los gigantes de la nube —Amazon, Google, Microsoft— basan su infraestructura en Linux, pero lo integran en un modelo de negocio cerrado. Es una paradoja: el código libre alimenta sistemas que luego privatizan sus beneficios. El ideal de Richard Stallman —un software controlado por sus usuarios— convive con un capitalismo que usa Linux como herramienta de dominio.

    El software libre ganó técnicamente, pero el capitalismo ganó económicamente. Sin embargo, esa tensión no invalida la victoria de Linux: demuestra que la cooperación puede sostener la infraestructura de un mundo competitivo. La innovación ya no depende del mercado, sino de la comunidad.


    5. El fin del modelo clásico de oferta y demanda

    El modelo económico del siglo XX se basaba en un equilibrio entre productores y consumidores. Hoy, esa frontera se disolvió. Cada usuario produce datos que retroalimentan los servicios que utiliza. Somos al mismo tiempo clientes y materia prima. En esta economía circular del dato, el software libre introduce una excepción: permite usar sin ser usado.

    La vieja noción de mercado —donde el precio reflejaba el valor— se quebró. En su lugar, aparece una economía de la dependencia continua: actualizaciones automáticas, servicios en la nube, suscripciones ineludibles. Linux, en cambio, sigue ofreciendo un modelo basado en la autonomía y la transparencia. No tiene precio porque no tiene propietario.

    Yochai Benkler lo llamó producción entre pares: una forma de creación colectiva donde la motivación no es el lucro, sino el reconocimiento y el aprendizaje. Ese paradigma, marginal en los noventa, es hoy el que sostiene gran parte del ecosistema digital. El éxito de Linux demuestra que la colaboración abierta no solo es ética, sino económicamente viable.


    6. La paradoja del software libre

    Linux triunfó al desaparecer. Su invisibilidad es su fuerza. Está en el centro de la red, pero fuera del imaginario público. No tiene campañas, ni marketing, ni rostro corporativo. Su emblema —un pingüino sonriente— simboliza esa extraña mezcla de potencia y modestia: un poder que no necesita imponerse.

    En un mundo donde todo se alquila, Linux sigue siendo de todos. En un entorno de control, sigue ofreciendo libertad. En un capitalismo que privatiza la infraestructura del conocimiento, Linux permanece como un recordatorio de que otra economía es posible: una basada en la cooperación, no en la propiedad.


    Conclusión

    El software libre no derrotó a Microsoft ni a Apple en el terreno visible. Pero mientras ellos compiten por la superficie, Linux sostiene el subsuelo. Es el latido técnico de Internet, la respiración de los dispositivos, la condición silenciosa del mundo digital. Su triunfo no se mide en usuarios, sino en presencia.

    El capitalismo transformó el software en servicio y al usuario en recurso. Linux respondió con una lógica inversa: convertir el conocimiento en bien común y la cooperación en motor de progreso. No necesitó venderse, porque todos terminaron usándolo.

    “El código libre no conquistó las pantallas: conquistó la respiración de las máquinas.”


    Bibliografía orientativa

    • Benkler, Yochai. The Wealth of Networks. Yale University Press, 2006.
    • Castells, Manuel. La era de la información. Alianza Editorial, 1996.
    • Raymond, Eric S. The Cathedral and the Bazaar. O’Reilly Media, 1999.
    • Rifkin, Jeremy. La era del acceso. Paidós, 2000.
    • Stallman, Richard. Free Software, Free Society. GNU Press, 2002.
    • Zuboff, Shoshana. The Age of Surveillance Capitalism. PublicAffairs, 2019.
    • Lessig, Lawrence. Code and Other Laws of Cyberspace. Basic Books, 1999.
  • Solución: Ubuntu 22.04 con gráfica Intel 620 Wayland + XOrg

    He instalado Ubuntu 22.04 en mi Lenovo I3 con placa grafica Intel 620 UHD, y desde la Beta que he tenido un parpadeo aleatorio después de un rato de iniciado en Gnome 42.

    Buscando, mi solución fue la siguiente:

    Es añadir el parámetro intel_idle.max_cstate=4 al kernel en /etc/default/grub

    Como añadir el parámetro al booteo del Kernel

    Con sudo, edite /etc/default/grub y busque la línea GRUB_CMDLINE_LINUX_DEFAULT agregando intel_idle.max_cstate=1 a lo que ya esté allí.

    Después de guardar el archivo, ejecute sudo update-grub, luego reinicie.

    Sugiero que primero guarde una copia de su archivo grub original.

  • Cómo habilitar/deshabilitar Wayland en Ubuntu 22.04 Desktop

    Wayland es un protocolo de comunicación que especifica la comunicación entre un servidor de visualización y sus clientes. De manera predeterminada, el escritorio Ubuntu 22.04 Jammy Jellyfish ya usa Wayland, pero también es posible cargarlo en el servidor de visualización Xorg.

    Como habilitar el inicio de sesión con Xorg en Ubuntu 22.04, paso a paso

    Paso 1

    El administrador de pantalla predeterminado para el entorno de escritorio GNOME es GDM3.
    Por lo tanto, editaremos el archivo /etc/gdm3/custom.conf para deshabilitar o habilitar Wayland.
    Abra una terminal de línea de comandos y use nano o su editor de texto favorito para abrir este archivo con permisos de root .

    Paso 2

    Dentro de este archivo, busque la línea que dice #WaylandEnable=false. Puede descomentar esta línea y configurarla como verdadera o falsa, dependiendo de si desea habilitar Wayland o no.

    Habilitar Wayland:

    WaylandEnable=true

    O deshabilita Wayland:

    WaylandEnable=false

    Paso 3

    Una vez que haya realizado los cambios deseados, guarde este archivo y ciérrelo. Deberá reiniciar GDM3 o reiniciar su computadora Ubuntu 22.04 para que los cambios surtan efecto.

    $ sudo systemctl reiniciar gdm3

    Paso 4

    Para iniciar sesión en Ubuntu 22.04 usando Wayland, haga clic en el botón de engranaje (abajo a la izquierda) y seleccione la opción Ubuntu antes de iniciar sesión. Si ha deshabilitado el servidor de visualización de Wayland, solo verá que aparece la opción Xorg, o el botón de engranaje no aparece en absoluto.

  • Hacer mas efectivo el uso del SWAP y proteger nuestro SSD

    Hacer mas efectivo el uso del SWAP y proteger nuestro SSD

    Les voy a a mostrar cómo ajustar el uso de la memoria virtual en Ubuntu, de modo tal de evitar que al final se termine convirtiendo en un lastre y haciendo que el rendimiento sea peor de lo que sería sin ella.

    Y es que aunque la idea de utilizar un archivo o partición de intercambio no es mala en si misma sino todo lo contrario, si no está bien implementada puede generar un excesivo uso del disco duro, sobre todo en los SSD, mucho más lento que la memoria RAM.

    Por ello, el uso de la partición swap, o un swapfile, debe limitarse a situaciones en las cuales no queda otra alternativa más que utilizarla, momentos en los cuales servirá de apoyo a la memoria principal (que es la RAM).

    Si en lugar de ello la utilizamos en todo momento, incluso a veces antes que la memoria RAM, nuestro rendimiento se verá penalizado.

    Para ello, entonces, cómo ajustar el uso de la memoria virtual en Linux mediante el comando Swappiness.

    En nuestro sistema operativo la creación de la memoria virtual se suele realizar durante el proceso de instalación, momento en el cual definimos la partición raíz (/), la de almacenamiento (/home) y la de intercambio o swap.

    El parámetro del kernel que gestiona el uso de la memoria virtual es el anteriormente mencionado swappiness, y básicamente podemos decir que se encarga de definir que tan seguido accedemos a la partición de intercambio y que tanto contenido copiamos en ella, mediante un argumento que varía entre 0 y 100.

    El valor por defecto en una instalación de Linux es de 60, pero como es fácil suponer no todas las configuraciones de hardware son iguales y por ello tampoco tiene sentido mantener ese nivel sin importar cual es la nuestra.

    Dicho valor se puede acceder en el registro de procesos /proc/sys/vm/swappiness, y podemos comprobarlo mediante:

    $ cat /proc/sys/vm/swappiness

    Casi seguro estará en 60, y si ese es el caso puede que debamos modificarlo, sobre todo si tenemos más de 4 GB de memoria RAM ya que es lo habitual será que necesitemos poco y nada de la memoria virtual.

    Pero antes de explicar como modificar eso veamos un poco cual es la lógica detrás de todo este asunto de la memoria virtual y la swappiness; y es que cuando se lo deja por defecto en 60 lo que se le dice al kernel es que vaya y utilice la memoria virtual cuando nuestra memoria RAM tenga el 40 por ciento o menos de su capacidad libre.

    Por ende, si establecemos swappiness igual a 100 la memoria virtual se utilizará todo el tiempo, y si la dejamos en un valor muy bajo se utilizará únicamente cuando nuestra memoria RAM esté a punto de agotarse. El mínimo posible es de 1, ya que dejando el valor igual a 0 desactivamos la memoria virtua por completo.

    Entonces,lo que tenemos que hacer es ingresar el siguiente comando desde la terminal (Ctrl + Alt + T):

    sudo sysctl vm.swappiness=10

    Ahora el valor de swappiness quedará en 10, y entonces la memoria virtual apenas se utilizará. (Comprobar haciendo cat al registro del procesor, mencionado anteriormente)

    Una vez cambiado este valor no es necesario reiniciar el equipo sino que surte efecto de inmediato, y de hecho si reiniciamos el valor volverá a estar ubicado en 60 como antes, porque lo que vamos a necesitar es dejar este cambio establecido en forma permanente.

    Para ello, una vez que hemos utilizado nuestro ordenador y comprobado que todo marcha bien con el nuevo valor de swappiness, ejecutamos:

    sudo nano /etc/sysctl.conf

    tras lo cual buscamos el texto vm.swappiness= y agregamos el valor deseado luego del símbolo igual. Guardamos el archivo y ahora si, el cambio será permanente, una vez que se reinicie.

  • Detección de vulnerabilidades de Wazuh

    Este artículo trata sobre la detección de vulnerabilidades de Wazuh

    Requisitos previos

    Instale la plataforma de seguridad de código abierto wazuh y el agente wazuh utilizando los blogs mencionados a continuación.

    1: WAZUH La plataforma de seguridad de código abierto

    2: Instalación del agente WAZUH

    Wazuh es capaz de detectar vulnerabilidades en las aplicaciones instaladas en los agentes utilizando el módulo Vulnerability Detector. Esta auditoría de software se realiza a través de la integración de fuentes de vulnerabilidades indexadas por Canonical, Debian, Red Hat y la base de datos nacional de vulnerabilidades.

    Cómo funciona

    Para poder detectar vulnerabilidades, ahora los agentes pueden recopilar de forma nativa una lista de aplicaciones instaladas, enviándola periódicamente al administrador (donde se almacena en bases de datos sqlite locales, una por agente). Además, el administrador crea una base de datos de vulnerabilidad global, a partir de repositorios CVE disponibles públicamente, y la usa más tarde para correlacionar esta información con los datos del inventario de aplicaciones del agente.

    La base de datos de vulnerabilidad global se crea automáticamente y actualmente extrae datos de los siguientes repositorios:

    Esta base de datos se puede configurar para que se actualice periódicamente, lo que garantiza que la solución buscará los CVE más recientes.

    Una vez creada la base de datos de vulnerabilidades global (con los CVE), el proceso de detección busca paquetes vulnerables en las bases de datos de inventario (únicas por agente). Las alertas se generan cuando un CVE (vulnerabilidades y exposiciones comunes) afecta un paquete que se sabe que está instalado en uno de los servidores monitoreados. Un paquete se etiqueta como vulnerable cuando su versión se encuentra dentro del rango afectado de un CVE. Los resultados se presentan como alertas y también se almacenan en una base de datos. De modo que puede verificar las alertas del último análisis o consultar la base de datos de software vulnerable de cada agente.

    Tipos de escaneo

    El módulo Detector de vulnerabilidades puede ejecutar un escaneo al inicio ( run_on_start ) y cada cierto período de tiempo ( intervalo ). En cualquiera de estos casos, los paquetes que ya han sido escaneados esperarán hasta que expire el  tiempo de ignorar  para volver a escanear. Esto mejora el rendimiento y evita alertas repetidas durante un tiempo configurable. Tenemos entonces dos tipos diferentes de escaneo:

    • Análisis completo: la primera vez, Vulnerability Detector analiza todos los paquetes instalados. Después de esto, todos los paquetes disponibles se escanean nuevamente solo cuando expira el  tiempo de ignorar configurado  .
    • Escaneos parciales: solo se escanean los paquetes nuevos mientras  ignore_time  sigue siendo válido.

    Hay algunas consideraciones que surgen de este comportamiento:

    • Cada análisis completo genera alertas para todos los paquetes, por lo que las alertas se repiten hasta que se solucionan.
    • El usuario no puede activar un escaneo completo manualmente, la única opción es disminuir la  configuración ignore_time  .
    • Los escaneos parciales generan alertas para nuevos paquetes, pero no eliminan alertas para paquetes eliminados.
    • Los análisis parciales se pueden activar con un reinicio de Manager.

    Consulte  la configuración del detector de vulnerabilidades  para obtener más detalles de configuración.

    Matriz de compatibilidad

    La siguiente tabla muestra los sistemas operativos en los que actualmente se admite el detector de vulnerabilidades y la configuración del proveedor necesaria para cada distribución.

    DistribuciónVersionesProveedor de configuración
    Red Hat y CentOS5Base de datos nacional de vulnerabilidades de Red Hat
    6
    7
    8
    ubuntufiel / 14Base de datos de vulnerabilidad nacional canónica
    genial / 16
    biónico / 18
    focal / 20
    Debianestirar / 9Base de datos nacional de vulnerabilidades de Debian
    destructor / 10
    ventanasTodas las versiones compatiblesBase de datos de vulnerabilidad nacionalMSU
    Mac OSTodas las versiones compatiblesBase de datos de vulnerabilidad nacional

    Detección de vulnerabilidades

    El siguiente ejemplo muestra cómo configurar los componentes necesarios para ejecutar el proceso de detección de vulnerabilidades.

    1. Habilite el módulo de agente utilizado para recopilar paquetes instalados en el sistema monitoreado.

    Puede hacerlo agregando el siguiente bloque de configuraciones a su archivo de configuración de agente compartido:

    <wodle name="syscollector">
      <disabled>no</disabled>
      <interval>1h</interval>
      <os>yes</os>
      <packages>yes</packages>
    </wodle>

    Si quieres escanear vulnerabilidades en agentes de Windows, también tendrás que agregar el hotfixes del escaneo:

    <wodle name="syscollector">
      <disabled>no</disabled>
      <interval>1h</interval>
      <os>yes</os>
      <packages>yes</packages>
      <hotfixes>yes</hotfixes>
    </wodle>

    Estos análisis están habilitados de forma predeterminada. Para obtener más información sobre el módulo de inventario, consulte  la configuración de Sycollector. Habilite el módulo de administrador utilizado para detectar vulnerabilidades.

    Puede hacer esto agregando un bloque como el siguiente a su archivo de configuración del administrador:

    <vulnerability-detector>
      <enabled>yes</enabled>
      <interval>5m</interval>
      <run_on_start>yes</run_on_start>
      <provider name="canonical">
        <enabled>yes</enabled>
        <os>bionic</os>
        <update_interval>1h</update_interval>
      </provider>
      <provider name="nvd">
        <enabled>yes</enabled>
        <update_from_year>2010</update_from_year>
        <update_interval>1h</update_interval>
      </provider>
    </vulnerability-detector>

    Recuerda reiniciar el administrador para aplicar los cambios:

    systemctl restart wazuh-manager
    service wazuh-manager restart

    Aquí, puede ver una alerta real donde se completan los campos explicados:

    ** Alert 1591945867.49829472: - vulnerability-detector,gdpr_IV_35.7.d,pci_dss_11.2.1,pci_dss_11.2.3,tsc_CC7.1,tsc_CC7.2,
    2020 Jun 12 07:11:07 (Debian) any->vulnerability-detector
    Rule: 23505 (level 10) -> 'CVE-2019-12735 affects vim'
    vulnerability.package.name: vim
    vulnerability.package.version: 2:8.0.0197-4+deb9u1
    vulnerability.package.architecture: amd64
    vulnerability.package.condition: Package less than 2:8.0.0197-4+deb9u2
    vulnerability.cvss.cvss2.vector.attack_vector: network
    vulnerability.cvss.cvss2.vector.access_complexity: medium
    vulnerability.cvss.cvss2.vector.authentication: none
    vulnerability.cvss.cvss2.vector.confidentiality_impact: complete
    vulnerability.cvss.cvss2.vector.integrity_impact: complete
    vulnerability.cvss.cvss2.vector.availability: complete
    vulnerability.cvss.cvss2.base_score: 9.300000
    vulnerability.cvss.cvss3.vector.attack_vector: local
    vulnerability.cvss.cvss3.vector.access_complexity: low
    vulnerability.cvss.cvss3.vector.privileges_required: none
    vulnerability.cvss.cvss3.vector.user_interaction: required
    vulnerability.cvss.cvss3.vector.scope: changed
    vulnerability.cvss.cvss3.vector.confidentiality_impact: high
    vulnerability.cvss.cvss3.vector.integrity_impact: high
    vulnerability.cvss.cvss3.vector.availability: high
    vulnerability.cvss.cvss3.base_score: 8.600000
    vulnerability.cve: CVE-2019-12735
    vulnerability.title: CVE-2019-12735
    vulnerability.rationale: getchar.c in Vim before 8.1.1365 and Neovim before 0.3.6 allows remote attackers to execute arbitrary OS commands via the :source! command in a modeline, as demonstrated by execute in Vim, and assert_fails or nvim_input in Neovim.
    vulnerability.severity: High
    vulnerability.published: 2019-06-05
    vulnerability.updated: 2019-06-13
    vulnerability.cwe_reference: CWE-78
    vulnerability.references: ["http://lists.opensuse.org/opensuse-security-announce/2019-06/msg00031.html", "http://lists.opensuse.org/opensuse-security-announce/2019-06/msg00036.html", "http://lists.opensuse.org/opensuse-security-announce/2019-06/msg00037.html", "http://lists.opensuse.org/opensuse-security-announce/2019-07/msg00034.html", "http://lists.opensuse.org/opensuse-security-announce/2019-07/msg00050.html", "http://lists.opensuse.org/opensuse-security-announce/2019-08/msg00075.html", "http://www.securityfocus.com/bid/108724", "https://access.redhat.com/errata/RHSA-2019:1619", "https://access.redhat.com/errata/RHSA-2019:1774", "https://access.redhat.com/errata/RHSA-2019:1793", "https://access.redhat.com/errata/RHSA-2019:1947", "https://bugs.debian.org/930020", "https://bugs.debian.org/930024", "https://github.com/neovim/neovim/pull/10082", "https://github.com/numirias/security/blob/master/doc/2019-06-04_ace-vim-neovim.md", "https://github.com/vim/vim/commit/53575521406739cf20bbe4e384d88e7dca11f040", "https://lists.debian.org/debian-lts-announce/2019/08/msg00003.html", "https://lists.fedoraproject.org/archives/list/[email protected]/message/2BMDSHTF754TITC6AQJPCS5IRIDMMIM7/", "https://lists.fedoraproject.org/archives/list/[email protected]/message/TRIRBC2YRGKPAWVRMZS4SZTGGCVRVZPR/", "https://seclists.org/bugtraq/2019/Jul/39", "https://seclists.org/bugtraq/2019/Jun/33", "https://security.gentoo.org/glsa/202003-04", "https://support.f5.com/csp/article/K93144355", "https://support.f5.com/csp/article/K93144355?utm_source=f5support&amp;utm_medium=RSS", "https://usn.ubuntu.com/4016-1/", "https://usn.ubuntu.com/4016-2/", "https://www.debian.org/security/2019/dsa-4467", "https://www.debian.org/security/2019/dsa-4487", "https://nvd.nist.gov/vuln/detail/CVE-2019-12735", "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12735"]
    vulnerability.assigner: [email protected]
    vulnerability.cve_version: 4.0

    Finalment

  • ¿Por qué los programadores prefieren usar Linux?

    ¿Por qué los programadores prefieren usar Linux?

    Windows es el sistema operativo más utilizado, tanto en entornos domésticos como empresariales. La mayoría de los programas se crean para ejecutarse en este sistema operativo. Sin embargo, las personas que crean estos programas (principalmente desarrolladores, programadores y administradores de sistemas) prefieren dejar de lado Windows y trabajar en otro sistema operativo:  Linux . ¿Por qué? ¿Qué los lleva a esto?

    Linux ofrece una gran cantidad de beneficios cuando se trata de trabajar y desarrollar, beneficios que van desde la flexibilidad hasta la seguridad y el rendimiento del sistema. Al día de hoy Linux es un sistema perfectamente asequible para cualquier usuario, ya que no es mucho más complicado de utilizar que cualquier sistema Windows. Sin embargo, este sistema operativo aún no está ganando popularidad en entornos domésticos, siendo su principal punto fuerte los servidores y las computadoras de los programadores.

    ¿Qué impulsa a los programadores a usar Linux?

    Ventajas de usar Linux para programar

    Lo primero que hay que tener en cuenta es que este sistema operativo es  gratuito y de código abierto. Para usarlo no es necesario pagar ninguna licencia o tasa, da igual si lo usamos en un ordenador o en un servidor a gran escala. Si sabemos configurarlo y gestionarlo, ahorraremos una buena cantidad de dinero. Y, si necesitamos soporte profesional, siempre podemos recurrir a sistemas como Red Hat Enterprise Linux.

    Linux es un sistema operativo sin restricciones  . Los usuarios tienen control total sobre él, pudiendo modificarlo según sus necesidades y ajustarlo para que sea lo más parecido posible al sistema real donde se va a ejecutar. Además, tienen control total sobre los paquetes y programas que se ejecutan, pudiendo dejar el sistema justo con lo necesario para poder realizar su trabajo. Podemos usarlo con un escritorio, o desde una terminal para aprovechar al máximo los recursos. El control, sobre todo, el total.

    Este sistema operativo  se puede instalar en cualquier ordenador  , aunque sea antiguo y disponga de pocos recursos. Es más, no podrás cumplir requisitos estúpidos, como el TPM 2.0 de Windows 11, o utilizar un procesador de 64 bits, para poder instalarlo. Y, si es así, siempre podemos encontrar otra distribución. Las actualizaciones también son muy sencillas y rápidas, pudiendo configurarlas tanto de forma automática como manual. Pero de cualquier manera, no reiniciarán furtivamente su computadora como lo hace Windows. La estabilidad  y seguridad  frente a otros sistemas, como Windows, también es una ventana que los desarrolladores tienen en cuenta.

    Por último, Linux dispone de una  gran cantidad de herramientas de programación  , pudiendo utilizar la que queramos en función del tipo de software que vayamos a crear. Además, gracias a su fácil personalización, es posible tener varias configuraciones (con diferentes compiladores, por ejemplo) para poder probar el comportamiento del programa bajo diferentes plataformas en un mismo sistema. También es importante señalar que Linux cuenta con una gran  comunidad de soporte  , y que, dado que la mayoría de programadores también utilizan Linux, la documentación que encontraremos para realizar determinadas tareas está enfocada principalmente a este SO.

    ¿Qué no podemos programar en este sistema?

    Sin embargo, aunque Linux es el mejor sistema operativo para programar, no es perfecto. Si vamos a crear programas para Windows utilizando una herramienta de programación de Microsoft, como  Visual Studio , Linux no nos servirá. Lo mismo sucede al desarrollar juegos de PC con IDE como Unity o Unreal. Aunque estos pueden funcionar en Linux, algunas tecnologías, como  DirectX,  que son exclusivas de Microsoft, no están disponibles en él. Si usamos Linux para crear los juegos, tarde o temprano tendrán que pasar por Windows, y al final es una pérdida de tiempo.

    Si eres programador, y quieres tenerlo todo, no te decidas entre un sistema u otro. Gracias al Subsistema de Windows para Linux es posible utilizar Windows como sistema principal y utilizar este subsistema, como si fuera un segundo sistema operativo instalado, para realizar tareas de programación al más puro estilo Linux.

  • Configurar sudo y agregar usuarios al grupo Wheel

    Si un servidor necesita ser administrado por varias personas, normalmente no es una buena idea que todas usen la cuenta de root.

    Esto se debe a que resulta difícil determinar exactamente quién hizo qué, cuándo y dónde si todos inician sesión con las mismas credenciales.

    La utilidad sudo fue diseñada para superar esta dificultad.

    Con sudo (que significa “superuser do”), puede delegar un conjunto limitado de responsabilidades administrativas a otros usuarios, que están estrictamente limitados a los comandos que les permite.

    sudo crea una pista de auditoría exhaustiva, por lo que todo lo que hacen los usuarios se registra; si los usuarios de alguna manera logran hacer algo que no deberían haber hecho, podrá detectarlo y aplicar las correcciones necesarias.

    Incluso puede configurar sudo de forma centralizada, por lo que sus permisos se aplican a varios hosts.

    El comando privilegiado que desea ejecutar debe comenzar primero con la palabra sudo seguida de la sintaxis normal del comando.

    Cuando ejecute el comando con el prefijo sudo, se le pedirá su contraseña habitual antes de que se ejecute.

    Puede ejecutar otros comandos privilegiados usando sudo dentro de un período de cinco minutos sin que se le vuelva a solicitar una contraseña.

    Todos los comandos que se ejecutan como sudo se registran en el archivo de registro /var/ log/messages.

    El archivo de configuración de sudo es /etc/sudoers .

    Nunca debemos editar este archivo manualmente. En su lugar, use el comando visudo:

    # visudo

    Esto protege de conflictos (cuando dos administradores editan este archivo al mismo tiempo) y garantiza que se usa la sintaxis correcta (los bits de permiso son correctos). El programa utiliza el editor de texto Vi.

    Acceso total a usuarios específicos

    Puede otorgar a los usuarios jose y pepe acceso completo a todos los comandos con privilegios, con esta entrada sudoers.

    usuario1, usuario2  ALL=(ALL) ALL

    Esto generalmente no es una buena idea porque esto permite que usuario1 y usuario2 usen el comando su para otorgarse privilegios permanentes de root, evitando así las funciones de registro de comandos de sudo.

    Acceso de usuarios específicos a archivos específicos

    Esta entrada permite al usuario1 y a todos los miembros del operador del grupo acceder a todos los archivos de programa en los directorios /sbin y /usr/sbin, además del privilegio de ejecutar el comando /usr/apps/ check.pl.

    usuario1, %operator ALL= /sbin/, /usr/sbin, /usr/apps/check.pl

    Acceso a archivos específicos como otro usuario

    usuario1 ALL=(accounts) /bin/kill, /usr/bin/kill, /usr/bin/pkill

    Acceso sin necesidad de contraseñas

    Este ejemplo permite a todos los usuarios del operador de grupo ejecutar todos los comandos en el directorio /sbin sin necesidad para ingresar una contraseña.

    %operator ALL= NOPASSWD: /sbin/

    Agregar usuarios al grupo de Wheel

    El grupo de wheel es un legado de UNIX.

    Cuando un servidor tenía que mantenerse a un nivel más alto que el administrador del sistema diario, a menudo se requerían derechos de root.

    El grupo ‘wheel’ se usó para crear un grupo de cuentas de usuario a las que se les permitió obtener ese nivel de acceso al servidor.

    Si no estaba en el grupo ‘wheel’, se le negó el acceso a la raíz.

    #Descomentar para permitir que las personas en el grupo Wheel ejecuten todos los comandos
    # %wheel ALL=(ALL) ALL

    Descomente la línea, borrando la almohadilla, o (en lugar de tener que agregar a cada persona una por una).

    Mi recomendación es que descomente la linea y quede:

    %wheel ALL=(ALL) ALL

    Ahora, finalmente, use el siguiente comando para agregar cualquier usuario (por ejemplo, usuario1) al grupo Wheel

    # usermod -G wheel usuario1