Sử dụng chiến thuật kênh kề theo thời gian, lỗ hổng này có khả năng tận dụng để đánh cắp thông tin từ các tiến trình chạy trên cùng lõi CPU đã bật SMT/hyper-threading.
Cảnh báo về lỗ hổng PortSmash mới: Đe dọa đánh cắp các khóa giải mã cá nhân.
SMT/Hyper-threading là kỹ thuật sử dụng khi một lõi CPU vật lý được phân thành 2 lõi logic ảo có khả năng xử lý 2 tiến trình độc lập đồng thời. Phương pháp này giúp tối ưu hiệu suất bằng cách sử dụng tài nguyên CPU nhàn rỗi một cách hiệu quả, đồng thời thúc đẩy tốc độ thực thi lệnh.
Cuộc tấn công kênh kề theo thời gian là khi kẻ tấn công đánh giá tốc độ thực thi của một luồng, từ đó khám phá dữ liệu đang được sử dụng làm đầu vào.
Nhóm nghiên cứu gồm Billy Bob Brumley, Cesar Pereida Garcia, Sohaib ul Hassan, và Nicola Tuveri từ trường đại học công nghệ Tampere ở Phần Lan và Alejandro Cabrera Aldaya từ đại học Tecnologica de la Habana CUJAE ở Cuba đã phát hiện lỗ hổng PortSmash. Phát hiện này hiện đang đợi kiểm duyệt trước khi công bố.
Trả lời BleepingComputer, nhà nghiên cứu Tuveri mô tả cuộc tấn công nhắm vào cổng để đo đạc thời gian thực thi của OpenSSL. Nhờ vào thông tin này, nhóm nghiên cứu có thể phục hồi khóa cá nhân từ dữ liệu đã thu thập được.
'Để ngắn gọn, với SMT và 2 luồng/lõi, mỗi quá trình chạy trên một luồng sẽ có hướng dẫn và dữ liệu riêng, nhưng sẽ chia sẻ một số tài nguyên phần cứng với một quá trình đang chạy trên luồng khác.
Hướng dẫn được giải mã độc lập trong các vi xử lý và dữ liệu di chuyển qua CPU đến Execution Unit tương ứng. (Execution Unit - EU là các vùng silicon thực hiện chức năng cụ thể, chẳng hạn có một số EU dành riêng cho cộng/trừ số nguyên, một số để thực hiện nhân, ... ).
Mỗi lõi có một bộ EU hoàn chỉnh để hỗ trợ hướng dẫn và luồng trên cùng một lõi truy cập chia sẻ EU. Các nhóm EU được tổ chức thành các gói có thể truy cập thông qua một cổng: lệnh từ 2 luồng được cấp cho các cổng có sẵn và microcomponent, core scheduler, tối ưu hóa hiệu suất cùng một vi mạch có thể được cấp cho các EU khác nhau trên các cổng khác nhau.
Các cổng này là đối tượng được thảo luận. Ví dụ, giả sử cổng 5 được sử dụng bởi quá trình làm nạn nhân trong quá trình mã hóa cụ thể: quá trình nạn nhân không sử dụng cổng số 5, quá trình gián điệp chạy trên luồng khác sẽ có quyền truy cập các lệnh không được thực thi lặp lại trên cổng số 5, ngay sau khi quá trình nạn nhân thực hiện hoạt động trên cổng số 5, trình lên lịch sẽ trì hoãn các tùy chọn từ quá trình gián điệp để đảm bảo cân bằng. Vì vậy, quá trình gián điệp có thể tính toán độ trễ trong việc thực hiện các lệnh trên cổng số 5 và xác định khi nào quá trình nạn nhân sử dụng cùng một cổng. Đây chính là tín hiệu được xử lý cuối cùng để khôi phục khóa cá nhân'.
Để dễ hiểu hơn, hãy tưởng tượng 2 người, mỗi người có một túi hạt đậu và họ đang đổ túi hạt đậu của mình vào một cái phễu. Người này không thể biết túi đậu của người kia và ngược lại, nhưng tốc độ mà người này đổ túi hạt đậu của mình phụ thuộc vào tốc độ, tỷ lệ mà người kia đổ như thế nào. Nếu tỷ lệ của người kia là bí mật, người còn lại có thể xem bí mật đó bằng cách định thời gian, đổ túi hạt đậu của mình nhanh chóng vào phễu.
Trong đó, túi hạt đậu tương đương với các hướng dẫn. Phần kênh mở rộng là đường dẫn dữ liệu và phần hẹp là cổng thực thi.
Nhóm nghiên cứu hiện chỉ thử nghiệm độ tổn thương này trên các vi xử lý Intel Skylake và KabyLake, và sẽ sớm thử nghiệm trên các vi xử lý AMD Ryzen trong tương lai.
Ngoài ra, nhóm cũng chia sẻ bằng chứng mẫu chỉ nhắm mục tiêu OpenSSL. Nhóm chọn mục tiêu OpenSSL vì đây là một cơ sở mã nguồn mở phổ biến và được sử dụng rộng rãi, mặc dù 'kỹ thuật PortSmash không hoạt động trên phần mềm cụ thể'.
Vấn đề chỉ là thời gian trước khi các nhà nghiên cứu và kẻ tấn công sử dụng PoC để đánh cắp thông tin từ các ứng dụng khác.
Phiên bản sửa lỗi cho cuộc tấn công hiện đang được triển khai cho OpenSSL 1.1.1 và các phiên bản cũ hơn, các bản vá lỗi có sẵn cho các phiên bản 1.1.0i trở lên.
Hạn chế cuộc tấn công từ lỗ hổng PortSmash
Duy nhất cách để giảm thiểu cuộc tấn công từ lỗ hổng PortSmash là vô hiệu hóa SMT/Hyper-threading trên máy tính, một biện pháp mà OpenBSD đã thực hiện vào mùa hè năm nay khi phát hiện cuộc tấn công kênh kề theo thời gian có tên là TLBleed.
Intel đã loại bỏ tính năng hyper-threading khỏi CPU thế hệ thứ 9 nhằm giảm rủi ro của các cuộc tấn công từ lỗ hổng Meltdown v3 và L1 Terminal Fault. Với hầu hết các trò chơi không hỗ trợ tính năng này, việc loại bỏ hyper-threading không ảnh hưởng đáng kể đến hiệu suất khi chơi game.
Trong thời gian sớm nhất, có khả năng YouTube sẽ xuất hiện trên eShop vào tuần tới? để người dùng Nintendo có thể thưởng thức video trực tiếp từ YouTube trên thiết bị của mình. Tuy nhiên, vẫn chưa có xác nhận chính thức về thông tin này.
