Có một quan niệm sai lầm phổ biến rằng không có virus trên Linux. Thực tế là chúng có tồn tại. Mặc dù bạn có thể kiểm tra các file chương trình của mình để tìm file bị nhiễm, nhưng có thể mất hàng tháng trước khi bạn nhận ra rằng hệ thống Linux của mình đã bị xâm phạm. Bạn cần thực hiện các bước nhất định để bảo vệ hệ điều hành của mình và chính bạn.
Các rủi ro bảo mật do sơ suất bao gồm từ việc bị đánh cắp thông tin và nhiễm virus, đến việc người dùng khác có quyền truy cập trái phép vào máy Linux của bạn. Do đó, bài viết này liệt kê các cách an toàn để tải xuống phần mềm trên Linux.
1. Kiểm tra giá trị hash
Giá trị hash (hoặc checksum) là một chuỗi ký tự chữ và số được tạo ra khi một số dữ liệu được chuyển qua một hàm mật mã. Nó hoạt động như một chữ ký điện tử cho file của bạn.
Để đảm bảo rằng bạn không tải xuống file bị hỏng, một số trang web mã nguồn mở thường cung cấp hàm hash dự kiến mà bạn sẽ nhận được sau khi tải xong file. Hãy lấy một ví dụ.
Giả sử bạn đang tải xuống Tomcat 10, một web server phổ biến. Giá trị hash cho Tomcat phiên bản 10.0.6 là:
3d39b086b6fec86e354aa4837b1b55e6c16bfd5ec985a82a5dd71f928e3fab5370b2964a
5a1098cfe05ca63d031f198773b18b1f8c7c6cdee6c90aa0644fb2f2 *apache-tomcat-10.0.6.tar.gz
Phần *apache-tomcat-10.0.6.tar.gz chỉ là tên file. Các giá trị từ 3d39...2f2 bao gồm giá trị hash. Để nhận được giá trị này, bạn cần đi đến thư mục mà bạn đã tải xuống file lưu trữ và chạy lệnh sau:
sha512sum apache-tomcat-10.0.6.tar.gz
Bạn sẽ nhận được giá trị hash được đề cập ở trên. Nếu bạn nhận được một giá trị khác, điều đó có nghĩa là bản tải xuống của bạn đã bị hỏng và bạn cần phải xóa nó ngay lập tức.
Trong ví dụ cụ thể này, hàm hash mà bài viết đã sử dụng là sha512. Đó là bởi vì đây là chức năng mà nền tảng Apache Tomcat đã quyết định sử dụng để bảo vệ tính toàn vẹn cho các bản tải xuống của mình.
Các trang web khác có thể sử dụng các hàm hash khác nhau, chẳng hạn như các hàm sha256 và sha384 phổ biến.
Trong trường hợp website đang sử dụng các hàm hash khác, tất cả những gì bạn cần làm là thay thế tên của lệnh bằng hàm hash.
sha256sum filename-of-download
sha384sum filename-of-download
Cũng cần lưu ý rằng file đã sử dụng là file TAR (tức là file lưu trữ). Nhưng điều gì sẽ xảy ra nếu bạn đã tải xuống một file nhị phân? Tin tốt là trên Linux, bạn sẽ nhận được cùng một kết quả hash bất kể loại file.
Chế độ mặc định của các hàm hash trên Linux là văn bản. Do đó, để chuyển sang chế độ nhị phân, hãy sử dụng tùy chọn -b như sau:
sha256sum -b filename
2. Sử dụng các trang web an toàn
Tải xuống từ các trang web an toàn giúp giảm đáng kể nguy cơ nhiễm phần mềm độc hại. Theo nguyên tắc chung, bạn phải luôn sử dụng trang web tải xuống chính thức của phần mềm mà bạn muốn download. Nếu vì lý do nào đó mà bạn không thể tìm thấy trang web chính thức, hãy xem xét sử dụng một trang web đáng tin cậy.
Các trang web tải xuống như FileHorse và SourceForge là những ví dụ về các trang web đáng tin cậy mà bạn có thể truy cập. Các trang web này đã có từ lâu và tạo được sự tin tưởng của người dùng.
3. Tự biên dịch mã nguồn của riêng bạn
Một trong những lý do lớn nhất khiến cộng đồng mã nguồn mở tồn tại là bạn không cần phải đặt niềm tin vào các công ty phần mềm lớn và hy vọng rằng họ không làm bất cứ điều gì trái phép trên PC của bạn.
Khi bạn tải xuống các file nhị phân, bạn đã trao một số quyền cho trình biên dịch mã. Nhưng nếu bạn có quyền truy cập vào mã nguồn, bạn có thể lấy lại quyền kiểm soát về tay của chính mình.
Với mã nguồn mở, bạn có thể xác minh một cách độc lập rằng phần mềm có thực hiện chính xác những gì tác giả của nó nói hay không. Hạn chế duy nhất của điều này là bạn cần phải có kỹ năng lập trình trên mức trung bình. Bạn cũng có thể quyết định chiến lược và chỉ kiểm tra thông qua các file quan trọng mà bạn quan tâm.
Ví dụ, giả sử bạn có một số mã nguồn C được sao chép từ kho lưu trữ GitHub. Dưới đây là cách bạn tự biên dịch nó.
Chạy lệnh dưới đây để cài đặt gói build cần thiết. Gói này chứa các công cụ quan trọng cần thiết khi xây dựng phần mềm trên Linux.
sudo apt-get install build-essential
Bây giờ, biên dịch code C bằng trình biên dịch gcc.
gcc program-name.c -o program-name
Sau khi biên dịch, bạn có thể chạy chương trình bằng cách gõ:
./program-name
4. Sử dụng trình quản lý gói chính thức
Cách dễ nhất để cài đặt, cập nhật và gỡ cài đặt phần mềm là sử dụng trình quản lý gói. Có một số lựa chọn phổ biến như pacman, dpkg, DNF và APT. Trình quản lý gói làm việc trực tiếp với kho phần mềm chính thức và cửa hàng ứng dụng.
Trình quản lý gói thực hiện rất nhiều công việc nặng nhọc cho bạn. Chúng xử lý các hoạt động tiêu chuẩn như quản lý những dependency mà phần mềm cần, đảm bảo tính toàn vẹn và tính xác thực của việc tải xuống cũng như quản lý phiên bản.
Một điều tốt nữa là bản phân phối thường được cài đặt sẵn một trình quản lý gói. Ví dụ, Debian 10 đi kèm với APT và các hệ thống dựa trên Arch đi kèm với pacman.
5. Nghiên cứu cá nhân
Thế giới phần mềm là một nơi luôn thay đổi và theo kịp các xu hướng bảo mật là khía cạnh quan trọng trong việc bảo vệ chính bạn. Có một số tùy chọn cài đặt mà bạn có thể chọn trong những tình huống khác nhau. Ví dụ, cài đặt phần mềm trên máy ảo hoặc sử dụng app containerization (một loại chiến lược ảo hóa thay thế cho ảo hóa dựa trên hypervisor truyền thống).
App containerization là một xu hướng đặc biệt thú vị vì nó đảm bảo rằng các ứng dụng của bạn chạy theo cùng một cách trong những môi trường thực thi khác nhau. Có thể cô lập việc thực thi lõi phần mềm và các dependency khỏi cơ sở hạ tầng bên dưới, mang lại khả năng bảo mật chưa từng có.
Bạn cũng nên xem các bài đánh giá phần mềm và theo dõi những cuộc thảo luận trên GitHub. Đánh giá phần mềm cung cấp cho bạn bức tranh tốt về những gì bạn sẽ mong đợi sau khi tải xuống, hành vi không mong muốn mà người dùng có thể đã quan sát thấy và các đề xuất của họ.
Các cuộc thảo luận trên GitHub cũng có thể giúp bạn biết những biện pháp chủ động mà bạn nên thực hiện sau/trong quá trình cài đặt phần mềm. Bạn cũng có thể nhận được một loạt các cân nhắc bảo mật khác không có trong tài liệu chính thức.
Bạn cũng nên chú ý đến các nhánh có nhiều cộng tác viên trên GitHub. Có thể có những thay đổi về giao thức đang diễn ra và việc bạn không thể theo kịp những cập nhật này sẽ ảnh hưởng đến bảo mật của bạn ra sao.