Honeyos y el archivo clean
El proyecto DISEÑO DE UNA DISTRIBUCIÓN LINUX DERIVADA DE DEBIAN PARA EL DESPLIEGUE DE HONEYPOTS DE SEGURIDAD EN LA ESCUELA MILITAR DE INGENIERÍA UNIDAD ACADÉMICA DEL TRÓPICO ah definido un contenedor para gestionar y controlar el arranque inicial de Honey Operation System, el contenedor mencionado crea los directorios donde se ubican dichos logs de almacenamiento, entonces logstash los coje y envia a elasticsearch y de ahi a kibana.
DISEÑO DE CONSUMO DE DATOS
gantt dateFormat HH:mm title Flujo de logs en ELK (Vista tipo Gantt) section Generación Honeypots / Aplicaciones :done, gen, 00:00, 01:00 section Recolección Filebeat / Shippers :active, rec, 01:00, 02:00 section Procesamiento Logstash : proc,02:00, 03:00 section Indexación Elasticsearch : idx, 03:00, 04:00 section Visualización Kibana : vis, 04:00, 05:00
Diseño provehido por Krypton612 - Ronald Diaz
Este diagrama es una representación simple y clara de como el pack ELK permite aprovechar datos y funcionalidades definidas para registrar datos.
Archivo de configuración clean
El archivo clean.sh es un archivo definido en Honeyos container que permite desplegar la configuracion inicial de los contenedores preparados para el proyecto.
Codigo
Archivo de configuracion clean
# Let's create a function to clean up and prepare wordpot data
fuWORDPOT () {
if [ "$myPERSISTENCE" != "on" ]; then rm -rf /data/wordpot/log; fi
mkdir -vp /data/wordpot/log
chmod 770 /data/wordpot -R
chown tpot:tpot /data/wordpot -R
}
# Configuracion customizada agregada para le nuevo honeypot emi data
fuEMI () {
if [ "$myPERSISTENCE" != "on" ]; then rm -rf /data/emi/*; fi
mkdir -vp /data/emi/log # permite crear el directorio de logs
chmod 770 /data/emi -R
chown tpot:tpot /data/emi -R # permite definir los permisos al nivel 2000
}
# Avoid unwanted cleaning
if [ "$myPERSISTENCE" = "" ];
then
echo $myRED"!!! WARNING !!! - This will delete ALL honeypot logs. "$myWHITE
while [ "$myQST" != "y" ] && [ "$myQST" != "n" ];
do
read -p "Continue? (y/n) " myQST
done
if [ "$myQST" = "n" ];
then
echo $myGREEN"Puuh! That was close! Aborting!"$myWHITE
exit
fi
fi
clean.sh
Este archivo permite crear el directorio emi y dentro, el directorio, log. Se crea una nueva version de Honeyos y se sube al repositorio principal
salida del build docker
---> Running in e98602617a03
Removing intermediate container e98602617a03
---> 1119c8959dac
Step 6/7 : STOPSIGNAL SIGTERM
---> Running in 397b154fa1a3
Removing intermediate container 397b154fa1a3
---> 4144c8faa09d
Step 7/7 : ENTRYPOINT ["/opt/tpot/entrypoint.sh"]
---> Running in ca24203f721c
Removing intermediate container ca24203f721c
---> 1ec08da91e29
Successfully built 1ec08da91e29
Successfully tagged ghcr.io/krypton612/honeyos:latest
Successfully tagged ghcr.io/krypton612/honeyos:1.0.2salida del push al repositorio remoto
The push refers to repository [ghcr.io/krypton612/honeyos]
0ecee228de78: Pushed
6004de7cb1da: Pushed
097100c76c15: Layer already exists
1.0.2: digest: sha256:6ca743b5a6c9095c0f4a6613dbc8c41a453d3ce4a53f36a1748ad67a351940d9 size: 951Configuracion inicial de Honeyos funcionando con honeypot-emi
Descripcion del trabajo
La integracion del volumen compartido se realiza apartir de la integracion del codigo y creacion de un nuevo docker-compose para pruebas hasta su integracion con toda la infraestructura.
Archivo docker-compose para integracion
# Honey-OS: STANDARD
networks:
adbhoney_local:
ciscoasa_local:
conpot_local_IEC104:
conpot_local_guardian_ast:
conpot_local_ipmi:
conpot_local_kamstrup_382:
cowrie_local:
dicompot_local:
dionaea_local:
elasticpot_local:
h0neytr4p_local:
heralding_local:
honeyaml_local:
ipphoney_local:
mailoney_local:
medpot_local:
miniprint_local:
redishoneypot_local:
sentrypeer_local:
tanner_local:
wordpot_local:
nginx_local:
services:
#########################################
#### DEV
#########################################
#### Honey-OS Lanzador, Jamas Eliminar. !
#########################################
# Honey-OS Init Service
honeyos:
container_name: honeyos
env_file:
- .env
restart: always
stop_grace_period: 60s
tmpfs:
- /tmp/etc:uid=2000,gid=2000
- /tmp/:uid=2000,gid=2000
network_mode: "host"
cap_add:
- NET_ADMIN
image: ghcr.io/krypton612/honeyos:1.1
pull_policy: ${TPOT_PULL_POLICY}
volumes:
- ${TPOT_DOCKER_COMPOSE}:/tmp/tpot/docker-compose.yml:ro
- ${TPOT_DATA_PATH}/blackhole:/etc/blackhole
- ${TPOT_DATA_PATH}:/data
- /var/run/docker.sock:/var/run/docker.sock:ro
##################
#### Honeypots
##################
honeypot-emi:
image: ghcr.io/krypton612/honeypot-emi:1.0.7
container_name: honeypot-emi
ports:
- "8080:8080"
volumes:
- ${TPOT_DATA_PATH}/emi/log:/var/www/storage/logs
restart: unless-stoppedConfiguracion de despliegue local