- Mô hình AI Codex đã thực hiện một chuỗi tấn công hoàn chỉnh trên smart TV Samsung thật, nâng quyền từ quyền trình duyệt lên quyền root
- Thí nghiệm được tiến hành hợp tác với OpenAI để kiểm chứng việc Codex tự động tìm và khai thác lỗ hổng bằng cách tận dụng mã nguồn firmware và quyền truy cập thiết bị
- Codex đã tìm ra lỗ hổng truy cập bộ nhớ vật lý trong driver Novatek, từ đó sửa đổi cấu trúc
cred của kernel và giành được shell root
- Trong quá trình thử nghiệm, Codex lặp lại việc thực thi lệnh và xử lý lỗi, hoạt động như một tác nhân cộng tác thời gian thực
- Kết quả này cho thấy AI không chỉ phân tích mã mà còn có thể tìm kiếm lỗ hổng bảo mật phần cứng thực tế và thực hiện tấn công
Quá trình thí nghiệm Codex hack TV Samsung
- Mô hình AI Codex trong một thí nghiệm đã mở rộng quyền thực thi mã ở mức trình duyệt thành quyền root trên smart TV Samsung thật
- Nhóm nghiên cứu đã hợp tác với OpenAI để kiểm chứng liệu Codex có thể tìm và khai thác lỗ hổng trên thiết bị phần cứng thực tế hay không
- Thí nghiệm bắt đầu từ môi trường shell trong trình duyệt đã có sẵn, rồi Codex tự động hóa quá trình giành quyền root bằng cách dùng mã nguồn firmware và quyền truy cập thiết bị theo thời gian thực
- Codex đã tìm ra lỗ hổng truy cập bộ nhớ vật lý, rồi thông qua đó sửa đổi cấu trúc thông tin định danh của kernel (
cred) để giành shell root
- Kết quả chứng minh rằng AI không chỉ phân tích mã mà còn có thể tự chủ hoàn thiện toàn bộ chuỗi tấn công thực tế
Cấu hình môi trường thí nghiệm
- Đối tượng thử nghiệm là một smart TV sử dụng firmware nền tảng nội bộ của Samsung mang tên KantS2
- Để Codex có thể hoạt động, môi trường sau đã được chuẩn bị
- Browser shell: trạng thái có thể thực thi mã bên trong ứng dụng trình duyệt
- Controller host: cung cấp khả năng build binary ARM, host file HTTP và truy cập phiên shell
- Shell listener: tiêm lệnh qua
tmux send-keys và thu thập kết quả qua log
- Mã nguồn firmware: cung cấp toàn bộ cây mã nguồn
KantS2
- Ràng buộc thực thi: do Unauthorized Execution Prevention (UEP) của Tizen, binary không ký không thể chạy trực tiếp
- Wrapper
memfd: thực thi thông qua file descriptor ẩn danh được nạp trong bộ nhớ
- Vòng lặp lặp lại của Codex được cấu thành theo kiểu phân tích mã nguồn và log, gửi lệnh, đọc kết quả và khi cần thì build helper để chạy trên TV
Thiết lập mục tiêu
- Nhiệm vụ của Codex là tìm lỗ hổng để nâng quyền từ quyền người dùng trình duyệt lên root
- Không chỉ định trước driver hay vùng nhớ cụ thể nào; Codex phải tự tìm đường tấn công
- Lỗ hổng phải đồng thời thỏa mãn các điều kiện: tồn tại trong mã nguồn, có thể truy cập trên thiết bị thật và có thể với tới từ ngữ cảnh trình duyệt
Thông tin ban đầu được cung cấp
Tìm kiếm lỗ hổng
Primitive truy cập bộ nhớ vật lý
- Driver
/dev/ntksys lưu địa chỉ vật lý và kích thước do không gian người dùng truyền vào trong bảng của kernel, rồi ánh xạ lại chúng qua mmap
- Vì vậy, nó tạo thành một đường truy cập tới bộ nhớ vật lý tùy ý từ không gian người dùng (physmap primitive)
/dev/ntkhdma còn làm lộ trực tiếp địa chỉ vật lý, giúp việc kiểm chứng trở nên dễ dàng hơn
Phân tích nguyên nhân gốc rễ
-
Thiết lập quyền truy cập sai
- Quy tắc udev cấu hình
/dev/ntksys là 0666 (ghi được bởi mọi người)
- Đây là lỗi thiết kế khi phơi lộ giao diện quản lý bộ nhớ cho người dùng không đặc quyền
-
Không kiểm tra giá trị đầu vào từ người dùng
u32Start, u32Size trong cấu trúc ST_SYS_MEM_INFO sử dụng nguyên giá trị đầu vào do người dùng cung cấp
-
Thiếu xác thực địa chỉ vật lý
- Hàm
SET_MEM_INFO chỉ kiểm tra chỉ số, không kiểm tra phạm vi địa chỉ vật lý hay quyền truy cập
-
Giai đoạn mmap dùng PFN do kẻ tấn công kiểm soát
- Khi gọi
vk_remap_pfn_range, PFN do người dùng cung cấp được ánh xạ nguyên trạng
-
Rò rỉ địa chỉ trong ntkhdma
/dev/ntkhdma trả về địa chỉ vật lý thực của DMA buffer, được dùng để kiểm chứng khai thác
Xây dựng chuỗi tấn công
Khai thác cuối cùng
Tương tác với Codex
- Trong quá trình thử nghiệm, Codex đôi khi cũng có hành vi bất thường và nhà nghiên cứu phải chỉnh lại ngay lập tức
- Ví dụ hội thoại
- “bro, the tv froze”
- “bro can you just like, send it to the server and run it for me?”
- Những tương tác này cho thấy Codex không chỉ là công cụ tự động hóa đơn thuần mà hoạt động giống một tác nhân cộng tác thời gian thực
Kết luận
- Codex đã bắt đầu từ browser shell và tự chủ hoàn thiện toàn bộ chuỗi tấn công: phân tích mã nguồn → nhận diện lỗ hổng → phát triển PoC → build và thực thi → giành root
- Thí nghiệm này chứng minh rằng AI có thể tìm kiếm và khai thác lỗ hổng bảo mật trên phần cứng thực tế
- Bước tiếp theo, nhóm nghiên cứu dự báo sẽ thử nghiệm việc AI tự thực hiện toàn bộ quá trình từ xâm nhập ban đầu đến giành quyền root
- Câu kết: “Hy vọng AI sẽ bị nhốt trong TV, âm thầm nâng quyền và xem sitcom của chúng ta.”
1 bình luận
Ý kiến trên Hacker News
Tôi đã có một "phiên hack" rất thú vị với Codex
Không phải là thực sự phá hỏng thứ gì, mà là vượt qua các rào cản do TP-Link dựng lên để điều khiển router do chính tôi sở hữu
TP-Link đã dựng nên một cơ chế xác thực·mã hóa lộn xộn để chặn truy cập API, nhưng sau khoảng nửa ngày vật lộn cùng Codex, tôi đã hoàn thiện được một Python API gọn gàng để điều khiển router
Nó cũng xuất Prometheus metrics rất tốt và hoạt động ổn định
Tôi nghĩ những ràng buộc kiểu này rốt cuộc xuất phát từ khâu hoạch định sản phẩm quá tay nhằm chia cắt một cách nhân tạo thị trường 'thiết bị tiêu dùng vs doanh nghiệp'
tmpServer lắng nghe trên localhost, còn dropbear cho phép port forwarding với quyền admin
Đây là API chính mà ứng dụng Tether sử dụng khi giao tiếp với router
Tôi muốn dùng Mythos để tìm một exploit có thể mở quyền truy cập SSH
Liên kết sản phẩm
Chúng ta đang ở Hacker News, và không phải ai cũng cố phá hỏng thứ gì đó
Tôi đã ghi lại các yêu cầu từ web UI thành file .har để phục vụ phân tích, và quá trình này diễn ra nhanh hơn rất nhiều so với khi làm mà không có AI hỗ trợ
Điểm quan trọng là Codex có quyền truy cập mã nguồn
Trong chuỗi thảo luận liên quan cũng có nhiều ý kiến cho rằng mã đóng không mang lại lợi thế thực tế nào trong việc ngăn AI phát hiện lỗ hổng
Tôi tò mò không biết Codex sẽ làm tốt đến đâu nếu không có mã nguồn
Nhưng tình huống tệ nhất tôi từng gặp là ngay cả binary firmware cũng không thể truy cập
Nó được hàn trực tiếp lên PCB nên không thể trích xuất ngay cả bằng chip clip, buộc phải phân tích trong trạng thái hoàn toàn mù thông tin
Dù không bằng Codex, tôi cũng đã thử vài thí nghiệm thú vị với Claude Code
Tôi để nó dò các thiết bị Bluetooth, và nó đã tìm ra đèn RGB trong phòng con gái tôi, tạo hiệu ứng cầu vồng rồi tài liệu hóa giao thức
Nếu là nền .NET thì có lẽ còn có thể cho nó decompile để tìm thêm
Bản 4.6 hay Gemini 3.1 đều thất bại, nhưng lần này thì thành công
Nếu có thể biến smart TV thành TV ngu, tôi sẽ làm ngay
Chỉ cần một màn hình đơn giản có thể đổi đầu vào và chỉnh âm lượng là đủ
Nó cũng bị trễ đầu vào nặng, và mỗi khi đổi thiết lập thì lại bị reset về mặc định
Tấm nền vẫn ổn, nhưng vì OS mà nó gần như đã thành rác thải điện tử hoàn toàn
Tôi đã kỳ vọng vì webOS là hậu duệ của palmOS, nhưng thật sự thất vọng
Cuối cùng tôi cắt hẳn kết nối mạng của nó
Cốt lõi là việc cung cấp mã nguồn firmware
Tôi muốn biết liệu các mô hình kiểu này có phụ thuộc nhiều vào các manh mối ngôn ngữ của con người hay không
Codex đã hack hoàn toàn một TV OS yếu,
nhưng để truy cập đầy đủ vào các điều khiển chính như âm lượng, đầu vào, sắc độ, firmware... thì với LLM hiện tại vẫn còn quá khó
TV Samsung trong 10 năm qua là thiết bị cực kỳ dễ bị hack
Có lẽ chỉ cần đưa quyền truy cập trình duyệt cho GPT-2 cũng đã làm được
Nó cũng không có khả năng hội thoại, nên đó là một nhận định hơi phóng đại
Tôi nghĩ có lẽ Codex có thể dùng để triển khai xóa quảng cáo hoặc chặn gửi dữ liệu trên smart TV
Có nhắc đến cụm “browser foothold”, ý là chính trình duyệt web chạy trên TV
Trên PSP, Vita, Switch, Wii, DS... cũng từng có thể chạy homebrew thông qua exploit trình duyệt