Pwnd Blaster: hack PC qua loa mà không cần chạm vào loa
(blog.nns.ee)- Creative Sound Blaster Katana V2X có thể bị kẻ tấn công trong phạm vi Bluetooth khoảng 15m biến thành thiết bị giám sát hoặc một Rubber Ducky từ xa bằng cách thực thi lệnh CTP và cập nhật firmware mà không cần ghép đôi hay tiếp xúc vật lý
- CTP qua USB yêu cầu xác thực challenge-response dựa trên khóa tĩnh, nhưng đường Bluetooth lại nhận cùng các lệnh CTP qua GATT characteristic mà không cần xác thực, cho phép đọc thông tin và thay đổi cấu hình
- Container firmware gồm
FBOOT,FMAIN,CHK2, và sẽ chấp nhận firmware đã bị vá nếuCHK2là checksum SHA-256 khớp, không có bước xác minh chữ ký - PoC đã tải firmware tùy biến qua BLE trong khoảng 10 phút, sau đó chiếc loa khởi động lại và tự nhận là bàn phím HID USB để gõ rồi thực thi
echo pwned - Creative sau khi được liên hệ qua SingCERT đã cho rằng đây “không tạo ra rủi ro an ninh mạng”, nên không xem là lỗ hổng; firmware mới nhất vẫn bị ảnh hưởng và chỉ có bản vá không chính thức để chặn CTP-over-Bluetooth
Cốt lõi của lỗ hổng
- Katana V2X là một soundbar kết nối với PC qua USB, và ứng dụng Creative dùng CTP để thay đổi các thiết lập như DSP, cấu hình LED và nguồn đầu ra
- Để gửi lệnh CTP qua USB, trước tiên phải qua xác thực challenge-response, và khóa là một giá trị tĩnh có thể suy ra từ file nhị phân đi kèm trong Creative App
- Việc cập nhật firmware cũng chạy trên CTP, và ảnh firmware ban đầu được trích xuất bằng cách bắt lưu lượng USB bằng Wireshark
- Trên Bluetooth Low Energy, đôi khi có thể kết nối tới thiết bị và đọc/ghi GATT characteristic mà không cần ghép đôi; ghép đôi tạo mã hóa nhưng không phải lúc nào cũng là điều kiện bắt buộc để kết nối
- Trong firmware của Katana V2X, trình xử lý CTP nội bộ được nối không chỉ với USB mà còn với Bluetooth; khi ghi
5a 09 01 02vào characteristic9e9daaec-3a10-4fe8-b69f-7397aff77886từ laptop, có thể đọc được toàn bộ chuỗi phiên bản firmware từ characteristic9e9daaeb-3a10-4fe8-b69f-7397aff77886
Xác minh firmware và chuỗi tấn công OTA
- Container firmware có
FBOOTliên quan đến chế độ khôi phục, firmware chínhFMAINchạy ở chế độ khởi động bình thường, vàCHK2là checksum SHA-256 cho toàn bộ container FBOOTvàFMAINlà mã dựa trên FreeRTOS, như chuỗi/home/jieyi/mcuos2.5/kernel/freertos-8.2.3/cho thấy, vàFMAINlớn hơnFBOOTkhoảng 6,5 lần- Thiết bị chấp nhận firmware đã vá miễn là
CHK2hợp lệ; khi nạp firmware đổi chuỗiWELCOMEthànhPATCHED, màn hình 7 đoạn lúc khởi động đã hiển thịPATCHED - Một script Python tái hiện cùng quy trình cập nhật firmware qua BLE đã tải lên firmware tùy biến mà không cần ghép đôi hay xác thực, và do tốc độ BLE nên mất khoảng 10 phút để hoàn tất
- Loa có microphone, nên về mặt lý thuyết firmware tùy biến có thể biến nó thành thiết bị giám sát bí mật, nghe lén hội thoại rồi gửi cho bên nhận qua Bluetooth
Cách chèn bàn phím USB
- Katana V2X trong cấu hình thông thường hoạt động như một thiết bị tin cậy được kết nối với PC qua USB
- Dù chưa phải là bàn phím đầy đủ, thiết bị đã tự cấu hình thành một HID Consumer Control để điều khiển media như âm lượng và phát/tạm dừng
- Có thể thêm mục report descriptor thứ hai vào USB report descriptor của firmware để thiết bị cũng được nhận diện như một bàn phím
- Trong firmware đã có sẵn routine gửi dữ liệu HID, và chỉ cần gọi nó với dữ liệu phím nhấn/thả để gửi thao tác gõ phím
- Thay vì vòng vèo qua luồng thực thi phức tạp, tác giả đã ghi đè tác vụ FreeRTOS
diagnostic, vốn dường như không làm gì đáng kể trong sử dụng bình thường, để chạy mã tùy biến khi khởi động - Tác vụ đó chờ khoảng 20 giây để hệ USB sẵn sàng, rồi với khoảng cách khoảng 20ms sẽ gõ
echo pwned, nhấn Enter và kết thúc - Bản vá cuối cùng gồm 83 byte USB report, 102 byte mã assembly ARM/Thumb cho bộ chèn phím, và 2 byte cho mỗi phím cần gửi
- Trong tấn công thực tế, có thể mở chương trình như
powershell.exerồi dán một lệnh độc hại một dòng; nếu kẻ tấn công vô hiệu hóa routine cập nhật firmware ở cả chế độ thường lẫn chế độ khôi phục, việc gỡ firmware độc hại và vá sau này có thể trở nên bất khả thi - Bluetooth của loa luôn bật ngay cả ở chế độ tiết kiệm điện, và dường như không có cách tắt
Giảm thiểu và quá trình công bố
- Creative không có đầu mối liên hệ bảo mật công khai, và ngoài biểu mẫu hỗ trợ trên website thì cũng khó tìm được kênh liên hệ thông thường
- Sau hai lần thử liên hệ qua biểu mẫu hỗ trợ, SingCERT đã tham gia làm trung gian
- Creative phản hồi với SingCERT gần hai tháng sau đó và trả lời rằng “không tạo ra rủi ro an ninh mạng nên không xem là lỗ hổng”
- Không có bản vá do Creative cung cấp, và firmware mới nhất vẫn bị ảnh hưởng
- Biện pháp giảm thiểu không chính thức chặn CTP-over-Bluetooth trong firmware, nhưng thay đổi này nhiều khả năng sẽ làm hỏng ứng dụng di động Creative
- v2x-patcher tải firmware chính thức từ máy chủ Creative, vá nó trong bộ nhớ, rồi tải lên Katana V2X được kết nối qua USB
- Mọi thử nghiệm và quá trình reverse engineering đều được thực hiện trên firmware phiên bản
1.3.230619.1820
Chi tiết reverse engineering
FMAIN.binkhông phải là một ảnh đơn mà dùng cấu trúc scatter-loaded, trong đó các offset file khác nhau được nạp vào các địa chỉ khác nhau- Phân tích tự động của Ghidra cần đúng địa chỉ base và memory map; sau khi suy luận và áp dụng layout đã được xác minh bằng cách đọc bộ nhớ thiết bị, kết quả phân tích mới hợp lệ
- Con trỏ chuỗi không được nạp trực tiếp mà qua cặp
movwvàmovt; một script tìm các cặp được nạp vào cùng thanh ghi và tạo tham chiếu DATA khi chúng trỏ tới vùng nhớ hợp lệ đã tạo ra khoảng 13.000 tham chiếu - Để thử nghiệm mà không phải nạp lại firmware mỗi lần, tác giả đã ghi đè echo handler của opcode CTP
0x54để xử lý các lệnh đọc, ghi và thực thi - Trình xử lý tùy biến cuối cùng dài 96 byte, vừa trong kích thước khoảng 106 byte của handler gốc
- Khi thực thi nhiều thao tác gõ phím bằng
mem-exectrong ngữ cảnh tác vụ xử lý USB, các độ trễvTaskDelaybị cộng dồn khiến thiết bị khởi động lại do watchdog theo từng tác vụ - Khi chèn mã gõ phím vào tác vụ dịch vụ
diagnosticthay vì gọi trực tiếp từ tác vụ USB, vấn đề watchdog đã biến mất
1 bình luận
Ý kiến trên Hacker News
Buồn cười ở chỗ có những bình luận rõ ràng là chưa đọc kỹ, hoặc thậm chí chưa đọc bài. Về bản chất thì đây giống như một bucket S3 công khai trên bo mạch thiết bị Bluetooth
Dù vậy, bản thân công trình này thực sự rất ấn tượng. Tôi cứ nghĩ việc biến một thiết bị kết nối qua USB thành đường tấn công sẽ khó hơn nhiều, nhưng hóa ra chỉ cần giả làm bàn phím, mở terminal cục bộ rồi chạy lệnh độc hại là đủ, nghe khá buồn cười. Vì đó không phải terminal có quyền quản trị nên thiệt hại sẽ bị giới hạn phần nào, nhưng trên Windows thì người dùng thường cứ bấm qua prompt UAC, nên có lẽ trên khá nhiều PC vẫn có thể giành được toàn quyền truy cập
Theo email từ SingCERT, nhà cung cấp đã nói rằng “điều này không tạo ra rủi ro an ninh mạng nên chúng tôi không xem đây là lỗ hổng”. Tức là có thể ghi firmware tùy ý qua sóng không dây vào một thiết bị đang cắm USB vào máy tính của người khác, không cần cả ghép cặp, mà vẫn không phải là lỗ hổng bảo mật sao
Điều này làm tôi tự hỏi có bao nhiêu công ty thiết bị ngoại vi khác thực chất đang vận hành không hề có đội bảo mật. Có lẽ còn rất nhiều lỗ hổng kiểu này, chỉ là chưa bị phát hiện thôi. Em trai tôi từng bị đánh thức lúc 2 giờ sáng vì lũ trẻ trong khu kết nối vào loa Bluetooth rồi bật tiếng đánh rắm lặp đi lặp lại ở âm lượng tối đa; đó chắc cũng chỉ là phần nổi của tảng băng về việc lạm dụng Bluetooth theo hướng ác ý
Theo định nghĩa, luôn tồn tại những lỗ hổng có rủi ro thấp vì tác động thấp hoặc xác suất thấp. CVE có chấm điểm, nhưng rủi ro thực tế và việc có chấp nhận rủi ro trước hay sau giảm thiểu hay không lại do ngữ cảnh sử dụng quyết định. “Không có rủi ro => không có lỗ hổng” là một suy luận sai ngay từ thiết kế, còn “không có lỗ hổng => không có rủi ro” thì còn có thể đồng ý phần nào
Nhưng việc giao diện reflash lại mở qua Bluetooth thì rất kỳ lạ. Theo tôi biết thì để ghép cặp với loa phải cần truy cập vật lý
Sửa: tôi đã nhầm. Đây là một endpoint BTLE hoạt động không cần ghép cặp. Nếu vậy thì đúng là một lỗ hổng vô lý. Mong là họ vá theo cách không tước đi khả năng chạy phần mềm của chính mình
Bài viết được trình bày tốt và rất dễ hiểu, đáng để lướt qua
Tóm lại, tác giả đã tìm ra cách ghi đè firmware tùy ý qua Bluetooth lên soundbar Creative Sound Blaster Katana V2X mà hầu như không cần xác thực hay tương tác người dùng thực chất nào
Vì soundbar này kết nối trực tiếp với máy chủ qua USB, nên họ có thể thêm descriptor vào firmware để nó được nhận diện như một bàn phím. Sau đó thì việc gửi phím bấm tới PC rất đơn giản. Soundbar cũng có microphone, nên kẻ tấn công còn có thể biến nó thành thiết bị nghe lén
Tác giả đã báo cho Creative và SingCERT, nhưng phải 2 tháng sau công ty mới trả lời rằng “điều này không tạo ra rủi ro an ninh mạng nên chúng tôi không xem đây là lỗ hổng”
Tác giả đã phát hành một trình vá firmware để vô hiệu hóa giao thức truyền bị lỗi. Đây là một cách làm khá thô bạo, có thể làm hỏng cả chức năng của ứng dụng Bluetooth chính thức, nhưng có vẻ là điều tốt nhất có thể làm được khi không có sự hợp tác từ nhà sản xuất
Ngay cả các nhà sản xuất lâu năm cũng khá thường xuyên làm thiết bị trước rồi coi phần mềm như việc xử lý hậu kỳ. Họ gần như không để tâm tới bảo mật, cũng như vòng đời phần mềm như vá lỗi, cập nhật hay thích ứng với hệ sinh thái đang thay đổi
Tôi còn từng thấy trường hợp thương hiệu thiết bị giao phần mềm cho một công ty outsource nhỏ, rồi công ty đó đóng cửa, biến mất hoặc ngừng kinh doanh, đến mức nhà sản xuất thậm chí không còn giữ cả mã nguồn. Khi đó họ cũng mất luôn khả năng cải tiến hay sửa phần mềm vận hành thiết bị, và rồi middleware, UI cùng các lớp kết nối tạm bợ cứ thế chồng chất lên nhau
Thực tế có lẽ không ít thiết bị mà firmware không phải do “nhà phát triển outsource nhỏ” viết, mà là kiểu hacker trong chuỗi cung ứng
Sao lại nghĩ nhỏ thế? Có thể dùng chính cái loa làm tác nhân tấn công mà
Bất kỳ script kiddie nào dùng LLM cũng có thể tạo ra một worm lan qua chuỗi cung ứng. Thậm chí có thể hack ngay loa trên sàn nhà máy rồi bắt nó phát nhạc Rickroll hay thứ tương tự
Không biết đến lúc đó Creative có còn khẳng định là “không tạo ra rủi ro an ninh mạng” nữa không
Thêm điểm cộng nếu trong lúc đóng lỗ hổng bảo mật lại vô hiệu hóa luôn cả chức năng flash firmware hợp lệ, khiến chính nhà sản xuất cũng phải jailbreak loa mới sửa được
Việc nhà sản xuất không coi đây là lỗ hổng, đến mức tác giả phải phát hành bản vá bên thứ ba, rõ ràng không phải dấu hiệu tốt
Muốn trở thành nạn nhân thì bạn phải sở hữu thiết bị này, kẻ tấn công phải biết điều đó, và còn phải ở trong phạm vi gần. Cứ nhớ tới câu thoại trong Fight Club là được
A = số loa ngoài thực địa
B = tỷ lệ có khả năng bị hack
C = mức dàn xếp ngoài tòa trung bình
Quyết định: nếu chi phí của việc không thu hồi hay sửa chữa lớn hơn chi phí thu hồi, thì bắt đầu thu hồi. Chi phí lớn nhất là nếu mọi người ngừng mua loa của họ trong tương lai, mà điều đó có vẻ khó xảy ra
Nếu phụ trách một tổ chức kiểu Mossad, tôi sẽ chi một phần lớn ngân sách để mua hết mọi thiết bị Bluetooth bán trên thị trường, thuê những cử nhân khoa học máy tính Israel đang rảnh việc đi tìm các lỗ hổng kiểu này, rồi biến chúng thành một bộ công cụ có thể triển khai dễ dàng
Ví dụ, bạn sẽ muốn một tài sản có thể tiếp cận các văn phòng chính phủ Iran mang theo điện thoại đi bộ quanh tòa nhà và chiếm quyền điều khiển càng nhiều máy tính càng tốt. Nghĩ lại thì chắc phải xem như họ thực sự đang làm vậy rồi
Nó gần như là một chương trình thạc sĩ kỹ thuật máy tính được xã hội hóa hoàn toàn, và vì là một tổ chức tình báo tín hiệu nên họ học những thứ như thế này. Sau khi hoàn thành 2~3 năm phục vụ, họ không có nợ vay học phí, chính phủ cung cấp khá nhiều vốn hạt giống cho startup, và hệ sinh thái TLV vận hành như một Bay Area thu nhỏ
Việc sống cùng bố mẹ cũng được xã hội chấp nhận hơn, nên một phần lớn người ở độ tuổi 20 không có nợ, chi tiêu hàng tháng thấp, có năng lực kỹ thuật mạnh nhờ nghĩa vụ quân sự, ở trong một trung tâm khởi nghiệp và có khả năng tiếp cận vốn tốt. Kết quả là có rất nhiều kỳ lân, đặc biệt trong lĩnh vực an ninh mạng (https://www.techaviv.com/unicorns)
So với Mỹ thì người ta phải dồn sức cho 4 năm đại học, gánh khoản nợ lớn, trả tiền thuê nhà, rồi chật vật tìm vốn hạt giống. Cách nghĩ kiểu “chỉ cần tận dụng chút tàn dư của một hệ thống hỏng” đã bỏ lỡ góc nhìn rằng ngay từ đầu họ có một hệ thống thành công
Nếu đây không phải thông lệ tiêu chuẩn thì tôi sẽ khá ngạc nhiên. Dù vậy, cũng có thể năng suất thấp hơn tưởng tượng nên không đáng công. Nhưng nhìn vào trường hợp lần này thì có vẻ cũng có thể mang lại kết quả khá tốt, và có lẽ phải so với những phương thức khác của các cơ quan tình báo mà chúng ta không biết
Cái nào dễ hơn, marketing hay tìm bug? :-)
Tôi viết firmware, đặc biệt là làm với firmware cho thiết bị hỗ trợ Bluetooth, và công ty đã chặn website này
Người yêu công nghệ sẽ mua một chiếc loa siêu thông minh kết nối với mọi máy tính trong nhà, điều khiển cả máy pha cà phê siêu thông minh để pha cà phê tươi mỗi khi Miles Davis bắt đầu phát
Người hiểu công nghệ thì để một cái rìu cạnh lò nướng bánh mì
Tôi đã bắt đầu mong chờ một kênh làm nội dung qua loa sẽ đăng video nói về chuyện này lên trang đầu YouTube của tôi sau chừng 4 ngày làm việc