Couche de collecte des données comportementales
Quasar établit une ligne de base du comportement utilisateur par une collecte de données multciouche. Le module clé, implémenté dans Keylogger.cs, utilise des crochets globaux pour capturer les événements clavier. L'écoute au niveau système est initiée via _hookClavier = Hook.GlobalEvenements(), et la méthode SurToucheEnfoncée enregistre les changements de titre de la fenêtre active, générant ainsi des marqueurs contextuels temporels :
journalBuffer.AjouterLigne($"<div class='entrée-journal'><b>{Securité.EchapperElement(titreFenêtreActif)} - {DateTime.Maintenant:HH:mm}</b></div>");
Les fichiers journaux sont chiffrés avec AES-256 et stockés dans le répertoire Settings.CHEMIN_JOURNAUX. L'écriture sécurisée est gérée par AideFichier.EcrireFichierJournal. Le système découpe automatiquement les journaux dépassant la taille maximale _tailleMaxJournal pour garantir l'intégrité et la gestion des données.
Caractéristiques d'interaction à distance
Mode d'opérations de bureau
Le module RemoteDesktopHandler.cs coordonne la capture d'écran et le contrôle des entrées. La capture est effectuée via AideEcran.CapturerEcran, suivie d'une compression avec CodecFlotNonSécurisé :
codecImage.EncoderImage(donnéesBureau.Scan0,
new Rectangle(0, 0, largeurBureau, hauteurBureau),
new Size(largeurBureau, hauteurBureau),
formatPixelBureau, flot);
Les opérations de souris sont simulées via des méthodes comme AideMéthodesNatives.EffectuerClicGauche, supportant les clics gauche/droite et le défilement. Une vue typique d'interaction de bureau distant est illustrée ci-dessous.
Mode de comportement en ligne de commande
RemoteShellHandler.cs et Shell.cs forment le système d'interaction en ligne de commande. La classe Shell exécute des commandes en créant un processus caché :
processus = new Processus
{
InfoDémarrage = new InfoDémarrageProcessus("cmd")
{
UtiliserExécutionShell = false,
CréerSansFenêtre = true,
RedirigerEntréeStandard = true,
RedirigerSortieStandard = true,
RedirigerErreurStandard = true,
RépertoireTravail = Chemin.ObtenirRacineChemin(Environment.DossierSpecial(Environment.DossierSpecial.Système)),
Arguments = $"/K CHCP {_encodage.PageCode}"
}
};
La sortie est traitée par deux threads pour les flux standard et d'erreur, renvoyant les résultats en temps réel. Un scénario d'interaction typique est présenté.
Mécanismes de détection d'anomalies
SystemHelper.cs collecte des informations environnementales de base, comme le temps de fonctionnement, le nom d'hôte et l'état des logiciels de sécurité, pour établir une référence de base. La détection d'anomalies repose sur :
- Anomalie de fréquence d'opération : analyse de la densité des frappes par unité de temps via
journalBuffer. - Modèle de changement de fenêtre : détection des variations anormales dans
_titreFenêtrePrécédent. - Caractéristiques de séquence de commandes : identification des combinaisons de commandes Shell inhabituelles.
Le module de surveillance des processus suit en temps réel la liste des processus exécutés à distance via TaskManagerHandler.cs, fournissant un contexte pour la détection d'anomalies.
Modèle de comportement des opérations de fichiers
Le module de gestion de fichiers FileManagerHandler.cs permet l'accès distant au système de fichiers. Les opérations de création, suppression et déplacement de fichiers sont horodatées et enregistrées avec les chemins, formant ainsi une trajectoire d'opérations. Une vue typique d'une session de navigation de fichiers est illustrée.
Le transfert de fichiers utilise un mécanisme par blocs avec RequêteTransfertFichier et TransfertFichierComplet pour la reprise sur interruption, défini dans TransfertFichierRequest.cs.
Applications de reconnaissance des modèles de comportement
En intégrant les données des modules précédents, Quasar construit un profil utilisateur multidimensionnel :
- Analyse des habitudes opérationnelles : création d'une bibliothèque de caractéristiques basée sur les intervalles de frappe et la fréquence d'utilisation des commandes.
- Règles de détection d'anomalies : identification des opérations suspectes par comparaison avec le comportement de base, comme des transferts de fichiers massifs à des heures inhabituelles.
- Prédiction d'intention d'opération : anticipation des objectifs utilisateur en combinant les séquences de changement de fenêtre et les chaînes d'exécution de commandes.
Le module de configuration Settings.cs offre des options de personnalisation pour les paramètres d'analyse comportementale, permettant aux administrateurs d'ajuster la sensibilité de détection et les stratégies de journalisation.