Tàu là những cỗ máy 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. Phần mềm cũng tương tự như vậy. 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ợ 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 an toàn.
Một trong những thử nghiệm như vậy là fault injection (tiêm lỗi). So với việc đóng tàu, phương pháp này 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 xử lý khi tàu 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 việc 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 mình 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. Đ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 những thành phần hoặc vật liệu giữ các thành phần kết nố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; 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, Fault injection 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, Fault injection 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ố phải không?
Fault Injection Attack (FIA) hoạt động như thế nào?
Các nhà sản xuất cố tình thực hiện Fault injection để phát hiện ra những lỗi có thể ảnh hưởng đến tính bảo mật của sản phẩm. 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 Fault injection 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 riê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 Fault 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 Fault injection có thể ở cả hai dạng. Các nhà sản xuất và tin tặc thường kết hợp những 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 mình.
Một số công cụ được sử dụng để thực hiện Fault injection là FERRARI (Fault and ERRor Automatic Real-time Injector), FTAPE (Fault Tolerance And Performance Evaluator), Xception, Gremlin, Holodeck và ExhaustiF. Trong khi đó, các phương pháp 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 FIA, chúng có thể làm hỏng hệ thống đủ lâu để lợi dụng quá trình reset, 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 FIA
Bạn không phải lo lắng về việc ngăn chặn các cuộc tấn công 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ế những 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 nào 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 những 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 Side-Channel Attack (SCA), đặc biệt nếu quyền truy cập của chúng vào thiết bị bị hạn chế. Nhóm phát triển 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 những thử nghiệm Fault injection của họ.
Bạn có nên lo lắng về FIA?
FIA không trực tiếp ảnh hưởng tới bạn. 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à những cuộc tấn công Fault injection. 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 tấn công. Ngoài ra, các phương pháp Fault injection nói chung là mang tính 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ọ.