Tàu NEWAG Ba Lan bị khóa sau khi sửa tại xưởng bảo dưỡng bên thứ ba
(social.hackerspace.pl)- Tàu NEWAG Impuls EMU của Ba Lan gặp vấn đề dừng hoạt động sau khi được bảo dưỡng tại xưởng bên thứ ba, và 3 nhà nghiên cứu đã mất khoảng 1 năm để đảo ngược mã PLC
- Nhà sản xuất quy nguyên nhân cho lỗi bảo dưỡng và khẳng định phải bảo dưỡng tại đơn vị của hãng, nhưng trong mã có logic khóa tàu bằng lỗi giả dưới các điều kiện nhất định
- Một số phiên bản bộ điều khiển cố phân biệt xưởng bảo dưỡng bên thứ ba bằng tọa độ GPS, và có thể mở khóa bằng tổ hợp phím trong buồng lái không được tài liệu hóa
- Trong phần mềm PLC về sau, cách mở khóa bằng tổ hợp phím đã biến mất nhưng logic khóa vẫn còn, và sau một bản cập nhật nhất định, HMI thậm chí còn hiển thị cảnh báo vi phạm bản quyền
- Thiết bị telemetry GSM của tàu đã truyền các điều kiện khóa, và trong một số trường hợp còn cho thấy khả năng khóa từ xa
Đảo ngược mã PLC của NEWAG Impuls EMU
- q3k, redford, mrtick đã đảo ngược mã PLC của tàu NEWAG Impuls EMU trong khoảng 1 năm
- Các đoàn tàu gặp vấn đề bị khóa sau khi được bảo dưỡng tại xưởng bảo dưỡng bên thứ ba với những lý do tùy tiện
- Nhà sản xuất cho rằng nguyên nhân là lỗi bảo dưỡng từ xưởng bên thứ ba, và khẳng định việc bảo dưỡng phải do chính nhà sản xuất thực hiện
Các điều kiện khóa được cài trong mã
- Mã PLC chứa logic khóa tàu kèm theo mã lỗi giả
- Khóa có thể xảy ra sau một ngày cụ thể
- Khóa cũng có thể được kích hoạt khi tàu không vận hành trong một khoảng thời gian nhất định
- Một phiên bản bộ điều khiển có chứa tọa độ GPS, được dùng để giới hạn hành vi này cho các xưởng bảo dưỡng bên thứ ba
Cách mở khóa không được tài liệu hóa và các thay đổi về sau
- Có thể mở khóa tàu bằng cách nhấn một tổ hợp phím nhất định trên bảng điều khiển trong buồng lái
- Cách mở khóa này không được tài liệu hóa
- Ở các phiên bản phần mềm PLC mới hơn, cách mở khóa bằng tổ hợp phím đã bị loại bỏ nhưng logic khóa vẫn được giữ nguyên
Cảnh báo HMI và telemetry GSM
- Sau một số bản cập nhật nhất định của NEWAG, bảng điều khiển trong buồng lái hiển thị thông báo cảnh báo liên quan đến vi phạm bản quyền
- Thông báo xuất hiện khi HMI phát hiện một phần các điều kiện lẽ ra phải kích hoạt khóa nhưng tàu vẫn tiếp tục vận hành
- Tàu được trang bị thiết bị telemetry GSM
- Thiết bị này truyền các điều kiện khóa
- Trong một số trường hợp, có vẻ như tàu có thể bị khóa từ xa
1 bình luận
Ý kiến Hacker News
Những đoàn tàu này đang được khá nhiều công ty đường sắt khu vực ở Ba Lan sử dụng gần như độc quyền. Có 5 cấp bảo trì, từ P1 đến P5 là phức tạp nhất; trước đây chỉ các doanh nghiệp lớn mới đảm nhiệm từ P3 trở lên, nhưng từ vài năm trước, European Union Agency For Railways đã mở thị trường, khiến các đối thủ nhỏ hơn bắt đầu thắng thầu với mức giá thấp hơn nhiều
Vụ việc bắt đầu khi 4 đoàn tàu do SPS Mieczkowski bảo trì thậm chí không thể khởi động; công ty này phải chịu khoản phạt €500.000, còn các đoàn tàu bị đưa trả về Newag. Đồng thời, những đoàn tàu của công ty khác dù chưa hề vào bảo trì cũng bị vô hiệu hóa chỉ vì đã ở quá lâu tại một địa điểm. Cuối cùng SPS Mieczkowski thuê Dragon Sector điều tra, và họ phát hiện nhiều routine riêng biệt dùng để vô hiệu hóa tàu
Vụ việc hiện đang do Central Anti-Corruption Bureau của Ba Lan điều tra, nhưng chưa rõ Newag có bị ảnh hưởng nặng hay không. Office of Rail Transport của Ba Lan vốn là cơ quan từng liên tục nhận khiếu nại và ra lệnh xử lý chỉ vì những lỗi nhỏ trong lịch chạy tàu, nhưng trong vụ này lại rút tay, còn việc mua tàu bị ràng buộc bởi quy trình đấu thầu rất chặt nên các công ty đường sắt gần như không có dư địa để xoay xở
https://sip.lex.pl/akty-prawne/dzu-dziennik-ustaw/kodeks-kar...
Có một lượng bằng chứng khổng lồ chứng minh chuyện gì đã xảy ra, nên gần như không có cửa thoát. Dù vậy, họ vẫn đang cố thoát bằng cách nói rằng mình bị hack. Kiểu như hacker đã flash firmware lên các đoàn tàu được đối thủ bảo trì để biến chúng thành cục gạch, trong khi tọa độ GPS của các tuyến cạnh tranh lại được hardcode theo đúng nghĩa đen
Tuy vậy, xét việc Newag từng muốn tiếp tục mở rộng ở Ý, có lẽ họ sẽ không phá hoại cả những đoàn tàu đó. Dĩ nhiên cũng có thể họ nghĩ rằng làm hỏng cả khách hàng mới cũng không sao
Có một bài viết dài hơn cùng các liên kết chi tiết bổ sung bị chìm trong phần bình luận
Tiếng Ba Lan:
https://zaufanatrzeciastrona.pl/post/o-trzech-takich-co-zhak...
https://wiadomosci.onet.pl/kraj/awarie-pociagow-newagu-haker...
Tiếng Anh:
https://zaufanatrzeciastrona-pl.translate.goog/post/o-trzech...
https://wiadomosci-onet-pl.translate.goog/kraj/awarie-pociag...
Bổ sung bối cảnh thì Ba Lan được chia thành 16 voivodship, và sau các cải cách đầu những năm 2000, gần như mỗi vùng đều có công ty đường sắt khu vực riêng và cùng hợp tác với nhau. Việc có điều gì đó đáng ngờ xảy ra với các đoàn tàu Newag đã gần như là chuyện ai cũng biết suốt hơn một năm. Sự cố liên tiếp xảy ra với tàu thuộc nhiều công ty khác nhau, và các công ty đó dùng đơn vị bảo trì bên thứ ba thay vì Newag. Vì vậy, đơn vị bảo trì đã thuê các hacker, và phải mất thời gian reverse engineering mới hiểu chính xác chuyện gì đang diễn ra
https://en.wikipedia.org/wiki/Voivodeship
Làm tôi nhớ đến AARD “crash” mà Microsoft từng dùng để về cơ bản phá hỏng đối thủ DR-DOS
Mã AARD là một đoạn mã có trong bản beta của Microsoft Windows 3.1, được thiết kế để kiểm tra xem Windows có đang chạy trên MS-DOS hay PC DOS hay không, hay là trên một bản tương thích cạnh tranh như DR-DOS; nếu đúng là như vậy thì nó sẽ hiện một thông báo lỗi khó hiểu. Đoạn mã máy được mã hóa XOR, tự sửa đổi và cố tình làm rối này đã sử dụng nhiều cấu trúc và hàm DOS không được tài liệu hóa
https://en.wikipedia.org/wiki/AARD_code
https://www.geoffchappell.com/notes/windows/archive/aard/drd...
https://news.ycombinator.com/item?id=36042213
Cuối cùng thì chính con người khiến người ta không được tận hưởng cái tốt đẹp lâu dài. OS/2 Warp là một hệ điều hành tuyệt vời
Nhân tiện, DR-DOS ngay từ thời điểm phát hành đã là một sản phẩm không có lối ra. Quá rõ ràng là người dùng và OEM sẽ không mua cùng lúc hai hệ điều hành: một hệ điều hành đồ họa, và một DOS hoạt động như bootloader cho chính hệ điều hành đồ họa đó. Ý tưởng rằng thị trường DOS 16-bit độc lập, chỉ có văn bản, sẽ còn tồn tại đủ lâu để có ý nghĩa là hoàn toàn ảo tưởng, và DR-DOS cũng không quan trọng về mặt doanh số. Kể cả nếu mã AARD có xuất hiện trong bản cuối của Windows 3.x thì cũng chẳng thay đổi được gì
Nếu để tàu nằm im “quá lâu” thì nó bị vô hiệu hóa; nghe như đúng kiểu mức độ kiểm soát nền tảng mà Microsoft cũng từng muốn có
Sau khi bài viết được đăng, giá cổ phiếu Newag giảm khá mạnh; đây có phải là trường hợp đầu tiên điều chỉnh giá do Mastodon khởi phát không?
https://g.co/kgs/WVku4C
Vào ngày 21 tháng 11 năm 2022, đã có một tình huống khá buồn cười khi một đoàn tàu khác, vốn còn không đang chạy, lại từ chối hoạt động. Máy tính báo lỗi máy nén khí, nhưng sau khi kỹ thuật viên kiểm tra thì máy nén hoàn toàn không có vấn đề gì. Thế nhưng đoàn tàu vẫn không nâng pantograph, và khi phân tích mã máy tính thì người ta tìm ra điều kiện ép phát sinh lỗi
Kiểu như: nếu ngày lớn hơn hoặc bằng 21, tháng lớn hơn hoặc bằng 11, và năm lớn hơn hoặc bằng 2021 thì hãy báo lỗi máy nén khí
> 2021-11-21Có phải nhà sản xuất này đã làm tê liệt hạ tầng trọng yếu và theo nghĩa đen là bắt Ba Lan làm con tin không? Đây là một hành vi phạm tội táo tợn đến khó tin, và tôi không mấy chắc họ có thể thoát được dễ dàng
Thế giới đúng là nhỏ. Mở HN ra lại thấy một câu chuyện như phim về những đoàn tàu mà tôi đã đi nhiều lần. Hoàn toàn có thể tôi từng đi ngang qua một trong những đoàn tàu thực sự bị dừng đó
Dù sao thì điều này có nghĩa là либо không hề có code review, hoặc những người review đã chấp nhận nó vì lý do nào đó. Tôi cũng không biết khả năng nào đáng sợ hơn
Có vẻ rất rõ đây là chủ ý của nhà sản xuất tàu, và chính nhà sản xuất đã chỉ đạo viết đoạn mã đó. Có vẻ không phải kiểu một hacker lén cài vào mà quản lý không biết. Tôi thắc mắc cụ thể là ai sẽ làm loại code review nào ở đây
Đọc các bình luận khác thì có vẻ bài viết ở đầu HN đã bị thay đổi, và một số bình luận được viết dựa trên phiên bản bài báo có ít thông tin hơn nhiều. Có lẽ vì vậy nên mấy bình luận này mới gây khó hiểu
Đáng buồn là tàu Newag thực ra còn có chất lượng tốt hơn khá nhiều so với Pesa, một nhà sản xuất khác của Ba Lan. Có lẽ chúng đáng tin cậy quá nên phải tạo lỗi nhân tạo
Tôi tự hỏi ai là người đã viết ra những điều kiện độc hại này, và ai là người biết chuyện. Chẳng lẽ không có ai từng nghĩ đến việc thổi còi?
Nhân tiện, có một trang đánh giá ẩn danh của nhân viên về công ty: https://www.gowork.pl/opinie_czytaj,19587
Trông như một môi trường làm việc độc hại
Thật thú vị khi nghĩ xem chuyện này sẽ ảnh hưởng thế nào đến hợp đồng của Newag với công ty dịch vụ đường sắt châu Âu Akiem. Akiem đã ký hợp đồng trị giá 164 triệu euro với Newag cho dịch vụ và tàu dành cho Pháp
[1] https://biznes.pap.pl/pl/news/all/info/3509606,newag-inks-eu...