Điều tra dongle RJ45 “ác ý”
(lcamtuf.substack.com)- Một tuyên bố lan truyền rằng bộ chuyển đổi Ethernet-to-USB mua từ Trung Quốc có nhúng mã độc, nhưng các dấu hiệu được xác nhận lại gần với cách phân phối driver của chip RJ45-to-USB đời cũ hơn
- “Yếu tố tiếng Nga” trong bản quét CrowdStrike Falcon trùng khớp với đặc điểm của EXE tự giải nén 7-Zip của Igor Pavlov, và nội dung tệp cũng có vẻ khớp với driver công khai dành cho SR9900 của CoreChips Shenzhen
- SR9900 là con chip gần như không có thông tin công khai, nhưng có vẻ là bản sao trực tiếp của Realtek RTL8152B, phù hợp với bối cảnh quanh thời Windows 7 khi các thiết bị USB 2.0·100BASE-TX tự cung cấp driver qua bộ nhớ tích hợp
- SPI flash 512 kB dạng 25x40 trên PCB không được xác nhận là nơi lưu gói tin bị đánh cắp, mà là cấu hình trong đó công cụ sản xuất ghi nguyên ảnh ISO 9660 và driver Windows để dùng như CD-ROM ảo
- Phần mã vi điều khiển USB·Ethernet bên trong SR9900 vẫn là vùng chưa được xác minh, nhưng riêng trường hợp này chưa đủ cơ sở để kết luận ngay rằng “phần cứng lạ” là độc hại
Điểm khởi đầu của nghi vấn phần cứng độc hại trong chuỗi cung ứng
- Trong lĩnh vực an ninh thông tin, các tuyên bố về phá hoại chuỗi cung ứng quy mô lớn xuất hiện khá thường xuyên, nhưng trên thực tế phần lớn lại là sai sự thật
- Không phải vì những cuộc tấn công như vậy là bất khả thi, mà vì chúng phức tạp, tốn thời gian và rủi ro
- Trên thực tế, cách đơn giản hơn là đánh cắp thông tin xác thực hoặc khiến nạn nhân tải tệp độc hại xuống
- Tranh cãi bùng lên khi một nhà sáng lập trẻ tuyên bố trên mạng xã hội rằng bộ chuyển đổi Ethernet-to-USB mua từ Trung Quốc đã được cài sẵn mã độc
- Tuyên bố đó có những mô tả như né tránh máy ảo, ghi lại thao tác gõ phím và sử dụng yếu tố tiếng Nga
- Bài đăng liên quan đã thu hút hàng triệu lượt xem, nhưng thông tin kỹ thuật cụ thể lại không rõ ràng
Kiểm tra bản quét công khai và tệp driver
- Báo cáo quét CrowdStrike Falcon do người đăng chia sẻ khá mơ hồ, và gần với manh mối gây nhiễu hơn là bằng chứng mang tính quyết định
- Binary được phân tích là một EXE tự giải nén dựa trên 7-Zip, chương trình nén mã nguồn mở do Igor Pavlov tạo ra
- Yếu tố tiếng Nga có thể được xem là dấu vết bắt nguồn từ quốc tịch của tác giả
- Việc đây là một kho lưu trữ tự giải nén để cài driver giải thích phần lớn các hành vi từng bị cho là đáng ngờ
- Nội dung kho lưu trữ có vẻ trùng khớp với driver công khai đã ký phiên bản 2.0.7.0 cho chip RJ45-to-USB do CoreChips Shenzhen sản xuất
- Trong tệp
.infđi kèm, công ty cũng sử dụng tên Corechip Semiconductor
- Trong tệp
Chip SR9900 và bối cảnh thiết kế cũ
- Driver tham chiếu đến chip SR9900
- Gần như không có thông tin công khai về chip này và nhà sản xuất của nó
- Kết quả điều tra cho thấy SR9900 có vẻ là bản sao trực tiếp của Realtek RTL8152B
- Trong phần giới thiệu sản phẩm bằng tiếng Anh có gợi ý rằng “SR” là viết tắt của “Supereal”, và tên thương hiệu Supereal cũng từng xuất hiện trong bối cảnh chip FTDI FT232RL giả gây rắc rối cho ngành trước đây
- Lý do dòng nguồn gốc này quan trọng là vì thiết kế Realtek gốc là một thiết kế cũ dựa trên datasheet năm 2013
- Thiết bị hỗ trợ 100BASE-TX và USB 2.0
- Điều này gắn với tập quán thiết bị ngoại vi thời Windows 7
- Khi đó, ổ CD-ROM đang dần biến mất, nhưng cũng khó có thể giả định mọi máy tính luôn kết nối mạng
- Việc một số thiết bị ngoại vi tự hiển thị như thiết bị lưu trữ dung lượng lớn chứa driver riêng là điều tự nhiên trong bối cảnh thời đó
- Xét từ góc độ bảo mật, cách này không hẳn tốt hơn hay tệ hơn các biện pháp tạm thời khác để chuyển tệp driver
Mục đích thực sự của SPI flash
- Ảnh chụp khi tháo rời cho thấy một PCB đơn giản với IC serial flash dạng 25x40 gắn cạnh SR9900
- Câu hỏi cốt lõi là liệu flash 512 kB này dùng cho firmware hay là nơi lưu gói tin bị đánh cắp
- Tài liệu về SR9900 và RTL8152B không giải thích đầy đủ mục đích của IC flash đi kèm, và khi tìm kiếm ảnh sơ đồ mạch cũng không thấy thiết kế nào của chip Realtek gốc có thứ gì đó nối vào các chân serial của nó
- Bản thân bus SPI rất đơn giản
- Host cung cấp tín hiệu clock ở tốc độ mà nó muốn
- Ở mỗi cạnh lên của clock, thiết bị ngoại vi đọc 1 bit từ “serial in”, còn host đọc 1 bit từ “serial out”
- Không có bắt tay, header, bit parity hay điều khiển luồng
- Việc đọc serial flash thông thường có cấu trúc gửi lệnh READ 0x03 cùng địa chỉ 3 byte, sau đó nhận liên tục dữ liệu trả về
- Vì vậy, cũng có thể mua chính chiếc dongle đó để dump nội dung bộ nhớ
- Sau khi tìm được bản gốc tiếng Trung trên website CoreChips và tiếp tục tra cứu, tác giả tìm thấy các bài đăng diễn đàn tiếng Trung cũ cùng các kho tải về trả phí/có mật khẩu liên quan đến “SR9900 series chip Windows system mass production tool”
- Tác giả tải “SR9900(A)设计资料1018.rar” với giá 2,99 USD để kiểm tra
- Trong kho có công cụ sản xuất SR9900Efuse với giao diện mang phong cách retro
- Ảnh hệ thống tệp ISO 9660 168 kB đi kèm chứa driver Windows tự giải nén
- Công cụ sản xuất ghi nguyên tệp
.isovào SPI flash - Con chip hoạt động như một CD-ROM “định nghĩa bằng phần mềm” thay cho CD-ROM vật lý
- Có thể tải ảnh đĩa tại đây, mật khẩu là
rj45
- Công cụ sản xuất ghi nguyên tệp
- Ảnh CD-ROM được tạo bằng “ULTRAISO V9.3 CD & DVD CREATOR, (C) EZB SYSTEMS”
- UltraISO được giới thiệu như một công cụ mang đậm cảm giác thời Windows XP
- Điều kiện chạy là Intel Pentium 166MHz trở lên
Tính năng CD-ROM ảo tùy chọn và những giới hạn còn lại
- Trong kho chính còn có tài liệu “SR9900(A)设计前必看.docx”
- Theo câu chữ được dịch tự động, khi dùng SR9900 làm card mạng USB, SPI có thể được dùng làm ổ quang ảo để cài driver Windows
- Driver SR9900 cho Windows có thể được nạp sẵn vào SPI flash
- Tài liệu ghi rõ việc dùng chip flash là tùy chọn
- Điểm kỳ lạ trong trường hợp này được tóm lại là không phải hành vi độc hại, mà là cách phân phối driver của thiết bị ngoại vi đời cũ
- Ngay cả khi không có phòng thí nghiệm phần cứng, chỉ với tài liệu công khai và sự kiên nhẫn cũng có thể giải đáp câu hỏi cốt lõi
- Phần vẫn chưa được xác minh hoàn toàn là hai lõi vi điều khiển nhỏ bên trong IC SR9900
- Bên trong có lõi USB và Ethernet, mỗi lõi chạy mã nội bộ riêng
- Nếu giả định nhà sản xuất chip có liên quan, thì vẫn có thể xem xét phần bên trong này
- Realtek cung cấp driver Linux mã nguồn mở cho RTL8152, và driver này vá firmware từ bộ nhớ
- Quan sát bằng mắt thường thì không có vẻ như đã áp dụng mã hóa hay chữ ký
- Không thể loại trừ hoàn toàn khả năng tồn tại dongle USB độc hại
- Nếu là nhà khoa học tham gia chương trình hạt nhân Iran thì đây là điều đáng lo
- Nếu là CISO của một doanh nghiệp dân sự có tầm quan trọng chiến lược thì vẫn cần một mức độ thận trọng nhất định
- Với mạng gia đình, riêng trường hợp này chưa đủ cơ sở để xem là mối đe dọa tức thì
1 bình luận
Ý kiến trên Hacker News
Cách diễn đạt này dễ gây hiểu nhầm. Vấn đề không hẳn nằm ở bản thân chip giả, mà là khi phát hiện hàng giả, driver chính thức của FTDI đã đổi PID của phần cứng đang hoạt động thành 0000, khiến nó không còn được nhận diện nữa: http://www.rei-labs.net/changing-ftdi-pid/
Tôi bật cười ở câu “cần Intel Pentium 166MHz trở lên”. Bài viết cũng thú vị, và tôi rất thích thể loại “một người thông minh vì quá chán nên đào đến tận cùng một kết luận mà theo lẽ thường thì quá hiển nhiên, nhưng để chứng minh nó lại cần sự sáng tạo và bền bỉ ngoài dự đoán”
tôi đã sẵn sàng lên Dark Web (amazon.com) để mua một dongle nhằm dump nội dung chip nhớNói rằng mình là nạn nhân và đã phanh phui một âm mưu cũng dễ chịu hơn việc chấp nhận rằng đây chỉ là một sản phẩm chắp vá thường thấy trong kỹ thuật. Xin vỗ tay cho tác giả
Không phải nói spyware Trung Quốc không phải là vấn đề. Nhưng nếu không có năng lực kỹ thuật cơ bản để phân biệt, thì đừng chạy loanh quanh hô “Trung Quốc! Trung Quốc! Trung Quốc!”. Đó là cách các chính trị gia nhặt tin giả lên làm cớ cho những chính sách ngu ngốc, và nó có hại cho xã hội
Ngay khi thấy tweet về dongle “độc hại” này, tôi nhận ra đó chính là món đồ giống hệt thứ tôi từng xử lý trước đây. Nó không độc hại cho bằng chỉ là phiền phức
https://blog.brixit.nl/making-a-usb-ethernet-adapter-work-sr...
Trong trường hợp của tôi, tôi đã vô hiệu hóa module flash SPI để nó không hiện như ổ CD, còn tác giả bài này thậm chí tìm được tài liệu cho thấy SPI là tùy chọn. Thú vị là giờ bài này còn cung cấp cả công cụ để flash lại và tạo ra một dongle RJ45 độc hại thật sự
Trông như họ đặt footprint diode cho package SOT23 3 chân, rồi vì không có tồn kho linh kiện đặc biệt nên gắn một diode SOD323 nghiêng khoảng 30 độ giữa hai chân
Nếu đó là hệ quả ngoài ý muốn, thì ngay từ đầu nó cùng lắm chỉ là bảo mật bằng che giấu, và việc phơi bày để mọi người không dựa vào nó là đúng
autorun.infvào CD giả không?Tôi khá thích cách thiết bị USB giả làm thiết bị lưu trữ để tự cung cấp driver. Cách “đúng” ngày nay có lẽ là đưa đủ thứ lên máy chủ Microsoft rồi khi cắm vào thì tải những thứ cần thiết về, nhưng tôi đã gặp đủ món phải cài driver thủ công để biết rằng việc đó không dễ như bề ngoài. Ví dụ, tôi rất thường xuyên phải tải driver ADB theo từng nhà cung cấp
Dù sao thì việc thiết bị ngoại vi hỗ trợ thiết lập ban đầu là một cách thông minh, và nếu driver nằm sẵn trong thiết bị thì sẽ dễ hơn một chút so với việc phải đi tìm nguồn tải chính thức
Nhưng nhiều chế độ hoạt động lại khiến việc cấu hình các thiết bị như dongle USB 4G/LTE trở nên khó khăn. Chúng có thể hiện như thiết bị lưu trữ USB, hoặc một loại thiết bị serial nào đó, hoặc thứ gì đó giống thiết bị modem CDC-ACM, và để chuyển sang chế độ đúng thì phải kết hợp công cụ với lệnh AT theo từng nhà cung cấp. Tôi muốn quay lại với những thiết bị đơn giản: cắm vào là làm đúng việc của nó
Tôi không biết hiện tại công nghệ mới nhất ra sao, nhưng trong một thời gian dài việc gắn một flash nhỏ vào IC ngoại vi USB để lưu VID/PID và các thông tin cấu hình USB khác là chuyện phổ biến. Nhờ vậy khi cắm vào, thiết bị mới được liệt kê đúng và gắn với driver phù hợp. Tùy thời điểm thiết kế, dung lượng nhỏ nhất dễ kiếm trong chuỗi cung ứng có thể đã là 512kB, nên dùng chip như vậy chỉ để lưu vài chục byte cũng không có gì lạ
Phần ISO thì hơi lạ, nhưng nói thật đó là một cách sáng tạo để lách các chính sách bảo mật IT doanh nghiệp vốn hạn chế thiết bị lưu trữ USB dung lượng lớn. Ổ quang dùng lớp thiết bị khác nên có khả năng tránh được hầu hết hạn chế, và nếu nó được liệt kê như một thiết bị composite kết hợp ổ quang với adapter mạng, có vẻ nó vẫn có thể cài driver của chính mình ngay cả trên máy tính đã khóa “USB drive”
Điều kỳ lạ là họ bỏ tiền thêm flash nhưng lại bỏ linh kiện cách ly từ tính. Chỉ có tụ nối tiếp, jack cũng nhỏ nên không giống có linh kiện từ tính tích hợp, và việc thêm cả tụ nối tiếp cũng chẳng hợp lý
Tôi sẽ rất bực nếu phát hiện dongle USB Ethernet mình mua không có linh kiện cách ly từ tính
Nếu hỏi có dongle Ethernet USB “độc hại” không thì tất nhiên là có. Chỉ là không phải món này
https://hak5.org/products/lan-turtle
Theo quan điểm của người theo chủ nghĩa chính xác RJ45, cái này phải được gọi là 8P8C. Tôi xin phép đi đây
Ví dụ tôi từng thấy “dongle RJ45” chuyển USB sang serial RS232 để dùng cho cổng console của nhiều thiết bị mạng
Với những ai quan tâm đến hiệu năng của USB-1000BASE-T, và ngày nay là các dongle 2.5GBaseT nói chung, nên biết sự khác nhau giữa việc nó là thiết bị USB và thiết bị PCI Express
Sau khi hot-plug vào laptop chạy kernel Linux mới, chỉ cần xem nó hiện ở đâu trong
sudo lsusb -vvàsudo lspci -vThiết bị PCIe native cho hiệu năng tốt hơn nhiều, có thể đạt tốc độ đường truyền 2.5GBASE-T, và giao tiếp với host thông qua triển khai Thunderbolt trên USB. Thiết bị thuần USB cũng có thể chạy khá ổn, nhưng rẻ thì có lý do. Tất nhiên laptop giá rẻ có thể không có triển khai Thunderbolt ngay từ đầu, nên cũng cần tính đến điều đó
Dù vậy về cơ bản nó vẫn là dongle, và trên Mac đo bằng iperf3 được 9.4Gbit/s. Đương nhiên nó hiển thị là thiết bị PCIe
[1] https://www.amazon.com/gp/product/B0DHSWSSBY
Nếu chỉ có cổng USB và quan tâm đến hiệu năng, khác biệt lớn hơn có lẽ là thiết bị Ethernet USB đó triển khai CDC-NCM hay chỉ triển khai CDC-ECM. CDC-ECM gửi từng frame một cho driver và driver phải xác nhận, xử lý từng cái, tạo ra nhiều việc cho CPU; còn CDC-NCM mới hơn thì gửi các frame theo lô
Trên laptop của tôi, dongle ECM 1Gbit cũng đạt tốc độ gigabit nhưng dùng 100% một core CPU, còn dongle NCM 1Gbit thì gần như không tốn CPU
Tạo một kết nối gây hại qua cổng Ethernet là cực kỳ khó, nhưng tạo một kết nối gây hại qua cổng USB thì rất dễ. Nên gọi đúng bản chất của nó. Đây là dongle USB độc hại có kèm cả ổ cắm Ethernet