🔒
Hay nuevos artículos disponibles. Pincha para refrescar la página.
AnteayerSoberanía Tecnológica

Buscamos admin para gnusocial.net

9 Agosto 2024 at 23:08

Seguro que muchos de vosotros/as «conocéis» gnusocial.net una red libre, federada y de vanguardia, que compite con otras redes «menos» conocidas como mastodon, misskey y pleroma entre otras .

Si tenéis cuenta u os habéis pasado por allí, seguramente habréis visto a nuestro administrador  conversando con algún usuario, ayudándole con problemas de todo tipo, comentando las novedades de las últimas modificaciones de gnusocial o comentando algunos trucos técnicos sobre una mejor gestión de las redes federadas o del mundillo gnu/linux en particular, un amor vamos, pero lamentablemente nada dura para siempre y por motivos personales tiene que abandonar esta tarea y  le echaremos mucho de menos.

Con esta marcha, en la comunidad de elbinario, nos volvemos a replantear una pregunta que nos hemos hecho cientos de veces, ¿merece la pena seguir soportando gnusocial.net? Seguramente muchos de vosotros habéis oído las palabras que de que es una red muerta, que no hay queso y esas cosas, pero la verdad es que desde elbinario.net siempre hemos pensado que tener alternativas es aquello que nos distingue de las redes privativas, y creemos firmemente que poner todos los «huevos» en la misma no es buena idea.

Por lo que hemos decidido seguir soportando gnusocial.net si encontramos un administrador/administradora que nos ayude en el proceso, por supuesto queremos ser honestos, aunque la oferta está abierta a todo el mundo se necesitan tener unos conocimientos técnicos, en distintas tecnologías,  como:


- Nginx (servidor web)
- Mariadb (base de datos)
- PHP
- Conocimientos de Gnusocial y la federación con otros software como (Mastodon, Pleroma, Misskey,
  etc).
- Administración general de servidores (backups, medidas de
  seguridad...).
- Moderación de contenidos.

Nuestro actual administrador, aab, ha estado realizando durante estos años un trabajo impecable en gnusocial.net, ayudando a reportar bugs, actualizando a versiones beta para probarlo, ayudando a los nuevos usuarios a conocer la red y solventar sus problemas y por supuesto preocuparse por la seguridad y el mantenimiento del servidor(un currazo vamos).

Así que quien quiera ocupar el cargo es bienvenido/a , si te gustan los retos y las aventuras técnicas, seguro que no te faltaran, te lo aseguramos, y mientras nos ayudaras a mantener una alternativa mas en el universo del fediverso.

Sí, os interesa, podéis encontrarnos en nuestros sitios de contacto habitual –> https://elbinario.net/contacto/

No podemos terminar el artículo sin dar las gracias a aab por todos estos años de dedicado esfuerzo por mantener gnusocial.net y  por estar allí siempre que se le necesita, por no rendirse nunca y llevar la batuta de gnusocial.net contra viento y marea a pesar de las voces que consideran que no deberíamos perder más tiempo en una plataforma «obsoleta»

Gracias por ayudarnos a crear y creer en nuestras utopías :)

 

Instalacion de Alpaca con Dalai

30 Marzo 2023 at 17:10

¿Que es Alpaca?

Alpaca es un modelo de lenguaje tuneado basado en LLama de Facebook , creado por la universidad de Standford como proyecto open-source, entrenado con  GPT-3.5 (text-davinci-003) .

Alpaca es un modelo de lenguaje(LLMs) open-source de  52,000 instrucciones, generado a un muy bajo coste, con este movimiento la universidad de Standford apuesta por un modelo de lenguaje abierto para IA como OpenChatKit, Open Assistant, o Carper AI.

El modelo de lenguaje de Alpaca está enfocado para uso académico no comercial, y ha sido reproducido por menos de 500 $, un logro impresionante comparado con los 5,000,000 $ que costo GTP-3

Requerimientos

Instalar un modelo funcional de Alpaca o Llama en nuestro sistema es posible gracias a varios proyectos comunitarios como https://github.com/antimatter15/alpaca.cpp y https://github.com/cocktailpeanut/dalai

Eso si tenemos que tener en cuenta que estos modelos requieren de una gran capacidad de cálculo y ejecutarlo en un equipo doméstico con unas prestaciones, básicas incluso en una Raspberry Pi no es su entorno más adecuado, puesto que es muy……. lento. Pero es un buen experimento.

  • Necesitamos tener instalado python 3.10 o 3.9, en teoría funciona con versiones anteriores, pero se recomiendan esas versiones
  • Necesitamos Node  18

Instalamos dependencias

apt install wget build-essential libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev

Instalamos python 3.10

wget https://www.python.org/ftp/python/3.10.8/Python-3.10.8.tgz
tar xzf Python-3.10.8.tgz
cd Python-3.10.8
./configure --enable-optimizations
make altinstall (como root)

update-alternatives --install /usr/bin/python python /usr/local/bin/python3.10 1  (como root) con este seteamos python 3.10 por defecto.

Instalamos Node 18

curl -fsSL https://deb.nodesource.com/setup_18.x | bash -

apt-get install -y nodejs
npm install -g npm@9.6.2

Descargamos el repositorio de dali

git clone https://github.com/cocktailpeanut/dalai

Entramos en el directorio clonado e instalamos las dependencias de node

Nos aseguramos de tener la ultimas versión del paquete dalai.

npx dalai@0.3.0 setup

Descargamos todas las dependencias de node

npm install

Si todo ha ido bien tendremos una carpeta llamada node_modules

Descargamos el modelo

Descargamos el modelo elegido, en mi caso el modelo de alpaca de 7B de unos 4GB,  pero en el github de dalai hay varios modelos y tamaños para elegir tanto de alpaca como de llama.

npx dalai llama install 7B

El modelo se almacena por defecto en —> /home/username/dalai/alpaca(llama)/models

Iniciamos el servidor

npx dalai serve

Una vez arrancado el servidor accedemos a http://localhost:3000

Nos aparecerá una interfaz como esta:

Donde podréis introducir el PROMPT, a mi me va lento de narices, pero también es cierto que tengo una patata de equipo. Pero como experimento es interesante ;)

 

Instalacion de Alpaca con Dalai

30 Marzo 2023 at 17:10

¿Que es Alpaca?

Alpaca es un modelo de lenguaje tuneado basado en LLama de Facebook , creado por la universidad de Standford como proyecto open-source, entrenado con  GPT-3.5 (text-davinci-003) .

Alpaca es un modelo de lenguaje(LLMs) open-source de  52,000 instrucciones, generado a un muy bajo coste, con este movimiento la universidad de Standford apuesta por un modelo de lenguaje abierto para IA como OpenChatKit, Open Assistant, o Carper AI.

El modelo de lenguaje de Alpaca está enfocado para uso académico no comercial, y ha sido reproducido por menos de 500 $, un logro impresionante comparado con los 5,000,000 $ que costo GTP-3

Requerimientos

Instalar un modelo funcional de Alpaca o Llama en nuestro sistema es posible gracias a varios proyectos comunitarios como https://github.com/antimatter15/alpaca.cpp y https://github.com/cocktailpeanut/dalai

Eso si tenemos que tener en cuenta que estos modelos requieren de una gran capacidad de cálculo y ejecutarlo en un equipo doméstico con unas prestaciones, básicas incluso en una Raspberry Pi no es su entorno más adecuado, puesto que es muy……. lento. Pero es un buen experimento.

  • Necesitamos tener instalado python 3.10 o 3.9, en teoría funciona con versiones anteriores, pero se recomiendan esas versiones
  • Necesitamos Node  18

Instalamos dependencias

apt install wget build-essential libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev

Instalamos python 3.10

wget https://www.python.org/ftp/python/3.10.8/Python-3.10.8.tgz
tar xzf Python-3.10.8.tgz
cd Python-3.10.8
./configure --enable-optimizations
make altinstall (como root)

update-alternatives --install /usr/bin/python python /usr/local/bin/python3.10 1  (como root) con este seteamos python 3.10 por defecto.

Instalamos Node 18

curl -fsSL https://deb.nodesource.com/setup_18.x | bash -

apt-get install -y nodejs
npm install -g npm@9.6.2

Descargamos el repositorio de dali

git clone https://github.com/cocktailpeanut/dalai

Entramos en el directorio clonado e instalamos las dependencias de node

Nos aseguramos de tener la ultimas versión del paquete dalai.

npx dalai@0.3.0 setup

Descargamos todas las dependencias de node

npm install

Si todo ha ido bien tendremos una carpeta llamada node_modules

Descargamos el modelo

Descargamos el modelo elegido, en mi caso el modelo de alpaca de 7B de unos 4GB,  pero en el github de dalai hay varios modelos y tamaños para elegir tanto de alpaca como de llama.

npx dalai llama install 7B

El modelo se almacena por defecto en —> /home/username/dalai/alpaca(llama)/models

Iniciamos el servidor

npx dalai serve

Una vez arrancado el servidor accedemos a http://localhost:3000

Nos aparecerá una interfaz como esta:

Donde podréis introducir el PROMPT, a mi me va lento de narices, pero también es cierto que tengo una patata de equipo. Pero como experimento es interesante ;)

 

Aventuras con una honeypot custom de Linux: Perl y Botnets

12 Diciembre 2022 at 18:10

Hace un tiempo cree una honeypot para imitar un dispositivo de IoT con un OS de GNU Linux. La idea era investigar por mi cuenta y por diversión los ataques dirigidos a Linux, puesto que tiene tangencialmente que ver con mi trabajo pero quería hacerlo a mi manera. Los detalles técnicos de cómo la he montado están en este repositorio, pero el resumen es que he copiado el filesystem de OpenWRT con docker, lo he integrado en mi honeypot y he añadido detalles que sabía que solían formar parte del interés de un atacante en estos casos (documentos de configuración, claves SSH, librerias concretas, etc). Pero esta entrada no va de eso, va de una de las campañas que he investigado.

Cuando tienes una de estas honeypot, es posible que recibas muchos ataques, desde diferentes sitios, la mayoría automáticos. En mi caso me dedique a revisar tranquilamente los logs de la honeypot para ver qué había sucedido, por lo general hay algunos detalels que suelen llamar mi atención, para empezar las lineas de comando. La honeypot guarda cualquier comando que se haya intentado ejecutar, de modo que se puede comprobar con un simple grep CMD a través de los logs qué días se han detectado comandos y por parte de qué sesión, cuándo y desde qué dirección IP. Las direcciones IP por si solas dicen más bien poco y no son fiables a largo tiempo como método de detección, pero pueden ayudar a identificar un mismo ataque en un periodo corto de tiempo en una misma máquina. En mi caso cuando estuve revisando líneas de comando descubrí un comando que formaba parte de un ataque automático que resultaba interesante. El ataque descargaba y ejecutaba en segundo plano un script de perl, que tras analizarlo es para un DdoS muy característico, porque utiliza una botnet basada en IRC. Como hay muchos palabros hasta ahora, voy a hacer un inciso para explicar conceptos, puedes saltártelo si ya los conoces:

  • DDoS es literalmente “distributed denial-of-service” que es un tipo de ataque relativamente fácil d eprevenir, antiguo en términos de internet, pero que sigue existiendo. Se basa en usar tantas peticiones por unidades pequeñas de tiempo que provoque una sobrecarga de recursos de un servicio. Hemos visto ese ataque, por ejemplo, contra el salto.
  • Perl es un lenguaje de programación que suele venir por defecto configurado en los sistemas basados en unix. Interpretado, dinámico y flexible, suele ser utilizado para “one liners” es decir, comandos de una sola línea que hacen cosas útiles y eficientes. Perl6 pasó a llamarse Raku y es un lenguaje diferente.
  • Script es un programa pequeño normalmente con una función muy específica. En Linux es habitual usar lenguaje Perl o Bash para esto, pero también puede usarse Python y otros.
  • Botnet es una colección de dispositivos normalmente secuestrados que forman parte de una red activa o dormida para realizar a taques como el de DDoS. Los atacantes lo usan mucho para esconder sus huellas.
  • IRC, literalmente Internet Relay Chat es un sistema de mensajería bastante antiguo (se creó en 1988). Sin embargo se ha reutilizado para hacer un sistema que utiliza una Botnet para mandar comandos maliciosos y realizar ataques de denegación de servicio, entre otras cosas.

Pues bien, existe una de esas Botnet basada en IRC que está hecha en perl, y es característica de un grupo en particular: Outlaw. Los investigadores ponen nombres mega chulos a todos los atacantes, por algún motivo, no preguntéis. Tenía claro que lo que estaba viendo era un ataque automático de outlaw, pero no estaba segura cuántas de las cosas sospechosas de mi honeypot eran de la misma campaña. Outlaw ya atacó a diversos dispositivos de IoT y Linux hace unos años y a mediados de este año volvieron a llamar la atención, así que cuadraba que estuvieran de nuevo al ataque. Me interesaba averiguar si habían cambiado algo, si había algo nuevo.

Me llama la atención los users por defecto del script. No los pondré públicos por si son diferentes para cada grupo de víctimas, pero son bastante particulares. Si diré que la IP no está en virustotal. También os diré que el que lo ha configurado es un tío. ¿Que como lo se? No diré el nombré del canal que usan porque he visto que cada campaña cambia, pero tiene que ver con penes.

Que obsesión.

Y bueno, una confirmación de que es Outlaw, se les conoce como un grupo de habla rumana. Es más en otra versión del script que no es la que tengo dicen “La educación es como una erección, si la tienes, la ves”, en rumano. Puede ser cierto o una especie de carta para confundir, a mi me da igual, no me dedico a rastrear quiénes son en la vida real, sólo cómo hacen lo que hacen.

En el código puedo ver que utiliza recursos externos para intentar una vulnerabilidad de MD5 collision, con la intención de romper y descifrar hashes, es otra cosa que me llamó la atención. Es parte de los comandos que pueden usarse en la Botnet.

Otro de los ataques automáticos implicaba el uso de una sintaxis propia de perl. Sin embargo las IPs y los días no coincidían. Esto no quiere decir nada por si solo porque hay campañas con días de distancia entre un paso y el siguiente, además de que el uso de una Botnet complica el seguimiento por Ips. Estaba casi segura de que tenía relación pero necesitaba buscar algo más. Después de darle unas vueltas, caí en la cuenta de que los intentos de fuerza bruta contra la honeypot (había intentos de conexión con varias credenciales) parecían hechos con algún tipo de programa de shuffle con una lista de palabras. Me di cuenta de que algunas eran muy específicas, probablemente hechas con un generador automático, y no encontré esas listas en ningún lado (repositorios, pastebin, foros…) de modo que se me ocurrió que podía buscar coincidencias de credenciales especialmente particulares entre las de las sesiones que tenían que ver con el ataque sospechoso. Efectivamente, aunque las Ips variaban, las credenciales particulares se repetían (no exactamente iguales, pero si con combinaciones similares) en las sesiones del ataque sospechoso por una sintaxis de Perl.

Una vez hecha esa relación, la red del ataque era más amplia, y seguí investigando. A través de comandos usados en esas mismas sesiones o por esas mismas Ips, llegué a la conclusión de que estaban intentando explotar CVE-2017-9841, una vulnerabilidad de Linux que tuvo un impacto importante en su momento y sigue sin estar del todo parcheado en muchos contextos. Pero, si eso fuese así, para confirmarlo (siempre procuro confirmar una teoría con al menos dos pruebas) tendría que ver evidencias de que se ha intentado usar una shell en PHP, puesto que es la entrada más común de esa vulnerabilidad. Miré los detalles de red de las conexiones y vi como se intentaba hacer llamadas que implicaban shells de PHP de manual: ¡confirmado! Otro inciso técnico:

  • PHP es un lenguaje de scripting especialmente pensado para uso en aplicaciones y páginas web. Personalmente lo odio con todas mis fuerzas. No sólo incita a ser desordenado (puedes añadirlo por ejemplo a cachos en cualquier html) si no que suele ser el origen de múltiples vulnerabilidades. Pero gustos colores, que dicen.
  • Una shell es una terminal, desde la cual ejecutar comandos. Hay ataques (al que me refiero) que implican forzar al usuario sin saberlo a interactuar con una web para provocar las condiciones de una vulnerabilidad. Cuando se accede a una terminal, puedes intentar realizar ataques contra base de datos, servicios, etc.

Hasta aquí había conseguido: el script original del ataque, el conocimiento de que Outlaw estaba usando MAYDAY (el tipo de malware que aprovecha la vulnerabilidad mencionada, o al menos uno muy similar a ese) y más adelante un intento de sobrescribir claves ssh (¿recordáis lo que os dije de que las claves ssh tienen interés? Con frecuencia es para intentar extender el ataque a las claves ssh conocidas por la máquina afectada, pero en general dan credibilidad a un sistema de mentirijilla). Al investigar los ataques, también utilizaban binarios maliciosos, que se han guardado en mis logs, y he podido comprobar que coinciden con XMRig, usado como criptominero (y el objetivo de mi búsqueda, el por qué del filesystem que elegí para la honeypot). XMRig en si es un minero legítimo, pero se usa forzadamente en máquinas, en forma de malware, para aprovechar recursos para minar crypto (este es, con diferencia, el ataque más visto en Linux). Así que en conclusión en esta campaña:

  • He visto que siguen usando el Botnet IRC de Perl
  • He visto que usan XMRig (algo que ya usaban)
  • Aprovechan CVE-2017-9841, en forma del malware MAYDAY
  • Utilizan algún sistema para fuerza bruta con una lista personalizada, probablemente generada automáticamente con patrones que mezclen listas de contraseñas por defecto en sistemas y apps y contraseñas posibles.
  • En una versión más avanzada, procuran sobrescribir ssh, esta parte tiene relación con XMRig.

En realidad todo está basado en análisis de los logs durante un par de meses, quizás el tiempo permita ver más detalles, o quizás la campaña acabará antes de eso. El mundo de cyber es un poco como el de la moda textil, a veces vuelven cosas que se creían pasadas ya a la historia. Gracias a este pequeño proyecto, poco a poco, tengo algunos hashes, un script, comandos y TTPs, y espero poder hablar en más detalle (cómo mirar y parsear rápidamente estos logs, qué añadir a las honeypot para tunearlas, etc) de esto y otros que he visto si se me da la oportunidad en alguna charlilla el año que viene.

  • No hay más artículos
❌