DEENESPTFRRUARHIKOZHNL

module ara::fw — Firewall

Diese Seite wurde vollständig KI-generiert auf Basis von SWS Firewall (R25-11) — kein offizieller AUTOSAR-Text und keine automatisch extrahierte API-Seite wie die übrigen Module. Als Interpretation gekennzeichnete Aussagen sind Schlussfolgerungen aus den Quellen.

Guide du moduleGÉNÉRÉ PAR IA

Bascule les jeux de règles de Firewall dépendants de l'état de la plateforme et signale les paquets bloqués en tant que Security Events.
GÉNÉRÉ PAR IA non vérifié Modèle : claude-opus-5-5 · Effort : high · Température : non réglable · Prompt : 9267f9cbcba3 Provenance Questions ouvertes (3)
Ancre causale : R25-11 Valable à partir de R25-11 Synthétisé pour cette version de spécification.
traduit du guide allemandGénéré par l'IAgemini-3.8-flash-low · 2026-10-13 · Original allemand

Bascule les jeux de règles de Firewall dépendants de l'état de la plateforme et signale les paquets bloqués en tant que Security Events.

Le Functional Cluster Firewall filtre les paquets réseau selon des jeux de règles dépendants de l'état issus du manifeste et signale les paquets bloqués au IdsM en tant que Security Events (EXP_PlatformDesign p. 92). Les applications sélectionnent l'état actif du Firewall via FirewallStateSwitchInterface::SwitchFirewallState. La méthode fournit un ara::core::Future<void> et signale des erreurs telles que kServiceNotAvailable ou kInvalidStateDependentFirewall [AP_SWS_Fw_82008]. Les états ne constituent pas une liste fixe, mais sont générés sous forme d'énumération pour chaque interface modélisée. Les instances de l'interface peuvent uniquement être déplacées, non copiées.

Le module fw spécifie le Functional Cluster Firewall basé sur un démon de l'Adaptive Platform. Son API d'application est l'interface FirewallStateSwitchInterface dotée de l'opération SwitchFirewallState(), qu'une Adaptive Application utilise (EXP_SWArchitecture p. 126). Le cluster a deux missions : il commute l'état du Firewall et signale des Security Events à l'Intrusion Detection System Manager (EXP_SWArchitecture p. 197).

kontext app Adaptive Application (OEM application) fw FC Firewall «aapFunctionalCluster», daemon-based app->fw SwitchFirewallState() via FirewallStateSwitchInterface eng Firewall Engine fw->eng konfiguriert Engine os Operating System fw->os applyRule() je FirewallRule (informativ) idsm Intrusion Detection System Manager (IdsM) fw->idsm meldet SEvs (blockierte Pakete) mm Machine Manifest (Filterregeln) mm->fw Fournit la configuration du Firewall

Diagramme de contexte : le FC Firewall relie la configuration du manifeste, la consigne d'état de l'application, l'application des règles dans le système d'exploitation et le signalement de SEv à l'IdsM. Sources : EXP_PlatformDesign p. 97, EXP_SWArchitecture p. 197

Le filtrage dépend de l'état. L'OEM définit des états tels que conduite, stationnement ou diagnostic, et seules les règles de l'état actif s'appliquent à un paquet (EXP_PlatformDesign p. 92). Dans le manifeste, AdaptiveFirewallModuleInstantiation regroupe pour cela des éléments StateDependentFirewall. Chacun d'eux contient des propriétés de règles ordonnées, un defaultAction optionnel et des références vers les états associés (TPS_ManifestSpecification p. 679). Dans le code, les états apparaissent sous forme d'une énumération générée pour chaque interface dans ara::fw::states [AP_SWS_Fw_81001].

L'application crée l'objet d'interface à partir d'un ara::core::InstanceSpecifier. Ce constructeur est thread-safe [AP_SWS_Fw_82002]. SwitchFirewallState est noexcept et fournit un ara::core::Future<void> [AP_SWS_Fw_82008]. En interne, le cluster applique individuellement chaque règle de Firewall dans le système d'exploitation selon le scénario (EXP_SWArchitecture p. 232). Les instances ne peuvent pas être copiées, mais peuvent en revanche être déplacées. Le déplacement et le destructeur ne sont pas thread-safe [AP_SWS_Fw_82004] [AP_SWS_Fw_82006].

Changement d'état du FirewallAdaptive ApplicationFC Firewall (FirewallStateSwitchInterface)Operating SystemUse Case: InitialisierungFirewallStateSwitchInterface(instance)explicit, noexcept, thread-safeUse Case: ZustandswechselSwitchFirewallState(firewallState)Interprétation : valeur de l'énumération d'état généréeRetour : ara::core::Future<void>altChangement possibleloopforeach FirewallRuleapplyRule()«aapInformative»Future satisfaite (void)FehlerFuture avec FwErrc::kServiceNotAvailableOu FwErrc::kInvalidStateDependentFirewallEnsuite, seules les règlesde l'état actif filtrent

Diagramme de séquence : la demande de changement d'état retourne sous forme de future. Entre-temps, chaque règle est appliquée individuellement. Sources : EXP_SWArchitecture p. 232, [AP_SWS_Fw_82008]

En cas d'erreur, le future contient FwErrc::kServiceNotAvailable ou FwErrc::kInvalidStateDependentFirewall [AP_SWS_Fw_83001]. La signification ne peut être déduite que des noms : le service n'est vraisemblablement pas disponible, ou une configuration de règles valide manque pour l'état cible. Question Q-45e3225696efb3dc (ouverte) Via FwErrorDomain::ThrowAsException, une erreur peut être levée sous forme de FwException [AP_SWS_Fw_83012]. Les paquets bloqués ne constituent pas une erreur d'API. Ils sont signalés à l'IdsM sous forme de Security Events, avec en outre, dans R23-11, une distinction selon le protocole divergent (SWS_Firewall p. 31).

Rôle du FC Firewall entre l'application, le système d'exploitation et l'IdsM

Le module fw décrit le Functional Cluster Firewall de l'Adaptive Platform. Il est basé sur un démon et implémente l'interface FirewallStateSwitchInterface avec l'opération SwitchFirewallState(). Une Adaptive Application utilise cette interface via une relation « use » (EXP_SWArchitecture p. 126). Les cas d'utilisation restreignent le cluster à deux tâches. « Switch Firewall State » est déclenché par l'Adaptive Application, le système d'exploitation y participe. « Report Security Event » s'adresse à l'Intrusion Detection System Manager, également basé sur un démon (EXP_SWArchitecture p. 197).

La vue d'ensemble de l'architecture sépare la configuration, le contrôle et l'exécution :

  • Le Machine Manifest fournit les règles de filtrage.
  • Le FC Firewall configure ainsi un Firewall Engine.
  • Une application OEM définit l'état du Firewall.
  • Le cluster signale des Security Events (SEv) à l'IdsM (EXP_PlatformDesign p. 97).

Deux cas d'utilisation sont au premier plan. Le premier est le filtrage dépendant de l'état avec des états spécifiques à l'OEM tels que conduite, stationnement ou session de diagnostic. Le second est la prise en charge de l'Intrusion Detection System par des Security Events en cas de messages bloqués. La qualification, la transmission à un SOC ou le stockage persistant sont pris en charge par l'IdsM (EXP_PlatformDesign p. 92). La seule API applicative du module est le changement d'état [AP_SWS_Fw_82008].

kontext app Adaptive Application (OEM application) fw FC Firewall «aapFunctionalCluster», daemon-based app->fw SwitchFirewallState() via FirewallStateSwitchInterface eng Firewall Engine fw->eng konfiguriert Engine os Operating System fw->os applyRule() je FirewallRule (informativ) idsm Intrusion Detection System Manager (IdsM) fw->idsm meldet SEvs (blockierte Pakete) mm Machine Manifest (Filterregeln) mm->fw Fournit la configuration du Firewall

Diagramme de contexte : le FC Firewall reçoit la configuration depuis le Machine Manifest ainsi que les consignes d'état de l'application. Il pilote le moteur et le système d'exploitation et signale les SEv à l'IdsM. Sources : EXP_PlatformDesign p. 97, EXP_SWArchitecture p. 197, EXP_SWArchitecture p. 232

États du Firewall : de la machine à états dans le modèle à l'énumération générée

Dans le métamodèle du manifeste, FirewallStateSwitchInterface spécialise un PortInterface. Via le rôle firewallStateMachine, il agrège autant d'éléments ModeDeclarationGroupPrototype que souhaité (0..*) (TPS_ManifestSpecification p. 263). Les états individuels sont des ModeDeclaration dotés de l'attribut optionnel value: PositiveInteger (TPS_ManifestSpecification p. 679).

Pour chaque interface modélisée, une énumération propre enum class {<fwssi-sn>} : std::uint32_t est générée à partir de là dans l'espace de noms ara::fw::states. Elle est intégrée via ara/fw/states/{<fwssi-sn>}.h [AP_SWS_Fw_81001]. Un énumérateur {<symbol-fw-state>} = {<fw-state-value>} est créé pour chaque état de Firewall modélisé [AP_SWS_Fw_81002].

Pour les utilisateurs, cela signifie : il n'existe pas de liste d'états fixe à l'échelle de la plateforme. Les états qui existent sont définis par le modèle OEM (EXP_PlatformDesign p. 92). SwitchFirewallState attend un paramètre firewallState de type EnumT [AP_SWS_Fw_82008]. Interprétation : EnumT devrait correspondre à l'énumération d'états générée pour l'interface respective. Question Q-26dbe38f70cb0222 (ouverte) Le fait que [AP_SWS_Fw_81001] les définisse explicitement comme des états « for FirewallStateSwitchInterface » va dans ce sens.

zustandsmodell pi PortInterface fwssi FirewallStateSwitchInterface fwssi->pi spezialisiert mdgp ModeDeclarationGroupPrototype fwssi->mdgp firewallStateMachine 0..* en enum class {<fwssi-sn>} : std::uint32_t namespace ara::fw::states ara/fw/states/{<fwssi-sn>}.h fwssi->en Codegenerierung je Interface md ModeDeclaration value: PositiveInteger [0..1] mdgp->md États (via ModeDeclarationGroup) er Enumerator je Zustand {<symbol-fw-state>} = {<fw-state-value>} en->er je modelliertem Zustand api SwitchFirewallState(EnumT firewallState) er->api Interprétation : argument de type EnumT

Diagramme de contexte (modèle–code) : les états proviennent de la machine à états de l'interface dans le modèle. Pour chaque interface, une énumération est générée dans ara::fw::states. Sources : TPS_ManifestSpecification p. 263, [AP_SWS_Fw_81001], [AP_SWS_Fw_81002], [AP_SWS_Fw_82008]

Configuration du manifeste : instance de module, jeux de règles dépendants de l'état et affectation des ports

Les paramètres spécifiques à la machine du module Firewall sont rassemblés dans AdaptiveFirewallModuleInstantiation. La définition correspondante porte le statut DRAFT dans R25-11 (TPS_ManifestSpecification p. 677). L'instance de module spécialise NonOsModuleInstantiation et référence autant d'éléments StateDependentFirewall que souhaité via stateDepFirewall.

Un StateDependentFirewall contient :

  • optionnellement un defaultAction de type FirewallActionEnum,
  • des firewallRuleProps ordonnées,
  • via firewallState (instanceRef), des références vers les ModeDeclaration dans lesquels il s'applique (TPS_ManifestSpecification p. 679).

Le System Template la décrit succinctement comme « Firewall rules that are defined in a firewall state » (TPS_SystemTemplate p. 644).

Les règles elles-mêmes sont des éléments FirewallRule dotés d'attributs tels que bucketSize et refillAmount. En outre, le métamodèle présente NetworkLayerRule et TransportLayerRule, ce dernier comportant entre autres des plages de ports et checksumVerification. Un CouplingElement peut également agréger des règles via firewallRule (TPS_ManifestSpecification p. 679). Pour les détails, le System Template renvoie expressément à la spécification du manifeste (TPS_SystemTemplate p. 644).

La liaison avec l'application est établie par AdaptiveFirewallToPortPrototypeMapping. Elle fait correspondre l'instance de module (référence firewall, 0..1) au RPortPrototype de l'application, qui est typé par l'interface de commutation d'état (TPS_ManifestSpecification p. 677). Deux restrictions s'appliquent :

  • La note de classe nomme l'interface FirewallModeSwitchInterface, tandis que le titre de la figure et l'API la nomment FirewallStateSwitchInterface. Le nom issu de [AP_SWS_Fw_82002] est déterminant pour le code.
  • La classe de mappage et sa référence portent le statut candidate (TPS_ManifestSpecification p. 677).
manifest inst AdaptiveFirewallModuleInstantiation (NonOsModuleInstantiation) sdf StateDependentFirewall defaultAction: FirewallActionEnum [0..1] inst->sdf stateDepFirewall 0..* props firewallRuleProps 0..*, geordnet sdf->props aggregiert md ModeDeclaration (Firewall-Zustand) sdf->md firewallState 0..* (instanceRef) ce CouplingElement rule FirewallRule bucketSize, refillAmount ce->rule firewallRule 0..* map AdaptiveFirewallToPortPrototypeMapping (candidate) map->inst firewall 0..1 rport RPortPrototype de l'Adaptive Application map->rport ordnet zu fwssi FirewallStateSwitchInterface rport->fwssi typisiert durch

Diagramme de contexte (métamodèle) : l'instance de module regroupe les jeux de règles dépendants de l'état. Le mappage les relie au port R de l'application. Sources : TPS_ManifestSpecification p. 677, TPS_ManifestSpecification p. 679, TPS_ManifestSpecification p. 677

Déroulement d'un changement d'état avec SwitchFirewallState

Côté code, l'application inclut ara/fw/firewall_state.h. Elle crée ara::fw::FirewallStateSwitchInterface via le constructeur explicite à partir d'un ara::core::InstanceSpecifier. Ce constructeur est noexcept et thread-safe [AP_SWS_Fw_82002].

SwitchFirewallState(EnumT firewallState) demande le changement d'état. La méthode est noexcept et fournit un ara::core::Future<void>. Les erreurs FwErrc::kServiceNotAvailable et FwErrc::kInvalidStateDependentFirewall définies pour celle-ci sont par conséquent retournées via le future et non sous forme d'exception [AP_SWS_Fw_82008].

Le scénario « Switch Firewall State » montre le déroulement interne en trois étapes (EXP_SWArchitecture p. 232) :

  1. L'application appelle SwitchFirewallState() sur le FC Firewall.
  2. Le cluster appelle dans une boucle « foreach FirewallRule » applyRule() au niveau du système d'exploitation.
  3. Ce n'est qu'après la boucle que la réponse revient à l'application.

applyRule() y est identifié comme « aapInformative ». La manière dont les règles sont activées dans le système d'exploitation n'est pas définie dans le payload en tant qu'API de plate-forme. La version R22-11 présentait le même déroulement comme scénario nominal (EXP_SWArchitecture p. 158). Après la transition, seules les règles de l'état actif vérifient et filtrent encore (EXP_PlatformDesign p. 92).

Changement d'état du FirewallAdaptive ApplicationFC Firewall (FirewallStateSwitchInterface)Operating SystemUse Case: InitialisierungFirewallStateSwitchInterface(instance)explicit, noexcept, thread-safeUse Case: ZustandswechselSwitchFirewallState(firewallState)Interprétation : valeur de l'énumération d'état généréeRetour : ara::core::Future<void>altChangement possibleloopforeach FirewallRuleapplyRule()«aapInformative»Future satisfaite (void)FehlerFuture avec FwErrc::kServiceNotAvailableOu FwErrc::kInvalidStateDependentFirewallEnsuite, seules les règlesde l'état actif filtrent

Diagramme de séquence : le changement d'état est acquitté de manière asynchrone via un Future. En interne, le cluster applique chaque règle individuellement. Sources : EXP_SWArchitecture p. 232, [AP_SWS_Fw_82002], [AP_SWS_Fw_82008]

Durée de vie, règles de copie et de déplacement de la classe d'interface

Les fonctions spéciales de FirewallStateSwitchInterface déterminent la façon dont les instances peuvent être transmises ([AP_SWS_Fw_82003] à [AP_SWS_Fw_82007]) :

ÉlémentSpécificationSûreté des threads
Constructeur issu de InstanceSpecifierexplicit, noexcept [AP_SWS_Fw_82002]thread-safe
Constructeur de copie / Affectation par copie=delete [AP_SWS_Fw_82004] [AP_SWS_Fw_82005]–
Constructeur de déplacement / Affectation par déplacementnoexcept [AP_SWS_Fw_82006] [AP_SWS_Fw_82007]not thread-safe
Destructeurnoexcept [AP_SWS_Fw_82003]not thread-safe

Il en découle trois règles d'utilisation :

Le texte des exigences ne fournit aucune indication quant à la sécurité des threads de SwitchFirewallState lui-même [AP_SWS_Fw_82008].

lebenszyklus start gueltig Instance valide start->gueltig FirewallStateSwitchInterface(instance) noexcept, thread-safe gueltig->gueltig SwitchFirewallState(...) gueltig->gueltig En tant qu'objet cible d'un déplacement (interprétation : reprend le rôle) uebertragen Objet source après déplacement (interprétation : ne plus utiliser) gueltig->uebertragen Move-Konstruktor / Move-Zuweisung noexcept, not thread-safe (Kopieren: =delete) zerstoert Détruit gueltig->zerstoert ~FirewallStateSwitchInterface() noexcept, not thread-safe uebertragen->zerstoert ~FirewallStateSwitchInterface()

Diagramme d'états : une instance est créée à partir d'un InstanceSpecifier, n'est transmise que par déplacement et est finalement détruite. Sources : [AP_SWS_Fw_82002], [AP_SWS_Fw_82003], [AP_SWS_Fw_82006], [AP_SWS_Fw_82007]

Filtrage de paquets à l'état actif et signalement des Security Events

Les règles de Firewall peuvent être associées à un état de Firewall. Pour la vérification d'un paquet, seules les règles de l'état actuellement actif sont prises en compte (EXP_PlatformDesign p. 92). Pour chaque état, la StateDependentFirewall met à disposition les propriétés de règles ordonnées et la defaultAction facultative (TPS_ManifestSpecification p. 679).

La version R23-11 de la SWS décrit plus précisément l'association des Security Events (SWS_Firewall p. 31) :

  • Si un paquet ne correspond à aucune règle, l'action par défaut s'applique.
  • Si l'action par défaut bloque le paquet, le cluster détermine le protocole divergent. La règle déterminante est celle présentant le plus de couches ISO/OSI concordantes, comptées à partir de la couche la plus basse. La première couche non concordante située au-dessus détermine le protocole.
  • Pour ce protocole, un SEv est signalé à l'IdsM, par exemple SEV_FW_PACKET_BLOCKED_DATALINKLAYER_MISMATCH (Ethernet), SEV_FW_PACKET_BLOCKED_IPV4_MISMATCH, SEV_FW_PACKET_BLOCKED_IPV6_MISMATCH ou SEV_FW_PACKET_BLOCKED_ICMP_MISMATCH.

Ces précisions sont issues de la R23-11. Les exigences associées ne font pas partie du payload R25-11 et sont donc reproduites ici à titre explicatif et non normatif. Selon la description d'architecture, le principe selon lequel les messages bloqués sont transmis sous forme de SEv à l'IdsM s'applique également à la R25-11 (EXP_PlatformDesign p. 92).

paketpruefung start ein Arrivée d'un paquet réseau start->ein regeln Recourir aux règles de l'état actif du Firewall ein->regeln passt Une règle correspond-elle ? regeln->passt regel La règle correspondante est appliquée passt->regel Oui da defaultAction greift passt->da Non ende regel->ende blockiert durch Default-Aktion blockiert? da->blockiert ebene Déterminer le rapport de divergence : règle avec le plus de couches concordantes à partir de la couche inférieure (R23-11) blockiert->ebene Oui blockiert->ende Non sev SEv an IdsM, z. B. SEV_FW_PACKET_BLOCKED_IPV4_MISMATCH ebene->sev sev->ende

Diagramme d'activités : un paquet est vérifié par rapport aux règles de l'état actif. Un blocage par défaut entraîne l'émission d'un SEv spécifique au protocole vers l'IdsM. Sources : EXP_PlatformDesign p. 92, SWS_Firewall p. 31 (R23-11)

Comportement en cas d'erreur

FwErrc définit les codes d'erreur du module dans le fichier d'en-tête ara/fw/fw_error_domain.h : kServiceNotAvailable=1 et kInvalidStateDependentFirewall=2 [AP_SWS_Fw_83001]. Tous deux sont spécifiés comme erreurs possibles pour SwitchFirewallState [AP_SWS_Fw_82008]. Interprétation des noms, étant donné que les exigences ne mentionnent pas de conditions de déclenchement :

  • kServiceNotAvailable indiquerait que le FC Firewall basé sur un démon ne peut pas fournir le service. Question (ouverte)
  • kInvalidStateDependentFirewall indiquerait qu'aucune StateDependentFirewall valide n'est disponible pour l'état demandé. Question (ouverte)

Le domaine d'erreur suit le modèle habituel de ara::core :

Les développeurs travaillant avec des exceptions peuvent convertir un code d'erreur en une FwException via ThrowAsException. Cette fonction est noexcept(false) et classée comme « not exception safe » [AP_SWS_Fw_83012] [AP_SWS_Fw_83005]. En revanche, les paquets bloqués ne constituent pas une erreur d'API. Ils apparaissent sous la forme de Security Events auprès de l'IdsM (EXP_PlatformDesign p. 92).

fehler start aufruf SwitchFirewallState(firewallState) start->aufruf fut Évaluer le résultat de ara::core::Future<void> aufruf->fut ok Fehler? fut->ok erfolg Zustandswechsel abgeschlossen ok->erfolg Non code FwErrc ok->code Oui ende erfolg->ende sna kServiceNotAvailable (1) Interprétation : FC Firewall non disponible code->sna inv kInvalidStateDependentFirewall (2) Interprétation : aucune StateDependentFirewall valide pour l'état cible code->inv diag Diagnose: GetFwErrorDomain(), Name(), Message(errorCode) sna->diag inv->diag thr optional: ThrowAsException() wirft FwException diag->thr diag->ende Sans exception thr->ende

Diagramme d'activités : le résultat du changement d'état est évalué via le Future. Les erreurs transitent par FwErrorDomain et peuvent éventuellement être levées sous la forme d'une FwException. Sources : [AP_SWS_Fw_82008], [AP_SWS_Fw_83001], [AP_SWS_Fw_83011], [AP_SWS_Fw_83012]

Preuves détaillées supplémentaires

Les passages suivants étayent les déclarations de ce guide ; les exigences sont normatives pour R25-11 ([AP_SWS_Fw_82008]).

Guide généré par IA sur la base des exigences et passages de documents contenus dans le payload pour R25-11. Les déclarations issues d'autres versions sont signalées ; les passages marqués comme interprétation ne sont pas étayés de manière normative.

Spezifikation: AUTOSAR_AP_SWS_Firewall.pdf (R25-11) · 23 API-Records

3 Klassen2 Namespaces1 Enumeration2 freie Funktionen

ara::fw

Returns a reference to the FwErrorDomain object.

constexpr const ara::core::ErrorDomain &GetFwErrorDomain() noexcept;
MakeErrorCode fonction

Creates an ErrorCode instance.

constexpr ara::core::ErrorCode MakeErrorCode(ara::fw::FwErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;
FwErrc énumération

Defines the error codes for FwErrorDomain.

enum class FwErrc : ara::core::ErrorDomain::CodeType {...};

ara::fw::states

{<fwssi-sn>} énumération

Defines the firewall states for FirewallStateSwitchInterface. The actual type is generated for each modeled interface.

enum class {<fwssi-sn>} : std::uint32_t {...};

Generated enumerator declaration for each modeled firewall state.

{<symbol-fw-state>} = {<fw-state-value>};

Namespaces

Classes