Avant-propos
Nous avons identifié une nouvelle famille de malwares basés sur Windows que nous avons baptisée Airstalk, qui est disponible dans les variantes en PowerShell et .NET. Nous estimons avec un degré de confiance moyen qu’un éventuel agent de menace potentiellement étatique a utilisé ce malware dans le cadre d’une attaque probable de la supply chain. Nous avons créé le cluster d’activités malveillantes CL-STA-1009 afin d’identifier et de suivre toute autre activité connexe.
Airstalk utilise à tort l’API AirWatch pour la gestion des appareils mobiles (MDM), qui s’appelle désormais Workspace ONE Unified Endpoint Management. Il le fait pour établir un canal furtif de commande et contrôle (C2), principalement par le biais de la fonctionnalité AirWatch pour gérer les attributs personnalisés des appareils et les téléchargements de fichiers.
Airstalk dispose des fonctionnalités suivantes :
- Utilisation d’un protocole de communication C2 multithreadé
- Incorporation du contrôle de la version
- Utilisation d’un certificat probablement volé pour signer certains des échantillons trouvés
Ce malware est conçu pour exfiltrer les données sensibles du navigateur, notamment :
- Cookies
- Historique de la navigation
- Signets
- Captures d’écran
Nous avons également identifié d’autres tâches dans les échantillons trouvés que l’auteur de la menace n’a pas mises en œuvre.
Si vous pensez que votre entreprise a pu être compromise ou si vous faites face à une urgence, contactez l’équipe Unit 42 de réponse à incident.
| Unit 42 - Thématiques connexes | Attaques de la chaîne d'approvisionnement, Scripts PowerShell malveillants |
Analyse technique
Nous avons identifié deux variantes principales du malware Airstalk, l’une écrite en PowerShell et l’autre en .NET. La variante .NET d’Airstalk offre plus de possibilités que la variante PowerShell et semble être à un stade de développement plus avancé.
Nous appelons ce malware Airstalk, car il détourne l’API MDM d’AirWatch pour ses communications C2. Les deux variantes utilisent le même canal furtif pour les communications C2, mais les protocoles C2 et les navigateurs ciblés diffèrent légèrement.
Variante PowerShell d’Airstalk
Mise en œuvre du canal furtif PowerShell
Airstalk utilise le terminal des appareils (/api/mdm/devices/) de l’API MDM d’AirWatch pour ses communications C2 furtives avec l’attaquant. Ces communications C2 exploitent la fonctionnalité d’attributs personnalisés de l’appareil dans l’API MDM d’AirWatch pour stocker les détails de la communication de la porte dérobée et l’utiliser comme un dead drop.
Un dead drop est une méthode de communication secrète utilisée pour transmettre des objets ou des informations entre des individus sans qu’ils se connectent directement. Les attaquants exploitent généralement cette technique dans le cadre de l’espionnage, où une personne laisse l’objet dans un endroit caché et l’autre le récupère plus tard.
Le malware exploite également un autre terminal de l’API (/api/mam/blobs/uploadblob) pour télécharger des fichiers à différentes fins.
Les communications C2 sont basées sur des messages JSON via le terminal d’API des appareils, contenant au moins les champs obligatoires suivants (premier schéma) :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
{ “Name” : “<CLIENT_UUID>”, “Value” : “<SERIALIZED_MESSAGE>”, “Uuid” : “<CLIENT_UUID>”, “Application” : “services.exe”, “ApplicationGroup” : “services” } |
- CLIENT_UUID : lire l’instrumentation de gestion Windows (WMI) pour connaître la valeur réelle de l’appareil compromis.
- SERIALIZED_MESSAGE : message JSON codé en base64.
Le message sérialisé envoyé dans le champ Value comporte au moins les champs suivants (deuxième schéma) :
|
1 2 3 4 5 6 7 8 9 |
{ “method” : “<MESSAGE_TYPE>”, “uuid” : “<CLIENT_UUID>”, “sender” ; “<SENDER_ROLE>” } |
- CLIENT_UUID : valeur réelle de l’identifiant universel unique (UUID) de l’appareil compromis.
- MESSAGE_TYPE : varie en fonction de l’objectif du message.
- SENDER_ROLE : défini comme client pour tous les messages envoyés depuis l’appareil compromis vers le terminal de l’API.
Les messages finaux (premier schéma) sont ensuite définis en tant qu’attributs personnalisés par l’intermédiaire de l’API MDM pour communiquer avec l’attaquant.

Pour relire un message de l’attaquant, le malware effectue le processus inverse. Il désérialise le message et vérifie si ce dernier provient de l’attaquant, afin d’éviter de lire le message qu’il a lui-même envoyé, comme l’illustre la Figure 2.

Protocole C2
Le protocole C2 de la variante PowerShell d’Airstalk utilise différents types de messages pour la synchronisation et l’exécution de tâches spécifiques, en fonction de l’étape de la communication.
Le Tableau 1 présente les différentes valeurs que peut prendre le champ de la méthode.
| MESSAGE_TYPE | Objectif |
| CONNECT | Demande de connexion |
| CONNECTED | Connexion acceptée |
| ACTIONS | Synchronisation des tâches |
| RESULT | Résultats des tâches |
Tableau 1. Valeurs du champ méthode dans la variante PowerShell des communications C2 d’Airstalk.
Une fois exécutée, la variante PowerShell d’Airstalk lance la communication avec l’attaquant. Pour ce faire, elle envoie un message CONNECT et bloque l’exécution par le biais de la fonction Get-Response, comme indiqué sur la Figure 3, dans l’attente d’un message de l’agent de menace.

Le code semble s’attendre à recevoir un message CONNECTED. Cependant, le résultat est le même quel que soit le type de message, tant qu’il ne provient pas du malware (client).
Après avoir établi une connexion avec l’attaquant, le malware :
- demande d’exécuter les tâches en envoyant un message de type ACTIONS.
- bloque l’exécution en attendant une réponse de l’attaquant avec un message de type ACTIONS.
- renvoie l’ID de l’action à mener, comme indiqué sur la Figure 4 ci-dessous.

Comme indiqué sur la Figure 4, le flux d’exécution filtre cette fois correctement le type de message.
La Figure 5 illustre le flux d’exécution de la variante PowerShell d’Airstalk.

Capacités des portes dérobées
Une fois le canal de communication C2 établi, la variante PowerShell d’Airstalk peut recevoir différentes tâches par le biais du champ d’action, comme indiqué dans le Tableau 2 ci-dessous.
| ACTION_ID | Tâche |
| 0 | Faire une capture d’écran |
| 1 | Récupérer tous les cookies de Chrome |
| 2 | Répertorier tous les fichiers contenus dans le répertoire de l’utilisateur |
| 4 | Répertorier tous les profils Chrome dans le répertoire de l’utilisateur |
| 5 | Obtenir les signets d’un profil Chrome donné |
| 6 | Obtenir l’historique du navigateur d’un profil Chrome donné |
| 7 | Désinstaller la porte dérobée |
Tableau 2. Identifiants et tâches du champ d’action.
D’après les valeurs du champ ACTION_ID dans le Tableau 2, nous constatons que la valeur 3 est ignorée. Cela pourrait être une décision du développeur, une erreur ou un moyen de dissimuler des capacités supplémentaires de la porte dérobée en éliminant la mise en œuvre des tâches. Cette élimination est un moyen simple mais efficace d’en faire une porte dérobée modulaire.
Après exécution d’une tâche, le malware envoie le résultat via la fonction UploadResult, en précisant la valeur dans ACTION_ID de la tâche exécutée et la valeur renvoyée, comme indiqué à la Figure 6.

Certaines tâches nécessitent le renvoi d’un volume important de données ou de fichiers après l’exécution d’Airstalk. Pour ce faire, le malware utilise la fonctionnalité blobs de l’API MDM d’AirWatch afin de charger le contenu en tant que nouveau blob. La Figure 7 montre comment cela est mis en œuvre dans le script de la variante PowerShell d’Airstalk.

Un exemple de ce comportement est la capture d’écran de l’hôte infecté, comme illustré à la Figure 8 ci-dessous.

La fonction de vidage des cookies de Chrome active le débogage à distance du navigateur et le redémarre avec des paramètres permettant de charger le profil Chrome ciblé. Ces paramètres envoient également la commande de vidage de tous les cookies et de leur enregistrement dans un fichier qui est ensuite exfiltré par le canal furtif illustré ci-dessous à la Figure 9.

Comme signalé précédemment par Red Canary, le vol de cookies via le débogage à distance de Chrome n’est pas une nouveauté et est déjà intégré dans plusieurs stealers tels que Lumma et StealC. Toutefois, il est peu probable que ces stealers réussissent à fonctionner dans un environnement bien protégé. L’intégration de cette fonctionnalité dans un outil de gestion de systèmes fiable permet de l’exécuter sans éveiller les soupçons.
Variante .NET d’Airstalk
Au cours de notre enquête sur ce logiciel malveillant, nous avons identifié une série d’échantillons représentant une variante .NET d’Airstalk. Par rapport à la variante PowerShell, la variante .NET présente de légères différences dans son protocole C2 de canal furtif et dispose de plus de capacités. La variante .NET semble également être à un stade de développement plus avancé que la variante PowerShell.
Alors que l’échantillon PowerShell d’Airstalk que nous avons trouvé ciblait uniquement Google Chrome, la variante .NET d’Airstalk cible également deux navigateurs web supplémentaires :
- Microsoft Edge
- Navigateur Island
La variante .NET tente d’imiter une application existante en utilisant la signature de code et des attributs de métadonnées spécifiques. La Figure 10 en donne un exemple.

Mise en œuvre d’un canal furtif .NET
Par rapport à la variante PowerShell, la variante .NET d’Airstalk inclut un suffixe supplémentaire au champ UUID dans le message JSON (premier schéma) dans sa communication C2 secrète, comme indiqué à la Figure 11.

La variante .NET d’Airstalk dispose de trois types de delivery différents pour ses communications C2, comme indiqué dans le Tableau 3.
| Type de delivery | Suffixe | Description |
| DEBUG | -kd | Utilisé pour envoyer des données de débogage |
| RESULT | -kr | Utilisé pour vérifier les tâches et envoyer les résultats des tâches |
| BASE | -kb | Utilisé pour établir la connexion et le beaconing |
Tableau 3. Différents types de delivery dans les communications C2 pour la variante .NET d’Airstalk.
Protocole C2
Par rapport à la variante PowerShell, la variante .NET d’Airstalk présente de petites différences dans les types de messages au niveau de son protocole C2. Le Tableau 4 énumère les types supplémentaires (méthodes) utilisés par la variante .NET.
| MESSAGE_TYPE | Objectif | Variante PowerShell | Variante .NET |
| CONNECT | Demande de connexion | Oui | Oui |
| CONNECTED | Connexion acceptée | Oui | Oui |
| ACTIONS | Flux de tâches | Oui | Oui |
| RESULT | Résultats des tâches | Oui | Oui |
| MISMATCH | Erreur de compatibilité de version | Non | Oui |
| DEBUG | Messages de débogage | Non | Oui |
| PING | Beaconing | Non | Oui |
Tableau 4. Méthodes de communication de la variante .NET du protocole C2 d’Airstalk.
Par rapport à sa variante PowerShell, la variante .NET d’Airstalk a un flux d’exécution différent. La variante .NET utilise trois threads d’exécution différents, un pour chaque objectif spécifique :
- Gestion des tâches C2
- Exfiltration du journal de débogage
- Beaconing des communications C2

Comme indiqué dans la Figure 12 ci-dessus, ces variantes ont un comportement de beaconing, un thread de débogage et un fichier journal qu’elles renvoient à l’attaquant. Ces informations sont envoyées par le canal furtif toutes les 10 minutes, conformément à la fonction Debug présentée à la Figure 13.

La Figure 14 présente la liste complète des tâches prises en charge par la variante .NET.

Bien que les noms des tâches de la variante .NET soient définis de manière similaire à ceux de la variante PowerShell, certaines tâches ne sont pas mises en œuvre. En outre, les ID de tâches dans la variante .NET diffèrent de ceux de la variante PowerShell. Cela indique une évolution de la variante .NET d’Airstalk par rapport à ce que l’on observe dans la variante PowerShell. Dans la variante .NET, certaines tâches ressemblent à celles de la variante PowerShell, mais un examen plus approfondi révèle qu’elles sont plus complexes, constituées de sous-tâches combinées.
Le Tableau 5 ci-dessous décrit les capacités et la mise en œuvre des fonctions présentées plus haut dans la Figure 14.
| Nom | ID | Mis en œuvre | Description |
| Screenshot | 0 | Oui | Effectue une capture d’écran |
| UpdateChrome | 1 | Oui | Exfiltre le profil Chrome spécifié |
| FileMap | 2 | Oui | Répertorie le contenu du répertoire spécifié |
| RunUtility | 3 | Non | N/A |
| EnterpriseChromeProfiles | 4 | Oui | Récupère les profils Chrome disponibles |
| UploadFile | 5 | Oui | Exfiltre des artefacts et des identifiants spécifiques de Chrome |
| OpenURL | 6 | Oui | Ouvre une nouvelle URL dans Chrome |
| Uninstall | 7 | Oui | Termine l’exécution |
| EnterpriseChromeBookmarks | 8 | Oui | Obtient les signets Chrome de l’utilisateur spécifié |
| EnterpriseIslandProfiles | 9 | Oui | Récupère les profils Island disponibles |
| UpdateIsland | 10 | Oui | Exfiltre le profil Island spécifié |
| ExfilAlreadyOpenChrome | 11 | Oui | Vide tous les cookies du profil Chrome actuel |
Tableau 5. Tâches pour les fonctions C2 dans la variante .NET d’Airstalk.
Contrôle de version
La variante PowerShell d’Airstalk n’a pas de variable de version, mais la variante .NET a une variable spécifiant la version du malware. Nous avons trouvé des échantillons de la variante .NET d’Airstalk utilisant les versions 13 et 14.
Persistance
La variante PowerShell utilise une tâche planifiée pour assurer sa persistance, qu’elle supprime lors de l’exécution de la tâche Uninstall, comme illustré à la Figure 15.

Cependant, la variante .NET d’Airstalk ne dispose pas d’un mécanisme de persistance. La variante .NET termine l’exécution de son processus et définit un indicateur dans le terminal d’API des attributs personnalisés, comme illustré à la Figure 16.

Binaires signés et horodatages
Pour tenter d’échapper à la détection, les binaires de la variante .NET d’Airstalk sont signés à l’aide d’un certificat (probablement volé) signé par une autorité de certification valide :
- Entreprise : Aoteng Industrial Automation (Langfang) Co, Ltd.
- Ville : Langfang
- Région : Hebei
- Pays : CN
- Numéro de série : 29afb8d913db84fdb362f4fd927b8553
- Valide à partir de : Jun 28 10:04:49 2024 GMT
- Valide jusqu’au : Jun 28 03:29:37 2025 GMT
Cependant, ce certificat a été révoqué environ 10 minutes après sa date de début de validité :
- Date de révocation : Jun 28 10:14:00 2024 GMT
Nous avons trouvé deux binaires PE utilisés pour des tests, signés avec le même certificat et ayant conservé les horodatages d’origine, comme indiqué dans le Tableau 6.
| SHA256 | Compilé | Signé | Premier envoi |
| 0c444624af1c9cce6532a6f88786840ebce6ed3df9ed570ac75e07e30b0c0bde | 2024-06-28 17:55:37 UTC | 2024-07-03 18:01:00 UTC | 2024-07-03 18:03:26 UTC |
| 1f8f494cc75344841e77d843ef53f8c5f1beaa2f464bcbe6f0aacf2a0757c8b5 | 2024-07-03 20:37:08 UTC | 2024-07-03 20:39:00 UTC | 2024-07-03 20:43:31 UTC |
Tableau 6. Informations sur le test des binaires PE pour la variante .NET d’Airstalk.
Bien que l’agent de menace à l’origine de CL-STA-1009 ait modifié les horodatages des binaires ultérieurs de la variante .NET d’Airstalk, nous pouvons établir une chronologie de développement en utilisant les horodatages signés, comme indiqué dans le tableau 7 ci‑dessous.
| SHA256 | Signé | Compilé | Débogage | Premier envoi | Description |
| dfdc27d81a6a21384d6dba7dcdc4c7f9348cf1bdc6df7521b886108b71b41533 | 2024-07-17 20:00:00 UTC | 2055-04-06 21:31:42 UTC | 2039-09-07 07 17:14:59 UTC | 2024-12-17 16:58:53 UTC | Variante .NET |
| b6d37334034cd699a53df3e0bcac5bbdf32d52b4fa4944e44488bd2024ad719b | 2024-11-11 00:12:00 UTC | 2066-03-16 05:36:50 UTC | 2084-08-11 21:19:12 UTC | 2024-12-10 00:03:03 UTC | Variante .NET |
| 4e4cbaed015dfbda3c368ca4442cd77a0a2d5e65999cd6886798495f2c29fcd5 | 2024-11-14 00:21:00 UTC | 2097-03-02 00:38:35 UTC | 2089-11-27 15:10:05 2089 UTC | 2024-12-09 13:39:25 UTC | Variante .NET |
| 3a48ea6857f1b6ae28bd1f4a07990a080d854269b1c1563c9b2e330686eb23b5 | N/A | N/A | N/A | 2025-01-02 17:35:47 UTC | Variante PowerShell |
Tableau 7. Chronologie du développement basée sur les horodatages signés.
Attribution et supply chain
D’après notre évaluation interne, nous estimons avec une confiance moyenne qu’un agent de menace étatique a utilisé le malware Airstalk dans une attaque contre la supply chain. Nous suivons l’activité identifiée sous la forme d’un cluster d’activités que nous avons nommé CL‑STA‑1009.
Nous avons suivi un certain nombre d’attaques contre la supply chain au cours des dernières années. Les attaques contre la supply chain ciblent les biens et services dont les organisations dépendent pour leurs activités quotidiennes. La supply chain comprend le matériel constituant l’infrastructure d’une organisation, les services cloud de confiance pour gérer les données les plus sensibles, ainsi que le renfort de personnel spécialisé.
Cette dernière catégorie, généralement appelée externalisation des processus métier (BPO), présente un risque de dommages importants lorsqu’elle est ciblée par des attaquants. Le matériel et les logiciels peuvent être surveillés, contrôlés et approvisionnés. Cependant, les ressources humaines, en particulier les plus spécialisées, doivent souvent se voir accorder un accès étendu aux systèmes métier critiques. En outre, elles travaillent souvent sur des équipements managés par leur propre organisation. Étant gérés par le BPO, ces équipements se trouvent effectivement hors de portée de la majorité des contrôles de sécurité de votre organisation.
Les organisations spécialisées dans le BPO sont devenues des cibles lucratives tant pour les attaquants criminels que pour les acteurs étatiques. Nous avons constaté une augmentation notable des attaques ciblant les BPO, utilisés comme point d’intrusion dans les incidents observés au cours des dernières années.
Les BPO tirent généralement parti des économies d’échelle pour mobiliser des talents très spécialisés qui servent plusieurs clients en même temps. Si cela peut engendrer des économies importantes pour le BPO et ses clients, cela présente l’inconvénient de transformer le BPO en porte d’entrée vers de multiples cibles. Les attaquants sont prêts à investir massivement pour non seulement les compromettre, mais aussi maintenir un accès de façon indéfinie.
Conclusion
CL-STA-1009 est un cluster d’activités malveillantes représentant l’activité d’un acteur étatique présumé. Ce cluster est associé au malware Airstalk, que nous considérons comme un attaquant de confiance moyenne utilisé dans les attaques contre la supply chain.
La variante .NET représente une évolution du malware : elle intègre un protocole C2 multi‑threads, du contrôle de version, du beaconing et des tâches composées plus complexes. Ce malware utilise des techniques d’évasion, notamment des binaires signés avec un certificat révoqué, apparemment émis à une organisation légitime en 2024. Ces techniques incluent également la manipulation des horodatages du PE, même si les horodatages de signature permettent d’établir une chronologie des activités. Les capacités du malware et sa nature adaptative mettent en évidence la menace persistante représentée par l’acteur à l’origine de CL-STA-1009.
Les techniques d’évasion employées par ce malware lui permettent de ne pas être détecté dans la plupart des environnements. Cela est particulièrement vrai s’il est exécuté dans l’environnement d’un fournisseur tiers. Cette situation est particulièrement désastreuse pour les organisations utilisant le BPO, car le vol de cookies de session de navigateur pourrait permettre l’accès à un grand nombre de leurs clients. Les captures d’écran volées et l’enregistrement des frappes au clavier peuvent révéler des informations sensibles et propriétaires, non seulement sur la victime, mais aussi sur les clients de celle‑ci.
Une surveillance à long terme permet à un attaquant déterminé de comprendre le fonctionnement de l’entreprise et la façon dont le prestataire BPO interagit habituellement avec ses clients, réduisant ainsi les chances que des intrusions ultérieures soient détectées. La clé pour identifier et protéger les organisations contre ce type d’attaques consiste à élargir la sécurité au‑delà des indicateurs classiques et du contrôle d’accès, en comprenant comment les utilisateurs travaillent habituellement, tant en interne qu’en externe.
Cependant, les différences de comportement entre un attaquant et vos utilisateurs habituels finiront par les trahir si vous savez quoi surveiller. Ce sont ces différences que vous devez identifier et traiter à l’aide d’outils de surveillance comportementale conçus pour repérer des anomalies subtiles.
Les clients de Palo Alto Networks sont mieux protégés face au malware Airstalk grâce aux produits suivants :
- Les modèles de Machine Learning d’Advanced WildFire ont été mis à jour sur la base des indicateurs de compromission (IoC) identifiés dans cette recherche.
- Cortex XDR et XSIAM aident à prévenir les malwares à l’aide du moteur de prévention des malwares. Cette approche combine plusieurs couches de protection, dont Advanced WildFire, la protection comportementale contre les menaces et le module Local Analysis afin de bloquer les malwares – connus ou non – avant qu’ils ne puissent impacter les terminaux.
Si vous pensez que votre entreprise a pu être compromise ou si vous faites face à une urgence, contactez l’équipe Unit 42 de réponse à incident ou composez l’un des numéros suivants :
- Amérique du Nord : Gratuit : +1 (866) 486-4842 (866.4.UNIT42)
- Royaume-Uni : +44 20 3743 3660
- Europe et Moyen-Orient : +31.20.299.3130
- Asie : +65.6983.8730
- Japon : +81 50 1790 0200
- Australie : +61.2.4062.7950
- Inde : 000 800 050 45107
Palo Alto Networks a partagé ces conclusions avec les autres membres de la Cyber Threat Alliance (CTA). Les membres de la CTA s’appuient sur ces renseignements pour déployer rapidement des mesures de protection auprès de leurs clients et perturber de manière coordonnée les activités des cybercriminels. Cliquez ici pour en savoir plus sur la Cyber Threat Alliance.
Indicateurs de compromission
| Indicateur | Type | Description |
| 0c444624af1c9cce6532a6f88786840ebce6ed3df9ed570ac75e07e30b0c0bde | SHA256 | Échantillon de test signé |
| 1f8f494cc75344841e77d843ef53f8c5f1beaa2f464bcbe6f0aacf2a0757c8b5 | SHA256 | Échantillon de test signé |
| dfdc27d81a6a21384d6dba7dcdc4c7f9348cf1bdc6df7521b886108b71b41533 | SHA256 | Exemple de la variante .NET d’Airstalk |
| b6d37334034cd699a53df3e0bcac5bbdf32d52b4fa4944e44488bd2024ad719b | SHA256 | Exemple de la variante .NET d’Airstalk |
| 4e4cbaed015dfbda3c368ca4442cd77a0a2d5e65999cd6886798495f2c29fcd5 | SHA256 | Exemple de la variante .NET d’Airstalk |
| 3a48ea6857f1b6ae28bd1f4a07990a080d854269b1c1563c9b2e330686eb23b5 | SHA256 | Exemple de la variante PowerShell d’Airstalk |
Certificat de signature de code :
-----BEGIN CERTIFICATE-----
MIIF/DCCA+SgAwIBAgIQKa+42RPbhP2zYvT9knuFUzANBgkqhkiG9w0BAQsFADB7
MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24x
ETAPBgNVBAoMCFNTTCBDb3JwMTcwNQYDVQQDDC5TU0wuY29tIEVWIENvZGUgU2ln
bmluZyBJbnRlcm1lZGlhdGUgQ0EgUlNBIFIzMB4XDTI0MDYyODEwMDQ0OVoXDTI1
MDYyODAzMjkzN1owgfkxCzAJBgNVBAYTAkNOMQ4wDAYDVQQIDAVIZWJlaTERMA8G
A1UEBwwITGFuZ2ZhbmcxOjA4BgNVBAoMMUFvdGVuZyBJbmR1c3RyaWFsIEF1dG9t
YXRpb24gKExhbmdmYW5nKSBDby4sIEx0ZC4xGzAZBgNVBAUTEjkxMTMxMDAwTUEw
QTNIRjhYOTE6MDgGA1UEAwwxQW90ZW5nIEluZHVzdHJpYWwgQXV0b21hdGlvbiAo
TGFuZ2ZhbmcpIENvLiwgTHRkLjEdMBsGA1UEDwwUUHJpdmF0ZSBPcmdhbml6YXRp
b24xEzARBgsrBgEEAYI3PAIBAxMCQ04wdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASf
B2NdKWXwGa7DkmCA5NiX+kQh5JkYBjGKJgSRz5BflX/Bo+/pXKfN8fsUOe5J3k+y
v/XX53ZiHRJMmpWSjEHXyDFHbBco1hksVLOoeaTFHx65sh5eysXxwD3bwn1IzSCj
ggGpMIIBpTAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFDa9Sf8xLOuvakD+mcAW
7br8SN1fMH0GCCsGAQUFBwEBBHEwbzBLBggrBgEFBQcwAoY/aHR0cDovL2NlcnQu
c3NsLmNvbS9TU0xjb20tU3ViQ0EtRVYtQ29kZVNpZ25pbmctUlNBLTQwOTYtUjMu
Y2VyMCAGCCsGAQUFBzABhhRodHRwOi8vb2NzcHMuc3NsLmNvbTBfBgNVHSAEWDBW
MAcGBWeBDAEDMA0GCyqEaAGG9ncCBQEHMDwGDCsGAQQBgqkwAQMDAjAsMCoGCCsG
AQUFBwIBFh5odHRwczovL3d3dy5zc2wuY29tL3JlcG9zaXRvcnkwEwYDVR0lBAww
CgYIKwYBBQUHAwMwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybHMuc3NsLmNv
bS9TU0xjb20tU3ViQ0EtRVYtQ29kZVNpZ25pbmctUlNBLTQwOTYtUjMuY3JsMB0G
A1UdDgQWBBQdt2jU+7Pr64QrUIvuU1nojIqttzAOBgNVHQ8BAf8EBAMCB4AwDQYJ
KoZIhvcNAQELBQADggIBAMBeOg1geZaMToh9XVF2rrQQRXArYYQKi5svgEX6YcjC
ZljQZzBo8wIyvyyeJ7x33ThTTbPpukggrKE2p019jGjlKQMjWoA1leRatuyrMPVT
w5+Vs/RCEogg1X/n6wmvTUUNvLCv6iDgT3/ZFrm7jIJKrwMkt/HbuGE/AB3w/Hfk
tnDcWbMii58+HmuDbPRtfvKe1p9IZ6EbxdAVRrOg/unECl4JC9gdzma0DbD6HhmY
AgaCEoqBds59ghNjN2y/QpMiAvrUBpX6p4pJzIedj5cJ/WID0QgalIWpOI18rRfP
Lkh6p02s5nmbSZKQQFtjPNCew65shUgCFdiV/mnFVPbI76o4N41c2z+AEqODk6fI
QUEeCr8Ny/Ro6ijXhycFvcN/YS9mLeiZ43cyEx9iylGskYY7wbPUblzNAF5NzxuK
jp/EBCUmCoj/q43D2u/ldB9ND4yaiaRmMMte8BVjSoU9xUUss7a5vft51ONTWtWS
O8Hbs4pnGcPCjewTdrgDqKYcLOPFN4M04kQHaQqQyQaY9Sff6/2c16Sh4rmErluQ
lIbNggl4sHlpMObqSqPnkJy8ClBFr7ah7AH8k6hzyQheh1rXUtmK0TSCbywsLFfH
nGbFSa72+9mByBCUH3ckD+Nnv73dtRdH9/M7+Oq+71BJQmMwmuMXPi450vTM4HIP
-----END CERTIFICATE-----