Mọi thứ càng trở nên cấp bách hơn khi một lỗ hổng bảo mật được phát hiện và bằng mọi cách phải tìm ra được một giải pháp để ngăn chặn việc khai thác thành công điểm yếu của hệ thống, loại bỏ hoặc giảm thiểu hậu quả của mối đe dọa.
Tìm và phát hiện vấn đề chỉ là bước đầu tiên. Sau đó, lập trình viên phải quyết định cách khắc phục vấn đề và cách triển khai vấn đề theo cách giảm thiểu tối đa tác động đến người dùng. Cách thức đó có thể được gửi qua: Patch, Hotfix, Coldfix hoặc Bugfix.
Các thuật ngữ này thường được sử dụng thay thế cho nhau, nhưng có sự khác biệt trong mỗi thuật ngữ dựa trên cách một lập trình viên kết hợp giải pháp của họ vào phần mềm.
Trong những ngày đầu tiên khi phát minh ra máy tính, Patch được hiểu theo đúng nghĩa đen là một bản vá. Khi đó máy tính sử dụng thẻ đục lỗ và băng giấy để nhập các chương trình và sử dụng chúng để thực hiện các phép tính. Những băng giấy này chứa các hàng lỗ và các khoảng trống vốn là phần mềm của máy tính, cũng giống như ngày nay các nhà cung cấp phần mềm sẽ cần thực hiện các thay đổi đối với lập trình.
Các bản cập nhật này được phân phối trên các mảnh băng giấy hoặc thẻ đục lỗ, người nhận dự kiến sẽ cắt phần mã xấu ra khỏi băng giấy và một phân đoạn thay thế khác được vá vào, do đó chúng có tên như vậy.
Tất nhiên, việc vá lỗi đã trải qua một chặng đường dài phát triển của kỹ thuật số. Các bản vá cho máy tính ngày nay thường cập nhật mã của phiên bản phần mềm hiện có bằng cách sửa đổi hoặc thay thế nó bằng cách sử dụng một chương trình thực thi được phát hành công khai.
Các bản vá thường là các bản sửa lỗi tạm thời giữa các bản phát hành đầy đủ của gói phần mềm. Các bản vá được sử dụng để khắc phục cả các vấn đề lớn và nhỏ có thể cần hoặc không cần chú ý ngay lập tức, chẳng hạn như: sửa lỗi phần mềm; cài đặt trình điều khiển mới; giải quyết các lỗ hổng bảo mật mới; giải quyết các vấn đề về độ ổn định của phần mềm và nâng cấp phần mềm.
Nói chung, các bản vá là các bản cập nhật tự động, các gói tự cài đặt với nhiều kích thước khác nhau, từ vài kilobyte đến các bản vá lớn, như những bản dành cho Windows có thể trên 100 Mb. Trên Windows, việc cài đặt các bản vá nhất định có thể gây ra gián đoạn, thậm chí ngừng hoạt động trong khi cài đặt và có thể yêu cầu khởi động lại hệ thống.
Hầu hết các bản vá được phân phối theo lịch trình đã định. Chúng có thể được đưa vào bản phát hành phiên bản mới của sản phẩm với các bản sửa lỗi và cập nhật bổ sung.
Các hotfix cũng có thể giải quyết nhiều vấn đề giống như một bản vá, nhưng nó được áp dụng cho một hệ thống “hot” (một hệ thống đang hoạt động) để khắc phục sự cố ngay lập tức mà không làm cho hệ thống ngừng hoạt động.
Các hotfix còn được gọi là các bản cập nhật kỹ thuật sửa chữa nhanh (quick-fix engineering updates - QFE), một cái tên thể hiện tính cấp thiết.
Thông thường, bạn sẽ nhanh chóng tạo ra một hotfix, như một biện pháp khẩn cấp chống lại các vấn đề cần được khắc phục ngay lập tức và nằm ngoài quy trình phát triển bình thường. Không giống như các bản vá, các hotfix giải quyết các vấn đề rất cụ thể như:
Quan trọng là các hotfix không phải lúc nào cũng được phát hành công khai, ngược lại với các bản vá.
Ví dụ, giả sử một ngân hàng biết rằng ứng dụng ngân hàng của họ có thể bị tấn công, khai thác và tiết lộ dữ liệu người dùng như mật khẩu, tên người dùng và thông tin tài khoản. Ngay cả khi vụ tấn công chưa xảy ra, đó là một rủi ro tiềm ẩn đến mức ngay cả khi phát hiện được nguy cơ của nó cũng cần phải hành động khẩn cấp. Đội ngũ bảo mật có thể sẽ loại bỏ tất cả các ràng buộc, cố gắng cung cấp một hotfix giải quyết lỗ hổng bảo mật càng sớm càng tốt, với sự gián đoạn tối thiểu.
Trong trường hợp hotfix được thực thi nhanh chóng mà không cần khởi động lại bất kỳ hệ thống hoặc phần cứng nào thì coldfix lại ngược lại. Việc triển khai một coldfix yêu cầu người dùng đăng xuất khỏi phần mềm trong khi toàn bộ hệ thống cần được khởi động lại để các bản sửa lỗi có hiệu lực.
Những cập nhật loại này phổ biến trong các trò chơi nhiều người chơi trực tuyến, vì vậy chúng thường được thông báo trước vài ngày để cho người dùng biết rằng dịch vụ sẽ không khả dụng cho đến khi quá trình khắc phục hoàn tất. Thông báo thường bao gồm thời gian ước tính dịch vụ sẽ trực tuyến trở lại, vì thời gian ngừng hoạt động có thể kéo dài từ vài phút đến vài giờ tùy thuộc vào bản cập nhật.
Tất cả chúng ta đều quen thuộc với thuật ngữ “bug”: một lỗi lập trình hay một trục trặc mà tạo ra lỗi trong hệ thống hoặc phần mềm. Việc loại bỏ những lỗi này là một hành động được gọi là gỡ lỗi (debugging).
Mặc dù cái tên dễ nghe khiến những lỗi này trông có vẻ nhỏ và chỉ gây khó chịu nhẹ, các nhà phát triển và lập trình viên có thể dành nhiều thời gian để tìm kiếm một số loại lỗi phổ biến khác nhau, chẳng hạn như:
Việc triển khai một bản sửa lỗi, còn được biết đến như là bản sửa lỗi tạm thời của chương trình, có thể đơn giản như việc thêm dấu ngoặc đơn bị thiếu trong một đoạn mã. Nhưng việc khắc phục có thể trở nên khá khó khăn nếu các triệu chứng không chỉ ra nguyên nhân rõ ràng.
Ví dụ, nguyên nhân và triệu chứng có thể là tách biệt, với một trong hai nằm trong mã chương trình và cái còn lại nằm trong quá trình thực thi của chương trình hoặc cả hai.
Các triệu chứng cũng có thể khó tái tạo để hiểu rõ hơn về vấn đề. Tuy nhiên, khi bạn đã phát hiện ra nguyên nhân gốc rễ và đưa ra bản sửa lỗi, các lập trình viên của bạn sẽ không thấy rằng việc bugfix thực sự có thể tạo ra một lỗi mới.
Nghe qua, bugfix có vẻ giống như hotffix, nhưng sự khác biệt nằm ở thời gian và việc thực hiện sửa lỗi. Bugfix thường mô tả các vấn đề được tìm thấy và giải quyết trong giai đoạn sản xuất hoặc thử nghiệm hay thậm chí sau khi triển khai như một phần của chu kỳ phát hành thông thường của sản phẩm. Những hotfix thì chỉ được áp dụng sau khi sản phẩm đã được phát hành và đang hoạt động.
BẢNG 1: CÁC KIỂU SỬA LỖI
Patch |
|
Hotfix |
|
Coldfix |
|
Bugfix |
|
Tiền thưởng lỗi là gì?
Khi phần mềm ngày càng phức tạp, việc sửa lỗi trước và sau khi sản phẩm ra mắt là rất quan trọng để bảo vệ uy tín thương hiệu của các nhà sản xuất.
Các ứng dụng ngày càng phức tạp, đa luồng và lớn, với số lượng lớn các nhà phát triển đang làm việc trên chúng. Tất cả sự phức tạp này khiến việc theo dõi lỗi trở nên khó khăn hơn và không thể đoán trước được. Các chương trình đa luồng thường kéo dài thời gian thời gian xử lý lỗi (từ khi phát hiện ra nguyên nhân gốc rễ của lỗi và phát hiện ra lỗi); làm cho các lỗi khó theo dõi...
Các lỗi là một rủi ro quá lớn để lập trình viên có thể bỏ qua. Họ sẽ dành hàng tuần để săn tìm hoặc thậm chí cung cấp tiền thưởng để được trợ giúp tìm ra các vấn đề trong mã nguồn của họ trước khi họ có thể áp dụng bản sửa lỗi phù hợp.
Trần Duy Lai
(Theo bmc.com)
08:00 | 25/06/2018
13:00 | 17/04/2024
Vào ngày 24/4 tới đây tại Hà Nội, Hiệp hội Blockchain Việt Nam phối hợp Viện công nghệ Blockchain và trí tuệ nhân tạo tổ chức Hội thảo Blockchain & AI: cuộc cách mạng tương lai. Hội thảo được tổ chức với mục tiêu tạo dựng diễn đàn đa phương để các cơ quan quản lý nhà nước, tổ chức xã hội nghề nghiệp, cá nhân, doanh nghiệp công nghệ pháp lý tài chính ngành Blockchain và trí tuệ nhân tạo (AI), Nhà cung cấp dịch vụ tài sản ảo (VASP) trong và ngoài nước có cơ hội đối thoại trực tiếp,
08:00 | 29/03/2024
Sáng 26/3, Thủ tướng Chính phủ Phạm Minh Chính gặp mặt và đối thoại với thanh niên nhân dịp kỷ niệm 93 năm Ngày thành lập Đoàn Thanh niên Cộng sản (TNCS) Hồ Chí Minh. Với chủ đề "Phát huy vai trò xung kích của thanh niên trong công cuộc chuyển đổi số quốc gia", tại buổi đối thoại, Thủ tướng Phạm Minh Chính đã trực tiếp trả lời nhiều câu hỏi của thanh niên về chuyển đổi số (CĐS) và an toàn an ninh mạng.
09:00 | 29/01/2024
Chính phủ Mỹ, Anh và Úc đã công bố các biện pháp trừng phạt đối với Aleksandr Gennadievich Ermkov (thành viên của nhóm tin tặc REvil) - người chịu trách nhiệm về vụ tấn công sử dụng mã độc tống tiền vào Medibank năm 2022.
07:00 | 17/01/2024
Chiều ngày 16/01, tại Hà Nội, Bộ Tư lệnh 86 (BTL 86) đã tổ chức buổi gặp mặt báo chí năm 2024 nhằm đẩy mạnh công tác truyền thông, tuyên truyền về nhiệm vụ bảo vệ Tổ quốc trên không gian mạng.
Khoảng giữa năm 1995, cơ quan An ninh Quốc gia Mỹ (National Security Agency - NSA) bắt đầu công bố hàng nghìn thông điệp được giải mật từ dự án VENONA. Đó là các thông điệp được truyền trong hoạt động ngoại giao và hoạt động tình báo của Liên Xô được trao đổi từ năm 1940. Trong đó, có chứa các thông tin liên quan đến Cơ quan tình báo trung ương Liên Xô (Komitet Gosudarstvennoy Bezopasnosti - KGB), Cơ quan Tình báo Quân đội Nga (Glavnoye Razvedyvatel’noye Upravleniye - GRU), Cơ quan Dân ủy Nội vụ (Narodnyy Komissariat Vnutrennikh Del - NKVD)…. Đây là kết quả hợp tác truyền thông tình báo của Mỹ, Anh và một số nước đồng minh. Bài viết dưới đây trình bày khái quát các kết quả chính và nguyên nhân thám mã thành công của dự án VENONA.
15:00 | 30/12/2018
Chiều 17/4, tại Hà Nội diễn ra Lễ công bố quyết định và trao tặng Bằng khen của Viện trưởng Viện Kiểm sát nhân dân tối cao đối với tập thể, cá nhân Cục Cơ yếu Đảng - Chính quyền (Ban Cơ yếu Chính phủ), vì đã có thành tích xuất sắc trong việc xây dựng Quy chế phối hợp giữa Viện Kiểm sát nhân dân tối cao và Ban Cơ yếu Chính phủ.
16:00 | 19/04/2024
Hướng tới kỷ niệm 80 năm Ngày truyền thống ngành Cơ yếu Việt Nam (12/9/1945 - 12/9/2025), Ban Cơ yếu Chính phủ đã ban hành Kế hoạch phát động Cuộc thi sáng tác nghệ thuật thơ, ca khúc về Ngành Cơ yếu Việt Nam.
10:00 | 16/04/2024