1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng hệ thống giám sát và cảnh báo sự thay đổi nội dung trang web

69 228 0

Đ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 69
Dung lượng 2,13 MB

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

Nội dung

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ậtcác loại tấn công đó, tôi 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 đề phát hiện tấn công

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Nguyễn Ngọc Khánh

XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO

SỰ THAY ĐỔI NỘI DUNG TRANG WEB

LUẬN VĂN THẠC SĨ

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN NGỌC KHÁNH

XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO

SỰ THAY ĐỔI NỘI DUNG TRANG WEB

Ngành: Công nghệ thông tin

Chuyên ngành: Kỹ thuật Phần mềm

Mã số: 60480103

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

Hướng dẫn khoa học: Tiến sĩ Lê Quang Minh

Hà Nội – 2018

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu khoa học độc lập của riêngtôi Các số liệu sử dụng phân tích trong luận văn có nguồn gốc rõ ràng, đã công

bố theo đúng quy định Các kết quả trong luận văn do tôi tự tìm hiểu, phân tíchmột cách trung thực, khách quan và phù hợp với thực Các kết quả này chưatừng được công bố trong bất kỳ nghiên cứu nào khác

Tôi xin hoàn toàn chịu trách nhiệm với lời cam đoan của mình

HỌC VIÊN

Nguyễn Ngọc Khánh

Trang 4

LỜI CẢM ƠN

Em xin chân thành cảm ơn Khoa Công nghệ thông tin trường Đại học Côngnghệ, Đại học Quốc gia Hà Nội đã tạo điều kiện thuận lợi cho em học tập vàthực hiện luận văn tốt nghiệp này

Em xin bày tỏ lòng biết ơn sâu sắc đến thầy Lê Quang Minh đã tận tìnhhướng dẫn, chỉ bảo em trong quá trình thực hiện luận văn này

Em xin chân thành cảm ơn quý thầy cô trong Khoa Công nghệ thông tin đãtận tình giảng dạy, trang bị cho em những kiến thức quý báu trong những nămhọc vừa qua

Mặc dù đã cố gắng hoàn thành luận văn trong phạm vi và khả năng chophép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót Em rất mong nhậnđược sự góp ý, tận tình chỉ bảo của quý thầy cô

HỌC VIÊN

Nguyễn Ngọc Khánh

Trang 5

MỤC LỤC

LỜI MỞ ĐẦU 7

CHƯƠNG 1: CÔNG NGHỆ WEB VÀ MỘT SỐ VẤN ĐỀ AN NINH .9 1.1 Tổng quan về Website 9

1.1.1 Khái niệm Web 9

1.1.2 Hoạt động của Web 9

1.1.3 Trình duyệt Web 10

1.1.4 Địa chỉ URL 10

1.1.5 HTML 11

1.1.6 Tên miền 12

1.2 Tổng quan về Webserver 13

1.3 Tổng quan về an ninh mạng 14

1.4 Một số lỗ hổng an ninh trên Website 14

1.5 Một số điểm yếu bảo mật và kỹ thuật tấn công Website 16

1.5.1 Tấn công SQL Injection 16

1.5.2 Tấn công XSS (Cross Site Scripting) 23

1.5.3 Tấn công từ chối dịch vụ DOS (Denial of Service) 25

CHƯƠNG 2: TẤN CÔNG THAY ĐỔI NỘI DUNG VÀ MỘT SỐ THUẬT TOÁN PHÁT HIỆN SỰ THAY ĐỔI 30

2.1 Khái niệm Tấn công thay đổi nội dung (Deface website) 30

2.2 Vì sao website bị Deface? 30

2.3 Thực trạng tấn công thay đổi nội dung tại Việt Nam 31

2.4 Làm thế nào để phát hiện bị Deface? 33

2.5 Các bước xử lý khi phát hiện bị Deface 33

2.6 Một số lời khuyên để website an toàn hơn 35

2.7 Một số thuật toán phát hiện sự thay đổi 36

2.7.1 Hàm băm 36

2.7.2 Thuật toán đối sánh chuỗi 39

2.7.3 Dấu vân tay tài liệu (Document Fingerprint) 40

Trang 6

2.7.4 Thuật toán Rabin Fingerprint 41

2.7.5 Thuật toán Rabin Fingerprint cải tiến 43

2.7.6 Thuật toán tìm sự khác nhau của hai văn bản "An O(ND) Difference Algorithm" 44

2.7.7 Thuật toán tìm sự khác nhau của hai hình ảnh 45

CHƯƠNG 3: XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ CẢNH BÁO SỰ THAY ĐỔI NỘI DUNG TRANG WEB 47

3.1 Giới thiệu 47

3.2 Xác định mô hình phát triển 48

3.3 Khảo sát 49

3.4 Mô tả yêu cầu hệ thống 50

3.4.1 Các yêu cầu chức năng 50

3.4.2 Các yêu cầu phi chức năng 51

3.5 Biểu đồ usecase 51

3.6 Thiết kế cơ sở dữ liệu 52

3.7 Công cụ và môi trường phát triển 53

3.7.1 Kiến trúc NET framework 53

3.7.2 Ngôn ngữ C# 54

3.7.3 SQLite 55

3.8 Xây dựng hệ thống 55

3.8.1 Hệ thống So sánh thay đổi nội dung mã nguồn web 55

3.8.2 Hệ thống chuyển đổi Trang web thành hình ảnh 57

3.8.3 Hệ thống So sánh thay đổi nội dung hình ảnh trang web 58

3.8.4 Hệ thống Quản lý thời gian thực 58

3.8.5 Hệ thống Lưu dữ liệu 59

3.9 Thiết kế giao diện 60

3.10 Thử nghiệm và những kết quả đạt được 62

Trang 7

DANH MỤC HÌNH ẢNH

Hình 1 Một số Webserver thông dụng 13

Hình 2 Mô hình tấn công SQL Injection 17

Hình 3 Mô hình tấn công XXS (Cross-Site Scripting) 24

Hình 4 Một mô hình tấn công từ chối dịch vụ DOS 26

Hình 5 Mô hình tấn công SYNFlood Attack 28

Hình 6 Giao diện Website Sở KH&CN BR- VT bị tấn công 32

Hình 7 Giao diện Website sân bay Tuy Hòa bị tấn công 32

Hình 8 Sơ đồ Merkel-Damgard 38

Hình 9 Mô tả thuật toán Rabin Fingerprint 43

Hình 10 Minh hoạ cải tiến giải thuật 44

Hình 11 Mô hình thác nước 49

Hình 12 Biểu đồ usecase 51

Hình 13 Biểu đồ trình tự kiểm tra trang web 52

Hình 14 Biểu đồ trình tự so sánh nội dung 52

Hình 15 Giao diện phần mềm 60

Hình 16 Giao diện thêm trang web 61

Hình 17 Giao diện thêm so sánh sự khác nhau về hình ảnh 61

Hình 18 Giao diện thêm so sánh sự khác nhau của mã nguồn 62

Trang 8

DANH MỤC BẢNG

Bảng 1 Lịch sử phát triển NET framework 54

Bảng 2 Kết quả thử nghiệm lần 1 63

Bảng 3 Kết quả thử nghiệm lần 2 63

Bảng 4 Kết quả thử nghiệm lần 3 63

Bảng 5 Kết quả thử nghiệm tại máy tính của trường THCS Dịch Vọng Hậu 64

Trang 9

LỜI MỞ ĐẦU

1 Lý do chọn đề tài

Hiện nay, công nghệ thông tin ngày càng phát triển, kéo theo đó là sự pháttriển của mạng máy tính và đặc biệt là internet ngày càng đa dạng và phong phú.Trên mạng Internet, các tiện ích và dịch vụ đã thâm nhập vào hầu hết cáclĩnh vực trong đời sống xã hội Các tiện ích và dịch vụ đó hầu hết đều rất đadạng về nội dung và hình thức, chứa đựng rất nhiều thông tin, trong đó không ítthông tin cần được bảo mật cao bởi tính kinh tế, tính chính xác và tính tin cậycủa nó

Cùng với sự đa dạng và phong phú đó, các hình thức tấn công và phá hoạimạng cũng ngày càng trở lên tinh vi và phức tạp Từ thực tế đó, với nhữngngười quản trị mạng hệ thống, nhiệm vụ đảm bảo an toàn hệ thống là hết sứcquan trọng và cần thiết Xuất phát từ thực tế đó, đề tài sẽ tìm hiểu về một số kiểutấn công phổ biến hiện nay và cách phòng chống các loại tấn công đó

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ậtcác loại tấn công đó, tôi 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 đề phát hiện tấn công làm thay đổi nội dung trang web vàđưa ra cảnh báo sớm có ý nghĩa giúp cho việc duy trì các trang web trên hệthống máy chủ được ổn định

2 Mục tiêu

Mục tiêu của luận văn là nghiên cứu, tìm hiểu tổng quan về website, cácmối đe dọa về an toàn thông tin khi làm việc trên ứng dụng web, hiểu thêm vềcác kỹ thuật tấn công và bảo mật website Từ đó có sự đánh giá một cách tổngquan, để áp dụng các chính sách về bảo mật website và an toàn dữ liệu cho hệthống Đồng thời xây dựng và phát triển hệ thống phát hiện sớm các tấn cônglàm thay đổi nội dung trang web từ đó đưa ra các cảnh báo sớm giúp cho người

Trang 10

quản trị web biết được có sự thay đổi bất thường và đưa ra các biện pháp làmcho hệ thống bảo mật tốt hơn.

3 Bố cục luận văn:

Chương 1: Tổng quan về website

Trong chương 1 luận văn nêu lên một số các khái niệm cơ bản về web, thựctrạng an ninh Web trên thế giới và tại Việt Nam, một số lỗ hổng an ninh trênWebsite, một số điểm yếu bảo mật và kỹ thuật tấn công Website

Chương 2: Tấn công thay đổi nội dung và một số thuật toán phát hiện sự

thay đổi

Trong chương 2 luận văn nêu khái niệm tấn công thay đổi nội dung,nguyên nhân và cách khắc phục cùng với một số thuật toán phát hiện sự thay đổiđó

Chương 3: Xây dựng hệ thống giám sát và cảnh báo sự thay đổi nội dung

nội dung trang web

Trong chương này, dựa trên những kiến thức ở chương 1 và chương 2, tácgiả đã mô tả các bước để xây dựng hệ thống giám sát những thay đổi về nộidung trang web và đưa ra cảnh báo kịp thời khi phát hiện có sự thay đổi

Trang 11

CHƯƠNG 1: CÔNG NGHỆ WEB VÀ MỘT SỐ VẤN ĐỀ AN NINH 1.1 Tổng quan về Website

1.1.1 Khái niệm Web

Web là viết tắt của World Wide Web, là mạng lưới toàn cầu mà mọi người

có thể truy cập (đọc và viết) qua máy tính hoặc các thiết bị kết nối với mạngInternet Thuật ngữ này thường được hiểu nhầm là từ đồng nghĩa với chính thuậtngữ Internet, nhưng thực ra web chỉ là một trong các dịch vụ chạy trên Internet(Theo wikipedia.org)

Các dữ liêu trang web được lưu trữ trong hệ thống các siêu máy chủ nốimạng Internet Để xem được các trang web, người dùng cần sử dụng mộtchương trình được chuyên cho việc này gọi là trình duyệt web Chương trình sẽnhận dữ liệu là những đường dẫn hay còn gọi là địa chỉ URL, sau đó trình duyệt

sẽ gửi những thông tin yêu cầu đến máy chủ theo địa chỉ đó và hiển thị nhữngkết quả nhận được lên màn hình máy tính của người dùng Ngoài ra, trong mỗitrang web đều có các liên kết siêu văn bản (hyperlink), người sử dụng có thể kếtnối với các tài liệu hoặc các trang web khác theo những liên kết đó, hoạt độngnày được gọi là duyệt web

1.1.2 Hoạt động của Web

Thông qua trình duyệt, người và máy chủ sẽ kết nối với nhau bằng địa chỉURL Tùy theo những yêu cầu khác nhau, ứng dụng web sẽ gửi những yêu cầu

đó đến máy chủ, máy chủ sẽ xử lý và gửi dữ liệu về trình duyệt, sau đó ngườidùng sẽ nhận được những thông tin hiển thị trên trình duyệt

- Website tĩnh là website mà người quản trị, hay người sử dụng không thểtùy ý thay đổi nội dung và hình ảnh, muốn thay đổi cần có kiến thức về HTML

cơ bản để sửa trực tiếp trong mã nguồn vì chúng được viết hoàn toàn dựa trênnền tảng HTML, CSS

Trang 12

- Website động là website được xây dựng kèm theo một bộ công cụ đểngười quản trị có thể tùy biến nội dung dành cho người quản trị có thể dễ dàngthay đổi nội dung, hình ảnh Website động thường được thiết kế bưởi nhữngngười lập trình với các công nghệ, ngôn ngữ như PHP, ASP.NET, Java,

1.1.3 Trình duyệt Web

Như đã nêu, trình duyệt Web là phần mềm cho phép người dùng truy cậpcác trang web, tương tác với nội dung các trang web như văn bản, hình ảnh,đoạn phim, nhạc, trò chơi và các thông tin khác Trong một trang web có thểchứa những liên kết tới những nội dung khác hoặc những trang web khác Đểhiển thị nội dung web, các trang web phải được định dạng dưới dạng HTML.Trình duyệt web và máy chủ web thường giao tiếp với nhau bằng việc sửdụng giao thức HTTP để truyền thông tin trang web HTTP được sử dụng rộngrãi nhất là HTTP/1.1 Các trang được định vị bằng cách thức của một URL (bộđịnh vị tài nguyên chung), được coi như là một địa chỉ, bắt đầu bằng cụm http:

để truy cập HTTP

Định dạng của một trang web thường là file HTML (ngôn ngữ đánh dấusiêu văn bản), sử dụng giao thức HTTP và sử dụng kiểu nội dung MIME Hầuhết các trình duyệt đều hỗ trợ nhiều định dạng file khác ngoài HTML, như cácđịnh dạng ảnh JPEG, GIF, PNG, PDF ngoài ra nếu sử dụng các plug-in, cácđịnh dạng có thể mở rộng để hỗ trợ nhiều hơn

Một số trình duyệt web phổ biến hiện nay bao gồm Internet Explorer,Mozilla Firefox, Safari, Google Chrome, Opera,…

Trang 13

1.1.4 Địa chỉ URL

URL là viết tắt của Uniform Resource Locator (dịch là Định vị Tài nguyênthống nhất), URL dùng trong Internet và để tham chiếu tới tài nguyên nào đó, nómang lại khả năng liên kết cho các trang mạng Các tài nguyên nhau sử dụng địachỉ để tham chiếu, đó là URL, còn tên gọi nữa là địa chỉ mạng, liên kết mạnghay gọn là liên kết

Mỗi URL là một dạng của ULI, và chúng đều tuân theo tiêu chuẩn cú pháp,gồm có nhiều phần được liệt kê dưới đây:

- URI scheme hay phương pháp truy cập thường là tên giao thức (ví dụ:http, ftp) nhưng cũng có thể là một cái tên khác (ví du: news, mailto)

- Tên máy chủ (ví dụ: vi.wikipedia.org)

Một tài liệu HTML được hình thành bởi các phần tử HTML (HTMLElements) được quy định bằng các cặp thẻ (tag), các cặp thẻ này được bao bọc

Trang 14

bởi một dấu ngoặc ngọn (ví dụ <html>) và thường là sẽ được khai báo thànhmột cặp, bao gồm thẻ mở và thẻ đóng (ví <strong> dụ </strong> và ) Các vănbản muốn được đánh dấu bằng HTML sẽ được khai báo bên trong cặp thẻ (ví dụ

<strong>Đây là chữ in đậm</strong>) Nhưng một số thẻ đặc biệt lại không cóthẻ đóng và dữ liệu được khai báo sẽ nằm trong các thuộc tính (ví dụ như thẻ

bộ trong một mạng intranet Việc dịch từ các tên miền sang địa chỉ IP và ngượclại là do hệ thống DNS trên toàn cầu thực hiện (Theo wikipedia.org)

Với việc sử dụng các địa chỉ dạng chữ cái thay cho các địa chỉ IP, tên miềncho phép người dùng Internet có thể nhớ dễ dàng và dễ dàng tìm kiếm các trangweb Ngoài ra, tính uyển chuyển của mình, trong hệ thống tên miền, nhiều địachỉ IP có thể cùng được gán cùng vào một tên miền, và ngược lại, nhiều tênmiền đều cùng chỉ đến một địa chỉ IP Theo quy định, một tên miền chỉ có thể cótối đa 67 ký tự, các ký tự đó chỉ gồm các chữ cái, chữ số và 1 vài ký tự đặc biệt.Phân loại theo miền mở rộng, một số tên miền mở rộng thông dụng:

Trang 15

.com: Dùng cho các tổ chức, công ty thương mại.

.net: Dùng cho các tổ chức, công ty về mạng, dịch vụ mạng

.org: Dùng cho các tổ chức phi lợi nhuận

.gov: Dùng cho các tổ chức chính phủ

.edu: Dùng cho các tổ chức giáo dục, trường học

.biz: Dùng cho các công ty thương mại trực tuyến

1.2 Tổng quan về Webserver

Webserver (máy chủ web) là từ được dùng để chỉ phần mềm máy chủ, hoặcphần cứng dành riêng để chạy các phần mềm trên máy chủ, để từ đó có thể cungcấp các dịch vụ World Wide Web Một máy chủ web xử lí các yêu cầu (request)

từ các client (trong mô hình server - client) thông qua giao thức HTTP và một sốgiao thức liên quan khác

Chức năng cơ bản nhất của máy chủ web là lưu trữ, xử lí và phân phối nộidung các trang web đến khách hàng, cụ thể ở đây là máy tính người dùng, haycòn gọi là client trong mô hình server-client Giao tiếp giữa của máy tính ngườidùng và máy chủ thực hiện thông qua giao thức HTTP Nội dung phân phốichính từ máy chủ web là các nội dung định dạng HTML, bao gồm hình ảnh,style sheets, các đoạn mã script hỗ trợ các nội dung văn bản thô

Một số Webserver thông dụng hiện nay:

Trang 16

Hình 1 Một số Webserver thông dụng

Trước đây, trong những ngày đầu phát triển, có rất nhiều ngôn ngữ lậptrình cho website như JSP, ASP, PHP, ASP.NET tuy nhiên với những ưu thếvượt trội, hiện tại có hai ngôn ngữ được dùng phổ biến nhất là PHP vàASP.NET

1.3 Tổng quan về an ninh mạng

1.3.1 Khái niệm về an toàn và an ninh mạng

Trước đây, nói đến an ninh thông tin người ta thường nói đến các biện phápbảo mật vật lý sử dụng để bảo vệ cho những thông tin quan trọng khỏi bị truycập trái phép và để bảo vệ nó chống lại thay đổi hoặc tiêu hủy Các biện phápnhư lưu trữ tài liệu có giá trị trong kết sắt hoặc ở những nơi an toàn à hạn chếviệc truy cập vật lý đến các tài liệu đó Ngày nay, với sự phát triển của CNTT,

sự phổ biến của máy tính và internet, cách truy cập dữ liệu đã thay đổi, cácphương pháp bảo vệ dữ liệu đã thay đổi đáng kể

Với một chiếc máy tính thường chỉ yêu cầu các công bảo vệ dữ liệu trênmáy tính đó như phần mềm diệt virus hay phần quyền truy cập hệ thống củangười dùng, nhưng với một hệ thống máy tính nối mạng thì cần đòi hỏi nhiềuhơn, ví dụ như dữ liệu vào hệ thống đó được bảo vệ không chỉ từ truy cập địaphương mà còn từ các truy cập từ xa trái phép và cần phát hiện và ngăn chặn các

Trang 17

thay đổi dữ liệu trong quá trình truyền giữa các hệ thống An ninh mạng ở dâykhông phải là một quy trình, sản phẩm, hay chính sách mà là sự kết hợp của cácsản phẩm và quy trình có hỗ trợ một chính sách quy định

1.3.2 Sự cần thiết phải bảo vệ thông tin

Trong thời đại công nghệ thông tin, bất cứ doanh nghiệp hay tổ chức nàocũng có các yếu tố quan trong, cần được bảo vệ như:

- Tài nguyên: con người, hệ thống và đường truyền

- Dữ liệu

- Danh tiếng của công ty

Nếu không thực sự xác định được tầm quan trọng của vấn đề an toàn thôngtin thì khi gặp phải sự cố, tác hại đến doanh nghiệp không nhỏ:

- Tốn kém chi phí

- Tốn kém thời gian

- Ảnh hưởng đến tài nguyên hệ thống

- Ảnh hưởng đến danh dự, uy tín của doanh nghiệp

- Mất cơ hội kinh doanh

1.4 Một số lỗ hổng an ninh trên Website

Các lỗ hổng bảo mật có trên một hệ thống là các điểm yếu mà dựa vào đó,

kẻ tấn công có thể tấn công hệ thống, thêm quyền hoặc cho phép các truy nhậpkhông hợp pháp vào hệ thống Các lỗ hổng bảo mật có thể ở nhiều nơi trong hệthống, có thể ở ngay trong các dịch vụ, tiện ích như web, mail, file hoặc ởngay trong các ứng dụng, ngay trên hệ điều hành

Có nhiều tổ chức khác nhau đã tiến hành phân loại các dạng lỗ hổng Bộquốc phòng Mỹ đã nghiên cứu và phân loại các lỗ hổng bảo mật trên hệ thốngthành các loại:

Trang 18

- Lỗ hổng loại C: các lỗ hổng loại này cho phép thực hiện các phương thứctấn công từ chối dịch vụ theo (DoS - Dinal of Services) Loại lỗ hổng này cómức độ nguy hiểm thuộc loại thập, đa phần chỉ ảnh hưởng đến tốc độ và chấtlượng của dịch vụ, nặng hơn có thể làm gián đoạn hoạt động của hệ thống,nhưng không gây mất, hỏng dữ liệu hay chiếm quyền tuy cập bất hợp pháp

- Lổ hổng loại B: các lỗ hổng loại này có thể gây ra hiện tượng người sửdụng có thêm các quyền bất hợp pháp không cần kiểm tra hợp lệ

Các lỗ hổng cho phép người sử dụng hệ thống có thêm các quyền trên hệthống mà không cần thực hiện kiểm tra tính hợp lệ Loại lỗ hổng này có mức độnguy hiểm trung bình, nó có thể dẫn đến mất hoặc lộ thông tin yêu cầu bảo mật

- Lỗ hổng loại A: Các lỗ hổng loại này cho phép người sử dụng ở ngoài cóthể truy nhập vào hệ thống bất hợp pháp, có thể thay đổi, xóa hoặc làm phá hủytoàn bộ hệ thống

1.5 Một số điểm yếu bảo mật và kỹ thuật tấn công Website

1.5.1 Tấn công SQL Injection

1.5.1.1 SQL Injection là gì

Khi thiết kế và triển khai hệ thống website trên Internet, nhiều khi ngườilập trình vẫn nghĩ rằng bảo đảm an ninh và bảo mật để giảm thiểu khả năng tấncông của hacker là các vấn đề như: như chọn hệ điều hành, quản lý cơ sở dữliệu, máy chủ web sẽ chạy ứng dụng nhưng ngay cả bản thân website đó cũng

có thể có một lỗ hổng bảo mật lớn Một trong những lỗ hổng này là SQLInjection

SQL injection có thể hiểu là một cách tấn công, khi đó những kẻ tấn cônglợi dụng lỗ hổng khi xử lý dữ liệu nhập trong các trang web để "tiêm vào"(inject) các câu lênh SQL bất hợp pháp và thi hành các câu lệnh đó

Trang 19

Hậu quả của việc này thường rất nghiêm trọng vì những kẻ tấn công có thểdựa vào đó thực hiện các câu lệnh thêm, sửa, xóa trên cơ sở dữ liệu (Lê Đình

+ Dạng tấn công vượt qua kiểm tra đăng nhập:

Đây là dạng tấn công mà tin tặc có thể vượt qua các trang đăng nhập, làmđược điều này nhờ vào việc khai thác lỗi khi dùng các câu lệnh SQL thao táctrên cơ sở dữ liệu của ứng dụng web

Một ví dụ điển hình, thông thường khi cho phép người dùng truy cập vàocác trang web được bảo mật, một hệ thống thường xây dựng trang đăng nhập đểyêu cầu người dùng nhập thông tin về tên đăng nhập và mật khẩu Sau khi người

Trang 20

dùng nhập thông tin, hệ thống sẽ tiến hành kiểm tra tên đăng nhập cùng với mậtkhẩu có hợp lệ hay không để quyết định cho phép thực hiện tiếp hay không.Trong trường hợp này, người ta có thể dùng hai trang, một trang HTML để hiểnthị form nhập liệu và một trang ASP dùng để xử lí thông tin nhập từ phía ngườidùng

Ví dụ:

CODE

<form action="ExecLogin.asp" method="post">

Username: <input type="text" name="fUSRNAME"><br>

Password: <input type="password" name="fPASSWORD"><br>

strSQL = "SELECT * FROM T_USERS " & _

"WHERE USR_NAME=' " & vUsrName & _

" ' and USR_PASSWORD=' " & vPassword & " ' "

Set objRS = Server.CreateObject("ADODB.Recordset")

objRS.Open strSQL, "DSN= "

If (objRS.EOF) Then

Response.Write "Invalid login."

Else

Response.Write "You are logged in as " & objRS("USR_NAME")

End If Set objRS = Nothing %>

Thoạt nhìn, đoạn mã dường như không chứa bất cứ một lỗ hổng về an toànnào Người dùng không thể đăng nhập mà không có tên đăng nhập và mật khẩuhợp lệ Tuy nhiên, đoạn mã này thực sự không an toàn và là tiền đề cho một lỗi

Trang 21

SQL injection Chính điều này đã cho phép những kẻ tấn công có thể điều khiểncâu truy vấn tiếp theo sẽ được thực hiện Ví dụ, nếu nhập chuỗi sau vào trong ônhập liệu username và password của trang login.htm là:

' OR ' ' = ' ' Lúc này, câu truy vấn sẽ được gọi thực hiện là:

SELECT * FROM T_USERS WHERE USR_NAME ='' OR ''='' and

USR_PASSWORD= '' OR ''=''

Câu truy vấn này là hợp lệ và sẽ trả về tất cả các bản ghi của T_USERS vàđoạn mã tiếp theo xử lí người dùng đăng nhập bất hợp pháp này như là ngườidùng đăng nhập hợp lệ

+ Dạng tấn công sử dụng câu lệnh SELECT:

Đây là dạng tấn công phức tạp, kẻ tấn công thường có kiến thức về cơ sở

dữ liệu và có khả năng tìm ra các sơ hở trong thông báo lỗi của hệ thống, từ đólàm tiền đề để tấn công Xét một ví dụ rất thường gặp trong các website về tintức Thông thường, sẽ có một trang nhận ID của tin cần hiển thị rồi sau đó truyvấn nội dung của tin có ID này Mã nguồn cho chức năng này thường được viếtkhá đơn giản theo dạng

Trong các tình huống thông thường, đoạn mã này hiển thị nội dung của tin

có ID trùng với ID đã chỉ định và hầu như không thấy có lỗi Tuy nhiên, giống

Trang 22

như ví dụ đăng nhập ở trước, đoạn mã này để lộ sơ hở cho một lỗi SQL injectionkhác

Kẻ tấn công có thể thay thế ID mặc định bằng cách gán một giá trị kháccho ID đó, đó là cách khởi đầu cuộc tấn công, ví dụ như: abc OR 1=1, câu lệnhtruy vấn SQL lúc này sẽ là câu lệnh tìm kiếm tất cả từ bảng dữ liệu vì nó sẽ códạng:

SELECT * FROM T_NEWS WHERE NEWS_ID=abc or 1=1

Một trường hợp khác, ví dụ như trang tìm kiếm, đây là trang cho phépngười dùng tìm kiếm các thông tin như họ, tên, ngày sinh , ví dụ:

Nếu trang tìm kiếm sử dụng đoạn mã trên, kẻ tấn công có thể tìm ra sơ hở

và nhập vào ô tên giá trị:

' UNION SELECT ALL SELECT OtherField FROM OtherTable

WHERE ' '='

Lúc này, ngoài câu truy vấn đầu không thành công, chương trình sẽ thựchiện thêm lệnh tiếp theo sau từ khóa UNION nữa Tất nhiên các ví dụ nói trên,dường như không có gì nguy hiểm, nhưng kẻ tấn công có thể xóa toàn bộ cơ sở

dữ liệu bằng cách chèn vào các đoạn lệnh nguy hiểm như lệnh DROP TABLE

Trang 23

+ Dạng tấn công sử dụng câu lệnh INSERT:

Các ứng dụng trên web muốn lưu thông tin người sử dụng thường có chứcnăng tạo tài khoảng cho người dùng, người dùng có thể đăng ký thông tin khitạo tài khoản hoặc điều chỉnh sau khi đăng ký thành công Trong những việcnày, kẻ tấn công cũng có thể lợi dụng để tấn công SQL injection khi mà hệthống bỏ qua việc kiểm tra tính hợp lệ của thông tin nhập vào Ví dụ, với mộtcâu lệnh INSERT có cú pháp: INSERT INTO Table_Name VALUES('V1, 'V2','V3')

Nếu đoạn mã có dạng:

CODE

<%

strSQL = "INSERT INTO TableName VALUES(' " & strV1

& " ', ' " _ & strV2 & " ', ' " & strV3 & " ') "

Set objRS = Server.CreateObject("ADODB.Recordset")

objRS.Open strSQL, "DSN= "

Set objRS = Nothing

%>

Thì sẽ bị lỗi SQL injection, để chứng minh điề này, trong trường thứ nhất

ta nhập: ' + (SELECT TOP 3 FieldName FROM Table_Name) + ' Khi này máy

sẽ thực hiện câu lệnh truy vấn: INSERT INTO TableName VALUES(' ' +(SELECT TOP 3 FieldName FROM Table_Name) + ' ', 'aaaa', 'bbbbb') Kết quảnhận được ngoài lệnh xem thông tin, máy còn thực hiện một lệnh nữa đó là:SELECT TOP 3 FieldName FROM Table_Name

1.5.1.3 Cách phòng chống tấn công SQL

Như vậy, có thể thấy lỗi SQL injection khai thác những bất cẩn của các lậptrình viên phát triển ứng dụng web khi xử lí các dữ liệu nhập vào để xây dựngcâu lệnh SQL Tác hại từ lỗi SQL injection tùy thuộc vào môi trường và cách

Trang 24

cấu hình hệ thống Nếu ứng dụng sử dụng quyền dbo (quyền của người sở hữu

cơ sở dữ liệu - owner) khi thao tác dữ liệu, nó có thể xóa toàn bộ các bảng dữliệu, tạo các bảng dữ liệu mới, … Nếu ứng dụng sử dụng quyền sa (quyền quảntrị hệ thống), nó có thể điều khiển toàn bộ hệ quản trị cơ sở dữ liệu và với quyềnhạn rộng lớn như vậy nó có thể tạo ra các tài khoản người dùng bất hợp pháp đểđiều khiển hệ thống của bạn Để phòng tránh, ta có thể thực hiện ở hai mức:

- Kiểm soát chặt chẽ dữ liệu nhập vào

Chúng ta có thể kiểm soát chặt chẽ dữ liệu nhập vào bằng cách bảo vệ cáccâu lệnh SQL như kiểm soát chặt chẽ tất cả các dữ liệu nhập nhận được từ cácđối tượng Request (Request, Request.QueryString, Request.Cookies,Request.Form, Request.ServerVariables) Ví dụ, ta có thể giới hạn chiều dài củachuỗi nhập liệu, hoặc xây dựng hàm EscapeQuotes để thay thế các dấu nháy đơnbằng 2 dấu nháy đơn như:

CODE

<%

Function KillChars(sInput)

Trang 25

Hiện nay, XSS là kỹ thuật tấn công khá phổ biến, đây cũng là một vấn đềbảo mật đáng quan tâm của những người phát triển web cũng như của nhữngngười sử dụng Ngay cả đối với những trang như www.fbi.gov, www.ebay.com,www.yahoo.com cũng từng bị lỗi XSS Vì vậy, khi mà những trang web chophép người dùng đăng những thông tin đều có thể tiềm ẩn các lỗi XSS nếukhông có sự kiếm soát chặt chẽ.

Cũng giống như SQL Injection hay Source Injection, về mặt cơ bản XSScũng là các yêu cầu được gửi từ các máy trạm tới máy chủ nhằm chèn vào cácthông tin vượt quá tầm kiểm soát của máy chủ

1.5.2.2 Tấn công XSS

+ Nhận biết website bị mắc lỗi XSS:

Trang 26

Thường thì XSS có thể xảy ra tại những nơi mà người dùng có thể nhập dữliệu vào, sau đó sẽ nhận được một kết quả gì đó Nên thường chúng ta sẽ kiểmtra ở những ô đăng nhập (login form) đầu vào Khi nhập một chuỗi kí tự nào đó

mà kết quả của server trả về có dính tới chuỗi mà bạn nhập thì rất có khả năngtrang đó bị mắc lỗi XSS

Hình 3 Mô hình tấn công XXS (Cross-Site Scripting)

Thông thường kẻ tấn công (attacker) sử dụng XSS để lấy các thông tinquan trọng: cookie, user name và password Ở đây sử dụng XSS để đánh cắpcookie của nạn nhân (victim)

Trang 27

CODE

http://sitexss.com/index.php?act=<script>location="http://hostcuaban.com/cookie.php?cookie="+(document.cookie)

</script>

1.5.2.3 Phòng chống tấn công bằng XSS

Nếu sử dụng các mã nguồn được xây dựng sẵn, có thể truy cập các trangweb securityfocus.com, securiteam.com, để tham khảo danh sách các lỗ hổngbảo mật Tuy nhiên không thể áp dụng phương pháp trên nếu tự viết mã nguồncác website Trong trường hợp này cần dùng đến các chương trình dò tìm kiếm(scanner) tự động Nếu sử dụng trong môi trường Windows, có những chươngtrình quét tìm chất lượng như AppScan hay N-Stealth, nó không tìm ra nhữnglỗi XSS mà nó còn có thể kiểm tra các lỗi khác trong website đó

Tuy XSS khá nguy hiểm nhưng để ngăn ngừa cũng không quá khó khăn.Chúng ta có thể giải quyết vấn đề này bằng nhiều cách như:

+ Chỉ chấp nhận những dữ liệu hợp lệ

+ Từ chối nhận các dữ liệu hỏng

+ Liên tục kiểm tra và thanh lọc dữ liệu

Tuy nhiên trong thực tế, có nhiều trường hợp phải chấp nhận mọi loại dữliệu hay không có một bộ lọc phù hợp, vì vậy cần phải có những cách riêng đểgiải quyết Khi gặp trường hợp này, chúng ta có thể dùng cách mã hoá các kí tựđặc biệt trước khi in ra website, đây là một cách khá hữu hiệu và có thể áp dụngđối với nhiều ngôn ngữ Web Application (ASP, PHP )

1.5.3 Tấn công từ chối dịch vụ DOS (Denial of Service)

1.5.3.1 Khái niệm

Theo Nguyễn Thanh Nghị (2008), trong cuốn “Tấn công từ chối dịch vụDos, Ddos, DRDos”, tấn công DOS là một kiểu tấn công mà kẻ tấn công làmcho hệ thống không thể sử dụng, hoặc làm cho hệ thống chậm đi một cách đáng

kể so với bình thường, bằng cách làm quá tải tài nguyên của hệ thống

Trang 28

Tuy kiểu tấn công này, kẻ tấn công không thể đăng nhập vào hệ thốngnhưng chúng có thể làm cho hệ thống ngưng trệ, thậm trí sụp đổ và không cókhả năng phục vụ người dùng bình thường, làm gián đoạn các dịch vụ mà hệthống đó cung cấp

1.5.3.2 Mục đích của tấn công DOS

Hầu hết những cuộc tấn công DOS đều chiếm băng thông mạng và làmngập (flood) hệ thống mạng, khi đó những yêu cầu dịch vụ bình thường hệ thống

sẽ không còn khả năng đáp ứng, chúng còn gây ra sự ngắt kết nối giữa các máytính, quá trình truy cập vào dịch vụ cũng bị gián đoạn, mục đích kẻ tấn công là:

- Tạo ra sự khan hiếm, những giới hạn và không đổi mới tài nguyên

- Mục tiêu của tấn công DOS còn là chiếm băng thông mạng, ổ đĩa, bộnhớ, cơ sở dữ liệu

- Tấn công vào các hệ thống, thứ để vụ cho mạng máy tính như: điều hoà,

hệ thống làm mát, hệ thống điện

- Phá hoại hoặc thay đổi các thông tin cấu hình

- Phá hoại tầng vật lý, các thiết bị mạng như điều hoà, nguồn điện…

Hình 4 Một mô hình tấn công từ chối dịch vụ DOS

1.5.3.3 Tấn công từ chối dịch vụ DOS

Là phương thức xuất hiện đầu tiên, giản đơn nhất trong kiểu tấn công từchối dịch vụ Các kiểu tấn công thuộc phương thức này rất đa dạng:

Trang 29

+ Tấn công chiếm dụng tài nguyên (Resource Depletion):

Bằng cách lạm dụng quá trình giao tiếp của giao thức mạng hoặc những góitin dị thường, kẻ tấn công sẽ chiếm dụng nguồn tài nguyên hệ thống như bộ nhớ(RAM) và bộ vi xử lý (CPU)… khiến cho người dùng chia sẻ không truy xuấtđược hệ thống do hệ thống không đủ khả năng xử lý

+ Tấn công SYN:

Được xem là một trong những kiểu tấn công DOS kinh điển nhất Trongthủ tục “bắt tay ba chiều” của TCP có những sơ hở mà kẻ tấn công chó thể lợidụng như mỗi khi máy khách muốn thực hiện kết nối tới máy chủ thì nó cầnthực hiện việc bắt tay ba lần (three-ways-handshake) thông qua các gói tin, từ đókhởi đầu cho cuộc tấn công

- Bước 1: Máy trạm sẽ gửi các gói tin (packet chứa SYN=1) đến máy chủ

để yêu cầu kết nối

- Bước 2: Khi nhận được gói tin này, máy chủ sẽ gửi lại gói tin SYN/ACK

để thông báo cho máy trạm biết là nó đã nhận được yêu cầu kết nối và chuẩn bịtài nguyên cho việc yêu cầu này Máy chủ khi đó sẽ giành một phần tài nguyên

hệ thống như bộ nhớ đệm (cache) để nhận và truyền dữ liệu Ngoài ra, các thôngtin khác của máy trạm client như địa chỉ IP và cổng (port) cũng được ghi nhận

- Bước 3: Cuối cùng, máy trạm hoàn tất việc bắt tay ba lần bằng cách hồi

âm lại gói tin chứa ACK cho máy chủ và tiến hành kết nối

Do TCP là thủ tục tin cậy trong việc giao nhận (end-to-end) nên trong lầnbắt tay thứ hai, server gửi các gói tin SYN/ACK trả lời lại máy trạm mà khôngnhận lại được hồi âm của máy trạm để thực hiện kết nối thì nó vẫn bảo lưunguồn tài nguyên chuẩn bị kết nối đó và lập lại việc gửi gói tin SYN/ACK chomáy trạm đến khi nào nhận được hồi đáp của máy máy trạm

Điểm mấu chốt là ở đây là làm cho máy trạm không hồi đáp cho máy chủ

Và có nhiều máy trạm như thế trong khi máy chủ vẫn tiếp tục lặp lại việc gửi gói

Trang 30

tin (packet) đó và giành tài nguyên để chờ phản hồi trong lúc tài nguyên của hệthống là có giới hạn Kẻ tấn công sẽ tìm cách để đạt đến giới hạn đó.

Nếu quá trình đó kéo dài, máy chủ sẽ nhanh chóng trở nên quá tải, dẫn đếntình trạng treo (crash), nên các yêu cầu hợp lệ sẽ bị từ chối không thể đáp ứngđược

Hình 5 Mô hình tấn công SYNFlood Attack

Về nguyên tắc, các website đặt trên máy chủ khi chạy sẽ tiêu lượng tàinguyên máy chủ nhất định, nhất là lượng bộ nhớ (RAM) và bộ vi xử lý (CPU).Dựa vào việc tiêu hao đó, những kẻ tấn công đơn giản là dùng các phần mềmnhư Smurf chẳng hạn để liên tục yêu cầu máy chủ phục vụ trang web đó đểchiếm dụng tài nguyên Cách tấn công này tuy không làm máy chủ ngừng cungcấp dịch vụ hoàn toàn nhưng sẽ làm cho tốc độ phục vụ của toàn bộ hệ thốnggiảm mạnh, người dùng sẽ cảm nhận rõ ràng việc phải chờ lâu hơn để trang webhiện ra trên màn hình Nếu thực hiện tấn công ồ ạt và có sự phối hợp nhịpnhàng, phương thức tấn công này hoàn toàn có thể làm tê liệt máy chủ trong mộtthời gian dài

+ Tấn công chiếm dụng băng thông:

Có 2 loại tấn công chính:

- Thứ nhất là làm ngập bằng cách gửi liên tục các gói tin có kích thước lớnđến hệ thống nạn nhân, làm nghẽn băng thông nạn nhân

Trang 31

- Thứ hai là sử dụng mạng khuếch đại, kẻ tấn công gửi thông tin đến mộtđịa chỉ phát quảng bá (broadcast), tất cả hệ thống trong mạng con nạn nhân(victim) trong phạm vi bởi địa chỉ quảng bá sẽ gửi lại hệ thống nạn nhân mộtthông điệp phản hồi cho máy nạn nhân chấp nhận trao đổi dữ liệu Phương phápnày khuếch đại dòng lưu lượng làm cho hệ thống nạn nhân giảm băng thôngđáng kể.

1.5.3.4 Phòng chống tấn công DOS

Để phòng chống tấn công DOS, có ba giai đoạn chính cần quan tâm:

- Giai đoạn ngăn ngừa gồm: tối thiểu hóa lượng Agent, tìm và vô hiệu hóacác Handler

- Giai đoạn đối đầu: đó là khi phát hiện ra cuộc tấn công, lúc đó cần ngănchặn, làm suy giảm, dừng hoặc chuyển hướng cuộc tấn công

- Giai đoạn sau khi tấn công: sau khi cuộc tấn công sảy ra cần phân tích các

dữ liệu để tìm các chứng cứ và rút kinh nghiệm để phòng chống các cuộc tấncông sau

Trang 32

CHƯƠNG 2: TẤN CÔNG THAY ĐỔI NỘI DUNG VÀ MỘT SỐ

THUẬT TOÁN PHÁT HIỆN SỰ THAY ĐỔI

Trong chương 1 luận văn nêu lên một số các khái niệm cơ bản về web, thựctrạng an ninh Web trên thế giới và tại Việt Nam, một số lỗ hổng an ninh trênWebsite, một số điểm yếu bảo mật và kỹ thuật tấn công Website

Với những lỗ hổng an ninh đó đều có thể làm tiền đề cho những cuộc tấncông vào hệ thống website, trong đó có Tấn công thay đổi nội dung (Defacewebsite)

2.1 Khái niệm Tấn công thay đổi nội dung (Deface website)

Deface website được định nghĩa là tấn công thay đổi nội dung website,thông qua một điểm yếu nào đó của website, hacker sẽ thay đổi nội dungwebsite của nạn nhân Việc thay đổi nội dung này nhằm một số mục đích:

- Mục đích tốt: cảnh báo quản trị viên biết website đang tồn tại lỗ hỏng bảomật, điểm yếu nghiêm trọng…

- Mục đích không tốt: chứng tỏ năng lực bản thân, thú vui…

- Mục đích xấu: thù hằn, nội dung thay đổi thường là lăng mạ nạn nhânhoặc nội dung liên quan đến chính trị, tôn giáo, quốc gia…

2.2 Vì sao website bị Deface?

Có rất nhiều nguyên nhân bị Deface, chủ yếu nhất là website tồn tại điểmyếu bảo mật nghiêm trọng như đã nêu trong mục "Một số lỗ hổng an ninh trênWebsite" hoặc có thể do một số nguyên nhân khác như:

- Đặt mật khẩu quản trị quá yếu ( không đủ độ dài ký tự, không có các ký

tự viết hoa, ký tự đặc biệt, ), thiếu cơ chế chống brute force khiến kẻ tấn công

có thể dò password admin

- Cài đặt các module, plugin, extension, trong các mã nguồn mở hiện nay( thường là các website joomla, wordpress, )

- Để lộ mật khẩu quản trị

Trang 33

2.3 Thực trạng tấn công thay đổi nội dung tại Việt Nam

Đã có hơn 1.500 sự cố tấn công mạng nhắm vào Việt Nam trong hai thángđầu năm 2018 Trung tâm Ứng cứu khẩn cấp máy tính Việt Nam (VNCERT)công bố số liệu vừa nêu hôm 7 tháng 3 năm 2018

Theo VNCERT trong số 1.500 trường hợp tấn công, có 962 tấn công giaodiện (deface), 324 trường hợp dùng mã độc tấn công (malware) và 218 tấn cônglừa đảo (phishing)

Cũng theo thống kê của VNCERT, các sự cố mạng tại Việt Nam tăng mạnh

từ năm 2017 với tổng cộng 134.375 sự cố tấn công mạng trong năm 2017, baogồm cả 3 loại hình phổ biến nhất hiện nay là Deface, Malware và Phishing

Đã có rất nhiều website lớn bị tấn công Deface gây thiệt hại không nhỏ vềvật chất cũng như uy tín của tổ chức, doanh nghiệp, có thể kẻ đến như websitecủa Tổng công ty Hàng không Việt Nam (vietnamairlines.com) ngày 29/7/2016,website của Sở TT&TT Nam Định (sotaichinh.namdinh.gov.vn) ngày 1/8/2016,website của báo Sinh viên Việt Nam (svvn.vn) ngày 05/8/2016, 10 trang thôngtin điện tử của một số cơ quan nhà nước tỉnh Bà Rịa - Vũng Tàu ngày ngày5/2/2017, một số website của các cảng hàng không như: Tân Sơn Nhất, RạchGiá, Tuy Hòa trong hai ngày 8-9/3/2017

Trang 34

Hình 6 Giao diện Website Sở KH&CN BR- VT bị tấn công

(Ảnh: ictnews.vn)

Hình 7 Giao diện Website sân bay Tuy Hòa bị tấn công (Ảnh:

Dantri.com.vn)

Ngày đăng: 05/07/2018, 11:51

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w