Đề tài “Nghiên cứu phương pháp tự động hoá để thiết lập máy chủ Web an toàn dựa trên tiêu chuẩn CIS Benchmark” tập trung vào việc nghiên cứu triển khai hệ thống tự động hóa xây dựng một máy chủ web an toàn theo tiêu chuẩn CIS benchmark giúp cho cơ quan tổ chức và doanh nghiệp trong việc đảm bảo an toàn hệ thống máy chủ web phục vụ công việc cơ quan tổ chức và kinh doanh của doanh nghiệp một cách an toàn, nhanh chóng và hiệu quả chống tấn công từ đối tượng có ý đồ xấu
Tổng quan về điện toán đám mây, hệ thống tự động hóa
Điện toán đám mây
1.1.1 Khái niệm Điện toán đám mây (Cloud Computing) là mô hình máy tính dựa trên nền tảng phát triển của Internet Điện toán đám mây là sự nâng cấp từ mô hình máy chủ mainframe sang mô hình Client - Server Cụ thể, người dùng sẽ không còn phải có các kiến thức về chuyên môn để điều khiển các công nghệ, máy móc và cơ sở hạ tầng, mà các chuyên gia trong đám mây của các nhà cung cấp đám mây sẽ giúp thực hiện điều đó Thuật ngữ đám mây ở đây là lối nói ẩn dụ chỉ mạng Internet (dựa vào cách được bố trí của nó trong sơ đồ mạng máy tính) ám chỉ độ phức tạp của các cơ sở hạ tầng chứa trong nó Ở mô hình điện toán này, mọi nguồn tài nguyên liên quan đến công nghệ thông tin đều được cung cấp dưới dạng các dịch vụ, cho phép người sử dụng truy cập mà không cần phải có các kiến thức, kinh nghiệm về công nghệ đó, cũng như không cần quan tâm đến các cơ sở hạ tầng phục vụ công nghệ đó Ví dụ nếu một website được chứa trên một máy chủ, người dùng phải lựa chọn hệ điều hành để cài đặt (Linux/Windows/Mac), tiến hành các thiết lập để máy chủ và website có thể hoạt động Tuy nhiên, nếu trang web được chứa trên đám mây, người dùng sẽ không cần phải thực hiện thêm bất cứ điều gì khác Điều này cũng đảm bảo tải ở mức tối đa.
Mô hình điện toán đám mây cho phép truy cập các dịch vụ, tài nguyên, dữ liệu và phần mềm từ xa thông qua Internet Tất cả thông tin này được lưu trữ và xử lý trên các máy chủ của nhà cung cấp dịch vụ, trong khi người dùng tương tác với ứng dụng thông qua trình duyệt Ứng dụng điện toán đám mây đơn giản là các ứng dụng trực tuyến, giúp người dùng dễ dàng sử dụng mà không cần cài đặt phần mềm trên máy tính cá nhân.
1.1.2 Ưu điểm của điện toán dám mây
Điện toán đám mây cho phép triển khai ứng dụng nhanh chóng mà không cần thực hiện các bước phức tạp như mua sắm thiết bị hay cài đặt phần mềm, giúp người dùng tập trung vào phát triển và triển khai ứng dụng Hơn nữa, công nghệ này cung cấp khả năng co giãn tài nguyên linh hoạt theo nhu cầu của từng ứng dụng, mang lại ưu thế vượt trội so với công nghệ ảo hóa truyền thống.
Sử dụng điện toán đám mây giúp giảm chi phí đầu tư cơ sở hạ tầng, cho phép người dùng tập trung nguồn lực vào phát triển nội dung và dịch vụ Điều này đặc biệt hữu ích cho những khách hàng không cần sử dụng hạ tầng lâu dài Bên cạnh đó, tính độc lập giữa thiết bị và vị trí giúp người dùng dễ dàng truy cập hệ thống từ bất kỳ đâu, trên bất kỳ nền tảng nào và từ bất kỳ thiết bị nào có kết nối Internet.
Việc cho thuê và chia sẻ tài nguyên giữa người dùng giúp giảm chi phí đầu tư hạ tầng Sự chia sẻ này không chỉ tiết kiệm chi phí mà còn cho phép tập trung cơ sở hạ tầng để giải quyết các bài toán lớn một cách hiệu quả hơn, so với việc đầu tư hệ thống máy chủ từ đầu.
Khả năng chịu tải nâng cao của điện toán đám mây cho phép mở rộng tài nguyên tính toán một cách linh hoạt chỉ với vài cú nhấp chuột hoặc tự động hóa Độ tin cậy của dịch vụ cũng được đảm bảo nhờ vào các điều khoản chất lượng dịch vụ cao trong hợp đồng sử dụng So với hệ thống tự triển khai, dịch vụ đám mây thường ổn định hơn nhờ sự quản lý và bảo trì bởi đội ngũ chuyên gia giàu kinh nghiệm Hơn nữa, với kinh nghiệm xử lý các sự cố trên hệ thống lớn, quá trình khôi phục sau sự cố diễn ra nhanh chóng và hiệu quả.
1.1.3 Nhược điểm của điện toán đám mây
Các công cụ giám sát và quản lý hiện tại vẫn chưa hoàn thiện và khả năng giao tiếp với các đám mây còn hạn chế Tuy nhiên, các thông báo gần đây từ BMC, CA, và Novell cho thấy rằng các ứng dụng quản lý trung tâm dữ liệu đang được cải tiến để cung cấp khả năng kiểm soát tốt hơn đối với dữ liệu trong điện toán đám mây, đặc biệt là với Amazon EC2 và các dịch vụ đám mây khác.
Chuẩn hóa đám mây đang trong quá trình phát triển với mục tiêu thống nhất giao tiếp và thiết kế giữa các nền tảng khác nhau Hiện tại, mỗi nền tảng cung cấp các giao diện quản lý và API khác nhau, gây khó khăn cho việc tương tác Các tổ chức như Distributed Management Task Force, Cloud Security Alliance và Open Cloud Consortium đang nỗ lực xây dựng các tiêu chuẩn liên quan đến quản lý tương thích, di chuyển dữ liệu, an ninh và các chức năng khác trong điện toán đám mây.
Tính sẵn sàng của đám mây là một ưu điểm lý thuyết, nhưng thực tế cho thấy nó không luôn được đảm bảo Hiện nay, chỉ một số ít nhà cung cấp dịch vụ cam kết về sự sẵn sàng và liên tục của dịch vụ, cũng như thời gian sửa chữa và phục hồi dữ liệu, điều này trở thành một trở ngại lớn trong việc áp dụng công nghệ đám mây.
Tính riêng tư trong điện toán đám mây là một vấn đề quan trọng, mặc dù nhiều hợp đồng giữa nhà cung cấp và người dùng cam kết bảo vệ dữ liệu khách hàng Hạ tầng an toàn thông tin cho điện toán đám mây vẫn đang trong quá trình nghiên cứu, điều này cho thấy sự cần thiết phải nâng cao các biện pháp bảo mật để đảm bảo dữ liệu luôn được an toàn và riêng tư.
Điện toán đám mây cung cấp dịch vụ theo yêu cầu, nhưng các gói dịch vụ thường được định nghĩa trước, buộc người dùng phải chọn từ các tùy chọn có sẵn dựa trên nhu cầu và khả năng của họ Hiện tại, việc tự cấu hình chi tiết các thông số máy ảo chưa khả thi, dẫn đến khả năng thích ứng dịch vụ với nhu cầu cụ thể của doanh nghiệp hạn chế hơn so với các trung tâm dữ liệu tự xây dựng, vốn được thiết kế để tối ưu hóa khả năng kinh doanh.
Khả năng tích hợp điện toán đám mây với hạ tầng thông tin hiện có của tổ chức là một thách thức lớn, vì chưa có mô hình và phương pháp cụ thể để thực hiện Hiện tại, các mô hình kết nối giữa đám mây riêng và đám mây thương mại vẫn đang trong quá trình nghiên cứu và phát triển.
1.1.4 Các mô hình điện toán đám mây
1.1.4.1 Đám mây công cộng (Public Cloud)
Mô hình đám mây công cộng là dịch vụ lưu trữ được cung cấp bởi bên thứ ba, cho phép người dùng truy cập và sử dụng rộng rãi Các đám mây này hoạt động ngoài tường lửa và không thuộc sở hữu của doanh nghiệp, mà được quản lý và lưu trữ bởi nhà cung cấp dịch vụ Một số ví dụ điển hình về đám mây công cộng bao gồm Google Drive, Dropbox và OneDrive.
Hình 1.2: Mô hình đám mây công cộng
Trong môi trường đám mây công cộng, hạ tầng, lưu trữ và máy chủ hoàn toàn do nhà cung cấp quản lý, giúp người dùng giảm bớt gánh nặng, rủi ro và chi phí liên quan đến đầu tư và vận hành hệ thống Bên cạnh đó, mô hình này còn mang lại lợi ích về khả năng co dãn tài nguyên linh hoạt, đáp ứng nhu cầu của người dùng một cách hiệu quả.
Đám mây công cộng có nhược điểm lớn về an ninh bảo mật, khiến người dùng không thể kiểm soát hoàn toàn dữ liệu của mình, vì điều này phụ thuộc vào nhà cung cấp dịch vụ Do đó, các doanh nghiệp coi trọng bảo mật thường không ưa chuộng việc sử dụng đám mây công cộng.
1.1.4.2 Đám mây riêng (Private Cloud)
Hệ thống tự động hóa (System automation)
Tự động hóa là công nghệ cho phép quy trình hoặc thủ tục được thực hiện mà không cần sự can thiệp của con người Nó sử dụng các hệ thống điều khiển để quản lý các thiết bị như máy móc, quy trình trong nhà máy, nồi hơi, lò xử lý nhiệt, và các ứng dụng khác, nhằm giảm thiểu sự can thiệp của con người trong hoạt động vận hành.
Hệ thống điều khiển tự động hóa là một giải pháp công nghệ tiên tiến, cho phép kiểm soát các quy trình với sự can thiệp tối thiểu của con người Nó có khả năng tự động khởi động, điều chỉnh và lập trình hành động để đạt được kết quả mong muốn, nâng cao hiệu quả và giảm thiểu sai sót trong quá trình sản xuất.
Tự động hóa CNTT là việc áp dụng hệ thống hướng dẫn để thực hiện các quy trình lặp đi lặp lại, thay thế cho công việc thủ công trong lĩnh vực CNTT Việc tự động hóa này không chỉ nâng cao năng suất và hiệu quả làm việc mà còn giúp giảm thiểu lỗi do con người gây ra.
1.2.2 Ưu điểm của hệ thống tự động hóa
Hệ thống tự động hóa giúp nhà máy hoạt động liên tục 24/7, nâng cao năng suất sản xuất một cách đáng kể suốt cả năm.
Hệ thống tự động hóa nâng cao mức độ an toàn bằng cách thay thế con người trong những môi trường nguy hiểm, như dưới nước, khu vực có lửa, cơ sở hạt nhân và không gian vũ trụ.
Tự động hóa giúp nâng cao chất lượng sản phẩm bằng cách giảm thiểu sai sót do con người gây ra, đồng thời đảm bảo rằng các sản phẩm được sản xuất có chất lượng đồng đều hơn.
Tự động hóa công nghiệp giúp giảm chi phí vận hành bằng cách giảm thiểu số lượng nhân công cần thiết để điều hành máy móc Điều này dẫn đến việc tiết kiệm các chi phí liên quan đến nhân sự như tiền lương, bảo hiểm y tế, lương nghỉ lễ, nghỉ ốm, tiền làm thêm giờ và lương hưu.
Việc tích hợp robot và hệ thống máy tính vào quy trình sản xuất giúp tăng tính linh hoạt, vì chúng có thể được lập trình để thực hiện các thao tác mới mà không cần đào tạo hay hướng dẫn nhân viên Điều này cho phép các nhà quản lý dễ dàng thêm bước mới vào quy trình mà không làm gián đoạn hoạt động sản xuất.
1.2.3 Nhược điểm của hệ thống tự động hóa
Hệ thống tự động điều khiển bằng máy tính và robot đang đối mặt với nhiều mối đe dọa an ninh Khi bị tấn công hoặc xâm nhập, các hệ thống này có thể gây ra sự gián đoạn trong sản xuất của nhà máy, dẫn đến những thiệt hại nghiêm trọng.
Vận hành hệ thống thiết bị phức tạp đòi hỏi chuyên môn sâu và hiểu biết kỹ lưỡng, từ lắp đặt, lập trình đến cài đặt thông số Chỉ có các chuyên gia mới có thể đảm bảo tính chính xác và an toàn trong quá trình này Bên cạnh đó, việc bảo trì và sửa chữa cũng cần được thực hiện một cách cẩn thận để duy trì hiệu suất hoạt động.
Chi phí đầu vào cao là một thách thức lớn khi doanh nghiệp chuyển từ sử dụng nhân công truyền thống sang dây chuyền sản xuất tự động Việc đầu tư vào công nghệ tự động hóa đòi hỏi một khoản chi phí ban đầu rất lớn Bên cạnh đó, doanh nghiệp cũng cần đầu tư vào việc đào tạo nhân viên để vận hành các thiết bị và máy móc hiện đại, phức tạp.
Các công cụ phổ biến trong tự động hóa hệ thống
Puppet là phần mềm quản lý cấu hình được phát triển bằng ngôn ngữ Ruby, phân phối theo giấy phép Apache 2.0 Phần mềm này có khả năng hoạt động trong hai chế độ: client-server và stand-alone.
Puppet, được phát triển bởi Luke Kanies, là một công cụ quản lý cấu hình mạnh mẽ Kanies, với hơn 20 năm kinh nghiệm làm việc với Unix và vai trò quản trị hệ thống, đã tạo ra Puppet dựa trên những hiểu biết và kinh nghiệm quý báu của mình trong lĩnh vực này.
Puppet cung cấp hai phiên bản: phiên bản mã nguồn mở (open source) và phiên bản doanh nghiệp (Enterprise) Phiên bản Enterprise đi kèm với bộ cài đặt tự động, giao diện quản lý web và dịch vụ hỗ trợ liên lạc.
Puppet có thể được dùng để quản lý cấu hình trên các nền tảng Unix (bao gồm cả Mac OS X), Linux và Microsoft Windows.
Mô hình hoạt động của Puppet gồm 3 thành phần:
Tầng triển khai (Deployment Layer)
Ngôn ngữ cấu hình và tầng trừu tượng tài nguyên
(Configuration language and Resource Abstraction Layer)
Tầng giao dịch (Transactional Layer)
1.3.1.2 Kiến trúc hệ thống của Puppet
Hình 1.9: Kiến trúc hệ thống của Puppet
Agent: thực hiện công việc mà Puppet Master yêu cầu.
Puppet Master: máy chủ trung tâm.
Facter: thu thập các thông tin cần thiết cho Puppet Master.
Catolog: một đồ thị về các tài nguyên của máy chủ được quản lý và các ràng buộc giữa chúng.
Reporting: các bản báo cáo.
Chef là một phần mềm quản lý cấu hình server, trong đó các cấu hình được gọi là "recipes" và được viết bằng Ruby cùng ngôn ngữ chuyên biệt (DSL) Chef có khả năng quản lý thiết lập cho một máy đơn lẻ cũng như toàn bộ hệ thống server của công ty.
Chef can be integrated into various cloud computing platforms such as Rackspace, Internap, Amazon EC2, Google Cloud Platform, OpenStack, SoftLayer, and Microsoft Azure, enabling the simultaneous configuration of multiple servers The key advantage of Chef lies in its automation capabilities, making it an essential tool for efficient server management.
1.3.2.2 Kiến trúc hệ thống của chef
Hình 1.10: Kiến trúc hệ thống của Chef
Chef Server: Trung tâm chứa dữ liệu cấu hình server
Chef Client: Nơi được cấu hình để chạy knife, nơi lưu trữ chef-repo
Chef-Repo: Nơi lưu trữ các đối tượng dữ liệu
Node: Host chaỵ Chef Client, có thể là web server, database server hoặc bất kỳ loại server nào.
Knife: một công cụ dòng lệnh cung cấp giao diện tương tác giữa chef-repo với máy chủ hoặc máy trạm.
Cookbook: Tập hợp các Recipes (nginx cookbook, postgresql cookbook). 1.3.3 Ansible
Ansible là công cụ tự động hóa mã nguồn mở được phát triển trên nền tảng Python, giúp tự động hóa việc cấu hình trên nhiều máy chủ một cách hiệu quả.
Ansible nổi bật hơn so với các công cụ tương tự nhờ vào tính dễ học và dễ tiếp cận Hơn nữa, cộng đồng người dùng của Ansible cũng lớn hơn, tạo điều kiện thuận lợi cho người mới bắt đầu.
Ansible chủ yếu sử dụng SSH để đăng nhập vào từng máy chủ và thay đổi cấu hình thiết bị theo các thiết lập đã được định nghĩa trước Hiện tại, Ansible không chỉ hỗ trợ SSH mà còn tích hợp nhiều API khác nhau, bao gồm cả WinRM.
Ansible không chỉ dùng cho Linux server mà còn dùng cho các thiết bị khác dùng SSH (Linux-based, Windows, switch, router, firewall, vmware, cloud…
1.3.3.2 Kiến trúc hệ thống của ansible
Hình 1.11: Kiến trúc hệ thống của ansible
Plugins: Ansible có rất nhiều các thành phần để chúng ta tích hợp thêm những thứ cần thiết
Inventory: Là file chứa thông tin các server cần quản lý File này thường nằm tại đường dẫn /etc/ansible/hosts.
Playbook: Là file chứa các task của Ansible được ghi dưới định dạng
YAML Máy controller sẽ đọc các task trong Playbook và đẩy các lệnh thực thi tương ứng bằng Python xuống các máy con.
Ansible sử dụng các module như là đơn vị thực thi lệnh, với hơn 2000 module có sẵn để thực hiện nhiều tác vụ khác nhau Ví dụ, module yum được sử dụng để cài đặt các gói phần mềm qua yum Ngoài ra, người dùng cũng có thể tự viết thêm các module tùy chỉnh theo nhu cầu của mình.
Tìm hiểu về tiêu chuẩn cis benchmarks cho máy chủ web
Tổng quan về tiêu chuẩn CIS
2.1.1 Giới thiệu về tiêu chuẩn CIS Center for Internet Security - CIS (Trung tâm An ninh Internet) là một tổ chức phi lợi nhuận tập trung vào việc cải thiện khả năng sẵn sàng và ứng phó với an ninh mạng của các tổ chức, doanh nghiệp Nhiệm vụ của tổ chức này là “xác định, phát triển, xác thực, thúc đẩy và duy trì các giải pháp thực tiễn tốt nhất cho phòng thủ mạng và xây dựng và dẫn dắt cộng đồng để tạo ra một môi trường tin cậy trong không gian mạng” Tổ chức có trụ sở chính tại East Greenbush, New York, với các thành viên là các tập đoàn lớn, các cơ quan chính phủ và các học viện.
CIS áp dụng mô hình nguồn cung ứng cộng đồng khép kín để xác định và tối ưu hóa các biện pháp bảo mật hiệu quả, với việc các cá nhân phát triển khuyến nghị được chia sẻ với cộng đồng và đánh giá qua quá trình ra quyết định đồng thuận Tại cấp quốc gia và quốc tế, CIS đóng vai trò quan trọng trong việc hình thành chính sách và quyết định bảo mật thông qua việc duy trì CIS Controls và CIS Benchmarks, cũng như quản lý Trung tâm Chia sẻ và Phân tích Thông tin Đa bang (MS-ISAC).
CIS nghiên cứu nhiều lĩnh vực như MS-ISAC, CIS Controls và CIS Benchmarks Thông qua các chương trình này, CIS hợp tác với các tổ chức trong học viện, chính phủ, khu vực tư nhân và cộng đồng nhằm nâng cao bảo mật trực tuyến Họ cung cấp các sản phẩm và dịch vụ giúp cải thiện hiệu quả và hiệu suất bảo mật cho các đối tượng này.
Multi-State Information Sharing and Analysis Center (MS-ISAC) là
Trung tâm giám sát và giảm thiểu mối đe dọa mạng, do CIS phối hợp với Văn phòng An ninh mạng và Truyền thông thuộc Bộ An ninh Nội địa Hoa Kỳ (DHS) điều hành, cung cấp hỗ trợ liên tục cho các chính quyền địa phương và tiểu bang MS-ISAC, được thành lập vào cuối năm 2002 và chính thức ra mắt vào tháng 1 năm 2003, do William F Pelgrin, khi đó là Giám đốc An ninh của bang New York, lãnh đạo.
Các mục tiêu chính của MS-ISAC được mô tả như sau:
Cung cấp chia sẻ thông tin hai chiều và cảnh báo sớm về các mối đe dọa an ninh mạng.
Cung cấp quy trình thu thập và phổ biến thông tin về sự cố an ninh mạng.
Nâng cao nhận thức về sự phụ thuộc lẫn nhau giữa hạ tầng mạng và hạ tầng vật lý, cũng như giữa các lĩnh vực khác nhau, là điều cần thiết để đảm bảo an toàn và hiệu quả cho hệ thống.
Phối hợp đào tạo và nâng cao nhận thức.
Đảm bảo rằng tất cả các bên cần thiết đều là đối tác hỗ trợ trong nỗ lực này.
CIS Controls hỗ trợ một mô hình phòng thủ chuyên sâu nhằm ngăn chặn và phát hiện phần mềm độc hại Một nghiên cứu tháng 5 năm 2017 cho thấy các tổ chức chỉ thành công 45% trong việc tuân thủ các tiêu chuẩn an ninh do Trung tâm An ninh Internet thiết lập, với hơn một nửa số vi phạm là nghiêm trọng Để giải quyết mối quan tâm về an toàn dữ liệu trên máy chủ ảo trong đám mây, CIS đã ra mắt CIS Hardened Images cho Amazon Web Services vào tháng 3 năm 2015, cung cấp Amazon Machine Images cho sáu hệ thống làm chuẩn CIS, bao gồm Microsoft Windows, Linux và Ubuntu Ngoài ra, CIS đã phát hành Companion Guides cho CIS Controls, với các khuyến nghị về hành động chống lại các cuộc tấn công an ninh mạng, và các hướng dẫn mới được cập nhật vào tháng 10 và tháng 12 năm 2015 Vào tháng 4 năm 2018, CIS giới thiệu phương pháp đánh giá rủi ro an toàn thông tin gọi là CIS RAM, dựa trên tiêu chuẩn DoCRA Council.
CIS Benchmarks là kết quả của sự hợp tác giữa Consensus Community và các thành viên CIS SecureSuite, bao gồm các chuyên gia bảo mật CNTT Consensus Community sử dụng kiến thức và kinh nghiệm của họ để hỗ trợ cộng đồng Internet toàn cầu Các thành viên CIS SecureSuite đến từ nhiều loại hình tổ chức khác nhau, như cơ quan chính phủ, trường cao đẳng, tổ chức phi lợi nhuận, chuyên gia tư vấn và kiểm toán CNTT, cùng với nhà cung cấp phần mềm bảo mật.
CIS Benchmarks và các công cụ miễn phí của CIS giúp nhân viên CNTT so sánh bảo mật hệ thống với tiêu chuẩn chung, thúc đẩy trách nhiệm bảo mật internet toàn cầu CIS cung cấp các công cụ đánh giá bảo mật, như CIS-CAT Pro, cho phép người dùng quét hệ thống và tạo báo cáo so sánh với các điểm chuẩn đã công bố Điều này khuyến khích người dùng cải thiện điểm số bảo mật, từ đó nâng cao an toàn cho hệ thống và internet Tiêu chuẩn chung của CIS dựa trên kiến thức từ các chuyên gia công nghệ, với sự đóng góp tình nguyện giúp giảm chi phí và tăng hiệu quả cho tổ chức.
2.1.2 Hạng mục cần đánh giá - kiểm định an toàn hệ thống
Các chuyên gia sẽ tiến hành đánh giá hệ thống, dịch vụ và máy chủ của tổ chức dựa trên tiêu chuẩn CIS Benchmarks nhằm kiểm tra mức độ tuân thủ các tiêu chuẩn bảo mật cho các hạng mục liên quan.
Kiểm tra các bảng cập nhật, vá lỗi và các phần mềm bảo mật.
Kiểm tra cấu hình tập tin hệ thống (Ext3, NTFS).
Kiểm tra các dịch vụ hệ điều hành.
Kiểm tra các dịch vụ đặc biệt.
Kiểm tra log và các dịch vụ theo dõi sự kiện hệ thống (auditing services).
Kiểm tra cấu hình mạng và tường lửa.
Kiểm tra vấn đề phân quyền truy cập hệ thống, xác thực.
Kiểm tra các tài khoản và các môi trường.
Kiểm tra các cấu hình cảnh báo về quyền.
Kiểm tra các vấn đề bảo trì hệ thống.
Kiểm tra cấp độ hệ điều hành.
Kiểm tra phân quyền tập tin hệ thống.
Kiểm tra các vấn đề chung liên quan đến cơ sở dữ liệu.
Kiểm tra quyền truy cập cơ sở dữ liệu.
Kiểm tra các cấu hình tùy chỉnh.
Kiểm tra các cấu hình SSL.
Kiểm tra các cấu hình sao lưu và phục hồi sau thảm họa.
Kiểm tra quá trình cài đặt máy chủ web.
Kiểm tra cấu hình hệ điều hành và quản lý truy cập.
Kiểm tra các cấu hình bảo mật thư mục lưu trữ mã nguồn web.
Kiểm tra các cấu hình xác thực và giải pháp mã hóa.
Kiểm tra các cấu hình SSL/TLS.
Kiểm tra các cấu hình logging.
Kiểm tra các cấu hình sao lưu hệ thống.
Kiểm tra các cấu hình truy cập từ xa và cập nhật nội dung mã nguồn.
Kiểm tra các yêu cầu truy cập thiết bị (AAA, Access rule, Banner rule, Password…).
Kiểm tra các yêu cầu quản trị thiết bị (Clock, Service, Log, NTP…).
Kiểm tra các yêu cầu truyền dẫn số liệu (Border routing, Neighbor authentication, Routing rule….).
2.1.3 Quy trình đánh giá - kiểm định an toàn hệ thống
Chuyên viên tiến hành đánh giá hệ thống mục tiêu thông qua các phương pháp tiêm nhiễm, thu thập thông tin mạng và khai thác các lỗ hổng bảo mật có khả năng tồn tại trong hệ thống mạng đó.
Quá trình thực hiện được chia thành 05 nhóm hạng mục chính: thu thập thông tin, quét hệ thống, khai thác tự động, khai thác thủ công và phân tích/báo cáo.
Thu thập thông tên miền, danh mục IP, hệ thống đăng nhập, hệ thống máy chủ….
Thu thập mô hình kinh doanh, thông tin email, DNS, rDNS
Thực hiện quét chủ động hệ thống mạng, máy chủ đã thu thập tại bước 01.
Quét IP, cổng dịch vụ, giao thức sử dụng.
Quét phiên bản sử dụng dịch vụ hệ thống.
Thực hiện khai thác các lỗ hổng tại hệ thống bằng công cụ tự động.
Thực hiện tấn công hệ thống mạng bên ngoài, bên trong hệ thống.
Thực hiện nghe lén chủ động các kết nối trong hệ thống.
Thực hiện Hijack các kết nối trong hệ thống.
Thực hiện khai thác vào dịch vụ chủ động.
Thực hiện phân tích các kết quả tự động và viết khai thác thủ công nếu cần thiết.
Kết hợp các phương pháp khai thác khác nhau tấn công sâu vào hệ thống.
2.1.3.5 Phân tích và báo cáo
Thực hiện ghi nhận toàn bộ quá trình thực hiện.
Thực hiện viết báo cáo tổng quát, phân tích mức độ an toàn hệ thống.
Một số tiêu chuẩn CIS Benchmarks trên hệ thống máy chủ web
2.2.1.1 Planning and Installation (Lập kế hoạch và cài đặt)
Đảm bảo danh sách kiểm tra lập kế hoạch cài đặt trước đã được triển khai
Đảm bảo máy chủ không phải là hệ thống đa dịch vụ.
Đảm bảo máy chủ Apache được cài đặt từ các Binary thích hợp.
2.2.1.2 Minimize Apache Modules (Tối giản mô-đun apache)
Đảm bảo mô-đun xác thực và ủy quyền cần thiết được kích hoạt.
Đảm bảo mô-đun cấu hình nhật ký được bật.
Đảm bảo rằng các mô-đun WebDAV đã bị vô hiệu hóa.
Đảm bảo mô-đun trạng thái bị vô hiệu hóa.
Đảm bảo mô-đun Autoindex bị vô hiệu hóa.
Đảm bảo rằng các mô-đun proxy bị vô hiệu hóa.
Đảm bảo mô-đun thư mục người dùng bị vô hiệu hóa.
Đảm bảo mô-đun thông tin bị vô hiệu hóa.
Đảm bảo rằng các mô-đun xác thực cơ bản và thông báo bị vô hiệu hóa
2.2.1.3 Principles, Permissions, and Ownership (Nguyên tắc, quyền và quyền sở hữu)
Đảm bảo máy chủ web Apache chạy với tư cách người dùng không phải root.
Đảm bảo tài khoản người dùng Apache không có tập tin shell không hợp lệ.
Đảm bảo tài khoản người dùng Apache đã bị khóa.
Đảm bảo các thư mục và tệp Apache được sở hữu bởi root.
Đảm bảo nhóm được đặt chính xác trên các thư mục Apache.
Đảm bảo quyền truy cập ghi khác trên các thư mục và tệp Apache là bị hạn chế.
Đảm bảo thư mục Core Dump được bảo mật.
Đảm bảo tệp Lock được bảo mật.
Đảm bảo tệp Pid được bảo mật
Đảm bảo tệp ScoreBoard được bảo mật.
Đảm bảo quyền truy cập ghi nhóm cho các thư mục và tệp Apache được hạn chế thích hợp.
Đảm bảo quyền truy cập ghi nhóm cho các thư mục gốc và tệp tin được hạn chế thích hợp.
Đảm bảo quyền truy cập vào các thư mục ghi ứng dụng có mục đích đặc biệt được hạn chế thích hợp.
2.2.1.4 Apache Access Control (Kiểm soát truy cập lên máy chủ Apache)
Đảm bảo quyền truy cập vào thư mục gốc hệ điều hành bị từ chối
Đảm bảo quyền truy cập thích hợp vào nội dung website được cho phép.
Đảm bảo OverRide bị vô hiệu hóa cho thư mục gốc hệ điều hành.
Đảm bảo OverRide bị tắt cho tất cả các thư mục.
2.2.1.5 Minimize Features, Content and Options (Giảm thiểu các tính năng, nội dung và tùy chọn)
Đảm bảo các tùy chọn cho Thư mục gốc hệ điều hành bị hạn chế.
Đảm bảo các tùy chọn cho thư mục gốc web bị hạn chế.
Đảm bảo các tùy chọn cho các thư mục khác được giảm thiểu.
Đảm bảo nội dung HTML mặc định bị xóa.
Đảm bảo rằng Tập lệnh printenv Nội dung CGI mặc định đã bị xóa.
Đảm bảo rằng Tập lệnh test-cgi Content test-cgi mặc định đã bị xóa.
Đảm bảo các phương thức yêu cầu HTTP bị hạn chế.
Đảm bảo rằng Phương thức HTTP TRACE bị vô hiệu hóa.
Đảm bảo các phiên bản giao thức HTTP cũ không được phép.
Đảm bảo quyền truy cập vào ht * Tệp bị hạn chế.
Đảm bảo quyền truy cập vào phần mở rộng tệp không thích hợp bị hạn chế
Đảm bảo các yêu cầu dựa trên địa chỉ IP không được phép.
Đảm bảo địa chỉ IP để lắng nghe các yêu cầu là Được chỉ định.
Đảm bảo khung trình duyệt bị hạn chế.
2.2.1.6 Operations - Logging, Monitoring and Maintenance (Hoạt động ghi nhật ký, giám sát và bảo trì)
Đảm bảo tên tệp nhật ký lỗi và mức độ nghiêm trọng cấu hình chính xác.
Đảm bảo rằng một thiết bị Syslog được định cấu hình để ghi nhật ký lỗi.
Đảm bảo nhật ký truy cập máy chủ được định cấu hình chính xác.
Đảm bảo lưu trữ và luân chyển nhật ký được định cấu hình chính xác.
Đảm bảo các bản vá lỗi có thể áp dụng được áp dụng.
Đảm bảo ModSecurity được cài đặt và kích hoạt.
Đảm bảo bộ quy tắc chính của ModSecurity OWASP được cài đặt và đã bật.
2.2.1.7 SSL/TLS Configuration (Cấu hình SSL/TLS)
Đảm bảo rằng mod_ssl hoặc mod_nss được cài đặt.
Đảm bảo rằng một chứng chỉ đáng tin cậy hợp lệ được cài đặt.
Đảm bảo khóa riêng của máy chủ được bảo vệ.
Đảm bảo các giao thức SSL yếu bị vô hiệu hóa.
Đảm bảo đã tắt mật mã SSL/TLS yếu.
Đảm bảo rằng SSL Renegotiation không được bật.
Đảm bảo rằng SSL Renegotiation không được bật.
Đảm bảo rằng mật mã SSL/TLS mức độ trung bình bị vô hiệu hóa.
Đảm bảo tất cả nội dung web được truy cập qua HTTPS.
Đảm bảo các Giao thức TLSv1.0 và TLSv1.1 bị vô hiệu hóa.
Đảm bảo OCSP Stapling được bật.
Đảm bảo bật chuyển truy cập an toàn khi thực hiện truy cập bằng HTTP.
Đảm bảo bộ mật mã cung cấp khi thực hiện chuyển tiếp đã bật.
2.2.1.8 Information Leakage (Rò rỉ thông tin)
Đảm bảo ServerTokens được đặt 'Prod' hoặc 'ProductOnly'.
Đảm bảo ServerSignature không được kích hoạt.
Đảm bảo tất cả nội dung Apache mặc định được xóa.
Đảm bảo các trường tiêu đề phản hồi ETag không bao gồm các Inode
2.2.1.9 Denial of Service Mitigations (Giảm nhẹ từ chối dịch vụ)
Đảm bảo TimeOut được đặt thành 10 hoặc ít hơn
Đảm bảo KeepAlive được bật
Đảm bảo MaxKeepAliveRequests được đặt giá trị 100 hoặc lớn hơn
Đảm bảo KeepAliveTimeout được đặt thành giá trị từ 15 trở xuống
Đảm bảo Timeout Limits cho tiêu đề yêu cầu được đặt giả trị 40 hoặc nhỏ hơn
Đảm bảo Timeout Limits cho nội dung yêu cầu được đặt giá trị 20 hoặc nhỏ hơn
2.2.1.10 Request Limits (Giới hạn thời gian yên cầu)
Đảm bảo chỉ thị LimitRequestLine được Đặt thành 512 hoặc thấp hơn.
Đảm bảo chỉ thị LimitRequestFields được đặt 100 hoặc thấp hơn.
Đảm bảo chỉ thị LimitRequestFieldsize được đặt 1024 hoặc thấp hơn.
Đảm bảo chỉ thị LimitRequestBody được đặt 102400 hoặc thấp hơn.
2.2.1.11 Enable SELinux to Restrict Apache Processes (Bật SELinux để hạn chế các tiến trình Apache)
Đảm bảo SELinux được kích hoạt ở chế độ thực thi.
Đảm bảo các tiến trình Apache chạy trong httpd_t được hạn chế.
Đảm bảo các httpd_t không ở chế độ cho phép.
Đảm bảo chỉ bật các Boolean SELinux cần thiết.
2.2.1.12 Enable AppArmor to Restrict Apache Processes (Bật AppArmor để hạn chế các quá trình Apache)
Đảm bảo AppArmor Framework được bật.
Đảm bảo cấu hình Apache AppArmor được cấu hình đúng cách.
Đảm bảo cấu hình Apache AppArmor ở chế độ thực thi.
Lưu ý: Farmework AppArmor chỉ có thể thiết lập trên phiên bản Ubuntu
2.2.2 CIS Benchmark trên máy chủ web apache Tomcat 9
2.2.2.1 Remove Extraneous Resources (Xóa tài nguyên không liên quan)
Xóa các tệp và thư mục không liên quan
Tắt các kết nối không được sử dụng
2.2.2.2 Limit Server Platform Information Leaks (Hạn chế rò rỉ thông tin máy chủ)
Thay đổi Chuỗi server.info được quảng cáo.
Thay đổi Chuỗi server.number được quảng cáo.
Thay đổi Ngày xây dựng máy chủ được quảng cáo.
Vô hiệu hóa X-Powered-By HTTP Header và đổi tên máy chủ.
Giá trị cho tất cả các trình kết nối.
Vô hiệu hóa ứng dụng khách đối mặt với Dấu vết ngăn xếp.
Tính năng TRACE được tắt.
Đảm bảo Sever Header được sửa đổi để ngăn chặn thông tin tiết lộ.
2.2.2.3 Protect the Shutdown Port (Bảo vệ chống tắt cổng trên máy chủ)
Đặt giá trị nondeterministic trong cấu hình cổng máy chủ.
Tắt cổng không sử dụng cho máy chủ.
2.2.2.4 Protect Tomcat Configurations (Bảo vệ cấu hình Tomcat)
Hạn chế quyền truy cập vào $CATALINA_HOME
Hạn chế quyền truy cập vào $CATALINA_BASE
Hạn chế quyền truy cập vào thư mục cấu hình Tomcat
Hạn chế quyền truy cập vào thư mục nhật ký Tomcat
Hạn chế quyền truy cập vào thư mục tạm thời của Tomcat
Hạn chế quyền truy cập vào thư mục mã nhị phân Tomcat
Hạn chế quyền truy cập vào thư mục ứng dụng web Tomcat
Hạn chế quyền truy cập vào Tomcat catalina.properties
Hạn chế quyền truy cập vào Tomcat catalina.policy
Hạn chế quyền truy cập vào Tomcat context.xml
Hạn chế quyền truy cập vào Tomcat logging.properties
Hạn chế quyền truy cập vào Tomcat server.xml
Hạn chế quyền truy cập Tomcat tomcat-users.xml
Hạn chế quyền truy cập Tomcat web.xml
Hạn chế quyền truy cập vào jaspic-provider.xml
2.2.2.5 Configure Realms (Cấu hình Realms)
Sử dụng Realms an toàn
2.2.2.6 Connector Security (Bảo mật kết nối)
Thiết lập chứng chỉ xác người dùng.
Đảm bảo SSLEnabled được thiết lập giá trị ‘true’.
Đảm bảo chương trình được thiết lập chính xác.
Đảm bảo an toàn cấu hình SSL - enabled Connectors có giá trị ‘true’.
Đảm bảo 'sslProtocol' được cấu hình chính xác để bảo mật kết nối.
2.2.2.7 Establish and Protect Logging Facilities (Thiết lập và bảo vệ cơ sở ghi nhật ký)
Ghi nhật ký ứng dụng cụ thể.
Chỉ định trình xử lý tệp trong tệp logging.properties.
Đảm bảo className được đặt chính xác trong context.xml.
Đảm bảo thư mục trong context.xml là một vị trí an toàn.
Đảm bảo mẫu trong context.xml là chính xác.
Đảm bảo thư mục trong logging.properties là một vị trí an toàn.
2.2.2.8 Configure Catalina Policy (Cấu hình chính sách Catalina)
Hạn chế quyền truy cập thời gian chạy đối với các gói nhạy cảm.
2.2.2.9 Application Deployment (Triển khai ứng dụng)
Khởi động Tomcat với trình quản lý bảo mật.
Tắt tự động triển khai ứng dụng.
Tắt triển khai khi khởi động ứng dụng.
2.2.2.10 Miscellaneous Configuration Settings (Cài đặt cấu hình khác)
Đảm bảo thư mục nội dung Web nằm trên một phân vùng riêng biệt trong tệp hệ thống Tomcat.
Hạn chế quyền truy cập vào ứng dụng quản trị web.
Hạn chế ứng dụng trình quản lý.
Buộc SSL khi truy cập ứng dụng trình quản lý.
Đổi tên ứng dụng trình quản lý.
Cho phép tuân thủ Servlet nghiêm ngặt.
Tắt tính năng tái chế mặt tiền phiên.
Không cho phép thêm dấu phân cách đường dẫn.
Định cấu hình kết nối Timeout.
Buộc SSL cho tất cả các ứng dụng.
Không cho phép liên kết tượng trưng.
Không chạy các ứng dụng dưới dạng đặc quyền.
Không cho phép các yêu cầu ngữ cảnh chéo
2.2.3 CIS Benchmark trên máy chủ web Nginx
2.2.3.1 Initial Setup (Cấu hình ban đầu)
Cài đặt: o Đảm bảo NGINX được cài đặt. o Đảm bảo NGINX được cài đặt từ nguồn.
Để định cấu hình cập nhật phần mềm, trước tiên cần đảm bảo rằng kho lưu trữ của trình quản lý gói đã được cấu hình chính xác Sau đó, hãy kiểm tra và cài đặt phiên bản phần mềm mới nhất để đảm bảo hệ thống hoạt động hiệu quả.
2.2.3.2 Basic Configuration (Cấu hình cơ bản)
Để tối ưu hóa NGINX, cần giảm thiểu các mô-đun bằng cách chỉ cài đặt những mô-đun cần thiết, đồng thời đảm bảo rằng mô-đun HTTP WebDAV không được cài đặt Ngoài ra, cần vô hiệu hóa các mô-đun có chức năng gzip và mô-đun autoindex để nâng cao hiệu suất và bảo mật cho server.
Để bảo mật tài khoản NGINX, cần đảm bảo rằng NGINX được chạy bằng tài khoản dịch vụ an toàn, tài khoản dịch vụ này phải được khóa và không chứa các tập tin thực thi không hợp lệ.
Để đảm bảo an toàn cho NGINX, cần đảm bảo rằng các thư mục và tệp thuộc sở hữu của người chủ, quyền truy cập vào chúng bị hạn chế, tệp ID quy trình NGINX (PID) được bảo mật, và thư mục kết xuất bộ nhớ cũng phải được bảo vệ an toàn.
Để cấu hình mạng hiệu quả, cần đảm bảo rằng NGINX chỉ lắng nghe các kết nối trên các cổng được ủy quyền, đồng thời từ chối các yêu cầu với tên máy chủ không xác định Thời gian chờ keepalive_time nên được thiết lập là 10 giây hoặc ít hơn, nhưng không được đặt thành 0 Ngoài ra, send_timeout cũng cần được cấu hình ở mức 10 giây hoặc ít hơn, tránh giá trị bằng 0.
Để bảo mật thông tin, cần đảm bảo rằng chỉ thị server_tokens được thiết lập là 'off', đồng thời không để lỗi mặc định và các trang index.html tham chiếu NGINX Ngoài ra, việc phân phát tệp ẩn cũng phải được vô hiệu hóa và proxy ngược NGINX không được phép kích hoạt tiết lộ thông tin.
2.2.3.3 Logging (Cấu hình nhật ký)
Đảm bảo rằng ghi nhật ký chi tiết được bật.
Đảm bảo rằng ghi nhật ký truy cập được bật.
Đảm bảo rằng ghi nhật ký lỗi được bật và thiết lập hiển thị thông tin cấp độ nhật ký.
Đảm bảo các tệp nhật ký được xoay vòng.
Đảm bảo nhật ký lỗi được gửi đến máy chủ nhật ký hệ thống từ xa.
Đảm bảo nhật ký truy cập được gửi đến máy chủ nhật ký từ xa.
Đảm bảo proxy bỏ qua thông tin IP nguồn.
Để cấu hình TLS/SSL hiệu quả, cần đảm bảo rằng HTTP được chuyển hướng đến HTTPS và cài đặt chứng chỉ tin cậy cùng chuỗi tin cậy Hạn chế quyền truy cập vào khóa cá nhân, sử dụng các giao thức TLS hiện đại và vô hiệu hóa mật mã yếu Cần sử dụng các thông số Diffie-Hellman tùy chỉnh, kích hoạt Giao thức Trạng thái Chứng chỉ Trực tuyến (OCSP) và bật chuyển tiếp HTTP sang trạng thái bảo mật (HSTS) Hơn nữa, nên bật tính năng ghim khóa công khai HTTP, xác thực lưu lượng máy chủ với chứng chỉ phía khách và đảm bảo chứng chỉ cho lưu lượng máy chủ được tin cậy Đảm bảo miền của bạn được tải trước, tắt tính năng khôi phục phiên để kích hoạt tính năng hoàn hảo chuyển tiếp an ninh và sử dụng HTTP/2.0.
2.2.3.5 Request Filtering and Restrictions (Yêu cầu lọc và hạn chế)
Kiểm soát truy cập là một yếu tố quan trọng trong bảo mật mạng, bao gồm việc thiết lập bộ lọc cho phép và từ chối nhằm hạn chế quyền truy cập vào các địa chỉ IP cụ thể Đồng thời, cần đảm bảo chỉ cho phép các phương thức HTTP được liệt kê trong danh sách trắng để tăng cường an ninh cho hệ thống.
Để đảm bảo hiệu suất tối ưu cho máy chủ, cần thiết lập các giới hạn yêu cầu như sau: xác định chính xác thời gian chờ cho việc đọc tiêu đề và nội dung, thiết lập kích thước tối đa cho nội dung yêu cầu, quy định kích thước bộ đệm tối đa cho các URI, giới hạn số lượng kết nối trên mỗi địa chỉ IP, và thiết lập các giới hạn tốc độ theo địa chỉ IP.
To enhance browser security, it is essential to configure and activate the X-Frame-Options header, ensuring protection against clickjacking attacks Additionally, the X-Content-Type-Options header must be properly set and enabled to prevent MIME type sniffing Activating and correctly configuring the X-XSS-Protection header is crucial for defending against cross-site scripting attacks Furthermore, implementing a well-defined Content Security Policy (CSP) is necessary to mitigate various security risks Lastly, it is important to enable and correctly configure the Referrer Policy to control the information sent with HTTP requests.
2.2.3.6 Mandatory Access Control (Kiểm soát truy cập bắt buộc)
Kiểm soát truy cập bắt buộc (MAC) là một biện pháp bảo mật quan trọng, cung cấp thêm một lớp giới hạn truy cập trên hệ thống đã có kiểm soát truy cập tùy ý Bằng cách kiểm soát cách thức truy cập vào các tệp và tài nguyên, MAC giúp giảm thiểu tác động từ các lỗ hổng bên trong hệ thống, đồng thời làm giảm nguy cơ bị tấn công.
Kiểm soát truy cập bắt buộc (MAC) hạn chế quyền truy cập vào ứng dụng và daemon trên hệ thống, nhưng việc cấu hình MAC có thể phức tạp và dễ dẫn đến lỗi Nếu chính sách MAC không được thiết lập đúng cách, người dùng hợp pháp có thể bị chặn quyền truy cập Do đó, cần kiểm tra tệp Audit của hệ thống để xác định lưu lượng truy cập hợp pháp có thể đã bị chặn và điều chỉnh chính sách nếu cần thiết.
So sánh khi triển khai chính sách thủ công và tự động
Cách thức Tiêu chí so sánh
Thời gian thực hiện Nhanh chóng Mất nhiều thời gian
Số lượng thiết bị triển khai Nhiều Ít
Khả năng kiểm soát lỗi Dễ kiểm soát Dễ kiểm soát
Theo bảng so sánh, mặc dù cả hai trường hợp đều dễ dàng kiểm soát lỗi, nhưng tự động hóa mang lại năng suất công việc cao hơn so với phương pháp thủ công Điều này nhờ vào thời gian thực hiện nhanh chóng và khả năng triển khai nhiều thiết bị cùng lúc, từ đó tăng cường hiệu quả công việc.
Ứng dụng phương pháp tự động hóa sử dụng công nghệ
Công nghệ ansible trong tự động hóa
3.1.1 Vị trí Ansible trong hệ thống
Hình 3.1-3.2: Vị trí ansible và phương thức kết nối từ Ansible
Thường thì máy chủ ansible thuộc vùng mạng LAN, có thể kết nối tới các máy chủ khác thông qua giao thức SSH để điều khiển
Trong trường hợp máy chủ Ansible không nằm trong vùng mạng LAN, vẫn có thể điều khiển máy chủ từ xa thông qua việc xác thực bằng khóa bảo mật trong giao thức SSH.
3.1.2 Lý do nên sử dụng Ansible
Quản lý cấu hình ứng dụng trên nhiều OS hoặc thiết bị mạng tập trung cùng lúc.
Triển khai ứng dụng xuống nhiều OS hoặc thiết bị mạng cùng lúc nhanh chóng.
Tự động hoá các tác vụ mong muốn thông qua việc sử dụng ngôn ngữ kịch bản.
Tự động cấp phát cài đặt hạ tầng Công Nghệ Thông Tin nhanh chóng hiệu quả dễ dàng kiểm tra rà soát.
Provisioning: Khởi tạo máy ảo, container hàng loạt trên cloud dựa trên API - OpenStack, AWS, Google Cloud, Azure…
Configuration Management: Quản lý cấu hình tập trung các dịch vụ, không cần phải tốn công chỉnh sửa cấu hình trên từng server.
Application Deployment: Deploy ứng dụng hàng loạt, giúp quản lý hiệu quả vòng đời của ứng dụng từ giai đoạn dev cho đến production.
Quản lý an toàn thông tin và tuân thủ quy định là rất quan trọng, giúp đồng bộ hóa các chính sách trên nhiều sản phẩm và môi trường khác nhau Việc triển khai chính sách và cấu hình firewall hàng loạt trên nhiều server sẽ đảm bảo an ninh mạng hiệu quả và giảm thiểu rủi ro cho tổ chức.
Ansible miễn phí và là 1 opensource.
Ansible sử dụng giao thức kết nối điều khiển an toàn SSH.
Việc cài đặt không tốn nhiều tài nguyên.
Được phát triển bởi ngôn ngữ python Nên nếu bạn muốn tạo thêm module thì cũng sử dụng bằng python.
Dễ dàng cài đặt, sử dụng.
Các sciprt thường được dùng định dạng YAML.
Và Ansible có một cộng đồng tương tác lớn.
3.1.3 Đối tượng sử dụng Ansible
System admin: những người quản trị, triển khai cài đặt các hệ thống ứng dụng trên môi trường Linux, Windows,…
Developer: những người chuyên phát triển các ứng dụng, hay phải cài đặt ở mức cơ bản cho môi trường cho các sản phẩm tạo ra.
DevOps: những người có cả vai của lập trình viên và system admin. 3.1.4 Các thành phần trong Ansible
Có các thành phần sau:
Playbooks: Là nơi khai báo kịch bản chạy cho server.
Tasks: Là những nhiệm vụ trong Playbooks trên.
Inventory: Nơi khai báo địa chỉ server cần được cài đặt.
Modules: Những chức năng hỗ trợ cho việc thực thi task.
Variables: Là nơi chưa biến.
Hình 3.5: Ví dụ về Variables
Roles: Nơi sẽ phân chia khu vực với nhiệm vụ riêng biệt
Hình 3.6: Ví dụ về Roles
3.1.5 Hướng dẫn viết Playbook trên Asible
Các Playbook là các tập tin định dạng YAML chứa một loạt các mô tả chỉ thị nhằm mục đích tự động hóa trên server từ xa.
Hình 3.7: Ví dụ một playbook trên ansible
YAML sử dụng thụt đầu dòng để xác định cấu trúc dữ liệu, vì vậy cần chú ý cẩn thận khi viết Playbook và đặc biệt là khi sao chép nội dung.
3.1.5.2 Viết Playbook a) Làm việc với các biến
Sử dụng section có tên là vars của Playbook để xác định các biến:
Ví dụ dưới đây, định nghĩa biến package - biến mà sau này được sử dụng bên trong các Task.
Hình 3.8: Ví dụ về biến khi viết Playbook
Biến package có phạm vi sử dụng trên toàn Playbook. b) Sử dụng vòng lặp
Sử dụng vòng lặp khi phải lặp lại cùng một task nhiều lần, chỉ khác giá trị đầu vào.
Để cài đặt 20 package khác nhau, bạn có thể tạo một vòng lặp bên trong một task bằng cách sử dụng with_items, kèm theo một mảng các giá trị Các giá trị này được truy xuất thông qua biến vòng lặp item.
Hình 3.9: Ví dụ về sử dụng vòng lặp trong Playbook
Có thể sử dụng kết hợp một biến mảng:
Hình 3.10: Ví dụ về sử dụng mảng trong Playbook c) Sử dụng các điều kiện (Conditionals)
Các điều kiện tự động quyết định việc thực hiện một task dựa trên biến hoặc đầu ra từ nguồn cụ thể, chẳng hạn như kết quả của một lệnh thực thi.
In the example illustrated in Figure 3.11, a conditional statement is used to execute a shutdown command based on the operating system of the client node By utilizing the Ansible special variable ansible_facts['distribution'], the script checks if the node is running CentOS; if so, it proceeds to shut down the system.
Hình 3.12: Ví dụ khác về mệnh đề điều kiện
Ví dụ trên là 3 Task:
Task 1: Chạy lệnh kiểm tra version của apache trên CentOS Nếu đã cài apache thì lệnh sẽ chạy bình thường; output và các giá trị trả về sẽ lưu vào biến http_installed.
Task 2: Kiểm tra xem lệnh ở task 1 có được thực thi thành công không thông qua việc kiểm tra biến http_installed Nếu thành công thì hiển thị nội dung của biến http_installed.
Hình 3.13: Màn hình hiển thị sau khi chạy task 1 và task 2
Task 3: Kiểm tra xem lệnh ở task 1 có được thực thi thành công không thông qua việc kiểm tra biến http_installed Nếu không thành công thì hiển thị nội dung
Hình 3.14: Màn hình hiển thị sau khi chạy task 3 d) Làm việc với các Template
Các template là công cụ hữu ích để thiết lập các tệp cấu hình, cho phép sử dụng biến và các tính năng khác, từ đó tăng tính linh hoạt và thuận tiện cho việc tái sử dụng Ansible áp dụng template engine Jinja2 để hỗ trợ quá trình này.
File index.html có nội dung như sau:
Heyyy, I’m {{ my_name }} Ở đây có sử dụng biến my_name
Cùng với đó có một playbook ở cùng thư mục chứa tệp tin index.html
Hình 3.15: Ví dụ về sử dụng Template trong Playbook
Sau khi chạy playbook trên node cài đặt Apache thu được kết quả
Hình 3.16: Kết quả khi sử dụng template
Có thể tái sử dụng tệp tin index với tên khác bằng cách thay đổi giá trị biến my_name Đồng thời, cần khai báo và kích hoạt các Handler để đảm bảo hoạt động hiệu quả.
Các handler được sử dụng để kích hoạt một trạng thái nào đó của service như restart hay stop
Các handler trông khá giống các task nhưng chỉ được thực thi khi được kích hoạt bởi một chỉ thị notify bên trong một task
Thường được khai báo như một mảng trong phần handlers của playbook nhưng cũng hoàn toàn có thể đặt trong các tệp riêng biệt
Hình 3.17: Ví dụ về Handler trong Playbook
3.1.6 Sử dụng Roles trong Ansible
Trong Ansible, Role là cơ chế giúp tách một playbook thành nhiều tệp, nhằm đơn giản hóa việc viết các playbook phức tạp và tăng khả năng tái sử dụng.
Role không chỉ đơn thuần là playbook, mà là một cấu trúc (framework) giúp phân chia playbook thành nhiều tệp khác nhau Mỗi role đóng vai trò như một thành phần độc lập, bao gồm nhiều biến (variables), tác vụ (tasks), tệp (files), mẫu (templates) và mô-đun (modules) bên dưới.
Việc tổ chức playbook theo vai trò giúp người dùng dễ dàng chia sẻ và tái sử dụng playbook với người khác Điều này đặc biệt quan trọng trong môi trường doanh nghiệp, nơi có hàng trăm đến hàng ngàn playbook, vì vai trò là phương pháp hiệu quả để quản lý chúng.
Ví dụ : 1 role đơn giản để cài đặt Prometheus
Trong folder /roles/alertmanger của trên máy Ansible Server
Hình 3.18: Cấu trúc cây thư mục một roles
Để Ansible nhận diện một role, ít nhất phải có một trong bảy thư mục cần thiết Nếu có những thư mục không cần thiết, bạn có thể loại bỏ chúng Các thư mục thường được sử dụng bao gồm tasks, vars, templates và files.
Tasks: Chứa danh sách các nhiệm vụ chính được thực thi trong role này.
Handlers: Chứa các handler, có thể được dùng trong role này hoặc các role khác.
Defaults: Chứa các biến được dùng default cho role này
Vars: Chứa thông tin các biến dùng trong role, biến trong vars sẽ override biến trong default
Files: Chứa các file cần dùng để deploy trong role này, cụ thể như file binary, file cài đặt…
Templates: Chứa các file template theo jinja format đuôi *.j2 (có thể là file config, file systemd…).
Các bước để viết 1 role trong ansible:
Tạo folder role trước, nếu chưa có Folder này phải có tên là roles
Tạo 1 folder trước một role cụ thể, ví dụ: prometheus
Tạo folder tasks để chứa playbook setup prometheus
Tạo folder vars để chứa các biến cần dùng trong khi setup prometheus
Tạo folder files để chứa các file cho role (file rpm, deb, file binary hoặc file cấu hình,…)
Tạo folder handlers để chứa các handler cần thiết
Khởi tạo máy chủ RHEL/ CentOS trên nền tảng GCP
Vào google gõ “google cloud” hoặc vào https://cloud.google.com
Ấn vào nút Try It Free
Hình 3.27: Đăng ký tài khoản
Chuyển sang phần đăng nhập giống đăng nhập gmail, nhập tài khoản gmail
Tại phần khai báo thông tin tích chọn Yes hết, sau đó ấn Agree and continue
Hình 3.28: Lựa chọn quốc gia và chấp nhập điều khoản
Nếu chưa có thông tin thì click vào hình icon sửa để bổ sung thông tin cho đầy đủ và nhập thông tin thẻ VISA hoặc Master card.
Hình 3.29: Bổ sung thông tin tài khoản đăng ký
Hình 3.30: Điền thông tin Visa hoặc Master card
Nhập xong phương thức thanh toán, sẽ bị trừ $1 trong tài khoản.
Để hoàn tất việc đăng ký, chọn tiếp Start my free trail Hệ thống sẽ gửi email xác nhận người dùng cần xác nhận email đó để có được 300$
Hình 3.31: Xác nhận đăng ký thành công
Kiểm tra tài khoản được nhận chưa vào Billing trên thanh menu để kiểm tra:
Hình 3.32: Kiểm tra tài khoản nhận được 300$
3.2.2 Tạo VPS RedHat/CentOS trên GCP
Trên Dashboard của GCP vào Compute Engine => VM Instances
Hình 3.33: Tạo máy ảo trên GCP
Khi cấu hình VPS, bạn cần chú ý một số thông số quan trọng Đầu tiên, hãy đặt tên cho hostname của VPS Tiếp theo, chọn zone cho VPS, có thể là EU, US hoặc Asia; lưu ý rằng VPS ở US thường có chi phí thấp nhất Về loại máy, bạn chỉ cần chọn CPU và RAM, với RAM 1GB là đủ cho một website cơ bản Đối với ổ đĩa khởi động, hãy chọn hệ điều hành CentOS 7 và sử dụng ổ SSD với dung lượng 20GB Cuối cùng, đừng quên cấu hình tường lửa để mở port HTTP và HTTPS.
VPS luôn, chọn Allow HTTP/HTTPS traffic.
Còn lại để mặc định:
Hình 3.34 - 3.35: Ví dụ về tạo một máy Centos
Kết quả khi tạo xong:
Hình 3.36: Kết quả sau khi tạo VPS
Cách 1: Truy cập trực tiếp trên trình duyệt browser
Hình 3.37: Truy cập VPS bằng browser
Cách 2: Truy cập sử dụng ssh-key o Đầu tiên chúng ta cần tạo SSH Key bằng Puttygen trước. o Mở Puttygen lên click vào nút Generate
Hình 3.38: Tạo key bằng puttygen
Sau khi tạo SSH Key, người dùng cần thêm thông tin vào phần Key Comment như sau: phần Key là Public Key mà bạn phải sao chép để sử dụng trên Google Cloud Trong Key Comment, thuynh240785 sẽ là tên người dùng truy cập VPS, trong khi Google sẽ sử dụng địa chỉ email làm tên người dùng, và phần còn lại sẽ được ghi sau dấu hai chấm.
@ là External IP của VPS. o Key passphrase: bạn có thể tạo để cho bảo mật hơn, trong demo mình không tạo passphrase.
Hình 3.39: Sau khi tạo xong key
Sau đó chúng ta lưu lại thành file private key tên là test.ppk
Tiếp theo Copy nguyên cái Public key vứt lên Google Cloud Vào
Metadata => SSH Keys => Edit => Add item
Hình 3.40-3.41: Quy trình add key vào GCP
Để truy cập VPS bằng ssh-key, cần sử dụng một phần mềm ssh-client ví dụ như: putty hoặc bitvise
Hình 3.42: Sử dụng Bitvise để thực hiện truy cập VPS
Xây dựng nền tảng website wordpress trên máy chủ RHEL/ CentOS
Bước 1: Trỏ IP VPS về domain o Mua domain free trên Freenom. o Tạo bản ghi DNS về domain mới mua.
Bước 2: Cài đặt LAMP (sử dụng quyền user root) o Cài đặt Apache: Để cài đặt, trên cửa sổ terminal gõ lệnh:
Cài xong, tiến hành khởi động lại service:
Bạn có thể check lại trang thái hoạt động của service bằng cách gõ:
Hình 3.43: Kết quả sau khi cài đặt apache
Kiểm tra trạng thái trên trình duyệt bằng cách gõ trên thanh url địa chỉ sau: http://
Hình 3.44: Truy cập kiểm tra máy chủ apache trên browsers o Cài đặt hệ quản lí cơ sở dữ liệu:
Trên thực tế với LAMP, có thể sử dụng mysql hoặc mariadb, phần này hướng dẫn cài đặt mariadb.
Trên cửa sổ terminal, tiến hành cài đặt mariadb:
# sudo yum -y install mariadb mariadb-server
Tiến hành khởi động mariadb service:
Cài lại mật khẩu mật khẩu cho quyền root của cơ sở dữ liệu:
# sudo mysql_secure_installation Ở bước này sẽ thiết lập một số cấu hình như 2 ảnh sau:
Hình 3.45-3.46: Cấu hình an toàn cho hệ quản trị CSDL
Sau khi thiết lập xong, kích hoạt mariadb để khởi động cùng hệ thống:
# systemctl enable mariadb o Cài đặt php
Cài đặt phiên bản 7x Thêm kho vào Remi CentOS:
# rpm -Uvh http://rpms.remirepo.net/enterprise/remi- release-7.rpm
Tiến hành cài đặt php Ở đây ta cần lưu ý về phiên bản cài đặt:
# yum-config-manager enable remi-php70
# yum -y install php php-opcache php-mysql
# yum-config-manager enable remi-php71
# yum -y install php php-opcache php-mysql
# yum-config-manager enable remi-php72
# yum -y install php php-opcache php-mysql
# yum-config-manager enable remi-php73
# yum -y install php php-opcache php-mysql
Sau khi cài đặt xong, thực hiện restart lại apache:
Tiến hành kiểm tra kết quả Ta thêm file sau: echo "" > /var/www/html/info.php
Sau đó restart lại apache: systemctl restart httpd
Vào trình duyệt, gõ trên thanh url địa chỉ sau: http:///info.php
Khi màn hình này xuất hiện như hình 3.55 là đã cài đặt xong php.
Hình 3.47: Kết quả kiểm tra sau khi cài PHP
Bước 3: Cài đặt mã nguồn WordPress (sử dụng user root) o Tạo cơ sở dữ liệu cho WordPress
Log in vào root (administrative) account của MySQL với lệnh:
After entering the password, the MySQL command line interface will appear You should then execute the following commands sequentially: `CREATE DATABASE wordpress;` and `CREATE USER 'wordpressuser'@'localhost' IDENTIFIED`.
BY ' password '; mysql> GRANT ALL PRIVILEGES ON wordpress * TO wordpressuser @localhost IDENTIFIED BY ' password '; mysql> FLUSH PRIVILEGES; mysql> exit
Lưu ý: Các giá trị bôi đậm cần thay thế bằng giá trị khác phù hợp o Cài WordPress:
# wget http://wordpress.org/latest.tar.gz
Giải nén file vừa tải về:
# tar xzvf latest.tar.gz
Copy về thư mục web:
# rsync -avP ~/wordpress/* /var/www/html/
Tạo thư mục lưu file upload:
# mkdir /var/www/html/wp-content/uploads
Phân quyền và chủ sở hữu:
# chown -R apache:apache /var/www/html/*
# chmod -R 755 /var/www/html/* o Cấu hình WordPress
Mở thư mục cài WordPress:
File cấu hình chính có tên là wp-config.php ta phải thực hiện lệnh tạo ra file này:
# mv wp-config-sample.php wp-config.php
Mở file wp-config.php:
Sử nội dung phần bôi đậm file này:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */ define('DB_NAME', 'wordpress');
/** MySQL database username */ define('DB_USER', 'wordpressuser');
/** MySQL database password */ define('DB_PASSWORD', 'password'); o Thực hiện truy cập domain trên browsers http://server_domain_name
Hình 3.48-3.50: Cài đặt wordpress trên browsers
Sử dụng Ansible để triển khai tự động tiêu chuẩn CIS xuống hệ thống webserver chạy wordpress trên nền tảng RHEL/CentOS
3.4.1 Xây dựng cấu trúc trong ansible để triển khai chính sách
Sử dụng phần mềm sublime text để tạo cấu trúc.
Thực hiện tạo cấu trúc tệp tin/thư mục cho thư mục CIS-webserver bao gồm có tệp tin host và main.yaml, thư mục roles.
Hình 3.51: Cấu trúc roles sử dụng để triển khai chính sách CIS Benchmark
Khai báo thông tin máy chủ trong file hosts
Hình 3.52: Nội dung tệp tin hosts của role CIS-webserver
Khai báo nội dung file main.yml chính để gọi đến roles CIS-webserver
Hình 3.53: Nội dung tệp tin main.yml chính của role CIS-websever
Nội dung chính sẽ nằm ở thư mục: files, handlers, tasks, vars
3.4.2 Tạo nội dung thư mục files trong role
Tạo các file cần được sửa đổi theo yêu cầu chính sách đảm bảo an toàn trong folder này: 00-base.conf, 00-dav.conf, httpd, logrotate.conf, welcome.conf.
Hình 3.54: Nội dung trong thư mục files của roles CIS-Webserver
3.4.3 Tạo nội dung thư mục tasks trong role
Thư mục này bao gồm tất cả các tệp tin YAML cần thiết để triển khai các module chính sách bảo mật cho Web server Apache, đặc biệt là cho nền tảng WordPress.
Hình 3.55: Nội dung trong thư mục tasks của roles CIS-Webserver
Trong thư mục này, có một file main.yml, chịu trách nhiệm gọi các tệp tin thực hiện các module section trong chương trình nhằm triển khai chính sách Các module section này tương ứng với từng hạng mục được liệt kê trong chương 2, mục 2.2.1 của CIS Benchmark trên máy chủ web Apache HTTPD 2.4.
Hình 3.56: Tệp main.yml trong thư mục tasks của roles CIS-Webserver
Tương tự ở mỗi tệp tin section module cũng sẽ gọi đến các section nhỏ thực hiện module nhỏ nằm trong chính sách.
Ví vụ về nội dung một số section module trong chính sách:
Ví dụ 1: Mục 1 - section module 1: Lập kế hoạch và cài đặt
Hình 3.57 minh họa tệp tin trong phần nhiệm vụ của mô-đun 1, liên quan đến việc lập kế hoạch và cài đặt Đây là ví dụ về mục 1 trong chính sách triển khai trên webserver Apache HTTP.
Tệp này là một nhiệm vụ lớn, sẽ gọi đến các nhiệm vụ nhỏ thuộc chính sách, cụ thể là tệp section_01_level_1_and_2.yml, nhằm thực hiện công việc kiểm tra trên máy chủ web để cấu hình chính sách.
Tập tin task nhỏ trong hình 3.58 thực hiện việc kiểm tra cấu hình cơ bản của máy chủ Apache HTTP Tập lệnh này tự động xác định xem dịch vụ Apache đã được cài đặt hay chưa, đồng thời kiểm tra xem có dịch vụ nào khác đang chạy trên máy chủ web không Kết quả kiểm tra sẽ được lưu vào thư mục Check với tên file check_service.txt, giúp quản trị viên dễ dàng theo dõi sau khi cấu hình.
Hình 3.59: Tệp tin check_service.txt kiểm tra dịch vụ hoạt động trên webserver
Ví dụ 2: Mục 2 - Section module 2: Tối giản mô-đun apache
Hình 3.60 minh họa tệp tin của mục 2 trong chính sách tối giản mô-đun Apache, thuộc chính sách triển khai trên máy chủ web Apache HTTP.
Tệp này chứa một nhiệm vụ lớn, liên kết đến các nhiệm vụ nhỏ trong chính sách, cụ thể là tệp section_02_level_1_and_2.yml, nhằm tối giản mô-đun Apache để nâng cao tính bảo mật cho webserver Mục tiêu của phần này là thực hiện các nhiệm vụ cần thiết để cải thiện an ninh cho hệ thống.
Đảm bảo mô-đun xác thực và ủy quyền cần thiết được kích hoạt.
Đảm bảo mô-đun cấu hình nhật ký được bật.
Đảm bảo rằng các mô-đun WebDAV đã bị vô hiệu hóa.
Đảm bảo mô-đun trạng thái bị vô hiệu hóa.
Đảm bảo mô-đun Autoindex bị vô hiệu hóa.
Đảm bảo rằng các mô-đun proxy bị vô hiệu hóa.
Đảm bảo mô-đun thư mục người dùng bị vô hiệu hóa.
Đảm bảo mô-đun thông tin bị vô hiệu hóa.
Đảm bảo rằng các mô-đun xác thực cơ bản và thông báo bị vô hiệu hóa
Hình 3.61: Một phần tệp tin task nhỏ tối giản mô-đun apache HTTPD web server
Trong hình 3.61 là một số tập lệnh thực hiện task nhỏ tối giản mô-đun apache trên HTTPD web server gồm:
Đảm bảo mô-đun xác thực và ủy quyền cần thiết được kích hoạt.
Đảm bảo mô-đun cấu hình nhật ký được bật.
Đảm bảo rằng các mô-đun WebDAV đã bị vô hiệu hóa Kiểm tra kết quả của tập lệnh tự động triển khai bằng cách xác nhận sự tồn tại của các tệp tin check_module_auth.txt và check_module_log.txt trong thư mục.
Check chưa, kiểm tra tệp tin 00-dav.conf cũ đã được sao chép nội dung từ tệp 00-dav.conf mới chưa.
Hình 3.62: Tệp tin check_module_log.txt kiểm tra mô đun nhật ký đã được bật
Hình 3.63: Tệp tin check_module_auth.txt kiểm tra mô-đun xác thực, ủy quyền cần thiết đã được kích hoạt.
Hình 3.64: Tệp tin 00-dav.conf trước khi chạy task
Hình 3.65: Tệp tin 00-dav.conf sau khi chạy task tắt module WebDav
Hai ví dụ tiêu biểu về chính sách CIS Benchmark được áp dụng trên máy chủ web Apache HTTPD đã được trình bày Trong các tệp tin task, thẻ tags được sử dụng để khi thực hiện lệnh ansible-playbook, nó sẽ gọi đến các module lớn hoặc nhỏ mà người dùng muốn thực thi, giúp kiểm soát quá trình triển khai chính sách và giảm thiểu lỗi.
Ví dụ: #ansible-playbook -i hosts main.yml –tags section01
3.4.4 Tạo nội dung thư mục handlers và vars trong role
Trong thư mục handlers, tệp tin main.yml có nhiệm vụ khởi động lại dịch vụ Apache HTTPD trên server, và thường được thực thi cuối cùng sau khi hoàn tất tất cả các tác vụ.
The main.yml file located in the handlers directory of the CIS-webserver role is crucial for implementing policies for the WordPress Webserver It is responsible for calling the handlers in module section 12 to restart the Apache HTTPD service after configuration changes are made.
Hình 3.67: Tệp tin task section module 12 trong chính sách CIS-Webserver
Trong thư mục vars, có chứa các biến cần thiết để truyền vào một số tệp tin trong thư mục tasks, liên quan đến quản trị Apache Ví dụ, biến này được sử dụng cho phần module 7 trong quá trình cấu hình SSL/TLS cho website.
Hình 3.68: Tệp tin main.yml trong thư mục vars của roles CIS-Webserver
Thực nghiệm
3.5.1 Mô hình triển khai thử nghiệm
Máy chủ Ansible được cài đặt trên máy tính cá nhân có khả năng kết nối với máy chủ web trong môi trường GCP thông qua giao thức xác thực SSH sử dụng khóa bảo mật.
Hình 3.69: Mô hình thực nghiệm triển khai Ansible
3.5.2 Trước khi chưa thực hiện triển khai chính sách
Chưa được cài đặt SSL/TLS
Hình 3.70: Khi website chưa cài SSL/TLS
Dò quét lỗ hổng plugin sử dụng công cụ wpscan
Hình 3.71: Khi website bị dò quét bằng công cụ
Ví dụ: Tấn công XSS bằng cách sửa code của plugin theo đường dẫn http://blogctf.tk/wp-admin/plugin-editor.php
Hình 3.72-3.73: Website bị tấn công XXS lấy cookie người dùng
3.5.3 Thực hiện triển khai chính sách sử dụng ansible
Theo chính sách CIS Benchmark cho Web server Apache HTTPD, được nêu trong chương 2 mục 2.2 phần 2.2.1, các hướng dẫn này áp dụng chung cho tất cả các Web server chạy Apache HTTPD Tuy nhiên, để phù hợp với nền tảng website, cần điều chỉnh theo yêu cầu cụ thể Trong trường hợp này, nền tảng triển khai thực nghiệm là WordPress, và các bước thực hiện sẽ được tiến hành theo thứ tự quy định.
Mục 2.2.1.1, 2.2.1.2, 2.2.1.3, 2.2.1.4 (tương ứng section module 1, 2,
Mục 2.2.1.7, 2.2.1.8, 2.2.1.9, 2.2.1.10 (tương ứng section module 7, 8,
Mục 2.2.1.5, 2.2.1.6 (tương ứng section module 5, 6)
Mục 2.2.1.12 ( tương ứng section module 12)
Chú ý: Section 5.9, 5.11 và 5.12 thuộc mục 2.2.1.5 - section module 5 không nên chạy vì ảnh hưởng đến tệp htaccess của wordpress đã cấu hình chuẩn.
Section 6.6, 6.7 thuộc mục 2.2.1.6 - section module 6 thiết lập modsecurity trên webserver nên chạy từng section một tránh bị lỗi.
Video hướng dẫn triển khai: https://youtu.be/9QjQlGvFzw8
Một số kết quả kiểm tra kết quả sau khi triển khai chính sách
Tự động cài đặt SSL/TLS cho website
Hình 3.74: Website đã cài SSL/TLS
Ngăn chặn dò quét lỗ hổng dùng công cụ
Hình 3.75: Chặn dò quét lỗ hổng sử dụng công cụ
Chống tấn công trên plugin: Ví dụ tấn công XSS:
Chính sách chặn không được phép sửa plugin kể cả với quyền admin truy cập tới link: http://blogctf.tk/wp-admin/plugin-editor.php
Hình 3.76 Chặn truy cập chỉnh sửa đường link nhạy cảm
Kết luận chương 3
Trong chương 3, bài viết giới thiệu về Ansible, một công nghệ quản lý hệ thống phổ biến và dễ sử dụng, thích hợp cho Developer, DevOps và SysAdmin Ansible giúp tiết kiệm thời gian trong việc cài đặt và vận hành từ xa nhiều thiết bị, đồng thời kiểm soát lỗi trong quá trình quản trị Bài viết cũng cung cấp kiến thức về cách khởi tạo VPS trên GCP, kết nối VPS với Ansible để cài đặt ứng dụng và quản lý, cũng như hướng dẫn cài đặt Web server Apache chạy nền tảng WordPress.
Sử dụng ngôn ngữ kịch bản YAML trong Ansible để xây dựng chính sách CIS Benchmark cho máy chủ web Apache, giúp triển khai một cách tự động và an toàn Việc này không chỉ bảo vệ máy chủ web Apache khỏi các cuộc tấn công từ bên ngoài mà còn từ bên trong, đảm bảo an ninh tối ưu cho hệ thống.