1. Cơ bản về Linux Security
1.1 File Permission và Ownership
File Permission và Ownership là một trong những yếu tố cơ bản để đảm bảo bảo mật trên hệ thống Linux. Mỗi tệp và thư mục trong Linux đều được gán quyền truy cập (permission) và sở hữu (ownership) để kiểm soát ai có thể truy cập và làm gì với tệp đó. Quyền truy cập bao gồm đọc (read – r), ghi (write – w), và thực thi (execute – x), được phân chia thành ba nhóm: chủ sở hữu (owner), nhóm (group), và người dùng khác (others). Mỗi tệp cũng có một chủ sở hữu và thuộc về một nhóm cụ thể, được xác định thông qua thông tin lưu trong hệ thống. Các quyền này có thể được thiết lập và quản lý bằng các lệnh như chmod
để thay đổi quyền, chown
để thay đổi chủ sở hữu, và chgrp
để thay đổi nhóm. Bằng cách cấu hình đúng quyền và sở hữu, hệ thống Linux hạn chế các truy cập trái phép, bảo vệ dữ liệu khỏi các hành động không mong muốn, đồng thời giảm thiểu rủi ro bảo mật.
1.2 User and Group Management
- Phân loại người dùng: root và regular user
- Thông tin người dùng: lưu trữ trong /etc/passwd, bao gồm username, id, home directory và shell
1.3 Basic Networking
- TCP/IP model và một số gai thức thường gặp như: HTTP, HTTPS, SSH…
- Ports và Services: ports hoạt động như thế nào trong quá trình network communication và service được liên kết với ports như thế nào
- Network File Sharing và Services: chia sẻ thư mục qua mạng trên linux
- DNS (Domain Name System):
- Cách DNS làm việc: Mapping giữa name và IP address được gọi quá trình DNS resolution, hệ thống phân cấp DNS
- Cấu hình DNS: cấu hình cho DNS resolvers và local DNS resolution
- Network File Transfer và Remote Access:
- SCP (Secure Copy)
- rsync: file syncing: cách sử dụng rsync để truyền file và đồng bộ hóa chúng
- Virtual Network:
- VPNs (Virtual Private Network): các giao thức của VPN như OpenVPN, setup một VPN server/client trên Linux
- Bridging và NAT (Network Address Translation): cách để kết nối các bidge network interfaces và cách NAT hoạt động để cho phép nhiều thiết bị chia sẻ cùng một IP address
1.4 Software Management
Đảm bảo system luôn được cập nhật, quản lí những phần mềm được cài đặt và đảm bảo chỉ những phần mềm tin cậy được phép chạy
- Hệ thống quản lí packages: APT (Advanced Package Tool), YUM/DNF dùng cho các phân phối của Red Hat-based như CentOS, Pacman dùng trong Arch linux, …
- Cập nhật phần mềm
- Xác thực nguồn gốc của phần mềm:
- Package Signing: cách hoạt động của chữ ký và cách xác thực package bằng cách sử dụng GPG keys
- Xác thực tính toàn vẹn của Package: kiểm tra tính toàn vẹn của package trước khi installed
- Quản lý Software Dependencies: cách package managers xử lí những dependencies và cách giải quyết các conflicts và tránh dependency hell
2. Các kỹ thuật và công nghệ liên quan đến Linux Security
2.1 SELinux/ AppArmor
Đây là hai modules Linux Securrity phổ biến cung cấp dịch vụ MAC (Mandatory Access Control) để nâng cao hiệu quả bảo mật cho Linux system
- SELinux: là kiến trúc bảo mật được tích hợp trong Linux kernel kiểm soát cách chính sách truy cập
- Basic concepts SELinux: Security context, SELinux modes (enforcing, permissive và disabled), SELinux Policies
- Managing SELinux
- AppArrmor: cũng là một module security cung cấp một cách tiếp cận khác cho việc quản lí truy cập. Khoogn giống vs SELinux, AppArrmor cấu hình dễ hơn và được ứng dụng trong các bản phân phối của Linuxx như Ubuntu, Debian
- Basic concepts: profiles: apparmor sử dụng profile để hạn chế khả năng của từng chương trình, profile có thể thực thi ở chế dộ enforced (profile hoạt động và các vi phạm chính sách bị chặn và ghi lại)và complain (cho phép vi phạm nhưng được ghi lại). Các laoij Profile Types: Network Profiles và Filesystem profile
- Quản lí AppArmor
2.2 Firewalls
Kiểm soát lưu lượng mạng đến và đi dựa trên các quy tắc bảo mật được xác định trước, hoạt đônjg như một rào chắn giữa mạng nội bộ đáng tin và mạng bên ngoài
- Basic Concept: Packet Filtering, Stateful và Stateless Firewalls, Filewall rules
- Linux Firewall Tools: iptables/nftables, UFW(Uncomplicated Firewall), Firewalld
2.3 Mã hóa
Mã hóa (Encryption) là kỹ thuật bảo mật quan trọng trong Linux nhằm đảm bảo rằng dữ liệu chỉ có thể được truy cập bởi những người được ủy quyền. Với dữ liệu lưu trữ (data at rest), Linux cung cấp các công cụ như LUKS (Linux Unified Key Setup) và dm-crypt để mã hóa toàn bộ ổ đĩa hoặc phân vùng, bảo vệ dữ liệu ngay cả khi thiết bị bị đánh cắp. Với dữ liệu truyền tải (data in transit), các giao thức như TLS (Transport Layer Security) và SSH (Secure Shell) đảm bảo rằng thông tin khi truyền qua mạng được mã hóa và không bị lộ trước các cuộc tấn công như nghe lén hay giả mạo. Sử dụng mã hóa không chỉ bảo vệ dữ liệu mà còn tăng cường sự tin cậy và tuân thủ các tiêu chuẩn bảo mật.
2.4 Logging và Monitoring
Logging và Monitoring là hai khía cạnh quan trọng giúp quản trị viên hệ thống giám sát và bảo vệ hệ thống Linux trước các mối đe dọa bảo mật. Logging ghi lại toàn bộ các hoạt động trên hệ thống, từ đăng nhập của người dùng, truy cập tệp, đến các sự kiện lỗi, giúp phát hiện và phân tích các hành vi bất thường hoặc tấn công tiềm tàng. Linux cung cấp các công cụ như syslog, journalctl, và logrotate để quản lý và lưu trữ nhật ký hiệu quả. Monitoring tập trung vào việc giám sát thời gian thực, sử dụng các công cụ như Nagios, Prometheus, hoặc ELK Stack để theo dõi hiệu suất hệ thống, lưu lượng mạng và phát hiện các sự cố bảo mật. Kết hợp logging và monitoring giúp phát hiện sớm các vấn đề, đưa ra phản hồi nhanh chóng và duy trì tính ổn định, an toàn cho hệ thống.
3. Các tiêu chuẩn đánh giá độ bảo mật trong hệ điều hành
Trong lĩnh vực bảo mật hệ điều hành, các tiêu chuẩn và chứng nhận quốc tế như Tiêu chí chung (Common Criteria – CC) và FIPS 140-2 là những tiêu chuẩn phổ biến để đánh giá mức độ bảo mật của hệ điều hành.
3.1 Common Criteria (CC)
Common Criteria for Information Technology Security Evaluation (CC), thường được gọi là Common Criteria, là một tiêu chuẩn quốc tế (ISO/IEC 15408) cho việc đánh giá và chứng nhận các sản phẩm công nghệ thông tin về khía cạnh bảo mật.
Các yếu tố chính của Common Criteria:
- Mục đích: Mục tiêu chính của Common Criteria là cung cấp một khuôn khổ tiêu chuẩn để đánh giá, xác minh, và chứng nhận tính bảo mật của các sản phẩm công nghệ thông tin, giúp các tổ chức đánh giá mức độ bảo mật của sản phẩm trước khi triển khai.
- Cấu trúc đánh giá: Common Criteria phân chia quy trình đánh giá thành hai phần chính:
- Security Target (ST): Tài liệu mô tả chi tiết về các tính năng bảo mật mà sản phẩm hoặc hệ thống cần phải cung cấp và các giả định môi trường liên quan.
- Protection Profile (PP): Tài liệu xác định các yêu cầu bảo mật chung cho một loại sản phẩm hoặc công nghệ. Một Protection Profile có thể được sử dụng bởi nhiều sản phẩm. Thường do người dùng hoặc cộng đồng người dùng tạo ra, xác định các yêu cầu bảo mật cho một loại thiết bị bảo mật (ví dụ: smartcard được sử dụng để cung cấp chữ kí số hoặc firewall) có liên quan đến người dùng đó cho một mục đích cụ thể.
- Evaluation Assurance Levels (EALs): Common Criteria sử dụng các cấp độ EAL từ 1 đến 7 để chỉ định mức độ bảo đảm được cung cấp:
- EAL 1 (Chức năng được kiểm tra): Cấp độ cơ bản nhất, đòi hỏi kiểm tra các chức năng bảo mật cơ bản.
- EAL 2 (Cấu trúc được kiểm tra) : Yêu cầu kiểm tra kỹ lưỡng hơn và phân tích thiết kế sản phẩm.
- EAL 3 (Kiểm tra có hệ thống và thử nghiệm) : Đòi hỏi sự kiểm tra và thử nghiệm có hệ thống để xác minh thiết kế và thực hiện của sản phẩm.
- EAL 4 (Thiết kế được kiểm tra và thử nghiệm) : Yêu cầu đánh giá chi tiết hơn về thiết kế, bao gồm các kiểm tra chi tiết của các thành phần quan trọng.
- EAL 5 (Thiết kế được kiểm tra bán chính thức và kiểm tra chính thức) : Đòi hỏi sự kiểm tra sâu hơn nữa, tập trung vào việc chống lại các mối đe dọa có tay nghề cao.
- EAL 6 (Kiểm tra thiết kế bán chính thức và thử nghiệm chính thức) : Yêu cầu kiểm tra và xác nhận cao nhất, dành cho các sản phẩm bảo mật cấp quốc gia hoặc quân đội.
- EAL 7 (Kiểm tra thiết kế chính thức và thử nghiệm chính thức) : Cấp độ cao nhất, yêu cầu phân tích bảo mật chính thức và thử nghiệm đầy đủ tất cả các khía cạnh của thiết kế và thực hiện.
Các yếu tố quan trọng khi đánh giá độ bảo mật hệ thống Linux theo CC
- Cấu hình hệ thống: Cấu hình hệ thống Linux phải được thực hiện một cách an toàn, loại bỏ các dịch vụ không cần thiết và cập nhật các bản vá bảo mật thường xuyên.
- Quản lý người dùng: Quản lý người dùng và quyền truy cập một cách chặt chẽ, áp dụng chính sách mật khẩu mạnh.
- Hệ thống tệp: Áp dụng các cơ chế kiểm soát truy cập vào hệ thống tệp, mã hóa dữ liệu nhạy cảm.
- Mạng: Cấu hình tường lửa, hệ thống phát hiện xâm nhập và các biện pháp bảo vệ mạng khác.
- Các ứng dụng: Đảm bảo rằng các ứng dụng được cài đặt trên hệ thống là đáng tin cậy và được cập nhật thường xuyên.
3.2 FIPS 140-2
FIPS 140-2 (Federal Information Processing Standard 140-2) là một tiêu chuẩn của Chính phủ Hoa Kỳ quy định các yêu cầu về bảo mật cho các mô-đun mật mã học (cryptographic modules).
Các yếu tố chính của FIPS 140-2:
- Mục đích : FIPS 140-2 xác định các yêu cầu bảo mật cho các mô-đun mật mã học, được sử dụng để bảo vệ thông tin nhạy cảm trong các hệ thống công nghệ thông tin, bao gồm các hệ thống của Chính phủ Liên bang Hoa Kỳ và các tổ chức yêu cầu tuân thủ theo tiêu chuẩn này.
- Các cấp độ bảo mật : FIPS 140-2 xác định bốn cấp độ bảo mật từ 1 đến 4, với các yêu cầu bảo mật tăng dần:
– Level 1 (Cấp độ 1) : Yêu cầu thấp nhất, chỉ yêu cầu sử dụng một thuật toán mật mã học đã được phê duyệt. Không có yêu cầu đặc biệt về phần cứng hay phần mềm.
– Level 2 (Cấp độ 2) : Thêm yêu cầu về cơ chế bảo vệ vật lý để chống lại các truy cập không được phép. Các mô-đun phải cung cấp sự bảo vệ xâm nhập (tamper-evident).
– Level 3 (Cấp độ 3) : Yêu cầu bảo vệ chống xâm nhập vật lý và logic mạnh hơn. Các mô-đun phải chống lại các xâm nhập không được phép một cách chủ động (tamper-resistant) và bảo vệ thông tin mật mã khi chúng đang được xử lý.
– Level 4 (Cấp độ 4) : Yêu cầu cao nhất, cung cấp sự bảo vệ tối đa trước các tấn công vật lý và môi trường, như nhiệt độ, điện từ, và xung điện từ. Thiết kế phải ngăn chặn việc trích xuất thông tin mật mã từ các mô-đun ngay cả khi bị phá hủy.
- Chứng nhận : Để đạt được chứng nhận FIPS 140-2, các mô-đun mật mã học phải được kiểm tra và xác nhận bởi các phòng thử nghiệm được phê duyệt bởi Chương trình chứng nhận mô-đun mật mã (Cryptographic Module Validation Program – CMVP) do Viện Tiêu chuẩn và Công nghệ Quốc gia (National Institute of Standards and Technology – NIST) và Trung tâm An ninh Truyền thông Canada (Communications Security Establishment – CSE) điều hành.
Áp dụng FIPS 140-2 cho hệ thống Linux
Mặc dù FIPS 140-2 chủ yếu được thiết kế cho các mô-đun mật mã, nhưng các nguyên tắc của nó có thể được áp dụng để đánh giá độ bảo mật của một hệ thống Linux. Dưới đây là một số cách tiếp cận:
- Đánh giá các mô-đun mật mã: Đánh giá xem các mô-đun mật mã được sử dụng trong hệ thống Linux có tuân thủ FIPS 140-2 hay không.
- Đánh giá các thành phần bảo mật khác: Đánh giá các thành phần bảo mật khác như tường lửa, hệ thống phát hiện xâm nhập, và các cơ chế xác thực để xem chúng có đáp ứng các yêu cầu bảo mật tương tự như FIPS 140-2 hay không.
- Xây dựng một hệ thống bảo mật toàn diện: Sử dụng FIPS 140-2 như một khung tham chiếu để xây dựng một hệ thống bảo mật toàn diện cho hệ thống Linux.
Common Criteria tập trung vào việc đánh giá tổng thể các sản phẩm công nghệ thông tin với nhiều cấp độ bảo mật và phương pháp đánh giá chi tiết, phù hợp cho việc đánh giá các hệ điều hành và phần mềm. FIPS 140-2 chủ yếu liên quan đến bảo mật mật mã học và đảm bảo rằng các mô-đun mật mã học đáp ứng các yêu cầu bảo mật nghiêm ngặt, được sử dụng rộng rãi trong môi trường chính phủ và các tổ chức yêu cầu tuân thủ các tiêu chuẩn bảo mật cao.
3.3 Nên sử dụng tiêu chuẩn đánh giá chung CC hay FIPS 140-2
Việc lựa chọn giữa tiêu chuẩn Common Criteria (CC) và FIPS 140-2 để đánh giá bảo mật hệ thống Linux phụ thuộc rất nhiều vào mục tiêu cụ thể, yêu cầu của tổ chức và phạm vi hệ thống cần đánh giá.
Lựa chọn CC làm tiêu chuẩn đánh giá khi:
- Đánh giá toàn diện: Nếu muốn có một đánh giá toàn diện về bảo mật của toàn bộ hệ thống Linux, bao gồm cả các thành phần phần cứng, phần mềm và quy trình.
- Tuân thủ các quy định quốc tế: Nếu tổ chức cần tuân thủ các quy định bảo mật quốc tế, đặc biệt là ở châu Âu.
- Cần một đánh giá linh hoạt: Nếu muốn tùy chỉnh quá trình đánh giá để phù hợp với các yêu cầu cụ thể của tổ chức.
Lựa chọn FIPS 140-2 khi:
- Tập trung vào mật mã: Nếu muốn đảm bảo rằng các mô-đun mật mã trong hệ thống Linux được triển khai một cách an toàn và tuân thủ các tiêu chuẩn quốc tế.
- Tuân thủ các quy định của Hoa Kỳ: Nếu tổ chức cần tuân thủ các quy định bảo mật của Hoa Kỳ.
- Cần một tiêu chuẩn rõ ràng và cụ thể: Nếu muốn có một tiêu chuẩn đánh giá rõ ràng và cụ thể cho các mô-đun mật mã.
Tóm lại, một hệ thống an toàn thì cần phải đảm bảo được:
Quản lý người dùng và quyền truy cập:
- Kiểm tra cách hệ thống quản lý người dùng và nhóm, bao gồm các quyền truy cập được gán cho từng người dùng.
- Đảm bảo rằng các tài khoản người dùng không cần thiết hoặc mặc định đã bị vô hiệu hóa.
- Sử dụng chính sách mật khẩu mạnh mẽ, bao gồm độ dài tối thiểu, độ phức tạp, và yêu cầu thay đổi mật khẩu định kỳ.
Cấu hình hệ thống:
- Xác minh rằng hệ thống không chạy các dịch vụ không cần thiết.
- Đảm bảo rằng cấu hình của hệ điều hành, dịch vụ, và ứng dụng đều được tối ưu hóa cho bảo mật, như việc vô hiệu hóa SSH root login, thiết lập tường lửa, và sử dụng SELinux hoặc AppArmor để tăng cường bảo mật.
Quản lý bản vá và cập nhật:
- Đảm bảo rằng hệ thống luôn được cập nhật với các bản vá bảo mật mới nhất.
- Có quy trình để kiểm tra và cài đặt các bản cập nhật một cách thường xuyên.
Kiểm soát truy cập và xác thực:
- Sử dụng các phương thức xác thực mạnh như xác thực hai yếu tố (2FA).
- Áp dụng kiểm soát truy cập dựa trên vai trò (Role-Based Access Control – RBAC) hoặc các cơ chế kiểm soát truy cập tinh vi hơn.
Ghi log và giám sát:
- Đảm bảo hệ thống ghi lại tất cả các sự kiện quan trọng và các nỗ lực truy cập.
- Giám sát các log thường xuyên để phát hiện các hoạt động bất thường hoặc tiềm ẩn nguy cơ.
Mã hóa:
- Sử dụng mã hóa để bảo vệ dữ liệu ở cả trạng thái nghỉ (data at rest) và khi truyền tải (data in transit).
- Đảm bảo rằng các khóa mã hóa được quản lý một cách an toàn và chỉ có các người dùng hoặc dịch vụ được ủy quyền mới có quyền truy cập.
Kiểm tra và đánh giá bảo mật thường xuyên:
- Thực hiện kiểm tra bảo mật định kỳ như kiểm tra lỗ hổng, kiểm tra thâm nhập (penetration testing), và đánh giá cấu hình.
- Sử dụng các công cụ bảo mật như Lynis, OpenVAS, hoặc Nessus để kiểm tra hệ thống.
Chính sách bảo mật và nhận thức của người dùng:
- Đảm bảo rằng có các chính sách bảo mật rõ ràng và tất cả người dùng đều được đào tạo để nhận thức về bảo mật.
- Khuyến khích người dùng báo cáo các sự cố bảo mật tiềm tàng và tuân thủ các quy tắc bảo mật.