MỤC LỤC LỜI NÓI ĐẦU 5 CHƯƠNG I: NGHIÊN CỨU PHƯƠNG PHÁP TẤN CÔNG HEARTBLEED VÀO BỘ GIAO THỨC SSLTLS 6 1.1.1. Tấn công OpenSSL dựa trên lỗ hỗng Heartbleed 6 1.1.2. Quá trình phát hiện 6 1.1.3. Phương pháp tấn công và khai thác lỗ hổng 7 1.6.4. Giải pháp khắc phục và ngăn chặn tấn công 13 CHƯƠNG II: CÀI ĐẶT VÀ THỰC HIỆN TẤN CÔNG HEARTBLEED 14 2.1. Mô hình cài đặt và thực hiện tấn công 14 2.2. Cài đặt máy chủ 15 2.2.1. Thiết lập cấu hình mạng 15 2.2.2. Thiết lập cấu hình dịch vụ DNS 15 2.2.3. Thiết lập Web site chứa lỗ hổng bảo mật heartbleed 18 2.2.4. Cài đặt cơ sở dữ liệu cho trang web www.test.com 22 2.2. Cài đặt máy trạm 25 2.2.1. Thiết lập cấu hình mạng 25 2.2.2. Truy cập www.test.com 26 2.3. Tấn công khai thác lỗ hổng Heartbleed 27 2.3.1. Cài đặt mạng trên máy thực hiện tấn công 27 2.3.2. Tấn công khai thác lỗ hổng Heartbleed 28 KẾT LUẬN 32 TÀI LIỆU THAM KHẢO 33 PHỤ LỤC 34 DANH MỤC HÌNH ẢNH LỜI NÓI ĐẦU Mạng Internet mang lại cho con người những lợi ích to lớn, nó giúp mọi người trên thế giới xích lại gần nhau hơn, chia sẻ thông tin và liên lạc với nhau một cách dễ dàng hơn. Lượng thông tin được chia sẻ và trao đổi ngày càng lớn, trong đó có rất nhiều thông tin nhạy cảm, quan trọng. Do đó môi trường kết nối Internet vô hình chung lại là một môi trường dễ dàng cho những kẻ xấu lợi dụng để tấn công khai thác những dữ liệu quan trọng hay thực hiện những mục đích phá hoại. Do vậy nhu cầu đặt ra là tìm ra những giải pháp bảo vệ thông tin nhạy cảm, quan trọng được truyền trong môi trường mạng. Để bảo vệ thông tin trên mạng, chúng ta có thể can thiệp mật mã vào trong môi trường internet nhằm đảm bảo thông tin, dữ liệu tránh được những kẻ xấu có mục đích tấn công khai thác dữ liệu cũng như phá hoại.Trong đó, giải pháp sử dụng bộ giao thức SSL để thiết lập các kênh truyền tin an toàn trên Internet là giải pháp được sử dụng rộng rãi và hiệu quả. Khi đó, dữ liệu trên kênh liên lạc sẽ được mã hóa và xác thực để đảm bảo sự an toàn. Xuất phát từ lý do trên, nhóm em đã chọn đề tài “Tìm hiểu tấn công heartbleed” do thầy Nguyễn Văn Nghị hướng dẫn. Nội dung của đồ án gồm có 2 chương: Chương I: Nghiên cứu phương pháp tấn công heartbleed vào bộ giao thức SSLTLS: Chương này giới thiệu phương pháp tấn công heartbleed vào bộ giao thức SSLTLS Chương II: Cài đặt và thực hiện tấn công HeartBleed: Chương này trình bày những vấn đề cơ bản về cài đặt và thực hiện tấn công HeartBleed. CHƯƠNG I: NGHIÊN CỨU PHƯƠNG PHÁP TẤN CÔNG HEARTBLEED VÀO BỘ GIAO THỨC SSLTLS 1.1. Tấn công HeartBleed 1.1.1. Tấn công OpenSSL dựa trên lỗ hỗng Heartbleed Heartbleed tạm dịch là “trái tim rỉ máu” là một lỗi về bảo mật trong thư viện mật mã dạng mã nguồn mở OpenSSL, thư viện này được sử dụng rộng rãi để phát triển giao thức bảo mật tầng truyền tải (TLS) trên Internet. Lỗ hổng này chính là kết quả của việc thiếu hàm kiểm tra giới hạn khi xử lý tính năng mở rộng heartbeat trên TLS. Tính năng heartbeat chính là nguồn gốc cho tên gọi của lỗ hổng heartbleed. Lỗ hổng này cho phép đối phương lấy được những thông tin bí mật như: khóa riêng của máy chủ, cookies và mật khẩu phiên liên lạc của người sử dụng. Nhiều cơ quan bảo mật uy tín trên thế giới đã đưa ra cảnh báo và tư vấn bảo mật đối với những người quản trị hệ thống về lỗi nghiêm trọng này. 1.1.2. Quá trình phát hiện Tính năng mở rộng Heartbeat trong các giao thức TLS và DTLS là một bộ tiêu chuẩn được mô tả cụ thể trong RFC 6520, công bố vào tháng 2 năm 2012. Nó cho phép dễ dàng kiểm tra và giữ trạng thái “sống” (alive) cho các liên kết thông tin bảo mật mà không cần phải tiến hành thỏa thuận lại cho mỗi lần kết nối. Năm 2011, Robin Seggelmann tại trường Đại học DuisburgEssen đã phát triển tính năng mở rộng Heartbeat cho bộ thư viện mã nguồn mở OpenSSL. Sau khi Seggelmann yêu cầu đưa tính năng mới này của mình vào OpenSSL, thay đổi của ông đã được Stephen N. Henson, một trong bốn nhà phát triển chính của OpenSSL tiến hành xem xét, đánh giá. Henson đã không phát hiện ra lỗi trong quá trình phát triển của Seggelmann và đã đưa đoạn mã nguồn không hoàn thiện này vào thư viện mã nguồn mở của OpenSSL vào ngày 31 tháng 12 năm 2011. Đoạn mã chứa lỗ hổng bảo mật này được sử dụng rộng rãi trong phiên bản OpenSSL 1.0.1 ngày 14 tháng 3 năm 2012. Tính năng heartbeat được kích hoạt và chính là nguyên nhân gây ra các phiên bản OpenSSL chứa lỗ hổng bảo mật Heartbleed. Neel Mehta thành viên nhóm bảo mật của công ty Google đã công bố lỗ hổng Heartbleed vào ngày 1 tháng 4 năm 2014. Lỗ hổng này kéo theo lỗi nghiêm trọng khi xử lý bộ nhớ do thực hiện tính năng mở rộng Heartbeat gây ra. Đối phương có thể ăn cắp lượng thông tin lên đến 64KB từ bộ nhớ của ứng dụng với mỗi lần thực hiện hàm heartbeat. Lỗ hổng do một kỹ sư tại công ty Codenomicon, một công ty an ninh mạng của Phần Lan đặt tên đồng thời gắn với logo trái tim rỉ máu. Họ đã lấy tên miền là Heartbleed.com nhằm giải thích lỗi này cho công chúng. 1.1.3. Phương pháp tấn công và khai thác lỗ hổng Phương thức hoạt động của tính năng Heartbeat trên TLS Heartbeat là cơ chế được thiết kế để giữ kết nối TLSDTLS (một tiêu chuẩn an ninh công nghệ toàn cầu tạo ra một liên kết được mã hóa giữa client và server) mà không cần tạo ra một liên kết mới vì các thủ tục tạo mới liên kết qua SSLTLS phức tạp và mất nhiều thời gian. Thông điệp Heartbeat Request được gửi từ phía client tới server bao gồm dữ liệu tùy chọn và độ dài của dữ liệu. Server nhận được thông điệp này sẽ phải gửi lại phía client chính xác dữ liệu yêu cầu (hình 1.1):