Port d'attache

Bap M., Correia M., Shong geu M.

← Port d'attache · Sillage / Le Hollandais Volant / SeaGate / BoatNet

Un récepteur AIS côtier, élément clé pour la transmission des signaux de navigation, a été identifié comme ayant un comportement anormal. Les autorités craignent qu’il s’agisse d’un maillon central dans la stratégie d’attaque, permettant aux pirates de détourner le fonctionnement des systèmes critiques du port tout en échappant aux dispositifs de détection.

À la suite de l’analyse du serveur SCADA, nous avons déterminé que des commandes illégitimes telles que l'ouverture de barrières maritimes pouvaient être déclenchées par la réception de messages AIS spécifiques. Ceux-ci ne pouvant provenir que des récepteurs AIS aux abords de la côte, l'équipe d'investigation les a passés en revue et a découvert que l'un d'entre eux avait un Firmware modifié.

Votre mission consiste à analyser ce Firmware modifié et de découvrir les conditions de déclenchement menant à l’exécution de ces commandes malveillantes sur le serveur SCADA, ainsi qu’à extraire toute information pouvant contribuer à identifier les attaquants.

Cote 95 pts

Indices

Rechercher après le traitement des fréquences interprétant les messages AIS.
Analyser la construction des trames NMEA2000.

Faire son rapport

Résolution


Méthode de résolution

L'objectif de cet exercice est de comprendre comment les phrases AIVDM envoyées au serveur SCADA ont été modifiées et ont permis aux attaquants d'exécuter des commandes.

Pour cela, nous allons principalement utiliser des outils de Reverse Engineering tels que Ghidra ou IDA pour analyser le binaire fourni et identifier les modifications apportées par les attaquants.

Identification du code malveillant

Grâce à l'analyse avec Ghidra, on peut repérer des schémas récurrents et une logique spécifique concernant le traitement des fréquences, le décodage des messages AIS ainsi que la transmission des trames AIVDM vers le serveur SCADA.

L'utilisation de modèles de langage (LLM) est également conseillée pour accélérer l'analyse du code source. Ces outils peuvent aider à clarifier le fonctionnement du décodage des messages AIS, à localiser les sections traitant les fréquences, et à cibler plus efficacement le code malveillant.

Cette approche permet de gagner du temps en évitant de comprendre tout le fonctionnement et toute la logique du code.

L'analyse du binaire révèle que le programme suit la séquence de traitement suivante :

  1. Collecte des bits : récupération des données brutes issues des trames AIS passées en entrée sous la forme de fréquences.
  2. Validation CRC : vérification de l'intégrité des données reçues.
  3. Modification des MMSI : application de la logique malveillante pour altérer les valeurs des MMSI.
  4. Construction du message NMEA2000 : conversion des données traitées au format NMEA2000.
  5. Envoi au SCADA : transmission des messages NMEA2000 vers le serveur SCADA.

Construction NMEA2000

Reconstitution

Une fois le code malveillant identifié, nous pouvons inverser la formule utilisée par les attaquants pour dissimuler la valeur des MMSI.

Formule XOR

En lisant le code, nous pouvons déduire la formule utilisée (simple XOR):

x = mmsi ^ 0x5A17C3D1
mmsi = x ^ 0x5A17C3D1

En appliquant la formule, nous pouvons retrouver la valeur d'origine des MMSI.

0x57D49FA9 ^ 0x5A17C3D1 = 0xDC35C78 
0x57A276A9 ^ 0x5A17C3D1 = 0xDB5B578

Nous pouvons ainsi trouver deux MMSI d'origine :

230907000
230012280