7 điểm bởi GN⁺ 2024-09-27 | 4 bình luận | Chia sẻ qua WhatsApp
  • 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ạo Sid session 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  
    
  • Sid là token phiên, còn Vinkey là 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ố token là 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:
    1. Tạo token đại lý và trích xuất giá trị "token" từ HTTP response header
    2. Tìm ra email và số điện thoại của nạn nhân
    3. 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
    4. 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

 
aer0700 2024-09-28

Ôi, thật kinh khủng.

 
unsure4000 2024-09-27

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.

 
bbulbum 2024-09-30

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ý..

 
GN⁺ 2024-09-27
Ý 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

    • Vì vậy, nạn trộm xe đã tăng vọt ở các thành phố như Milwaukee và Chicago
    • Có thể trộm xe chỉ với một sợi cáp USB bị bẻ cong đơn giản
  • 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

    • Nhân viên đại lý có thể lạm dụng điều này để theo dõi, quấy rối người khác
  • 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

    • Đặt ra câu hỏi vì sao doanh nghiệp theo dõi xe thì được xem là ổn, còn người khác làm vậy lại thành vấn đề
  • Vấn đề là Kia đang nắm giữ rất nhiều dữ liệu về xe và chủ sở hữu

    • Lỗ hổng này đã được vá, nhưng vấn đề dữ liệu thì vẫn còn đó
  • 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

    • Chiếc Kia từng sở hữu trước đây tiêu thụ 1 quart dầu mỗi 1.000 dặm trước khi đạt 100.000 dặm
  • 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

    • Tò mò liệu có thể sản xuất xe không kết nối hay không
  • 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 ý

    • Tuy nhiên, Kia vẫn còn rất nhiều điều cần cải thiện
  • Nghĩ rằng không nên kết nối xe với Internet