-
08/10/2013
-
401
-
989 bài viết
Kiểm thử bảo mật trên thiết bị IoT
Bài viết này chia sẻ cách thức kiểm thử bảo mật máy chủ web chạy trên thiết bị IoT là Raspberry Pi.
Raspberry Pi là một máy tính rất nhỏ gọn, kích thước hai cạnh như bằng khoảng một cái thẻ ATM, có thể chạy được nhiều hệ điều hành. Raspberry Pi được phát triển bởi Raspberry Pi Foundation - một tổ chức phi lợi nhuận.
(Ảnh: Microsoft)
Là một trong những thiết bị công nghệ nhỏ gọn, mang tính ứng dụng cao, hiện tại Raspberry pi đang là một thiết bị được sử dụng rộng rãi. Một vài ứng dụng của thiết bị này trong lĩnh vực IoT có thể được kể đến như:
Để tiến hành triển khai, cần cài đặt các phần mềm cần thiết cho thiết bị Raspberry Pi như hệ điều hành, các phần mềm cần thiết. Tuy nhiên để đơn giản vấn đề, trong bài viết này sẽ cài đặt phần mềm Cisco PL-App. Đây là một hệ điều hành độc quyền của Cisco, trong đó, Cisco đã thêm 1 lớp nữa trên nhân raspbian để có được một giao diện người dùng dễ dàng sử dụng và tương tác. Nếu sử dụng Cisco PL-App, thì chúng ta sẽ không cần sử dụng màn hình cho thiết bị Raspberry Pi, mà có thể kết nối trực tiếp với thiết bị qua màn hình laptop hoặc PC, miễn là hai thiết bị đang sử dụng chung 1 mạng LAN.
Ngoài ra, để tiến hành giả lập tấn công vào thiết bị Raspberry Pi, ta còn cần chuẩn bị máy ảo Kali Linux để giả lập tấn công vào thiết bị.
B1. Dò quét thông tin
Sau khi dò quét, về cơ bản đã nắm bắt được các thông tin về các dịch vụ đang chạy trên cổng, cụ thể:
- 22: SSH
- 80: HTTP
- 8080: HTTP-PROXY
Port 8080 thường được sử dụng cho các máy chủ web, tiếp tục sử dụng Nmap để tìm kiếm thêm thông tin về phần mềm đang chạy trên máy chủ mục tiêu.
Sau khi dò quét, có thể nắm bắt được thông tin về tên và phiên bản của HTTP Daemon đang chạy như sau:
- Tên: Werkzeug
- Phiên bản: 0.15.5
Giờ đây, attacker đã biết cơ bản thông tin về IP cũng như dịch vụ đang chạy. Để thu thập thêm thông tin, tiếp tục sử dụng công cụ Skipfish - một công cụ dò quét bảo mật cho web - để dò quét thông tin về web. Sau khi quét trang web, một thư mục có tên “vulnerable_app_result” sẽ được tạo ra, trong thư mục sẽ xuất hiện file có tên “index.html”, đây là trang web hiển thị các thông tin mà skipfish thu thập được.
B2. Khai thác lỗ hổng Sqli bằng SQLMap
Nhiệm vụ chính tại bước tấn công này cụ thể như sau:
- Dò quét các thông tin liên quan đến cơ sở dữ liệu của trang web sử dụng công cụ Sqlmap
- Thực hiện tấn công xóa bỏ bảng dữ liệu
Sau khi đã có cơ bản các thông tin về thiết bị mục tiêu, giờ đây ta có thể thử tìm kiếm các lỗ hổng thường gặp ở một ứng dụng web. Một trong số đó là lỗ hổng SQL injection. Đây là một lỗ hổng cho phép kẻ tấn công lợi dụng lỗi trong việc kiểm soát các dữ liệu đầu vào của các ứng dụng web để thực thi các câu lệnh SQL.
Tại bước này, công cụ sử dụng chính là SqlMap. Đây là một công cụ mã nguồn mở có sẵn trên hệ điều hành Kali Linux. SqlMap hỗ trợ làm việc với nhiều hệ quản trị cơ sở dữ liệu như MySQL, Oracle, MariaDB,...
Sau khi dò quét thông tin bảng thành công, SqlMap trả về thông tin các bảng có trong cơ sở dữ liệu như sau:
Với demo này, ta sẽ giả lập tấn công xóa bảng dữ liệu trong cơ sở dữ liệu:
Website sau khi thực hiện câu lệnh drop database sẽ không thể truy cập nữa
Như vậy thông qua việc Pentest đã phát hiện lỗ hổng bảo mật SQLi, từ đó có thể thao tác xóa CSDL.
Để phòng tránh ta cần sử dụng tường lửa trên hệ điều hành Linux ngăn chặn việc dò quét, khiến kẻ gian không có được những thông tin cần thiết để thực hiện các bước tấn công.
Raspberry Pi là một máy tính rất nhỏ gọn, kích thước hai cạnh như bằng khoảng một cái thẻ ATM, có thể chạy được nhiều hệ điều hành. Raspberry Pi được phát triển bởi Raspberry Pi Foundation - một tổ chức phi lợi nhuận.
(Ảnh: Microsoft)
Là một trong những thiết bị công nghệ nhỏ gọn, mang tính ứng dụng cao, hiện tại Raspberry pi đang là một thiết bị được sử dụng rộng rãi. Một vài ứng dụng của thiết bị này trong lĩnh vực IoT có thể được kể đến như:
- Cảm biến nhiệt độ và độ ấm
- Máy chủ web
- Máy tính nhúng
- Trợ lý ảo giọng nói
Ngoài ra, để tiến hành giả lập tấn công vào thiết bị Raspberry Pi, ta còn cần chuẩn bị máy ảo Kali Linux để giả lập tấn công vào thiết bị.
B1. Dò quét thông tin
Sau khi dò quét, về cơ bản đã nắm bắt được các thông tin về các dịch vụ đang chạy trên cổng, cụ thể:
- 22: SSH
- 80: HTTP
- 8080: HTTP-PROXY
Port 8080 thường được sử dụng cho các máy chủ web, tiếp tục sử dụng Nmap để tìm kiếm thêm thông tin về phần mềm đang chạy trên máy chủ mục tiêu.
Sau khi dò quét, có thể nắm bắt được thông tin về tên và phiên bản của HTTP Daemon đang chạy như sau:
- Tên: Werkzeug
- Phiên bản: 0.15.5
Giờ đây, attacker đã biết cơ bản thông tin về IP cũng như dịch vụ đang chạy. Để thu thập thêm thông tin, tiếp tục sử dụng công cụ Skipfish - một công cụ dò quét bảo mật cho web - để dò quét thông tin về web. Sau khi quét trang web, một thư mục có tên “vulnerable_app_result” sẽ được tạo ra, trong thư mục sẽ xuất hiện file có tên “index.html”, đây là trang web hiển thị các thông tin mà skipfish thu thập được.
B2. Khai thác lỗ hổng Sqli bằng SQLMap
Nhiệm vụ chính tại bước tấn công này cụ thể như sau:
- Dò quét các thông tin liên quan đến cơ sở dữ liệu của trang web sử dụng công cụ Sqlmap
- Thực hiện tấn công xóa bỏ bảng dữ liệu
Sau khi đã có cơ bản các thông tin về thiết bị mục tiêu, giờ đây ta có thể thử tìm kiếm các lỗ hổng thường gặp ở một ứng dụng web. Một trong số đó là lỗ hổng SQL injection. Đây là một lỗ hổng cho phép kẻ tấn công lợi dụng lỗi trong việc kiểm soát các dữ liệu đầu vào của các ứng dụng web để thực thi các câu lệnh SQL.
Tại bước này, công cụ sử dụng chính là SqlMap. Đây là một công cụ mã nguồn mở có sẵn trên hệ điều hành Kali Linux. SqlMap hỗ trợ làm việc với nhiều hệ quản trị cơ sở dữ liệu như MySQL, Oracle, MariaDB,...
Sau khi dò quét thông tin bảng thành công, SqlMap trả về thông tin các bảng có trong cơ sở dữ liệu như sau:
Với demo này, ta sẽ giả lập tấn công xóa bảng dữ liệu trong cơ sở dữ liệu:
Website sau khi thực hiện câu lệnh drop database sẽ không thể truy cập nữa
Như vậy thông qua việc Pentest đã phát hiện lỗ hổng bảo mật SQLi, từ đó có thể thao tác xóa CSDL.
Để phòng tránh ta cần sử dụng tường lửa trên hệ điều hành Linux ngăn chặn việc dò quét, khiến kẻ gian không có được những thông tin cần thiết để thực hiện các bước tấn công.
Chỉnh sửa lần cuối bởi người điều hành: