Langage en Cybersécurité

Le problème exposé dans ce sujet a été résolu.

Bonjour,

Je suis en licence d’informatique et j’aimerai me tourner vers la cybersécurité mais plus particulièrement dans les systèmes embarqués.

A la fac, on apprend le C (un langage que j’adore), de l’assembleur (sur de l’ARM (que j’aime aussi mais moins que le C)) et cette année on va voir du java pour l’orienté object (et personnellement je vois du C++ dans mon coin). Et en faite j’aimerai me concentrer dans mon coin sur un langage qui serai utilisé dans la cybersécurité dans les systèmes embarqués mais j’avoue que j’entends tout et n’importe quoi donc je vous demande votre avis. Quand je parle de système embarqués, c’est par exemple les systèmes d’un drone, l’ordinateur de bord d’un avion (FMS).

Merci pour vos réponse

PS: on m’a aussi dis que le rush serrai intéressant dans la cyber

Pour l’instant, de ce que j’ai pu voir. La sécurité dans les systèmes embarqués est essentiellement bâtit sur le respect de normes.

Et donc, ça reste principalement du C et C++. Il n’y a pas de langage particulier lié à la sécurité.

Rust est étudié par beaucoup pour justement les protections qu’il apporte. Mais la sécurité restera, je pense, une histoire de respect de norme de sécurité.

J’ai seulement travaillé dans l’automobile où les normes AUTOSAR font lois. Mais nombreux de mes collègues m’ont affirmé que c’était très similaire dans l’aéronautique et l’aérospatial.

Par exemple, j’ai appris que les moteurs des avions ont un système informatique redondés. C’est à dire que pour piloter les réacteurs, ils ont deux systèmes qui ne doivent rien partager (aucune base de code). Généralement dans deux langages différents. Je ne sais pas à quelle norme de sécurité se rapporte cette pratique.

+2 -0

Pour les systèmes embarqués de type avionique, il y a ADA qui est utilisé.

Sinon, comme le dit ache, c’est avant tout une question de normes, de bonnes pratiques, etc.

+2 -0

Par exemple, j’ai appris que les moteurs des avions ont un système informatique redondés. C’est à dire que pour piloter les réacteurs, ils ont deux systèmes qui ne doivent rien partager (aucune base de code). Généralement dans deux langages différents. Je ne sais pas à quelle norme de sécurité se rapporte cette pratique.

ache

Pour avoir comme passion l’aéronautique, les systèmes sont redondant voir triplé, mais c’est pire que ca c’est que le cahier des charges, le langage est différent pour chaque système redondant (si mes informations sont juste(je fait confiance un peu trop facilement (selon un reportage)). Je fais apprendre les bonnes techniques est les normes, c’est pas des plus passionnants mais pourquoi pas; et éventuellement je regarderai le rush.

Mais j’attends aussi d’autre avis.

Salut,

La cybersécurité, c’est assez orthogonal au choix du langage, bien que certains langages puissent mitiger certains problèmes. La plupart des considérations n’ont pas tant que ça à voir avec le langage, ni même avec la programmation.

Il y a une grosse diversité dans l’embarqué. On y retrouve beaucoup de C et C++, de l’Ada dans certains domaines aussi. Si on est sur des systèmes embarqués assez gros, on peut avoir littéralement tout, comme du Python ou du Javascript (Crew Dragonn a l’interface principale pour l’équipage écrite en partie avec ce langage). Souvent, le code qui est compilé n’est pas écrit par des humains, mais généré à partir d’autres représentations (génération de code par Simulink par exemple). D’autres fois, on utilise des méthodes formelles, plus ou moins intégrées et vastes (Polyspace, la méthode B, ce qui s’appelait avant Esterel, etc). Souvent, on trouve aussi des normes qui formalisent un certain nombre de bonnes pratiques conduisant à de meilleurs logiciels du point de vue de la cybersécurité.

Au delà de ça, énormément de choses ne sont pas spécifiques et n’ont pas non plus grand chose à voir avec la programmation :

  • protection de la chaîne d’outils contre la corruption (compilateurs sur des machines non reliés à Internet par exemple) ;
  • protection des produits contre les modifications non-autorisées (clés de chiffrage matériel, bootloader gérant les signatures de logiciel applicatif, etc.) ;
  • tout ce qui a trait au réseau si le produit est connecté à Internet ;
  • tout ce qui a trait au réseau de bord si on communique avec d’autres choses (par exemple dans les voitures, on tend lentement vers du chiffrement de certains échanges dans le véhicule).

Sur des domaines encore émergents, on peut aussi penser à la mitigation des attaques sur les systèmes de perception (par exemple conduire une voiture autonome à l’accident en trompant son ordinateur de bord).

Bref, j’aurais tendance à conseiller d’avoir des bases solides en programmation, peu importe le langage, mais aussi d’avoir des connaissances en architecture bas niveau, parce que c’est là que se passent réellement nombres d’attaques. Et évidemment en pas oublier tout le reste.


Note : La redondance dans les systèmes avioniques (ou d’autres industries) n’a pas vraiment à voir avec la cybersécurité, plutôt avec la sureté de fonctionnement (en gros, la fiabilité). On cherche notamment à limiter les points de défaillance unique, et ça conduit à choisir d’avoir plusieurs systèmes, de différentes technologies, qui font tourner différents algorithmes, réalisés par différentes équipes, localisés à diférents endroits dans l’installation, etc.

Note : La redondance dans les systèmes avioniques (ou d’autres industries) n’a pas vraiment à voir avec la cybersécurité, plutôt avec la sureté de fonctionnement (en gros, la fiabilité). On cherche notamment à limiter les points de défaillance unique, et ça conduit à choisir d’avoir plusieurs systèmes, de différentes technologies, qui font tourner différents algorithmes, réalisés par différentes équipes, localisés à diférents endroits dans l’installation, etc.

Notons que dans ce contexte le choix du langage n’est pas vraiment libre à cause des contraintes. Déjà ce sont souvent des systèmes avec peu de puissance de calcul (car il faut utiliser du matériel très simple, type microcontrôleur) ce qui laisse peu de langages de fait (assembleur, C, C++ et Ada). Puis pour les systèmes les plus critiques, les normes sont telles que de toute façon tu n’as pas les garanties suffisantes avec les langages de haut niveau comme Python, Java ou JavaScript donc ils sont éliminés d’office.

Ce qui compte c’est en effet le choix des fournisseurs, après comment ils gèrent leur tambouilles c’est leur responsabilité tant qu’ils respectent les normes notamment de codage et de documentation.

Au delà de ça, énormément de choses ne sont pas spécifiques et n’ont pas non plus grand chose à voir avec la programmation :

Tu as oublié peut être le point principal : la gestion de la mémoire et des instructions. Beaucoup de failles de sécurité reposent dessus, tu exploites la mémoire d’un processus pour le faire exécuter une fonction arbitraire qui peut t’amener à faire ce que tu veux ensuite.

Et globalement c’est indépendant du langage, tu travailles au niveau du binaire et donc du code compilé. Lire le code source peut aider mais n’est pas toujours nécessaire. Avoir des bases en C / C++ / Assembleur pour connaître la gestion de la mémoire est une base mais techniquement tu n’as pas besoin d’être un cador non plus de ces langages car ça reste indépendant.

+1 -0

Note : La redondance dans les systèmes avioniques (ou d’autres industries) n’a pas vraiment à voir avec la cybersécurité, plutôt avec la sureté de fonctionnement (en gros, la fiabilité). On cherche notamment à limiter les points de défaillance unique, et ça conduit à choisir d’avoir plusieurs systèmes, de différentes technologies, qui font tourner différents algorithmes, réalisés par différentes équipes, localisés à diférents endroits dans l’installation, etc.

Notons que dans ce contexte le choix du langage n’est pas vraiment libre à cause des contraintes. Déjà ce sont souvent des systèmes avec peu de puissance de calcul (car il faut utiliser du matériel très simple, type microcontrôleur) ce qui laisse peu de langages de fait (assembleur, C, C++ et Ada). Puis pour les systèmes les plus critiques, les normes sont telles que de toute façon tu n’as pas les garanties suffisantes avec les langages de haut niveau comme Python, Java ou JavaScript donc ils sont éliminés d’office.

Renault

J’ai fait une erreur en disant ca, je m’en excuse profondément, c’est vrai que c’a rajoute de la fiabilité au systeme, mais peut être pas à la sécurité. En fait, une question hors sujet c’est: est ce que ca augmente pas la surface d’attaque.

Donc si pour le moment je résume il y a les norme est les fuites mémoire (je connais valgind, un bonne ami :p)

Je ne suis pas spécialiste en cybersécurité mais ingénieur électronique et j’ai bossé pas mal de temps dans l’aéronautique.

Pour moi je te conseillerai de te focaliser sur le hardware puisque c’est de là que peuvent provenir les failles.
Autre point de focalisation : l’Ethernet au niveau couche 1 et 2 du modèle OSI car l’AFDX qui relie les calculateurs des dernières générations d’avions n’est qu’une modification de l’Ethernet à partir de la couche MAC (2).

Les produits sur lesquels je travaillais et qui étaient récent étaient à base de processeur NXP PowerPC. NXP ne développe plus de processeurs à base d’architecture PowerPC.
Donc dans ton cas je pense qu’il vaut mieux se focaliser sur de l’ARM comme architecture principale, néanmoins connaitre les différences avec PowerPC ne ferait pas de mal.
Les processeurs NXP utilisés en aéro étaient ceux de la famille QorIQ avec des coeurs e500 pour les plus récents. Dans la génération précédente j’ai vu du PowerQUICC II à base de coeur G2.

En terme de livre sur l’architecture je te recommanderais ce livre :

  • Computer organization and design : the hardware/software interface, (ARM Edition, 2017), David A. Patterson, John L. Hennessy

Remonter à de vieux processeurs comme les Motorola 68k ou les 80C286 peux aussi te permettre d’augmenter ta culture informatique en visant ce qui se faisait dans les calculateurs des A320.

Par exemple, j’ai appris que les moteurs des avions ont un système informatique redondés. C’est à dire que pour piloter les réacteurs, ils ont deux systèmes qui ne doivent rien partager (aucune base de code). Généralement dans deux langages différents. Je ne sais pas à quelle norme de sécurité se rapporte cette pratique.

ache

Pour avoir comme passion l’aéronautique, les systèmes sont redondant voir triplé, mais c’est pire que ca c’est que le cahier des charges, le langage est différent pour chaque système redondant (si mes informations sont juste(je fait confiance un peu trop facilement (selon un reportage)). Je fais apprendre les bonnes techniques est les normes, c’est pas des plus passionnants mais pourquoi pas; et éventuellement je regarderai le rush.

Mais j’attends aussi d’autre avis.

K-Lipschitzienne

Les langages différents, en général C et ADA concernent un nombre limité de calculateurs, les plus critiques.

Pour en apprendre plus sur les différents systèmes d’un avion je ne peux que recommander ce livre :

  • Aircraft Systems: Mechanical, Electrical, and Avionics Subsystems Integration 3rd Edition, Ian Moir, Allan Seabridge

La dernière édition date de 2017 mais c’est toujours d’actualité et très détaillé.


Outre la sécurité, ce qui compte dans les systèmes critiques, c’est le déterminisme. (D’où du temps réel dur pour les OS)

+4 -0

Salut,

Je te recommande cette référence : https://beginners.re/main.html

Si tu souhaites t’orienter dans la sécurité informatique (j’ai encore du mal à passer à l’effet de mode qui consiste à dire « cyber ») et dans l’informatique embarquée (je comprends que dans ton cas tu aimes surtout faire de l’informatique bas niveau), t’initier à la rétroingénierie pourrait t’apporter beaucoup.

D’abord parce que tu vas mettre en application des concepts bas niveau, mais ensuite parce que ça t’incitera à comprendre comment une architecture / un programme a été conçu. C’est un ensemble de technique assez utilisé pour faire de la recherche de vulnérabilités (de bugs exploitables, en somme) comme pour comprendre le comportement d’un logiciel malveillant (malware).

Je suis étonné que ce champ de compétence n’ait pas été mentionné.


Pour ce qui concerne le langage, pour moi ce n’est pas une question adaptée, même si la composante « système embarqué » permet d’y répondre.

Même si le C n’a plus autant le vent en poupe qu’il avait, je pense qu’il est incontournable pour plusieurs raisons :

  • il reste utilisé dans des projets majeurs comme le noyau Linux, qui fait tourner beaucoup de systèmes sur la planète (oui…) ;
  • il te permet d’office de te familiariser avec les concepts bas niveau, liés à la machine.

Conseil plus large : ne te ferme à aucun langage et ne te pose pas plus de question sur quel langage apprendre. Quand tu monteras en compétences et acquerras de l’expérience, tu seras capable d’apprendre par toi-même et de passer à un langage à un autre sans trop de difficulté.

Je pose ici cet article qui recense diverse fuites de données par des moyens très étonnants (sous abonnement pendant 30 jours, ou 0,99 € pour le lire – et tout le reste du site – pendant 48 h). J’aime bien cet article, parce qu’il montre très bien l’étendue de ce que peut être « la cybersécurité » au sens large : c’est quelque chose de beaucoup, beaucoup plus vaste que les connaissances dans un langage ou d’un outil en particulier.

@Ge0 me contredira peut-être, mais j’ai l’impression que c’est beaucoup une question d’état d’esprit et de façon de penser, que l’on cherche à se défendre ou à percer une défense.

Je pose ici cet article qui recense diverse fuites de données par des moyens très étonnants (sous abonnement pendant 30 jours, ou 0,99 € pour le lire – et tout le reste du site – pendant 48 h). J’aime bien cet article, parce qu’il montre très bien l’étendue de ce que peut être « la cybersécurité » au sens large : c’est quelque chose de beaucoup, beaucoup plus vaste que les connaissances dans un langage ou d’un outil en particulier.

@Ge0 me contredira peut-être, mais j’ai l’impression que c’est beaucoup une question d’état d’esprit et de façon de penser, que l’on cherche à se défendre ou à percer une défense.

SpaceFox

C’est flatteur. :honte:

Ça fait un moment que je ne m’intéresse plus au domaine mais pour le peu que j’ai exploré je pense que tu es dans le bon. Je me rappelle même des formations que j’ai suivies à l’ANSSI où un intervenant expliquait que la sécurité informatique reposait sur trois piliers :

  • sécurité en profondeur : diversifier les équipements et les rendre redondants pour qu’un maillon faible ne soit pas dupliqué ;
  • moindre privilège : limiter les droits des personnes pour réduire ce qu’on appelle communément une « surface d’attaque » (un développeur ne devrait pas avoir accès aux données comptables d’une entreprise) ;
  • la formation : sensibiliser les personnes aux risques. J’ai déjà vu des mots de passe wifi écrits sur des tableaux accessibles depuis l’extérieur. De mon point de vue ça me paraît scandaleux là où d’autres s’en fiche.

C’est notamment par le biais du 3e point que je me dis que c’est une question d’état d’esprit ou de façon de penser.

Bonjour,

Travaillant dans l’avionique, je me permets de confirmer/infirmer quelques points (mais bien sûr, c’est ma vision, ce n’est pas "paroles d’évangile" !)

Par exemple, j’ai appris que les moteurs des avions ont un système informatique redondés. C’est à dire que pour piloter les réacteurs, ils ont deux systèmes qui ne doivent rien partager (aucune base de code). Généralement dans deux langages différents. Je ne sais pas à quelle norme de sécurité se rapporte cette pratique.

ache

Pour avoir comme passion l’aéronautique, les systèmes sont redondant voir triplé, mais c’est pire que ca c’est que le cahier des charges, le langage est différent pour chaque système redondant (si mes informations sont juste(je fait confiance un peu trop facilement (selon un reportage)). Je fais apprendre les bonnes techniques est les normes, c’est pas des plus passionnants mais pourquoi pas; et éventuellement je regarderai le rush.

K-Lipschitzienne

Les FADEC (Full Authority Digital Engine Control) sont redondants uniquement. Dans un avion commercial (chez Airbus), seul les commandes de vol électriques sont triplexes (les Prim/sec). En effet, le choix de redondance (simplex/redondant/tripex) correspond au besoin de fiabilité. L’annexe 8 à la convention de Chicago de l’OACI (ce qui est la source la plus haute de la réglementation aéronautique civile) indique qu’un avion ne doit pas se cracher suite à une unique panne. La redondance est une contrainte "Safety", pas "cybersécurité". Pour les normes à appliquer dans le développement de l’avionique, il y a pléthore ! (et elles sont payantes! Pas disponible sur le net). Mais les normes ne donne que les résultats attendus (exemple : taux de panne de 10^-9 par heure de vol), elles ne donnent pas la façon d’y arrivé

Pour moi je te conseillerai de te focaliser sur le hardware puisque c’est de là que peuvent provenir les failles.
Autre point de focalisation : l’Ethernet au niveau couche 1 et 2 du modèle OSI car l’AFDX qui relie les calculateurs des dernières générations d’avions n’est qu’une modification de l’Ethernet à partir de la couche MAC (2).

zeqL

Je ne suis pas d’accord avec Zeql, sur ces points : Avant d’aller voir les subtilités des attaques par le HW (et c’est vrai qu’il y en a) pour un étudiant en logiciel, je te conseille d’apprendre à coder sans laisser de vulnérabilité. (Par exemple en C, utiliser "strncpy" au lieu de "strcpy" pour éviter les débordements de buffer.) Oui, si tu veux devenir spécialiste en cybersécurité dans l’embarqué, avoir des compétences en HW sera nécessaire, mais ne commence pas par là ! De plus, je pense que Zeql fait référence à l’IMA (Integrated Modular Avionics), qui est dans un "domaine protégé". l’AFDX™ c’est pas comme l’internet, ce n’est pas pareil !

Je pose ici cet article qui recense diverse fuites de données par des moyens très étonnants (sous abonnement pendant 30 jours, ou 0,99 € pour le lire – et tout le reste du site – pendant 48 h). J’aime bien cet article, parce qu’il montre très bien l’étendue de ce que peut être « la cybersécurité » au sens large : c’est quelque chose de beaucoup, beaucoup plus vaste que les connaissances dans un langage ou d’un outil en particulier.

Je ne suis pas doué, mais je n’ai pas réussi à lire ! Mais si l’on fait de développement sur des boitiers avionique, l’architecture, les langages informatiques et les règles/le savoir-faire cybersécurité, c’est important. Oui, la formation des personnes est importante (que ce soit dans une industrie, dans une administration (un hôpital !), ou même un commerce !). L’aspect "image de marque" en cybersécurité, c’est important ! (Qui, aujourd’hui, donnerait son numéro de carte bleu sur un site en HTTP, sans le S à la fin ?) Mais quand on parle avionique, la crainte, c’est le crash : Un A380 qui se planterait, c’est 500 morts ! Les 2 B737 Max qui se sont plantés, ça a fait 320 morts.

Cordialement

Pour moi je te conseillerai de te focaliser sur le hardware puisque c’est de là que peuvent provenir les failles.
Autre point de focalisation : l’Ethernet au niveau couche 1 et 2 du modèle OSI car l’AFDX qui relie les calculateurs des dernières générations d’avions n’est qu’une modification de l’Ethernet à partir de la couche MAC (2).

zeqL

Je ne suis pas d’accord avec Zeql, sur ces points : Avant d’aller voir les subtilités des attaques par le HW (et c’est vrai qu’il y en a) pour un étudiant en logiciel, je te conseille d’apprendre à coder sans laisser de vulnérabilité. (Par exemple en C, utiliser "strncpy" au lieu de "strcpy" pour éviter les débordements de buffer.) Oui, si tu veux devenir spécialiste en cybersécurité dans l’embarqué, avoir des compétences en HW sera nécessaire, mais ne commence pas par là ! De plus, je pense que Zeql fait référence à l’IMA (Integrated Modular Avionics), qui est dans un "domaine protégé". l’AFDX™ c’est pas comme l’internet, ce n’est pas pareil !

Alors je ne parle pas d’étudier le HW au sens composants électronique mais au niveau de l’architecture des processeurs et leur fonctionnement.
Sans même parler de sécurité, connaître dans le détails le fonctionnement des éléments composant un processeur me semble un minimum nécessaire quand on programme en C ou en assembleur.
D’où le livre que je recommande.

Concernant l’AFDX je parle d’Ethernet (une norme) et non pas "internet". Et non ce n’est pas inutile puisque l’A380 et l’A350 ont des calculateurs fonctionnant avec ce protocole qui remplace l’ARINC 429.
Je ne peux pas concevoir qu’on n’étudie pas la norme de communication des calculateurs.

Et dans les deux cas je ne parle pas de devenir expert mais simplement de lire de la documentation détaillée et pas juste 2 ou 3 pages wikipédia (même si ca peut être une bonne introduction).

Les messages AFDX sont reçu sur le contrôle ur MAC du CPU, l’accès va se faire via des DMA avec la DDR. Qu’est-ce que le contrôleur MAC ? Qu’est-ce qu’un DMA ? Comment se programme un DMA en soft bas niveau / assembleur ?

Je pose ici cet article qui recense diverse fuites de données par des moyens très étonnants (sous abonnement pendant 30 jours, ou 0,99 € pour le lire – et tout le reste du site – pendant 48 h). J’aime bien cet article, parce qu’il montre très bien l’étendue de ce que peut être « la cybersécurité » au sens large : c’est quelque chose de beaucoup, beaucoup plus vaste que les connaissances dans un langage ou d’un outil en particulier.

Je ne suis pas doué, mais je n’ai pas réussi à lire ! Mais si l’on fait de développement sur des boitiers avionique, l’architecture, les langages informatiques et les règles/le savoir-faire cybersécurité, c’est important. Oui, la formation des personnes est importante (que ce soit dans une industrie, dans une administration (un hôpital !), ou même un commerce !). L’aspect "image de marque" en cybersécurité, c’est important ! (Qui, aujourd’hui, donnerait son numéro de carte bleu sur un site en HTTP, sans le S à la fin ?) Mais quand on parle avionique, la crainte, c’est le crash : Un A380 qui se planterait, c’est 500 morts ! Les 2 B737 Max qui se sont plantés, ça a fait 320 morts.

Cordialement

Dedeun

Non cette crainte du crash est une crainte globale de ne pas être responsable de la mort de personnes.
Mais on reste sur un domaine industriel de pointe avec des enjeux économiques énormes.
Déployer des techniques coûteuse de reverse engineering à base d’analyse des signaux électromagnétiques d’un FPGA pour retrouver son code source c’est quelque chose d’envisageable (surtout pour de l’aéro militaire).
Je ne m’étendrai pas sur ce sujet sensible mais on peut trouver des thèses et articles scientifiques sur ce types d’attaques.

Merci Zeql pour ta réponse, je constate que nos avis diverges

Alors je ne parle pas d’étudier le HW au sens composants électronique mais au niveau de l’architecture des processeurs et leur fonctionnement.
Sans même parler de sécurité, connaître dans le détails le fonctionnement des éléments composant un processeur me semble un minimum nécessaire quand on programme en C ou en assembleur.
D’où le livre que je recommande.

zeqL

En effet, si notre PO veut se lancer dans le logiciel embarqué, il a intérêt d’avoir quelques idées sur le hardware, je suis d’accord avec toi, … quoique …
De plus en plus, sur les calculateurs de communications (non critique) de l’aéronef, l’OS est du Linux. Sur l’IMA (calculateurs critiques), l’OS c’est de l’ARINC 653. Dans ces 2 cas, les softs se découpent en deux : OS+Driver (gros besoin de connaissance HW) et applications (qui ne demande pas forcément de compétence HW).
Inversement, en ce qui concerne la cybersécurité, l’une des attaques possibles est l’utilisation des bugs HW, Aussi, l’analyse des data sheets HW et des listes de BUG publiées par les fondeurs, font parties des activités de la cybersécurité.

Les messages AFDX sont reçu sur le contrôle MAC du CPU, l’accès va se faire via des DMA avec la DDR. Qu’est-ce que le contrôleur MAC ? Qu’est-ce qu’un DMA ? Comment se programme un DMA en soft bas niveau / assembleur ?

zeqL>

Je suis d’accord avec ta description : L’AFDX™ (ou encore l’Arinc 664, part 7) est un protocole Ethernet (et pas internet), c’est de l’UDP, multicast, avec numéro de socket fixe, et gestion de redondance. Oui, si l’on doit écrire le driver de réception/transmission, tout ce que tu dis, est vrai ! Mais, est-ce que tu réponds au PO ? Ca demande initiale est :

Je suis en licence d’informatique et j’aimerai me tourner vers la cybersécurité mais plus particulièrement dans les systèmes embarqués.

K-Lipschitzienne

Je ne suis pas sûr que le PO se destine à la réalisation de BSP.
De plus, comme je l’ai expliqué, l’AFDX™ se trouve dans un "domaine" protégé (connue sous le nom ACD: Aircraft Control Domain), derrière les barrières de cybersécurité. L’AFDX™ n’est donc pas soumis aux attaques classiques d’internet. Il y a deux barrières entre les communications extérieures (le WIFI de l’Aéroport, le 4G , …) et l’avionique critique de l’aéronef.

Non cette crainte du crash est une crainte globale de ne pas être responsable de la mort de personnes.

zeqL

Je ne comprends pas ta phrase : La crainte, c’est d’être responsable des morts ! Oui, c’est global, c’est le but de la réglementation aviation civile (CS-25, ARP4754-A, ED80/DO256, ED12-C/DO178-C, et maintenant pour la Cybersécurité : ED202-A/DO326-A).
Je ne comprends pas non plus la fin de ton message.

Bien cordialement.

PS : AFDX™ est une marque déposée Airbus.

Les messages AFDX sont reçu sur le contrôle MAC du CPU, l’accès va se faire via des DMA avec la DDR. Qu’est-ce que le contrôleur MAC ? Qu’est-ce qu’un DMA ? Comment se programme un DMA en soft bas niveau / assembleur ?

zeqL>

Je suis d’accord avec ta description : L’AFDX™ (ou encore l’Arinc 664, part 7) est un protocole Ethernet (et pas internet), c’est de l’UDP, multicast, avec numéro de socket fixe, et gestion de redondance. Oui, si l’on doit écrire le driver de réception/transmission, tout ce que tu dis, est vrai ! Mais, est-ce que tu réponds au PO ? Ca demande initiale est :

Je suis en licence d’informatique et j’aimerai me tourner vers la cybersécurité mais plus particulièrement dans les systèmes embarqués.

K-Lipschitzienne

Je ne suis pas sûr que le PO se destine à la réalisation de BSP.
De plus, comme je l’ai expliqué, l’AFDX™ se trouve dans un "domaine" protégé (connue sous le nom ACD: Aircraft Control Domain), derrière les barrières de cybersécurité. L’AFDX™ n’est donc pas soumis aux attaques classiques d’internet. Il y a deux barrières entre les communications extérieures (le WIFI de l’Aéroport, le 4G , …) et l’avionique critique de l’aéronef.

La demande du PO étant assez générique, large, je ne met pas de restrictions aux sujets sur lesquels il pourrait travailler.
Faire de la cybersécurité sur de l’embarqué en ne connaissant pas :

  • le hardware sous-jacent
  • le fonctionnement des drivers, BSP
  • les protocoles de communications utilisés pour interagir

Je ne vois pas trop l’intérêt de faire de la cybersécurité sur des systèmes embarqués dans ce cas.

Concernant l’AFDX, encore une fois ce n’est pas de "l’internet" mais de l’Ethernet. Internet est un réseau de réseau.
Rien ne t’empêche, en théorie, de faire une attaque DDoS sur un réseau AFDX. En pratique il y a des sécurités mais on parle de cybersécurité… Si tu ne comprends pas comment fonctionne l’AFDX et/ou un switch comment peux-tu vérifier que ton application ne présente pas un risque ? En ayant "confiance" dans l’OS et le driver ?

J’ai travaillé sur un calculateurs qui avait des corruptions de données, j’ai fait toute l’analyse des différents bus de données (au niveau HW avec analyseur logique), on a revu le code des CPLD, le code du software, etc. Au final c’était un problème d’interruption du processeur qui arrivait au mauvais moment (dans des conditions spécifiques mais déterministes).

Encore une fois, je ne dis pas au PO de devenir expert en HW, mais de se cultiver sur ces aspects.

Non cette crainte du crash est une crainte globale de ne pas être responsable de la mort de personnes.

zeqL

Je ne comprends pas ta phrase : La crainte, c’est d’être responsable des morts ! Oui, c’est global, c’est le but de la réglementation aviation civile (CS-25, ARP4754-A, ED80/DO256, ED12-C/DO178-C, et maintenant pour la Cybersécurité : ED202-A/DO326-A).
Je ne comprends pas non plus la fin de ton message.

Bien cordialement.

PS : AFDX™ est une marque déposée Airbus.

Dedeun

Tout le monde veut éviter les morts, c’est évident. L’aéronautique reste un domaine industriel où il y a une concurrence (USA, Europe, Chine) importante du fait des enjeux de rayonnement industriel, technologique et de prestige.
Donc la Chine, par exemple, pour rattraper son retard peut investir de fortes sommes d’argents pour faire du reverse engineering et rattraper son retard.
Si dépenser 5 millions de dollars pour faire du reverse engineering très complexe pour récupérer le code d’un logiciel avancé qui te fera gagner plusieurs années de développement et économiser des dizaines de millions de dollars, ça reste un investissement intéressant…

PS : Le TM date de 2017, je travaillais avec de l’AFDX bien avant…

Dans tous les cas, même en dehors du critique, la mouvance poussée par l’ANSSI, c’est d’avoir un support fort des méthodes formelles. En particulier, les exigences augmentent, et visent notamment à toujours prouver des choses sur le vrai système et pas sur un modèle de celui-ci (ou alors faire ensuite du raffinement comme en Atelier B).

Donc peut être que c’est ça qu’il faut faire au final : te renseigner sur les méthodes formelles (et apprendre à détester C :p ).

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte