Loading AI tools
З Вікіпедії, вільної енциклопедії
Therac-25 — апарат променевої терапії з комп'ютерним управління, виготовлений компанією Atomic Energy of Canada Limited (AECL) у 1982 році. Наступна модель після Therac-6 та Therac-20 (попередні апарати були виготовлені у партнерстві з Compagnie General Radiographique, Франція).
Апарати цієї моделі були причетні до щонайменше шести нещасних випадків між 1985 і 1987 роками, в яких пацієнти отримували масові передозування радіації[1]. Через помилки паралельного програмування він іноді давав своїм пацієнтам дози опромінення, які були в сотні разів більше за необхідні, чим спричиняв загибель або серйозні ушкодження[2].
Ці інциденти підкреслюють небезпеку комп'ютерних систем керування критично важливих для безпеки систем, і вони стали стандартним прикладом досліджень в інформатизації охорони здоров'я та розробці програмного забезпечення. Крім того, самовпевненість інженерів[1] та відсутність належної експертизи для вирішення повідомлених програмних помилок підкреслюють як крайній випадок надмірної впевненості інженерів у результатах їхньої роботи, та недовіра скаргам кінцевих користувачів, що призвело до драматичних наслідків.
Апарат пропонував два режими променевої терапії:
Він також включав режим «підсвічування області», що дозволяв правильно розмістити пацієнта, освітлюючи зону лікування видимим світлом.
Шість задокументованих інцидентів сталися, коли пучок електронів, що генерується в режимі рентгенівських променів, направлявся безпосередньо на пацієнтів. Причиною виявилися дві помилки програми[3]. Одна, коли оператор неправильно обирав рентгенівський режим перед швидким переходом у електронний режим, що дозволило встановити електронний промінь для рентгенівського режиму без того, щоб ціль рентгенівських променів знаходилася на місці. Друга несправність дозволила електронному пучку активізуватися під час режиму «підсвітки області», якщо під час цього не було активовано жодного режиму пучка або не було встановлено цілі.
Попередні моделі мали апаратні блокування для запобігання подібних несправностей, проте Therac-25 прибрав їх, покладаючись на перевірки програмного забезпечення.
Електронний промінь високого струму вражав пацієнтів приблизно в 100 разів більшою від запланованої дозою опромінення та на більш вузькій ділянці, направляючи потенційно смертельну дозу (бета-випромінювання). Супровідні відчуття були описані пацієнтом Реєм Коксом як «сильне ураження електричним струмом», яке змусило його кричати і вибігти з кабінету лікування[4]. Через кілька днів з'являвся радіаційний опік, у пацієнтів виявляли симптоми променевої хвороби; у трьох випадках травмовані пацієнти пізніше померли внаслідок переопромінення[5].
Комісія приписувала основну причину загальній поганій архітектурі та поганим практикам розробки програмного забезпечення, а не окремим конкретним помилкам кодування. Зокрема, програмне забезпечення було розроблено таким чином, що було неможливо перевірити його простим автоматизованим способом[3].
Дослідники, які розслідували аварії, виявили кілька супровідних причин. Вони згадували наступні інституційні причини:
Дослідники також виявили кілька інженерних проблем:
Програмне забезпечення було написане мовою асемблера, що вимагає більше уваги для тестування та доброї архітектури. Однак вибір мови сам по собі не вказаний як основна причина у звіті. Апарат також використовував власну операційну систему.
Левесон зазначає, що урок, який слід зробити з інциденту, — це не припускати, що повторно використане програмне забезпечення є безпечним: «Часто робиться наївне припущення, що повторне використання програмного забезпечення або використання комерційного нестандартного програмного забезпечення підвищить безпеку, оскільки це програмне забезпечення вже є широко випробуваним. Повторне використання програмних модулів не гарантує безпеку в новій системі, в яку вони встановлюються»[3]. Ця сліпа віра у погано зрозумілі парадигми, кодовані програмним забезпеченням, відома як програмування карґо-культу. У відповідь на такі випадки, як із Therac-25, було створено стандарт IEC 62304[en], який впроваджує стандарти життєвого циклу розробки програмного забезпечення для медичних виробів та конкретні вказівки щодо використання програмного забезпечення програмне забезпечення невідомого походження[en][6].
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.