Cảnh báo lỗ hổng PortSmash mới có thể đánh cắp các khóa giải mã

Bằng cách sử dụng các cuộc tấn công này, các nhà nghiên cứu bảo mật có thể đánh cắp các khóa giải mã cá nhân từ một luồng OpenSSL chạy trong cùng một lõi.

Cảnh báo lỗ hổng PortSmash mới có thể đánh cắp các khóa giải mã

SMT/Hyper-threading được sử dụng khi một lõi CPU vật lý được chia thành 2 lõi logic ảo có thể sử dụng 2 process riêng biệt cùng một lúc. Phương pháp này có thể làm tăng hiệu suất vì 2 luồng sẽ sử dụng tài nguyên CPU nhàn rỗi hiệu quả hơn để thực thi các lệnh nhanh hơn.

Cuộc tấn công kênh kề theo thời gian được định nghĩa là khi kẻ tấn công phân tích tốc độ một luồng thực thi các lệnh cụ thể và sử dụng thông tin đó để đảo ngược, khám phá dữ liệu nào được sử dụng làm đầu vào.

Lỗ hổng PortSmash được phát hiện bởi nhóm các nhà nghiên cứu Billy Bob Brumley, Cesar Pereida Garcia, Sohaib ul Hassan, và Nicola Tuveri đến từ trường đại học công nghệ Tampere ở Phần Lan và Alejandro Cabrera Aldaya đến từ đại học Tecnologica de la Habana CUJAE ở Cuba. Theo đó phát hiện của các nhà nghiên cứu đã được gửi và đang được chờ kiểm duyệt trước khi được phát hành.

Trả lời với BleepingComputer, nhà nghiên cứu Tuveri giải thích sự tranh chấp các cổng được sử dụng để tính khoảng thời gian OpenSSL thực thi một hoạt động. Sử dụng các phép tính này, các nhà nghiên cứu có thể đảo ngược để khôi phục các khóa cá nhân.

"Nói ngắn gọn và đơn giản, với các luồng SMT và 2 luồng / lõi, mỗi process 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 process đang chạy trên luồng được định vị.

Hướng dẫn sẽ được giải mã độc lập trong các vi xử lý và đường dẫn dữ liệu đơn giản trong CPU tới Execution Unit tương ứng. (Execution Unit - EU là các vùng silicon thực tế chuyên xử lý các hoạt động cụ thể, chẳng hạn có một số EU dành riêng để thực hiện các phép cộng / trừ số nguyên, một số để thực hiện phép nhân, ... ).

Mỗi lõi có một bộ EU hoàn chỉnh để hỗ trợ toàn bộ 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 nhóm lại với nhau thành các gói có thể truy cập thông qua một cổng: các vi 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 chính là đối tượng được thảo luận. Ví dụ, giả sử cổng 5 được sử dụng bởi process là nạn nhân trong quá trình mã hóa cụ thể: process nạn nhân không sử dụng cổng số 5, process 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 process nạn nhân thực thi 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ừ process gián điệp để đảm bảo cân bằng. Vì vậy process gián điệp có thể tính toán độ trễ trong việc thực thi các lệnh trên cổng số 5 và xác định khi nào process nạn nhân đang 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ễ hình dung hơn, bạn có thể tưởng tượng 2 người, mỗi người có một túi hạt đậu và họ đang rót túi hạt đậu của mình vào một các phễu. Người này không thể biết được 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 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 được bí mật đó bằng cách định thời gian, đổ túi hạt đậu của mình thật nhanh 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.

Các nhà nghiên cứu hiện chỉ thử nghiệm tính dễ 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ẻ proof-of-concept chỉ nhắm mục tiêu OpenSSL. Nhóm đã chọn nhắm mục tiêu OpenSSL vì đây là cơ sở mã quen thuộc và được sử dụng rộng rãi, tuy nhiên "kỹ thuật PortSmash không hoạt động trên phần mềm cụ thể".

Vấn đề chỉ là thời gian cho đến khi các nhà nghiên cứu và kẻ tấn công sử dụng PoC để đánh cắp các thông tin từ các ứng dụng khác.

Bản sửa lỗi cuộc tấn công hiện đượ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 do lỗ hổng PortSmash

Cách duy nhất để hạn chế, giảm thiểu các cuộc tấn công do lỗ hổng PortSmash gây ra là vô hiệu hóa SMT/Hyper-threading trên máy tính mà OpenBSD đã thực hiện hồi mùa hè này khi phát hiện cuộc tấn công kênh kề theo thời gian có tên TLBleed.

Intel hiện đã loại bỏ hyper-threading khỏi CPU thế hệ thứ 9 của hãng nhằm hạn chế các cuộc tấn công do lỗ hổng Meltdown v3 và L1 Terminal Fault. Vì hầu hết các game không hỗ trợ nên việc loại bỏ hyper-threading không ảnh hưởng nhiều đến hiệu suất của máy tính khi chơi game.

Trong thời gian tới, rất có thể YouTube sắp có mặt trên eShop vào tuần tới? để những người dùng hệ máy Nintendo có thể trải nghiệm những đoạn clip, thước phim từ YouTube trên chính 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.

Cảnh báo lỗ hổng PortSmash mới có thể đánh cắp các khóa giải mã. Cụ thể lỗ hổng kênh kề này sử dụng cuộc tấn công kênh kề theo thời gian (timing attack) để đánh cắp các thông tin các process đang chạy trong cùng một lõi CPU đã kích hoạt SMT/hyper-threading.
Cảnh báo lỗ hổng trên chip Bluetooth khiến hàng triệu thiết bị bị tấn công từ xa
Lỗ hổng bảo mật của IE tạo cơ hội cho tin tặc đánh cắp file
Phát hiện lỗ hổng mới trong ứng dụng Signal Desktop cho phép hacker đánh cắp tin nhắn
Phát hiện 2 lỗ hổng mới trong giao thức bảo mật Windows NTLM
Lỗ hổng trên Internet Explorer làm lộ thông tin người dùng
Lỗ hổng WordPress plugin cho phép hacker tiêm mã độc vào gần 100.000 trang web

ĐỌC NHIỀU