Virtual patching (vá ảo) là một công việc cần nằm trong trách nhiệm của mọi quản trị viên tận tâm. Đây là trách nhiệm có ý nghĩa sống còn đối với doanh nghiệp.
Kẻ tấn công luôn rình rập tìm điểm yếu hoặc lỗ hổng trong mạng. Chúng lùng sục trên Internet để tìm điểm yếu trong phần mềm, phần cứng hoặc cấu hình thiết bị kết nối mà chúng có thể khai thác. Virtual patching là một cách để ngăn chúng thành công.
Tin tặc luôn đi trước các nhà sản xuất phần mềm và phần cứng một bước khi liên tục tìm kiếm những lỗ hổng này. Điều đó khiến virtual patching trở thành một phần quan trọng trong nhiệm vụ của quản trị viên mạng hoặc hệ thống.
Vậy vá lỗi (patching) là gì?
Vá lỗi là quá trình nâng cấp phần mềm lên phiên bản mới nhất và an toàn nhất nhằm bịt các “lỗ hổng” – còn gọi là “vulnerability” – trong ứng dụng hoặc hệ điều hành. Mục đích là ngăn chúng bị dùng làm “exploit” để tội phạm mạng truy cập trái phép.
Luôn có một khoảng thời gian từ lúc lỗ hổng được phát hiện đến khi có khả năng bị khai thác, và khoảng trống này chỉ được đóng lại khi quản trị viên đã “vá” lỗ hổng, đưa mạng và ứng dụng trở lại trạng thái an toàn.
Với mạng lớn, việc này có thể rất mất công vì vá lỗi được thực hiện riêng lẻ, từng máy chủ hoặc từng thiết bị một. Đây cũng là việc lặp đi lặp lại, vì lỗ hổng xuất hiện quá thường xuyên.
Virtual patching là gì?
Virtual patching cũng là quá trình loại bỏ lỗ hổng. Nhưng trong trường hợp này, nó tập trung ngăn chặn lỗ hổng và hành vi khai thác ở tầng mạng chứ không phải ở các giải pháp phần mềm trên thiết bị đầu cuối.
Khi đó, công việc đỡ vất vả hơn nhiều vì việc triển khai chỉ tập trung vào một số thiết bị mạng. Nói cách khác, nó được triển khai qua mạng – và xử lý lỗ hổng ở thiết bị đầu cuối từ chính hệ thống mạng.
Xét chi tiết hơn – đây là việc triển khai một lớp chính sách bảo mật giúp ngăn chặn và đánh chặn việc khai thác lỗ hổng bằng cách phân tích gói dữ liệu và lưu lượng.
Để hiệu quả, một giải pháp virtual patching phải có các khả năng sau:
- Kiểm tra gói tin chuyên sâu (Deep packet inspection) – kiểm tra rồi chặn các gói tin độc hại và hoạt động xấu ẩn trong lưu lượng web và mạng.
- Ngăn chặn – khi đã nhận diện được, các gói tin này cần bị loại bỏ trước khi đến được máy đích.
- Triển khai được ở mọi nơi – có thể chạy trên cả kiến trúc mạng đám mây lẫn tại chỗ (on-premises).
Vì sao cần virtual patching
Đến đây, chúng ta đã hình dung được virtual patching làm gì. Giờ hãy xem vì sao chúng ta cần nó:
- Giảm nguy cơ bị xâm nhập hoặc tấn công thành công cho đến khi nhà sản xuất phát hành bản vá, hoặc trong lúc bản vá đang được kiểm thử và áp dụng.
- Giảm xung đột trong môi trường phần mềm, vì các thư viện và tệp mã hỗ trợ không bị thay đổi nên ít có nguy cơ phát sinh xung đột.
- Tránh làm gián đoạn các hệ thống trọng yếu không thể ngừng hoạt động.
- Cắt giảm thời gian và chi phí cho việc vá lỗi khẩn cấp.
- Cho phép doanh nghiệp duy trì chu kỳ vá lỗi bình thường.
Có thể nói virtual patching rất quan trọng cho an ninh của các tài sản số cần được lên kế hoạch kỹ lưỡng và không được phép gián đoạn trước khi có thể triển khai bản vá chính thức để bảo vệ chúng.
Ví dụ về các hệ thống như vậy là hệ thống giám sát đường ống hoặc máy móc vận hành hệ thống trọng yếu – đóng vai trò then chốt trong hạ tầng quốc gia như đập thủy điện và lưới điện, vốn không thể ngừng hoạt động.
Ngoài ra, trong thời đại kiến trúc đám mây và lưu trữ từ xa, doanh nghiệp có thể không truy cập trực tiếp, liền mạch vào tài sản số của mình. Cách duy nhất để họ giữ an toàn cho đến khi nhà cung cấp dịch vụ hosting hoặc đám mây vá lỗi là nhờ virtual patching.
Virtual patching – Ưu điểm
Các ưu điểm của virtual patching gồm:
- Nếu được thực hiện kịp thời, nó có thể bảo vệ doanh nghiệp và khách hàng trước khi xảy ra xâm nhập hoặc truy cập trái phép.
- Cho thấy doanh nghiệp chuyên nghiệp, chủ động thực hiện các bước bảo đảm an ninh cho chính mình – nhất là khi có làn sóng tấn công mà doanh nghiệp vẫn không bị ảnh hưởng.
Virtual patching – Nhược điểm
Về một số hạn chế, ta có:
- Nếu làm sai hoặc quá muộn, nó có thể gây thảm họa cho cả doanh nghiệp lẫn khách hàng – vì vậy cần người có chuyên môn thực hiện virtual patching. Chỉ một lỗi cấu hình cũng có thể gây lỗi xử lý, làm doanh nghiệp đình trệ hoặc thậm chí làm sập toàn bộ mạng.
- Nếu không phân bổ tài nguyên đúng, các tiến trình quan trọng khác có thể bị chậm hoặc thậm chí bị sập, chẳng hạn vì virtual patching chiếm băng thông do cấu hình sai, hoặc lưu lượng bị chuyển hướng sang mạng không chịu nổi lượng tải tăng đột ngột.
Vì vậy, cần lưu ý rằng một bản vá ảo hiệu quả phải bảo đảm các lỗ hổng được xử lý – tức là được vá – mà không sửa mã của ứng dụng hay hệ thống, và không chuyển hướng lưu lượng sang hạ tầng không chịu được tải tăng đột biến.
Quy trình virtual patching
Dưới đây là sáu bước cơ bản trong một chiến dịch virtual patching điển hình:
- Nhận biết – virtual patching được khởi động hoặc trở nên cần thiết ngay khi quản trị viên biết về lỗ hổng. Thông tin có thể đến từ cảnh báo của WAF, SIEM, IDS hoặc IPS sau các lần tấn công, sau khi bị xâm nhập, hoặc khi có hoạt động đáng ngờ. Cũng có thể từ hành động chủ động sau các khuyến cáo cảnh báo nghiêm trọng hoặc bản tin cập nhật bản vá của nhà sản xuất phần mềm, phần cứng hay cơ quan quản lý.
- Phân tích – khi mối đe dọa đã được phát hiện và xác định chắc chắn, đến lúc phân tích tình hình thực tế. Thông thường, quản trị viên sẽ kiểm kê toàn bộ tài sản, tìm ra tài sản nào cần vá và nên dùng phiên bản phần mềm nào. Để làm được, tất nhiên họ cũng cần biết lỗ hổng bị khai thác như thế nào và cần làm gì để ngăn chặn.
- Lập chiến lược – ở bước này, khi đã có đủ thông tin, đến lúc bắt đầu tạo các quy tắc IPS; rà soát và củng cố chính sách, tìm công cụ vá lỗi, xác định thiết bị nào vá trước, vá sau, và chuẩn bị cho sự cố bằng kế hoạch khôi phục thảm họa, v.v.
- Kiểm thử – đây là giai đoạn chạy thử mọi kịch bản, bịt mọi lỗ hổng và thử thách hệ thống bằng mọi cách để xem nó có trụ vững không. Lý tưởng nhất là kiểm thử trên một mạng giả lập (hoặc môi trường thử nghiệm). Giai đoạn này được lặp lại kỹ lưỡng cho đến khi mọi thứ đều ổn và được coi là an toàn để bắt đầu áp dụng bản vá.
Một số công cụ kiểm thử có thể dùng:
-
-
- Trình duyệt web – để kiểm tra xem các hệ thống có giao tiếp với nhau không, hoặc ứng dụng web có hoạt động đúng không.
- Các lệnh Linux để kiểm tra kết nối và khả năng truy cập – như curl và Wget.
- Công cụ quét ứng dụng web, công cụ kiểm thử bảo mật và sự kiện, cùng công cụ kiểm thử xâm nhập như OWASP ZAP và ModSecurity AuditViewer.
-
- Áp dụng, hay Virtual Patching – ở đây, bản vá được đẩy ra và áp dụng cho từng thiết bị hoặc website trong môi trường production. Có những công cụ hỗ trợ ở giai đoạn này mà chúng ta sẽ xem ở phần sau.
- Giám sát – khi đến giai đoạn này, đã đến lúc xem các bước trước thành công đến đâu. Cần giám sát mọi thay đổi về hiệu năng, thời gian phản hồi, cung cấp dịch vụ, hoàn tất tiến trình, v.v. Mọi sai lệch cần được xem xét để phát hiện bất thường và nguyên nhân. Nếu nguyên nhân là do virtual patching, ta quay lại Bước 4, giai đoạn Kiểm thử – và lặp lại – cho đến khi đạt kết quả mong muốn.
Điều gì ảnh hưởng đến một chiến dịch virtual patching?
Một chiến dịch virtual patching thành công cần được lên kế hoạch cẩn thận. Dưới đây là một số câu hỏi cần trả lời:
- Xác định phạm vi chiến dịch – dữ liệu cần bảo vệ được lưu ở một vị trí tập trung hay phân tán trên nhiều phân đoạn mạng?
- Nắm rõ kiến trúc để bao quát mọi tài sản có lỗ hổng – cấu hình mạng thế nào và dữ liệu đi qua mạng ra sao?
- Nắm rõ nhà sản xuất và công nghệ liên quan – trên mạng đang chạy loại phần cứng và ứng dụng nào, có hệ thống của nhiều nhà cung cấp không?
- Hệ điều hành liên quan, để tránh xung đột – mạng đang chạy Windows, UNIX, Linux hay kết hợp?
- Quyền truy cập cần có để tiếp cận tài sản – mạng được quản lý nội bộ hay thuê ngoài một nhà cung cấp dịch vụ bảo mật?
- Năng lực của đội virtual patching – hệ thống virtual patching sẽ do nhân viên nội bộ vận hành hay do nhà cung cấp dịch vụ bảo mật được quản lý (MSSP)?
Trả lời được tất cả các câu hỏi này sẽ giúp có một kế hoạch rõ ràng và một đội ngũ biết rõ việc cần làm – từ đó virtual patching thành công.
Điều gì xảy ra nếu không có virtual patching?
Để trả lời, hãy xem xét các kịch bản xấu nhất:
- Mạng và hệ thống bị xâm nhập – đây là điều hiển nhiên. Nhưng chỉ một website cũng có thể dẫn đến việc toàn bộ mạng bị chiếm quyền, kéo theo mọi thiết bị kết nối với nó cùng các ứng dụng, phần mềm chạy trên đó.
- Các biện pháp bảo mật bị vô hiệu – khi đã truy cập trái phép thành công, kẻ xâm nhập gần như thấy được “bản thiết kế” của hệ thống bảo mật đang có và dùng hiểu biết đó để vượt qua, rồi tổ chức các cuộc tấn công tinh vi hơn, như tấn công phân tán vào cả mạng nội bộ lẫn toàn cầu.
- Lộ dữ liệu quan trọng – chẳng hạn, chỉ một đoạn script chèn vào đúng ô nhập liệu (URL, hộp văn bản, ô truy vấn, v.v.) cũng có thể cho phép truy cập trái phép vào dữ liệu SQL lẽ ra không bao giờ được chia sẻ.
- Thiệt hại tài chính – website bị sập khiến khách hàng rời đi. Điều này triệt tiêu thu nhập và nguồn doanh thu dựa vào các website đó. Chưa kể các vụ khai thác lỗ hổng để đánh cắp thông tin cá nhân, tài chính có giá trị và trục lợi ngoài đời thực. Riêng việc theo đuổi các vụ kiện sau đó cũng đủ làm phần lớn doanh nghiệp kiệt quệ.
- Tổn hại uy tín – không doanh nghiệp nào trông chuyên nghiệp nếu hệ thống thường xuyên bị sập, chưa nói đến các vụ xâm nhập gây mất dữ liệu. Giới kinh doanh, và nhất là khách hàng trả tiền, luôn kỳ vọng dữ liệu mật được giữ bí mật.
Tóm lại: không ai muốn làm việc với một doanh nghiệp có website lúc nào cũng sập, có mạng cứ vài giao dịch lại treo, hoặc có máy chủ làm rò rỉ dữ liệu nhanh như lúc thu thập.
Có công cụ virtual patching nào không?
Khi đến cuối bài viết, tin vui là có những công cụ giúp quản trị viên thực hiện virtual patching.
Nhưng trước khi đi vào từng công cụ, hãy xem điều gì làm nên một công cụ virtual patching tốt nhất.
Các tính năng cần có gồm:
- Khả năng quan sát đầu-cuối (End-to-End visibility) – bao quát toàn bộ kiến trúc, bất kể hệ điều hành, tiến trình, dịch vụ và phần cứng đang dùng.
- Độ chính xác – công cụ virtual patching phải xác định được vấn đề trước khi đề xuất giải pháp hoặc hướng xử lý khác; vì vậy nó cần dựa trên một cơ sở dữ liệu lớn để bao quát nhiều loại lỗ hổng hơn và mới hơn.
- Tự động vá (Auto-patching) – công cụ phải gửi đúng loại và đúng phiên bản bản vá, rồi cài đặt hoặc áp dụng mà không cần thao tác thủ công; thực tế, nó cần biết thứ tự áp dụng các bản vá để tránh xung đột, hoặc tệ hơn là sập hệ thống.
- Truy cập từ xa – quản trị viên không cần có mặt tại chỗ khi triển khai chiến dịch vá lỗi; dù là mạng tại chỗ, đám mây hay hybrid – công cụ phải truy cập được từ xa bất cứ khi nào cần vá.
- Kiểm thử – công cụ phải chạy được các bài kiểm tra để xem việc vá có thành công không trước khi coi chiến dịch là hoàn tất. Thực tế, nó nên kiểm thử được chiến dịch vá lỗi cả trước và sau quá trình vá.
Ví dụ: thử bản vá trên các mạng mẫu biệt lập, hoặc trên từng subnet riêng lẻ, thay vì đến lúc bản vá sai làm sập toàn bộ mạng mới phát hiện ra nó không hoạt động.
- Giá và giấy phép – dù “miễn phí” luôn là mức giá tốt nhất, điều đó không có nghĩa trả thêm một chút cho các tính năng cao cấp, phục vụ hệ thống trọng yếu lại không phải lựa chọn tốt hơn; nhất là khi nó làm tốt hơn. Bí quyết là tìm được điểm cân bằng giữa giá, tính năng và nhu cầu hiện tại.
