Phím nhấn bị lãng quên làm chao đảo Phố Wall

Khám phá cách một dòng code bị bỏ sót gây ra thảm họa, âm thầm "thổi bay" hàng triệu USD chỉ trong vài phút.

·6 phút đọc

two broken glass building windows

Cuộc Chảy Máu Tài Chính Thầm Lặng

Hầu hết mọi người đều cho rằng những thảm họa kinh hoàng thường sẽ tự thông báo bằng một tiếng nổ chói tai. Nhưng thảm họa tốn kém nhất trong kỷ nguyên tài chính hiện đại lại bắt đầu trong một sự im lặng đến đáng sợ.

Vào một buổi sáng thứ Tư hoàn toàn bình thường, một chương trình giao dịch tự động bắt đầu thực hiện các lệnh với tốc độ chóng mặt: chính xác 212 lần mỗi giây. Nó điên cuồng mua cổ phiếu ở mức giá cao và ngay lập tức bán tháo chúng ở mức giá thấp hơn.

Đến khi các kỹ sư hoảng loạn cuối cùng cũng ngắt được kết nối sau đúng 45 phút 11 giây, thiệt hại đã ở mức thảm khốc. Công ty đã bị “chảy máu” mất 440 triệu USD, làm mất ổn định toàn bộ thị trường chứng khoán Hoa Kỳ và về cơ bản là tự ký vào bản án tử hình cho chính mình.

Thành thật mà nói, tôi đã phải đọc đi đọc lại bản báo cáo kỹ thuật chính thức ba lần mới dám tin. Làm thế nào mà một “người khổng lồ” tại Wall Street lại có thể vô tình để toàn bộ tài sản ròng của mình bốc hơi trước cả giờ nghỉ giải lao uống cà phê?

Hiểm Họa Từ Mã Chết (Dead Code)

Công ty đó là Knight Capital Group, một tập đoàn dịch vụ tài chính khổng lồ xử lý hàng tỷ đô la giao dịch mỗi ngày. Họ đang chuẩn bị cho một chương trình bán lẻ thị trường chứng khoán mới. Để sẵn sàng, các kỹ sư của họ đã viết phần mềm giao dịch mới và triển khai nó trên khắp mạng lưới máy chủ của mình.

Nhưng họ đã phạm phải một sai lầm chết người. Một kỹ thuật viên đã cập nhật bảy trong số tám máy chủ giao dịch chính của công ty. Họ chỉ đơn giản là quên nhấn các phím để cập nhật máy chủ thứ tám.

Phím bấm bị bỏ quên đó đã để lại máy chủ thứ tám chạy phần mềm cũ, không tương thích. Tồi tệ hơn, mã mới đã tái sử dụng một “flag” (cờ hiệu) phần mềm cũ — một công tắc đúng/sai đơn giản. Trên các máy chủ đã cập nhật, công tắc này hoạt động hoàn hảo để điều phối các đơn hàng mới.

Nhưng trên máy chủ thứ tám bị bỏ quên, nó đã đánh thức một đoạn mã thử nghiệm đang ngủ yên từ năm 2003 có tên là “Power Peg”. Power Peg chưa bao giờ được định sẵn để sử dụng trên thị trường thực tế. Mục đích duy nhất của nó là kiểm tra áp lực (stress-test) các hệ thống nội bộ bằng cách cố tình làm mất tiền nhanh nhất có thể theo khả năng tính toán của máy tính.

Cỗ Máy Chỉ Làm Đúng Những Gì Được Bảo

Khi thị trường mở cửa lúc 9:30 sáng, bảy máy chủ đã cập nhật xử lý các giao dịch một cách bình thường. Nhưng bất kỳ lệnh nào được chuyển đến máy chủ thứ tám đều kích hoạt mã “thây ma” Power Peg.

Đội ngũ IT đã theo dõi màn hình của họ trong sự kinh hãi tột độ. Mọi công cụ chẩn đoán mà họ chạy đều báo cáo hệ thống ổn định, bởi vì về mặt kỹ thuật, phần mềm không hề bị hỏng. Hệ thống đã làm chính xác những gì nó được lập trình để làm.

Nó tràn ngập thị trường với các lệnh thất thường, khiến giá cổ phiếu biến động điên cuồng. Các thuật toán giao dịch tự động khác nhận thấy sự hỗn loạn và nhảy vào, làm khuếch đại thiệt hại. Có lẽ bạn đã từng nghe những câu chuyện về việc một sự cố đơn giản suýt chút nữa đã hủy diệt chúng ta trong Chiến tranh Lạnh. Đây chính là phiên bản tương đương trong lĩnh vực tài chính, được thúc đẩy hoàn toàn bởi sự tham lam tự động hóa.

Cái Giá Của Việc Quá Nhanh

Các kỹ sư đã cuống cuồng tìm hiểu chuyện gì đang xảy ra. Trong cơn hoảng loạn, họ đã khôi phục (roll back) phần mềm mới trên bảy máy chủ đầu tiên. Đây là quyết định tồi tệ nhất có thể.

Giờ đây, tất cả tám máy chủ đều hoạt động với mã cũ, nghĩa là mọi máy chủ đơn lẻ đều đang kích hoạt Power Peg. Tình trạng chảy máu tài chính tăng tốc theo cấp số nhân. Mãi cho đến khi họ trực tiếp rút phích cắm các bộ định tuyến mạng giao dịch bên ngoài, cơn ác mộng mới kết thúc.

Sự thất bại dây chuyền tốc độ cực cao này chính xác là lý do tại sao NASA tin dùng các bộ vi xử lý từ thập niên 1970 cho các sứ mệnh không gian quan trọng. Các hệ thống cũ hơn, được kiểm thử nghiêm ngặt với tốc độ xử lý chậm hơn cho phép con người có thời gian thực tế để phản ứng khi mọi thứ đi chệch hướng.

Một sai sót nhỏ giờ đây không chỉ gây ra một sự bất tiện nhẹ nhàng nữa. Giống như tại sao nửa mét lại tiêu tốn hàng triệu đô la trong các thảm họa kỹ thuật vật lý, một bản cập nhật phần mềm bị bỏ quên có thể dẫn đến sự sụp đổ toàn bộ hệ thống.

Chúng ta xây dựng những đế chế kỹ thuật số có khả năng thực hiện hàng nghìn quyết định quan trọng mỗi giây, nhưng chúng vẫn được bảo trì bởi những con người mệt mỏi và hay quên. Chuyện gì sẽ xảy ra khi dòng mã ngủ yên tiếp theo thức giấc trong một hệ thống còn quan trọng hơn cả thị trường chứng khoán?

Bài viết liên quan

← Quay lại Blog