Trang này được dịch bằng máy. Đọc bản gốc tiếng Anh. English

Thư viện IBSurgeon

Làm thế nào để bảo vệ cơ sở dữ liệu Firebird khỏi ransomware?

06-December-2016, bởi Alexey Kovyazin

Các cuộc tấn công bằng ransomware đã trở thành vấn đề nghiêm trọng đối với nhiều công ty: trong tuần qua, chúng tôi đã gặp 3 sự cố từ các khách hàng khác nhau có cơ sở dữ liệu Firebird bị mã hóa bởi virus ransomware. May mắn thay, chúng tôi đã có thể giúp đỡ tất cả họ, nhưng quy mô của vấn đề chắc chắn đang gia tăng.

Trong bài viết này, chúng ta sẽ xem xét cách những vấn đề này đã được giải quyết.

Nói chung, ransomware không được thiết kế để mã hóa cụ thể cơ sở dữ liệu Firebird; nó chỉ mã hóa tất cả các tệp trên máy tính, sau đó yêu cầu tiền chuộc để cung cấp mật khẩu giải mã, và ngay cả khi bạn trả tiền, bạn có thể không nhận được bất kỳ mật khẩu giải mã hoặc phản hồi nào (ngoài ra, cần phải kiểm tra các trang web chống virus: họ thường công bố mã pin hoặc thậm chí các công cụ giải mã cho ransomware đó. Ví dụ, một trong số đó: noransom.kaspersky.com/)

Tất nhiên, cần phải có phần mềm chống virus đáng tin cậy (và phù hợp cho máy chủ), nhưng chúng ta có thể làm gì cụ thể để bảo vệ cơ sở dữ liệu Firebird?

Có nhiều loại ransomware khác nhau, hãy xem xét tác động của chúng đối với cơ sở dữ liệu Firebird.

2 công ty đã bị tấn công bởi ransomware đã mã hóa một phần cơ sở dữ liệu Firebird của họ.

Như bạn đã biết, tệp cơ sở dữ liệu Firebird là một tập hợp các trang có cùng kích thước. Các trang cơ sở dữ liệu trong Firebird chứa các loại thông tin khác nhau: siêu dữ liệu, dữ liệu người dùng, chỉ mục, bộ sinh, v.v.

Thông thường, ransomware như vậy không mã hóa toàn bộ tệp cơ sở dữ liệu, mà chỉ mã hóa một phần nhỏ của nó - trang tiêu đề và một số phần trăm các trang cơ sở dữ liệu bên trong cơ sở dữ liệu.

Vì tất cả các trang có mối quan hệ chặt chẽ, ngay cả một vài trang bị mã hóa gần đây cũng làm cho toàn bộ cơ sở dữ liệu không thể đọc được bởi công cụ Firebird. Ví dụ, trong cơ sở dữ liệu 10Gb, chỉ có ít hơn 1% dữ liệu bị mã hóa, và 99% còn lại vẫn ổn.

Trong trường hợp này, cơ sở dữ liệu bị mã hóa như vậy có thể được coi là một tệp cơ sở dữ liệu bị hỏng nặng, và IBSurgeon FirstAID là công cụ có thể thực hiện xuất dữ liệu từ tệp cơ sở dữ liệu Firebird bị mã hóa. Cách tiếp cận tương tự được sử dụng để khôi phục cơ sở dữ liệu từ ổ cứng bị hỏng.

Xuất dữ liệu từ cơ sở dữ liệu Firebird bị mã hóa

IBSurgeon FirstAID có thể khôi phục cơ sở dữ liệu bằng cách sửa trực tiếp hoặc trích xuất dữ liệu. Sửa trực tiếp nhanh chóng, nó có thể nhanh chóng sửa các lỗi trực tiếp trong tệp cơ sở dữ liệu. Tuy nhiên, trong trường hợp ransomware, nó sẽ không giúp ích, vì trang tiêu đề và siêu dữ liệu chính đã bị mất, vì vậy trích xuất là lựa chọn duy nhất.

FirstAID đọc tệp cơ sở dữ liệu trực tiếp - nó không sử dụng Firebird để truy cập tệp cơ sở dữ liệu, nó đọc tệp cơ sở dữ liệu trực tiếp, từng byte một. Vì nó chỉ tập trung vào việc trích xuất dữ liệu bị hỏng và hy sinh hiệu suất, FirstAID có thể xuất dữ liệu ngay cả từ các cơ sở dữ liệu Firebird bị hỏng nặng. Tất nhiên, FirstAID bỏ qua dữ liệu bị mã hóa như là dữ liệu bị hỏng và chỉ xuất dữ liệu tốt.

Nếu ransomware không mã hóa siêu dữ liệu quan trọng, có thể mở tệp cơ sở dữ liệu bị mã hóa bằng FirstAID và xem trước các bản ghi: chọn bảng trong danh sách bên trái và mở tab Xem trước, sau đó duyệt qua các trang dữ liệu.

Các bản ghi bạn có thể thấy có thể được xuất sang cơ sở dữ liệu mới với cấu trúc tương tự:

Số lượng tổn thất gần đúng có thể được ước tính bằng phần trăm Trang lỗi trên tab Tóm tắt Trang cho cơ sở dữ liệu:

Phần trăm trang lỗi cho thấy có bao nhiêu trang cơ sở dữ liệu đã bị mã hóa và dữ liệu của chúng đã bị mất.

Vì vậy, trong 2 trường hợp, cơ sở dữ liệu đã được cứu bằng FirstAID Extractor, công cụ đã xuất dữ liệu từ các cơ sở dữ liệu bị mã hóa.

Ransomware mã hóa 100%

Thật không may, ransomware thường mã hóa 100% các tệp và mã hóa chúng hoàn toàn, không có ngoại lệ.

Thông thường, ransomware như vậy tiêm mã độc vào bộ nạp khởi động của hệ điều hành, sau đó khởi động lại máy tính và mô phỏng việc thực thi CHKDSK, nhưng thay vì kiểm tra đĩa, nó mã hóa mọi thứ.

Cách duy nhất để bảo vệ khỏi loại virus này là có một bản sao lưu của cơ sở dữ liệu quan trọng tại một vị trí bên thứ ba: trên đám mây hoặc tại một văn phòng khác.

Có 4 cách tiếp cận sao lưu khả thi cho cơ sở dữ liệu Firebird:

  1. Sao lưu đầy đủ đã xác minh bằng gbak
  2. Sao lưu gia tăng chưa xác minh bằng nbackup
  3. Sao lưu ở cấp độ máy ảo (cho môi trường ảo)
  4. Warm Standby (sao chép cơ sở dữ liệu), dựa trên nhân bản

Phương pháp sao lưu nào là tốt nhất để bảo vệ khỏi ransomware? Hãy xem xét ưu và nhược điểm của chúng trên ví dụ thực tế về cơ sở dữ liệu Firebird có kích thước 50Gb.

Tính năng Sao lưu đầy đủ đã xác minh (gbak) Sao lưu gia tăng (nbackup) Sao lưu ở cấp độ máy ảo Warm-standby (nhân bản)
Kích thước cần tải lên ~30Gb mỗi ngày 50Gb ban đầu, sau đó là các phần thay đổi
Tần suất sao lưu tối đa Mỗi ngày Mỗi giờ Phụ thuộc vào cài đặt công cụ sao lưu VM Mỗi phút
Suy giảm hiệu suất cơ sở dữ liệu Cao Trung bình Thấp Rất thấp
Độ tin cậy của phương pháp sao lưu Cao Thấp Thấp Cao
Thời gian cần thiết để thực hiện sao lưu 2-3 giờ (phụ thuộc vào tốc độ IO) Ban đầu 15-20 phút để tạo mức 0, sau đó 3-4 phút Yêu cầu tạo ảnh chụp nhanh toàn bộ đĩa (phụ thuộc vào IO và kích thước đĩa) Ban đầu 15-20 phút, luôn trực tuyến

Sao lưu đầy đủ đã xác minh bằng gbak

Công cụ sao lưu (gbak) đọc toàn bộ cơ sở dữ liệu và lưu trữ nó ở định dạng đặc biệt (fbk). Phương pháp sao lưu này được gọi là đã xác minh do thực tế là nó đọc mọi bản ghi trong cơ sở dữ liệu và đảm bảo rằng cơ sở dữ liệu hoạt động tốt. Đây là một phương pháp sao lưu rất đáng tin cậy.

Tuy nhiên, sao lưu đầy đủ đã xác minh không thuận tiện cho việc sao lưu đám mây của các cơ sở dữ liệu đủ lớn (như 50Gb trong ví dụ của chúng tôi) vì nó yêu cầu tải lên bản sao lưu đầy đủ mỗi lần và cần nhiều thời gian để thực hiện (đây là loại sao lưu chậm nhất trong Firebird). Trong quá trình thực thi gbak, hiệu suất cơ sở dữ liệu thấp do đọc và ghi đĩa ngẫu nhiên cường độ cao.

Sao lưu gia tăng bằng nbackup

Sao lưu gia tăng được thực hiện bằng nbackup - một công cụ sao lưu khác từ Firebird. Nbackup tạo bản sao lưu dưới dạng các phần gia tăng của các thay đổi: đầu tiên, nó tạo bản sao lưu mức 0, là bản sao chính xác của cơ sở dữ liệu, sau đó, trong lần lặp tiếp theo, quét cơ sở dữ liệu và chỉ lưu trữ các trang đã thay đổi dưới dạng Mức 1, Mức 2, v.v. Có thể đặt sao lưu đầy đủ (Mức 0) mỗi quý một lần, gia tăng Mức 1 mỗi tháng, Mức 2 mỗi tuần, Mức 3 mỗi ngày và Mức 4 mỗi giờ.

Nó khá nhanh, tạo bản sao lưu gần như với tốc độ sao chép tệp tuyến tính.

Nhược điểm chính của nbackup là thiếu xác minh - nếu một trang cơ sở dữ liệu bị hỏng, nbackup sẽ sao chép nó vào tệp sao lưu, tệp này cũng sẽ bị hỏng (không giống như gbak, sẽ đưa ra lỗi trong trường hợp này). Ngoài ra, vì việc tạo mỗi mức khiến Firebird quét toàn bộ cơ sở dữ liệu (trong Firebird 2.5, v3 có các cải tiến), không thể chạy nbackup quá thường xuyên trên cơ sở dữ liệu lớn.

Như bạn có thể hiểu, nbackup yêu cầu một lịch trình khá phức tạp, nhưng với các công cụ phù hợp, đó là một nhiệm vụ dễ dàng.

Một cách đúng đắn là sử dụng nbackup kết hợp với gbak: gbak xác minh cơ sở dữ liệu mỗi ngày hoặc mỗi tuần, và nbackup cung cấp cách nhanh chóng để sao lưu cơ sở dữ liệu khá thường xuyên.

Vì vậy, nbackup có vẻ là một lựa chọn tốt để lưu trữ cơ sở dữ liệu trên đám mây.

Sao lưu VM

Còn về sao lưu máy ảo thì sao? Các nhà cung cấp VM và công cụ sao lưu tuyên bố rằng họ hỗ trợ sao lưu cơ sở dữ liệu, tuy nhiên, họ thường không chỉ định cơ sở dữ liệu nào được hỗ trợ. Sao lưu VM yêu cầu nhà cung cấp Volume Shadow Service (VSS) cho cơ sở dữ liệu cụ thể phải được cài đặt để thực hiện sao lưu trực tuyến chính xác. Đối với Firebird, nhà cung cấp VSS có sẵn như một phần của bản phân phối nâng cao HQbird.

Tất nhiên, không có phép màu nào trong việc sao lưu VM với nhà cung cấp VSS - đằng sau hậu trường, nó sử dụng nbackup để chuyển cơ sở dữ liệu sang chế độ phù hợp để sao chép. Nếu không có nhà cung cấp VSS, kết quả của sao lưu cấp độ VM sẽ giống như một bản sao của cơ sở dữ liệu ở trạng thái tương tự như khởi động lại cứng: Firebird sử dụng mạnh mẽ bộ nhớ đệm dữ liệu trong RAM, và có thể bản sao lưu sẽ bị hỏng do các thay đổi chưa được ghi vào đĩa.

Warm-standby

Một số doanh nghiệp không muốn mất bất kỳ dữ liệu nào từ cơ sở dữ liệu. Các hóa đơn gần đây trước khi sự cố xảy ra có thể là quan trọng, và lô hàng cuối cùng có thể đưa hàng chục xe tải lên đường. Trong trường hợp này, ngay cả sao lưu hàng giờ cũng không đủ; giải pháp khả thi duy nhất là warm standby (bản sao chỉ đọc) của cơ sở dữ liệu, dựa trên nhân bản gốc không đồng bộ.

Gốc có nghĩa là nhân bản không yêu cầu trigger hoặc thay đổi siêu dữ liệu (yêu cầu duy nhất là có khóa chính hoặc khóa duy nhất cho tất cả các bảng được nhân bản), và nó hoạt động rất nhanh.

Warm-standby yêu cầu tạo một bản sao ban đầu của cơ sở dữ liệu, khởi tạo nó như một bản sao và tải lên máy chủ dự phòng. Sau đó, các thay đổi dữ liệu sẽ được gửi từ máy chủ chính với độ trễ tối thiểu (từ 1 phút). Chỉ các thay đổi được gửi, vì vậy nó không làm giảm hiệu suất đọc của cơ sở dữ liệu.

Tùy chọn sao lưu này rất đáng tin cậy - nó đảm bảo sự tồn tại của một bản sao trực tiếp của cơ sở dữ liệu trên một máy chủ khác.

IBSurgeon có thể làm gì cho bạn?

Chúng tôi cung cấp dịch vụ hỗ trợ dựa trên đăng ký cho Firebird, và nó bao gồm các tùy chọn sao lưu đám mây và warm standby. Đây là cách dễ dàng và giá cả phải chăng ($99/tháng), nó bao gồm các tùy chọn sau:

  • Giám sát cơ sở dữ liệu Firebird và tự động hóa sao lưu
  • Hỗ trợ qua máy tính từ xa và tin nhắn tức thời
  • Giải pháp Firebird chuyển đổi dự phòng (warm standby) và sao lưu đám mây

Vui lòng đọc thêm chi tiết về dịch vụ hỗ trợ Firebird tại đây.

Một tùy chọn khác là sử dụng HQbird, bản phân phối nâng cao của chúng tôi cho Firebird, và tự triển khai sao lưu đám mây hoặc warm standby. Bạn có thể tìm thêm chi tiết về HQbird tại đây.

Và, tất nhiên, như là cơ hội cuối cùng, FirstAID Extractor.

Vui lòng liên hệ với chúng tôi nếu bạn có bất kỳ câu hỏi nào!