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

Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp

82 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Nội dung

Đề tài tập trung nghiên cứu áp dụng giải pháp WAF sử dụng ModSecurity có khả năng bảo vệ hệ thống trước các lỗ hổng của ứng dụng web và phòng chống được một số nguy cơ phổ biến như SQL i

Trang 1

ĐỖ HỒNG NHỰT

GIẢI PHÁP NÂNG CAO TÍNH AN TOÀN CHO HỆ THỐNG ERP DOANH NGHIỆP

LUẬN VĂN THẠC SĨ

Trang 2

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA

TS LƯU THANH TRÀ

THÀNH PHỐ HỒ CHÍ MINH - 2014

Trang 3

Công trình được hoàn thành tại: Trường Đại học Bách Khoa – ĐHQG-HCM

Cán bộ hướng dẫn khoa học: TS LƯU THANH TRÀ……

(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ chấm nhận xét 1:

(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ chấm nhận xét 2:

(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày tháng năm

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: (Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ) 1

2

3

4

5 Xác nhận của Chủ tịch Hội đồng đánh giá luận văn và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)

CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA ĐIỆN – ĐIỆN TỬ

Trang 4

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Ngày, tháng, năm sinh: 01/3/1979 Nơi sinh: An Giang Chuyên ngành: Kỹ thuật điện tử Mã số: 60.52.70

I TÊN ĐỀ TÀI: GIẢI PHÁP NÂNG CAO TÍNH AN TOÀN

CHO HỆ THỐNG ERP DOANH NGHIỆP

NHIỆM VỤ VÀ NỘI DUNG:

Nghiên cứu áp dụng giải pháp tăng cường tính an toàn cho ứng dụng web của hệ thống ERP với WAF mã nguồn mở ModSecurity Thực hiện đánh giá giải pháp và khả năng triển khai trên hệ thống ERP của doanh nghiệp

II NGÀY GIAO NHIỆM VỤ: (Ghi theo trong QĐ giao đề tài):

III NGÀY HOÀN THÀNH NHIỆM VỤ: (Ghi theo trong QĐ giao đề tài):

IV CÁN BỘ HƯỚNG DẪN (Ghi rõ học hàm, học vị, họ, tên): TS LƯU THANH TRÀ CÁN BỘ HƯỚNG DẪN

Trang 5

LỜI CẢM ƠN

Trước tiên, tôi xin chân thành cảm ơn Quý thầy cô đã tận tình hướng dẫn, truyền đạt

kiến thức, kinh nghiệm cho tôi trong suốt quá trình học tập tại Trường Tôi rất cảm

ơn Bộ môn Viễn Thông, Phòng Đào Tạo Sau Đại Học đã rất quan tâm giải quyết kịp thời các vấn đề học vụ Tôi hết sức cảm ơn Thầy TS Lưu Thanh Trà đã rất tâm

huyết và tận tình hướng dẫn tôi hoàn thành luận văn này

Tôi cũng xin cảm ơn Lãnh đạo Công ty Điện lực An Giang đã rất quan tâm và tạo điều kiện cho tôi được tham dự khóa học, cảm ơn các đồng nghiệp Phòng Công

nghệ thông tin đã gánh vác phần công việc của tôi tại Công ty

Tôi đặc biệt cảm ơn cha, mẹ đã chăm sóc gia đình nhỏ của tôi, tôi cũng xin cảm ơn người vợ đã chu đáo việc gia đình trong suốt thời gian tôi thực hiện luận văn Cuối cùng, tôi cảm ơn các con tôi đã cho tôi thật nhiều niềm tin và động lực để hoàn thành luận văn này

Đỗ Hồng Nhựt

Trang 6

TÓM TẮT LUẬN VĂN

Hệ thống Hoạch định Nguồn lực Doanh nghiệp - ERP (Enterprise Resource Planning) mang lại nhiều lợi ích cho doanh nghiệp do tính liên kết của kho dữ liệu

dùng chung giúp cho việc truy xuất, khai thác thông tin được linh hoạt, kịp thời Với

hệ thống ERP, các phân hệ nghiệp vụ thường được xây dựng trên nền ứng dụng web

do tính linh hoạt và đa nền tảng của nó Bên cạnh đó, các giải pháp bảo vệ hệ thống

khỏi các lỗ hổng ứng dụng, nhất là ứng dụng web vẫn chưa nhận được sự quan tâm

đúng mức, nhiều giải pháp thông thường chỉ tập trung vào bảo vệ hạ tầng mạng Do

đó, việc xây dựng giải pháp an toàn thông tin cho hệ thống ERP doanh nghiệp là vấn đề cấp bách cần được quan tâm giải quyết WAF (Web Application Firewall) là một giải pháp phù hợp và ModSecurity là sự lựa chọn tốt đáp ứng nhu cầu của doanh

nghiệp với chi phí triển khai thấp và tính chủ động cao Đề tài tập trung nghiên cứu

áp dụng giải pháp WAF sử dụng ModSecurity có khả năng bảo vệ hệ thống trước các lỗ hổng của ứng dụng web và phòng chống được một số nguy cơ phổ biến như SQL injection, XSS, DoS… Giải pháp được kiểm tra, đánh giá và triển khai trên hệ thống ERP doanh nghiệp

ABSTRACT

ERP (Enterprise Resource Planning) provides many benefits for businesses due to

the link of a shared data repository It makes information retrieval and extraction

flexible and timely With ERP system, business modules are usually based on web

application because of versatility and cross-platform features In addition, the current security solution for business information system from the application vulnerabilities,

most web applications have not yet received due attention, many solutions commonly

focus on protecting the network infrastructure Therefore, the construction of

information security solution for the ERP system is an urgent issue to be tackled WAF (Web Application Firewall) is a suitable solution and ModSecurity is a good

choice to meet the needs of businesses with low cost and high activeness The

research focused on WAF solution using ModSecurity capable of protecting system against web application vulnerabilities and prevent some common risks like SQL injection, XSS, DoS Solution would be tested, evaluated and deployed in practical ERP system.

Trang 7

LỜI CAM ĐOAN

Tôi xin cam đoan rằng đây là công trình nghiên cứu của tôi Các nội dung nghiên cứu và kết quả trong đề tài này là trung thực Những dữ liệu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghi trong phần tài liệu tham khảo Ngoài ra, trong đề tài còn sử dụng một số nhận xét, đánh giá cũng như số liệu của các tác giả khác, cơ quan tổ chức khác và đều có chú thích nguồn gốc sau mỗi trích dẫn để thuận tiện tra cứu, kiểm chứng

Tôi xin hoàn toàn chịu trách nhiệm về lời cam đoan này

Thành phố Hồ Chí Minh, ngày 14 tháng 07 năm 2014

TÁC GIẢ

Đỗ Hồng Nhựt

Trang 8

MỤC LỤC

MỞ ĐẦU 1 

Chương 1: TỔNG QUAN 3 

1.1 Hệ thống ERP doanh nghiệp 3 

1.2 Nguy cơ mất an toàn thông tin đối với hệ thống ERP 4 

1.3 Giải pháp tăng cường tính an toàn cho hệ thống ERP doanh nghiệp 7 

Chương 2: GIẢI PHÁP MODSECURITY CHO HỆ THỐNG ERP 10 

2.1 Giới thiệu về tường lửa ứng dụng web (WAF - Web Application Firewall) 10 

2.2 Giải pháp WAF mã nguồn mở ModSecurity 10 

Chương 3: TRIỂN KHAI GIẢI PHÁP MODSECURITY TRÊN HỆ THỐNG ERP CÔNG TY ĐIỆN LỰC AN GIANG 29 

3.1 Hiện trạng hệ thống thông tin Công ty Điện lực An Giang 29 

3.2 Mục tiêu triển khai giải pháp WAF ModSecurity 29 

3.3 Triển khai WAF ModSecurity 30 

Chương 4: ĐÁNH GIÁ GIẢI PHÁP MODSECURITY 51 

4.1 Đánh giá khả năng bảo vệ hệ thống với giải pháp ModSecurity 51 

4.2 Đánh giá hiệu năng hệ thống 59 

Trang 9

MỞ ĐẦU

Hệ thống ERP mang lại nhiều lợi ích cho doanh nghiệp do tính liên kết của kho dữ

liệu dùng chung giúp cho việc truy xuất, khai thác thông tin được linh hoạt, kịp thời Nhờ đó, năng suất lao động được tăng lên và doanh nghiệp kiểm soát tốt hơn các hoạt động sản xuất kinh doanh của mình

Với doanh nghiệp, thông tin là tài sản quan trọng Nếu thông tin không an toàn, không tin cậy hoặc bị khai thác trái phép sẽ ảnh hưởng tiêu cực đến hoạt động và sự phát

triển của doanh nghiệp Đối với doanh nghiệp đã triển khai ERP thì vấn đề sẽ nghiêm

trọng hơn do tính liên kết giữa các phân hệ Bên cạnh đó, công tác bảo mật cho hệ thống thông tin chưa được doanh nghiệp quan tâm đầy đủ Các mô hình bảo mật tại doanh nghiệp tồn tại nhiều sơ hở, không được cập nhật thường xuyên nên không có khả năng phòng chống các phương thức tấn công mới vào hệ thống thông tin

Xuất phát từ tình hình trên, tác giả chọn thực hiện đề tài “Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp” nhằm đưa ra giải pháp tăng cường bảo mật cho hệ thống ERP của doanh nghiệp mình Kết cấu đề tài gồm 04 chương và phần kết

luận, trong đó:

Chương 1 - Tổng quan: Giới thiệu về hệ thống ERP, tình hình an toàn thông tin, các nguy cơ mất an toàn thông tin đối với hệ thống ERP Kết quả khảo sát, so sánh một

số giải pháp và lựa chọn phương án phù hợp

Chương 2 - Giải pháp ModSecurity cho hệ thống ERP: Giới thiệu giải pháp mã nguồn mở ModSecurity cho hệ thống ERP như tính năng, hoạt động, cú pháp viết Rule, nguyên tắc xây dựng Rule

Chương 3 - Triển khai giải pháp ModSecurity trên hệ thống ERP Công ty Điện lực An Giang: Trình bày hiện trạng hệ thống thông tin của Công ty Điện lực An Giang

Công việc kiểm tra các điểm yếu hiện có của hệ thống Xác định mục tiêu cần đạt

Trang 10

được trong việc bảo vệ hệ thống Triển khai ModSecurity bảo vệ hệ thống trước các

lỗ hổng đã phát hiện và phòng chống một số nguy cơ phổ biến

Chương 4 - Đánh giá giải pháp ModSecurity: Đánh giá kết quả triển khai giải pháp: khả năng bảo vệ của ModSecurity so với mục tiêu bảo mật đã đề ra và kiểm tra hiệu

năng hệ thống

Phần kết luận: Trình bày các mục tiêu đã đạt được và hướng phát triển của đề tài

Đề tài có sử dụng các thuật ngữ và mã chương trình (source code). Để thuận tiện

cho việc theo dõi, tác giả sử dụng font chữ in nghiêng, giữ nguyên từ gốc một số thuật ngữ (Rule, server, request, response…) và dùng loại font chữ riêng đối với các đoạn

code.

Do thời gian và năng lực có hạn nên đề tài khó tránh khỏi chủ quan, thiếu sót Tác giả rất mong nhận được ý kiến đóng góp quý báu từ Quý thầy cô, các bạn để đề tài được hoàn thiện hơn, đạt hiệu quả cao trong thực tiễn

Trang 11

Chương 1: TỔNG QUAN

1.1 Hệ thống ERP doanh nghiệp

ERP (Enterprise Resource Planning – Hệ thống hoạch định nguồn lực doanh nghiệp)

là khái niệm đã trở nên ngày càng phổ biến không chỉ trong lĩnh vực công nghệ thông

tin của Việt Nam mà cả cộng đồng doanh nghiệp, nhà quản lý Với ERP, mọi hoạt động của một công ty, từ công tác điều hành, quản trị nguồn nhân lực (HRM), quản lý dây chuyền sản xuất (MRP) và cung ứng vật tư, quản lý tài chính nội bộ (FRM), đến việc bán hàng, tiếp thị sản phẩm (SCM), trao đổi với đối tác, khách hàng (CRM)… đều được thực hiện trên một hệ thống duy nhất Nếu triển khai thành công ERP, doanh

nghiệp sẽ có thể tiết kiệm chi phí, tăng khả năng cạnh tranh và thêm cơ hội để phát triển vững mạnh

Hình 1.1 Mô hình hệ thống ERP [1]

Triển khai ERP là quá trình tin học hóa toàn diện các hoạt động của doanh nghiệp

dựa trên các qui trình quản lý tiên tiến Mọi hoạt động của doanh nghiệp sẽ do phần mềm máy tính hỗ trợ và thực hiện các qui trình xử lý một cách tự động hoá, giúp cho các doanh nghiệp quản lý các hoạt động then chốt, bao gồm: kế toán, phân tích tài chính, quản lý mua hàng, quản lý tồn kho, hoạch định và quản lý sản xuất, quản lý

Trang 12

quan hệ với khách hàng, quản lý nhân sự, theo dõi đơn hàng, quản lý bán hàng, v.v Mục tiêu tổng quát của hệ thống này là đảm bảo các nguồn lực thích hợp của doanh nghiệp như nhân lực, vật tư, máy móc và tiền bạc có sẵn với số lượng đủ khi cần, bằng cách sử dụng các công cụ hoạch định và lên kế hoạch

Đặc điểm nổi bật của ERP là một hệ thống phần mềm sống có thể mở rộng và phát

triển theo thời gian theo từng loại hình doanh nghiệp mà không làm ảnh hưởng đến cấu trúc của chương trình

ERP loại bỏ các hệ thống máy tính riêng lẻ ở các bộ phận trong một doanh nghiệp: Tài chính, Nhân sự, Kinh doanh, Sản xuất, Kho… ERP sẽ thay thế chúng bằng một

chương trình phần mềm hợp nhất phân chia theo các phân hệ phần mềm khác nhau

và tạo nên một mối quan hệ thống nhất với nhau Phần mềm ERP rất linh động trong

việc cài đặt các phân hệ theo yêu cầu doanh nghiệp Các doanh nghiệp có thể yêu cầu cài đặt một vài phân hệ mà doanh nghiệp cần, các phân hệ còn lại còn lại có thể cài đặt sau mà không ảnh hưởng đến hệ thống

1.2 Nguy cơ mất an toàn thông tin đối với hệ thống ERP

Hệ thống ERP vốn mang lại nhiều lợi ích cho doanh nghiệp do tính liên kết của kho

dữ liệu dùng chung giúp cho việc truy xuất, khai thác thông tin được linh hoạt, kịp thời Tuy nhiên, cũng chính vì tính liên kết này mà nguy cơ mất an toàn thông tin cho toàn hệ thống là rất lớn

Các phương thức tấn công vào hệ thống thông tin ngày càng tinh vi, phức tạp và gây thiệt hại rất lớn cho doanh nghiệp Theo thống kê từ Chi hội An toàn thông tin phía

Nam (VNISA) [2], Việt Nam đứng đầu danh sách các quốc gia thường xuyên bị hacker

tấn công Theo đó, có tới 394 máy chủ bị kết nối âm thầm và thường trực ra máy chủ

nước ngoài Theo VNCERT [3], trong 6 tháng đầu năm 2014, Trung tâm này đã ghi nhận 405 sự cố Phishing, xử lý được 250 sự cố; 648 sự cố Deface (72 sự cố liên quan đến tên miền gov.vn), xử lý được 34 sự cố gov.vn và 281 tên miền khác, 345 sự cố malware (xử lý được 147 sự cố) Trung tâm đã cảnh báo xử lý 2.117 lượt địa chỉ IP của các cơ quan nhà nước bị nhiễm mã độc botnet Cùng với đó, theo báo cáo [4] do

Trang 13

Trung tâm Nghiên cứu chiến lược và quốc tế (CSIS) phối hợp với công ty bảo mật McAfee thực hiện công bố ngày 09/06/2014, các cuộc tấn công mạng đang khiến nền

kinh tế toàn cầu thiệt hại khoảng 445 tỷ USD mỗi năm, bao gồm cả 350.000 việc làm bị mất tại Mỹ và châu Âu

Với hệ thống ERP, các phân hệ nghiệp vụ thường được xây dựng trên nền ứng dụng web do tính linh hoạt và đa nền tảng của nó Bên cạnh đó, các giải pháp bảo vệ hệ thống khỏi các lỗ hổng ứng dụng, nhất là ứng dụng web vẫn chưa nhận được sự quan

tâm đúng mức, nhiều giải pháp thông thường chỉ tập trung vào bảo vệ hệ thống mạng

như Hình 1.2

Hình 1.2 Mô hình bảo mật hệ thống mạng [5]

Trong một số kết quả nghiên cứu [6] thể hiện tại Hình 1.3 cho thấy: 92% các lỗ hổng

lại nằm trong các ứng dụng chứ không phải trong hệ thống mạng Theo một thống kê

khác của Gartner, 75% các cuộc tấn công là nhằm vào lớp ứng dụng

External Firewall

DMZ

InternetInternal Firewall

Web serverEmail server

FTP server

DB servers

Trang 14

Hình 1.3 Lỗ hổng trong hệ thống thông tin [6]

Theo bản cập nhật năm 2013 của OWASP (Phụ lục 1) về Top 10 rủi ro an toàn của ứng dụng web, các phương thức tấn công như SQL injection, Cross site scripting (XSS)… nhằm truy nhập, khai thác dữ liệu trái phép, chiếm quyền điều khiển hệ thống… vẫn đang là các mối đe dọa phổ biến và đang được hacker tấn công khai thác

nhiều nhất Xu hướng tấn công thường tập trung vào các mục tiêu sau:

 Thông tin hệ thống: đây là bước đầu tiên mà hacker thực hiện khi tấn công hệ

thống Với thông tin về hệ thống như phiên bản hệ điều hành, web server…, hacker có thể khai thác lỗ hổng đối với hệ thống sử dụng các phiên bản cũ chưa được vá

lỗi Một số phương thức có thể thu thập thông tin hệ thống như Fingerprinting, HTTP Method

 Xác thực hệ thống: đối với các ứng dụng có tính năng đăng nhập cho người dùng,

hacker có thể sử dụng kỹ thuật tấn công như dò tìm mật khẩu để xâm nhập và thao tác trái phép trên hệ thống Phương thức thường gặp đối với loại tấn công này là

Brute Force  Cơ sở dữ liệu (CSDL) ứng dụng: phương thức thường được hacker sử dụng là SQL

injection Đây là loại tấn công vào CSDL ứng dụng web Theo đó, hacker sẽ tìm

41%

36%15%

3%

Server ApplicationNon‐Server ApplicationOperating SystemHardware

Communication ProtocolNetwork

Other

Trang 15

cách thay đổi ý nghĩa của câu lệnh SQL gốc Việc này được thực hiện bằng cách chèn thêm các từ khóa, toán tử và câu lệnh SQL vào trong câu lệnh SQL gốc Nếu việc thực hiện thành công, hacker sẽ thao túng được CSDL của ứng dụng, thực

hiện khai thác thông tin trái phép

 Người dùng: đối với ứng dụng web, phương thức tấn công người dùng thông thường là XSS Hacker có thể dùng những đoạn mã script độc hại lấy cookie, keylog

để khai thác thông tin hoặc giả mạo người dùng

 Web server: một phương thức tấn công thường gặp đối với web server là DoS Trong đó, phương thức DoS layer 7 có thể vô hiệu các firewall ở lớp network Loại tấn công này chiếm tài nguyên và khiến web server từ chối các kết nối ngay cả kết

nối hợp lệ

1.3 Giải pháp tăng cường tính an toàn cho hệ thống ERP doanh nghiệp

Với các nguy cơ đã đề cập ở trên, việc nghiên cứu áp dụng giải pháp tăng cường tính

an toàn cho hệ thống ERP doanh nghiệp là vấn đề cấp bách cần được quan tâm giải

quyết Trong đó, giải pháp tập trung bảo vệ các mục tiêu sau:  Thông tin hệ thống;

 Xác thực hệ thống;  CSDL ứng dụng;  Người dùng;  Web server

Đối với hệ thống ERP vận hành trên nền web, các phương thức có thể được áp dụng để bảo vệ ứng dụng như xây dựng mã nguồn an toàn hay thiết lập WAF (Web Application Firewall) [9]

Xây dựng mã nguồn an toàn là một kỹ thuật quan trọng Để thực hiện được việc này, lập trình viên phải hiểu rõ và biết cách ngăn chặn các lỗ hổng của ứng dụng web Điều này đòi hỏi lập trình viên phải am hiểu về các vấn đề bảo mật Tuy nhiên, các lập trình viên thường không được đào tạo nhiều về lĩnh vực này Hơn nữa, hầu hết

Trang 16

các ứng dụng đều được nhà cung cấp đóng gói trước khi triển khai cho doanh nghiệp

Như vậy, việc can thiệp vào mã nguồn là không thực hiện được Trong khi đó, WAF sẽ thực hiện phân tích gói tin HTTP để tìm và ngăn chặn các tấn công vào hệ thống

mà không lệ thuộc vào nhà cung cấp ứng dụng

Như vậy, WAF giải pháp phù hợp đối với hệ thống ERP trên nền ứng dụng web Vị

trí WAF được mô tả tại Hình 1.4

Hình 1.4 Mô hình bảo mật hệ thống thông tin với WAF

WAF thường được chia làm hai loại chính: giải pháp thương mại và giải pháp mã

nguồn mở

Giải pháp thương mại của Cisco, Juniper, Barracuda… có tính ổn định và được sự

hỗ trợ từ nhà cung cấp Tuy nhiên, chi phí đầu tư sử dụng lớn, các điều chỉnh, cập nhật đều lệ thuộc hoàn toàn vào nhà cung cấp Điểm cần quan tâm đối với giải pháp thương mại là sản phẩm đóng gói, người dùng hoàn toàn không thể biết và can thiệp

WAF

DMZ

InternetInternal Firewall

Web serverEmail server

FTP server

External Firewall

WebApp AttackDB servers

Trang 17

vào mã nguồn Điều này tiềm ẩn nguy cơ các thông tin trong hệ thống của người dùng có thể bị nhà sản xuất khai thác

Giải pháp mã nguồn mở mang tính cộng đồng, giúp tiết kiệm chi phí và chủ động

trong việc quản lý, thay đổi, chỉnh sửa hệ thống Một số giải pháp WAF mã nguồn mở có thể sử dụng để bảo vệ ứng dụng web nhưModSecurity, WebKnight, QuickDefence…[10]

Bảng 1.1 Các giải pháp WAF mã nguồn mở

có quá trình phát triển lâu dài và thường xuyên được cập nhật Phiên bản mới nhất

của ModSecurity là 2.8.0 phát hành ngày 15/04/2014 Hơn nữa, ModSecurity cũng được cộng đồng OWASP liên kết hỗ trợ thông qua dự án OWASP ModSecurity Core Rule Set

Tóm lại, với mục tiêu tăng cường tính an toàn cho thống hệ thống ERP thì ModSecurity là sự lựa chọn phù hợp Giải pháp được nghiên cứu triển khai, đánh giá

và áp dụng tại Công ty Điện lực An Giang

Trang 18

Chương 2: GIẢI PHÁP MODSECURITY CHO HỆ THỐNG ERP

2.1 Giới thiệu về tường lửa ứng dụng web (WAF - Web Application Firewall)

WAF là công cụ bảo vệ ứng dụng web khỏi sự tấn công từ bên ngoài bằng cách sử dụng tập hợp các Rule (luật) áp đặt chính sách bảo mật lên lưu lượng HTTP của ứng dụng web [11]

Rule là các dòng mã lệnh (code) để người dùng tương tác với các đối tượng mà WAF có thể kiểm soát (chẳng hạn, request headers, request body… trong gói tin HTTP), mỗi loại WAF có cú pháp Rule khác nhau

Thông thường, các Rule này ngăn chặn các loại tấn công phổ biến như SQL injection hoặc XSS, nhưng nếu tận dụng tốt và phát triển các Rule này, WAF có thể dùng để

ngăn chặn nhiều loại tấn công

Hình 2.1 Mô hình WAF [14] 2.2 Giải pháp WAF mã nguồn mở ModSecurity

2.2.1 Giới thiệu ModSecurity là giải pháp WAF mã nguồn mở nhằm phát hiện và phòng chống xâm nhập cho các ứng dụng web ModSecurity hoạt động như một module của web server hoặc hoạt động độc lập nhằm tăng cường bảo mật cho các ứng dụng web, ngăn chặn lưu lượng độc hại dựa trên bộ Rule được xác định trước ModSecurity có thể hoạt động với các trình web server phổ biến hiện nay như IIS, Apache, Nginx Trong phạm

Trang 19

vi luận văn này, chúng tôi chọn phương án triển khai ModSecurity trên web server mã nguồn mở Apache

2.2.2 Hoạt động của ModSecurity ModSecurity hoạt động với trình web server sẽ thực hiện các tác vụ như sau: Parsing

ModSecurity sẽ phân tách dữ liệu chuyển qua hệ thống thành dạng dữ liệu đã định nghĩa sẵn để có thể sử dụng được cho các Rule

Buffering Thông thường, các thông tin request và response đều được ghi đệm lại Các request phải thông qua ModSecurity trước khi đến ứng dụng xử lý và các response cũng sẽ được phân tích trước khi trả về phía client Cơ chế này là cách duy nhất đảm bảo tính

tin cậy cho việc ngăn chặn các cuộc tấn công vào hệ thống Nhược điểm của tác vụ

này là nó đòi hỏi thêm bộ nhớ RAM để lưu trữ các thông tin response và do đó chiếm tài nguyên hệ thống Để giải quyết vấn đề này, ngoài việc bổ sung dung lượng RAM cho server, người quản trị có thể cấu hình để ModSecurity không cần kiểm tra toàn bộ thông tin response và dùng chế độ Reverse Proxy để giảm tải cho các web server

đồng thời tăng hiệu năng hệ thống

Logging ModSecurity cung cấp tính năng ghi log (nhật ký) đối với lưu lượng HTTP bao gồm request headers, request body, response headers, response body nhằm giúp người

quản trị phân tích nguy cơ mà hệ thống đang gặp phải để có những điều chỉnh xử lý phù hợp

Rule Engine Khi Rule Engine hoạt động, các Rule sẽ tiến hành kiểm tra tiến trình trao đổi thông tin của hệ thống và đưa ra những tác động tương ứng đã thiết lập trong Rule Có thể nói Rule Engine là “cỗ máy” để vận hành các Rule

Trang 20

2.2.3 Quy trình xử lý của ModSecurity

Hình 2.2 Các pha xử lý của ModSecurity [15]

Trong ModSecurity, mỗi tiến trình giao dịch thông tin thường đi qua 5 pha được mô

tả tại Hình 2.2 Tại mỗi pha, ModSecurity sẽ thực hiện một số công việc ban đầu

(chẳng hạn, phân tích dữ liệu thành định dạng có thể sử dụng trong Rule) và gọi các Rule tương ứng để làm việc trong pha đó Trong nhiều trường hợp, các giao dịch

không nhất thiết phải được xử lý qua tất cả các pha, tùy theo mục đích cụ thể mà

người quản trị có thể thiết kế các Rule để xử lý giao dịch ít hơn 5 pha nhằm sử dụng

hiệu quả tài nguyên hệ thống

Các Rule được thực thi nghiêm ngặt theo thứ tự từng pha một Tức là, ModSecurity đầu tiên kiểm tra khớp mẫu đối với tất cả các Rule trong pha 1 (request headers) Sau

đó, nó tiếp tục với với các pha từ 2 đến 5 (trừ khi xảy ra một trường hợp khớp mẫu nào đó làm ngừng tiến trình)

Trang 21

Trong các pha, các Rule được xử lý theo thứ tự mà chúng xuất hiện trong file cấu hình Có thể hình dung ModSecurity sẽ duyệt qua file cấu hình năm lượt tương ứng với năm pha xử lý Trong mỗi lượt (tương ứng với mỗi pha), ModSecurity chỉ xem xét các Rule thuộc pha hiện đang xử lý và các Rule này được thực thi theo thứ tự chúng xuất hiện trong file cấu hình

Pha 1 - Request Headers Đây là pha đầu tiên trong quá trình xử lý thông tin của ModSecurity Mục đích chính của pha này là cho phép người viết Rule kiểm tra một request trước khi thực hiện xử lý phần request body của nó Rule được đặt tại đây sẽ được thực thi ngay sau khi trình web server thực hiện xử lý các request headers

Pha 2 - Request body Đây là pha chính trong việc thực hiện phân tích request Nó được tiến hành ngay khi request body được tiếp nhận Các Rule trong pha này có đầy đủ các dữ liệu request

khả dụng để tiến hành xử lý

Pha 3 - Response Headers Pha 3 được tiến hành ngay sau khi nhận được các response headers và trước khi response body được đọc ModSecurity sẽ dựa vào các Rule tại pha này để xác định có cần kiểm tra nội dung thông tin trong phần response body hay không

Pha 4 - Response body Đây là pha chính trong việc thực hiện phân tích response Khi bắt đầu pha này, các dữ liệu khả dụng trong response body sẽ được kiểm tra và xử lý bởi các Rule

Pha 5 - Logging Pha 5 không có khả năng ngăn chặn các nguy cơ như các pha trước nó Các Rule đặt ở đây sẽ định rõ việc log sẽ như thế nào và thông qua đó, người quản trị sẽ đưa ra các

điều chỉnh phù hợp cho hệ thống

2.2.4 Các chế độ hoạt động của ModSecurity Embedded mode (Chế độ nhúng)

Trang 22

ModSecurity hoạt động như một thành phần của web server, hoạt động bên trong các tiến trình của web server Ở chế độ này, ModSecurity sẽ chiếm dụng tài nguyên của server cho hoạt động của mình và do đó ảnh hưởng đến hiệu suất vận hành hệ thống

Hình 2.3 Embedded mode

Reverse Proxy mode (Chế độ proxy ngược) ModSecurity được cấu hình để hoạt động riêng với web server nhằm bảo vệ ứng dụng từ bên ngoài Đối với chế độ này, ModSecurity vận hành độc lập, không ảnh hưởng trực tiếp đến web server và có thể cấu hình để bảo vệ nhiều web server

Hình 2.4 Reverse Proxy

Server nServer 1

Firewall

HTTP Traffic

Reverse Proxy

ApacheModSecurity

Trang 23

2.2.5 Ngôn ngữ viết Rule của ModSecurity Rule trong ModSecurity có dạng văn bản đơn giản nên người dùng có thể tự thiết kế các Rule theo mục đích của mình Việc nắm vững cú pháp và thành thạo trong việc thiết kế Rule sẽ giúp cho người quản trị ngăn chặn kịp thời các nguy cơ có thể xảy ra

với hệ thống

2.2.5.1 Cú pháp Rule

SecRule VARIABLES OPERATOR [TRANSFORMATION_FUNCTIONS, ACTIONS]

Rule trong ModSecurity có bốn thành phần, trong đó hai thành phần cuối

TRANSFORMATION_FUNCTIONS, ACTIONS là tùy chọn Nếu Rule không sử dụng hai thành phần tùy chọn này thì ModSecurity sẽ dùng các giá trị mặc định được thiết lập

trong chỉ thị SecDefaultAction SecRule là chỉ thị mặc định trong cú pháp tạo

Rule Chi tiết các thành phần của Rule được trình bày tại Phụ lục 2

VARIABLES

VARIABLES (biến) có vai trò xác định phần nào trong request hoặc response cần được kiểm tra ModSecurity sử dụng hai loại biến: biến tiêu chuẩn mang giá trị đơn và collection (biến tập) có thể mang nhiều giá trị

Việc sử dụng chính xác các biến con trong collection cho từng đối tượng cần kiểm tra là rất quan trọng, nó giúp cho các Rule được hoạt động nhanh chóng, giảm thời

gian tìm kiếm trong một tập rộng lớn

Trong phiên bản 2.8.0, ModSecurity cung cấp 79 biến để phục vụ cho việc thiết kế Rule, đủ để đáp ứng hầu hết các tình huống sử dụng

OPERATOR

OPERATOR (toán tử) xác định phương thức, phép so sánh khớp dữ liệu để kích hoạt

ACTIONS. Toán tử bắt đầu bằng ký tự @ Trường hợp trong Rule không thể hiện phần

OPERATOR thì toán tử mặc định là @rx, khi đó chuỗi theo sau sẽ là biểu thức chính quy được dùng để so khớp với các biến được chỉ định

Trang 24

TRANSFORMATION_FUNCTIONS

Chức năng này cho phép chuyển đổi dữ liệu đầu vào trước khi đưa qua cơ chế kiểm

tra (chuyển chữ hoa thành chữ thường, decode base64 …)

để gán cho từng đối tượng Tùy thuộc vào mục tiêu bảo mật cụ thể, người quản trị

phải xác định trong Rule: các biến cần dùng (Variable), các mẫu (Pattern) cần thiết lập tương ứng để so khớp, các toán tử (Operator) cần thiết để xử lý thông tin và hành

động (Action) ứng phó phù hợp với yêu cầu Tiến trình này được mô tả tại Hình 2.5

Hình 2.5 Tiến trình thực thi Rule

2.2.5.3 Biểu thức chính quy trong ModSecurity Một lưu ý quan trọng đối với công tác xây dựng Rule là việc xử lý biểu thức chính quy (regex - regular expression) Rule trong ModSecurity chủ yếu sử dụng các regex trong thư viện PCRE (Perl-Compatible Regular Expressions) để thiết lập mẫu so khớp Do đó, việc nghiên cứu các regex này sẽ giúp cho người quản trị thuận tiện hơn trong công tác thiết kế các Rule phục vụ các mục tiêu bảo mật hệ thống

Trang 25

 Regex

Regex Trường hợp khớp mẫu

Joy

Chuỗi bất kỳ có chứa ký tự j, theo sau bởi một ký tự o và một ký

tự y VD: joy,enjoy,joyful Nhưng Joyful thì không

khớp do có ký tự J in hoa [Jj]oy Chuỗi bất kỳ bắt đầu bằng J hoặc j và theo sau bởi o và y

VD: Joy, joy, enjoy, enJoy

[0-9] Chữ số bất kỳ từ 0 đến 9 [a-zA-Z] Chữ cái alphabet bất kỳ kể cả chữ thường và chữ in hoa

Không có hoặc có nhiều ký tự phía trước dấu * trong biểu thức

VD: với Rank A* thì trường hợp khớp mẫu sẽ là Rank, Rank

A, Rank AA, Rank AAA … ?

Không có hoặc có một ký tự trước dấu ? VD: trong biểu thức

colou?r thì trường hợp khớp mẫu sẽ là color, courlor (có hoặc không có u)

+ Có một hoặc nhiều ký tự/chuỗi trước dấu +, VD: với biểu thức

I.+ thì trường hợp khớp mẫu là IE, IEE, IEEE …

 Tốc ký (shorthand)

\d Chữ số từ 0 đến 9 Tương đương [0-9] \D Ký tự bất kỳ không phải là chữ số Tương đương [^0-9] \w Chữ cái alphabet (cả chữ thường và chữ in hoa), các chữ số từ 0

đến 9 và ký tự gạch dưới “_“ Tương đương [a-zA-Z0-9_] \W Ký hiệu/ký tự bất kỳ không phải là chữ cái alphabet, chữ số và

dấu gạch dưới “_” Tương đương [^a-zA-Z0-9_]

Trang 26

\s Khoảng trắng (space, tab, newline, form feed ) \S Không phải là khoảng trắng Tương đương: [^\s]

Bên cạnh việc xây dựng mẫu so khớp hoàn toàn bằng regex, người quản trị có thể tận

dụng một số toán tử hỗ trợ để giảm nhẹ công việc như @streq, @containts

Ngoài ra, người dùng có thể sử dụng công cụ hỗ trợ như RegexBuddy để kiểm tra tính chính xác của các mẫu regex trước khi đưa vào áp dụng trong Rule

Phân tích mẫu regex sau:

\b[-\w.+]+@[\w.]+\.[a-zA-Z]{2,4}\b

Đây là mẫu regex của địa chỉ email, sử dụng RegexBuddy để kiểm tra mẫu:

Hình 2.6 Kiểm tra mẫu regex

Kết quả tại Hình 2.6 cho thấy chỉ những trường hợp thể hiện địa chỉ email hợp lệ

(username@domainname) trong chuỗi thì mới xảy ra khớp mẫu

Trang 27

2.2.5.4 Tổ chức và xây dựng Rule ModSecurity hoạt động dựa trên thành phần cơ bản là các Rule và phương thức cấu

hình chúng thành các nhóm phục vụ cho từng mục tiêu cụ thể, chẳng hạn, cấu hình

bảo mật cho XSS, SQL injection hay các chính sách bảo mật khác Từng chính sách hay mục tiêu bảo mật được tổ chức thành các file cấu hình (*.conf) bao gồm một hoặc nhiều Rule tùy theo độ phức tạp Các file cấu hình có thể được biên tập dễ dàng bằng các chương trình sẵn có của hệ điều hành như vi/gedit (Linux), Notepad (Windows)

hay bất kỳ trình xử lý văn bản nào khác

Việc tổ chức các Rule vào file cấu hình tùy thuộc kinh nghiệm của người quản trị Các chính sách bảo mật với ModSecurity chỉ được kích hoạt khi các file cấu hình

tương ứng được khai báo (Include) trong file httpd.conf của Apache Về nguyên tắc, các file cấu hình của ModSecurity có thể được khai báo trực tiếp trong

httpd.conf. Tuy nhiên, để tránh các thao tác nhầm ảnh hưởng đến hoạt động của

web server và thuận tiện cho việc cập nhật hiệu chỉnh các chính sách bảo mật, người

quản trị có thể thực hiện theo phương thức sau:

Hình 2.7 Sơ đồ tổ chức Rule

Khi đó, nếu cần đánh giá hệ thống trước và sau khi vận hành ModSecurity, người

quản trị chỉ cần thao tác đơn giản là vô hiệu hóa hoặc kích hoạt phần khai báo

modsecurity.conf trong file httpd.conf của Apache Với mục đích thuận tiện trong việc tổ chức và xây dựng Rule, chúng tôi đề xuất một khung mẫu cho việc thiết lập file modsecurity.conf cũng như các file

SecPolicy_X.conf như sau:

Trang 28

 File cấu hình modsecurity.conf

# =============================================================== # Recommended modsecurity.conf configuration file

# ========================================================

<IfModule security2_module> # Turn on rule engine and set default action SecRuleEngine On

SecDefaultAction "phase:k,action_1,action_2,action_n" # Configure request body access

SecRequestBodyAccess On # - # Audit log

# - # NOTE: only serial or concurrent log at the same time!!! # CHOOSE: Enable serial audit logging-

#SecAuditEngine RelevantOnly #SecAuditLog logs/modsec_audit.log #SecAuditLogType serial

#SecAuditLogParts ABCEFHIKZ # OR: Enable concurrent audit logging #SecAuditEngine RelevantOnly

#SecAuditLogType concurrent #SecAuditLogStorageDir /var/log/audit/ #SecAuditLog logs/modsec_audit.log #SecAuditLogParts ABCEFHIKZ

# - # End Audit log

# - # Adding Core Rules Set

Include /opt/modsecurity/etc/modsecurity_crs_10_setup.conf Include /opt/modsecurity/etc/crs/base_rules/*.conf

# Operating other security policy Rules Include /opt/modsecurity/etc/Rules/SecPolicy_A.conf

Include /opt/modsecurity/etc/Rules/SecPolicy_Z.conf

Trang 29

</IfModule>

 File cấu hình SecPolicy_X.conf

# =============================================================== # Recommended SecPolicy_X.conf configuration file

# ========================================================

# Rules with alert emails sending SecRule VARIABLES OPERATOR /

"action_1,action_2,action_n,exec:/usr/local/bin/email_k.sh"

SecRule VARIABLES OPERATOR / "action_1,action_2,action_n,exec:/usr/local/bin/email_m.sh"

Để xây dựng được Rule theo yêu cầu bảo mật của hệ thống, người quản trị, ngoài kiến thức về hệ điều hành, HTTP… còn phải nắm rõ cú pháp và vận dụng tốt các thành phần của Rule như biến, toán tử

Xét một Rule đơn giản gồm một biến và một chuỗi như sau:

SecRule REQUEST_URI <script>

Với mẫu như trên thì ModSecurity thực thi kiểm tra dữ liệu trong URI từ phía người

dùng và xác định có sự tồn tại của chuỗi <script> hay không Tuy nhiên, người dùng

có thể sử dụng thêm một operator vào Rule trên để tăng hiệu quả kiểm tra trong ModSecurity, Rule trên có thể viết lại như sau:

SecRule REQUEST_URI "@rx <script>"

ModSecurity hỗ trợ nhiều loại operator khác nhau Một số có cùng chức năng, nhưng từng operator sẽ có ảnh hưởng khác nhau đến hiệu suất của hệ thống Trong Rule trên

thì chuỗi <script> không phải là một mẫu regex, bởi vì chúng không chứa ký tự đặc biệt Rule trên có thể được viết lại bằng các sử dụng @contains để tối ưu:

SecRule REQUEST_URI "@contains <script>"

Trang 30

 Sử dụng biến Một Rule có thể sử dụng nhiều biến khác nhau bằng cách dùng ký tự “|” để phân cách:

SecRule REQUEST_URI|REQUEST_PROTOCOL <script>

Nhóm các biến được dùng trong một Rule được gọi là collection Trên thực tế, các Rule được viết có thể chứa nhiều hơn một thành phần tham số (parameter) và dấu hai

chấm “:” được dùng để phân cách biến và tên của tham số

SecRule ARGS:p <script> SecRule ARGS:p|ARGS:q <script>

Cấu trúc như ví dụ trên có thể sử dụng để so khớp biểu thức mẫu, Rule bên dưới sẽ

tìm chuỗi <script> trong các tham số bắt đầu bằng ký tự p:

SecRule ARGS:/^p/ <script>

Biến ARGS mặc định sẽ theo dõi tất cả các tham số nếu trong Rule không chỉ định tên

tham số hoặc biểu thức mẫu Việc liệt kê các tham số giúp giảm thiểu tài nguyên hệ

thống và năng hiệu suất theo dõi của ModSecurity Trong một số trường hợp, toán tử phủ định có thể được sử dụng để loại bỏ một nhóm biến trong Rule, bằng cách thêm

dấu (!) vào trước nhóm biến không sử dụng:

SecRule ARGS|!ARGS:z <script>

 Sử dụng liên kết Rule (chain)ModSecurity cho phép liên kết các SecRule riêng lẻ thành một SecRule duy nhất thông quan từ khóa chain. Liên kết các Rule sẽ giảm thiểu các tình huống cảnh báo không chính xác, giúp người quản trị đơn giản hóa việc viết Rule trong trường hợp

cần kiểm tra các điều kiện mang tính chất tuần tự

Trong ví dụ bên dưới, ModSecurity sẽ luôn thực hiện kiểm tra SecRule đầu tiên (kiểm tra tham số p), nếu xảy ra khớp dữ liệu thì Rule tiếp theo (kiểm tra tham số q) sẽ được kiểm tra

Trang 31

SecRule ARGS:p <script> chain SecRule ARGS:q <script>

 Toán tử phủ định ModSecurity cho phép sử dụng phương pháp phủ định một thành phần bất kỳ trong Rule Một Rule có chức năng theo dõi người dùng đăng nhập, ngoại trừ user admin

và root có thể được viết như sau:

SecRule ARGS:username "!@rx ^(admin|root)$"

Với Rule SecRule ARGS:p|ARGS:q "!@eq 5" thì ModSecurity sẽ khớp mẫu khi có

một trong hai tham số p hoặc q có giá trị khác 5 Trường hợp cần kiểm tra cả hai tham số p và q có giá trị khác 5 thì có thể sử dụng từ khóa chain:

SecRule ARGS:p "!@eq 5" chain SecRule ARGS:q "!@eq 5"

 Đếm biến

Việc đếm số lần xuất hiện của một biến có thể thực hiện bằng cách thêm ký tự “&”

vào trước biến trong Rule Trong Rule bên dưới, ModSecurity thực hiện kiểm tra trong

trường hợp tồn tại một tham số username:

SecRule &ARGS:username "@eq 1"

Để kiểm tra trong trường hợp có nhiều hơn một tham số username, Rule có thể được

viết lại như sau:

SecRule &ARGS:username "!@eq 1"

 Action (hành động) trong Rule Action là thành phần thứ ba trong chỉ thị SecRule và là thành phần thứ nhất trong chỉ thị SecAction Một Rule có thể không tồn tại action hoặc nhiều hơn một action Dấu

phẩy “,” hay khoảng trắng được dùng để phân cách nhiều action trong một Rule Rule bên dưới sử dụng hai action là log và deny:

SecRule ARGS K1 log,deny

Trang 32

Một số action trong ModSecurity yêu cầu có tham số khi sử dụng Trong trường hợp này, action và tham số phân cách bởi dấu “:” Rule từ chối yêu cầu và trả về trạng thái 404 có thể được viết như sau:

SecRule ARGS K1 log,deny,status:404

Cần lưu ý đối với các action có tham số chứa khoảng trắng hoặc ký tự “‘”, khi đó,

phần action của Rule cần được nhóm vào trong cặp dấu nháy kép:

SecRule ARGS K1 "log,deny,msg:'Acme attack detected'"

 Các action mặc định ModSecurity định nghĩa một danh sách các action mặc định để sử dụng trong những Rule không được chỉ định action Chẳng hạn, khi thực hiện cấu hình trong file modsecurity.conf của ModSecurity, giá trị của SecDefaultAction là

phase:2,log,auditlog,pass Xét một Rule đơn giản không được chỉ định action thuộc modsecurity.conf:

SecRule ARGS K1

Khi ModSecurity hoạt động, Rule trên sẽ được hiểu như sau:

SecRule ARGS K1 phase:2,log,auditlog,pass

Bằng cách này, ModSecurity giúp người dùng triển khai Rule dễ dàng hơn mà không cần phải chỉ định một action lặp lại nhiều lần:

SecDefaultAction phase:2,log,deny,status:404 SecRule ARGS K1

SecRule ARGS K2

SecRule ARGS K99

 Các Rule không có điều kiện Action được thiết lập trong chỉ thị SecRule sẽ được tiến hành khi khớp mẫu, nhưng người dùng cũng có thể sử dụng chỉ thị SecAction để triển khai các action đã định

Trang 33

nghĩa sẵn Chỉ thị SecAction cho phép chứa duy nhất một tham số, tham số này được dùng để liên kết với thành phần thứ ba trong chỉ thị SecRule

SecAction nolog,pass,setvar:tx.counter=10

 Các hàm chuyển đổi

Trong các phương pháp khai thác lỗ hổng ứng dụng web, hacker thường sử dụng các

kỹ thuật biến đổi dữ liệu (obfuscation) để vượt qua cơ chế kiểm tra Để đối phó với kỹ thuật này, ModSecurity hỗ trợ chuyển đổi dữ liệu đầu vào trước khi thực hiện kiểm tra các tấn công Xét trường hợp tấn công SQL injection: hacker có thể thực hiện câu

truy vấn: “id=1&UniON%20SeLeCT%201,2,3,4,5,6” Khi đó, ModSecurity cần

chuyển đổi các ký tự nhận được sang ký tự thường trước khi kiểm tra

Hoặc trong Rule bên dưới, ModSecurity sẽ thực hiện chuyển các ký tự nhận được

thành ký tự thường, đồng thời loại bỏ các ký tự khoảng trắng không cần thiết:

SecRule ARGS "@contains delete from" \ phase:2,t:lowercase,t:compressWhitespace,block

(Lưu ý: Ký tự “\” trong Rule trên dùng để viết xuống dòng đối với các Rule dài.) Kết quả là ModSecurity sẽ thực hiện là lọc những từ khóa có dạng:

delete from DELETE FROM deLeTe fRoM Delete From DELETE\tFROM –

Một số lý do cần sử dụng hàm chuyển đổi:

 Với các khai thác sử dụng phương pháp encode base64, ta có thể áp dụng

t:base64Decode để giải mã dữ liệu đầu vào

 Tương tự Base64, với trường hợp hacker chuyển đổi kiểu dữ liệu thành dạng Hex

thì t:hexEncode nên được sử dụng để chuyển đổi sang dạng plain text

Trang 34

 Blocking Các chỉ thị sử dụng trong ModSecurity được liên kết duy nhất với một action (hoặc

chỉ thị SecAction) để xử lý kết quả đã phân tích trước đó Có ba trạng thái mà

ModSecurity hỗ trợ trong việc ngăn chặn tấn công:  Chuyển tiếp sang Rule tiếp theo

 Ngưng thực hiện pha hiện thời, nhưng tiếp tục thực hiện phiên trao đổi dữ liệu  Ngưng thực hiện pha hiện thời, đồng thời ngừng trao đổi dữ liệu

 Thay đổi trình tự thực thi các Rule Giả sử trường hợp các Rule trong ModSecurity được xử lý tuần tự từ Rule đầu tiên đến Rule cuối cùng Nếu có một giá trị khớp mẫu so sánh thì tiến trình kiểm tra trong các Rule tiếp sau đó nên được bỏ qua Để thực hiện việc này, từ khóa skip có thể được đưa vào sử dụng như sau:

SecRule ARGS K1 id:1,nolog,pass,skip:2 SecRule ARGS K2 id:2,nolog,pass

SecRule ARGS K3 id:3,log,block

Với ví dụ trên, khi Rule thứ nhất khớp mẫu thì các Rule tiếp sau sẽ không thực hiện

kiểm tra Từ khóa skip thường được dùng như một phương pháp tối ưu hóa trong

ModSecurity Đôi khi việc thực thi các nhóm Rule có nhiều điều kiện sẽ làm lãng phí tài nguyên CPU Trong trường hợp này, người quản trị có thể thực hiện việc kiểm tra điều kiện của một Rule và nên bỏ qua các bước tiếp theo nếu điều kiện đầu vào không thỏa mãn Chẳng hạn, trong các Rule kiểm tra trong XSS thì các mẫu tấn công như

UNION, ORDER BY, XP_CMD, / / /, 1’ or 1=1 ,… là không cần thiết phải kiểm tra Việc sử dụng từ khóa skip sẽ giúp tối ưu tài nguyên xử lý trong trường hợp này

Trang 35

 Cấu trúc If-Then-Else trong ModSecurity Tuy ModSecurity không hỗ trợ các từ khóa if-then-else trong cấu trúc Rule nhưng

người dùng vẫn có thể thực hiện cấu trúc kiểm tra điều kiện theo cách sau:

SecRule ARGS K1 id:1,nolog,pass,skip:2 SecRule ARGS K2 id:2,block

SecAction nolog,pass,skip:1 SecRule ARGS K3 id:3,block SecRule đầu tiên sẽ quyết định một Rule được thực hiện bên dưới Nếu Rule thứ nhất khớp mẫu, thì action skip được thực hiện và chuyển đến thực thi Rule thứ ba Tuy nhiên, nếu Rule thứ nhất không khớp mẫu thì Rule thứ hai sẽ được thực thi và

SecAction sẽ được thực hiện sau đó Cấu trúc rẽ nhánh này đảm bảo Rule thứ ba sẽ không thực thi nếu Rule thứ nhất không khớp mẫu dữ liệu

 Biến lưu trữ Có ba loại collection trong ModSecurity có thể được sử dụng để lưu trữ lâu dài Thông thường, các biến sẽ hết hiệu lực mỗi khi request hiện thời được xử lý hoàn tất Tuy

nhiên trong một số trường hợp, người quản trị cần lưu giữ chúng lại và sử dụng chúng

khi thao tác với các request sau này Ba loại collection có thể được sử dụng cho mục đích lưu trữ là IP, SESSION, USER

Collection IP được dùng để lưu thông tin về một user thông qua địa chỉ IP Người quản trị có thể sử dụng nó cho một số mục đích như phát hiện ra user nào request nhiều lần vào một tài nguyên, hoặc số request của một user

Trước khi sử dụng các biến trên, chúng cần được khởi tạo cách sử dụng action

initcol:SecAction initcol:ip=%{REMOTE_ADDR},nolog,pass

Trong đó, REMOTE_ADD là biến lưu địa chỉ IP của client gửi request

Trang 36

Sau khi được khởi tạo, giá trị của biến có thể được thao tác gán giá trị thông qua

action setvar

 Sự vận dụng biến Hầu hết các dữ liệu mà ModSecurity phân tích sẽ được thao tác ở chế độ chỉ đọc (dữ liệu tĩnh hoặc không thay đổi) Tuy nhiên, ModSecurity cũng hỗ trợ việc tạo ra các

biến có giá trị thay đổi nhằm phục vụ một số mục đích cụ thể

Một biến có thể được tạo ra bằng cách sử dụng action setvar: Đặt giá trị của biến tx.score là 1:

SecAction nolog,pass,setvar:tx.score=1

Xóa giá trị biến tx.score:

SecAction nolog,pass,setvar:!tx.score Giá trị tx.score sẽ tăng thêm 2 mỗi khi thực thi action:

SecAction nolog,pass,setvar:tx.score=+2

Giá trị tx.score sẽ giảm đi 1 khi thực thi action:

SecAction nolog,pass,setvar:tx.score=-1

Trang 37

Chương 3: TRIỂN KHAI GIẢI PHÁP MODSECURITY TRÊN HỆ THỐNG

ERP CÔNG TY ĐIỆN LỰC AN GIANG

3.1 Hiện trạng hệ thống thông tin Công ty Điện lực An Giang

Hệ thống thông tin Công ty Điện lực An Giang bao gồm các phân hệ ứng dụng

eOffice, CMIS, FMIS… phục vụ công tác điều hành và sản xuất kinh doanh, trong đó, eOffice vận hành trên nền ứng dụng web, CMIS và FMIS đang trong quá trình chuyển đổi sang nền web Ngoài các chương trình chống virus, hệ thống được bảo vệ bởi thiết bị Firewall nhằm cản lọc các lưu lượng thông tin từ bên ngoài internet Tuy nhiên,

đây là thiết bị đã trang cấp nhiều năm, không có tính năng bảo vệ ứng dụng, nhất là

ứng dụng web đã và đang được triển khai tại Công ty

Hình 3.1 Sơ đồ hệ thống thông tin Công ty Điện lực An Giang 3.2 Mục tiêu triển khai giải pháp WAF ModSecurity

Với thực trạng như trên, việc triển khai giải pháp WAF ModSecurity tăng cường tính an toàn cho ứng dụng web của hệ thống là rất thiết thực Trong phạm vi luận văn này, chúng tôi áp dụng giải pháp cho phân hệ eOffice với mục tiêu cần đạt được như sau:

 Khắc phục được lỗ hổng tồn tại của ứng dụng;  Có khả năng bảo vệ ứng dụng trước một số phương thức tấn công phổ biến;  Đảm bảo tính chủ động, linh hoạt trong việc điều chỉnh, cập nhật tính năng bảo

mật

Trang 38

3.3 Triển khai WAF ModSecurity

3.3.1 Mô hình triển khai

Hình 3.2 Sơ đồ triển khai ModSecurity

Thông tin hệ thống triển khai:

 WAF ModSecurity: Intel Core i3-3220 CPU, 4GB RAM, CentOS 6.5 Operation System, Apache 2.2 Web Server, ModSecurity 2.8.0, hoạt động ở chế độ Reverse Proxy;

 Phân hệ bảo vệ: eOffice

Trang 39

Quy trình triển khai tổng quát như sau:

Hình 3.3 Quy trình triển khai WAF ModSecurity

Trang 40

3.3.2 Cài đặt ModSecurity Server CentOS cần có kết nối internet để tải mã nguồn ModSecurity và cài đặt bổ

sung các thư viện phục vụ biên dịch mã nguồn

Tải mã nguồn ModSecurity về server CentOS:

# wget https://www.modsecurity.org/tarball/2.8.0/modsecurity-2.8.0.tar.gz

Giải nén file mã nguồn:

# tar -xvzf /modsecurity-2.8.0.tar.gz

Cài đặt bổ sung các thư viện hỗ trợ cho biên dịch mã nguồn:

# yum install curl-devel libxml libxml2 libxml2-devel gcc

Chuyển vào thư mục đã giải nén mã nguồn ModSecurity:

Bổ sung thông tin cấu hình:

LoadModule security2_module modules/mod_security2.soLoadModule unique_id_module modules/mod_unique_id.so

Kích hoạt Apache ở runlevel 35:

Ngày đăng: 24/09/2024, 03:28

HÌNH ẢNH LIÊN QUAN

Hình 1.1 Mô hình hệ thống ERP [1] - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 1.1 Mô hình hệ thống ERP [1] (Trang 11)
Hình 1.2 Mô hình bảo mật hệ thống mạng [5] - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 1.2 Mô hình bảo mật hệ thống mạng [5] (Trang 13)
Hình 1.3 Lỗ hổng trong hệ thống thông tin [6] - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 1.3 Lỗ hổng trong hệ thống thông tin [6] (Trang 14)
Hình 1.4 Mô hình bảo mật hệ thống thông tin với WAF - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 1.4 Mô hình bảo mật hệ thống thông tin với WAF (Trang 16)
Bảng 1.1 Các giải pháp WAF mã nguồn mở - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Bảng 1.1 Các giải pháp WAF mã nguồn mở (Trang 17)
Hình 2.1 Mô hình WAF [14] - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 2.1 Mô hình WAF [14] (Trang 18)
Hình 2.2 Các pha xử lý của ModSecurity [15] - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 2.2 Các pha xử lý của ModSecurity [15] (Trang 20)
Hình 2.3 Embedded mode - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 2.3 Embedded mode (Trang 22)
Hình 2.4 Reverse Proxy - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 2.4 Reverse Proxy (Trang 22)
Hình 2.5 Tiến trình thực thi Rule - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 2.5 Tiến trình thực thi Rule (Trang 24)
Hình 3.1 Sơ đồ hệ thống thông tin Công ty Điện lực An Giang  3.2  Mục tiêu triển khai giải pháp WAF ModSecurity - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 3.1 Sơ đồ hệ thống thông tin Công ty Điện lực An Giang 3.2 Mục tiêu triển khai giải pháp WAF ModSecurity (Trang 37)
Hình 3.2 Sơ đồ triển khai ModSecurity - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 3.2 Sơ đồ triển khai ModSecurity (Trang 38)
Hình 3.3 Quy trình triển khai WAF ModSecurity - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 3.3 Quy trình triển khai WAF ModSecurity (Trang 39)
Hình 3.6 Phương thức HTTP GET flood [17] - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 3.6 Phương thức HTTP GET flood [17] (Trang 54)
Hình 3.7 Phương thức HTTP POST [19] - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 3.7 Phương thức HTTP POST [19] (Trang 55)
Hình 4.1 Thông tin server ban đầu - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 4.1 Thông tin server ban đầu (Trang 59)
Hình 4.2 Thông tin server đã được thay đổi - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 4.2 Thông tin server đã được thay đổi (Trang 60)
Hình 4.3  Kiểm thử HTTP Method - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 4.3 Kiểm thử HTTP Method (Trang 60)
Hình 4.4 Danh mục Payload  password - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 4.4 Danh mục Payload password (Trang 61)
Hình 4.5 Kết quả sau 3 lần dò sai  password Kiểm tra thông tin audit log: - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 4.5 Kết quả sau 3 lần dò sai password Kiểm tra thông tin audit log: (Trang 62)
Hình 4.6 Kiểm thử SQL injection - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 4.6 Kiểm thử SQL injection (Trang 63)
Hình 4.8 Kiểm thử hệ thống với công cụ HTTP POST Tool - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 4.8 Kiểm thử hệ thống với công cụ HTTP POST Tool (Trang 65)
Hình 4.9 Server không đáp ứng được người dùng khi bị tấn công DoS - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 4.9 Server không đáp ứng được người dùng khi bị tấn công DoS (Trang 65)
Hình 4.10 Email cảnh báo các tấn công vào hệ thống - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 4.10 Email cảnh báo các tấn công vào hệ thống (Trang 66)
Hình 4.12 Hiệu năng hệ thống - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Hình 4.12 Hiệu năng hệ thống (Trang 68)
Bảng 2.1 ModSecurity Directives - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Bảng 2.1 ModSecurity Directives (Trang 74)
Bảng 2.4 Response variables - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Bảng 2.4 Response variables (Trang 75)
Bảng 2.14 Disruptive actions - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Bảng 2.14 Disruptive actions (Trang 79)
Bảng 2.15 Flow actions - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Bảng 2.15 Flow actions (Trang 80)
Bảng 2.20 Miscellaneous actions - Luận văn thạc sĩ Kỹ thuật điện tử: Giải pháp nâng cao tính an toàn cho hệ thống ERP doanh nghiệp
Bảng 2.20 Miscellaneous actions (Trang 81)

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

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

TÀI LIỆU LIÊN QUAN