Những dòng code giết người: Nghề lập trình viên có thể nguy hiểm hơn bạn tưởng

supervisor_accountDược sĩ Đức Bình visibility 1530 12/21/2016 6:52:36 AM

Chúng ta biết rằng có những nghề nghiệp mà đôi khi chỉ một sự bất cẩn nho nhỏ cũng có thể gây thiệt hại to lớn đến sinh mạng con người. Một chút sai sót của người bác sĩ có thể lấy đi tính mạng bệnh nhân. Một khoảnh khắc mất tập trung của tài xế xe tải có thể gây ra tai nạn liên hoàn làm chết hàng chục người.

nghề nguy hiểm: bất cẩn là chết người

Nhưng bạn có biết rằng lập trình viên cũng là một nghề có thể hại chết người nếu bất cẩn?

01.Những dòng code chết người:

Lập trình viên hầu hết là những thanh niên hiền lành chăm chỉ, ngồi máy 8 tiếng mỗi ngày (hoặc hơn). “Giết người” là một khái niệm vô cùng xa lạ với lập trình viên.

Họ không thể, nhưng những dòng code do họ viết ra thì có thể. Ta có thể điểm qua một vài cái chết do code và lỗi lầm của coder:

-Sự kiện cỗ máy Therac-25 gây ra 6 tai nại thảm khốc trong những năm từ 1985 đến 1987 chính là câu chuyện nổi tiếng nhất về việc những dòng code giết người. Therac-25 là một cỗ máy xạ trị cho bệnh nhân ung thư được sản xuất vào năm 1982. Do sai lầm trong việc code và kiểm thử, máy chiếu phóng xạ quá liều, làm chết 4 người, bị thương 2 người.

-Năm 1994 ở Scotland, lỗi phần mềm dẫn đến một vụ tai nạn máy bay, giết chết 29 người.

-Tháng 6 năm 2010, con worm máy tính Stuxnet được các chuyên viên Semactec tìm thấy. Con worm “vô hại” này được biết là có khả năng thăm nhập và phá hoại các lò phản ứng hạt nhân. Stuxnex lây lan khá rộng ở Iran, nhưng chưa rõ có lò phản ứng nào bị nổ hay thiệt hại vì nó chưa.

-Cơ quan quản lý thực phẩm và dược phẩm Hoa Kỳ (FDA) đã xác nhận sự liên quan giữa các vấn đề phần mềm của máy bơm thuốc tiêm truyền với hơn 700 ca tử vong và 20 000 ca bị thương nặng từ năm 2005 đến 2009.

02.Và làm bốc hơi hàng tỷ đô la:

bốc hơi hàng ngàn tỷ đô la

Không chỉ gây thiệt hại về người, đôi khi code và bug cũng gây ra những thiệt hại khổng lồ về tiền bạc:

-Năm 1966, do lỗi của phần mềm nên tên lửa European Ariane 5 đã… chệch khỏi đường bay sau 37 giây cất cánh. Hậu quả là nó… “tự bạo” ngay trên không, gây thiệt hại 370 triệu đô.

-Tháng 1/1982, thời chiến tranh lạnh, CIA cố ý tuồn một số công nghệ có lỗi ngầm cho Liên Xô, trong số đó bao gồm một phần mềm đi kèm bug. Bug này về sau đã làm… nổ tang hoang đường ống dẫn gas của Siberia, gây ra “vụ nổ không hạt nhân lớn nhất từ trước đến nay”.

-Năm 1998, một module trong vệ tinh sao Hoả bị lỗi, khiến nó “úp mặt vào sao Hỏa” ngay khi tới nơi. gây thiệt hại 327 triệu đô và 1 năm chờ đợi.

-Nội trong năm 2002, lỗi lập trình khiến Mĩ thiệt hại 60 tỷ đô la.

-Trong năm 2011, một lỗi phần mềm trong hệ thống máy tính của một ngân hàng lớn ở Nhật Bản đã làm cho mạng lưới hơn 5600 máy ATM dừng hoạt động trong 24 giờ, dịch vụ Internet Banking bị đóng cửa trong 3 ngày, chậm trễ thanh toán tiền lương vào tài khoản của 620 000 người với tổng giá trị lên đến 1 tỷ rưỡi đô la Mỹ. Trong cùng năm, một ngân hàng ở Úc cũng bị lỗi phần mềm, nhưng lần này khách hàng lại được lợi bởi vì họ được ngân hàng “biếu không” một lượng lớn tiền khi rút tiền tại hơn 40 máy ATM bị lỗi.

03.Lập trình không phải là trò đùa:

Các thiết bị y tế đang và sẽ luôn đóng một vai trò quan trọng trong ngành điều trị và chăm sóc sức khỏe con người. Những thiết bị này ngày càng có nhiều chức năng hơn, đồng nghĩa với việc chúng ngày càng phức tạp hơn. Hơn một nửa các thiết bị y tế được bán tại Mỹ (thị trường chăm sóc sức khỏe lớn nhất thế giới) dựa trên phần mềm. Các phần mềm trong máy tạo nhịp tim có thể yêu cầu hơn 80 000 dòng code, một máy bơm thuốc tiêm truyền cần khoảng 170 000 dòng code và số dòng code của máy chụp cộng hưởng từ MRI là hơn 7 triệu dòng.

các thiết bị y tế ngày càng đóng vai trò quan trọng trong khám chữa bệnh

Sự phụ thuộc ngày càng tăng vào phần mềm gây ra các vấn đề quen thuộc với bất cứ ai từng sử dụng máy tính: lỗi, xung đột phần mềm, lỗ hổng bảo mật…

Các nhà nghiên cứu tại Đại học Patras của Hy Lạp cho thấy rằng một phần ba của tất cả các thiết bị y tế dựa trên phần mềm được bán tại Mỹ từ năm 1999 và 2005 đã bị thu hồi cho lỗi phần mềm. Kevin Fu, một giáo sư khoa học máy tính tại Đại học Massachusetts, tính toán rằng việc thu hồi như vậy đã ảnh hưởng đến hơn 1,5 triệu thiết bị cá nhân kể từ năm 2002. McAfee, một công ty bảo mật máy tính, cho biết họ đã tìm thấy một cách để tác động vào máy bơm insulin khiến cho nó cung cấp một lượng insulin của 45 ngày chỉ với một lần bơm.

Khi phần mềm trong một thiết bị y tế gặp vấn đề, hậu quả có thể còn nghiêm trọng hơn nhiều so với việc chỉ phải khởi động lại máy tính của bạn.

Ngoài các trục trặc do tự thân phần mềm, các thiết bị y tế không dây hoặc nối mạng cũng rất dễ bị tấn công bởi tin tặc. Trong một bài báo khoa học năm 2008, tiến sĩ Fu và các đồng nghiệp của ông đã cho thấy làm thế nào một máy khử rung tim cấy ghép có thể được lập trình lại từ xa, nhằm giữ lại liều điều trị khi nó là cần thiết hoặc cung cấp những cú sốc không cần thiết.

nguy hiểm khi các thiết bị y tế bị lỗi phần mềm

Tiến sĩ Fu nói rằng khi nhắc đến việc thử nghiệm phần mềm, các nhà sản xuất thiết bị cũng thiếu văn hóa an toàn trong các ngành có nguy cơ cao khác như hệ thống điện tử, và thất bại trong việc theo kịp với những tiến bộ mới nhất trong công nghệ phần mềm. Insup Lee, giáo sư về khoa học máy tính tại Đại học Pennsylvania, đồng ý. "Nhiều nhà sản xuất không có chuyên môn hoặc sự sẵn sàng để sử dụng các công cụ mới được phát triển trong ngành khoa học máy tính," ông nói.

04.Case Study: Phân tích trường hợp cỗ máy giết người Therac-25:

Therac-25 không phải là một thiết bị mà người bình thường muốn nhìn thấy. Nó là một máy xạ trị. Sử dụng tia X quang hoặc một chùm tia điện tử, nó tiêu diệt tế bào ung thư sâu bên trong cơ thể bệnh nhân. Cái giá của việc tiêu diệt các tế bào ung thư là nó cũng gây ra một số thiệt hại chấp nhận được cho các mô lành tính xung quanh khối u ung thư. Và tất nhiên, với tư cách là một máy xạ trị ung thư, lợi ích mà nó mang lại cho bệnh nhân phải vượt trội so với thiệt hại mà nó gây ra. Đối với sáu bệnh nhân không may mắn trong những năm từ 1985 đến 1987, máy Therac-25 đã làm một điều không tưởng: nó khiến họ tiếp xúc với liều bức xạ quá lớn, giết chết bốn người và để lại hai người khác bị thương suốt đời.

khi máy xạ trị giết người

Therac-25 được sản xuất bởi công ty Atomic Energy of Canada Limited (AECL). Đây là máy xạ trị thứ ba mà công ty này sản xuất. Trước đó là hai máy Therac-6 và Therac-20. Hai máy này không cần dùng máy tính, chúng được thiết kế để vận hành độc lập. Trên Therac-6 và Therac-20, khóa liên động (interlocks) của phần cứng sẽ ngăn cản người điều hành máy thực hiện các thao tác nguy hiểm, ví dụ phóng một chùm electron năng lượng cao mà không có mục tiêu tại chỗ.

Nhưng đến khi thiết kế Therac-25, AECL quyết định nó sẽ chỉ có thể điều khiển bằng máy tính. Họ không chỉ loại bỏ rất nhiều các cơ chế điều khiển bằng tay, họ cũng loại bỏ các khoá liên động phần cứng. Máy tính sẽ theo dõi các thiết lập và tắt máy nếu nó phát hiện ra một tình huống nguy hiểm. Các bệnh viện rất yêu thích điều này, bởi vì máy tính chạy nhanh hơn các thiết lập thủ công của con người, và thời gian thiết lập ít hơn đồng nghĩa với sẽ có nhiều bệnh nhân hơn được sử dụng máy mỗi ngày.

Các vụ tai nạn:

Vụ tai nạn đầu tiên được diễn ra vào ngày 03 tháng 6 năm 1985, với một người phụ nữ đang được điều trị ung thư vú. Cô đã được chỉ định liều hấp thu bức xạ 200 rad dưới hình thức của một chùm electron 10 MeV. Bệnh nhân cảm thấy bỏng nặng khi máy hoạt động. Nó đã không được biết đến vào thởi điểm đó nhưng cô đã bị đốt cháy bởi một bức xạ trong khoảng từ 10 000 đến 20 000 rad. Bệnh nhân sống sót, nhưng bị mất ngực trái và khả năng sử dụng tay trái do bức xạ.

Vào ngày 26 cùng tháng, một bệnh nhân thứ hai đã bị đốt bỏng tại Viện ung thư Ontario ở Hamilton, Ontario, Canada. Bệnh nhân này đã chết vào tháng 11 năm đó, tuy nhiên khám nghiệm tử thi cho thấy bệnh nhân chết bởi ung thư cổ tử cung nặng.

Trong tháng 12 năm 1985, một người phụ nữ thứ ba đã bị đốt cháy bởi một máy Therac-25 lắp đặt tại Yakima, Washington. Bệnh nhân này sống sót nhưng cuối cùng cần phải cấy ghép da do bỏng bức xạ.

Ngày 21 Tháng 3 năm 1986, một bệnh nhân ở Tyler, Texas đã được lên kế hoạch để nhận 9 liều điều trị Therac-25. Ông đã được chỉ định liều 180 rads đối với một khối u nhỏ trên lưng. Khi máy tính được bật lên, ông cảm thấy nóng và đau. Ngay cả máy Therac-25 chính nó cũng bắt đầu gầm gừ một cách khác thường. Bệnh nhân bắt đầu ngồi dậy khỏi bàn điều trị khi ông bị chiếu bởi một xung thứ hai của bức xạ. Lúc này ông đã đứng dậy và bắt đầu đập mạnh vào cửa để được giúp đỡ. Ông đã nhận được một liều quá lớn. Bệnh nhân này đã phải nhập viện vì bệnh bức xạ, và qua đời năm tháng sau đó.

FDA tuyên bố Therac-25 bị "khiếm khuyết". AECL đã ban hành bản vá lỗi phần mềm và cập nhật phần cứng mà cuối cùng cho phép cỗ máy này trở lại phục vụ. Các vụ kiện được giải quyết ngoài tòa án. Có vẻ như vấn đề đã được giải quyết cho đến khi vụ tai nạn thứ 6 xảy ra.

Ngày 11 Tháng 4 năm 1986, một tai nạn thứ hai xảy ra ở Tyler, Texas. Lúc này, bệnh nhân đang được điều trị ung thư da ở tai. Sự cố xảy ra tương tự như vụ tai nạn hồi 21 tháng 3. Bệnh nhân tử vong ba tuần sau đó do bỏng bức xạ trên thùy thái dương bên phải của não và cuống não.

Lần quá liều cuối cùng xảy ra muộn hơn nhiều. Lần này tại bệnh viện Yakima Valley vào tháng Giêng năm 1987. Bệnh nhân này sau đó đã chết do vết thương quá nặng.

Ít nhất 4 lỗi đã được tìm thấy trong phần mềm của Therac-25 gây ra quá liều bức xạ:

-Một biến chia sẻ được dùng chung cho cả 2 việc phân tích các giá trị đầu vào và theo dõi vị trí bàn xoay. Việc nhập dữ liệu quá nhanh trên thiết bị đầu cuối sẽ dẫn đến vị trí bàn xoay bị sai.

-Cần khoảng 8 giây cho nam châm bẻ cong được thiết lập đúng chỗ. Nếu người điều hành thay đổi loại tia hoặc mức năng lượng trong thời gian đó và di chuyển con trỏ đến vị trí cuối cùng, hệ thống sẽ không phát hiện những thay đổi.

-Chia cho giá trị của biến điều khiển công suất chùm tia trong một số trường hợp sẽ dẫn đến lỗi chia cho số 0 và kết quả là công suất tăng lên đến giá trị lớn nhất có thể.

-Thiết lập một biến Boolean là “true” được thực hiện thông qua lệnh "x=x+1", do đó nhấn nút Set sẽ khiến cho cứ mỗi 256 lần sẽ có một lần hệ thống không nhận được thông báo về vị trí bàn xoay.

 

BÀI ĐANG HOT

20 Ý tưởng mở quán cà phê cho người khởi nghiệp kinh doanh nhỏ

06/12/2016

Khởi nghiệp là gì, cần những yếu tố nào và làm sao để khởi nghiệp thành công?

11/06/2017

[Truyện cười] Tuyển tập những truyện cười bựa nhất về con Thỏ ngáo đá

11/12/2016

4 lý do bạn không nên cắt viên vitamin E để bôi mặt – Làm đẹp với vitamin E như thế nào cho đúng cách?

09/03/2017

11 công việc có mức thu nhập cao dành cho phụ nữ

16/05/2017

10 mẫu xe độ Super Cub đẹp đến ngỡ ngàng!

30/12/2016

Top 10 game chiến thuật cực hay cho PC có cấu hình “dễ chịu”

25/10/2016

15 anime với nội dung quái đản nhất khiến bạn phải thốt lên “Quát đờ phắc!” khi đang xem

24/10/2016

25 phát minh quan trọng nhất trong lịch sử loài người

15/03/2017

12 điều tuyệt vời về iPhone 7 - bạn đã biết chưa?

29/10/2016

Tất cả những điều bạn cần biết về ngành tâm lý học trước khi quyết định theo đuổi ngành này

09/05/2017

Tại sao bom nguyên tử lại nổ thành hình cây nấm?

16/04/2017

[Video học tiếng Anh] IELTS Writing Task 1: How to describe a process

30/04/2017

25 (+3) mẫu bàn giúp phòng khách nhà bạn độc đáo trong mắt bạn bè

16/11/2017

Vì sao chúng ta không bao giờ thấy chó sói biểu diễn trong rạp xiếc

11/03/2017

Cảnh báo: Tác hại từ việc trị mụn bằng kem đánh răng!

10/12/2016

Những chú voi con dễ thương này sẽ làm bạn mỉm cười

04/05/2017

10 cặp vếu trong anime "phá nát" mọi định luật vật lý

30/12/2016

Thiếu Testosterone – Nguyên nhân của bệnh thiểu năng sinh dục nam

24/11/2016

100 ý tưởng khởi nghiệp kinh doanh nhỏ ít vốn cho người mới bắt đầu

06/12/2016

Không đọc sách, chỉ đọc tóm tắt sách: Tưởng hiệu quả hóa ra tai hại

12/12/2016

10 chú chó khiến bạn không thể nhịn cười

02/01/2017

Đối thủ cạnh tranh trong kinh doanh không phải là kẻ thù. Vậy đâu mới là kẻ thù?

17/10/2016

Những câu nói hay về tình bạn

12/04/2017

10 khám phá khảo cổ thay đổi quan điểm của chúng ta về lịch sử

24/07/2017

Top 10 loài động vật thông minh nhất quả đất (không kể con người)

06/03/2017

Khi sự thù ghét trở thành động lực của sáng tạo

13/02/2017

Giấc ngủ giúp bộ não xóa bỏ những ký ức không cần thiết như thế nào?

04/03/2017

Ấu dâm là gì? Tâm lý học của kẻ ấu dâm? Các dấu hiệu nhận biết và làm cách nào để giúp trẻ em phòng tránh?

26/03/2017

Đừng vội sử dụng thực phẩm chức năng khi chưa tìm hiểu kỹ về nó

23/06/2017

© Copyright 2016. Bản quyền website thuộc về 1tach.com