Le message le plus clair que j'ai vu sur ce problème est celui de Matthew Garrett (y compris les commentaires).
Matthew a maintenant publié un outil pour vérifier votre système localement :créez-le, exécutez-le avec
sudo ./mei-amt-check
et il indiquera si AMT est activé et provisionné, et si c'est le cas, les versions du micrologiciel (voir ci-dessous). Le README contient plus de détails.
Pour analyser votre réseau à la recherche de systèmes potentiellement vulnérables, analysez les ports 623, 624 et 16992 à 16993 (comme décrit dans le propre document d'atténuation d'Intel); par exemple
nmap -p16992,16993,16994,16995,623,664 192.168.1.0/24
analysera le réseau 192.168.1/24 et signalera l'état de tous les hôtes qui répondent. Pouvoir se connecter au port 623 peut être un faux positif (d'autres systèmes IPMI utilisent ce port), mais tout port ouvert de 16992 à 16995 est un très bon indicateur d'AMT activé (au moins s'ils répondent de manière appropriée :avec AMT, cela signifie une réponse HTTP sur 16992 et 16993, cette dernière avec TLS).
Si vous voyez des réponses sur les ports 16992 ou 16993, connectez-vous à ceux-ci et demandez /
l'utilisation de HTTP renverra une réponse avec un Server
ligne contenant « Intel(R) Active Management Technology » sur les systèmes avec AMT activé ; cette même ligne contiendra également la version du micrologiciel AMT utilisé, qui pourra ensuite être comparée à la liste donnée dans l'avis d'Intel pour déterminer s'il est vulnérable.
Voir la réponse de CerberusSec pour un lien vers un script automatisant ce qui précède.
Il existe deux manières de résoudre le problème "correctement" :
- mettre à niveau le micrologiciel, une fois que le fabricant de votre système a fourni une mise à jour (le cas échéant) ;
- évitez d'utiliser le port réseau fournissant AMT, soit en utilisant une interface réseau non compatible AMT sur votre système, soit en utilisant un adaptateur USB (de nombreuses stations de travail AMT, telles que les systèmes C226 Xeon E3 avec ports réseau i210, n'ont que une interface réseau compatible AMT - les autres sont sûres ; notez qu'AMT peut fonctionner en Wi-Fi, au moins sous Windows, donc l'utilisation du Wi-Fi intégré peut également entraîner une compromission).
Si aucune de ces options n'est disponible, vous êtes en territoire d'atténuation. Si votre système compatible AMT n'a jamais été provisionné pour AMT, vous êtes raisonnablement en sécurité ; l'activation de l'AMT dans ce cas ne peut apparemment être effectuée que localement et, pour autant que je sache, nécessite l'utilisation du micrologiciel de votre système ou du logiciel Windows. Si AMT est activé, vous pouvez redémarrer et utiliser le firmware pour le désactiver (appuyez sur Ctrl P lorsque le message AMT s'affiche au démarrage).
Fondamentalement, bien que la vulnérabilité des privilèges soit assez désagréable, il semble que la plupart des systèmes Intel ne soient pas réellement affectés. Pour vos propres systèmes exécutant Linux ou un autre système d'exploitation de type Unix, l'escalade nécessite probablement un accès physique au système pour activer AMT en premier lieu. (Windows est une autre histoire.) Sur les systèmes dotés de plusieurs interfaces réseau, comme l'a souligné Rui F Ribeiro, vous devez traiter les interfaces compatibles AMT de la même manière que vous traiteriez n'importe quelle interface administrative (compatible IPMI ou l'interface hôte pour un hyperviseur VM) et l'isoler sur un réseau administratif (physique ou VLAN). Vous ne pouvez pas compter sur un hébergeur pour se protéger :iptables
etc. sont inefficaces ici, car AMT voit les paquets avant le système d'exploitation (et garde les paquets AMT pour lui).
Les machines virtuelles peuvent compliquer les choses, mais uniquement dans le sens où elles peuvent confondre AMT et produire ainsi des résultats d'analyse déroutants si AMT est activé. amt-howto(7)
donne l'exemple des systèmes Xen où AMT utilise l'adresse donnée à un DomU via DHCP, le cas échéant, ce qui signifie qu'un scan montrerait AMT actif sur le DomU, pas sur le Dom0...
La simple détection des ports ouverts pour ce service est insuffisante, elle n'indique pas si la version est affectée ou non. Notre équipe a créé un script python disponible sur notre github :CerberusSecurity/CVE-2017-5689 qui détecte si un système cible est vulnérable aux attaques à distance.
Exemple d'utilisation :
python CVE_2017_5689_detector.py 10.100.33.252-255
Cela devrait vous permettre de pouvoir vérifier si vous êtes exploitable à distance. Si vous êtes intéressé, nous avons également écrit un court article de blog sur http://cerberussec.org/ avec notre point de vue sur cette vulnérabilité.
Intel propose des outils pour linux sur :Linux Detection and Mitigation Tools
il y en a un fork sur GITHUB