1. Trang chủ
  2. » Công Nghệ Thông Tin

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 (LV thạc sĩ)

77 107 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 77
Dung lượng 2,84 MB

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

Nội dung

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 (LV thạc sĩ)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 (LV thạc sĩ)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 (LV thạc sĩ)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 (LV thạc sĩ)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 (LV thạc sĩ)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 (LV thạc sĩ)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 (LV thạc sĩ)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 (LV thạc sĩ)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 (LV thạc sĩ)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 (LV thạc sĩ)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 (LV thạc sĩ)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 (LV thạc sĩ)

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

-

NGUYỄN TRỌNG NGHĨA

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

LUẬN VĂN THẠC SĨ KỸ THUẬT

(Theo định hướng ứng dụng)

THÀNH PHỐ HỒ CHÍ MINH – 2017

Trang 2

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

-

NGUYỄN TRỌNG NGHĨA

XÂY DỰNG CÔNG CỤ NHẬN DẠNG TẤN CÔNG

ỨNG DỤNG WORDPRESS DỰA TRÊN

Trang 3

LỜI CAM ĐOAN

Tôi cam đoan luận văn là công trình nghiên cứu của bản thân

Các số liệu, kết quả nêu trong luận văn này là trung thực và chưa từng được

ai công bố trong bất kỳ luận văn nào trước đây

TP HCM, ngày 22 tháng 5 năm 2017

Học viên thực hiện luận văn

Nguyễn Trọng Nghĩa

Trang 4

LỜI CẢM ƠN

Trước tiên, tôi xin bày tỏ lòng biết ơn chân thành đến Thầy PGS.TS Trần Văn Hoài đã tận tình chỉ dạy, hướng dẫn và tạo mọi điều kiện thuận lợi để tôi hoàn thành tốt luận văn này Đồng thời tôi cũng xin gởi lời cảm ơn đến anh Huỳnh Hoàng Tân đã luôn nhiệt tình chỉ dẫn, bên cạnh tôi trong suốt thời gian tôi thực hiện luận văn Tôi cũng xin gửi lời cảm ơn đến Quý Thầy Cô tại Học Viện Công Nghệ Bưu Chính Viễn Thông Cơ sở TP Hồ Chí Minh đã tận tình giảng dạy và trang bị cho tôi những kiến thức quý báu trong quá trình tham gia học tập tại Trường

Tôi chân thành biết ơn sâu sắc đến gia đình và bạn bè đã động viên và giúp

đỡ tôi hoàn thành khóa học này

TP HCM, ngày 22 tháng 5 năm 2017

Học viên thực hiện luận văn

Nguyễn Trọng Nghĩa

Trang 5

MỤC LỤC

Lời cam đoan i

Lời cảm ơn ii

Mục lục iii

Danh mục các thuật ngữ, chữ viết tắt v

Danh sách bảng vi

Danh sách hình vẽ vii

Mở đầu 1

CHƯƠ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 3

1.1 Những vấn đề bảo mật Website và CMS 3

1.1.1 Khái niệm về Website và CMS 3

1.1.2 Kiến trúc của Wordpress 5

1.1.3 Mô hình hoạt động của ứng dụng web 8

1.1.4 Vấn đề bảo mật Website và CMS 9

1.2 Phương pháp bảo mật quan trọng 10

1.2.1 Danh sách rủi ro bảo mật cho ứng dụng Wordpress OWASP 14

1.2.2 Các phương pháp nhận dạng tấn công ứng dụng web 21

1.3 Học máy 23

1.3.1 Tổng quan 23

1.3.2 Các ứng dụng của học máy 25

CHƯƠ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 26

2.1 Định nghĩa tổng quát về sự bất thường 26

2.2 Các mô hình nhận dạng 29

2.2.1 Cấu trúc yêu cầu (Request structure) 29

2.2.2 Các giá trị yêu cầu (Request values) 30

2.2.3 Phản hồi (Response) 32

2.2.4 Cấu trúc phiên (Session structure) 33

2.2.5 Hồ sơ người dùng (User profile) 35

2.2.6 Tổng quan hệ thống (System overview) 36

CHƯƠ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 38

Trang 6

3.1 Nhận xét và đánh giá mô hình 38

3.2 Đề xuất mô hình nhận dạng 43

3.3 Phương pháp tạo tập dữ liệu huấn luyện 44

3.4 Mô hình và thuật toán kết hợp nhận dạng 46

3.5 Mô hình nhận dạng 51

CHƯƠNG 4 – CÀI ĐẶT, THỰC NGHIỆM VÀ ĐÁNH GIÁ 55

4.1 Thực nghiệm 57

4.2 Kết quả thực nghiệm và đánh giá 60

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 64

TÀI LIỆU THAM KHẢO 65

PHỤ LỤC I DANH SÁCH MÃ TRẠNG THÁI HTTP 67

Trang 7

DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT

CMS Content Management System Hệ quản trị nội dung

CSRF Cross-Site Request Forgery Giả mạo yêu cầu

DDoS Distributed Denial of Service Tấn công từ chối dịch vụ phân tán HTML Hyper Text Markup Language Ngôn ngữ đánh dấu siêu văn bản HTTP Hypertext Transfer Protocol Giao thức truyền tải siêu văn bản ICD Idealized Character Distribution Sự phân bố ký tự lý tưởng

IDS Intrusion Detection System Hệ thống phát hiện xâm nhập NFA Non-deterministic finite automaton Ôtômát hữu hạn không đơn định NIDS Network-based Intrusion Detection

PHP Hypertext Preprocessor Ngôn ngữ lập trình PHP

RBID Rule-based Intrusion Detection Phát hiện xâm nhập dựa vào các

luật SQL Structured Query Language Ngôn ngữ truy vấn cấu trúc

SSL Secure Sockets Layer Giao thức bảo mật SSL

TCP Transmission Control Protocol Giao thức điều khiển truyền vận URL Uniform Resource Locator Định vị Tài nguyên thống nhất URI Uniform Resource Identifier Định dạng tài nguyên thống nhất XML eXtensible Markup Language Ngôn ngữ đánh dấu mở rộng XSS Cross-Site Scripting Thực thi mã lệnh xấu

Trang 8

DANH SÁCH BẢNG

Bảng 3.2 Đánh giá mô hình các giá trị của yêu cầu 39

Bảng 4.1 Thống kê mẫu dữ liệu trong tập dữ liệu kiểm tra 58

Trang 9

DANH SÁCH HÌNH VẼ

Hình 1.4 Các giá trị cần có để kết nối cơ sở dữ liệu của Wordpress 6Hình 1.5 Cấu trúc tổ chức thư mục mặc định của Wordpress 7Hình 1.6 Cấu trúc tổ chức thư mục hiện đại của Wordpress 7

Hình 1.8 Các mã salts và khóa bảo mật trong Wordpress 13Hình 1.9 Phương pháp phát hiện tấn công ứng dụng web 22Hình 2.1 Hình minh họa sự bất thường trong dữ liệu 26Hình 2.2 Hình minh họa các kỹ thuật cơ bản trong nhận dạng bất thường 28

Hình 3.1 Thông tin chi tiết một lỗ hổng đối với My Gaming Ladder Combo

System 7.5 ngày 07/4/2017 bị tấn công SQL Injection 44Hình 3.2 Ví dụ một phần tử trong nhật ký truy cập máy chủ web 46

Hình 3.4 Một phần dữ liệu được trích xuất trong giai đoạn tiền xử lý 53Hình 3.5 Một phần dữ liệu mô tả kết quả dựng mô hình 53

Hình 4.1 Cách cài plugin từ thư viện trên Dashboard 55

Hình 4.6 Sử dụng dữ liệu huấn luyện để dựng mô hình 59Hình 4.7 Sử dụng mô hình để dự báo lớp cho dữ liệu kiểm tra 60Hình 4.8 Biểu đồ tỉ lệ dự báo từng loại tấn công trường hợp 1 61Hình 4.9 Biểu đồ tỉ lệ dự báo từng loại tấn công trường hợp 2 63

Trang 10

MỞ ĐẦ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 Nội dung có thể là tin tức điện tử, báo chí hay các media hình ảnh, video, Nó giúp tiết kiệm thời gian quản lý, chi phí vận hành và bảo trì nên hiện nay được sử dụng rất phổ biến, bên cạnh đó còn tiết kiệm được chi phí xây dựng trang web Trong những năm gần đây, các trang web được xây dựng dựa trên nền tảng Wordpress ngày càng chiếm ưu thế 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%, trong khi 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, một trang web chuyên cung cấp các nguồn thông tin đáng tin cậy và phổ biến nhất về sử dụng công nghệ web Hằng ngày có hơn 600 site Wordpress được tạo ra và 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, bên cạnh sự phát triển mạnh mẻ Wordpress luôn tìm ẩn các lỗ hổng bảo mật bên trong hệ thống và các ứng dụng được cài đặt Những năm gần đây, các ứng dụng nói chung và các ứng dụng web nói riêng đang là mục tiêu tấn công phổ biến [5] của bọn tin tặc nhằm khai thác các lỗ hổng Qua tìm hiểu và nghiên cứu danh sách các lỗ hổng ứng dụng đã bị khai thác tại trang web nổi tiếng https://www.exploit-db.com/ và cơ sở dữ liệu các lỗ hổng đã được công bố tại [16] dành riêng cho Wordpress có thể thấy kẻ tấn công đang có xu hướng tập trung tấn công vào các ứng dụng của Wordpress như nhằm vào các plugin được viết với mã không an toàn về bảo mật Các hình thức tấn công chủ yếu tập trung vào các kiểu tấn công phổ biến nằm trong danh sách OWASP Top 10 [11] như: chèn mã, thực thi

mã lệnh xấu, phá vỡ xác thực và quản lý phiên làm việc… Do đó sớm phát hiện các dấu hiệu tấn công từ bên ngoài vào hệ thống để đưa ra chính sách cách ly hoặc theo dõi tự động là một nhu cầu cấp thiết Chính vì vậy, tôi chọn đề tài “Xây dựng công

Trang 11

cụ nhận dạng tấn công ứng dụng Wordpress dựa trên sự bất thường” để làm đề tài luận văn

Qua tìm hiểu thông tin trên các trang diễn đàn, trang chuyên bảo mật Wordpress trong nước dễ dàng nhận thấy đội ngũ phát triển ứng dụng và các chuyên gia bảo mật chúng ta ít tham gia và xây dựng các plugin bảo mật xuất bản lên kho plugin chính thức của Wordpress tại https://wordpress.org/plugins/ Phần lớn chỉ nghiên cứu các giải pháp sẵn có và triển khai áp dụng vào hiện trạng đơn vị, chưa tập trung nghiên cứu các giải pháp mới để phát hiện và ngăn chặn các tấn công mới

Để bảo vệ các ứng dụng 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

Đề tài này 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ặn hoặc cách ly theo dõi tự động trên hệ thống

Phạm vi luận văn nghiên cứu các dấu hiệu bất thường của các truy vấn từ bên ngoài về dữ liệu học dựa trên phân tích các yêu cầu HTTP được gởi tới các ứng dụng Wordpress

Ý nghĩa khoa học: kết quả nghiên cứu có thể dùng làm báo cáo tổng quan về bảo mật, tài liệu tham khảo về các giải pháp nhận dạng tấn công, tài liệu kỹ thuật cho việc xây dựng hệ thống nhận dạng bất thường, phát hiện xâm nhập các ứng dụng Wordpress

Ý nghĩa thực tiễn của đề tài: sản phẩm của đề tài được triển khai thử nghiệm trên nền tảng Wordpress Sản phẩm đạt hiệu quả cao sẽ là cơ sở để xây dựng hệ thống an toàn an ninh thông tin cho các Website chạy trên nền tảng Wordpress

Trang 12

CHƯƠ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ọ

để 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 Website là tập hợp nhiều trang [web page] Khi xây dựng Website nghĩa là đang xây dựng nhiều trang thông tin, catalog sản phẩm, dịch vụ

Để tạo nên một Website cần phải có 3 yếu tố cơ bản sau:

 Tên miền (domain – là địa chỉ Website để truy cập từ trình duyệt)

 Nơi lưu trữ Website (hosting – là nơi chứa nội dung hay dữ liệu Website)

 Nội dung các trang thông tin [web page]

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

Nó cung cấp cho chúng ta các tính năng như hệ thống quản lý media, hình ảnh, trình soạn thảo văn bản và điều đáng nói nhất là khả năng tùy biến giao diện phải cao [17] 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 Wordpress được ra mắt lần đầu tiên vào ngày 27/5/2003 bởi tác giả Matt Mullenweg và Mike Little Hiện nay Wordpress được sở hữu và phát triển bởi công ty Automattic có trụ sở tại San Francisco, California thuộc hợp chủng quốc Hoa Kỳ

Trang 13

Wordpress đượ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 như blog, Website tin tức/tạp chí, giới thiệu doanh nghiệp, bán hàng – thương mại điện tử, thậm chí với các loại Website có độ phức tạp cao như đặt phòng khách sạn, thuê xe, đăng dự án bất động sản,…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, Variety, Sony Music, MTV News, Bata, Quartz Ở Việt Nam hiện nay Wordpress đang chiếm ưu thế nhất 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 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,…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

Hình 1.1: Quy trình xử lý dữ liệu Wordpress

Nhìn vào sơ đồ trên, đầu tiên khi nhập địa chỉ Website được xây dựng bằng

mã nguồn Wordpress thì hệ thống sẽ nạp các cấu hình nằm trong file config.php, tiếp đến nạp tiếp các cấu hình nằm trong cơ sở dữ liệu Nạp xong 2

wp-Wordpress URL wp-config Loaded Functions Loaded

Translations Loaded Pluggables Loaded Plugins Loaded

Trang 14

phần này sẽ gọi các hàm xử lý chính trong lõi Wordpress Nạp tiếp toàn bộ plugin vào hệ thống Ở bước này các plugin vẫn chưa hoạt động Plugin chỉ hoạt động khi

hệ thống Wordpress gọi đến action hook (action hook cho phép kích hoạt các mã plugin bổ sung tại các vị trí được chỉ định) hoặc các filter hook (filter hook có nhiệm vụ thay đổi nội dung của các bài viết trước khi lưu vào database) Sau cùng nạp các phương thức chính nằm trong file pluggable.php, phần định dạng ngôn ngữ, themes và hiển thị tất cả nội dung thông qua Page content

1.1.2 Kiến trúc của Wordpress

Wordpress được xây dựng dựa vào 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/2008/10/30/wordpress-include-stack/)

Trang 15

Khô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, Ứng dụng index.php của Wordpress không thực hiện gì cả, chỉ nạp ứng dụng wp-blog-header.php lên để tạo môi trường và giao diện chuẩn của Wordpress 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

Tiếp đến sẽ nạp lần lượt các chương trình wp-config.php, wp-settings.php để thiết lập môi trường làm việc của Wordpress Ứng dụng wp-config.php là tập tin cấu hình để Wordpress có thể hoạt động và tương tác với cơ sở dữ liệu Bên trong tập tin này bao gồm các giá trị bắt buộc và quan trọng như hình 1.4 dưới đây

Hình 1.4: Các giá trị cần có để kết nối cơ sở dữ liệu 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 16

Hình 1.5: Cấu trúc tổ chức thư mục mặc định của Wordpress

Cấu trúc mặc định này được định nghĩa trong quá trình nạp bởi các hàm: Wp_initial_constants(), Wp_plugin_directory_constants(),

Wp_temlating_constant() Cấu trúc hiện đại được tổ chức như hình 1.6 dưới đây:

Hình 1.6: Cấu trúc tổ chức thư mục hiện đại của Wordpress

Trang 17

Cấ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 ra 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: admin, 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

wp-(ứ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

Ứng dụng web là một ứng dụng chủ/khách sử dụng giao thức HTTP để tương tác với người dùng hay hệ thống khác thông qua Internet hay intranet Ứng dụng web cho phép người dùng gửi và lấy dữ liệu đến/từ một cơ sở dữ liệu thông qua trình duyệt web Dữ liệu sẽ được hiển thị trong trình duyệt người dùng, thông tin được tạo ra một cách tự động (theo một định dạng cụ thể như định dạng CSS trong HTML) bởi vì ứng dụng web phải thông qua một máy chủ web

Ứng dụng web thông thường được cấu trúc như một ứng dụng ba lớp Lớp đầu tiên thường là một trình duyệt Web hoặc giao diện người dùng dạng Winform, lớp thứ hai là công cụ sử dụng công nghệ tạo ra các nội dung động như Java serverlets (JSP) hoặc Active Server Pages (ASP), lớp thứ ba là cơ sở dữ liệu chứa nội dụng (như tin tức, sản phẩm) và dữ liệu khách hàng (ví dụ như tên người dùng

và mật khẩu, thông tin cá nhân,…) Hình 1.2 bên dưới mô tả chi tiết mô hình ứng dụng web ba lớp

Trang 18

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)

Các ứng dụng web truy cập vào các máy chủ cơ sở dữ liệu để thực hiện các nhiệm vụ như cập nhật và lấy các thông tin trong cơ sở dữ liệu Sau đó các ứng dụng web chuyển thông tin đến trình duyệt web để cung cấp cho người dùng

Luồng thông tin giữa máy chủ web và người dùng (máy khách) là luồng thông tin hợp lệ Nếu tin tặc tìm thấy lỗ hổng trong ứng dụng web thì hệ thống sẽ dễ

bị khai thác Các kỹ thuật tấn công thường tập trung vào những lỗ hổng trong quá trình tạo ứng dụng của nhà phát triển web hơn là tấn công trực tiếp vào hệ thống mạng, hệ điều hành Tuy nhiên, tin tặc cũng có thể lợi dụng các lỗ hổng web để mở rộng sự tấn công của mình vào các hệ thống không liên quan khác

Trang 19

 Bảo vê: Điều tiên quyết là cấu hình và phân quyền chặc chẻ trên Website để giữ cho nó an toàn Cần đưa ra chính sách “bế môn tỏa cảng”, giảm thiểu số port (cổng) được mở, tạo lớp bảo vệ và thực hiện bất cứ giải pháp nào có thể

để ngăn chặn các cuộc tấn công trước khi chúng bắt đầu Đây là bước đầu tiên tất yếu và không thể lơ là bỏ qua

 Phát hiện: Điều quan trọng là cần biết khi nào một cuộc tấn công sẽ xảy ra Các cuộc tấn công không phải lúc nào cũng diễn ra một cách rầm rộ và phô trương, đôi khi chúng âm thầm lén lút và các “bots” (bots là một phần mềm thực hiện nhiệm vụ tự động trên Internet có tính lặp lại cao) sẽ cài đặt các đoạn mã ẩn vào Website Các chương trình độc hại và tin tặc có thể đã xâm nhập vào Website, và chúng ta sẽ không bao giờ biết nếu không sớm phát hiện ra chúng Trong phạm vi luận văn, đây là giai đoạn tôi tập trung nghiên cứu và phát triển ứng dụng

 Phục hồi: Cuối cùng là cần có một kế hoạch để phục hồi lại Website và vận hành lại sau khi nó đã bị đánh gục Đây là một thực tế, cho dù các chính sách bảo vệ và phát hiện tốt nhất được áp dụng vẫn có thể thất bại và các nhà quản trị cần phải chuẩn bị sẵn sàng cho điều này Một bản sao lưu cẩn thận sẽ rất quan trọng đối với các nguyên nhân khác bên cạnh vấn đề an ninh

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 phải đặc biệt quan tâm để thực hiện các chính sách bảo mật phù hợp như:

 Phần mềm bị lỗi thời (Out-of-date): Đây là một trong những lỗ hổng bảo mật lớn nhất trong Wordpress Có ba thành phần chính của Wordpress cần phải được xem xét khi triển khai thực hiện các giải pháp đó là:

1 Core (lõi): các tập tin được cài đặt mặc định cơ bản để cung cấp hầu hết các chức năng trên hệ thống

2 Plugins: mã được viết đặc biệt để cải thiện và mở rộng các chức năng

cơ bản

Trang 20

3 Themes: lớp trình bày giao diện của Wordpress với một số chức năng

mở rộng hạn chế

 Cập nhật: việc cập nhật có tầm quan trọng sống còn để giữ cho lõi Wordpress, plugins và các themes được an toàn Một khi một bản cập nhật được phát hành, cần phải được áp dụng càng sớm càng tốt để hạn chế bất kỳ

lỗ hổng nào Vấn đề chức năng với bản cập nhật cũng cần được cân nhắc trước khi áp dụng vì có thể một bản cập nhật sẽ phá vỡ một số chức năng hiện tại trên hệ thống Vì vậy cần tạo một bản sao lưu trước khi cập nhật phần lõi Cốt lõi Wordpress có ba loại khác nhau của các cập nhật:

1 Cập nhật phát triển cốt lõi, được gọi là "bleeding edge"

2 Cập nhật lõi nhỏ, chẳng hạn như bảo trì và bảo mật phát hành

3 Cập nhật phát hành lõi chính

Bắt đầu với phiên bản 3.7, cập nhật nền tự động đã được tích hợp mặc định cho phần cập nhật lõi nhỏ Hành động mặc định này có thể được ghi đè bằng cách chỉnh sửa nội dung file wp-config.php như sau:

define ( 'WP_AUTO_UPDATE_CORE', true);

Khi thiết lập đúng tất cả các bản cập nhật sẽ được kích hoạt

Các theme và plugin có thể được cập nhật tự động bằng cách sử dụng các bộ lọc (filter) Nơi tốt nhất để đặt bộ lọc là trong mục quản lý plugin Wordpress khuyên không nên đặt bộ lọc trong file wp-config.php vì sẽ xung đột với các phần khác của mã nguồn Để kích hoạt cập nhật tự động cho các theme và plugin, thêm đoạn mã sau:

add_filter ( 'auto_update_plugin', ' return_true');

add_filter ( 'auto_update_theme', ' return_true');

Nên giữ các bản sao lưu và di chuyển chúng đến một vị trí không thể tiếp cận

từ bản cài đặt Wordpress

Trang 21

 Loại bỏ các plugin và các theme không sử dụng: nếu ai đó biết được vị trí của các plugin và theme càng làm tăng cơ hội trong việc xâm nhập một trường hợp cụ thể Nhìn vào danh sách CVE [25] cho Wordpress ta thấy trong những năm qua hầu hết các lỗi bảo mật đều ảnh hưởng từ các plugin, theme chứ không phải ở lõi Wordpress Khi sử dụng một plugin cần kiểm tra

độ an toàn của nó trước Các điểm cần chú ý gồm:

- Plugin có được xuất bản trong kho plugin chính thức tại https://wordpress.org/plugins/ hay không?

- Các đánh giá và bình luận của người dùng về plugin đó như thế nào?

- Số phiên bản?

- Cập nhật bản cuối cùng và tần suất cập nhật như thế nào?

- Khả năng tương thích với các phiên bản hiện tại của lõi Wordpress?

 Mật khẩu: nếu sử dụng mật khẩu đơn giản, Website sẽ dễ bị tấn công với kỹ thuật Brute Force (Brute Force Attacks là kỹ thuật dò mật khẩu bằng cách thử đúng sai liên tục) Mật khẩu đủ mạnh phải chứa số, chữ hoa, ký tự đặc biệt (@, #, *, v.v…) dài và độc đáo Mật khẩu Wordpress thậm chí có thể chứa các khoảng trắng và có cả cụm từ mật khẩu “passphrase” Không nên

sử dụng cùng một mật khẩu ở nhiều nơi Ghi nhớ mật khẩu khác nhau là điều khó khăn, nhưng Website bị tấn công thì còn tồi tệ hơn

 Thay đổi các khóa (keys) bảo mật và mã muối (salts) của Wordpress: Wordpress sử dụng thông tin được lưu trữ trong trình duyệt là cookie để xác minh những người dùng đã đăng nhập và bình luận trên trang Các mã salts

và khóa bảo mật được thêm vào Wordpress để mã hóa và bảo vệ thông tin tốt hơn Về cơ bản, các khóa này là một chuỗi dữ liệu chứa các mật khẩu dài, ngẫu nhiên và phức tạp, gần như không thể phá vỡ được chứa trong tập tin

wp-config.php Chi tiết về kỹ thuật này có thể tìm hiểu thêm tại

https://codex.wordpress.org/ Việc cập nhật khóa bảo mật và mã salts sẽ buộc tất cả người dùng đã đăng nhập phải đăng nhập lại, bởi thay đổi chúng sẽ tự

Trang 22

động làm mất hiệu lực phiên đăng nhập của bất kỳ người dùng đang đăng

nhập Hình 1.8 cho thấy các mã được sử dụng trong Wordpress

Hình 1.8: Các mã salts và khóa bảo mật trong Wordpress

 Dù mật khẩu có mạnh cũng vô nghĩa nếu quản trị viên yếu kém kiến thức về bảo mật Hiểu được vai trò và gán đúng cách quyền truy cập cho người dùng

là điều cần thiết để tách biệt quá trình phân quyền Càng nhiều người có quyền truy cập admin, cơ hội bị tấn công càng cao

 Thực hiện cơ chế xác thực 2 bước (Two-Factor Authentication): lợi ích của phương pháp này là ngay cả nếu ai đó đoán được mật khẩu của người dùng (quản trị viên) thì họ cũng cần phải có được điện thoại của người đó để đột nhập trái phép vào tài khoản

 Di chuyển hoặc thay đổi tài khoản quản trị mặc định là điều cần thiết Có hai

lý do chính cho việc tạo mới một tài khoản quản trị hoặc sửa đổi cái cũ:

1 Sau khi cài đặt tên người dùng mặc định là "admin"; kẻ tấn công cố gắng dò mật khẩu để thử tên người dùng mặc định này

2 Các id mặc định của tài khoản quản trị là 1; khi kẻ tấn công phát hiện

ra một lỗi SQL injection (xem mục 1.2.1.1) thì sẽ cố gắng cập nhật cho người dùng id = 1 này

Cả hai công việc có thể được thực hiện thủ công trong cơ sở dữ liệu mà không cần phải xóa các tài khoản quản trị hoặc có thể được thực hiện trong giao diện quản lý người dùng

define('AUTH_KEY','pK/7r(|,BK+X=|dzrK}Y|ttP%+8u<$so#|`zUrA*RIxNSfgo$-w|UrQ# )RR8+DEz');

define('SECURE_AUTH_KEY',')|IL/>/**t|;6/z,LMC3xs>X5#+,?>ZH#>2F8ik|LziZhk+YogW<h?n^O2W|_I?K'); define('LOGGED_IN_KEY','w3+SAaRLl]22i{|#-7>76i>qHV-P5d<{Q3tRh5D2|<L>XKHpbD-I@(51Rd2W|Z#7'); define('NONCE_KEY','SPD.R?ynL?qf|NXW#n(jO%kmz=]_+n|DiHrN549u>Ea{v!${-9lhoZ# z7k(85n:');

define('AUTH_SALT','|6f>K{-aje<<FUp{N(s-NOh-}/g&+10/V]1Z7RP*IV6u3SRi-=M*Hf8 :L$|.0Nwp');

define('SECURE_AUTH_SALT','mo>b+|dr(mY??KSkZe[dOmuoAu|qla<4q]>=EY;6&-YXt#: ],T<)0FJuc9FdwtG'); define('LOGGED_IN_SALT','*8u:v_n,-L`FJ+qyE*fm`kzw|G%m!B^J|!8?]kK?,#5vO2#*f~ PL=|tw?Chg+{o)');

define('NONCE_SALT','7+%dZ!tcm{2K+l(JPL7d<-B;.Jb7Cx.lj%9xQ|(ftY*|1+Qgl6q*m% L,n<.8?WXI');

Trang 23

 Một số chính sách bảo mật quan trọng khác cũng được khuyến nghị như: thay đổi tiền tố (prefix) cơ sở dữ liệu; kiểm soát các bình luận; kiểm tra quyền truy cập file; xóa file readme.html và install.php; di chuyển tập tin wp-config.php ra bên ngoài thư mục web gốc; thực thi mã hóa lớp vận chuyển cho các tác vụ quản trị; sử dụng một tường lữa ứng dụng web (WAF); vô hiệu hoá chế độ chỉnh sửa các plugin và theme cần được áp dụng

1.2.1 Danh sách rủi ro bảo mật cho ứng dụng Wordpress OWASP [11]

OWASP viết tắt của Open Web Application Security Project (dự án mở về bảo mật ứng dụng web), dự án là một sự cố gắng chung của cộng đồng nhằm giúp các tổ chức có thể phát triển, mua hoặc bảo trì các ứng dụng an toàn Mục tiêu chính của OWASP Top 10 là để hướng dẫn các lập trình viên, người thiết kế, kỹ sư, quản

lí và cả tổ chức về hậu quả của những điểm yếu quan trọng nhất trong ứng dụng web OWASP Top 10 xuất hiện lần đầu tiên vào năm 2003, được cập nhật sửa đổi cho phù hợp với từng giai đoạn trong những năm 2004, 2007, 2013 và đến nay phiên bản 2017 sắp được chính thức ra mắt

1.2.1.1 Chèn mã

Rủi ro chèn mã (Injection) xảy ra trong các ứng dụng như SQL, LDAP khi

dữ liệu không xác thực được gửi tới hệ thống biên dịch như một phần của mã lệnh Những dữ liệu này của kẻ tấn công có thể lừa hệ thống biên dịch thực hiện những

mã lệnh độc hại hoặc giúp kẻ tấn công xâm nhập đến những dữ liệu quan trọng một cách trái phép

- Ví dụ kịch bản tấn công:

+ Kịch bản 1: ứng dụng sử dụng dữ liệu không tin cậy

String query = “SELECT * FROM accounts WHERE custID='“ + $id + “'“;

+ Kịch bản 2: tương tự như vậy, sự tin cậy mù quáng của ứng dụng vào các framework có thể dẫn đến các truy vấn mà vẫn còn dễ bị tổn thương, ví dụ HQL:

Trang 24

Query HQLQuery = session.createQuery(“FROM accounts WHERE custID='“ + $id + “'“);

Trong cả hai trường hợp, kẻ tấn công có thể thay đổi giá trị tham số “id” trong trình duyệt của mình để gửi đi: 'or' 1 '=' 1 Ví dụ:

http://example.com/app/accountView?id=' or '1'='1

Thay đổi này có ý nghĩa là cả hai câu truy vấn đều trả về kết quả tất cả các bản ghi từ bảng “accounts” Các tấn công nguy hiểm hơn có thể sửa đổi dữ liệu hoặc thậm chí gọi các thủ tục lưu trữ

1.2.1.2 Phá vỡ xác thực và quản lý phiên làm việc

Rủi ro phá vỡ xác thực và quản lý phiên làm việc (Broken Authentication and Session Management) xảy ra khi những đoạn chương trình kiểm tra danh tính

và quản lý phiên làm việc của người dùng thực hiện không đúng cách và thiếu chính xác, giúp kẻ xâm nhập có thể ăn cắp mật mã, khóa, mã của các phiên làm việc hoặc tận dụng những lỗi khác để giả mạo danh tính các người dùng khác, cho phép kẻ tấn công từ bên ngoài có thể truy cập vào những tài nguyên nội bộ trái phép (ví dụ: trang quản trị) Ngoài ra kẻ tấn công còn có thể thực hiện các hành vi nâng quyền quản trị hoặc tấn công dựa vào các dạng như ấn định phiên (session fixation)

+ Kịch bản 2: thời gian chờ (timeout) của ứng dụng không được thiết lập đúng cách Trường hợp người dùng sử dụng máy tính công cộng để truy cập

Trang 25

Website mà chỉ đóng trình duyệt và bỏ đi thay vì “Thoát” (logout) đúng cách Kẻ tấn công sử dụng cùng trình duyệt trên máy đó một giờ sau đó, và trình duyệt vẫn còn được chứng thực

+ Kịch bản 3: kẻ tấn công truy cập vào cơ sở dữ liệu mật khẩu của hệ thống Mật khẩu người dùng không được mã hóa thích hợp, để lộ mật khẩu người dùng cho kẻ tấn công

- Ví dụ kịch bản tấn công: ứng dụng sử dụng dữ liệu không tin cậy trong việc xây dựng đoạn mã sau mà không kiểm tra tính hợp lệ:

(String) page += “<input name='creditcard' type='TEXT„ value='“ + request.getParameter(“CC”) + “'>“;

Kẻ tấn công sửa đổi tham số “CC” trong trình duyệt của mình thành:

'><script>document.location =

'http://www.attacker.com/cgi-bin/cookie.cgi?foo='+document.cookie</script>'

Đây là nguyên nhân mà ID phiên của nạn nhân được đưa đến Website của kẻ tấn công, cho phép kẻ tấn công chiếm quyền điều khiển phiên của người dùng

1.2.1.4 Tham chiếu đối tượng trực tiếp không an toàn

Tham chiếu đối tượng trực tiếp không an toàn (Insecure Direct Object References) xảy ra khi người phát triển ứng dụng để lộ một tham chiếu đến những đối tượng trong hệ thống như các tập tin, thư mục hay khóa dữ liệu Nếu không có một hệ thống kiểm tra truy cập, kẻ tấn công có thể lợi dụng những tham chiếu này

để truy cập dữ liệu trái phép Trường hợp kẻ tấn công xác định được cấu trúc truy

Trang 26

vấn gởi đến máy chủ, kẻ tấn công có thể nhanh chóng thu thập dữ liệu như thẻ tín dụng, mã khách hàng, thông tin cá nhân…

- Ví dụ kịch bản tấn công: ứng dụng sử dụng dữ liệu chưa được xác minh trong câu truy vấn SQL truy cập vào bảng thông tin tài khoản:

String query = “SELECT * FROM accts WHERE account = ?”;

PreparedStatement pstmt = connection.prepareStatement(query, … ); pstmt.setString(1, request.getParameter(“acct”));

ResultSet results = pstmt.executeQuery();

Kẻ tấn công chỉ đơn giản thay đổi tham số “acct” trong trình duyệt của mình

để gửi bất kỳ số tài khoản nào hắn muốn Nếu không xác minh đúng cách, kẻ tấn công có thể truy cập vào tài khoản người dùng bất kỳ

http://example.com/app/accountInfo?acct=notmyacct

1.2.1.5 Sai sót cấu hình bảo mật

Sai sót cấu hình bảo mật (Security Misconfiguration) có thể gây ra những hậu quả nghiêm trọng Một cơ chế bảo mật tốt cần phải định nghĩa những hiệu chỉnh về an ninh và triển khai nó cho các ứng dụng, máy chủ ứng dụng, máy chủ web, máy chủ cơ sở dữ liệu và các ứng dụng nền tảng Tất cả những thiết lập nên được định nghĩa, thực hiện và bảo trì bởi rất nhiều hệ thống không được triển khai với thiết lập an toàn mặc định Các hiệu chỉnh cũng bao gồm cập nhật phần mềm và những thư viện được sử dụng bởi ứng dụng

- Ví dụ kịch bản tấn công:

+ Kịch bản 1: giao diện điều khiển quản trị máy chủ ứng dụng được tự động cài đặt và không được gỡ bỏ Tài khoản mặc định không được thay đổi Kẻ tấn công phát hiện ra các trang quản trị chuẩn trên máy chủ, đăng nhập với mật khẩu mặc định

+ Kịch bản 2: liệt kê danh sách thư mục chưa được vô hiệu hóa trên máy chủ Kẻ tấn công phát hiện ra và hắn có thể liệt kê các thư mục để tìm thấy bất kỳ tập tin một cách dễ dàng

Trang 27

1.2.1.6 Phơi bày dữ liệu nhạy cảm

Phơi bày dữ liệu nhạy cảm (Sensitive Data Exposure) xảy ra khi nhiều ứng dụng web không bảo vệ dữ liệu nhạy cảm như thẻ tín dụng, mã số thuế và những

mã xác thực bí mật bằng các phương thức mã hóa hay băm (hash) Kẻ tấn công có thể ăn cắp hay thay đổi những dữ liệu nhạy cảm này và thực hiện các hành vi trộm cắp, gian lận…

+ Kịch bản 2: Website không sử dụng SSL để chứng thực Kẻ tấn công chỉ đơn giản theo dõi lưu lượng mạng (như dùng một mạng không dây mở), và đánh cắp cookie phiên của người dùng, sau đó dùng lại cookie này và cướp phiên làm việc của người dùng, truy cập dữ liệu cá nhân của người dùng

+ Trường hợp 3: các cơ sở dữ liệu mật khẩu sử dụng mã băm không kết hợp với mã salt để lưu trữ mật khẩu của tất cả người dùng Một lỗ hổng tải lên tập tin (file upload) cho phép kẻ tấn công lấy các tập tin mật khẩu Tất cả các mã băm không kết hợp với mã salt có thể bị khai thác bằng một bảng cầu vồng (rainbow table là một bảng được tính toán trước để đảo chiều các hàm băm mã hóa, thông thường dùng cho việc bẻ khóa các mật khẩu băm) [19]

1.2.1.7 Thiếu chức năng điều khiển truy cập

Thiếu chức năng điều khiển truy cập (Missing Function Level Access Control) xảy ra khi ứng dụng web thực hiện việc kiểm soát truy cập không tốt Hầu như các ứng dụng web đều kiểm tra quyền truy cập ở cấp độ chức năng trước khi

Trang 28

thực hiện chức năng mà có thể nhìn thấy trong giao diện người dùng Tuy nhiên, các ứng dụng cần phải thực hiện kiểm tra kiểm soát truy cập tương tự trên máy chủ khi mỗi chức năng được truy cập Nếu các yêu cầu không được kiểm soát, kẻ tấn công sẽ có thể giả mạo yêu cầu để truy cập vào chức năng trái phép hay lợi dụng để leo thang đặc quyền

- Ví dụ kịch bản tấn công: kẻ tấn công truy cập đến các URL mục tiêu Các URL sau yêu cầu xác thực Các quyền quản trị cũng được yêu cầu để truy cập được vào trang “admin_getappInfo”

http://example.com/app/getappInfo

http://example.com/app/admin_getappInfo

Nếu một người dùng không xác thực cũng có thể truy cập vào trang, đó là một lỗ hổng Nếu được xác thực, không phải quản trị mà người dùng cũng được phép truy cập vào trang “admin_getappInfo”, thì đây cũng là một lỗ hổng và có thể dẫn kẻ tấn công đến nhiều trang quản trị mà không được bảo vệ đúng cách

1.2.1.8 Giả mạo yêu cầu

Giả mạo yêu cầu (Cross-Site Request Forgery): kiểu tấn công này ép buộc trình duyệt web của một người dùng gửi những yêu cầu giả bao gồm cookie của phiên truy cập và những thông tin tự động khác như thông tin đăng nhập đến một ứng dụng web dễ bị tổn thương Điều này cho phép kẻ tấn công buộc trình duyệt web tạo ra những yêu cầu đến ứng dụng web mà ứng dụng không thể biết đây là những yêu cầu giả mạo của kẻ tấn công

Trang 29

trong một hình ảnh hoặc iframe được lưu trên các Website khác nhau dưới sự kiểm soát của kẻ tấn công:

<Img src =

“http://example.com/app/transferFunds?amount=1500&destinationAccoun t=attackersAcct#” width = “0” height = “0” />

Nếu nạn nhân vào bất kỳ Website nào của kẻ tấn công trong khi đã được xác thực tại trang “example.com” thì những yêu cầu giả mạo này sẽ tự động gọi thông tin phiên làm việc của người dùng, chứng thực yêu cầu của kẻ tấn công

1 Apache CXF Authentication Bypass: lỗi cung cấp một token nhận dạng, kẻ tấn công có thể gọi bất kỳ dịch vụ web nào với quyền hạn đầy đủ

2 Spring Remote Code Execution: lạm dụng sử dụng ngôn ngữ biểu thức (Expression Language) trong Spring cho phép kẻ tấn công thực thi mã tùy ý, ảnh hưởng lên máy chủ

1.2.1.10 Chuyển hướng và chuyển tiếp không kiểm tra

Chuyển hướng và chuyển tiếp không kiểm tra (Unvalidated Redirects and Forwards) xảy ra khi chuyển hướng hoặc chuyển tiếp người dùng đến một đường dẫn khác mà không kiểm tra tính hợp lệ Nếu không được kiểm tra một cách cẩn

Trang 30

thận, kẻ tấn công có thể lợi dụng để chuyển hướng nạn nhân đến các Website lừa đảo hay Website chứa phần mềm độc hại, hoặc chuyển tiếp để truy cập các trang trái phép

- Ví dụ kịch bản tấn công:

+ Kịch bản 1: ứng dụng có một trang gọi là “redirect.php” mà có một tham

số có tên là “url” Kẻ tấn công đưa vào một URL khác để chuyển hướng người dùng đến một Website độc hại để thực hiện lừa đảo

http://www.example.com/boring.php?fwd=admin.php

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 tiếp cận chính đó là sử dụng kỹ thuật nhận dạng tĩnh hoặc

sử dụng kỹ thuật nhận dạng động [20]

Trang 31

Hình 1.9: Phương pháp phát hiện tấn công ứng dụng web

 Các phương pháp phát hiện tấn công:

- Phương pháp thứ nhất gọi là phát hiện dấu hiệu (misuse detection): phát hiện xâm nhập dựa vào luật (rule-based intrusion detection), hoặc phát hiện dựa vào

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 32

chữ ký (signature-based detection) Về cơ bản là giống nhau Phương pháp dựa trên dấu hiệu này sử dụng cơ sở dữ liệu mẫu của các cuộc tấn công đã biết hoặc điểm yếu của hệ thống để xác định tấn công, tương tự như các phần mềm chống virus Điểm yếu của kỹ thuật này là không thể phát hiện các loại tấn công mới, nó cần phải cập nhật liên tục các dấu hiệu tấn công để nhận dạng các cuộc tấn công mới

- Phương pháp thứ hai gọi là phát hiện bất thường (anomaly detection): là hướng tiếp cận dựa trên các dấu hiệu bất thường với ý tưởng xây dựng một lớp bảo

vệ và nó sẽ quan sát lưu lượng dữ liệu hợp pháp của ứng dụng Về lý thuyết, một khi được đào tạo, hệ thống sử dụng phương pháp phát hiện bất thường sẽ phát hiện bất cứ điều gì khác thường Phát hiện bất thường có thể tiếp cận theo hai hướng:

1 Sử dụng số liệu thống kê: thực hiện thu thập, lưu trữ và thống kê dữ liệu bình thường và bất thường Sau đó, ta định kỳ tính toán ngưỡng bình thường/bất thường, nếu vượt ngưỡng thì đưa ra cảnh báo

2 Sử dụng học máy: dựa vào những dữ liệu huấn luyện đã được gán nhãn là bình thường/bất thường để tạo ra mô hình phân lớp dữ liệu bằng các phương pháp học máy Sau đó, với những dữ liệu mới, ta sẽ kiểm tra chúng là bất thường hay không để đưa ra cảnh báo hoặc hành động phù hợp Chất lượng của mô hình phân lớp phụ thuộc vào tập dữ liệu huấn luyện, dữ liệu kiểm tra và các đặc trưng được chọn

1.3 Học máy

1.3.1 Tổng quan

Học máy (Machine Learning) là một ngành khoa học nghiên cứu các thuật toán cho phép máy tính có thể học được các khái niệm (concept)

Phân loại: Có hai loại phương pháp học máy chính:

1 Phương pháp quy nạp: Máy học/phân biệt các khái niệm dựa trên dữ liệu đã thu thập được trước đó Phương pháp này cho phép tận dụng nguồn dữ liệu sẳn có

Trang 33

2 Phương pháp suy diễn: Máy học/phân biệt các khái niệm dựa vào các luật Phương pháp này cho phép tận dụng được các kiến thức chuyên ngành để hỗ trợ máy tính

Hiện nay, các thuật tốn đều cố gắng tận dụng được ưu điểm của hai phương pháp nay

Các ngành khoa học liên quan như:

 Lý thuyết thống kê: Kết quả trong xác suất thống kê là tiền đề cho rất nhiều phương pháp học máy Đặc biệt, lý thuyết thống kê cho phép ước lượng sai

số của các phương pháp học máy

 Các phương pháp tính: Các thuật tốn học máy thường sử dụng các tính tốn

số thực/số nguyên trên dữ liệu rất lớn Trong đĩ, các bài tốn như: tối ưu cĩ/khơng ràng buộc, giải phương trình tuyến tính v.v…được sử dụng rất phổ biến

 Khoa học máy tính: là cơ sở để thiết kế các thuật tốn, đồng thời đánh giá thời gian chạy, bộ nhớ của các thuật tốn học máy

Trong lĩnh vực học máy cĩ các phương pháp học sau:

 Học cĩ giám sát (supervised learning): Phân lớp các mẫu tự động dựa vào các khái niệm học từ các mẫu được gán nhãn Một số thuật tốn thường được

sử dụng như: Máy vector hỗ trợ (Support Vector Machine - SVM), K láng giềng gần nhất (K Nearest Neighbours - KNN), tiếp cận xác suất thống kê (Nạve Bayes - NB), cây quyết định (Decision Tree - DT)

 Học khơng giám sát (unsupervised learning): Các phương thức tự động để phân cụm các mẫu chưa được gán nhãn vào các nhĩm cĩ ý nghĩa Các thuật tốn thường được sử dụng như: k-means, HAC (Hierarchical Agglomerative

Clustering), SOM (Self-Organizing Map), DBSCAN, FCM

 Học bán giám sát (semi-supervised learning): Học với tập dữ liệu huấn luyện gồm cả dữ liệu đã được gán nhãn và dữ liệu chưa được gán nhãn Các thuật tốn thường được sử dụng: Cực đại kỳ vọng (Expectation Maximization -

Trang 34

EM), SVM truyền dẫn (Transductive Support Vector Machine - TSVM), Self-training, Co-training và các phương pháp dựa trên đồ thị (graph-based)

 Tìm kiếm (Search Engine)

 Chuẩn đoán trong y tế: phân tích ảnh X-quang, các hệ chuyên gia chuẩn đoán

tự động

 Tin sinh học: phân loại chuỗi gene, quá trình hình thành gene/protein

 Vật lý: phân tích ảnh thiên văn, tác động giữa các hạt…

 Phát hiện gian lận tài chính (financial fraud): gian lận thẻ tín dụng

 Phân tích thị trường chứng khoán (stock market analysis) v.v…

Trong phạm vi của đề tài, học máy theo phương pháp học không giám sát được ứng dụng trong giai đoạn huấn luyện dữ liệu, giai đoạn dựng mô hình nhận dạng Cụ thể như:

Trang 35

CHƯƠ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, là bất thường

Ở một mức độ trừu tượng, một sự bất thường được định nghĩa như một mô hình mà không phù hợp với hành vi dự kiến Một cách tiếp cận đơ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 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ư:

 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

Trang 36

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 đó khó xác định được hành vi bình thường

 Trong nhiều lĩnh vực hành vi bình thường đang được hoàn thiện, các hành vi bình thường hiện tại 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ị trườ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) 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ể Hình 2.2 bên dưới cho thấy các thành phần chính nêu trên kết hợp với bất kỳ kỹ thuật phát hiện bất thường

Trang 37

Hình 2.2: Hình minh họa 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

Trang 38

Phâ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

Theo Kruegel [1][2] nhận dạng sự bất thường được phân loại dựa theo các đặc điểm sau đây:

2.2.1 Cấu trúc yêu cầu (Request structure)

Các mô hình nhận dạng dựa vào cấu trúc yêu cầu xem xét cấu trúc và tính logic của một yêu cầu người dùng gửi đến máy chủ, nhằm phát hiện các cấu trúc yêu cầu lỗi và độc hại Chi tiết các mô hình gồm:

- Mô hình đường dẫn (Path): xem xét đường dẫn nào được phép truy cập

+ Nhận diện: liệt kê thư mục và các vị trí tài nguyên có thể dự đoán

Ngày đăng: 07/11/2017, 13:34

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Christopher Kruegel *, Giovanni Vigna, William Robertson (2005), “A multi- model approach to the detection of web-based attacks” Computer Networks, Volume 48, Issue 5, pp. 717-738 Sách, tạp chí
Tiêu đề: A multi-model approach to the detection of web-based attacks” "Computer Networks
Tác giả: Christopher Kruegel *, Giovanni Vigna, William Robertson
Năm: 2005
[2] Christopher Kruegel, Giovanni Vigna (2003), “Anomaly Detection of Web- based Attacks” Proceedings of the 10th ACM conference on Computer and communications security, pp. 251-261 Sách, tạp chí
Tiêu đề: Anomaly Detection of Web-based Attacks” "Proceedings of the 10th ACM conference on Computer and communications security
Tác giả: Christopher Kruegel, Giovanni Vigna
Năm: 2003
[3] Corona, I., Ariu, D. &amp; Giacinto G. (2009), “HMM-Web: A Framework for the Detection of Attacks Against Web Applications” In: IEEE International Conference on Communications, ICC’09, IEEE, pp. 1-6 Sách, tạp chí
Tiêu đề: HMM-Web: A Framework for the Detection of Attacks Against Web Applications” "In: IEEE International Conference on Communications, ICC’09, IEEE
Tác giả: Corona, I., Ariu, D. &amp; Giacinto G
Năm: 2009
[4] Dafydd Stuttard and Marcus Pinto (2011), The Web Application Hacker’s Handbook: Finding and Exploiting Security Flaws, Second Edition, John Wiley &amp; Sons, Inc., Indianapolis, Indiana Sách, tạp chí
Tiêu đề: Finding and Exploiting Security Flaws
Tác giả: Dafydd Stuttard and Marcus Pinto
Năm: 2011
[5] D. Klein, Defending against the wilysurfer: Web-based attacks and defenses, in: Proceedings of the USENIX Workshop on Intrusion Detection and Network Monitoring, Santa Clara, CA, April 1999 Sách, tạp chí
Tiêu đề: Proceedings of the USENIX Workshop on Intrusion Detection and Network Monitoring
[6] Fielding, et al. (1999), RFC 2616: Hypertext Transfer Protocol – HTTP/1.1, https://www.ietf.org/rfc/rfc2616.txt Sách, tạp chí
Tiêu đề: Hypertext Transfer Protocol – HTTP/1.1
Tác giả: Fielding, et al
Năm: 1999
[7] Ithemes Media LLC (2013), WordPress Security: A Pocket Guide, iThemes Media 1720 South Kelly Avenue Edmond, OK 73013 Sách, tạp chí
Tiêu đề: A Pocket Guide
Tác giả: Ithemes Media LLC
Năm: 2013
[8] Jure Leskovec, Anand Rajaraman, Jeff Ullman, Mining of Massive Datasets, Stanford University Sách, tạp chí
Tiêu đề: Mining of Massive Datasets
[9] Kenneth L. Ingham, and Hajime Inoue (2007), “Comparing Anomaly Detection Techniques for HTTP” RAID 2007: Recent Advances in Intrusion Detection, pp. 42-62 Sách, tạp chí
Tiêu đề: Comparing Anomaly Detection Techniques for HTTP” "RAID 2007: Recent Advances in Intrusion Detection
Tác giả: Kenneth L. Ingham, and Hajime Inoue
Năm: 2007
[10] Nanhay Singh, Achin Jain, Ram Shringar Raw and Rahul Raman (2014), Detection of Web-Based Attacks by Analyzing Web Server Log Files, In:Advances in Intelligent Systems and Computing, Volume 243, pp. 101-109 Sách, tạp chí
Tiêu đề: Detection of Web-Based Attacks by Analyzing Web Server Log Files
Tác giả: Nanhay Singh, Achin Jain, Ram Shringar Raw and Rahul Raman
Năm: 2014
[11] OWASP Top Ten Project (2013), OWASP Top 10 - 2013 The Ten Most Critical Web Application Security Risks, Available:https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project [12] Roger Meyer, Detecting Attacks on Web Applications from Log Files, SANSInstitute Sách, tạp chí
Tiêu đề: OWASP Top 10 - 2013 The Ten Most Critical Web Application Security Risks, "Available: https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project [12] Roger Meyer, "Detecting Attacks on Web Applications from Log Files
Tác giả: OWASP Top Ten Project
Năm: 2013
[13] Suyeon Yoo and Sehun Kim, Two-Phase Malicious Web Page Detection Scheme Using Misuse and Anomaly Detection, International Journal of Reliable Information and Assurance Sách, tạp chí
Tiêu đề: Two-Phase Malicious Web Page Detection Scheme Using Misuse and Anomaly Detection
[14] Sucuri Remediation Group (RG) (2016), Website Hacked Trend Report Q2 2016, https://sucuri.net/ Sách, tạp chí
Tiêu đề: Website Hacked Trend Report Q2 2016
Tác giả: Sucuri Remediation Group (RG)
Năm: 2016
[15] W3Techs, Content Management Systems, retrieved 20 October 2016 from https://w3techs.com/ Link
[16] WPScan Team, WPScan Vulnerability Database, retrieved 23 October 2016 from https://wpvulndb.com/wordpresses Link

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

TÀI LIỆU LIÊN QUAN

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