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

tìm hiểu về các cách tấn công phổ biến nhất hiện nay và cách phòng chống

119 1,4K 1

Đ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 119
Dung lượng 6,76 MB

Nội dung

Đề tài này chúng em sẽ xem xét các kiểu tấn công cơ bản và cách phòng chống tấn công web server bằng công cụ Modsecurity trên hệ điều hành windown 7, từ đây chúng ta sẽ có một cách nhìn tổng thể về bảo mật web server apache.

Trang 1

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Giáo viên hướng dẫn

ThS Nguyễn Thị Thanh Vân

Trang 2

NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Giáo viên phản biện

Trang 3

MỤC LỤC

MỤC LỤC 3

DANH MỤC HÌNH ẢNH 6

PHẦN MỞ ĐẦU 10

GIỚI THIỆU 11

TÍNH CẤP THIẾT CỦA ĐỀ TÀI 11

PHẠM VI NGHIÊN CỨU 11

PHƯƠNG PHÁP NGHIÊN CỨU 12

PHẦN NỘI DUNG 13

CHƯƠNG 1 HTTP 14

1.1 GIỚI THIỆU VỀ HTTP: 14

1.1.1 Tổng quan về HTTP: 14

1.1.2 Lớp giao thức HTTP: 15

1.1.3 Cơ chế hoạt động chung: 16

1.1.4 Hoạt động HTTP: 18

1.1.4.1 Client and server 18

1.1.5 Thông điệp 28

1.1.5.1 HTTP Request: 28

1.1.5.2 HTTP Response 30

1.2 CÁC LỖI BẢO MẬT: 32

1.3 BIỆN PHÁP: 32

CHƯƠNG 2 APACHE 33

2 1 GIỚI THIỆU VỀ APACHE WEB SERVER: 33

2.2 TỔ CHỨC WEB SERVER: 34

2.3 CÀI ĐẶT: 35

2.4 KIỂM TRA APACHE 36

Trang 4

CHƯƠNG 3 MODSECURITY 37

3.1 GIỚI THIỆU: 37

3.1.1 Sơ lược: 37

3.1.2 Chức năng: 37

3.1.3 Mô hình và các giai đoạn xử lý: 38

3.2 CÀI ĐẶT VÀ CẤU HÌNH: 40

3.3 VIẾT RULE: 44

3.3.1 Biểu thức chính quy: 44

3.3.2 Cấu trúc của rules: 45

3.3.2.1 Cấu tạo của rule: 45

3.3.2.2 Biến (variables) 46

3.3.2.3 Toán tử (operator) 56

3.3.2.4 Transformation functions 59

3.3.2.5 Actions 61

CHƯƠNG 4 NGĂN CHẶN CÁC TẤN CÔNG VỚI MODSECURITY 70

4.1 HTTP FINGERPRINTING 70

4.1.1 Cách thức HTTP Fingerprinting hoạt động 71

4.1.2 Thực nghiệm phát hiện và chặn HTTP Fingerprinting 76

4.2 BLOCKING PROXIED REQUEST 78

4.3 SQL INJECTION 79

4.3.1 Các hình thức tấn công Sql Injection cơ bản 80

a Lấy dữ liệu từ nhiều bảng với từ khóa Union 80

b Nhiều câu truy vấn trong một lời gọi 81

c Đọc nội dung của file 81

d Ghi dữ liệu ra file 81

4.3.2 Hình thức tấn công Sql injection nâng cao (Blind) 81

4.3.3 Ngăn chặn tấn công bằng SQL Injection 82

4.3.4 Thực nghiệm phát hiện và chặn SQL Injection 83

Trang 5

4.3.5 Thực nghiệm phát hiện và chặn Blind SQL Injection 92

4.4 TẤN CÔNG BRUTE FORCE 98

4.4.1 Thực nghiệm phát hiện và chặn Brute force: 100

4.5 NULL BYTE ATTACKS 107

4.6 DIRECTORY INDEXING 109

4.7 CROSS-SITE SCRIPTING 110

4.7.1 Tìm hiểu về Cross-site scripting 110

4.7.2 Phân loại XSS 111

4.7.3 Hoạt động của XSS 113

4.7.4 Thực nghiệm phát hiện và chặn XSS attack 115

PHẦN KẾT LUẬN 120

KẾT LUẬN 121

TÀI LIỆU THAM KHẢO 122

Trang 6

DANH MỤC HÌNH ẢNH

Hình 1.1 Quá trình thực hiện yêu cầu và trao đổi thông tin 15

Hình 1.2 Mô hình HTTP đơn giản 17

Hình 1.3 Mô hình HTTP phức tạp 17

Hình 1.4 Mô hình HTTP phức tạp với bộ nhớ cache 18

Hình 1.5 Khởi tạo kết nối giữa Client và Server 19

Hình 1.6 Quá trình “bắt tay ba bước” 20

Hình 1.7 Hoạt động GET của HTTP 23

Hình 1.8 Hoạt động của Post 24

Hình 1.9 Hoạt động của PUT 24

Hình 1.10 Hoạt động của DELETE 25

Hình 1.11 Hoạt động của OPTIONS 26

Hình 1.12 Hoạt động của HEAD 27

Hình 1.13 Hoạt động của TRACE 27

Hình 1.14 Hoạt động của TRACE khi có nhiều Server 28

Hình 1.15 Cấu trúc của HTTP Request 28

Hình 1.16 Thông điệp thực tế được gửi từ Internet Explorer 29

Hình 1.17 Các thành phần của Request- Line 29

Hình 1.18 Bảng chi tiết phương thức của HTTP 30

Hình 1.19 Cấu trúc của HTTP Response 30

Hình 1.20 Nội dung thực tế của HTTP response 31

Hình 1.21 Thành phần của Status- Line 31

Hình 1.22 Bảng mã trạng thái trả về của web server 32

Hình 2.1 Biểu đồ so sánh giữa các Web Server 10/2012 33

Hình 2.2 Sơ đồ cung cấp tài nguyên của Apache Web Server 35

Hình 2.3 Giao diện quản lý của bộ công cụ phần mền 35

Hình 2.4 Giao diện phần mền xampp 36

Hình 3.1 Mô hình tổng quan của modsecurity 37

Hình 3.2 Quá trình xử lý các request của Apache và ModSecurity 38

Trang 7

Hình 3.3 Các pha xử lý của modsecurity 40

Hình 3.4 Bảng biểu thức chính quy 44

Hình 3.5 Bảng các metacharacter 45

Hình 3.6 Bảng các chỉ thị của modsecurity 45

Hình 3.7 Bảng danh sách Request Variables 50

Hình 3.8 Bảng danh sách Server Variables 51

Hình 3.9 Bảng danh sách Response Variables 53

Hình 3.10 Bảng danh sách Miscellaneous Variales 54

Hình 3.11 Bảng danh sách các Parsing Flag 55

Hình 3.12 Bảng danh sách các biến collections 56

Hình 3.13 Bảng danh sách Time Variables 56

Hình 3.14 Bảng danh sách toán tử khớp chuỗi 57

Hình 3.15 Bảng danh sách toán tử số 58

Hình 3.16 Bảng danh sách toán tử kiểm chứng 58

Hình 3.17 Bảng danh sách toán tử hỗn hợp 59

Hình 3.18 Bảng danh sách các hàm biến đổi 61

Hình 3.19 Bảng danh sách các Disruptive Actions 63

Hình 3.20 Bảng danh sách Flow Action 63

Hình 3.21 Bảng danh sách Metadata Action 64

Hình 3.22 Bảng danh sách Variable Action 66

Hình 3.23 Bảng danh sách Logging Action 67

Hình 3.24 Bảng danh sách Special Action 68

Hình 3.25 Bảng danh sách Miscellaneous actions 69

Hình 4.1 Kết quả khi sử dụng phần mền httprecon 71

Hình 4.2 Kết quả thay đổi server banner với ModSecurity 72

Hình 4.3 Request HTTP DELETE không hợp lệ 73

Hình 4.4 Request sai phiên bản HTTP 74

Hình 4.5 Request sai giao thức 75

Hình 4.6 Giao diện httprecon 76

Trang 8

Hình 4.7 Kết quả sau khi luật được áp dụng 78

Hình 4.8 Hình minh họa sự khác biệt giữa Blind SQL injection và Sql Injection .82 Hình 4.9 Các chuỗi giúp ngăn chặn Sql injection 83

Hình 4.10 Giao diện đăng nhập của dvwa 84

Hình 4.11 Giao diện của dvwa 84

Hình 4.12 Thực hiện kiểm tra SQL Injection 85

Hình 4.13 Kết quả thực hiện câu lệnh trên 86

Hình 4.14 Kết quả thực hiện câu lệnh trên 86

Hình 4.15 Kết quả thực hiện câu lệnh trên 87

Hình 4.16 Kết quả thực hiện câu lệnh trên 87

Hình 4.17 Kết quả thực hiện câu lệnh trên 88

Hình 4.18 Kết quả thực hiện câu lệnh trên 89

Hình 4.19 Kết quả thực hiện câu lệnh trên 89

Hình 4.20 Giao diện trang web md5decoder.org 90

Hình 4.21 Đăng nhập bằng username và password mới 90

Hình 4.22 Đăng nhập thành công với username và password mới 91

Hình 4.23 Kết quả sau khi thêm luật vào 92

Hình 4.24 Giao diện đăng nhập của dvwa 93

Hình 4.25 Chuyển đổi cấp độ bảo mật của dvwa 93

Hình 4.26 Chọn chế độ tấn công SQL Injection (Blind) 94

Hình 4.27 Kết quả thực hiện 94

Hình 4.28 Kết quả thực hiện 95

Hình 4.29 Kết quả thực hiện 95

Hình 4.30 Kết quả thực hiện 95

Hình 4.31 Kết quả thực hiện 96

Hình 4.32 Quá trình mã hóa chuỗi /xampp/passwords.txt 97

Hình 4.33 Kết quả thực hiện 98

Hình 4.34 Giao diện đăng nhập của wordpress 101

Hình 4.35 Thay đổi proxy của localhost 102

Trang 9

Hình 4.36 Giao diện của phần mền Burp Suite 102

Hình 4.37 Bắt gói tin thành công 103

Hình 4.38 Chuyển sang Intruder để tấn công Brute force 103

Hình 4.39 Chọn chế độ tấn công Brute force ở thẻ Payloads 104

Hình 4.40 Khởi động quá trình tấn công 104

Hình 4.41 Kết quả của quá trình tấn công 105

Hình 4.42 Kết quả khi thêm luật 106

Hình 4.43 Kết quả khi thêm luật 107

Hình 4.44 Mô tả về Store XSS Attacks 111

Hình 4.45 Mô tả về Reflected XSS Attacks 112

Hình 4.46 Danh sách các kí tự 115

Hình 4.47 Danh sách các biểu thức chính quy 115

Hình 4.48 Giao diện đăng nhập của dvwa 116

Hình 4.49 Giao diện của dvwa 116

Hình 4.50 Quá trình nhập dữ liệu để tấn công 117

Hình 4.51 Kết quả khi submit bằng click vào nút Sign Guestbook 117

Hình 4.52 Quá trình để reset lại database 118

Hình 4.53 Rule để ngăn chặn tấn công xss 118

Hình 4.54 Kết quả khi thêm luật 119

Trang 10

PHẦN MỞ ĐẦU

Trang 11

GIỚI THIỆU

Cùng với sự phát triển của công nghệ thông tin, công nghệ mạng máy tính và

sự phát triển của mạng Internet ngày càng đa dạng và phong phú Các dịch vụ trênmạng đã thâm nhập vào hầu hết các lĩnh vực trong đời sống xã hội Các thông tin trên Internet cũng đa dạng về nội dung và hình thức, trong đó có rất nhiều thông tincần được bảo mật cao hơn bởi tính kinh tế, tính chính xác và tính tin cậy của nó

Bên cạnh đó, các hình thức phá hoại mạng cũng trở nên tinh vi và phức tạphơn Do đó đối với mỗi hệ thống, nhiệm vụ bảo mật được đặt ra cho người quản trịmạng là hết sức quan trọng và cần thiết Xuất phát từ những thực tế đó, chúng ta sẽtìm hiểu về các cách tấn công phổ biến nhất hiện nay và các phòng chống các loại tấn công này thông qua một công cụ là mod_security

Chính vì vậy, thông qua việc nghiên cứu một số phương pháp tấn công và cách bảo mật các loại tấn công này, chúng em mong muốn góp một phần nhỏ vào việc nghiên cứu và tìm hiểu về các vấn đề an ninh mạng giúp cho việc học tập và nghiên cứu

TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Vấn đề An ninh trong hệ thống mạng luôn là một trong những mối quantâm trong lớn Tại Việt Nam, An ninh mạng vẫn chưa được nhìn nhận nghiêm túc

và hệ lụy là rất nhiều Website đã bị tấn công, thiệt hại gây ra là con số không nhỏ.Thiết nghĩ trong tương lai, Việt Nam sẽ cần đổi mới và tăng cường hệ thống phòngthủ trước những mối nguy cơ từ Internet

Chính vì vậy, đề tài “Phát hiện và chống xâm nhập web serverapache với Modsecurity” đã được chọn làm đề tài tiểu luận chuyên ngành vớimong muốn bổ sung kiến thức về an ninh mạng và cách xây dựng hệ thống phòngchống tấn công, phục vụ cho công việc sau này

PHẠM VI NGHIÊN CỨU

Đề tài này chúng em sẽ xem xét các kiểu tấn công cơ bản và cách phòng chống tấncông web server bằng công cụ Modsecurity trên hệ điều hành windown 7, từ đâychúng ta sẽ có một cách nhìn tổng thể về bảo mật web server apache

Trang 12

PHƯƠNG PHÁP NGHIÊN CỨU

- Tìm đọc các tài liệu trên mạng, tham khảo nội dung trong đó

- Tải các ebook liên quan đến htpp, modsecurity

- Coi các video hướng dẫn

Trang 13

PHẦN NỘI DUNG

Trang 14

Chương 1 HTTP 14

CHƯƠNG 1 HTTP 1.1 Giới thiệu về HTTP:

1.1.1 Tổng quan về HTTP:

Tiêu chuẩn Hypertext Transfer Protocol (HTTP) – Giao thức truyền siêu vănbản được ứng dụng để truyền tải tài liệu và các tệp siêu văn bản giữa máy chủ Web(Web server) và máy khách Web (Web client) thông qua một trình duyệt Web Cụthể hơn, HTTP là một giao thức ở tầng ứng dụng trong các hệ thống thông tin phântán, cộng tác, siêu phương tiện (hypermedia), cho phép một máy khách gửi yêu cầuđơn giản dạng tệp siêu văn bản đến máy chủ và nhận đáp ứng từ máy chủ

Tim Berners-Lee, một nhà khoa học máy tính người Anh và nhóm dự án

“World Wide Web” là những người đầu tiên được công nhận phát minh

ra HTTP cùng với ngôn ngữ đánh dấu siêu văn bản HTML (HyperText MarkupLanguage), công nghệ liên quanđến máy chủ web và trình duyệt web dựa trên vănbản Cho đến nay, giao thức HTTP gồm có ba phiên bản là:

 Phiên bản đầu tiên là HTTP 0.9, được Hiệp hội web toàn cầu (World WideWeb - W3C) công bố năm 1991 (có thể tham khảo tài liệu tại đây) Đây làgiao thức đơn giản để truyền dữ liệu thô trên Internet

 Phiên bản thứ hai là HTTP 1.0, được định nghĩa tại RFC 1945 vào năm

1996 (RFC - Request for Comments, là những tài liệu kỹ thuật và tổ chức

về Internet, bao gồm những tài liệu đặc tả kỹ thuật và chính sách được tổchức IETF (Internet Engineering Task Force – Nhóm chuyên trách kỹthuật Internet) phát hành), cho phép thông điệp định dạng kiểu giao thức

mở rộng thư Internet đa chức năng (Multipurpose Internet MailExtensions - MIME), như kiểu văn bản phi cấu trúc (Text), kiểu hình ảnh(Image), kiểu âm thanh (Audio), kiểu phim (Video), kiểu ứng dụng(Application), chứa các thông tin mô tả về dữ liệu được truyền và cáctham số chỉnh sửa theo yêu cầu/đáp ứng Tuy nhiên, phiên bản này khôngtác động nhiều đến các proxy phân cấp, bộ nhớ đệm, nhu cầu kết nối liêntục hay đến các máy chủ lưu trữ ảo Proxy là một chương trình trung

Trang 15

Chương 1 HTTP 15

gian hoạt động vừa như một máy chủ và vừa như một máykhách nhằm mục đích thực hiện các yêu cầu thay cho các máy khách khác

 Phiên bản thứ ba là HTTP 1.1, lần đầu tiên được công bố tại RFC

2608 vào tháng 01 năm 1997 và sau đó được cập nhật tại RFC 2616 vàotháng 07 năm 1999 HTTP 1.1 có các yêu cầu nghiêm ngặt hơn HTTP 1.0

để đảm bảo tính tin cậy khi thực hiện các tính năng của nó

1.1.2 Lớp giao thức HTTP:

HTTP là một giao thức lớp ứng dụng trong mô hình OSI Dùng đểchuyển hoặc truyền tải thông tin trên mạng theo một giao thức đáng tin cậy (TCP)hoặc không đáng tin cậy (UDP) Nhưng TCP lại là giao thức thường được sử dụng

Hình 1.1 Quá trình thực hiện yêu cầu và trao đổi thông tinHình bên trái cho biết quá trình tạo và gửi thông điệp từ Client đến Server

Đầu tiên HTTP sẽ tạo ra thông điệp mà nó muốn gửi

Bước 1: HTTP sẽ đưa thông điệp đó đến tiến trình TCP (Transport layer) Ở

đâythông điệp sẽ được thêm các thông tin cụ thể của giao thức TCP vào thông

Trang 16

Chương 1 HTTP 16điệp và tạo nên TCP segment Hành động này cũng tương tự như việc ta ghi thôngtin địa chỉ người nhận, người gửi trên phong bì khi gửi thư.

Bước 2: Tiến trình TCP sẽ đưa Segment này đến tiến trình IP (Network Layer).Giai

đoạn này, tiến trình IP sẽ thêm các thông tin vào Segment và tạo nên một

IP Datagram

Bước 3: Thực hiện các giao thức kiểm soát các công nghệ mạng của hệ thống Bước 4: Sau khi có đầy đủ các thông tin thì thông điệp HTTP sẽ được gửi

đếnWebServer Thông điệp này được gửi dưới dạng Packet hoặc Frame

Hình bên phải cho biết những gì sẽ xảy ra với gói tin HTTP khi nó đến WEB server.Trước khi đến được WEB server được chỉ định thì gói tin HTTP có thể đã đi quanhiều hệ thống khác và qua nhiều công nghệ mạng được triển khai, nhưng điều đókhông quan trọng cho cả Client và Web Server

Như ta đã thấy, những gì xảy ra ở Server là ngược lại với Client Ở mỗi Layersẽnhận thông điệp, xử lí (nếu cần) và gửi thông điệp đã được gỡ bỏ đi các thôngtin được thêm vào ở các tầng tương ứng bên Client đã thêm vào lên các tầng caohơn

Cuối cùng, ở bước 8 thông điệp yêu cầu sẽ được gửi đến ứng dụng Web server

1.1.3 Cơ chế hoạt động chung:

Giao thức HTTP là một giao thức có dạng yêu cầu/đáp ứng Khi một máykhách gửi một yêu cầu đến máy chủ gồm phương thức yêu cầu (gồm GET, POST,HEAD,…), URI, phiên bản giao thức, kèm với thông điệp kiểu MIME gồm cáctham số chỉnh sửa của yêu cầu, thông tin máy khách và nội dung chính thông quakết nối đến máy chủ Máy chủ sẽ đáp ứng bằng dòng trạng thái, gồm phiên bản giaothức thông điệp và mã thông báo thành công hay lỗi, kèm với thông điệp kiểuMIME có chứa thông tin về máy chủ, các thông tin thêm về đối tượng và nội dungchính của đối tượng

Hầu hết giao tiếp HTTP được khởi tạo từ UA và một yêu cầu sử dụng nguồntài nguyên trên máy chủ gốc (Origin Server - O) Trong trường hợp đơn giản nhất,

Trang 17

Chương 1 HTTP 17giao tiếp này có thể được thực hiện thông qua một kết nối duy nhất (v) giữa UA và

O như

Hình 1.2 Mô hình HTTP đơn giản(Nguồn: RFC 2616 Hypertext Transfer Protocol)Tình huống phức tạp hơn xảy ra khi có một hoặc nhiều điểm trung gian trongchuỗi yêu cầu/đáp ứng Có ba dạng trung gian phổ biến như: proxy, gateway vàtunnel (Một chương trình trung gian hoạt động như một điểm trung chuyểngiữa hai kết nối) Proxy là một điểm chuyển tiếp, nhận các yêu cầu cho một URI,viết lại tất cả hoặc một phần của thông điệpvà chuyển tiếp yêu cầu đã định dạng lại

về phía máy chủ xác định bởi URI Ở đây, gateway hoạt động như một lớp phía trêncủa máy chủ khácvà nếu cần thiết, biên dịch các yêu cầu tới giao thức máy chủ cơ

sở Tunnel hoạt động như một điểm trung chuyển giữa hai kết nối mà không cầnthay đổi thông điệp, các tunnel được sử dụng khi giao tiếp cần phải đi qua một điểmtrung gian (như tường lửa) ngay cả khi điểm trung gian này không hiểu được nộidung của thông điệp

Hình 1.3 Mô hình HTTP phức tạp(Nguồn: RFC 2616 Hypertext Transfer Protocol)Hình 2 mô tả ba điểm trung gian (A, B và C) giữa tác nhân người dùng vàmáy chủ gốc Một thông điệp yêu cầu/đáp ứng sẽ truyền qua toàn bộ các điểm nàybằng bốn kết nối riêng biệt Mỗi điểm trung gian có thể được tham gia vào nhiều kết

Trang 18

Chương 1 HTTP 18nối và các giao tiếp khác tại cùng một thời điểm Ví dụ, điểm B có thể nhận yêu cầu

từ nhiều máy khách khác ngoài A, hay chuyển tiếp yêu cầu đến nhiều máy chủ khácngoài C đồng thời với việc xử lý yêu cầu từ điểm A

Hình 1.4 Mô hình HTTP phức tạp với bộ nhớ cache(Nguồn: RFC 2616 Hypertext Transfer Protocol)Bất cứ thành phần nào tham gia kết nối mà không hoạt động như một tunnelđều có thể sử dụng một bộ nhớ đệm (cache) nội bộ để xử lý các yêu cầu Bộ nhớđệm giúp cho chuỗi yêu cầu/đáp ứng được xử lý nhanh hơn khi một trong các thànhphần tham gia trong chuỗi có yêu cầu về dữ liệu Hình 3 sau đây minh họa chuỗiyêu cầu/đáp ứng từ điểm UA đến điểm B khi tại điểm B có lưu trữ dữ liệu tạm thời

từ điểm O (thông qua điểm C), không được lưu trữ tạm thời tại UA hay tại điểm A

Thông tin liên lạc HTTP thường diễn ra trên các kết nối TCP / IP Các cổngmặc định là TCP 80

1.1.4 Hoạt động HTTP:

1.1.4.1 Client and server

Cũng giống như các giao thức khác thì HTTP cũng có sự phân biệtgiữa Client và Server Sự phân biệt này rất quan trọng vì nó thể hiện được vai tròcủa từng đối tượng tham gia vào một phiên làm việc Cụ thể, với HTTP thì Client

có thể được coi là các Browser thực hiện các yêu cầu HTTP, Server là nơi hostingtrang Web (lưu trữ tài nguyên) mà Client truy xuất đến

Khởi tạo kết nối:

Một kết nối được bắt đầu khi Client thực hiện một yêu cầu đến Server Chỉ

có Client mới là nơi bắt đầu một kết nối

Trang 19

Do Client là nơi có trách nhiệm khởi tạo một kết nối nên Client cũng là nơi

có trách nhiệm thực hiện khởi tạo một kết nối TCP

Quá trình tạo một kết nối TCP giữa Client và Server được gọi là quátrình“bắt tay ba bước”

Trang 20

Chương 1 HTTP 20

Hình 1.6 Quá trình “bắt tay ba bước”

Để kết thúc một kết nối thì chỉ cần 2 gói tin giữa Client và Server:

 Server: gửi 1 flag FIN (finish) đến server

 Client: phản hồi bằng cách thiết lập các cờ FIN và ACK

Duy trì trạng thái kết nối(Persistence):

Trong phiên bản đầu tiên của HTTP, thì mỗi yêu cầu của Client sẽ tạo thànhmột kết nối TCP riêng biệt Điều này sẽ không xảy ra vấn đề với những Web đơngiản, nhưng với những trang web ngày một phức tạp, đồ họa cao như hiện nay thìviệc mỗi yêu cầu tạo 1 kết nối sẽ trở thành vấn đề lớn vì sẽ chiếm băng thônghoạt động Điều đó ảnh hưởng đến hiệu suất hoạt động của Server

Trong phiên bản HTTP 1.1, thì vấn đề nhiều kết nối đã được loại bỏ và đượcthay thế bằng tính năng “duy trì kết nối” Tính năng này cho phép Client có thểsửdụng kết nối được chấp nhận ban đầu Các yêu cầu sau đó của Client sẽ đượcthực hiện trên cùng một kết nối

Sự duy trì kết nối cần phải có sự hợp tác của cả Client và Server Client sẽquyết định sử dụng kết nối liên tục Client được thực hiện điều này chỉ khi Serverchấp nhận Server sẽ không đóng kết nối TCP khi yêu cầu ban đầu của Client đượcchấp nhận

Trang 22

Chương 1 HTTP 22

1.1.4.2 Thao tác:

HTTP định nghĩa 4 thao tác cơ bản: GET, POST, PUT, DELETE

GET – Wen Page Retrieval:

GET là thao tác đơn giản nhất trong 4 thao tác được định nghĩa trong HTTP.GET là cách mà Client lấy một đối tượng hoặc tài nguyên nào đó từ Server

Trang 23

Chương 1 HTTP 23

Hình 1.7 Hoạt động GET của HTTP

Hoạt động của GET:

Hình trên cho thấy, Client bắt đầu và gửi thông điệp GET đến Server Thôngđiệp này xác định một đối tượng cụ thể mà Client yêu cầu bằng URI Nếu Server

có thểtrả đáp ứng được yêu cầu thì Server sẽ trả đối tượng về trong gói tin trả vềcùng với một mã trạng thái thành công là 200 OK Nếu Server không thể đáp ứngđược yêu cầu thì một mã trạng thái khác sẽ được trả về

3XX Chuyển hướng: Client được yêu cầu thực hiện lại yêu cầu

nhưng với một URI khác

4XX Lỗi Client: Yêu cầu của Client có lỗi xảy ra mà Server

không thể đáp ứng được

5XX Lỗi Server: Server không đáp ứng theo yêu cầu ngay cả khi

yêu cầu của Client là hợp lệ

POST – Web Form:

POST là cách thức mà Client gửi thông tin lên cho Server Cácbrowser thường sử dụng phương thức POST để gửi 1 form lên Server

Trang 24

Chương 1 HTTP 24

Khi người dùng tìm kiếm trên “http://google.com” thì browser sẽ gửi mộtyêu cầu POST lên Server , yêu cầu đó sẽ chứa những thông tin tìm kiếm mà ngườidùng nhập vào

Hoạt động của POST cũng tương tự như GET Client sẽ gửi yêu cầu cùngvới thông tin đến Server thông qua URI Điểm khác biệt ở đây đó là, Với POST thìURI để xác đối tượng trên Server có thể xử lí thông tin (form) mà Client gửi lên.Đối tượng này có thể là 1 script hay chương trình

Cũng như GET, Server cũng có khả năng gửi thông tin phản hồi vềcho Client Thông thường thông tin trả về là 1 trang Web để hiển thị thông tinngười dùng đã nhập vào, đối với thông tin tìm kiếm thì sẽ trả về các kết quả tìmkiếm

Hình 1.8 Hoạt động của Post

PUT – File Upload:

PUT cũng là cách thức để Client gửi dữ liệu lên cho Server

Hình 1.9 Hoạt động của PUTTheo như hình trên, ta có thể thấy được sự tương tự trong hoạt độngcủa POST và PUT, cả 2 đều xác định một đối tượng trên Server, cùng truyền dữliệu và URI

Trang 25

Chương 1 HTTP 25

Điểm khác biệt quan trong giữa POST và PUT đó là ở URI:

 POST, thì URI xác định đối tượng có thể xử lí dữ liệu– chươngtrình hoặc script

 PUT, thì URI xác định đối tượng mà Server có thể đặt dữ liệu(một đường dẫn hoặc tên file) mà Client gửi

Như hình dưới đây cho thấy hoạt động của DELETE cũng tương tự như các thaotác khác

Hình 1.10 Hoạt động của DELETEClient gửi yêu cầu cùng với URI của đối tượng cần xóa trên Server

Server sẽ trả về “status code” và dữ liệu kèm theo

Trang 26

Nếu Client gửi thông điệp OPTIONS mà URI là dấu “*” thì Server sẽ hồiđáp 1 tùychọn chung nhất mà nó phù hợp với tất các đối tượng.

Các hoạt động của HEAD cũng giống như của GET Ngoại trừ, Server khôngtrả về đối tượng thật sự được yêu cầu Cụ thể, Server chỉ trả về mã trạng tháichứkhông trả về dữ liệu

Client sử dụng HEAD khi muốn kiểm tra một đối tượng có tồn tại hay chưanhưng không muốn lấy đối tượng đó

Ví dụ: Có thể sử dụng thông điệp HEAD để đảm bảo liên kết đến mộtđốitượng hợp lệ mà không tiêu tốn băng thông

Cache trong trình duyệt cũng có thể sử dụng thông điệp HEAD để xem mộtđối tượng đã thay đổi hay không

Trang 27

 Các Server chuyển tiếp yêu cầu của Client thì Server đó sẽ chỉnh sửagói tin Request bằng cách thêm một tùy chọn VIA vào thông điệp.VIA là một phần thông điệp gửi Server đích

 Server đích sẽ copy nội dung của thông điệp vào thông điệp phảnhồicủa mình

Trang 28

Theo sau dòng Request-Line có thể có một hoặc nhiều thông điệpHeader và thông điệp Body.

Trang 29

Chương 1 HTTP 29

Dòng trắng (Blank line) sẽ theo sau dòng Request-Line và các thông điệpHeader

Hình 1.16 Thông điệp thực tế được gửi từ Internet Explorer

Trong thông điệp trên, Request-Line chứa ba nội dung: phương thức, URI,phiênbản HTTP Mỗi thành phần cách nhau bởi một hoặc nhiều khoảngtrắng Thông điệp được đánh dấu kết thúc bằng dòng trắng và không có thông điệpBody

Hình 1.17 Các thành phần của Request- LineNhư hình trên, thông điệp được gửi bằng phương thức GET đã được chỉđịnh rõ trong dòng Request- Line Mục tiếp theo trong Request-Line đó làURI chứa tàinguyên cần truy cập, ở đây đó là “/” chỉ ra nguồn tài nguyên yêucầu là gốc Phần cuối cùng của Request- Line là phiên bản của HTTP, ở đây phiênbản được chỉ rõ là HTTP phiên bản 1.1

GET chỉ là một trong tám phương thức được định nghĩa bởi HTTP Bảng sauđây sẽ trình bày chi tiết các phương thức của HTTP

CONNECT Tùy chọn Yêu cầu server (thường là Proxy) để

thiết lập một đường hầm (tunnel)

Trang 30

Chương 1 HTTP 30

DELETE Tùy chọn Yêu cầu server xóa tài nguyên được chỉ

định

GET Yêu cầu (bắt buộc) Yêu cầu server trả về tài nguyên đã

được yêu cầu

HEAD Yêu cầu (bắt buộc)

Yêu cầu server trả lời như làphươngthức GET nhưng không kèm theo tàinguyên trong thông điệp trả về

OPTIONS Tùy chọn Yêu cầu server chỉ rõ các tùy chọn mà

nó hỗ trợ cho tàinguyên được chỉ rõ.POST Tùy chọn Yêu cầu server đưa nội dung của Body

vào tài nguyên được chỉ định trên server.PUT Tùy chọn Yêu cầu server chấp nhận Body của

thông điệp như là tài nguyên trên server.TRACE Tùy chọn Yêu cầu server trả lời các yêu cầu

Hình 1.18 Bảng chi tiết phương thức của HTTP

1.1.5.2 HTTP Response

Hình 1.19 Cấu trúc của HTTP ResponseCấu trúc của HTTP response cũng tương tự như cấu trúc của HTTP request.Chỉcó một điểm khác nhau đó là HTTP response được bắt đầu bằng dòng Status-Line Status- Line cũng bao gồm 3 thành phần và được phân biệt bằng các khoảngtrắng Thành phần đầu tiên sẽ thể hiện phiên bản HTTP cao nhất mà Server hỗ

Trang 31

Chương 1 HTTP 31trợ Thành phần thứ hai sẽ thể hiện mã trạng thái Thành phần thứ ba là Reason-Phrase.

Hình 1.20 Nội dung thực tế của HTTP response

Hình 1.21 Thành phần của Status- LineTrong thông điệp trên, ta thấy được ở dòng đầu tiên (Status-line) phiên bảncao nhất được hỗ trợ bởi server là 1.1 Hai thành phần còn lại là mã trạng thái(200) và Reason-Phrase (OK)

200-299 Thành công: Server có thể trả về theo yêu cầuthành công

300-399 Chuyển hướng: Client nên chuyển hướng yêu cầu sang một

Server hoặc tài nguyên khác

400-499 Lỗi Client: yêu cầu của Client chứa lỗi mà Server ko đáp ứng

được 500-599 Lỗi Server: Server không thể đáp ứng được yêu cầu của Client dù

yêu cầu hợp lệ

Hình 1.22 Bảng mã trạng thái trả về của web server

Trang 32

Chương 1 HTTP 32

1.2 Các lỗi bảo mật:

An toàn bảo mật của giao thức HTTP phiên bản 1.1 cũng là một vấn đề hếtsức quan trọng đối với các nhà phát triển ứng dụng, nhà cung cấp thông tin vàngười dùng cuối Các vấn đề an toàn bảo mật cần xem xét bao gồm: Bảo vệ thôngtin cá nhân (lạm dụng thông tin đăng nhập máy chủ, truyền thông tin nhạy cảm, mãhóa thông tin nhạy cảm ở dạng URI, vấn đề riêng tư khi kết nối để nhận các tiêuđề), các tấn công tệp tin và tên đường dẫn, hệ thống tên miền (Domain NameSystem – DNS) giả, các tiêu đề giả, các vấn đề sắp xếp nội dung, vấn đề xác thực vàmáy khách không hoạt động, vấn đề về proxy và cache, các tấn công từ chối dịch vụtrên proxy

1.3 Biện pháp:

Để đảm bảo an toàn khi truyền thông trên mạng, có thể sử dụng HTTPS

(Hypertext Transfer Protocol Secure – đây là sự kết hợp giữa giao thức HTTP và

giao thức bảo mật SSL (Secure Socket Layer) hay TLS (Transport Layer Security)cho phép trao đổi thông tin một cách bảo mật trên Internet)

Trang 33

Chương 2 Apache 33

CHƯƠNG 2 APACHE

2 1 Giới thiệu về Apache Web Server:

Một Web Server là một máy chủ có trách nhiệm chấp nhận các yêu cầuHTTP từ Web Client và phản hồi lại các HTTP đó, thường ở dạng của các trangweb có chứa tĩnh (văn bản, hình ảnh vv) và nội dung động (kịch bản) Apache WebServer đã được dung làm Web Sever phổ biến và sử dụng rộng rãi trong thập kỷqua Nó được sử dụng khoảng 50% của tất cả các website

Hình 2.1 Biểu đồ so sánh giữa các Web Server 10/2012Nguồn: http://www.slideshare.net/haidinhtuan/apache-http-server-16727394Apache là nền tảng, trọng lượng nhẹ, mạnh mẽ, và được sử dụng trong cáccông ty nhỏ cũng như các tập đoàn lớn Apache cũng là miễn phí và mã nguồn mở

Apache Web Server có khả năng gần như vô tận, do tính chất mô đun tuyệtvời của nó, cho phép nó được tích hợp với nhiều ứng dụng khác Phổ biến nhất làứng dụng ngăn xếp LAMP Web Server, bao gồm Apache Web Server với MySQL,

PHP, Perl và Python Apache Web Server được phát triển bởi Apache Software Foundation.

Khả năng cấu hình và bảo đảm của Apache Wed Server là một trong nhữngcông việc quan trọng đối với một quản trị hệ thống (Linux) Nếu bạn đang làm việccho một công ty (tổ chức) có các trang web công cộng, công việc trở nên phức tạphơn Các trang web được sử dụng để cung cấp nội dung cho hàng tỷ người dùng

Trang 34

Chương 2 Apache 34hàng ngày Bất cứ ai cũng có thể kiểm soát nội dung này - kiểm soát World WideWeb, tin tức và blog để giao dịch tài chính Các Web Server là trung tâm thông tin

và quyền lực Máy chủ cấu hình sai hoặc bị xâm nhập có thể ảnh hưởng tới một sốlượng lớn người dùng không mong muốn và có khả năng phải chịu thiệt hại rất lớncác bên tham

 Http_main.c

Thành phàn làm nhiệm vụ khởi động Server và tạo vòng lặp chính để đợi vàchấp nhận các kết nối Đồng thời cũng làm nhiệm vụ quản lý các bộ thời giantimeout

 Http_request.c

Thành phần này làm nhiệm vụ quản lý các tiến trình xử lý bản tin request,đảm bảo chuyển các bản tin điều khiển tới các mobule phù hợp theo đúng thứ tự.Ngoài ra, nó còn đảm nhận vai trò quản lý các lỗi xảy ra trên Server

Trang 35

Chương 2 Apache 35

Hình 2.2 Sơ đồ cung cấp tài nguyên của Apache Web Server

2.3 Cài đặt:

Để cài đặt apache ta sử dụng phần mền XAMPP Version: 1.8.2

Sau đây là quá trình cài đặt apache:

B1: Mở file setup của phần mềm lên, chọn Yes, rồi chọn Next

B2: Ở bảng Select Componets, ta chọn hết tất cả, sau đó Next

B3: Ta chọn thư mục để cài đặt XAMPP, ở đây ta chọn ổ E để cài đặt Ta cũng cóthể chọn thư mục khác Sau đó tiếp tục Next liên tục để tiến hành cài đặt

B4: Sau khi cài đặt xong, phần mền sẽ yêu cầu cài đặt thêm bộ công cụ quản lýphần mền

Hình 2.3 Giao diện quản lý của bộ công cụ phần mền

Trang 36

Chương 2 Apache 36B5: Tiến hành cài đặt apache bằng cách click chuột vào ô Service, rồi chọn Yes đểcài đặt

Cuối cùng ta đã hoàn thành các bước cài đặt Apache bằng phần mền XAMPP

2.4 Kiểm tra apache

Lúc đầu khi chưa chạy apache, ta mở 1 trình duyệt bất kì (ở đây ta sử dụng googlechrome để thực hiện việc kiểm tra)

Sau khi mở trình duyệt, ta đánh vào ô địa chỉ localhost, ta sẽ không được kết quả gìBây giờ ta sẽ khởi động apache bằng phần mền XAMPP Click chuột vào Start đểbắt đầu

Sau đó ta lặp lại bước vào trinh duyệt, ta sẽ được kết quả sau:

Hình 2.4 Giao diện phần mền xamppĐiều này cho thấy ta thấy ta đã chạy thành công Apache Quá trình cài đặtkêt thúc

Lưu ý: Trường hợp ấn start không chạy, nguyên nhân là do port của apache

đã bị chiếm bởi phần mền khác, cụ thể ở đây là các service của máy ảo, ta cần tắtcác dịch vụ đó đi

Mở bộ công cụ chọn service, hộp thoại Services hiện ra, ta cần stop cácservice sau : VMware Authorization Service, VMware DHCP Service, VMwareNAT Service, VMware USB Arbitration Service Rồi tiến hành chạy lại

Trang 37

Chương 3 Modsecurity 37

CHƯƠNG 3 MODSECURITY 3.1 Giới thiệu:

3.1.1 Sơ lược:

 ModSecurity là một Opensource web application firewall được Ivan Risticphát triển dành cho Web Server Apache

 Ivan Ristic cũng là tác giả quyển sách “Mod Security Handbook”

 Theo Ivan Ristic tác giả của cuốn sách “modsercurity handbook” thìModsercurity giúp ta giải quyết các vấn đề một cách rõ ràng như: cho xemlưu lượng truy cập web, sự rõ ràng đó là chìa khóa của việc bảo mật: mộtkhi có thể nhìn thấy lưu lượng truy cập HTTP thì ta có thể phân tích nótrong thời gian thực, ghi lại khi cần thiết và tác động trở lại với các sự kiện

 Modsercurity chỉ là một module của Web Apache mà thôi

 Hiện tại ModSecurity sử dụng giấy phép GPL, hoàn toàn miễn phí

 Hoạt động dựa trên Rule

3.1.2 Chức năng:

Hình 3.1 Mô hình tổng quan của modsecurity

Request filtering: Tất cả các request gửi đến web server đều được phân tích

và cản lọc (filter) trước khi chúng được đưa đến các modules khác để xử lý

Understanding of the HTTP protocol: ModSecurity là một tường lửa ứng

dụng nên nó có khả năng hiểu được giao thức HTTP ModSecurity có khảnăng cản lọc dựa trên các thông tin ở HTTP Header hay có thể xem xét đếntừng thông số hay cookies của các request vv

Trang 38

Chương 3 Modsecurity 38

POST payload analysis: Ngoài việc cản lọc dựa trên HTTP Header,

ModSecurity có thể dựa trên nội dung (payload) của POST requests

Audit logging: Mọi requests đều có thể được ghi lại (bao gồm cả POST) để

người quản trị có thể theo dõi nếu cần

HTTPS filtering: ModSecurity có thể phân tích HTTPS

Compressed content filtering: ModSecurity sẽ phân tích sau khi đã giải nén

các các dữ liệu được yêu cầu

3.1.3 Mô hình và các giai đoạn xử lý:

Mô hình:

Hình 3.2 Quá trình xử lý các request của Apache và ModSecurity

Modsecurity cho phép chúng ta đặt rule tại một trong năm thời điểm trong chu

kỳ xử lý của Apache như sau:

Trang 39

 application/x-www-form-urlencoded: Dùng để truyền form dữ liệu.

 multipart/form-data: Dùng để truyền file

 text/xml: Dùng để phân tích dữ liệu XML

3 Phase Response Header: Đây là thời điểm ngay sau khi phần response headerđược gửi trả về cho client Chúng ta đặt rule ở đây nếu muốn giám sát quá trình saukhi phần response được gửi đi

4 Phase Response Body: Đây là thời điểm chúng ta muốn kiểm tra những dữliệu HTML gửi trả về

5 Phase logging: Là thời điểm các hoạt động log được thực hiện, các rules đặt

ở đây sẽ định rõ việc log sẽ như thế nào, nó sẽ kiểm tra các error message log củaApache Đây cũng là thời điểm cuối cùng để chúng ta chặn các kết nối không mongmuốn, kiểm tra các response header mà chúng ta không thể kiểm tra ở phase 3 vàphase 4

Phase

1

REQUEST_HEADERS Ngay sau khi Apache đọc xong

header của request HTTP

Sau khi nội dung request được đọc Hầuhết các luật được đưa ra để xử lý trong phase này

3 RESPONSE_HEADERS Sau khi header của response được gửi

lại cho client

Trang 40

Hình 3.3 Các pha xử lý của modsecurity

B4: Đổi tên ` modsecurity.conf-recommended ‘ sang tên modsecurity.conf sau đócopy tới \xampp\apache\conf\

Ngày đăng: 29/09/2016, 09:58

TỪ KHÓA LIÊN QUAN

w