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

Nghiên cứu xây dựng hệ thống giám sát sự thay đổi nội dung website

88 303 3

Đ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 88
Dung lượng 2 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ật các lọai tấn công này, 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

Trang 1

VŨ MINH HUY

NGHIÊN CỨU XÂY DỰNG HỆ THỐNG GIÁM SÁT SỰ THAY ĐỔI NỘI DUNG WEBSITE

LUẬN VĂN THẠC SĨ CHUYÊN NGÀNH KHOA HỌC MÁY TÍNH

THÁI NGUYÊN - 2017

Trang 2

VŨ MINH HUY

NGHIÊN CỨU XÂY DỰNG HỆ THỐNG GIÁM SÁT SỰ THAY ĐỔI NỘI

DUNG WEBSITE

LUẬN VĂN THẠC SĨ CHUYÊN NGÀNH KHOA HỌC MÁY TÍNH

THÁI NGUYÊN - 2017

Trang 3

LỜI CẢM ƠN

Trước hết tôi xin gửi lời cảm ơn sâu sắc nhất đến thầy hướng dẫn khoa học

TS Lê Quang Minh về những chỉ dẫn khoa học, định hướng nghiên cứu và tận tình hướng dẫn tôi trong suốt quá trình làm luận văn

Tôi cũng xin cảm ơn các Thầy trong Viện Công nghệ thông tin và các Thầy

Cô trong trường Đại học Công nghệ thông tin và Truyền thông – Đại học Thái Nguyên đã quan tâm chỉ bảo và trực tiếp giảng dạy, giúp đỡ trong suốt quá trình học tập và nghiên cứu

Tôi xin chân thành cảm ơn lãnh đạo các phòng ban, đồng nghiệp đơn vị công tác cũ là Chi nhánh Viettel Thái Nguyên và đơn vị công tác mới là Công ty

cổ phần VETC đã tạo điều kiện cho tôi học tập và nghiên cứu đề tài này

Cuối cùng tôi xin cảm ơn gia đình và bạn bè, những người đã luôn ủng hộ

và động viên tôi trong suốt quá trình học tập và nghiên cứu luận văn này

Thái Nguyên, tháng 05 năm 2017

Học viên

Vũ Minh Huy

Trang 4

LỜI CAM ĐOAN

Tôi xin cam đoan:

Những kết quả nghiên cứu được trình bày trong luận văn là hoàn toàn trung thực của tôi, không vi phạm bất cứ điều gì trong luật sở hữu trí tuệ và pháp luật Việt Nam Nếu sai, tôi xin chịu hoàn toàn trách nhiệm trước pháp luật

Thái Nguyên, tháng 05 năm 2017

Học viên

Vũ Minh Huy

Trang 5

MỤC LỤC

LỜI CẢM ƠN 1

LỜI CAM ĐOAN 2

MỤC LỤC 3

DANH MỤC CÁC KÝ HIỆU 6

DANH MỤC HÌNH VẼ 8

LỜI MỞ ĐẦU 9

CHƯƠNG 1: TỔNG QUAN VỀ WEBSITE VÀ MỘT SỐ VẤN ĐỀ AN NINH 12

1.1 Một số khái niệm cơ bản về Website 12

1.1.1 Khái niệm Web 12

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

1.1.3 Trình duyệt Web 13

1.1.4 Địa chỉ URL 13

1.1.5 Tên miền 14

1.1.6 Giao thức HTTP và HTTPS 15

1.1.7 Web Server 16

1.1.8 Database Server 17

1.1.9 Các dịch vụ và ứng dụng trên nền Web 17

1.2 Thực trạng an ninh Web tại Việt Nam và trên thế giới 18

1.3 Vai trò và mục đích của việc theo dõi sự thay đổi nội dung trang web 19

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

1.5 Một số kỹ thuật tấn công Website 21

1.5.1 Tấn công SQL Injection 21

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

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

Trang 6

1.6 Kết luận chương 1 41

CHƯƠNG 2: CÁC THUẬT TOÁN GIÁM SÁT VÀ MỘT SỐ PHƯƠNG PHÁP ĐẢM BẢO AN NINH WEBSITE 42

2.1 Một số phương pháp đảm bảo an ninh Website 42

2.1.1 Đảm bảo an ninh hệ điều hành Webserver 42

2.1.2 Đảm bảo an ninh Webserver 43

2.1.3 Quản trị Webserver 47

2.1.3.1 Logging 47

2.1.3.2 Thủ tục sao lưu Webserver 47

2.1.3.3 Phục hồi từ một sự làm hại an ninh 48

2.1.3.4 Kiểm tra bảo mật Webserver 48

2.1.4 Bảo đảm an ninh nội dung Web 49

2.1.5 Sử dụng kỹ thuật xác thực và mã hóa 51

2.1.5.1 Xác định các yêu cầu xác thực và mã hóa 51

2.1.5.2 Xác thực dựa trên địa chỉ 52

2.1.5.3 Xác thực cơ bản 52

2.1.5.4 Xác thực Digest 53

2.1.5.5 SSL/TLS 53

2.1.6 Triển khai cơ sở hạ tầng mạng an ninh 55

2.1.6.1 Thành phần và cấu trúc mạng 55

2.1.6.2 Cấu hình phần tử mạng 55

2.2 Các thuật toán giám sát 56

2.2.1 Hàm băm mật mã 56

2.2.1.1 Giới thiệu hàm băm mật mã 56

2.2.1.2 Tính một chiều của hàm băm 57

2.2.1.3 Cấu trúc hàm băm 58

2.2.2 Thuật toán đối sánh chuỗi 60

Trang 7

2.2.3.1 Khái niệm đối sánh chuỗi 60

2.2.2.2 Phân loại thuật toán đối sánh chuỗi 61

2.2.3 Dấu vân tay tài liệu 61

2.2.4 Thuật toán Rabin Fingerprint 62

2.2.5 Thuật toán Rabin Fingerprint cải tiến 64

2.3 Kết luận chương 2 66

CHƯƠNG 3: ỨNG DỤNG THUẬT TOÁN RABIN FINGERPRINT CẢI TIẾN XÂY DỰNG HỆ THỐNG GIÁM SÁT SỰ THAY ĐỔI NỘI DUNG WEBSITE 67

3.1 Giới thiệu 67

3.2 Hệ thống giám sát nội dung Website 68

3.2.1 Hệ thống Builder 70

3.2.2 Hoạt động Multi-checker 70

3.2.3 Hệ thống Recover 72

3.2.4 Hệ thống Self-watcher 73

3.2.5 Hệ thống Admin 74

3.3 Hoạt động hệ thống dựa trên các phát hiện thay đổi bất thường 74

3.3.1 Tổng quan hệ thống 74

3.3.2 Kiến trúc hệ thống 75

3.4 Phân tích hoạt động của hệ thống 76

3.5 Cài đặt và thử nghiệm chương trình 79

3.5.1 Cài đặt chương trình 79

3.5.2 Thử nghiệm chương trình 80

3.5.3 Nhận xét kết quả 82

3.6 Kết luận chương 3 83

KẾT LUẬN 84

TÀI LIỆU THAM KHẢO 85

Trang 8

DANH MỤC CÁC KÝ HIỆU

2 CNTT Công nghệ thông tin

4 CSS Ngôn ngữ quy định cách trình bày của các thẻ html

trên trang web

Cascading Style Sheet

6 DOS Từ chối dịch vụ Dinal of Services

7 Firewall Tường lửa

8 Hosting Nơi cung cấp dịch vụ và lưu

trữ website

9 HTML Ngôn ngữ đánh dấu siêu văn

bản

Hypertext Markup Language

10 HTTP Giao thức truyền siêu văn

bản

Hypertext Transfer Protocol

11 HTTPS Kết hợp giữa giao thức HTTP và giao thức bảo mật

SSL hay TLS

12 Hyperlink Liên kết siêu văn bản

13 Hypertext Hệ thống siêu văn bản

14 ICMP Giao thức thông điệp vận

chuyển Internet

Internet Control Message Protocol

15 Internet Mạng toàn cầu

17 IPS Hệ thống chống xâm nhập Intrusion Prevention

System

18 OSI Mô hình hệ thống mở Open Systems

Interconnection

Trang 9

19 SQL Ngôn ngữ truy vấn mang tính

20 SSL Giao thức bảo mật Secure Sockets Layer

21 SYN Ký tự đồng bộ hoá The Synchronous Idle

Character

22 TLS Giao thức bảo mật Transport Layer Security

23 UDP Giao thức dữ liệu người

24 URL Định vị tài nguyên thống

25 Web

browser Trình duyệt web

26 Web server Máy chủ phục vụ web

27 XML Ngôn ngữ Đánh dấu Mở rộng Xtensible Markup

Language

28 XSS

Là một kiểu tấn công cho phép kẻ tấn công chèn những đoạn script độc hại (thông thường là javascript hoặc HTML) vào website (Cross Site Scripting)

Trang 10

DANH MỤC HÌNH VẼ

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

Hình 1.2 Mô hình tấn công SQL Injection 21

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

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

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

Hình 2.1 SSL/TLS đặt trong Internet Protocol Stack 55

Hình 3.1 Sơ đồ Merkel-Damgard 60

Hình 3.2 Mô tả thuật toán Rabin Fingerprint 65

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

Hình 3.4 Sơ đồ kiến trúc hệ thống giám sát website 71

Hình 3.5 Các thuộc tính cơ bản của tập tin 73

Hình 3.6 Kiến trúc hệ thống phát hiện thay đổi bất thường 77

Hình 3.7 Sơ đồ phương pháp phát hiện sự thay đổi nội dung trang web 79

Hình 3.8 Giao diện chính của chương trình giám sát website 82

Hình 3.9 Chương trình giám sát website theo dõi 4 website đồng thời 84

Hình 3.10 Hoạt động của chức năng Advanced Mode 82

Trang 11

LỜI MỞ ĐẦ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 phát triển đa dạng và phong phú Các dịch vụ trên mạ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 tin cầ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ạp hơ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ế đó, đề tài sẽ tìm hiểu về một số kiểu tấn công phổ biến hiện nay và cách phòng chống các loại tấn công nà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 lọai tấn công này, 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 các trang web đư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

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

Vớ i sự phát triển rất nhanh của các ứng du ̣ng trên nền Web, việc bảo mật an ninh an toàn cho các trang Web là một lĩnh vực đặc biệt quan trọng vì nó được truy cập mọi lúc mọi nơi và bất kỳ ai Tuy vâ ̣y không phải bất kỳ nhà phát triển phần mềm Web nào cũng chú tâm đến viê ̣c bảo mật anh ninh, vì vậy nhiều ứng du ̣ng Web vẫn tồn tại với các nguy cơ mất an ninh, an toàn, bảo mật và gây ra nhiều thiê ̣t

hại khi bị tấn công Tuy nhiên viê ̣c tìm kiếm và phát hiện ra các nguy cơ an ninh thủ công khá khó khăn trong khi đó có nhiều nguy cơ an ninh có thể phát hiện được

Trang 12

bằng các công cụ tự đô ̣ng Bên ca ̣nh đó, các loa ̣i nguy cơ an ninh không ít, và cũng

có rất nhiều công cụ tự động phát hiện nguy cơ bảo mật nên người phát triển phần mềm khi muốn kiểm tra mức độ an ninh an toàn của trang web của mình cũng gặp phải nhiều khó khăn Chính vì vậy đề tài này nghiên cứu một số kiểu tấn công đang phổ biến hiện nay và từ đó xây dựng một hệ thống với công cu ̣ phát hiê ̣n các nguy

cơ mất an ninh an toàn các trang web đồng thời đưa ra các cảnh báo với các nhà quản trị web để có biện pháp xử lý kịp thời

Ngày nay việc kiểm soát an ninh mạng như tường lửa (Firewall), Mạng riêng ảo (VPN - Virtual Private Network) là những công cụ quan trọng để giữ cho các trang web được an toàn hơn, nhưng những công cụ này không đủ để đảm bảo

an toàn an ninh cho các trang web hiện nay Như chúng ta biết, môi trường web là môi trường mở, có nguy cơ lúc nào cũng có thể bị tấn công xẩy ra mất an toàn an ninh cho trang web là rất cao Chính vì vậy phải xây dựng một hệ thống với công

cụ phát hiện sớm những thay đổi bất thường không như mong muốn đồng thời đưa

ra những cảnh báo cho các nhà quản trị web để họ kịp thời có những giải pháp phù hợp là rất cần thiết

2 Mục tiêu

Mục tiêu của luận văn nghiên cứu tìm hiểu tổng quan về website, các mối

đe dọa về vấn đề an toàn thông tin khi chúng ta làm việc trên ứng dụng web hàng ngày, hiểu rõ hơn 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ổng quan, để áp dụng các chính sách về bảo mật trang web an toàn

dữ liệu cho hệ thống Đồng thời phát triển xây dựng phần mềm phát hiện sớm các tấn công làm thay đổi nội dung trang web từ đó đưa ra các cảnh báo giúp cho người 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àm cho hệ thống bảo mật được tốt hơn

Trang 13

3 Bố cục luận văn gồm

Chương 1: Tổng quan về Website và một số vấn đề an ninh

Trong chương 1 luận văn đã nêu một số các khái niệm cơ bản về Website, đánh giá tổng quan tình hình mất an ninh, an toàn trên nền Web Nêu lên một số lỗ hổng an ninh trên Web và các kỹ thuật tấn công Web

Chương 2: Các thuật toán giám sát và một số phương pháp đảm bảo an ninh Website

Trong chương 2 luận văn nghiên cứu các thuật toán giám sát và phân tích sâu một số phương pháp đảm bảo an ninh Web: đảm bảo an ninh hệ điều hành Webserver, đảm bảo an ninh Webserver, đảm bảo an ninh nội dung Web, các cơ chế xác thực và mã hóa, triển khai cơ sở hạ tầng mạng an ninh, quản trị Webserver

Chương 3: Ứng dụng thuật toán Rabin fingerprint cải tiến xây dựng hệ thống giám sát sự thay đổi nội dung Website

Trong chương này, dựa trên nghiên cứu lý thuyết hàm băm mật mã và thuật toán đối sánh chuỗi, cũng như phân tích thuật toán Rabin Fingerprint và cải tiến thuật toán Rabin Fingerprint và xây dựng hệ thống giám sát website dựa trên các thay đổi bất thường nội dung trang web, đưa ra cảnh báo kịp thời có ý nghĩa

Trang 14

CHƯƠNG 1 TỔNG QUAN VỀ WEBSITE VÀ MỘT SỐ VẤN ĐỀ AN NINH

1.1 Một số khái niệm cơ bản về Website

1.1.1 Khái niệm Web

World Wide Web, gọi tắt là Web hoặc WWW, mạng lưới toàn cầu là một không gian thông tin toàn cầu mà mọi người có thể truy nhập (đọc và viết) qua các máy tính nối với mạng Internet Thuật ngữ này thường được hiểu nhầm là từ đồng nghĩa với chính thuật ngữ Internet Nhưng Web thực ra chỉ là một trong các dịch

vụ chạy trên Internet, chẳng hạn như dịch vụ thư điện tử Web được phát minh và đưa vào sử dụng vào khoảng năm 1990, 1991 bởi viện sĩ Viện Hàn lâm Anh Tim Berners-Lee và Robert Cailliau (Bỉ) tại CERN, Geneva, Switzerland

Các tài liệu trên World Wide Web được lưu trữ trong một hệ thống siêu văn bản (hypertext), đặt tại các máy tính trong mạng Internet Người dùng phải sử dụng một chương trình được gọi là trình duyệt web (web browser) để xem siêu văn bản Chương trình này sẽ nhận thông tin (documents) tại ô địa chỉ (address) do người sử dụng yêu cầu (thông tin trong ô địa chỉ được gọi là tên miền (domain name)), rồi sau đó chương trình sẽ tự động gửi thông tin đến máy chủ (web server) và hiển thị trên màn hình máy tính của người xem Người dùng có thể theo các liên kết siêu văn bản (hyperlink) trên mỗi trang web để nối với các tài liệu khác hoặc gửi thông tin phản hồi theo máy chủ trong một quá trình tương tác Hoạt động truy tìm theo các siêu liên kết thường được gọi là duyệt Web

Quá trình này cho phép người dùng có thể lướt các trang web để lấy thông tin Tuy nhiên độ chính xác và chứng thực của thông tin không được đảm bảo

Trang 15

1.1.2 Hoạt động của Web

Thông qua trình duyệt, người dùng cuối sẽ kết nối đến máy chủ phục vụ web bằng địa chỉ URL Tại đây, máy chủ phục vụ web sẽ xử lý kết nối và gửi yêu cầu đến ứng dụng web Tùy theo yêu cầu, ứng dụng web sẽ truy vấn đến cơ sở dữ liệu và nhận kết quả trả về, sau đó sẽ gửi phản hồi về máy chủ phục vụ web Cuối cùng máy chủ phục vụ web sẽ gửi dữ liệu về trình duyệt dưới dạng siêu văn bản

và người dùng cuối sẽ nhận thông tin hiển thị trên trình duyệt

1.1.3 Trình duyệt Web

Trình duyệt web là một phần mềm ứng dụng cho phép người sử dụng xem

và tương tác với các văn bản, hình ảnh, đoạn phim, nhạc, trò chơi và các thông tin khác ở trên một trang web của một địa chỉ web trên mạng toàn cầu hoặc mạng nội

bộ Văn bản và hình ảnh trên một trang web có thể chứa siêu liên kết tới các trang web khác của cùng một địa chỉ web hoặc địa chỉ web khác Trình duyệt web cho phép người sử dụng truy cập các thông tin trên các trang web một cách nhanh chóng và dễ dàng thông qua các liên kết đó Trình duyệt web đọc định dạng HTML, CSS, XML,… để hiển thị, do vậy một trang web có thể hiển thị khác nhau trên các trình duyệt khác nhau

Một số trình duyệt web hiện nay cho máy tính cá nhân bao gồm Internet Explorer, Mozilla Firefox, Safari, Opera, Avant Browser, Konqueror, Lynx, Google Chrome, Flock, Arachne, Epiphany, K-Meleon và AOL Explorer

1.1.4 Địa chỉ URL

Địa chỉ URL (Uniform Resource Locator) [21] được dùng để tham chiếu tới tài nguyên trên Internet URL mang lại khả năng siêu liên kết cho các trang mạng, các tài nguyên khác nhau

Trang 16

Một URL gồm các thành phần sau:

 Giao thức (ví dụ: http, ftp) nhưng cũng có thể là một cái tên khác (ví dụ: news, mailto)

 Tên miền (ví dụ: example.com.vn, abc.vn)

 Cổng (ví dụ: 80, 8080), tuy nhiên thành phần này có thế không bắt buộc

 Đường dẫn tuyệt đối trên máy phục vụ của tài nguyên (ví dụ: thumuc/trang)

1.1.5 Tên miền

Mục đích chính của tên miền là để cung cấp một hình thức đại diện, hay nói cách khác, dùng những tên dễ nhận biết, thay cho những tài nguyên Internet mà đa

số được đánh số bằng địa chỉ IP rất khó nhớ Việc dịch từ tên miền sang địa chỉ IP

và ngược lại do hệ thống DNS trên toàn cầu thực hiện [21]

Tên miền có chiều dài tối đa 67 ký tự và chỉ bao gồm các ký tự chữ cái thông thường và các ký tự số

Tên miền gồm hai dạng là tên miền Quốc gia và tên miền Quốc tế

 Tên miền Quốc gia quy định theo Quốc gia của bạn, ví dụ: Việt Nam là vn; Nhật Bản là jp; Anh là uk; Mỹ là us …

 Tên miền Quốc tế: được dùng khắp trên thế giới như: com; net; org; edu

Ý nghĩa một số tên miền mở rộng thông dụng:

 com: Dành cho các công ty thương mại

 net: Dành cho các công ty về mạng (network) hay cung cấp dịch vụ mạng

 org: Dành cho các tổ chức, nhóm

 gov: Dành cho các tổ chức chính phủ

Trang 17

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

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

1.1.6 Giao thức HTTP và HTTPS

- HTTP (Hypertext Transfer Protocol) [21], là giao thức thuộc lớp ứng dụng trong mô hình tham chiếu OSI Hoạt động thông thường ở cổng (port) 80 và là giao thức hướng kết nối

- Các phương thức hoạt động của HTTP:

 GET: Phương thức lấy một đối tượng hoặc tài nguyên nào đó trên máy chủ (server)

 POST: Phương thức mà máy trạm (Client) sử dụng để gửi thông tin đến các Server

 PUT: Phương thức dùng để máy trạm (Client) tải dữ liệu lên (upload) Server

 DELETE: Phương thức giúp Client xoá các đối tượng, tài nguyên từ các máy chủ (server)

 HEAD: Phương thức xác minh rằng một đối tượng có tồn tại hay không

 TRACE: Phương thức được sử dụng để gọi từ xa một lớp ứng dụng trở lại

- HTTPS (HTTP over SSL/TLS)

Trang 18

Là một sự kết hợp giữa giao thức HTTP và giao thức bảo mật SSL hay TLS cho phép trao đổi thông tin một cách bảo mật trên Internet Các kết nối HTTPS thường được sử dụng cho các giao dịch thanh toán trên Web và cho các giao dịch nhạy cảm trong các hệ thống thông tin, khi dữ liệu cần phải được bảo vệ an toàn

Khi một HTTPS được thiết lập nó sẽ giúp bảo mật thông tin truyền giữa hai máy tính Vậy, cứ thông tin nào cần bảo mật trên nền web thì có thể sử dụng nó Nhưng đi kèm với quá trình bảo mật có nghĩa là hệ thống phải xử lý nhiều hơn

1.1.7 Web Server

Web Server [22] là máy chủ cài đặt các chương trình phục vụ các ứng dụng web Web Server có khả năng tiếp nhận yêu cầu từ các trình duyệt web và gửi phản hồi đến máy khách những trang web thông qua môi trường mạng Internet qua giao thức HTTP hoặc các giao thức khác

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

Hình 1.1 Một số Web Server thông dụng

Trang 19

Web Application là nơi các kịch bản hay mã nguồn phát triển ra ứng dụng web được thực thi Lớp này sẽ biên dịch các mã nguồn tương ứng và thực hiện các truy vấn đến cơ sở dữ liệu dựa vào mã nguồn ứng dụng

Trong giai đoạn khởi đầu của website, có rất nhiều ngôn ngữ lập trình được

sử dụng như: JSP, ASP, PHP, ASP.NET,… Nhưng hiện tại có hai ngôn ngữ được dùng phổ biến là PHP và ASP.NET

1.1.8 Database Server

Cơ sở dữ liệu máy chủ (Database Server) lưu trữ tất cả các dữ liệu liên quan đến website Bất kỳ người sử dụng nào trên mạng máy tính, tại các thiết bị đầu cuối, về nguyên tắc có quyền truy nhập khai thác toàn bộ hay một phần dữ liệu theo quyền hạn hay tương tác mà không phụ thuộc vào vị trí địa lý [22]

1.1.9 Các dịch vụ và ứng dụng trên nền Web

Với công nghệ hiện nay, website không chỉ đơn giản là một trang tin cung cấp các tin bài đơn giản Những ứng dụng viết trên nền web không chỉ được gọi là một phần của website nữa, giờ đây chúng được gọi là phần mềm viết trên nền web Có rất nhiều phần mềm chạy trên nền web như chương trình

xử lý văn bản Google word, chương trình xử lý bảng tính Google spreadsheets, thư điện tử (Email)…

Một số ưu điểm của phần mềm hay ứng dụng chạy trên nền web:

- Mọi người đều có trình duyệt và bạn chỉ cần trình duyệt để chạy phần mềm

- Phần mềm luôn luôn được cập nhật vì chúng chạy trên máy chủ (server)

- Luôn sẵn sàng 24/7

- Dễ dàng sao lưu (backup) dữ liệu thường xuyên

Trang 20

- Có thể truy cập mọi lúc, mọi nơi, miễn là bạn có mạng

- Chi phí triển khai cực rẻ so với phần mềm chạy trên máy tính bàn (desktop)

Hãy hình dung bạn có một phần mềm quản lý bán hàng hay quản lý công việc ở công ty Không phải lúc nào bạn cũng ở công ty, với phần mềm viết trên nền web, bạn có thể vào kiểm tra, điều hành ở bất cứ đâu, thậm chí bạn chỉ cần một chiếc điện thoại chạy được trình duyệt như iPhone mà không cần đến một chiếc máy tính

1.2 Thực trạng an ninh Web tại Việt Nam và trên thế giới

Năm 2016 chứng kiến nhiều cuộc tấn công mạng nghiêm trọng trên thế giới nhằm vào các tổ chức như Sony Pictures, Nhà Trắng, trang web Ashley Madison

và thậm chí cả FBI Các sự cố an ninh mạng đã tăng 38% so với năm 2015, trong khi gần một triệu các mối đe dọa từ các phần mềm độc hại mới được phát hành mỗi ngày Chi phí cho các cuộc tấn công mạng sử dụng mã độc tốn khoảng 300 tỷ đến 1 nghìn tỷ đô la mỗi năm, các vụ xâm phạm dữ liệu trung bình mất 154 đô la

Mỹ cho mỗi vụ, trong khi chi phí trung bình cho một vụ xâm phạm dữ liệu mất gần 4 triệu đô la Những con số này cho thấy một thực trạng đáng báo động về việc người dùng máy tính ngày càng gặp khó khăn trong việc đảm bảo an toàn khi trực tuyến

Điều này cũng tương tự đối với Việt Nam - thị trường an toàn thông tin quốc gia trong năm 2016 diễn biến khá phức tạp Tại Việt Nam, cùng với sự phát triển mạnh mẽ ứng dụng công nghệ thông tin, các cuộc tấn công, xâm nhập trái phép vào hệ thống mạng của các cơ quan nhà nước, các tổ chức, doanh nghiệp để phá hoại hoặc thu thập lấy cắp thông tin ngày càng gia tăng Theo VNCERT

Trang 21

(Trung tâm Ứng cứu khẩn cấp máy tính Việt Nam), theo Trung tâm ứng cứu khẩn cấp máy tính Việt Nam (VNCERT) trong năm 2016, VNCERT đã ghi nhận tổng cộng 134.375 sự cố tấn công mạng của cả 3 loại hình Phishing (lừa đảo), Malware (mã độc) và Deface (thay đổi giao diện), tăng hơn 4,2 lần so với năm 2015 Trong năm 2016, tại Việt Nam đã có 8935 website bị tấn công, 27937 website bị nhiễm

mã độc, 19189 website bị cài đặt phishing Đặc biệt ngày 29/07/2016 xảy ra vụ tấn công mạng vào hệ thống máy chủ của Vietnam Airline thay đổi nội dung và giao diện trang chủ Vietnam Airline và lấy đi dữ liệu của hơn 400.000 tài khoản của những hội viên Vietnam Airlines, trong đó có đầy đủ thông tin như: ngày gia nhập, điểm tích lũy, ngày hết hạn Trước những con số đáng báo động trên, việc giám sát an ninh cũng như triển khai các giải pháp bảo mật đang trở nên cấp thiết hơn bao giờ hết

1.3 Vai trò và mục đích của việc theo dõi sự thay đổi nội dung trang web

Ngày nay việc kiểm soát an ninh mạng như tường lửa (Firewall), Mạng riêng ảo (VPN - Virtual Private Network) là những công cụ quan trọng để giữ cho các trang web được an toàn hơn, nhưng những công cụ này không đủ để đảm bảo

an toàn an ninh cho các trang web hiện nay Như chúng ta biết, môi trường web là môi trường mở, nguy cơ lúc nào cũng có thể bị tấn công xẩy ra mất an toàn an ninh cho trang web là rất cao Chính vì vậy phải xây dựng một hệ thống với công

cụ phát hiện sớm những thay đổi bất thường không như mong muốn đồng thời đưa

ra những cảnh báo cho các nhà quản trị web để họ kịp thời có những giải pháp phù hợp là rất cần thiết

Hầu hết các cuộc tấn công phổ biến gần đây nhất là các cuộc tấn công nhằm phá huỷ các trang web Những kẻ tấn công thường sử dụng các loại mã độc (virus,

Trang 22

worm, trojan, và các mã độc hại khác…) để xóa, sửa đổi hoặc thay thế các trang web trên các máy chủ (Web Server) với nhiều mục đích khác nhau như muốn thể hiện khả năng của bản thân, bôi nhọ huỷ hoại uy tín của cá nhân cũng như các tổ chức, lấy cắp các thông tin của người sử dụng khi truy cập vào Website giả mạo…

Các lỗ hổng trang web là một mục tiêu mà kẻ tấn công (hacker) thường nhắm đến Kẻ tấn công thường sử dụng một số công cụ tìm kiếm rộng và nhanh, tìm ra các lỗ hổng điểm yếu của trang web (các điểm yếu cụ thể) và nhanh chóng khai thác những điểm yếu đó

Các cuộc tấn công vào các trang web chủ yếu là để:

• Thay đổi nội dung của một trang web

• Thay đổi bất kỳ phần nào của nội dung của một trang web

• Thay thế hoàn toàn một trang web

• Thay đổi bề ngoài của một trang web

• Chuyển hướng một trang web

• Phá hủy hoặc xóa một trang web

Mục đích chính của việc theo dõi sự thay đổi nội dung trang web là phát hiện các cuộc tấn công dựa trên biện pháp đa kiểm tra nội dung trên các trang web Hệ thống sẽ kiểm tra giám sát đưa ra các cảnh báo nếu như có bất kì các cuộc tấn công nào làm thay đổi nội dung bất thường của các trang web

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

Các lỗ hổng bảo mật trên một hệ thống là các điểm yếu có thể tạo ra sự ngưng trệ của dịch vụ, thêm quyền đối với người sử dụng hoặc cho phép các truy nhập không hợp pháp vào hệ thống Các lỗ hổng cũng có thể nằm ngay các dịch

Trang 23

vụ cung cấp như sendmail, web, ftp Ngoài ra các lỗ hổng còn tồn tại ngay chính tại hệ điều hành như trong Windows NT, Windows 95, UNIX, hoặc trong các ứng dụng mà người sử dụng thường xuyên sử dụng như Word processing, các hệ databases

Có nhiều tổ chức khác nhau tiến hành phân loại các dạng lỗ hổng đặc biệt Theo cách phân loại của Bộ quốc phòng Mỹ, các loại lỗ hổng bảo mật trên một hệ thống được chia như sau:

- 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ức tấn công từ chối dịch vụ theo (DoS - Dinal of Services) Mức độ nguy hiểm thấp chỉ ảnh hưởng tới chất lượng dịch vụ, có thể làm ngưng trệ gián đoạn hệ thống, không làm phá hỏng dữ liệu hoặc đạt được quyền truy nhập bất hợp pháp

- Lổ hổng loại B: Các lỗ hổng cho phép người sử dụ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ệ Mức độ nguy hiểm trung bình những lỗ hổng này thường có trong các ứng dụng trên hệ thống 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 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ể làm phá hủy toàn bộ hệ thống

1.5 Một số kỹ thuật tấn công Website

Trang 24

tác, delete, insert, update,… trên cơ sở dữ liệu của ứng dụng, thậm chí là server

mà ứng dụng đó đang chạy, lỗi này thường xảy ra trên các ứng dụng web có dữ liệu được quản lý bằng các hệ quản trị cơ sở dữ liệu như SQL Server, MySQL, Oracle, DB2, Sysbase

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

1.5.1.2 Cách thức tấn công bằng SQL Injection

Có bốn dạng thông thường bao gồm: Vượt qua kiểm tra lúc đăng nhập (authorization bypass), sử dụng câu lệnh SELECT, sử dụng câu lệnh INSERT, sử dụng các stored-procedures

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

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

Một ví dụ điển hình, thông thường để cho phép người dùng truy cập vào các trang web được bảo 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 dùng

Trang 25

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

Trang 26

Else

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

End If Set objRS = Nothing

' 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ười dùng đăng nhập hợp lệ

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

Dạng tấn công này phức tạp hơn Để thực hiện được kiểu tấn công này, kẻ tấn công phải có khả năng hiểu và lợi dụng các sơ hở trong các thông báo lỗi từ hệ thống để dò tìm các điểm yếu khởi đầu cho việc tấn công Xét một ví dụ rất thường gặp trong các website về tin tức Thông thường, sẽ có một trang nhận ID của tin cần hiển thị rồi sau đó truy vấ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ết khá đơn giản theo dạng

Trang 27

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 như ví dụ đăng nhập ở trước, đoạn mã này để lộ sơ hở cho một lỗi SQL injection khác Kẻ tấn công có thể thay thế một ID hợp lệ bằng cách gán ID cho một giá trị khác, và từ đó, khởi đầu cho một cuộc tấn công bất hợp pháp, ví dụ như: 0 OR 1=1 Câu truy vấn SQL lúc này sẽ trả về tất cả các article từ bảng dữ liệu vì nó sẽ thực hiện câu lệnh:

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

Một trường hợp khác, ví dụ như trang tìm kiếm Trang này cho phép người dùng nhập vào các thông tin tìm kiếm như Họ, Tên, … Đoạn mã thường gặp là:

CODE

<%

Dim vAuthorName, objRS, strSQL

Trang 28

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

Ví dụ như: ' DROP TABLE T_AUTHORS –

Nhập vào chuỗi (*) như trên, nếu hệ thống báo lỗi về cú pháp dạng: Invalid object name “OtherTable”; ta có thể biết chắc là hệ thống đã thực hiện câu SELECT sau từ khóa UNION, vì như vậy mới có thể trả về lỗi mà ta đã cố tình tạo

ra trong câu lệnh SELECT Cũng sẽ có thắc mắc là làm thế nào có thể biết được tên của các bảng dữ liệu mà thực hiện các thao tác phá hoại khi ứng dụng web bị

Trang 29

lỗi SQL injection Cũng rất đơn giản, bởi vì trong SQL Server, có hai đối tượng là sysobjects và syscolumns cho phép liệt kê tất cả các tên bảng và cột có trong hệ thống Ta chỉ cần chỉnh lại câu lệnh SELECT

Ví dụ: ' UNION SELECT name FROM sysobjects WHERE xtype = 'U' là

có thể liệt kê được tên tất cả các bảng dữ liệu

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

Thông thường các ứng dụng web cho phép người dùng đăng kí một tài khoản để tham gia Chức năng không thể thiếu là sau khi đăng kí thành công, người dùng có thể xem và hiệu chỉnh thông tin của mình SQL injection có thể được dùng khi hệ thống không kiểm tra tính hợp lệ của thông tin nhập vào Ví dụ, một câu lệnh INSERT có thể có cú pháp dạng: INSERT INTO TableName VALUES('Value One', 'Value Two', 'Value Three') Nếu đoạn mã xây dựng câu lệnh SQL có dạng:

CODE

<%

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

& " ', ' " _

& strValueTwo & " ', ' " & strValueThree & " ') "

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

objRS.Open strSQL, "DSN= "

Set objRS = Nothing

%>

Trang 30

Thì sẽ bị lỗi SQL injection, bởi vì nếu ta nhập vào trường thứ nhất ví dụ như: ' + (SELECT TOP 1 FieldName FROM TableName) + ' Lúc này câu truy vấn sẽ là: INSERT INTO TableName VALUES(' ' + (SELECT TOP 1 FieldName FROM TableName) + ' ', 'abc', 'def') Khi đó, lúc thực hiện lệnh xem thông tin, xem như bạn đã yêu cầu thực hiện thêm một lệnh nữa đó là: SELECT TOP 1 FieldName FROM TableName

+ Dạng tấn công sử dụng stored-procedures:

Việc tấn công bằng stored-procedures sẽ gây tác hại rất lớn nếu ứng dụng được thực thi với quyền quản trị hệ thống 'sa' Ví dụ, nếu ta thay đoạn mã tiêm vào dạng: ' ; EXEC xp_cmdshell „cmd.exe dir C: ' Lúc này hệ thống sẽ thực hiện lệnh liệt kê thư mục trên ổ đĩa C: \ cài đặt server Việc phá hoại kiểu nào tuỳ thuộc vào câu lệnh đằng sau cmd.exe

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ập trì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ựng câ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 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ản trị 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ền hạ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

Trang 31

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

CODE

<%

Function KillChars(sInput)

dim badChars

Trang 32

- Thiết lập cấu hình an toàn cho hệ quản trị cơ sở dữ liệu

Cần có cơ chế kiểm soát chặt chẽ và giới hạn quyền xử lí dữ liệu đến tài khoản người dùng mà ứng dụng web đang sử dụng Các ứng dụng thông thường nên tránh dùng đến các quyền như dbo hay sa Quyền càng bị hạn chế, thiệt hại càng ít Ngoài ra để tránh các nguy cơ từ tấn công SQL Injection, nên chú ý loại

bỏ bất kì thông tin kĩ thuật nào chứa trong thông điệp chuyển xuống cho người dùng khi ứng dụng có lỗi Các thông báo lỗi thông thường tiết lộ các chi tiết kĩ thuật có thể cho phép kẻ tấn công biết được điểm yếu của hệ thống

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

1.5.2.1 XSS là gì

Cross-Site Scripting (XSS) là một trong những kĩ thuật tấn công phổ biến nhất hiên nay, đồng thời nó cũng là một trong những vấn đề bảo mật quan trọng đối với các nhà phát triển web và cả những người sử dụng web Bất kì một website

Trang 33

nào cho phép người sử dụng đăng thông tin mà không có sự kiểm tra chặt chẽ các đoạn mã nguy hiểm thì đều có thể tiềm ẩn các lỗi XSS

Cross-Site Scripting hay còn được gọi tắt là XSS (thay vì gọi tắt là CSS để tránh nhầm lẫn với CSS-Cascading Style Sheet của HTML) là một kĩ thuật tấn công bằng cách chèn vào các website động (ASP, PHP, CGI, JSP .) những thẻ HTML hay những đoạn mã script nguy hiểm có thể gây nguy hại cho những nạn nhân sử dụng

Về cơ bản XSS cũng như SQL Injection hay Source Injection, nó cũng là các yêu cầu (request) được gửi từ các máy trạm (client) tới máy chủ (server) nhằm chèn vào đó các thông tin vượt quá tầm kiểm soát của máy chủ

Nhưng nếu như các kĩ thuật tấn công khác có thể làm thay đổi được dữ liệu nguồn của webserver (mã nguồn, cấu trúc, cơ sở dữ liệu) thì XSS chỉ gây tổn hại đối với website ở phía client mà nạn nhân trực tiếp là những người khách duyệt trang web đó Tất nhiên đôi khi các hacker cũng sử dụng kĩ thuật này để phá huỷ các website nhưng đó vẫn chỉ tấn công vào bề mặt của website

Trang 34

Mục tiêu tấn công của XSS không ai khác chính là những người sử dụng khác của website, khi họ vô tình vào các trang có chứa các đoạn mã nguy hiểm do các hacker để lại họ có thể bị chuyển tới các website khác, đặt lại trang chủ (homepage), hay nặng hơn là mất mật khẩu, mất cookie thậm chí máy tính bạn có thể sẽ bị cài các loại virus, backdoor, worm

1.5.2.2 Tấn công XSS

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

Thường thì XSS có thể xảy ra ở chỗ nào mà người dùng có thể nhập dữ liệu vào và sau đó sẽ nhận được một cái gì đó Nên thường chúng ta sẽ kiểm tra ở 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ăng trang đó bị mắc lỗi XSS

Hình 1.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 tin quan trọng: cookie, user name và password Ở đây sử dụng XSS để đánh cắp cookie của nạn nhân (victim)

Trang 35

</script>

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

Nếu như các bạn sử dụng các mã nguồn của các chương trình có sẵn, bạn có thể tham khảo danh sách các lỗ hổng của chương trình bạn trên các trang web chứa các thông tin về bảo mật như securityfocus.com, securiteam.com, Tuy nhiên nếu các website được tự viết mã nguồn thì bạn không thể áp dụng phương pháp trên Trong trường hợp này bạn cần đến các chương trình dò tìm kiếm (scanner) tự động Nếu như bạn sử dụng trong môi trường Windows bạn có thể

Trang 36

dùng N-Stealth hay AppScan, đó là những chương trình quét tìm khá tuyệt, bạn không chỉ kiểm tra được các lỗi XSS mà nó còn cho phép bạn kiểm tra các lỗi khác trong website đó, server đó

Người ta không lường hết được mức độ nguy hiểm của XSS nhưng cũng không quá khó khăn để ngăn ngừa XSS Có rất nhiều cách để có thể giải quyết vấn

đề này 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 trên thực tế, một số trường hợp bạn 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 Chính vì vậy phải có những cách riêng để giải quyết Một trong những cách hay sử dụng là bạn mã hoá các kí tự đặc biệt trước khi in ra website, nhất là những gì có thể gây nguy hiểm cho người sử dụng

Với phương pháp này cũng có thể áp dụng đối với các ngôn ngữ Web Application khác (ASP, PHP ) Để kiểm tra việc lọc và mã hoá dữ liệu trước khi

in ra, các bạn có thể dùng một chương trình được viết bằng ngôn nhữ PHP, đặc biệt nó được thiết kế để phòng chống các lỗi XSS

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

- Tấn công DOS là một kiểu tấn công mà một người làm cho một 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ể với người dùng bình thường, bằng cách làm quá tải tài nguyên của hệ thống

- Nếu kẻ tấn công không có khả năng thâm nhập được vào hệ thống, thì chúng cố gắng tìm cách làm cho hệ thống đó sụp đổ và không có khả năng phục

Trang 37

vụ người dùng bình thường đó là tấn công từ chối dịch vụ (Denial of Service

- DOS) Mặc dù tấn công DOS không có khả năng truy cập vào dữ liệu thực của

hệ thống nhưng nó có thể làm gián đoạn các dịch vụ mà hệ thống đó cung cấp Như định nghĩa trên DOS khi tấn công vào một hệ thống sẽ khai thác những điểm yếu nhất của hệ thống để tấn công

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

- Mục đích của tấn công DOS cố gắng chiếm băng thông mạng và làm hệ thống mạng bị ngập (flood), khi đó hệ thống mạng sẽ không có khả năng đáp ứng những dịch vụ khác cho người dùng bình thường

- Cố gắng làm ngắt kết nối giữa hai máy, và ngăn chặn quá trình truy cập vào dịch vụ

- Cố gắng ngăn chặn những người dùng cụ thể vào một dịch vụ nào đó

- Cố gắng ngăn chặn các dịch vụ không cho người khác có khả năng truy cập vào Khi tấn công DOS xảy ra người dùng có cảm giác khi truy cập vào dịch

vụ đó như bị:

+ Tắt mạng (Disable Network )

+ Tổ chức không hoạt động (Disable Organization)

+ Tài chính bị mất (Financial Loss)

Như chúng ta biết tấn công DOS xảy ra khi kẻ tấn công sử dụng hết tài nguyên của hệ thống và hệ thống không thể đáp ứng cho người dùng bình thường được, 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

- Băng thông của hệ thống mạng (Network Bandwidth), bộ nhớ, ổ đĩa, và

Trang 38

cấu trúc dữ liệu đều là mục tiêu của tấn công DOS

- Tấn công vào hệ thống khác phục vụ cho mạng máy tính như: hệ thống điều hoà, hệ thống điện, hệ thống làm mát và nhiều tài nguyên khác của doanh nghiệp

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

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

Hình 1.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:

+ 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ói tin 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:

Trang 39

Được xem là một trong những kiểu tấn công DOS kinh điển nhất Lợi dụng

sơ hở của thủ tục TCP khi “bắt tay ba chiều”, mỗi khi máy khách (client) muốn thực hiện kết nối (connection) với máy chủ (server) thì nó thực hiện việc bắt tay

ba lần (three-ways-handshake) thông qua các gói tin (packet)

- 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ủ 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ông tin 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ần bắ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ông nhậ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ưu nguồ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 cho má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 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 đến tì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

Trang 40

Hình 1.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ài nguyê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ềm như 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 cung cấ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ống giả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 web hiệ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ịp nhà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ột thời gian dài + Tấn công chiếm dụng băng thông (Bandwidth Depletion):

Ngày đăng: 10/10/2017, 14:47

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