Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HIPS - SO2

HIPS desarrollado con Python y Flask para SO2 - 2021. Desarrollado por Adrian Ramirez.

Funcionalidades:

  • Determinar cambios en los archivos /etc/passwd y /etc/shadow a traves de md5sum.
  • Revisar usuarios conectados en el servidor.
  • Revisar si el servidor se encuentra en modo promiscuo.
  • Determinar errores de autenticacion en el directorio /var/log/secure.
  • Determinar errores de acceso indebido desde el servidor web.
  • Revisar el directorio /tmp en busca de scripts y shells.
  • Revisar errores de ingreso de conexion via SSH.
  • Revisar archivos que se encuentran en cron.

Como medidas preventivas cuenta con:

  • Enviar archivos a cuarentena.
  • Bloquear IP's.
  • Forzar cierre de procesos (kill).

Cuando ocurre una alerta o se realiza una medida preventiva se avisa al administrador via email y tambien se registran en los logs alarmas.log y prevencion.log

Requerimientos

Para que funcione el HIPS se necesitan de algunas librerias y configuraciones previas. Este proceso se realizo en una distribucion Linux - CentOS 8.

Python 3

En la consola ejecutamos el comando: sudo yum install python3 -y

PIP

En la consola ejecutamos el comando: sudo yum install python3-pip -y

PostgreSQL

En la consola ejecutamos los siguientes comandos, en el mismo orden:

sudo dnf install -y <https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm>

sudo dnf -qy module disable postgresql

sudo dnf install -y postgresql13-server

sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13

IPTables

Para instalar: https://linuxize.com/post/how-to-install-iptables-on-centos-7/

Configuracion del entorno virtual

Para este trabajo creamos un entorno virtual en la cual instalamos las librerias Python utilizadas, para hacerlo: https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-programming-environment-on-centos-8-es

Instalacion librerias Python

Asegurarse de tener activado el entorno virtual, luego para instalar una libreria : python pip install [libreria]

Librerias utilizadas

Las siguientes librerias necesitan ser instaladas:

  • psycopg2
  • flask
  • flask-login
  • flask_sqlalchemy

Configuracion de la Base de Datos

Agregar una contrasena al usuario 'Postgres'

Para esto realizar los siguientes comandos:

sudo su postgres
psql
ALTER USER "postgres" WITH password '[constrasena_nueva];

Crear base de datos y tablas

Para que funcione nuestro HIPS la base de datos debe estar configurada de antemano, asi como las tablas, para ello dentro del psql ejecutamos los siguientes comandos:

CREATE DATABASE hipso2;
\c hipso2
CREATE TABLE md5sum (file varchar, num_hash varchar);
CREATE TABLE login (id integer, username varchar(30), password varchar(30));
CREATE TABLE sniffer (name varchar(30));

Cargamos los datos relacionados al usuario y los programas peligrosos (lista abajo):

  • solarwinds
  • prtg
  • manageengine
  • omnipeek
  • tcpdump
  • windump
  • wireshark
  • fiddler
  • netresec
  • capsa
  • ethereal
INSERT INTO login (id, username, password) VALUES (num_id, 'username', 'password')
INSERT INTO sniffer (name) VALUES ('solarwinds'),('prtg'),('manageengine'),('omnipeek'),('tcpdump'),('windump'),('wireshark'),('fiddler'),('netresec'),('capsa'),('ethereal');

Configurar pg_hba.conf

Para que funcione correctamente debemos cambiar el metodo de autenticacion a MD5, para ello ejecutamos los siguientes comandos:

sudo su postgres

nano /var/lib/pgsql/13/data/pg_hba.conf

Realizamos los siguientes cambios:

  • local all all peer -> local all all md5

volvemos a root: exit y reiniciamos el servidor de PostgreSQL: sudo systemctl restart postgresql-13.service

Ajustes finales

En la consola, accedemos al entorno y ejecutamos el archivo pre_config.py, que contiene configuraciones previas que son necesarias para que funcione el HIPS:

python pre_config.py

En el archivo secret.ini.example se tiene una plantilla para completar con informacion sensible de la base de datos y del administrador, asegurese de que el archivo se llame secret.ini ya que el mismo esta listado en el .gitignore

Por ultimo asegurese que estan corriendo los servicios httpd y SSH, en caso de con contar con httpd:

sudo yum install httpd

sudo systemctl start httpd

sudo systemctl start ssh

Asegurarse de encontrarse en el usuario root, en caso contrario ejecute el siguiente comando:

su root

Ejecucion

Por ultimo, en la consola, estando dentro del entorno virtual ejecute el programa server.py y en el navegador escriba localhost:5000 y ya encontraria su HIPS funcionando, apareciendo el login.

About

Trabajo Práctico de HIPS para la materia SO2 de la UCA.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages