1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu vài dạng lỗ hổng bảo mật, công cụ phát hiện chúng và ứng dụng để kiểm thử an ninh trên trang web truongnha com

66 1K 4

Đ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 66
Dung lượng 3,85 MB

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

Nội dung

Tiếp theo chúng ta sẽ đi nghiên cứu chi tiết về 3 loại tấn công này trong chương 2 và một vài lỗ hổng ít được chú ý hơn, chúng sẽ được miêu tả tại chương 4 khi thực thi các công cụ trên

Trang 1

MỤC LỤC

LỜI CAM ĐOAN 1

LỜI CẢM ƠN 4

DANH MỤC BẢNG BIỂU 6

DANH MỤC HÌNH VẼ 7

CHƯƠNG 1 GIỚI THIỆU 11

1.1 Tính cấp thiết của đề tài 11

1.2 Mục tiêu đề tài 11

1.3 Bố cục luận văn 12

1.4 Tổng quan về vấn đề bảo mật trên nền Web 12

1.5 Một số nguyên nhân phổ biến cho ứng dụng Web mất tính an toàn 13

1.6 Thống kê các loại tấn công 13

CHƯƠNG 2 MỘT SỐ NGUY CƠ AN NINH THƯỜNG GẶP 15

2.1 Tấn công DoS 15

2.1.1 Giới thiệu về DoS 15

2.1.2 Mục đích và các dạng tấn công DoS 15

2.1.3 Tấn công DDoS 18

2.2 Cross-Site Scripting (XSS) 20

2.2.1 Tổng quan về XSS 20

2.2.2 Ảnh hưởng do XSS gây ra 21

2.2.3 Phân loại 21

2.2.4 Cách phát hiện ra sâu XSS 24

2.2.5 Các phương pháp ngăn chặn lỗ hổng bảo mật XSS 24

2.3 Tổng quan SQL Injection 25

2.3.1 Định nghĩa 25

2.3.2 Các kỹ thuật tấn công SQL Injection 25

2.3.3 Những ảnh hưởng gây ra của SQL Injection 28

2.3.4 Các phương pháp phòng chống SQL Injection phổ biến 29

CHƯƠNG 3 MỘT SỐ CÔNG CỤ PHÁT HIỆN NGUY CƠ AN NINH 30

3.1 Netsparker 30

3.2 Websecurify 31

3.3 Acunetix 34

Trang 2

3.9 W3af 49

3.10 Công cụ tấn công DoS 51

CHƯƠNG 4 THỰC NGHIỆM VÀ PHÂN TÍCH KẾT QUẢ 54

4.1 Acunetix 54

4.1.1 Thực nghiệm 54

4.1.2 Phân tích thực nghiệm 54

4.2 BurpSuite 55

4.2.1 Thực nghiệm 55

4.2.2 Phân tích thực nghiệm 57

4.3 Netsparker 58

4.3.1 Thực nghiệm 58

4.3.2 Phân tích thực nghiệm 58

4.4 Skipfish 59

4.4.1 Thực nghiệm 59

4.4.2 Phân tích thực nghiệm 61

4.5 W3af 62

4.5.1 Thực nghiệm 62

4.5.2 Phân tích thực nghiệm 62

4.6 Websecurify 64

4.6.1 Thực nghiệm 64

4.6.2 Phân tích thực nghiệm 65

4.7 Tổng hợp đánh giá 65

CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 69

TÀI LIỆU THAM KHẢO 70

Trang 3

DANH MỤC BẢNG BIỂU

Bảng 2.1: Các mẫu đầu vào 26

Bảng 4.1: Danh sách các lỗ hổng trên các công cụ 66

DANH MỤC HÌNH VẼ Hình 1.1: Thống kê các loại tấn công 14

Hình 2.1: Tấn công SYN 16

Hình 2.2: Tấn công Smurf 17

Hình 2.3: Phân loại tấn công DDOS 18

Hình 2.4: Tấn công TCP SYN 20

Hình 2.5: Mô hình tấn công XSS 22

Hình 2.6: Mô hình tấn công Reflected XSS 23

Hình 2.7: DOM-base XSS 24

Hình 3.1: Thực nghiệm công cụ Netsparket 30

Hình 3.2: Thực nghiệm công cụ Websecurify trên ứng dụng 33

Hình 3.3: Kết quả khi chạy công cụ Websecurify 34

Hình 3.4: Cách thức làm việc của Acunetix 35

Hình 3.5: Thống kê các công cụ năm 2012 của Benchmark 36

Hình 3.6: Ví dụ về Acunetix 40

Hình 3.7: Kết quả chạy Acunetix 40

Hình 3.8: Phân tích chi tiết kết quả 41

Hình 3.9: Thƣ̣c nghiệm khi lỗi xảy ra 41

Hình 3.10: Ví dụ khi chạy WebScarab 43

Hình 3.11: Thƣ̣c nghiệm công cụ Havij 44

Hình 3.12: Vị trí thay thế giá trị tấn công 46

Hình 3.13: Các giá trị thay thế trong thẻ Positions 46

Hình 3.14: Kết quả sau khi tấn công 47

Hình 3.15: Ví dụ về công cụ XSS-ME 49

Hình 3.16: Mối quan hệ các Plugin trong công cụ W3af 51

Hình 3.17: Tấn công DOS 52

Hình 4.1: Kết quả chạy công cụ Acunetix 54

Trang 4

Hình 4.8: Chi tiết về thông tin cảnh báo của công cụ Skipfish 61

Hình 4.7: Kết quả chạy công cụ Skipfish 61

Hình 4.9: Công cụ W3af bật các plugin 62

Hình 4.10: Thông tin các lỗ hổng và các lỗi trên công cụ W3af 63

Hình 4.11: Kết quả các lỗ hổng được tìm thấy bởi W3af 64

Hình 4.12: Kết quả chạy công cụ Websecurify 65

Trang 5

DANH MỤC CÁC CHỮ VIẾT TẮT

API Application Programming Interface Giao diện lập trình ứng dụng

AJAX Asynchronous JavaScript and XML JavaScript và XML không đồng bộ CSS Cascading Style Sheets Tập tin định kiểu theo tầng

CPU Central Processing Unit Đơn vị xử lý thông tin

XSS Cross-Site Scripting Kỹ thuật tấn công kịch bản liên trang DoS Denial Of Service Tƣ̀ chối dịch vụ

DDoS Distributed Denial of Service Dạng tấn công từ chối dịch vụ phân

tán DOM Document Object Model Là định dạng có cấu trúc đƣợc sử

dụng để đại diện tài liệu trong trình duyệt

HTML HyperText Markup Language Ngôn ngữ đánh dấu văn bản

PHP Hypertext Preprocessor Ngôn ngữ lập trình kịch bản

HTTP Hypertext Transfer Protocol Giao thức truyền tải siêu văn bản

OWASP Open Web Application Security

mạng URL Uniform Resource Locator Định vị tài nguyên về mặt địa chỉ WAN Wide Area Network Mạng truyền dữ liệu diện rộng

Trang 7

CHƯƠNG 1 GIỚI THIỆU

Nội dung của chương 1 trình bày về tính cấp thiết, mục tiêu, bố cục của đề tài và tìm hiểu chung những vấn đề về bảo mật anh ninh trên nền Web, đưa ra một vài nguyên nhân gây ra mất an toàn an ninh trên các ứng dụng Web và các lỗ hổng thường thấy nhiều nhất hiện nay

1.1 Tính cấp thiết của đề tài

Với sự phát triển rất nhanh của các ứng dụ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 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 dụng Web vẫn tồn tại với các nguy cơ an ninh/an toàn/bảo mật (security vularability) 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 bằng các công cụ tự động

Bên cạnh đó, các loạ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 và các công cụ tự động phát hiện nguy cơ an ninh an toàn đ ồng thời thử nghiệm chúng vào phần mềm

“Trường Nhà” ở trang web http://truongnha.com Ứng dụng “Trường Nhà” là một

trang Web quản lý trường học phổ thông và hiện đang được xây dựng bởi một đội phát triển phần mềm Chính vì vậy, đề tài sẽ đi thử nghiệm vào ứng dụng này để đưa ra lỗ hổng và một vài khuyến cáo cho đội phát triển phần mềm và từ đó kiểm tra được tính đúng đắn của kết quả cũng như các khuyến cáo của luận văn đưa ra

Qua việc nghiên cứu và thử nghiệm này, đề tài đưa ra các nguy cơ bảo mật và công

cụ để phát hiện/kiểm tra cho phần mềm Trường Nhà Từ đó để tài cũng tổng quát hóa

và đưa ra các khuyến cáo cho các nhóm phát triển phần mềm nói chung và đặc biệt khi

sử dụng các công nghệ tương tự như của Trường Nhà (sử dụng khung ứng dụng Django) về các nguy cơ bảo mật và các công cụ kiểm tra để các đơn vị phát triển phần mềm có thể tham khảo, áp dụng vào các ứng dụng Web Đề tài hy vọng sẽ giúp người phát triển phần mềm có thêm hiểu biết về an ninh an toàn cũng như các công cụ nên sử dụng để tăng cường anh ninh, bảo mật cho hệ thống Web của mình

1.2 Mục tiêu đề tài

Mục tiêu của đề tài là trình bày được tổng quan và cập nhật về các nguy cơ bảo mật, các cách thức tấn công và các cách phát hi ện lỗ hổng bả o mật trên các hệ thống

Trang 8

1.3 Bố cục luận văn

Luận văn bao gồm các chương sau:

Chương 1: Tổng quan an toàn bảo mật trên nền Web: Chương này giới thiệu về

vấn đề bảo mật, vai trò quan trọng của bảo mật trên nền web và các nguy cơ gây ra bởi việc thiếu an toàn bảo mật cho ứng dụng web

Chương 2: Tấn công an toàn thông tin trong ứng dụng Web: Chương này mô

tả về một vài kỹ thuật tấn công an toàn Web phổ biến (DoS/DDoS, XSS, SQL injection), ví dụ và cách thức tấn công của chúng

Chương 3: Giới thiệu một vài công cụ tìm kiếm lỗ hổng bảo mật: Chương này

giới thiệu một vài công cụ hỗ trợ trong việc tìm kiếm lỗ hổng trên nền Web Bên cạnh đó, chương này cũng nêu lên cách thức làm việc và các lỗ hổng mà các ứng dụng này có thể phát hiện ra, đưa ra được nhận xét về các công cụ

Chương 4: Thực nghiệm và phân tích kết quả: Thực nghiệm chạy một số công

cụ ở chương 3 vào việc tìm các lỗ hổng cho ứng dụng Web là http://truongnha.com

và phân tích cách thức phương pháp chạy để tìm ra lỗi Chương 4 cũng đưa ra được một vài khuyến cáo cho các nhà phát triển phần mềm

Chương 5: Kết luận và hướng phát triển: Chương này đi trình bày những kết

quả đạt được của luận văn và hướng phát triển trong tương lai

1.4 Tổng quan về vấn đề bảo mật trên nền Web

Ngày nay, với sự phát triển mạnh mẽ của công nghệ thông tin và đặc biệt là sự ra đời hàng loạt của các trang Web đã mang l ại cho con người rất nhiều tiện ích cho các doanh nghiệp Các hoạt động giao dịch trực tuyến như thương mại điện tử hay thanh toán trực tuyến ngày càng phổ biến và được thực hiện thông qua các ứng dụng Web Ở bất kỳ đâu, khi một máy tính có nối mạng internet, con người có thể thực hiện các giao dịch của mình một cách thuận tiện và nhanh chóng Mọi thông tin của người dùng sẽ được lưu trên Web Nếu như thông tin đó b ị sửa đổi với ý đồ xấu, câu truy vấn cơ sở

dữ liệu có thể bị thay đổi cấu trúc, từ đó kết quả trả về sẽ khác với ý muốn của người lập trình, hoặc những kẻ lạc danh có thể đá nh cắp thông tin , gây lên những thiệt hại lớn Có thể thấy việc xây dựng các trang Web động cho phép xây dựng câu truy vấn

Trang 9

động từ đầu vào do người sử dụng cung cấp, chúng tiềm ẩn một nguy cơ mất an toàn cao nếu như không có một cơ chế kiểm tra dữ liệu đầu vào một cách chặt chẽ Tóm lại, các ứng dụng Web luôn luôn tiềm ần và có nguy cơ bị tấn công bởi các kẻ tấn công với ý đồ xấu, vậy nên vấn đề bảo mật trên nền Web luôn là cấp thiết

1.5 Một số nguyên nhân phổ biến cho ứng dụng Web mất tính an toàn

Khi một ứng dụng Web mất đi tính an toàn , điều đó tương đương với việc trang web đó sẽ có khả năng tấn công và gây thiệt hại bởi những ý đồ xấu của kẻ tấn công Để khắc phục cho các lỗ hổng đó, việc trước tiên cần làm là tìm ra nguyên nhân Dưới đây là một vài nguyên nhân có thể gây ra những điểm yếu đó cho ứng dụng Web:

o Thiếu nhận thức về an toàn cho ứng dụng Web của người dùng và người lập trình

o Thiếu các giải pháp bảo mật sẵn có

o Sự thúc ép sản phẩm nhanh chóng , dẫn đến các nhà lập trình làm nhanh và ẩu , quên đi việc áp dụng các giải pháp cho bảo mật

1.6 Thống kê các loại tấn công

Vấn đề an toàn bảo mật cho một ứng dụng Web là một vấn đề hết sức quan trọng, bởi nó ảnh hưởng tới chất lượng an ninh của cả một hệ thống cơ quan Với tình trạng hiện tại khi hàng loạt các kẻ tấn công lợi dụng sơ hở của phần mềm để tấn công vào hệ thống nhằm phá hủy, ăn cắp dữ liệu thì việc làm này lại càng cấp bách và cần thiết Theo thống kê Web Hacking Incident Database năm từ 1999 tới 2011, chúng ta có thể nhìn thấy tỷ lệ các phương thức tấn công web theo dạng XSS, DoS và SQL injection luôn đứng đầu trong so sánh như sau [12]:

Trang 10

Hình 1.1: Thống kê các loại tấn công Nhìn biểu đồ Hình 1.1 chúng ta thấy rằng rất nhiều loại tấn công tồn tại nhưng trong

đó có tấn công liên trang (XSS), tấn công từ chối dịch vụ (Denial of Service) và SQL Injection là chủ yếu Tiếp theo chúng ta sẽ đi nghiên cứu chi tiết về 3 loại tấn công này trong chương 2 và một vài lỗ hổng ít được chú ý hơn, chúng sẽ được miêu tả tại chương 4 khi thực thi các công cụ trên ứng dụng “Trường Nhà”

Trang 11

CHƯƠNG 2 MỘT SỐ NGUY CƠ AN NINH THƯỜNG GẶP

Chương này mô tả về một vài kỹ thuật tấn công an toàn Web phổ biến như: DoS/DDoS, XSS, SQL injection, đưa ra ví dụ và cách thức tấn công của chúng

2.1 Tấn công DoS

2.1.1 Giới thiệu về DoS

Một trong những cách thức tấn công trang web có từ lâu nhưng đến giờ vẫn tồn tại

và gây ra nhiều thiệt hại cho các tổ chức mạng mà các kẻ tấn công thường sử dụng rất nhiều hiện nay là dạng tấn công từ chối dịch vụ (DoS) DoS là một phương pháp tấn công làm tê liệt hoàn toàn máy chủ, khiến người dùng không thể truy cập được

Gần đây có rất nhiều trang web hay các tổ chức bị nhiễm dạng tấn công DoS, ví dụ như trang web của Bkav đã bị tê liệt trong suốt mấy ngày vì bị tin tặc tấn công từ chối dịch vụ DDoS Microsoft (15 tháng 8 năm 2003) đã chịu đợt tấn công DoS cực mạnh [1] Gây ra những thiệt hại không nhỏ Cuộc chiến chống lại những cuộc tấn công từ chối dịch vụ DDoS được coi là vô cùng khó khăn

Dos là một dạng tấn công nguy hiểm, mặc dù nó không truy cập vào dữ liệu của hệ thống nhưng nó có thể làm cho hệ thống không có khả năng sử dụng, hoặc làm cho hệ thống rơi vào tình trạng chậm đáng kể, kẻ tấn công dùng mọi cách làm quá tải tài nguyên của hệ thống

2.1.2 Mục đích và các dạng tấn công DoS

Tấn công theo phương pháp DoS nhằm mục đích sau:

 Chiếm băng thông mạng và làm hệ thống mạng bị quá tải, 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 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ị:

Trang 12

nguồn điện, điều hoà Chúng gây ảnh hưởng rất lớn cho hệ thống

Các cách để tấn công từ chối dịch vụ cơ bản là:

* Tấn công SYN

Với kiểu tấn công SYN này, kẻ tấn công gửi rất nhiều các yêu cầu ảo, các gói 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 Cách tấn công này dựa vào phương thức bắt tay ba bước của TCP/IP Giống như Hình 2.1 dưới đây:

Hình 2.1: Tấn công SYN 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áy chủ 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 yêu cầu TCP SYN và lúc này máy chủ không còn khả năng đáp lại, vì vậy kết nối không được thực hiện

* Tấn công Smurf

Đây là một kiểu tấn công hàng loạt trong đó chúng sinh ra cực nhiều giao tiếp ICMP (ping) tới địa chỉ Broadcast của nhiều mạng với địa chỉ nguồn là mục tiêu cần

Trang 13

tấn công Kết quả đích tấn công sẽ phải chịu nhận một đợt phản hồi gói ICMP cực lớn và làm cho mạng bị dớt hoặc bị chậm lại không có khả năng đáp ứng các dịch vụ khác như trong Hình 2.2

Hình 2.2: Tấn công Smurf

* Tấn công Ping of Death

Kẻ tấn công sử dụng các địa chi IP giả mạo rồi từ các địa chỉ này ping liên tục đến máy chủ Một số lượng lớn phản hồi từ máy chủ tới các địa chỉ IP giả Nếu số lượng

IP giả quá lớn máy chủ có thể bị sụp hay là ngừng hoạt động

* Tấn công Buffer Overflow

Dạng tấn công này xảy ra tại bất kỳ thời điểm nào có chương trình ghi lượng thông tin 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à đánh cắp quyền điều khiển của một số chương trình hằm thực thi các đoạn mã nguy hiểm Ví dụ như quá trình gửi một bức thư điện tử mà tệp đính kèm dài quá 256 ký tự có thể sẽ xảy ra quá trình tràn bộ nhớ đệm

* Tấn công Teardrop

Kiểu tấn công này xảy ra khi gói tin IP rất lớn khi đến Router sẽ bị chia nhỏ làm nhiều phần nhỏ Từ đó kẻ tấn công sử dụng sử dụng gói IP với các thông số rất khó hiểu để chia ra các phần nhỏ (fragment) Nếu hệ điều hành nhận được các gói tin đã

Trang 14

Tấn công DDoS là sự tấn công từ một mạng máy tính được thiết kế để tấn công tới một đích cụ thể nào đó Dạng tấn công này cũng nhằm mục đích giống như DoS, tuy nhiên nó được thiết lập trên nhiều địa chỉ IP khác nhau và cùng tấn công vào một đích

2.1.3.2 Phân loại tấn công DDoS

Có rất nhiều kỹ thuật tấn công DDoS, dựa trên mục đích của kiểu tấn công này, ta

có thể chia DDoS thành hai loại dựa trên mục đích tấn công: Làm cạn kiệt băng thông và làm cạn kiệt tài nguyên hệ thống Hình 2.3 dưới đây là sơ đồ mô tả sự phân loại các kiểu tấn công DDoS [4]

Hình 2.3: Phân loại tấn công DDOS

a Kiểu tấn công làm cạn kiệt băng thông của mạng

Sử dụng hết băng thông là kiểu tấn công nhằm tràn ngập mạng, với mục đích làm giảm tối thiểu khả năng của các lệnh gửi, truyền hợp lệ đến được với hệ thống cung cấp dịch vụ của máy chủ

Trang 15

Có hai loại tấn công dạng sử dụng hết băng:

Tràn băng thông: Là cách gửi một lượng lớn đến hệ thống dịch vụ của máy

chủ, làm dịch vụ này bị hết khả năng về băng thông, hệ thống bị treo hay đạt đến trạng thái hoạt động bão hòa Việc này dẫn đến người dùng thực sự của hệ thống không sử dụng được dịch vụ Ta có thể chia loại này thành hai loại:

o Tấn công tràn băng thông UDP: Gửi một lượng lớn UDP đến hệ thống dịch vụ

và làm tràn hệ thống

o Tấn công tràn băng thông ICMP: Kẻ tấn công gửi một lượng lớn gói CMP_ECHO_REPLY đến hệ thống mục tiêu thì hệ thống này phải phản hồi một lượng tương ứng các gói để trả lời, sẽ dẫn đến nghẽn đường truyền

Khuếch đại giao tiếp: Điều khiển các tác nhân hay máy khách tự gửi thông điệp

đến một địa chỉ IP broadcast, làm cho tất cả các máy trong subnet này gửi thông điệp đến hệ thống dịch vụ của mục tiêu Phương pháp này làm gia tăng mạch giao thông không cần thiết, làm suy giảm băng thông của mục tiêu

b Những kiểu tấn công làm cạn kiệt tài nguyên

Trong kiểu tấn công này là cách mà kẻ tấn công gửi những gói bằng phương pháp dùng các giao thức sai chức năng thiết kế, hay gửi những gói với dụng ý làm tắt nghẽn tài nguyên mạng làm cho các tài nguyên này không phục vụ người dùng thông thường khác được

Khai thác lỗ hổng trên các giao thức

o Tấn công gói TCP SYS: Giao thức điều khiển chuyển giao hỗ trợ truyền nhận với độ tin cậy cao nên sử dụng phương thức bắt tay giữa bên gửi và bên nhận trước khi truyền dữ liệu Khi một kẻ tấn công gửi một gói SYN đến nạn nhân với địa chỉ bên gởi là giả mạo, kết quả là nạn nhân gửi một phản hồi SYN/ACK đến một địa chỉ khác và sẽ không bao giờ nhận được gói ACK cuối cùng, cho đến hết thời gian timeout nạn nhân mới nhận ra được điều này và giải phóng các tài nguyên hệ thống Tuy nhiên, nếu lượng gói SYN giả mạo đến với số lượng nhiều và dồn dập, hệ thống của nạn nhân có thể bị hết tài nguyên Kiểu tấn công dạng SYN được mô phỏng trong Hình 2.4:

Trang 16

Hình 2.4: Tấn công TCP SYN

o Tấn công ACK: Hệ thống sẽ không thể xử lý được lượng lớn gói tin gửi đến và

sẽ bị treo

Gửi các gói tin khó hiểu

Đây là cách tấn công dùng các tác nhân để gửi các gói tin có cấu trúc không đúng chuẩn nhằm làm cho hệ thống của nạn nhân bị treo

Có hai loại tấn công dạng này:

o Tấn công địa chỉ IP

o Tấn công gói lựa chọn IP

Trên đây là lý thuyết cơ bản về dạng tấn công DOS và DDOS được các kẻ tấn công hay sử dụng

2.2 Cross-Site Scripting (XSS)

2.2.1 Tổng quan về XSS

XSS là một trong những loại tấn công Web phổ biến nhất, mục đính của chúng là nhúng các kịch bản (script) chứa mã độc vào trong một trang web và thực thi chúng ở phía máy khách Một trang Web có khả năng dễ bị tấn công XSS nhất là khi ứng dụng không kiểm tra dữ liệu vào và tạo ra một đầu ra ngoài tầm kiểm soát của trang

đó Lỗ hổng này dẫn tới rất nhiều loại tấn công, ví dụ: đánh cắp các thông tin mật Ngay cả những nhà an toàn thông tin lớn nhât như: McAfee, Symantec, Verisign cũng đã có ít nhất 30 lỗ hổng XSS trên trang Web của họ [2]

Về loại tấn công này, các kẻ tấn công sẽ tiêm vào các trang web hợp lệ những mã độc từ phía máy khách của kẻ tấn công Sau đó một người sử dụng khác khi vào trang web đó, đoạn mã độc của kẻ tấn công sẽ được thực thi và gửi thông tin đến máy kẻ tấn công Thực tế có rất nhiều biến thể của loại tấn công XSS, nhưng tất cả chúng đều theo một số bước như sau:

 Kẻ tấn công nhúng vào trang web một đoạn mã độc

 Khi nạn nhân ghé thăm trang web thì sẽ tự động chạy đoạn mã độc đó và gửi lại

Trang 17

cookie của nạn nhân cho kẻ tấn công

 Kẻ tấn công làm một vài việc dưới danh nghĩa là của nạn nhân (ví dụ: đọc, ăn cắp thông tin…)

2.2.2 Ảnh hưởng do XSS gây ra

Việc khai thác tấn công bởi XSS sẽ được sử dụng để đạt được những mục đích sau đây:

 Đánh cắp nhận dạng

 Truy cập những thông tin nhạy cảm và thông tin giới hạn

 Đạt được truy cập miễn phí tới các nội dung phải mất phí

 Làm gián điệp trên các trình duyệt để theo dõi thói quen của người dùng

 Thay đổi các chức năng của trình duyệt

 Mang nội dung xấu nhằm mục đích bôi nhọ danh dự của một cá nhân hoặc công

ty

 Làm mất đi uy tín của trang web ứng dụng

 Gây lên tấn công dạng từ chối dịch vụ

2.2.3 Phân loại

Dưới đây là một vài kiểu tấn công dạng XSS:

 Tấn công liên trang dạng lưu trữ (Stored Cross site scripting)

 Tấn công liên trang dạng phản chiếu (Reflected Cross site scripting)

 Tấn công liên trang dựa trên DOM (DOM-based Cross site scripting)

a) Stored XSS

Stored Cross site scripting: Là một loại tấn công nguy hiểm nhất của XSS Các ứng dụng Web cho phép người sử dụng lưu trữ dữ liệu có tiềm năng gây ra loại tấn công này Stored XSS là cách tấn công mà mã độc được lưu lại trên máy chủ Web thông qua cách chèn một đoạn script nguy hiểm (thường Javascript) vào ứng dựng Web thông qua một chức năng nào đó như là gửi bài, viết lời bình Sau đó những người dùng sau đó khi truy cập vào các chức năng này sẽ bị dính mã độc từ website có chèn mã của kẻ tấn công đó giống như mô tả ở Hình 2.5 sau

Trang 18

Hình 2.5: Mô hình tấn công XSS Ngày nay thì các ứng dụng web không còn là các trang web tĩnh nữa, mà thay vào

đó là các trang web động với dữ liệu được lấy và thay đổi từ rất nhiều nguồn khác nhau Dữ liệu này chứ đựng hỗn hợp như là: text, hình ảnh và các thẻ HTML như <p>,

<img>, <script> Kẻ tấn công sẽ sử dụng tính năng „comment‟ của ứng dụng web để chèn các bình luận (comment) có chứa các thẻ script Mỗi người dùng ghé thăm sẽ tải

về đoạn bình luận đó và thực thi nó trên trình duyệt của họ Giống như chức năng bình luận của Facebook hoặc những diễn đàn, kẻ tấn công có thể sử dụng để tấn công theo phương pháp này

b) Reflected XSS

Kiểu tấn công Reflected XSS được biết đến như kiểu loại 1 (non-persistent XSS),

là loại tấn công XSS thường thấy nhất ngày nay Khi một ứng dụng có thể bị nhiễm loại tấn công này, nó sẽ không kiểm tra các đầu vào thông qua yêu cầu của máy khách Chương trình của kẻ tấn công được viết bởi Javascript, hoặc ActionScript, VBScript Những kẻ tấn công dạng này thường làm cho những lỗ hổng được cài đặt, ăn trộm cookies của nạn nhận, thay đổi nội dung của trang web Một trong những vấn đề quan trọng về việc khai thác các điểm yếu lỗ hổng XSS đó là việc mã hóa các ký tự Trong một số trường hợp, các máy chủ Web hoặc ứng dụng Web không thể lọc được một vài

ký tự mã hóa Ví dụ, ứng dụng Web có thể lọc được thẻ <script> nhưng lại không thể lọc được '%3cscript%3e'

Trang 19

Hình 2.6: Mô hình tấn công Reflected XSS Trong trường hợp này, kẻ tấn công gửi một email cho nạn nhân có chứa mã độc là một đường liên kết để lấy cookie Nạn nhân sau khi nhận mail, kích lên liên kết đó và

từ đó khởi tạo một yêu cầu HTTP tới ứng dụng Web và gây nhiễm cho ứng dụng Đoạn JavaScript có chứa mã độc sau đó được gửi trở lại trình duyệt của nạn nhân

c) DOM-based Cross site scripting

Trong khi các loại tấn công dạng XSS xảy ra trên phía máy chủ thì DOM base XSS là một loại tấn công mà ảnh hưởng tới kịch bản mã nguồn tại trình duyệt của máy khách DOM-base XSS là một kiểu tấn công truy cập vào cấu trúc của trang, ở lại đó

và thực thi những nội dung của trang web Giống như mã nguồn phía máy chủ, thì mã nguồn tại phía máy khách cũng chấp nhận những đầu vào của người dùng có chứa dữ liệu độc Do đó, nếu như kẻ tấn công nhập vào các dữ liệu độc, sẽ dẫn đến một gây nhiễm độc dạng DOM-bases XSS DOM-based XSS là một kiểu tấn công XSS, kết quả của việc chỉnh sửa DOM tại trình duyệt của nạn nhân Vì vậy mã nguồn của phía máy khách sẽ chạy theo một cách thức không mong đợi

Khả năng mã nguồn của người dùng đưa vào có chứa sự tấn công như là:

Trang 20

Hình 2.7: DOM-base XSS Nếu chuỗi document.referrer có chứa mã JavaScript, đoạn mã đó sẽ được thực thi

Để khai thác loại tiêm nhiễm mã độc này, kẻ tấn công phải có một trang trung gian từ trang mà họ liên kết tới trang lây nhiễm Kẻ tấn công này sẽ gửi liên kết của trang tới nạn nhân:

http://www.attacker.com/domxsspage.html?<script>themaliciouscode</script>

Bởi việc sử dụng gửi trực tiếp JavaScript hoặc tương tác của người sử dụng, kẻ tấn công liên kết tới trang web nhiễm độc, nguyên nhân dẫn đến đoạn mã nhiễm độc được thực thi

2.2.4 Cách phát hiện ra sâu XSS

Trong những trang Web bị dính sâu XSS, thường là khi người sử dụng đăng nhập hoặc gửi một vài thông tin nào đó tớ máy chủ, mà kết quả được gửi về có liên quan tới thông tin của chuỗi người dùng đã nhập thì khả năng cao là đã bị dính sâu XSS Kẻ tấn công thường dùng thẻ <script> để nhúng vào các form của ứng dụng hoặc cũng có thể đưa vào URL Bạn có thể thử đăng nhập với chuỗi: <script>alert(“XSS found”)</script>, nếu thấy xuất hiện một popup thì ứng dụng đó đã bị nhiễm XSS, hoặc tương tự khi nhúng nó vào URL

2.2.5 Các phương pháp ngăn chặn lỗ hổng bảo mật XSS

Để các trang Web có thể tránh được việc tấn công XSS, những nhà phát triển phần mềm nên kiểm tra cẩn thận hơn:

 Kiểm tra và chỉ chấp nhận những dữ liệu hợp lệ

Trang 21

 Có chức năng nắm giữ và từ chối nhận các dữ liệu hỏng

 Thực hiện kiểm tra và sàng lọc dữ liệu một cách liên tục

Tuy vậy nhưng thực tế thì việc kiểm tra và loại bỏ những dữ liệu không hợp lệ là không thể vét cạn được, bởi đôi khi vẫn phải chấp nhận những ký tự đó Vì vậy, có thêm một cách nữa đó là mã hóa các ký tự để không gây nguy hiểm cho người dùng

2.3 Tổng quan SQL Injection

2.3.1 Định nghĩa

SQL injection là một kỹ thuật được sử dụng cho việc muốn tìm ra những điểm yếu kém của ứng dụng về cơ sở dữ liệu Nó thường được sử dụng trên các ứng dụng Web, khi mà yêu cầu nhập thông tin từ người dùng để xử lý Kỹ thuật này thường thấy trong các trường hợp yêu cầu đăng nhập vào các ứng dụng hay bất kỳ một khung đăng thông tin từ người dùng mà ứng dụng sử dụng câu truy vấn SQL injection có thể xuất hiên hiện trên bất kỳ ứng dụng web có sử dụng các công nghệ như: ASP, ASP.NET và PHP với SQL Ví dụ như khi người sử dụng nhập thông tin vào trang đăng nhập và yêu cầu được gửi đi những thông tin về người dùng và mật khẩu sẽ được mang đi để

so sánh với một tập hợp các người dùng hợp pháp trong cơ sở dữ liệu [9]

SQL Injection là một trong những kiểu tấn công phổ biến nhất hiện giờ ở tầng ứng dụng được sử dụng trên mạng Mặc dù dạng lỗ hổng này có một vài cách dễ dàng để bảo vệ chống lại SQL injection, nhưng một số lớn các ứng dụng web vẫn tồn lại những

lỗ hổng dạng này

2.3.2 Các kỹ thuật tấn công SQL Injection

Có 4 loại tấn công thuộc SQL Injection: Đăng nhập không cần mật khẩu, sử dụng câu lệnh SELECT, sử dụng các Stored-procedures, sử dụng câu lệnh INSERT [8]

a) Đăng nhập mà không cần mật khẩu

Dựa vào sơ hở của ứng dụng, kẻ tấn công sẽ sử dụng chức năng đăng nhập vào hệ thống, nhập những dữ liệu có khả năng thực thi câu lệnh SQL một cách bất hợp pháp,

từ đó kẻ tấn công không cần có mật khẩu vẫn có thể đăng nhập vào hệ thống và thực thi các chức năng của hệ thống đó, điều này rất nguy hiểm, có thể dẫn tới sập hệ thống Đây là dạng tấn công cơ bản của SQL Injection

Ví dụ, một trang web của ngân hàng có một trang đăng nhập với mã nguồn như sau:

<form action="/cgi-bin/login" method=post>

Username: <input type=text name=username>

Trang 22

Nhập vào đoạn ' OR ' ' = ' cho cả 2 ô username và password, lúc đó câu lệnh truy vấnSQL sẽ trở thành:

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

USR_PASSWORD= '' OR ''=''

Từ đó kẻ tấn công có thể đăng nhập thành công mà không cần biết mật khẩu, và có thể thực thi các ứng dụng của trang web như là: chuyển khoản, ăn cắp thông tin Gây ra rất nhiều nguy hiểm cho công ty và người dùng Kẻ tấn công cũng có thể sử dụng một vài mẫu tấn công như trong bảng Bảng 2.1 dưới đây để có được truy cập tương tự:

Bảng 2.1: Các mẫu đầu vào Mẫu 1 ' or 1=1

từ hệ thống để dò tìm các điểm yếu khởi đầu cho việc tấn công

Ví dụ:

<%

Dim vNewsID, objRS, strSQL

vNewsID = Request("ID")

strSQL = "SELECT * FROM T_NEWS WHERE NEWS_ID =" & vNewsID

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

Trang 23

Dạng tấn công này rất nguy hiểm nếu ứng dụng được thực thi với quyền quản trị

hệ thống 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 Nếu cài SQL Server

ở chế độ mặc định thì SQL Server chạy trên nền SYSTEM, tương đương mức truy cập ở Windows Có thể dùng master xp_cmdshell để thi hành lệnh từ xa:

; exec master xp_cmdshell 'ping 10.10.1.2'

Thử dùng dấu nháy đôi (") nếu dấu nháy đơn (') không làm việc

Dưới đây là một số extended stored procedure mà kẻ tấn công thường hay sử dụng để thực thi những câu lệnh xem nội dung thông tin trong máy nạn nhân:

Xp_availablemedia: Hiển thị những ổ đĩa hiện hành trên máy

Xp_dirtree: Hiển thị tất cả các thư mục kể cả thư mục con

Xp_loginconfig: Lấy thông tin về chế độ bảo mật trên server

Xp_makecab: Cho phép người sử dụng tạo các tập tin lưu trữ trên Server (hay bất cứtập tin nào mà server có thể truy xuất

Xp_ntsec_enumdomain: Liệt kê những domain mà server có thể truy vấn

Xp_terminate_process: Chấm dứt một tiến trình với tham số PID của nó

d) 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 để

Trang 24

Nếu đoạn mã xây dựng câu lệnh SQL có dạng :

<%

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

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

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

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

2.3.3 Những ảnh hưởng gây ra của SQL Injection

Một khi kẻ tấn công đã nhận ra hệ thống có điểm yếu và có thể tiêm mã độc SQL Injection vào, chúng sẽ đưa vào các câu lệnh hoặc truy vấn SQL thông qua một trường nhập đầu vào nào đó Điều đó tương đương với việc giao cơ sở dữ liệu của bạn cho kẻ tấn công và cho phép kẻ tấn công thực thi bất kỳ một lệnh SQL nào đó bảo gồm cả câu lệnh “DROP TABLE” để xóa hẳn cơ sở dữ liệu của bạn đi

Kẻ tấn công có lẽ thực thi những trạng thái SQL một cách tùy ý trên các hệ thống

có khả năng tiêm nhiễm đó Điều này gây nguy cho toàn bộ cơ sở dữ liệu của bạn hoặc làm phơi bày ra những thông tin nhạy cảm Phụ thuộc vào back-end của cơ sở dữ liệu, khả năng tiêm nhiễm SQL Injection dẫn đến nhiều mức độ của việc truy cập dữ liệu/hệ thống của kẻ tấn công Nó có khả năng thực thi những truy vấn tồn tại, UNION các dữ liệu một các tùy ý, sử dụng các lựa chọn con hoặc thêm vào các truy vấn theo sau Trong một số trường hợp, nó có khả năng đọc hoặc viết ra các tệp, hoặc thực thi các lệnh shell trên các hệ thống thao tác cơ bản Một số các SQL servers giống như Microsoft SQL server chứa đựng những thủ tục lưu trữ và mở rộng Nếu kẻ tấn công

có thể đạt được truy cập tới các thủ tục đó, nó có thể gây ra thảm họa Không may mắn những ảnh hưởng của SQL injection là chỉ được phát hiện khi những tên trộm được phát hiện ra

Trang 25

Ví dụ về một tấn công SQLInjection:

Dưới đây là một khung đăng nhập có 2 trường Username và password:

<form method="post" action="http://testasp.vulnweb.com/login.asp">

<input name="tfUName" type="text" id="tfUName">

<input name="tfUPass" type="password" id="tfUPass">

</form>

Trong tệp “login.asp” sẽ chứa một truy vấn vào cơ sở dữ liệu như sau:

SELECT id

FROM logins

WHERE username = '$username'

AND password = '$password’

Kẻ tấn công sẽ đăng nhập với một tên và password như sau:

Username: myname

Password: anything' OR 'x'='x

Từ đó kẻ tấn công có thể đăng nhập như một người sử dụng hợp pháp và thao tác trên hệ thống với ý đồ xấu gây thiệt hại cho hệ thống một cách khó lường được

2.3.4 Các phương pháp phòng chống SQL Injection phổ biến

Các loại tấn công SQL Injection đều dựa trên những điểm yếu về cơ sở dữ liệu Thông thường các nhà lập trình thường quên đi việc ngăn chặn lỗi bảo mật khi lập trình dẫn đến những sơ hở này Dưới đây là một vài phương pháp có thể giúp ngăn chặn được tấn công SQL Injection như sau:

 Kiểm tra tất cả các dữ liệu đầu vào trên các form: Loại bỏ các ký tự lạ, đối với các ký tự numeric nên chuyển chúng sang số nguyên trước khi thực hiện các câu lệnh truy vấn hoặc dùng thuật toán để mã hóa dữ liệu

 Quản lý chặt chẽ SQL Server: kiểm soát các tài khoản có trong ứng dụng, phân quyền thấp cho các ứng dụng

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

Tóm lại, chương 2 đã miêu tả được về 3 loại tấn công nguy hiểm và phổ biến nhất hiện nay Ngoài những loại lỗ hổng đó, các trang Web còn tồn tại rất nhiều những dạng lỗ hổng khác như: lộ thông tin cấu hình máy chủ, lộ trường thông tin mật khẩu hay cookies, lỗ hổng tấn công liên trang giả mạo Những lỗ hổng này thường ít được để ý đến nhưng chúng lại cung cấp những thông tin hữu ích cho kẻ tấn công để nhằm thực thi tấn công vào trang Web, chúng

sẽ được miêu tả chi tiết hơn trong các chương sau

Trang 26

W3af, Havij, Wapiti, BurpSuite, Exploit-Me, Rcvalle-rapache

3.1 Netsparker

Netsparker là một công cụ duyệt tìm lỗ hổng do SQL injection và XSS gây ra, là một phần mềm miễn phí cho tất cả các trang web muốn tìm lỗ hổng Công cụ này sẽ phát hiện những vấn đề về bảo mật trong ứng dụng Web, Netsparker có thể kiểm tra và phát hiện ra một số lượng điểm yếu lớn về SQL injection như: Error Based, Blind và Time Based SQL Injections Sau khi xác nhận ra các lỗ hổng đó, công cụ này có khả năng thực thi kiểm tra rộng hơn để xác định rõ nếu người sử dụng ứng dụng có quyền của người quản lý Trong trường hợp này Netsparker sẽ báo cáo một vấn đề riêng biệt được gọi là “Admin User DB Connection”

Netsperker tìm và khai thác rất nhiều tầng back-end của các cơ sở dữ liệu khác nhau, có khả năng tìm thấy 98.53% của tất các SQL injection Ví dụ chạy trên ứng

dụng: http://localhost/topman và kết quả khi chạy công cụ này được mô tả trong Hình

3.1 như sau:

Hình 3.1: Thực nghiệm công cụ Netsparket Một số vấn đề được phát hiện tại ứng dụng này mà công cụ Netsparker tìm được

Trang 27

như sau:

 http://localhost/topman/index.php: Mật khẩu bị truyền thông qua HTTP, kẻ tấn công có thể chặn lại mạng và ăn trộm chứng thực của người sử dụng Cũng giống như trang web trên, người phát triển nên sử dụng HTTPs khi truyền những thông tin nhạy cảm để bảo mật thông tin hơn

 http://localhost/topman/?'"-></style></script><script>alert(0x01C214)</script>:Tồn tại một tấn công liên trang (XSS) trong ứng dụng Cho phép kẻ tấn công thực

thi những đoạn mã động như: Javascript, VbScript Biểu thức mẫu tấn công:

“'" ></style></script><script>alert(0x01C214)</script> “ Dựa vào lỗ hổng này,

rất nhiều tấn công khác có thể lợi dụng để khai thác:

 Thay đổi nội dung của trang web bên trong trình duyệt của nạn nhân

 Lấy trộm phiên làm việc của người sử dụng

 Gắn kết thành công một lừa đảo tấn công

 Chặn dữ liệu và thực thi tấn công

Vấn đề này xảy ra bởi các trình duyệt ngăn chặn các giá trị đầu vào giống như HTML, JavaScript hoặc VBScript Để tránh điều này, tất cả đầu vào và đầu ra từ form nên được lọc một cách cẩn thận

 http://localhost/topman/.svn/all-wcprops : Công cụ phát hiện ra 1 tệp chứa thông tin

về SVN, thông tin về địa chỉ SVN, tên người sử dụng SVN và thông tin ngày giờ sẽ

bị lộ Những thông tin này sẽ rất hữu ích khi kết hợp với các lỗ hổng khắc hoặc trong khi khai thác những lỗ hổng khác Để khác phục lỗi này, nên xóa toàn bộ những tệp về SVN trước khi mang ra sử dụng để tránh lỗ hổng này xảy ra

Bên cạnh đó, còn rất nhiều lỗ hổng ở mức độ ảnh hưởng trung bình và thấp như: hiển thị thông tin một vài trường, lộ thông tin về ngôn ngữ lập trình Những thông tin

mà rất hữu ích cho kẻ muốn tấn công Dựa trên các công cụ này, nó đã giúp phát hiện được các lỗ hổng, từ đó các nhà phát triển biết được và khắc phục trước khi bị tấn công gây ra hậu quả

3.2 Websecurify

Websecurify là một công cụ kiểm thử phần mềm tự động có khả năng quét các thông số an ninh khác nhau trên trang web và đưa ra phân tích thống kê toàn diện giúp bạn có thể tìm thấy lỗ hổng an ninh để giữ cho trang web tránh được sự tấn công của kẻ tấn công [14]

 Ưu điểm:

Trang 28

một cách chính xác

o Làm việc trên nhiều nền tảng như: add-on của firefox, chrome, phiên bản desktop, Mobile [14]

o Nó có khả năng tìm ra rất nhiều loại lỗ hổng như:

▪ Tấn công liên trang (XSS)

▪ Tấn công liên trang giả mạo (Cross-site Request Forgery)

▪ Từ chối liệt kê thư mục (Directory Listing Denied)

▪ Lộ thông tin Email

▪ Lỗi SQL

▪ Đăng tải tệp (File Upload)

▪ Lộ các thông tin biểu ngữ

▪ Phiên Cookie không được bảo mật

▪ Lộ thông tin IP

▪ Lộ đường dẫn

▪ Lộ các lỗi máy chủ

o Có thể được cài đặt và tích hợp với các ứng dụng web khác

o Kết quả có thể được xuất ra CSV, XML, HTML và JSON

o Hỗ trợ của nhiều nền của hệ điều hành ví dụ như Windows, Mac OS X

và Linux

o Cung cấp một API để hỗ trợ nhiều cho loại động cơ thử nghiệm thương mại và miễn phí

o Hỗ trợ địa phương hoá để kết quả có thể được dịch ra nhiều ngôn ngữ

o Websecurity được thiết kế một cách nhanh gọn, các chức năng dễ sử dụng Có khả năng quét nhiều trình duyệt tại một thời điểm

Trang 29

Bên cạnh đó thì Websecurify chứa một vài nhược điểm như sau:

 Nhược điểm:

o Tài liệu hỗ trợ công cụ này là không có sẵn

o Không phát hiện được lỗ hổng dạng: stored XSS

 Tóm lại: Websecurify tuy không hoàn toàn tìm ra các lỗ hổng một cách đầy đủ Nhưng công cụ này lại rất tốt trong các trường hợp không đủ thời gian kiểm thử và muốn thực thi một kiểm thử nhanh chóng Nó cũng phát hiện được những lỗ hổng cơ bản mà một trang Web hay gặp phải

Xét một thực nghiệm trên ứng dụng sau: http://localhost/topman:

Hình 3.2: Thực nghiệm công cụ Websecurify trên ứng dụng Kết quả thu được của thực nghiệm trên như sau:

Trang 30

Hình 3.3: Kết quả khi chạy công cụ Websecurify Một loạt các lỗ hổng được tìm thấy bởi công cụ này Giống như Hình 3.3 trên miêu

tả một lỗ hổng về SQL injection Kẻ tấn công khi biết được điều này sẽ lợi dụng và áp dụng các kỹ thuật tấn công trang web

Cũng tương tự như bản trên desktop, Websecurify là một đuôi mở rộng của firefox

và việc phân tích mã nguồn không thể hiểu được ứng dụng sẽ có hành vi như thế nào trong khi nó đang bị tấn công Do vậy việc kết hợp những kỹ thuật đó với nhau để đạt được những kết quả tương xứng hơn việc sử dụng các bộ phân tích mã nguồn và quét hộp đen một cách độc lập [5]

a) Lợi ích của việc sử dụng công nghệ Acunetix AcuSensor:

Trang 31

 Cho phép bạn định vị và sửa chữa những điểm yếu dễ tấn công nhanh hơn bởi vì khả năng tìm ra nhiều thông tin hơn về những điểm dễ tấn công đó, giống như: dòng code, stack trace, những truy vấn SQL có ảnh hưởng

 Có thể giảm đáng kể khả năng lỗi khi quét một trang web bởi vì chúng ta có thể hiểu hành vi bên trong của ứng dụng web đó tốt hơn

 Có thể thông báo cho bạn những vấn đề cấu hình của ứng dụng, những cấu hình

mà có thể là nguyên nhân gây ra lỗ hổng đó hoặc lộ ra những chi tiết bên trong của ứng dụng

 Cung cấp cho bạn biết về tất cả các tệp trong thư mục của ứng dụng, những tệp

đó sẽ được tìm thấy và được quét khi đang sử dụng công nghệ AcuSensor và bạn sẽ được thông báo

 Công nghệ AcuSensor có khả năng phân chia đầu vào của tất cả các ứng dụng web và dựng lên một danh sách bao hàm toàn diện với tất cả các khả năng đầu vào trong website và kiểm tra chúng

 Khả năng kiểm tra việc tạo ra tệp tùy ý và tìm ra lỗ hổng

 Khả năng kiểm tra việc tiêm nhiễm email

b) Cách thức làm việc của Acunetix

Khi AcuSensor được sử dụng, nó giao tiếp với Web server để tìm ra cấu hình của ứng dụng web và cấu hình nền tảng của ứng dụng (như là PHP, NET) Một khi có trigger từ Acunetix WVS, Sensor này sẽ lấy một danh sách tất cả các tệp đại diện trong thư mục ứng dụng web, liệt kê ra tất cả các đầu vào của ứng dụng Do đó nó biết được các kiểu đầu vào mà ứng dụng mong đợi, nó có thể khởi động một vùng rộng hơn và kiểm thử lại ứng dụng [2]

Hình 3.4: Cách thức làm việc của Acunetix

Nó cũng có khả năng quét tất cả các giao dịch SQL giữa các ứng dụng web và cơ

Trang 32

SQL injection, XSS và các loại lỗ hổng khác, giống như thống kê dưới đây [Error! Reference source not found.]:

Hình 3.5: Thống kê các công cụ năm 2012 của Benchmark Acunetix là một công cụ nổi tiếng và được rất nhiều các công ty lớn trên thế giới

sử dụng để quét lỗ hổng đảm bảo an toàn cho ứng dụng web của họ Nó cũng là một công cụ để phân tích và khai thác điểm yếu của ứng dụng Web, Acunetix WVS thực thi kiểm tra bảo mật của Web thông qua 3 bước sau:

* Bước1: Xác định điểm đích:

 WVS kiểm tra nếu điểm đích đang chạy là một web server

 Thông tin được thu thập trên tất cả các công nghệ được sử dụng, giống như kiểu của web server và khả năng phản hồi chính xác tương ứng với việc lọc những kiểm thử

* Bước 2: Quét qua trang web và cấu trúc của nó

 Tệp đầu tiên trên web được lấy về (Ví dụ: index.html)

Trang 33

 Tệp robots.txt và sitemap.txt được phân tích

 Những phản hồi được nhận về được phân tích để tìm những liên kết, form, trường dữ liệu đầu vào, tham số và đoạn mã Script từ phía máy khách Nó làm lên một danh sách các thư mục và tệp bên trong trang web

 Tất cả các tệp được tìm thấy trong bước 1 được đi qua và xử lý

* Bước 3: Phân tích mẫu

 Acunetix bắt đầu kiểm tra một vài bảo mật chống lại đích của website phụ thuộc vào thông tin quét đã được chọn

 Tìm ra các thông báo về điểm yếu được thông báo tại nốt “Web Alert” Mỗi alert thông báo chi tiết thông tin về điểm yếu, đưa ra cách để gỡ những lỗ hổng

đó

 Nếu như AcuSensor được kích hoạt, thông tin về gỡ lỗi được báo cáo, giống như lỗ hổng truy vấn SQL tới SQL injection và dòng code của lỗ hổng này được đưa ra cho khai thác.Sau khi hoàn thành việc quét, nó được lưu tới tệp cho việc phân tích sau đó và so sánh với các lần quét trước đó Kết quả quét đó có thể lưu dưới dạng AVDL và XML

Acunetix có khả năng quét và phát hiện hàng loạt vấn đề như:

Kiểm tra cấu hình Web Server:

 Kiểm tra vấn đề về Web: xác định nếu có nguy hiểm của phương thức HTTP cho máy chủ eb server (Ví dụ: PUT, TRACE, DELETE)

 Kiểm tra các công nghệ của máy chủ Web

 Lỗ hổng trên các máy chủ Web

 Các công nghệ về lỗ hổng trên nó (Ví dụ: lộ tệp PHP 4.3.0 và khả năng thực thi mã nguồn)

Kiểm tra các thao tác của tham số:

 Tấn công liên trang (XSS)

 Tấn công liên trang giả mạo (Cross-Site Request Forgery)

 Tiêm nhiễm SQL

 Thực thi mã nguồn

Ngày đăng: 30/11/2015, 13:21

HÌNH ẢNH LIÊN QUAN

Hình 2.2: Tấn công Smurf - Nghiên cứu vài dạng lỗ hổng bảo mật, công cụ phát hiện chúng và ứng dụng để kiểm thử an ninh trên trang web truongnha com
Hình 2.2 Tấn công Smurf (Trang 13)
Hình 2.3: Phân loại tấn công DDOS - Nghiên cứu vài dạng lỗ hổng bảo mật, công cụ phát hiện chúng và ứng dụng để kiểm thử an ninh trên trang web truongnha com
Hình 2.3 Phân loại tấn công DDOS (Trang 14)
Hình 2.5: Mô hình tấn công XSS - Nghiên cứu vài dạng lỗ hổng bảo mật, công cụ phát hiện chúng và ứng dụng để kiểm thử an ninh trên trang web truongnha com
Hình 2.5 Mô hình tấn công XSS (Trang 18)
Hình 2.6: Mô hình tấn công Reflected XSS - Nghiên cứu vài dạng lỗ hổng bảo mật, công cụ phát hiện chúng và ứng dụng để kiểm thử an ninh trên trang web truongnha com
Hình 2.6 Mô hình tấn công Reflected XSS (Trang 19)
Hình 3.6: Ví dụ về Acunetix - Nghiên cứu vài dạng lỗ hổng bảo mật, công cụ phát hiện chúng và ứng dụng để kiểm thử an ninh trên trang web truongnha com
Hình 3.6 Ví dụ về Acunetix (Trang 36)
Hình 3.8: Phân tích chi tiết kết quả - Nghiên cứu vài dạng lỗ hổng bảo mật, công cụ phát hiện chúng và ứng dụng để kiểm thử an ninh trên trang web truongnha com
Hình 3.8 Phân tích chi tiết kết quả (Trang 37)
Hình 3.11: Thƣ̣c nghiệm công cụ Havij - Nghiên cứu vài dạng lỗ hổng bảo mật, công cụ phát hiện chúng và ứng dụng để kiểm thử an ninh trên trang web truongnha com
Hình 3.11 Thƣ̣c nghiệm công cụ Havij (Trang 40)
Hình 3.12: Vị trí thay thế giá trị tấn công - Nghiên cứu vài dạng lỗ hổng bảo mật, công cụ phát hiện chúng và ứng dụng để kiểm thử an ninh trên trang web truongnha com
Hình 3.12 Vị trí thay thế giá trị tấn công (Trang 42)
Hình 3.16: Mối quan hệ các Plugin trong công cụ W3af - Nghiên cứu vài dạng lỗ hổng bảo mật, công cụ phát hiện chúng và ứng dụng để kiểm thử an ninh trên trang web truongnha com
Hình 3.16 Mối quan hệ các Plugin trong công cụ W3af (Trang 47)
Hình 4.2: Khởi động BurpSuite  Trước tiên chúng ta phải cấu hình proxy trong ứng dụng của trình duyệt: - Nghiên cứu vài dạng lỗ hổng bảo mật, công cụ phát hiện chúng và ứng dụng để kiểm thử an ninh trên trang web truongnha com
Hình 4.2 Khởi động BurpSuite Trước tiên chúng ta phải cấu hình proxy trong ứng dụng của trình duyệt: (Trang 52)
Hình 4.4: Chạy ứng dụng cho BurpSuite - Nghiên cứu vài dạng lỗ hổng bảo mật, công cụ phát hiện chúng và ứng dụng để kiểm thử an ninh trên trang web truongnha com
Hình 4.4 Chạy ứng dụng cho BurpSuite (Trang 53)
Hình 4.5: Kết quả quét trên phần mềm Trường Nhà - Nghiên cứu vài dạng lỗ hổng bảo mật, công cụ phát hiện chúng và ứng dụng để kiểm thử an ninh trên trang web truongnha com
Hình 4.5 Kết quả quét trên phần mềm Trường Nhà (Trang 53)
Hình 4.6: Thƣ̣c nghiệm công cụ Netsparker - Nghiên cứu vài dạng lỗ hổng bảo mật, công cụ phát hiện chúng và ứng dụng để kiểm thử an ninh trên trang web truongnha com
Hình 4.6 Thƣ̣c nghiệm công cụ Netsparker (Trang 54)
Hình 4.10: Thông tin các lỗ hổng và các lỗi trên công cụ W3af - Nghiên cứu vài dạng lỗ hổng bảo mật, công cụ phát hiện chúng và ứng dụng để kiểm thử an ninh trên trang web truongnha com
Hình 4.10 Thông tin các lỗ hổng và các lỗi trên công cụ W3af (Trang 59)
Hình 4.12: Kết quả chạy công cụ Websecurify - Nghiên cứu vài dạng lỗ hổng bảo mật, công cụ phát hiện chúng và ứng dụng để kiểm thử an ninh trên trang web truongnha com
Hình 4.12 Kết quả chạy công cụ Websecurify (Trang 61)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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