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
Trang 1BỘ 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
MSSV : 50131657
Trang 2MỤ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
Trang 3Jhackguard 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
Trang 4
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Trang 5
LỜI MỞ ĐẦU
Trang 6Bả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
Trang 7Vì 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
Trang 8NỘ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%)
Trang 9Cá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
Trang 102 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
Trang 11lỗ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.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
Trang 12như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
Trang 131.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ư:
http://www.vidu.com/search.cgi?query=<script>alert(‘Có 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 để
Trang 14lạ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 http://www.cgisecurity.com/xss-faq.html
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
Trang 15site 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
Trang 16cô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
Trang 17PHẦ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)
Trang 18• 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
Trang 19Để 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
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:
Trang 20• ‘-’ : Không được cấp quyền
• ‘d’ : Kí hiệu Directory (file/folder)
• Đố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
Trang 21Bả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)
Trang 22Để 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