Những điều cần biết về lỗ hổng và cuộc tấn công Zero-Day
Trong khoa học máy tính, một lỗ hổng được coi là lỗ hổng Zero-Day nếu nó không được biết đến đối với tất cả các bên muốn vá nó, chẳng hạn như:
- Nhóm duy trì dự án
- Những người sử dụng dự án
- Các nhà nghiên cứu lỗ hổng
Các nhà nghiên cứu lỗ hổng là những người tốt – họ sẽ không lợi dụng các lỗ hổng vì lợi ích riêng của mình và sẽ thực hiện việc tiết lộ có trách nhiệm.
Hãy minh họa khái niệm này bằng một ví dụ nhỏ.
Ví dụ về lỗ hổng Zero-Day
Giả sử tôi là người duy trì duy nhất của plugin WordPress premium với một cơ sở người dùng nhỏ và gần đây tôi đã triển khai bản cập nhật có chứa lỗ hổng cho tất cả người dùng plugin của tôi.
Trong ví dụ này, tôi không có các kiểm toán viên mã như các nhà phát triển khác, điều này thực sự tồi tệ và khiến cho lỗ hổng không bị phát hiện bởi các bài kiểm tra thủ công hoặc tự động. Để bổ sung cho kịch bản xấu này, không một người dùng plugin nào của tôi có đủ sự quan tâm để kiểm tra mã mới. Vì vậy, lỗ hổng này chỉ là ở đó, không được chú ý.
Đây có phải là lỗ hổng Zero-Day? Đúng, nó chính là lỗ hổng Zero-Day.
Nếu một kẻ tấn công học về lỗ hổng này, nó sẽ không thay đổi bất cứ điều gì vì kẻ tấn công sẽ không quan tâm đến việc vá lỗi; tuy nhiên, họ sẽ quan tâm đến việc khai thác nó.
Sự việc này trong kịch bản giả thuyết của chúng tôi thực sự phổ biến trong cuộc sống thực và giúp chúng tôi thấy rõ những nguy cơ rất lớn về lỗ hổng Zero-Day đối với trang web của chúng tôi.
Cuộc tấn công Zero-Day
Như trong ví dụ cuối cùng của chúng tôi, khi các kẻ xấu tìm hiểu về một lỗ hổng bảo mật trước khi những người bảo vệ dự án, người sử dụng và các nhà nghiên cứu lỗ hổng phát hiện, thì mọi thứ có thể trở nên tồi tệ rất nhanh.
Những kẻ tấn công yêu thích các lỗ hổng Zero-Day bởi vì không có miếng vá bảo mật để ngăn chặn chúng, và điều duy nhất hạn chế họ là mức độ khai thác mà lỗ hổng cho phép. Một số lỗ hổng đòi hỏi một số lượng đặc quyền nhất định để được khai thác – nhưng một lần nữa, điều này phụ thuộc vào các lỗ hổng.
Tin tặc thực sự chủ động khi thử nghiệm xem một trang web có lỗ hổng hay không thông qua việc sử dụng các vectơ tấn công cụ thể. Nếu điều này chưa đủ, tin tặc cũng hay sử dụng sự tự động hoá, bởi nó cho phép họ quét Internet để tìm kiếm các trang web phù hợp với những lỗ hổng và điều kiện cụ thể.
Các cuộc tấn công Zero-Day phụ thuộc vào điều gì?
Cuộc tấn công zero-day có thể gây ảnh hưởng đến sự hiện diện trực tuyến của bạn theo các cách khác nhau. Những ảnh hưởng này bao gồm doanh thu bị mất, vi phạm tuân thủ, lãng phí thời gian và thiệt hại cho danh tiếng thương hiệu của bạn.
Các cuộc tấn công Zero-Day phụ thuộc vào một số yếu tố quan trọng:
- Sự chủ động về an ninh của người duy trì dự án.
- Sự phản ứng nhanh của người duy trì dự án nếu có sự cố xảy ra.
- Sự chủ động về bảo mật cho cộng đồng sử dụng dự án (CMS, plugin, v.v.).
- Sự phản ứng nhanh của cộng đồng sử dụng dự án nếu có sự cố xảy ra.
Sự lặp lại ở đây là cố ý. Cả nhà phát triển lẫn chủ trang web nên chủ động bảo vệ trang web của họ và có thể phản ứng nhanh chóng trong trường hợp gặp sự cố. Điều này có nghĩa là theo dõi các dấu hiệu của một vấn đề và thực hiện các biện pháp để ngăn chặn sự khai thác Zero-Day nếu không có miếng vá bảo mật cho các lỗ hổng.
Nếu những bên quan tâm – những người phát triển và người sử dụng – không đáp ứng được thách thức về an ninh cho website một cách chủ động, thì điều duy nhất còn lại để đánh giá các tác động của lỗ hổng Zero-Day là biết được số lượng các hệ thống bị ảnh hưởng. Tự động hóa giúp hacker dễ dàng sử dụng các lỗ hổng Zero-Day nhanh chóng.
Ai nên quan tâm đến các cuộc tấn công Zero-Day ?
Các nhà phát triển cần phải có các quy trình để tránh những lỗ hổng. Các quy trình này có thể bao gồm:
- Kiểm toán viên mã
- Chương trình bug bounty
- Kiểm tra thủ công
- Kiểm tra tự động
- Cảnh báo bảo mật
Kiểm tra bộ nhớ nội dung web
Tôi muốn bạn làm bài tập sau đây.
Cố gắng nhớ tất cả các phần mềm mà bạn đã cài đặt trên máy chủ web, bao gồm CMS trang web của bạn đang chạy và tất cả các plugin, các tập lệnh, và các tiện ích mà bạn đã thêm vào nó.
Các plugin, các tập lệnh, và các tiện ích
Bạn có thể nhớ tất cả? Nếu có thể, xin chúc mừng!
Bạn đã có một kế hoạch?
Bây giờ, hãy tưởng tượng rằng có một lỗ hổng Zero-Day trong những thành phần đó và tự hỏi những câu hỏi sau:
- Tôi có một giải pháp bảo mật tại chỗ có thể giúp tôi giảm nhẹ rủi ro cho đến khi có bản sửa lỗi không?
- Tôi có một kế hoạch trong trường hợp trang web của tôi bị xâm nhập?
Nếu câu trả lời cho những câu hỏi là không, thì bạn nên hy vọng kẻ tấn công không tìm thấy lỗ hổng bảo mật trong trang web của bạn.
Một trang web không có sự bảo vệ phải dựa vào các nhà phát triển để chắc chắn rằng không có lỗ hổng bảo mật trong mã của họ.
Làm thế nào để bảo vệ và phục hồi website của bạn từ cuộc tấn công Zero-Day?
Chúng tôi có thể đưa cho bạn rất nhiều lời khuyên về cách giữ cho tất cả phần mềm của bạn được cập nhật, chỉ cần cài đặt những gì cần thiết vì mọi mẩu mã được thêm vào hệ thống của bạn đều có tiềm năng gây nguy hiểm, hoặc làm thế nào để giữ cho tập tin thực sự chặt chẽ trên máy chủ web của bạn và những người khác.
Sự thật là các phương pháp bảo mật tốt nhất nên được bổ sung với các điều khiển bảo mật khác để giảm bề mặt tấn công hoặc thậm chí nhiều hơn!
Hãy nhớ rằng khôi phục lại website của bạn khỏi việc bị hack là dễ dàng khi bạn có một nhóm bảo vệ chuyên dụng mà bạn có thể tin cậy. Tuy nhiên, nếu bạn không có một kế hoạch nào cả, thì có thể rất khó để giải quyết một vi phạm an ninh.