Internet of Thinsgs (IoT) là từ khoá xuất hiện nhiều trên các tạp chí cũng như các kênh truyền thông khắp thế giới. Những sản phẩm IoT giá rẻ được đưa ra thị trường một cách ồ ạt gần đây được các nhà sản xuất cùng giới truyền thông tôn vinh và giới thiệu như một thiết bị thông minh. Tuy nhiên, họ lại không quá chú trọng vào khía cạnh bảo mật cho chính thiết bị “thông minh” của mình. Theo thống kê của tổ chức OWASP, cho tới năm 2020 sẽ có 26 Bilion thiết bị được cung cấp ra thị trường, đây quả là một mảnh đất màu mỡ cho các hacker tấn công và kiểm soát.
Bài viết này sẽ giúp chúng ta có được một cái nhìn tổng quan về “bảo mật trong IoT” cũng như bước đầu làm quen với những phương pháp giản đơn để kiểm thử một thiết bị thông minh trên thị trường.
Trước hết, hạ tầng của các thiết bị Internet of Things được chia thành 03 thành phần chính.
  • Thiết bị nhúng;
  • Phần mềm phía người dùng và máy chủ;
  • Phương thức giao tiếp qua Radio.
Thiết bị nhúng
Thiết bị nhúng là một thành phần vật lý có mặt ở bên trong bất kì một hạ tầng IoT nào. Ví dụ, trong một hệ thống nhà thông minh luôn có hai thành phần được nhắc tới nhiều nhất đó là “Bộ xử lí trung tâm” và “Thiết bị thông minh”. Trong đó, “Bộ xử lí trung tâm” hoạt động như một hub kết nối mọi thiết bị thông minh trong ngôi nhà của bạn để từ đó đưa ra được các lệnh điều khiển, hiển thị thông tin trạng thái, trong khi đó các “Thiết bị thông minh” là những cảm biến, màn hình hoặc là những công tắc điều khiển các thành phần vật lý khác trong ngôi nhà như đèn, cửa, tủ lạnh, bếp,…
Một trong những lỗ hổng trong thiết bị nhúng mà chúng ta thường thấy đó là việc lấy được phiên đăng nhập dưới quyền “root – quyền hạn cao nhất trong một máy Linux” từ việc truy cập trực tiếp vào thiết bị qua các serial port. Từ đó chúng ta có khả năng trích xuất được “firmware – phần mềm điều khiển” của thiết bị. Nếu việc tìm kiếm lỗ hổng và khai thác thiết bị qua phương pháp “Hộp đen – blackbox” sẽ có nhiều khó khăn thì việc có trong tay firmware của thiết bị trong tay, nó sẽ mở ra một con đường dễ dàng hơn một chút để tiến tới việc tìm lỗi, khai thác và kiểm soát thiết bị.
Phần mềm phía người dùng và máy chủ trên Cloud
Hai thành phần này luôn luôn đi kèm với nhau để cung cấp cho chúng ta những giải pháp như:
  • Cập nhật firmware của thiết bị từ Internet – Giao diện bảng điều khiển thiết bị trên ứng dụng Web – Cung cấp các API – Application Programming Interface cho ứng dụng điện thoại, thường dùng để điều khiển, cấu hình và theo dõi trạng thái của thiết bị.
Bản chất của thành phần này trong hạ tầng của IoT là việc thiết bị sẽ cung cấp một Web Application cho người dùng. Điều này khiến nó có thể gặp những mối nguy hiểm tiềm tàng trong lập trình không an toàn của các lập trình viên như: SQL Injection, XSS, CSRF, bị lộ hoặc kém trong việc quản lý các phiên làm việc, yếu trong việc cung cấp xác thực thông tin của người dùng hoặc sử dụng một kiểu mã hoá yếu. Ngoài ra, ở trong thành phần này, chúng ta có thể dễ dàng nhận ra được những yếu điểm trong việc bảo vệ các giao tiếp API từ Mobile Client tới Cloud Server.
Một hệ thống không được cung cấp một giải pháp mã hoá SSL/TLS cho các kết nối, nó sẽ dễ dàng bị nghe lén và đánh cắp thông tin qua việc tấn công Man-In-The-Middle.
Phương thức giao tiếp qua Radio
Đây là một khía cạnh khác cũng khá quan trọng của một thiết bị IoT. Các giao thức sử dụng sóng radio thường được sử dụng trong các thiết bị IoT đó là Wifi, BLE, Zigbee,… Nếu con người sử dụng việc giao tiếp bằng ngôn ngữ và cử chỉ để giao tiếp với nhau, thì các sản phẩm IoT chúng giao tiếp với nhau, giao tiếp với điện thoại thông mình qua sóng Radio, và nó cũng dễ dàng bị nghe lén ở giữa nếu chúng không có một giải pháp mã hoá hoặc bảo mật gì.
Dưới đây là các bước bạn sẽ cần để lập một kịch bản tấn công của một thiết bị IoT:
Những thiết bị, cảm biến liên lạc với ứng dụng điện thoại thông minh qua giao thức BLE. Các thiết bị như này nó không đủ mạnh để làm các chức năng cảnh báo, hay ưu việt nên nó phải nhờ đến tài nguyên mạnh mẽ trên điện thoại thông minh để giúp nó thực hiện các tính mà nó cần.
Những thiết bị như này, ngoài việc kết nối tới smartphone, nó còn gửi các bản tin dữ liệu của nó qua giao thức Zigbee, Wifi,.. tới thiết bị xử lý trung tâm để làm nhiệm vụ tổng hợp dữ liệu, phân tích và xử lý. Kết quả sau đó được đẩy lên hệ thống Cloud qua mạng Wifi hoặc GSM làm nhiệm vụ lưu trữ hoặc thực hiện các nghiệp vụ riêng biệt. Đồng thời, những hệ thống cloud này cung cấp các địa chỉ API cho smartphone, giúp nó hoàn thành nhiệm vụ đồng bộ và quản lý các phiên truy cập.
Những thành phần kể trên đó là những cánh cửa có thể có những điểm yếu mà hacker có thể lợi dụng để xây dựng cho mình các hợp đồng tác chiến một cách hợp lý.
Rút gọn lại, chúng ta có được các phương pháp tấn công cơ bản:
A. IoT gateway
  • Thu thập thông tin trong firmware bằng việc giải nén firmware để tìm kiếm các tư liệu nhạy cảm như mật khẩu, các cấu hình dịch vụ mẫu trong các filesytem của thiết bị IoT. Truy cập các cổng giao tiếp trên thiết bị vật lý để có được quyền tài khoản root,…
  • Nghe lén và giả mạo dữ liệu từ gateway tới Cloud
B. Devices
  • Thu thập thông tin trong firmware bằng việc giải nén firmware để tìm kiếm các tư liệu nhạy cảm như mật khẩu, các cấu hình dịch vụ mẫu. Truy cập các cổng giao tiếp trên thiết bị vật lý để có được quyền tài khoản root,..
  • Bắt dữ liệu và phân tích các gói tin dữ liệu truyền đi qua giao thức Radio, sau đó giả mạo dữ liệu để gửi đi.
  • Tấn công giao thức BLE
C. Mobile App: Phân tích dịch ngược ứng dụng để tìm ra điểm yếu của ứng dụng như lộ thông tin đăng nhập, lộ đường dẫn kết nối API, hoặc các lỗi về logic khác.
D. Cloud/Web dashboard: Có thể thực hiện các kiểu tấn công về Web Application như SQL Injection, XSS, CSRF, Remote Exploit, …
Nguồn ảnh:
 – http://jcjc-dev.com/
 – http://resources.infosecinstitute.com/
Hà Trung Hiếu – IoT Team
Tin liên quan:
  • 1
    Share