Mehdi Safarian | مهدی صفریان
Mehdi Safarian | مهدی صفریان
خواندن ۲ دقیقه·۵ ماه پیش

Therac-25

Therac-25
Therac-25


اتفاقی که برای شرکت مایکروسافت افتاد قطعا یه هشدار و یه یاداوری بزرگ برای کسایی که دارن تو حوزه نرم افزار کار میکنن بود که در ادامه همین، یه سری نکاتی هست که اگه بهش توجه نکنیم ممکنه باعث تهدید جون انسان‌ها هم بشه.




بین سال‌های ۱۹۸۵ تا ۱۹۸۷ دستگاه رادیو تراپی وجود داشت به نام Therac-25 که یه مدل بروز شده از Therac-20 و Therac-6 بوده، طی این این ۲ سال این دستگاه باعث شد تا چندین بیمار سرطانی به دلیل مسمومیت رادیویی یا overdose radiation فوت کنن و یا حالشون به شدت بد بشه چون دستگاه هزاربار بیشتر از حد مجاز پرتو‌های الکترونی ساطع میکرد.

دوتا مدل قدیمی هر دو یه سری پروتکل‌های امنیتی سخت افزاری و مدار‌های منطقی ای داشتن که میزان ساطع کردن پرتوها رو مانیتور و کنترل میکرد که در نسخه جدید یعنی Therac-25 حذف شدن و در ادامه یک سری از ماژول‌های نرم افزاری یکسان و یا شبیه به نسخه های قبلی در ماشین Therac-25 استفاده شده بود. مسئله ای که وجود داشت این بود که در تمام نسخه های قبلی هم چنین مشکلی بود اما به دلیل اینکه به صورت سخت افزاری داشتن جلوش رو میگرفتن ازش مطلع نبودن و اینو بعدا طی تحقیقاتشون رو ماشین Therac-25 فهمیدن.

نکته اول:

اشاره کردم به اینکه خیلی از بخش های نرم افزاری نسخه جدید مشابه نسخه های قبلی بودن پس همه انتظار داشتن که به درستی کار کنه و همینطور هم بوده نسخه‌های قبلی به طور دقیق و صحیح کار میکردن و شرکت ACEL تصور میکرد که نرم افزارشون در ماشین جدید هم صحیح کار میکنه.

پس لزوما استفاده کردن از لایبری‌هایی که قبلا نوشته شده و صحیح کار میکردن یا لایبری ثالث که همینطوری میریزیم تو پروژه ها و یه وابستگی جدید به نرم افزارمون اضافه میکنیم هیچ وقت این اطمینان رو نمیده که نرم افزار ما قابل اتکا و امن هستش.

نکته دوم:

Overconfidence in software development.

اوایل این اتفاق، که فهمیده بودن یه مشکلاتی هست اولین جایی که بررسی کردن سخت افزار بود در صورتی که تمام فانکشنالیتی نسخه جدید، نرم افزاری بود و باید از سمت نرم افزارش کنترل میشده و قبل از اون، موقع تست دستگاه هیچ تحلیل و تست امنیتی روی نرم افزار انجام نشده چون بنظرشون قبلا داشته درست کار میکرده.

اتفاقات مشابه کم نیستن و من صرفا به دوتا از نکاتی که وجود داشت اشاره کردم و بقیش رو خودتون میتونید بخونید.

کافیه برید به مقاله اصلی که درمورد روند تحقیقات و مشکلات به طور جزئی توضیح داده: http://sunnyday.mit.edu/papers/therac.pdf

نرم افزارامنیت نرم افزارمهندسی
شاید از این پست‌ها خوشتان بیاید