Phát hiện truy nhập bất thường vào máy chủ webPhát hiện truy nhập bất thường vào máy chủ webPhát hiện truy nhập bất thường vào máy chủ webPhát hiện truy nhập bất thường vào máy chủ webPhát hiện truy nhập bất thường vào máy chủ webPhát hiện truy nhập bất thường vào máy chủ webPhát hiện truy nhập bất thường vào máy chủ webPhát hiện truy nhập bất thường vào máy chủ webPhát hiện truy nhập bất thường vào máy chủ webPhát hiện truy nhập bất thường vào máy chủ webPhát hiện truy nhập bất thường vào máy chủ webPhát hiện truy nhập bất thường vào máy chủ webPhát hiện truy nhập bất thường vào máy chủ webPhát hiện truy nhập bất thường vào máy chủ webPhát hiện truy nhập bất thường vào máy chủ web
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-
Nguyễn Quốc Trung
PHÁT HIỆN TRUY NHẬP BẤT THƯỜNG VÀO MÁY CHỦ WEB
Chuyên ngành: Khoa học máy tính
Trang 2LỜI CAM ĐOAN Tôi cam đoan đây là công trình nghiên cứu của tôi dưới sự hướng dẫn của PGS.TSKH Hoàng Đăng Hải
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Học viên
Nguyễn Quốc Trung
Trang 3LỜI CẢM ƠN
Với tất cả lòng kính trọng và biết ơn sâu sắc, em xin gửi lời cảm ơn tới Thầy giáo PGS.TSKH Hoàng Đăng Hải, người đã tận tình dạy dỗ và hướng dẫn em trong quá trình hoàn thành luận văn
Em cũng xin gửi lời cảm ơn chân thành tới các Thầy giáo, Cô giáo công tác tại Học viện Công nghệ bưu chính viễn thông, những người đã tận tình giảng dạy, truyền thụ cho em những kiến thức khoa học căn bản trong quá trình học tập tại trường
Cuối cùng, em xin gửi lời cảm ơn chân thành đến gia đình, bạn bè, các đồng nghiệp đã động viên, sát cánh cùng em trong quá trình học tập và thực hiện đề tài
Hà Nội, ngày 19 tháng 11 năm 2018
Học viên
Nguyễn Quốc Trung
Trang 4MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN iii
MỤC LỤC iv
DANH MỤC CÁC TỪ VIẾT TẮT vi
DANH MỤC BẢNG viii
DANH MỤC HÌNH ix
MỞ ĐẦU 1
CHƯƠNG 1 MÁY CHỦ WEB VÀ VẤN ĐỀ AN TOÀN WEB 3
1.1 Máy chủ Web và giao thức HTTP 3
1.1.1 Giới thiệu máy chủ web 3
1.1.2 Các thành phần cơ bản của máy chủ web 4
1.1.3 Nguyên tắc hoạt động 5
1.1.4 Ghi nhật ký (Web Log) 7
1.1.5 Giao thức HTTP 9
1.1.6 Một số nền tảng Apache, IIS, Ngin 12
1.2 Các lỗ hổng bảo mật Web 14
1.2.1 Khái niệm lỗ hổng bảo mật 14
1.2.2 Các loại lỗ hổng phổ biến của Web 15
1.2.3 Phương pháp kiểm thử lỗ hổng 17
1.3 Tấn công vào máy chủ Web 19
1.3.1 Giới thiệu về tấn công vào máy chủ Web 19
1.3.2 Một số loại tấn công điển hình vào máy chủ Web 20
1.3.3 Thống kê tấn công máy chủ Web điển hình hiện nay 21
1.3.4 Một số biện pháp điển hình chống tấn công vào máy chủ Web 23
1.4 Phát hiện truy nhập bất thường vào máy chủ Web 24
1.5 Kết luận chương 25
CHƯƠNG 2 PHÁT HIỆN TRUY NHẬP BẤT THƯỜNG VÀO MÁY CHỦ WEB 26
Trang 52.1 Phạm vi phân tích, phát hiện truy nhập bất thường vào máy chủ Web 26
2.2 Kiến trúc hệ thống phát hiện truy nhập bất thường 26
2.2.1 Tham khảo một số mô hình kiến trúc hệ thống 26
2.2.2 Kiến trúc hệ thống phát hiện truy nhập bất thường 30
2.3 Cấu trúc Weblog 30
2.4 Nguyên tắc hoạt động của khối xử lý Parse 32
2.5 Thu thập thông tin Weblog cho phát hiện bất thường 35
2.5.1 Thu thập thông tin từ logfile hệ thống 35
2.5.2.Thu thập thông tin từ công cụ 36
2.6 Phương pháp trích chọn đặc trưng dữ liệu 38
2.7 Cách thức phân tích Weblog phát hiện bất thường 45
2.8 Phương pháp phân tích, đánh giá kết quả 47
2.9 Kết luận chương 52
CHƯƠNG 3 THỬ NGHIỆM 53
3.1 Mô hình hệ thống máy chủ Web tại Công ty VCCorp 53
3.2 Đặc tả dữ liệu máy chủ ghi nhận được 55
3.3 Thử nghiệm phân tích, phát hiện bất thường với công cụ Weblog Expert 60
3.4 Một số kết quả thử nghiệm với Weblog Expert 61
3.5 Kết luận chương 69
KẾT LUẬN 70 TÀI LIỆU THAM KHẢO
Trang 6DANH MỤC CÁC TỪ VIẾT TẮT
TT Từ viết tắt Nghĩa tiếng anh Nghĩa tiếng việt
1 CPU Central Processing Unit Bộ xử lý trung tâm
3 DDR Double Data Rate Tốc độ dữ liệu đôi
4 DNS Domain Name System hệ thống cho phép thiết lập tương
ứng giữa địa chỉ IP và tên miền
5 DoS Denial of Services Từ chối dịch vụ
6 ECC Error Checking and
Correction Kiểm tra và sửa lỗi
7 HDD Hard Disk Drive Ổ cứng
11 IIS Internet Information
Services Dịch vụ thông tin Internet
12 IMAP Internet Message Access
Protocol Giao thức truy cập thông báo
13 IPSec Internet Protocol Security Bảo mật Giao thức Internet
14 JS JavaScript Ngôn ngữ lập trình thông dịch
Trang 716 MDAC Microsoft Data Access
Components
Thành phần truy cập dữ liệu của Microsoft
17 NTFS New Technology File
System Hệ thống tập tin công nghệ mới
18 ORM Object-Relational
Mapping Bản đồ quan hệ giữa các đối tượng
19 POP3 Post Office Protocol 3
Là một giao thức tầng ứng dụng dùng để lấy thư điện tử từ server mail
20 RAID Redundant Arrays of
Inexpensive Disks
Là hình thức ghép nhiều ổ đĩa cứng vật lý thành một hệ thống ổ đĩa cứng
21 RAM Random Access Memory Bộ nhớ truy cập ngẫu nhiên
22 SDR Single Data Rate Tốc độ dữ liệu đơn
23 SMTP Simple Mail Transfer
Trung tâm ứng cứu khẩn cấp máy tính Việt Nam
26 WWW World Wide Web Mạng lưới toàn cầu
Trang 8DANH MỤC BẢNG
Bảng 1.1 Ưu và nhược điểm của phương pháp kiểm thử hộp đen 17
Bảng 1.2 Ưu và nhược điểm của phương pháp kiểm thử hộp trắng 18
Bảng 1.3 Ưu và nhược điểm của phương pháp kiểm thử hộp xám 19
Bảng 2.1 Giải thích các trường Weblog 31
Bảng 2.2 Các trường bổ sung trong một dòng định dạng log được kết hợp 32
Bảng 3.1 Thống kê hoạt động chung của việc sử dụng trang web 62
Bảng 3.2 Thống kê hoạt động hàng ngày của việc sử dụng trang web 63
Bảng 3.3 Thống kê hoạt động theo giờ trong ngày 64
Bảng 3.4 Các trang phổ biến nhất 65
Bảng 3.5 Bảng thống kê lượng khách truy cập theo địa chỉ IP 66
Trang 9DANH MỤC HÌNH
Hình 1.1 Kiến trúc hệ thống máy chủ web 5
Hình 1.2 Các bước cơ bản trong tiến trình truyền tải web 6
Hình 1.3 Phương thức GET trong HTTP 11
Hình 1.4 Phản hồi một request từ Web Client 11
Hình 1.5 Các lỗ hổng và mối đe dọa với máy chủ web 16
Hình 1.6 Các lỗ hổng bảo mật có nguy cơ tấn công cao nhất 17
Hình 1.7 Mô hình tấn công mạng theo phương pháp truy cập trực tiếp 20
Hình 1.8 Các biện pháp bảo vệ theo chiều sâu 24
Hình 2.1 Mô hình kiến trúc hệ thống IBM QRadar SIEM 27
Hình 2.2 Thống kê của Splunk 28
Hình 2.3 Thống kê thu thập Web log từ các máy chủ cần giám sát của VNCS 29
Hình 2.4 Hệ thống phân tích, phát hiện truy nhập bất thường 30
Hình 2.5 Cấu trúc của bộ Log Parser do Microsoft cung cấp 33
Hình 2.6 Log Parser 2.2 của Microsoft Windows 34
Hình 2.7 Định dạng File log dưới dạng text 35
Hình 2.8 Định dạng File log dưới dạng Excel 35
Hình 2.9 Access.log từ máy Metasploitable 2 37
Hình 2.10 Kết quả sau khi ứng dụng Regex 38
Hình 2.11 Các thành phần chính của việc lựa chọn thuộc tính 40
Hình 2.12 Mô Hình Wrappe 41
Hình 2.13 Mô hình Filter 42
Hình 2.14 Tìm kiếm theo phương pháp Focus 43
Hình 2.15 Tìm kiếm theo phương pháp AAB 43
Hình 2.16 Tìm kiếm theo kinh nghiệm Wrap1 44
Hình 2.17 Tìm kiếm theo phương pháp LVF 45
Hình 2.18 Trình duyệt cảnh báo dấu hiệu bất thường 47
Hình 2.19 Các IP có lượng truy cập lớn có dấu hiệu quậy phá 48
Hình 3.1 Mô hình Mastrer – Slave Database Replication 53
Trang 10Hình 3.2 Mô hình hệ thống máy chủ web của VCCorp 54
Hình 3.3 File dự đoán mật khẩu được tạo ra trên destop của kali 55
Hình 3.4 Log của dịch vụ FTP 56
Hình 3.5 Sử dụng công cụ sqlmap tấn công sql injection 56
Hình 3.6 Cảnh báo tấn công vào dịch vụ FTP 56
Hình 3.7 Thông tin chung về cảnh báo 57
Hình 3.8 Danh sách sự kiện 57
Hình 3.9 Thông tin chi tiết từng cảnh báo 58
Hình 3.10 Lỗi HTTP 500 58
Hình 3.11 Chi tiết lỗi HTTP 500 59
Hình 3.12 Payload của request vào web server 59
Hình 3.13 Một số thông tin khác như IP nguồn, IP đích, thời gian, cổng 59
Hình 3.14 File log trên web server 60
Hình 3.15 Giao diện WebLog Expert 61
Hình 3.16 Các truy cập vào Web theo ngày trong tuần 63
Hình 3.17 Các hành vi truy nhập thống kê theo giờ trong ngày 63
Hình 3.18 Các truy cập vào Web theo từng ngày 64
Hình 3.19 Các trang phổ biến nhất 65
Hình 3.20 Công cụ tìm kiếm đã sử dụng 67
Hình 3.21 Các trình duyệt sử dụng nhiều nhất 67
Hình 3.22 Các loại lỗi xảy ra 68
Hình 3.23 File log phát hiện truy nhập bất thường 68
Trang 11MỞ ĐẦU
Trong bối cảnh khoa học công nghệ ngày càng phát triển, phòng chống tội phạm khủng bố mạng, chiến tranh mạng và ứng phó với những nguy cơ mới từ không gian mạng là vấn đề toàn cầu được nhiều quốc gia xác định là một trong những nhiệm vụ trọng tâm trong bảo vệ, phát triển đất nước Việt Nam không phải ngoại lệ [1]
Theo thống kê từ Trung tâm ứng cứu khẩn cấp máy tính Việt Nam (VNCERT) có hơn 134.000 sự cố an ninh mạng đã xảy ra trong năm 2016 Máy chủ Web là một thành phần vô cùng nhạy cảm, là mục tiêu của một lượng lớn các cuộc tấn công Phân tích logfile, phát hiện các truy nhập bất thường vào máy chủ Web là một nhu cầu thực tế đặt ra, giúp phán đoán nguy cơ xảy ra các cuộc tấn công vào máy chủ Web [4]
Trên cơ sở yêu cầu thực tiễn đặt ra, tôi đã chọn đề tài: “Phát hiện truy nhập bất thường vào máy chủ Web” Đây là một đề tài có ý nghĩa đối với lĩnh vực an
toàn thông tin và an ninh mạng nói chung và bảo đảm an toàn cho máy chủ Web nói riêng Hiện tại, những cuộc tấn công vào các hệ thống mạng nói chung và hệ thống máy chủ Web nói riêng đang diễn ra hàng ngày, hàng giờ, thậm chí hàng phút trên toàn thế giới Chính vì vậy, đây là một vấn đề có tính cấp thiết, cần được nghiên cứu
Phát hiện truy cập bất thường là bước quan trọng để phát hiện ra tấn công vào máy chủ Web Đây là bước cơ sở để thực hiện các bước tiếp theo trong việc đảm bảo an toàn dịch vụ Web, phát hiện các hành động xâm nhập trái phép, các tấn công vào máy chủ Web
Nguyên lý chung để phát hiện bất thường là xây dựng một tập dấu hiệu bình thường (trong điều kiện hoạt động bình thường, không có tấn công) của hệ thống, tiếp đó thu thập các hành vi truy nhập vào máy chủ, so sánh với tập dấu hiệu bình thường đã lưu sẵn Nếu có sự khác biệt có nghĩa là có hành vi truy nhập bất thường
Đối với máy chủ Web, khi thiết lập hệ thống có thể tạo lập tập dấu hiệu bình thường và lưu trữ trong máy (có thể trên một máy tính ở bên ngoài máy chủ) Mọi hành vi truy nhập vào máy chủ Web đều được ghi vào Logfile ví dụ Weblog Thực
Trang 12hiện thu logfile và phân tích sẽ có thể thu được và tách ra những thông tin cần thiết
để phát hiện truy nhập bất thường
Một khả năng khác để thu thập thông tin về các hành vi là sử dụng công cụ thu thập thông tin về máy chủ Web, ví dụ công cụ WLELite Công cụ này cho phép kết xuất nhiều thông tin liên quan đến hoạt động của Web Ví dụ, có thể thống kê được các sự kiện vi phạm chính sách bảo mật, liệt kê được các địa chỉ IP truy nhập vào máy chủ Web, tìm kiếm các Hot-IP, tần suất truy nhập [15]
Kết quả thực hiện đề tài có ý nghĩa thiết thực khi được triển khai ứng dụng tại một nhà cung cấp dịch vụ Hosting là VCCorp, là nơi tôi đang công tác Kết quả
đề tài có thể được triển khai ứng dụng cho các đơn vị cung cấp dịch vụ máy chủ Web, các trung tâm dữ liệu
Bài luận văn gồm 3 chương chính với các nội dung sau:
Chương 1: Máy chủ web và vấn đề an toàn web
Chương 2: Phát hiện truy nhập bất thường vào máy chủ web
Chương 3: Thử nghiệm
Trang 13CHƯƠNG 1 MÁY CHỦ WEB VÀ VẤN ĐỀ AN TOÀN WEB
1.1 Máy chủ Web và giao thức HTTP
1.1.1 Giới thiệu máy chủ web
Máy chủ web (Web server) được dùng để chỉ phần mềm máy chủ, hoặc phần cứng dành riêng để chạy các phần mềm trên máy chủ, có thể cung cấp các dịch
vụ World Wide Web Một máy chủ web xử lí các yêu cầu (request) từ các client (trong mô hình server - client) thông qua giao thức HTTP và một số giao thức liên quan khác [7]
Tất cả các Web Server đều hiểu và chạy được các file *.htm và *.html, tuy nhiên mỗi Web Server lại phục vụ một số kiểu file chuyên biệt chẳng hạn như IIS của Microsoft dành cho *.asp, *.aspx…; Apache dành cho *.php…; Sun Java System Web Server của SUN dành cho *p…
Máy chủ Web thường có dung lượng lớn, tốc độ cao, lưu trữ thông tin như một ngân hàng dữ liệu, chứa những website cùng với những thông tin liên quan khác, ví dụ như các mã Script, các chương trình dịch vụ và các file Multimedia, v.v
Máy chủ Web có khả năng gửi đến máy khách những trang Web thông qua môi trường Internet (hoặc Intranet) qua giao thức HTTP (Hypertext Transfer Protocol) – giao thức được thiết kế để gửi các file đến trình duyệt Web (Web Browser), và các giao thức khác
Tất cả các máy chủ Web đều có một địa chỉ IP (IP Address) hoặc một tên
miền (Domain Name) Ví dụ khi đưa http://www.vdo.vn/ vào dòng địa chỉ trên
trình duyệt nghĩa là gửi một yêu cầu đến một máy chủ Web có Domain Name
là www.vdo.vn Máy chủ Web này sẽ tìm trang Web có tên là index.htm rồi gửi nó
đến trình duyệt
Bất kỳ một máy tính – máy chủ nào cũng có thể trở thành một máy chủ Web nếu cài đặt lên nó một chương trình phần mềm Web Server và có kết nối vào Internet Khi một máy tính của người dùng kết nối đến một Web Server và gửi yêu cầu truy cập các thông tin trên một trang Web nào đó, Web Server sẽ nhận yêu cầu
và gửi lại trình duyệt của người dùng những thông tin mong muốn
Trang 14Giống như những phần mềm khác trên máy tính, phần mềm máy chủ Web cũng chỉ là một ứng dụng phần mềm Nó được cài đặt, và chạy trên máy tính – máy chủ dùng làm Web Server Nhờ có chương trình này, người sử dụng có thể truy cập đến các thông tin của trang Web từ một máy tính khác ở trên mạng (Internet, Intranet)
Phần mềm máy chủ Web có thể được tích hợp với cơ sở dữ liệu (CSDL), hay điều khiển việc kết nối vào CSDL để có thể truy cập và kết xuất thông tin từ CSDL lên các trang Web và truyền tải chúng đến người dùng
Máy chủ Web thường hoạt động liên tục 24/24 giờ, 7 ngày một tuần và 365 ngày một năm, để phục vụ cho việc cung cấp thông tin trực tuyến Vị trí đặt máy chủ Web đóng vai trò quan trọng trong chất lượng và tốc độ lưu chuyển thông tin từ máy chủ Web đến máy tính truy cập [8]
Các loại máy chủ Web phổ biến bao gồm:
- Apache: Đây là máy chủ Web thường được cài đặt trên Linux Hầu hết các trang web PHP được lưu trữ trên máy chủ Apache
- Internet Information Services (IIS): là máy chủ Web được phát triển bởi Microsoft Hầu hết các trang web asp và aspx được lưu trữ trên máy chủ IIS
- Apache Tomcat: Hầu hết các trang web Java (jsp) được lưu trữ trên máy chủ này
- Các máy chủ web khác: bao gồm Web Server của Novell và máy chủ Lotus Domino của IBM, Nginx, v.v.[8]
1.1.2 Các thành phần cơ bản của máy chủ web
Như đã nêu ở trên, một máy chủ Web bao gồm một phần mềm Web server cài đặt trên một máy tính hoặc máy chủ[14]
Máy tính hoặc máy chủ (server) là thiết bị phần cứng cần thiết để cài đặt phần mềm Web server Tùy vào phạm vi ứng dụng, yêu cầu cung cấp dịch vụ, phần cứng máy chủ có thể có cấu hình từ đơn giản đến rất mạnh Quan trọng đối với hiệu năng của máy chủ Web là tốc độ CPU, dung lượng đĩa cứng lưu trữ và tốc độ kết nối mạng
Ngoài ra để máy chủ Web hoạt động, còn cần thêm các thành phần quan trọng khác là máy chủ cơ sở dữ liệu (Database server) và máy chủ ứng dụng
Trang 15(Application server) Trong một hệ máy chủ Web đơn gian, hai thành phần nêu trên
có thể cùng được cài đặt trên một phần cứng máy tính/máy chủ
Trên hình 1.1 là kiến trúc đơn giản cho một hệ thống máy chủ Web Web server bao gồm thành phần giao diện Web (Presentation layer hay Web interface), thành phần giao diện CSDL (Database interface) Máy chủ CSDL có thể đặt ngoài máy tính cài Web Server, được kết nối với nhau qua giao diện TCP/IP Giao diện giữa máy chủ Web và trình duyệt của người dùng (Web Browser) được thực hiện qua kết nối HTTP hoặc HTTPS Toàn bộ hoạt động của máy chủ Web được ghi vào nhật ký (Log file) phục vụ cho việc theo dõi, giám sát hoạt động và tìm lỗi)
Hình 1.1 Kiến trúc hệ thống máy chủ web
1.1.3 Nguyên tắc hoạt động
Nguyên tắc hoạt động cơ bản của máy chủ Web được thể hiện trên hình 1.2 Người dùng gõ dòng địa chỉ máy chủ Web vào trình duyệt web và ấn Enter, trang web sẽ hiển thị trên màn hình máy tính người dùng Để trang web có thể hiển thị được thì cơ chế hoạt động của máy chủ web được thể hiện qua các bước cơ bản trong tiến trình truyền tải trang web đến màn hình người dùng như sau
Kết nối HTTP/ HTTPS
TCP / IP
Máy trạm Trình duyệt web
Máy chủ web
Lớp trình bày (Giao diện web)
Giao diện cơ sở dữ liệu Tệp
Trang 16Các tiến trình cơ bản
Theo mô hình trên, trình duyệt web (bên trái) thực hiện một kết nối tới máy chủ web (bên phải), yêu cầu một trang web và nhận lại nó Trình tự từng bước cơ bản xảy ra như sau
* Trình duyệt web tách địa chỉ website làm 3 phần:
- Tên giao thức: “http”
- Tên miền của máy chủ web: “http://maychuvietnam.com.vn”
- Tên tệp HTML: “web-server.htm”
* Trình duyệt gửi yêu cầu kết nối tới máy chủ Web (bản tin HTTP request)
* Máy chủ Web trả lời bằng bản tin HTTP response
* Căn cứ thông tin trong bản tin yêu cầu, máy chủ Web liên hệ với máy chủ tên miền (DNS Server) để chuyển đổi tên miền “http://maychuvietnam.com.vn” ra địa chỉ IP tương ứng Sau đó, trình duyệt sẽ gửi tiếp một kết nối tới máy chủ của website có địa chỉ IP này qua cổng 80 Dựa trên giao thức HTTP, trình duyệt gửi yêu cầu GET đến máy chủ, yêu cầu tệp HTML “web-server.htm”
Hình 1.2 Các bước cơ bản trong tiến trình truyền tải web
Chú ý: Một cookies cũng sẽ được gửi kèm từ trình duyệt web đến máy chủ
Tiếp đến, máy chủ sẽ gửi một file văn bản có các thẻ HTML đến trình duyệt web của máy yêu cầu (một cookies khác cũng được gửi kèm theo từ máy chủ tới trình duyệt web, cookies này được ghi trên đầu trang của mỗi trang web)
Trình duyệt web đọc các thẻ HTML để xác lập định dạng trang web và kết xuất nội dung trang ra màn hình yêu cầu
Trong giao thức HTTP nguyên bản, cần cung cấp đầy đủ đường dẫn của tên tệp Ví dụ như “/” hoặc “/tên tệp.htm” Sau đó, giao thức sẽ tự điều chỉnh để có thể
Trang 17đưa ra một địa chỉ URL đầy đủ Điều này cho phép các công ty kinh doanh dịch vụ lưu trữ có thể lưu trữ nhiều tên miền ảo (virtual domains) Có nghĩa nhiều tên miền cùng tồn tại trên một máy chủ và sử dụng cùng một địa chỉ IP duy nhất
Rất nhiều máy chủ web đưa thêm các chế độ bảo mật trong nhiều tiến trình
xử lý Máy chủ web hỗ trợ người quản lý trang web duy trì một danh sách tên và password cho phép những người được phép truy cập vào trang web Với máy chủ web chuyên nghiệp, yêu cầu mức độ bảo mật lớn; chỉ cho kết nối đã được mã hóa giữa máy chủ và trình duyệt Do đó những thông tin nhạy cảm như password… có thể được truyền tải tên Internet[14]
1.1.4 Ghi nhật ký (Web Log)
Web log file chính là các tệp nhật ký tự động tạo và duy trì bởi một máy chủ web Mỗi lần truy cập vào trang Web, bao gồm mỗi lần xem một tài liệu HTML, hình ảnh hoặc các đối tượng của website đều được web server ghi nhận Các máy chủ web như IIS, Apache hay Nginx đều có các web log file để ghi lại các nhật ký hoạt động của website[9]
Định dạng tệp nhật ký web thô chủ yếu là một dòng văn bản cho mỗi lần truy cập vào trang web Điều này chứa thông tin về ai đã ghé thăm trang web, nơi họ đến
và chính xác những gì họ đang làm trên trang web[2]
Với webserver có 2 dạng log file quan trọng:
* Access_log:
Access_log là nơi ghi lại tất cả những yêu cầu được xử lý bởi server Vị trí
và nội dung của access log được điều khiển bởi CustomLog directive Có thể dùng LogFormat directive trong việc định dạng nội dung của tập tin access_log LogFormat chỉ ra những thông tin server cần theo dõi để ghi lại trong access log
* Error_log:
ErrorLog là nơi mà httpd sẽ gửi những thông tin nhận dạng và bất kỳ những lỗi nào gặp phải trong quá trình xử lý những yêu cầu Tập tin này là nơi mà cần xem xét đầu tiên khi gặp phải những lỗi khởi động httpd hay những thao tác của server,
vì nó lưu những thông tin chi tiết về những lỗi và cách sửa lỗi Định dạng của tập
tin error_log không bị bó buộc[9]
Trang 18* Định dạng các tệp log:
- Đối với Access_log:
Để thay đổi định dạng access log, có thể dùng directive log_format Chỉ thị này mặc định nằm trong block http {…} Để xem được log format ví dụ của Nginx,
có thể vào chỉ dẫn thư mục /etc/nginx/nginx.conf (sử dụng hệ điều hành CentOS và Ubuntu)[14]
Mẫu log_format mặc định trong Nginx là access combined như sau:
log_format combined '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
Chỉ thị log_format để định dạng access log cho Nginx, ý nghĩa các biến như sau:
$remote_addr địa chỉ IP truy cập web site của bạn
$remote_user ghi lại tài khoản truy cập web nếu trang của bạn có xác thực
người dùng, đa số là không dùng bạn có thể bỏ đi
$time_local thời gian người dùng truy cập
$request đoạn đầu của request
$status trạng thái của response
$body_bytes_sent kích thước body mà server response
$http_referer URL được tham chiếu
$http_user_agent thông tin trình duyệt, hệ điều hành mà người dùng truy cập
Dưới đây là ví dụ về một bản ghi log trong Access_log (sample log):
118.69.244.106 - - [08/Jun/2016:08:08:10 +0700] "GET
/wp-content/plugins/wp-tab-widget-pro/css/font-awesome.min.css HTTP/1.1" 200 7027
tren-linux-toan-tap.html" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36"
"https://www.thuysys.com/server-vps/backup-restore/huong-dan-backup-website Đối với Error_log:
Log này để ghi lại thông tin các lỗi cài đặt cấu hình hay đơn giản chỉ là những cảnh báo giữa Web Server và các dịch vụ của nó
Ví dụ một bản ghi trong file error_log trên máy chủ Web Apache như sau:
[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test
Trang 19Cột đầu tiên chỉ ra ngày giờ entry này được tạo ra Cột thứ 2 chỉ ra đây là entry lỗi Cột thứ 3 cho biết địa chỉ IP của client tạo ra lỗi Tiếp theo là message có nội dung chỉ ra rằng server được cấu hình để từ chối việc truy cập của client Tiếp theo là đường dẫn của document mà client cần truy cập
Trong máy chủ Web Nginx, thực hiện ghi error_log bằng cách thêm chỉ thị error_log vào block http {…} như sau:
server {
error_log /var/log/nginx/error.log error;
}
Cú pháp chung của error log là:
error_log log_file log_level
Trong đó:
emerg log ở level này mang tính khẩn cấp, dạng như server sắp sập đến
nơi rồi
alert cảnh báo các vấn cần cần được xử lý ngay
crit các vấn đề quan trong nhưng không nhất thiết phải xử lý ngay lập tức,
để theo dõi thêm
error ghi lại thông tin lỗi như đăng nhập hoặc cấu hình sai, mức độ thấp
hơn crit
warn ở mức độ cảnh báo không phải lỗi
notice để thông báo cái gì đó
info ghi thông tin hệ thống, không có gì cả
debug ghi lại tất cả mọi thứ, dùng để dò lỗi
Ví dụ các trường trong một file log trên máy chủ IIS như sau:
Date , Time , ClientIP , UserName , ServerIP , Method , UriStem , UriQuery , TimeTaken ,
HttpStatus , Win32Status , ServerPort , UserAgent , HttpSubStatus , and Referer
1.1.5 Giao thức HTTP
HTTP (HyperText Transfer Protocol) là giao thức truyền tải siêu văn bản Đây
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 (máy chủ Web) và máy sử dụng dịch vụ (Web client
Trang 20hay Web browser) trong mô hình Client/Server dùng cho World Wide WWW HTTP là một giao thức ứng dụng của bộ giao thức TCP/IP (các giao thức nền tảng cho Internet) HTTP này nằm trong tầng Application Layer, được sử dụng để truyền nội dung trang Web từ Web Server đến trình duyệt Web ở Client[21]
Web-Cơ chế hoạt động chính của HTTP là Request-Response: Web Client sẽ gửi Request đến Web Server, Web Server xử lý và trả về Response cho Web Client
Phương thức truy vấn (Request Method) phổ dụng của HTTP gồm: GET,
HEAD, POST, PUT, DELETE, TRACE, OPTIONS, CONNECT, PATCH Ngoài Method, URI (Địa chỉ định danh của tài nguyên), HTTP Version thì trong Request Header có một số trường thông dụng sau:
- Accept: Loại nội dung có thể nhận được từ thông điệp response Ví dụ:
text/plain, text/html…
- Accept-Encoding: Các kiểu nén được chấp nhận Ví dụ: gzip, deflate, xz, exi…
- Connection: Tùy chọn điều khiển cho kết nối hiện thời Ví dụ: keep-alive,
Upgrade…
- Cookie: Thông tin HTTP Cookie từ server
- User-Agent: Thông tin về user agent của người dùng
Hai phương thức được sử dụng nhiều nhất trong HTTP request là GET và POST Với GET, câu truy vấn sẽ được đính kèm vào đường dẫn của HTTP request
Ví dụ: /?username=”abc”&password=”def” Một số đặc điểm của phương thức GET như sau:
- GET request có thể được cached, bookmark và lưu trong lịch sử của trình duyệt
- GET request bị giới hạn về chiều dài, do chiều dài của URL là có hạn
- GET request không nên dùng với dữ liệu quan trọng, chỉ dùng để nhận dữ liệu Ngược lại, với POST thì câu truy vấn sẽ được gửi trong phần message body của HTTP request, một số đặc điểm của POST như sau:
- POST không thể cached, bookmark hay lưu trong lịch sử trình duyệt
- POST không bị giới hạn về độ dài
Trang 21Hình 1.3 Phương thức GET trong HTTP
* Response Code
Response Code chỉ ra trạng thái của một Repsonse khi phản hồi một request
từ Web Client - Thành công hay thất bại, có lỗi hay không, lỗi của ai
Hình 1.4 Phản hồi một request từ Web Client
Các thông báo lỗi cụ thể như sau:
1xx - Informational
2xx - Success (200 - OK, 202 - Accepted, 204 - No Content)
3xx - Redirection (301 Moved Permanently: tài nguyên đã được chuyển hoàn toàn tới địa chỉ Location trong HTTP response 303 See other: tài nguyên đã được chuyển tạm thời tới địa chỉ Location trong HTTP response 304 Not Modified: tài nguyên không thay đổi từ lần cuối client request, nên client có thể sử dụng đã lưu trong cache.)
4xx - Client Error (400 - Bad Request, 401 - Unauthorized, 403 - Forbidden, 404 - Not Found, 405 - Method Not Allowed, 408 - Request Timeout,
429 - Too many requests)
5xx - Server Error (500 - Internal Server Error, 503 - Service Unavailable,
504 - Gateway Timeout, 509 - Bandwidth Limit Exceed)
Trang 221.1.6 Một số nền tảng Apache, IIS, Ngin
* Nền tảng Apache
Có thể cài đặt một trang tin WordPress trên máy chủ Apache Web Server mà không phải tùy chỉnh gì hết Hơn nữa, Apache server hoạt động tốt với các hệ thống quản trị nội dung lớn trên thế giới (Joomla, Drupal, …), web frameworks (Django, Laravel, etc.), và các ngôn ngữ lập trình khác Việc này giúp nó giữ vững vị trí số một trong số các nền tảng web hosting, đặc biệt là đối với VPS hoặc shared hosting
Apache là phần mềm Web Server miễn phí mã nguồn mở, đang chiếm khoảng 46% thị phần trang Web trên toàn thế giới Tên chính thức của Apache
là Apache HTTP Server, được điều hành và phát triển bởi công ty Apache Software Foundation
Apache Web Server là lựa chọn ưu việt để tạo ra một website ổn định và có thể tùy chỉnh linh hoạt Tuy nhiên, nó cũng có một số nhược điểm
Ưu điểm:
1 Phần mềm mã nguồn mở và miễn phí, kể cả cho mục đích thương mại
2 Phần mềm đáng tin cậy, ổn định
3 Được cập nhật thường xuyên, nhiều bản vá lỗi bảo mật liên tục
4 Linh hoạt vì có cấu trúc module
5 Dễ cấu hình, thân thiện với người mới bắt đầu
6 Đa nền tảng (hoạt động được cả với server Unix và Windows)
7 Hoạt động cực kỳ hiệu quả với WordPress sites
8 Có cộng đồng lớn và sẵn sàng hỗ trợ với bất kỳ vấn đề nào
Nhược điểm:
1 Gặp vấn đề hiệu năng nếu website có lượng truy cập cực lớn
2 Quá nhiều lựa chọn thiết lập có thể gây ra các điểm yếu bảo mật[2,22]
* Nền tảng IIS
IIS là viết tắt của từ (Internet Information Services ), được đính kèm với các phiên bản của Windows IIS gồm các dịch vụ máy chủ chạy trên nền hệ điều hành Window, cung cấp và phân phối các thông tin lên mạng IIS gồm có nhiều dịch vụ khác nhau như Web Server, FTP Server…
Các thành phần chính của IIS như sau:
- Khối quản trị IIS (IIS Manager):
Trang 23IIS Manager dùng để quản trị IIS Server Nó quản lý tài nguyên các file, directory, và các thiết lập cho các ứng dụng như về security, performance và các tính năng khác
- Khối chính sách kiểm toán (Audit Policy):
Cần thiết lập Audit Policy trên IIS Server trong môi trường làm việc đảm bảo toàn bộ thông tin của người dùng khi log vào hệ thống sẽ đều được ghi lại Tất cả những dữ liệu được truy cập đều được log lại
- Khối cấp quyền người dùng (User Rights Assignments):
Cần thiết lập “Deny access to this computer from the network” Thiết lập này quyết định những users nào bị cấm truy cập tới IIS Server từ mạng
Thiết lập khiến cho tài khoản người dùng sẽ bị hạn chế và đảm bảo tính bảo mật cao hơn Điển hình là các cấu hình: ANONOYMOUS LOGON, Built-in Administrator, Suport_388945a0,
- Khối nhật ký sự kiện (Event Log):
Cần thiết lập trên IIS Servers lưu lại toàn bộ các sự kiện theo một thể thống nhất với các tham số tuỳ vào yêu cầu Có hai yêu cầu cần ghi lại là: Ghi lại quá trình đăng nhập hệ thống, và ghi lại những đối tượng được truy cập (kể cả lỗi hay không
có lỗi xảy ra trong quá trình đăng nhập)
- Khối dịch vụ hệ thống (SYSTEM Services):
Các dịch vụ trong Microsoft Windows Server cần được thiết lập ở chế độ tự động gồm:
+ HTTP SSL: được kích hoạt trong IIS Servers để thực hiện Secure Sockets Layer (SSL) SSL là một chuẩn để thiết lập bảo mật khi truyền những thông tin nhạy cảm Nếu HTTP SSL bị tắt thì IIS Servers sẽ không làm việc với SSL Dẫn tới một số dịch vụ khác phụ thuộc vào nó bị ảnh hưởng
+ IIS Admin Service: quản trị các thành phần trong IIS như FTP, Application Pools, Web Sites, Web Service Extensions và cả NNTP và SMTP IIS Admin Service cung cấp các dịch vụ Web, FTP, NNTP và SMTP Nếu dịch vụ này bị tắt, IIS sẽ không thể cấu hình , tất cả những yêu cầu cho tới dịch vụ Web đều bị ngưng trệ
+ World Wide Web Publishing Service: cung cấp kết nối và quản trị Website qua IIS Snap-in Dịch vụ này buộc phải chạy trên IIS Server để cung cấp kết nối Web và quản trị trên IIS Manager
- Thiết lập quyền trong IIS (IIS Web Site Permissions):
Trang 24IIS có khả năng thiết lập Web site permissions để quyết định cho phép hay cấm những hành động nào truy cập vào website Một số quyền có thể gán trong Web Site Permissions:
+ Read: Chỉ được xem các nội dung và các thuộc tính của các thư mục hoặc tập tin
+ Write: Có khả năng thay đổi nội dung và thuộc tính của các thư mục hoặc tập tin
+ Log Visits: Toàn bộ log ghi lại quá trình truy cập của người dùng vào web site + Excute: Thực thi script[2,23]
* Nền tảng Nginx
Nginx là một nền tảng máy chủ Web sử dụng phổ biến giao thức HTTP, HTTPS, SMTP, POP3, IMAP đồng thời tạo cân bằng tải Nginx tập trung vào việc phục vụ số lượng lớn kết nối đồng thời, hiệu suất cao và sử dụng bộ nhớ thấp Nginx
có sự ổn định cao, nhiều tính năng, cấu hình đơn giản và tiết kiệm tài nguyên
Khác với các nền tảng máy chủ khác, Nginx không dựa vào luồng (threads)
để xử lý các truy vấn (request) Thay vào đó, Nginx sử dụng kiến trúc hướng sự kiện (event-driven) không đồng bộ và có khả năng mở rộng Nginx có hiệu suất cao
và yêu cầu bộ nhớ thấpdo vậy Nginx có thể được sử dụng trên máy chủ cấu hình thấp nhất cho đến một hệ thống lớn như trên đám mây
Nginx được phát triển để xử lý các vấn đề được gọi là c10k problem (10,000 connections), có nghĩa là vấn đề không thể thực hiện được hơn 10,000 kết nối cùng lúc đối với các nền tảng máy chủ truyền thống sử dụng threads Nginx có kiến trúc
xử lý dạng “sự kiện” (event) không phải tạo process mới cho mỗi truy vấn Nó xử lý các truy vấn trong một thread duy nhất Dạng quản lý sự kiện như vậy của Nginx phân tán truy vấn một cách hiệu quả để đạt hiệu quả quản lý tốt hơn Ưu điểm của Nginx là nó có thể xử lý nhiều tiến trình với tài nguyên thấp nhất có thể[2,24]
1.2 Các lỗ hổng bảo mật Web
1.2.1 Khái niệm lỗ hổng bảo mật
Lỗ hổng bảo mật (Security Vulnerability): Một điểm yếu trong một hệ
thống cho phép kẻ tấn công khai tác gây tổn hại đến an ninh, an toàn hệ thống[21]
Những nguy cơ tiềm ẩn, đối với an toàn ứng dụng web đến từ nhiều nguyên nhân khách quan và chủ quan sau đây:
Trang 25- Thảm họa bất ngờ: Tác động đến từ bên ngoài, ảnh hưởng đến bảo vệ ở mức vật lý của trang web như hỏa hoạn, bão lũ, động đất, khủng bố, tai nạn lao động
- Sự cố máy tính: Trục trặc vật lý ảnh hưởng đến hoạt động của trang web như sự cố nguồn điện, hỏng phần cứng, thiết bị nối mạng hỏng, môi trường vận hành thiết bị hỏng,
- Sự cố vô tình: Sự kiện ảnh hưởng đến hệ thống do yếu tố con người như 20
- nhân viên thiếu hiểu biết về bảo mật, lơ là, cẩu thả khi quản lý hệ thống
- Sự cố có chủ ý: Hoạt động phá hoại, khai thác tấn công làm ảnh hưởng đến
an toàn của trang web, bao gồm tội phạm máy tính, tình báo và khủng bố công nghệ cao, nhân viên bất mãn với tổ chức, nhân viên gián điệp bán thông tin để nhận hối
lộ, nhân viên bị đánh lừa tài khoản hệ thống
Loại bỏ các mối đe dọa trên đòi hỏi phải tốn nhiều thời gian và công sức Trước hết là cần ý thức rõ ràng và đầy đủ về những hiểm họa này, sau đó lên kế hoạch thực hiện quản lý và phòng tránh rủi ro thích hợp trước mỗi loại nguy cơ
1.2.2 Các loại lỗ hổng phổ biến của Web
Có 3 loại lỗ hổng phổ biến hiện nay:
+ Lỗ hổng loại C
Là loại lỗ hổng có mức nguy hiểm thấp, chỉ ảnh hưởng tới chất lượng dịch
vụ, làm ngưng trệ gián đoạn hệ thống, không làm phá hỏng dữ liệu hoặc đạt được quyền truy cập bất hợp pháp Internet (IP) nói riêng và bộ giao thức TCP/IP nói chung đã ẩn chứa những nguy cơ tiềm tàng của các lỗ hổng loại này Ví dụ, lỗ hổng được tin tặc khai thác để thực hiện các hình thức tấn công theo DoS (Denial of Services- Từ chối dịch vụ), làm hệ thống ngưng trệ dẫn đến tình trạng từ chối người
sử dụng hợp pháp truy nhập hay sử dụng hệ thống
+ Lỗ hổng loại B
Là loại lỗ hổng thường có trong các ứng dụng trên hệ thống, có mức độ nguy hiểm trung bình Ví dụ lỗ hổng cho phép người sử dụng có thêm các quyền trên hệ thống
mà không cần kiểm tra tính hợp lệ dẫn đến mất mát thông tin yêu cầu cần bảo mật
Một dạng khác của lỗ hổng loại B xảy ra với các chương trình viết bằng mã nguồn C Những chương trình này thường sử dụng một vùng trong bộ nhớ để lưu trữ dữ liệu trước khi xử lý Người lập trình thường sử dụng vùng đệm trong bộ nhớ trước khi gán một khoảng không gian bộ nhớ cho từng khối dữ liệu
Trang 26+ Lỗ hổng loại A
Loại lỗ hổng này có mức độ rất nguy hiểm đe dọa tính toàn vẹn và bảo mật của hệ thống Các lỗ hổng này thường xuất hiện ở những hệ thống quản trị yếu kém hoặc không kiểm soát được cấu hình mạng, cho phép người ngoài có thể truy cập bất hợp pháp vào hệ thống, có thể làm phá huỷ toàn bộ hệ thống Những lỗ hổng loại này thường đã tồn tại sẵn trên phần mềm ứng dụng, người quản trị nếu không hiểu sâu về dịch vụ và phần mềm sử dụng có thể bỏ qua điểm yếu này Một loạt các chương trình phiên bản cũ thường có những lỗ hổng loại A như: FTP, Gopher, Telnet, Sendmail, ARP, finger
Hình 1.5 Các lỗ hổng và mối đe dọa với máy chủ web
* Phân loại theo OWASP[18]
- Chèn mã (Injection)
- Lỗi xác thực, quản lý phiên (Broken Authentication and Session Management)
- Lỗi chéo trang-XSS (Cross-Site Scripting)
- Tham chiếu trực tiếp đối tượng không an toàn (Insecure Direct Object References)
- Cấu hình bảo mật kém (Security Misconfigtiration)
- Lộ dữ liệu nhạy cảm (Sensitive Data Exposure)
- Thiếu kiểm soát truy cập mức chức năng (Missing Function Level Access Control)
- Giả mạo yêu cầu liên kết trang (Cross-Site Request Forgery - CSRF)
- Sử dụng lỗ hổng đã biết (Using Known Vulnerable Components)
thông tin
Mã độc: virut trojan…
Firewall
Tấn công từ chối dịch vụ
Tấn công tiêm mã
(XSS, SQLi, Bof,…)
Firewall
Web Server
Trang 27- Chuyển hướng không an toàn (Unvalidated Redirects and Forwards)
Hình 1.6 Các lỗ hổng bảo mật có nguy cơ tấn công cao nhất
1.2.3 Phương pháp kiểm thử lỗ hổng
Kiểm thử lỗ hổng bảo mật đối với ứng dụng web chính là việc làm thế nào để có thể chỉ ra những lỗ hổng đang tồn tại trên hệ thống một cách đầy đủ và khoa học[11,13]
* Phương pháp kiểm thử hộp đen
Kiểm thử hộp đen (Black Box Testing) là phương pháp dựa trên đầu vào và
đầu ra của hệ thống để kiểm thử mà không quan tâm tới code bên trong
Với phương pháp kiểm thử hộp đen, các lỗ hổng bảo mật trên ứng dụng web thực hiện kiểm thử các ứng dụng từ bên ngoài, phía giao diện người dùng Tức là quan sát các dữ liệu được chuyển đến ứng dụng và các dữ liệu từ ứng dụng xuất ra
mà không biết mã nguồn hay hệ thống bên trong Quá trình chuyển dữ liệu từ bên ngoài đến ứng dụng có thể thực hiện bằng thủ công hoặc sử dụng công cụ tự động
Bảng 1.1 Ưu và nhược điểm của phương pháp kiểm thử hộp đen
Ưu điểm Nhược điểm
- Độc lập với ứng dụng, vì chủ yếu dựa
trên vai trò người kiểm thử bên ngoài;
- Không yêu cầu truy cập mã nguồn, không
đòi hỏi kiểm thử viên phải có kiến thức sâu
- Khó thiết kế kịch bản kiểm thử
Trang 28* Phương pháp kiểm thử hộp trắng
Kiểm thử hộp trắng (White Box Testing) là phương pháp dựa vào thuật toán, cấu trúc code bên trong của chương trình với mục đích đảm bảo rằng tất cả các câu lệnh và điều kiện sẽ được thực hiện ít nhất một lần
Quá trình xác định lỗ hổng dựa trên mã nguồn của ứng dụng được thực hiện bởi nhà phát triển, có thể được thực hiện thủ công hoặc bằng công cụ tự động Việc thực hiện thủ công với số lượng lớn các dòng lệnh có cấu trúc phức tạp sẽ gặp rất nhiều khó khăn Do đó, rất cần phải có công cụ hỗ trợ cho kiểm thử viên để phân loại, tiếp cận nhanh chóng những điểm mà ứng dụng có khả năng bị lỗi Các công
cụ khi kiểm thử sẽ tiến hành quét toàn bộ mã nguồn của ứng dụng và dựa trên tập nhận biết các hàm, các chỉ dẫn có khả năng gây ra lỗi bởi ngôn ngữ lập trình phát triển ứng dụng web Một công cụ miễn phí được sử dụng phổ biến để quét mã
nguồn là AppCodeScan do Blueinjy Solutions Pvt Ltd phát triển
Bảng 1.2 Ưu và nhược điểm của phương pháp kiểm thử hộp trắng
Ưu điểm Nhược điểm
- Đây là phương pháp kiểm thử cho kết quả
tốt nhất, chi tiết nhất;
- Kiểm thử viên phải có kiến thức về mã
nguồn nên dễ dàng tìm ra các loại dữ liệu
giúp cho việc kiểm thử hiệu quả hơn;
- Giúp tối ưu hoá mã nguồn, loại bỏ những
đoạn mã nguồn gây hại;
- Do kiểm thử viên có kiến thức về mã
nguồn nên có thể đạt được hiệu quả tối đa các
kịch bản kiểm thử
- Được thực hiện bởi nhà phát triển nên có thể kết quả kiểm thử mang tính chủ quan;
- Tiêu tốn nhiều thời gian kiểm thử;
- Yêu cầu kiểm thử viên có kỹ năng cao;
- Chi phí cho việc kiểm thử cao
Cách tiếp cận khi kiểm thử mã nguồn ứng dụng web như sau:
- Theo dõi khả năng điều khiển dữ liệu của người sử dụng từ những điểm vào của ứng dụng và quan sát mã chịu trách nhiệm xử lý nó
- Tìm kiếm trong mã nguồn những dấu hiệu lỗi bảo mật khả nghi, quan sát những vị trí này để xác định rõ có thực sự gây ra lỗi hay không
Những thành phần chức năng cần được lưu tâm khi xem xét mã nguồn là các
Trang 29thành phần liên quan đến chứng thực, quản lý phiên sử dụng, các điều khiển truy cập, các giao tiếp với các thành phần bên ngoài Ví dụ, kiểm thử lỗi SQL Injection
ta cần quan tâm đến các từ khóa truy vấn SQL như select, update, delete, insert,
và theo dõi quá trình thành lập SQL và cách thức gọi nó trong mã nguồn
* Phương pháp kiểm thử hộp xám
Kiểm thử hộp xám (Grey Box Testing) được sử dụng để kiểm thử khi những thông tin được biết bên trong hệ thống mang tính hạn chế Thực chất đây là phương pháp kết hợp giữa kiểm thử Black Box Testing và White Box Testing Trong phương pháp này, kiểm thử viên có thể được xem tài liệu thiết kế, truy cập CSDL Với những thông tin có được, kiểm thử viên có thể có kịch bản kiểm thử tốt hơn khi lên kế hoạch kiểm thử Việc kiểm thử có thể được tiến hành với vai trò người dùng cuối hoặc nhà phát triển phần mềm
Bảng 1.3 Ưu và nhược điểm của phương pháp kiểm thử hộp xám
Ưu điểm Nhược điểm
- Kết hợp lợi thế của hai phương pháp
kiểm thử hộp đen và kiểm thử hộp xám;
- Kiểm thử viên không dựa vào mã nguồn
mà dựa vào việc định nghĩa giao diện và
đặc tả các chức năng;
- Dựa trên một số thông tin có
- được, có thể xây dựng các kịch bản
kiểm thử rất hiệu quả;
- Kiểm thử tất cả các đầu vào sẽ không thực tế, vì mất rất nhiều thời gian;
- Nếu người thiết kế phần mềm thiết kế sẵn các trường hợp kiểm thử thì kết quả sẽ không khách quan
- Kịch bản kiểm thử chưa thực sự khách quan
1.3 Tấn công vào máy chủ Web
1.3.1 Giới thiệu về tấn công vào máy chủ Web
Tấn công vào máy chủ Web là hình thức kẻ tấn công tìm cách khai thác các
lỗ hổng đã biết hoặc chưa biết trên máy chủ Web nhằm đánh cắp thông tin từ máy chủ, phá rối hoạt động hoặc gây gián đoạn, ngưng trệ dịch vụ Web Đối tượng bị tấn công có thể là cá nhân, doanh nghiệp, tổ chức hoặc cơ quan nhà nước[12]
Kẻ tấn công có thể dùng công cụ bắt gói tin tự động, rà quét các lỗ hổng trong hệ thống, quét cổng, và kiểm tra các dịch vụ đang chạy với mục đích là do
Trang 30thám, thu thập thông tin về hệ thống Thông qua các lỗ hổng trong dịch vụ web, đường truyền FTP, dịch vụ xác thực, kẻ tấn công có thể dễ dàng truy cập vào các tài khoản của admin như trong cơ sở dữ liệu, website, ứng dụng, phần mềm quản lý…
để lấy đi những thông tin, dữ liệu quan trọng
Tin tặc có thể phá rối hoạt động bằng cách xóa dữ liệu, mã hóa dữ liệu, tống tiền chủ sở hữu máy chủ để lấy lại được dữ liệu cần thiết Ngoài ra, phương pháp xâm nhập như email lừa đảo, đường link lạ, thông báo giải thưởng giả mạo thông qua các đường link mã độc cũng là một kỹ thuật được tin tặc áp dụng thường xuyên
Với kiểu tấn công DDoS, kẻ tấn công sẽ gửi hàng loạt những yêu cầu với số lượng cực lớn (vượt quá khả năng xử lý tới hệ thống nạn nhân), làm cho hệ thống bị tạm dừng hoạt động của máy chủ Web
Một số ví dụ điển hình về tấn công máy chủ Web như: Trong cùng một hệ thống máy chủ Web nội bộ, tin tặc có thể xâm nhập vào hệ thống Web của công ty
Kẻ tấn công sẽ đóng vai như một người dùng thật trong hệ thống, sau đó tiến hành xâm nhập vào tệp chứa tài liệu bí mật của công ty về tài chính Tin tặc có thể rút sạch số tiền đó, hoặc thay đối các con số, ẩn file…
Hình 1.7 Mô hình tấn công mạng theo phương pháp truy cập trực tiếp
1.3.2 Một số loại tấn công điển hình vào máy chủ Web
- Tấn công chuyển dịch thư mục (Directory traversal attacks): Đây là loại tấn công khai thác lỗi trong máy chủ web để truy cập trái phép vào các tập tin và thư mục Một khi những kẻ tấn công đã đạt được quyền truy cập, chúng có thể tải thông tin nhạy cảm, thực thi lệnh trên máy chủ hoặc cài đặt phần mềm độc hại
Trang 31- Tấn công từ chối dịch vụ (Denial of Service Attacks): Với kiểu tấn công này, máy chủ web có thể bị sập hoặc trở nên không có sẵn cho người sử dụng hợp pháp
- Tấn công chiếm giữ hệ thống tên miền (Domain Name System Hijacking): Các thiết lập DNS được thay đổi để trỏ đến trang web của kẻ tấn công Tất cả lưu lượng lẽ ra phải được gửi đến máy chủ web được chuyển sai hướng
- Tấn công nghe lén (Sniffing): Dữ liệu không mã hóa gửi qua mạng có thể bị chặn và được sử dụng để truy cập trái phép vào máy chủ web để nghe lén thông tin
- Tấn công giả mạo (Phishing): Kẻ tấn công mạo danh các trang web và chuyển hướng đến một trang web giả mạo
- Tấn công đầu độc (Pharming): Kẻ tấn công thỏa hiệp với máy chủ DNS hoặc với máy tính của người dùng để các lưu lượng chuyển đến một trang web độc hại
- Tấn công thay giao diện (Defacement): Kẻ tấn công thay thế trang web của
tổ chức với một trang khác có chứa tên, hình ảnh và có thể bao gồm nhạc nền và tin nhắn của kẻ tấn công
* Công cụ tấn công máy chủ Web:
- Metasploit: Một công cụ mã nguồn mở cho thử nghiệm và sử dụng để khai thác Nó có thể được sử dụng để phát hiện ra các lỗ hổng trong các máy chủ web và các khai thác được sử dụng để xâm nhập máy chủ
- Mpack: Là một công cụ khai thác web Nó được viết bằng PHP và được hỗ trợ bởi MySQL Khi một máy chủ web đã bị xâm nhập bằng MPack, tất cả lưu lượng sẽ được chuyển hướng đến trang web độc hại
- Zeus: Công cụ này có thể được sử dụng để biến một máy tính bị nhiễm thành một bot hoặc zombie
- Neosplit: Công cụ này có thể được sử dụng để cài đặt chương trình, xóa chương trình, sao chép, v v…[12,13]
1.3.3 Thống kê tấn công máy chủ Web điển hình hiện nay
* Khảo sát các loại tấn công điển hình vào trang tin / cổng TTĐT
Báo cáo của Trung tâm Ứng cứu khẩn cấp máy tính Việt Nam (VNCERT) cho biết trong năm 2016, tại Việt Nam ghi nhận 134.375 sự cố tấn công mạng của
cả 3 loại hình Phishing (lừa đảo), Malware (mã độc) và Deface (thay đổi giao diện), tăng hơn 4,2 lần so với năm 2015[4]
Trang 32Năm 2014, VCCorp bị mất một phần dữ liệu do sự cố liên quan đến Datacenter, khiến doanh nghiệp này thiệt hại hơn 5 tỷ chỉ trong vòng 2 ngày
Cuối tháng 7 năm 2016, Website của Vietnam Airlines bị tấn công, thay đổi toàn bộ nội dung trang chủ Hàng loạt màn hình hiển thị thông tin chuyến bay tại sân bay Nội Bài, Tân Sơn Nhất cùng hệ thống phát thanh của sân bay bất ngờ bị chèn nội dung kích động, xuyên tạc về biển Đông Trong khi hang loạt thông tin khách hang Bông sen Vàng bị đánh cắp
Riêng trong nửa đầu năm 2017, Trung tâm VNCERT ghi nhận 6.303 cuộc tấn công mạng vào các hệ thống thông tin của Việt Nam, bao gồm 1.522 cuộc tấn công lừa đảo, 3.792 cuộc tấn công cài đặt phần mềm độc hại và 989 cuộc tấn công thay đổi giao diện Tổng số cuộc tấn công mạng vào các hệ thống thông tin sử dụng tên miền “.gov.vn” trong 6 tháng đầu năm 2017 là 25 cuộc, với 148 trang web thuộc quản lý của các cơ quan nhà nước Nhiều thiết bị kết nối internet tồn tại lỗ hổng bảo mật nghiêm trọng mà tin tặc có thể khai thác, chiếm đoạt, tấn công mạng
Tình hình này càng nghiêm trọng hơn khi tội phạm mạng có xu hướng phát triển cả về số lượng cũng như phương thức tấn công mà điển hình là những cuộc tấn công đòi tiền chuộc bằng mã độc WannaCry và Petya vừa qua Ít nhất 150 quốc gia trên thế giới bị ransomware WanaCrypt tấn công Trong đó Việt Nam ghi nhận hơn
800 trường hợp nhiễm mã độc Thống kê của BKAV chỉ ra có tới 52% máy tính tồn tại lỗ hổng EternalBlue Đây là lỗ hổng đang bị mã độc mã hóa tống tiền WannaCry khai thác để tấn công, mã hóa dữ liệu của người dùng trên khắp thế giới
Số liệu thống kê trong Sách Trắng CNTT-TT Việt Nam năm 2017 cũng đã cho thấy những cải thiện đáng kể trong nhận thức của các cơ quan, tổ chức, doanh nghiệp và người dùng trong việc đảm bảo an toàn thông tin Cụ thể, tỉ lệ tổ chức đã ban hành quy chế, quy định về an toàn thông tin áp dụng cho hoạt động nội bộ đã tăng từ 43,9% năm 2015 lên đạt 65,8% trong năm 2016 So với năm 2015, tỉ lệ tổ chức đã ban hành quy trình thao tác chuẩn để phản hồi lại các sự cố mất an toàn thông tin trong năm 2016 đã tăng thêm 12%, từ 37% lên 49%
Chỉ số an toàn thông tin (ATTT) Việt Nam (Vietnam Information Security Index) 2016 là 59,9% - tăng 12,5% so với mức 47,4% năm 2015 (chỉ số này các năm 2014 và 2013 lần lượt là 39% và 37,3%) và lần đầu tiên vượt mức trung bình
Trang 3350% của thế giới Chỉ số này có xu hướng tăng bền vững qua các năm, thể hiện định hướng kiên định của Nhà nước và cộng đồng trong phát triển ATTTT
Trên thực tế, tình hình ATTT của Việt Nam trong năm 2016 có nhiều diễn biến phức tạp, vẫn xảy ra nhiều vụ tấn công có chủ đích vào hệ thống thông tin của
tổ chức, doanh nghiệp lớn, lượng mã độc phát tán vẫn còn nhiều… Nhưng nhận thức của các cơ quan, tổ chức, doanh nghiệp (TC/DN) và người dùng về vấn đề ATTT đã tăng lên, môi trường ATTT đã được cải thiện và người dùng đã chủ động hơn trong việc ứng phó với các sự cố ATTT
Bức tranh về ATTT Việt Nam năm 2016 mà VNISA đưa ra chủ yếu dựa trên kết quả của cuộc khảo sát do VNISA phối hợp với Cục An toàn thông tin (Bộ TT&TT) khảo sát trên cả nước, với 3 vùng trọng tâm Hà Nội, Đà Nẵng và TP Hồ Chí Minh Cuộc khảo sát được tiến hành từ tháng 9 đến tháng 11/2016 với gần 700 TC/DN trong nhiều lĩnh vực, dựa trên 36 câu hỏi phức hợp Chỉ số ATTT năm 2016 được đưa ra dựa trên sự lượng hóa từ 30 chỉ số chính, trong đó có hai vấn đề chính
là Môi trường ATTT (gồm Đào tạo, nhận thức; Tổ chức, nhân lực; Chính sách, kinh phí) và Các biện pháp đảm bảo ATTT (gồm Các biện pháp quản lý; các biện pháp
kỹ thuật)[4]
1.3.4 Một số biện pháp điển hình chống tấn công vào máy chủ Web
Các biện pháp chống tấn công vào máy chủ Web có thể được phân loại theo: các biện pháp quản lý, các biện pháp kỹ thuật[6,12]
Các biện pháp quản lý bao trùm phạm vi khá rộng từ: bảo vệ vật lý cho đến các chính sách bảo mật trong tổ chức, quản lý Các biện pháp kỹ thuật cũng rất đa dạng, từ việc mã hóa dữ liệu, lưu trữ dự phòng và bảo vệ dữ liệu hệ thống, bảo vệ
hạ tầng thiết bị và đường truyền, cập nhật phần mềm, sử dụng các thiết bị bảo vệ như tường lửa, hệ thống chống tấn công,…
Nhìn chung, một số biện pháp cơ bản có thể liệt kê gồm:
- Cài đặt các bản vá lỗi thường xuyên để giúp đảm bảo các máy chủ
- Bảo mật các cài đặt và cấu hình của hệ điều hành
- Bảo mật các cài đặt và cấu hình của phần mềm máy chủ web
- Sử dụng các công cụ như Snort, Nmap, Scanner Access Now Easy (SANE)
- Sử dụng tường lửa
Trang 34- Phần mềm diệt virus, mã độc
- Vô hiệu hóa quản trị từ xa
- Tài khoản mặc định và các tài khoản không sử dụng phải được xóa khỏi hệ thống
- Cổng và cài đặt mặc định (như FTP ở cổng 21) nên được thay đổi (cổng FTP 5069)
Hình 1.8 Các biện pháp bảo vệ theo chiều sâu
1.4 Phát hiện truy nhập bất thường vào máy chủ Web
Các truy nhập bất thường vào một máy chủ Web tiềm ẩn một nguy cơ tấn công, do vậy việc phát hiện truy nhập bất thường vào một máy chủ Web có vai trò quan trọng trong việc phát hiện sớm tấn công vào máy chủ Web [1, 7]
Một truy nhập bất thường được định nghĩa là một hành vi “khác biệt” so với các hành vi truy nhập bình thường khác [1] Theo định nghĩa này, toàn bộ truy nhập bình thường vào một máy chủ Web được định nghĩa từ trước thông qua các chính sách truy nhập được thiết lập trong cấu hình máy chủ Những chính sách này quy định cấu hình máy chủ, cấu trúc thư mục và các tệp, các dịch vụ có thể cung cấp bởi
hệ thống, các giao thức có thể sử dụng, các cổng kết nối được mở cho từng loại dịch
vụ tương ứng, các quyền truy nhập được cung cấp cho từng phân lớp người dùng và người quản trị Mọi truy cập vi phạm các chính sách trên được gọi là truy nhập bất thường vào máy chủ Web
Một số ví dụ về truy nhập bất thường vào máy chủ Web như sau
Ví dụ 1: Máy chủ Web ghi nhận một hành vi nhập các dữ liệu bất thường vào phần đăng nhập, ví dụ quá số lượng ký tự cho phép Hành vi bất thường này có thể
là một dấu hiệu tấn công chèn mã (SQL Injection)
Trang 35Ví dụ 2: Máy chủ Web có thể ghi nhận hàng loạt truy cập vào các địa chỉ và các cổng khác nhau của hệ thống Đây là dấu hiệu rà quét hệ thống để khai thác thông tin, là giai đoạn bắt đầu của một cuộc tấn công footprinting
Ví dụ 3: Máy chủ Web ghi nhận hiện tượng một đoạn mã script được cài vào bản tin POST/ Request gửi đến từ trình duyệt người dùng Đây là dấu hiệu của một cuộc tấn công mã độc
Về nguyên tắc, có hai cách để phát hiện truy nhập bất thường vào máy chủ Web Phương pháp truyền thống là sử dụng hệ thống phát hiện xâm nhập (IDS – Intrusion Detection Systems) Theo cách này, hệ thống IDS được cấu hình với một tập luật (tập dấu hiệu – còn gọi là Signature) hỗ trợ cho việc phát hiện xâm nhập trái phép [2, 4] Tuy nhiên, hạn chế của phương pháp này là phải biết các dấu hiệu tấn công từ trước Mặt khác, với sự gia tăng của các tấn công mới, tập dấu hiệu sẽ phải cập nhật liên tục theo thời gian
Cách thứ hai là phát hiện các hành vi bất thường, nghĩa là các hành vi vi phạm chính sách an ninh của hệ thống Hệ thống phát hiện có thể được huấn luyện theo một số mẫu có sẵn và tự cập nhật theo quá trình phát hiện các hành vi vi phạm mới Một cách khác, hệ thống có thể duy trì việc phát hiện trên cơ sở phát hiện các
vi phạm đối với các chính sách an ninh đã đặt trước Theo cách này, hệ thống phát hiện có thể sử dụng các tập nhật ký ghi lỗi truy nhập do máy chủ Web ghi liên tục theo thời gian và thực hiện phân tích để phát hiện các truy nhập bất thường Những hành vi bất thường là dấu hiệu tiềm ẩn của một tấn công máy chủ Web
1.5 Kết luận chương
Trong chương này luận văn đã trình bày về các nội dung: giới thiệu về máy chủ Web, các thành phần cơ bản của máy chủ Web, nguyên lý hoạt động, việc ghi nhật ký Weblog, giao thức HTTP, các nền tảng máy chủ Web như IIS, Apache, Nginx Ngoài ra luận văn cũng đã trình bày về các lỗ hổng bảo mật Web, các loại tấn công vào máy chủ Web Luận văn đã trình bày vấn đề phát hiện truy nhập bất thường vào máy chủ Web và khả năng phân tích, phát hiện tấn công thông qua phân
tích tệp nhật ký hoạt động của máy chủ Web (Web Log)
Trang 36CHƯƠNG 2 PHÁT HIỆN TRUY NHẬP BẤT THƯỜNG VÀO
MÁY CHỦ WEB 2.1 Phạm vi phân tích, phát hiện truy nhập bất thường vào máy chủ Web
Như đã trình bày trong chương 1, việc phân tích các Weblog của máy chủ Web
là một giải pháp hiệu quả cho phát hiện truy nhập bất thường vào máy chủ Web
Để thực hiện nhiệm vụ phát hiện truy nhập bất thường vào máy chủ Web, cần thu thập dữ liệu từ Weblog Về nguyên tắc, có thể thu thập được các nhật ký (access log, error log, v.v sau đây gọi chung là Weblog) từ máy chủ Web, trang tin, mạng nói chung và các log truy cập các dịch vụ mạng Tuy nhiên, trong khuôn khổ của bài, luận văn chỉ tập trung vào thu thập và phân tích Weblog để phát hiện truy nhập bất thường vào máy chủ Web
Từ dữ liệu log thô thu thập được, qua quá trình xử lý, phân tích, ta có thể trích xuất được các thông tin quan trọng về dấu hiệu, khả năng xuất hiện của các hành vi truy cập bất thường Kết quả phân tích, phát hiện dấu hiệu truy cập bất thường có thể giúp nhận biết các loại mã độc, tấn công, xâm nhập vào hệ thống máy chủ Web
Hiện có rất nhiều công cụ phần mềm và hệ thống phục vụ cho việc thu thập,
xử lý, phân tích và phát hiện dấu hiệu truy nhập bất thường vào máy chủ Web Trong khuôn khổ của bài, luận văn không đi vào chi tiết trình bày các công cụ phần mềm và hệ thống đã có, mà chỉ trình bày khái quát một số phương pháp, công cụ điển hình Trên cơ sở đó, phần tiếp theo của chương 2 sẽ trình bày theo các nội dung sau: kiến trúc hệ thống, cấu trúc và định dạng của Weblog, phương pháp thu thập dữ liệu Weblog, phương pháp trích chọn mẫu và đặc trưng, phương pháp phân tích phát hiện bất thường
2.2 Kiến trúc hệ thống phát hiện truy nhập bất thường
2.2.1 Tham khảo một số mô hình kiến trúc hệ thống
Hiện nay, có nhiều nền tảng và công cụ xử lý, phân tích log truy cập thương mại cũng như mã mở được cung cấp như IBM QRadar SIEM, Splunk, Sumo Logic, VNCS Web Monitoring, Logstash, Graylog, LOGalyze, Webalizer Để tham khảo các mô hình kiến trúc này, phần sau đây khảo sát chi tiết tính năng, các ưu nhược
Trang 37điểm của các nền tảng và công cụ kể trên Các tiêu chí quan trọng được xem xét bao gồm: 1) Khả năng thu thập, xử lý các dạng log truy cập từ nhiều nguồn; 2) Khả năng phát hiện và cảnh báo các truy nhập bất thường và các dạng tấn công, xâm nhập vào hệ thống Web; 3) Khả năng quản lý, lưu trữ, tìm kiếm log và tạo các dạng báo cáo, thống kê [9]
* IBM QRadar SIEM
QRadar SIEM (Security Information and Event Management) là hệ thống quản lý các thông tin và sự cố an ninh được phát triển và cung cấp bởi hãng IBM
Hình 2.1 Mô hình kiến trúc hệ thống IBM QRadar SIEM
QRadar SIEM cho phép phát hiện các bất thường, các nguy cơ với độ chính xác cao và tỷ lệ cảnh báo sai thấp thông qua việc xử lý, phân tích dữ liệu log
và luồng mạng từ hàng ngàn thiết bị và ứng dụng phân tán trong mạng (Hình …) QRadar SIEM có thể được cài đặt tại hệ thống mạng của khách hàng, hoặc hoạt động như một dịch vụ SIEM trên nền điện toán đám mây Các tính năng tiêu biểu của QRadar SIEM như sau:
+ Khả năng phát hiện giả mạo, các nguy cơ bên trong và bên ngoài;
+ Thực hiện việc chuẩn hóa và tương quan các sự kiện tức thời;
+ Khả năng theo dõi và liên kết các sự cố và nguy cơ;
+ Có thể dễ dàng mở rộng tính năng lưu trữ, xử lý
IBM QRadar SIEM đã được triển khai sử dụng và được đánh giá cao ở các
cơ quan, tổ chức chính phủ, ngân hàng và doanh nghiệp có quy mô hệ thống mạng lớn Tuy nhiên, hạn chế lớn nhất của QRadar SIEM là chi phí cài đặt ban đầu và phí bản quyền khá lớn, nên không thực sự thích hợp với các cơ quan, tổ chức có hệ thống mạng có quy mô vừa và nhỏ với nguồn lực hạn chế [9]
Trang 38* Splunk
Splunk là một nền tảng xử lý và phân tích log rất mạnh, được cung cấp bởi hãng Splunk Inc, Hoa Kỳ Splunk có hàng trăm công cụ tích hợp, cho phép xử lý nhiều loại log khác nhau với khối lượng lớn theo thời gian thực Splunk có thể xử
lý, phân tích log phục vụ đảm bảo an toàn thông tin, cũng như trích rút thông tin hỗ trợ cho các hoạt động kinh doanh Splunk cung cấp các công cụ tìm kiếm và biểu đồ cho phép biểu diễn kết qua đầu ra theo nhiều dạng Hình 2.2 biểu diễn màn hình thống kê của Splunk
Hình 2.2 Thống kê của Splunk
Splunk có ba phiên bản: Splunk Enterprise cho các khách hàng có nhu cầu
xử lý log tại chỗ với khối lượng lớn; Splunk Cloud cho các khách hàng tải log lên nền tảng đám mây của Splunk để xử lý; và Splunk Light cho các khách hàng có nhu cầu xử lý log tại chỗ với khối lượng vừa và nhỏ Hạn chế lớn nhất của Splunk là chi phí cài đặt lớn, do khoản đầu tư ban đầu cho hệ thống thiết bị chuyên dụng có độ phức tạp cao Một vấn đề khác là phí bản quyền hàng năm của Splunk cũng rất đắt
đỏ (ước tính có thể lên đến hàng chục ngàn đô-la Mỹ mỗi năm), nên Splunk không thực sự thích hợp với các cơ quan, tổ chức có hệ thống mạng có quy mô vừa và nhỏ với nguồn lực hạn chế [9]
* Sumo Logic
Sumo Logic là một dịch vụ xử lý, phân tích và quản lý log trên nền tảng điện toán đám mây Ưu điểm của Sumo Logic là cung cấp nhiều tính năng và có khả năng xử lý nhiều loại log, đồng thời việc cài đặt cũng tương đối dễ dàng do Sumo
Trang 39Logic dựa trên nền tảng điện toán đám mây, không đòi hỏi thiết bị chuyên dụng Log được thu thập từ hệ thống của khách hàng sử dụng các Agent/Collector và được tải lên hệ thống xử lý và phân tích của Sumo Logic Nhược điểm lớn nhất của Sumo Logic là việc phải tải khối lượng lớn log (có thể lên đến hàng chục GB/ngày)
từ hệ thống sinh log lên hệ thống dịch vụ Sumo Logic để xử lý Việc này đòi hỏi chi phí lớn cho đường truyền, có thể gây ra chậm trễ trong quá trình xử lý và tiềm ẩn nguy cơ rò rỉ dữ liệu nhạy cảm chứa trong log [9]
* Hệ thống giám sát Web của VNCS
VNCS Web monitoring là giải pháp cho phép giám sát nhiều Website đồng thời dựa trên thu thập, xử lý và phân tích log truy cập sử dụng nền tảng Splunk do Công ty cổ phần Công nghệ An ninh không gian mạng Việt Nam phát triển
Hình 2.3 là một màn hình thống kê của VNCS Web monitoring thu thập Web log từ các máy chủ cần giám sát, sau đó chuyển về hệ thống trung tâm để xử lý, phân tích Hệ thống này cho phép quản lý log tập trung, hỗ trợ phân tích log thủ công để tìm sự cố, hỗ trợ giám sát và cảnh báo trạng thái hoạt động của Website,
hỗ trợ phát hiện các dạng tấn công thay đổi nội dung, thay đổi giao diện, tấn công chèn mã SQL (SQL Injection - SQLi), tấn công chèn mã script liên miền (Cross Site Scripting - XSS) và phát hiện mã độc trên Website Hạn chế của VNCS Web monitoring là chỉ có khả năng xử lý và phân tích Web log [9]
Hình 2.3 Thống kê thu thập Web log từ các máy chủ cần giám sát của VNCS
* Một số hệ thống mã nguồn mở
Hiện có khá nhiều hệ thống mã nguồn mở cho phép thu thập, xử lý và quản lý các file log, điển hình như Logtash, Graylog, LOGalyze, Webalizer, FireStats, Open Web Analytics, Go Access, Web Forensik, Weblog Expert,…
Trang 402.2.2 Kiến trúc hệ thống phát hiện truy nhập bất thường
Công ty VCCorp là một công ty tiên phong trong lĩnh vực công nghệ và nội dung số VCCorp đã xây dựng được một hệ sinh thái Internet rộng lớn với rất nhiều sản phẩm sáng tạo, hữu ích trong nhiều lĩnh vực (quảng cáo trực tuyến, thương mại điện tử, trò chơi trực tuyến ) phủ sóng trên 90% người sử dụng Internet và mobile, có giá trị đóng góp lớn vào sự phát triển của Internet Việt Nam trong một thập kỷ qua[25]
Chính vì vậy để quản trị 1 Website hiệu quả, tránh nguy cơ xảy ra các cuộc tấn công vào máy chủ Web Máy chủ web ghi log, căn cứ log có thể phân tích, xử
lý, thống kê, cảnh báo
Sơ đồ thiết kế hệ thống phân tích, phát hiện truy nhập bất thường vào máy chủ Web được đề xuất như sau:
W
Hình 2.4 Hệ thống phân tích, phát hiện truy nhập bất thường
- Weblog: Khối này đặc tả ghi weblog, ghi lại thông tin về các sự kiện xảy ra trong truy nhập máy chủ, bao gồm các sự kiện truy nhập bất thường
- Parse: Là khối xử lý sơ bộ, loại bỏ thông tin không liên quan, tạo thành tệp nhật ký gốc, định dạng Weblog và truyền về trung tâm phân tích.Mục đích chính của việc xử lý trước là cải thiện chất lượng và độ chính xác của dữ liệu
- Khối phân tích Log: Phân tích dấu hiệu bất thường của Weblog
- Khối thống kê, cảnh báo: Đưa ra thống kê, cảnh báo Sau khi đã phân tích filelog đưa ra thống kê các truy nhập bất thường bằng địa chỉ IP…từ đó cảnh báo tấn công máy chủ web[14]
Thống kê, cảnh báo
Weblog
Parser