An ninh mạng ngày càng trở nên phức tạp, bên cạnh những cuộc tấn công mạng trực tiếp như ransomware hay phishing, một mối đe dọa tinh vi hơn đang âm thầm tồn tại: tấn công Side-channel. Vậy, tấn công Side-channel là gì và tại sao chúng lại nguy hiểm đến vậy? Bài viết này sẽ cung cấp một cái nhìn toàn diện, từ cơ chế hoạt động cho đến các biện pháp phòng chống hiệu quả, giúp bạn hiểu rõ hơn về loại hình tấn công đặc biệt này.
Side-channel attacks là gì?
Tấn công Side-channel, hay còn gọi là tấn công kênh phụ, là một phương pháp khai thác lỗ hổng bảo mật dựa trên việc thu thập và phân tích các thông tin rò rỉ một cách vô tình từ hệ thống. Thay vì tấn công trực tiếp vào thuật toán mã hóa hay phần mềm, kẻ tấn công sẽ quan sát các yếu tố vật lý của thiết bị khi nó xử lý dữ liệu.

Ví dụ, khi một vi xử lý thực hiện phép tính, nó sẽ phát ra các tín hiệu vật lý như nhiệt độ, mức tiêu thụ điện năng, hay bức xạ điện từ. Các yếu tố này không phải là đầu ra dự kiến của thuật toán, nhưng lại chứa đựng những manh mối quan trọng về dữ liệu đang được xử lý.
Kẻ tấn công sẽ thu thập các thông tin này, sau đó sử dụng các kỹ thuật phân tích phức tạp để suy luận ra các dữ liệu bí mật như khóa mã hóa, mật khẩu, hay thông tin nhạy cảm khác.
Loại hình tấn công này đặc biệt nguy hiểm bởi nó không để lại bất kỳ dấu vết nào trong nhật ký hệ thống (log), một chương trình độc hại thông thường sẽ bị các phần mềm diệt virus hoặc tường lửa phát hiện.
Ngược lại, việc thu thập thông tin kênh phụ diễn ra bên ngoài hệ thống, giống như một kẻ nghe lén từ xa, khiến việc phòng thủ trở nên vô cùng khó khăn. Các cuộc tấn công Side-channel đã cho thấy ngay cả những thuật toán mã hóa mạnh nhất cũng có thể bị phá vỡ nếu cách triển khai không được tối ưu.
Các loại tấn công Side-channel
Các cuộc tấn công Side-channel rất đa dạng, mỗi loại lại tập trung vào một kênh rò rỉ thông tin khác nhau. Dưới đây là những loại tấn công Side-channel phổ biến nhất:
Timing Attack – Tấn công dựa trên thời gian xử lý
Cơ chế khai thác
Loại tấn công này đo lường thời gian cần thiết để một hệ thống thực hiện một tác vụ nào đó. Ví dụ, thời gian để so sánh một mật khẩu. Nếu hệ thống dừng lại ngay khi phát hiện ký tự sai, kẻ tấn công có thể đo thời gian để đoán từng ký tự một.
Thời gian phản hồi ngắn hơn có thể cho biết ký tự vừa nhập là sai, trong khi thời gian lâu hơn lại là dấu hiệu của ký tự đúng. Kỹ thuật này đã được Paul Kocher công bố vào năm 1996, chỉ ra rằng việc triển khai thuật toán mã hóa thiếu thận trọng có thể làm rò rỉ khóa bí mật.
Ví dụ thực tế
Một ví dụ điển hình là việc so sánh chuỗi (string comparison) trong các hệ thống xác thực, kẻ tấn công có thể gửi các chuỗi ký tự khác nhau và đo thời gian máy chủ phản hồi. Dựa vào sự chênh lệch nhỏ về thời gian, chúng có thể dần dần đoán được mật khẩu đúng.
Power Analysis Attack – Tấn công dựa trên mức tiêu thụ điện năng
Cơ chế khai thác
Vi xử lý tiêu thụ điện năng khác nhau khi thực hiện các lệnh khác nhau hoặc xử lý các bit dữ liệu khác nhau (bit 0 và bit 1). Bằng cách đo lường sự thay đổi của dòng điện đi vào chip, kẻ tấn công có thể phân tích và suy ra các phép toán đang diễn ra, từ đó làm lộ thông tin nhạy cảm.
Ví dụ thực tế
Các cuộc tấn công vào thẻ thông minh (smart card) là một ví dụ rõ rệt. Khi thẻ thực hiện các phép toán mã hóa, mức tiêu thụ điện năng của nó thay đổi. Kẻ tấn công dùng các thiết bị chuyên dụng như máy hiện sóng (oscilloscope) để ghi lại đồ thị điện năng, sau đó phân tích thống kê để tìm ra mối liên hệ và trích xuất khóa mã hóa.

Electromagnetic Attack – Khai thác tín hiệu điện từ
Cơ chế khai thác
Mọi thiết bị điện tử đều phát ra bức xạ điện từ trong quá trình hoạt động, bức xạ này có thể được thu lại bằng các ăng-ten chuyên dụng. Tương tự như tấn công điện năng, tín hiệu điện từ thay đổi tùy thuộc vào dữ liệu được xử lý, cho phép kẻ tấn công thu thập và phân tích thông tin mật.
Ví dụ thực tế
Một trong những cuộc tấn công nổi tiếng nhất là Van Eck Phreaking, sử dụng các thiết bị để tái tạo hình ảnh từ sóng điện từ phát ra từ màn hình CRT. Ngày nay, kỹ thuật này được áp dụng để khai thác các tín hiệu từ vi xử lý, làm lộ khóa mã hóa.
Acoustic Cryptanalysis – Nghe âm thanh phát ra từ thiết bị
Cơ chế khai thác
Một số thành phần của máy tính như cuộn cảm hay tụ điện có thể phát ra âm thanh khi hoạt động, đặc biệt là khi xử lý các tác vụ nặng. Tần số và cường độ của âm thanh này phụ thuộc vào dữ liệu đầu vào.
Ví dụ thực tế
Nghiên cứu của các nhà khoa học đã cho thấy có thể sử dụng microphone để ghi âm và phân tích âm thanh phát ra từ bàn phím hoặc vi xử lý để suy luận ra các phím được gõ hay dữ liệu đang được xử lý.
Cache Attack & Branch Prediction – Lợi dụng bộ nhớ đệm CPU
Cơ chế khai thác
Vi xử lý hiện đại sử dụng bộ nhớ đệm (cache) và cơ chế dự đoán nhánh (branch prediction) để tăng tốc độ. Các cuộc tấn công như Cache Attack lợi dụng sự chênh lệch thời gian khi truy cập vào dữ liệu trong bộ nhớ đệm so với bộ nhớ chính. Bằng cách quan sát mẫu truy cập bộ nhớ đệm, kẻ tấn công có thể suy luận về dữ liệu đang được xử lý.
Ví dụ thực tế
Các lỗ hổng nổi tiếng như Spectre và Meltdown là minh chứng rõ ràng cho loại hình tấn công này. Chúng khai thác cơ chế thực thi suy đoán (speculative execution) của CPU để truy cập vào các vùng bộ nhớ vốn được bảo vệ, sau đó dùng Side-channel để làm rò rỉ dữ liệu.
Các biến thể nổi bật (Spectre, Meltdown, Rowhammer)
Spectre và Meltdown (2018)
Hai lỗ hổng này đã làm chấn động ngành công nghiệp công nghệ toàn cầu, cả hai đều khai thác các lỗ hổng trong kiến trúc CPU để làm rò rỉ dữ liệu. Meltdown cho phép đọc bộ nhớ hạt nhân (kernel memory), trong khi Spectre làm rò rỉ dữ liệu giữa các ứng dụng riêng biệt. Hàng triệu máy tính, máy chủ và thiết bị di động đã bị ảnh hưởng.
Rowhammer (2014)
Đây là một lỗ hổng phần cứng liên quan đến bộ nhớ RAM. Khi một hàng bộ nhớ (memory row) bị truy cập quá nhiều lần, nó có thể làm thay đổi trạng thái của các bit trong các hàng bộ nhớ lân cận, cho phép kẻ tấn công thay đổi dữ liệu hoặc chiếm quyền kiểm soát hệ thống.
Cách thức tấn công Side-channel
Một cuộc tấn công Side-channel không diễn ra một cách ngẫu nhiên. Nó thường tuân theo một quy trình cụ thể với ba bước chính:
Thu thập dữ liệu rò rỉ
Đây là bước đầu tiên và quan trọng nhất. Kẻ tấn công sử dụng các công cụ chuyên dụng như máy hiện sóng (oscilloscope), bộ phân tích logic (logic analyzer), hoặc thậm chí là microphone để ghi lại các tín hiệu vật lý phát ra từ thiết bị. Dữ liệu thu thập được thường là một chuỗi các giá trị thời gian, điện năng, hoặc âm thanh.
Phân tích và xử lý dữ liệu
Dữ liệu thô thu thập được chứa rất nhiều nhiễu, kẻ tấn công phải sử dụng các thuật toán xử lý tín hiệu và phân tích thống kê để lọc nhiễu, tìm ra mối tương quan giữa dữ liệu rò rỉ và các hoạt động mã hóa.
Các kỹ thuật như Phân tích điện năng vi sai (Differential Power Analysis – DPA) hay Phân tích thời gian vi sai (Differential Timing Analysis) thường được sử dụng trong giai đoạn này.
Trích xuất thông tin bí mật
Khi đã xác định được mối tương quan, kẻ tấn công có thể suy luận ngược lại để trích xuất thông tin bí mật. Ví dụ, nếu một mô hình tấn công cho thấy sự thay đổi điện năng khi một bit của khóa mã hóa có giá trị 1, kẻ tấn công có thể lần lượt thử các giá trị bit khác nhau cho đến khi tìm được sự thay đổi tương ứng, từ đó tái tạo lại toàn bộ khóa.
Hậu quả của cuộc Side-channel Attack
Hậu quả của cuộc Side-channel Attack (tấn công kênh bên) là gây ra mối đe dọa nghiêm trọng về an ninh thông tin, làm lộ hoặc rò rỉ các dữ liệu nhạy cảm như mật khẩu, khóa mã hóa, hoặc thông tin bí mật khác của hệ thống.
Các cuộc tấn công này có thể cho phép hacker khai thác tín hiệu vô tình rò rỉ từ thiết bị, như tiêu thụ điện năng, sóng điện từ, hoặc âm thanh phát ra trong quá trình thiết bị hoạt động, để từ đó mở khóa hoặc có được thông tin mà không cần xâm nhập trực tiếp vào hệ thống.

Các hậu quả cụ thể gồm:
- Rò rỉ dữ liệu nhạy cảm trong quá trình mã hóa, làm suy yếu khả năng bảo mật của các thuật toán mã hóa hiện đại, kể cả mã hóa Homomorphic.
- Hình ảnh hoặc thông tin truyền qua các thiết bị như camera có thể bị nghe lén qua sóng điện từ rò rỉ, gây mất quyền riêng tư nghiêm trọng.
- Trong môi trường điện toán đám mây, kẻ tấn công có thể đặt máy ảo độc hại trên máy chủ vật lý chung, từ đó truy xuất thông tin bí mật của các khách hàng khác trên cùng hệ thống.
- Làm gián đoạn hoặc thao túng hoạt động của hệ thống mục tiêu, từ đó gây mất ổn định và rủi ro về an ninh.
- Mất an toàn cho các thiết bị IoT và các hệ thống nhúng do thiếu biện pháp bảo vệ chống lại tấn công kênh bên.
Side-channel Attack có thể làm lộ thông tin quan trọng, ảnh hưởng lớn đến tính bảo mật, quyền riêng tư, và an toàn của hệ thống máy tính và thiết bị điện tử.
Các công cụ tấn công Side-channel
Thực hiện một cuộc tấn công Side-channel đòi hỏi sự kết hợp giữa phần cứng và phần mềm chuyên dụng. Dưới đây là một số công cụ phổ biến:
- Máy hiện sóng (Oscilloscope): Dùng để đo lường và hiển thị đồ thị điện áp, giúp phân tích mức tiêu thụ điện năng.
- Đầu dò điện từ (EM Probe): Thu thập các tín hiệu điện từ phát ra từ vi mạch.
- Bộ phân tích logic (Logic Analyzer): Ghi lại các tín hiệu số, phục vụ cho việc phân tích thời gian.
- Các thư viện mã nguồn mở: Các thư viện như ChipWhisperer hay các công cụ trên GitHub cung cấp khung sườn và mã mẫu để thực hiện các cuộc tấn công Side-channel, giúp các nhà nghiên cứu và hacker mô phỏng, thử nghiệm các kỹ thuật tấn công và phòng thủ.
Cách phòng chống Side-channel Attack hiệu quả
Phòng chống Side-channel Attack là một thách thức lớn, nhưng không phải là không thể, các biện pháp phòng chống cần được áp dụng đồng bộ ở cả cấp độ phần cứng và phần mềm.
Phòng chống ở cấp phần mềm
- Thuật toán mã hóa chống timing attack: Sử dụng các thuật toán được thiết kế để hoạt động với thời gian thực thi cố định, không phụ thuộc vào dữ liệu đầu vào giúp ngăn chặn các cuộc tấn công dựa trên thời gian.
- Randomization (Ngẫu nhiên hóa): Đưa thêm các yếu tố ngẫu nhiên vào quá trình thực thi để làm nhiễu loạn các tín hiệu kênh phụ, kỹ thuật này làm cho việc phân tích dữ liệu trở nên khó khăn hơn.
- Secure coding: Lập trình viên cần tuân thủ các nguyên tắc an toàn, tránh để lộ thông tin qua các luồng dữ liệu không mong muốn.
Phòng chống ở cấp phần cứng
- Shielding (Che chắn): Sử dụng các lớp vật liệu đặc biệt để che chắn thiết bị, giảm thiểu sự rò rỉ của tín hiệu điện từ.
- Constant Power Design: Thiết kế mạch sao cho mức tiêu thụ điện năng luôn ổn định, không thay đổi theo dữ liệu được xử lý, từ đó vô hiệu hóa tấn công dựa trên điện năng.
- Cache Partitioning: Phân chia bộ nhớ đệm để các tiến trình khác nhau không thể truy cập hoặc can thiệp vào bộ nhớ đệm của nhau, giảm thiểu rủi ro từ Cache Attack.
Best practices
- Cập nhật hệ thống thường xuyên: Các nhà sản xuất chip như Intel, AMD và ARM liên tục phát hành các bản vá phần mềm và firmware để khắc phục các lỗ hổng Side-channel như Spectre và Meltdown. Việc cập nhật là rất quan trọng để đảm bảo an toàn.
- Sử dụng phần cứng tin cậy: Lựa chọn các thiết bị và chip đã được kiểm tra và chứng nhận về bảo mật.
- Kiểm thử bảo mật định kỳ: Các tổ chức nên thực hiện các bài kiểm tra xâm nhập (penetration testing) và đánh giá lỗ hổng bảo mật định kỳ để phát hiện và khắc phục sớm các điểm yếu.
Tấn công Side-channel là một lời nhắc nhở rằng bảo mật không chỉ dừng lại ở mã hóa và tường lửa, các thông tin tưởng chừng vô hại như thời gian, điện năng hay nhiệt độ cũng có thể trở thành vũ khí trong tay kẻ tấn công.
Việc hiểu rõ về tấn công Side-channel là gì và cách thức hoạt động của nó không chỉ giúp bạn nhận biết được mối nguy hiểm mà còn trang bị cho bạn kiến thức cần thiết để xây dựng các hệ thống an toàn và đáng tin cậy hơn.
