Non classé

Découvrez qui a supprimé le fichier / dossier de Windows Server 2016 avec la stratégie de révision – Les meilleures astuces pour son serveur

Le 21 décembre 2020 - 9 minutes de lecture


Vous ne savez toujours pas comment suivre qui a supprimé le fichier / dossier de Windows Server 2016 avec la stratégie de révision? Jetez un œil à ce blog.

Chez Bobcares, nous avons vu plusieurs bogues liés à Windows dans le cadre de nos services de gestion de serveur pour les hébergeurs Web et les fournisseurs de services en ligne.

Aujourd'hui, nous allons voir comment suivre le fichier / dossier supprimé Windows.

Comment suivre qui a supprimé le fichier / dossier de Windows Server 2016 avec la stratégie de révision

Voyons maintenant comment nos ingénieurs d'assistance trouvent qui a supprimé le fichier / dossier du serveur.

Nous utilisons le contrôle de vision d'accès aux objets du système de fichiers pour identifier un utilisateur spécifique qui a créé, supprimé ou modifié un fichier particulier.

Nous allons maintenant voir comment configurer la révision d'événement pour les fichiers dans un dossier réseau partagé sur Windows Server 2016. Après avoir configuré la révision, nous utilisons les informations de l'Observateur d'événements pour trouver l'utilisateur qui a supprimé un fichier spécifique sur le serveur de fichiers.

Cependant, lorsque nous supprimons un fichier d'un dossier réseau partagé, il est immédiatement supprimé au lieu d'être envoyé dans la corbeille de l'utilisateur.

Comment activer la stratégie d'audit pour l'accès aux fichiers et aux dossiers sous Windows

Par défaut, l'audit d'accès aux objets du système de fichiers ne sera pas activé sur Windows Server. Nous pouvons activer et configurer les paramètres d'audit à l'aide de la stratégie de groupe. Voici les étapes que nous suivons pour configurer l'audit sur un serveur à l'aide de l'éditeur de stratégie de groupe local.

    • Tout d'abord, nous ouvrons la console de l'éditeur de stratégie de groupe local – gpedit.msc
    • Ensuite, nous allons à la section GPO avec des directives de révision avancées: Paramètres Windows >> Paramètres de sécurité >> Configuration de la politique de révision avancée >> Accès aux objets
    • Après cela, nous ouvrons la stratégie du système de fichiers d'audit et spécifions que nous voulons uniquement consigner les événements d'accès réussi aux objets du système de fichiers (Configurer les événements d'audit suivants >> Réussite)
      comment suivre qui a supprimé le fichier / dossier de Windows Server 2016 avec la politique de révision
    • Enfin, nous enregistrons les modifications et mettons à jour les paramètres de stratégie de groupe locaux à l'aide de la commande ci-dessous.
      gpupdate / force

Configurer les paramètres de révision supprimés pour les fichiers dans un dossier partagé

Nous configurons maintenant la révision dans les propriétés du dossier réseau partagé auquel nous voulons suivre l'accès.

1. Nous exécutons d'abord l'Explorateur de fichiers et ouvrons les propriétés du dossier. Nous allons dans l'onglet Sécurité et cliquons sur le bouton Avancé. Ensuite, nous allons dans l'onglet Révision.

2. Si le message ci-dessous apparaît, cliquez sur le bouton Continuer.

Vous devez être administrateur ou disposer des droits nécessaires pour afficher les propriétés d'audit de cet objet

3. Ensuite, nous cliquons sur le bouton Ajouter pour spécifier l'utilisateur ou le groupe pour lequel nous voulons enregistrer les événements d'audit. Pour suivre les événements d'accès pour tous les utilisateurs, nous spécifions le groupe Tous.

4. Après cela, nous spécifions également les autorisations utilisées pour accéder à l'objet à journaliser. Pour enregistrer uniquement les événements de suppression de fichiers dans le journal des événements, nous cliquons sur le bouton Afficher les autorisations avancées. Dans la liste des événements, nous ne laissons que les révisions pour les événements de suppression de dossier et de fichier – Supprimer les sous-dossiers et les fichiers.

Au cas où l'utilisateur supprime un fichier ou un dossier dans le dossier réseau partagé. Ensuite, l'événement File System -> Audit Success file delete apparaît dans le journal de sécurité avec l'ID d'événement 4663 de la source d'audit de sécurité Microsoft Windows.

Ensuite, nous ouvrons la console MMC de l'Observateur d'événements (eventvwr.msc), développons la section Journaux Windows -> Sécurité. Activez le filtre du journal des événements EventID 4663.

Après cela, nous ouvrons certains des événements restants dans l'Observateur d'événements. On voit qu'il contient des informations sur le nom du fichier supprimé, le compte de l'utilisateur qui a supprimé le fichier et le nom du processus.

Une tentative d'accès à un objet a été effectuée.
Objet: ID de sécurité: CORP  jon
Nom du compte: jon
Domaines de compte: CORP
ID de connexion: 0x32B12627
Objet: Serveur d'objets: Sécurité
Type d'objet: Fichier
Nom de l'objet: E:  Distr  Backup.rar
ID de poignée: 0x7bc4
Attributs de ressource: S: AI
Traitement de l'information:
ID de processus: 0x4
Nom du processus:
Informations de demande d'accès:
Accès: DELETE
Masque d'accès: 0x10000

Après avoir activé la politique de révision d'accès aux fichiers, nous trouvons les détails ci-dessous dans le journal de sécurité:

  • Qui a supprimé le fichier du dossier réseau partagé et quand cela s'est produit
  • Quel programme (processus) a été utilisé pour supprimer le fichier
  • Quelle est la date de la sauvegarde à restaurer

Comment écrire des événements de suppression de fichiers dans SQL Database (MySQL / MSSQL)

Même si la suppression des fichiers supprimés est activée, il peut être difficile de trouver quelque chose dans les journaux. Premièrement, il est assez difficile de trouver une liste spécifique parmi des milliers d'événements. Deuxièmement, si un fichier a été supprimé il y a longtemps, cet événement peut être absent des journaux, car il a été écrasé par de nouveaux événements.

Nous stockons tous les événements de suppression de fichiers dans la base de données SQL. Pour cela, nous utilisons des bases de données Microsoft SQL Server, Elasticsearch ou MySQL / MariaDB pour stocker les événements.

Par exemple, voyons comment enregistrer les événements d'audit dans une table de base de données distincte dans MySQL. Nous pouvons utiliser le format de tableau suivant:

  • Nom du serveur
  • Le nom du fichier supprimé
  • Date et l'heure
  • Le nom de l'utilisateur qui a supprimé le fichier

La requête MySQL pour créer cette table ressemble à ceci:

CREATE TABLE delete_items (id NOT NULL AUTO_INCREMENT, serveur VARCHAR (100), nom_fichier VARCHAR (255), dt_time DATETIME, nom_utilisateur VARCHAR (100), PRIMARY KEY (ID));

Pour obtenir des événements avec EventID 4663 à partir du journal de sécurité du jour en cours, nous utilisons le script PowerShell suivant:

$ today = get-date -DisplayHint date -UFormat% Y-% m-% d
Get-WinEvent -FilterHashTable @ LogName = "Sécurité"; heure de début = "$ aujourd'hui"; id = 4663 | Pour chaque 
$ événement = [xml]$ _. ToXml ()
if ($ événement)

$ Time = Get-Date $ _. TimeCreated -UFormat "% Y-% m-% d% H:% M:% S"
$ File = $ event.Event.EventData.Data[6]."#texte"
$ User = $ event.Event.EventData.Data[1]."#texte"
$ Computer = $ event.Event.System.computer

Le script PowerShell suivant écrit les données que nous obtenons dans la base de données MySQL sur un serveur distant (avec l'adresse IP 10.1.1.13):

Add-Type –Path ‘C:  Program Files (x86)  MySQL  MySQL Connector Net 6.9.8  Assemblies  v4.5  MySql.Data.dll & # 39;
$ Connexion = [MySql.Data.MySqlClient.MySqlConnection]@ ConnectionString = ’serveur = 10.1.1.13; uid = chic; pwd = P @ ssw0rd; database = aduser ’
$ Connection.Open ()
$ sql = MySql.Data.MySqlClient.MySqlCommand avec un nouvel objet
$ sql.Connection = $ Connexion
$ today = get-date -DisplayHint date -UFormat% Y-% m-% d
Get-WinEvent -FilterHashTable @ LogName = "Sécurité"; heure de début = "$ aujourd'hui"; id = 4663 | Pour chaque 
$ événement = [xml]$ _. ToXml ()
if ($ événement)
")
$ User = $ event.Event.EventData.Data[1]."#texte"
$ Computer = $ event.Event.System.computer
$ sql.CommandText = "INSÉRER DANS les éléments supprimés (serveur, nom_fichier, heure_t, nom_utilisateur) VALUES (« $ Computer »,« $ File »,« $ Time »,« $ User »)»
$ sql.ExecuteNonQuery ()


$ Reader.Close ()
$ Connection.Close ()

Après avoir stocké les événements dans une base de données externe, nous pouvons effacer ce journal des événements.

Maintenant, pour savoir qui a supprimé le fichier "AnnualReport.DOC", nous exécutons le script ci-dessous dans la console PowerShell.

$ DeletedFile = "% AnnualReport.DOC%"
Set-ExecutionPolicy RemoteSigned
Add-Type –Path ‘C:  Program Files (x86)  MySQL  MySQL Connector Net 6.9.8  Assemblies  v4.5  MySql.Data.dll & # 39;
$ Connexion = [MySql.Data.MySqlClient.MySqlConnection]@ ConnectionString = ’serveur = 10.1.1.13; uid = chic; pwd = P @ ssw0rd; database = aduser ’
$ Connection.Open ()
$ MYSQLCommand = MySql.Data.MySqlClient.MySqlCommand avec un nouvel objet
$ MYSQLDataAdapter = MySql.Data.MySqlClient.MySqlDataAdapter pour le nouvel objet
$ MYSQLDataSet = Système avec un nouvel object.Data.DataSet
$ MYSQLCommand.Connection = $ Connexion
$ MYSQLCommand.CommandText = "SELECT nom d'utilisateur, dt_time de delete_items où le nom de fichier LIKE" $ DeletedFile & # 39; "
$ MYSQLDataAdapter.SelectCommand = $ MYSQLCommand
$ NumberOfDataSets = $ MYSQLDataAdapter.Fill ($ MYSQLDataSet, "données")
foreach ($ DataSet et $ MYSQLDataSet.tables[0])

écrire l'hôte "User:" $ DataSet.user_name "sur:" $ DataSet.dt_time

$ Connection.Close ()

Enfin, maintenant, nous voyons le nom d'utilisateur et l'heure à laquelle le fichier a été supprimé dans la console PS.

Fichier journal Supprimer les événements de révision dans un fichier texte

Si nous ne voulons pas utiliser un serveur de base de données distinct, nous enregistrons les événements de révision de suppression de fichier dans un fichier journal en texte brut. Pour cela, nous utilisons ce script PowerShell pour stocker la sortie dans un fichier texte:

$ Outfile = "C:  Logs  Deleted-file-history-log.txt"
$ today = get-date -DisplayHint date -UFormat% Y-% m-% d
Get-WinEvent -FilterHashTable @ LogName = "Sécurité"; heure de début = "$ aujourd'hui"; id = 4663 | Pour chaque 
$ événement = [xml]$ _. ToXml ()
if ($ événement)
 out-file $ Outfile –append

[Need any further assistance in tracking the file/folder deletion queries? – We are here to help you]

Conclusion

Aujourd'hui, nous avons vu comment nos ingénieurs d'assistance ont découvert qui avait supprimé le fichier / dossier sur le serveur Windows.

ÉVITEZ VOTRE SERVEUR DE CRASH!

Ne perdez plus jamais de clients à cause de la mauvaise vitesse du serveur! Laissez-nous vous aider.

Nos experts en serveurs surveilleront et entretiendront votre serveur 24h / 24 et 7j / 7 afin qu'il reste rapide et sécurisé comme l'éclair.

COMMENCÉ

var google_conversion_label = "owonCMyG5nEQ0aD71QM";

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.