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

Phương pháp đảm bảo an toàn theo yêu cầu trong phát triển web 1

88 179 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 88
Dung lượng 4,38 MB

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

Nội dung

Đây là đồ án nói về PHƯƠNG PHÁP ĐẢM BẢO AN TOÀN THEO KỸ NGHỆ HƯỚNG YÊU CẦU TRONG PHÁT TRIỂN WEB, đồ án nêu đầy đủ và chi tiết. Nếu có nhu cầu mua source code liên hệ l19htm4ngmail.com để mua trọn bộ đồ án nhé.

Trang 1

BAN CƠ YẾU CHÍNH PHỦ

HỌC VIỆN KỸ THUẬT MẬT MÃ

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

ĐỒ ÁN TỐT NGHIỆP

PHƯƠNG PHÁP ĐẢM BẢO AN TOÀN THEO KỸ NGHỆ

HƯỚNG YÊU CẦU TRONG PHÁT TRIỂN WEB

Ngành: An toàn thông tin

Trang 2

PHƯƠNG PHÁP ĐẢM BẢO AN TOÀN THEO KỸ NGHỆ

HƯỚNG YÊU CẦU TRONG PHÁT TRIỂN WEB

Trang 3

Ngành: An toàn thông tin

Trang 4

MỤC LỤC

Mục lục 3

Danh mục từ viết tắt 6

Danh mục các hình vẽ 7

Danh mục các bảng 8

Lời cảm ơn 9

Lời nói đầu 10

Chương 1: Tổng quan về an toàn ứng dụng web 12

1.1 Khái niệm và mô hình hoạt động ứng dụng web 12

1.1.1 Khái niệm 12

1.1.2 Mô hình hoạt động 12

1.2 Nguy cơ mất an toàn ứng dụng web 13

1.2.1 Rò rỉ dữ liệu 14

1.2.2 Bùng nổ mã độc 15

1.2.3 Sử dụng trí tuệ nhân tạo 15

1.2.4 Phát triển và áp dụng 5G sẽ bắt đầu mở rộng 16

1.2.5 Sử dụng các thiết bị IoT để tấn công DDoS 16

1.2.6 Tấn công nhắm vào việc truyền dữ liệu 16

1.3 Một số lỗ hổng bảo mật web phổ biến 17

1.3.1 Tấn công XSS 17

1.3.2 Tấn công CSRF 18

1.3.3 Tấn công SQL Injection 19

1.3.4 Tấn công từ chối dịch vụ 20

1.3.5 Một số tấn công khác 20

1.4 Những yếu tố đảm bảo an toàn ứng dụng web 21

1.5 Đánh giá an toàn ứng dụng web 22

1.6 Tổng kết chương 23

Chương 2: Đảm bảo an toàn trong phát triển web theo kỹ nghệ hướng yêu cầu 24

2.1 Quy trình phát triển web theo kỹ nghệ hướng yêu cầu 24

2.1.1 Thu thập thông tin và xác định yêu cầu 25

2.1.2 Lập kế hoạch 25

2.1.3 Phân tích, thiết kế 25

2.1.4 Lập trình 26

2.1.5 Kiểm thử 27

2.1.6 Triển khai và bảo trì 27

2.2 An toàn trong giai đoạn xác định, phân tích yêu cầu 27

2.2.1 Yêu cầu bảo mật cốt lõi 28

2.2.2 Yêu cầu bảo mật chung 30

Trang 5

2.2.3 Yêu cầu khi hoạt động 31

2.2.4 Kết luận 31

2.3 An toàn trong giai đoạn thiết kế 32

2.3.1 Giai đoạn thiết kế an toàn 32

2.3.2 Lợi ích đem lại 32

2.3.3 Thực tiễn việc thiết kế an toàn 33

2.4 An toàn trong giai đoạn lập trình 34

2.4.1 Giảm thiêu rủi ro trong quá trình code 34

2.4.2 Bảo vệ mã nguồn 37

2.4.3 Viết unit test 37

2.5 An toàn trong giai đoạn kiểm thử 39

2.5.1 Mục tiêu của kiểm thử bảo mật 39

2.6 An toàn trong triển khai, bảo trì 40

2.6.1 Cảnh giác với các thông báo lỗi 40

2.6.2 Cài đặt tường lửa ứng dụng web 41

2.6.3 Bảo trì ứng dụng web 42

2.7 Tổng kết chương 42

Chương 3: Thực nghiệm xây dựng và đảm bảo an toàn Ứng dụng web theo kỹ nghệ hướng yêu cầu 44

3.1 Mô tả bài toán 44

3.1.2 Nhược điểm của hệ thống quản lý thư viện truyền thống 44

3.1.3 Lợi ích của quản lý thư viện bằng website 44

3.1.4 Các chức năng của chương trình 45

3.1.5 Yêu cầu về an toàn thông tin 45

3.2 Phân tích yêu cầu 46

3.2.1 Nền tảng sử dụng 46

3.2.2 Xác thực người dùng 47

3.2.3 Mã hoá, xác thực thông tin giữa Client và Server 48

3.2.4 Chống tấn công SQL Injection 48

3.2.5 Chống tấn công CSRF 49

3.2.6 Chống tấn công XSS 50

3.2.7 Chống spam request 50

3.3 Thiết kế hệ thống 50

3.3.1 Thiết kế cơ sở dữ liệu 50

3.3.2 Thiết kế chức năng 54

3.4 Lập trình xây dựng và đảm bảo an toàn cho hệ thống 59

3.4.1 Sử dụng Repository Design Pattern 59

3.4.2 Kiểm soát dữ liệu 60

3.4.3 Quản lý tài khoản người dùng 61

3.4.4 Xây dựng hệ thống an toàn 62

3.5 Kiểm thử và đánh giá hệ thống 70

3.5.1 Kiểm thử lỗi XSS 70

Trang 6

3.5.2 Kiểm thử lỗi SQL Injection 70

3.5.2 Kiểm thử lỗi CSRF 70

3.6 Bảo trì 71

3.6.1 Ghi log ứng dụng 71

3.6.2 Kiểm tra bảo mật thường xuyên 71

3.6.3 Sao lưu dữ liệu thường xuyên 72

3.7 Tổng kết chương 72

Kết luận 73

Tài liệu tham khảo 74

Phụ lục 76

Trang 7

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

CSRF Cross-site Request Forgery Lỗ hổng bảo mật

MVC Model – view – controller

ORM Object Relational Mapping Kỹ thuật chuyển đổi dữ liệu

giữa các hệ thống khácOWASP Open Web Application Security

Project

Một tổ chức phi lợi nhuận

PDO PHP Data Objects Lớp truy xuất cơ sở dữ liệuSDLC Software Development Life

Cycle

Quy trình phát triển phầnmềm

VPN Virtual Private Network Mạng dành riêng

WDLC Web development life cycle Vòng đời phát triển web

Trang 8

DANH MỤC CÁC HÌNH VẼ

Hình 1.1 Quá trình hoạt động ứng dụng web 12

Hình 2.1 Quy trình phát triển ứng dụng web 24

Hình 3.1 Sơ đồ phân cấp chức năng 45

Hình 3.2 Cơ chế xác thực thông qua middleware 47

Hình 3.3 Lược đồ cơ sở dữ liệu 51

Hình 3.4 Sơ đồ tuần tự chức năng đăng nhập 54

Hình 3.5 Sơ đồ tuần tự chức năng cập nhật thông tin 54

Hình 3.6 Sơ đồ tuần tự chức năng khôi phục mật khẩu 55

Hình 3.7 Sơ đồ tuần tự chức năng đổi mật khẩu 55

Hình 3.8 Sơ đồ tuần tự chức năng mượn sách 56

Hình 3.9 Sơ đồ tuần tự chức năng tìm kiếm sách 56

Hình 3.10 Sơ đồ tuần tự chức năng xem chi tiết sách 56

Hình 3.11 Sơ đồ tuần tự chức năng xem sách đã mượn 57

Hình 3.12 Sơ đồ tuần tự chức năng thêm mới sách 57

Hình 3.13 Sơ đồ tuần tự chức năng thêm mới người dùng 58

Hình 3.14 Sơ đồ tuần tự chức năng quản lý người dùng 58

Hình 3.15 Validate đổi mật khẩu 61

Hình 3.16 Thông báo lỗi validate 61

Hình 3.17 Danh sách route user 62

Hình 3.18 Danh sách route admin 62

Hình 3.19 Sử dụng throttle giới hạn truy cập 63

Hình 3.20 Giao thức HTTP 64

Hình 3.21 Giao thức HTTP bị tấn công 65

Hình 3.22 Hoạt động của giao thức SSL 66

Hình 3.23 Minh hoạ chống SQL Injection 69

Hình 3.24 Minh hoạ XSS 70

Hình 3.25 Minh hoạ SQL Injection 70

Hình 3.26 Minh hoạ lỗi CSRF 70

Hình 3.27 Xem chi tiết log 71

Trang 9

DANH MỤC CÁC BẢNG

Bảng 4.1 Độc giả (users) 51

Bảng 4.2 Quản trị viên (admins) 52

Bảng 4.3 Sách (books) 52

Bảng 4.4 Danh mục (categories) 52

Bảng 4.5 Phiếu mượn (tickets) 53

Bảng 4.6 Chi tiết phiếu mượn (ticket_details) 53

Bảng 4.7 Lấy lại mật khẩu (password_resets) 53

Trang 10

LỜI CẢM ƠN

Trong quá trình nghiên cứu và làm đồ án Em xin gửi lời cảm ơn chân thành và

sự tri ân sâu sắc đối với các thầy cô của trường Học viện Kỹ thuật Mật mã và đặc biệt

là thầy giáo hướng dẫn TS đã nhiệt tình hướng dẫn chỉ bảo em trong quá trình thực

hiện đề tài

Những góp ý, định hướng của các thầy, cô và các bạn đã giúp cho em nâng caođược trình độ hiểu biết chuyên môn và cải thiện những kiến thức mà em còn thiếu

Để từ đó em có thể vận dụng hoàn thành đồ án tốt nghiệp này

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

Hà Nội, ngày tháng 06 năm 2019

Sinh viên thực hiện

Trang 11

LỜI NÓI ĐẦU

Với sự phát triển mạnh của ngành công nghệ, nhu cầu sử dụng máy tính và truycập internet tăng lên từng ngày Trong thời đại ngày nay internet đã trở nên rất quenthuộc và là một công cụ hữu ích để truyền tải và quảng bá thông tin, thực hiện cáchoạt động kinh doanh, mua bán và quản lý Tất cả đã kéo theo sự phát triển khôngngừng của các ứng dụng web Và dần khái niệm ứng dụng web đã trở nên phổ biến.Kéo theo đó là các cuộc tấn công ứng dụng web cũng phát triển hết sức phức tạp vàngày càng tăng lên

Điều này đã đặt ra vấn để cấp thiết cần làm như thế nào để bảo đảm an toànthông tin cho ứng dụng web, thông tin của người sử dụng Các khái niệm chuyênmôn và tấn công về ứng dụng web cũng dần trở nên phổ biến hơn trong tài liệuchuyên ngành Các công cụ hỗ trợ người lập trình web, người quản trị mạng cũngxuất hiện nhiều giúp tìm kiếm lỗ hổng ứng dụng web nhưng nó không theo kịp sựphát triển nhanh đến mức chóng mặt theo xu hướng nhanh hơn đẹp hơn của các ứngdụng web, và nó không thể ngăn chặn hoàn toàn Các cuộc tấn công ngày càng đadạng và được khai thác triệt để những lỗi của ứng dụng web, của người quản trị, hayngười lập trình

Thống kê cho thấy 75% cuộc tấn công internet là tấn công ứng dụng web[ CITATION Acu \l 1066 ], nó gây ra những thiệt hại vô cùng to lớn, vì vậy việc tìmhiểu về tấn công ứng dụng web là rất cần thiết nhằm có cách phòng chống và bảo mậtứng dụng web hiệu quả trở thành một yêu cầu cấp thiết

Do đây là một xu thế tất yếu của thời đại, nên việc tìm hiểu và nghiên cứu vềứng dụng web sẽ giúp ích rất nhiều cho các nhà lập trình web mới, hay các quản trịviên mới còn ít kinh nghiệm trong việc quản trị hệ thống mạng của mình, phòngtránh, khắc phục những lỗ hổng đó

Đồ án này nhằm mục đích giới thiệu rõ hơn về ứng dụng web, xây dựng quytrình phát triển web theo kỹ nghệ hướng yêu cầu và áp dụng vào xây dựng mộtwebsite an toàn Để thực hiện các nội dung trên, luận văn được tổ chức thành cácchương sau:

CHƯƠNG 1: TỔNG QUAN VỀ AN TOÀN ỨNG DỤNG WEB

Nội dung chương này khái quát về khái niệm ứng dụng web, tìm hiểu nguy cơgây mất an toàn và tìm hiểu một số lỗ hổng ứng dụng web phổ biến và cách khắc

Trang 12

phục, phòng tránh Từ đó xác định ra những yếu tố đảm bảo một ứng dụng web antoàn và đánh giá nó Từ những kiến thức cơ bản này sẽ áp dụng để xây dựng quytrình phát triển ứng dụng web an toàn.

CHƯƠNG 2: ĐẢM BẢO AN TOÀN TRONG PHÁT TRIỂN WEB THEO KỸNGHỆ HƯỚNG YÊU CẦU

Nội dung chương tìm hiểu về quy trình phát triển web theo kỹ nghệ hướng yêucầu thông thường sau đó nghiên cứu áp dụng các yêu cầu bảo mật theo từng giai đoạndựa theo quy trình phát triển ứng dụng web

CHƯƠNG 3: THỰC NGHIỆM XÂY DỰNG VÀ ĐẢM BẢO AN TOÀNỨNG DỤNG WEB THEO KỸ NGHỆ HƯỚNG YÊU CẦU

Chương này mô tả cách triển khai được áp dụng từ quá trình nghiên cứu ởChương 2 để phát triển một ứng dụng web an toàn nhỏ, đáp ứng được các yêu cầubảo mật cơ bản theo từng giai đoạn

Trang 13

CHƯƠNG 1: TỔNG QUAN VỀ AN TOÀN ỨNG DỤNG WEB

1.1 Khái niệm và mô hình hoạt động ứng dụng web

1.1.1 Khái niệm

Ứng dụng web là một phần mềm ứng dụng nền tảng web để chạy các phầnmềm theo mong muốn và nhu cầu của người sử dụng Thông qua ứng dụng webngười dùng có thể thực hiện được một số công việc như: chia sẻ hình ảnh, mua sắm,phần mềm quản lý,… thông qua các tác vụ internet

Hình 1.1 Quá trình hoạt động ứng dụng web

Quá trình hoạt động ứng dụng web được mình hoạ như trên Hình 1.1 bắt đầuvới yêu cầu được tạo ra từ người dùng trên trình duyệt, gửi qua Internet tới máy chủứng dụng web Ứng dụng truy cập cơ sở dữ liệu để thực hiện nhiệm vụ được yêu cầu:cập nhật, truy vấn thông tin đang nằm trong cơ sở dữ liệu Sau đó ứng dụng web gửithông tin lại cho người dùng qua trình duyệt

1.1.2 Mô hình hoạt động

Tùy thuộc vào số máy chủ và cơ sở dữ liệu được sử dụng cho ứng dụng web,

mô hình ứng dụng web có thể hoạt động theo 3 cách sau:

a Một máy chủ web, một cơ sở dữ liệu

Đây là mô hình ứng dụng web đơn giản nhất nhưng có nhiều rủi ro nhất Môhình như vậy chỉ sử dụng một máy chủ và một cơ sở dữ liệu duy nhất Nếu máy chủngừng hoạt động, ứng dụng web cũng vậy Mô hình đơn giản như vậy có thể phù hợpvới một số dự án thử nghiệm hoặc cá nhân

Mô hình này thường không được sử dụng cho các ứng dụng web thực tiễn vớiquy mô lớn Nó chủ yếu được sử dụng để chạy các dự án thử nghiệm, dự án nhỏ, tìmhiểu và hiểu các nguyên tắc cơ bản của ứng dụng web

b Nhiều máy chủ web, một cơ sở dữ liệu

Trang 14

Để mở rộng máy chủ web theo chiều ngang, cần phải chạy cơ sở dữ liệu trênmột máy chủ web riêng biệt Khi máy chủ web lấy thông tin từ máy khách sẽ xử lýtương tự và sau đó ghi vào cơ sở dữ liệu được quản lý bên ngoài máy chủ Điều nàycòn được gọi là “kiến trúc không trạng thái (stateless architecture)” Kiến trúc khôngtrạng thái là thiết kế không lưu dữ liệu của client trên server, chỉ phụ thuộc vào cáctham số đầu vào được cung cấp Có nghĩa là sau khi client gửi dữ liệu lên server,server thực thi xong, trả kết quả thì “quan hệ” giữa client và server bị “cắt đứt” serverkhông lưu bất cứ dữ liệu gì của client.

Ngay cả khi một trong các máy chủ web ngừng hoạt động, một máy chủ khác

sẽ chịu trách nhiệm Tất cả các yêu cầu được thực hiện sẽ được chuyển hướng tựđộng đến máy chủ mới và ứng dụng web sẽ tiếp tục thực hiện Do đó, độ tin cậy tốthơn so với máy chủ đơn với mô hình cơ sở dữ liệu vốn có Tuy nhiên, nếu cơ sở dữliệu bị treo, toàn bộ hệ thống cũng sẽ tê liệt

c Nhiều máy chủ web, nhiều cơ sở dữ liệu

Đây là mô hình ứng dụng web hiệu quả nhất Có hai lựa chọn cho loại mô hìnhnày Lưu trữ dữ liệu giống nhau trong tất cả các cơ sở dữ liệu được sử dụng hoặcphân phối dữ liệu đồng đều giữa chúng Trong trường hợp đầu tiên, thường khôngcần nhiều hơn 2 cơ sở dữ liệu; khi một cái bị hỏng, cái kia có thể thay thế nó vàkhông bị mất Vì dữ liệu không được sao chép trong trường hợp thứ hai, một số dữliệu có thể tạm thời không khả dụng nếu một trong nhiều cơ sở dữ liệu gặp sự cố

Tuy nhiên, mô hình này vẫn được coi là mô hình hiệu quả nhất: cả máy chủweb và cơ sở dữ liệu vẫn có thể hoạt động nếu 1 trong số máy chủ hoặc cơ sở dữ liệukhác gặp lỗi Nếu quy mô lớn hơn 5 máy chủ web hoặc cơ sở dữ liệu nên cài đặt bộcân bằng tải

1.2 Nguy cơ mất an toàn ứng dụng web

Với những tiến bộ trong công nghệ web cùng với sự phát triển ngành côngnghiệp công nghệ thông tin, các ứng dụng web đang dần trở nên phổ biến Mặc dùchúng có thể mang lại nhiều lợi ích và giải pháp nhưng đi kèm với đó là một số mối

đe dọa bảo mật ứng dụng web Chúng có thể gây rủi ro rất lớn tới cơ sở hạ tầng côngnghệ thông tin của tổ chức nếu không được xử lý đúng cách Sự phát triển nhanhchóng trong việc triển khai ứng dụng web đã tạo ra các cơ sở hạ tầng phân tán, phứctạp hơn và khó bảo mật hơn

Trang 15

Trong hơn một thập kỷ, các tổ chức chỉ phụ thuộc vào các biện pháp bảo mật ởvùng mạng như tường lửa để bảo vệ cơ sở hạ tầng Tuy nhiên, hiện nay ngày càng cónhiều cuộc tấn công nhằm vào các lỗ hổng bảo mật trong thiết kế ứng dụng web,chẳng hạn như lỗi tiêm chích Cách bảo vệ an ninh mạng truyền thống không đủ đểbảo vệ các mối đe dọa này Những mối đe dọa bắt nguồn từ các điểm truy cập máykhách không đáng tin cậy, các giao thức không có phiên, lỗi thời, độ phức tạp chungcủa các công nghệ web và sự không an toàn của lớp mạng.

Với các ứng dụng web phía máy khách thường không được kiểm soát chặt chẽbởi người sở hữu Do đó, đầu vào từ máy khách thường không được tin cậy và xử lýtrực tiếp Kẻ tấn công có thể giả mạo danh tính như một người dùng hợp pháp, saochép danh tính hoặc tạo các tin nhắn và cookie lừa đảo Ngoài ra, HTTP là một giaothức không có phiên, và do đó dễ bị phát lại và tấn công tiêm chích, chặn bắt Nộidung có thể dễ dàng bị sửa đổi và giả mạo

Năm 2019 đã có rất nhiều sự thay đổi về bảo mật ứng dụng web, số lượng tănghơn nhiều so với năm 2018 Do sự phát triển của công nghệ web, một số lỗ hổng mới

ở mức độ nguy hiểm cũng đã xuất hiện nhiều hơn Trong đó, XSS (Cross SiteScripting) vẫn là lỗ hổng phổ biến và nguy hiểm nhất trên thế giới, càng nhiềuwebsite xây dựng trên javascript khiến lỗ hổng XSS càng trở lên phổ biến Việc cậpnhật các lỗ hổng bảo mật này liên tục rất tốn thời gian và chi phí Nên sử dụng mộtnền tảng cơ bản để triển khai các giải pháp bảo mật như: Giám sát, antivirus, quét lỗhổng và tường lửa và cập nhật các bản vá… với ứng dụng web là những xu hướngcần thiết để vận hành một website an toàn và liên tục

1.2.1 Rò rỉ dữ liệu

Trong năm 2018, xuất hiện nhiều cuộc tấn công mạng nhằm vào các hệ thống

và trang web của nhiều tập đoàn lớn liên tục xuất hiện, đây sẽ là một phần bối cảnh

an ninh mạng trong năm 2019 Rất nhiều công ty, tập đoàn nối tiếng trên thế giới và

cả các cơ quan chính phủ như Facebook, Google… đã phải chịu những vi phạm anninh mạng đáng kể về dữ liệu

a Bê bối dữ liệu Cambridge Analytica của Facebook

Việc thông tin tài khoản của 87 triệu người dùng Facebook được sử dụng nhằmtác động đến kết quả bầu cử tổng thống là tâm điểm của mọi bản tin an toàn thông

Trang 16

tin CEO của Facebook, Mark Zuckerberg đã phải điều trần trước Thượng viện – Hạviện Mỹ và nghị viện Châu Âu [ CITATION Bảo18 \l 1066 ].

b Google+ đóng cửa vì rò rỉ dữ liệu người dùng

Không lâu sau bê bối của Facebook, thông tin về việc lộ dữ liệu của 500.000người dùng Google+ bị công bố Google buộc phải đóng cửa vĩnh viễn mạng xã hộinày [ CITATION Min19 \l 1066 ]

Trang 17

c FIFA lộ 70 triệu tài liệu và 3,4 terabyte dữ liệu

Tài liệu này được công bố bởi Football Leaks và chứa nhiều thông tin về cáchành vi tham nhũng trong bóng đá Lượng dữ liệu rò rỉ này đã vượt qua cả vụ Tài liệuPanama, vốn được coi là vụ lộ lọt dữ liệu lớn nhất thế giới [ CITATION Cys18 \l

1066 ]

1.2.2 Bùng nổ mã độc

a Mã độc đào tiền ảo bùng nổ

Mã độc đào tiền ảo phát tán qua Facebook đang quay trở lại với tốc độ bùngphát theo cấp số nhân nhờ vào khả năng đăng bài trên các nhóm (group) có đôngngười tham gia

Đến nay đã có 45.000 máy tính [ CITATION BT19 \l 1066 ] là nạn nhân củadòng mã độc này Không chỉ chiếm quyền điều khiển máy tính nạn nhân, nó còn cókhả năng kiểm soát trình duyệt của người dùng, từ đó update thêm các mã độc khácnhằm chiếm đoạt các loại mật khẩu, tài khoản ngân hàng

b Mã độc trên di động tăng nhanh

Mỗi ngày, 24.000 ứng dụng độc hại [ CITATION Cys18 \l 1066 ] bị chặn trướckhi được tung ra Số chủng loại malware đã tăng 54% trong riêng năm 2018 Sốlượng người sử dụng thiết bị di động ngày một tăng và tính phân mảnh của hệ điềuhành Android càng thúc đẩy sự phổ biến của loại malware này

c Tăng cường bảo mật mạng

Google Chrome cảnh báo các website không có HTTPS là “Không bảo mật”.Giao thức HTTPS đã vượt HTTP và được sử dụng bởi hơn một nửa số website trêntoàn thế giới Trình duyệt đã đưa ra cảnh báo về tính bảo mật của giao thức HTTPđơn thuần và có các hình thức ưu tiên cho giao thức an toàn HTTPS

1.2.3 Sử dụng trí tuệ nhân tạo

Trong năm 2019, AI có thể sẽ trở thành chìa khóa của cuộc tấn công mạng[ CITATION vie18 \l 1066 ] Những kẻ tấn công sẽ khai thác hệ thống trí tuệ nhântạo (AI) để hỗ trợ các cuộc tấn công, các doanh nghiệp sẽ ngày càng lệ thuộc vào AI

để chống lại các cuộc tấn công và xác định các lỗ hổng bảo mật

Đối với an ninh mạng của các tổ chức, doanh nghiệp

 Bảo mật sử dụng học máy để phát hiện các mối đe dọa mới

Trang 18

 Khám phá và sửa các lỗ hổng mới trước khi kẻ tấn công tìm thấy chúng.

 Mô phỏng các cuộc tấn công mạng nâng cao

 Có thể giúp bảo vệ bảo mật và quyền riêng tư kỹ thuật số cá nhân, ví dụ:Cảnh báo người dùng để bật xác thực 2 yếu tố khi thiết lập địa chỉ emailmới Cảnh báo về rủi ro bảo mật tiềm ẩn và sự đánh đổi khi chấp nhậncung cấp thông tin cá nhân khi đăng ký một số dịch vụ miễn phí

Đối với những kẻ tấn công

 Phá hủy hệ thống doanh nghiệp dựa trên AI tự động

 Tăng cường hoạt động tội phạm để thăm dò các mạng và dò quét các lỗhổng mới

 Tự động tạo ra các kỹ nghệ xã hội cực kỳ tinh vi với việc làm âm thanh giảrất thật, video giả, v.v

 Có thể tạo bộ công cụ hỗ trợ AI để dễ cá nhân hóa, tiết kiệm chi phí và khảnăng tiếp cận với tội phạm nhỏ

1.2.5 Sử dụng các thiết bị IoT để tấn công DDoS

Các thiết bị IoT tại nhà đang trở nên phổ biến hơn, nhiều khả năng sẽ có những

nỗ lực trong tương lai để vũ khí hóa chúng do mạng lưới này còn quá mới Thiếu sóttrong những biện pháp kiểm soát an ninh cơ bản đã biến các thiết bị IoT thành mụctiêu dễ tấn công đối với tội phạm mạng và những kẻ tấn công khác

1.2.6 Tấn công nhắm vào việc truyền dữ liệu

Cả người tiêu dùng và doanh nghiệp sẽ trở thành mục tiêu của hacker

Đối với người tiêu dùng:

Trang 19

 Tấn công các thiết bị IoT cho việc đào tiền ảo

 Trộm các thông tin ngân hàng

 Đánh cắp số thẻ tín dụng

 Hiển thị trang web giả mạo

Đối với doanh nghiệp:

 Tấn công các trang web thương mại điện tử

 Tấn công các nhà cung cấp bên thứ 3

 Formjacking attacks

 Phần mềm độc hại ảnh hưởng đến bộ định tuyến và mạng

Formjacking attacks là thuật ngữ mô tả việc sử dụng mã JavaScript độc hại đểđánh cắp chi tiết thẻ tín dụng và thông tin khác từ các hình thức thanh toán trên cáctrang web thương mại điện tử Formjacking không phải là một kỹ thuật mới, nhưngcác vụ tấn công gần đây có quy mô lớn, tinh vi và tăng lên đáng kể từ giữa tháng 8năm 2018 [ CITATION sym18 \l 1066 ]

1.3 Một số lỗ hổng bảo mật web phổ biến

1.3.1 Tấn công XSS

Khái niệm

Cross-Site Scripting (XSS) tạm dịch là kịch bản liên trang, là một trong những

kĩ thuật tấn công phổ biến nhất hiện nay, đồng thời nó cũng là một trong những vấn

đề bảo mật quan trọng đối với các nhà phát triển web và cả những người sử dụngweb Bất kì một website nào cho phép người sử dụng đăng thông tin mà không có sựkiểm tra chặt chẽ các đoạn mã nguy hiểm thì đều có thể tiềm ẩn các lỗi XSS

Lỗi này xảy ra khi ứng dụng web thu nhận các dữ liệu nguy hiểm được nhập từhacker Họ có thể thông qua lỗi này để chèn code vào site hay link để lấy các thông tin quan trọng từ nạn nhân Các thông tin có thể lấy và thực hiện như: Cookie,

Trang 20

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

Encode dưới dạng HTML các ký tự đặc biệt do client gửi đến bao gồm: <, >,

&, ’, ”, / trong các trường hợp:

 Dữ liệu client gửi lên máy chủ

 Dữ liệu lấy ra từ database khi trả về cho client

1.3.2 Tấn công CSRF

Khái niệm

Cross Site Request Forgery (CSRF) là kỹ thuật tấn công bằng cách sử dụng quyềnchứng thực của người dùng đối với một website Kỹ thuật này tấn công vào ngườidùng, dựa vào đó hacker có thể thực thi những thao tác phải yêu cầu sự chứng thực.Đây là kỹ thuật tấn công dựa vào mượn quyền trái phép

Hacker sử dụng phương pháp CSRF để lừa trình duyệt của người dùng gửi đicác câu lệnh HTTP đến các ứng dụng web Trong trường hợp phiên làm việc củangười dùng chưa hết hiệu lực thì các câu lệnh trên sẽ được thực hiện với quyền chứngthực của người sử dụng

Phòng chống CSRF

 Hạn chế thời gian tồn tại của session

 Sử dụng GET và POST đúng cách Dùng GET nếu thao tác là truy vấn dữliệu Dùng POST nếu các thao tác tạo ra sự thay đổi hệ thống Nếu ứngdụng theo chuẩn RESTful, có thể dùng thêm các HTTP verbs, nhưPATCH, PUT hay DELETE

 Sử dụng token: Tạo ra một token tương ứng với mỗi form, token này sẽ làduy nhất đối với mỗi form và thường thì hàm tạo ra token này sẽ nhận đối

số là "SESSION" hoặc được lưu thông tin trong SESSION, chèn thêmtoken vào đường link thực hiện thao tác Khi nhận lệnh HTTP POST về, hệthống sẽ thực hiên so khớp giá trị token này để quyết định có thực hiện haykhông Mục đích của token là làm cho hacker không thể xác định đượcchính xác đường link thực hiện thao tác

 Chèn bước xác nhận trung gian trước những thao tác nhạy cảm: ví dụ như

sử dụng captcha, các thông báo xác nhận, yêu cầu nhập lại password hoặc

Trang 21

sử dụng thêm OTP (One-time password) hay chứng thư số để xác nhận lạicác giao dịch.

 Sử dụng cookie riêng biệt cho trang quản trị: Một cookie không thể dùngchung cho các domain khác nhau, chính vì vậy việc sử dụng

"admin.site.com" thay vì sử dụng "site.com/admin" an toàn hơn

 Kiểm tra REFERRER: Kiểm tra xem các câu lệnh HTTP gửi đến hệ thốngxuất phát từ đâu Một ứng dụng web có thể hạn chế chỉ thực hiện các lệnhHTTP gửi đến từ các trang đã được chứng thực Tuy nhiên cách làm này cónhiều hạn chế và không thật sự hiệu quả

 Kiểm tra IP: Một số hệ thống quan trọng chỉ cho truy cập từ những IP đượcthiết lập sẵn

1.3.3 Tấn công SQL Injection

Khái niệm

SQL Injection là một kỹ thuật cho phép những kẻ tấn công lợi dụng lỗ hổngcủa việc kiểm tra dữ liệu đầu vào trong các ứng dụng web và các thông báo lỗi của hệquản trị cơ sở dữ liệu (DBMS - Data Base Management System) trả về để inject (tiêmvào) và thi hành các câu lệnh SQL một cách trái phép

SQL Injection có thể cho phép những kẻ tấn công thực hiện các thao tác nhưdelete, insert, trên cơ sở dữ liệu của ứng dụng, thậm chí là của server mà ứng dụng

đó đang chạy Lỗi SQL Injection thường xảy ra trên các ứng dụng web có dữ liệuđược quản lý bằng DBMS như SQL Server, MySQL, Oracle, DB2…

Phòng chống SQL Injection

Lọc dữ liệu từ người dùng: Cách phòng chống này tương tự như XSS Sử

dụng filter để lọc các kí tự đặc biệt (; ” ‘) hoặc các từ khoá (SELECT,UNION) do người dùng nhập vào Nên sử dụng thư viện/function đượccung cấp bởi framework

Không cộng chuỗi để tạo SQL: Sử dụng parameter thay vì cộng chuỗi Nếu

dữ liệu truyền vào không hợp lệ, SQL Engine sẽ tự động báo lỗi

Không hiển thị exception, thông báo lỗi rõ ràng: Hacker dựa vào thông báo

lỗi để tìm ra cấu trúc database Khi có lỗi, chỉ hiện thông báo lỗi chung vàkhông nên hiển thị đầy đủ thông tin về lỗi, tránh hacker lợi dụng

Trang 22

Phân quyền rõ ràng trong cơ sở dữ liệu: Nếu chỉ truy cập dữ liệu từ một số

bảng, hãy tạo một account trong DB, gán quyền truy cập cho account đókhông dùng account root hay sa Lúc này, dù hacker có inject được sql cũngkhông thể đọc dữ liệu từ các bảng chính, sửa hay xoá dữ liệu

Sao lưu dữ liệu thường xuyên: Dữ liệu phải thường xuyên được backup để

nếu dữ liệu xoá hoặc hỏng thì vẫn có thể khôi phục được

Trang 23

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

Khái niệm

Tấn công từ chối dịch vụ (hay còn gọi là DoS - Denial of Service) là một trongnhững thủ đoạn nhằm ngăn cản những người dùng hợp pháp khả năng truy cập và sửdụng vào một dịch vụ nào đó DoS có thể làm ngưng hoạt động của một máy chủ,một mạng nội bộ thậm chí cả một hệ thống mạng rất lớn Về bản chất thực sự củaDoS, kẻ tấn công sẽ chiếm dụng một lượng lớn tài nguyên mạng như băng thông, bộnhớ và làm mất khả năng xử lý các yêu cầu dịch vụ từ người dùng hợp lệ

Phòng chống tấn công từ chối dịch vụ

 Giảm Timeout cho Server

 Giới hạn số kết nối đến Server cho mỗi IP

 Cấu hình firewall để giới hạn số kết nối đến cổng 80 trên mỗi IP

 Sử dụng dịch vụ chống tấn công DoS từ các công ty cung cấp giải pháp

 Thực hiện cân bằng tải (load balancer), mạng phân phối nội dung (CDN) kết hợp cả hai hoặc 1 trong 2

 Quét mạng thường xuyên và theo dõi lưu lượng với các cảnh báo cũng có thể giúp nắm bắt được những nguy cơ của một cuộc tấn công DoS sớm, cũng như đưa ra những hành động để giảm thiểu thiệt hại

1.3.5 Một số tấn công khác

Tấn công Path Traversal

Path Traversal, hay Directory Traversal là kỹ thuật tấn công nhằm vào việctruy cập tới các file, thư mục nằm ngoài thư mục chính của web server Tấn công nàycòn được biết đến với các tên gọi khác như: dot dot slash ( /), directory climbing,backtracking Điểm yếu cho phép thực hiện tấn công này là sự kém hiệu quả trongviệc kiểm tra, chuẩn hoá tên file mà người dùng yêu cầu trong truy vấn HTTP, khiếncho kí hiệu “thư mục cha” ( /) được chấp nhận

Tấn công Content Spoofing

Tấn công giả mạo nội dung (Content Spoofing, hay còn gọi là tấn công giả mạo

dữ liệu): đây là dạng tấn công tương tự như XSS, nhưng thay vì chèn mã kịch bản thì

kẻ tấn công thực hiện chèn/sửa nội dung của webpage (phần mà người dùng nhìn

Trang 24

thấy trên màn hình) bị thay đổi so với nội dung gốc Sự thay đổi này có thể rất nguyhiểm.

1.4 Những yếu tố đảm bảo an toàn ứng dụng web

Ứng dụng web không thể tự thân nó hoạt động, mà chỉ có thể hoạt động trênmột môi trường nhất định Tính an toàn của ứng dụng web không chỉ phụ thuộc vàobản thân nó mà còn được quyết định bởi môi trường mà nó hoạt động Theo mặc định

nó được xây dựng để hoạt động qua mạng Do vậy, tính an toàn của ứng dụng webphụ thuộc một phần vào tính chất kết nối mạng Web client và web server có thể giaotiếp với nhau qua mạng cục bộ (LAN), qua mạng diện rộng (WAN) hay qua mạngdùng chung; kết nối mạng có thể là kết nối mở hay kết nối mạng riêng ảo (VPN) Tùythuộc vào tính chất của kết nối mà tính an toàn của ứng dụng web có thể bị đe dọabởi các tấn công: tấn công chặn bắt trên đường truyền, tấn công xuyên tạc dữ liệu, tấncông xen vào (hay tấn công kẻ ở giữa), tấn công từ chối dịch vụ

Ứng dụng web, dù ở phía server hay phía client, phải hoạt động trong môitrường của một hệ điều hành nào đó Nếu hệ điều hành có những lỗ hổng bảo mật chophép kẻ tấn công thâm nhập vào hệ thống các dữ liệu mà ứng dụng web bảo vệ có thể

bị lộ, bị sửa chữa hoặc bị phá hủy Ở phía client, dữ liệu đó có thể là cookie được lưutrữ dài hạn Ở phía server, dữ liệu đó là bản thân mã nguồn của ứng dụng web, các tàikhoản được ứng dụng web sử dụng để truy cập cơ sở dữ liệu hay các dịch vụ khác,thông tin về người dùng và các tài nguyên khác của website

Mặc dù hoàn toàn có thể viết được ứng dụng web (phía server) tương tác trựctiếp với hệ điều hành, nhưng thường thì ứng dụng web hoạt động thông qua một webserver nào đó như IIS, Apache Khi đó, tính an toàn của ứng dụng web sẽ phụ thuộcvào tính an toàn của web server

Ngày nay việc xây dựng ứng dụng web lập trình CGI (Common GatewayInterface - Giao diện cổng nối chung) hay ISAPI (Internet Server ApplicationProgramming Interface – Giao diện lập trình ứng dụng máy chủ internet) và NSAPI(Netscape Server Application Programming Interface - Giao diện lập trình ứng dụngmáy chủ Netscape) đã không còn được ưa chuộng; đa phần ứng dụng web trênInternet được xây dựng bằng PHP và ASP/ASP.NET Các ứng dụng web viết bằngPHP hay ASP/ASP.NET không tương tác trực tiếp với web server mà thông qua mộtứng dụng trung gian, tạm gọi là bộ thông dịch (interpretor) Nhờ các bộ thông dịchkhác nhau mà một ứng dụng web (ví dụ viết bằng PHP) có thể làm việc với các web

Trang 25

server khác nhau (ví dụ Apache Và IIS) mà không cần thay đổi mã nguồn Bản thânPHP và ASP/ASP.NET cũng cung cấp cho các nhà phát triển web những hỗ trợ đáng

kể trong triển khai các chức năng an toàn, đặc biệt là chức năng lọc dữ liệu ngườidùng Và khi đó, tính an toàn của ứng dụng web lại phụ thuộc vào tính an toàn củaứng dụng trung gian trên đây

Ngoài ra, ứng dụng web phải sử dụng dữ liệu từ các nguồn khác nhau (từ cơ sở

dữ liệu, từ hệ thống tập tin, từ các website khác ) để thực hiện các chức năng theothiết kế Tính an toàn của các nguồn dữ liệu trên đây phụ thuộc vào tính an toàn của

hệ thống quản lý chúng Bên cạnh đó, bản thân các dữ liệu cũng có thể tiềm ẩn nhữnghiểm họa an toàn đối với ứng dụng web sử dụng dữ liệu

Như vậy, xét về tổng thể tính an toàn của ứng dụng web phụ thuộc vào cácthành phần có liên quan trong môi trường mà ứng dụng web hoạt động Để đảm bảo

an toàn ứng dụng web, cần phải đảm bảo an toàn cả từ phía các thành phần này

1.5 Đánh giá an toàn ứng dụng web

Thực tế rất khó để có thể tạo được những website không có lỗ hổng bảo mật.Khi phát triển website, cần xác định các hiểm họa an toàn, từ đó đề ra các cơ chế đểchống lại các hiểm họa đó Tuy nhiên, các cơ chế an toàn không phải bao giờ cũngđược xây dựng một cách hoàn hảo

Tổ chức phòng thủ ở các thiết bị mạng không chỉ giúp ngăn chặn mã độc xâmnhập vào mạng bằng cách khai thác thông tin và lỗ hổng, mà còn giúp chủ động ngăncản những truy cập trái phép và không phù hợp vào hệ thống Tuy nhiên, điều nàykhông giúp các ứng dụng web tránh khỏi các cuộc tấn công, tin tặc có thể tấn côngvào ứng dụng trước khi thực hiện tấn công vào hệ thống

Do vậy, cần có phương pháp kiểm tra, đánh giá các nguy cơ bảo mật cơ bảntrên ứng dụng OWASP (Open Web Application Security Project) được thực hiện vớimục tiêu đó

Đánh giá điểm yếu ATTT trên ứng dụng Web

Quy trình đánh giá sử dụng phương thức theo chuẩn OWASP bao gồm cáctháo tác chính sau:

 Thu thập thông tin

 Đánh giá cấu hình

 Đánh giá quản lý định danh

Trang 26

 Đánh giá quá trình xác thực

 Đánh giá quá trình phân quyền

 Đánh giá quản lý phiên

 Đánh giá quá trình kiểm tra dữ liệu đầu vào

 Đánh giá độ an toàn của mã hóa

 Đánh giá hoạt động nghiệp vụ

Tấn công, thâm nhập thử hệ thống dựa trên các điểm yếu tìm kiếm được từ cáccông cụ cũng như quá trình tìm kiếm thủ công

Thực hiện đánh giá trên các ứng dụng web phổ biến: ASP, ASP.NET, PHP,JSP,…

Thực hiện đánh giá trên các mã nguồn nền tảng ứng dụng phổ biến: Drupal,Joomla, Dot Net Nuke,…

Thực hiện đánh giá thủ công với sự hỗ trợ bởi các công cụ hàng đầu trong tìmkiếm, phát hiện điểm yếu ứng dụng web: HP WebInspect, IBM AppScan, AcunetixWeb Vulnerability Scanner

Lập báo cáo, phân tích chi tiết điểm yếu: mức độ nguy hiểm, tác động tới hệthống

Báo cáo theo chuẩn: PCI DSS (Payment Card Industry Data Security Standard

- chuẩn an ninh thông tin bắt buộc dành cho các doanh nghiệp lưu trữ, truyền tải và

Trang 27

CHƯƠNG 2: ĐẢM BẢO AN TOÀN TRONG PHÁT TRIỂN WEB THEO

KỸ NGHỆ HƯỚNG YÊU CẦU

2.1 Quy trình phát triển web theo kỹ nghệ hướng yêu cầu

Phát triển trang web là một quá trình toàn diện bao gồm các bước thiết yếu cầnphải được tuân theo Nhưng cũng không có một số bước cụ thể vì nó có thể thay đổitùy thuộc vào khách hàng hoặc nhà phát triển, cơ bản quy trình khá giống nhau

Hình 2.1 Quy trình phát triển ứng dụng web

Quy trình phát triển ứng dụng web được thể hiện bao gồm các bước cần thiếtnhư Hình 2.1 được thực hiện từ đầu đến cuối để hoàn thành một dự án Nó phân chia

và phân loại công việc cụ thể, sau đó chia các phần thành nhiệm vụ, tài nguyên có thểđược sử dụng làm bản hướng dẫn cho mỗi dự án

Có rất nhiều bước trong quy trình thiết kế và phát triển trang web Từ việc thuthập thông tin ban đầu, đến việc tạo trang web và cuối cùng là bảo trì để giữ chotrang web luôn cập nhật

Quá trình chính xác sẽ thay đổi một chút từ thiết kế đến phát triển, nhưngnhững bước cơ bản bao gồm:

 Thu thập thông tin và xác định yêu cầu

 Lập kế hoạch

 Thiết kế

 Phát triển

 Kiểm tra

Trang 28

 Triển khai và bảo trì

2.1.1 Thu thập thông tin và xác định yêu cầu

Cũng giống như bất kỳ dự án nào khác, bước đầu tiên của việc phát triển mộttrang web là thu thập tất cả các thông tin cần thiết Tất cả các yêu cầu cần phải làm rõkhi bắt đầu dự án nếu không toàn bộ dự án có thể đi sai hướng

Tất cả các thông tin liên quan thu thập từ khách hàng mục đích tạo ra sản phẩmtheo mong đợi của họ Bất kỳ vấn đề nào trong gia đoạn này cũng phải được giảiquyết ngay vì nó quyết định các bước tiếp theo sẽ như thế nào

Giai đoạn này sẽ xác định các mục tiêu chính Khi thu thập thông tin, cầnnghiên cứu mọi thứ để hiểu rõ về các yêu cầu, mục tiêu của ứng dụng web Theo cáchnày sẽ dễ dàng hơn trong việc phát triển, lên kế hoạch phù hợp để phát triển ứng dụngweb Sau khi thu thập yêu cầu hoàn tất, tiếp theo là lập kế hoạch, phân tích để kiểmtra tính khả thi của dự án

Vì vậy, lập kế hoạch phù hợp rất quan trọng, giúp thu thập thông tin dễ dàng hơn rấtnhiều Đây là lúc xác định mục đích và mục tiêu chính của ứng dụng web đang xâydựng, các kế hoạch trong tương lai cũng như đối tượng mục tiêu hướng tới

Khi kế hoạch phát triển ứng dụng web được mô tả kỹ lưỡng và chi tiết, sẽ giúptránh khỏi các tài nguyên bị lãng phí trong tương lai do các sự cố không mong muốnnhư thay đổi thiết kế, thêm tính năng khác không có trước đó

2.1.3 Phân tích, thiết kế

Phân tích là một tập hợp các hoạt động trong đó các nhà phân tích thu thập cácyêu cầu thông tin của người dùng, phân tích chúng một cách có hệ thống dưới dạng

Trang 29

chức năng của hệ thống ứng dụng, yêu cầu dữ liệu đầu vào từ người dùng, dữ liệuđầu ra và yêu cầu hiển thị của họ.

Thu thập dữ liệu về sự kỳ vọng hiệu suất hoạt động website đối với ngườidùng, chẳng hạn như thời gian phản hồi mỗi lần gửi yêu cầu

Các bước được thực hiện trong giai đoạn phân tích của WDLC:

1 Xác định các tác vụ phía người dùng cần phải hoàn thành trong giai đoạnnày, xem xét các yêu cầu nào của người phù hợp từ đó xác định các chức năng nênlàm Với sự giúp đỡ của giai đoạn thu thập dữ liệu, các tác vụ khác nhau được xácđịnh để có được đầu ra thích hợp

2 Xem xét các quy trình cần thiết để hỗ trợ các tính năng trang web sau khixác định tất cả các tác vụ, phải tập trung vào tất cả các tác vụ đó vì nó là cơ sở pháttriển trang web Các quy trình cần thiết để hỗ trợ các tính năng trang web là xác định(sitemap) bản đồ trang web, xác định cấu trúc trang, hoàn thiện các nội dung được đặttrên trang web

3 Một trong những giai đoạn quan trọng trong WDLC

Vì quy trình phân tích rất quan trọng để đảm bảo rằng hệ thống được đề xuất

sở hữu tất cả các tính năng và dữ liệu cần thiết mà người dùng đang tìm kiếm Nếugiai đoạn phân tích bị sai sẽ không thể đảm bảo chất lượng và đầu ra của hệ thốngmong muốn và đó là lý do phân tích là một trong những giai đoạn quan trọng củaWDLC

Đối tượng mục tiêu là một trong những yếu tố quan trọng được xem xét Từngloại đối tượng sẽ có những giao diện được thiết kế khác nhau Người thiết kế sẽ tạomột hoặc nhiều thiết kế nguyên mẫu cho trang web Đây thường là một hình ảnh vềthiết kế cuối cùng sẽ trông như thế nào

Người thiết kế sẽ cho xem các kết quả dự án trong suốt các giai đoạn thiết kế

và phát triển Lý do quan trọng nhất cho việc này là khách hàng có thể đưa ra nhữngđiều hài lòng và không hài lòng trên thiết kế trang web

Trong giai đoạn này, giao tiếp giữa khách và người thiết kế rất quan trọng vìphải đảm bảo rằng trang web cuối cùng sẽ phù hợp với nhu cầu và mục đích đề ra.Điều quan trọng là phải làm việc chặt chẽ với người thiết kế, trao đổi ý tưởng cho đếnkhi đi đến thiết kế cuối cùng

2.1.4 Lập trình

Trang 30

Trong giai đoạn lập trình này, các lập trình viên chuyển đổi các yếu tố đồ họađược thiết kế cho nguyên mẫu thành một trang web thực tế, có chức năng Thôngthường, trang chủ được tạo ra đầu tiên, và sau đó tất cả trang phụ được thêm vào,theo hệ thống phân cấp trang web mà trước đó đã được tạo ra dưới hình thức mộtsitemap.

Toàn bộ thời gian này, nhà thiết kế nên tiếp tục cung cấp bản mẫu trang webđang thực hiện để có thể thay đổi hoặc chỉnh sửa bổ sung sao cho phù hợp

2.1.5 Kiểm thử

Kiểm thử là giai đoạn quan trọng trong phát triển web trước khi bàn giao.Trong quá trình thử nghiệm, người kiểm tra bắt đầu kiểm tra hệ thống theo các yêucầu đề ra trước đó Họ kiểm thử nhằm tìm ra các lỗi, lỗ hổng trong hệ thống cũng nhưxác minh xem ứng dụng có hoạt động như mong đợi hay không Có làm tốt theonhững gì yêu cầu ghi lại trong giai đoạn phân tích yêu cầu Người kiểm thử thực hiệntừng kiểm tra và xác minh kết quả hoặc sử dụng kiểm tra thăm dò, đó là cách tiếp cậndựa trên kinh nghiệm

Nếu có lỗi, người kiểm thử thông báo cho lập trình viên về chi tiết của sự cố.Nếu đó là lỗi đúng thì họ sẽ sửa và tạo phiên bản mới cho trang web và cần xác minhlại Chu trình này được lặp lại cho đến khi tất cả các yêu cầu đã được kiểm tra và cáclỗi đã được sửa chữa Khi đó website đã sẵn sàng triển khai

2.1.6 Triển khai và bảo trì

Sau khi chính thức được phê duyệt, các tập mã nguồn ứng dụng web sẽ đượctải lên máy chủ, sau đó ứng dụng web sẽ được công khai trực tiếp đến người dùng

Giai đoạn cuối cùng trong phát triển là bảo trì Một trang web tập trung vào cácdịch vụ hơn là sản phẩm Đó là lý do tại sao việc cung cấp trang web cho người dùngthôi là chưa đủ; phải đảm bảo rằng mọi thứ đều hoạt động tốt cho người dùng Tương

tự như vậy, nên chuẩn bị nghiệp vụ để thực hiện các thay đổi, bảo trì cần thiết khi cónhu cầu

Thông qua hệ thống phản hồi, hệ thống ghi logs, có thể xác định các vấn đề màngười dùng cuối gặp phải Việc này cần chú ý khắc phục sự cố trong thời gian sớmnhất, nếu không người dùng sẽ dễ dàng từ bỏ trang web

2.2 An toàn trong giai đoạn xác định, phân tích yêu cầu

Trang 31

Ngày nay, các mối đe dọa bảo mật mới đang nổi lên với tốc độ theo cấp sốnhân, vì vậy tài nguyên, bao gồm cả dữ liệu và hệ thống phải được bảo vệ Trong môitrường hiện tại, ứng dụng web được coi là mục tiêu chính trong các vụ tấn công bảomật Cần áp dụng và thực hiện các quy trình và kiểm soát khác nhau để đảm bảo nó

có sự bảo vệ trong quá trình xây dựng và phát triển Để từ đó chống lại các cuộc tấncông bảo mật và phải đáp ứng một bộ yêu cầu bảo mật được xác định

Trong vòng đời phát triển phần mềm truyền thống, trong một thời gian dài bảomật thường bị xem nhẹ hoặc bị bỏ qua Nó thường được xem xét ở cuối giai đoạn thửnghiệm hoặc trong giai đoạn xem lại, khi ứng dụng web hoàn chỉnh thiết kế và xâydựng Nhưng ngày nay, kịch bản đã được thay đổi, bảo mật được coi là một trongnhững yêu cầu nghiệp vụ quan trọng và các tổ chức đang áp dụng các quy trình vàphương pháp đảm bảo bảo mật ngay từ đầu, từ chính giai đoạn yêu cầu, nơi diễn racác yêu cầu bảo mật và phát triển các phương pháp bảo đảm an ninh

Từ mong muốn bảo mật, tài liệu yêu cầu cũng cần làm rõ các yêu cầu bảo mậtsản phẩm hợp lý, có tính thực tiễn và bất kỳ quy định cụ thể nào được tuân theo theokịch bản triển khai Tài liệu này nên cung cấp định nghĩa và yêu cầu chất lượng bảomật, để đảm bảo yêu cầu bảo mật có thể được thực hiện

Xây dựng danh sách kiểm tra bảo mật là một nhiệm vụ đầy thách thức, vì đặcđiểm kỹ thuật sản phẩm có thể khác nhau đối với môi trường triển khai và môi trườngkiểm thử tiêu chuẩn Nhìn rộng ra, phân loại nội dung kiểm tra bảo mật đáp ứng 3yêu cầu bảo mật ứng dụng web Yêu cầu cốt lõi, yêu cầu chung, yêu cầu hoạt động

2.2.1 Yêu cầu bảo mật cốt lõi

Ba khái niệm bảo mật cơ bản quan trọng thông tin trên internet là tính bí mật,tính toàn vẹn và tính khả dụng Các khái niệm liên quan đến người sử dụng thông tin

là xác thực, uỷ quyền và chống chối bỏ Nó là các yêu cầu bảo mật cốt lõi mà mọi sảnphẩm, ứng dụng cần kiểm soát bảo mật được xác định

a Tính bí mật

Yêu cầu bảo mật giải quyết vấn đề lộ dữ liệu nhạy cảm gây ra bởi các cá nhân

sử dụng và truy cập trái phép Cần xem xét các biện pháp kiểm soát để đảm bảo tínhbảo mật khi dữ liệu ở trạng thái không sử dụng và khi nó được xử lý Các quy trìnhnhư Encryption (mã hoá thông tin), Steganography (che giấu sự tồn tại của thông tin),Masking (thay thế hoặc đảo thông tin theo luật được thiết lập), hỗ trợ bảo mật dữ

Trang 32

liệu và bảo mật quy trình Danh sách kiểm tra bảo mật phải chứa các thông số kỹthuật cần thiết để thực hiện các giao thức như: giao thức sử dụng, độ mạnh mã hóa,

sử dụng các quy trình đảm bảo tính bảo mật như trình tạo số ngẫu nhiên,

b Tính toàn vẹn

Yêu cầu về tính toàn vẹn rất cần thiết để đảm bảo độ tin cậy và độ chính xáccủa thông tin Độ tin cậy có thể được đảm bảo bằng cách kiểm tra chức năng ứngdụng, độ chính xác có thể được đảm bảo bằng cách kiểm tra dữ liệu được sửa đổi bởingười được ủy quyền theo cách được ủy quyền Đảm bảo rằng dữ liệu được xử lý làhoàn chỉnh và nhất quán Thực hiện các kiểm soát bảo mật như băm, chữ ký số hỗ trợđảm bảo tính toàn vẹn Các thông số kỹ thuật như giao thức, độ mạnh dữ liệu ngẫunhiên nên được coi như là một phần của danh sách yêu cầu kiểm tra bảo mật

c Tính khả dụng

Yêu cầu khả dụng đảm bảo chống phá hủy thông tin không mong muốn hoặcgián đoạn dịch vụ Đây là những yêu cầu khó khăn và cần được ghi nhận như là mộtphần của các thành phần thỏa thuận chất lượng dịch vụ (SLA - Service LevelAgreement) như đo lường thời gian ngừng hoạt động tối đa có thể chịu được (MTD -Measure Time Down) và thời gian phục hồi (RTO - Recovery Time Object)

Bảng yêu cầu cũng nên chứa các biện pháp để xác định và phân tích nghiệp vụ.Các biện pháp này cần có trong cả hai định lượng (chi phí để sửa chữa/khôi phục,nghĩa vụ pháp lý) và chất lượng

d Tính xác thực

Xác thực là đảm bảo tất cả tính hợp pháp và tính hợp lệ của người được xácthực Tài liệu yêu cầu cần xác định rõ các yêu cầu xác thực như sử dụng phương phápnào:

 Digest: Thông tin xác thực (đăng nhập) được mã hóa bằng cách áp dụnghàm băm cho tên tài khoản, mật khẩu Ngăn chặn được việc giải mã

 Token: Sử dụng một đoạn mã tạo ngẫu nhiên hoặc được sinh ra theo cơchế nào đó

 Smart Card: Một loại thẻ thông minh có gắn chip chứa thông tin xácthực

Trang 33

 Biometric: Sinh trắc học là công nghệ sử dụng những thuộc tính vật lý,đặc điểm sinh học riêng của mỗi cá nhân như vân tay, mống mắt, khuônmặt để nhận diện.

 Cơ chế xác thực hai yếu tố

Nó quan trọng cho việc xác nhận rằng các bên liên quan biết họ là ai trong hệthống

e Tính ủy quyền

Cho phép xác định quyền được gán cho tất cả các thực thể được xác thực.Danh sách kiểm tra bảo mật nên nêu rõ các cách truy cập sẽ được cấp dựa trên vai tròhoặc quy tắc cùng với độ chi tiết của chúng, thực hiện các đặc quyền tối thiểu, uỷquyền dịch vụ

f Tính chống chối bỏ

Chống chối bỏ là việc ghi lại tất cả hành động của người dùng và hoạt độngnhư kiểm soát ngầm Nó giúp phát hiện khi người dùng trái phép thực hiện thay đổihoặc khi người dùng được ủy quyền thực hiện thay đổi trái phép Thông số yêu cầubảo mật cần xác định rõ các yêu cầu ghi nhật ký và kiểm tra How (cách nào), what(cái gì), when (khi nào) để nắm bắt theo tiêu chuẩn an ninh và thực tiễn tốt nhất Nócũng nên xác định nhu cầu lưu trữ, thay phiên và xử lý giống nhau

2.2.2 Yêu cầu bảo mật chung

Từ viễn cảnh bảo mật ứng dụng/phần mềm, các yêu cầu bảo mật chung sẽ nắmbắt được các nhu cầu quản lý phiên, lỗi và cấu hình phù hợp

a Quản lý phiên

Phiên được sử dụng để duy trì trạng thái Khi người dùng xác thực thành công,phiên xác định (ID) được cấp để theo dõi trạng thái đã xác thực Điều này bắt buộckhi giao dịch với giao thức không trạng thái như HTTP Danh sách yêu cầu bảo mậtcần nắm bắt các phương pháp và biện pháp cần thiết cho phiên an toàn Các yêu cầuxác định tính duy nhất và tính ngẫu nhiên của phiên (không thể đoán được và khôngthể dò được), phiên phải có thời hạn tối đa và không thể tái sử dụng,…

b Quản lý lỗi

Trong ứng dụng, việc hiển thị lỗi là một phần của quá trình sử dụng thôngthường khi gặp phải bất kỳ điều kiện không mong muốn hoặc không có phạm vi nào

Trang 34

Từ viễn cảnh bảo mật, nên xác định rõ mức độ hiển thị thông tin cảnh báo lỗi thế nàotrong các tình huống lỗi để tránh các mối đe dọa như tiết lộ các thông tin kiến trúc,thiết kế và cấu hình ứng dụng nội bộ.

Trang 35

c Quản lý cấu hình

Cấu hình tính năng và chức năng ứng dụng Các biện pháp cụ thể cần được xácđịnh để tránh rò rỉ dữ liệu nhạy cảm và bảo mật Như khởi tạo và xử lý GlobalVariables (biến toàn cục), Hashing/Encryption (mã hoá) dữ liệu nhạy cảm, nênđược xác định rõ ràng giống nhau

2.2.3 Yêu cầu khi hoạt động

Khi ứng dụng được xây dựng và triển khai, tính bảo mật cũng cần được xemxét khi hoạt động trong mọi môi trường để tránh tiết lộ hoặc rò rỉ thông tin nhạy cảmkhông mong muốn

a Môi trường triển khai

Danh sách yêu cầu bảo mật sẽ nắm bắt thông tin về môi trường ứng dụng sẽđược triển khai và ai sẽ sử dụng Tuân thủ các yêu cầu về môi trường và kiến trúcchuẩn được thúc đẩy với thông tin này

b Lưu trữ

Lưu trữ cần thiết để đảm bảo tính liên tục trong nghiệp vụ, các yêu cầu quyđịnh và chính sách tổ chức Điều quan trọng là phải nắm bắt các yêu cầu lưu trữ tuânthủ chính sách và quy định của tổ chức Các biện pháp như Where (loại phương tiện)

và How (trực tuyến / ngoại tuyến, định dạng, mã hóa) dữ liệu sẽ được lưu trữ, chínhsách truy xuất dữ liệu, nên xác định rõ ràng như một phần của bảng yêu cầu

c Chống vi phạm bản quyền

Đây là một phần của yêu cầu thương mại ngoài thị trường Nó bao gồm cơ chếCode Obfuscation (rối mã), Signing (chữ ký), Anti Tampering (chống giả mạo),Licensing (cấp phép), IP Protection (bảo vệ IP) Yêu cầu này cần được giải quyết rõràng trong tập yêu cầu để tránh mọi vấn đề pháp lý trong tương lai

Các quy định và tuân thủ quốc tế cũng cần được thảo luận và nắm bắt như làmột phần của thu thập yêu cầu bảo mật

2.2.4 Kết luận

Từ đó có thể hình dung rằng yêu cầu bảo mật rất quan trọng trong quá trìnhphát triển ứng dụng web Chi phí thực hiện kiểm soát an ninh hoặc đo lường đượcxác định trong giai đoạn này sẽ không đáng kể đối với quy trình làm việc Nếu bất kỳ

lỗ hổng hoặc yêu cầu nào như vậy được phát hiện trong giai đoạn sau sẽ tốn chi phí

Trang 36

và thời gian hơn rất nhiều Phân tích yêu cầu là một giai đoạn không nên đánh giáthấp vì nó sẽ đặt nền tảng xây dựng cho cả dự án.

2.3 An toàn trong giai đoạn thiết kế

Hầu hết các lỗi bảo mật được sinh ra trong quá trình xây dựng, nơi kế hoạchsản phẩm được chuyển đổi thành chức năng thực tế Những hạng mục triển khai mấtnhiều chi phí nhất là những thứ được giới thiệu trong giai đoạn thiết kế do sự thiếuhiểu biết về các biện pháp bảo mật trong kiến trúc sản phẩm, ví dụ khi xem xét việctriển khai công nghệ và kiểm soát không chính xác hoặc không đầy đủ dẫn đến mấtnhiều chi phí về sau

2.3.1 Giai đoạn thiết kế an toàn

Giai đoạn thiết kế thường được định nghĩa là tập hợp các hành động chuyểncác yêu cầu chi tiết sản phẩm thành các thiết kế hoàn chỉnh Giai đoạn này tập trungvào cách cung cấp chức năng cần thiết và đóng vai trò hướng dẫn cho giai đoạn thựcthi và xây dựng Từ viễn cảnh bảo mật, nó đòi hỏi sự hiểu biết về các tài nguyên cầnđược bảo vệ, môi trường triển khai, luồng dữ liệu, người dùng sẽ truy cập vào tàinguyên nào và các nơi có thể bị tấn công Một cách tiếp cận chủ động chú ý đến bảomật trong giai đoạn thiết kế sẽ ngăn chặn việc phải thiết kế lại gây tốn kém và manglại lợi ích đáng kể trong tất cả các giai đoạn sau của vòng đời phát triển ứng dụng

Thiết kế đảm bảo an toàn là một bước đầy thách thức và phải thực sự cẩn thận,

có mục tiêu rõ ràng Các mục tiêu này có thể xác định bằng cách tuân theo cácnguyên tắc về thiết kế an toàn, cân nhắc và xem xét nơi dễ bị tấn công và thực hiện

mô hình hoá mối đe dọa để phân tích và tối ưu hóa giảm thiểu rủi ro

2.3.2 Lợi ích đem lại

a Giảm chi phí liên quan đến phát hiện và quản lý mối đe dọa

Việc thực hiện kiểm soát bảo mật có tác động tới chi phí và lập lịch kiểm trasản phẩm Áp dụng các biện pháp thiết kế an toàn sẽ giảm tương đối chi phí tới cáctác động tiêu cực, vấn đề bảo mật để khắc phục các lỗ hổng này

Chi phí sửa chữa các lỗ hổng được tính toán cao gấp 30 lần [CITATION Mic \l

1066 ] chi phí để sửa các lỗ hổng này ở giai đoạn thiết kế theo tài liệu Do đó giảmtổng chi phí phát triển ứng dụng

Trang 37

b Thiết kế đơn giản và nhất quán

Khi ứng dụng được phát triển với mục đích bảo mật, sẽ có ít nhất 1 lần phảithiết kế lại nó Việc thiết kế đơn giản, nhất quán sẽ làm giảm cơ hội thiết kế lại ứngdụng một lần nữa Nếu thiết kế được thực hiện ở giai đoạn đầu, sử dụng các tiêuchuẩn cho thiết kế kiến trúc sẽ làm quá trình trở nên nhất quán hơn

c Đảm bảo phòng thủ chiều sâu

Giúp đảm bảo phòng thủ theo chiều sâu bằng cách đảm bảo nhiều lớp kiểmsoát an ninh ở giai đoạn trước và cung cấp dự phòng trong trường hợp có bất kỳ cuộctấn công dễ bị tổn thương nào khác

d Tăng độ tin cậy, ứng dụng ít bị tấn công

Bằng cách nêu lên tính bảo mật trong giai đoạn thiết kế, sẽ tăng độ tin cậy vàlàm cho nó ít bị tấn công hơn Khi biết rằng ứng dụng đã được thiết kế an toàn và gầnnhư tất cả các lỗ hổng đã được kiểm tra và khắc phục Vì vậy, có rất ít cơ hội tấncông Nó cũng làm cho ứng dụng dễ dàng bảo trì

e Lỗ hổng logic nghiệp vụ cũng có thể được giải quyết

Lỗ hổng logic nghiệp vụ cho phép kẻ tấn công sử dụng sai ứng dụng sai cáchbằng cách tìm ra những lỗ hổng trong quy tắc nghiệp vụ Nhà phát triển có thể giảiquyết các lỗi này ở giai đoạn thiết kế và có thể triển khai bảo mật để có thể ngăn chặn

kẻ tấn công lợi dụng như vậy

f Hỗ trợ phát hiện các vấn đề về kiến trúc và triển khai

Trong giai đoạn thiết kế, việc code chưa được thực hiện, các nhà phát triểnquan tâm nhiều hơn đến thiết kế liên quan đến đảm bảo ứng dụng an toàn Mô hình

đe dọa và xem xét thiết kế kiến trúc an toàn sẽ giúp phát hiện các lỗi kiến trúc và cácvấn đề triển khai

g Hỗ trợ các nhà phát triển thực hiện hợp lý hóa

Nếu thiết kế an toàn được thực hiện đúng cách thì các nhà phát triển sẽ có được

sự tự tin trong việc hợp lý hóa an toàn vào giai đoạn thực hiện tiếp theo

2.3.3 Thực tiễn việc thiết kế an toàn

Có một số quy trình nhất định mà người ta có thể sử dụng để áp dụng thiết kế

an toàn trong quy trình phát triển ứng dụng:

Trang 38

 Attack Surface Evaluation (Đánh giá bề mặt tấn công)

 Threat Modeling (Mô hình đe doạ)

a Đánh giá bề mặt tấn công

Bề mặt tấn công là thước đo của tất cả các điểm khác nhau được khai thác bởicác tác nhân đe dọa Cố gắng liệt kê danh sách các tính năng mà kẻ tấn công sẽ có thể

cố gắng khai thác

b Mối đe doạ mẫu

Mô hình mối đe dọa là một kỹ thuật có hệ thống, lặp đi lặp lại và có cấu trúc đểtrực quan hóa tất cả các tình huống đe dọa có thể có trong thiết kế Và sau đó xácđịnh các biện pháp khắc phục để ngăn chặn hoặc giảm thiểu tác động của các mối đedọa đối với hệ thống

Mô hình hóa mối đe dọa cho phép các nhóm phát triển dự đoán các cuộc tấncông bằng cách hiểu cách kẻ thù chọn mục tiêu (tài nguyên), định vị các lỗ hổng thiết

kế trong đầu vào và tiến hành cuộc tấn công Một mô hình mối đe dọa được triển khaitốt sẽ xác định các tài nguyên cần được bảo vệ, các mối đe dọa đối với các tài nguyênnày là gì Các cuộc tấn công có thể được sử dụng, trong những điều kiện nào cáccuộc tấn công sẽ thành công Từ đó có biện pháp phòng vệ, sửa lỗi phù hợp

2.4 An toàn trong giai đoạn lập trình

2.4.1 Giảm thiêu rủi ro trong quá trình code

a Xác thực đầu vào

Luôn luôn xác thực dữ liệu đầu vào Xác thực từ tất cả các nguồn dữ liệukhông đáng tin cậy Khi làm tốt việc xác thực nguồn dữ liệu đầu vào có thể loại bỏphần lớn các lỗ hổng ứng dụng web Luôn nghi ngờ và phải lường trước hầu hết cácnguồn dữ liệu từ bên ngoài, bao gồm các tham số truyền vào, giao diện mạng, biếnmôi trường và tệp do người dùng tải lên

b Cảnh báo trình biên dịch

Biên dịch code với mức cảnh báo cao nhất, thường có sẵn trong trình biên dịchcủa IDE Nếu gặp bất kì cảnh báo, thông báo lỗi nào cần tiến hành sửa ngay đoạncode xử lý đó Sử dụng các công cụ phân tích tĩnh và động để phát hiện và loại bỏ cáclỗi bảo mật Phân tích tĩnh là phương pháp phân tích, kiểm tra các ứng dụng độc hại

Trang 39

mà không cần chạy chúng Phân tích động là phương pháp mà ứng dụng độc hại sẽđược chạy lên trong quá trình phân tích.

Trang 40

c Thực thi code theo chính sách, thiết kế bảo mật

Xây dựng website thực thi theo các chính sách bảo mật sẽ giảm thiểu được lỗi

và đáp ứng được các yêu cầu bảo mật của giai đoạn thiết kế Ví dụ: nếu hệ thống yêucầu các đặc quyền khác nhau vào các thời điểm khác nhau, cần xem xét việc chia hệthống thành các hệ thống con liên thông riêng biệt, mỗi hệ thống có một đặc quyềnphù hợp

d Code sạch, dễ duy trì

Code cần đơn giản và ngắn gọn, dễ đọc và dễ hiểu sẽ giúp ích cho quá trình sửalỗi, bảo trì code sau này Tránh cách viết code phức tạp sẽ làm tăng khả năng xảy ralỗi trong quá trình thực hiện, cấu hình và sử dụng Ngoài ra, cần phải đạt được mộtmức độ đảm bảo an toàn phù hợp tăng theo khi các cơ chế bảo mật trở nên phức tạphơn

e Từ chối mặc định

Xác định quyền truy cập cơ sở Điều này có nghĩa theo mặc định, quyền truycập vào nhưng khu vực nhạy cảm sẽ bị từ chối và được bảo vệ Xác định các điềukiện cần và đủ 1 cách rõ ràng để được phép truy cập

f Quản lý người dùng, phiên và quyền

Mỗi phiên sẽ thực thi với quyền hạn cần thiết tối thiểu để thực thi một việc gì

đó Bất kỳ sự cho phép nâng cao đặc quyền chỉ nên có hiệu lực trong một thời giannhất định Cách tiếp cận này làm giảm cơ hội bị kẻ tấn công thực thi mã độc, cáchành động sai trái với nâng cao đặc quyền

g Làm sạch dữ liệu gửi đến các hệ thống khác

Làm sạch tất cả dữ liệu được truyền đến các hệ thống con phức tạp như dònglệnh, cơ sở dữ liệu quan hệ và các thành phần thương mại ngoài luồng (cổng thanhtoán trực tuyến) Kẻ tấn công có thể gọi tới chức năng không được sử dụng trong cácthành phần này thông qua việc sử dụng SQL Injection, dòng lệnh hoặc các cuộc tấncông Injection khác

h Thực thi phòng thủ theo chiều sâu

Quản lý rủi ro bằng nhiều chiến lược phòng thủ, nếu một lớp phòng thủ khôngcòn phù hợp, một lớp phòng thủ khác có thể ngăn chặn lỗ hổng có thể bị khai tháchoặc hạn chế hậu quả của việc khai thác thành công Ví dụ, kết hợp các kỹ thuật lập

Ngày đăng: 22/08/2019, 17:23

TỪ KHÓA LIÊN QUAN

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

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

w