Zero-day

Lỗ hổng zero-day (còn gọi là 0-day) là một lỗ hổng hoặc điểm yếu bảo mật trong hệ thống máy tính mà các nhà phát triển hoặc bất kỳ ai có khả năng khắc phục vẫn chưa phát hiện ra. Cho đến khi lỗ hổng này được vá, các tác nhân đe dọa có thể lợi dụng nó để thực hiện một cuộc khai thác zero-day hoặc tấn công zero-day.

Thuật ngữ "zero-day" (không ngày) ban đầu dùng để chỉ số ngày kể từ khi một phần mềm mới được phát hành. Khi đó, "phần mềm zero-day" là phần mềm bị lấy cắp bằng cách đột nhập vào máy tính của nhà phát triển trước khi phần mềm được ra mắt. Về sau, thuật ngữ này được mở rộng để chỉ các lỗ hổng bảo mật cho phép thực hiện hành vi đột nhập đó, cũng như số ngày mà nhà cung cấp phần mềm có để vá lỗ hổng. Khi phát hiện lỗ hổng, nhà cung cấp có thể phát hành bản vá hoặc đưa ra giải pháp tạm thời để giảm thiểu rủi ro – tuy nhiên, người dùng cần áp dụng các biện pháp đó thì hệ thống mới được bảo vệ. Các cuộc tấn công zero-day được xem là mối đe dọa đặc biệt nghiêm trọng.
== Định nghĩa ==
Dù quản trị viên hệ thống hoặc các nhà phát triển phần mềm có nỗ lực đến đâu, hầu như mọi phần cứng và phần mềm đều tồn tại lỗi. Nếu lỗi đó gây ra rủi ro bảo mật, nó sẽ được gọi là lỗ hổng. Mức độ khai thác của các lỗ hổng này rất khác nhau – có cái gần như không thể bị lợi dụng, có cái có thể bị dùng để gây gián đoạn thiết bị thông qua tấn công từ chối dịch vụ. Nguy hiểm nhất là những lỗ hổng cho phép kẻ tấn công chèn và thực thi mã độc của riêng họ mà người dùng hoàn toàn không hay biết. Mặc dù thuật ngữ "zero-day" ban đầu dùng để chỉ khoảng thời gian kể từ khi nhà cung cấp phát hiện ra lỗ hổng, nhưng ngày nay nó cũng được hiểu là những lỗ hổng mà chưa có bản vá hay bất kỳ biện pháp khắc phục nào được đưa ra. Việc khai thác zero-day là bất kỳ hình thức tấn công nào lợi dụng một lỗ hổng như vậy.

== Khai thác ==
Khai thác là cơ chế được sử dụng để lợi dụng lỗ hổng nhằm xâm nhập vào hệ thống của mục tiêu, với các mục đích như gây gián đoạn hoạt động, cài đặt phần mềm độc hại hoặc đánh cắp dữ liệu. Hai nhà nghiên cứu Lillian Ablon và Andy Bogart nhận định rằng "hiện vẫn còn rất ít thông tin về mức độ phổ biến, cách sử dụng, lợi ích và tác hại thực sự của các vụ khai thác zero-day". Các hình thức khai thác dựa trên lỗ hổng zero-day được xem là nguy hiểm hơn so với việc lợi dụng các lỗ hổng đã biết. Tuy vậy, phần lớn các cuộc tấn công mạng hiện nay có khả năng vẫn chủ yếu dựa vào các lỗ hổng đã được phát hiện, chứ không phải zero-day.

Chính phủ các quốc gia là những bên sử dụng khai thác zero-day nhiều nhất, không chỉ vì chi phí tìm kiếm hoặc mua lỗ hổng rất cao, mà còn do việc viết phần mềm tấn công cũng tốn kém đáng kể. Tuy nhiên, bất kỳ ai cũng có thể lợi dụng một lỗ hổng nếu có cơ hội, và theo nghiên cứu của RAND Corporation, “bất kỳ kẻ tấn công nghiêm túc nào cũng luôn có thể mua được một khai thác zero-day với mức giá phải chăng, nhắm vào hầu như bất kỳ mục tiêu nào”. Nhiều cuộc tấn công có chủ đích và phần lớn các APTư đều dựa vào các lỗ hổng zero-day.

Thời gian trung bình để phát triển một công cụ khai thác từ một lỗ hổng zero-day được ước tính là khoảng 22 ngày. Việc phát triển các công cụ khai thác ngày càng trở nên khó khăn hơn theo thời gian do các phần mềm phổ biến ngày càng được trang bị nhiều tính năng chống khai thác hơn.

=== Khoảng thời gian tấn công ===
Các lỗ hổng zero-day thường được phân loại thành lỗ hổng "sống" – tức là chưa có ai công khai biết đến lỗ hổng – và lỗ hổng "chết" – tức là đã được tiết lộ nhưng vẫn chưa được vá. Nếu phần mềm đang được duy trì và nhóm phát triển tích cực tìm kiếm lỗ hổng, thì lỗ hổng đó được xem là "sống"; còn nếu phần mềm không còn được duy trì, các lỗ hổng như vậy được gọi là "bất tử" (immortal). Lỗ hổng "ma" (zombie) là những lỗ hổng đã được vá trong các phiên bản mới, nhưng vẫn có thể bị khai thác trong các phiên bản cũ của phần mềm.

Ngay cả các lỗ hổng đã được công bố trước công chúng hoặc những lỗ hổng "ma" cũng thường có thể bị khai thác trong một thời gian dài. Việc phát triển bản vá bảo mật có thể mất hàng tháng, hoặc thậm chí không bao giờ được thực hiện. Một bản vá có thể ảnh hưởng tiêu cực đến chức năng của phần mềm, và người dùng thường cần phải kiểm thử trước để đảm bảo rằng bản vá hoạt động đúng và tương thích. Các tổ chức lớn có thể bỏ sót một số thành phần phụ thuộc cần vá, trong khi các doanh nghiệp nhỏ hoặc người dùng cá nhân có thể không cài đặt bản vá.

Nghiên cứu cho thấy nguy cơ bị tấn công mạng gia tăng nếu lỗ hổng được công bố công khai hoặc khi bản vá được phát hành. Tội phạm mạng có thể áp dụng kỹ thuật đảo ngược bản vá để tìm ra lỗ hổng bên trong và nhanh chóng phát triển công cụ khai thác, thường nhanh hơn so với tốc độ người dùng kịp cài đặt bản vá. 

Theo một nghiên cứu của RAND Corporation công bố năm 2017, các lỗ hổng zero-day có thời gian sử dụng trung bình lên tới 6,9 năm. Tuy nhiên, nếu được mua từ bên thứ ba, chúng thường chỉ còn hiệu quả trong khoảng 1,4 năm. Các nhà nghiên cứu không tìm thấy mối liên hệ rõ ràng nào giữa tuổi thọ của lỗ hổng zero-day với nền tảng hay loại phần mềm cụ thể, chẳng hạn như phần mềm mã nguồn mở. Mặc dù các nhà nghiên cứu của RAND phát hiện rằng khoảng 5,7% số lỗ hổng zero-day bí mật trong kho lưu trữ sẽ bị người khác phát hiện trong vòng một năm, một nghiên cứu khác lại cho thấy tỷ lệ trùng lặp cao hơn, dao động từ 10,8% đến 21,9% mỗi năm.

== Biện pháp phòng thủ ==
Vì theo định nghĩa, khai thác lỗ hổng zero-day là lợi dụng những lỗ hổng chưa có bản vá, nên mọi hệ thống sử dụng phần mềm hoặc phần cứng chứa lỗ hổng đó đều có nguy cơ bị tấn công. Điều này áp dụng ngay cả với các hệ thống được xem là an toàn, như ngân hàng hay cơ quan chính phủ, ngay cả khi chúng đã cập nhật đầy đủ tất cả các bản vá hiện có. Các hệ thống bảo mật thường được thiết kế dựa trên những lỗ hổng đã biết, nên việc khai thác lặp đi lặp lại một lỗ hổng zero-day có thể diễn ra trong thời gian dài mà không bị phát hiện. Mặc dù đã có nhiều đề xuất về các hệ thống có khả năng phát hiện hiệu quả các cuộc tấn công zero-day, nhưng cho đến năm 2023, đây vẫn là một lĩnh vực nghiên cứu đang được tiếp tục phát triển.

Nhiều tổ chức đã áp dụng chiến lược phòng ngự chiều sâu, nhằm buộc kẻ tấn công phải vượt qua nhiều tầng bảo mật khác nhau, khiến việc tấn công trở nên khó khăn và tốn kém hơn. Các biện pháp an ninh mạng phổ biến như đào tạo người dùng, xác thực đa yếu tố, phân quyền tối thiểu hay cách ly mạng (air-gapping) giúp nâng cao khả năng phòng thủ và khiến việc xâm nhập hệ thống thông qua lỗ hổng zero-day trở nên khó thực hiện hơn. Vì không thể viết ra phần mềm hoàn toàn an toàn tuyệt đối, một số nhà nghiên cứu cho rằng việc làm gia tăng chi phí để phát triển các công cụ khai thác là một chiến lược hiệu quả nhằm giảm thiểu tác động của các cuộc tấn công mạng.

== Chợ lỗ hổng ==
Lỗ hổng zero-day có thể được mua bán với giá lên tới hàng triệu đô la. Có ba nhóm người mua chính:

- Nhóm trắng (White): Bao gồm nhà cung cấp phần mềm hoặc các bên thứ ba như chương trình Zero Day Initiative, những người sẽ thông báo lại cho nhà phát triển. Việc tiết lộ như vậy thường đi kèm với phần thưởng phát hiện lỗi (bug bounty). Tuy nhiên, không phải công ty nào cũng phản hồi tích cực khi nhận được thông báo về lỗ hổng, vì điều đó có thể kéo theo trách nhiệm pháp lý hoặc làm phát sinh chi phí vận hành. Không hiếm trường hợp người báo lỗi miễn phí lại bị các công ty gửi thư yêu cầu ngừng tiết lộ (cease-and-desist).
- Nhóm xám (Gray): Là thị trường lớn nhất và đem lại lợi nhuận cao nhất. Các cơ quan chính phủ hoặc tình báo mua khai thác zero-day để sử dụng trong các cuộc tấn công, tích trữ để sử dụng sau, hoặc trong một số trường hợp, thông báo lại cho nhà phát triển. Chính phủ liên bang Hoa Kỳ là một trong những bên mua lớn nhất. Tính đến năm 2013, liên minh Ngũ Nhãn (gồm Hoa Kỳ, Anh, Canada, Úc và New Zealand) chiếm phần lớn thị trường, trong khi các bên mua đáng kể khác bao gồm Nga, Ấn Độ, Brasil, Malaysia, Singapore, Triều Tiên và Iran. Các quốc gia Trung Đông được dự báo sẽ trở thành nhóm chi tiêu nhiều nhất.
- Nhóm đen (Black): Bao gồm tội phạm có tổ chức, những người thường không chỉ muốn thông tin về lỗ hổng mà còn cần phần mềm khai thác có sẵn để sử dụng ngay. Nhóm này có xu hướng sử dụng các lỗ hổng "half-day", tức là các lỗ hổng đã được vá nhưng vẫn còn hệ thống chưa cập nhật.

Vào năm 2015, thị trường mua bán khai thác zero-day của chính phủ và tội phạm được ước tính lớn gấp ít nhất mười lần so với thị trường hợp pháp. Người bán thường là các nhóm hacker chuyên săn tìm lỗ hổng trong những phần mềm phổ biến để đổi lấy lợi ích tài chính. Một số nhóm chỉ bán cho những bên được chọn, trong khi những nhóm khác sẵn sàng bán cho bất kỳ ai. Những người bán trong thị trường hợp pháp thường có động lực không đến từ tiền bạc, chẳng hạn như mong muốn được ghi nhận công lao hoặc tìm kiếm thử thách về mặt trí tuệ. Theo đó, việc mua bán lỗ hổng zero-day là hợp pháp. Dù đã có nhiều lời kêu gọi tăng cường quản lý, giáo sư luật Mailyn Fidler cho rằng khả năng đạt được một thỏa thuận quốc tế là rất thấp, vì các bên chủ chốt như Nga và Israel không mấy mặn mà với việc này.

Những người mua và bán lỗ hổng zero-day thường hoạt động một cách bí mật, dựa vào các thỏa thuận bảo mật (NDA) và luật liên quan đến thông tin mật để giữ bí mật lỗ hổng. Nếu lỗ hổng bị lộ ra, nó có thể bị vá, khiến giá trị của khai thác đó sụt giảm nghiêm trọng. Vì thị trường này thiếu tính minh bạch, nên các bên tham gia thường khó xác định được mức giá hợp lý. Người bán có thể không nhận được tiền nếu lỗ hổng bị tiết lộ trước khi được xác minh, hoặc nếu bên mua từ chối giao dịch nhưng sau đó vẫn sử dụng lỗ hổng đó. Với sự xuất hiện ngày càng nhiều của các bên trung gian, người bán có thể hoàn toàn không biết lỗ hổng mà họ cung cấp sẽ được sử dụng vào mục đích gì. Người mua cũng không thể đảm bảo rằng lỗ hổng đó chưa được bán cho bên khác. Cả người mua lẫn người bán đều thường quảng bá giao dịch trên dark web.

Một nghiên cứu công bố năm 2022, dựa trên mức giá trần do một nhà môi giới khai thác cung cấp, cho thấy giá các công cụ khai thác đã tăng với tốc độ lạm phát trung bình 44% mỗi năm. Trong đó, các loại lỗ hổng từ xa không cần tương tác người dùng (remote zero-click) có giá cao nhất, còn những lỗ hổng đòi hỏi tương tác trực tiếp vào thiết bị thì rẻ hơn nhiều. Các lỗ hổng trong phần mềm được sử dụng rộng rãi cũng có giá cao hơn. Theo ước tính, có khoảng 400 đến 1.500 người đã bán các công cụ khai thác cho nhà môi giới đó, và họ kiếm được khoảng từ 5.500 đến 20.800 USD mỗi năm.

== Tiết lộ và tích trữ ==
, vẫn còn nhiều tranh cãi xoay quanh việc liệu Hoa Kỳ có nên công khai các lỗ hổng mà họ phát hiện để các bên liên quan có thể vá chúng, hay tiếp tục giữ bí mật để phục vụ cho mục đích riêng. Lý do khiến các quốc gia giữ bí mật một lỗ hổng có thể bao gồm mong muốn sử dụng nó cho mục đích tấn công, hoặc phòng thủ trong các bài kiểm tra thâm nhập. Việc công khai lỗ hổng giúp giảm nguy cơ người tiêu dùng và tất cả người dùng phần mềm trở thành nạn nhân của phần mềm độc hại hoặc rò rỉ dữ liệu.

Quy trình công bố một lỗ hổng zero-day thường diễn ra theo các giai đoạn sau, kèm theo mốc thời gian điển hình:
1. Phát hiện: Một nhà nghiên cứu xác định được lỗ hổng – thời điểm này được đánh dấu là "Ngày 0".
2. Báo cáo: Nhà nghiên cứu thông báo lỗ hổng cho nhà cung cấp phần mềm hoặc một bên thứ ba, khởi động quá trình khắc phục.
3. Phát triển bản vá: Nhà cung cấp tiến hành phát triển bản vá. Quá trình này có thể kéo dài từ vài tuần đến vài tháng, tùy vào mức độ phức tạp của lỗ hổng.
4. Công bố trước công chúng: Sau khi bản vá được phát hành, thông tin chi tiết về lỗ hổng thường sẽ được công khai. Trong trường hợp nhà cung cấp không đưa ra bản vá trong khoảng thời gian đã thỏa thuận (thường là 90 ngày), một số nhà nghiên cứu có thể tự công bố thông tin để gây áp lực buộc nhà cung cấp phải hành động.

== Lịch sử ==
Lỗ hổng khai thác zero-day trở nên quan trọng hơn sau khi các dịch vụ như Apple, Google, Facebook và Microsoft bắt đầu mã hóa máy chủ và tin nhắn, khiến cách khả thi nhất để truy cập dữ liệu người dùng là chặn nó ngay tại nguồn – trước khi dữ liệu được mã hóa. Một trong những ví dụ nổi tiếng nhất về việc sử dụng khai thác zero-day là sâu máy tính Stuxnet đã tận dụng bốn lỗ hổng zero-day để phá hoại chương trình hạt nhân của Iran vào năm 2010. Con sâu máy tính này cho thấy sức mạnh của các lỗ hổng zero-day có thể đạt được đến mức nào, đồng thời kích hoạt sự bùng nổ trên thị trường mua bán các công cụ khai thác này.

Cơ quan An ninh Quốc gia Hoa Kỳ đã tăng cường việc tìm kiếm các lỗ hổng zero-day sau khi các công ty công nghệ lớn từ chối cài đặt backdoor vào phần mềm. Nhiệm vụ này được giao cho Tailored Access Operations (TAO), đơn vị chuyên phát hiện và mua lại các lỗ hổng zero-day. Vào năm 2007, cựu nhân viên NSA Charlie Miller lần đầu tiên công khai tiết lộ rằng chính phủ Hoa Kỳ đã tham gia mua các lỗ hổng zero-day. Một số thông tin về việc NSA có liên quan đến các lỗ hổng zero-day đã được tiết lộ trong các tài liệu bị rò rỉ bởi cựu nhà thầu NSA Edward Snowden vào năm 2013, tuy nhiên các chi tiết cụ thể của vụ việc vẫn còn thiếu. Nhà báo Nicole Perlroth đưa ra kết luận rằng: "Hoặc là quyền truy cập của Snowden với tư cách nhà thầu không đủ sâu để tiếp cận các hệ thống cần thiết trong chính phủ, hoặc là các nguồn và phương thức mà chính phủ sử dụng để thu thập các lỗ hổng zero-day quá bí mật, hoặc quá gây tranh cãi, đến mức NSA không dám ghi chép lại dưới bất kỳ hình thức nào."

Một trong những lỗ hổng nổi tiếng nhất được phát hiện sau năm 2013 là Heartbleed (CVE-2014-0160). Mặc dù khi được công bố công khai, nó không phải là một lỗ hổng zero-day, nhưng lại cho thấy rõ mức độ nghiêm trọng mà một lỗi phần mềm có thể gây ra đối với an ninh mạng toàn cầu. Lỗi này nằm trong thư viện mật mã OpenSSL và hoàn toàn có thể bị khai thác như một zero-day trước khi được phát hiện, cho phép kẻ tấn công đánh cắp thông tin nhạy cảm như khóa riêng tư và mật khẩu.

Năm 2016, nhóm hacker có tên The Shadow Brokers đã tung ra một loạt các công cụ khai thác zero-day tinh vi, được cho là đánh cắp từ NSA. Trong số đó có EternalBlue, một công cụ lợi dụng lỗ hổng trong giao thức Server Message Block (SMB) của hệ điều hành Microsoft Windows. Sau này, EternalBlue đã bị vũ khí hóa và sử dụng trong các cuộc tấn công nổi tiếng như WannaCry và NotPetya, gây thiệt hại nghiêm trọng trên toàn cầu. Sự kiện này làm nổi bật những rủi ro khi các lỗ hổng bảo mật bị tích trữ thay vì được vá kịp thời.

Năm 2020 chứng kiến một trong những chiến dịch gián điệp mạng tinh vi nhất từ trước đến nay, khi kẻ tấn công đã lợi dụng nhiều lỗ hổng bảo mật, bao gồm cả lỗ hổng zero-day, để xâm nhập vào phần mềm Orion của SolarWinds. Thông qua đó, họ đã có thể tiếp cận hàng loạt mạng lưới của các cơ quan chính phủ và tập đoàn lớn.

Năm 2021, nhóm Hafnium — được cho là có liên hệ với chính phủ Trung Quốc — đã khai thác các lỗ hổng zero-day trong Microsoft Exchange Server để tiến hành hoạt động gián điệp mạng. Những lỗ hổng này, được gọi chung là ProxyLogon, cho phép kẻ tấn công vượt qua cơ chế xác thực và thực thi mã tùy ý, dẫn đến việc hàng nghìn hệ thống trên toàn thế giới bị xâm nhập.

Năm 2022, phần mềm gián điệp Pegasus do Tập đoàn NSO của Israel phát triển bị phát hiện đã khai thác các lỗ hổng zero-click trong các ứng dụng nhắn tin như iMessage và WhatsApp. Những lỗ hổng này cho phép kẻ tấn công truy cập vào thiết bị của mục tiêu mà không cần bất kỳ sự tương tác nào từ người dùng, làm dấy lên lo ngại nghiêm trọng về quyền riêng tư và hoạt động giám sát.