A place to cache linked articles (think custom and personal wayback machine)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 15KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. <!doctype html><!-- This is a valid HTML5 document. -->
  2. <!-- Screen readers, SEO, extensions and so on. -->
  3. <html lang="fr">
  4. <!-- Has to be within the first 1024 bytes, hence before the `title` element
  5. See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
  6. <meta charset="utf-8">
  7. <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
  8. <!-- The viewport meta is quite crowded and we are responsible for that.
  9. See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
  10. <meta name="viewport" content="width=device-width,initial-scale=1">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>Un hacker pirate le vol d'un avion depuis un siège passager (archive) — David Larlet</title>
  13. <meta name="description" content="Publication mise en cache pour en conserver une trace.">
  14. <!-- That good ol' feed, subscribe :). -->
  15. <link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
  16. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  17. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
  18. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
  19. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
  20. <link rel="manifest" href="/static/david/icons2/site.webmanifest">
  21. <link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
  22. <link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
  23. <meta name="msapplication-TileColor" content="#f7f7f7">
  24. <meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
  25. <meta name="theme-color" content="#f7f7f7" media="(prefers-color-scheme: light)">
  26. <meta name="theme-color" content="#272727" media="(prefers-color-scheme: dark)">
  27. <!-- Documented, feel free to shoot an email. -->
  28. <link rel="stylesheet" href="/static/david/css/style_2021-01-20.css">
  29. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  30. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  31. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  32. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  33. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  34. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  35. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  36. <script>
  37. function toggleTheme(themeName) {
  38. document.documentElement.classList.toggle(
  39. 'forced-dark',
  40. themeName === 'dark'
  41. )
  42. document.documentElement.classList.toggle(
  43. 'forced-light',
  44. themeName === 'light'
  45. )
  46. }
  47. const selectedTheme = localStorage.getItem('theme')
  48. if (selectedTheme !== 'undefined') {
  49. toggleTheme(selectedTheme)
  50. }
  51. </script>
  52. <meta name="robots" content="noindex, nofollow">
  53. <meta content="origin-when-cross-origin" name="referrer">
  54. <!-- Canonical URL for SEO purposes -->
  55. <link rel="canonical" href="https://www.silicon.fr/hacker-modifie-vol-dun-avion-systeme-de-divertissement-116431.html">
  56. <body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all">
  57. <article>
  58. <header>
  59. <h1>Un hacker pirate le vol d'un avion depuis un siège passager</h1>
  60. </header>
  61. <nav>
  62. <p class="center">
  63. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  64. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
  65. </svg> Accueil</a> •
  66. <a href="https://www.silicon.fr/hacker-modifie-vol-dun-avion-systeme-de-divertissement-116431.html" title="Lien vers le contenu original">Source originale</a>
  67. </p>
  68. </nav>
  69. <hr>
  70. <p>Une enquête du FBI montre que l’expert en sécurité Chris Roberts aurait réussi, en vol, à donner des ordres aux commandes de l’avion en piratant le système de divertissement de son siège. Le spécialiste se défend tout en s’attirant les critiques de ses pairs.</p>
  71. <p>L’affaire du <a href="https://www.silicon.fr/expert-securite-interdit-de-vol-suite-a-tweet-equivoque-114781.html" target="_blank" rel="noopener noreferrer">tweet de Chris Roberts sur United Airlines</a> prend une tournure plus polémique et plus inquiétante. Pour rappel, l’expert en sécurité avait envoyé lors d’un vol un tweet en expliquant qu’il allait provoquer la chute des masques à oxygène, via le piratage du système de divertissement de l’appareil. Une blague selon Chris Roberts. Cette dernière n’a évidemment pas été du goût des agents fédéraux qui l’attendaient à son arrivée et lui ont soustrait son ordinateur et ses différents équipements (disque durs, clés USB, etc).</p>
  72. <p>Le feuilleton aurait pu s’arrêter là, mais <a href="https://www.documentcloud.org/documents/2082796-gov-uscourts-nynd-102002-1-0.html" rel="nofollow noopener noreferrer" target="_blank">un document</a> officiel sur l’enquête a fuité et a été publié par la presse canadienne. Il montre que le FBI et l’expert se sont déjà entretenus avant l’affaire sur les questions de sécurité aérienne. En effet, Chris Roberts a indiqué avoir mené <strong>plusieurs tests</strong> pour pénétrer le système d’information des avions en se connectant depuis les équipements de divertissements disponibles sur les sièges passagers (de marque Thales et Panasonic). Selon le document, ces essais, entre 10 et 15 sur une période s’étalant de 2011 à 2014, ont été réalisés sur différents types d’avions (Airbus A-320, Boeing 737-800, 900 et 757-200). Au final, ces tests ont permis de découvrir des failles et de les corriger, souligne l’enquêteur du FBI.</p>
  73. <h2><strong>Accès au gestionnaire des réacteurs</strong></h2>
  74. <p>Pour accéder au réseau, Chris Roberts a démonté le capitonnage d’un siège pour se connecter à <strong>la Seat Electronic Box (SEB), </strong>le dispositif qui relie les écrans des passagers au système de divertissement et qui comprend une connectique Ethernet. Dans l’affaire du tweet, l’enquêteur a constaté que le siège du spécialiste avait été « endommagé » pour accéder au SEB et brancher un câble Ethernet. Pour le piratage du système de divertissement, Roberts s’est appuyé sur <strong>Kali, une distribution Linux dédiée aux tests de pénétration</strong>. Les mots de passe et les identifiants n’ont pas posé de problème. Par ailleurs, une machine virtuelle émulant le réseau de l’avion a été retrouvée sur son ordinateur portable.</p>
  75. <p>A partir de là, il a réussi à avoir accès au système central de l’appareil et notamment au gestionnaire des réacteurs. A travers <strong>la commande CLB (Climb)</strong>, il a pu, pendant le vol, <strong>modifier la trajectoire de l’avion pour le faire monter ou se déplacer latéralement</strong>. En complément de cet accès, Chris Robert a implanté un logiciel, Vortex Software, pour surveiller le trafic issu du cockpit. C’est bien là que réside la principale surprise de ce document officiel : malgré les assurances données par les constructeurs et compagnies aériennes, il existerait donc une méthode permettant d’accéder aux systèmes les plus critiques de l’avion depuis la partie divertissement, placée par définition entre les mains des passagers. Et ce, sur plusieurs catégories d’appareils de marque Airbus ou Boeing.</p>
  76. <h2><strong>Haro sur la méthode et fuite des investisseurs</strong></h2>
  77. <p>Les méthodes de l’expert en sécurité ont été peu appréciées par ses pairs. nos confrères de <em>Ars Technica</em> recensent quelques tweets de spécialistes qui critiquent la manière de faire de Chris Roberts. « <em>Peu de gens pourront me convaincre qu’envoyer une commande à un avion en plein vol est un acte lié à la sécurité </em>», tranche <a href="https://twitter.com/McGrewSecurity/status/599389213214187520" rel="nofollow noopener noreferrer" target="_blank">Wesley McGrew</a>. « <em>Soit il a menti sur le piratage d’un avion en vol, soit il l’a réellement fait, mais dans les deux cas, c’est inacceptable pour un professionnel de la sécurité</em> », précise <a href="https://twitter.com/nickdepetrillo" rel="nofollow noopener noreferrer" target="_blank">Nick Depetrillo</a>. D’autres sont plus sévères comme Jaime Blasco, directeur d’AlienVault Lab, qui indique : <em>« je trouve cela difficile à croire, mais si c’est vrai, il mérite d’aller en prison</em> ». Ou encore <a href="https://twitter.com/alexstamos/status/599397831972102144" rel="nofollow noopener noreferrer" target="_blank">Alex Stamos</a>, RSSI de Yahoo, qui écrit : « <em>vous ne pouvez pas promouvoir un idéal expliquant que la recherche en sécurité est bénéfique pour l’Humanité et dans le même temps défendre une recherche qui met en danger des milliers d’innocents</em> ».</p>
  78. <p>Pour sa défense, Chris Robert a choisi aussi Twitter sous son pseudonyme <a href="https://twitter.com/sidragon1" rel="nofollow noopener noreferrer" target="_blank">Sidragon 1</a> et nos confrères de Wired pour dénoncer les raccourcis des propos du FBI. « <em>Ce paragraphe est sorti de son contexte sur l’ensemble des discussions que j’ai pu avoir avec le FBI et dont je ne peux évidemment pas parle</em>r <em>»</em>. Il rappelle son expérience dans le domaine de la sécurité aérienne, sujet sur lequel il travaille depuis 5 ans. Au final son « tweet-blague » va lui coûter cher. Il a été déclaré <em>persona non grata</em> sur United Airlines. De plus, la mauvaise publicité autour de cette affaire a dissuadé des investisseurs de participer au développement de sa société One World Labs. En conséquence, il va licencier 12 personnes, soit la moitié de ses effectifs.</p>
  79. <p>Pour la sécurité aérienne, cette affaire donne un peu plus crédit aux allégations d’un rapport de la GAO (Governement Accountability Office, un organisme américain indépendante) qui rapportait les risques importants sur les réseaux WiFi en vol et les communications utilisées par les avions. Ce rapport préconisait de nouvelles approches pour garantir la sécurité du transport aérien. En conséquence, le FBI et la TSA (agence en charge du transport aérien) ont été mis en alerte sur l’activité des passagers sur les réseaux WiFi ou sur les terminaux de divertissement. Ils doivent être sensibles à des signes comme la connexion avec des câbles inconnus ou des discussions sur les médias sociaux en vol sur la possibilité de pirater le système WiFi.</p>
  80. </article>
  81. <hr>
  82. <footer>
  83. <p>
  84. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  85. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-home"></use>
  86. </svg> Accueil</a> •
  87. <a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2">
  88. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-rss2"></use>
  89. </svg> Suivre</a> •
  90. <a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie">
  91. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-user-tie"></use>
  92. </svg> Pro</a> •
  93. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail">
  94. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-mail"></use>
  95. </svg> Email</a> •
  96. <abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2">
  97. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-hammer2"></use>
  98. </svg> Légal</abbr>
  99. </p>
  100. <template id="theme-selector">
  101. <form>
  102. <fieldset>
  103. <legend><svg class="icon icon-brightness-contrast">
  104. <use xlink:href="/static/david/icons2/symbol-defs-2021-12.svg#icon-brightness-contrast"></use>
  105. </svg> Thème</legend>
  106. <label>
  107. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  108. </label>
  109. <label>
  110. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  111. </label>
  112. <label>
  113. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  114. </label>
  115. </fieldset>
  116. </form>
  117. </template>
  118. </footer>
  119. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  120. <script>
  121. function loadThemeForm(templateName) {
  122. const themeSelectorTemplate = document.querySelector(templateName)
  123. const form = themeSelectorTemplate.content.firstElementChild
  124. themeSelectorTemplate.replaceWith(form)
  125. form.addEventListener('change', (e) => {
  126. const chosenColorScheme = e.target.value
  127. localStorage.setItem('theme', chosenColorScheme)
  128. toggleTheme(chosenColorScheme)
  129. })
  130. const selectedTheme = localStorage.getItem('theme')
  131. if (selectedTheme && selectedTheme !== 'undefined') {
  132. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  133. }
  134. }
  135. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  136. window.addEventListener('load', () => {
  137. let hasDarkRules = false
  138. for (const styleSheet of Array.from(document.styleSheets)) {
  139. let mediaRules = []
  140. for (const cssRule of styleSheet.cssRules) {
  141. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  142. continue
  143. }
  144. // WARNING: Safari does not have/supports `conditionText`.
  145. if (cssRule.conditionText) {
  146. if (cssRule.conditionText !== prefersColorSchemeDark) {
  147. continue
  148. }
  149. } else {
  150. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  151. continue
  152. }
  153. }
  154. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  155. }
  156. // WARNING: do not try to insert a Rule to a styleSheet you are
  157. // currently iterating on, otherwise the browser will be stuck
  158. // in a infinite loop…
  159. for (const mediaRule of mediaRules) {
  160. styleSheet.insertRule(mediaRule.cssText)
  161. hasDarkRules = true
  162. }
  163. }
  164. if (hasDarkRules) {
  165. loadThemeForm('#theme-selector')
  166. }
  167. })
  168. </script>
  169. </body>
  170. </html>