An toàn internet và thương mại điện tử

46 1.2K 4
An toàn internet và thương mại điện tử

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA AN TỒN THƠNG TIN BÀI TẬP LỚN MƠN AN TỒN INTERNET VÀ THƯƠNG MẠI ĐIỆN TỬ Đề tài: TÌM HIỂU XÂY DỰNG PLUGIN CHO NESSUS SỬ DỤNG NASL Giảng viên: Nguyễn Hồng Hà Sinh viên thực hiện: Nguyễn Tuấn Anh Nguyễn Thị Hồng Ngoan Nguyễn Thu Thùy Lớp: AT7A HÀ NỘI, 2014 MỤC LỤC LỜI NĨI ĐẦU Ngày nay, cơng nghệ thơng tin phát triển vũ bão song hành với phát triển phát triển phần mềm độc hại,sâu, virus… nhằm phá hoại hệ thống Chúng tận dụng điểm yếu hệ thống để phá hoại Vì vậy, phải đánh giá điểm yếu hệ thống từ đưa hướng giải Trong Nessus chương trình tiếng để dị, qt lỗ hổng Nessus thực nhiệm vụ dựa theo kịch định nghĩa sẵn gọi plugin Các plugin viết ngôn ngữ NASL (Nessus Attack Scripting Language) Vì vậy, nhóm xin trình bày đề tài tìm hiểu xây dựng plugin cho Nessus sử dụng NASL Trong giới hạn đề tài, nhóm chia đề tài thành hai chương sau: • Chương 1: Tổng quan Nessus: Chương nhóm tìm hiểu tổng quan Nessus • chức năng, kiến trúc Chương 2: Viết plugin cho Nessus NASL: Chương nhóm tìm hiểu ngơn ngữ NASL, cách sử dụng hàm, tìm hiểu thư viện viết plugin đơn giản cho Nessus Nhóm sinh viên thực Chương 1: TỔNG QUAN VỀ NESSUS Lỗ hổng gì? Điểm yếu gì? Lỗ hổng lỗi lập trình cấu hình sai mà cho phép kẻ xâm nhập truy cập trái phép Điều bao gồm điều từ mật yếu đến chương trình chưa vá lỗi dịch vụ mạng Lỗ hổng trở thành yếu tố đằng sau hầu hết sâu mạng, phần mềm gián điệp mã độc khác Điểm yếu nơi hệ thống dễ bị công chưa bị khai thác để thực hành vi trái phép Việc đánh giá lỗ hổng công cụ thực đầy đủ Nessus Cơng cụ qt lỗ hổng Nessus 2.1.Lịch sử hình thành Vào năm 1998, danh sách lỗ hổng chưa phát triển thành sở liệu đầy đủ việc nghiên cứu thực kín ngân sách eo hẹp Các máy quét lỗ hổng thương mại có chi phí đắt đỏ Cịn máy qt lỗ hổng mã nguồn mở nhất, the Security Administrator Tool for Analyzing Networks(SATAN), khơng thể vượt qua máy quét thương mại Internet phát triển tăng vọt dẫn đến gia tăng thử nghiệm để kiểm tra tính an tồn Từ đó, Renaud Deraison[2] tạo dự án mã nguồn mở gọi Nessus Đó câu trả lời cho việc giá máy quét thương mại ngày tăng trì trệ dự án SATAN Ngay lập tức, cộng đồng sử dụng Nessus phát triển nhanh chóng Ngày tháng 10 năm 2005, Tenable Network Security, công ty Renaud Deraison đồng sáng lập, thông báo phiên Nessus, Nessus 3, không mã nguồn mở Cơ cấu( engine) Nessus miễn phí cho phép cộng đồng phát hành cập nhật plugin chi phí cho dịch vụ rà sốt lỡ hổng tính Một vài nhà phát triển chia thành hướng phát triển độc lập dựa Nessus OpenVAS Porz-Wahn[2] Nessus cập nhật Nessus phát hành thời gian Nessus chạy nhiều tảng hệ điều hành khác nhau, bao gồm UNIX, LINUX, Mac OS X, Windows Nessus cho phép bạn quét từ xa để xác định mạng có bị xâm nhập hay khơng cung cấp tính để qt cục máy tính cụ thể Dowload phiên cài đặt tại: http://www.tenable.com/products/nessus/select-your-operating-system 2.2.Các kiến trúc Nessus Các thuật ngữ: • • • • • Policy – thiết lập cấu hình cho tiến trình quét Scan – kết hợp danh sách IPs và/hoặc tên miền với sách Report – kết việc quét Plugin – kiểm tra an ninh hay cửa sổ cài đặt quét Plugin family – nhóm plugin với điểm chung ( ví dụ: FTP, Web servers, Cisco) Kiến trúc Nessus bao gồm[1]: • • • Nessus Client Server Nessus plugins Nessus Knowledge Base 2.2.1 Client Server Đầu tiên, máy quét lỗ hổng dựa client Một nhà tư vấn dùng máy tính để vào trang web khách hàng đứng vị trí tốt mạng để tiến hành qt Qt khơng gian địa mạng ngày đến vài ngày, phụ thuộc vào chiều rộng mạng độ sâu thông số quét Điều làm cho máy tính khơng làm thời gian qt Nessus đưa mơ hình client/server để giải đề Sau kết nối đến Server, server phân tách client để quét lỗ hổng client dùng tài ngun cho việc khác đến cơng việc hồn thành Mơ hình kiến trúc cung cấp linh hoạt để triển khai máy quét (server) kết nối với giao diện đồ họa khách hàng (client) từ máy tính với trình duyệt web Điều giúp giảm chi phí quản lý, máy chủ truy cập nhiều máy khách Hình 1.: Mơ hình kiến trúc client-server 2.2.2 Plugins Các máy qt an ninh truyền thống yêu cầu cập nhật từ nhà cung cấp để kiểm tra lỗ hổng thường phát hành cập nhật không kịp thời Nessus cung cấp NASL (Nessus Attack Scripting Language) – tìm hiểu cụ thể vào chương – cho phép phân tích để nhanh chóng tạo plugin cho việc kiểm tra lỗ hổng 2.2.3 Knowledge Base Kiến trúc Knowledge base cho phép plugin ngày hôm tận dụng liệu thu thập plugin trước Nó đơn giản danh sách thông tin thu thập máy chủ Ta xét kiểm tra an ninh để kiểm tra tồn máy chủ web tìm kiểm tra xem HTTP có thực chạy khơng? Plugin có khả thiết lập giá trị biến Nessus knowledge base cho host Các kịch NASL thực thi tìm thấy Apache chạy host từ xa Các plugin sau thiết lập biến sở cho máy chủ cụ thể “www/banner/80” đến “Apache/1.3.29(Unix)PHP/4.3.4 mod_ssl/2.8.16 Openssl/0.9.7a”[2] Điều cho phép tất plugin sau đọc giá trị “www/banner/80” Giả sử, plugin khác đọc giá trị Nếu tìm thấy chuỗi “Openssl/0.9.7a” giá trị trả về, thơng báo máy chủ bị tổn thương phiên lỗi thời Openssl Như vậy, plugin sử dụng thông tin thu cách bổ sung plugin trước Điều giúp mở rộng khả Nessus tăng hiệu suất tính plugin Knowledge base lưu Nessus server tạo mặc định đường dẫn /opt/nessus/var/nessus/users//kbs , người muốn kiểm tra 2.3 Tường lửa server Nếu Nessus server cấu hình máy chủ với phần mềm firewall chuyên nghiệp kết nối phải cho phép địa IP client Theo mặc định cổng 8834 dùng cho Nessus web server[5] Tuy nhiên, Firewall thường có bảng dịch địa kết nối nhanh Nessus dẫn đến firewall để kết nối cũ hơn[2] Việc làm ảnh hưởng đến người dùng việc quét lỗ hổng Bằng cách phân phối máy chủ Nessus xuyên suốt mạng mà vấn đề bỏ qua tự động quét định kì, đảm bảo mạng tổng thể mạnh mẽ Mơ sau: Hình 1.: Tường lửa dựa vào máy chủ Nessus 2.4 Nền (Background) • Quét thông minh: Nessus không cho dịch vụ định chạy cổng cố định Vì vậy, bạn chạy máy chủ web cổng 1234 • phát kiểm tra cách thích hợp Modulo kiến trúc: kiến trúc khách chủ cấp linh hoạt để triển khai • máy quét (server) client Tương thích CVE: hầu hết plugin liên kết đến CVE để quản trị viên lấy thêm thông tin lỗ hổng công cộng chúng bao gồm tài liệu để • Bugtraq( BID), OSVDB, cảnh báo nhà cung cấp Kiến trúc plugin: kiểm tra ninh viết plugin nhóm lại vào • 42 họ( families) Danh sách plugin Nessus có sẵn http://www.nessus.org/plugins/index.php?view=all NASL: Nessuss Attack Scripting Language – ngôn ngữ đặc biệt để viết • script – đoạn mã Up – to – date sở liệu bảo mật: tập trung vào phát triển kiểm tra an ninh cho lỗ hổng tiết lộ Cơ sở liệu cập nhật hàng ngày tất kiểm tra bảo mật có sẵn tại: http://www.tenable.com/plugins/index.php?view=newest • Báo cáo: Nessus khơng cho biết máy bạn tồn lỗ hổng mà có thông báo mức độ nguy (info, low, medium, high, critical), cịn • cung cấp giải pháp Hỗ trợ đầy đủ ssl: có khả kiểm tra dịch vụ cung cấp ssl • https, smtps, imaps,… Diễn đàn mở: câu hỏi Nessus? Thảo luận tại: • https://discussions.nessus.org/ Hỗ trợ IPv6: hỗ trợ quét tài nguyên dựa IPv6[5] Windows XP hay server 2003 khơng có hỗ trợ Điều kiện phần cứng để dùng Nessus: Hình 1.: Phần cứng cần thiết Nessus chạy mơi trường máy ảo, máy ảo sử dụng Network Address Translation(NAT) để nối mạng kiểm tra lỗ hổng Nessus, host, hệ điều hành bị ảnh hưởng[2] Chương 2: VIẾT PLUGIN CHO NESSUS TRÊN NASL NASL là gì?[3][4] NASL (Nessus Attack Scripting Language) là một ngôn ngữ kịch bản được thiết kế cho các máy quét Nessus Nó cho phép bất cứ cũng có thể viết một thử nghiệm cho một lỗ hổng bất kỳ NASL là một ngôn ngữ thông dịch, cho phép người sử dụng có thể thực thi câu lệnh vừa được đưa vào NASL có một thuận lợi lớn cho người muốn tìm hiểu, đó là cú pháp của nó gần giống với ngôn ngữ C (về cách khai báo, các toán tử, vòng lặp…) Nó không có các thành phần phức tạp trỏ C, thực hiện viết một script chúng ta cũng không cần quan tâm đến loại đối tượng, không cần phải khai báo các biến trước sử dụng chúng mà chỉ cần tập trung vào các thử nghiệm bảo mật mà chúng ta muốn sử dụng Chính những điều này đã khiến cho ngữ pháp của NASL trở lên đơn giản và dễ hiểu với người dùng Đầu tiên là NASL1 đời với 1000 lỗi kiểm tra bảo mật Ban đầu tốc độ không được xem là vấn đề đáng quan tâm nhất Khi số lượng plugin tăng lên, người dùng sử dụng Nessus để quét nhiều host thì NASL1 thực sự trở lên chậm cho những tác vụ này Năm 2001, Michel Arboi viết lại thư viện libnasl để thực hiện mở rộng ngôn ngữ và sửa chữa những khuyết điểm của NASL1, thư viện được viết lại có tên NASL2 Kể từ phiên bản 3.0, NASL2 được tích hợp sẵn vào engine Quy tắc bản với NASL: • Chú thích được bắt đầu với một dấu “#” và chỉ có tác dụng chú thích dòng • hiện tại Chú thích sẽ được trình thông dịch bỏ qua đọc đến nó Có thể thêm các khoảng trắng tùy ý giữa toán tử o Chuỗi sẽ được phân tích bởi bộ phân tích từ vựng Bộ phân tích sẽ trả lại thông báo quá dài nếu nó gặp một diễn tả như: a+++++b (nó sẽ hiểu thành a++ ++ + b) Khi đó ta nên viết : a++ + ++b o Không thể thêm khoảng trắng vào giữa chuỗi đa ký tự Ví dụ: x = a + + (nên viết x = a++) Cấu trúc ngôn ngữ NASL 2.1 Kiểu dữ liệu  Kiểu nguyên NASL2 sử dụng cấu trúc C, hệ số bắt đầu là và hệ số 16 bắt đầu bằng 0x  Kiểu chuỗi[3][4] Có hai dạng chuỗi là chuỗi không thể chuyển đổi và chuỗi có thể chuyển đổi: • Chuỗi không thể chuyển đổi: là chuỗi được nhập vào giữa hai dấu nháy kép “” (ví dụ: “hello\n”), đó mọi ký tự của chuỗi sẽ được giữ nguyên (dấu \ vẫn sẽ được giữ nguyên) Có thể chủn ch̃i này sang • ch̃i có thể chủn đởi bằng cách sử dụng các hàm xử lý chuỗi Chuỗi có thể chuyển đổi: là chuỗi được nhập vào giữa hai dấu nháy đơn ‘’ (ví dụ: ‘hello\n’), đó một vài ký tự của chuỗi sẽ được tự động chuyển đổi (dấu \n sẽ thực hiện tự động xuống dòng)  Mảng Hỗ trợ mảng chiều, chỉ số của mảng sẽ được đánh số bắt đầu từ Các phần tử mảng có thể là dữ liệu kiểu nguyên hoặc kiểu chuỗi  Null Được gán cho các biến chưa khởi tạo giá trị hay là giá trị trả về cho những hàm gặp lỗi  Booleans Không phải là một kiểu dữ liệu độc lập Các toán tử so sánh sẽ trả về về nếu là FALSE hay nếu là TRUE Hay những giá trị chủn đởi khác như: • • • • Giá trị chưa xác định hay giá trị null sẽ là FALSE Số nguyên là TRUE nếu không phải là NULL, là FALSE nếu là Chuỗi sẽ là TRUE nếu nó không phải là chuỗi rỗng, không bằng Mảng sẽ là TRUE cho dù nó là rỗng hay không 2.2 Các toán tử  Toán tử thông thường • = toán tử gán o x = 66 Đặt 66 vào biến x Giá trị x được gán trước đó sẽ mất o x = y Lấy giá trị của biến y gán cho biến x • [ ] toán tử chỉ chỉ số mảng o Một biến không thể vừa là giá trị nguyên, hay là chuỗi, là null mà lại vừa là kiểu mảng tại cùng một thời điểm Nếu ta thay đổi kiểu dữ liệu thì kiểu dữ liệu trước đó sẽ bị mất o Ta có thể trích xuất ký tự từ một chuỗi (ví dụ: str = “hello” -> str[1] = e) o Đặt từng giá trị cho từng phần tử của mảng (ví dụ: str[1] = “i or h”) -> str = hi or hello  Toán tử toán học NASL2 quy định chặt chẽ với kiểu ngun Trình thơng dịch cài đặt với kiểu “int” nguyên mẫu C, kiểu 32 bit hầu hết hệ thống, 64 bit số hệ thống khác Các phép toán học có thể dùng: • + :phép cộng số nguyên KẾT LUẬN Sau thời gian thực đề tài, nhóm thực kết sau: Kết đạt được: • • • • Biết số thông tin công cụ quét lỗ hổng Nessus Hiểu kiến trúc Nessus Tìm hiểu thêm ngơn ngữ – NASL Sử dụng NASL để viết số script đơn giản Hạn chế: • • Thời gian hạn chế nên chưa tìm hiểu sâu để viết plugin thực Chưa đưa ưu, nhược điểm Nessus TÀI LIỆU THAM KHẢO [1] Russ Rogers, Mark Carey, Paul Criscuolo, Mike Petruzzi, Nessus Network Auditing 2nd Edition [2] Rik A.Jones, Web Application Vulnerability Testing with Nessus [3] Michel Arboi, The NASL2 refernce manual [4] Reanud Deraison, The Nessus Attack Scripting Language Reference Guide [5] Tenable Network Security, Nessus 5.2 Installation and Configuration Guide, March 21st, 2014 PHỤ LỤC Bảng phân công công việc STT Nội dung công việc Viết báo cáo chương 1: Tìm hiểu tổng quan Nessus Thực chỉnh sửa báo cáo, chụp hình vẽ… - Viết báo cáo chương 2: Tìm hiểu ngôn ngữ - - NASL Thực chỉnh sửa slide - Tìm hiểu ngơn ngữ NASL, viết script, chạy thử - script Chỉnh sửa lại toàn báo cáo, quay video demo Thành viên Nguyễn Thị Hồng Ngoan Nguyễn Thu Thùy Nguyễn Tuấn Anh ... Security Administrator Tool for Analyzing Networks(SATAN), khơng thể vượt qua máy quét thương mại Internet phát triển tăng vọt dẫn đến gia tăng thử nghiệm để kiểm tra tính an tồn Từ đó, Renaud Deraison[2]... client Một nhà tư vấn dùng máy tính để vào trang web khách hàng đứng vị trí tốt mạng để tiến hành quét Quét khơng gian địa mạng ngày đến vài ngày, phụ thuộc vào chiều rộng mạng độ sâu thông số quét... định danh (số cổng) và đối số nguyên có tên tùy chọn: “bufsz” – nếu ḿn tùy chỉnh bợ đệm vào/ra; “timeout” – thay • đổi thời gian chờ; “transport” – chuyển sang chế độ “transport”

Ngày đăng: 20/08/2014, 21:44

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • LỜI NÓI ĐẦU

    • 1. Lỗ hổng là gì? Điểm yếu là gì?

    • 2. Công cụ quét lỗ hổng Nessus

      • 2.1. Lịch sử hình thành

      • 2.2. Các kiến trúc cơ bản của Nessus

        • 2.2.1. Client và Server

        • 2.2.2. Plugins

        • 2.2.3. Knowledge Base

        • 2.3. Tường lửa trên server

        • 2.4. Nền (Background)

          • 4.3.2 Thông dịch plugin với NASL

          • KẾT LUẬN

          • TÀI LIỆU THAM KHẢO

Tài liệu cùng người dùng

Tài liệu liên quan