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

TÌM HIỂU TẤN CÔNG HEARTBLEED

34 1,7K 14

Đ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 34
Dung lượng 1,43 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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):

Trang 1

HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA AN TOÀN THÔNG TIN



ĐỀ TÀI TÌM HIỂU TẤN CÔNG HEARTBLEED

Giáo viên hướng dẫn: KS Nguyễn Văn Nghị

Nhóm thực hiện :

Lớp :

Hà Nội, tháng 3 năm 2015

Trang 2

Nhóm 6 – Tìm hiểu tấn công HeartBleed

Ý KIẾN CỦA GIÁO VIÊN

2

Trang 3

Nhóm 6 – Tìm hiểu tấn công HeartBleed

MỤC LỤC

3

Trang 4

Nhóm 6 – Tìm hiểu tấn công HeartBleed

DANH MỤC HÌNH ẢNH

4

Trang 5

Nhóm 6 – Tìm hiểu tấn công HeartBleed

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ườitrê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ấtnhiều thông tin nhạy cảm, quan trọng Do đó môi trường kết nối Internet vô hìnhchung 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ácnhữ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ềntrong 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ôitrườ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 SSL/TLS: Chương này giới thiệu phương pháp tấn công heartbleed vào bộ giao thức

SSL/TLS

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

5

Trang 7

CHƯƠNG I: NGHIÊN CỨU PHƯƠNG PHÁP TẤN CÔNG HEARTBLEED VÀO BỘ GIAO

THỨC SSL/TLS1.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ộngrã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ínhnăng mở rộng heartbeat trên TLS Tính năng heartbeat chính là nguồn gốccho 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ậtkhẩ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ácliê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ỗilần kết nối

Năm 2011, Robin Seggelmann tại trường Đại học Duisburg-Essen đã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àoOpenSSL, 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ôngphá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àongà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ênbả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ỗ

Trang 8

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 ứngdụ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 ninhmạ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ấytê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 TLS/DTLS (một tiêuchuẩ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ếtqua SSL/TLS 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):

Hình 1.1 Heartbeat request (dạng bình thường)

Trang 9

Thông điệp Heartbeat request có cấu trúc như sau:

Theo như cấu trúc này thì độ dài dữ liệu payload_length tối đa là 16-bit

usigned integer, tức là Heartbeat request có thể yêu cầu server trả lại dữ liệu

có thể lên tới 64KB Chính điều này là nguyên nhân gây ra lỗ hổngHeartbleed

Cơ chế phát sinh lỗ hổng Heartbleed

Lỗ hổng này được bắt nguồn từ hai hàm tls1_process_heartbeat/dtls1

_process_heartbeat chứa trong hai file ssl/t1_lib.c và ssl/dl_both.c của thư

viện OpenSSL

Nội dung của hàm:

“dtls1_process_heartbeat/dtls1_process_heartbeat”:

int dtls1_process_heartbeat(SSL *s){

unsigned char *p = &s->s3->rrec.data[0], *pl;

unsigned short hbtype;

unsigned int payload;

unsigned int padding = 16; /* Use minimum padding */

/* Read type and payload length first */

Trang 10

unsigned char *buffer, *bp;

int r;

/* Allocate memory for the response, size is 1 byte

* message type, plus 2 bytes payload length, plus

* payload, plus padding

Cấu trúc bản ghi của SSL/TLS:

typedef struct ssl3_record_st {

int type; /* type of record */

unsigned int length; /* How many bytes available */

unsigned int off; /* read/write offset into 'buf' */

unsigned char *data; /* pointer to the record data */

unsigned char *input; /* where the decode bytes are */

unsigned char *comp; /* only used with decompression - malloc()ed */

unsigned long epoch; /* epoch number, needed by DTLS1 */

unsigned char seq_num[8]; /* sequence number, needed by DTLS1 */

} SSL3_RECORD;

Bản ghi SSLv3 này bao gồm 3 thành phần chính: type, length và data Khi client gửi tới server thông điệp Heartbeat request: thành phần data trong

Trang 11

bản ghi SSLv3 mà server nhận được chính là dữ liệu mà Heartbeat request.

Con trỏ p được dùng bởi server để xử lý bản ghi này theo cấu hình mặc định

sẽ trỏ tới byte đầu tiên trong bản ghi này, có cấu trúc được mô tả như sau:

Server sẽ tiến hành xử lý yêu cầu với đoạn code trong hàm

Xem xét đoạn code tiếp theo:

unsigned char *buffer, *bp;

int r;

/* Allocate memory for the response, size is 1 byte

* message type, plus 2 bytes payload length, plus

* payload, plus padding

Trang 12

Đoạn code này tạo ra một mảng động buffer hay chính là cấu trúc củaHeartbeat response và có kích thước lớn nhất là 1 2 65535 16+ + +

Khi đócon trỏ bp được trỏ vào buffer và dùng để ghi thông tin vào trong buffer Byteđầu tiên được ghi vào buffer sẽ là Heartbeat type: TLS1_HB_RESPONSE.Hàm s2n thì ngược với hàm n2s, nó sẽ lấy 16 bit giá trị trong payload đặt vào

2 bytes tiếp theo của buffer Hàm memcpy(bp, pl, payload) sẽ thực hiện saochép các byte payload từ pl vào bp (tức là sao chép toàn bộ Heartbeat data củaHeartbeat request)

Điều gì sẽ xảy ra nếu như độ dài thực tế của Heartbeat data không bằngvới độ dài payload_length được khai báo trong Heartbeat request?

Nếu payload_length lớn hơn thì hàm memcpy sẽ sao chép cả phần dữliệu tiếp theo ngay sau Heartbeat data trong bộ nhớ đang hoạt động của tiếntrình

Như vậy hacker có thể dùng Heartbeat request với việc khai độ dài

payload tăng lên tối đa là 64KB tới server thì có thể lấy được những thông tin

bí mật trong bộ nhớ hoạt động của server Đây chính là lỗ hổng Heartbleed(hình 1.2):

Trang 13

Hình 1.2 Tấn công Heartbleed

Những thông tin rò rỉ qua lỗ hổng

Bộ nhớ mà payload trong Heartbeat request trỏ tới cũng chính là bộ

nhớ mà OpenSSL dùng để lưu trữ nhưng thông tin bí mật khác:

• Khóa riêng của server được sử dụng trong một thời gian dài

• Khóa phiên TLS

• Dữ liệu bí mật như: mật khẩu

• Session ID (dãy giá trị phiên liên lạc)

Như vậy với tấn công thông qua lỗ hổng Heartbleed thì hacker có thể

có được những thông tin bí mật này

Trang 14

1.6.4 Giải pháp khắc phục và ngăn chặn tấn công

Kiểm tra độ dài thực tế của Heartbeat data (sửa trong source code)

if (1 + 2 + 16 > s->s3->rrec.length)

return 0; /* silently discard */

if (1 + 2 + payload + 16 > s->s3->rrec.length)

return 0; /* silently discard per RFC 6520 sec 4 */

Nâng cấp lên phiên bản mới 1.0.1g đã được vá lỗ hổng Heartbleed

Tính năng Heartbeat được bổ sung vào thư viện OpenSSL từ 03/2012

Vì vậy các phiên bản OpenSSL trong thời gian từ 03/2012 đến 04/2014 sẽ bịảnh hưởng ngoại trừ phiên bản OpenSSL 1.0.1g đã được 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 và các phiên bản cũ hơn không bị ảnh hưởng

Heartbleed không phải là lỗ hổng trong giao thức SSL/TLS mà là lỗilập trình trong thư viện mã nguồn mở OpenSSL Vì vậy có thể khẳng địnhrằng giao thức SSL/TLS là không bị phá vỡ và nó vẫn được coi là tiêu chuẩnvàng trong việc mã hóa thông tin để truyền trên mạng Internet theo đánh giácủa hãng bảo mật Synmatec Tuy nhiên, hơn 66% website trên toàn cầu sửdụng thư viện OpenSSL và rất nhiều website đang sử dụng phiên bản cũOpenSSL (từ phiên bản 1.0.1 tới 1.0.1f) mang nguy cơ bị tấn công khai thác

lỗ hổng Heartbleed Cho nên, yêu cầu đặt ra là các công ty cần cập nhật ngaylập tức phiên bản mới nhất của OpenSSL là phiên bản 1.0.1g đã được vá lỗhổng Heartbleed hoặc sử dụng những phiên bản không bị ảnh hưởng bởi lỗhổng này

Trang 15

CHƯƠNG II: CÀI ĐẶT VÀ THỰC HIỆN TẤN

CÔNG HEARTBLEED

Lỗ hổng Hearbleed có thể được khai thác theo những kịch bản khácnhau như: tấn công dịch vụ web an toàn, tấn công dịch vụ thư điện tử an toànhoặc tấn công mô hình mạng riêng ảo triển khai bởi phần mềm OpenVPN.Nội dung chương này trình bày việc cài đặt và thực hiện tấn công Heartbleed

để tấn công dịch vụ web an toàn bao gồm các nội dung chính sau:

• Mô hình cài đặt và thực hiện tấn công

• Cài đặt máy chủ web

• Cài đặt máy trạm

• Thực hiện tấn công khai thác lỗ hổng Heartbleed

2.1 Mô hình cài đặt và thực hiện tấn công

Hình 2.1 Mô hình cài đặt và thực hiện tấn công Heartbleed

Theo hình 2.1, máy chủ chạy hệ điều hành CentOS 6.5, được cài đặt bộ

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 cài đặt trình duyệt Firefox để sử dụng dịch vụ web từ máy chủ Máy cài

Trang 16

đặt tấn công chạy hệ điều hành Win7, được cài đặt công cụ

OpenSSLHeartbleedExploit.exe để tấn công và khai thác những thông tin bí

mật trong bộ nhớ RAM của máy chủ

2.2 Cài đặt máy chủ

2.2.1 Thiết lập cấu hình mạng

Thiết lập cấu hình mạng IP tĩnh cho máy chủ Web trong tập tin eth0

2.2.2 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 bằng cách sử dụng câu lệnh:

#vi /etc/named.conf

Chương trình thực hiện như sau:

Trang 18

$TTL 1D

@ IN SOA test.com root@test.com (

2014111301 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ); minimum

IN NS test.com.

IN A 192.168.2.10 www IN A 192.168.2.10

Zone nghịch test.nghich được khai báo trong tập tin /var/named/test.nghich

như sau:

$TTL 1D

@ IN SOA test.com root@test.com (

2014111301 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum

Khởi chạy dịch vụ DNS bằng câu lệnh service named start

Kiểm tra hoạt động của dịch vụ DNS đã cài đặt thông qua câu lệnh:

# nslookup test.com

Hình 2.2 Kiểm tra dịch vụ DNS

Trang 19

Như vậy dịch vụ DNS đã được cài đặt thành công.

2.2.3 Thiết lập Web site chứa lỗ hổng bảo mật heartbleed

Tạo thư mục chứa website:

#mkdir /var/www/html/web

Thông qua công cụ vi tạo các trang web như index.php,

authenticate.php, backend.php, database.php, process.php, logout.php trong

thư mục /var/www/html/web Nội dung các trang web này xem phụ lục 1.

Kiểm tra các gói openssl, mod_ssl đã được cài đặt trên máy chủ webbằng các câu lệnh sau:

#rpm –qa | grep ‘openssl’

#rpm –qa | grep ‘mod_ssl’

Hình 2.3 Kiểm tra các gói cài đặt openssl và mod_ssl

Như vậy, máy chủ web đã được cài sẵn các gói openssl và mod_ssl.Gói openssl được cài đặt ở đây là phiên bản 1.0.1e có dính lỗ hổng bảo mậtHeartbleed

Tạo khóa công khai RSA 2048 bit cho máy chủ web bằng câu lệnh:

#openssl genrsa –des3 –out ca.key 2048

Hình 2.4 Tạo khóa công khai cho máy chủ web

Trang 20

Tạo một Certificate Signing Request (CSR) kết hợp với server key vừatạo bằng câu lệnh:

#openssl req –new –key ca.key –out ca.csr

Hình 2.5 Tạo chứng chỉ số tự ký

Tạo một chứng chỉ số Certificate: Gửi tập tin ca.csr đến CA được kýtên –signed, sau khi được ký tên và trả về, tập tin sẽ có phần mở rộng crt Đặtchứng chỉ đã mã hóa vào nơi an toàn cùng với nơi chứa khóa riêng

#openssl x509 –in ca.csr –out ca.cert –req –signkey ca.key –days 365

Hình 2.6 Tạo một chứng chỉ số được ký bởi CA trong hạ tầng khóa công khai

X509

Trang 21

Chỉnh sửa tập tin /etc/httpd/conf/httpd.conf

Khởi động dịch vụ http bởi lệnh service httpd restart

Kiểm tra việc cài đặt https bằng việc truy cập vào trang web:

https://test.com

Hình 2.7 Giao diện trang web: https://test.com

Nhấp chuột vào biểu tượng khóa trên thanh địa chỉ để xem bộ mã dùng

để bảo vệ đường truyền dữ liệu:

Trang 22

Hình 2.8 Tham số an toàn bảo vệ www.test.com

Bấm nút ‘View Certificate’ để xem chứng chỉ số của máy chủ web:

Hình 2.9 Chứng chỉ số của máy chủ web www.test.com

Trang 23

2.2.4 Cài đặt cơ sở dữ liệu cho trang web www.test.com

Đăng nhập vào MySQL Server bằng câu lệnh:

#mysql –u root –p

Khi đăng nhập mysql sẽ yêu cầu người dùng đặt mật khẩu cho tài khoản

root Ở đây thì tài khoản root sẽ được đặt mật khẩu là ‘123456’.

Hình 2.10 Đăng nhập vào MySQL Server

Tạo cơ sở dữ liệu test cho trang web www.test.com và trong cơ sở dữ liệu này chứa một bảng user chứa thông tin người dùng bao gồm username và

password thông qua các lệnh:

mysql>create database test;

mysql> use test;

mysql>create table users(id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, username VARCHAR(200) NOT NULL, password CHAR(200) NOT NULL, PRIMARY KEY(id));

Cài đặt công cụ quản lý PhpMyAdmin Trước tiên, cài đặtPhpMyAdmin:

#yum install phpmyadmin

PhpMyAdmin được cài đặt thành công khi đăng nhập được vàolocalhost/phpmyadmin như hình 3.10 Quá trình đăng nhập sẽ sử dụng tài

khoản root và mật khẩu là 123456 của MySQL Server.

Trang 24

Hình 2.11 Cài đặt PhpMyAdmin thành công

Tạo thông tin một người dùng tên ‘trung’ với mật khẩu là ‘123456’ vào trong bảng user của cơ sở dữ liệu test bằng PhpMyAdmin Tại mục ‘Insert’

của cơ sở dữ liệu test tiến hành điền thông tin người dùng như hình 3.11, chọn

‘Go’ để hoàn thành

Hình 2.12 Thêm người dùng vào cơ sở dữ liệu

Ngày đăng: 26/03/2015, 22:18

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
2. Christopher Mayer. 20 year of SSL/TLS Research An Analysis Of The Internet’s Security Foundation. NDS Publishing (2014) Sách, tạp chí
Tiêu đề: 20 year of SSL/TLS Research An Analysis OfThe Internet’s Security Foundation. NDS Publishing
3. Joshua Davies. Implementing SSL/TLS Using Cryptography and PKI. Wiley Punlishing (2011) Sách, tạp chí
Tiêu đề: Implementing SSL/TLS Using Cryptography andPKI. Wiley Punlishing
4. Tim Diers. Christopher Allen. The TLS Protocol Version 1.0. (1990) Sách, tạp chí
Tiêu đề: The TLS Protocol Version 1.0
5. T.Dierks, C.Allen. RFC 2246-The TLS Protocol Version 1.0. (1999) Sách, tạp chí
Tiêu đề: RFC 2246-The TLS Protocol Version 1.0
6. Hong Lei Zhang. Three attacks in SSL/TLS protocol and their solution. The university of Auckland. (2002) Sách, tạp chí
Tiêu đề: Three attacks in SSL/TLS protocol and theirsolution. The university of Auckland
7. Pratik Guha Sarkar, Shawn Fitzgerald. Attacks on SSL: a comprehensive study of BEAST, CRIME. TIME. BREACH, LUCKY 13 & RC4 BIASES. https://www.isecpartners.com. (2013) Sách, tạp chí
Tiêu đề: Attacks on SSL: a comprehensive study of BEAST, CRIME. TIME. BREACH, LUCKY 13 & RC4 BIASES
Tác giả: Pratik Guha Sarkar, Shawn Fitzgerald
Năm: 2013
8. How Heartbleed Works: The Code Behind the Internet’s Security Nightmare. (2014) Sách, tạp chí
Tiêu đề: How Heartbleed Works
9. Jonathan Hobson. CentOS 6 Linux Server Cookbook. Packt Publishing (2013) Sách, tạp chí
Tiêu đề: CentOS 6 Linux Server Cookbook. PacktPublishing
10. Paul DuBois. MySQL Cookbook. O’Reilly Media. (2012) Sách, tạp chí
Tiêu đề: MySQL Cookbook
Tác giả: Paul DuBois
Nhà XB: O’Reilly Media
Năm: 2012
11. David Sklar, Adam Trachtenberg. Php Cookbook, Third Edition.O’Reilly Media. (2014) Sách, tạp chí
Tiêu đề: Php Cookbook, Third Edition."O’Reilly Media

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Heartbeat request (dạng bình thường) - TÌM HIỂU TẤN CÔNG HEARTBLEED
Hình 1.1. Heartbeat request (dạng bình thường) (Trang 8)
Hình 1.2. Tấn công Heartbleed - TÌM HIỂU TẤN CÔNG HEARTBLEED
Hình 1.2. Tấn công Heartbleed (Trang 13)
Hình 2.1. Mô hình cài đặt và thực hiện tấn công Heartbleed - TÌM HIỂU TẤN CÔNG HEARTBLEED
Hình 2.1. Mô hình cài đặt và thực hiện tấn công Heartbleed (Trang 15)
Hình 2.3. Kiểm tra các gói cài đặt openssl và mod_ssl - TÌM HIỂU TẤN CÔNG HEARTBLEED
Hình 2.3. Kiểm tra các gói cài đặt openssl và mod_ssl (Trang 19)
Hình 2.7. Giao diện trang web: https://test.com - TÌM HIỂU TẤN CÔNG HEARTBLEED
Hình 2.7. Giao diện trang web: https://test.com (Trang 21)
Hình 2.9. Chứng chỉ số của máy chủ web www.test.com - TÌM HIỂU TẤN CÔNG HEARTBLEED
Hình 2.9. Chứng chỉ số của máy chủ web www.test.com (Trang 22)
Hình 2.11. Cài đặt PhpMyAdmin thành công - TÌM HIỂU TẤN CÔNG HEARTBLEED
Hình 2.11. Cài đặt PhpMyAdmin thành công (Trang 24)
Hình 2.12. Thêm người dùng vào cơ sở dữ liệu - TÌM HIỂU TẤN CÔNG HEARTBLEED
Hình 2.12. Thêm người dùng vào cơ sở dữ liệu (Trang 24)
Hình 2.13. ‘Login OK’ kết nối tới cơ sở dữ liệu thành công - TÌM HIỂU TẤN CÔNG HEARTBLEED
Hình 2.13. ‘Login OK’ kết nối tới cơ sở dữ liệu thành công (Trang 26)
Hình 2.14. Thiết lập cấu hình mạng trên máy trạm 2.2.2. Truy cập www.test.com - TÌM HIỂU TẤN CÔNG HEARTBLEED
Hình 2.14. Thiết lập cấu hình mạng trên máy trạm 2.2.2. Truy cập www.test.com (Trang 27)
Hình 2.15. Đăng nhập máy chủ web thành công - TÌM HIỂU TẤN CÔNG HEARTBLEED
Hình 2.15. Đăng nhập máy chủ web thành công (Trang 28)
Hình 2.16. Thiết lập cấu hình mạng trên máy thực hiện tấn công - TÌM HIỂU TẤN CÔNG HEARTBLEED
Hình 2.16. Thiết lập cấu hình mạng trên máy thực hiện tấn công (Trang 29)
Hình 2.17. Đối phương không thể đăng nhập vào https://test.com - TÌM HIỂU TẤN CÔNG HEARTBLEED
Hình 2.17. Đối phương không thể đăng nhập vào https://test.com (Trang 30)
Hình 2.18. Đối phương không thể nghe lén được dữ liệu đi vào máy chủ web - TÌM HIỂU TẤN CÔNG HEARTBLEED
Hình 2.18. Đối phương không thể nghe lén được dữ liệu đi vào máy chủ web (Trang 31)
Hình 2.19. Tấn công khai thác lỗ hổng Heartbleed trên máy chủ web. - TÌM HIỂU TẤN CÔNG HEARTBLEED
Hình 2.19. Tấn công khai thác lỗ hổng Heartbleed trên máy chủ web (Trang 32)

TỪ KHÓA LIÊN QUAN

w