Trong thời đại điện toán đám mây, các biện pháp bảo vệ được đưa vào chip từ Intel, AMD và các công ty khác là rất cần thiết để đảm bảo dữ liệu bí mật và các hoạt động nhạy cảm không thể bị xem hoặc thao túng bởi những kẻ tấn công quản lý để xâm phạm các máy chủ chạy bên trong trung tâm dữ liệu. Trong nhiều trường hợp, các biện pháp bảo vệ này hoạt động bằng cách lưu trữ một số dữ liệu và quy trình nhất định bên trong các vùng được mã hóa được gọi là TEE (Các vùng thực thi đáng tin cậy)— rất cần thiết để bảo vệ các bí mật được lưu trữ trên đám mây bởi những người như Sứ giả tín hiệu và WhatsApp". Tất cả các nhà cung cấp đám mây lớn đều khuyên khách hàng nên sử dụng nó. Intel gọi đó là sự bảo vệ của nó SGX, và AMD đã đặt tên cho nó SEV-SNP".
Trong những năm qua, các nhà nghiên cứu đã nhiều lần phá vỡ những lời hứa bảo mật và quyền riêng tư mà Intel và AMD đã đưa ra về các biện pháp bảo vệ tương ứng của h. Hôm thứ Ba, các nhà nghiên cứu đã độc lập xuất bản hai bài báo đưa ra các cuộc tấn công riêng biệt chứng minh thêm những hạn chế của SGX và SEV-SNP. Một cuộc tấn công, được đặt tên là Battering RAM, đánh bại cả hai biện pháp bảo vệ và cho phép kẻ tấn công không chỉ xem dữ liệu được mã hóa mà còn chủ động thao túng dữ liệu đó để giới thiệu các cửa hậu phần mềm hoặc làm hỏng dữ liệu. Một cuộc tấn công riêng biệt được gọi là Wiretap có thể giải mã thụ động dữ liệu nhạy cảm được SGX bảo vệ và luôn ẩn.
Tấn công mã hóa xác định
Cả hai cuộc tấn công đều sử dụng một phần cứng nhỏ, được gọi là bộ chuyển đổi, nằm giữa silicon CPU và mô-đun bộ nhớ. Vị trí của nó cho phép bộ chuyển đổi quan sát dữ liệu khi nó truyền từ dữ liệu này sang dữ liệu khác. Họ khai thác cả việc sử dụng của Intel và AMD mã hóa xác định, tạo ra cùng một văn bản mã hóa mỗi khi cùng một văn bản gốc được mã hóa bằng một khóa nhất định. Trong SGX và SEV-SNP, điều đó có nghĩa là cùng một bản rõ được ghi vào cùng một địa chỉ bộ nhớ luôn tạo ra cùng một bản mã.
Mã hóa xác định rất phù hợp cho một số mục đích sử dụng nhất định, chẳng hạn như mã hóa toàn bộ đĩa, trong đó dữ liệu được bảo vệ không bao giờ thay đổi một khi thứ được bảo vệ (trong trường hợp này là ổ đĩa) rơi vào tay kẻ tấn công. Mã hóa tương tự là dưới mức tối ưu để bảo vệ dữ liệu truyền giữa CPU và chip bộ nhớ vì đối thủ có thể quan sát văn bản mã hóa mỗi khi văn bản gốc thay đổi, mở hệ thống ra replay tấn công và các kỹ thuật khai thác nổi tiếng khác. Ngược lại, mã hóa xác suất chống lại các cuộc tấn công như vậy vì cùng một văn bản gốc có thể mã hóa thành nhiều loại văn bản mã hóa được chọn ngẫu nhiên trong quá trình mã hóa.
“Về cơ bản, [việc sử dụng mã hóa xác định] là một sự đánh đổi trong thiết kế,” Jesse De Meulemeester, tác giả chính của bài báo Battering RAM, đã viết trong một cuộc phỏng vấn trực tuyến. “Intel và AMD đã chọn mã hóa xác định không có tính toàn vẹn hoặc mới mẻ để giữ cho mã hóa có thể mở rộng (nghĩa là bảo vệ toàn bộ phạm vi bộ nhớ) và giảm chi phí. Sự lựa chọn đó cho phép các cuộc tấn công vật lý chi phí thấp như của chúng tôi. Cách duy nhất để khắc phục điều này có thể yêu cầu thay đổi phần cứng, ví dụ: bằng cách cung cấp độ mới và tính toàn vẹn trong mã hóa bộ nhớ.”
Daniel Genkin, một trong những nhà nghiên cứu đằng sau Wiretap, đồng ý. “Nó là một lựa chọn thiết kế được thực hiện bởi Intel khi SGX chuyển từ máy khách sang máy chủ,” ông nói. “Nó cung cấp hiệu suất tốt hơn với chi phí bảo mật.” Genkin đang đề cập đến động thái của Intel khoảng 5 năm trước nhằm ngừng SGX cho bộ xử lý máy khách—, nơi mã hóa bị giới hạn ở không quá 256 MB bộ xử lý máy chủ RAM—to có thể mã hóa terabyte RAM. Quá trình chuyển đổi yêu cầu Intel phải cải tiến mã hóa để mở rộng quy mô cho lượng dữ liệu khổng lồ như vậy.
“Giấy tờ là hai mặt của cùng một đồng xu,” ông nói thêm.
Mặc dù cả hai cuộc tấn công của Thứ Ba đều khai thác những điểm yếu liên quan đến mã hóa xác định, nhưng cách tiếp cận và phát hiện của chúng là khác biệt và mỗi cuộc tấn công đều có những ưu điểm và nhược điểm riêng. Cả hai nhóm nghiên cứu cho biết họ chỉ biết đến công việc của người kia sau khi gửi riêng những phát hiện của họ cho các nhà sản xuất chip. Sau đó, các nhóm đã đồng bộ hóa ngày xuất bản vào thứ Ba. Nó không phải là lần đầu tiên một sự trùng hợp như vậy xảy ra. Năm 2018, nhiều nhóm nghiên cứu đã phát triển các cuộc tấn công độc lập với các tên bao gồm Bóng ma và sự tan chảy. Cả hai đều lấy bí mật ra khỏi bộ xử lý Intel và AMD bằng cách khai thác việc sử dụng cải tiến hiệu suất được gọi là thực thi suy đoán.
AMD từ chối bình luận về hồ sơ, và Intel đã không trả lời các câu hỏi được gửi qua email. Trước đây, cả hai nhà sản xuất chip đều nói rằng TEE tương ứng của họ được thiết kế để bảo vệ khỏi sự xâm phạm của một phần mềm hoặc chính hệ điều hành, kể cả trong kernel. Các đảm bảo, các công ty đã nói, không mở rộng đến các cuộc tấn công vật lý như Battering RAM và Wiretap, dựa vào các bộ chuyển đổi vật lý nằm giữa bộ xử lý và chip bộ nh. Bất chấp hạn chế này, nhiều dịch vụ dựa trên đám mây vẫn tiếp tục tin tưởng vào sự đảm bảo từ TEE ngay cả khi chúng đã bị xâm phạm thông qua các cuộc tấn công vật lý (sẽ nói thêm về điều đó sau).
Intel hôm thứ ba công b này tư vấn. AMD đã đăng một đây.
Đập RAM
Đập RAM sử dụng bộ chuyển mạch tương tự được xây dựng tùy chỉnh để hoạt động như một bộ chuyển đổi đọc dữ liệu được mã hóa khi nó đi qua giữa các vùng bộ nhớ được bảo vệ trong chip bộ nhớ DDR4 và bộ xử lý Intel hoặc AMD. Theo thiết kế, cả SGX và SEV-SNP đều làm cho đối thủ không thể truy cập được văn bản mã hóa này. Để vượt qua sự bảo vệ đó, bộ chuyển đổi tạo ra các bí danh bộ nhớ trong đó hai địa chỉ bộ nhớ khác nhau trỏ đến cùng một vị trí trong mô-đun bộ nhớ.
Bộ chuyển đổi Battering-RAM, chứa hai công tắc tương tự (trung tâm phía dưới), được điều khiển bởi một bộ vi điều khiển (trái). Các công tắc có thể tự động truyền tín hiệu lệnh đến DIMM được kết nối hoặc kết nối các đường dây tương ứng với mặt đất.
“Điều này cho phép kẻ tấn công lấy được bản mã của nạn nhân và sau đó phát lại nó từ bí danh,” De Meulemeester giải thích. “Vì mã hóa bộ nhớ của Intel và AMD là xác định nên bản mã được phát lại luôn giải mã thành văn bản gốc hợp lệ khi nạn nhân đọc nó.” Nhà nghiên cứu tiến sĩ tại KU Leuven ở Bỉ tiếp tục:
Khi CPU ghi dữ liệu vào bộ nhớ, bộ điều khiển bộ nhớ sẽ mã hóa dữ liệu đó một cách xác định, sử dụng văn bản gốc và địa chỉ làm đầu vào. Cùng một bản rõ được viết đến cùng một địa chỉ luôn tạo ra cùng một bản mã. Thông qua bí danh, kẻ tấn công không thể đọc trực tiếp bí mật của nạn nhân, nhưng chúng có thể nắm bắt được bản mã của nạn nhân. Sau đó, bằng cách phát lại bản mã này ở cùng một vị trí thực tế, nạn nhân sẽ giải mã nó thành một bản rõ hợp lệ nhưng cũ kỹ.
Khả năng phát lại này là nguyên thủy mà cả hai cuộc tấn công SGX và SEV của chúng tôi được xây dựng.
Trong cả hai trường hợp, kẻ thù cài đặt bộ chuyển đổi, thông qua cuộc tấn công chuỗi cung ứng hoặc thỏa hiệp vật lý, sau đó chạy máy ảo hoặc ứng dụng tại vị trí bộ nhớ đã chọn. Đồng thời, kẻ thù cũng sử dụng bí danh để nắm bắt bản mã. Sau đó, kẻ thù phát lại bản mã đã thu được, vì nó chạy trong khu vực mà kẻ tấn công có quyền truy cập, sau đó được phát lại dưới dạng bản rõ.
Vì SGX sử dụng một khóa mã hóa bộ nhớ duy nhất cho toàn bộ phạm vi RAM được bảo vệ nên Battering RAM có thể có khả năng ghi hoặc đọc văn bản gốc vào các vùng này. Điều này cho phép đối thủ trích xuất khóa cung cấp của bộ xử lý và trong quá trình đó, phá vỡ chứng thực SGX được cho là cung cấp để chứng nhận tính toàn vẹn và tính xác thực của nó cho các bên từ xa kết nối với nó.
Bộ xử lý AMD được SEV bảo vệ sử dụng một khóa mã hóa duy nhất để tạo ra tất cả văn bản mã hóa trên một máy ảo nhất định. Điều này ngăn chặn kỹ thuật phát lại văn bản mã hóa được sử dụng để đánh bại SGX. Thay vào đó, Battering RAM chụp và phát lại các yếu tố mật mã được cho là để chứng minh máy ảo đã không bị giả mạo. Bằng cách phát lại một báo cáo chứng thực cũ, Battering RAM có thể tải một máy Virtual backdoored vẫn mang chứng nhận SEV-SNP mà VM đã không bị giả mạo.
Lợi ích chính của Battering RAM là nó đòi hỏi thiết bị có chi phí dưới 50 đô la để kéo ra. Nó cũng cho phép giải mã hoạt động, có nghĩa là dữ liệu được mã hóa có thể được đọc và giả mạo. Ngoài ra, nó hoạt động chống lại cả SGX và SEV-SNP, miễn là chúng hoạt động với các mô-đun bộ nhớ DDR4.
nghe lén
nghe léntrong khi đó, chỉ giới hạn ở việc chỉ phá vỡ SGX khi làm việc với DDR4, mặc dù các nhà nghiên cứu cho biết nó có thể sẽ chống lại các biện pháp bảo vệ AMD với một lượng công việc bổ sung khiêm tốn. Wiretap, tuy nhiên, chỉ cho phép giải mã thụ động, có nghĩa là dữ liệu được bảo vệ có thể được đọc, nhưng dữ liệu không thể được ghi vào các vùng được bảo vệ của bộ nh. Chi phí của bộ chuyển đổi và thiết bị phân tích dữ liệu thu được cũng cao hơn đáng kể so với Battering RAM, khoảng 500 đến 1.000 USD.
Bộ chuyển đổi Wiretap.
Bộ chuyển đổi Wiretap được kết nối với bộ phân tích logic.
Giống như Battering RAM, Wiretap khai thác mã hóa xác định, ngoại trừ cuộc tấn công sau ánh xạ văn bản mã hóa tới danh sách các từ văn bản gốc đã biết mà văn bản mã hóa có nguồn gốc từ đó. Cuối cùng, cuộc tấn công có thể khôi phục đủ văn bản mã hóa để xây dựng lại khóa chứng thực.
Genkin giải thích:
Giả sử bạn có một danh sách các từ được mã hóa mà sau này sẽ được sử dụng để tạo thành câu. Bạn biết trước danh sách và bạn nhận được danh sách được mã hóa theo cùng một thứ tự (do đó bạn biết ánh xạ giữa mỗi từ và mã hóa tương ứng của nó). Sau đó, khi bạn gặp một câu được mã hóa, bạn chỉ cần lấy mã hóa của từng từ và khớp nó với danh sách của bạn. Bằng cách đi từng chữ một, bạn có thể giải mã toàn bộ câu. Trong thực tế, miễn là hầu hết các từ nằm trong danh sách của bạn, bạn có thể có thể giải mã toàn bộ cuộc trò chuyện cuối cùng. Trong trường hợp của chúng tôi, chúng tôi xây dựng một từ điển giữa các giá trị chung xảy ra trong thuật toán ECDSA và mã hóa tương ứng của chúng, sau đó sử dụng từ điển này để khôi phục các giá trị này khi chúng xuất hiện, cho phép chúng tôi trích xuất khóa.
Các nhà nghiên cứu của Wiretap tiếp tục chỉ ra các loại tấn công có thể xảy ra khi đối thủ xâm phạm thành công bảo mật SGX. Như Intel giải thích, một lợi ích chính của SGX là chứng thực từ xa, một quá trình đầu tiên xác minh tính xác thực và tính toàn vẹn của VM hoặc phần mềm khác chạy bên trong vùng đất và đã không bị giả mạo. Sau khi phần mềm vượt qua quá trình kiểm tra, khu vực này sẽ gửi cho bên từ xa một chứng chỉ được ký điện tử cung cấp danh tính của phần mềm được thử nghiệm và hóa đơn y tế rõ ràng xác nhận phần mềm là an toàn.
Sau đó, vùng đất này sẽ mở một kết nối được mã hóa với bên từ xa để đảm bảo thông tin xác thực và dữ liệu riêng tư không thể được đọc hoặc sửa đổi trong quá trình truyền. Chứng thực từ xa hoạt động với Thuật toán chữ ký số đường cong Elliptic tiêu chuẩn công nghiệp, giúp tất cả các bên dễ dàng sử dụng và tin tưởng.
Các dịch vụ blockchain đã không nhận được bản ghi nh
Nhiều dịch vụ dựa trên đám mây dựa vào TEE làm nền tảng cho quyền riêng tư và bảo mật trong mạng của họ. Một dịch vụ như vậy là Phala, một nhà cung cấp blockchain cho phép soạn thảo và thực hiện các hợp đồng thông minh. Theo như công ty, máy tính “state”— có nghĩa là các biến hệ thống, cấu hình và dữ liệu động khác mà ứng dụng phụ thuộc vào— chỉ được lưu trữ và cập nhật trong các vùng có sẵn thông qua SGX, SEV-SNP và vùng đáng tin cậy thứ ba có sẵn trong chip Arm được gọi là TrustZone. Thiết kế này cho phép các thành phần hợp đồng thông minh này cập nhật theo thời gian thực thông qua các cụm “nút công nhân”— có nghĩa là các máy tính lưu trữ và xử lý hợp đồng thông minh— mà không có khả năng bất kỳ nút nào giả mạo hoặc xem thông tin trong quá trình thực thi.
“Báo giá chứng thực có chữ ký của Intel đóng vai trò là bằng chứng cho việc thực hiện thành công,” Phala giải thích. “Nó chứng minh rằng mã cụ thể đã được chạy bên trong vùng SGX và tạo ra đầu ra nhất định, điều này ngụ ý tính bảo mật và tính chính xác của việc thực thi. Bằng chứng có thể được công bố và xác nhận bởi bất kỳ ai có phần cứng chung.” Các khu vực do AMD và Arm cung cấp hoạt động theo cách tương tự.
Các nhà nghiên cứu của Wiretap đã tạo ra một “testnet,” một máy cục bộ để chạy các chế độ công nhân. Với việc sở hữu khóa chứng thực SGX, các nhà nghiên cứu có thể lấy được khóa cụm ngăn các nút riêng lẻ đọc hoặc sửa đổi trạng thái hợp đồng. Với điều đó, Wiretap đã có thể vượt qua hoàn toàn sự bảo v. Trong một bài báo, các nhà nghiên cứu viết:
Trước tiên, chúng tôi nhập vùng đất của kẻ tấn công vào một cụm và lưu ý rằng nó được cấp quyền truy cập vào khóa cụm. Mặc dù khóa cụm không được phân phối trực tiếp cho nhân viên của chúng tôi khi tham gia một cụm, chúng tôi bắt đầu chuyển khóa từ bất kỳ nút nào khác trong cụm. Việc chuyển giao này được hoàn thành mà không có sự tương tác trên chuỗi, vì nhân viên của chúng tôi là một phần của cụm. Khóa cụm này sau đó có thể được sử dụng để giải mã tất cả các tương tác hợp đồng trong cụm. Cuối cùng, khi testnet của chúng tôi chấp nhận enclave node của chúng tôi làm người gác cổng, chúng tôi trực tiếp nhận được một bản sao của khóa chính, được sử dụng để lấy tất cả các khóa cụm và do đó tất cả các khóa hợp đồng, cho phép chúng tôi giải mã toàn bộ testnet.
Các nhà nghiên cứu đã thực hiện các cuộc bỏ qua tương tự đối với một loạt các dịch vụ blockchain khác, bao gồm Secret, Crust và IntegriTEE. Sau khi các nhà nghiên cứu chia sẻ riêng kết quả với các công ty này, họ đã thực hiện các bước để giảm thiểu các cuộc tấn công.
Cả Battering RAM và Wiretap chỉ hoạt động chống lại các dạng chip bộ nhớ DDR4 vì DDR5 mới hơn chạy ở tốc độ bus cao hơn nhiều với giao thức truyền dẫn nhiều chu k. Vì lý do đó, cả hai cuộc tấn công đều không hoạt động chống lại một biện pháp bảo vệ tương tự của Intel được gọi là TDX vì nó chỉ hoạt động với DDR5.
Như đã lưu ý trước đó, Intel và AMD đều loại trừ các cuộc tấn công vật lý như Battering RAM và Wiretap khỏi mô hình mối đe dọa mà TEE của họ được thiết kế để chống lại. Các nhà nghiên cứu của Wiretap cho thấy bất chấp những cảnh báo này, Phala và nhiều dịch vụ dựa trên đám mây khác vẫn dựa vào các khu vực này để bảo vệ tính bảo mật và quyền riêng tư cho mạng của họ. Nghiên cứu cũng cho thấy rõ rằng hệ thống phòng thủ TEE hoàn toàn bị phá vỡ trong trường hợp xảy ra một cuộc tấn công nhắm vào chuỗi cung ứng phần cứng.
Hiện tại, giải pháp khả thi duy nhất là các nhà sản xuất chip thay thế mã hóa xác định bằng một hình thức bảo vệ mạnh mẽ hơn. Với những thách thức của việc làm cho các chương trình mã hóa như vậy mở rộng quy mô với số lượng lớn RAM, không rõ khi nào điều đó có thể xảy ra.