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 2232 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

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

06/12/2016

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

15/03/2017

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

06/12/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

20 tòa nhà với kiến trúc độc đáo trông như trụ sở của các nhân vật phản diện trong phim

09/01/2017

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

10 cuốn sách cực hay về tâm lý học - Bạn đã đọc bao nhiêu cuốn trong số này rồi?

17/05/2017

Sáng tạo ư, quá dễ! 40 nguyên tắc sáng tạo trong kỹ thuật áp dụng vào kinh doanh

12/08/2018

Những câu triết lý “tầm xàm” về sự khác biệt giữa đàn ông và phụ nữ

07/03/2017

Bí quyết đánh mất người yêu chỉ trong vài ngày: Tác hại của thói đeo bám đối với mối quan hệ

02/05/2017

Chiêm ngưỡng 10 mẫu chữ viết tay đẹp đến sững sờ

03/04/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

Những mẩu truyện tranh hài hước về chú thỏ 7 màu

28/03/2017

50 kỹ năng mềm bạn cần phải có để hạnh phúc và thành công trong cuộc sống

31/08/2017

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

30/12/2016

Hướng dẫn chi tiết cách mở quán cà phê cho người lần đầu kinh doanh

22/03/2017

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

16/05/2017

Ở đời có 4 cái ngu – Vì sao ngu? Ngu như thế nào?

02/12/2016

Học cách ra quyết định tốt hơn với 4 thủ thuật tâm lý đơn giản sau

22/11/2016

Tại sao vào mùa đông, chúng ta cảm thấy nước lạnh hơn không khí (Và những điều thú vị khác về nhiệt độ)

25/03/2017

Người phụ nữ này đã cực kỳ ngạc nhiên khi chú mèo cô giải cứu hóa ra lại là một con "ma cà rồng"

02/11/2016

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

10/12/2016

[Truyện ngắn] Ông già và biển cả - Ernest Hemingway

24/10/2016

Du lịch phượt Quảng Ngãi với 14 điểm đến và 21 đặc sản nổi nổi tiếng

31/08/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

Con giận dữ rồi, người làm cha mẹ biết phải làm sao? (10 điều cần lưu ý)

06/08/2017

7 điều về tình bạn chỉ những người yêu chó mới hiểu rõ

09/01/2017

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

21/12/2016

Kỳ quặc hai chú mèo cứ nhìn chằm chằm vào bàn thức ăn của chủ

02/01/2017

Bạn đã bị lừa khi tin rằng “Phong ba bão táp không bằng ngữ pháp Việt Nam”

02/12/2016

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