Tải bản đầy đủ (.pdf) (45 trang)

Đề tài: Tìm hiểu giải pháp bảo mật cho các website được xây dựng bằng Joomla

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 (1.19 MB, 45 trang )


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NHA TRANG
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO THỰC TẬP CHUYÊN
NGÀNH
Đề tài: Tìm hiểu giải pháp bảo mật cho các website được xây
dựng bằng Joomla
GVHD: Ngô Văn Công
SVTH : Lê Cảnh Toàn
Lớp : 50TH2
MSSV : 50131657
GVHD: Ngô Văn Công Thực tập chuyên ngành
MỤC LỤC
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 3
NỘI DUNG 8
PHẦN I: GIỚI THIỆU VỀ BẢO MẬT TRONG ỨNG DỤNG WEB 8
PHẦN II: CÁC LỖ HỎNG BẢO MẬT TRÊN ỨNG DỤNG WEB 9
Injection 10
Các dạng lỗi thường gặp 11
Một số dạng tấn công thường gặp với các ứng dụng web 12
Cross Site Scripting (XSS) 13
Broken Authentication And Session Management 14
DDoS 14
DDoS là gì? 14
Nguy cơ bị tấn công DDoS của hệ thống mạng hiện nay 15
Nhận diện tấn công DDoS 16
PHẦN 3: TÌM HIỂU CÁC GIẢI PHÁP BẢO MẬT 17
Sao lưu toàn bộ website theo định kì 17
Sao lưu và phục hồi các file 17
Sao lưu và phục hổi cơ sở dữ liệu 17


CHMOD các file và folder trên web server 18
Bảo vệ website với file .htaccess 21
Duy trì băng thông 22
Chống hotlink 22
Tắt chữ kí máy chủ 22
Ngăn ngừa truy cập tới file .htaccess 22
Ngăn ngừa truy cập tới một file bất kì 23
Ngăn ngừa truy cập tới nhiều kiểu file 23
Bảo vệ file hoặc thư mục bằng mật khẩu 23
CHMOD file 25
Giới hạn kích thước file để bảo vệ chống tấn công từ chối dịch vụ (DoS) 25
Sử dụng chức thực bằng cookie 25
SVTH: Lê Cảnh Toàn
Trang 2
GVHD: Ngô Văn Công Thực tập chuyên ngành
Jhackguard 26
Cài đặt 27
Cấu hình 27
Phân quyền trong joomla 28
Phần quyền ở tiền sảnh (Front-end) 29
Phân quyền ở hậu sảnh (Back-end) 30
Bảo mật website joomla với SSL 31
Giao thức SSL 31
Các thuật toán dùng trong SSL 35
Vai trò của SSL đối với bảo mật website 37
Kích hoạt SSL trong Joomla 38
Quét lỗ hỏng bảo mật trên website bằng công cụ Acunetix WVS 38
PHỤ LỤC 44
TÀI LIỆU THAM KHẢO 45
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN






SVTH: Lê Cảnh Toàn
Trang 3
GVHD: Ngô Văn Công Thực tập chuyên ngành




















NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN





SVTH: Lê Cảnh Toàn
Trang 4
GVHD: Ngô Văn Công Thực tập chuyên ngành

























LỜI MỞ ĐẦU
SVTH: Lê Cảnh Toàn
Trang 5
GVHD: Ngô Văn Công Thực tập chuyên ngành
Bảo mật luôn là vấn đề rất quan trọng trong mọi lĩnh vực kinh tế, chính trị, quân
sự, ngoại giao. Và đây cũng là một vấn đề đã được nghiên cứu trong hàng nghìn năm
nay.
Bảo mật cho website Joomla là một nhân tố quan trọng góp phần bảo vệ website
trước các âm mưu tấn công có chủ đích cũng như vô tình, giúp cho website luôn hoạt
động ổn định và bền vững.
Đối với các doanh nghiệp việc bảo mật thông tin thương mại luôn là vấn đề được
đặt ra, đặc biệt trong thời đại hiện nay. Khi mà thông tin giữ vai trò quan trọng hàng đầu
và các phương tiện truyền thông hiện đại cho phép chúng ta chuyển tin rất dễ dàng và
cũng dễ dàng để mất thông tin. Vậy ta có thể làm những gì để sử dụng được các tiện ích
của công nghệ thông tin và viễn thông đã mang lại cho thế giới và đồng thời không để
đối thủ cạnh tranh cũng như các loại tội phạm tin học sử dụng chính những công nghệ
này gây hại.
Nhiều nhà quản trị website chỉ đặt trọng tâm vào việc thiết kế, cập nhật nội dung
và dành thứ hạng cao trong các kết quả tìm kiếm mà quên đi việc đảm bảo an toàn cho
website đến khi sự việc xảy ra thì đã quá muộn.
Khi thông tin được đảm bảo là an toàn thì sẽ giúp chúng ta tiết kiệm được nhiều
chi phí, thời gian…
Nếu thông tin bị tiết lộ hay bị đánh cắp thì thiệt hại sẽ rất nghiêm trọng, có thể dẫn
đến phá sản hoặc phải chịu truy cứu trước pháp luật.
Xuất phát từ những suy nghĩ như vậy nên em đã quyết định chọn đề tài: “Tìm hiểu
về bảo mật website được xây dựng bằng Joomla”. Đề tài thực hiện giới thiệu, tìm hiểu
và phân tích các giải pháp bảo mật Joomla nhằm tối ưu trang web.
Đề tài chia làm 4 phần:
PHẦN I: GIỚI THIỆU VỀ BẢO MẬT ỨNG DỤNG WEB
PHẦN II: CÁC LỖ HỔNG BẢO MẬT CỦA CÁC ỨNG DỤNG WEB

PHẦN III: TÌM HIỂU CÁC GIẢI PHÁP BẢO MẬT TRONG JOOMLA
PHẦN IV: DEMO MỘT SỐ GIẢI PHÁP BẢO MẬT
SVTH: Lê Cảnh Toàn
Trang 6
GVHD: Ngô Văn Công Thực tập chuyên ngành
Vì thời gian có hạn, cũng như còn hạn chế về kiến thức nên báo cáo của em khó
tránh khỏi thiếu sót. Em rất mong nhận được sự đóng góp ý kiến của thầy cô giáo và
bạn bè.
Với lòng biết ơn sâu sắc, em xin chân thành cảm ơn thầy giáo NGÔ VĂN CÔNG,
khoa Công nghệ thông tin và bạn bè đã nhiệt tình hướng dẫn, giúp đỡ em hoàn thành đề
tài này.
Em xin chân thành cảm ơn !
Nha Trang, tháng 01 năm 2012
MỤC ĐÍCH – YÊU CẦU ĐỀ TÀI
1. Mục đích
• Hiểu và biết được các giải pháp bảo mật website phổ biến và hiệu quả.
• Biết cách áp dụng các giải pháp bảo mật cho website joomla.
• Hiểu biết về một số phương thức tấn công website nguy hiểm và phổ biến
hiện nay.
2. Yêu cầu
• Trình bày chi tiết về các giải pháp bảo mật website joomla quan trọng và
phổ biến.
• Trình bày sơ qua về các kiểu tấn công website phổ biến.
• Demo cách áp dụng một số giải pháp bảo mật lên website joomla.
SVTH: Lê Cảnh Toàn
Trang 7
GVHD: Ngô Văn Công Thực tập chuyên ngành
NỘI DUNG
PHẦN I: GIỚI THIỆU VỀ BẢO MẬT TRONG ỨNG DỤNG WEB
Khi mà ứng dụng web phát triển rất nhanh về mọi mặt, khả năng ứng dụng một

cách rộng rãi thì vấn đề bảo mật cho ứng dụng web cũng được chú trọng hơn. Mặc dù
không thể phủ nhận những thành công và bước tiến của ngành bảo mật hiện nay nhưng
không có gì là bảo mật tuyệt đối. Nguyên nhân có thể xuất phát từ những đoạn mã
không phù hợp, những điểm yếu nghiêm trọng hay các lỗ hỏng bảo mật cho phép cách
hacker xâm nhập thằng và truy cập vào cơ sở dữ liệu và lấy đi những dữ liệu nhạy cảm
quan trọng. Nhiều cơ sở dữ liệu chứa thông tin quan trọng (thông tin cá nhân, dữ liệu
công ty,…) là đích nhắm thường xuyên của các hacker. Hiện nay hoạt động tấn công
ứng dụng web xảy ra thường xuyên với mức độ tinh vi và khó ngăn chặn hơn, mục tiêu
của các hacker chủ yếu vẫn là dữ liệu của các ứng dụng vì những dữ liệu này đều là dữ
liệu quan trọng và nó mang lại cho bọn hacker những lợi nhuận khổng lồ từ việc mua
bán dữ liệu.
Trung bình, các ứng dụng web bị tấn công 2 phút 1 lần, có hơn 10 triệu cuộc tấn
công nhắm vào các mục tiêu là các website kinh doanh, website chính phủ. Các cuộc tấn
công được thực hiện một cách tự động với nguyên nhân đa số là các lỗ hỏng bảo mật.
Đặc trưng của các cuộc tấn công là lưu lượng truy cập dữ liệu đột biến nhanh chóng rồi
tiếp theo là khoảng thời gian hoạt động nhẹ hơn, đó là yếu tố quan trọng chỉ để tự động
hóa. Các trang web bị ảnh hưởng bởi các tấn công tự động này trung bình nhận được lên
đến 25000 tấn công trong một giờ hoặc 7 cuộc tấn công mỗi ngày.
Các hacker sử dụng đòn bẩy để tự đông hóa tấn công là một trong những sáng kiến
quan trọng nhất trong lịch sử về các cuộc tấn công. Quá trình tự động sẽ được điều
khiển bởi tội phạm mà không cần sự tấn công trực tiếp về mặt vật lý. Bốn kiểu tấn công
phổ biến nhất nhằm vào các ứng dụng web là: Directory Traversal (DT) (37%), Cross
Site Scripting (XSS) (36%), SQL Injection (SI) (23%) và Remote File Include (RFI)
(3%), Khác (1%).
SVTH: Lê Cảnh Toàn
Trang 8
GVHD: Ngô Văn Công Thực tập chuyên ngành
Các hacker ngày càng thông minh hơn trong việc che dấu các dấu vết khi thực hiện
các tấn công khiến cho các nhà bảo mật khó phát hiện được. Vì vậy, công việc bảo mật
là hết sức quan trọng và phải làm thường xuyên để xây dựng và bảo vệ ứng dụng web.

PHẦN II: CÁC LỖ HỎNG BẢO MẬT TRÊN ỨNG DỤNG WEB
Các lỗ hỏng bảo mật có thể xuất hiện trên tất cả các ứng dụng web bất kể nó được
phát triển bởi các chuyên gia độc lập hay các công ty phần mềm nổi tiếng nhất.
Vào ngày 17/6/2010 vừa qua đã diễn ra hội thảo bảo mật ứng dụng web (Web
Security) do Chi hội An Toàn Thông Tin phía Nam phối hợp với nhóm OWASP (The
Open Web Application Security Project) Việt Nam tổ chức. Tại hội thảo, nhóm OWASP
Viêt Nam đã công bố 10 lỗi an ninh web phổ biến nhất năm 2010 (OWASP Top 10 -
2010). Dưới đây là danh dách 10 lỗi an ninh web phổ biến nhất năm 2010:
1. Injection
SVTH: Lê Cảnh Toàn
Trang 9
GVHD: Ngô Văn Công Thực tập chuyên ngành
2. Cross Site Scripting (XSS)
3. Broken Authencation and Session Management
4. Insecure Derect Object References
5. Cross-Site Request Forgery (CSRF)
6. Security Misconfiguration
7. Insecure Cryptographic Storage
8. Failire to Restrict URL Access
9. Insufficient Transport Layer Protection
10. Unvalidate Redirects and Forwards
Injection
Ứng dụng web có thể sử dụng các dữ liệu đầu vào làm tham số cho các hàm gọi
vào hệ thống. Nếu tin tắc nhúng các mã nguy hiểm trong các dữ liệu đầu vào, hệ thống
có thể chạy các đoạn mã nguy hiểm này.
Lỗi Injection cho phép tin tặc lợi dụng lỗ hỏng trong ứng dụng web làm phương
tiện để gửi các đoạn mã nguy hiểm đến hệ thống. Những cuộc tấn công dạng này bào
gồm các mã gọi hàm đến hệ điều hành, gọi các ứng dụng qua lệnh shell, và các hàm gọi
đến cơ sở dữ liệu (SQL Injection). Những đoạn mã nguy hiểm được viết bằng perl,
python và ngôn ngữ khác có thể được chuyển đến và thực thi bởi ứng dụng web, hệ điều

hành hoặc các ứng dụng khác.
Rất nhiều ứng dụng web sẽ sử dụng các hàm của hệ điều hành và các chương trình
ngoài để thi hành các chức năng. Sendmail là một trong những chương trình ngoài được
sử dụng nhiều nhất. Khi ứng dụng web sử dụng dữ liệu của người dùng để tạo ra đoạn
mã thực thi, dữ liệu từ người dùng cần được lọc kĩ lưỡng. Nếu không tin tặc có thể chèn
vào các kí tự đặc biệt, đoạn lệnh, và những thông tin xấu có thể được chuyển đến hệ
thống và chương trình ngoài. Một trong những dạng phổ biến nhất của
SVTH: Lê Cảnh Toàn
Trang 10
GVHD: Ngô Văn Công Thực tập chuyên ngành
lỗi Injection là lỗi SQL Injection.
SQL Injection là kĩ thuật điền vào những đoạn mã SQL bất hợp pháp cho phép
khai thác một lỗ hỏng bảo mật tồn tại trong cơ sở dữ liệu của ứng dụng. Lỗ hỏng bảo
mật này có thể xuất hiện kh ứng dụng không có đoạn mã kiểm tra chuỗi kí tự thoát
nhúng trong câu truy vấn SQL hoặc do sự định kiểu đầu vào không rõ ràng hay do lỗi cú
pháp SQL của lập trình viên khiến cho một đoạn mã ngoại lai có thể được xử lý ngoài ý
muốn. Tấn công SQL Injection còn có thể được hiểu là hình thức tấn công chèn bất hợp
pháp các đoạn mã SQL.
Các dạng lỗi thường gặp
1.1.1. Không kiểm tra truy vấn kí tự thoát
Đây là dạng lỗi SQL Injection xảy ra khi thiếu đoạn mã kiểm tra dữ liệu
đầu vào câu truy vấn SQL. Kết quả là người dùng đầu cuối có thể thực hiện một
số truy vấn không mong muốn đối với CSDL của ứng dụng.
1.1.2. Xử lý không đúng kiểu
Lỗi SQL Injection dạng này thường xảy ra do lập trình viên hay người dùng
định nghĩa đầu vào dữ liệu không rõ ràng hoặc thiếu bước kiểm tra và lọc kiểu
dữ liệu đầu vào. Điều này có thể xảy ra khi một trường số được sử dụng trong
truy vấn SQL nhưng lập trình viên lại thiếu bước kiểm tra dữ liệu đầu vào để xác
minh kiểu của dữ liệu mà người dùng nhập vào có phải là số hay không.
1.1.3. Lỗi bảo mật bên trong máy chủ CSDL

Đôi khi lõ hỏng có thể tồn tại chính trong phần mềm máy chủ CSDL, như
là trường hợp hàm mysql_real_escape_string() của các máy chủ MySQL. Điều
này sẽ cho phép kẻ tấn công có thể thực hiện một cuộc tấn công SQL Injection
thành công dựa trên những kí tự Unicode không thông thường ngay cả khi đầu
nhập vào đang được thoát.
1.1.4. Blind SQL Injection
Lỗi SQL Injection dạng này là dạng lỗi tồn tại ngay trong ứng dụng web
SVTH: Lê Cảnh Toàn
Trang 11
GVHD: Ngô Văn Công Thực tập chuyên ngành
nhưng hậu quả của chúng lại không hiển thị trực quan cho những kẻ tấn công. Nó
có thể gây ra sự sai khác khi hiển thị nội dung của một trang chứa lỗi bảo mật
này, hậu quả của sự tấn công SQL Injection dạng này khiến cho lập trình viên
hay người dùng phải mất rất nhiều thời gian để phục hồi chính xác từng bit dữ
liệu. Những kẻ tấn công còn có thể sử dụng một số công cụ để dò tìm lỗi dạng
này và tấn công với những thông tin được thiết lập sẵn.
1.1.5. Thay đổi giá trị kiểu truy vấn
Dạng lỗi này khiến cho kẻ tấn công có thể thay đổi giá trị điền kiện trong
câu truy vấn, làm sai lệch sự hiển thị của một ứng dụng chứa lỗi dạng này.
1.1.6. Thời gian trễ
Lỗi dạng này tồn tại khi thời gian xử lý của một hay nhiều truy vấn SQL
phụ thuộc vào dữ liệu logic được nhập vào hoặc quá trình xử lý truy vấn của
SQL engine cần nhiều thời gian chính xác mà trang cần tải khi giá trị nhập vào là
đúng.
Một số dạng tấn công thường gặp với các ứng dụng web
1.1.7. Dạng tấn công vượt qua kiểm tra lúc đăng nhập
Với dạng tấn công này, tin tặc có thể dễ dàng vượt qua các trang đăng nhập
nhờ vào lỗi khi dùng các câu lệnh SQL thao tác trên CSDL của ứng dụng web.
1.1.8. Dạng tấn công sử dụng câu lệnh SELECT
Dạng tấn công này phức tạp hơn, để thực hiện được kiểu tấn công này kẻ

tấn công phải có khả năng hiểu và lợi dụng các sơ hở trong các thông báo lỗi từ
hệ thống để dò tìm các điểm yếu khởi đầu cho việc tấn công.
1.1.9. Dạng tấn công sử dụng câu lệnh INSERT
Thông thường các ứng dụng web cho phép người dùng đăng kí một tài
khoản để tham gia. Chức năng không thể thiếu là sau khi đăng kí thành công,
người dùng có thể xem và hiểu chỉnh thông tin của mình. SQL Injection có thể
được dùng khi hệ thống không kiểm tra tính hợp lệ của thông tin nhập vào.
SVTH: Lê Cảnh Toàn
Trang 12
GVHD: Ngô Văn Công Thực tập chuyên ngành
1.1.10.Dạng tấn công sử dụng Stored Procedures
Việc tấn công bằng Stored Procedures sẽ gây tác hại rất lớn nếu ứng dụng
được thực thi với quyền quản trị hệ thống ‘sa’.
Cross Site Scripting (XSS)
Scross Site Scripting hay còn gọi là XSS (thay vì gọi tắt là CSS để tránh nhầm lẫn
với CSS-Cascading Style Sheet của HTML) là khả năng thêm những thẻ HTML hay
những đoạn mã script nguy hiểm vào trang có lỗi bảo mật. Đoạn mã thêm vào sẽ có tác
dụng trên cất cả các phương thức nhập thông tin đầu vào. Một ứng dụng web bất kì sẽ
hiển thị bất cứ thông tin nào nhận được từ người sử dụng sẽ có nguy cơ bị tấn công.
Những cuộc tấn công như vậy có thể được thực hiện dựa vào các giá trị không được lọc
của các biến nhận được từ người sử dụng, trong đó các đoạn mã chèn vào hầu hết được
viết bằng JavaScript, Jscript, DHTML và cũng có thể là cả các thẻ HTML.
Về cơ bản, XSS cũng như SQL Injection hay Source Injection, nó cũng là các yêu
cầu được gửi từ các máy client tới server nhằm chèn vào đó các thông tin vượt quá tầm
kiểm soát của server. Nó có thể là một request được gửi từ các form nhập liệu hoặc cũng
có thể chỉ là các URL như:
lỗi
XSS!’) ;</script>
Nếu như các kĩ thuật tấn công khác có thể làm thay đổi được dữ liệu nguồn của
web server (mã nguồn, cấu trúc, cơ sở dữ liệu) thì XSS chỉ gây tổn hại đối với website ở

phía client mà nạn nhân trực tiếp là những người khác duyệt website đó. Tất nhiên, đối
khi các hacker cũng sử dụng kĩ thuật này để deface các website nhưng đó vẫn chỉ là tấn
công vào bề mặt của website. XSS là những Client-Side Script, những đoạn mã này sẽ
chỉ chạy bởi trình duyệt phía client do đó XSS không làm ảnh hưởng đến hệ thống
website nằm trên server.
Mục tiêu của XSS không ai khác đó chính là những người sử dụng khác của
website, khi họ vô tình vào các trang có chứa các đoạn mã nguy hiểm do các hacker để
SVTH: Lê Cảnh Toàn
Trang 13
GVHD: Ngô Văn Công Thực tập chuyên ngành
lại họ có thể bị chuyển tới các website khác, đặt lại Homepage, hay nặng hơn là mất mật
khẩu, mất cookie thậm chí máy tính của bạn có thể bị cài các loại virus, backdoor,
worm,…
Xem chi tiết hơn về XSS tại />Broken Authentication And Session Management
Quản lý xác thực và phiên bao gồm tất cả các khía cạnh xử lý xác thực và quản lý
phiên làm việc. Xác thực là một khía cạnh quan trọng của quá trình này, nhưng ngay cả
các cơ chế xác thực vững chắc cũng có thể bị suy yếu do chức năng quản lý có khe hở,
bao gồm thay đổi mật khẩu, ghi nhớ mật khẩu, thay đổi tài khoản và nhiều chức năng
khác. Vì các cuộc tấn công có thể xảy ra với nhiều ứng dụng web nên chức năng quản lý
tài khoản nên yêu cầu xác thực lại ngay cả khi người sử dụng có phiên làm việc hợp lệ.
Một phương pháp xác thực mạnh mẽ hơn là sử dụng phần mềm và phần cứng tuy nhiên
phương pháp này rất tốn kém.
Các ứng dụng web thường phải thiết lập phiên để theo dõi các luồng yêu cầu từ
người dùng, giao thức HTTP không hỗ trợ khả năng này vì vậy các ứng dụng web phải
tự tạo ra nó. Thông thường môi trường ứng dụng web cung cấp khả năng phiên nhưng
nhiều nhà phát triển thích tự họ tạo ra một thẻ phiên của riêng họ. Tuy nhiên, chức năng
ứng dụng liên quan đến quản lý xác thực và phiên làm việc thường thực hiện một cách
chính xác, điều này cho phép kẻ tấn công lấy được mật khẩu, khóa, thẻ phiên hoặc khai
thác lỗ hỏng để thực hiện các giả mạo danh tính người dùng.
DDoS

DDoS là gì?
DDoS (Distributed Denial of Service) là sự cố gắng làm cho tài nguyên của một
máy tính không thể sử dụng được nhằm vào những người dùng của nó. Mặc dù
phương tiện để tiến hành, động cơ, mục tiêu của tấn công từ chối dịch vụ là khác
nhau, nhưng nói chung nó gồm có sự phối hợp, sự cố gắng ác của một hay nhiều
người để chống lại dịch vụ web vận hành hiệu quả hoặc trong tất cả, tạm thời hay
một cách không xác định. Thủ phạm tấn công từ chối dịch vụ nhằm vào các mục tiêu
SVTH: Lê Cảnh Toàn
Trang 14
GVHD: Ngô Văn Công Thực tập chuyên ngành
site hay server tiêu biểu như ngân hàng, công thanh toán thẻ tín dụng và thậm chí cả
DNS root servers.
Một phương thức tấn công phổ biến kéo theo sự bão hòa máy mục tiêu với các
yêu cầu liên lạc bên ngoài, đến mức nó không thể đáp ứng truyền tin hợp pháp hoặc
đáp ứng quá chậm. Trong điều kiện chung, các cuộc tấn công DDoS buộc máy mục
tiêu khởi động lại hoặc tiêu thụ hết tài nguyên của nó đến mức nó không cung cấp
dịch vụ, hoặc làm tắc nghẽn liên lạc giữa người sử dụng mà máy nạn nhân.
Tấn công từ chối dịch vụ là sự vi phạm chính sách sử dụng Internet của IAB
(Internet Architecture Board) và những người vị phạm hiển nhiên vi phạm luật dân
sự.
Nguy cơ bị tấn công DDoS của hệ thống mạng hiện nay
Tấn công từ chối dịch vụ là một trong những kiểu tấn công “cổ điển” nhưng
chưa bao giờ mất đi tính nguy hiểm đối với hệ thống mạng. Theo công ty Arbor
Network các cuộc tấn công DDoS đã tăng 1.000% kể từ năm 2005.
DDoS trở thành hình thức tấn công phổ biến từ cuối những năm 90 của thế kỉ
trước. Hoạt động này bắt nguồn từ khi một số chuyên gia bảo mật trong quá trình
phát hiện khiếm khuyết hệ thống trên Windows 98, nhân ra rằng chỉ cần gửi một gói
ping đủ lớn cũng đủ để làm tê liệt một server mục tiêu. Ngay lập tức, các hacker đã
sử dụng cách này để triệt tiêu các mục tiêu của họ.
Tại Việt Nam, một số nhóm hacker cũng đã cài đặt virus xâm nhập vào hệ

thống mạng, đánh cắp thông tin nội bộ của các tổ chức. Chúng còn kiểm soát các
website chuyên download phần mềm nhằm cài đặt virus vào những máy truy cập vào
trang này để xây dựng mạng botnet và tấn công DDoS vào các hệ thống lớn trong
nước. Từ cuối tháng 11/2005 cộng đồng mạng xôn xao khi diễn đàn hacker lớn nhất
Việt Nam – HVA trở thành mục tiêu của DDoS. Tiếp ngay sau đó, website của các
công ty tin học như Trần Anh, Mai Hoàng,… cũng liên tục bị tấn công DDoS dai
dẳng gần 10 ngày.
Đầu tháng 10/2008 các trang web như 5giay, nhatnghe liên tục bị DDoS, ngay
cả website của công ty bảo mật Bkav cũng bị tấn
SVTH: Lê Cảnh Toàn
Trang 15
GVHD: Ngô Văn Công Thực tập chuyên ngành
công vào 8/10/2008.
Bản chất của DDoS là không thể khống chế mà chỉ có thể giảm thiểu cường độ
tấn công.
Các cuộc tấn công DDoS nổi tiếng trong lịch sử:
• Năm 2000, một loạt các website nổi tiếng như Yahoo, eBay, Amazon, CNN
trở thành nạn nhân của DDoS.
• Ngày 15/8/2003, Microsoft chịu đợt tấn công DDoS cực mạnh và làm gián
đoạn website trong vòng giờ.
• Tháng 2/2007, hơn 10.000 máy chủ game trực truyến như Return to Castle
Wolfenstein, Counter-Strike,…bị tấn công DDoS.
• Ngày 3/3/2011, dịch vụ blog nổi tiếng thế giới bị tấn công DDoS.
• Ngày 4/3/2011, 40 trang web của các cơ quan chính phủ Hàn Quốc bị tê liệt
vì DdoS.
Nhận diện tấn công DDoS
Tuy tấn công DDoS có rất nhiểu cách và phương tiện khác nhau nhưng chúng ta
có thể nhận biết được DDoS qua một số dấu hiệu sau:
• Mạng thực thi chậm khác thường khi mở tập tin hay truy cập website.
• Không thể dùng một website cụ thể.

• Không thể truy cập bất kì website nào.
• Tăng lượng thư rác nhận được.
SVTH: Lê Cảnh Toàn
Trang 16
GVHD: Ngô Văn Công Thực tập chuyên ngành
PHẦN 3: TÌM HIỂU CÁC GIẢI PHÁP BẢO MẬT
Sao lưu toàn bộ website theo định kì
Điều đầu tiên và cũng là quan trọng nhất đó là bạn phải thường xuyên sao lưu toàn
bộ website (bao gồm cả thư mục chưa Joomla và cơ sở dữ liệu MySQL). Hãy lập lịch ít
nhất một lần trong tuần (khuyến cáo là một ngày một lần) để thực hiện sao lưu. Bạn sẽ
mất rất nhiều công sức và tiền của khi website bị tấn công nhưng chỉ mất vài phút hoặc
vài chục phút để khôi phục toàn bộ website. Việc sao lưu website khá dễ dàng và có thể
thực hiện bằng nhiều cách khác nhau. Sao lưu có thể thực hiện bằng cách vào Cpanel ->
Backup rồi sao lưu. Nếu dữ liệu không quá lớn có thể thực hiện theo cách này chỉ với
thao tác nhấp chuột. Nhưng nếu dữ liệu của bạn quá lớn để sao lưu tự động thì phải sao
lưu từng dữ liệu riêng biệt. Trong trường hợp này cần phài biết website bao gồm những
dữ liệu nào, dữ liệu nào cần sao lưu, dữ liệu nào không. Thông thường, website bao gồm
các file và cơ sở dữ liệu của nó, vì thế phải sao lưu nó để phòng trường hợp website có
trục trặc và bạn có thể phục hồi lại trạng thái ban đầu lúc website còn hoạt động tốt.
Sao lưu và phục hồi các file
Để sao lưu các file, một cách khá đơn giản và nhanh chóng đó là sử dụng
chương trình FTP client để tải về tất cả các thư mục và file trong thư mục gốc của
website (thường là public_html hoặc htdocs). Sau đó bạn có thể dễ dàng upload các
file và thư mục đã tải về đó lên lại thư mục public_html (hoặc htdocs) và website
của bạn sẽ được phục hồi.
Sao lưu và phục hổi cơ sở dữ liệu
Để sao lưu và phục hồi cơ sở dữ liệu, có thể sử dụng phpMyAdmin có sẵn
trong Cpanel. Sau khi vào phpMyAdmin thực hiện các bước sau để sao lưu cơ sở dữ
liệu:
• Chọn cơ sở dữ liệu cần sao lưu.

• Nhấn Export
• Chọn định dạng của file export (nén hoặc không nén)
SVTH: Lê Cảnh Toàn
Trang 17
GVHD: Ngô Văn Công Thực tập chuyên ngành
• Nhấn nút Go để export database
Để phục restore database ta cũng vào phpMyAdmin rồi thực hiện các bước sau:
• Chọn cơ sở dữ liệu
• Nhấn Import
• Chọn file cơ sở dữ liệu đã export trước đó
• Nhấn nút Go để khôi phục cơ sở dữ liệu
Công việc sao lưu và phục hồi website thực hiện khá nhanh, chỉ mất vài chục phút
là bạn có thể sao lưu toàn bộ website của bạn. Và cũng chỉ mất vài chục phút để bạn có
thể phục hồi website về trạng thái ban đầu nếu như có trục trặc. Vì vậy, hãy nhớ backup
website thường xuyên để tiết kiệm thời gian, tiền bạc và đảm bảo cho website hoạt động
liên tục, hiệu quả.
CHMOD các file và folder trên web server
CHMOD – viết tắt của Change Mode, đây là lệnh dùng để thay đổi thuộc tính của
File và Folder trong hệ điều hành Unix (Linux, Solaris, True64,…). Bằng cách thay đổi
CHMOD bạn đồng thời gán một quyền lực cho một người nào đó đối với các tập tin,
thư mục trong cấu trúc website của bạn.
Trên các máy chủ sử dụng Unix, Linux,…người dùng được chia làm ba nhóm:
• Owuner: Chủ nhân trực tiếp tạo ra các tập tin, thư mục.
• Group: Nhóm thành viên được đăng kí để quản lý hoặc sử dụng.
• Other/Public/World: Những người khác (không thuộc các nhóm trên).
Các nhóm được tạo ra trong quá trình cài đặt và sử dụng website. Khi người dùng
đăng nhập vào website nó sẽ xác định xem người đó thuộc về nhóm nào. Sau khi xác
định nhóm, người dùng sẽ được gán quyền hạn nhất định đối với tập tin, thư mục nhất
định nào đó. Cụ thể người dùng sẽ được Read (đọc), Write (ghi), Execute (thực thi) tập
tin và thư mục.

SVTH: Lê Cảnh Toàn
Trang 18
GVHD: Ngô Văn Công Thực tập chuyên ngành
Để xác định quyền hạn cho các nhóm nhất định, thống nhất sử dụng kí hiệu bằng
các con số sau:
4 = Read (quyền được đọc)
2 = Write (quyền được ghi)
1 = Execute (quyền được thực thi)
Bằng phép cộng đơn giản các con số này có thể hiển thị được cả một tổ hợp các
quyền hạn khác nhau.
Ví dụ:
3 = 2 + 1: Write và Execute
5 = 4 + 1 : Read và Execute
6 = 4 + 2 : Read và Write
7 = 4 + 2 + 1 : Read, Write và Execute
Tóm lại có tất cả 7 phương án sau:
7 = Read, Write và Execute
6 = Read và Write
5 = Read và Execute
4 = Read
3 = Write và Execute
2 = Write
1 = Execute
Kí hiệu lệnh CHMOD thường có 3 con số, con số đầu tiên thể hiện quền hạn gán
cho người dùng thuộc nhóm Owner. Con số thứ hai thể hiện quyền hạn gán cho người
dùng thuộc nhóm Group và con số thứ ba thể hiện quyền hạn gán cho người dùng thuộc
nhóm Other.
Ví dụ: 754 có nghĩa là Owner – Read, Write và Execute, Group – Read và
Execute, Other – Read.
Trong phần lớn các chương trình FTP đều hỗ trợ CHMOD theo kiểu nêu trên.

Ngoài ra, lệnh CHMOD còn có chế độ các kí hiệu chữ, trong trường hợp sử dụng
kí hiệu chữ chúng ta dùng các kí hiệu sau:
SVTH: Lê Cảnh Toàn
Trang 19
GVHD: Ngô Văn Công Thực tập chuyên ngành
• ‘-’ : Không được cấp quyền
• ‘d’ : Kí hiệu Directory (file/folder)
• ‘r’ : Read
• ‘w’ : Write
• ‘x’ : Execute
Ví dụ: drwxr-xr-x : Có nghĩa là Owner – Read, Write và Execute; Group – Read và
Execute: Other/Public/World – Read và Execute. Kí hiệu này tương đương với 755.
Sau đây là một số cách CHMOD:
• Đối với chương trình FTP FileZilla Client: Trong cửa sổ bên phần địa
chỉ máy mạng, chuột phải vào thư mục hoặc file cần thiết lập quyền rồi
chọn “Quyền truy cập các tệp tin…” để thiết lập quyền.
• Đối với File Management trong Cpanel: Chọn Online File Manager ->
Chọn file/thư mục cần CHMOD -> ấn Chmod
SVTH: Lê Cảnh Toàn
Trang 20
GVHD: Ngô Văn Công Thực tập chuyên ngành
Bảo vệ website với file .htaccess
Cũng như bất kì một phần mềm nào khác, webserver có những cấu hình nhất định.
Song bạn, một người thuê host có thể không có quyền thay đổi cấu hình này thông qua
những file chính yếu, có tác dụng với tất cả các file nằm trên server. Điều đó không có
nghĩa là bạn phụ thuộc hoàn toàn vào cấu hình mặc định của máy chủ. Apache cho phép
bạn thay đổi một số tùy chọn, và tùy chọn này chỉ có hiệu lực với site của bạn. Để làm
được việc này ta cần dùng đến file .htaccess.
Đây là file hiệu chỉnh rất uyển chuyển của server Apache. Thông qua nó bạn có
thể thay đổi nhiều tùy chọn được xác định trong file httpd.conf (httpd.conf là file cấu

hình chính của Apache và có hiệu lực trên toàn bộ server).
Bạn không thể đọc được nội dung file .htaccess qua trình duyệt web. Nếu file này
nằm ở thư mục gốc, những thay đổi được nó xác định có hiệu lực với toàn bộ site (ngoại
trừ những thư mục có file .htaccess khác và tất cả các thư mục con nằm trong thư mục
này).
SVTH: Lê Cảnh Toàn
Trang 21
GVHD: Ngô Văn Công Thực tập chuyên ngành
Để tạo file ta dùng bất kì chương trình editor nào rồi lưu lại với tên .htaccess, lúc
lưu nhớ chọn All files ở Save as file type để windows không thêm phần mở rộng vào
đuôi file. Sau khi tạo xong ta upload lên thư mục /htdocs của website.
Dưới đây là một số cách cấu hình file .htaccess để bảo mật website
Duy trì băng thông
Để tăng hiệu năng trên các máy chủ có kích hoạt PHP thêm đoạn sau vào file
.htaccess :
Chống hotlink
Nhiều người copy ảnh từ website của bạn đưa lên trang web của họ mà hình
ảnh đó không phải của họ. Nói cách khác, đâu là cách sử dụng trái phép làm suy
yếu băng thông của bạn. Để ngăn chặn việc này bạn thêm đoạn sau vào file
.htaccess :
Tắt chữ kí máy chủ
Bằng cách không tiết lộ thông tin về máy chủ, bạn sẽ làm cho tin tặc khó tấn
công website của bạn hơn. Để tắt chữ kí số của máy chủ chúng ta thêm đoạn sau vào
file .htaccess :
Ngăn ngừa truy cập tới file .htaccess
Bảo vệ chống truy cập file .htaccess sẽ tránh không cho tin tắc truy cập vào file
này và thay đổi cấu hình trong đó để tấn công vào website của bạn. Một thông báo
SVTH: Lê Cảnh Toàn
Trang 22
GVHD: Ngô Văn Công Thực tập chuyên ngành

lỗi 403 sẽ hiện lên khi có ai đó cố gắng truy cập vào file .htaccess khi không có
quyền. CHMOD 644 cho file này là cách hiệu quả để chống truy cập trái phép. Để
bảo vệ file này bằng chính nó, bạn thêm đoạn sau vào file .htaccess:
Ngăn ngừa truy cập tới một file bất kì
Thông thường để bảo vệ một file bạn có thể sử dụng cách CHMOD 644 cho
file đó, tuy nhiên có cách khác nữa đó là dùng .htaccess. Để ngăn ngừa truy cập tới
một file nào đó bạn thêm đoạn sau vào file .htaccess và chỉ cần thay thế example.php
bằng file mà bạn muốn bảo vệ:
Ngăn ngừa truy cập tới nhiều kiểu file
Để hạn chế truy cập tới một loạt các loạn file khác nhau bạn thêm đoạn sau vào
file và thay đổi loại file mà bạn muốn bảo vệ:
Bảo vệ file hoặc thư mục bằng mật khẩu
Khi bạn muốn đặt mật khẩu truy cập một file hoặc thư mục nào đó bạn có thể
dùng .htaccess để làm việc này.
Đầu tiên chúng ta phải tạo một file .htpassword. Để tại file này thì bạn dùng
một trình editer bất kì rồi lưu file, lúc lưu chọn All files rồi đặt tên file .htpassword.
Chúng ta sẽ tạo file .htpassword với nội dung sau:
Để tạo được mật khẩu mã hóa bạn vào trang này:
SVTH: Lê Cảnh Toàn
Trang 23
GVHD: Ngô Văn Công Thực tập chuyên ngành
/>Nhập ten_dang_nhap và mật khẩu cần mã hóa rồi ấn vào nút Create
.htpassword file để tạo file .htpassword.
Ví dụ: ten_dang_nhap: canhtoan, password: 123456 thì sẽ được file
.htpassword là:
Upload file .htaccess lên thư mục /htdocs của website
Sau đó ta thêm các đoạn tương ứng sau vào file .htaccess:
• Bảo vệ bằng mật khẩu cho một file:
• Thay thế example.php và /www.mysite.com/htdocs/.htaccess bằng tên file
và đường dẫn tới file .htpassword của bạn.

• Dùng FilesMatch để bảo vệ nhiều file cùng lúc
• Bảo vệ thư mục
SVTH: Lê Cảnh Toàn
Trang 24
GVHD: Ngô Văn Công Thực tập chuyên ngành
CHMOD file
Bạn có thể dùng .htaccess để tự động CHMOD nhiều loại file khác nhau. Để
làm điều này, bạn thêm đoạn sau vào file .htaccess:

Giới hạn kích thước file để bảo vệ chống tấn công từ chối dịch vụ (DoS)
Nếu website của bạn cho phép người dùng upload file thì bạn nên giới hạn kích
thước tối đa file upload để ngăn ngừa hacker lợi dụng điều này tấn công DoS
website của bạn. Để giới hạn kích thước file upload lên bạn thêm đoạn sau vào
file .htaccess:
Sử dụng chức thực bằng cookie
Sử dụng chứng thực bằng cookie ngăn chặn mọi truy cập trực tiếp tới vùng quản
trị website bằng đường dẫn /administrator
(vd: Thay vào đó phải truy cập qua
một đường dẫn gián tiếp mà chỉ mình bạn biết (vd:
/>SVTH: Lê Cảnh Toàn
Trang 25

×