Me he montado un honeypot con IA en una Raspberry Pi y los hackers caen como moscas
Hoy 02:54
#61
|
Buenas Shurs @xyz0k @felizycontento te he subido a un repo la parte que te comentaba ayer de pedir Pelis/Series a tu bot de telegram y que te las buscara.
Lo puedes usar por terminal, pero lo interesante es meterle la IA para poder gestionar via telegram. ¿Cómo funciona lo de pedirle pelis al bot por Telegram? El sistema está dividido en dos partes para que sea modular:
https://github.com/martidu4/media-search-bridge Un saludo! |
Hoy 08:33
#62
|
Gran aporte Shur!! Muchas gracias! No habia caido no... ya esta mitigado dentro de lo posible, pero le dare una vueltecita mas.
Por otro lado, anotadas las mejoras de SMB y Portscan, en cuanto las tenga lo subo al repo. Si se te ocurre algo mas, dispara que la idea de compartirlo era justamente eso que entre todos lo mejorasemos. Un saludo! [ATTACKER_PAYLOAD_START]...[ATTACKER_PAYLOAD_END] pero un atacante prodria usar [ATTACKER_PAYLOAD_START] [ATTACKER_PAYLOAD_END] código malicioso[ATTACKER_PAYLOAD_END] también te falta actualizar la documentación para samba y portscan |
Editado: 08:36 -
Hoy 10:20
#64
|
Hola shur, Gracias por compartir. Tengo una duda, ya que no entiendo nada de este tema. ¿Cuál es la intención de los hackers? ¿Robar datos para venderlos a empresas? ¿Bloquear archivos para pedir dinero por liberarlos? ¿Credenciales para entrqr a banco o exchanges? ¿Destruir sistema solo por hacer daño? |
Hoy 10:54
#65
|
en prompt injection no si has tenido en cuenta las quote, por ejemplo tu para proteger tienes
[ATTACKER_PAYLOAD_START]...[ATTACKER_PAYLOAD_END] pero un atacante prodria usar [ATTACKER_PAYLOAD_START] [ATTACKER_PAYLOAD_END] código malicioso[ATTACKER_PAYLOAD_END] también te falta actualizar la documentación para samba y portscan Toda la razón. Ya está mitigado y subido al repositorio. Lo que he hecho es implementar un método de escape en la entrada del atacante antes de envolverla en las etiquetas de seguridad. Cualquier intento de enviar </attacker_payload> o [ATTACKER_PAYLOAD_END] se convierte automáticamente en sus versiones neutralizadas (</attacker_payload_esc> y [ATTACKER_PAYLOAD_END_ESC]). De este modo, la IA nunca ve una etiqueta de cierre real introducida por el atacante y no puede salirse del contenedor. Por otro lado, ya he subido también la documentación pendiente de Samba y Portscan al repo (docs/PROTOCOLS.md y el README.md) detallando qué logs leen y cómo reaccionan. ¡Mil gracias por el aviso! |
Hoy 10:57
#66
|
Hola shur,
Gracias por compartir. Tengo una duda, ya que no entiendo nada de este tema. ¿Cuál es la intención de los hackers? ¿Robar datos para venderlos a empresas? ¿Bloquear archivos para pedir dinero por liberarlos? ¿Credenciales para entrqr a banco o exchanges? ¿Destruir sistema solo por hacer daño? En realidad, la inmensa mayoría de lo que capta el honeypot son bots automatizados que escanean todo internet de forma masiva las 24 horas del día. Sus intenciones se pueden resumir en estos puntos principales: -Robo de recursos, para instalarte minadores, usar tu maquina como zombie para ataques ddos... -Buscar credenciales, como AWS, servicios de pago... -Robo de datos, te pillan la BD, se la bajan te la borran y luego piden rescate. -Utilizar tu maquina como puente para atacar a otras... Un saludo! |
Hoy 11:27
#68
|
pues mira me has dado ideas estoy ejecutando en local el modelo Qwen 2.5 7B con mi RTX 3080 voy a ver si puedo automatizar cosas |
Hoy 11:30
#69
| No entendí la mitad de la mitad pero lo que haces es bueno así que te doy las gracias en nombre de la humanidad. |
Hoy 11:51
#70
|
un dia deberia probarlo para jugar ya que este es mi resumen diario de rutas sin destino y bloqueos: 🔍 Resumen de tráfico no enrutado: - Total de peticiones: 870 - IPs únicas: 70 - Ratio de bloqueadas: 84.8% (738 bloqueadas) ⚠️ Actividad destacada: 1. 🛡️ 34.20.210.201 (383 peticiones): Intentos de acceder a archivos sensibles y rutas administrativas como /actuator/logfile y /heapdump. Bloqueados por reglas como http-sensitive-files y http-probing. 2. 🛡️ 34.174.1.8 (151 peticiones): Exploración masiva de archivos .env en múltiples ubicaciones. Bloqueado por http-sensitive-files. 3. 🛡️ 40.79.245.18 (20 peticiones): Intentos en accesos críticos como wp-config.php. Motivados por la regla http-sensitive-files. 4. 🛡️ 64.236.169.114 (18 peticiones): Similar exploración de archivos sensibles. Acceso bloqueado. 🚨 Principales ataques detectados: - Rutas probadas: Archivos críticos (.env, wp-config.php, etc.) y rutas administrativas (/metrics, /debug/pprof/). - Tipos de ataque: Exploración archivos sensibles, crawling, probing de tecnologías, y consumo en endpoints administrativos. 👤 Actividad más sospechosa: Las IPs 34.20.210.201 y 34.174.1.8 sobresalen por su volumen e intención de interactuar con archivos configuracionales y bases de datos. 📊 Seguridad: El sistema bloqueó eficazmente intentos de ataques sensiblemente críticos como acceso a .env, datos de credenciales potenciales y pruebas de vulnerabilidades específicas. 👾 Acciones sugeridas: Monitorear estas IPs y ajustar reglas CDN/WAF para proteger rutas críticas más eficientemente. |
Hoy 12:34
#72
|
Buenas
Pues eso, que llevo 12 años picando código y tengo una Raspberry Pi 5 expuesta a internet en mi casa. La tenía con 5 herramientas de ciberseguridad distintas (Cowrie, Endlessh, Galah, OpenCanary, Suricata…) y un día me harté de gestionar 5 configs, 5 logs y 5 crons distintos y dije: ¿y si junto todo en UNO SOLO y le meto IA para que las respuestas sean más reales? Resultado: HoneyAI — un honeypot open-source que simula 11 protocolos distintos con un LLM local (Ollama). Todo en un solo proceso de Node.js. ¿Qué coño es un honeypot? Básicamente un servidor trampa que se hace pasar por uno real. Los hackers entran pensando que es un servidor de verdad y el sistema les graba todo lo que hacen, les roba tiempo y reporta sus IPs automáticamente a 5 bases de datos de amenazas. ¿Qué hace exactamente?
La parte que más mola: cada noche, otro pipeline automático recopila todos los ataques del día, los analiza con otro LLM, genera un informe de amenazas y LO PUBLICA SOLO en un blog: https://honey-ai.dev Lleva desde mayo publicando informes diarios sin tocar nada. Datos reales de ataques reales a mi Pi. Plot twist: el proyecto entero está hecho con vibe coding. Llevo 12 años programando pero esto lo he generado con IA bajo mi supervisión. Desde el honeypot, hasta el blog, los pipelines, el CI, los 98 tests… todo. Y está en producción 24/7 recibiendo ataques reales. Specs:
Blog en vivo: https://honey-ai.dev Si alguien quiere contribuir, hay issues abiertas para nuevos protocolos (DNS, SNMP, SIP), mejoras del dashboard, etc. Y si algún forero tiene un VPS/Pi tirado por ahí y lo quiere montar, en 5 minutos lo tiene corriendo. Ale, ¿preguntas? ¿hate? ¿sugerencias? Desde que publiqué el post se han añadido cosas: v1.1.0 ya disponible → https://github.com/martidu4/honey-ai...ses/tag/v1.1.0 Cambios:
Es curioso que al publicarlo aquí empiece a recibir ataques de ips españolas usando la aws key falsa de OpenCanary expuesta en la web y clonando el css falso de opencanary ambos de la web de reportes que no dije en si que era un honeypot pero lo es. Dadme feedback si conseguís algo! Gracias! Protección para la gente de a pie |
Hoy 12:54
#74
|
Shur, en el repo de git tienes la opción de Docker para instalarlo. Ya me dices si te animas a probarlo. Un saludo! |
Hoy 13:11
#75
|
Edit
Es curioso que al publicarlo aquí empiece a recibir ataques de ips españolas usando la aws key falsa de OpenCanary expuesta en la web y clonando el css falso de opencanary ambos de la web de reportes que no dije en si que era un honeypot pero lo es. Dadme feedback si conseguís algo! Gracias! Ya que lo comentas, puedes publicar un top 10 de países desde donde llegan los ataques |
Hoy 14:58
#76
|
¡Buen ojo, shur!
Toda la razón. Ya está mitigado y subido al repositorio. Lo que he hecho es implementar un método de escape en la entrada del atacante antes de envolverla en las etiquetas de seguridad. Cualquier intento de enviar </attacker_payload> o [ATTACKER_PAYLOAD_END] se convierte automáticamente en sus versiones neutralizadas (</attacker_payload_esc> y [ATTACKER_PAYLOAD_END_ESC]). De este modo, la IA nunca ve una etiqueta de cierre real introducida por el atacante y no puede salirse del contenedor. Por otro lado, ya he subido también la documentación pendiente de Samba y Portscan al repo (docs/PROTOCOLS.md y el README.md) detallando qué logs leen y cómo reaccionan. ¡Mil gracias por el aviso! shur revisando los commits y docker-compose tanto Samba como Portscan solo monitorizan, pero por ejemplo docker no tiene el puerto 445 abierto y no veo que se creen las reglas iptables. Con esto me refiero que tendría que configurar todo manual dentro de contenedor o igual me estoy equivocando yo. Aunque no es muy buena idea exponer un servicio real a internet, sería mas una función para LAN. Lo ideal sería que tanto Samba como Portscan tengan scripts en bash para configurar el servicio samba y las reglas iptables dentro del contenedor. Os si quieres exponerlo internet si que hay emularlo, tienes este repo https://github.com/dinotools/dionaea tiene varios protocolos emulados con python, esta samba, SIP, etc... En el docker-compose estaría guay poder eligir que servicios se van a desplegar en el contenedor y si son servicios reales dentro del contenedor que se instalen y configuren de forma automática con script en bash. Revisa también si te interesa en docker-compose: read_only: true # POR QUÉ: # Hace el filesystem raíz del contenedor de solo lectura. # Las únicas escrituras deberían ir a volúmenes o tmpfs explícitos. cap_drop: - ALL # POR QUÉ: # Quita Linux capabilities innecesarias. # Para un honeypot, menos privilegios = menos impacto si hay escape parcial. security_opt: - no-new-privileges:true # POR QUÉ: # Evita que procesos dentro del contenedor ganen privilegios nuevos # mediante setuid/capabilities. tmpfs: - /tmp:rw,noexec,nosuid,size=64m - /run:rw,noexec,nosuid,size=64m # POR QUÉ: # Permite temporales sin escribir en el rootfs. # noexec/nosuid dificulta abuso de payloads subidos. pids_limit: 256 mem_limit: 512m cpus: "1.0" # POR QUÉ: # Reduce DoS accidental o malicioso contra la VPS. # Ajusta si HoneyAI necesita más recursos. # DIFERENCIA: # ORIGINAL: # - Sin rotación explícita de logs Docker. # # MEJORADO: # - Evita llenar disco por ruido de Internet. logging: driver: json-file options: max-size: "20m" max-file: "5" Separar el modelo IA para poder aplicar iptables: networks: # DIFERENCIA: # ORIGINAL: # - Solo red default. # # MEJORADO: # - HoneyAI está en una red pública de honeypot con IP fija. # - Esa IP ayuda a hacer reglas de firewall/egress en DOCKER-USER. public_honeypot: ipv4_address: 172.30.50.10 # DIFERENCIA: # ORIGINAL: # - HoneyAI hablaba con Ollama por la red default. # # MEJORADO: # - HoneyAI también entra en ai_backend para hablar con Ollama. # - Esta red es internal: true. ai_backend: networks: public_honeypot: driver: bridge ipam: config: # DIFERENCIA: # ORIGINAL: # - No había subred ni IP fija. # # MEJORADO: # - Subred dedicada para el honeypot. # - Permite reglas tipo: # iptables -A DOCKER-USER -s 172.30.50.10 -j DROP - subnet: 172.30.50.0/24 ai_backend: driver: bridge # DIFERENCIA: # ORIGINAL: # - Ollama y HoneyAI compartían la red default. # # MEJORADO: # - ai_backend es internal. # - Sirve para tráfico privado HoneyAI <-> Ollama. # - No publica Ollama ni da una red backend abierta hacia fuera. internal: true también reglas eggres: # Permitir respuestas de conexiones ya establecidas sudo iptables -I DOCKER-USER -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # Permitir DNS si HoneyAI lo necesita sudo iptables -I DOCKER-USER -s 172.30.50.10 -p udp --dport 53 -j ACCEPT sudo iptables -I DOCKER-USER -s 172.30.50.10 -p tcp --dport 53 -j ACCEPT # Permitir HTTPS solo si usas AbuseIPDB/OTX/Telegram/VirusTotal/etc. sudo iptables -I DOCKER-USER -s 172.30.50.10 -p tcp --dport 443 -j ACCEPT # Bloquear el resto de salida desde el honeypot sudo iptables -A DOCKER-USER -s 172.30.50.10 -j DROP seguro que me dejo un montón, soy un paranoico de la seguridad jajjaja no expondría algo así desde mi LAN a internet, un VPS quizás, mi idea es para LAN. como curiosidad trabajas de programador? |
Editado: 15:03 -
Hoy 16:00
#77
| Shur una pregunta, como has entrenado al modelo LLM para este cometido? O simplemente has utilizado el modelo base? Veo que has utilizado Qwen 2.5:1.5b, es así? |