IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

LAZARUS : Isoler sous Windows un ordinateur par une déconnexion du réseau

Ces dernières années, les cyberattaques sont devenues de plus en plus courantes. Elles ciblent nombre de secteurs professionnels et leur pouvoir de nuisance est conséquent du fait des dommages financiers, matériels et même humains qu'elles peuvent générer. Dans le contexte d'une cyberattaque, il convient d'isoler un matériel qui a pu être compromis.

Commentez1

Article lu   fois.

L'auteur

Profil ProSite personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

1. Introduction

Ce tutoriel a pour objectif de montrer comment réaliser et mettre en place une application sous Windows qui permettra à l'utilisateur d'un PC de l'isoler rapidement du réseau s'il le perçoit comme compromis par une éventuelle cyberattaque.

Lors d’une cyberattaque, on recommande généralement d’isoler l’ordinateur du réseau (coupure du Wi-Fi, du câble Ethernet, etc.) plutôt que de l’éteindre immédiatement, pour plusieurs raisons cruciales liées à la cyberinvestigation, à la préservation des preuves et à la compréhension de l’attaque.

Donc en résumé, l’isolation permet de stopper l’attaque tout en préservant l’environnement d’analyse. Éteindre l’ordinateur risque de faire perdre des preuves essentielles, nuisant à l’enquête et à la compréhension de l’incident.

Le principe de fonctionnement de la solution d'isolation proposée dans ce tutoriel s'appuie sur la création de tâches planifiées qui seront lancées depuis l'application. Ces mêmes tâches sont mises en œuvre grâce à des scripts.

2. Les scripts

Les tâches planifiées fonctionnent sur la base de scripts sous la forme de fichiers de commande qui agissent sur l’Ethernet, le Wi-Fi et le réseau local.

Il est intéressant de créer deux tâches.

  • Une pour couper le réseau :
 
Sélectionnez
@echo off
netsh interface set interface "Ethernet" admin=disable
netsh interface set interface "Wi-Fi" admin=disable
netsh interface set interface "Connexion au réseau local" admin=disable

Pour le tutoriel, ce premier fichier est nommé : coupe_reseau.bat.

  • Une autre pour éventuellement reconnecter au réseau :
 
Sélectionnez
@echo off
netsh interface set interface "Ethernet" admin=enable
netsh interface set interface "Wi-Fi" admin=enable
netsh interface set interface "Connexion au réseau local" admin=enable

Ce deuxième fichier est nommé : active_reseau.bat.

Ces fichiers sont à stocker dans un dossier sur le disque de chacun des ordinateurs à équiper.

Les cartes réseau ne doivent pas avoir été renommées, sinon il faudra adapter les commandes netsh.

3. Les tâches planifiées

Les tâches doivent être paramétrées sur le PC par un administrateur.

Sous Windows 10, se rendre dans le Planificateur de tâches.

Ensuite :

  • Cliquez dans les actions sur Créer une tâche…

Image non disponible

Dans l'onglet Général :

  • Nommez la tâche ;
  • Décrivez sommairement la tâche ;
  • Cochez : Exécuter avec les autorisations maximales.

Dans l'onglet Actions :

  • Cliquez sur Nouveau… pour ouvrir le formulaire Nouvelle action ;

Image non disponible

  • Sélectionnez l'Action : Démarrer un programme ;
  • Renseignez dans Programme/script le chemin du fichier de commande de la tâche ;
  • Cliquez sur OK.

Pour finir :

  • Validez la tâche en cliquant sur OK du formulaire de création de tâches.

4. L'application

Tout d'abord, il faut deux icônes qui viendront se loger dans la zone de notification pendant le fonctionnement de l'application.

Image non disponible
PC connecté au réseau

Image non disponible
PC déconnecté du réseau

Mettez ces deux icônes dans le dossier de l'application.

Il faut aussi un fichier texte dans lequel sera simplement saisi le mot de passe qui permettra à un administrateur soit de reconnecter l'ordinateur au réseau, soit d'arrêter l'application. Ce fichier ne doit pas être stocké dans le dossier de l'application, mais dissimulé autant que possible sur le disque dur de la machine. Dans le tutoriel, ce fichier se nomme : mdpstop.txt.

4-1. Les composants et leurs propriétés

Mode création
Image non disponible

Mode production
Image non disponible

Composants

Propriétés

TForm

BorderIcons : []
BorderStyle : bsNone
Caption : STOP RESEAU
Color : clGreen
Name : F_StopRes
Position : poScreenCenter
ShowInTaskBar : stNever
Visible : False

TBitBtn (QUITTER)

Caption : QUITTER
Kind : bkAbort
ModalResult : mrAbort
Name : BBtnQuit

TBitBtn (CONNEXION)

Caption : CONNEXION
Kind : bkOk
ModalResult : mrOk
Name : BBtnStop

TLabel

Caption : Mot de passe
Font : Color : clWhite

TEdit

EchoMode : emPassword
Name : EdMdp
PasswordChar : *

TEdit

Name : EdMdps
Visible : False

TRichMemo

Alignment : taCenter
Color : clYellow
Lines : ⚠ INFORMATION IMPORTANTE
Vous avez isolé votre ordinateur suite à une suspicion de cyberattaque. Maintenant, appliquez les consignes suivantes :
- n'éteignez pas votre ordinateur ;
- alertez le service informatique ;
- n'utilisez plus votre ordinateur ;
- prévenez vos collègues de l’éventuelle attaque en cours.
Name : RMem

TTrayIcon

Hint : Double-clic sur cette icône pour isoler l'ordinateur en cas de cyberattaque.
Name : TIconSt

4-2. Le code

4-2-1. Les clauses uses

Dans Lazarus, en passant par Paquet → Online Package Manager, installez le paquet RichMemo.

Voici les clauses uses :

 
Sélectionnez
uses
  Classes, SysUtils, process, Forms, Controls, Graphics,
  Dialogs, Buttons, ExtCtrls, StdCtrls, RichMemo;

4-2-2. Déclaration des variables et des procédures privées

Voici les déclarations à réaliser :

 
Sélectionnez
  private
    F: TextFile;
    Stg: String;
    AProcess: TProcess;
    procedure TCoupeReseau;
    procedure TConnexReseau;
    procedure TMdpass;

4-2-3. Les procédures de déconnexion et de reconnexion au réseau

Ces procédures lancent les tâches planifiées vues auparavant.

  • Procédure de déconnexion TCoupeReseau :
 
Sélectionnez
procedure TF_StopRes.TCoupeReseau; // Procédure de déconnexion du réseau
begin
  AProcess := TProcess.Create(nil);
  try
    AProcess.Executable := 'schtasks';
    AProcess.Parameters.Add('/run');
    AProcess.Parameters.Add('/tn');
    AProcess.Parameters.Add('CoupeReseau'); // Nom de la tâche planifiée
    AProcess.Options := [poNoConsole, poWaitOnExit];
    AProcess.Execute;
    F_StopRes.Color:= clRed; // La forme passe au rouge
    TIconSt.Icon.LoadFromFile('IcoResNOK.ico'); // Affichage icône PC  déconnecté du réseau
    ShowMessage('La coupure réseau a été déclenchée. Votre ordinateur est isolé du réseau.');
    F_StopRes.Show; // Montre la forme de l'application
  finally
    AProcess.Free;
  end;
end;
  • Procédure de connexion TActiveReseau :
 
Sélectionnez
procedure TF_StopRes.TConnexReseau; // procédure de connexion au réseau
begin
  If EdMdp.Text <> EdMdps.Text Then
    begin
      ShowMessage('Vous devez posséder le mot de passe pour vous reconnecter, sinon veuillez contacter votre administrateur.');
      EdMdp.Text:= '';
    end
  Else
    begin
      AProcess := TProcess.Create(nil);
      try
        AProcess.Executable := 'schtasks';
        AProcess.Parameters.Add('/run');
        AProcess.Parameters.Add('/tn');
        AProcess.Parameters.Add('ConnexReseau'); // Nom de la tâche planifiée
        AProcess.Options := [poNoConsole, poWaitOnExit];
        AProcess.Execute;
        F_StopRes.Color:= clGreen; // La forme passe au vert
        TIconSt.Icon.LoadFromFile('IcoResOK.ico'); // Affichage icône PC connecté au réseau
        ShowMessage('La connexion réseau a été enclenchée. Votre ordinateur est connecté au réseau.');
        F_StopRes.Hide; // Cache la forme de l'application
      finally
        EdMdp.Text:= ''; // Le mot de passe saisi est effacé
        AProcess.Free;
      end;
    end;
end;

Pour reconnecter le PC au réseau ou stopper l'application, il est nécessaire d'avoir un mot de passe. Celui-ci sera inscrit dans un fichier texte qui sera caché sur le disque de la machine.

Dans ce tutoriel, le fichier est nommé : mdpstop.txt.

La procédure nécessaire à créer est la suivante :

 
Sélectionnez
procedure TF_StopRes.TMdpass; //Procédure d'association du mot de passe du fichier prévu à cet effet.
  begin
    AssignFile(F,'C:\Chemin du fichier\mdpstop.txt'); // Associe la variable F au fichier texte
    Reset(F); // Ouvre le fichier sans le modifier
    Readln(F,Stg); // Lit le mot de passe dans le fichier texte
    EdMdps.Text:= Stg; // Affiche dans EdMdps le contenu de la variable Stg
    CloseFile(F); // Ferme l'association entre la variable F et le fichier texte
  end;

4-2-4. Les commandes d'utilisation de l'application

Au démarrage de l'application sur la création de la forme, le mot de passe de reconnexion au réseau est associé et l'icône Image non disponible apparaît dans la zone de notification.

 
Sélectionnez
procedure TF_StopRes.FormCreate(Sender: TObject);
begin
  Tmdpass; // Association au fichier du mot de passe
  TIconSt.Icon.LoadFromFile('IcoResOK.ico'); // Chargement de l'icône PC connecté au réseau
  TIconSt.Visible:= True;
end;

Pour isoler son PC du réseau, l'utilisateur doit double-cliquer sur l'icône Image non disponible dans la zone de notification.

Image non disponible

Procédure associée au double-clic :

 
Sélectionnez
procedure TF_StopRes.TIconStDblClick(Sender: TObject); // Isoler le PC du réseau
begin
  if F_StopRes.Color = clGreen then
    TCoupeReseau
  else
    Exit;
end;

Le double-clic sur l'icône a un effet seulement si la forme de l'application est verte.

Quand l'utilisateur a double-cliqué, il est informé de l'isolement de son PC du réseau par un message.

Image non disponible

La forme de l'application passe au rouge et elle donne à l'utilisateur les consignes à suivre.

Image non disponible

L'icône dans la zone notification est alors celle-ci : Image non disponible. Elle indique la déconnexion du réseau.

Image non disponible

La personne qui souhaite reconnecter la machine au réseau doit posséder le mot de passe.

Lors du clic sur le bouton CONNEXION, la procédure TActiveReseau est lancée.

 
Sélectionnez
procedure TF_StopRes.BBtnConnClick(Sender: TObject); // Connecter le PC au réseau
begin
  TConnexReseau;
end;

Si le clic est réalisé avant ou après avoir saisi un mot de passe erroné, un message d'information apparaît :

Image non disponible

Si au contraire le mot de passe saisi est valide, alors que la forme de l’application repasse au vert, le message suivant apparaît :

Image non disponible

Pour arrêter l'application, il faut saisir le mot de passe et cliquer sur le bouton QUITTER.

 
Sélectionnez
procedure TF_StopRes.BBtnQuitClick(Sender: TObject);
begin
  if EdMdp.Text <> EdMdps.Text then
    begin
      ShowMessage('Vous devez posséder le mot de passe pour arrêter l''application, sinon veuillez contacter votre administrateur.');
      EdMdp.Text:= '';
    end
  else
    Application.Terminate;
end;

Quand on veut stopper l'application en utilisant le bouton QUITTER sans avoir le mot de passe valide, on voit le message suivant :

Image non disponible

Quand on arrête l'application avec le bouton QUITTER, l'icône Image non disponible dans la zone de notification disparaît et l'ordinateur reste déconnecté du réseau.

4-2-5. Masquer la forme au démarrage de l'application

Au démarrage, il est nécessaire que la forme de l'application reste invisible pour l'utilisateur de l'ordinateur. Il faut alors l'inscrire au niveau du code source :

 
Sélectionnez
begin
  RequireDerivedFormResource:=True;
  Application.Scaled:=True;
  {$PUSH}{$WARN 5044 OFF}
  Application.MainFormOnTaskbar:=True;
  {$POP}
  Application.Initialize;
  Application.CreateForm(TF_StopRes, F_StopRes);
  Application.ShowMainForm := False; // Ne montre pas le formulaire principal
  Application.Run;
end.

5. Pour le déploiement

Comme vu précédemment, c'est un administrateur qui paramètre les tâches planifiées.

Ensuite, pour un utilisateur spécifique, celui-ci doit installer le raccourci de l'application dans le dossier :

C:\Users\Nom de session de l'utilisateur\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Ainsi, l'application est lancée au démarrage et de manière transparente pour l'utilisateur.

Image non disponible

Pour un déploiement pour tous les utilisateurs du PC, l'administrateur doit installer le raccourci de l'application dans le dossier :

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

Faites apparaître l'icône dans la zone de notification.

Pour aller plus loin : il serait intéressant d'automatiser la mise en place des tâches planifiées lors de la mise en service de l'application.

6. Conclusion

Voici le terme de ce tutoriel qui vous a amené à créer et mettre en place une application qui permet à un utilisateur d'isoler son ordinateur en cas notamment de cyberattaque.

Pensez à bien dissimuler les fichiers de commande des tâches planifiées ainsi que celui du mot de passe.

Vous pouvez apporter à cette application des modifications que je vous invite d'ailleurs à partager.

7. Remerciements

Ici, je tiens à remercier Alcatîz pour l’intérêt qu’il a porté au tutoriel proposé ainsi que pour sa relecture technique.

Je remercie ici aussi laurent_ott et Christophe pour leurs remarques constructives.

Je remercie également f-leb pour la relecture orthographique sans quoi un tutoriel peut s'avérer difficile à lire et par la même perdre de sa qualité.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2025 Christophe PIQUER. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.