מסע הרצח של ת'ראק 25 – הרוצח הסדרתי הממוחשב הראשון בהיסטוריה

לעיתים קורה שמגיע אלינו חשבון מנופח, דרישת תשלום על דבר שמעולם לא נרכש, או כל מסמך לא מעודכן אחר שמסוגל להוציא משלוותו גם את האדם האדיש ביותר. חדורי רוח קרב אנחנו מתקשרים כדי לברר את מהות העניין ולרדת לעומקם של הדברים, אך אז קול אדיש מעברו השני של הטלפון עונה "זו תקלת מחשב". בבת אחת יוצאת כל רוח הקרב מהמפרשים. עם זה כבר באמת אי אפשר להתווכח. תקלות מחשב הרי תמיד היו, והנוכחות התמידית שלהן כבר הפכה לדבר מובן מאליו. אבל מה קורה כאשר לתוכנת המחשב מחוברת חומרה המסוגלת להרוג? האם גם אז תקלת מחשב היא דבר מתקבל על הדעת?

זהו בדיוק סיפורה של תוכנת ההפעלה של הת'ראק 25. ת'ראק 25 הוא מכשיר שנועד לריפוי, אבל סדרת תקלות בתוכנת ההפעלה שלו גרמה לו לצאת למסע קטל אשר נמשך שנתיים תמימות, בין השנים 1985 ל-1987. אם מישהו היה כותב תסריט אימה על מחשבים, קשה לחשוב על משהו יותר מפחיד ומעורר בלהות מאשר סיפורו של ת'ראק 25. אם הסרט "מלתעות" גרם לאנשים להרהר בכל פעם שהם טובלים בחוף הים, ת'ראק 25 היה יכול לגרום לכל אדם להרגיש צמרמורת קלה כאשר מכשיר ממוחשב כלשהו מקבל הרשאה לפעול על גופו. ההבדל הוא ש"מלתעות" הוא סרט הוליוודי, ואילו סיפורו של הת'ראק 25 הוא אמיתי לחלוטין.

הסיפור מתחיל בפרבר שקט בצרפת, ובו מתכנת יחיד העובד לבדו על פרוייקט כקבלן משנה של חברת "ג'נרל אטומיק" הקנדית. זהותו של המתכנת מעולם לא נחשפה, וזאת במסגרת ההסדר המשפטי אשר הושג לאחר שהתגלו פרטי התקרית. הפרוייקט עליו עבד המתכנת היה פשוט למדי ומוגדר היטב – כתיבת תוכנת הפעלה עבור מכשיר ההקרנות הנקרא "ת'ראק 25".

נקודת ההתחלה של הפרוייקט היא תוכנת ההפעלה שנכתבה עבור מכשיר קדום יותר, הנקרא ת'ראק 6. המתכנת האלמוני שינה את הקוד שנכתב עבור ת'ראק 6 כך שיתאים עבור המכשיר החדש. הפיתוח וסדרת הבדיקות של המכשיר (והתוכנה) הסתיים בשנת 1983, ומאז החלו מכשירי הת'ראק 25 להמכר לבתי חולים ומרכזים רפואיים בארצות הברית ובקנדה. בסה"כ נמכרו 11 יחידות.

בין השנים 1983 ל 1985 עבד הת'ראק 25 ללא תקלות יוצאות דופן, ושירת את מטופליו בנאמנות. המקרה הקשה הראשון נרשם ביוני 1985, אז מטופלת בת 61 אשר עברה טיפול להסרת גידול הופנתה למרכז הרפואי קנסטון שבג'ורג'יה לשם קבלת טיפול משלים באמצעות הקרנות. אחרי פרוצדורה שגרתית של הקלדת הנתונים וקביעת מינון הקרינה, נכנסה המטופלת אל תוך המכשיר שבחדר המבודד (על מנת להגן על הטכנאי מפני הקרינה) וחיכתה לתחילת הטיפול. אולם כאשר הופעלה המכונה, הרגישה המטופלת מכת חום אדירה ותחושת צריבה חזקה. כאשר נכנס הטכנאי לחדר היתה המטופלת מבולבלת והטיחה בטכנאי "שרפת אותי!". הטכנאי הסביר לה כי אין זה ייתכן. זמן קצר לאחר מכן נאלצה המטופלת לעבור כריתה מלאה של החזה וכן איבדה לחלוטין את השליטה על יד ימין. זו היתה הפעם הראשונה בה תקף הת'ראק 25 את מטופליו, אולם במקרה זה הצליח מכשיר ההקרנות להתחמק מהאשמה ואף לא היה כלל ברשימת החשודים. הקשר בין הת'ראק 25 לבין התוצאות הקשות התגלה רק לאחר שנרשמו מקרים נוספים, ואז הוערך כי מינון הקרינה אליו נחשפה המטופלת היה גבוה בערך פי 100 מהמינון אותו ביקש הטכנאי.

פחות מחודשיים לאחר מכן, במכון לטיפול בסרטן באונטריו שבקנדה, ניגשה מטופלת בת 40 לקבלת טיפול, אולם בעודה שוכבת בתוך המכשיר חווה הטכנאי הודעת שגיאה והמכשיר הפסיק את פעולתו. יש לציין שהודעות שגיאה מסוג זה היתה אירוע שכיח עבור מכשיר ההקרנות, ולכן לא היתה לטכנאי כל סיבה לחשוד שדבר מה אינו כשורה. כעבור שניות ספורות הקיש הטכנאי על מקש "P" בכדי לנסות שנית, בתקווה שהפעם תקבל המטופלת את מינון הקרינה המבוקש, אולם שוב קיבל הודעת "אין מינון" מתוכנת ההפעלה. אחרי ארבעה ניסיונות נוספים שעלו בתוהו קרא המפעיל לטכנאי שירות של בית החולים, אשר בדק את המכשיר וקבע כי המכשיר נמצא תקין. לאחר הטיפול התלוננה המטופלת על צריבות ותחושה של זרם חשמלי באיזור המותניים. כשלושה חודשים לאחר מכן היא נפטרה מסרטן אלים במיוחד. יש לציין כי בהמשך אותו יום טופלו שישה אנשים נוספים על ידי אותו מכשיר, אך באף אחד מהטיפולים לא נרשמו אירועים יוצאי דופן.

בספטמבר אותה שנה תקף הת'ראק 25 שוב, הפעם בבית החולים "יקימה" שבוושינגטון. במקרה זה התלוננה המטופלת על סימנים אדומים חזקים על העור באיזור המותניים. למרות התלונה, הופנתה המטופלת להמשך טיפול ההקרנות, כאשר הצוות הרפואי עוקב מקרוב אחרי ההתפתחויות מנסה למצוא הסברים אפשריים לתופעה. גם הפעם הצליח מכשיר ההקרנות להתחמק מאשמה, ובזמן שהרופאים בודקים כמעט כל כיוון אפשרי, הת'ראק 25 נשאר בחזקת חף מפשע.

לאחר הפוגה של למעלה מחצי שנה, יצא הת'ראק 25 למתקפה נוספת, כאשר הפעם זירת הפשע היא המרכז לטיפול בסרטן "מזרח טקסס". במכון זה טופלו עד אז למעלה מ 500 חולים שונים על ידי הת'ראק 25, ולאיש לא היתה כל סיבה לחשוד שהמכשיר התמים הוא למעשה רוצח רדום העלול לתקוף בכל רגע. במקרה זה המפעילה היתה טכנאית מיומנת, אשר היתה מסוגלת להקליד בזריזות את הנתונים השונים הדרושים להפעלת המכשיר. לפני רגע ההפעלה, הבחינה הטכנאית שאחד הנתונים הוקלד שלא כשורה, ולכן חזרה לאחור בממשק המשתמש בכדי לתקן את הטעות. לאחר התיקון היא חלפה על פני המסכים בזריזות על ידי הקשה על "ENTER" בלי לשנות את הנתונים (שהיו כבר שם מהפעם הקודמת) עד שחזרה למסך הסופי והתחילה את ההקרנה. המכשיר הגיב בתלונה על תקלה בעלת עדיפות נמוכה, והתריע על מינון נמוך ממה שביקשה הטכנאית. הטכנאית ניסתה שוב על ידי הקשה על המקש P. לימים התברר שלרצף הפעולות התמים לכאורה שהיא ביצעה היתה משמעות קריטית עבור המטופל.

באותו זמן היה המטופל מבודד בחדר (כאמור, כדי להגן על הטכנאית מפני הקרינה), והדרך היחידה לתקשר איתו היתה דרך מצלמת וידאו ומכשיר אודיו. מכשיר הוידיאו היה באותו יום מנותק, ומכשיר האודיו מקולקל. לאחר המינון הראשון הרגיש המטופל תחושה של צריבה וחום אדיר על פניו. מכיוון שזה היה הטיפול התשיעי שלו, הוא הבין שדבר מה אינו כשורה וניסה להתרומם ולהמלט מהמכשיר. בשניה זאת הקישה הטכנאית על מקש P לשם הניסיון השני, ואז הרגיש המטופל צריבה חזקה באיזור יד ימין. כאשר נכנסה הטכנאית לחדר היה המטופל במצב רוח נסער, והופנה מיד לבדיקה של רופא. הרופא סבר שמדובר בלא יותר מאשר מכת חשמל, ושלח את המטופל לביתו. הת'ראק 25 המשיך לבצע מספר הקרנות עוד באותו יום.

בשבועות שלאחר מיכן התלונן המטופל על כאבים בצוואר ובכתפיים, שהתפתחו לשיתוק של רגל שמאל. השיתוק התפשט תוך זמן קצר לשתי הרגליים, ולאחר מכן למיתרי הקול. כחמישה חודשים לאחר הטיפול נפטר המטופל מסיבוכים הקשורים למינון היתר, אשר היה בערך פי 200 ממה שביקשה הטכנאית להקרין.

שלושה שבועות בלבד לאחר מכן חזר הת'ראק 25 לאותה זירת פשע והיכה שנית. גם הפעם היתה זו אותה סדרת פעולות בממשק המשתמש כמו בפעם הקודמת, ובדיוק אותה הודעת שגיאה. הטכנאית שמעה במכשיר האודיו (שתוקן עד אז) את המטופל זועק לעזרה, ומיהרה להכנס לחדר, שם ראתה שהמטופל נמצא בשלבי הימלטות מתוך המכשיר כשהוא נסער ומבוהל. הוא נפטר כשלושה שבועות לאחר האירוע.

מכיוון ששני המקרים אירעו בהפרש של כשלושה שבועות בלבד זה מזה, קישרה הטכנאית בין שני המקרים והבינה שהתיקון אותו ביצעה במסך האחרון הוא שגרם למינון היתר. לאחר שהיא ורופא נוסף לא הצליחו לשחזר את התקלה, הם הבינו שמקור הבעיה הוא החלפת המסכים המהירה לאחר ביצוע התיקון. הם אכן צדקו. על ידי ביצוע התיקון והחלפת מסכים מהירה לאחר מכן הם הצליחו לשחזר את מינון היתר.

על פי הדו"ח של ג'נרל אטומיק, אחת מתלונות המשתמשים של גירסאות קודמות של הת'ראק היתה שכדי לתקן טעות יחידה אותה מגלה המפעיל במסך הסופי יש להקליד את כל הנתונים מחדש. לכן, לתוכנת ההפעלה של ת'ראק 25 היה פיצ'ר חדש, שבו הנתונים נשמרים מהפעם הקודמת וכל מה שעל הטכנאי לעשות הוא להקיש ENTER בכדי לדפדף במהירות בין המסכים עד למסך הסופי. כאשר הם העלו את הרעיון הזה, איש מהמעורבים בעניין לא שיער בדעתו מה נוראה תהיה השפעתה של התוספת החביבה לממשק המשתמש.
הבעיה היא שכדי לעדכן את הנתונים במכשיר היו דרושות בערך 8 שניות, דבר שתוכנת ההפעלה של הת'ראק 25 לא לקחה בחשבון. לכן, אם המשתמש עידכן דבר מה, ומאז הגיע למסך הסופי בתוך פחות מ-8 שניות, מידת המינון של הת'ראק 25 היתה בלתי צפויה. בגרסאות הקודמות של התוכנה התקלה לא היתה יכולה להתרחש, שכן הקלדת הנתונים לא יכלה להתבצע בפחות מ-8 שניות.

דו"ח שהוגש ל FDA תיאר את התגלגלות העניינים והצביע על כך שהבעיה אותרה ושהמכשיר כעת בטוח לשימוש. אם כן, התקלה נמצאה ותוקנה, והת'ראק 25 יכול לחזור ולתפקד כרגיל. האמנם? אחד האלמנטים המוכרים מסרטי האימה הוא שזמן קצר לאחר שכבר נדמה שהמפלצת צמאת הדם חוסלה, היא לפתע קמה מחדש לחיים, ובזמן שקורבנותיה כבר בטוחים שהיא נוטרלה היא מפתיעה אותם וממשיכה במסע הבלהות הקטלני שלה בדיוק מהנקודה שבה הפסיקה אותו קודם. זה בדיוק מה שעשתה תוכנת ההפעלה של הת'ראק 25.

ב-17 לינואר 1987, הגיע המטופל השני של אותו יום לקבלת טיפול בבית החולים יקימה. הטכנאי הכין את החולה לקראת הטיפול באופן שגרתי, ובהגיע הרגע הקיש על מקש B המסמן את תחילת ההקרנה. הודעת שגיאה הופיעה על המסך אך נעלמה כעבור זמן קצר, והטכנאי לא הצליח להבין מה היה טיבה. מכיוון שהמכשיר היה עוד פעיל הוא הקיש P בכדי להמשיך את הפעולה. התוצאה היתה דומה למקרים הקודמים.

בדיקה של ג'נרל אטומיק סוכמה במשפט "התקלה היא ככל הנראה לא בעיית חומרה בלבד". הצהרה זו היא עדינה במיוחד בהתחשב במספר הרב של שגיאות שמצאו אנשי ג'נרל אטומיק בתוכנת ההפעלה. למעשה, התוכנה היתה מחוררת כמו גבינה שוויצרית, וכמעט כל קטע קוד שנבדק היה עמוס תקלות. המצב היה עד כדי כך גרוע, עד כי קשה היה לקבוע איזו מין התקלות גרמה לבעיה.

אולם הבעיה העיקרית, ככל הנראה, היתה משתנה המשמש לסימון מצב הכנסת הנתונים. אם ערכו של המשתנה היה 0, התוכנה ידעה שהנתונים אומתו מול המכשיר וניתן להמשיך הלאה. כל ערך אחר משמעותו היא שהנתונים אינם עקביים, כאשר כל בדיקת אימות מול המכשיר מעלה את ערכו של המשתנה ב-1. הבעיה היא שהמשתנה הזה היה מסוג "בייט". כלומר, המשתנה היה מסוגל להכיל ערכים שבין 0 ל 255 בלבד. מכיוון שבדיקת האימות נערכה שוב ושוב בתדירות גבוהה, ערכו של המשתנה עלה עד שהגיע ל 255, ואז חזר שוב לאפס. במצב זה, באחד מ 256 מקרים תוכל התוכנה להתקדם הלאה למרות שהנתונים שהוזנו לתוכה אינם עקביים ביחס לנתונים אותם רואה המכשיר עצמו. במקרים מסויימים מצב כזה יכול להביא למינון קרינה אקראי, מה שאכן קרה.

את מצב העניינים סיכם במשפט אחד פרנק יוסטון מה-FDA, אשר טען:
A significant amount of software for life-critical systems comes from small firms, especially in the medical device industry; firms that fit the profile of those resistant to or uninformed of the principles of either system safety or software engineering."
יהיו רבים בתחום הנדסת התוכנה אשר יחלקו עליו. הם יטענו שהמצב גרוע בהרבה ממה שמשקפת הטענה, שכן הבעיה לא מתמקדת בתחום המכשור הרפואי בלבד, ולא רק בחברות קטנות. "כדור הכסף" המפורסם של פרד ברוקס עדיין לא נמצא.

מודעות פרסומת
Post a comment or leave a trackback: Trackback URL.

תגובות

  • אבו חומוס  On יוני 17, 2008 at 7:24 am

    נכון – מחדל שבהחלט מעורר מחשבות נוגות לגבי ההסתמכות העיוורת שלנו על טכנולוגיה.

    אבל הנה קצת פרספקטיבה.

    עד לגילוי התקלה המכונה עבדה במשך 3 שנים והיתה אחראית למותם של שלושה אנשים (נתונים מוויקיפדיה)

    ב 2006 בלבד מתו כ7000 חולים כתוצאה מכתב יד לא קריא של רופאים.
    כמיליון וחצי חולים נפגעו.

    כתב יד….. לא איזה שורת קוד או מיכשור לקוי. כתב יד.

    אז פעם הבאה שמישהו מתאשפז תבקשו מהרופא לראות מרשם שהוא כתב. אם אתם לא מסוגלים לקרוא ולזהות את האותיות – תחליפו רופא.

  • רוני  On יוני 17, 2008 at 8:31 am

    והאמת היא שיצא לי לעבוד בחברת תוכנה ישראלית שמייצרת תוכנה למצבי חירום, ואני בטוחה שאנשים מתים כתוצאה משימוש בתוכנה ההיא.
    התוכנה איומה עד כדי שכשהיה צורך להדגים אותה בפני מבקרים מחו"ל, הלבישו את עובדי החברה בחלוקים, שילמו הרבה כסף לרופאים ולאחיות במחלקה כדי שלא יגלו את הסוד, וכולם יחד עשו כאילו הם משתמשים בתוכנה.

    הפוסט שלך נקרא כמו סיפור מתח, ובהתחשב בזה שהגיבור הוא מכונת הקרנות, סחתיין על יכולת הסיפור 🙂

    (יש לך שגיאת הקלדה, "הוקלד שלא קשורה" במקום שלא כשורה)

  • דודי  On יוני 17, 2008 at 4:31 pm

    מן הבחינה העקרונית, עם זאת, האשמת המחשב ברצח דומה להאשמת המכונית בתאונת דרכים. רכיב ממוחשב במערכת רפואית, בידיו של מתכנת רשלני, הוא רוצח פוטנציאלי – בדיוק כמו מכונית נהוגה בידי נהג רשלן או מתוקנת על ידי מכונאי חסר אחריות, בדיוק כמו בניין שתוכנן שלא כהלכה או נבנה ברשלנות.

  • ליאור  On יוני 17, 2008 at 5:03 pm

    אבו חומוס, ברור שיש כאן אלמנט מסויים של "אדם נשך כלב". כתב יד כנראה יותר חשוב (לא בדקתי, אני סומך על דבריך), אבל מה לעשות שזה דבר יותר מוכר ומובן, ולכן פחות מפחיד אותנו מדבר אבסטקרטי כמו שגיאות תוכנה.

    תודה רוני. לצערי הרב, המקרה שאת מתארת הוא לא כל כך נדיר בשוק התוכנה. בדרך כלל לא מוצאים את זה בתחומי הנדסה אחרים, וזאת אחת הסיבות ש"הנדסת תוכנה" היא לא ממש הנדסה.
    ותודה על התיקון. די מביך.

    דודי, ברור שיש כאן האנשה מוגזמת של התוכנה. תוכנת בקרה פשוטה עושה בדיוק את מה שאדונה ציווה אותה, ומי שטעו פה הן כמובן הנפשות הפעולות בתהליך הפיתוח ובקרת האיכות.התוכנה עצמה היא לא רוצחת כי אין לה כוונה פלילית (או כל כוונה אחרת), אבל בפועל היא חיכתה בשקט ומדי פעם חיסלה מישהו, באופן די דומה (בפועל) למה שהיה עושה רוצח פסיכופט

  • עוז  On יוני 23, 2008 at 7:49 pm

    מאוד נהניתי לקרוא.
    אבל…
    אם כבר הבאת כאלו עובדות מטרידות, כדאי להוסיף רשימת מקורות שעליהם התבססת, זה בהחלט תורם.
    תודה על הסיפור.

  • ליאור  On יוני 24, 2008 at 12:27 am

    תודה על ההתעניינות.

    לקריאה נוספת אני ממליץ לעיין במאמר:
    Leveson & Turner, 1993, "An Investigation of the Therac 25 Accident", IEEE Computer, 26, p. 18-41.

    המאמר הזה הוא אחד המאמרים הקלאסיים בתחום הנדסת התוכנה.

להשאיר תגובה

הזינו את פרטיכם בטופס, או לחצו על אחד מהאייקונים כדי להשתמש בחשבון קיים:

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s

%d בלוגרים אהבו את זה: