Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL Server và các lỗ hổng Spectre / Meltdown

Kể từ ngày 3 tháng 1 năm 2018, đã có rất nhiều thông tin mâu thuẫn và có thể đáng báo động được công bố về phe đầu cơ thực thi lỗ hổng -channel còn được gọi là Meltdown và Spectre ảnh hưởng đến hầu hết các bộ vi xử lý hiện đại ở các mức độ khác nhau. Đặc biệt, việc khai thác Meltdown (CVE-2017-5754) chỉ ảnh hưởng đến bộ xử lý Intel. Bảo vệ hệ thống của bạn khỏi những lỗ hổng này bao gồm một số bước đối với hầu hết các hệ thống tùy thuộc vào môi trường mà SQL Server đang chạy và chức năng nào đang được sử dụng.

Nguyên tắc hướng dẫn là các mối quan tâm về bảo mật phải ghi đè lên các mối quan tâm về hiệu suất. Bỏ qua các lỗ hổng bảo mật này và không thực hiện các bản vá theo yêu cầu vì các vấn đề về hiệu suất có thể xảy ra sẽ là một sai lầm lớn (và có thể phải chịu trách nhiệm pháp lý) đối với hầu hết các tổ chức. Đã có nghiên cứu được công bố về các biến thể mới của Meltdown và Spectre, vì vậy loại vấn đề này sẽ không sớm biến mất. Ngoài ra, các nhà cung cấp bảo mật đã báo cáo bằng chứng về các cuộc tấn công Spectre / Meltdown trong tự nhiên.

Thật không may, việc quyết định những gì bạn thực sự nên làm đối với hệ thống của mình để bảo vệ chúng khỏi những lỗ hổng này ngày càng phức tạp và khó hiểu theo thời gian, với việc thay đổi thông tin về lỗ hổng do Intel và AMD phát hành cũng như với cả vi mã CPU và hệ điều hành các bản vá đang được phát hành và sau đó không lâu sẽ bị thu hồi.

Tác động đến hiệu suất của việc vá lỗi

Tùy thuộc vào phần cứng máy chủ, hệ điều hành, khối lượng công việc và các bản vá lỗi mà bạn kết thúc cài đặt, có khả năng bạn sẽ thấy một số tác động tiêu cực đến hiệu suất từ ​​các biện pháp giảm thiểu này. Microsoft’s Terry Myerson có một bài đăng khá chi tiết về chủ đề này, trong khi Brendan Gregg của Netflix có một số kết quả chi tiết về Linux. Brandon Lee đã thực hiện một số thử nghiệm điểm chuẩn tổng hợp trong môi trường VMware tại đây.

Tin tốt là hầu hết các hồi quy hiệu suất là kết quả của nỗ lực vá lỗi này có thể bị giảm với cấu hình phù hợp và điều chỉnh khối lượng công việc trong SQL Server. Sử dụng các sản phẩm giám sát như SentryOne’s SQL Sentry có thể giúp bạn xác định các nút thắt hiệu suất tồn tại trong môi trường của bạn.

Đối với nhiều tổ chức, việc cập nhật đầy đủ bản dựng SQL Server đã triển khai của họ (như một tác dụng phụ của việc vá lỗi cho Spectre / Meltdown) sẽ giải quyết nhiều vấn đề khác và có khả năng cải thiện hiệu suất của họ, đủ để giúp bù đắp cho bất kỳ hồi quy hiệu suất nào mà họ thấy từ bộ hoàn chỉnh Bản vá lỗi Spectre / Meltdown. Việc đọc danh sách sửa lỗi cho mọi SQL Server CU thường tiết lộ một số bản sửa lỗi liên quan đến hiệu suất có thể có tác động đáng kể đến hiệu suất cho SQL Server.

Các bộ xử lý Intel hiện đại có hỗ trợ PCID và INVPCID, giúp giảm đáng kể tác động đến hiệu suất của bản vá hệ điều hành Meltdown. Điều này có nghĩa là bạn sẽ nhận được sự hỗ trợ của HĐH Windows để tối ưu hóa hiệu suất PCID trong dòng sản phẩm Intel Xeon E5-2600 v3 (Haswell-EP) và các bộ xử lý mới hơn, cùng với dòng sản phẩm Intel Xeon E7 v3 (Haswell-EX) và các bộ xử lý mới hơn.

Nếu bộ vi xử lý Intel của bạn cũ hơn vi kiến ​​trúc Haswell (được phát hành vào quý 3 năm 2014 cho máy chủ hai ổ cắm), điều này mang lại cho bạn tất cả lý do để lên kế hoạch nâng cấp phần cứng. Tôi đã viết về cách sử dụng Microsoft CoreInfo để dễ dàng kiểm tra xem bộ xử lý của bạn có hỗ trợ PCID và INVPCID hay không. Tôi cũng đã thực hiện một số thử nghiệm điểm chuẩn tổng hợp trên hệ thống Intel Kaby Lake mới hơn.

Microsoft có một tính năng Windows Analytics mới mà bạn có thể sử dụng để kiểm tra trạng thái bản vá Spectre / Meltdown của tất cả các máy của mình. Microsoft cũng có một mô-đun PowerShell mà bạn có thể sử dụng để kiểm tra trạng thái bản vá tổng thể (từ góc độ Windows và phần cứng) mà tôi đã thảo luận ở đây. Nếu bạn muốn kiểm tra nhanh chóng và dễ dàng hệ điều hành máy khách cho người dùng cuối (hoặc mẹ của bạn) mà không cần phải xử lý PoSH, bạn có thể tải xuống và chạy tiện ích InSpectre (với GUI dễ dàng) để kiểm tra bản vá. trạng thái của hệ điều hành và mã vi xử lý của bạn.

Kiểm tra phiên bản máy chủ SQL của bạn

Cuối cùng, bạn cần kiểm tra trạng thái bản vá SQL Server của mình. Tôi đã phát triển một tập lệnh T-SQL sẽ kiểm tra phiên bản SQL Server của bạn để xem bạn đã cài đặt các bản vá lỗi SQL Server có liên quan hay chưa. Tập lệnh này sẽ hoạt động trên SQL Server 2008 đến SQL Server 2017 cho các phiên bản tại chỗ hoặc cho các phiên bản Azure IaaS. Điều này không được thiết kế để hoạt động trên Cơ sở dữ liệu Azure SQL. Bạn có thể tải xuống tại đây.

Một lợi ích có thể có của vấn đề này là nó có thể cung cấp cho bạn thêm lý do để yêu cầu tổ chức của bạn cập nhật các phiên bản Máy chủ SQL của bạn với Gói dịch vụ và Cập nhật tích lũy của họ, đó là điều mà Microsoft khuyến nghị rõ ràng.

Các bước giảm nhẹ bóng ma / Meltdown

Dưới đây là các bước giảm thiểu mà bạn nên cân nhắc thực hiện:

  • Cài đặt bản vá hệ điều hành liên quan từ Microsoft (nếu có)
    • Có sẵn cho Windows Server, phiên bản 1709, Windows Server 2016, Windows Server 2012 R2 và Windows Server 2008 R2
    • Chưa có sẵn cho Windows Server 2012 hoặc Windows Server 2008 (kể từ ngày 15 tháng 2 năm 2018)
  • Thực hiện các thay đổi cấu hình cần thiết (cài đặt đăng ký) để kích hoạt tính năng bảo vệ hệ điều hành trên hệ điều hành máy chủ
  • Nếu bạn đang chạy trên Hypervisor, hãy cài đặt các bản vá lỗi Hypervisor liên quan
    • Các bản cập nhật VMware vSphere, Workstation và Fusion bổ sung thêm Biện pháp khắc phục sự cố cho khách được hỗ trợ bởi Hypervisor cho vấn đề thực thi suy đoán
  • Cài đặt bản vá SQL Server có liên quan từ Microsoft
    • Có sẵn cho SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012 SP4, SQL Server 2008 R2 SP3 và SQL Server 2008 SP4
    • Không khả dụng cho SQL Server 2005 trở về trước
  • Cài đặt bản cập nhật BIOS (có bản cập nhật vi mã CPU) từ nhà cung cấp máy chủ của bạn (nếu có)
    • Điều này phụ thuộc vào bộ xử lý bạn đang sử dụng, cùng với môi trường và cách sử dụng tính năng của bạn
    • Các bản cập nhật BIOS này hiện không khả dụng cho hầu hết các máy chủ (ban đầu chúng được phát hành cho một số máy chủ mới hơn và sau đó bị thu hồi)
  • Đánh giá những tính năng mở rộng của SQL Server mà bạn có thể đang sử dụng và những bước giảm thiểu bổ sung nào bạn có thể cần thực hiện. Chúng bao gồm:
    • Các tập hợp SQL CLR
    • Các gói R và Python chạy thông qua cơ chế tập lệnh bên ngoài hoặc chạy từ studio R / Machine Learning độc lập trên cùng một máy vật lý như SQL Server
    • Các điểm hỗ trợ mở rộng SQL Agent chạy trên cùng một máy vật lý như SQL Server (các tập lệnh ActiveX)
    • Các nhà cung cấp OLE DB không phải của Microsoft được sử dụng trong Máy chủ được Liên kết
    • Các thủ tục được lưu trữ mở rộng không phải của Microsoft
    • Các đối tượng COM được thực thi trong máy chủ (được truy cập qua sp_OACreate)
    • Các chương trình được thực thi qua xp_cmdshell

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thêm cột bảng mới vào vị trí thứ tự cụ thể trong Microsoft SQL Server

  2. Tạo lịch biểu tác nhân SQL Server với T-SQL

  3. Làm cách nào để CHỌN nhiều cột trong CASE WHEN trên SQL Server?

  4. Cách thêm dấu phân tách vào chuỗi nối trong SQL Server - CONCAT_WS ()

  5. Quét ngược chỉ mục SQL Server:Hiểu, điều chỉnh