Báo cáo môn học an toàn và bảo mật thông tin khai thác tràn bộ nhớ đệm trên windows 10

24 8 0
Báo cáo môn học an toàn và bảo mật thông tin khai thác tràn bộ nhớ đệm trên windows 10

Đ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

lOMoARcPSD|11424851 TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT VIỆN KỸ THUẬT CƠNG NGHỆ BÁO CÁO MƠN HỌC AN TỒN VÀ BẢO MẬT THÔNG TIN KHAI THÁC TRÀN BỘ NHỚ ĐỆM TRÊN WINDOWS 10 GV: Lê Từ Minh Trí SVTH: Huỳnh Ngọc Quốc Tuấn MSSV: 2024802010102 SVTH: Nguyễn Phúc Anh Khôi MSSV: 2024802010431 SVTH: Trần Ngọc Thạch MSSV: 2024802010122 Bình Dương, tháng 06 năm 2022 lOMoARcPSD|11424851 TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT VIỆN KỸ THUẬT CÔNG NGHỆ BÁO CÁO MÔN HỌC AN TỒN VÀ BẢO MẬT THƠNG TIN KHAI THÁC TRÀN BỘ NHỚ ĐỆM TRÊN WINDOWS 10 GV: Lê Từ Minh Trí SVTH: Huỳnh Ngọc Quốc Tuấn MSSV: 2024802010102 SVTH: Nguyễn Phúc Anh Khôi MSSV: 2024802010431 SVTH: Trần Ngọc Thạch MSSV: 2024802010122 Bình Dương, tháng 06 năm 2022 i lOMoARcPSD|11424851 MỤC LỤC MỤC LỤC ii DANH MỤC HÌNH iv LỜI MỞ ĐẦU CHƯƠNG TỔNG QUAN 1.1 Tổng quan vấn đề nghiên cứu 1.1.1 Nghiên cứu: 1.1.2 Khảo sát thực trạng: 1.2 Nhiệm vụ đồ án CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu 2.1.1 Khái niệm lỗi tràn nhớ đệm 2.1.2 Nguyên nhân 2.2 Các kiểu khai thác thường gặp 2.2.1 Khai thác lỗi tràn đệm stack 2.2.2 Khai thác lỗi tràn đệm heap 2.2.3 Một số cách khai thác khác 2.3 Cách phát tràn nhớ đệm 2.4 Biện pháp ngăn chặn tràn nhớ đệm 2.4.1 Lựa chọn ngơn ngữ lập trình 2.4.2 Sử dụng thư viện an toàn 2.4.3 Chống tràn đệm stack 2.4.4 Bảo vệ không gian thực thi 2.4.5 Ngẫu nhiên hóa sơ đồ khơng gian địa 2.4.6 Kiểm tra sâu gói tin CHƯƠNG KẾT QUẢ THỰC NGHIỆM 3.1 Công cụ thực Oracle VM VirtualBox, Easy File Sharing Web Server 3.2 Công cụ công tập tin Python 2.7 3.3 Demo khai thác tràn nhớ đệm windows 10 3.4 Hậu việc tràn nhớ đệm 13 3.5 Cách phòng chống tràn nhớ đệm 13 ii lOMoARcPSD|11424851 CHƯƠNG KẾT LUẬN VÀ KIẾN NGHỊ 14 Kết luận 14 Kiến nghị 14 TÀI LIỆU THAM KHẢO 15 iii lOMoARcPSD|11424851 DANH MỤC HÌNH Hình 1: Phần mềm VirtualBox Hình 2: Phần mềm Easy File Sharing Web Server 7.2 Hình 3: Tập tin exploit.py Hình 4: Máy hệ điều hành Win 10 Hình 5: Máy hệ điều hành Win Hình 6: Web mạng cục localhost 10 Hình 7: Ổ đĩa có localhost 11 Hình 8: Truy cập python 2.7 win 10 11 Hình 9: Tấn cơng IP, Port máy nạn nhân (Win 7) 12 Hình 10: Tấn công thành công 12 iv lOMoARcPSD|11424851 LỜI MỞ ĐẦU Trong lĩnh vực an ninh máy tính lập trình, lỗi tràn nhớ đệm hay gọi tắt lỗi tràn đệm lỗi lập trình gây ngoại lệ truy nhập nhớ máy tính chương trình bị kết thúc, người dùng có ý phá hoại, họ lợi dụng lỗi để phá vỡ an ninh hệ thống Năm 1988, cố máy tính thu hút ý toàn thể cộng đồng sử dụng mạng internet, đời sâu internet Con sâu làm nhiều máy chủ phải ngưng hoạt động lỗi biết đến “tràn đệm” Cho tới nay, lỗi tràn đệm tiếp tục tìm thấy nhiều phần mềm nhiều hệ điều hành khác Đó thực nguy nghiêm trọng, vấn đề tồn lâu cần quan tâm cách nghiêm túc Đa phần lỗi tràn đệm dẫn đến việc chiếm quyền điều khiển toàn hệ thống Tràn đệm xảy nhiều hệ điều hành, đặc biệt UNIX Windows, nhiều ứng dụng khác web, mail, dns, database, Tháng 8-2001, sâu máy tính Code Red khiến giới thiệt hại hàng tỉ USD bắt nguồn từ lỗ hổng tràn đệm phần mềm máy chủ Microsoft Internet Information Server Vậy tràn đệm xảy tràn đệm lại tạo lỗ hổng bảo mật Làm để ngăn chặn lỗi tràn đệm Đó lý chúng em nghiên cứu đề tài: “Khai thác tràn nhớ đệm windows 10” Để tìm hiểu sâu tràn nhớ đệm đưa giải pháp cách khắc phục hiểu lOMoARcPSD|11424851 CHƯƠNG TỔNG QUAN 1.1 Tổng quan vấn đề nghiên cứu 1.1.1 Nghiên cứu:  Cách khai thác tràn nhớ đệm  Cách khắc phục tránh bị lỗi trình thực thi  Các cách thức hoạt động tràn nhớ đệm  Các công cụ khai thác lỗ hổng 1.1.2 Khảo sát thực trạng: Ưu điểm: Đối với windows 10, xem phiên cao cấp hoàn thiện tốt Microsoft Với giao diện đẹp, nhiều tính nâng cấp khả bảo mật tùy biến theo hướng cá nhân hóa nhằm phục vụ người dùng tốt Về mặt bảo mật, Windows khơng bảo mật tồn diện tảng khác như: Linux, Mac OS … Microsoft làm việc chăm ngày để thường xuyên cung cấp cho bạn vá lỗ hổng bảo mật Windows 10 kèm với cập nhật tự động kích hoạt, có tất tính an tồn Nhược điểm: Khơng tương thích khơng thể cài đặt với máy tính có cấu hình thấp trung bình yếu xuất tượng giật lag cài đặt Nhiều ứng dụng đời ngừng hỗ trợ khơng tương thích với windows 10 Do sử dụng phổ biến nên tảng Windows tập trung nhiều ý Hacker 1.2 Nhiệm vụ đồ án Tìm hiểu:  Lỗi tràn nhớ đệm  Cách khai thác tràn nhớ đệm windows 10  Cách phòng tránh tràn nhớ đệm  Thực hành demo tràn nhớ đệm windows 10  Đưa kết luận lOMoARcPSD|11424851 CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1.Giới thiệu 2.1.1 Khái niệm lỗi tràn nhớ đệm Lỗi tràn đệm (Buffer Overflow) điều kiện bất thường tiến trình lưu trữ liệu vượt biên nhớ đệm có chiều dài cố định Kết liệu đè lên nhớ liền kề Dữ liệu bị ghi đè bao gồm nhớ đệm khác, biến liệu điều khiển luồng chảy chương trình (program flow control) 2.1.2 Nguyên nhân Nguyên nhân gây lỗi Buffer Overflow chương trình, ứng dụng:  Phương thức kiểm tra bên (boundary) không thực đầy đủ bỏ qua  Các ngôn ngữ lập trình ngơn ngữ C, thân tiền ẩn lỗi mà hacker khai thác  Các phương thức strcat(), strcpy(), sprintf(), bcopy(), gets(), canf() ngơn ngữ C khai thác hàm không kiểm tra buffer cấp phát stack có kích thước lớn liệu copy vào buffer hay không 2.2.Các kiểu khai thác thường gặp 2.2.1 Khai thác lỗi tràn đệm stack  Ghi đè biến địa phương nằm gần nhớ đệm stack để thay đổi hành vi chương trình nhằm tạo thuận lợi cho kẻ công  Ghi đè địa trả khung stack (stack frame) Khi hàm trả về, thực thi tiếp tục địa mà kẻ công rõ, thường đệm chứa liệu vào người dùng  Nếu địa phần liệu người dùng cung cấp, biết địa lưu ghi, ghi đè lên địa trả giá trị địa opcode mà opcode có tác dụng làm cho thực thi nhảy đến phần liệu người dùng  Cụ thể: địa đoạn mã độc hai muốn chạy ghi ghi R, lệnh nhảy đến vị trí opcode cho lệnh jump R, call R (hay lệnh lOMoARcPSD|11424851 tương tự với hiệu ứng nhảy đến địa ghi R) làm cho đoạn mã phần liệu người dùng thực thi 2.2.2 Khai thác lỗi tràn đệm heap  Một tường tràn đệm xảy khu vực liệu heap gọi tượng tràn heap khai thác kỹ thuật khác với lỗi tràn stack  Bộ nhớ heap cấp phát động ứng dụng thời gian chạy thường chứa liệu chương trình  Việc khai thác thực cách phá liệu theo cách đặc biệt để làm cho ứng dụng ghi đè lên cấu trúc liệu nội chẳng hạn trỏ danh sách liên kết 2.2.3 Một số cách khai thác khác  Khai thác dựa vào lỗ hổng phần mềm thông qua ngôn ngữ lập trình (phần mềm thường viết ngơn ngữ C)  Khai thác trang web có tương tác người dùng không ràng buộc liệu nhập trường hợp username, password,… 2.3.Cách phát tràn nhớ đệm Công nghệ biên dịch lý tưởng để phát dùng chương trình C C++ để biết thơng tin kích thước liệu mã nguồn Một số thơng tin xuất phát từ lời khai báo biến, mô tả kiểu biến sử dụng Các thông tin khác đến từ lệnh gọi chức chương trình Trình biên dịch cần phải hiểu tất thông tin để tạo mã 2.4.Biện pháp ngăn chặn tràn nhớ đệm 2.4.1 Lựa chọn ngôn ngữ lập trình Lựa chọn ngơn ngữ lập trình có ảnh hưởng lớn xuất lỗi tràn đệm Năm 2006, C C++ nằm số ngơn ngữ lập trình thơng dụng nhất, với lượng khổng lồ phần mềm viết hai ngôn ngữ C C++ không cung cấp sẵn chế chống lại việc truy nhập ghi đè liệu lên phần nhớ thông qua trỏ bất hợp lệ; cụ thể, hai ngôn ngữ không kiểm tra xem liệu ghi vào mảng (cài đặt nhớ đệm) có nằm biên mảng hay khơng Tuy nhiên, cần lưu ý thư viện chuẩn lOMoARcPSD|11424851 C++, thư viện khuôn mẫu chuẩn - STL, cung cấp nhiều cách an toàn để lưu trữ liệu đệm, lập trình viên C tạo sử dụng tiện ích tương tự Cũng tính khác C hay C++, lập trình viên phải tự xác định lựa chọn xem họ có muốn chấp nhận hạn chế tốc độ chương trình để thu lại lợi ích tiềm (độ an tồn chương trình) hay khơng Một số biến thể C, chẳng hạn Cyclone, giúp ngăn chặn lỗi tràn đệm việc chẳng hạn gắn thông tin kích thước mảng với mảng Ngơn ngữ lập trình D sử dụng nhiều kỹ thuật đa dạng để tránh gần hết việc sử dụng trỏ kiểm tra biên người dùng xác định Nhiều ngôn ngữ lập trình khác cung cấp việc kiểm tra thời gian chạy, việc kiểm tra gửi cảnh báo ngoại lệ C C++ ghi đè liệu 2.4.2 Sử dụng thư viện an toàn Sử dụng thư viện viết tốt kiểm thử dành cho kiểu liệu trừu tượng mà thư viện thực tự động việc quản lý nhớ, có kiểm tra biên làm giảm xuất ảnh hưởng tượng tràn đệm 2.4.3 Chống tràn đệm stack Stack – smashing protection kỹ thuật dùng để phát hiện tượng tràn đệm phổ biến Kỹ thuật kiểm tra xem stack bị sửa đổi hay chưa hàm trả Nếu stack bị sửa đổi, chương trình kết thúc lỗi segmentation fault Chế độ Data Execution Prevention (cấm thực thi liệu) Microsoft bảo vệ trỏ không cho chúng bị ghi đè.Có thể bảo vệ stack cách phân tán stack thành hai phần, phần dành cho liệu phần dành cho bước trả hàm, phân chia dùng ngôn ngữ Forth 2.4.4 Bảo vệ không gian thực thi Kỹ thuật ngăn chặn việc thực thi mã stack hay heap Hacker sử dụng tràn đệm để chèn đoạn mã tùy ý vào nhớ chương trình, với việc bảo vệ khơng gian thực thi cố gắng chạy đoạn mã gây ngoại lệ Một số CPU hỗ trợ tính khơng kiểm tra liệu copy vào mảng có phù hợp với kích thước mảng hay khơng lOMoARcPSD|11424851 2.4.5 Ngẫu nhiên hóa sơ đồ khơng gian địa Là tính an ninh máy tính có liên quan đến việc xếp vùng liệu quan trọng (thường bao gồm nơi chứa mã thực thi vị trí thư viện, heap stack) cách ngẫu nhiên không gian địa tiến trình 2.4.6 Kiểm tra sâu gói tin Có thể phát việc cố gắng khai thác lỗi tràn đệm từ xa từ biên giới mạng Các kỹ thuật có khả ngăn chặn gói tin có chứa chữ ký vụ công biết chứa chuỗi dài lệnh No- Operation (NOP – lệnh rỗng không làm gì) Việc rà qt gói tin khơng phải phương pháp hiệu ngăn chặn cơng biết có nhiều cách để mã hóa lệnh NOP lOMoARcPSD|11424851 CHƯƠNG KẾT QUẢ THỰC NGHIỆM 3.1.Công cụ thực Oracle VM VirtualBox, Easy File Sharing Web Server Oracle VM VirtualBox tảng ứng dụng mã nguồn mở miễn phí, cho phép tạo, quản lý chạy máy ảo (VMs) Máy ảo máy tính có phần cứng mơ máy tính chủ Oracle VM VirtualBox cho phép bạn thiết lập nhiều máy ảo (VM) máy tính vật lý sử dụng chúng đồng thời với máy tính vật lý thật Mỗi máy ảo cài đặt thực thi hệ điều hành riêng mình, bao gồm phiên Microsoft Windows, Linux, BSD MS-DOS Hình 1: Phần mềm VirtualBox Easy File Sharing Web Server công cụ tốt giúp người dùng dễ dàng chia sẻ file cho người thân, đồng nghiệp khách hàng Nói cách khác Easy File Sharing Web Server Web server có hệ thống sở liệu lớn, cho phép share download file từ xa thơng qua trình duyệt qua mạng internet Hình 2: Phần mềm Easy File Sharing Web Server 7.2 lOMoARcPSD|11424851 3.2.Công cụ công tập tin Python 2.7 Python ngơn ngữ lập trình hướng đối tượng đa có cấu trúc liệu cấp cao mạnh mẽ hệ thống thư viện lớn Python hoàn toàn tạo kiểu động sử dụng chế cấp phát nhớ tự động, cú pháp rõ ràng, đơn giản Python 2.7 di chuyển ứng dụng lớn viết phiên cũ ngôn ngữ viết lại ngơn ngữ khác nhìn chung cơng việc lớn Hình 3: Tập tin exploit.py Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 3.3.Demo khai thác tràn nhớ đệm windows 10 Khởi động Oracle VM VirtualBox chuẩn bị hai máy :  Một máy hệ điều hành Windows (32 bit)  Máy hệ điều hành Windows 10 (32 bit) Hình 4: Máy hệ điều hành Win 10 Hình 5: Máy hệ điều hành Win Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 Các bước thực hiện: Bước 1: Khởi động Easy File Sharing Web Server phiên 7.2 kiểm tra IP, Port Bước 2: Mở Web mạng cục localhost Easy File Sharing Web Server phiên 7.2 Bước 3: Mở python 2.7 tạo file exploit.py Bước 4: Cấu hình khai thác lỗi python Bước 5: Mở Command Prompt win 10 truy cập python 2.7 theo đoạn code sau: cd \python27 sử dụng exploit.py để tràn nhớ đệm Bước 6: Chọn đối tượng IP, Port máy nạn nhân (win 7) theo đoạn code sau: C:\ python27\exploit.py 10.0.0.66 80 Bước 7: Tấn công máy nạn nhân Nếu thành công ứng dụng Easy File Sharing Web Server phiên 7.2 bị tràn nhớ đệm bắt buộc ngừng truy cập ứng dụng Bước 8: Công cụ máy tính (Calculator) xuất Hồn thành việc cơng làm tràn nhớ đệm Hình 6: Web mạng cục localhost 10 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 Hình 7: Ổ đĩa có localhost Hình 8: Truy cập python 2.7 win 10 11 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 Hình 9: Tấn cơng IP, Port máy nạn nhân (Win 7) Hình 10: Tấn cơng thành cơng 12 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 3.4.Hậu việc tràn nhớ đệm Lỗi tràn đệm xảy ứng dụng cố gắng ghi liệu vượt khỏi phạm vi đệm (giới hạn cuối giới hạn đầu đệm) Lỗi tràn đệm khiến ứng dụng ngừng hoạt động, gây liệu chí giúp kẻ cơng kiểm soát hệ thống tạo hội cho kẻ công thực nhiều thủ thuật khai thác khác Lỗi tràn đệm (Buffer Overflow) điều kiện bất thường Khi tiến trình lưu trữ liệu vượt ngồi biên nhớ đệm có chiều dài cố định Kết liệu đè lên nhớ liền kề Dữ liệu bị ghi đè bao gồm nhớ đệm khác Các biến liệu điều khiển luồng chảy chương trình (program flow control) 3.5.Cách phịng chống tràn nhớ đệm Address Space Layout Randomization (ASLR) – di chuyển ngẫu nhiên xung quanh không gian địa vùng liệu Thông thường, công Buffer Overflow cần biét vị trí executable code, việc ngẫu nhiên không gian địa hồn tồn vơ hiệu hóa cách thức cơng Bảo vệ việc thực thi liệu – Falg số vùng nhớ non-executable (không thể thực thi) executable (có thể thực thi) để ngăn chặn công chạy mã vùng non-executable Structured exception handler overwrite protection (SEHOP) – giúp ngăn chặn code độc hại cơng SEH (Ngoại lệ có cấu trúc) – hệ thống tích hợp sẵn để quản lý ngoại lệ (exception) phần cứng phần mềm Từ đó, ngăn chặn hacker lợi dụng kỹ thuật khai thác ghi đè SEH Ở cấp độ chức năng, việc ghi đè SEH đạt cách sử dụng stack-based Buffer Overflow dể ghi đè ghi đăng ký ngoại lệ, lưu trữ stack thread 13 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 CHƯƠNG KẾT LUẬN VÀ KIẾN NGHỊ Kết luận Trong thời đại công nghệ thông tin phát triển vũ bão, vấn đề an tồn thơng tin trở nên cấp thiết Lỗi tràn đệm hiểm họa gây an toàn cho hệ thống Do đó, nghiên cứu cách phịng chống công tràn đệm phải trọng để đảm bảo hệ thống an toàn Đến nay, lỗi tràn đệm tiếp tục tìm thấy nhiều phần mềm nhiều hệ điều hành khác Đó thực nguy nghiêm trọng, vấn đề tồn lâu cần quan tâm cách nghiêm túc Qua đề tài này, chúng em tìm hiểu cách phịng chống cơng này, kỹ thuật chống công tràn đệm Kiến nghị Hiện nay, hầu hết máy tính bị cơng Buffer Overflow, việc tìm hiểu cơng Buffer Overflow cần thiết cho người quản trị, hay người dùng máy tính thơng thường Tấn cơng Buffer Overflow thực cách dễ dàng, kẻ cơng khai thác liệu ngơn ngữ lập trình phổ biến Vì vậy, để phịng chống, doanh nghiệp, tổ chức, cá nhân ngồi việc sử dụng ngơn ngữ lập trình cao hay thư viện an tồn, cịn phải thường xun tổ chức rà quét để tìm lỗ hổng, ngăn chặn kịp thời công tràn đệm 14 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 TÀI LIỆU THAM KHẢO Tiếng Việt Tài liệu mơn học An tồn bảo mật thông tin, Trường Đại học Thủ Dầu Một Tài liệu Nguyễn Hữu Tuân, An toàn bảo mật thơng tin, NXB Hải Phịng 2008 Tiếng Anh Stack based Buffer Overflow Exploitation Tutorial – Saif IE Sherei Buffer Overflow Vulnerabilities and Attacks – Lecture Notes (Syracuse University) 15 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 16 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 17 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 18 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) lOMoARcPSD|11424851 19 Downloaded by nhung nhung (nhungnguyen949595@gmail.com) ... ĐẠI HỌC THỦ DẦU MỘT VIỆN KỸ THUẬT CƠNG NGHỆ BÁO CÁO MƠN HỌC AN TỒN VÀ BẢO MẬT THÔNG TIN KHAI THÁC TRÀN BỘ NHỚ ĐỆM TRÊN WINDOWS 10 GV: Lê Từ Minh Trí SVTH: Huỳnh Ngọc Quốc Tuấn MSSV: 2024802 0101 02... windows 10 Do sử dụng phổ biến nên tảng Windows tập trung nhiều ý Hacker 1.2 Nhiệm vụ đồ án Tìm hiểu:  Lỗi tràn nhớ đệm  Cách khai thác tràn nhớ đệm windows 10  Cách phòng tránh tràn nhớ đệm. .. Server 3.2 Công cụ công tập tin Python 2.7 3.3 Demo khai thác tràn nhớ đệm windows 10 3.4 Hậu việc tràn nhớ đệm 13 3.5 Cách phòng chống tràn nhớ đệm 13 ii lOMoARcPSD|11424851

Ngày đăng: 31/01/2023, 18:16

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

Tài liệu liên quan