Theo tìm hiểu về các hệ thống thông tin lơn, em đưa ra được một số mô hình bảo mật được sử dụng tương đối phổ biến: Mô hình ma trận truy cập Acess matrix model: là mô hình điều khiểntru
Trang 1DANH MỤC HÌNH VẼ 4
DANH MỤC BẢNG BIỂU 6
Chương 1 1
TỔNG QUAN 1
1.1 Giới thiệu đề 1
1.2 Phạm vi đề tài 3
Chương 2 4
LÝ THUYẾT ÁP DỤNG 4
2.1 Tổng quan về bảo mật website 4
2.1.1 Sơ lược về bảo mật thông tin 4
2.1.2 Mô hình bảo mật 5
2.1.3 Áp dụng mô hình bảo mật vào hệ thống 8
2.1.4 Nguy cơ và rủi ro 11
2.1.5 Các phương pháp tấn công bảo mật 13
2.2 Tổng quan lý thuyết kiểm thử 20
2.2.1 Sơ lược về kiểm thử 20
2.2.2 Mục đích của kiểm thử bảo mật 21
2.2.3 Các loại hình kiểm thử bảo mật 22
Chương 3 24
CÔNG NGHỆ VÀ PHẦN MỀM SỬ DỤNG 24
Trang 23.1.2 SQL Power Injector 26
3.1.3 LOIC 29
3.1.4 Brup Suite 30
Chương 4 32
KIỂM THỬ BẢO MẬT HỆ THỐNG VNEDU.VN 32
4.1 Giới hiệu hệ thống vnedu.vn 32
4.1.1 Module Quản lý học tập 33
4.1.2 Module Xét tốt nghiệp 47
4.1.3 Cơ sở dữ liệu 51
4.2 Quy trình kiểm thử bảo mật đề xuất và áp dụng 71
4.2.1 Quy trình kiểm thử bảo mật đề xuất 71
4.2.2 Áp dụng quy trình vào kiểm thử hệ thống 74
4.3 Thực hiện kiểm thử hệ thống 74
4.3.1 Lập Testplan 74
4.3.2 Thiết kế testcase và thực hiện test tool 75
4.3.3 Báo cáo kết quả Test 97
KẾT QUẢ ĐẠT ĐƯỢC 102
TÀI LIỆU THAM KHẢO 103
Trang 3STT Ký hiệu, chữ
viết tắt
Tên đầy đủ Dịch ra tiếng việt
Cannon
Tên một công cụ DDos
Scanner
Tên một công cụ kiểm thử
Trang 4Hình 3.1 Giao diện công cụ Acunetix Web Vulnerability Scanner 26
Hình 3.2 Giao diện công cụ SQL Power Injector 1.2 28
Hình 3.3 Giao diện công cụ LOIC 29
Hình 3.4 Giao diện công cụ Brup Suite 30
Hình 4.1 Giao diện hệ thống vnEdu.vn 32
Hình 4.2 Biểu đồ xử lý chức năng Nhập sổ điểm 34
Hình 4.3 Giao diện Nhập sổ điểm 37
Hình 4.4 Giao diện Nhập/xuất dữ liệu 38
Hình 4.5 Biểu đồ xử lý chức năng nhập điểm danh 39
Hình 4.6 Giao diện chức năng nhập điểm danh 41
Hình 4.7 Biểu đồ xử lý chức năng Nhập hạnh kiểm 42
Hình 4.8 Giao diện chức năng Nhập hạnh kiểm 44
Hình 4.9 Giao diện chức năng Tổng kết điểm 47
Hình 4.10 Giao diện chức năng Diện ưu tiên 49
Hình 4.11 Giao diện chức năng Xét tốt nghiệp 51
Hình 4.12 Cơ sở dữ liệu hệ thống danh mục 51
Hình 4.13 Cơ sở dữ liệu phân hệ quản lý hồ sơ và giáo viên 52
Hình 4.14 Cơ sở dữ liệu phân hệ quản lý học tập 53
Hình 4.15 Cơ sở dữ liệu phân hệ quản lý đề thi 54
Hình 4.16 Cơ sở dữ liệu phân hệ Quản lý kì thi 55
Hình 4.17 Quy trình kiểm thử bảo mật 73
Hình 4.18 Thiết kế Testplan 75
Hình 4.19 Thiết lập thông số test 87
Trang 5Hình 4.23 Thiết lập mục đích 89
Hình 4.24 Thực thi test 89
Hình 4.25 Thực hiện test Brup Suite 92
Hình 4.26 Thực hiện chọn chức năng của công cụ 93
Hình 4.27 Quá trình diễn ra redirect 93
Hình 4.28 Finish testing 94
Hình 4.29 Thiết lập thông số 95
Hình 4.30 Kết quả tấn công từ chối dịch vụ 95
Hình 4.31 Thống kê kết quả tấn công từ chối dịch vụ DDos 100
Trang 6Bảng 4.3 Bảng đặc tả chức năng Nhập hạnh kiểm 41
Bảng 4.4 Bảng đặc tả chức năng Tổng kết điểm 45
Bảng 4.5 Bảng đặc tả chức năng Diện ưu tiên 47
Bảng 4.6 Bảng đặc tả chức năng Xét tốt nghiệp 50
Bảng 4.7 Bảng edu_dm_dien_chinh_sach 56
Bảng 4.8 Bảng edu_dm_dien_cs 56
Bảng 4.9 Bảng edu_dm_dien_uu_tien_tn 56
Bảng 4.10 Bảng edu_dm_dien_uu_dai 57
Bảng 4.11 Bảng edu_dien_uutien 57
Bảng 4.12 Bảng edu_dm_hạnh kiểm 57
Bảng 4.13 Bảng edu_dm_hoc_ky 58
Bảng 4.14 Bảng danh mục khối học 58
Bảng 4.15 Bảng edu_dm_loai_diem 58
Bảng 4.16 Bảng edu_dm_loai_hs 59
Bảng 4.17 Bảng du_dm_mon_day 59
Bảng 4.18 Bảng edu_dm_mon_hoc 60
Bảng 4.19 Bảng edu_dm_nam_hoc 61
Bảng 4.20 Bảng edu_dm_tot_nghiep 61
Bảng 4.21 Bảng edu_giao_vien 62
Bảng 4.22 Bảng edu_hoc_sinh 66
Bảng 4.23 Bảng edu_hoc_sinh_detail 68
Bảng 4.24 Danh sách testcase yêu cầu thiết kế quản lý học tập 76
Bảng 4.25 Danh sách testcase yêu cầu thiết kế xét tốt nghiệp 79
Trang 7Bảng 4.29 Danh sách testcase mã nguồn chức năng tính tổng kết 82
Bảng 4.30 Danh sách testcase XSS 83
Bảng 4.31 Danh sách testcase Broken Authentication, Session Management .84
Bảng 4.32 Danh sách testcase SqlInjection 85
Bảng 4.33 Danh sách testcase Sensitive Data Exposure 90
Bảng 4.34 Danh sách testcase Insecure Direct Object References 91
Bảng 4.35 Danh sách testcase thiết lập trình duyệt 96
Bảng 4.36 Danh sách testcase tường lửa 96
Bảng 4.37 Bảng tổng hợp kết quả test yêu cầu thiết kế 97
Bảng 4.38 Bảng tổng hợp kết quả test mã nguồn 97
Bảng 4.39 Bảng tổng hợp kết quả test XSS - SQLi 98
Bảng 4.40 Bảng tổng hợp kết quả test Sensitive Data Exposure 98
Bảng 4.41 Bảng tổng hợp kết quả test Insecure Direct Object References 99
Trang 8Chương 1
1 TỔNG QUAN 1.1 Giới thiệu đề
Đề tài đồ án tốt nghiệp của em được dựa trên các kiến thức về lý thuyếtkiểm thử bảo mật phần mềm, từ đó ứng dụng triển khai trên hệ thống trườnghọc trực tuyến vnedu.vn thuộc Tập đoàn bưu chính viễn thông Việt Nam –VNPT
Kiểm thử phần mềm là một hoạt động giữ vai trò rất quan trọng để bảo đảmchất lượng phần mềm và là hoạt động mang tính sống còn trong các dự án sảnxuất hoặc gia công phần mềm Kiểm thử phần mềm chiếm 30 – 40% trongquy trình phát triển phần mềm[1]
Vì vậy, kiểm thử phần mềm đã trở thành qui trình bắt buộc trong các
dự án phát triển phần mềm trên thế giới Hiện nay, khâu kiểm thử phần mềmđang dần được chú trọng hơn trong các dự án phát triển phần mềm ở cả cáccông ty lớn hay vừa và nhỏ Đặc biệt đối ví các đơn vị uy tín trong lĩnh vựcphần mềm đánh giá rất cao khâu kiểm thử, nếu các sản phẩm đưa ra chưađược qua kiểm thử và có các văn bản xác nhận đi kèm thì đều không đượcchấp nhận hay đánh giá cao
Nếu phần mềm sau khi thi công được đưa ra sử dụng mà xảy ra các tìnhtrạng như: hoạt động không đúng yêu cầu thiết kế, xảy ra các lỗi đến từ phíangười dùng sẽ dẫn đến: mất thời gian, tiền bạc, ảnh hướng tới uy tín của đơn
vị thực hiện qua đó thấy được mỗi phần mềm cần phải kiểm thử trước khiđược đưa ra sử dụng, nhờ vậy sản phẩm sẽ được hoàn thiện nhất, tránh đượccác phát sinh do chủ quan từ phía lập trình viên, ngoài ra cũng giúp các đơn vịthi công phần mềm tạo dựng được uy tín và chất lượng dịch vụ
Câu hỏi đặt ra tiếp theo là: Kiểm thử phần mềm là gì?
Trang 9Theo IEEE (Insttitute of Electrical and Electronic Engineers): Kiểm
thử là tiến trình vận hành hệ thống hoặc thành phần dưới những điều kiện xácđịnh, quan sát hoặc ghi nhận xét kết quả và đưa ra đánh giá về hệ thống hoặcthành phần đó
Theo Glen Myers: “Kiểm thử là tiến trình thực thi chương trình vớimục đích tìm ra lỗi (The art of software testing)” Kiểm thử phần mềm là mộtcuộc kiểm tra được tiến hành để cung cấp cho các bên liên quan thông tin vềchất lượng của sản phẩm hoặc dịch vụ được kiểm thử[2]
Trên đây là các định nghĩa chung giúp phần nào nói rõ hơn về kiểm thử phầnmềm Trọng tâm đề tài đưa ra là hướng đến kiểm thử bảo mật website Vậybảo mật là gì?
Bảo mật là sự hạn chế khả năng lạm dụng tài nguyên và tài sản Bảomật trở nên đặc biệt phức tạp trong quản lý, vận hành những hệ thống thôngtin có sử dụng các công cụ tin học, nơi có thể xảy ra tràn lan nhanh chóngviệc lạm dụng tài nguyên và lạm dụng tài sản An toàn của một hệ thốngthông tin, website thực chất là sự đảm bảo an ninh ở mức độ chấp nhận được.Nếu bảo mật quá chặt chẽ nó sẽ trở nên khó sử dụng hoặc khó hoạt động mộtcách hiệu quả Nếu bảo mật quá đơn giản, hệ thống sẽ dễ bị tấn công và thâmnhập
Vì vậy, trước khi đưa sản phẩm phần mềm vào sử dụng, nhà phát triểncần đặc biệt chú trọng đến khâu bảo mật Đôi khi những nhà lập trình viênkhông thể kiểm soát hết được các lỗ hổng do sự chủ quan từ nhiều phía, điềunày dẫn đến một bộ phận chuyên môn am hiểu về bảo mật phần mềm và cóhiểu biết đủ để có thể rà soát các lỗ hổng bảo mật của phần mềm Bộ phận ấynằm trong kiểm thử phần mềm, cụ thể là kiểm thử bảo mật
Dựa trên sự quan trọng và cần thiết trên, em đã lựa chọn đề tài đồ án tốtnghiệp là: Ứng dụng lý thuyết kiểm thử bảo mật vào hệ thống trường học trực
Trang 10tuyến vnedu.vn Đây là một hệ thống giáo dục trực tuyến trọng điểm và quantrọng có sức ảnh hưởng lớn đối với rất nhiều trường học từ mầm non đếntrung học phổ thông trên cả nước, vì vậy vấn đề bảo mật được đặt lên hàngđầu, và đây cũng chính là lý do em lựa chọn kiểm thử bảo mật trên hệ thốngnày
1.2 Phạm vi đề tài
Phạm vi đề tài được thực hiện tập trung vào những nội dung sau:
Tìm hiểu về kiểm thử bảo mật website một cách chi tiết ở mức độ cho phép
Xây dựng quy trình kiểm thử bảo mật và áp dụng vào kiểm thử hệ thống VnEdu.vn
Trang 11An toàn thông tin theo một cách dễ hiểu thì đó thực chất là sự đảm bảo
an toàn thông tin ở mức có thể chấp nhận được Nếu bảo mật quá chặt chẽ nó
sẽ trở nên khó sử dụng hoặc khó hoạt động một cách hiệu quả Ngược lại nếubảo mật quá sơ sài thì hệ thống lại dễ bị tấn công và xâm nhập
Các yêu cầu cần bảo vệ hệ thống thông tin:
Tính bí mật (Confidental): Thông tin chỉ được xem bởi những người cóquyền Thông tin luôn cần được đảm bảo bí mật vì đó là sản phẩm của tổchức hoặc khách hàng của tổ chức Bí mật về thông tin được hiểu là điều bắtbuộc hoặc tuân theo điều khoản nào đó giữa khách hàng và tổ chức
Trang 12Tính toàn vẹn (Integrity): Thông tin cần phải đầy đủ, không được suydiễn hoặc thay đổi bất hợp pháp Nó cần phải biệt lập để tránh các tai nạn haycác thay đổi có mục đích xấu
Tính sẵn sàng (Availability): Thông tin phải luôn trong tình trạng sẵnsàng cung cấp cho những người được cấp quyền sử dụng bất cứ lúc nào
2.1.2 Mô hình bảo mật
Để xây dựng nên các tiêu chuẩn, chính sách bảo mật thì cần phải mô tảcác thực thể bị chi phối bởi các chính sách và chúng ta phải phát biểu các quytắc cấu thành nên chính sách đó Và việc này chính là công việc của mô hìnhbảo mật[2] Theo tìm hiểu về các hệ thống thông tin lơn, em đưa ra được một
số mô hình bảo mật được sử dụng tương đối phổ biến:
Mô hình ma trận truy cập (Acess matrix model): là mô hình điều khiểntruy nhập cơ bản Đây là mô hình được phát triển độc lập với các hệ điềuhành và các hệ quản trị cơ sở dữ liệu, tuy nhiên nó vẫn được sử dụng mộtcách khá phổ biến trong các hệ điều hành và hê quản trị cơ sở dữ liệu
Sơ đồ minh họa hoạt động của mô hình ma trận
Cơ chế hoạt động của mô hình ma trận truy nhập là dựa theo danh sáchđiều khiển truy cập Danh sách điểu khiển truy cập dùng để bảo vệ các đốitượng Lúc này sẽ tồn tại người dùng đặc biệt Admin, người dùng này có thểthêm, sửa, xóa quyền truy cập của tất cả mọi thành viên thuộc hệ thống (Ví dụ
Trang 13quyền truy cập: insert, update, delete,…) Mô hình ma trận được định nghĩamột cách cụ thể bằng thuật ngữ trạng thái và thay đổi trạng thái
Trạng thái của hệ thống xác định bằng 3 đối tượng: O, S, A Trong đó:
Ma trận truy cập thể hiện trạng thái an toàn ở thời điểm hiện tại của hệthống thông tin Thành phần của ma trận:
Hàng ngang: Si (các người dùng hiện tại)
Hàng dọc: Oj (các đối tượng hiện tại)
Ma trận A[Si, Oj] xác định quyền truy cập hiện tại
Các quyền truy cập được xác định bởi kiểu đối tượng Đối với loại đốitượng là file thì quyền truy cập sẽ bao gồm: đọc, ghi, thêm mới, xóa, copy,
Trang 14update,… Còn nếu đối tượng là các tín trình thực hiền thì quyền truy cập sẽlà: nhận, gửi, sao chép tín hiệu,… Ngoài ra, có một số quyền đặc biệt như:
Quyền điều khiển: nếu Si tạo ra một Sj thì Si khi đó có quyền gọi là điềukhiển, thay đổi và cũng có thể xóa bất cứ quyền nào của Sj
Quyền làm chủ: nếu S tạo mới một O thì S có quyền làm admin của O
và cũng có quyền thay đổi quyền truy cập O của tất cả các đối tượng khác
Quyền thay đổi quyền: S có thể chuyển quyền đối với một O, có thể đặtquyền của chính S cho O cho một S khác Lưu ý: quyền được chuyển phải caohơn quyền được trao
Trạng thái hiện thời của các quyền bảo vệ sẽ thay đổi khi có một quyềnmới được trao hoặc xóa một quyền nào đó ra khỏi ma trận Việc này đượcthực hiện thông qua bộ kiểm tra ma trận truy cập Bộ kiểm tra được thực hiệnbằng tập gồm 8 lệnh trong tập lệnh bảo vệ:
Transfer: chuyển quyền cho một người dùng khác
Grant: tạo quyền cho người dùng khác
Delete: xóa quyền
Read: đọc nội dung từ ma trận truy nhập
Create object: khởi tạo một đối tượng mới
Delete object: xóa một đối tượng đã tồn tại
Create subject: tạo một người dùng mới
Delete subject: xóa một người dùng đã tồn tại
Trang 15Đánh giá về ma trận truy cập thì có thể nhận thấy được 2 điểm:
Admin là thành viên có quyền cao nhất đối với toàn bộ việc bổ sunghay loại bỏ quyền truy cập của người dùng khác trong hệ thống Quyền truycập lên từng đối tượng khá cụ thể, ngoài ra cũng có thể thay đổi đối tượngcũng như người dùng một cách nhanh chóng và thuận tiện dề dàng Điều nàykhá phù hợp với các hệ thống có cơ chế quản lý theo hướng tập trung
Điểm thử 2 đó là đối với những hệ thống lớn, số lượng người dùngnhiều, danh sách điều khiển truy cập sẽ trở nên phức tạp, cồng kềnh, dẫn đếnviệc truy cập mất nhiều thời gian, làm giảm hiệu xuất làm việc của hệ thống
Mô hình HRU (Harison – Ullman):
Đối với mô hình này, quyền hạn của người dùng sẽ đc xác định một cách
Trang 16Có 6 hành động chính trong các quyền hạn của người dùng có được:
Nhập r vào trong/ từ Mso
Tạo / xóa người dùng S
Tạo / xóa đối tượng O
Đặc điểm bảo mật của mô hình HRU:
Định nghĩa về mô hình HRU:
Một ma trận truy cập M lộ ra quyền r nếu có một lệnh c:
M M’ thêm quyền r vào trong M mà không chứa r trước đó, có nghĩa
là ∃ s, o sao cho r ∉ M sovà r ∈ M ’ so
Một ma trận M được coi là an toàn đối với quyền r nếukhông co chuỗi lệnh nào có thể biến đổi M thành một trạng thái mà bị pháthiện r Vì vậy, sự kiểm chứng bảo mật có thể coi như kiểm chứng an toàn
Định lý của mô hình:
- Cho một ma trận truy cập M và quyền r, sự kiểm chứng độ an toàn của
M đối với quyền r là vấn đề không thể quyết định được
- Cho một hệ thống quyền hạn toán tử đơn, một ma trận r, sự kiểm chứng
độ an toàn của M đối r là có thể quyết định được Còn nếu lệnh do 2 hànhđộng được cho phép chúng tôi lấy không thể quyết định được
Trang 17- Vấn đề an toàn cho các hệ thống quyền hạn là có thể quyết định đượcnếu số người dùng giới hạn.
2.1.3 Áp dụng mô hình bảo mật vào hệ thống
Hiện tại, dựa theo các đặc điểm và mức độ phổ biến của mô hình bảo
mật, hệ thống vnEdu.vn đang triển khải bảo mật hệ thống dựa trên mô hình bảo mật ma trận truy nhập.
Đối với hệ thống, mô hình được áp dụng trực tiếp trên chức năng quản lýđăng nhập và phân quyền người dùng Mỗi một người dùng khi đăng ký sẽđược lọc và kiểm trả xem người dùng đó thuộc thành phần nào, dựa trên việclọc này hệ thống sẽ cấp quyền phù hợp và đầy đủ cho người dùng đó
Như vậy, mỗi tài khoản khi truy cập hệ thống đều được xác nhận sau đó
sẽ được thực hiện các nhiệm vụ, công việc của mình trên từng đối tượng chophép Sau khi thực hiện xong công việc, để tránh gây tiềm ẩn hiểm họa cho hệthống, Admin sẽ thực hiện các hành vi xóa quyền hoặc chuyển quyền chongười dùng khác thực hiện nếu cần thiết
S: tập hợp người dùng hữu hạn: danh sách người dùng hệ thống Ta cóS(admin,test,support…)
Trang 18Hình 2.1 Danh sách người dùng hệ thống
O: tập hợp các đối tượng hữu hạn: danh sách các nhóm quyền, trong
đó, một nhóm quyền có thể gồm một hoặc nhiều quyền Ta có O(Quản trị tàikhoản, Quản trị thống kê báo cáo,abc….)
Trang 19Hình 2.2 Danh sách các quyền của hệ thống
A: ma trận truy nhập: Ta có: A[admin,Quản trị thống kê báo cáo],
A[admin, abc]…
Trang 202.1.4 Nguy cơ và rủi ro
OWASP Top 10 là danh sách được OWASP tổng hợp và công bố theotừng năm, nhằm đưa ra các cảnh báo rủi ro an ninh của ứng dụng web mộtcách ngắn gọn và xúc tích, giúp các doanh nghiệp, cá nhân xây dựng và pháttriển, đánh giá các ứng dụng web có thể tự đưa ra biện pháp phù hợp với ứngdụng web mình xây dựng Tuy nhiên, công nghệ là luôn thay đổi, vì vậy danhsách này qua từng thời điểm cũng sẽ thay đổi và liên tục cập nhật Tính tớithời điểm năm 2013, 10 rủi ro cao nhất mà OWASP đưa ra là:
Trang 21Iinjection: rủi ro trong việc nhập dữ liệu, ví dụ như Sql Injection, OSInjection, LDAP Injection,… xảy ra khi các thông tin sai lệch được đưa vàocùng với các biến dữ liệu đầu vào như 1 phần của lệnh hay câu truy vấn Kẻtấn công có thể dựa vào sơ hở này để thực hiện các lệnh với mục đích lấy dữliệu một cách bất hợp pháp.
Broken Authentication and Session Management: Xác thực hay quản lýphiên thiếu chính xác Sơ hở này cho phép kẻ tấn công có thể lợi dụng để đạtđược mật khẩu, khóa hay phiên làm việc, từ đó mạo danh phiên làm việc vàdanh tính của người dùng thông thường
Cross-Site Scripting (XSS): Sai sót trong kiểm duyệt nội dung đầu vàocũng dẫn đến rủi ro này Các dữ liệu bất hợp pháp được gửi đến trình duyệtweb mà không cần sự xác nhận thông thường Nó cho phép kẻ tấn công thựcthi các kịch bản trên trình duyệt web của nạn nhân làm thay đổi nội dungtrang web, chuyển hướng nạn nhân hay đánh cắp phiên làm việc được lưutrên trình duyệt
Insecure Direct Object References: Điều này xảy ra thì nhà phát triểncho thấy có các tham chiếu trực tiếp đến một đối tượng nội bộ hay của ngườidùng khác, ví dụ như một tập tin, thư mục, hay cơ sở dữ liệu quan trọng, màkhông có sự kiểm tra hay bảo vệ an toàn cần thiết Điều này cho phép kẻ tấncông có thể truy cập các tài liệu này một cách trái phép
Security Misconfiguration: Một hệ thống bảo mât tốt là hệ thống triểnkhai cho khung ứng dụng, máy chủ ứng dụng, máy chủ cơ sở dữ liệu, nềntảng… các phương phảp bảo mật cần thiết, thống nhất và liên kết với nhau.Điều này nhằm tránh những nguy cơ bị khai thác vào ứng dụng, ví dụ để lộ ranhững thông tin quan trọng khi trao đổi các gói tin
Sensitive Data Exposure: Các dữ liệu nhạy cảm không được lưu trữ vàbảo vệ cẩn thận, dẫn đến khi bị kẻ tấn công khai thác gây ra những ảnh hưởng
Trang 22to lớn cho hệ thống máy chủ, doanh nghiệp, khách hàng Ví dụ như việc lưutrữ thẻ tín dụng mà không thông qua các khâu mã hóa, hay các gói tin TLS bị
bẻ khóa và nghe lén thông qua lỗ hổng CRIME
Missing Function Level Access Control: Thiếu các điều khoản trongviệc phân quyền quản trị các mức, dẫn đến việc kẻ tấn công có thể lợi dụng vàtruy ra các điểm yếu trên hệ thống, hay lợi dụng để leo thang đặc quyền
Cross-Site Request Forgery (CSRF): Lợi dụng sơ hở của nạn nhân, kẻtấn công có thể lừa nạn nhân thực hiện các hành động nguy hiểm mà nạn nhânkhông hề hay biết, ví dụ như chuyển tiền từ tài khoản nạn nhân sáng tài khoản
kẻ tấn công, thông qua các lỗ hổng XSS
Using Known Vulnerable Components: Sử dụng các thư viện, plugin,module… có chứa các lỗ hổng đã được công khai, dễ dàng dẫn đến việc bị kẻtấn công lợi dụng để tấn công vào hệ thống một cách nhanh chóng
Unvalidated Redirects and Forwards: Chuyển hướng không an toànngười dùng đến một đường dẫn bên ngoài có thể bị kẻ tấn công lợi dụng đểchuyển hướng nạn nhân đến một trang đích được chuẩn bị sẵn của kẻ tấncông
2.1.5 Các phương pháp tấn công bảo mật
2.1.5.1 Tấn công SqlInjection
Có những lỗi rất nghiêm trọng mà người lập trình với cơ sở dữliệu(chẳng hạn như ứng dụng web thương mại điện tử, những chương trình kếtoán, ứng dụng ngân hàng, hệ thông đào tạo trực tuyến,…) thường không để ýđến, tuy nhiên lỗi này rất nghiệm trọng, vì khi kẻ xấu tấn công lỗi này sẽ lấyđược cơ sở dữ liệu, thâm nhập vào hệ thống thông qua những dữ liệu đã cóđược Đối với trường hợp này có 2 lỗi thường xuyên gặp phải:
Trang 23 Thiếu kiểm soát dữ liệu vào, ra
Lỗi SqlInjection và các Store Procedure mà hệ thống My SQL server
có thể bị hacker tấn công và lợi dung
2.1.5.2 Tấn công Broken Authentication and
Session Management
Kẻ tấn công có thể là những kẻ tấn công nặc danh, hoặc người ngườidùng sở hữu tài khoản muốn ăn cắp thông tin từ tài khoản khác Cũng nêncân nhắc những đối tượng nội bộ muốn che dấu hành động Kẽ tấn công lợidụng những sơ hở trong các đoạn mã kiểm tra định danh (ví dụ: xem tàikhoản, password, ID phân làm việc) để giả mạo người dùng Người phát triểnthường xuyên tự xây dựng những mô hình chứng thực và quản lý các phiênlàm việc, nhưng xây dựng đúng cách thì không dễ Kết quả là những cái tùychọn đó thường xuyên có lỗi trong nhiều phần như đăng xuất, quản lýpassword, thời gian chờ, ghi nhớ người dùng, câu hỏi bí mật, cập nhật tàikhoản v.v Tìm những lỗi này có thể rất khó khăn bởi vì các cách triển khai
có thể độc lập, không giống nhau Lỗi như thế có thể cho phép một vài hoặctoàn bộ tài khoản bị tấn công Khi đã thành công, kẻ tấn công có thể làmnhiều thứ dưới quyền của nạn nhân Những tài khoản đặc quyền thường làmục tiêu chính Ta cần cân nhắc đến giá trị của những hệ thống và dữ liệu bịảnh hưởng Cũng nên cân nhắc đến tác động kinh tế của việc lỗi này bị trìnhbày trước công luận
2.1.5.3 Tấn công Cross Site Scripting
XSS (Cross Site Scripting) là kiểu tấn công cho phép hacker chèn những đoạn script độc hại (thông thương sử dụng javascript hoặc HTML) vào
website và sẽ được thực thi ở phía người dùng (trong trình duyệt) Đôi với XSS, người dùng sẽ trực tiếp bị tấn công, lúc này hacker có thể gửi những
Trang 24đoạn script độc hại tới một người dùng bất kỳ, khi đó trình duyệt người dùng
sẽ thực thi những đoạn script đó và trả lại thông tin của mình cho hacker thông qua email hoặc server do hacker định sẵn trước
2.1.5.4 Tấn công Dos
Phương pháp tấn công từ chối dịch vụ (Dos: Denial of Service) là mộttrong những cách nhằm ngăn cản các người dùng hợp pháp khả năng truynhập và sử dụng dịch vụ nào đó Dos có khả năng làm ngưng hoạt động củamáy tính, mạng nội bộ hay cả một hệ thống mạng lớn Nếu đặt ra so sánh Dosvới 2 phương pháp tấn công kể trên thì Dos có phần nhẹ nhàng hơn về mức
độ nguy hại Nó sẽ làm mất khả năng xử lý yêu cầu dịch vụ từ phía ngườidùng thông qua việc chiếm dụng tài nguyên mạng như: băng thông, bộ nhớ
Tất cả các hệ thống máy tính đều có một giới hạn nhất định nên nó chỉ cóthể đáp ứng một lượng nhất định yêu cầu dịch vụ từ phía người dùng Dựavào điểm này các máy chủ đều có thể trở thành đối tượng bị tấn công bằngDos Thực hiện phương pháp Dos có khá nhiều dạng khác nhau, phổ biếnnhất xin được nêu ra 3 phương pháp:
Tấn công Dos cổ điển: là phương pháp được thực hiện thông qua cáckiểu tấn công như: Smurf Attack, Tear Drop… Đối tượng thường được tấncông bằng phương pháp này nhất là các hệ thống có cơ chế bảo mật kém,băng thông yếu
Tấn công DDoS phân tán (Distributed Denial of Service): phương phápnày được cho mạnh hơn tương đối nhiều so với cách cổ điển Ở đây chủ yếugấy nghẽn hệ thống bằng cách chiếm dụng băng thông Để thực hiện phươngpháp này, cần tìm cách chiếm dụng, điều khiển nhiều thiết bị/mạng máy tính
Trang 25trung gian được gọi là bonet từ nhiều nơi để gửi một cách ồ ạt tới hệ thống sốlượng lớn các gói tin nhằm chiếm dụng tài nguyên và làm tràn ngập đườngtruyền hệ thống đó.
Tấn công DRDoS phản xạ nhiều vùng (Distributed Reflection Denial ofService): đây là phương pháp mời nhất và và có sức ảnh hưởng nhất nằmtrong các phương pháp của Dos Nguyên nhân là do, khi sử dụng tấn côngbằng DRDoS hệ thống hoàn toàn bị cô lập với người dùng, tất cả các dịch vụchạy trên nền mạng TCP/IP như: HTTP, FTP, Pop3… đều bị vô hiệu hóa Ởphương pháp này, ta cần SYN với một máy tính đơn, vừa có sự kết hợp giữanhiều máy tính lại có thể chiếm dụng băng thông Sau đó giả mạo địa chỉ củamáy chủ bị tấn công gửi yêu cầu SYN đến các hệ thống lớn nhằm mục đíchnhận lại các gói tin SYN/ACK và điều này sẽ dẫn đến quá tải, băng thông bịchiếm dụng bới các máy chủ lớn, khi này việc tấn công thành công, máy chủkhông thể hoạt động bình thường được nữa
2.1.5.5 Tấn công Sensitive Data Exposure
Lỗi Sensitive Data Exposure có thể được thực hiện bởi chính nhữngngười đang sử dụng hệ thống khi họ muốn truy cập vào dữ liệu mà họ khôngđược ủy quyền hay không được pháp khai thác và nhiều trường hợp thì admincũng không nằm ngoại lệ
Hướng tấn công thông thường nhất là kẻ tấn công sẽ tìm các khóa, lấybản sao dữ liệu chưa được mã hóa hoặc sử dụng các kênh tự động giải mã đểtruy cập khai thác dữ liệu một cách bất hợp pháp
Lỗi này sinh ra chủ yếu do các dữ liệu mang tính nhạy cảm không đượchiện mã hóa hay lưu trữ dưới dạng băm Khi mã hóa được sử dụng, vấn đề
Trang 26lưu trữ và sinh khóa không an toàn, khóa không được thường xuyên thay đổihay cách sử dụng thuật toán yếu thường xảy ra Sử dụng mật khẩu dễ đoánhoặc thuật toán băm mã mà không thêm ký tự ngẫu nhiên cũng là một lỗi phổbiến Kẻ tấn công từ bên ngoài thường gặp khó khăn trong việc phát hiện lỗi
do quyền truy cập hạn chế Chúng thường phải khai thác các khía cạnh kháctrước khi đạt được quyền truy cập cần thiết
Lỗi này thường gây ảnh hưởng lên tất cả các dữ liệu cần được mã hóa.Thông thường thông tin này bao gồm các dữ liệu nhạy cảm như hồ sơ y tế,thông tin, dữ liệu cá nhân, thẻ tín dụng, v.v…
Đối với khía cạnh kinh tế, các dữ liệu bị mất và mức độ ảnh hưởng củanhững dữ liệu này tới danh tiếng của nhà phát triển Họ phải chịu trách nhiệmpháp lý nếu những dữ liệu này bị lộ ra
Để xác định xem website của mình có đang mắc lỗi này hay không, cáclập trình viên cần làm rõ các vấn đề: Mức độ nhạy cảm của các thông tin cần
mã hóa đang ở mức độ nào, từ đó sẽ cần đảm bảo các yếu tố sau:
Những thông tin được lưu trữ lâu dài phải được mã hóa, đặc biệt trongbản sao lưu các dữ liệu này
Chỉ những người được ủy quyền có thể truy cập các bản sao được giải mãcủa dữ liệu
Sử dụng thuật toán mã hóa mạnh và được xây dựng theo tiêu chuẩn
Một khóa mạnh được tạo và được bảo vệ để tránh những truy cập tráiphép Luôn dự trù các trường hợp dự phòng cho các khóa định danh khixảy ra hiện tượng khóa không đủ mạnh và kẻ tấn công vẫn có thể bẻ khóa
Trang 272.1.5.6 Tấn công Insecure Direct Object
References
Sơ lược về lỗi bảo mật đối tượng tham chiếu an toàn:
Các đối tượng nguy hiểm Hãy xem xét các loại người dùng khác nhautrong hệ thống của bạn Liệu có người dùng nào chỉ có một phần quyềntruy cập đến các loại dữ liệu trong hệ thống?
Khả năng tấn công Kẻ tấn công, là một người dùng trong hệ thống, cóthể thay đổi một tham số ứng với một đối tượng hệ thống nào đó mà hắnkhông có quyền truy cập đến Liệu việc truy cập có thành công haykhông?
Sự phổ biến Ứng dụng thường xuyên sử dụng trực tiếp tên hoặc khóacủa một đối tượng khi xây dựng các trang web Các ứng dụng thườngkhông kiểm tra nếu người dùng này thật sự có quyền truy cập hay không.Đây chính là mấu chốt dẫn đến lỗi các đối tượng tham chiếu Ngườikiểm tra có thể dễ dàng thay đổi các giá trị tham số để phát hiện ra lỗhổng này, phân tích mã nguồn có thể giúp ta nhanh chóng phát hiệnquyền truy cập có được xem xét cẩn thận hay không
Sự nguy hiểm nếu có thể khai thác Lỗi như thế có thể giúp kẻ tấn côngnắm quyền toàn bộ những dữ liệu có thể được liên kết bởi các tham biến.Trừ khi không gian truy cập rời rạc, kẻ tấn công có thể truy cập tất cảcác loại dữ liệu như thế
Cách tốt nhất để biết xem một ứng dụng có bị lỗi này hay không là kiểm tranếu tất cả các đối tượng tham chiếu có được bảo vệ hợp lí không Để đạtđược điều này, xem xét:
Đối với các liên kết trực tiếp tới các dữ liệu cần bảo vệ, ứng dụng cầnphải kiểm tra xem người dùng đang yêu cầu có được cho phép quyềntruy cập đến dữ liệu đó hay không
Trang 28 Nếu liên kết là một tham biến gián tiếp, việc chuyển biến đến dữ liệutrực tiếp phải được giới hạn bởi những giá trị cho phép đối với ngườidùng hiện tại
Kiểm tra mã nguồn của ứng dụng có thể nhanh chóng phát hiện nếu mộttrong 2 phương pháp trên không được thiết kế cẩn thận Chạy kiểm tracũng có thể hiệu quả trong việc phát hiện những đối tượng không antoàn Những công cụ tự động thường không thể tìm ra lỗi này vì rất khó
để xác định cái nào cần bảo vệ và như thế nào là an toàn / thiếu an toàn.Việc ngăn chặn lỗi đối tượng tham chiếu thiếu an toàn yêu cầu xác định mộtcách bảo vệ các đối tượng mà người dùng có thể truy cập (số/tên của đốitượng)
Sử dụng mỗi liên kết đối tượng cho từng người dùng hoặc phiên làmviệc Việc này có thể ngăn chặn kẻ tấn công nhắm đến các dữ liệu khôngđược bảo vệ Ví dụ, thay vì sử dụng khóa cơ sở dữ liệu, một danh sách 6
dữ liệu được cho phép đối với người dùng hiện tại có thể được đánh số
từ 1 đến 6 để xác định lựa chọn nào người dùng muốn truy cập
Sử dụng mỗi liên kết đối tượng cho từng người dùng hoặc phiên làmviệc Việc này có thể ngăn chặn kẻ tấn công nhắm đến các dữ liệu khôngđược bảo vệ Ví dụ, thay vì sử dụng khóa cơ sở dữ liệu, một danh sách 6
dữ liệu được cho phép đối với người dùng hiện tại có thể được đánh số
từ 1 đến 6 để xác định lựa chọn nào người dùng muốn truy cập
2.1.5.7 Tấn công Unvalidated Redirects and
Forwards
Hiện nay có rất nhiều định nghĩa về Unvalidated Redirects andForwards:
Trang 29 Theo OWASP: Là các liên kết từ một trang an toàn đến một trang không
an toàn
Google: Chuyển hướng không tin cậy đơn giản là spam hay malware
Microsoft: Là bất kỳ ứng dụng web nào chuyển hướng đến một URL độchại bên ngoài
Tóm lại: Unvalidated Redirects and Forwards là chuyển hướng và
chuyển hướng không an toàn là liên kết từ trang web tin cậy sẽ đưa ngườidùng đến một trang web không tin cậy để lừa đảo hoặc thu thập thông tin từngười dùng
Tác nhân đe dọa: Bất kỳ ai cũng có thể giả mạo một link để lừa ngườidùng truy cập vào
Phương pháp tấn công: Attacker sử dụng liên kết để chuyển hướng truycập và lừa để nạn nhân click vào đó Nạn nhân có nhiều khả năng nhấp vào
nó, vì các liên kết là một trang web hợp lệ
Điểm yếu bảo mật: Ứng dụng thường xuyên chuyển hướng người dùngđến các trang khác Đôi khi các trang đến được quy định trong một tham sốthiếu chứng thực, cho phép kẻ tấn công để lựa chọn các trang đích
Kỹ thuật tấn công: Kẻ tấn công tạo ra một liên kết giả mạo link đến mộttrang được chuẩn bị trước để đánh cắp thông tin người dùng hoặc cài cácphần mềm độc hại
Trang 30Để tránh gặp lỗi này, thì người lập trình có thể sử dụng các cách sau:Tránh sử dụng chuyển hướng và chuyển tiếp, di chuột lên liên kết để kiểm trađích đến, sử dụng các phần mềm security internet, thường xuyên kiểm tra vàcập nhật trình duyệt.
2.2 Tổng quan lý thuyết kiểm thử 2.2.1 Sơ lược về kiểm thử
Kiểm thử phần mềm là một hoạt động giữ vai trò rất quan trọng để bảođảm chất lượng phần mềm và là hoạt động mang tính sống còn trong các dự
án sản xuất hoặc gia công phần mềm Kiểm thử phần mềm chiếm 30 – 40%trong quy trình phát triển phần mềm[1]
Vì vậy, kiểm thử phần mềm đã trở thành qui trình bắt buộc trong các dự
án phát triển phần mềm trên thế giới Hiện nay, khâu kiểm thử phần mềmđang dần được chú trọng hơn trong các dự án phát triển phần mềm ở cả cáccông ty lớn hay vừa và nhỏ Đặc biệt đối ví các đơn vị uy tín trong lĩnh vựcphần mềm đánh giá rất cao khâu kiểm thử, nếu các sản phẩm đưa ra chưađược qua kiểm thử và có các văn bản xác nhận đi kèm thì đều không đượcchấp nhận hay đánh giá cao
Nếu phần mềm sau khi thi công được đưa ra sử dụng mà xảy ra các tìnhtrạng như: hoạt động không đúng yêu cầu thiết kế, xảy ra các lỗi đến từ phíangười dùng sẽ dẫn đến: mất thời gian, tiền bạc, ảnh hướng tới uy tín của đơn
vị thực hiện qua đó thấy được mỗi phần mềm cần phải kiểm thử trước khiđược đưa ra sử dụng, nhờ vậy sản phẩm sẽ được hoàn thiện nhất, tránh đượccác phát sinh do chủ quan từ phía lập trình viên, ngoài ra cũng giúp các đơn vịthi công phần mềm tạo dựng được uy tín và chất lượng dịch vụ
Trang 31Câu hỏi đặt ra tiếp theo là: Kiểm thử phần mềm là gì?
Theo IEEE (Insttitute of Electrical and Electronic Engineers): Kiểm thử
là tiến trình vận hành hệ thống hoặc thành phần dưới những điều kiện xácđịnh, quan sát hoặc ghi nhận xét kết quả và đưa ra đánh giá về hệ thống hoặcthành phần đó
Theo Glen Myers: “Kiểm thử là tiến trình thực thi chương trình vớimục đích tìm ra lỗi (The art of software testing)”
Kiểm thử phần mềm là một cuộc kiểm tra được tiến hành để cung cấpcho các bên liên quan thông tin về chất lượng của sản phẩm hoặc dịch vụđược kiểm thử[2]
2.2.2 Mục đích của kiểm thử bảo mật
Với tư cách là Tester, tập trung kiểm thử bảo mật của Web và Ứng dụngWeb ở mức độ ứng dụng, nói cách dễ hiểu thì là ta đang thực hiện một côngcuộc tìm kiếm các lỗ hổng và rò rỉ thông tin gây nên chủ yếu đến từ phía lậptrình và do cấu hình sai các trình chủ Web, các trình chủ ứng dụng khác nhau
Kiểm thử bảo mật liên quan tới trách nhiệm từ nhiều phía Cụ thể thườngnhắc tới đó là:
Nhà định nghĩa chính sách (policymaker), định nghĩa các yêu cầu bảomật nhằm tăng độ tin cậy của người sử dụng và nhà sản xuất về bảo mật hệthống
Trang 32Quản trị mạng, thiết kế và cài đặt các biện pháp bảo mật nhằm cungcấp bảo mật ở mức độ hoạt động
Lập trình viên, người chịu trách nhiệm kiểm thử hệ thống nhằm pháthiện các lỗi chức năng, tương tác cấu hình và khả năng thích ứng khi có liênquan đến vấn đề bảo mật (công việc này thường chỉ đạt ở mức ứng dụng và
có thể ở mức hoạt động), phát hiện các vấn đề phát sinh đến từ phía lỗi thiết
kế bảo mật
Các chuyên gia, nhà tư vấn bảo mật, giúp kiểm thử và duy trì cácchương trình bảo mật cũng như xử lý các lỗ hổng bảo mật Những người nàythường đóng vai trò là kẻ tấn công Họ thường là những người có nhiều kinhnghiệm và chịu trách nhiệm điều khiển các kiểm thử xâm nhập trước khi triểnkhai một hệ thống Đối với một số các đơn vị, vị trí này sẽ được thay thế bởikiểm thử viên và lập trình viên khi không có đủ nguồn lực
2.2.3 Các loại hình kiểm thử bảo mật
2.2.3.1 Kiểm thử yêu cầu thiết kế
Mỗi hệ thống khi sinh ra đều được xây dựng dựa trên một tập hợp cácyêu cầu Đôi khi những yêu cầu đưa ra chưa được trình bày một cách tườngmình hoàn toàn, vì vậy nên cần thực hiện kiểm thử yêu cầu thiết kế để xácđịnh một cách chính xác nhất rằng hệ thống đã đạt đúng yêu cầu đưa ra haychưa
2.2.3.2 Kiểm thử mã nguồn
Phương pháp kiểm tra mức độ bảo mật của hệ thống thông qua mã nguồnxây dựng nên hệ thống đó Công việc này chủ yếu thực hiện kiểm tra về sự antoàn mã thuật toán sử dụng, xác định được nguy cơ rò rỉ thông tin khi chưa
Trang 33bắt hết các lỗi có thể xảy ra, nguy cơ lạm dụng và chiếm đoạt quyền kiểm soátthông qua mã nguồn
2.2.3.3 Kiểm thử thiết lập trình duyệt
Các thiết lập của một số trình duyệt có thể được cài đặt trong các trìnhduyệt cho phép giới hạn truy cập đến các nội dung internet có thể gây hại.Người sử dụng có thể chỉnh sửa các thiết lập này Ngoài ra, có một sự thayđổi lớn từ phía người dùng về khả năng làm chủ các thiết lập này Nhữngngười sử dụng Web ngày càng được đào tạo nhiều hơn cách sử dụng các thiếtlập để bảo vệ chính họ Đóng vai trò phát triển Web hay ứng dụng Web,chúng ta không có quyền bắt người dùng chấp nhận các thiết lập mặc định
Do đó, cần phải kiểm thử thiết lập trình duyệt
2.2.3.4 Kiểm thử tường lửa
Đối với tường lửa, người kiểm thử không có nghĩa vụ kiểm tra hiệu quảcũng như các cấu hình của chúng Ở đây, kiểm thử tường lửa được đưa ra đểthực hiện các công việc nhằm nhận biết các hiệu ứng về chức năng được tạo
ra bởi sự chuyển đổi qua loại của dữ liệu qua các mạng khác nhau
Trang 34Chương 3
3 CÔNG NGHỆ VÀ PHẦN MỀM SỬ DỤNG
3.1 Các công cụ Test 3.1.1 Acunetix Web Vulnerability Scanner
Trong bảo mật, ngoài cách thủ công thì các tool được sử dụng khá phổbiến Công cụ được các chuyên gia bảo mật và Hacker hay dùng nhất làAcunetix Web Vulnerability Scanner
Acunetix WVS là một chương trình Pentest (đánh giá độ an toàn bằngcách tấn công vào hệ thống) các ứng dụng web bằng cách sử dụng bộ dữ liệu
đồ sộ từ đó tìm các lỗ hổng bảo mật như: Sql Injection, XSS, chính sách xácthực,… và một vài lỗ hổng bảo mật khác của Webserver: Apache, IIS,…
Database của Acunetix WVS được update thường xuyên, nhiều thuậttoán scan thông minh phát hiện nhanh các lỗi và có chương trình cảnh báo độ
an toàn ở các mức khác nhau (low, medium, high) đồng thời đề ra các giảipháp cho admin có thể khắc phục các sự cố
Một số lỗ hổng được phát hiện bởi Acunetix WVS được công bố gồm:
Trang 35Cross Frame Scripting (XFS)
MultiRequest Parameter Manipulation
Blind SQL/XPath Injection
File Checks
Checks Backup Files hay Directories
Cross Site Scripting trong URL
Checks Script Errors
Directory Checks
Discover Sensitive Files/Directories
Cross Site Scripting trong Path and PHPSESSID Session Fixation
Web Applications
Text Search
Directory Listings
Source Code Disclosure
Microsoft Office Possible Sensitive Information
Local Path Disclosure
Error Messages
GHDB Google Hacking Database
Over 1200 GHDB Search Entries in the Database
Trang 36Hình 3.3 Giao diện công cụ Acunetix Web Vulnerability Scanner
3.1.2 SQL Power Injector
SQL Power Injector là một ứng dụng được tạo ra trong Net 1.1 giúp cáckiểm tra xâm nhập để tìm kiếm và khai thác tiêm SQL trên một trang web
Hỗ trợ trên Windows, Unix và Linux hệ điều hành
SQL Server, Oracle, MySQL, Sybase / Adaptive Server và DB2compliant
hỗ trợ SSL
Tải tự động các thông số từ một hình thức hoặc một IFrame trên mộttrang web (GET hoặc POST)
Phát hiện và duyệt bộ khung
Lựa chọn mà tự động phát hiện ngôn ngữ của trang web
Phát hiện và thêm các tập tin cookie được sử dụng trong quá trình tảitrang (Set-Cookie phát hiện)
Trang 37Tìm tự động gửi trang (s) với phương pháp của nó (GET hoặc POST)được hiển thị trong một màu sắc khác nhau
Có thể tạo / chỉnh sửa / xóa nạp chuỗi và cookie thông số trực tiếptrong datagrids
SQL injection đơn
SQL injection mù
So sánh các phản ứng đúng và sai của trang hoặc kết quả trong cookie
Thời gian trễ
Phản ứng của SQL injection trong một trình duyệt tùy chỉnh
Có thể xem mã nguồn HTML của trang trở lại trong màu sắc theo ngữcảnh HTML và tìm kiếm trong nó
các thông số điều chỉnh và cookie tiêm Fine
Có thể tham số kích thước của chiều dài và số lượng của các kết quảmong đợi để tối ưu hóa thời gian thực hiện bởi các ứng dụng để thực thi SQLinjection
Tạo / chỉnh sửa các ký tự ASCII định sẵn để tối ưu hóa số SQLinjection mù của các yêu cầu / tốc độ
Đa luồng (cấu hình lên đến 50)
Lựa chọn thay thế không gian bằng cách nhận xét trống / ** / chốngIDS hoặc phát hiện bộ lọc
Tự động mã hóa ký tự đặc biệt trước khi gửi chúng
Tự động phát hiện lỗi SQL được xác định trước trong trang đáp ứng
Tự động phát hiện một từ được xác định trước hoặc câu trong trang đáp ứng
kết quả thời gian thực
Lưu và tải các phiên trong một tập tin XML
Tính năng tự động phát hiện sự khác biệt giữa các trang phản ứng củamột câu trả lời tích cực với một trong những tiêu cực
Trang 38Có thể tạo ra một danh sách phạm vi đó sẽ thay thế các biến (<< >> @)bên trong một chuỗi SQL injection mù và tự động đóng chúng cho bạn
Tự động phát lại một loạt biến với một danh sách định sẵn từ một tậptin văn bản
Firefox plugin mà sẽ khởi động SQL Power Injector với tất cả cácthông tin của trang web hiện tại với bối cảnh phiên của nó (thông số vàcookies)
Hai công cụ tích hợp: Hex và Char encoder và MS SQL
Trang 393.1.3 LOIC
Low Orbit Ion Cannon (LOIC) là phần mềm mã nguồn mở hỗ trợ kiểmtra và tấn công thử nghiệm phương thức từ chối dịch vụ LOIC được viếtbằng ngôn ngữ C# bởi công ty công nghệ có tên là Praetox Technologies Tuynhiên sau đó được phát tán rộng rãi và hiện tại nó được biết đến như một phầnmềm mã nguồn mở
LOIC thực hiện một cuộc tấn công DoS theo kiểu flooding với gói tinTCP và UDP làm gián đoạn dịch vụ của máy chủ mục tiêu
Trang 40Hình 3.5 Giao diện công cụ LOIC