Tải bản đầy đủ (.doc) (96 trang)

Xây dựng mô đun firewall tích hợp cho web

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (992.7 KB, 96 trang )

Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

MỤC LỤC
MỤC LỤC.............................................................................................................1
DANH MỤC HÌNH ẢNH....................................................................................5
c) Dòng phiên bản 1.6.x 13 1...............................................................................5
c) Dòng phiên bản 1.6.x 17..................................................................................5
DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT.................................................10
LỜI MỞ ĐẦU.....................................................................................................11
Chương 1.............................................................................................................13
TỔNG QUAN VỀ HỆ THỐNG QUẢN LÝ NỘI DUNG...............................13
1.1 Khái niệm Hệ thống quản lý nội dung.....................................................13
1.2 Giới thiệu Joomla.....................................................................................14
1.2.1 Lịch sử phát triển...........................................................................14
1.2.2 Các phiên bản................................................................................16
c) Dòng phiên bản 1.6.x.....................................................................................17
1.2.3 Kiến trúc Joomla 1.5!....................................................................17
1.2.3.1 Ba tầng hệ thống của Joomla! 1.5...............................................18
1.2.2.2 Mô hình Model-View-Controller (MVC)...................................20
1.2.4 Nhóm Nòng cốt.............................................................................21
Chương 2.............................................................................................................23
GIỚI THIỆU CHUNG VỀ TƯỜNG LỬA ỨNG DỤNG WEB.....................23
2.1 Tổng quan về tường lửa ứng dụng web...................................................23
2.2 Ưu điểm của tường lửa ứng dụng web....................................................24
2.3 Hạn chế của tường lửa ứng dụng web.....................................................25
2.4 Những rủi ro của WAF............................................................................25
1



Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

2.5 Firewall Script..........................................................................................28
2.5.1 Khái niệm......................................................................................28
2.5.2 Chức năng của Firewall Script......................................................28
Chương 3.............................................................................................................30
MÔ ĐUN FIREWALL TÍCH HỢP CHO WEBSITE JOOMLA.................30
Theo thống kê của trang web (www.webappsecroadmap.com) năm 2008 thì
có tới 68% các trang web bị tấn công dựa vào lỗi SQL injection, 61% là bị tấn
công theo XSS... Đây là những lỗi rất cơ bản nhưng nó rất là nguy hiểm. Nguyên
nhân chủ yếu là do các nhà phát triển web chưa cẩn thận, chưa ý thức rõ tầm
quan trọng của việc bảo vệ dự liệu của website hoặc sơ suất trong quá trình phát
triển dẫn đến không kiểm tra kỹ dữ liệu đầu vào.................................................31
Joomla! là một framework dành cho các tổ chức, cá nhân dùng để giới thiệu
tin tức, giới thiệu về công ty, làm blog hoặc làm sử dụng vào thương mại điện tử
như: bán hàng qua mạng ... Bản thân Joomla! cũng chưa có mô-đun nào dùng
cho việc kiểm tra dữ liệu đầu vào trước khi tới các thành phần mở rộng. Do đó,
khi một người sử dụng cài những phần mở rộng không đảm bảo an toàn thì rất dễ
bị kẻ xấu lợi dụng và tấn công.............................................................................31
Việc trang bị những sản phẩm chuyên dụng hay các sản phẩm đã được
thương mại hóa thì quá đắt. Những sản phẩm tường lửa cho Joomla! có thể
chống lại được kiểu tấn công này những không chống được các kiểu tấn công
khác như: chống được SQL injection, XSS nhưng không chống được DoS hoặc
upshell. Đối với những sản phẩm, những thiết bị chuyên dụng cấu hình rất phức
tạp đối với các doanh nghiệp vừa và nhỏ.............................................................31
Do đó em chọn giải pháp xây dựng một Firewall Script tích hợp vào Joomla!

1.5 để bảo vệ các tấn công cũng như làm sạch các dữ liệu trước khi các thành
phần khác của Joomla! xử lý dữ liệu...................................................................31
Xfirewall là tường lửa ứng dụng web, hoạt động ở tầng Ứng dụng của mô
hình OSI. Nó có thể chống được nhiều kiểu tấn công tại tầng Ứng dụng như:
2


Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

HTTP Flood, SQL injection, XSS, up shell. Ngoài ra, Xfirewall có nhiều chức
năng bảo vệ an toàn cho người quản trị như: thay đổi link admin, đặt password
sử dụng .htpasswd, hay sử dụng master password để quản lí Xfirewall..............31
Hiện nay có nhiều component cũng như plugin được viết ra với mục đích
ngăn chặn các tấn công từ bên ngoài vào hệ thống. Song nhưng thành phần mở
rộng (extension) trên còn có nhiều hạn chế. Do đó Xfirewall được viết ra với
mong muốn có thể hạn chế tối đa thiệt hại cho máy chủ cũng như cho chính
trang web đang được triển khai............................................................................32
3.1 Xây dựng mô-đun Xfirewall....................................................................32
3.1.1 Luồng dữ liệu vào ra trong Joomla!..............................................32
3.1.2 Cách thức xây dựng một component trong Joomla!......................33
3.1.3 Các thành phần trong mô-đun Xfirewall.......................................35
3.1.4 Hoạt động của modun Xfirewall...................................................42
3.1.5 Cài đặt............................................................................................44
3.2 Một số chức năng của mô-đun Xfirewal.................................................49
3.2.1 SQL injection Attack.....................................................................49
3.2.2 XSS Attack....................................................................................52
3.2.3 DDoS Attack (Distributed Denial of Service)...............................56

3.2.4 Up shell..........................................................................................59
3.2.5 Enable / Disable các chức năng trong admin.................................61
3.2.6 Chặn user.......................................................................................62
3.2.7 Chặn IP..........................................................................................63
3.2.8 Bảo vệ link admin..........................................................................63
3.2.9 Master password............................................................................66
3.2.10 Ghi log.........................................................................................66
3


Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

3.3 So sánh với một số firewall cùng loại......................................................67
3.3.1 Blind SQL Injection.......................................................................68
3.3.2 DoS................................................................................................69
3.3.3 File upload.....................................................................................69
3.3.4 File inclusion.................................................................................70
3.3.5 XSS................................................................................................70
3.4 Ưu nhược điểm của Xfirewall.................................................................71
3.4.1 Ưu điểm.........................................................................................71
3.4.2 Nhược điểm...................................................................................72
KẾT LUẬN.........................................................................................................74
TÀI LIỆU THAM KHẢO.................................................................................77
PHỤ LỤC............................................................................................................78

4



Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

DANH MỤC HÌNH ẢNH
MỤC LỤC.............................................................................................................1
c) Dòng phiên bản 1.6.x 13 1 5............................................................................1
c) Dòng phiên bản 1.6.x 17 5...............................................................................1
c) Dòng phiên bản 1.6.x 17..................................................................................1
DANH MỤC HÌNH ẢNH....................................................................................5
DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT.................................................11
LỜI MỞ ĐẦU.....................................................................................................12
Chương 1.............................................................................................................14
TỔNG QUAN VỀ HỆ THỐNG QUẢN LÝ NỘI DUNG...............................14
1.1 Khái niệm Hệ thống quản lý nội dung.....................................................14
1.2 Giới thiệu Joomla.....................................................................................15
1.2.1 Lịch sử phát triển...........................................................................15
1.2.2 Các phiên bản................................................................................17
c) Dòng phiên bản 1.6.x.....................................................................................18
1.2.3 Kiến trúc Joomla 1.5!....................................................................18
1.2.3.1 Ba tầng hệ thống của Joomla! 1.5...............................................19
Hình 1.1 Kiến trúc Joomla! 1.5........................................................19
1.2.2.2 Mô hình Model-View-Controller (MVC)...................................21
Hình 1.2 Mô hình MVC...................................................................21
1.2.4 Nhóm Nòng cốt.............................................................................22
Chương 2.............................................................................................................24
GIỚI THIỆU CHUNG VỀ TƯỜNG LỬA ỨNG DỤNG WEB.....................24
2.1 Tổng quan về tường lửa ứng dụng web...................................................24

5


Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

2.2 Ưu điểm của tường lửa ứng dụng web....................................................25
2.3 Hạn chế của tường lửa ứng dụng web.....................................................26
2.4 Những rủi ro của WAF............................................................................26
Hình 2.1 Bảng đánh giá các kiểu tấn công Website.........................27
Hình 2.2 HTTP Parameter Pollution HPP .......................................28
Hình 2.3: Cross-site Script HTTP....................................................28
Hình 2.4: Path Traversal, Local/Remote File Inclusion...................29
2.5 Firewall Script..........................................................................................29
2.5.1 Khái niệm......................................................................................29
2.5.2 Chức năng của Firewall Script......................................................29
Chương 3.............................................................................................................31
MÔ ĐUN FIREWALL TÍCH HỢP CHO WEBSITE JOOMLA.................31
Theo thống kê của trang web (www.webappsecroadmap.com) năm 2008 thì
có tới 68% các trang web bị tấn công dựa vào lỗi SQL injection, 61% là bị tấn
công theo XSS... Đây là những lỗi rất cơ bản nhưng nó rất là nguy hiểm. Nguyên
nhân chủ yếu là do các nhà phát triển web chưa cẩn thận, chưa ý thức rõ tầm
quan trọng của việc bảo vệ dự liệu của website hoặc sơ suất trong quá trình phát
triển dẫn đến không kiểm tra kỹ dữ liệu đầu vào.................................................32
Joomla! là một framework dành cho các tổ chức, cá nhân dùng để giới thiệu
tin tức, giới thiệu về công ty, làm blog hoặc làm sử dụng vào thương mại điện tử
như: bán hàng qua mạng ... Bản thân Joomla! cũng chưa có mô-đun nào dùng
cho việc kiểm tra dữ liệu đầu vào trước khi tới các thành phần mở rộng. Do đó,

khi một người sử dụng cài những phần mở rộng không đảm bảo an toàn thì rất dễ
bị kẻ xấu lợi dụng và tấn công.............................................................................32
Việc trang bị những sản phẩm chuyên dụng hay các sản phẩm đã được
thương mại hóa thì quá đắt. Những sản phẩm tường lửa cho Joomla! có thể
chống lại được kiểu tấn công này những không chống được các kiểu tấn công
6


Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

khác như: chống được SQL injection, XSS nhưng không chống được DoS hoặc
upshell. Đối với những sản phẩm, những thiết bị chuyên dụng cấu hình rất phức
tạp đối với các doanh nghiệp vừa và nhỏ.............................................................32
Do đó em chọn giải pháp xây dựng một Firewall Script tích hợp vào Joomla!
1.5 để bảo vệ các tấn công cũng như làm sạch các dữ liệu trước khi các thành
phần khác của Joomla! xử lý dữ liệu...................................................................32
Xfirewall là tường lửa ứng dụng web, hoạt động ở tầng Ứng dụng của mô
hình OSI. Nó có thể chống được nhiều kiểu tấn công tại tầng Ứng dụng như:
HTTP Flood, SQL injection, XSS, up shell. Ngoài ra, Xfirewall có nhiều chức
năng bảo vệ an toàn cho người quản trị như: thay đổi link admin, đặt password
sử dụng .htpasswd, hay sử dụng master password để quản lí Xfirewall..............32
Hiện nay có nhiều component cũng như plugin được viết ra với mục đích
ngăn chặn các tấn công từ bên ngoài vào hệ thống. Song nhưng thành phần mở
rộng (extension) trên còn có nhiều hạn chế. Do đó Xfirewall được viết ra với
mong muốn có thể hạn chế tối đa thiệt hại cho máy chủ cũng như cho chính
trang web đang được triển khai............................................................................33
3.1 Xây dựng mô-đun Xfirewall....................................................................33

3.1.1 Luồng dữ liệu vào ra trong Joomla!..............................................33
Hình 3.1 Mô tả luồng dữ liệu vào/ra trong Joomla!.........................33
3.1.2 Cách thức xây dựng một component trong Joomla!......................34
3.1.3 Các thành phần trong mô-đun Xfirewall.......................................36
Hình 3.4 Các Model trong Xfirewall...............................................40
Hình 3.5 Các View trong Xfirewall.................................................41
Hình 3.6 Plugin trong Xfirewall.......................................................42
Hình 3.7 Helpers trong Xfirewall.....................................................43
3.1.4 Hoạt động của modun Xfirewall...................................................43
Hình 3.8 Sơ đồ hoạt động................................................................44
7


Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

3.1.5 Cài đặt............................................................................................45
Hình 3.9 Cài đặt modun Xfirewall...................................................45
Hình 3.10 Giao diện chính của Xfirewall........................................46
Hình 3.11 Cấu hình link an toàn......................................................47
Hình 3.12 Cấu hình truy cập vào back-end......................................48
Hình 3.13 Cấu hình chống tấn công SQL injection.........................48
Hình 3.14 Cấu hình chống tấn công DDoS......................................49
Hình 3.15 cấu hình upshell...............................................................50
3.2 Một số chức năng của mô-đun Xfirewal.................................................50
3.2.1 SQL injection Attack.....................................................................50
Hình 3.16 Cấu hình chống tấn công SQL injection.........................51
Hình 3.17 Sơ đồ hoạt động kiểm tra tấn công SQL injection..........52

Hình 3.18 Cảnh báo lỗi SQL injection.............................................53
3.2.2 XSS Attack....................................................................................53
Hình 3.19 Sơ đồ kiểm tra tấn công XSS..........................................55
Hình 3.20 Cảnh báo lỗi XSS............................................................57
3.2.3 DDoS Attack (Distributed Denial of Service)...............................57
Hình 3.21 Mô tả tấn công DDoS......................................................58
Hình 3.22 Cấu hình tấn công DDoS................................................59
3.2.4 Up shell..........................................................................................60
Hình 3.23 Cấu hình chống up shell..................................................61
3.2.5 Enable / Disable các chức năng trong admin.................................62
Hình 3.24 Cấu hình cấm các chức năng trong phần quản trị...........63
3.2.6 Chặn user.......................................................................................63
8


Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

Hình 3.25 Cấu hình chặn user truy cập vào phần quản trị...............63
3.2.7 Chặn IP..........................................................................................64
Hình 3.26 Giao diện quản trị IP bị cấm...........................................64
3.2.8 Bảo vệ link admin..........................................................................64
Hình 3.27 Cấu hình tạo link an toàn cho admin...............................65
Hình 3.28 Cấu hình đặt password sử dụng .htpasswd......................66
Hình 3.29 Giao diện đăng nhập khi cấu hình đặt pass bằng
.htpasswd..........................................................................................66
3.2.9 Master password............................................................................67
Hình 3.30 Cấu hình Master password..............................................67

Hình 3.31 Giao diện đăng nhập Master user....................................67
3.2.10 Ghi log.........................................................................................67
Hình 3.32 Nhật kí trang web............................................................68
3.3 So sánh với một số firewall cùng loại......................................................68
3.3.1 Blind SQL Injection.......................................................................69
3.3.2 DoS................................................................................................70
3.3.3 File upload.....................................................................................70
3.3.4 File inclusion.................................................................................71
3.3.5 XSS................................................................................................71
3.4 Ưu nhược điểm của Xfirewall.................................................................72
3.4.1 Ưu điểm.........................................................................................72
3.4.2 Nhược điểm...................................................................................73
KẾT LUẬN.........................................................................................................75
TÀI LIỆU THAM KHẢO.................................................................................78
9


Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

PHỤ LỤC............................................................................................................79

10


Đồ án tốt nghiệp
web


Xây dựng mô-đun firewall tích hợp cho

DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT
CMS

Content Management System

SFLC

Software Freedom Law Center

MySQL

Hệ quản trị cơ sở dữ liệu MySQL

Front-end

Phần giao diện phía người sử dụng – site

Back-end

Phần giao diện
administrator

Framework

Thường sử dụng cho những mã nguồn được đóng
gói lại và có thể phát triển trên đó

MVC


Module View Controller

CSDL

Cơ Sở Dữ Liệu

HQT CSDL

Hệ quản trị Cơ sở dữ liệu

WAF

Web Application Firewall

OSI

Open Systems Interconnection

GUI

Graphical User Interface

11

phía

người

quản


trị

-


Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

LỜI MỞ ĐẦU
Vấn đề an ninh mạng hiện nay trở nên cấp thiết hơn bao giờ hết. Nhất là đối với
các website thì đây là mối đe dọa rất lớn bởi tính lỏng lẻo trong công các bảo vệ
hoặc khó khăn trong việc bảo vệ. So với giải pháp đặt các firewall đắt tiền để
bảo vệ website thì một giải pháp khả thi và hiệu quả hơn cả đó chính là tự bảo
vệ ngay chính website của mình. Do đó giải pháp Web Application Firewall
được lựa chọn tiên nhất trong việc xây dựng vào bảo vệ các trang web.
Joomla là một mã nguồn mở do cộng đồng thế giới cùng nhau xây dựng và phát
triển. Nó đơn giản trong việc thiết kế và quản trị, đồng thời cũng có thể xây dựng
được những website phức tạp như: web bán hàng, rao vặt, mạng xã hội... Qua
tìm hiểu em thấy Joomla! hoàn toàn có khả năng làm một website chuyên
nghiệp cũng như việc xây dựng các ứng dụng bảo mật trên đó.
Bản thân Joomla! chưa có mô-đun nào hỗ trợ bảo mật, kiểm tra dữ liệu đầu vào
trước khi tới các thành phần mở rộng. Do đó, khi một người sử dụng cài những
phần mở rộng không đảm bảo an toàn thì rất dễ bị kẻ xấu lợi dụng và tấn công.
Hơn nữa là Joomla cũng chưa có mô-đun firewall nào để bảo vệ trang web. Một
số các nhà phát triển cũng đã phát triển các mô-đun firewall nhưng vẫn chưa
thực sự hiệu quả và chống được ít kiểu tấn công.Vì vậy, em đã chọn đề tài của
mình là: “Xây dựng module firewall tích hợp vào website dựa trên nền

joomla 1.5” để có thể phòng chống và bảo vệ trang web một cách hiệu quả hơn.
Đồ án tốt nghiệp gồm các chương sau:
Chương 1: Tổng quan về CMS
Chương 2: Giới thiệu chung về tường lửa ứng dụng web
Chương 3: Mô-đun Xfirewall
Chương 4: Kết luận
Để hoàn thành được đồ án này, trước hết em xin chân thành cảm ơn ban lãnh đạo
Học viện Kỹ thuật Mật Mã cùng với các thầy cô trong khoa an toàn thông tin,
12


Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

các thầy cô trong khoa công nghệ thông tin cùng các thầy cô ở khoa khác đã hết
sức tạo điều kiện và có công ơn dạy dỗ em trong quá trình học tập.
Qua đây, em cũng xin cảm ơn thầy giáo TS. Nguyễn Chung Tiến công tác tại
phân viện Nghiên Cứu Nghiệp Vụ Mật Mã và An Toàn Thông Tin – Học Viện
Kỹ Thuật Mật Mã người đã có công rất lớn trong quá trình em làm đồ án. Thầy
đã hướng dẫn nhiệt tình và tạo điều kiện để em có thể học hỏi thêm nhiều kiến
thức bổ ích.
Em xin gửi lời cảm ơn đến gia đình và bạn bè đã ủng hộ và động viên em trong
suốt quá trình học tập và làm việc cũng như trong thời gian làm đồ án.
Em rất mong nhận được các ý kiến đóng góp của thầy cô và các bạn để đồ án của
em được hoàn thiện hơn.
Em xin chân thành cảm ơn !

Hà Nội, ngày 30 tháng 5 năm 2011

Sinh viên thực hiện

13


Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

Chương 1
TỔNG QUAN VỀ HỆ THỐNG QUẢN LÝ NỘI DUNG
1.1 Khái niệm Hệ thống quản lý nội dung
Hệ thống quản lý nội dung hay còn gọi là CMS (Content Management System)
được sử dụng để điều khiển và chỉnh sửa nội dung. Nội dung bao gồm tệp tin
điện tử, hình ảnh, video, file âm thanh, tài liệu điện tử và văn bản web. Khái
niệm chính đằng sau một CMS là tạo ra những tập tin có sẵn cho việc chỉnh sửa
nội bộ hoặc trên nền Internet. Một CMS thường được sử dụng để lưu trữ tài liệu
rất tốt. Rất nhiều công ty sử dụng CMS để tổ chức và lưu trữ những tập tin dưới
dạng công cộng. Nhiều công ty sử dụng CMS có thể chia sẻ nội dung với người
khác một cách dễ dàng, như hầu hết các hệ thống bây giờ.
Hệ thống quản lý nội dung trang web chủ yếu được sử dụng để kiểm soát và xuất
bản các văn bản dựa trên các tài liệu như bài viết, tài liệu dạng văn bản và thông
tin. Một CMS bình thường có thể cung cấp các tính năng sau đây:
• Nhập và tạo ra các tài liệu, video và các hình ảnh
• Xác định người sử dụng chính và vai trò của mình trong hệ thống quản
lý nội dung
• Một khả năng để chỉ định một số vai trò và quyền lợi cùng với hệ
thống quản lý tài liệu với các kiểu nội dung khác nhau các chuyên mục.
• Xác định cho việc quản lý và sơ đồ cong việc của hệ thống,đưa ra định

nghĩa, nhiệm vụ, và thậm chí có thể gắn liền với thông điệp để các nhà
quản lý nội dung sẽ được thông báo về các thay đổi nội dung một cách
cụ thể.
• Một khả năng để ghi chép, theo dõi và quản lý rất nhiều các phiên bản
của cùng một nội dung hay tập tin - một hệ thống quản lý tài liệu với
nhiều phiên bản
14


Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

• Một khả năng để xuất bản nội dung vào một khu lưu trữ tập trung, để
tạo điều kiện lớn hơn truy cập vào nội dung. Quan trọng hơn là với thời
gian, kho này là một yếu tố quan trọng của hệ thống CMS, tích hợp và
tìm kiếm và các phương pháp thu hồi.
• Một số hệ thống CMS cho phép dùng định dạng của một số văn bản
trong tài liệu như: phông chữ, màu sắc, bố trí bố cục…
Một số CMS thông dụng hiện nay: Joomla!, Drupal, Wordpress, Nuke…
1.2 Giới thiệu Joomla
Joomla! là một hệ quản trị nội dung mã nguồn mở. Joomla! được viết bằng ngôn
ngữ PHP và kết nối tới cơ sở dữ liệu MySQL, cho phép người sử dụng có thể dễ
dàng xuất bản các nội dung của họ lên Internet hoặc Intranet.
1.2.1 Lịch sử phát triển
Joomla! là "sản phẩm anh em" với Mambo giữa tập đoàn Miro của Úc (hãng
đang nắm giữ Mambo), với phần đông những người phát triển nòng cốt.
Ban đầu công ty Miro của Úc (Miro Software Solutions) đã phát triển Mambo
theo dạng ứng dụng mã nguồn đóng. Đến tháng 4 năm 2001, công ty đã thông

qua một chính sách bản quyền kép, nghĩa là phát hành Mambo theo cả giấy phép
GPL.
Mọi thứ vẫn tiến triển bình thường cho đến trước khi xảy ra tranh chấp về mặt
pháp lý vào năm 2003. Vụ việc dẫn tới ý tưởng Mambo cần phải được bảo vệ
bởi một tổ chức phi lợi nhuận. Nhưng những nhà phát triển không hài lòng về cơ
cấu của Quỹ tài trợ Mambo. Andrew Eddie, người lãnh đạo nhóm phát triển,
trong một lá thư gửi cộng đồng, đã chia sẻ những lo lắng của mình về Quỹ tài trợ
Mambo và mối quan hệ của nó tới cộng đồng. Ông viết: "...Chúng tôi cho rằng
tương lai của Mambo nên được quản lý, điều chỉnh bởi những yêu cầu của người
sử dụng và khả năng của những nhà phát triển. Trong khi đó, Quỹ tài trợ Mambo
lại được thiết kế nhằm trao quyền điều khiển cho Miro, một thiết kế ngăn cản sự
hợp tác giữa Quỹ tài trợ và cộng đồng...". Bởi vậy vào ngày 17 tháng 8 năm
15


Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

2005, toàn bộ đội phát triển nòng cốt của Mambo đã rời khỏi dự án trong khi
đang làm việc với phiên bản 4.5.3.
Nhờ sự trợ giúp của Trung tâm Luật Tự do Phần mềm (Software Freedom Law
Center - SFLC), 20 thành viên nòng cốt cũ của Mambo đã thành lập một tổ chức
phi lợi nhuận khác lấy tên là Open Source Matters, để hỗ trợ về mặt tổ chức,
pháp lý và kinh phí cho dự án mã nguồn mở còn chưa được đặt tên của họ. Cùng
lúc đó, nhóm phát triển cũng lập một website lấy tên OpenSourceMatters.org để
phân phối thông tin tới những người sử dụng, những người phát triển, những
người thiết kế và cộng đồng Joomla nói chung. Người đứng đầu dự án chính là
Andrew Eddie, còn được biết đến với tên gọi "Sếp trưởng"

Ngay ngày hôm sau, 1000 người đã gia nhập diễn đàn OpenSourceMatters.org,
hầu hết các bài viết cho diễn đàn đều khuyến khích và đồng tình với hành động
của nhóm phát triển. Tin trên đã nhanh chóng được đăng tải trên các tạp chí
newsforge.com, eweek.com và ZDnet.com.
Trong một thông báo của Eddie 2 tuần sau đó, các nhóm đã được tổ chức lại và
cộng đồng Joomla! tiếp tục tăng trưởng. Tới ngày 1 tháng 9 năm 2005 tên mới
của dự án đã được thông báo cho khoảng 3000 người theo dõi đội phát triển và
đến ngày 16 tháng 9 thì họ cho ra đời Joomla! 1.0.

16


Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

1.2.2 Các phiên bản
Các dòng phiên bản của Joomla!:
• Joomla! 1.0.x:
o Phiên bản phát hành đầu tiên: Joomla! 1.0.0 (ngày 15 tháng 9
năm 2005).
o Phiên bản phát hành mới nhất: Joomla! 1.0.15 (ngày 22 tháng
2 năm 2008).
• Joomla! 1.5.x:
o Các phiên bản cũ (giai đoạn phát triển): Joomla! 1.5 beta,
Joomla! 1.5 RC1, Joomla! 1.5 RC2, Joomla! 1.5 RC3,
Joomla! 1.5 RC4.
o Phiên bản phát hành mới nhất: Joomla! 1.5.23 (ngày 04 tháng
04 năm 2011).

• Joomla! 1.6.x:
o Phiên bản thử nghiệm đầu tiên ra đời vào 17/5/2010.
o Bản chính thức ra đời vào 10/1/2011.
a) Dòng phiên bản 1.0.x
Phiên bản đầu tiên của Joomla! là phiên bản Joomla! 1.0 (hay Joomla! 1.0.0) có
nguồn gốc từ Mambo 4.5.2.3 (đã bao gồm thêm nhiều bản vá bảo mật và sửa
lỗi).Các phiên bản tiếp theo có dạng 1.0.x.
Điểm mạnh của Joomla! 1.0.x: Có một số lượng rất lớn các thành phần mở rộng
(module/component); thành phần nhúng (mambot); giao diện (template).

17


Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

b) Dòng phiên bản 1.5.x
Phiên bản Joomla! 1.5 là phiên bản cải tiến từ Joomla! 1.0.x (phần mã được viết
lại hoàn toàn, tuy nhiên vẫn giữ cách hành xử như cũ) được coi như Mambo 4.6.
Joomla! 1.5 tiếp tục duy trì một giao diện người sử dụng đơn giản (nhìn và cảm
nhận - look and feel).
Cả Joomla! 1.5 và Mambo 4.6 đều hỗ trợ đa ngôn ngữ. Joomla! thì sử dụng file
định dạng ".ini" để lưu các thông tin chuyển đổi ngôn ngữ, còn Mambo thì sử
dụng file định dạng ".gettext". Joomla 1.5 hỗ trợ tất cả các ngôn ngữ có tập ký tự
được biểu diễn bằng bảng mã UTF-8.
Joomla! 1.5 cũng bao gồm các đặc tính mới như các mô hình chứng thực
(LDAP, Gmail...), hỗ trợ mô hình khách-chủ (client-server) xml-rpc. Nó cũng hỗ
trợ các trình điều khiển cơ sở dữ liệu dành cho MySQL 4.1+ (trên nền PHP 5) và

tăng cường hỗ trợ cho MySQL 5, cũng như hỗ trợ các loại cơ sở dữ liệu khác.
Điểm mạnh của Joomla! 1.5: Phần quản trị website có sử dụng công nghệ Web
2.0, một số tính năng được cải tiến hơn so với Joomla 1.0.x.
c) Dòng phiên bản 1.6.x
Jommla! 1.6 là dòng phiên bản tiếp theo của Joomla! 1.5. Những thay đổi đáng
kể của phiên bản này chính là:
- Hệ thống quản lý truy cập mở rộng.
- Quản lí thể loại lồng nhau, đa cấp.
- Chuẩn hóa các phần mở rộng được xây dựng dựa trên mô hình MVC.
1.2.3 Kiến trúc Joomla 1.5!
Joomla! 1.5 được phát triển và kết thừa từ phiên bản tiền nhiệm trước đó là 1.0.
Nó được xây dựng với ba tầng hệ thống và thiết kế theo mô hình MVC. Với thiết
kế như vậy sẽ dễ dàng cho việc quản lý code, dễ dàng cho việc phát triển các
thành phần và tạo ra một chuẩn cho cộng đồng phát triển các ứng dụng mở rộng.

18


Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

1.2.3.1 Ba tầng hệ thống của Joomla! 1.5

Hình 1.1 Kiến trúc Joomla! 1.5
Tầng thứ nhất là Extensions Tier. Đây là tầng trên cùng của Joomla! framework,
tầng này có các thành phần (component), mô đun (module) và giao diện
(template) được thực thi và thể hiện hay còn gọi là view. Ba thành phần này tạo
nên điểm mạnh cho Joomla! đó chính là mô hình MVC. Các thành phần này có

chức năng và nhiệm vụ sau:
• Components: Là một trong các thành phần mở rộng của Joomla!, thực
chất nó là một ứng dụng độc lập trong hệ thống Joomla!. Component
được sử dụng để thực hiện một chức năng lớn nào đó, chẳng hạn như:
Quản lí nội dung tin tức, quảng cáo, rao vặt, liên kết web, liên hệ...
• Modules: Là một trong các thành phần mở rộng của Joomla!, nó là một
ứng dụng nhỏ (thường chỉ có vài file và phần lập trình cũng không
nhiều) được sử dụng chủ yếu để lấy dữ liệu và hiển thị thông tin.
Module thường được dùng kết hợp kèm với các component nhằm mở
rộng, cũng như thể hiện rõ ràng hơn các chức năng của component.
Không giống như component, một module có thể được đặt ở bất kỳ vị
trí nào trên template hoặc vị trí do người dùng tự định nghĩa. Ngoài ra
một module có thể được nhân bản, nghĩa là cùng lúc có thể xuất hiện
19


Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

tại một vị trí hoặc các vị trí khác nhau hay có thể tái sử dụng cho một
trang web khác. Các module được quản lý ở giao diện người quản trị.
Mỗi một module có thể có hoặc không có các thông số cấu hình. Và
người quản trị có thể cho phép các module ẩn hoặc hiện ở vị trí nào đó
tùy theo thiết kế, chức năng của trang web.
• Templates: Là một gói bao gồm các file PHP, HTML, CSS, JS
(Javascript)... và các tấm hình, ảnh, biểu tượng, video, flash kèm theo
tạo nên giao diện (bố cục và hình hài) của website. Joomla! sử dụng
các giao diện khác nhau cho front-end (site) và back-end

(administrator).
Tầng thứ hai là Application Tier. Đây là tầng giữa của Joomla! framework.
Tầng này bao gồm các thành phần mở rộng của lớp JApplication. Hiện tại có 4
ứng dụng trong bản phân phối của Joomla!:
• JInstallation chịu trách nhiệm cài đặt các ứng dụng của joomla vào web
server và xóa bỏ chúng sau khi quá trình cài đặt hoàn tất.
• JAdministrator chịu trách nhiệm cho phần quản trị back-end.
• JSite chịu trách nhiệm cho phần front-end của website.
• XML-RPC hỗ trợ quản trị từ xa của website joomla.
Tầng thứ ba Framework Tier: Đây cũng là tầng cuối cùng của framework. Tầng
này chứa:
• Framework: Đây chính là lõi (core) của Joomla!, thực hiện và xử lý
luồng dữ liệu.
• Libraries: Chứa các lớp phục vụ cho các chức năng thực thi của core
cũng như các chức năng mở rộng mà nhà phát triển xây dựng.
• Plugin: Hay còn gọi là mambot(trong phiên bản 1.0) nó là những tiến
trình nhỏ, thực hiện một hay nhiều nhiệm vụ một cách tự động trước
khi sự kiện đó xảy ra.
20


Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

1.2.2.2 Mô hình Model-View-Controller (MVC)
Bắt đầu từ phiên bản Joomla! 1.5.x hoặc các phiên bản sau này, Joomla! đã đưa
vào một framework mới, mang lại những thuận tiên rất lớn cho những người
phát triển. Các đoạn code giờ đây rất dễ dàng để kiểm tra và khá rõ ràng.

Framework này đưa ra một mẫu thiết kế mới, thiết kế MVC (Model-ViewController) trong Joomla.

Hình 1.2 Mô hình MVC
Mô hình MVC là một mẫu thiết kế phần mềm được dùng để tổ chức các đoạn mã
theo cách mà việc xử lý dữ liệu và biểu diễn dữ liệu tách rời nhau. Điều này tạo
ra tiền đề cho hướng tiếp cận sau này khi mà việc xử lý dữ liệu được nhóm vào
trong một section, khi đó giao diện hay quá trình tương tác với người dùng bao
quanh dữ liệu có thể được định dạng và tùy biến lại mà không phải lập trình lại
việc xử lý dữ liệu nữa.
21


Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

Mô hình này đã tạo ra một chuẩn chung cho cộng đồng phát triển Joomla!. Qua
đó, cộng động phát triển có thể dễ dàng đọc, phát triển cũng như kế thừa những
sản phẩm của người khác.
Nhiệm vụ và chức năng của các thành phần trong mô hình MVC:
• View: Cũng như tên gọi, nó thể hiện ra ngoài cho người sử dụng giao
diện của chương trình, trong lớp này người ta tuỳ biến để có thể ra
được nhiều kiểu giao diện khác nhau. Cũng giống lớp Model, khi muốn
thay đổi giao diện, người ta chỉ thay đổi lớp View mà thôi.
• Model: Là lớp quản lý tất cả việc truy xuất dữ liệu vào CSDL, bao gồm
cả việc thêm, xoá, sửa… Chính vì thế khi thay đổi một HQT CSDL
khác, người ta chỉ cần thay đổi lớp Model này. Đây chính là lợi điểm
của mô hình MVC – tính mềm dẻo.
• Controller: Lớp này được ví như chiếc xương sống của toàn bộ chương

trình, việc xử lý các luồng dữ liệu yêu cầu (request) , gọi và thực hiện
các lớp Model, View … Lớp này rất ít khi chỉnh sửa nếu ko có nhu cầu
can thiệp vào hệ thống.
1.2.4 Nhóm Nòng cốt
Dự án Joomla! hiện được chèo lái bởi 19 thành viên (ban đầu là 20) của Nhóm
Nòng cốt (Core Team) đến từ 11 quốc gia trên thế giới bao gồm: Ric Allinson,
Brad Baker, Shayne Bartlett, Levis Bisson, Michelle Bisson, Tim Broeker,
David Gal, Rey Gigataras, Wilco Jansen, Johan Janssens, Alex Kempkens,
Mateusz Krzeszowiec, Louis Landry, Andy Miller, Sam Moffatt, Peter Russell,
Emir Sakic, Marko Schmuck, Antonie de Wilde...
Danh
sách
19
thành
viên
của
/>
Nhóm

Nòng

cốt

Những giải thưởng mà Joomla đã đạt được:
• Tháng 10 năm 2007, Hệ quản trị nội dung mã nguồn mở PHP tốt nhất
do Packt Publishing trao tặng.
22


Đồ án tốt nghiệp

web

Xây dựng mô-đun firewall tích hợp cho

• Tháng 11 năm 2006, Hệ quản trị nội dung mã nguồn mở tốt nhất do
Packt Publishing công bố.
• Tháng 10 năm 2006, Dự án mã nguồn mở/ Linux tốt nhất tại triễn lãm
LinuxWorld 2006 ở Anh.
• Tháng 10 năm 2005, Dự án mã nguồn mở/ Linux tốt nhất tại triễn lãm
LinuxWorld 2005 ở Anh.

23


Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

Chương 2
GIỚI THIỆU CHUNG VỀ TƯỜNG LỬA ỨNG DỤNG WEB
2.1 Tổng quan về tường lửa ứng dụng web
Tường lửa ứng dụng web ( Web Application Firewall – WAF) là giải pháp bảo
mật toàn diện và mạnh mẽ dành cho các ứng dụng web. WAF đưa ra một
phương thức phòng vệ chống lại các hoạt động như khai thác các lỗ hổng về giao
thức, lỗ hổng về lập trình ... Bên cạnh đó, WAF còn cảnh báo cho người quản trị
biết về những lỗi ứng dụng mà các hacker có thể khai thác, đánh cắp thông tin,
gây lỗi từ chối dịch vụ hoặc làm thay đổi giao diện trang web.
WAF nằm giữa các ứng dụng web và người dùng. Nó hoạt động cũng giống như
các tường lửa truyền thống là dựa vào các chính sách được tích hợp vào phần

mềm hoặc các thiết bị phần cứng. WAF có thể chạy trong 1 thiết bị hoặc tích
hợp ngay trên máy chủ (server).
Tường lửa ứng dụng web kiểm soát các dữ liệu vào/ra, cũng như các truy cập tới
máy chủ hay các dữ liệu từ máy chủ xuất ra ngoài. Tuy nhiên, các tường lửa
truyền thống hay thậm chí cả hệ thống chống xâm nhập (IPS), các thiết bị phân
tích gói tin IP cũng không thể bảo vệ hết những nguy cơ tấn công cho các ứng
dụng tại tầng Ứng dụng của mô hình OSI. Nếu không có sự chuẩn bị bảo vệ các
dữ liệu thì các tường lửa hoạt động ở tầng 3 không thể phát hiện và khắc phục
các mối đe dọa của tầng ứng dụng.
WAF hoạt động chủ yếu ở tầng ứng dụng (Application layer) của mô hình OSI.
Ngoài ra nó cũng có thể hoạt động ở trên một số các tầng khác như: tầng phiên
(Session layer), tầng trình diễn (Presiontation layer). Tại tầng ứng dụng, WAF
phân tích các dữ liệu dựa vào giao thức HTTP. Sau đó dựa vào các luật đã đặt ra
mà nó cho phép truy cập hay không. Một tường lửa ứng dụng được coi như là
một thiết bị bảo vệ máy chủ (server) khỏi bị tấn công.
Một số WAF như :
24


Đồ án tốt nghiệp
web

Xây dựng mô-đun firewall tích hợp cho

• Armorlogic - Profense web application firewall
• Array Networks - WebWall Multi-Layered Application Security
• Barracuda Web Application Firewall
• Cisco - Application Control Engine (ACE) Web Application Firewall
• Citrix NetScaler - Application Firewall
• F5 Networks - Application Security Manager ASM

• Fortinet - Fortiweb web application firewall
• ModSecurity - Opensource web application firewall
• Radware - AppWall Web Application Firewall
• SonicWALL - SonicWALL Web Application Firewall Service
• List of Additional Web Application Firewalls - Mosaic Security
Research
• RSfirewall - Rsjoomla.com
• Jfirewall - jfirewall.com
2.2 Ưu điểm của tường lửa ứng dụng web
Tính linh hoạt cao, khả năng tùy biến dựa theo môi trường và cách thức bị tấn
công mà có thể thay đổi các luật làm tăng tính mềm dẻo của tưởng lửa loại này.
Các luật này được điều khiển thông qua giao diện người dùng GUI (Graphical
User Interface).
Hoạt động trên nhiều môi trường khác nhau. Nó có thể hoạt động trên cả hệ điều
hành window hay linux, có thể chạy trên nền Apache hoặc là IIS.
Giá thành rẻ, đây là một ưu thế của WAF. Chi phí để xây dựng tường lửa loại
này thấp hơn rất nhiều so với việc mua một tường lửa hoạt động ở các mức khác
trên mô hình OSI thậm chí còn miễn phí (Mod_security).

25


×