Từ một subdomain bị lãng quên đến điều khiển từ xa cả một đội xe điện: Bài học bảo mật sâu sắc
Một nhà nghiên cứu bảo mật đã phát hiện lỗ hổng nghiêm trọng cho phép chiếm quyền điều khiển từ xa toàn bộ hệ thống xe điện thông minh, từ việc mở khóa xe cho đến thay đổi dữ liệu tài chính. Vấn đề cốt lõi không nằm ở kỹ thuật phức tạp mà đến từ chuỗi sai sót cơ bản trong quản lý danh tính, xác thực và phân quyền.

Từ một subdomain bị lãng quên đến điều khiển từ xa cả một đội xe điện: Bài học bảo mật sâu sắc
Một nhà nghiên cứu bảo mật đã phát hiện lỗ hổng nghiêm trọng trong hệ thống backend của một công ty cho thuê xe điện, cho phép kẻ tấn công mở khóa xe từ xa, chỉnh sửa dữ liệu người dùng và thậm chí can thiệp vào toàn bộ hoạt động vận hành. Đáng chú ý, con đường dẫn đến cuộc tấn công không bắt đầu từ những kỹ thuật hack phức tạp mà từ một subdomain bị lãng quên, một tài khoản quản trị viên với mật khẩu yếu và sự thiếu vắng hoàn toàn của các lớp xác thực bổ sung.
Câu chuyện bắt đầu khi công ty xe điện này vừa triển khai một đội xe mới tại thành phố của nhà nghiên cứu. Trong khi đa số người dân chỉ thấy một phương tiện di chuyển mới, anh lại nhìn thấy "một đội quân thiết bị kết nối internet chạy trên một backend chưa ai khám phá". Chỉ với tên công ty và một chút kỹ năng enumerate subdomain, anh đã nhanh chóng tìm ra ba thành phần quan trọng: website WordPress, API REST và một Angular panel dành cho nhà điều hành không hề được liên kết công khai.
Mọi ngõ cụt đều dẫn đến một lối vào
Việc tấn công trực tiếp vào panel gần như thất bại hoàn toàn. Các route được bảo vệ chặt chẽ bằng xác thực, mã JWT tự tạo bị backend từ chối, SQLMap chạy trên form đăng nhập không tìm thấy lỗ hổng SQL injection nào, và các file nhạy cảm như .git, .env cũng không thể truy cập.
Thế nhưng, chính API WordPress công khai đã hé lộ con đường tấn công: nó tiết lộ user ID 1 với tên đăng nhập admin. Với một suy đoán táo bạo, nhà nghiên cứu đã thử dùng chính định danh này trên panel đăng nhập của hệ thống vận hành. Kết quả thật bất ngờ: backend trả về thông báo khác biệt giữa "tài khoản không tồn tại" và "mật khẩu sai". Điều đó xác nhận rằng tài khoản admin này tồn tại trong hệ thống vận hành.
Chuỗi sai sót: Mật khẩu yếu và không có giới hạn tốc độ
Sau khi xác nhận danh tính, nhà nghiên cứu bắt đầu thử brute-force. Không có bất kỳ cơ chế giới hạn tốc độ nào (rate limiting) được áp dụng, và một mật khẩu yếu cuối cùng cũng bị đoán ra. Đây chính là điểm mấu chốt: chỉ một danh tính đã biết, một vòng lặp đoán mật khẩu và không có lớp bảo vệ thứ hai đã tạo ra một phiên đăng nhập hợp lệ.
Chiếc JWT nhận được còn tệ hơn cả dự đoán. Tài khoản có quyền admin cấp 1000 và token có hiệu lực lên tới 950 ngày. Một phiên đăng nhập chỉ cần lấy được một lần sẽ hoạt động trong nhiều năm, trừ khi ai đó chủ động thu hồi.
Từ đọc dữ liệu đến điều khiển thiết bị vật lý
Với phiên đăng nhập hợp lệ, mọi thứ thay đổi hoàn toàn. Nhà nghiên cứu có thể truy cập vào một kho dữ liệu khổng lồ: hàng rào địa lý, danh sách thiết bị IoT, thông tin của hơn 408.000 người dùng, dữ liệu giao dịch, công ty, và cả thông tin tài chính. Bản đồ điều hành hiển thị vị trí của từng xe, từng trạm sạc và garage.
Điều đáng sợ hơn là panel này không chỉ đọc dữ liệu. Nó có quyền ghi, thay đổi trạng thái và gửi lệnh trực tiếp đến phần cứng IoT. Các nút "Mở khóa", "Khóa" và "Khởi động lại" có mặt trên form chỉnh sửa từng phương tiện. Khi gửi lệnh mở khóa tới một chiếc xe cụ thể (pk_veiculo: 699), giao diện hiển thị thông báo thành công. Nhưng điều đó chưa đủ để chứng minh lệnh đã đến được thiết bị thật.
Nhà nghiên cứu đã nhờ một người bạn đứng cạnh chiếc xe, quay video ngay tại thời điểm gửi lệnh. Kết quả thật đáng kinh ngạc: chiếc xe tự mở khóa, đèn bật sáng và sẵn sàng hoạt động mà không cần ai quét mã QR hay thanh toán.
Những ngõ cụt đáng học hỏi
Không phải mọi hướng tấn công đều thành công. Việc phân tích ứng dụng Android (Flutter) tốn nhiều công sức nhưng chỉ cung cấp thông tin về API, không giúp vượt qua xác thực. Việc gửi truy vấn quá rộng (toàn quốc) để tìm vị trí xe đã khiến backend kích hoạt cơ chế phòng thủ và thu hồi token. Tấn công SQLi và giả mạo JWT cũng đều thất bại.
Kết luận: Không có gì bí ẩn, chỉ là sự cẩu thả
Nhà nghiên cứu kết luận rằng lỗ hổng này không đến từ một lỗi kỹ thuật cao siêu nào. Nó là sự chồng chất của nhiều vấn đề cơ bản: mật khẩu không có lớp xác thực thứ hai, không giới hạn tốc độ đăng nhập, không xác nhận thêm khi thực hiện lệnh điều khiển vật lý, và phân quyền quá rộng rãi.
Với chỉ một mật khẩu admin bị đánh cắp, kẻ tấn công có thể sử dụng toàn bộ đội xe miễn phí, lừa đảo, gây tổn thất vận hành, tiếp lộ dữ liệu người dùng và tạo ra rủi ro an toàn vật lý ở quy mô lớn. Câu chuyện này là một lời nhắc nhở rằng ngay cả hệ thống "thông minh" nhất cũng có thể sụp đổ chỉ vì những sai sót bảo mật cơ bản nhất, và những thứ tưởng chừng vô hại như một subdomain bị lãng quên lại có thể trở thành cánh cửa dẫn đến hậu quả nghiêm trọng.
Sơ đồ luồng hoạt động của dịch vụ xe điện
Giao diện hiển thị vị trí và thông tin chi tiết của xe trên bản đồ
Form edit và các nút điều khiển IoT trên panel quản trị
Bài viết liên quan

Công nghệ
Startup kế toán AI Rillet gọi vốn 100 triệu USD, trở thành kỳ lân chỉ trong 48 giờ
21 tháng 8, 2026

Công nghệ
TikTok chi 400 triệu USD để dàn xếp vụ kiện vi phạm quyền riêng tư trẻ em của Bộ Tư pháp Mỹ
21 tháng 8, 2026

Công nghệ
Flycam biến hình HoverAir Versa bị chặn tại Mỹ chỉ sau 3 ngày lên sóng
21 tháng 8, 2026