Một số lưu ý khi thiết kế các thiết bị IoT có yêu cầu an toàn thông tin
Những yêu cầu về ATTT cho IoT
Năm 2010, những tác hại của vụ tấn công bằng phần mềm độc hại Stuxnet đã đưa ra một cảnh báo về sự an toàn của thiết bị nhúng. Mã độc Stuxnet đã tấn công các hệ thống điều khiển công nghiệp và các hệ thống nhúng được sử dụng để kiểm soát và giám sát các cơ sở hạ tầng quan trọng.
Tuy nhiên, đối với các thiết bị nhúng, ATTT không phải là tiêu chí được ưu tiên hàng đầu. Đôi khi khả năng tương thích và tính tiện lợi của việc kết nối nhanh được ưu tiên hơn. Trong các thiết bị nhúng, kết nối sẽ được giả định là kết nối cục bộ thông qua các nhà cung cấp dịch vụ và các thiết bị đáng tin cậy. Tuy nhiên, mã độc Stuxnet đã vượt qua được kết nối này, điều này cho thấy các kết nối cục bộ cũng không hoàn toàn đáng tin cậy. Mã độc đã lây nhiễm các máy tính cá nhân và máy tính xách tay, sau đó lây nhiễm qua các bộ điều khiển logic (Programmable Logic Controllers - PLC) được kết nối thông qua mạng cục bộ.
Hiện nay, các thiết bị IoT thường được thiết kế để kết nối với mạng máy tính (Internet) thông qua các hệ thống nhúng. Để đảm bảo việc kết nối được an toàn, các thiết bị này cần được quan tâm đúng mức tới việc đảm bảo ATTT và phải được áp dụng các nguyên tắc bảo mật từ ngay trong giai đoạn phát triển.
Các yêu cầu an toàn trong vòng đời phát triển phần mềm
Bảo mật trong vòng đời phát triển phần mềm
Để có được các sản phẩm có thiết kế an toàn, thì phải coi ATTT là tiêu chí ưu tiên hàng đầu trong vòng đời phát triển phần mềm (Software Development Lifecycle - SDLC) của các thiết bị IoT. Các giai đoạn quan trọng trong vòng đời phát triển sản phẩm bao gồm:
Giai đoạn phân tích các yêu cầu (Requirements Analysis): Đây là giai đoạn đánh giá các mối đe dọa an toàn hệ thống đã có và phân tích rủi ro mà thiết bị có thể gặp phải. Các yêu cầu về an toàn cần thiết và những trường hợp mà kẻ tấn công có thể lợi dụng để khai thác cần được tiến hành phân tích để đưa ra các giải pháp khắc phục. Giai đoạn này rất quan trọng, bởi nó quyết định mục tiêu an toàn cho thiết bị, từ đó đưa ra các kế hoạch và đầu tư kinh phí cho phát triển.
Giai đoạn thiết kế và kiến trúc (Design and architecture): Các cấu trúc thiết kế của thiết bị (các thiết kế ứng viên được chọn) cần phải ưu tiên đánh giá mức độ an toàn trước tiên. Việc đánh giá chính xác các mối đe dọa đối với các cấu trúc này và các yêu cầu đảm bảo ATTT cho chúng sẽ bổ sung thêm hướng phát triển cho giai đoạn này. Trong đó, cần phải có các kế hoạch để thử nghiệm và phân tích các yêu cầu an toàn trong các trường hợp kẻ tấn công có thể lợi dụng những kẽ hở trong thiết kế. Trong thiết kế, sản phẩm phải có tính năng cập nhật phần mềm. Điều này là rất quan trọng trong việc giải quyết các vấn đề mới phát sinh ở giai đoạn triển khai và bảo trì.
Giai đoạn phát triển lập trình (Code development): Trong giai đoạn này, việc chú ý đến các yêu cầu về điều kiện và tiêu chuẩn an toàn trong lập trình là yếu tố rất quan trọng (Secure coding). Cần sử dụng các công cụ tự động hóa như phân tích tĩnh (Static Analysis) để đảm bảo rằng, các lỗ hổng ATTT không được tồn tại trên sản phẩm. Việc kiểm tra tự động (Test Automatic) và phân tích bảo mật là rất quan trọng trong giai đoạn này.
Giai đoạn tích hợp và thử nghiệm (Integration and test): Khi thiết bị đã được hình thành, việc thử nghiệm hệ thống và kiểm tra các hệ thống con sẽ giúp tìm thấy các lỗ hổng có thể còn tồn tại trước khi tích hợp và triển khai sản phẩm ra thị trường. Trong giai đoạn này, cần sử dụng các công cụ kiểm tra thâm nhập (penetration testing) tự động để tìm ra các lỗ hổng chưa phân tích được trong các giai đoạn trước đó. Để đảm bảo sản phẩm đã được bảo mật an toàn mức cao nhất, có thể ngăn ngừa được các mối đe dọa khi các thiết bị được kết nối với các hệ thống mạng, cần lưu ý đến giai đoạn hoàn thiện và thiết lập cấu hình an toàn (Secure Configuration) cuối cùng cho sản phẩm.
Giai đoạn triển khai và bảo trì (Deployment and maintenance): Khi sản phẩm được phân phối trên thị trường và triển khai rộng rãi, việc khắc phục các lỗ hổng bảo mật sẽ trở nên khó khăn hơn do mất chi phí để bảo hành, sửa chữa sản phẩm. Thông thường, một sản phẩm khi được thiết kế theo cách ưu tiên tiêu chí đảm bảo thông tin trước sẽ ít khi gặp phải rủi ro mất ATTT. Tuy nhiên, cũng cần lưu ý cập nhật các bản vá lỗ hổng ATTT của hệ thống để khắc phục lỗi bảo mật cho các sản phẩm.
Các yêu cầu ATTT
Việc bảo đảm ATTT cho một thiết bị nhúng luôn yêu cầu sự cân bằng giữa khả năng xử lý nhanh và khả năng bảo đảm ATTT. Một số yêu cầu bảo đảm ATTT mà các nhà phát triển các sản phẩm IoT vẫn cần chú ý đến để hoàn thiện sản phẩm, bao gồm:
- Xác thực người dùng: xác nhận quyền truy cập của người dùng và các đặc quyền bắt buộc đối với các lớp người dùng khác nhau.
- Lưu trữ an toàn: đảm bảo dữ liệu được lưu trữ và được bảo mật trong cả truy cập trực tuyến và ngoại tuyến. Trong đó có các kỹ thuật như lưu trữ tệp tin mã hóa và các biện pháp quản lý bản quyền nội dung số (Digital Rights Management - DRM).
- Bảo mật truyền thông: đảm bảo an toàn dữ liệu và ngăn chặn truy cập không mong muốn thông qua các kênh kết nối (mạng, USB,...). Mặc dù kết nối mạng tiềm ẩn nhiều nguy cơ bị tấn công nhất, nhưng các kênh khác cũng đều có thể bị tấn công nếu không đề phòng.
- Độ tin cậy và tính sẵn sàng: duy trì hoạt động an toàn của thiết bị khi đối mặt với các cuộc tấn công đang diễn ra.
Một số công cụ hỗ trợ trong thiết kế thiết bị IoT có yêu cầu đảm bảo ATTT
Các công cụ kiểm tra an toàn ứng dụng tĩnh - SAST (Static Application Security Testing) như: Source Patrol, HP Fortify, IBM AppScan Source Edition, Checkmarx... hỗ trợ quan trọng trong các giai đoạn phát triển của sản phẩm. Chúng đảm bảo chất lượng mã nguồn, làm giảm đáng kể chi phí và rủi ro về ATTT.
Một số lợi ích chính như sau: Chất lượng mã nguồn được kiểm tra liên tục và đảm bảo an toàn; Phát hiện và phân tích dữ liệu bị nhiễm độc; Đánh giá kết quả mã nguồn của bên thứ ba (nếu có); Bảo đảm cài đặt các tiêu chuẩn mã hóa.
Trong các hệ thống M2M và IoT, đảm bảo ATTT phải được tích hợp trong thiết kế nhưng không được quá phức tạp để giảm thiểu chi phí và tránh rủi ro kinh doanh (khả năng bị thua lỗ nếu đầu tư quá nhiều cho vấn đề ATTT nhưng không đảm bảo tiêu chí nhanh và tiện lợi nên không được khách hàng ưu chuộng). Các nhà cung cấp sản phẩm cần tiếp cận đầy đủ quy trình phát triển, bao gồm sự hiểu biết về các bề mặt dễ bị tấn công của thiết bị và sử dụng các phân tích tự động để lường trước nguy cơ này.
Các công cụ SAST có vai trò quan trọng có thể giúp các nhà phát triển thiết bị chế tạo được các thiết bị chất lượng tốt nhưng vẫn đảm bảo được ATTT.
Bình Dương
(biên dịch theo “IoT Devices Require Security - First Design” trong Tạp chí CyberDefense, số 3/2017)