Honda Civics và dịch vụ đỗ xe hộ độc hại
(juniperspring.org)- Head unit trên Honda Civic đời 2021 có thể chấp nhận các bản cập nhật được ký bằng khóa thử nghiệm AOSP công khai qua đường cập nhật USB, cho phép người có quyền truy cập vật lý thực thi mã tùy ý
- Bản cập nhật của Honda được áp dụng qua Android recovery, và ngay cả khi binary
recoveryđã bị chỉnh sửa, logic xác minh chữ kýverify_filevẫn trùng với AOSP mặc định - Nếu ký bằng khóa thử nghiệm AOSP công khai và định dạng USB drive đúng cách, có thể cài mã mong muốn mà không cần
suhaysetuid; tác giả gọi đây là tấn công EvilValet - Công cụ mới ota-builder giúp dễ dàng chuẩn bị các tệp cập nhật mà head unit chấp nhận, còn apk-rebuilder chuyển tệp cập nhật thành cây đầu ra phục vụ reverse engineering
- Dự án đã hoàn thành phần lớn công việc nghiên cứu, nhưng kho mã chưa bị bỏ dở; vẫn cần đóng góp về thông tin phiên bản, toolchain, custom theme và cải thiện ánh xạ AIDL
Bối cảnh cập nhật dự án
- Ba năm trước, công việc ban đầu nhằm tìm hiểu và reverse engineer head unit của Honda Civic đời 2021 đã được công bố, và bản cập nhật này tổng hợp tiến triển kể từ đó
- Phản hồi ban đầu rất đáng khích lệ, và bước tiến lớn nhất đến từ quá trình phân tích quy trình cập nhật
Chìa khóa của vương quốc
- Honda hỗ trợ cập nhật head unit qua USB, và cuối cùng một tệp cập nhật AOSP đã ký nằm trong USB drive sẽ được chuẩn bị và áp dụng thông qua Android recovery
- Có nhiều bước kiểm tra riêng của Honda, nhưng khóa thử nghiệm AOSP được biết công khai vẫn còn trong
res/keys, và logic chữ kýverify_filecủa binaryrecoveryđã chỉnh sửa cũng khớp với AOSP mặc định - Nếu định dạng USB drive phù hợp và ký bằng khóa thử nghiệm AOSP công khai, có thể cài bất kỳ nội dung nào mong muốn lên head unit mà không cần quyền root sẵn có
- Không cần kiểu truy cập root thông thường là đặt
setuidchosu - Chỉ cần head unit có nguồn và kẻ tấn công có thể truy cập vật lý vào cổng USB phía trước nhất, đường cập nhật này cho phép thực thi mã tùy ý trên head unit
- Không cần kiểu truy cập root thông thường là đặt
- Kiểu tấn công này tương tự evil maid attack khi ai đó có quyền truy cập vật lý vào phòng khách sạn, nhưng vì cần vào được khoang nội thất xe nên được gọi là EvilValet
- Trong kịch bản ví dụ, nhân viên valet của khách sạn cài bản cập nhật qua USB, và sau khi xe được trả lại, người lái sẽ không biết head unit đã bị thay đổi
- Bài viết này không phải tài liệu kỹ thuật chi tiết; xem thêm trong tài liệu Display Audio Update Files
- Công cụ mới ota-builder giúp dễ dàng chuẩn bị các tệp cập nhật mà head unit chấp nhận
- Dù vẫn ở giai đoạn đầu, việc tạo một tệp cập nhật để cài chẳng hạn binary
sucó bậtsetuidnay đã trở nên đơn giản
- Dù vẫn ở giai đoạn đầu, việc tạo một tệp cập nhật để cài chẳng hạn binary
- Có lý do rất mạnh để tin rằng mọi bản cập nhật đều được ký bằng khóa thử nghiệm AOSP công khai, nhưng tác giả chưa tiếp cận được mọi tệp cập nhật chính thức có thể có và mọi filesystem của các biến thể head unit
- Các head unit đã được xác minh đều có khóa thử nghiệm AOSP trong
res/keys, nhưng do từng cài HondaHack nên cũng có khả năng khóa đã được chèn vào keystore - Tệp cập nhật phần mềm EU công khai
MRC_EU_SW_v12_4.zipđược ký bằng khóa thử nghiệm, và đây là tệp tải từ diễn đàn công khai rồi giữ nguyên không sửa đổi - Khả năng rất cao là mọi bản cập nhật đều dùng khóa thử nghiệm AOSP, nhưng vẫn cần thêm đóng góp để củng cố hoặc bác bỏ giả thuyết này
- Các head unit đã được xác minh đều có khóa thử nghiệm AOSP trong
Xây dựng công cụ
- Ngoài quy trình cập nhật, công việc hữu ích nhất khác là phát triển apk-rebuilder
- apk-rebuilder nhận tệp cập nhật Honda Civic lấy từ Internet làm đầu vào và tạo ra một cây tệp đầu ra sạch, tự động hóa những việc mà một reverse engineer thường phải làm thủ công
- Thực hiện giải mã tài nguyên
- Thực hiện tái dựng mã
.smali - Thực hiện đóng gói lại tệp APK
- Thực hiện trích xuất ramdisk
- Và các tác vụ khác
- Vì không thể công bố mã nguồn Honda thực tế, apk-rebuilder đóng vai trò như một hàm nhận tệp cập nhật mà kho công khai không lưu trữ, rồi xuất ra mã Honda
.smali, tài sản hình ảnh và các thành phần khác - Đầu ra được tạo tuân theo cấu trúc thư mục rõ ràng, nên có thể tham chiếu trong tài liệu mà không cần tải lên chính các tệp nhạy cảm
Việc còn lại và lời kêu gọi đóng góp
-
Các phiên bản đã biết
- Quy trình cập nhật có lỗ hổng và phụ thuộc nhiều vào số phiên bản
- Số phiên bản có thể bị giả mạo nên không giới hạn khả năng chạy mã không được ký
- Để tạo tệp cập nhật, cần biết phiên bản mà head unit mong đợi
- Việc sửa đổi phần mềm head unit không khớp với bản build đang dùng có thể dẫn tới hành vi ngoài ý muốn và recovery loop
- Người dùng lái Honda Civic thế hệ 10 và am hiểu kỹ thuật có thể đóng góp vào mục Known Versions, Display Audio Software trong kho mã
- Những người đặc biệt táo bạo có thể đọc mã của
ota-buildervà thử flash bản cập nhật, nhưng nếu head unit khác thiết bị tham chiếu thì có thể rơi vào recovery loop và thiết bị bị soft-brick
-
Toolchain
- Trên máy cục bộ hiện có một toolchain mang tính thử nghiệm và vẫn đang trong quá trình hoàn thiện
- Toolchain này nhận mã
.cứng viên và biên dịch cho ARMv7 với cùng phiên bản compiler và build flags như binary vendor gốc - Công cụ này là thiết yếu trong quá trình tìm hiểu quy trình cập nhật
- Ở trạng thái hiện tại, nó dùng Docker rất nhiều, khá lộn xộn và gắn chặt với một workflow cụ thể; tác giả muốn công bố một triển khai sạch hơn
-
Custom theme
- Trong lúc vibe-coding với apk-renderer, tác giả đã khám phá phần nào về custom theme
- Custom theme nằm trong nhánh fork AOSP framework của Mitsubishi, và các ứng dụng head unit được thu gọn để trông đợi các resource ID hardcode, nên khả năng việc phân phối sẽ khó khăn
- Để phân phối custom theme, nhiều khả năng phải chỉnh sửa vendor framework một cách rất tinh vi và viết công cụ để tự động hóa việc đó
- Đây không phải việc đơn giản và có thể không đáng với công sức, nhưng người đóng góp vẫn rất được chào đón
-
Cải thiện aidl-rebuilder
- Công việc cho một công cụ phân tích tệp
.smaliđể tạo và ánh xạ mọi giao diện AIDL của head unit đã được bắt đầu - Công cụ hoạt động được, nhưng độ chính xác vẫn chưa được rà soát đầy đủ
- Công việc này mở ra khả năng cho các ứng dụng tùy biến như đồng hồ tốc độ ảo
- Công việc cho một công cụ phân tích tệp
Suy nghĩ về tài liệu hóa và LLM
- Tác giả đặt trọng tâm vào tooling hơn là tài liệu tham khảo
- Nếu có các công cụ đáng tin cậy và có tính quyết định để ánh xạ mã head unit sang dạng dễ hiểu hơn, người dùng có thể dùng LLM để truy vấn dạng biểu diễn đó và trả lời các câu hỏi cụ thể
- Vì mã head unit là nguồn chân lý, có thể giảm gánh nặng duy trì tài liệu tham chiếu vốn dễ lệch khỏi mã thực tế
- Hướng dẫn cho người dùng kết nối với head unit bằng ADB vẫn hữu ích
- Khi bản thân mã Java đã có thể được LLM sử dụng, việc duy trì tài liệu riêng mô tả hành vi của mã Java trở thành gánh nặng bảo trì
Kết luận
- Phần lớn công việc nghiên cứu dự định cho head unit đã hoàn tất
- Đây vẫn là dự án có thể tiếp tục đào sâu, nhưng tác giả nhiều khả năng sẽ chuyển sang các dự án khác trong tương lai
- Kho mã không bị bỏ dở, và PR luôn được chào đón
1 bình luận
Ý kiến trên Hacker News
Bản cập nhật Honda Civic thế hệ 10 được Honda phát hành qua USB định dạng đặc biệt, và thực chất chỉ là gói khôi phục từ thời Android 4.2.2rc1 với việc Honda chỉ thêm bước kiểm tra phiên bản
Có thể đánh lừa bước kiểm tra phiên bản này, và gói được ký bằng AOSP test keys công khai, nên chỉ cần có quyền truy cập vật lý vào cổng USB phía trước là có thể ký gói tùy ý để flash và thực thi mã tùy ý trên head unit
Không cần root/su, đã thử chạy đến cùng trên Civic 2021, và cũng đã xác nhận riêng rằng file cập nhật chính thức cho thị trường EU cũng dùng chữ ký AOSP test keys
Phần lớn ô tô trên đường có bảo mật infotainment và điện tử on-board rất tệ, và với micro, camera, bộ thu GNSS, Wi‑Fi, Bluetooth trên xe đời mới, chúng đang dần biến thành các nền tảng giám sát di động
Trong Information Security Manual của chính phủ Úc tháng 3/2026, đã bổ sung biện pháp kiểm soát yêu cầu không kết nối thiết bị chính phủ với hệ thống infotainment trên xe, và không xem tài liệu nhạy cảm hay nói chuyện nhạy cảm trong hoặc gần xe đã kết nối
https://www.cyber.gov.au/business-government/asds-cyber-secu...
Những người có thể bị ảnh hưởng bởi kiểu tấn công này vốn đã có quy trình làm việc và thiết bị tin cậy riêng, còn các cơ quan cảnh sát Mỹ cũng đã có quy định tương tự với xe thuê từ sau khi OnStar xuất hiện
Phần lớn dữ liệu telematics gây rủi ro cho người bình thường thì đằng nào cũng đang bị đem bán
Một mặt người ta đấu tranh chống lại việc quyền sở hữu phần cứng ngày càng bị thu hẹp trên hầu hết thiết bị trong đời sống, nhưng khi một thiết bị mở hơn xuất hiện thì lại quay sang công kích nó
Trong công nghệ, mô hình đe dọa từ trước đến nay luôn giả định rằng nếu kẻ tấn công có quyền truy cập vật lý vào thiết bị và có đủ thời gian thì coi như xong
Trạng thái nửa vời như hiện nay là tệ nhất: chiếc xe vừa là thiết bị xâm phạm quyền riêng tư giám sát người dùng suốt lúc lái, vừa là thiết bị thiếu an toàn để lộ dữ liệu đó cho bất kỳ ai hơi có hứng thú một chút
Nếu dữ liệu có thể bị tịch thu thì tốt hơn là đừng lưu cục bộ, và theo luật có thể bạn bị buộc phải mở khóa, nhưng ở Mỹ thì bạn đáng ra phải an toàn khi từ chối cung cấp mật khẩu
Về mặt kỹ thuật, Google và Apple đã cải thiện mạnh bảo mật vật lý, còn GrapheneOS tiến thêm một bước bằng cách giảm bề mặt tấn công và bổ sung các tính năng tốt trên nền tảng đó. Đặc biệt, khi tự động khởi động lại được áp dụng rộng rãi, kết luận kiểu “có truy cập vật lý là xong” với điện thoại có thể cần được xem xét lại
https://grapheneos.org/features#auto-reboot
https://discuss.grapheneos.org/d/35728-demystifying-phone-un...
Chỉ vì một kẻ tấn công đủ tinh vi và dai dẳng có thể chiếm quyền bất kỳ thiết bị nào bằng truy cập vật lý không có nghĩa là bạn nên thiết kế sao cho ai cũng làm điều đó dễ dàng
Ở đây Honda trông còn hợp lý hơn khá nhiều hãng xe khác
Nếu là nhân viên valet ác ý có thể tiếp cận vật lý với xe, họ sẽ không phí thời gian hack head unit mà просто giấu thiết bị nghe lén ở đâu đó trên xe
Với lại, tôi cũng không nghĩ người lái Civic lại trở thành mục tiêu của cơ quan tình báo
Head unit thường chứa dữ liệu lịch sử như cơ sở dữ liệu SQLite danh bạ còn lại sau khi đồng bộ, lịch sử vị trí, dữ liệu cũ còn sót trong telemetry hoặc file log
Ngoài ra, head unit thường có quyền truy cập vào bus nội bộ của xe, và dù có firewall kiểu Gateway module thì thường cũng yếu. Như vụ nổi tiếng trên Honda cho phép mở khóa và cấp quyền khởi động qua CAN bus như đèn pha mà không cần thông tin mật mã, infotainment có thể mạnh hơn nhiều so với một thiết bị theo dõi đơn thuần
Hơn nữa, cài mã vào head unit hoặc lấy dữ liệu sẵn có từ đó để lại dấu vết ít hơn rất nhiều so với gắn thêm một bộ theo dõi riêng
Civic là một trong những mẫu xe phổ biến nhất nên rất dễ hòa vào nền, và các nhà khoa học, kỹ sư, nhà báo, luật sư trông “bình thường” cũng hoàn toàn có thể lái Honda Civic
Thiết bị nghe lén giấu trong xe có thể bị phát hiện, còn thứ được cài thẳng vào firmware của xe thì khả năng bị tìm ra thấp hơn
Tôi từng nghe một quản lý sản phẩm tự hào nói rằng firmware đã được ký bằng dịch vụ ký nội bộ của công ty. Bản thân điều đó là tốt
Nhưng câu hỏi thực tế lúc đó là liệu firmware có được ký để đáp ứng yêu cầu nội bộ hay không, chứ không phải quy trình cập nhật firmware có xác minh chữ ký hay không, và trên thực tế thì hoàn toàn không hề xác minh
Kiểu như “nếu không thì cập nhật thuật toán chữ ký bằng cách nào”, và điều tệ nhất là đã có thời điểm nó từng được làm đúng
Đội bảo mật yêu cầu chữ ký “an toàn hậu lượng tử”, nên phương thức ký đã bị thay đổi, và trong quá trình đó một lỗi hồi quy đã lọt vào
Tôi nghĩ có một ranh giới giữa bảo mật và việc giữ cho thiết bị còn hữu ích về lâu dài. Nguy cơ bị cài phần mềm độc hại nghe lén vào xe theo kiểu tấn công “người giúp việc ác ý” có vẻ thấp
Nhưng khi những chiếc xe này sau hơn 10 năm được chuyển cho những người muốn mày mò với chúng, thì khả năng mở phần mềm ra và tùy biến sẽ là một ưu điểm tuyệt vời
Sẽ rất hay nếu hình thành được một cộng đồng tạo ra các bản độ hữu ích và kéo dài tuổi thọ thiết bị. Trông vẫn tốt hơn nhiều so với việc người dùng cuối tháo bỏ head unit nguyên bản rồi lắp vào một bộ “máy tính bảng Android” kiểu Aliexpress, vốn rất có thể còn kém hơn thiết bị của Honda về cả bảo mật lẫn chất lượng kỹ thuật
Đây cũng có thể là một dấu hiệu tốt cho thấy họ thậm chí chưa từng có ý định khóa hệ thống khỏi chính chủ sở hữu
Nếu mặc định không định tin tất cả các bản cập nhật, thì họ đáng ra phải cung cấp một cơ chế để chủ sở hữu thực sự có thể phê duyệt cập nhật
Nếu thật sự là có chủ ý, hẳn đã có kiểu bootloader có thể mở khóa nhưng cần khóa đặc biệt, hoặc dạng công tắc khó tiếp cận
Có lẽ việc biến chiếc xe thành một chiếc máy tính khổng lồ có bánh xe là một ý tưởng tồi. Cần nghiên cứu thêm
Tôi tò mò không biết phần còn lại của bảo mật ổn đến mức nào. Head unit có lẽ được nối với CAN gateway, nên không rõ có thể gọi nó qua telematics hay không, và biết đâu còn có cách mới để lạm dụng CarPlay/Android Auto khiến nó liên lạc về nhà
Cách đó dùng được với nhiều hãng hơn là chỉ một đời Honda Civic, và chắc còn lắp nhanh hơn
Tôi thấy ngày càng nhiều dự án giảm bớt tài liệu mã nguồn với suy nghĩ rằng “mã được thiết kế tốt thì có thể đem hỏi LLM”, và thay vào đó tập trung vào tài liệu quy trình vận hành theo chức năng
Khả năng toàn bộ tài liệu của một dự án luôn khớp và được cập nhật theo mã ở mọi thời điểm thực sự là rất thấp
Nhìn chung tôi đồng ý với hướng đi đó, nhưng tiền đề vẫn là mã được thiết kế tốt
Test có thể cho thấy cách dùng dự kiến và những trường hợp biên thú vị, lại còn liên tục được chạy và đang pass nên cũng biết là chúng còn cập nhật
Đó là một lợi ích lớn nhưng hay bị đánh giá thấp khi thêm nhiều test hơn
Nếu có khả năng lập trình viên sẽ hỏi về một hành vi nào đó hay một trường hợp biên nào đó, thì rất đáng để có một bài test có thể chứng minh ngay câu trả lời, thay vì bắt họ phải suy luận lại