4 điểm bởi GN⁺ 5 ngày trước | 1 bình luận | Chia sẻ qua WhatsApp
  • 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

  • Ví dụ thông tin hệ thống được cung cấp cho Codex
    uid=5001(owner) gid=100(users)
    Linux Samsung 4.1.10 ...
    /dev/... /proc/modules ... /proc/cmdline ...
    
  • Các thông tin này xác định ranh giới quyền của tiến trình trình duyệt, phiên bản kernel, các device node có thể truy cập, bố cục bộ nhớ, v.v.

Tìm kiếm lỗ hổng

  • Codex đã phát hiện các device node ntk* có quyền ghi cho mọi người mà browser shell có thể truy cập
    /dev/ntkhdma
    /dev/ntksys
    /dev/ntkxdma
    
  • Các driver này được nhận diện là mã của Novatek Microelectronics, một phần của stack Novatek có trong TV Samsung
  • Khi quyền truy cập /proc/iomem bị chặn, Codex đã tái dựng memory map bằng cách dùng tham số khởi động từ /proc/cmdline

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/ntksys0666 (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

  • Codex đã lấy địa chỉ DMA buffer qua /dev/ntkhdma, rồi ánh xạ nó bằng /dev/ntksys để đọc/ghi bộ nhớ vật lý thành công
    HDMA buffer phys addr: 0x84840000
    writing 0x41414141 to mapped address...
    readback: 0x41414141
    
  • Điều này chứng minh rằng tiến trình không đặc quyền có thể sửa đổi các trang bộ nhớ vật lý tùy ý

Khai thác cuối cùng

  • Codex đã tìm cấu trúc cred của kernel rồi ghi đè UID/GID của tiến trình trình duyệt thành 0
  • Nó quét cửa sổ bộ nhớ lấy từ /proc/cmdline để tìm mẫu tương ứng rồi sửa đổi
  • Sau đó, kết quả thực thi /bin/sh cho thấy đã giành được quyền root
    uid=0(root) gid=0(root) ...
    context="User::Pkg::org.tizen.browser"
    
  • Đầu ra của Codex: “Worked.”

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'

    • Trước đây vì lý do tương tự, tôi đã tự làm phiên bản Python của tmpcli
      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 có một bộ đếm lật Smiirl, nó dựa trên OpenWrt nhưng không có web UI, chỉ cung cấp API qua uhttpd
      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
    • Cách nói “đây không phải hack” nghe như một định nghĩa quá hẹp
      Chúng ta đang ở Hacker News, và không phải ai cũng cố phá hỏng thứ gì đó
    • Nếu công khai quá trình này thì có nguy cơ bị truy cứu hình sự vì vi phạm Mục 1201 của DMCA
    • Tôi cũng từng thành công theo cách tương tự
      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

    • Ngay cả khi không có mã nguồn, chỉ cần có binary firmware thì AI cũng có thể decompile để hiểu được
      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

    • Tôi đã yêu cầu Claude Opus 4.5 tìm các API riêng tư trong phần mềm quản lý endpoint, và nó tìm ra hai cái chỉ trong 1 giờ
      Nếu là nền .NET thì có lẽ còn có thể cho nó decompile để tìm thêm
    • Opus 4.7 đã giải quyết được vấn đề ghép đôi chuột Logitech của tôi
      Bản 4.6 hay Gemini 3.1 đều thất bại, nhưng lần này thì thành công
    • Tôi cũng không chắc từ “thú vị” có thật sự phù hợp hay khô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à đủ

    • Chiếc Sony Bravia smart TV của tôi có OS liên tục crash ngay ở màn hình chính
      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
    • Chiếc LG smart TV mới mua của tôi cũng tương tự
      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 tò mò không biết sẽ khó đến mức nào nếu bắt nó chỉ đọc mã máy
      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
    • Ngay cả khi chỉ có binary firmware thì vẫn có thể phân tích bằng công cụ như Ghidra
    • Việc cung cấp mã nguồn là một yếu tố giảm độ khó quá lớn
  • 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

    • Nhưng GPT-2 không phải là mô hình thực thi lệnh
      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ước đây trình duyệt từng là điểm xâm nhập chính để hack các thiết bị bị khóa chặt
      Trên PSP, Vita, Switch, Wii, DS... cũng từng có thể chạy homebrew thông qua exploit trình duyệt