Partager via


Comportement de la quarantaine

L’un des défis de sécurité auxquels les administrateurs réseau sont confrontés est la configuration correcte d’un appareil après une modification du réseau.

Les modifications réseau peuvent se produire fréquemment. Les opérations requises pour reclasser le réseau après une modification et appliquer les stratégies de sécurité appropriées sur un appareil ne sont pas nécessaires et peuvent nécessiter un temps processeur considérable. Cette exigence par les opérations est particulièrement vraie pour les appareils qui font partie d’un domaine. Le retard dans l’application des stratégies de sécurité pendant la recatégorisation du réseau peut être exploité pour les vulnérabilités.

Pour contrer l’exploitation potentielle, le Pare-feu Windows met en quarantaine une interface jusqu’à ce que le système reclasse correctement le réseau et que la plateforme de filtrage Windows (PAM) ait les filtres appropriés appliqués pour la configuration de l’interface mise à jour. Pendant la mise en quarantaine, toutes les nouvelles connexions entrantes sans exception sont bloquées.

Ce document décrit la fonctionnalité de mise en quarantaine et explique pourquoi le trafic de l’application peut être bloqué par la mise en quarantaine.

Filtres de mise en quarantaine

La fonctionnalité de mise en quarantaine crée des filtres qui peuvent être divisés en trois catégories :

  • Filtre de bloc entrant par défaut de mise en quarantaine
  • Mettre en quarantaine les filtres d’exception par défaut
  • Filtres d’unquarantine d’interface

Ces filtres sont ajoutés dans la FWPM_SUBLAYER_MPSSVC_QUARANTINE sous-couche et ces couches sont les suivantes :

  1. FWPM_LAYER_ALE_AUTH_CONNECT_V4
  2. FWPM_LAYER_ALE_AUTH_CONNECT_V6
  3. FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V4
  4. FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V6

Remarque

Les règles de pare-feu ajoutées par les paramètres de stratégie n’affectent pas les filtres dans la sous-couche de mise en quarantaine. Les filtres des règles de pare-feu sont ajoutés dans la FWPM_SUBLAYER_MPSSVC_WF sous-couche. En d’autres termes, vous ne pouvez pas ajouter vos propres filtres d’exception pour empêcher l’évaluation des paquets par des filtres de mise en quarantaine.

Pour plus d’informations sur les couches et sous-couches PAM, consultez Opération PAM.

Filtre de bloc entrant par défaut de mise en quarantaine

Le filtre de bloc entrant par défaut de mise en quarantaine bloque toutes les nouvelles connexions entrantes nonloopback, sauf si le paquet n’est pas explicitement autorisé par un autre filtre dans la sous-couche de mise en quarantaine.

Mettre en quarantaine les filtres d’exception par défaut

Lorsque l’interface est en quarantaine, les filtres d’exception par défaut de mise en quarantaine autorisent de nouvelles connexions entrantes, étant donné qu’elles remplissent les conditions d’un filtre d’exception. Un exemple des filtres d’exception est le filtre d’exception de bouclage entrant par défaut de mise en quarantaine. Ce filtre d’exception autorise tous les paquets de bouclage lorsque l’interface est en quarantaine.

Filtre d’unquarantine d’interface

Les filtres d’unquarantine d’interface autorisent tous les paquets nonloopback si l’interface est correctement catégorisée.

Flux de mise en quarantaine

Les événements suivants décrivent le flux général de la mise en quarantaine :

  1. Il y a des modifications sur l’interface réseau actuelle
  2. Les filtres d’unquarantine d’interface n’autorisent pas de nouvelles connexions entrantes. L’interface est maintenant en quarantaine
  3. Toutes les connexions entrantes nonloopback sont soit autorisées par les filtres d’exception par défaut de mise en quarantaine, soit supprimées par le filtre de bloc entrant par défaut de mise en quarantaine
  4. Les filtres PAM applicables à l’ancien état de l’interface sont supprimés
  5. Les filtres PAM applicables au nouvel état de l’interface sont ajoutés, qui incluent les filtres de non-quarantine pour cette interface. Ces filtres sont mis à jour pour correspondre à l’état actuel de l’interface
  6. L’interface a maintenant quitté l’état de quarantaine, car les filtres d’unquarantine d’interface autorisent tous les nouveaux paquets nonloopback

Diagnostics de mise en quarantaine

Il existe deux méthodes pour identifier les suppressions de paquets du filtre de bloc entrant par défaut de mise en quarantaine.

Étant donné que le problème de connectivité réseau est reproductible, les traces de diagnostic peuvent être collectées en exécutant la commande suivante dans une invite de commandes d’administration :

Netsh wfp cap start
<Reproduce network connectivity issue>
Netsh wfp cap stop

Ces commandes génèrent un wfpdiag.cab. À l’intérieur du .cab se trouve un wfpdiag.xml, qui contient des filtres et des filtres netEvents qui existaient pendant cette reproduction.

Dans le wfpdiag.xml, recherchez netEvents qui ont FWPM_NET_EVENT_TYPE_CLASSIFY_DROP comme netEvent type. Pour rechercher les événements de suppression appropriés, recherchez les événements de suppression avec l’adresse IP de destination, le SID de package ou le nom d’ID d’application correspondant.

Les caractères dans le nom de l’ID d’application sont séparés par des points :

 <asString>         \\.d.e.v.i.c.e.\\.h.a.r.d.d.i.s.k.v.o.l.u.m.e.1.\\.w.i.n.d.o.w.s.\\.s.y.s.t.e.m.3.2.\\.s.v.c.h.o.s.t...e.x.e... </asString>

le netEvent contient plus d’informations sur le paquet supprimé, y compris des informations sur ses fonctionnalités, le filtre qui a supprimé le paquet, et bien plus encore.

Si le filtre qui a supprimé ce paquet était par le filtre de bloc entrant par défaut de mise en quarantaine, la suppression netEvent contient la valeur filterOriginQuarantine Default.

Le code suivant est un exemple netEvent avec comme Quarantine DefaultfilterOrigin .

<netEvent>
    <header>
        <timeStamp>2020-10-07T01:03:56.281Z</timeStamp>
        <flags numItems="9">
            <item>FWPM_NET_EVENT_FLAG_IP_PROTOCOL_SET</item>
            <item>FWPM_NET_EVENT_FLAG_LOCAL_ADDR_SET</item>
            <item>FWPM_NET_EVENT_FLAG_REMOTE_ADDR_SET</item>
            <item>FWPM_NET_EVENT_FLAG_LOCAL_PORT_SET</item>
            <item>FWPM_NET_EVENT_FLAG_REMOTE_PORT_SET</item>
            <item>FWPM_NET_EVENT_FLAG_APP_ID_SET</item>
            <item>FWPM_NET_EVENT_FLAG_USER_ID_SET</item>
            <item>FWPM_NET_EVENT_FLAG_IP_VERSION_SET</item>
            <item>FWPM_NET_EVENT_FLAG_PACKAGE_ID_SET</item>
        </flags>
        <ipVersion>FWP_IP_VERSION_V4</ipVersion>
        <ipProtocol>17</ipProtocol>
        <localAddrV4>255.255.255.255</localAddrV4>
        <remoteAddrV4>10.195.33.252</remoteAddrV4>
        <localPort>21</localPort>
        <remotePort>61706</remotePort>
        <scopeId>0</scopeId>
        <appId>
            <data>5c00640065006d00330032005c0073007600630068006f00730074002e006500780065000000</data>
            <asString>\.d.e.v.i.c.e.\.h.a.r.d.d.i.s.k.v.o.l.u.m.e.1.\.w.i.n.d.o.w.s.\.s.y.s.t.e.m.3.2.\.s.v.c.h.o.s.t...e.x.e...</asString>
        </appId>
        <userId>S-1-5-19</userId>
        <addressFamily>FWP_AF_INET</addressFamily>
        <packageSid>S-1-0-0</packageSid>
        <enterpriseId/>
        <policyFlags>0</policyFlags>
        <effectiveName/>
    </header>
    <type>FWPM_NET_EVENT_TYPE_CLASSIFY_DROP</type>
    <classifyDrop>
        <filterId>66241</filterId>
        <layerId>44</layerId>
        <reauthReason>0</reauthReason>
        <originalProfile>0</originalProfile>
        <currentProfile>0</currentProfile>
        <msFwpDirection>MS_FWP_DIRECTION_OUT</msFwpDirection>
        <isLoopback>false</isLoopback>
        <vSwitchId/>
        <vSwitchSourcePort>0</vSwitchSourcePort>
        <vSwitchDestinationPort>0</vSwitchDestinationPort>
    </classifyDrop>
    <internalFields>
        <internalFlags numItems="1">
            <item>FWPM_NET_EVENT_INTERNAL_FLAG_FILTER_ORIGIN_SET</item>
        </internalFlags>
        <capabilities/>
        <fqbnVersion>0</fqbnVersion>
        <fqbnName/>
        <terminatingFiltersInfo numItems="3">
            <item>
                <filterId>66241</filterId>
                <subLayer>FWPP_SUBLAYER_INTERNAL_FIREWALL_QUARANTINE</subLayer>
                <actionType>FWP_ACTION_BLOCK</actionType>
            </item>
            <item>
                <filterId>74045</filterId>
                <subLayer>FWPP_SUBLAYER_INTERNAL_FIREWALL_WSH</subLayer>
                <actionType>FWP_ACTION_BLOCK</actionType>
            </item>
            <item>
                <filterId>73602</filterId>
                <subLayer>FWPP_SUBLAYER_INTERNAL_FIREWALL_WF</subLayer>
                <actionType>FWP_ACTION_BLOCK</actionType>
            </item>
        </terminatingFiltersInfo>
        <filterOrigin>Quarantine Default</filterOrigin>
         <interfaceIndex>5</interfaceIndex>
    </internalFields>
</netEvent>

Sinon, si l’audit de l’échec de la connexion de la plateforme de filtrage est activé, l’événement drop est enregistré dans Windows observateur d'événements.

Pour activer les audits de connexion de plateforme de filtrage, exécutez la commande suivante dans une invite de commandes d’administration :

Auditpol /set /category:"System" /SubCategory:"Filtering Platform Connection" /success:enable /failure:enable

Exemple d’audit de suppression avec filterOrigin comme Quarantine Default.

Mise en quarantaine par défaut.

Une fois que l’origine du filtre de la suppression a été identifiée comme le filtre de bloc entrant par défaut de mise en quarantaine, l’interface doit être examinée plus en détail. Pour trouver l’interface appropriée, utilisez la InterfaceIndex valeur de l’audit netEvent d’événement ou dans la commande PowerShell suivante pour générer plus d’informations sur l’interface :

Get-NetIPInterface -InterfaceIndex <Interface Index>
Get-NetIPInterface -InterfaceIndex 5

À l’aide du nom de l’interface, l’observateur d’événements peut être recherché pour toutes les modifications liées à l’interface.

Pour activer d’autres événements d’audit réseau, consultez Activer les événements d’audit IPsec et d’audit du Pare-feu Windows.

Les suppressions de paquets du filtre de bloc entrant par défaut de mise en quarantaine sont souvent temporaires et ne signifient rien de plus qu’une modification réseau sur l’interface.