Chương 1. TỔNG QUAN VỀ KIỂM ĐỊNH AN TOÀN THÔNG TIN 1. Bối cảnh hiện tại Với sự phát triển của Thế giới nói chung và Việt Nam nói riêng, xã hội càng phát triển càng kéo thêm nhiều nguy cơ mất an toàn thông tin. Đặc biệt là vấn đề đe dọa thông tin trên các đường truyền Internet, qua máy tính, những chiếc điện thoại thông minh, những thiết bị thông minh khác đều để lại những nguy cơ tiềm ẩn.
Tình trạng rất đáng lo ngại trước hành vi thâm nhập vào hệ thống, phá hoại các hệ thống mã hóa, các phần mềm xử lý thông tin tự động gây thiệt hại vô cùng lớn. Sau đây là một số nguy cơ rủi ro mất an toàn thông tin: Nguy cơ mất an toàn thông tin về khía cạnh vật lý: Là nguy cơ do mất điện, nhiệt độ, độ ẩm không đảm bảo, hỏa hoạn, thiên tai, thiết bị phần cứng bị hư hỏng. Nguy cơ bị mất, hỏng, sửa đổi nội dung thông tin: Người dùng có thể vô tình để lộ mật khẩu hoặc không thao tác đúng quy trình tạo cơ hội cho kẻ xấu lợi dụng để lấy cắp hoặc làm hỏng thông tin. Nguy cơ bị tấn công bởi các phần mềm độc hại: Các phần mềm độc hại tấn công bằng nhiều phương pháp khác nhau để xâm nhập vào hệ thống với các mục đích khác nhau như: Virus, sâu máy tính (Worm), phần mềm gián điệp (Spyware, Trojan, Adware…).
Nguy cơ xâm nhập từ lỗ hổng bảo mật: Lỗi do lập trình, lỗi hoặc sự cố phần mềm, nằm trong một hoặc nhiều thành phần tạo nên hệ điều hành hoặc trong chương trình cài đặt trên máy tính. Nguy cơ xâm nhập do bị tấn công bằng cách phá mật khẩu: Những kẻ tấn công có rất nhiều cách khác phức tạp hơn để tìm mật khẩu truy nhập. Những kẻ tấn công có trình độ đều biết rằng luôn có những khoản mục người dùng quản trị chính. Nguy cơ mất an toàn thông tin do sử dụng Email: Tấn công có chủ đích bằng thư điện tử là tấn công bằng Email giả mạo giống như email được gửi người quen, có thể gắn tập tin đính kèm nhằm làm cho thiết bị bị nhiễm virus.
Cách thức tấn công này thường nhằm vào một cá nhân hay một tổ chức cụ thể. Thư điện tử đính kèm tập tin chứa virus được gửi từ kẻ mạo danh là một đồng nghiệp hoặc một đối tác nào đó. Người dùng bị tấn công bằng thư điện tử có thể bị đánh cắp mật khẩu hoặc bị lây nhiễm virus. Nguy cơ mất an toàn thông tin trong quá trình truyền tin: Trong quá trình lưu thông và giao dịch thông tin trên mạng Internet nguy cơ mất an toàn thông tin trong quá trình truyền tin là rất cao do kẻ xấu chặn đường truyền và thay đổi hoặc phá hỏng nội dung thông tin rồi gửi tiếp tục đến người nhận.
Mặt khác, ngày nay Internet/Intranet là môi trường tiện lợi cho việc trao đổi thông tin giữa các tổ chức và giữa các cá nhân trong tổ chức với nhau. Các giao dịch trao đổi thư tín điện tử (Email), các trao đổi thông tin trực tuyến giữa cơ quan nhà 12 nước và công dân, tìm kiếm thông tin, …thông qua mạng Internet không ngừng được mở rộng và ngày càng phát triển. Bên cạnh các lợi ích mà Internet/Intranet mang lại thì đây cũng chính là môi trường tiềm ẩn các nguy cơ gây mất an toàn an ninh cho các hệ thống mạng của các tổ chức có tham gia giao dịch trên Internet/Intranet. Một vấn đề đặt ra cho các tổ chức là làm sao bảo vệ được các nguồn thông tin dữ liệu như các số liệu trong công tác quản lý hành chính nhà nước, về tài chính kế toán, các số liệu về nguồn nhân lực, các tài liệu về công nghệ, sản phẩm…., trước các mối đe dọa trên mạng Internet hoặc mạng nội bộ có thể làm tổn hại đến sự an toàn thông tin và gây ra những hậu quả nghiêm trọng khó có thể lường trước được.
Giới thiệu bài toán Đề tài là sự kết hợp giữa 2 bài toán, một là bài toán nâng cấp Metasploit Framework. Hiện tại, Framework không có các chức năng nâng cao của Metasploit Pro như kiểm thử hệ thống theo kịch bản sẵn có, kiểm thử tự động, lập lịch quét,. Hai là với nhu cầu thực tế về kiểm thử hệ thống đảm bảo tuân thủ các chuẩn an toàn thông tin, Framework chưa đáp ứng được mà chỉ được sử dụng như một công cụ cung cấp rất nhiều Exploit rời rạc. Do đó, tôi đã tìm hiểu xây dựng một phần mở rộng cho Framework và cụ thể hóa các yêu cầu của chuẩn an toàn thông tin mẫu là chuẩn ISO 27001 thành các Exploit từ cơ sở dữ liệu về Exploit của Metasploit Framework, sắp xếp thành các nhóm để lên 1 kịch bản kiểm thử, từ đó lập lịch định kỳ chạy.
TỔNG QUAN VỀ METASPLOIT 2. Khái niệm cơ bản Metasploit (Metasploit Project) là một dự án liên quan đến bảo mật máy tính, cung cấp những thông tin về các lỗ hổng bảo mật. Đối tượng của Metasploit chính là những quá trình tấn công xâm nhập kiểm thử (Penetration Testing) và phát triển các hệ thống phát hiện xâm nhập (IDS - Intrusion Detection System) Metasploit Framework có mã nguồn mở, sử dụng các Shellcode (Payload) để tấn công máy đích có lỗ hổng. Cùng với một số bộ công cụ bảo mật khác, Metasploit có cơ sở dữ liệu chứa hàng ngàn Shellcode, Exploit (khai thác) của các hệ điều hành, các chương trình hay dịch vụ.
Trong quá trình phát triển Metasploit liên tục cập nhật các Exploit vào cơ sở dữ liệu nên càng ngày nó càng trở thành một bộ công cụ mạnh mẽ trong kiểm thử an ninh hệ thống. Metasploit Framework được tích hợp sẵn trong hệ điều hành Kali Linux. Phiên bản mới nhất cài đặt dành cho các hệ điều hành Linux/ MacOS/ Windows có thể được tải xuống từ địa chỉ Website của nhà phát triển Rapid 7 tại https://github.com/rapid7/metasploit-framework/wiki/Nightly-Installers Các tính năng chính của Metasploit: - Quét cổng để xác định các dịch vụ đang hoạt động trên máy chủ (Server). - Xác định các lỗ hổng dựa trên phiên bản của hệ điều hành và phiên bản các phần mềm cài đặt trên hệ điều hành đó.
- Thực nghiệm khai thác các lỗ hổng đã được xác định. Lịch sử phát triển Metasploit: Metasploit được phát triển ra bởi H. Moore, sinh năm 1981, là chuyên gia về bảo mật mạng, lập trình viên nguồn mở và cũng là 1 Hacker. Ông là người sáng lập Metasploit Project vào năm 2003 như là một công cụ kiểm thử thâm nhập sử dụng ngôn ngữ lập trình Perl.
Đến năm 2007, Metasploit Framework đã được viết lại hoàn toàn bằng ngôn ngữ lập trình Ruby. Vào ngày 21 tháng 10 năm 2009, dự án Metasploit đã được mua lại bởi Rapid7, một công ty bảo mật chuyên cung cấp các giải pháp bảo mật quản lý lỗ hổng. Các phiên bản Metasploit 2. Metasploit Community Edition Phiên bản này được phát hành vào tháng 10 năm 2011 bao gồm một giao diện người dùng dựa trên web miễn phí cho Metasploit.
Metasploit Community Edition dựa trên chức năng thương mại của các phiên bản trả phí với một số tính năng được giảm bớt như Network Discovery/Module Browsing/Manual Exploitation. Vào ngày 18 tháng 7 năm 2019, Rapid7 đã thông báo về việc kết thúc bán Metasploit Community Edition. Người dùng hiện tại có thể tiếp tục sử dụng nó cho đến khi giấy phép hết hạn. Metasploit Community Edition 2.
Metasploit Framework Edition Là phiên bản mã nguồn mở, hoàn toàn miễn phí, rất phù hợp cho việc phát triển và nghiên cứu, sử dụng giao diện dòng lệnh, chỉ có một số tính năng cơ bản. Chính vì vậy việc phát triển, tích hợp các tính năng mới vào Metasploit Framework là rất cần thiết, phù hợp với những nhu cầu, nhiệm vụ kiểm thử an ninh hệ thống khi mà có giới hạn về mặt chi phí. Tuy có nhiều hạn chế về những tính năng ưu việt thì phiên bản này có thể coi là công cụ không thể thiếu của những nhà nghiên cứu bảo mật chuyên nghiệp, những người kiểm thử xâm nhập và được giới Hacker rất ưa chuộng. Giao diện Metasploit Framework 15 2.
Metasploit Pro Tháng 10 năm 2010, Rapid7 đã phát hành Metasploit Pro, một phiên bản thương mại. Có thể nói đây là một phiên bản mạnh mẽ nhất của Metasploit, nó bao gồm tất cả các tính năng của Metasploit Express và phát triển thêm các tính năng ưu việt khác như “Quick Start Wizards/MetaModules”, xây dựng, quản lý những hoạt động tấn công sử dụng kỹ nghệ xã hội (Social Engineering), kiểm thử ứng dụng Web, tạo các Payload một cách tự động để tránh sự phát hiện của các phần mềm Anti-Virus, tích hợp cả công cụ mạnh mẽ Nexpose cho việc quét lỗ hổng trên mạng. Phiên bản Metasploit Pro hỗ trợ cả chế độ dòng lệnh và giao diện người dùng. Phiên bản này hiện tại có giá cao nhất so với các phiên bản khác, phù hợp cho những người thực hiện kiểm thử xâm nhập, những nhóm bảo mật.
Metasploit Pro 16 Hình 2. So sánh phiên bản Metasploit Pro và Framework 17 2. Kiến trúc của Metasploit Hình 2. Kiến trúc Metasploit 2.
Thư viện chính Rex (Ruby Extension Library): sẽ bao gồm các thư viện cơ bản được sử dụng trong Framework cho các giao thức các giao thức khác nhau, chuyển đổi, và xử lý kết nối. hỗ trợ SSL, SMB, HTTP, XOR, Base64, Unicode. MSF Core: là phần lõi của Metasploit Framework, là thư viện định nghĩa các lớp điều khiển vận hành chung của Framework và cung cấp các API cơ bản. MSF Base: cung cấp các API đơn giản và thân thiện cho Metasploit Framework 2.
Giao diện Console: 18 Hình 2. Giao diện Console CLI: Hình 2. Giao diện CLI 19 Web (GUI) Hình 2. Giao diện Web-GUI 2.
Mô đun chức năng Payloads: là một đoạn code được chạy (thực thi) trên máy nạn nhân dùng để thực hiện một số hoạt động nào đó gồm 2 loại: - Bind payload: nếu có thể tiếp cận mạng từ bên ngoài, sau khi khai thác thành công, máy tấn công sẽ gửi kết nối tới máy nạn nhân để gửi Payload và tương tác từ bên ngoài mạng. - Reverse payload: sau khi khai thác thành công, máy nạn nhân sẽ mở một kết nối tới máy tấn công (kết nối đi ra ngoài mạng) để vượt qua tường lửa từ bên trong. Exploits: là chương trình khai thác lỗ hổng dịch vụ, ta bắt buộc phải biết được lỗ hổng trên máy nạn nhân. Encoders: là payload được encoding, mã hóa và được chèn vào những kí tự đặc biệt giúp tránh bị phát hiện bởi phần mềm diệt virus hoặc tường lửa.
Nops: là một module tùy chọn thêm để đảm bảo kích thước của payload. Auxiliary: là một loại module đặc biệt, nó cung cấp chức năng tăng cường cho các thử nghiệm xâm nhập và quét lỗ hổng, thu thập thông tin, quét cổng, .