Mẹo tăng cường bảo mật Joomla

 Joomla phát triển phổ biến như là một CMS mã nguồn mở, nó ngày càng được nhiều cá nhân và doanh nghiệp sử dụng làm nền tảng cho các sản phẩm và dịch vụ trực tuyến của họ. Trên thực tế, hơn 2.5% các trang web chạy Joomla CMS - đây là mục tiêu tốt để hacker tấn công.

Joomla miễn phí và có tận hơn 8.600 cài đặt mở rộng (extension) cho phép làm được hầu hết những gì bạn muốn trên CMS. Thêm vào đó là một cộng đồng phát triển mạnh mẽ càng giúp bạn thấy rằng đây là một sản phẩm hấp dẫn và cũng hấp dẫn cả các hacker. Vì lý do đó, bạn cần thực hiện một vài việc khi sử dụng nền tảng này để ngăn chặn các cuộc tấn công và tăng cường bảo mật cho CMS của mình.

Cơ sở hạ tầng cài đặt nền tảng này chỉ là một trong các điểm yếu của hệ thống, phần lớn vấn đề bảo mật của nó liên quan tới mã code của Joomla. Hầu hết các vấn đề đều phát sinh từ phiên bản cũ, không được cập nhật bản vá thường xuyên hoặc đôi khi là do các cài đặt mở rộng (extension) của bên thứ ba.

1. Máy chủ và Host

Không có quyết định nào quan trọng bằng việc lựa chọn máy chủ hay host phù hợp. Nhiều vấn đề có thể phát sinh do máy chủ/host chưa được cập nhật bản vá, một số cổng còn mở hoặc bảo mật lưu trữ chia sẻ kém. Ngay kể cả khi máy chủ đã được thiết lập đúng cách nhưng hệ thống vẫn có thể bị tấn công do một website khác lưu trữ cùng trên máy chủ đó có độ an toàn kém. Nếu bạn đang sử dụng một host kém hãy suy nghĩ tới vấn đề đổi nhà cung cấp hoặc tốt nhất là thay hẳn bằng một máy chủ riêng biệt để không gặp các vấn đề về bảo mật chia sẻ.

Hiện nay có một số nhà cung cấp Hosting nổi tiếng và khá an toàn như Brinkster hay Godaddy.

Lưu trữ trang web của bạn trên một máy chủ chạy PHP 5.2 hoặc tốt hơn trong chế độ CGI với Su_PHP. Su_PHP về cơ bản là cho phép việc thực thi kịch bản dưới một tài khoản người dùng cụ thể, trái ngược với tài khoản mặc định của Apache. Điều này giúp bạn dễ dàng xác định và theo dõi các phạm vi bảo mật.

Đảm bảo rằng bạn đang sử dụng phiên bản Apache mới nhất và cấu hình Apache không cho phép duyệt web/lập chỉ mục (browsing/indexing). Các quản lý CNTT cũng cần phải đảm bảo có các thiết lập thích hợp cho vị trí lưu trữ file .htaccessserverconfig và php.ini.

2. Kích hoạt và sử dụng file htaccess

Theo mặc định, các tập tin htaccess không được sử dụng. Hãy chắc chắn rằng bạn đổi tên nó từ .htaccess.txtsang .htaccess, sau đó nó cần phải được đặt trong thư mục gốc của website. Bạn cũng có thể thêm một số quy tắc rewrite cho nó để ngăn chặn khả năng bị khai thác. Bạn có thể tìm thấy hướng dẫn chỉnh sửa các tập tin htaccess tại đây. Điều này sẽ thêm được một lớp bảo vệ bổ xung cho hệ thống.

3. Sử dụng các tài khoản và Permission

Joomla hoạt động tốt ngay từ đầu sau khi cài đặt đúng cách lên máy chủ. Bạn cần thiết lập toàn bộ các file CHMOD sang 644 và các thư mục sang 755. Có một số ngoại lệ cho quy tắc này như file configuration.php sẽ chuyển CHMOD sang 640. Phải đảm bảo là không có gì được thiết lập sang tới 777.

Tên tài khoản quản trị mặc định thường là "admin", bạn phải thay đổi ngay tên tài khoản này. Nó sẽ làm cho hacker khó khăn hơn một chút trong việc tìm kiếm chi tiết tên tài khoản.

4. Sao lưu và xử lý sự cố

Hãy dành thời gian để xem xét đến một kế hoạch xử lý sự cố trước chứ không phải sau khi website của bạn bị hacker ghé thăm. Lập trước các phác thảo những gì sẽ xảy ra nếu bạn trở thành nạn nhân. Phải ghi nhớ: "Backup sớm và thường xuyên". Nếu bước này thực hiện tốt thì áp lực lớn nhất khi website bị tấn công đã không còn, vì dữ liệu là quan trọng nhất thì bạn đã luôn backup rồi. Thực hiện backup hàng ngày hoặc thậm chí -nếu có thể - là hàng giờ để đảm bảo khi khôi phục lại thì website của bạn không có thời gian chết hoặc mất dữ liệu. Khi đã luôn sẵn có một bản backup rồi thì việc cần lo duy nhất khi có vấn đề xảy ra là tìm kiếm lỗ hổng trên website.

5. Quản lý cẩn thận các cài đặt mở rộng (extension)

Phần mở rộng của bên thứ ba chính là thứ khiến Joomla trở nên cực kỳ phổ biến, nhưng nó cũng nhiều lần là con đường để đi vào website của bạn. Mỗi phần mở rộng khác nhau là một đối tượng mà bạn cần cập nhật các bản vá một cách thường xuyên. Đây cũng chính là lý do mà bạn cần xem xét chỉ cài đặt những mở rộng thực sự cần thiết. Bạn nên chắc chắn thực hiện các bước sau:

  • Thực hiện code review cho bất kỳ phần mở rộng nào sử dụng.
  • Chạy một bộ kiểm tra (có rất nhiều trên mạng) và xem xét lại kết quả.
  • Cập nhật và vá lỗi cho phần mở rộng khi cần thiết.

Hãy nhớ rằng, một phần mở rộng không an toàn có thể gây hại cho toàn bộ website của bạn.

6. Xóa bỏ số phiên bản của cài đặt mở rộng

Thông thường, các khai thác thường cụ thể hóa cho một phiên bản nào đó của phần mở rộng, đó là lý do tại sao bạn nên xóa bỏ các thông tin về số phiên bản của bất kỳ phần mở rộng nào được cài đặt. Loại bỏ số phiên bản có thể ngăn chặn một cuộc tấn công trước khi nó xảy ra.

Bạn có thể chỉnh sửa phần mở rộng để nó chỉ hiện thị tên bằng cách sử dụng một công cụ như Dreamweaver. Thực hiện tìm kiếm global và thay thế toàn bộ các thông tin cần thiết trong thư mục chứa các file mở rộng.

7. Gỡ bỏ các tập tin không sử dụng

Bạn cài đặt thử rất nhiều phần mở rộng nhưng không sử dụng đến nó? Đây không chỉ là một điểm yếu mà còn gây rác cho máy chủ của bạn. Hãy xóa bỏ chúng hoàn toàn để tránh phiền phức có thể xảy ra.

8. Bảo vệ mật khẩu

Các cuộc tấn công phổ biến thường nhắm mục tiêu vào mật khẩu yếu. Hãy lập một thói quen tốt: Thường xuyên thay đổi mật khẩu và nó phải đảm bảo đủ 4 yếu tố: chữ hoa, chữ thường, ký tự đặc biệt và số.

Cơ sở dữ liệu (CSDL) của bạn rất quan trọng. Một tấn công SQL injection hay bất kỳ loại tấn công nào khác vào CSDL cũng có thể khiến công sức cả tháng trời của bạn tan biến. Hãy chắc chắn rằng truy cập CSDL của bạn là mật khẩu bảo vệ ở mức MySQL. Hãy thử sử dụng các công cụ như Nikto hoặc Nmap để quét hệ thống, tìm kiếm các khai thác mở và điểm yếu.

Mật khẩu bảo vệ ở phần quản trị Joomla là ở cấp độ thư mục. Mật khẩu này cho thêm một lớp bảo mật bổ xung. Nó thường là tên người dùng và các mật khẩu khác nhau.

9. Thay đổi Prefix bảng mặc định

Phần lớn các tấn công SQL injection thường cố gắng truy cập vào bảng CSDL jos_users. Một khi tin tặc có thể truy cập tập tin này thì họ có được tên tất cả người dùng và mật khẩu tương ứng - bao gồm cả quản trị viên cấp cao. Sử dụng một tên ngắn, ngẫu nhiên để thay thế tên mặc định này giúp ngăn chặn phần lớn các cuộc tấn công CSDL.

Nếu đang dùng Joomla 1.5, bạn có thể sử dụng các thành phần quản trị DB để thực hiện điều này. Nếu đang sử dụng bản 1.6 và không thực hiện thay đổi trong quá trình cài đặt, quá tình này vẫn có thể thực hiện nhưng nó phức tạp hơn một chút.

Trong các phiên bản khác của Joomla, bao gồm cả 1.7, tên bảng ngẫu nhiên được sử dụng trong suốt quá trình cài đặt để chống lại các loại tấn công này.

10. Sử dụng chứng nhận SSL

Sử dụng SSL trên website của bạn cho tất cả các đăng nhập thành viên. Lưu ý là bạn phải có một giấy chứng nhận đúng cấu hình SSL cho tên miền trang web của bạn (chia sẻ chứng nhận SSL sẽ không làm việc).

11. Tắt Joomla FTP Layer

Vô hiệu hóa FTP Layer của Joomla và đảm bảo nó không lưu thông tin đăng nhập của bạn.

12. Tắt Register_globals

Tắt Register_globals, nhưng bạn phải biết rằng việc này có thể gây vô hiệu hóa một số kịch bản làm việc của PHP, và có thể ảnh hưởng đến các chương trình khác mà website của bạn đang sử dụng. Để làm điều này, chỉ cần chỉnh sửa file php.ini của website trong thư mục gốc của tên miền.

13. URL thân thiện cho công cụ tìm kiếm

Luôn luôn sử dụng URL thân thiện với công cụ tìm kiếm. Điều này không chỉ giúp thứ hạng Google của website cải thiện mà còn ngăn chặn hacker khai thác sử dụng kết quả tìm kiếm của Google.

Tài liệu tham khảo:

  • http://www.joomla.org
  • http://secunia.com/advisories/product/5788/~~V
  • http://trends.builtwith.com/cms
  • http://www.opensourcevarsity.com/joomla1-7/joomla17install
  • http://blog.rochenhost.com/2008/09/joomla-security-ever-been-hacked-sorting-fact-from-fiction-some-useful-joomla-hosting-tips-including-some-you-might-now-know/
  • http://www.siteground.com/tutorials/joomla15/joomla_security.htm
  • http://docs.joomla.org/Vulnerable_Extensions_List
  • http://docs.joomla.org/Category:Security_Checklist
  • http://en.wikipedia.org/wiki/Joomla
  • http://www.securelive.net/~~V
  • http://www.howtojoomla.net/how-tos/security/joomla-security-primer

 

  • 722 Khách hàng đánh giá tốt
Bài viết này có hữu ích?

Related Articles

Fix lỗi imagejpeg() [function.imagejpeg]: Unable to open joomla

Chào các bạn. Sau khi chuyển host cho joomla hoặc 1 số mã nguồn khác có thể dẫn đến lỗi...

Cấu hình SMTP với Joomla (sử dụng gmail)

Hàm mail() của PHP khi gởi mail không cần chứng thực SMTP (khi gởi mail không cần khai báo địa...

Bảo mật Joomla

Bài viết này xin cung cấp cho bạn một loạt các thủ thuật để tăng cường bảo mật cho Website...