Giả mạo tín hiệu GPS là một kỹ thuật không mới và được nhiều nhóm nghiên cứu bảo mật trên thế giới thực hiện kiểm tra và thử nghiệm trên môi trường thực tế. Tuy nhiên, việc tấn công trên một khu vực rộng lớn yêu cầu các thiết bị phần cứng giá thành cao, hoạt động công suất lớn với mục đích dùng trong quân sự và công nghiệp hàng không vũ trụ. Trong bài viết này, tôi sẽ sử dụng SDR với giá thành thấp để thực hiện phân tích các nguy cơ có thể ảnh hưởng đến người dùng trong khu vực bị can nhiễu tín hiệu.

1. Công nghệ GPS – Phương thức giả mạo tín hiệu

Tín hiệu GPS xuất phát từ vệ tinh hoạt động trên quỹ đạo Trái Đất, cách khoảng 20.000 km và tín hiệu thu được trên mặt đất khá yếu. Mức độ tín hiệu này còn bị ảnh hưởng nhiều khi đi qua tầng khí quyển và các nguồn phát sóng khác trên mặt đất. Hơn nữa, các ảnh hưởng của vật lý như hiệu ứng doppler trong truyền sóng trong không gian, việc tách chọn sóng GPS trong môi trường nhiễu,… là một trong những vấn đề lớn mà các nhóm nghiên cứu GPS đã gặp phải trong quá trình giả lập.

Trên thực tế, khi một tín hiệu sóng được phát đi từ vệ tinh qua một khoảng cách xa thì bước sóng, tần số bị thay đổi trên cùng một khoảng thời gian được xét, đây là hiệu ứng doppler. Hoặc hiểu theo một cách đơn giản thì tín hiệu thu tại vị trí gần vệ tinh phát và tại mặt đất sẽ khác nhau về bước sóng và tần số. Do vậy, việc tính toán khoảng cách để tấn công giả mạo sóng GPS là cần thiết, và bắt buộc phải điều chỉnh phù hợp tại nguồn phát sóng như độ suy hao, độ biến dạng của sóng, v.v… Một yêu cầu cũng khá quan trọng là thiết bị phát phải có thiết bị tạo dao động (oscillator) hoạt động ở tần số chính xác trong quá trình phát tín hiệu.

Mô hình hoạt động GPS

Nhưng thật may mắn, các trở ngại trên đều có những phương thức để khắc phục trong thực hiện tấn công giả mạo GPS:

  • Nguồn tín hiệu vệ tinh yếu cho phép kẻ tấn công phát một nguồn sóng mạnh hơn và dễ dàng áp chế các thiết bị thu. Kỹ thuật này được biết đến với tên gọi GPS Jamming, gây ảnh hưởng đến thiết bị khác thông qua tăng cường độ tín hiệu tại khu vực gần máy thu.
  • Các vấn đề vật lý và tính toán chuyển động của vật thể trên mặt đất có thể thực hiện thông qua máy tính và phát sóng lại thông qua phần cứng SDR (Software Defined Radion); hoặc kết hợp với kỹ thuật tấn công Replay thu tín hiệu và phát lại trong khu vực khác.

Kỹ thuật Jamming trong tấn công GPS

Trong hình, tôi thực hiện chọn tần số thu GPS sử dụng RTL-SDR, không sử dụng bộ khuếch đại; kết quả không thể nhận biết được kênh truyền trong môi turờng nhiễu.
Thực hiện phát sóng GPS với cường độ mạnh hơn, thiết bị thu nhận thấy rõ các tín hiệu. Đây là nguyên nhân các máy thu trong khu vực bị áp chế tín hiệu GPS dễ dàng thị thay đổi thông tin.

Trong vài năm gần đây, tại các hội thảo bảo mật toàn cầu như BlackHat, Defcon; các nhóm bảo mật cũng đã đưa ra các mô hình tấn công sử dụng SDR như:

– Nhóm Qihoo 360 với bài trình bày GPS Spoofing – Low-cost GPS simulator; tác giả sử dụng phần cứng SDR nhận dữ liệu vệ tinh GPS là USRP N210 từ hãng Ettus + BladeRF phát dữ liệu, kết hợp phần mềm tạo dữ liệu GPS là Matlab, phần mềm giải mã dữ liệu giả lập là GNS-SDR. Với chi phí phần cứng cho N210, BladeRF và Matlab đã nâng chi phí nghiên cứu lên hơn 1000 USD, hơn nữa các bước thực hiện và mã tạo tín hiệu Matlab không được công bố rộng rãi tại thời điểm trình bày. Một vấn đề khó khăn trong bài trình bày là người dùng cần có bộ khuyếch đại tín hiệu vệ tinh để có thể thu được dữ liệu với cường độ yếu từ quỹ đạo Trái Đất.

– Tại sự kiện Black Hat, nhóm nghiên cứu tại Alibaba đã công bố rộng rãi tài liệu Time and Position Spoofing with Open Source Projects hướng dẫn phương thức tạo dữ liệu GPS giả mạo và công cụ đi kèm dựa trên mã nguồn gps-sdr-sim với sự hỗ trợ từ tác giả Takuji Ebinuma, cho phép người dùng dễ dàng tạo các tập tin lưu trữ chuyển đổi dạng bit (digital) sang dạng sóng điện từ (analog) phát trên phần cứng HackRF, BladeRF và USRP. Ý tưởng thực hiện của phương pháp này là sử dụng các dữ liệu lưu trữ bởi NASA và chuyển đổi sang dạng nạp cho mạch phát SDR, các dữ liệu từ NASA được cập nhật định kỳ sau mỗi 24 giờ, do đó sẽ có độ lệch về thời gian tại thiết bị thu so với thời gian thực. Xét về chi phí triển khai, thì gps-sdr-sim hỗ trợ HackRF đã giúp giảm giá thành đầu tư thiết bị phần cứng xuống mức còn khoảng 300 USD cho mục đích nghiên cứu.

2. Thử nghiệm thực tế

Trong bài viết này, tôi sẽ thực hiện thử nghiệm với bộ công cụ gps-sdr-sim và hackrf-tools trên hệ điều hành Windows 10 và phần cứng HackRF.

Sơ đồ thực hiện giả mạo GPS

Chuẩn bị:

  • Hệ điều hành Windows, Ubuntu
  • hackrf-tools.zip: bộ công cụ tương tác với phần cứng HackRF – sử dụng trên Windows.
  • gps-sdr-sim-VS2017-Windows.zip: phần mềm GPS-SDR-SIM cho phép tạo dữ liệu GPS tùy biến; sử dụng trên Windows.
  • tập tin binary đã được tạo sẵn: https://node1.t17lab.com/index.php/s/qH8WTMnus501ELy

Các phần mềm có thể tại tại Liên kết này.

Mã nguồn hackrf được cung cấp tại trang dự án chính thức của tác giả mossmann, chương trình hoạt động tốt trên Ubuntu cũng như trên Windows. Người dùng cần chú ý KHÔNG sử dụng các công cụ trên máy ảo do vấn đề truyền tải, quản lý dữ liệu qua cổng USB không đảm bảo ổn định.

Bộ công cụ hackrf hoạt động trên Windows

Phần mềm gps-sdr-sim (Software-Defined GPS Signal Simulator) cho phép người dùng tạo dữ liệu GPS tùy biến theo một vị trí cố định (static mode) hoặc giả lập thông tin di chuyển của người dùng (dynamic mode). Phiên bản được sử dụng trong bài viết này hoạt động trên hệ điều hành Windows 10 và biên dịch từ MS Visual Studio 2017, bạn có thể tải Visual Studio Project tại trang Tài nguyên hoặc Github, tập tin .exe đã biên dịch có thể tải tại gps-sdr-sim.exe.

Biên dịch mã nguồn gps-sdr-sim sử dụng MS Visual Studio 2017
Mã thực thi tại giao diện cmd

2.1 Thực hiện giả mạo GPS vị trí cố định

Quá trình tạo dữ liệu GPS giả mạo, định dạng I/Q 8bit dùng cho HackRF – 8-bit quadrature samples (8-bit I and 8-bit Q)

> gps-sdr-sim.exe -e brdc3540.14n -l 15.568392,108.494472 -b 8 -T 2017/10/05,10:01:01 -d 180 -o HackRF_Static_Tamky_Quangnam_Vietnam_2017-10-05-180sec.bin

-e brdc3540.14n : tập tin định dạng dữ liệu phát GPS
-l 15.568392,108.494472 : tạo dữ liệu GPS với một tọa độ xác định. (15.568392, 108.494472 – Tam Kỳ – Quảng Nam, Việt Nam)
-b 8 : bitrate dùng cho HackRF là 8bit (mặc định là 16bit).
-T 2017/10/05,10:01:01 : thiết lập thời gian cố định cho dữ liệu phát, thông tin thời gian sẽ ảnh hưởng đến các thiết bị yêu cầu hoạt động thời gian thực dựa trên GPS.
-d 180 : tạo dữ liệu với khoản thời gian phát cố định, đơn vị tính theo giây.
-o HackRF_Static_Tamky_Quangnam_Vietnam_2017-10-05-180sec.bin : tên tập tin dữ liệu I/Q dùng cho HackRF

Bạn có thể tải tập tin HackRF_Static_Tamky_Quangnam_Vietnam_2017-10-05-180sec.bin đã được tạo sẵn.

> hackrf_transfer.exe -t HackRF_Static_Tamky_Quangnam_Vietnam_2017-10-05-180sec.bin -f 1575420000 -s 2600000 -a 1 -x 0

-t HackRF_Static_Tamky_Quangnam_Vietnam_2017-10-05-180sec.bin : tập tin dữ liệu I/Q dùng phát bởi HackRF
-f 1575420000 : tần số hoạt động của GPS
-s 2600000 : sample rate mặc định GPS
-a 1 : bật bộ khuyếch đại trên HackRF (RX/TX RF amplifier)
-x 0 : thông số khuyếch đại trung tần (IF – intermediate frequency)

3. Tạm kết

Trong phần 1, tôi đã đề cập đến các phương pháp tiếp cận trong khai thác GPS, thuận lợi và khó khăn trong việc giả lập các dữ liệu, tần số, bước sóng,.. trong môi trường tại mặt đất. Trong phần 2, tôi sẽ tiến hành phân tích và thử nghiệm kỹ thuật giả lập chuyển động sử dụng dữ liệu GPS biến thiên theo thời gian.

Tham khảo:

Để nắm rõ các nguyên lý và thông tin hệ thống GPS, tôi khuyến nghị bạn nên xem qua các nguồn tham khảo hữu ích sau:

  1. https://www.hackread.com/hacking-smartphones-gps-in-car-navigation-system/
  2. https://node1.t17lab.com/index.php/s/qH8WTMnus501ELy
  3. https://www2.t17lab.com/media/sdr/documents/gps/HPE-SR_WhitePaper_Petrovsky_GPS-Spoof_2016March.pdf
  4. https://www2.t17lab.com/media/sdr/documents/gps/gps-sdr-sim.pdf
  5. https://media.defcon.org/DEF%20CON%2023/DEF%20CON%2023%20presentations/DEFCON-23-Lin-Huang-Qing-Yang-GPS-Spoofing.pdf
  6. https://www.blackhat.com/docs/eu-15/materials/eu-15-Kang-Is-Your-Timespace-Safe-Time-And-Position-Spoofing-Opensourcely-wp.pdf
  7. https://natronics.github.io/blag/2014/gps-spreading/
  8. https://natronics.github.io/blag/2014/gps-prn/
  9. https://natronics.github.io/blag/2014/gps-viz-1/