Hack xe Kia: Điều khiển xe từ xa chỉ với biển số
(samcurry.net)- Vào ngày 11/6/2024, một lỗ hổng đã được phát hiện trên xe Kia cho phép điều khiển từ xa các chức năng quan trọng của xe chỉ bằng biển số
- Kẻ tấn công có thể âm thầm thu thập thông tin cá nhân của nạn nhân như tên, số điện thoại, địa chỉ email và địa chỉ thực
- Bằng cách khai thác lỗ hổng này, kẻ tấn công có thể tự thêm mình thành người dùng thứ hai vô hình của chiếc xe mà chủ xe không hề hay biết
- Một công cụ demo đã được tạo ra để chứng minh mức độ ảnh hưởng của lỗ hổng, nhưng chưa từng được công khai hay bị lạm dụng ngoài thực tế
- Lỗ hổng này sau đó đã được vá, công cụ nói trên không được phát hành, và đội ngũ Kia xác nhận rằng lỗ hổng chưa từng bị khai thác với mục đích xấu
Các xe bị ảnh hưởng
- Nhiều mẫu xe Kia từ năm 2014 đến 2025 bị ảnh hưởng
- Tùy theo từng mẫu xe, có thể thực hiện các chức năng như khóa/mở khóa từ xa, khởi động/tắt máy từ xa, bấm còi/bật đèn từ xa, camera từ xa v.v.
Chi tiết lỗ hổng
Khoảng 2 năm trước, chúng tôi đã tìm ra các lỗ hổng bảo mật trên hơn 12 hãng xe. Chúng tôi phát hiện những vấn đề nghiêm trọng cho phép định vị từ xa, tắt máy, mở khóa và khởi động hơn 15 triệu xe - Paul Roberts
- Sau một thời gian dài, họ quyết định xem lại các trang web của những hãng từng phát hiện có lỗ hổng trước đây
- Trang owners của Kia và ứng dụng di động khá đáng chú ý vì có thể gửi lệnh điều khiển xe qua Internet
- Trang web chuyển tiếp lệnh tới API backend thông qua máy chủ proxy, còn ứng dụng thì truy cập API trực tiếp
- Ví dụ về yêu cầu HTTP gửi lệnh mở khóa cửa từ trang owners:
POST /apps/services/owners/apigwServlet.html HTTP/2 Host: owners.kia.com Httpmethod: GET Apiurl: /door/unlock Servicetype: postLoginCustomer Cookie: JSESSIONID=SESSION_TOKEN; - Máy chủ dùng
JSESSIONIDđể tạoSidsession ID và chuyển tiếp tới API backend như sau:GET /apigw/v1/rems/door/unlock HTTP/1.1 Host: api.owners.kia.com Sid: 454817d4-b228-4103-a26f-884e362e8dee Vinkey: 3ecc1a19-aefd-4188-a7fe-1723e1663d6e Sidlà token phiên, cònVinkeylà UUID được ánh xạ với số VIN
Lỗ hổng trong hạ tầng đại lý
- Họ cũng quyết định xem xét trang web dành cho đại lý của Kia, vì muốn biết Kia xử lý dữ liệu khách hàng như thế nào khi mua xe mới
- Họ kiểm tra URL trong email mà hệ thống gửi cho khách hàng để đăng ký xe mới trên trang đại lý:
https://kiaconnect.kdealer.com/content/kDealer/… - Domain
kiaconnect.kdealer.com, vốn chưa từng thấy trước đó, khiến họ chú ý - Trong URL này, tham số
tokenlà khóa VIN, tức access token dùng một lần do đại lý tạo ra. Nó cho phép chỉnh sửa chiếc xe được chỉ định bằng tham sốvin - Khi tải URL, một yêu cầu HTTP được gửi đi để kiểm tra tính hợp lệ của token:
POST /apps/services/kdealer/apigwServlet.html HTTP/1.1 Host: kiaconnect.kdealer.com { "token": "985a49f0-1fe5-4d36-860e-d9b93272072b", "vin": "5XYP3DHC9NG310533", "scenarioType": 3, "loginPref": null } - Điều thú vị là URI request của trang đại lý cũng có dạng
/apps/services/kdealer/apigwServlet.html, tương tự như trên trang owners - Họ dự đoán có một proxy chuyển tiếp request tới API nội bộ dành cho đại lý
- Khi xem mã JavaScript, họ tìm thấy các lời gọi API thực hiện chức năng dành riêng cho nhân viên như tra cứu xe của đại lý, tra cứu tài khoản, đăng ký, hủy đăng ký v.v.
- Họ thử truy cập endpoint API bằng VIN của chính chiếc xe mình sở hữu, nhưng nhận lỗi 401 Unauthorized. Token của đại lý không hoạt động
Truy cập API đại lý bằng tài khoản thường
- Vì vậy, họ tạo một tài khoản thường trên website đại lý để sinh access token rồi thử dùng nó truy cập API, do định dạng khá giống với trang owners
- Họ thử đăng ký người dùng trên trang đại lý theo cách tương tự như trang owners và đã thành công
- Sau khi đăng nhập và cấp access token, họ gọi API tra cứu VIN vốn trước đó không truy cập được, và phản hồi chứa tên, số điện thoại, email của chủ xe
- Điều này đồng nghĩa tài khoản thường do họ tạo có thể xác thực vào cổng đại lý và, nếu dùng header kênh đã chỉnh sửa, có thể truy cập toàn bộ API dành cho đại lý
Truy cập trái phép vào xe
- Sau vài giờ phân tích mã JavaScript, họ hiểu được cách hoạt động của các endpoint đăng ký, hủy đăng ký và chỉnh sửa xe
- Chỉ cần 4 bước sau là có thể truy cập xe của nạn nhân:
- Tạo token đại lý và trích xuất giá trị "token" từ HTTP response header
- Tìm ra email và số điện thoại của nạn nhân
- Chỉnh sửa quyền truy cập của chủ sở hữu hiện tại bằng email bị lộ và VIN
- Thêm kẻ tấn công làm chủ sở hữu mới của xe
- Từ phía nạn nhân, sẽ không có thông báo nào cho biết có ai đã truy cập xe hay quyền hạn đã bị thay đổi
- Kẻ tấn công có thể lấy VIN từ biển số của ai đó, sau đó bí mật theo dõi nạn nhân qua API và gửi lệnh như mở cửa xe, khởi động máy, bấm còi v.v.
Tạo dashboard chứng minh khái niệm
- Để cho thấy mức độ nghiêm trọng của lỗ hổng, họ đã tạo một dashboard proof-of-concept cho phép kẻ tấn công (1) nhập biển số xe Kia, (2) lấy thông tin cá nhân của chủ xe, rồi (3) thực thi các lệnh điều khiển xe
- Trang "Exploit" dùng để thử truy cập trái phép vào xe, còn trang "Garage" dùng để gửi lệnh và theo dõi vị trí
- Họ thử nghiệm trên một chiếc Kia thuê đang bị khóa, và trong video ở đầu bài blog có thể thấy cảnh hack xe bằng smartphone rồi từ xa khóa/mở cửa, bật/tắt máy, bấm còi, theo dõi vị trí v.v.
Kết luận
- Cũng giống như Meta có thể vô tình đưa vào quy trình phát triển một thay đổi mã khiến ai đó chiếm được tài khoản Facebook của bạn, các hãng xe cũng có thể tạo ra những lỗ hổng tương tự trên chiếc xe của bạn
- Trong tương lai, các lỗ hổng trên ô tô sẽ tiếp tục được phát hiện
Dòng thời gian
- 06/07/24 16:40 UTC - Hỏi đội ngũ Kia về cách báo cáo lỗ hổng
- 06/10/24 13:21 UTC - Nhận phản hồi từ đội ngũ Kia
- 06/11/24 22:41 UTC - Báo cáo lỗ hổng
- 06/12/24 18:20 UTC - Gửi email nhắc ticket vì mức độ nghiêm trọng
- 06/14/24 18:00 UTC - Đội ngũ Kia phản hồi rằng đang điều tra
- 06/18/24 16:41 UTC - Gửi email nhắc ticket và ảnh chụp công cụ vì mức độ nghiêm trọng
- 06/20/24 02:54 UTC - Gửi email nhắc ticket và ảnh chụp truy cập bằng cách nhập biển số
- 08/12/24 12:30 UTC - Yêu cầu cập nhật qua email nhắc ticket
- 08/14/24 17:41 UTC - Đội ngũ Kia phản hồi rằng lỗ hổng đã được khắc phục và đang thử nghiệm
- 09/26/24 08:15 UTC - Xác nhận lỗ hổng đã được vá và công bố ra công chúng
Ý kiến của GN⁺
- Đây là một trường hợp gây sốc cho thấy việc hack ô tô đã trở thành hiện thực. Khi số lượng xe kết nối tăng lên, vấn đề lỗ hổng kiểu này sẽ còn nghiêm trọng hơn
- Vụ việc lần này cho thấy rõ sự thiếu nhận thức về bảo mật và thiết kế hệ thống lỏng lẻo của các hãng xe. Có vẻ rất cấp bách phải áp dụng vòng đời phát triển bảo mật (SSDLC), quản lý lỗ hổng phần mềm và code review
- Công nghệ điều khiển xe từ xa giúp tăng tính tiện lợi nhưng đồng thời cũng mở rộng bề mặt tấn công. Điều quan trọng là phải cân bằng giữa công nghệ, bảo mật và quyền riêng tư
- Vụ việc cũng phơi bày vấn đề của phương thức xác thực dựa trên thông tin cá nhân. Việc chỉ cần biết biển số là có thể chiếm quyền xe là quá lỏng lẻo. Cần có cơ chế xác thực mạnh hơn như sinh trắc học hoặc đa yếu tố
- Người dùng cần có khả năng nhận biết và kiểm soát tình trạng bảo mật của xe mình. Cần có các tính năng thông báo ai đã truy cập xe, đã gửi những lệnh gì
4 bình luận
Ôi, thật kinh khủng.
Tôi nghĩ chủ xe nên được cung cấp một tùy chọn phù hợp để có thể ngắt kết nối vật lý giữa xe và Internet.
Tôi cũng từng thắc mắc về cơ cấu gói cước, hóa ra họ cho dùng miễn phí cơ bản trong vài năm để kéo người dùng đăng ký..
Ý kiến trên Hacker News
Quyết định của Kia tại Mỹ khi bỏ qua bộ phận khóa liên động đã gây ra vấn đề trộm xe trên quy mô toàn quốc
Có thể tạo một ứng dụng "ride share" bằng cách crawl cơ sở dữ liệu xe Kia dễ bị tấn công để hiển thị các xe Kia gần đó và mở khóa chúng
Vấn đề là bất kỳ ai cũng có thể đăng ký làm đại lý, và đại lý có thể tra cứu cả thông tin của những chiếc xe chưa bán
Theo bài báo, ban đầu chỉ Kia và các đại lý mới có thể theo dõi xe, nhưng giờ cả những người "không được ủy quyền" cũng có thể làm được
Vấn đề là Kia đang nắm giữ rất nhiều dữ liệu về xe và chủ sở hữu
Một người có anh/em trai sở hữu xe Kia đang bị ảnh hưởng tiêu cực đến sức khỏe tinh thần vì nạn trộm xe
Sẽ không mua một chiếc xe mà phải tạo tài khoản online để kích hoạt xe
Hiện không có mẫu xe mới nào trên thị trường là không có tính năng kết nối
Với tư cách là chủ xe Kia, thấy nhẹ nhõm vì lỗ hổng đã được vá và chưa bị khai thác ác ý
Nghĩ rằng không nên kết nối xe với Internet