web-dev-qa-db-fra.com

Journalisation lorsque quelqu'un connecte ou supprime un périphérique USB vers / depuis une machine Windows

J'essaie actuellement de trouver un moyen de consigner toutes les connexions et les déconnexions des périphériques USB de toutes les machines Windows de notre réseau. Ces informations doivent être automatiquement enregistrées dans un fichier sur la machine. Ce fichier peut ensuite être lu par nxlog, puis envoyé à notre plateforme de journalisation centralisée pour traitement. J'espérais que ces informations seraient automatiquement enregistrées dans les journaux Windows, mais j'ai constaté que, même si certaines informations sur le stockage amovible USB semblent être enregistrées dans Event Viewer, ces informations sont assez limitées et ne sont pas détectées lorsque les claviers et souris USB sont utilisés. connecté et déconnecté.

Après quelques recherches, j'ai découvert que nirsoft avait écrit un petit fichier exe qui effectue beaucoup de travail, SBLogView peut être exécuté sans installation et enregistre à chaque fois qu'un périphérique USB se connecte et se déconnecte à la machine. Le problème avec ceci est que je ne vois pas un moyen de l'exécuter en tant que service, pas plus que je ne vois aucun moyen de le faire consigner automatiquement les informations qu'il génère dans un fichier journal. enregistré dans un fichier journal.

Je pourrais utiliser la stratégie de groupe pour créer une copie locale du fichier exe, puis forcer son exécution au démarrage, mais le problème principal de l'impossibilité d'obtenir l'écriture automatique des journaux dans un fichier reste à résoudre. Je devrais également pouvoir m'assurer que l'utilisateur ne peut pas fermer le programme, ce qui est possible lorsque je le lance moi-même. Idéalement, le masquer et ne pas afficher une icône de barre des tâches serait le meilleur moyen de le définir. up (mais lorsque j'ai essayé d'utiliser le paramètre caché, il me semble que cela peut être affiché dans la fenêtre principale ou simplement en affichant l'icône de la barre des tâches). J'ai regardé sur le site Web, mais je ne vois aucun moyen d'invoquer le programme avec des options pour lui dire de le faire. La semaine dernière, j’ai également envoyé un e-mail à nirsoft pour savoir s’ils avaient des conseils, mais j’attends toujours une réponse.

Quelqu'un a-t-il d'autres moyens de le faire? Toute suggestion ou aide bienvenue! Merci

9
Rumbles

Il existe des solutions payantes pour cela, par exemple. EndProtection4 par CoSoSys. Vous ne savez pas comment cela fonctionne dans l'agent installé sur le périphérique, mais cela vous donne toutes les informations sur les périphériques connectés. Vous avez besoin d'un serveur qui gère les clients car il s'agit du logiciel qui gère l'accès aux périphériques. Fonctionne également sur Mac et Linux.

1
Bartosz Debski

La connexion et la déconnexion de périphériques USB sont consignées dans le "Journal des événements".

Citant ceci description détaillée (Blog "Digital Forensics Stream", 2014-01-02, Journal des événements de Windows 7 et suivi du périphérique USB ):

ID d'événement de connexion
Lorsqu'un périphérique de stockage amovible USB est connecté à un système Windows 7, un certain nombre d'enregistrements d'événements doivent être générés dans le journal des événements Microsoft-Windows-DriverFrameworks-UserMode/Operational. Les enregistrements incluent ceux avec les ID d'événement 2003, 2004, 2005, 2010, 2100, 2105 et plus. ...

ID d'événement de déconnexion
Lorsqu'une clé USB est déconnectée d'un système Windows 7, quelques enregistrements d'événements doivent être générés dans le même journal que les événements de connexion. Les enregistrements avec les ID d'événement 2100, 2102 et potentiellement plus peuvent être générés lorsqu'un périphérique USB est déconnecté. ...

Pour automatiser les exportations à partir du journal des événements, Microsoft propose gratuitement logparser .

2
marsh-wiggle

Je voudrais essayer d'utiliser un outil tel que AutoIT.

$vFile = FileOpen("usb.txt", 2)

Local $vObjWMI = ObjGet("winmgmts:\\" & @ComputerName & "\root\cimv2")

$vObjItems = $vObjWMI.ExecQuery('SELECT * FROM Win32_DiskDrive')
If IsObj($vObjItems) Then
    For $vObjItem In $vObjItems
        If StringInStr($vObjItem.Caption, "USB") Then
            FileWriteLine($vFile, $vObjItem.Caption & @CRLF)
            FileWriteLine($vFile, $vObjItem.DeviceID & @CRLF & @CRLF)
        EndIf
    Next
EndIf

FileClose($vFile)

ShellExecute("usb.txt")

Un message de forum provenant de ce forum est situé sur le forum AutoIT: http://www.autoitscript.com/forum/topic/155213-detect-usb-devices-connected/?p=1121434

0
Riley Childs

Utilisez regedit et recherchez les éléments registry sous: HKLM:\SYSTEM\CurrentControlSet\Enum\USBSTOR\. Pour certains détails, ouvrez PowerShell et exécutez:

$Path = 'HKLM:\SYSTEM\CurrentControlSet\Enum\USBSTOR\*\*'
Get-ItemProperty -Path $Path | Select-Object -Property FriendlyName, CompatibleIDs, Mfg

Ou regardez dans le fichier journal ici: C:\Windows\inf\setupapi.dev.log.

Pour plus de détails techniques, regardez Nicoles Blog .

0
not2qubit