Xây Dựng Công Cụ Nhận Dạng Tấn Công Ứng Dụng WordPress Dựa Trên Sự Bất Thường (tt)Xây Dựng Công Cụ Nhận Dạng Tấn Công Ứng Dụng WordPress Dựa Trên Sự Bất Thường (tt)Xây Dựng Công Cụ Nhận Dạng Tấn Công Ứng Dụng WordPress Dựa Trên Sự Bất Thường (tt)Xây Dựng Công Cụ Nhận Dạng Tấn Công Ứng Dụng WordPress Dựa Trên Sự Bất Thường (tt)Xây Dựng Công Cụ Nhận Dạng Tấn Công Ứng Dụng WordPress Dựa Trên Sự Bất Thường (tt)Xây Dựng Công Cụ Nhận Dạng Tấn Công Ứng Dụng WordPress Dựa Trên Sự Bất Thường (tt)Xây Dựng Công Cụ Nhận Dạng Tấn Công Ứng Dụng WordPress Dựa Trên Sự Bất Thường (tt)Xây Dựng Công Cụ Nhận Dạng Tấn Công Ứng Dụng WordPress Dựa Trên Sự Bất Thường (tt)Xây Dựng Công Cụ Nhận Dạng Tấn Công Ứng Dụng WordPress Dựa Trên Sự Bất Thường (tt)Xây Dựng Công Cụ Nhận Dạng Tấn Công Ứng Dụng WordPress Dựa Trên Sự Bất Thường (tt)Xây Dựng Công Cụ Nhận Dạng Tấn Công Ứng Dụng WordPress Dựa Trên Sự Bất Thường (tt)Xây Dựng Công Cụ Nhận Dạng Tấn Công Ứng Dụng WordPress Dựa Trên Sự Bất Thường (tt)Xây Dựng Công Cụ Nhận Dạng Tấn Công Ứng Dụng WordPress Dựa Trên Sự Bất Thường (tt)
Trang 2Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: PGS.TS Trần Văn Hoài
Phản biện 1: TS Nguyễn Tuấn Đăng
Phản biện 2: TS Đàm Quang Hồng Hải
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu chính Viễn thông
Vào lúc: 10 giờ 20 ngày 05 tháng 8 năm 2017
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
Trang 3MỞ ĐẦU
CMS (Content Management System) hay còn gọi là
hệ thống quản lý nội dung được sử dụng nhằm mục đích giúp người quản trị trang web dễ dàng quản lý, chỉnh sửa nội dung Hệ thống CMS của Wordpress được sử dụng rất phổ biến và chiếm thị phần cao nhất so với các hệ thống khác 59,1%, Joomla chiếm 6,9%, Drupal chiếm 4,7%, Magento chiếm 2,5% và Blogrer chiếm 2,2% [15] theo số liệu khảo sát từ đầu tháng 5 năm 2017 của w3techs Trên thực tế có hơn 27% các trang web trên thế giới đang sử dụng nền tảng của Wordpress
Tuy nhiên hệ thống Wordpress luôn tìm ẩn các lỗ hổng bảo mật trong các ứng dụng được cài đặt Những năm gần đây, các ứng dụng web đang là mục tiêu tấn công phổ biến [5] của các tin tặc Để bảo vệ các ứng dụng trong Wordpress cần xây dựng một lớp bảo vệ có khả năng tùy biến cao, dễ dàng cài đặt và cập nhật cơ chế phát hiện kịp thời nhằm sớm nhận biết các dấu hiệu bất thường của các tấn công mới
Mục đích của luận văn tập trung nghiên cứu và xây dựng công cụ nhận dạng các tấn công phổ biến từ bên ngoài vào hệ thống Wordpress dựa trên các mô hình học các hành
vi bình thường, từ đó đưa ra các thông báo, chính sách ngăn chặng hoặc cách ly theo dõi tự động trên hệ thống Với mục đích đó, luận văn được bố cục các nội dung sau:
Trang 4Chương 1: Tổng quan về bảo mật và các giải pháp nhận dạng tấn công ứng dụng web
- Phương pháp tạo tập dữ liệu huấn luyện
- Mô hình và thuật toán kết hợp nhận dạng
- Mô hình nhận dạng
Chương 4: Cài đặt, thực nghiệm và đánh giá
Trang 5CHƯƠNG 1 – TỔNG QUAN VỀ BẢO MẬT VÀ CÁC
GIẢI PHÁP NHẬN DẠNG TẤN CÔNG
ỨNG DỤNG WEB
Chương này, trình bày tổng quan về vấn đề bảo mật Website, hệ thống quản lý nội dung CMS, kiến trúc Wordpress, mô hình hoạt động của ứng dụng web, phương pháp bảo mật quan trọng, tổng quan học máy và các ứng dụng của học máy
1.1 Những vấn đề bảo mật Website và CMS
1.1.1 Khái niệm về Website và CMS
Website là một “trang web” trên mạng Internet, là nơi giới thiệu những thông tin, hình ảnh về một tổ chức, đơn vị, doanh nghiệp… và sản phẩm, dịch vụ của họ (hay giới thiệu bất cứ thông tin gì) để khách hàng (người dùng) có thể truy cập
ở bất kỳ nơi đâu, bất cứ lúc nào khi được kết nối Internet
Trong khi đó, CMS (Content Management System) là
hệ thống quản trị nội dung nhằm mục đích giúp người quản trị
dễ dàng quản lý, chỉnh sửa nội dung Có rất nhiều CMS trên thế giới, nhưng thông dụng nhất hiện nay vẫn là Wordpress Wordpress là một phần mềm nguồn mở (Open Source Software) được viết bằng ngôn ngữ lập trình PHP (Hypertext Preprocessor) và sử dụng hệ quản trị cơ sở dữ liệu MySQL
Trang 6Wordpress được xem như là một hệ quản trị nội dung vượt trội để hỗ trợ người dùng tạo ra nhiều thể loại Website khác nhau Hầu như mọi hình thức Website với quy mô vừa và nhỏ đều có thể triển khai trên nền tảng Wordpress Nhưng không có nghĩa là Wordpress chỉ thích hợp với các dự án nhỏ,
mà hiện nay có tới khoảng 27% Website trong danh sách 100 Website lớn nhất thế giới sử dụng mã nguồn Wordpress Ví dụ như trang tạp chí TechCrunch, Mashable, CNN, BBC America Ở Việt Nam, Wordpress đang chiếm ưu thế bởi tính
dễ sử dụng, dễ xây dựng và nâng cấp thêm các chức năng mới thông qua một thành phần gọi là plugin
Plugin là một trình cắm thêm vào Website để bổ sung các chức năng cần thiết Plugin đơn giản là những plugin không cần tương tác với cơ sở dữ liệu, như plugin tạo ra các icons social, chèn link để truy cập tới facebook được chỉ định Ngược lại những plugin phức tạp có tương tác với cơ sở dữ liệu, hỗ trợ tạo ra các trang shopping, social network, các trang cấu hình bảo mật an toàn hệ thống…Hình 1.1 cho thấy vị trí plugin được nạp trong quá trình xử lý dữ liệu của Wordpress
Trang 7Hình 1.1: Quy trình xử lý dữ liệu Wordpress
1.1.2 Kiến trúc của Wordpress
Wordpress có kiến trúc như hình 1.2 sau:
Hình 1.2: Kiến trúc tổng quan của Wordpress
(Nguồn: https://andy.wordpress.com)
Trang 8Không như kiến trúc của các nền tảng web khác, Wordpress xử lý các chức năng độc lập trên từng ứng dụng như: post.php, wp-login.php, comment.php, date.php Hình 1.3 cho thấy trình tự tạo môi trường thông qua các hàm và lời gọi các ứng dụng tương ứng
Hình 1.3: Chi tiết nạp môi trường trong Wordpress
Hình 1.4: Các giá trị cần có để kết nối CSDL của Wordpress
Cấu trúc thư mục và tập tin mặc định của Wordpress được tổ chức như hình 1.5 sau đây:
// Load the WordPress library
require_once( dirname( FILE ) '/wp-load.php' );
// Set up the WordPress query
wp();
// Load the theme template
require_once( ABSPATH WPINC '/template-loader.php' ); }
/** The name of the database for WordPress */
define('DB_NAME', 'wp'); // Thông tin cơ sở dữ liệu
/** MySQL database username */
define('DB_USER', 'mysql'); // User để kết nối với cơ sở dữ liệu /** MySQL database password */
define('DB_PASSWORD', ' mysql '); // Mật khẩu của user
/** MySQL hostname */
define('DB_HOST', 'localhost'); // Để mặc định là localhost
Trang 9Hình 1.5: Cấu trúc tổ chức thƣ mục mặc định của Wordpress
Hình 1.6: Cấu trúc tổ chức thƣ mục hiện đại của Wordpress
Trang 10Cấu trúc trên cho thấy các thay đổi như: lõi Wordpress có thư mục riêng; thư mục nội dung được cấu hình cùng cấp thư mục lõi, không lồng bên trong lõi như cấu trúc chung; thư mục themes được cấu hình riêng như thư mục bổ sung riêng biệt; tập tin cấu hình được đặt ở mức trên thư mục chính
Việc tách thư mục lõi và thư mục nội dung có lợi ở chổ: cấu trúc rõ ràng hơn; quản lý công việc đơn giản và thuận tiện hơn (ví dụ như sao lưu); áp dụng các nguyên tắc phát triển hiện đại
Nhìn chung hệ thống Wordpress gồm 3 thư mục chính:
wp-admin, wp-content, wp-includes và một số tập tin chạy
ngoài thư mục gốc, mỗi loại tập tin (ứng dụng) sẽ phục vụ cho một mục đích cụ thể của Wordpress như đã đề cặp
1.1.3 Mô hình hoạt động của ứng dụng web
Trình duyệt phía người dùng Hệ thống phía máy chủ
Máy chủ cơ sở dữ liệu
Máy chủ ứng dụng web Máy chủ web
Hình 1.7: Mô hình hoạt động của ứng dụng web
(Nguồn: windowsecurity.com)
Trang 111.1.4 Vấn đề bảo mật Website và CMS
1.2 Phương pháp bảo mật quan trọng
Dựa vào danh sách kiểm tra bảo mật của Wordpress [18], có nhiều vấn đề cần quan tâm như: Phần mềm bị lỗi thời (Out-of-date), cập nhật, loại bỏ các plugin và các theme không sử dụng, mật khẩu, thay đổi các khóa (keys) bảo mật
và mã muối (salts), vai trò của người quản trị, thực hiện cơ chế xác thực 2 bước (Two-Factor Authentication), di chuyển hoặc thay đổi tài khoản mặc định
1.2.1 Danh sách rủi ro bảo mật cho ứng dụng Wordpress
OWASP [11]
1.2.2 Các phương pháp nhận dạng tấn công ứng dụng web
Có 2 phương pháp chính đó là sử dụng kỹ thuật nhận dạng tĩnh hoặc kỹ thuật nhận dạng động [20]
Hình 1.8: Phương pháp phát hiện tấn công ứng dụng web
Kỹ thuật nhận dạng tấn công ứng dụng web
Kỹ thuật nhận dạng động (Real-time detection)
Kỹ thuật nhận dạng tĩnh (Log-based detection)
Nhận dạng tấn công
trên mạng
(Network-based)
Nhận dạng tấn công trên máy chủ (Webserver- based)
Trang 12dữ liệu, giai đoạn dựng mô hình nhận dạng Cụ thể như:
Học danh sách thực tế các đường dẫn được truy cập hợp pháp
Học các quan hệ hợp lệ giữa đường dẫn và các tham số cho mỗi đường dẫn duy nhất
Học một thuộc tính đến trước một thuộc tính khác khi chúng xuất hiện cùng nhau trong danh sách tham số
Học kiểu giá trị bằng cách xem xét mẫu của các kiểu giá trị cho từng thuộc tính, ví dụ: kiểu string, integer, boolean, hay double v.v…Chi tiết được trình bày trong
mục 3.4
Trang 13CHƯƠNG 2 – CÁC MÔ HÌNH NHẬN DẠNG TẤN CÔNG ỨNG DỤNG WORDPRESS DỰA TRÊN SỰ
BẤT THƯỜNG
Chương này, trình bày định nghĩa tổng quát về bất thường, phân tích các đặc điểm của các mô hình nhận dạng tấn công ứng dụng Wordpress
2.1 Định nghĩa tổng quát về sự bất thường
Sự bất thường là các mẫu trong dữ liệu mà không phù hợp với khái niệm xác định các hành vi bình thường
Hình 2.1: Hình minh họa sự bất thường trong dữ liệu
Hình 2.1 cho thấy sự bất thường trong một tập hợp dữ liệu 2 chiều đơn giản Các dữ liệu có hai khu vực bình thường
là N1 và N2, điểm O1 và O2, và các điểm trong khu vực O3,
Trang 14đơn giản là xác định một khu vực đại diện cho hành vi bình thường và tuyên bố bất kỳ quan sát trong các dữ liệu mà không thuộc về khu vực này như một sự bất thường Tuy nhiên phương pháp này gặp một số yếu tố khó khăn như sau:
Xác định một khu vực bình thường trong đó bao gồm tất
cả các hành vi có thể bình thường là rất khó khăn Ngoài
ra, ranh giới giữa hành vi bình thường và bất thường thường không chính xác Vì vậy, một quan sát bất thường nằm gần ranh giới thực sự có thể là bình thường,
và ngược lại
Khi bất thường là kết quả của các hành động độc hại, có chủ đích thì người thực hiện thường sẽ thích ứng để làm cho các quan sát dị thường xuất hiện như bình thường,
do đó khiến cho công việc xác định hành vi bình thường khó khăn hơn
Trong nhiều lĩnh vực hành vi bình thường đang được hoàn thiện và một quan niệm hiện tại của hành vi bình thường có thể không có đủ đại diện trong tương lai
Các khái niệm chính xác của một sự bất thường là khác nhau cho các lĩnh vực ứng dụng khác nhau Ví dụ, trong lĩnh vực y tế một sự sai lệch nhỏ từ bình thường (ví dụ, biến động về nhiệt độ cơ thể) có thể là một sự bất thường, trong khi độ lệch tương tự trong lĩnh vực thị
Trang 15trường chứng khoán (ví dụ, biến động về giá trị của một
cổ phiếu) có thể được coi là bình thường Vì vậy việc áp dụng một kỹ thuật được phát triển trong một tên miền khác là không đơn giản
Sẵn có của dữ liệu được dán nhãn cho đào tạo/xác nhận của các mô hình được sử dụng bởi bất thường kỹ thuật phát hiện thường là một vấn đề lớn
Thường thì các dữ liệu chứa noise (noise có thể được định nghĩa như là một hiện tượng trong dữ liệu mà không phải là mối quan tâm của các nhà phân tích, nhưng hoạt động như một trở ngại để phân tích dữ liệu)
mà có xu hướng được tương tự như các bất thường và
do đó rất khó để phân biệt và loại bỏ
Do những thách thức trên, mô hình phát hiện bất thường ở dạng chung nhất là khó thực hiện Trong thực tế, hầu hết các kỹ thuật phát hiện bất thường hiện giải quyết một vấn
đề cụ thể và việc xây dựng được dựa trên các yếu tố khác nhau như bản chất của dữ liệu, sẵn có của dữ liệu có nhãn, loại bất thường được phát hiện Các nhà nghiên cứu đã áp dụng các khái niệm từ nhiều lĩnh vực đa dạng như thống kê, học máy, khai thác dữ liệu, lý thuyết thông tin, lý thuyết quang phổ, và
đã áp dụng vào công thức cho vấn đề cụ thể
Trang 16Hình 2.2: Các kỹ thuật cơ bản trong nhận dạng bất thường
Phân loại sự bất thường được mô tả trong hình 2.3 sau:
Hình 2.3: Phân loại sự bất thường
Research Areas
Machine Learning Data Mining Statistics Information Theory Spectral Theory
…
Anomaly Detection Technique
Problem Characteristics
Application Domains
Intrustion Detection Fraud Detection Fraud/Damage Detection Medical Informatics
…
Trang 17Phân loại các bất thường được thể hiện trong hình 2.4 sau:
Hình 2.4: Hình mô tả phân loại bất thường
2.2 Các mô hình nhận dạng
2.2.1 Cấu trúc yêu cầu (Request structure)
2.2.2 Các giá trị yêu cầu (Request values)
2.2.3 Phản hồi (Response)
2.2.4 Cấu trúc phiên (Session structure)
2.2.5 Hồ sơ người dùng (User profile)
2.2.6 Tổng quan hệ thống (System overview)
Trang 18CHƯƠNG 3 – PHƯƠNG PHÁP HỌC MÁY TRONG NHẬN DẠNG TẤN CÔNG ỨNG DỤNG WORDPRESS
DỰA TRÊN SỰ BẤT THƯỜNG
Chương này, trình bày những nhận xét và đánh giá các mô hình ở chương 2, đề xuất mô hình phù hợp với ứng dụng Wordpress Đồng thời nêu phương pháp tạo tập dữ liệu huấn luyện được sử dụng trong đề tài và phân tích mô hình
và thuật toán kết hợp để thực hiện nhận dạng
3.1 Nhận xét và đánh giá mô hình
- Mô hình nhận dạng theo cấu trúc yêu cầu
Bảng 3.1: Đánh giá mô hình cấu trúc yêu cầu
Cấu trúc yêu cầu (Request structure)
Ưu điểm Dễ dàng triển khai
- Mô hình nhận dạng theo các giá trị yêu cầu
Bảng 3.2: Đánh giá mô hình các giá trị của yêu cầu
Các giá trị của yêu cầu (Request values)
Ưu điểm Chuyên dụng
Phân tích dữ liệu ở mức thấp nhất
Có thể tùy chỉnh cho các thuộc tính khác nhau
Trang 19Hạn chế Chuyên hóa
Có khả năng khối lượng công việc cao Không xem xét quan hệ giữa các giá trị các thuộc tính
Nhận xét Có khả năng tùy chỉnh cao
- Mô hình phản hồi
Bảng 3.3: Đánh giá mô hình phản hồi
Phản hồi của máy chủ (response)
Ưu điểm Xem xét một khía cạnh quan trọng
Dễ dàng trong cách tiếp cận cơ bản nhất của nó Hạn chế Rất phức tạp khi nhiều thông tin hơn được
đưa vào tính toán
Không phù hợp với dữ liệu sẵn có như web log Tầm quan trọng thấp
Nhận xét Các vấn đề phức tạp
- Mô hình cấu trúc phiên
Bảng 3.4: Đánh giá mô hình cấu trúc phiên
Cấu trúc phiên (Session structure)
Ưu điểm Bao gồm lịch sử và ngữ cảnh
Phát hiện được các tấn công mà các mô hình trước không thể
Hạn chế Nhanh chóng trở nên rất phức tạp, tăng theo
cấp số nhân
Nhận xét Tổng quát, bao gồm ngữ cảnh
Trang 20- Mô hình hồ sơ người dùng
Bảng 3.5: Đánh giá mô hình hồ sơ người dùng
Hồ sơ người dùng (User profile)
Ưu điểm Chuyên hóa, xem xét người dùng đơn
Có thể phát hiện thay đổi trong hành vi
Bảng 3.6: Đánh giá mô hình tổng quan hệ thống
Tổng quan hệ thống (System overview)
Ưu điểm Phát hiện các cuộc tấn công từ những kẻ tấn
công cộng tác
Hạn chế Không hỗ trợ trong dữ liệu
Nhận xét Nguồn dữ liệu không thích hợp
3.2 Đề xuất mô hình nhận dạng
Sau khi nhận xét và đánh giá từng mô hình một cách độc lập tôi nhận thấy: mô hình tổng quan hệ thống (System overview) gặp khó khăn trong vấn đề sử dụng dữ liệu và độ phù hợp của mô hình Mô hình hồ sơ người dùng (User profile), cấu trúc phiên (Sesssion structure), phản hồi máy chủ (response) thì có nhiều tính năng chung và các điểm mạnh/yếu
Trang 21khác nhau bên cạnh các đóng góp chồng chéo lẫn nhau Các dữ liệu tổng quát trong các mô hình không được sử dụng trực tiếp cho từng mô hình dẫn đến các vấn đề phức tạp cho việc phân tích và sử dụng dữ liệu Bởi dữ liệu tổng quát trong một mô hình, nó sẽ kết thúc với một mô hình phức tạp hơn thay vì tạo
ra một mô hình đơn giản dễ hiểu
Mô hình cấu trúc yêu cầu (Request structure) và các giá trị yêu cầu (Request values) có thể sử dụng kết hợp rất tốt để
bổ sung cho nhau Mô hình Request structure nó căn bản cả về tính năng và cấu trúc, còn mô hình Request values phân tích giá trị của mỗi thuộc tính kỹ lưỡng hơn Nó có thể phân tích xâu hơn các thuộc tính cơ bản như chiều dài và kiểu ký tự, xem xét các thuộc tính nâng cao hơn như sự phân bố ký tự và suy luận cấu trúc Mục tiêu của mô hình kết hợp này nhằm phát hiện các hành động độc hại (bất thường) bằng cách xem xét các yêu cầu khác với các yêu cầu từ hệ thống đã học Các hành động này có thể được phát hiện bởi sự thay đổi trong cấu trúc chung, bởi các thuộc tính sai hoặc bởi các giá trị khác biệt so với phạm vi giá trị thông thường đã được học Nhiệm vụ của
mô hình cần phải đối phó với các khía cạnh trên để các chức năng có thể hoạt động đúng đắn trên hệ thống