Luận văn: Nghiên cứu phát hiện tấn công web dựa trên học máy sử dụng web log

Luận văn thạc sĩ nghiên cứu kỹ thuật nghiên cứu phát hiện tấn công web cơ bản dựa trên học máy sử dụng web log, đánh giá hiện trạng, phân tích vấn đề, đề xuất biện pháp hoàn thiện

Chuyên ngành

Khoa học máy tính

Người đăng

Ẩn danh

Thể loại

Luận văn thạc sĩ

2020

60
2
0

Phí lưu trữ

30 Point

Tóm tắt

I. Giải pháp phát hiện tấn công web bằng học máy và web log

Trong bối cảnh kỹ thuật số, các ứng dụng web đã trở thành một phần không thể thiếu của mọi tổ chức và doanh nghiệp. Tuy nhiên, sự phổ biến này cũng đi kèm với những rủi ro về an ninh mạng ngày càng gia tăng. Theo thống kê, thiệt hại do virus và các cuộc tấn công mạng tại Việt Nam gây ra ngày càng nghiêm trọng, lên tới hàng chục nghìn tỷ đồng mỗi năm. Các hình thức tấn công web cơ bản như tấn công chèn mã SQL (SQLi)tấn công Cross-Site Scripting (XSS) vẫn liên tục gây ra những tổn thất nặng nề, từ việc đánh cắp dữ liệu nhạy cảm đến chiếm quyền kiểm soát toàn bộ hệ thống. Các phương pháp phòng thủ truyền thống, chẳng hạn như hệ thống phát hiện dựa trên chữ ký, thường tỏ ra chậm chạp và kém hiệu quả trước sự biến đổi tinh vi của các kỹ thuật tấn công mới. Để giải quyết thách thức này, một hướng tiếp cận hiện đại và hiệu quả hơn đã được nghiên cứu và áp dụng, đó là sử dụng học máy (machine learning) để phân tích web log. Phương pháp này không chỉ giúp tự động hóa quá trình giám sát mà còn có khả năng nhận diện các cuộc tấn công chưa từng được biết đến, mở ra một kỷ nguyên mới cho lĩnh vực bảo mật ứng dụng web.

1.1. Tầm quan trọng của việc bảo mật ứng dụng web hiện nay

Sự phát triển mạnh mẽ của Internet đã đưa ứng dụng web trở thành nền tảng cốt lõi cho hoạt động của các cơ quan, doanh nghiệp. Tuy nhiên, đây cũng là mục tiêu hàng đầu của tội phạm mạng. Theo số liệu từ BKAV, thiệt hại do virus máy tính tại Việt Nam năm 2019 đã lên tới 20.892 tỷ đồng, một con số đáng báo động [11]. Các cuộc tấn công web không chỉ gây thiệt hại về tài chính mà còn làm suy giảm uy tín của tổ chức, gây đình trệ hoạt động kinh doanh và thậm chí có thể dẫn đến việc mất mát dữ liệu vĩnh viễn. Các dạng tấn công SQLiXSS là những mối đe dọa phổ biến nhất, cho phép kẻ tấn công vượt qua xác thực, đánh cắp thông tin người dùng và chiếm quyền điều khiển máy chủ. Nguyên nhân sâu xa nằm ở việc nhiều ứng dụng web vẫn còn tồn tại các lỗ hổng trong khâu lọc dữ liệu đầu vào. Do đó, việc xây dựng một hệ thống bảo mật ứng dụng web vững chắc là yêu cầu cấp thiết để bảo vệ tài sản số và đảm bảo hoạt động ổn định.

1.2. Học máy Hướng tiếp cận mới trong lĩnh vực an ninh mạng

Các hệ thống bảo mật truyền thống thường dựa vào các mẫu hoặc chữ ký (signatures) của những cuộc tấn công đã biết. Hạn chế lớn nhất của phương pháp này là không thể phát hiện các hình thức tấn công mới hoặc các biến thể tinh vi (zero-day attacks). Học máy mang đến một giải pháp đột phá bằng cách xây dựng các mô hình có khả năng "học" từ dữ liệu để nhận diện các hành vi bất thường. Thay vì dựa vào các quy tắc cứng nhắc, mô hình phát hiện dựa trên học máy phân tích các mẫu hành vi trong web log để phân biệt giữa lưu lượng truy cập bình thường và các dấu hiệu tấn công tiềm tàng. Ưu điểm của phương pháp này là khả năng phát hiện các mối đe dọa chưa từng có trong cơ sở dữ liệu, tính linh hoạt cao và khả năng tự động cập nhật khi có dữ liệu mới. Đây được xem là hướng đi tất yếu để đối phó với bối cảnh an ninh mạng luôn biến đổi không ngừng.

II. Thách thức trong việc phát hiện các loại tấn công web cơ bản

Việc phát hiện và ngăn chặn các cuộc tấn công web là một bài toán phức tạp, đặc biệt khi các kỹ thuật tấn công ngày càng trở nên tinh vi. Những phương pháp bảo mật truyền thống, chủ yếu là phát hiện dựa trên chữ ký, gặp nhiều khó khăn trong việc theo kịp tốc độ phát triển của các mối đe dọa. Các hệ thống này hoạt động bằng cách so khớp lưu lượng mạng với một cơ sở dữ liệu chứa các mẫu tấn công đã biết. Mặc dù có độ chính xác cao với các cuộc tấn công cũ, chúng hoàn toàn "bất lực" trước các biến thể mới hoặc các cuộc tấn công zero-day. Việc cập nhật cơ sở dữ liệu chữ ký cũng đòi hỏi nhiều công sức và thường bị chậm trễ. Hơn nữa, những kẻ tấn công có thể dễ dàng thay đổi một vài ký tự trong mã độc để né tránh các bộ lọc dựa trên mẫu, khiến hệ thống phòng thủ trở nên vô hiệu. Các dạng tấn công như SQLiXSS có vô số biến thể, gây khó khăn cho việc xây dựng các bộ quy tắc toàn diện. Chính những hạn chế này đã thúc đẩy sự cần thiết của một phương pháp thông minh hơn, có khả năng học và thích ứng, điển hình là các mô hình phát hiện dựa trên học máy.

2.1. Phân tích các dạng tấn công web cơ bản SQLi và XSS

Trong số các mối đe dọa được OWASP Top 10 cảnh báo, tấn công SQLiXSS là hai trong số những kỹ thuật phổ biến và nguy hiểm nhất. SQL Injection (SQLi) là kỹ thuật chèn các mã SQL độc hại vào các truy vấn gửi đến cơ sở dữ liệu. Một cuộc tấn công thành công có thể cho phép kẻ tấn công vượt qua cơ chế đăng nhập, đọc, sửa đổi, hoặc xóa toàn bộ dữ liệu, thậm chí chiếm quyền điều khiển máy chủ [1]. Ví dụ, kẻ tấn công có thể nhập chuỗi aaaa' OR 1=1-- vào trường tên người dùng để bỏ qua việc kiểm tra mật khẩu. Trong khi đó, Cross-Site Scripting (XSS) là kỹ thuật chèn các đoạn mã độc (thường là JavaScript) vào các trang web. Khi người dùng khác truy cập vào trang bị nhiễm độc, mã độc sẽ được thực thi trên trình duyệt của họ, cho phép kẻ tấn công đánh cắp cookie, chiếm phiên làm việc, hoặc chuyển hướng người dùng đến các trang lừa đảo [6].

2.2. Hạn chế của hệ thống phát hiện tấn công dựa trên chữ ký

Hệ thống phát hiện xâm nhập (IDS) dựa trên chữ ký (signature-based) là phương pháp phổ biến trong nhiều năm qua. Nguyên tắc hoạt động của nó là so sánh các gói tin hoặc chuỗi truy vấn với một tập hợp các mẫu tấn công đã được định nghĩa trước. Ưu điểm của kỹ thuật này là tốc độ phát hiện nhanh và tỷ lệ báo động sai thấp đối với các mối đe dọa đã biết. Tuy nhiên, nhược điểm lớn nhất là không có khả năng phát hiện các cuộc tấn công mới hoặc các biến thể chưa có trong cơ sở dữ liệu chữ ký. Kẻ tấn công có thể dễ dàng lách qua hệ thống bằng cách thay đổi một chút trong payload tấn công. Hơn nữa, việc xây dựng và cập nhật cơ sở dữ liệu chữ ký là một quá trình thủ công, tốn kém thời gian và nguồn lực. Điều này tạo ra một "cửa sổ cơ hội" cho tin tặc khai thác các lỗ hổng bảo mật zero-day trước khi chữ ký được cập nhật, cho thấy sự cấp thiết của các giải pháp dựa trên học máy và phân tích hành vi.

III. Hướng dẫn khai thác web log để huấn luyện mô hình học máy

Web log (nhật ký web) là một nguồn tài nguyên quý giá nhưng thường bị bỏ qua trong việc tăng cường an ninh mạng. Mỗi khi người dùng tương tác với một trang web, máy chủ web sẽ tự động ghi lại các thông tin chi tiết về yêu cầu đó vào một tệp nhật ký. Tệp này chứa đựng các dữ liệu quan trọng như địa chỉ IP của người dùng, thời gian truy cập, phương thức HTTP, và đặc biệt là chuỗi URI (Uniform Resource Identifier) mà người dùng yêu cầu. Bằng cách phân tích các mẫu trong dữ liệu URI, chúng ta có thể nhận diện được các hành vi bất thường, vốn là dấu hiệu của một cuộc tấn công web. Tuy nhiên, dữ liệu thô trong web log ở dạng văn bản và không thể được đưa trực tiếp vào các thuật toán học máy. Do đó, quá trình tiền xử lý dữ liệu đóng vai trò cực kỳ quan trọng. Quá trình này bao gồm các bước như làm sạch, trích xuất đặc trưng (feature extraction), và chuyển đổi dữ liệu văn bản thành dạng vector số học mà mô hình có thể hiểu và học hỏi. Việc thực hiện đúng quy trình này là yếu tố quyết định đến độ chính xác của mô hình phát hiện tấn công.

3.1. Cấu trúc và ý nghĩa của dữ liệu trong tệp nhật ký web

Một tệp nhật ký web, hay web log, là một bản ghi chi tiết về tất cả các yêu cầu được máy chủ web xử lý. Các máy chủ phổ biến như Apache hay IIS thường tạo ra các bản ghi theo Định dạng Nhật ký Chung (Common Log Format - CLF). Mỗi dòng trong tệp nhật ký tương ứng với một yêu cầu và thường chứa các trường thông tin quan trọng sau: địa chỉ IP của máy khách (Host), tên người dùng đã xác thực (Authuser), ngày giờ yêu cầu (Date), dòng yêu cầu chi tiết bao gồm phương thức và URI (Request), mã trạng thái phản hồi (Status), và kích thước dữ liệu trả về (Bytes) [17]. Trong đó, trường Request chứa chuỗi URI, là thành phần quan trọng nhất để phân tích và phát hiện tấn công web, vì đây chính là nơi kẻ tấn công thường chèn các đoạn mã độc như SQLi hay XSS.

3.2. Quy trình tiền xử lý dữ liệu web log cho mô hình phát hiện

Tiền xử lý dữ liệu là bước nền tảng để chuyển đổi dữ liệu web log thô thành đầu vào có giá trị cho mô hình học máy. Quy trình này bắt đầu bằng việc bóc tách chuỗi URI từ mỗi dòng nhật ký. Sau đó, các chuỗi URI này cần được chuyển đổi thành dạng số. Luận văn áp dụng phương pháp vector hóa sử dụng kỹ thuật n-gram (cụ thể là 3-gram), chia mỗi chuỗi URI thành các đoạn ký tự con có độ dài 3. Tiếp theo, phương pháp TF-IDF (Term Frequency-Inverse Document Frequency) được sử dụng để tính trọng số cho mỗi 3-gram, giúp làm nổi bật các đặc trưng quan trọng. Cuối cùng, để giảm độ phức tạp tính toán và loại bỏ nhiễu, kỹ thuật PCA (Principal Component Analysis) được áp dụng để giảm số chiều của vector đặc trưng xuống còn 256. Toàn bộ quy trình này đảm bảo dữ liệu đầu vào cho mô hình phát hiện được chuẩn hóa và tối ưu, sẵn sàng cho giai đoạn huấn luyện.

IV. Phương pháp xây dựng mô hình học máy phát hiện tấn công

Việc xây dựng một mô hình phát hiện hiệu quả dựa trên học máy đòi hỏi một quy trình bài bản, bao gồm hai giai đoạn chính: huấn luyện (training) và phát hiện (detection). Trong giai đoạn huấn luyện, mô hình sẽ học cách phân biệt giữa các yêu cầu hợp lệ và các yêu cầu chứa mã độc từ một tập dữ liệu huấn luyện đã được gán nhãn. Luận văn này tập trung sử dụng các thuật toán học máy có giám sát, cụ thể là thuật toán Cây quyết định (Decision Tree), vì tính hiệu quả và khả năng diễn giải cao của nó. Dữ liệu đầu vào sau khi qua bước tiền xử lý dữ liệu sẽ được dùng để xây dựng cây quyết định. Mỗi nút trên cây đại diện cho một quy tắc kiểm tra một đặc trưng của dữ liệu, và các nhánh sẽ dẫn đến quyết định phân loại cuối cùng: bình thường (norm) hay tấn công (anom). Sau khi được huấn luyện và kiểm thử, mô hình sẽ được lưu lại và sẵn sàng cho giai đoạn phát hiện, nơi nó sẽ phân tích các web log trong thời gian thực để cảnh báo về các cuộc tấn công web tiềm tàng. Quá trình này tạo ra một hệ thống phòng thủ tự động và thông minh.

4.1. Khám phá thuật toán Cây quyết định trong bảo mật web

Cây quyết định là một trong những thuật toán học máy có giám sát phổ biến nhất, được sử dụng rộng rãi cho cả bài toán phân loại và hồi quy. Mô hình này có cấu trúc giống như một cây, trong đó mỗi nút trong (internal node) đại diện cho một bài kiểm tra trên một thuộc tính, mỗi nhánh thể hiện kết quả của bài kiểm tra, và mỗi nút lá (leaf node) chứa một nhãn lớp (ví dụ: 'tấn công' hoặc 'bình thường'). Ưu điểm lớn nhất của Cây quyết định là mô hình sinh ra các quy tắc rất dễ hiểu, giúp các nhà phân tích an ninh mạng có thể diễn giải quyết định của máy [3]. Trong bối cảnh phát hiện tấn công web, thuật toán này có thể học các quy tắc từ dữ liệu URI đã được vector hóa để phân loại các yêu cầu mới. Tuy nhiên, một nhược điểm cần lưu ý là mô hình này có thể bị quá khớp (overfitting) nếu không được kiểm soát cẩn thận.

4.2. Mô hình hai giai đoạn Huấn luyện và Phát hiện tấn công

Mô hình được triển khai theo hai giai đoạn rõ rệt. Giai đoạn huấn luyện bắt đầu bằng việc thu thập một tập dữ liệu đã gán nhãn, ví dụ như bộ HttpParamsDataset [19], chứa hàng chục nghìn mẫu URI payload của cả truy vấn bình thường và các loại tấn công như SQLi, XSS, CMDi. Dữ liệu này sau khi được tiền xử lý (vector hóa bằng 3-gram, TF-IDF và giảm chiều bằng PCA) sẽ được đưa vào thuật toán Cây quyết định để xây dựng mô hình phân loại. Mô hình sau khi huấn luyện sẽ được lưu lại. Giai đoạn phát hiện là quá trình áp dụng mô hình đã huấn luyện vào thực tế. Hệ thống sẽ liên tục phân tích các dòng web log mới, tách lấy phần URI, áp dụng cùng quy trình tiền xử lý, và sau đó đưa vector đặc trưng vào mô hình để nhận về dự đoán. Nếu một yêu cầu được phân loại là tấn công, hệ thống sẽ đưa ra cảnh báo [2].

V. Kết quả thử nghiệm và đánh giá mô hình phát hiện tấn công

Để đánh giá tính hiệu quả của phương pháp đề xuất, một loạt các thử nghiệm đã được tiến hành trên cả tập dữ liệu mẫu và dữ liệu web log thực tế. Quá trình thử nghiệm không chỉ nhằm mục đích đo lường độ chính xác tổng thể của mô hình phát hiện mà còn phân tích chi tiết khả năng nhận diện từng loại tấn công web cụ thể như SQLi, XSS, duyệt đường dẫn (path traversal) và chèn lệnh hệ điều hành (CMDi). Môi trường thử nghiệm được thiết lập bằng các công cụ và thư viện phổ biến trong lĩnh vực khoa học dữ liệu, chẳng hạn như Python và các thư viện hỗ trợ học máy. Tập dữ liệu huấn luyện và kiểm thử được phân chia cẩn thận để đảm bảo kết quả đánh giá khách quan, tránh hiện tượng quá khớp (overfitting). Kết quả thu được từ các thử nghiệm cho thấy mô hình sử dụng thuật toán Cây quyết định đạt được độ chính xác cao trong việc phân loại các yêu cầu web, chứng minh tiềm năng ứng dụng thực tiễn của phương pháp này trong việc nâng cao bảo mật ứng dụng web.

5.1. Thiết lập môi trường và tập dữ liệu thử nghiệm mô hình

Quá trình thử nghiệm được thực hiện trong môi trường sử dụng ngôn ngữ lập trình Python cùng với các thư viện khoa học dữ liệu mạnh mẽ như Scikit-learn, Pandas và NumPy. Dữ liệu sử dụng cho việc huấn luyện và kiểm thử được lấy từ bộ HttpParamsDataset [19]. Bộ dữ liệu này chứa 31.067 mẫu URI payload, bao gồm cả các yêu cầu bình thường và các mẫu tấn công đã được gán nhãn rõ ràng. Dữ liệu được chia thành hai phần: hơn 20.000 mẫu cho việc huấn luyện mô hình phát hiện và phần còn lại dành cho việc kiểm thử để đánh giá hiệu suất. Ngoài ra, mô hình cũng được thử nghiệm trên dữ liệu web log thực tế để kiểm tra khả năng hoạt động trong môi trường thực.

5.2. Phân tích kết quả và độ chính xác của mô hình phát hiện

Kết quả thử nghiệm cho thấy mô hình phát hiện tấn công dựa trên Cây quyết định đạt được hiệu suất rất khả quan. Theo Bảng 3.2 trong luận văn gốc, mô hình có khả năng phát hiện chính xác các loại tấn công khác nhau với tỷ lệ cao [19]. Đặc biệt, đối với các dạng tấn công web phổ biến như SQLiXSS, mô hình cho thấy khả năng nhận diện tốt. Khi áp dụng trên dữ liệu web log thực, hệ thống cũng đã phát hiện thành công nhiều chuỗi truy vấn đáng ngờ, chứng tỏ khả năng tổng quát hóa tốt của mô hình. Các kết quả này khẳng định rằng việc sử dụng học máy để phân tích nhật ký web là một phương pháp hiệu quả và đáng tin cậy để tăng cường an ninh mạng cho các ứng dụng web hiện đại, giúp phát hiện sớm các mối đe dọa tiềm ẩn.

05/10/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1: TỔNG QUAN VỀ CÁC DẠNG TẤN CÔNG VÀO WEBSITE, ỨNG DỤNG WEB VÀ CÁC GIẢI PHÁP PHÒNG CHỐNG Chương này trình bày về kiến trúc ứng dụng web cũng như mô hình, các thành phần, cách thức hoạt động, cách thức liên kết giữa các thành phần đặc trưng thông thường trong một ứng dụng web và các yêu cầu về bảo mật. Ngoài ra, chương còn đề cập đến các hình thức tấn công vào ứng dụng web cũng như cách phòng chống bị tấn công của các hình thức tấn công phổ biến trong các năm gần đây dựa theo OWASP. Phần cuối của chương trình bày các biện pháp bảo mật ứng dụng web, bao gồm nguyên tắc chung và một số biện pháp bảo mật cụ thể cho ứng dụng web. Kiến Trúc Ứng Dụng Web và Các Yêu Cầu Bảo Mật 1.1 Kiến trúc ứng dụng web Dưới góc độ chức năng, ứng dụng Web là các chương trình máy tính cho phép người dùng website đăng nhập, truy vấn vào ra dữ liệu qua mạng Internet trên trình duyệt Web yêu thích của họ, mang tính kỹ thuật nhiều hơn có thể giải thích các ứng dụng Web truy vấn máy chủ chứa nội dung và tạo tài liệu Web động để phục vụ yêu cầu của máy khách.

Giao diện web đặt ra rất ít giới hạn khả năng người dùng. Thông qua JavaScript, DHTML, Flash và những công nghệ khác, những phương pháp chỉ ứng dụng mới có như vẽ trên màn hình, chơi nhạc, và dùng được bàn phím và chuột tất cả đều có thể thực hiện được. Ứng dụng web phổ biến nhờ vào sự có mặt vào bất cứ nơi đâu của trình duyệt web và kết nối Internet. Khả năng cập nhật và bảo trì ứng dụng Web mà không phải phân phối và cài đặt phần mềm trên hàng ngàn máy tính của người dùng cũng là một lý do cho sự phổ biến của nó.

Một ứng dụng web (Web application) có thể gồm các thành phần: Máy khách web/trình duyệt web (Web client/web browser), Máy chủ web (HTTP/web server), URL/URI, Web session và cookie, Bộ diễn dịch và thực hiện các server 7 script, Các server script (CGI – Common Gateway Interface), Máy chủ cơ sở dữ liệu và Hạ tầng mạng TCP/IP kết nối giữa máy khách và máy chủ web.1: Kiến trúc chuẩn của ứng dụng web [1] Hình 1.1 biểu diễn kiến trúc chuẩn của hệ thống ứng dụng web (hay ngắn gọn là ứng dụng web), trong đó mô tả các thành phần của một ứng dụng web và giao tiếp giữa chúng. Theo đó, các thành phần của một ứng dụng web gồm Web Browser (Trình duyệt), Web Server (Máy chủ web), Application Server (Máy chủ ứng dụng), Data (Kho chứa dữ liệu – thường là cơ sở dữ liệu), File System (Hệ thống file trên máy chủ) và External System (Các hệ thống bên ngoài). Web Browser tạo và gửi yêu cầu về trang web (Page Request) đến Web Server. Nếu đó là yêu cầu trang web tĩnh, Web Server sẽ đọc nội dung trang từ File System và gửi trang web cho Web Browser.

Nếu đó là yêu cầu trang web động, Web Server sẽ chuyển yêu cầu cho Application Server xử lý. Application Server sẽ dịch và thực hiện mã script trong trang web để tạo kết quả. Application Server có thể cần truy nhập Data, File System, hoặc External System để xử lý yêu cầu. Kết quả xử lý yêu cầu được chuyển lại cho Web Server để tạo trang web và gửi cho Web Browser.

Các máy chủ web phổ biến hiện này có thể kể tới là Apache, Nginx, IIS, Tomcat… Các ứng dụng web thì tùy thuộc vào yêu cầu triển khai mà có thể được tạo nên bởi các ngôn ngữ lập trình khác nhau như: C#, Java, Python, PHP, Ruby… Cơ sở dữ liệu (Data) sẽ đóng vai trò lưu trữ, cung cấp thông tin cho ứng dụng web trong quá trình xử lý request. Một số hệ quản trị cơ sở dữ liệu thường được sử dụng 8 bao gồm: SQL Server, MySQL, MongoDB, Oracle. Ngoài ra, tùy thuộc vào độ phức tạp, quy mô, yêu cầu trong việc phát triển mà website có thể có thêm nhiều thành phần khác như Message Queue, Proxy, Cache.  Giao thức HTTP HTTP là viết tắt của Hypertext Transfer Protocol hay còn gọi là giao thức truyền tải siêu văn bản, là một trong năm giao thức chuẩn của mạng internet, được dùng để liên hệ thông tin giữa máy cung cấp dịch vụ (Web server) và máy khách web (Web client) trong mô hình Client/Server.

HTTP sử dụng cổng chuẩn 80 là một giao thức ứng dụng của bộ giao thức TCP/IP.  Giao thức HTTPS HTTPS là viết tắt của Hypertext Transfer Protocol Secure, là một giao thức kết hợp giữa giao thức HTTP và giao thức bảo mật SSL hoặc TLS nhằm mục đích gia tăng tính an toàn cho việc truyền dữ liệu giữa Web server và trình duyệt Web. Giao thức HTTPS thường được dùng trong các giao dịch nhạy cảm cần tính bảo mật cao sử dụng các kỹ thuật mật mã trước khi gửi giúp bảo mật thông tin trao đổi tránh bị nghe lén và lạm dụng. Theo mặc định giao thức HTTPS sử dụng cổng 443 để truyền dữ liệu.

Máy khách web và máy chủ web giao tiếp với nhau bằng giao thức HTTP hoặc HTTPS thông qua phương thức yêu cầu/đáp ứng (Request/Response), trong đó yêu cầu là http request gửi từ máy khách web lên máy chủ web và đáp ứng hay phản hồi là http response gửi từ máy chủ web tới máy khách web. Cấu trúc của một http request, như mô tả trên Hình 1.2 gồm các thành phần sau: o Method: là phương thức mà HTTP Request này sử dụng, thường là GET,POST, ngoài ra còn một số phương thức khác như HEAD, PUT, DELETE, OPTION, CONNECT. 9 o URI: là địa chỉ định danh của tài nguyên. URI có thể là dấu *.

– HTTP version: là phiên bản HTTP đang sử dụng o Request headers: cho phép client gửi thêm các thông tin bổ sung về thông điệp HTTP request và về chính web browser. Một số trường request header thông dụng như: Accept, Cookie, User-Agent, Content- Type, Connection… o Request body: nội dung web browser gửi cho web server (file, nội dung dạng json, parameter post…) Hình 1.2: Cấu trúc của http request Hình 1.3: Cấu trúc của http reponse Cấu trúc của một http response, như mô tả trên Hình 1.3 gồm các thành phần sau: 10 o HTTP-version: phiên bản HTTP cao nhất mà server hỗ trợ. o Status-Code: mã kết quả trả về. o Reason-Phrase: mô tả về Status-Code.

o Response header: phép web server gửi thêm các thông tin bổ sung về thông điệp HTTP response o Response body: nội dung ứng dụng web trả về cho web browser 1.2 Các yêu cầu bảo mật ứng dụng web, website Trước những nguy cơ tiềm ẩn về an ninh mạng như hiện nay để đảm bảo tính bảo mật và giảm thiểu các rủi ro liên quan đến ứng dụng web cần có những chính sách, tiêu chuẩn an toàn thông tin cho ứng dụng web, website. Dưới đây liệt kê một số yêu cầu bảo mật ứng dụng web, website. Yêu cầu về cài đặt  Yêu cầu cài đặt trên hệ điều hành an toàn, đã được thiết lập cấu hình chính sách bảo mật để đảm bảo ATTT mức hệ điều hành cho web server.  Phiên bản cài đặt phải cập nhật các bản vá của nhà sản xuất để tránh bị tấn công qua các lỗ hổng đã biết. Tắt/disable các thành phần mặc định  Gỡ bỏ các thư mục/trang mặc định như: các trang ví dụ, hướng dẫn, các trang quản trị web server từ xa, các trang phục vụ development, debug để tránh bị khai thác lỗ hổng qua các nội dung web mặc định.  Tắt các Module/Extension nguy hiểm không sử dụng như: các module hiển thị thông tin server (module info, status, version), hiển thị nội dung thư mục, các module xử lý CGI, xử lý webdav để tránh bị khai khác các module extension không sử dụng. 11  Tắt chế độ tự động triển khai hoặc gỡ lỗi trên web server (nếu có).

Chế độ tự động triển khai hoặc gỡ lỗi trên web server có thể đưa ra nhiều thông tin nhạy cảm hoặc gây mất kiểm soát về security. Thay đổi các thành phần mặc định Thay đổi thông báo lỗi mặc định của web server. Tránh để lộ các thông tin nhạy cảm của hệ thống khi xảy ra lỗi như 500, 503. Thay đổi thông tin banner của dịch vụ HTTP, không để lộ thông tin phiên bản hệ điều hành, web server để tránh việc hacker có thể tìm ra phiên bản web server.

Từ đó, họ tấn công vào các lỗ hổng 1-days liên quan, đã được công bố [12]. Giới hạn truy cập  Chỉ truy cập quản trị từ xa trong mạng nội bộ của doanh nghiệp và có phương thức xác thực người dùng. Hacker có thể chiếm quyền kiểm soát dịch vụ web qua kênh quản trị từ xa từ ngoài internet. Do đó cần cô lập các kết nối quản trị từ xa và có các phương thức xác thực người dùng như: sử dụng tài khoản/mật khẩu, OTP, private key…  Không cho phép liệt kê file, thư mục để tránh bị hacker phát hiện ra các file, thư mục nhạy cảm của hệ thống.

Các Nguy Cơ và Các Dạng Tấn Công Lên Ứng Dụng Web 1.1 Các nguy cơ và các lỗ hổng bảo mật trong website, ứng dụng web (TOP 10 OWASP 2017) Open Web Application Security Project (OWASP) [8][9][10] là một tổ chức bao gồm các chuyên gia bảo mật hàng đầu thế giới, chuyên cung cấp các thông tin về những ứng dụng và rủi ro đặt ra một cách trực tiếp, khách quan và thực tế nhất. Từ năm 2013 đến nay, cứ 4 năm 1 lần, OWASP lại công bố danh sách Top 10 các rủi ro bảo mật ứng dụng lớn nhất, được gọi là OWASP Top 10. 12 Danh sách này được coi là chuẩn AppSec và được cộng đồng an ninh mạng tin tưởng. Danh sách bao gồm thông tin mới nhất về các lỗ hổng, các mối đe dọa và cuộc tấn công cũng như những thủ thuật để phát hiện và khắc phục.

Các thành viên dự án lập ra danh sách này dựa trên việc phân tích tỉ lệ xuất hiện và mức độ nghiêm trọng của từng mối đe dọa. OWASP Top 10 năm 2017 được phát hành công khai, dựa trên cuộc thăm dò, kiểm tra hơn 2,3 triệu lỗ hổng tác động đến 50000 ứng dụng, bao gồm 2 bản cập nhật lỗ hổng quy mô lớn và cập nhật các kịch bản tấn công mới. Phần tiếp theo mô tả danh sách Top 10 của năm 2017. A1 – Injection (Lỗi nhúng mã) Nếu ứng dụng của bạn có thể nhận dữ liệu đầu vào người dùng đến cơ sở dữ liệu back-end thì ứng dụng của bạn có thể sẽ phải đối mặt với cuộc tấn công bằng mã nhúng.

Lỗi nhúng mã (Injection) là tập hợp các lỗ hổng bảo mật xảy ra khi dữ liệu đáng ngờ được chèn vào ứng dụng dưới dạng lệnh hay truy vấn.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ