KeySweeper - Keylogger trên nền tảng Arduino cho bàn phím không dây

Đây là một bài báo được mình dịch lại từ The Hacker News đăng vào ngày 13/01/2015. Mình đăng bài viết này nhằm giúp các bạn mới làm quen với Arduino thấy được rằng ứng dụng Arduino không phải chỉ dừng ở việc điều khiển đèn LED nhấp nháy, điều khiển động cơ hay hiển thị/truyền phát thông tin đơn thuần,... nó còn làm được những thứ to lớn hơn thế ...

KeySweeper - Keylogger trên nền tảng Arduino cho bàn phím không dây

Một nhà nghiên cứu về bảo mật đã phát triển thành công một loại sạc USB giá rẻ có khả năng thu tín hiệu từ hầu hết các loại bàn phím không dây của Microsoft.

Một mischief-maker tên là Samy Kamkar MySpace đã công bố một thiết bị nghe lén các loại bàn phím không dây của Microsoft. Bộ thiết bị này khéo léo ẩn mình dưới hình dạng của một cục sạc USB rẻ tiền cho điện thoại. 

Thiết bị mà Samy Kamkar công bố được phát triển trên nền tảng Arduino dưới tên gọi "KeySweeper" nhìn trong có vẻ chẳng khác gì một cục sạc USB thông thường cũng như việc nó có thể hoạt động được bình thường như những cục sạc USB khác. Thực chất, tính năng chính của thiết bị này là chặn bắt, giải mã và ghi lại các thao tác trên bàn phím được phát đi từ bất kì bàn phím không dây nào của Microsoft.

"KeySweeper is a stealthy Ardunio-based device camouflaged as a wall charger that wirelessly sniffs, decrypts, logs and reports-back all keystrokes from any Microsoft wireless keyboard in the vicinity," trích nguyên văn lời của Kamkar.

Dịch

"KeySweeper là một thiết bị ẩn mình chạy trên nền tảng Arduino được ngụy trang dưới dạng một cục sạc USB. Thiết bị không dây này có khả năng chặn bắt, giải mã và ghi lại các thao tác trên bàn phím từ bất kì bàn phím không dây nào của Microsoft xung quanh.

Nhà nghiên cứu đồng thời cũng công bố luôn hướng dẫn chế tạo một thiết bị nghe lén như vậy. Thật ngạc nhiên là hướng dẫn này có thể được thực hiện một cách rất dễ dàng với giá thành cực thấp. KeySweeper bao gồm một công cụ chạy trên nền web giúp người sử dụng có thể theo dõi dữ liệu nghe lén được theo thời gian thực, một module cho phép gửi tin nhắn SMS chứa dữ liệu nghe lén cũng như một viên pin bên trong cho phép bộ thiết bị có thể hoạt động ngay cả khi nó đã được rút ra khỏi ổ cắm điện.

Các bạn quan tâm đến KeySweeper có thể truy cập http://goo.gl/02DoxK để xem thông tin chi tiết.

"Even if we do not know the MAC address, we can decrypt the keystroke. Using a few-dollar Arduino and a US$1 Nordic RF chip we can decrypt these packets and see any keystroke of any keyboard in the vicinity that's using the Microsoft wireless keyboard protocol and it doesn't matter what OS is used." trích nguyên văn lời của Kamkar.

Dịch:

 "Thậm chí nếu ta không biết địa chỉ MAC, ta vẫn có thể giải mã các thao tác gõ phím. Bằn cách sử dụng một board Arduino có giá vài US$1 và một US$1 RF chip của hãng Nordic, ta có thể giải mã các gói tín nhận được và có thể thấy bất kì thao tác gõ phím nào của bất kì bàn phím nào xung quanh sử dụng Giao thức phím không dây của Microsoft ở khu vực xung quanh bất kể hệ điều hành đang sử dụng là gì.

KeySweeper lưu trữ các thao tác gõ phím của nạn nhân ở cả 2 hình thức online và offline cũng như có khả năng gửi thông tin này về cho người sử dụng qua mạng Internet bằng một GSM chip.

Thông thường, các bàn phím không dây của Microsoft mã hóa các thông tin gõ phím trước khi gửi đi, tuy nhiên Kamkar tuyên bố rằng anh đã phát hiện được một vài lỗ hổng cho phép giải mã dữ liệu một cách dễ dàng. Kamkar vẫn chưa thử nghiệm công cụ của mình trên tất cả các loại bàn phím không dây của Microsoft, nhưng anh tin rằng tất cả chúng đều có thể bị nghe lén.

Kamkar không chỉ ra nhiều lỗ hổng, nhưng anh ấy đã công bố hướng dẫn chi tiết cách xây dựng KeySweeper trên GitHub. Anh ấy cũng tự làm một video dài nửa giờ về KeySweeper mà bạn có thể xem nó ở dưới đây.

Trên GitHub, Kamkar có đăng tải mã nguồn của KeySweeper cũng như hướng dẫn làm một thiết bị như vậy. Các bạn có thể xem tại https://github.com/samyk/keysweeper

Theo nhà nghiên cứu, chi phí để chế tạo một KeySweeper nằm trong khoảng từ 10$ đến 80$ tùy theo chức năng mà người sử dụng muốn có. Dưới đây là danh sách những phần cứng dùng để làm KeySweeper:

  • $3 – $30: một mạch Arduino hoặc Teensy.
  • $1: nRF24L01+ 2.4GHz RF Chip giao tiếp bằng GFSK qua sóng 2.4GHz.
  • $6: sạc AC USB chuyển đổi từ điện xoay chiều dân dụng sang điện một chiều 5V.
  • $2 (tùy chọn): chip SPI Serial Flash dùng để lưu trữ dữ liệu nghe lén.
  • $45 (tùy chọn): Adafruit đã tạo ra một board mạch gọi là FONA cho phép người dùng sử dụng SIM điện thoại để gửi hoặc nhận tin nhắn SMS, gọi điện thoại hoặc truy cập Internet trực tiếp từ thiết bị.
  • $3 (tùy chọn nếu dùng FONA): Adafruit FONA cần một thẻ SIM full-size
  • $5 (tùy chọn nếu dùng FONA): Adafruit FONA được tích hợp sạc pin LiPo/Li-Ion. Khi nạn nhân cắm KeySweeper vào ổ điện, pin sẽ tự động được sạc để giữ KeySweeper hoạt động ngay cả khi người dùng rút nó ra khỏi ổ điện.

Đây là danh sách các thiết bị thay thế mà các bạn có thể dễ dàng mua được tại Việt Nam. Danh sách này được viết theo thứ tự:

  • Arduino Pro Mini
  • Mạch thu phát không dây nRF24L01
  • Sạc USB
  • Các loại chip SPI Serial Flash
  • GSM/GPRS Shield: loại mạch này có một nhược điểm là lớn hơn rất nhiều so với Adafruit FONA.
  • SIM card (cái này chắc ai cũng có)
  • Pin LiPo/LiIon (có thể ra tiệm sửa điện thoại di động mua một viên pin điện thoại về. Pin điện thoại là loại LiIon, một số rất ít là LiPo).

Trong một động thái từ phía Microsoft, người phát ngôn của họ nói rằng "Microsoft đã nhận được báo cáo về KeySweeper và họ đang điều tra". 

lên
5 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Học Arduino qua dự án làm xe điều khiển từ xa - Phần 2: Bật tắt đèn

Trong phần 2 của loạt bài "Học Arduino qua dự án làm xe điều khiển từ xa", mình sẽ hướng dẫn các bạn:

  • Cách làm một module đèn LED đơn giản
  • Cách điều khiển nhiều đèn LED sử dụng transistor.
  • Cách lập trình bật/tắt đèn LED. 

Mình sẽ hướng dẫn các bạn làm trên breadboard, phần hàn mạch các bạn tự làm vì nó không có gì phức tạp cả. 

lên
15 thành viên đã đánh giá bài viết này hữu ích.

#include

#include cho phép chương trình của bạn tải một thư viện đã được viết sẵn. Tức là bạn có thể truy xuất được những tài nguyên trong thư viện này từ chương trình của mình. Nếu bạn có một đoạn code và cần sử dụng nó trong nhiều chương trình, bạn có thể dùng #include để nạp đoạn code ấy vào chương trình của mình, thay vì phải chép đi chép lại đoạn code ấy.

lên
8 thành viên đã đánh giá bài viết này hữu ích.