- Các nhà nghiên cứu bảo mật phát hiện có thể truy cập thông tin nhạy cảm của các tay đua F1 thông qua lỗ hổng trên website phân loại tay đua của FIA
- Hệ thống này vận hành tách biệt với FIA Super Licence, là cổng để tay đua đăng ký hoặc gia hạn hạng của mình (Bronze/Silver/Gold/Platinum)
- Các nhà nghiên cứu đã lợi dụng lỗ hổng mass assignment trong yêu cầu HTTP PUT để giành quyền quản trị và truy cập bảng điều khiển nội bộ
- Qua đó, họ có thể xem dữ liệu của mọi tay đua, bao gồm hộ chiếu, email, số điện thoại, hash mật khẩu, sơ yếu lý lịch và các PII khác
- Vụ việc này là một ví dụ điển hình cho thấy tầm quan trọng ngày càng lớn của quản lý bảo mật cùng với quá trình số hóa của ngành thể thao
Bối cảnh: giao điểm giữa F1 và an ninh mạng
- Trong vài năm gần đây, cùng với sự gia tăng đầu tư vào startup bảo mật và quỹ đầu tư mạo hiểm, các sự kiện networking lớn có xu hướng xoay quanh các chặng đua F1 Grand Prix
- CrowdStrike, Darktrace... đã đầu tư hàng triệu USD để làm nhà tài trợ cho các đội đua
- Bitdefender ký quan hệ đối tác an ninh mạng chính thức để phụ trách bảo mật cho đội đua
- Các nhà nghiên cứu Gal Nagli, Sam Curry, Ian Carroll khi tham dự những sự kiện này đã thử tìm kiếm lỗ hổng bảo mật trong các website hỗ trợ liên quan đến F1
- Bài blog này là phần đầu tiên trong loạt 3 phần, đề cập đến lỗ hổng đầu tiên được phát hiện trong một hệ thống liên quan đến F1
Tổng quan hệ thống phân loại tay đua của FIA
- Tay đua F1 phải sở hữu FIA Super Licence, được cấp hằng năm thông qua hiệp hội đua xe thể thao của từng quốc gia (ASN)
- Cần đáp ứng các yêu cầu nhất định về điểm số, độ tuổi, y tế và bài kiểm tra viết
- FIA đồng thời vận hành riêng hệ thống Driver Categorisation (drivercategorisation.fia.com) để quản lý hạng của tay đua từ Bronze đến Platinum
- Cổng này hỗ trợ tự đăng ký công khai, và người tham gia phải tải lên hồ sơ đăng ký hạng cùng giấy tờ tùy thân, sơ yếu kinh nghiệm
- Người sở hữu Super Licence sẽ tự động được xếp hạng Platinum
Quá trình phát hiện lỗ hổng
- Sau khi tạo tài khoản, các nhà nghiên cứu quan sát yêu cầu HTTP PUT dùng để chỉnh sửa hồ sơ
- Bản thân yêu cầu khá đơn giản, nhưng JSON phản hồi lại chứa các trường bổ sung như roles, birthDate, status
- Sau khi phân tích mã JavaScript, họ xác nhận website có nhiều vai trò như tay đua, nhân viên FIA, quản trị viên (admin)
- Các nhà nghiên cứu đã thử gửi yêu cầu PUT chứa vai trò quản trị để kiểm tra xem trường roles có thể bị cập nhật mà không có xác thực phía máy chủ hay không
Giành quyền quản trị
- Ví dụ yêu cầu như sau
"roles": [{"id": 1, "description": "ADMIN role", "name": "ADMIN"}]
- Máy chủ xử lý yêu cầu này bình thường, và trong JSON phản hồi, vai trò ADMIN đã được gán
- Khi đăng nhập lại sau bước xác thực, bảng điều khiển quản trị của FIA xuất hiện, cho phép truy cập toàn bộ chức năng phía máy chủ như phân loại tay đua, quản lý nhân viên, chỉnh sửa mẫu email...
Khả năng truy cập thông tin nhạy cảm
- Khi xem hồ sơ tay đua bằng quyền quản trị, các thông tin sau bị lộ
- Hash mật khẩu, email, số điện thoại, bản sao hộ chiếu, sơ yếu lý lịch, thông tin nhận dạng cá nhân (PII)
- Bình luận nội bộ liên quan đến việc đánh giá tay đua và lịch sử quyết định của hội đồng
- Các nhà nghiên cứu cho biết trong quá trình kiểm thử, họ xác nhận có thể truy cập hộ chiếu, giấy phép và PII của Max Verstappen, nhưng nhấn mạnh rằng họ không thực sự mở xem hay lưu lại các dữ liệu đó
- Tất cả dữ liệu thử nghiệm đã được xóa ngay lập tức, và việc xâm nhập thêm cũng được dừng lại
Công bố lỗ hổng và phản ứng
- 2025-06-03: gửi báo cáo đầu tiên cho FIA qua email và LinkedIn
- Cùng ngày, FIA đã đưa website về trạng thái offline
- 2025-06-10: FIA chính thức thông báo đã hoàn tất bản sửa lỗi toàn diện
- 2025-10-22: đăng bài blog và công khai báo cáo
Hàm ý
- Đây là ví dụ cho thấy một lỗ hổng mass assignment đơn giản vẫn có thể xuất hiện ngay cả trong những hệ thống đòi hỏi bảo mật cao
- Khi quá trình số hóa của ngành thể thao tăng tốc, nhu cầu tăng cường bảo vệ dữ liệu cá nhân và kiểm soát truy cập cũng trở nên cấp thiết hơn
- Đặc biệt với các tổ chức quốc tế như FIA, việc kiểm tra bảo mật định kỳ đối với thiết kế API và logic xác thực quyền hạn là rất cần thiết
1 bình luận
Bình luận trên Hacker News
Đây không chỉ là một lỗ hổng đơn lẻ mà là tập hợp của nhiều thất bại bảo mật
Ví dụ, việc tiếp tục giữ hồ sơ ứng viên trên máy chủ production ngay cả sau khi đã đạt mục đích là hoàn toàn không cần thiết
Điều này cũng đi ngược lại nguyên tắc giảm thiểu blast radius (phạm vi thiệt hại)
Trong tình huống như vậy thì ít nhất cũng phải được vé miễn phí trọn đời
Khoảnh khắc quy tắc này bị phá vỡ, mọi quy tắc khác sụp đổ chỉ còn là vấn đề thời gian
Ian, nếu thêm RSS feed vào website thì có lẽ sẽ tăng thêm người đăng ký thường xuyên
Điều đáng ngạc nhiên là họ đã đưa trang web xuống offline ngay trong ngày nhận được báo cáo
Tốc độ phản ứng như vậy rất hiếm thấy
Một công ty ở quy mô này mà di chuyển nhanh như vậy là điều hiếm gặp
Đây thật sự là mức độ bảo mật tệ hại đến mức đáng xấu hổ
Dù vậy, nhìn những thứ như thế này lại khiến hội chứng kẻ mạo danh của tôi dịu đi phần nào
Trong tình huống như thế này, cũng có chút tiếc vì đáng lẽ họ nên trao cho các tác giả siêu giấy phép F1 để tự lái xe luôn
Tôi tò mò không biết mọi người đã từng bị đe dọa pháp lý khi thực hiện kiểu khảo sát bảo mật này chưa
Cũng muốn biết đã từng nhận được đề nghị thưởng ở những nơi không có chương trình bug bounty hay chưa
Trong ngành có rất nhiều người vừa thiếu năng lực vừa thiếu trách nhiệm
Với những người như vậy, báo cáo bảo mật đồng nghĩa với một “việc phiền phức”, nên họ có động cơ đổ lỗi cho người báo cáo hoặc tìm cách dùng biện pháp pháp lý để né trách nhiệm
Vì thế, hoạt động ẩn danh là an toàn nhất. Nếu muốn thì sau này vẫn có thể công khai danh tính
Một kỹ sư IT phát hiện mật khẩu và báo rằng có thể truy cập phpMyAdmin, nhưng công ty đã kiện anh ta, và công ty thắng kiện tới tận tòa tối cao
Bài viết liên quan (Heise)
Những việc như vậy thường chỉ được cho phép trong khuôn khổ kiểm thử red team hoặc hợp đồng pentest chính thức
Việc nói sau đó rằng mình “có đạo đức” là không đủ
Những đề nghị như vậy nhất định phải từ chối
Sau đó suốt 8 năm không có chuyện như vậy nữa
Dạo gần đây, các công ty có vẻ hiểu hơn về những hoạt động kiểu này so với trước đây
Cách hack tôi thích nhất là đọc JS rồi chỉnh sửa request PUT
Nó hiệu quả thường xuyên hơn người ta nghĩ
Công ty cũ thì bảo mật cũng cũ
RD đã làm rất tốt, nhưng điều này hoàn toàn không khiến tôi ngạc nhiên
Tôi gần như chắc chắn hash đó sẽ là MD5
Nó khiến tôi nhớ tới xkcd 1428
Điều kỳ lạ là người vận hành website là Ian Carroll, nhưng trong ví dụ lại xuất hiện thợ săn bug bounty nổi tiếng Sam Curry