1. Trang chủ
  2. » Công Nghệ Thông Tin

Tấn công heartbleed

21 1,3K 5

Đ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

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 1,2 MB
File đính kèm Tấn công heartbleed.rar (2 MB)

Nội dung

Đây là bộ tài liệu đầy đủ nhất, bao gồm tìm hiểu, nghiên cứu về lỗ hổng bảo mật Heartbleed được khai thác trên điểm yếu của giao thức SSLv1, lỗ hổng thư viện OPEN SSL khiến cho hạng triệu website trong nước cũng như ngoài nước chịu ảnh hưởng nghiêm trọng và gây thiệt hại nặng thế về kinh tế.

KHOA AN TOÀN THÔNG TIN  BÁO CÁO BÀI TẬP LỚN MÔN HỌC Chủ đề số 06 TÌM HIỂU TẤN CÔNG HEARTBLEED Giảng viên: Thực hiện: HÀ NỘI, 2016 Ý KIẾN CỦA GIẢNG VIÊN MỤC LỤC 1.2 1.3 2.1 2.2 Phương thức công khai thác lỗ hổng Phướng pháp khắc phục ngăn chặn 13 Mô hình triển khai 15 Thiết lập máy chủ Webserver 15 DANH MỤC HÌNH ẢNH LỜI NÓI ĐẦU Hiện mạng internet phát tiển mạnh mẽ, đem lại lợi ích to lớn vật chất tinh thần cho người sử dụng :giao dịch chứng khoán,thương mại điện tử ,mua bán, dịch vụ giải trí internet internet Bên cạnh có rủ ro xuất vấn đề bảo mật thông tin cá nhân người dùng(tên tài khoản, passwork,thông tin cá nhân ) để giải vấn đề người ta sử dụng mật mã vào môi trường internet nhằm đảm bảo thông tin, liệu tránh kẻ xấu có mục đích công khai thác liệu 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 Internet là giải pháp được sử dụng rộng rãi và hiệu quả Khi đó, dữ liệu kênh liên lạc sẽ được mã hóa và xác thực để đảm bảo sự an toàn Nhưng bên cạnh xuất lỗ hổng thư viện OPEN SSL khiến cho hạng triệu website nước nước chịu ảnh hưởng nghiêm trọng gây thiệt hại nặng kinh tế Xuất phát từ lý trên, nhóm em chọn đề tài “Tìm hiểu công Heartbleed” Nội dung đề tài gồm có chương: Chương 1: Phương pháp công Heartbleed giao thức SSL/TLS Chương 2: Thực công Heartbleed CHƯƠNG PHƯƠNG PHÁP TẤN CÔNG HEARTBLEED VÀ BỘ GIAO THỨC SSL/TLS 1.1 Tổng quan Heartbleed 1.1.1 Lỗ hổng bảo mật Heartbleed Heartbleed tạm dịch “trái tim rỉ máu” lỗi bảo mật thư viện mật mã dạng mã nguồn mở OpenSSL, thư viện 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) Internet Lỗ hổng kết việc thiếu hàm kiểm tra giới hạn xử lý tính mở rộng heartbeat TLS (nguồn gốc cho tên gọi lỗ hổng heartbleed) Lỗ hổng cho phép đối phương lấy thông tin bí mật như: khóa riêng máy chủ, cookies mật phiên liên lạc người sử dụng Nhiều quan bảo mật uy tín giới đưa cảnh báo tư vấn bảo mật người quản trị hệ thống lỗi nghiêm trọng Lỗ hổng Heartbleed nghiêm trọng, làm lộ lượng lớn khóa mã cá nhân thông tin bí mật khác lên Internet để lộ nội dung nhớ máy chủ, nơi lưu trữ thông tin nhạy cảm nhất, bao gồm thông tin cá nhân tên truy cập, mật khẩu, số thẻ tín dụng Điều cho phép kẻ công lấy mã cá nhân giải mã thông tin mã hóa máy chủ, chí giả mạo máy chủ Hình Minh họa heartbleed 1.1.2 Quá trình phát Tính mở rộng Heartbeat giao thức TLS DTLS tiêu chuẩn mô tả cụ thể RFC 6520, công bố vào tháng năm 2012 Nó cho phép dễ dàng kiểm tra giữ trạng thái “sống” (alive) cho 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 lần kết nối Antti Karjalainen hai đồng nghiệp Riku Hietamäki Matti Kamunen hãng bảo mật Codenomicon kỹ sư Neel Mehta Google (hoạt động độc lập với Codenomicon) xem người phát lỗ hổng Karajalainen cho biết anh Hietamäki cập nhật tính cho thử nghiệm giao thức Codenomicon tìm Heartbleed Hình Logo heartbleed Tính thiết kế để nhận loại lỗ hổng phần mềm Ban đầu, Karjalainen nhận lỗi thêm hỗ trợ cho tính Heartbeat OpenSSL Heartbeat cho phép máy chủ gửi liệu tùy ý đến máy chủ khác Người nhận sau gửi trả lại xác liệu tới người gửi để xác nhận kết nối an toàn bị xâm nhập Codenomicon bắt đầu số thử nghiệm với giao thức Heartbeat Sau nhận thấy phản hồi lớn bất thường, Karjalainen Hietamäki thử kiểm tra khác Thử nghiệm xác nhận lỗ hổng Heartbeat làm lộ liệu ngoại lai Ngày tiếp theo, chuyên gia bảo mật Marko Laakso Codenomicon phát phiên OpenSSL mà giao thức thử nghiệm sử dụng làm lộ khóa cá nhân từ máy chủ “Khóa cá nhân “báu vật đế vương” Internet Chúng dùng để khẳng định bạn đích thực bạn Vì thế, trở thành lỗ hổng tồi tệ lịch sử Internet”, Karjalainen giải thích Codenomicon vá lỗ hổng thông báo cho hãng khác Công ty đặt tên cho Heartbleed, mua tên miền heartbleed.com 1.2 Phương thức công khai thác lỗ hổng 1.2.1 Tính heartbleed TLS Heartbeat chế thiết kế để giữ kết nối TLS/DTLS (một tiêu chuẩn an ninh công nghệ toàn cầu tạo liên kết mã hóa client server) mà không cần tạo liên kết thủ tục tạo liên kết qua SSL/TLS phức tạp nhiều thời gian Cơ chế TLS Hearbeat thiết kế phép kết nối lưu giữ trường hợp liệu kênh truyền Heartbeat messages gửi từ đầu kết nối (Peer_1) với liệu độ dài payload Đầu (Peer_2) sau nhận message trả lời xác phần liệu mà nhận từ peer_1 Hình Tính heartbleed TLS Cấu trúc request RFC 6520 định nghĩa sau: struct { HeartbeatMessageType type; uint16 payload_length; opaque payload[HeartbeatMessage.payload_length]; opaque padding[padding_length]; } HeartbeatMessage; Thông điệp heartbleed request: Theo cấu trúc độ dài liệu payload_length tối đa 16-bit usigned integer, tức Heartbeat request yêu cầu server trả lại liệu lên tới 64KB Chính điều nguyên nhân gây lỗ hổng Heartbleed 1.2.2 Cơ chế phát sinh lỗi heartbleed Lỗ hổng bắt nguồn từ hai hàm tls1_process_heartbeat/dtls1 _process_heartbeat chứa hai file ssl/t1_lib.c ssl/dl_both.c thư viện OpenSSL /* Read type and payload length first */ + hbtype = *p++; + n2s(p, payload); + pl = p; + + if (s->msg_callback) + s->msg_callback(0, s->version, TLS1_RT_HEARTBEAT, + &s->s3->rrec.data[0], s->s3->rrec.length, + s, s->msg_callback_arg); + + if (hbtype == TLS1_HB_REQUEST) + { + unsigned char *buffer, *bp; + int r; + + /* Allocate memory for the response, size is bytes + * message type, plus bytes payload length, plus + * payload, plus padding + */ + buffer = OPENSSL_malloc(1 + + payload + padding); + bp = buffer; + + /* Enter response type, length and copy payload */ + *bp++ = TLS1_HB_RESPONSE; + s2n(payload, bp); + memcpy(bp, pl, payload); + + r = ssl3_write_bytes(s, TLS1_RT_HEARTBEAT, buffer, + payload + padding); Bản ghi SSLv3 bao gồm thành phần chính: type, length data Khi client gửi tới server thông điệp Heartbeat request: thành phần data ghi SSLv3 mà server nhận liệu mà Heartbeat request Con trỏ p dùng server để xử lý ghi theo cấu hình mặc định trỏ tới byte ghi này, có cấu trúc mô tả sau: 10 Server tiến hành xử lý yêu cầu với đoạn code hàm dtls1_process_heartbeat: /* Read type and payload length first */ hbtype = *p++; n2s(p, payload); pl = p; Byte chứa heartbleed type Hàm n2s đẩy giá trị byte từ p sang payload.p biến chứa độ dài payload Xét đoạn code sau: unsigned char *buffer, *bp; int r; /* Allocate memory for the response, size is byte * message type, plus bytes payload length, plus * payload, plus padding */ buffer = OPENSSL_malloc(1 + + payload + padding); bp = buffer; Đoạn code cho ta thấy, chương trình cấp phát vùng nhớ theo yêu cầu request từ client có kích thước lên tới 1+ + 16 + 65535, 64kb Bến trỏ bp thành pointer để truy xuất vùng nhớ Xét tiếp: /* Enter response type, length and copy payload */ *bp++ = TLS1_HB_RESPONSE; s2n(payload, bp) 11 memcpy(bp, pl, payload); Hàm s2n hàm đảo hàm n2s, lấy 16 bit giá trị payload đặt vào bytes bp Như đẩy xác độ dài payload request Sau hàm memcpy() chép payload bytes từ pl(phần liệu đầu vào request) sang bp trỏ tời buffer Sau vùng nhớ trả ngược xác cho peer client Điều xảy độ dài thực tế Heartbeat data không với độ dài payload_length khai báo Heartbeat request? Nếu payload_length lớn hàm memcpy chép phần liệu sau Heartbeat data nhớ hoạt động tiến trình Như hacker dùng Heartbeat request với việc khai độ dài payload tăng lên tối đa 64KB tới server lấy thông tin bí mật nhớ hoạt động server Đây lỗ hổng Heartbleed Hình Cơ chế phát sinh lỗi heartbleed 12 1.2.3 Thông tin rò rỉ qua lỗ hổng heartbleed Bộ nhớ mà payload Heartbeat request trỏ tới nhớ mà OpenSSL dùng để lưu trữ thông tin bí mật khác: • • • • Khóa riêng server sử dụng thời gian dài Khóa phiên TLS Session ID (dãy giá trị phiên liên lạc) Các liệu nhạy cảm khác : ví dụ Password, Cookie Bất phần thông tin liệt kê phía cho phép kẻ công giải mã liệu phiên SSL ăn trộm thông tin nhạy cảm Tuy nhiên, kịch lấy private key server kịch tồi tệ Khi có private key, kẻ công thực giải mã session thực trao đổi trước (nếu sử dụng chế bắt tay non-PFS ) tiến hành mạo danh server để kết nối với client Nguy hiểm việc khai thác không để lại dấu vết Hình Thông tin bị rò rỉ qua lỗ hổng heartbleed 1.3 Phướng pháp khắc phục ngăn chặn  Sửa code 13 Bổ sung thêm ràng buộc cho pl: /* Read type and payload length first */ if (1 + + 16 > s->s3->rrec.length) return 0; /* silently discard */ hbtype = *p++; n2s(p, payload); if (1 + + payload + 16 > s->s3->rrec.length) return 0; /* silently discard per RFC 6520 sec */ pl = p;  Nâng cấp lên phiên 1.0.1g vá lỗ hổng Heartbleed Tính Heartbeat bổ sung vào thư viện OpenSSL từ 03/2012 Vì phiên OpenSSL thời gian từ 03/2012 đến 04/2014 bị ảnh hưởng ngoại trừ phiên OpenSSL 1.0.1g vá lỗ hổng: • OpenSSL 1.0.1 tới 1.0.1f bị ảnh hưởng • OpenSSL 1.0.1g vá lỗ hổng nên không bị ảnh hưởng • OpenSSL 1.0.0 phiên cũ không bị ảnh hưởng Heartbleed lỗ hổng giao thức SSL/TLS mà lỗi lập trình thư viện mã nguồn mở OpenSSL Vì khẳng định giao thức SSL/TLS không bị phá vỡ coi tiêu chuẩn vàng việc mã hóa thông tin để truyền mạng Internet theo đánh giá hãng bảo mật Synmatec Tuy nhiên, 66% website toàn cầu sử dụng thư viện OpenSSL nhiều website sử dụng phiên cũ OpenSSL (từ phiên 1.0.1 tới 1.0.1f) mang nguy bị công khai thác lỗ hổng Heartbleed Cho nên, yêu cầu đặt công ty cần cập nhật phiên OpenSSL phiên 1.0.1g vá lỗ hổng Heartbleed sử dụng phiên không bị ảnh hưởng lỗ hổng 14 CHƯƠNG THỰC HIỆN TẤN CÔNG HEARTBLEED 2.1 Mô hình triển khai Hình Mô hình thực công Máy chủ chạy hệ điều hành CentOS 6.5, cài đặt mã nguồn mở OpenSSL, hạ tầng khóa công khai X509 cung cấp dịch vụ web an toàn (https) và DNS server Máy trạm chạy hệ điều hành Window XP, cài đặt trình duyệt Firefox để sử dụng dịch vụ web từ máy chủ Máy cài đặt công chạy hệ điều hành Win7, cài đặt công cụ WireShark, OpenSSLHeartbleedExploit.exe để công khai thác thông tin bí mật nhớ RAM máy chủ 2.2 Thiết lập máy chủ Webserver a Thiết lập cấu hình IP tĩnh Thiết lập cấu hình mạng IP tĩnh cho máy chủ Web tập tin ifcfg-eth0 #nano /etc/sysconfig/network-scripts/ifcfg-eth0 15 Hình Thiết lập IP tĩnh cho server b Thiết lập cấu hình dịch vụ DNS Thiết lập cấu hình tập tin named.conf cách sử dụng câu lệnh: #nano /etc/named.conf 16 Hình Cấu hình DNS Thiết lập cấu hình tập tin zone thuận zone nghịch cho tên miền www.heartbleed.net: • Zone thuận heartbleed.db /var/named/heartbleed.db sau: khai báo tập tin 17 Hình Thiết lập zone thuận • Zone nghịch heartbleednghich.db khai báo tập tin /var/named/heartbleednghich.db sau: Hình 10 Thiết lập zone nghịch 18 Cấu hình cài đặt name server máy chủ Web, tập tin /etc/resolv.conf: nameserver 172.16.1.10 Khởi chạy dịch vụ DNS câu lệnh service named start Kiểm tra hoạt động dịch vụ DNS cài đặt thông qua câu lệnh: #nslookup heartbleed.net 19 KẾT LUẬN KẾT LUẬN Sau thời gian tìm hiểu nghiên cứu đề tài kết chúng em đạt : - Nghiên cứu phương pháp công giao thức SSL/TLS Trong phần em đã nghiên cứu được những vấn đề bản về những tấn công điển hình lên bộ giao thức SSL/TLS - Cài đặt thực công Heartbleed: Do kiến thức có hạn nên chúng em gặp khó khăn việc cài đặt thực công lỗ hổng OPEN SSL nên phần demo chưa hoàn thiện , chúng em cố gắng nghiên cứu hoàn thiện demo cách sớm để báo cáo với thầy Kết luận: Trong nội dung đề tài nhóm em cố gắng tìm hiểu nghiên cứu vấn đề phương pháp công giao thức SSL/TLS Tuy nhiên, thời gian kiến thức có hạn nên đề tài tránh thiếu sót định Rất mong đóng góp ý kiến thầy cô bạn để đề tài hoàn thiện Nhóm em xin chân thành cảm ơn! 20 TÀI LIỆU THAM KHẢO [1]https://en.wikipedia.org/wiki/Heartbleed [2]https://hiddenbits.org/security/software-security/giai-phau-opensslheartbleed-bug [3]http://ictnews.vn/cntt/bao-mat/lo-hong-trai-tim-ri-mau-heartbleed-duocphat-hien-nhu-the-nao-115981.ict [4]https://alexandreborgesbrazil.files.wordpress.com/2014/04/hearbleed_atta ck_version_a_1.pdf [5] Một số tài liệu tham khảo khác internet 21

Ngày đăng: 19/07/2016, 11:00

TỪ KHÓA LIÊN QUAN

w