Tàu là những con thú máy móc với nhiều bộ phận hoạt động để đảm bảo các chuyến đi an toàn, thành công. Một tương đương kỹ thuật số sẽ là phần mềm. Giống như phát triển phần mềm, đóng tàu bao gồm một số bước và kỹ thuật chính xác. Sau đó, khi mọi thứ đã hoàn tất, những người thợ đóng thử nghiệm sáng tạo của họ trong các điều kiện khác nhau để đảm bảo con tàu an toàn và hoạt động như thiết kế. Gần như tất cả các phần mềm tốt nhất chúng ta sử dụng ngày nay đều trải qua các bài kiểm tra để đảm bảo chúng cũng an toàn.
Một thử nghiệm như vậy là tiêm lỗi. So với việc đóng tàu, tiêm lỗi sẽ giống như việc các kỹ sư hàng hải cố tình đục lỗ trên tàu của họ để xem cách họ xử lý khi chìm…
Fault injection là gì và tại sao nó lại quan trọng?
Fault injection là hành vi cố ý tạo ra các lỗi trong một hệ thống. Mục tiêu của thực hành này là phân tích cách hệ thống hoạt động dưới áp lực. Các kỹ sư phần cứng và phần mềm thường gây ra lỗi trong phần cứng hoặc phần mềm của họ vì một số lý do.
Thứ nhất, họ muốn phát hiện và giải quyết các lỗi có thể phát sinh bên ngoài môi trường được kiểm soát của phòng thí nghiệm sản xuất. Điều này rất quan trọng vì họ không kiểm soát được các điều kiện mà khách hàng sẽ sử dụng sản phẩm của họ. Nhiệt có thể ảnh hưởng đến các thành phần hoặc vật liệu giữ các thành phần lại với nhau; lỗi máy chủ có thể khiến toàn bộ khu vực mất quyền truy cập vào dịch vụ phát trực tuyến yêu thích của họ; kẻ tấn công có thể gây ra lỗi phá vỡ các tính năng bảo mật. Khi những sự kiện như vậy xảy ra, nhà phát triển và nhà sản xuất thiết bị muốn đảm bảo sản phẩm của họ vẫn bảo vệ tính toàn vẹn của dữ liệu và sự an toàn của người dùng hoặc điều chỉnh phân bổ tải để giảm thiểu gián đoạn dịch vụ.
Cuối cùng, việc chèn lỗi là cần thiết để làm cho ứng dụng và phần cứng trở nên an toàn, bảo mật và đáng tin cậy. Tương tự như vậy, tiêm lỗi giúp các nhà sản xuất bảo vệ tài sản trí tuệ, giảm rủi ro mất mát và giữ được niềm tin của khách hàng. Bạn sẽ không gửi tiền của mình vào ngân hàng nếu ứng dụng của họ liên tục gặp sự cố và tin tặc có thể bẻ khóa nó, phải không?
Các cuộc tấn công tiêm lỗi hoạt động như thế nào?
Các nhà sản xuất cố tình thực hiện tiêm lỗi để phát hiện ra các lỗi có thể ảnh hưởng đến tính bảo mật của sản phẩm của họ. Không có gì ngăn cản những kẻ tấn công làm điều tương tự để vạch trần những điểm yếu trong hệ thống và khai thác chúng. Rốt cuộc, các công cụ được sử dụng để thực hiện tiêm lỗi là công khai và các phương pháp không quá phức tạp.
Hơn nữa, những kẻ tấn công có kinh nghiệm có thể sáng tạo với các phương pháp của chúng và đẩy hệ thống vượt quá mức bình thường. Tại thời điểm này, bạn cần biết rằng error injection có thể là vật lý (trong phần cứng) hoặc kỹ thuật số (trong phần mềm). Tương tự như vậy, các công cụ và phương pháp được sử dụng trong các cuộc tấn công tiêm lỗi có thể ở cả hai dạng. Các nhà sản xuất và tin tặc thường kết hợp các công cụ vật lý và kỹ thuật số trong quá trình thử nghiệm và tấn công của họ.
Một số công cụ được sử dụng để chèn lỗi là FERRARI (Công cụ tiêm lỗi và lỗi tự động trong thời gian thực), FTAPE (Bộ đánh giá hiệu suất và dung sai lỗi), Xception, Gremlin, Holodeck và ExhaustiF. Trong khi đó, các phương pháp của FIA thường liên quan đến việc bắn phá hệ thống bằng các xung điện từ cường độ cao, làm tăng nhiệt độ môi trường, làm giảm điện áp của GPU hoặc CPU hoặc gây ra đoản mạch. Sử dụng các công cụ và phương pháp của FIA, chúng có thể làm hỏng hệ thống đủ lâu để khai thác thiết lập lại, bỏ qua giao thức hoặc đánh cắp dữ liệu nhạy cảm.
Ngăn chặn các cuộc tấn công tiêm lỗi
Bạn không phải lo lắng về việc ngăn chặn các cuộc tấn công của FIA nếu bạn là người tiêu dùng thông thường. Trách nhiệm đó thuộc về nhà sản xuất thiết bị hoặc nhà phát triển phần mềm, giống như sự an toàn của con tàu là công việc của thủy thủ đoàn. Các nhà sản xuất và nhà phát triển thực hiện điều này bằng cách thiết kế các giao thức bảo mật linh hoạt hơn và gây khó khăn cho việc trích xuất dữ liệu đối với tin tặc.
Tuy nhiên, không có hệ thống hoàn hảo. Những kẻ tấn công thường xuyên phát triển các phương pháp tấn công mới và chúng không bị giới hạn về cách áp dụng các phương pháp đó vì chúng không chơi theo luật. Ví dụ: tin tặc có thể kết hợp FIA với một cuộc tấn công kênh bên, đặc biệt nếu quyền truy cập của họ vào thiết bị bị hạn chế. Nhóm ở phía bên kia phải thừa nhận thực tế này trong việc thiết kế các hệ thống có khả năng phục hồi và lên kế hoạch cho các thử nghiệm chèn lỗi của họ.
Bạn có nên lo lắng về FIA?
Không trực tiếp. Có nhiều khả năng các mối đe dọa an ninh mạng ảnh hưởng đến cá nhân bạn hơn là các cuộc tấn công tiêm lỗi. Bên cạnh đó, FIA hiếm khi bí mật. Kẻ tấn công sẽ cần quyền truy cập vật lý vào thiết bị của bạn để thực hiện một cuộc tấn công tiêm lỗi. Ngoài ra, các phương pháp tiêm lỗi nói chung là xâm lấn và dẫn đến một số mức độ thiệt hại tạm thời hoặc vĩnh viễn cho hệ thống. Vì vậy, rất có thể bạn sẽ nhận thấy có điều gì đó không ổn hoặc bị bỏ lại với một thiết bị mà bạn không thể sử dụng.
Tất nhiên, điều đáng chú ý là kẻ tấn công có thể đã đánh cắp dữ liệu nhạy cảm vào thời điểm bạn nhận thấy hành vi giả mạo. Nhà sản xuất hoặc nhà phát triển có trách nhiệm ngăn chặn cuộc tấn công ngay từ đầu và cải thiện tính bảo mật cho sản phẩm của họ.