11/10/2026 · VietTechies · Biên tập

Ngày 2 tháng 11 năm 1988, Robert Tappan Morris tung ra chương trình mà ngày nay người ta gọi là sâu Morris (Morris worm). Một tòa phúc thẩm liên bang về sau viết rằng Morris muốn con sâu “lây lan rộng mà không gây chú ý”, và nó “lẽ ra chỉ chiếm ít thời gian vận hành máy tính”. Thế nhưng, nhiều máy tính khắp nước Mỹ lại “hoặc bị sập, hoặc rơi vào trạng thái ‘đờ đẫn’”. Theo mô tả của tòa, thứ đánh gục những cỗ máy ấy lại chính là một quy tắc mà Morris viết ra để giữ cho con sâu sống sót.
Khi ấy, Morris đang là nghiên cứu sinh tiến sĩ năm thứ nhất ngành khoa học máy tính tại Đại học Cornell. Ông phát tán con sâu từ một máy tính ở Viện Công nghệ Massachusetts (MIT), và theo tòa, ông chọn MIT “để che giấu việc con sâu xuất phát từ Morris ở Cornell”. Theo dòng thời gian sự kiện do các nhà nghiên cứu MIT tổng hợp, chỉ trong vài giờ, con sâu đã lan tới Stanford, Đại học Maryland và Đại học California tại Berkeley.
Dù gây xáo trộn đến vậy, con sâu không phá hủy hay sửa đổi tệp tin, không chặn bắt thư riêng và cũng không làm lộ mật khẩu, theo một báo cáo năm 1989 của Văn phòng Kế toán Tổng hợp Hoa Kỳ (GAO), cơ quan điều tra của Quốc hội.
Cứ bảy lần thì có một
Morris đã tính trước chuyện các bản sao chen chúc nhau. Tòa viết rằng “nhiều bản sao của con sâu trên cùng một máy tính sẽ khiến con sâu dễ bị phát hiện hơn”, và khi bản sao đủ nhiều, chúng có thể làm hệ thống ì ạch đến mức sập. Vì vậy, Morris thiết kế để con sâu “hỏi” từng máy tính xem máy đó đã có bản sao hay chưa.
Rồi Morris tính đến cả phía phòng thủ. Ông “lo rằng các lập trình viên khác có thể diệt con sâu bằng cách lập trình cho chính máy của họ trả lời dối là ‘có’”, nên đã cho con sâu “cứ đến lần thứ bảy nhận được câu trả lời ‘có’” thì vẫn tự sao chép. Tòa viết rằng hóa ra Morris đã “đánh giá thấp số lần một máy tính sẽ bị hỏi câu hỏi đó”, và “tỷ lệ một trên bảy của ông đã dẫn tới số lần sao chép vượt xa dự tính”.
Trong code, “câu hỏi” ấy là một phép kiểm tra giữa các bản sao trên cùng một máy: bản sao mới tìm cách kết nối tới một bản sao có sẵn qua cổng 23357 ngay trên máy đó. Bản phân tích của MIT, vốn gọi chương trình này là virus, mô tả lối thoát khỏi phép kiểm tra ấy chỉ bằng một dòng: “Với xác suất một phần bảy, nó thậm chí còn không thử kiểm tra xem có virus nào khác hay không.”
Các máy đã nhiễm liên tục tấn công những máy xung quanh, nên cùng một máy bị nhắm tới hết lần này đến lần khác, và cứ khoảng bảy bản sao mới thì có một bản ở lại, bất kể trên máy đã có bao nhiêu bản đang chạy. Bản sao nào đang chạy cũng ngốn một phần năng lực của bộ xử lý. Morris cũng thiết kế để con sâu bị diệt mỗi khi máy tính tắt, mà theo tòa, việc tắt máy thường diễn ra “một hoặc hai tuần một lần”. Tòa viết rằng nếu Morris dự đoán đúng tốc độ tái nhiễm, thiết kế ấy lẽ ra đã ngăn được các bản sao chồng chất trên một máy.
Lời cảnh báo mắc kẹt trong mạng tắc nghẽn
Theo tòa, chẳng bao lâu sau Morris đã nhận ra con sâu “đang nhân bản và tái nhiễm các máy với tốc độ nhanh hơn nhiều so với ông dự tính”. Morris cùng một người bạn ở Harvard gửi đi một thông điệp nặc danh, giải thích cách diệt con sâu và ngăn tái nhiễm. Tòa viết rằng thông điệp ấy “mãi đến khi đã quá muộn mới tới nơi”, vì “đường truyền mạng bị tắc nghẽn”.
Dòng thời gian của MIT cho biết người gửi là Andy Sudduth ở Harvard, người đã đăng thông điệp lúc 3 giờ 34 sáng ngày 3 tháng 11. Thông điệp mất hơn hai ngày mới tới được MIT; bản nhận được ở đó mang dấu thời gian 5 giờ 59 sáng thứ Bảy, ngày 5 tháng 11. Đến lúc ấy, Keith Bostic ở Berkeley đã đăng bản sửa lỗi đầu tiên từ lâu, còn nhiều nơi chọn cách đơn giản là ngắt kết nối khỏi mạng. GAO ghi nhận con sâu đã biến mất khỏi phần lớn máy tính trong vòng 48 giờ kể từ khi xuất hiện.
Những con số nổi tiếng thực ra là phỏng đoán
Đến nay, các bài viết kể lại sự kiện này vẫn nói con sâu đã lây nhiễm khoảng 6.000 máy, tức một phần mười Internet. Năm 2023, tạp chí cựu sinh viên của Cornell viết rằng “khoảng 6.000 trong số những máy kết nối Internet ấy đã đột ngột khựng lại đầy kịch tính”. Báo cáo của GAO cũng nêu đúng con số này: con sâu “được cho là đã lây nhiễm tới 6.000 máy tính” trên tổng số hơn 60.000 máy. Báo cáo còn giải thích rằng con số ấy “được cho là dựa trên ước tính của MIT rằng 10% số máy ở đó đã bị nhiễm”, rồi được suy rộng từ MIT ra toàn mạng. Một nhà nghiên cứu ở Harvard mà GAO dẫn lời thì đưa ra con số từ 1.000 đến 3.000 máy.
Paul Graham, một người bạn của Morris, từng viết rằng mình “có mặt lúc con số ấy được nặn ra”: có người đoán rằng trên Internet có khoảng 60.000 máy tính, và con sâu có thể đã lây nhiễm mười phần trăm trong số đó. Graham viết thêm rằng “thật ra chẳng ai biết con sâu đã lây nhiễm bao nhiêu máy tính”, vì khởi động lại máy đã xóa mất dấu vết.
Các ước tính chi phí cũng chẳng chắc chắn hơn. Theo báo cáo của GAO, chính nhà nghiên cứu Harvard ấy “ước tính thiệt hại bằng tiền ở mức từ 100.000 USD đến 10 triệu USD”, tức con số 10 triệu USD là mức cao nhất trong khoảng ước tính của một người. Còn tòa thì nêu chi phí xử lý con sâu tại mỗi cơ sở là “từ 200 USD đến hơn 53.000 USD”.
Ngay cả chữ “virus” cũng là một cách gọi thỏa hiệp; GAO dùng từ này “để chiều theo cách dùng phổ biến”. Chương trình của Morris là một con sâu máy tính (worm), loại chương trình tự chạy độc lập và tự sao chép qua mạng, thay vì ẩn mình bên trong các chương trình khác. Sâu Morris cũng không phải con sâu đầu tiên: năm 1982, John Shoch và Jon Hupp thuộc Trung tâm Nghiên cứu Palo Alto (PARC) của Xerox đã mô tả những chương trình sâu thử nghiệm. Bảo tàng Lịch sử Máy tính (Computer History Museum) gọi sản phẩm của Morris là “con sâu đầu tiên gây ảnh hưởng lớn đến các hệ thống máy tính ngoài đời thực”.
Động cơ của Morris là phần còn bỏ ngỏ nhiều nhất. Tòa mô tả mục tiêu là “chứng minh sự bất cập của các biện pháp bảo mật hiện hành trên mạng máy tính”. Còn theo Bảo tàng Lịch sử Máy tính, khi xin lỗi vào năm 2008, Morris nói ông đã tìm cách ước tính quy mô Internet, chứ không nhằm gây hại.
Bản án và một kiểu đội ứng cứu mới
Bồi thẩm đoàn kết luận Morris có tội theo Đạo luật Gian lận và Lạm dụng Máy tính (Computer Fraud and Abuse Act) năm 1986, một đạo luật liên bang của Mỹ về tội phạm máy tính. Morris bị tuyên án ba năm quản chế, 400 giờ lao động công ích, nộp phạt 10.050 USD và trả chi phí cho việc giám sát ông. Tháng 3 năm 1991, chính tòa phúc thẩm liên bang nói trên đã giữ nguyên phán quyết kết tội.
Chỉ trong vài tuần, chính phủ Mỹ đã vào cuộc. Theo báo cáo của GAO, giữa tháng 11 năm 1988, Cơ quan Chỉ đạo các Dự án Nghiên cứu Quốc phòng Tiên tiến (DARPA) thành lập Đội Ứng cứu Khẩn cấp Máy tính, gọi tắt là CERT, tại Viện Kỹ thuật Phần mềm của Đại học Carnegie Mellon. Nòng cốt của CERT là một trung tâm điều phối gồm năm người. Báo cáo viết thêm rằng DARPA coi CERT là “một mô hình thí điểm cho các tổ chức tương tự ở những cộng đồng máy tính khác”.
Sai lầm thật sự nằm ở đâu
Morris thật ra có tính đến khả năng trục trặc. Ông biết quá nhiều bản sao sẽ khiến con sâu bị lộ và có thể làm sập máy, nên đã viết một bước kiểm tra. Rồi ông viết thêm một ngoại lệ để bảo vệ con sâu trước những người phòng thủ có thể nói dối, và ngoại lệ ấy áp dụng cho mọi lần thử tái nhiễm, dù có bao nhiêu lần đi nữa.
Một quy tắc cứ bảy lần mới kích hoạt một lần thì nghe có vẻ thận trọng. Cái giá thật của quy tắc ấy là xác suất đó, nhân với tần suất câu hỏi được đặt ra, nhân tiếp với số máy cùng hỏi, rồi đem so với tốc độ các bản sao thừa bị loại bỏ, dù bằng cách nào. Ngày nay, đúng phép tính ấy vẫn nằm trong cơ chế thử lại (retry), vòng lặp kết nối lại và kiểm tra tình trạng hoạt động (health check). Quy tắc nào trong hệ thống của bạn nghe thì hiếm, nhưng lại chạy với mọi yêu cầu (request)?
Bài liên quan
Đọc bằng ngôn ngữ khác: English
Nguồn
- United States v. Morris, 928 F.2d 504 (2d Cir. 1991), phán quyết ngày 7 tháng 3 năm 1991
- U.S. General Accounting Office, “Computer Security: Virus Highlights Need for Improved Internet Management”, GAO/IMTEC-89-57, tháng 6 năm 1989
- Toàn văn báo cáo GAO/IMTEC-89-57 (bản lưu trữ trên ibiblio)
- Mark W. Eichin và Jon A. Rochlis, “With Microscope and Tweezers: An Analysis of the Internet Virus of November 1988”, MIT, 1989: phần dòng thời gian sự kiện
- Mark W. Eichin và Jon A. Rochlis, “With Microscope and Tweezers”: phần mô tả chương trình
- Eugene H. Spafford, “The Internet Worm Program: An Analysis”, báo cáo kỹ thuật CSD-TR-823 của Đại học Purdue, 1988
- Paul Graham, “The Submarine”, chú thích số 4
- Paul Graham, “Beating the Averages”
- Computer History Museum, “Revolution: The First 2000 Years of Computing”, phần mạng máy tính: sâu Morris
- Russ Cox, “Worms and Distributed Computations”, research!rsc, 2008 (về các chương trình sâu năm 1982 của Shoch và Hupp tại Xerox PARC)
- Cornellians, “The ‘Morris Worm’: A Notorious Chapter of the Internet’s Infancy”, tháng 11 năm 2023
- Ảnh bìa: Robert Tappan Morris năm 2008. Ảnh do Trevor Blackwell chụp, qua Wikimedia Commons, CC BY-SA 3.0
