Twitter Flickr Pinterest LinkedIn YouTube Google Maps E-mail RSS
formats

Rastreo de dispositivos USB conectados y envío de información a un servidor REST desde Powershell

Anuncios

En muchos entornos empresariales y de IT, es crucial rastrear los dispositivos USB conectados a los equipos para asegurar la seguridad de la red y mantener un registro centralizado. Este rastreo permite prevenir fugas de datos mediante la detección temprana de dispositivos no autorizados, que podrían ser utilizados para copiar información sensible. Asimismo, ayuda a identificar posibles intentos de introducir malware a través de dispositivos USB infectados, lo que podría comprometer seriamente la infraestructura tecnológica. Por ejemplo, en industrias reguladas, como la financiera o la de salud, el rastreo de dispositivos es un requisito esencial para cumplir con normativas de seguridad y garantizar la integridad de los datos.

Afortunadamente, existen herramientas y métodos para automatizar esta tarea. En esta entrada, exploraremos diversas soluciones, desde software especializado hasta scripts personalizados en PowerShell que permiten enviar la información de dispositivos USB a un servidor central. También veremos cómo configurar el script para ejecutarse al iniciar Windows, y destacaremos las mejores prácticas para proteger la infraestructura de IT de posibles vulnerabilidades relacionadas con el uso de dispositivos extraíbles.

1. Herramientas de Gestión de Dispositivos USB

USB Device Tracker

Una herramienta especializada para monitorear y rastrear dispositivos USB conectados en una red. Permite registrar:

  • ID del dispositivo.
  • Fecha y hora de conexión/desconexión.
  • Tipo de dispositivo.

Es ideal para implementaciones empresariales donde se requiere un monitoreo continuo. Además, su capacidad para generar reportes detallados permite a los administradores de IT analizar patrones de uso y detectar posibles amenazas.

USBDeview (NirSoft)

Una herramienta ligera que lista todos los dispositivos USB conectados y previamente conectados. Aunque no envía la información directamente a un servidor, puedes integrarla con scripts personalizados para automatizar esta tarea. Su interfaz intuitiva permite una rápida identificación de dispositivos sospechosos o no autorizados, lo que la convierte en una herramienta útil para auditorías periódicas.


2. Soluciones Empresariales Integradas

Endpoint Management Software

Herramientas como Microsoft Endpoint Manager, ManageEngine Endpoint Central o Ivanti permiten rastrear y registrar dispositivos USB conectados a los equipos. Estas soluciones pueden enviar los registros a un servidor centralizado o generar reportes automatizados, lo que facilita la gestión de políticas de seguridad y asegura que los equipos cumplan con las normativas de la organización.

SIEM (Security Information and Event Management)

Sistemas como Splunk o Elastic Stack pueden configurarse para recolectar eventos relacionados con conexiones USB y enviarlos a una base de datos o servidor central, proporcionando alertas en tiempo real. Estas plataformas integran análisis avanzados que permiten identificar patrones sospechosos, como accesos recurrentes en horarios inusuales o conexiones a dispositivos no autorizados, lo que fortalece la ciberseguridad.

 

3. Script Personalizado para Rastreo USB

Si prefieres una solución personalizada, puedes desarrollar un script en PowerShell que detecte los dispositivos USB conectados y envíe la información a un servidor central. Este enfoque es especialmente útil en entornos donde las herramientas empresariales no son viables o se requiere flexibilidad adicional.

# Detectar dispositivos USB
Get-WmiObject Win32_DiskDrive | Where-Object { $_.InterfaceType -eq "USB" } | ForEach-Object {
[PSCustomObject]@{
DeviceID = $_.DeviceID
Model = $_.Model
Serial = (Get-WmiObject Win32_PhysicalMedia | Where-Object { $_.Tag -eq $_.DeviceID }).SerialNumber
}
} | ConvertTo-Json | Invoke-RestMethod -Uri "http://servidorcentral/api/usblog" -Method Post

 

Este script detecta los dispositivos USB conectados y envía la información en formato JSON a un servidor central mediante una API REST. Puedes personalizarlo para agregar más atributos de los dispositivos o mejorar la gestión de errores.

4. Implementar el API REST

Para recibir los datos enviados desde el script PowerShell, puedes implementar un servidor sencillo utilizando Python y el framework Flask. A continuación, se detalla el proceso:

Código del API REST
from flask import Flask, request, jsonify

app = Flask(__name__)

# Ruta para recibir datos USB
@app.route('/api/usblog', methods=['POST'])
def log_usb_data():
data = request.get_json() # Datos enviados en JSON
if not data:
return jsonify({"error": "No se enviaron datos"}), 400

# Guardar los datos en un archivo local
with open("usb_log.txt", "a") as log_file:
log_file.write(f"{data}\n")

return jsonify({"message": "Datos recibidos correctamente"}), 200

if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)

 

Pasos para Implementar

  1. Instala Flask en tu entorno de Python:
    pip install flask
  2. Guarda el código anterior en un archivo llamado server.py.
  3. Ejecuta el servidor con:
    python server.py
  4. El servidor estará disponible en http://<IP_DEL_SERVIDOR>:5000/api/usblog y comenzará a recibir los datos enviados por el script PowerShell.

 

5. Configurar el Script para Ejecutarse al Iniciar Windows

Para que el script PowerShell se ejecute automáticamente al iniciar Windows, puedes usar el Programador de Tareas o un acceso directo en la carpeta de inicio. Esto asegura que el monitoreo comience sin intervención manual cada vez que se reinicia el sistema.

Usando el Programador de Tareas:
  1. Abre el Programador de Tareas (Task Scheduler).
  2. Haz clic en Crear Tarea.
  3. Configura lo siguiente:
    • General:
      • Nombre: “Rastreo USB”.
      • Marca la opción Ejecutar con los privilegios más altos.
    • Desencadenadores:
      • Crea un desencadenador con el evento Al iniciar sesión o Al iniciar el sistema.
    • Acciones:
      • Acción: Iniciar un programa.
      • Programa o script: powershell.exe.
      • Agrega los argumentos:
        -NoProfile -ExecutionPolicy Bypass -File "C:\ruta\del\script.ps1"
  4. Guarda y habilita la tarea.
Usando la Carpeta de Inicio:
  1. Crea un archivo .bat que ejecute tu script:
    powershell.exe -NoProfile -ExecutionPolicy Bypass -File "C:\ruta\del\script.ps1"
  2. Copia este archivo .bat en la carpeta de inicio de Windows:
    %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup

Recomendaciones de Seguridad

  1. Protección del Servidor:
    • Asegúrate de que el servidor que recibe los datos esté protegido detrás de un firewall.
    • Configura autenticación mediante claves o tokens si implementas una API REST para evitar accesos no autorizados.
  2. Ejecución del Script:
    • Usa una política de ejecución limitada para evitar scripts maliciosos:
      Set-ExecutionPolicy RemoteSigned
    • Incluye un sistema de logs local para registrar eventos en caso de que falle la conexión con el servidor.
  3. Auditorías Regulares:
    • Revisa los registros generados por el script o las herramientas integradas para identificar anomalías y reforzar la política de seguridad.

Impacto y Reflexión Final

Implementar un sistema de rastreo y monitoreo de dispositivos USB es una tarea esencial en entornos corporativos. Estas herramientas no solo ayudan a prevenir accesos no autorizados, sino que también fortalecen la ciberseguridad al detectar posibles vulnerabilidades y garantizar el cumplimiento normativo. Al contar con un registro centralizado y automatizado, los equipos de IT pueden responder rápidamente ante incidentes y garantizar la integridad de la red. Además, estas soluciones permiten mejorar la visibilidad de las actividades relacionadas con dispositivos extraíbles, lo que contribuye significativamente a mantener una infraestructura de IT más segura y robusta.

Con este enfoque, puedes automatizar tanto el registro como el envío de información a un servidor central, integrando la ciberseguridad en cada punto de la operación tecnológica de tu organización.

 

 

 

 

Anuncios
Etiquetas:,
Home Programación Rastreo de dispositivos USB conectados y envío de información a un servidor REST desde Powershell
© www.palentino.es, desde el 2012 - Un Blog para compartir conocimientos ...

Uso de cookies en mi sitio palentino.es

Este sitio web utiliza cookies para que tengamos la mejor experiencia de usuario. Si continúas navegando estás dando tu consentimiento para la aceptación de las mencionadas cookies y la aceptación de la política de cookies

ACEPTAR
Aviso de cookies