PDA

View Full Version : Hướng dẫn chi tiết bảo mật tối đa cho website/forum tránh nguy cơ bị Local Attack


admin
07-22-2011, 09:14 AM
->Tut hướng dẫn này ḿnh sưu tầm bên SVIT và thấy rất hữu ích với anh em Webmaster, giúp anh em bảo mật website tốt hơn. Nếu làm tất cả các bước đầy đủ dưới đây + server config tốt th́ sẽ chắc chắn giảm đc 99% nguy cơ bị local attack

Ở đây ḿnh nói là bảo mật cho website chứ ko phải là forum, tức là bạn hăy vận dụng những ǵ ḿnh viết tiếp sau đây cho toàn bộ website của bạn, ko cần biết bạn đang dùng forum hay blog hay .....

Tuy nhiên, do số đông anh em đang xài forum vBulletin nên ḿnh lấy mă nguồn vBulletin coi như làm mẫu.

Bây giờ chúng ta bắt đầu:
Ḿnh sẽ nói sơ qua các bước ta sẽ tiến hành.

1. Thay đổi vị trí file chứa thông tin database (file config.php)
2. Thủ thuật bảo vệ file config.php
3. CHMOD bảo vệ các vùng nằm trong tầm ngắm của Attacker
4. Đổi vị trí AdminCP
5. Bảo vệ vùng AdminCP bằng htaccess
6. Cấu h́nh phân quyền user trên database
7. 1 số lời khuyên

Trước khi tiến hành các bạn hăy kiểm tra lại code của ḿnh đă bị dính shell chưa, v́ nếu dính rồi th́ có làm cách mấy cũng có thể bị attack mà thôi
+ Vào admincp, vào mục Plugin manager xem có plugin nào lạ ko ? Nhất là các Plugin thuộc Product vBulletin( sẽ cập nhật topic khác)
+ Down toàn bộ code về máy, dùng 1 tŕnh antivirus mạnh quét qua code xem có phát hiện ǵ ko ? Ḿnh khuyên dùng Avira 10


1 & 2. Thay đổi vị trí file chứa thông tin database (file config.php) & thủ thuật bảo vệ file này
*Lưu ư: Đối với các bạn dùng mod VbSEO th́ ko nên làm việc thay đổi vị trí file config.php v́ Vbseo có dùng tới file này. việc thay đổi sẽ gây lỗi. Và ḿnh cũng khuyên ko nên dùng VBseo nếu các bạn xài shared host haty VPS v́ nó cức ḱ tiêu tốn tài nguyên server

- Bạn tạo 1 thư mục ngang hàng thư mục includes với tên bất kỳ, thư mục này sẽ chứa file config.php sau này.
Tuy nhiên bạn lưu ư, thư mục mới này ḿnh sẽ tạo tên có dấu # ở đầu. VD, ḿnh tạo thư mục tên là
#skin*Lưu ư: chỉ host linux mới làm đc việc này, c̣n host windows th́ ko. Bạn hăy tạo thư mục này thông qua ftp

Tiếp theo,Bạn mở file includes/class_core.php

T́m:
includes/config.php Thay bằng:
#skin/config.php * Bạn sẽ t́m thấy 3,4 chỗ để thay (bao gồm 2 chỗ là code , 2 chỗ là chú thích)

Giải thích: Tên thư mục có dấu # ở đầu sẽ hạn chế đc rất nhiều nguy cơ attack, v́ sao ?
V́ # là dấu phân cách địa chỉ đặc biệt, Ví dụ:
[Only registered and activated users can see links]
-> tŕnh duyệt sẽ chỉ gửi yêu cầu tới file [Only registered and activated users can see links] và khi trang load xong nó sẽ cuộn thanh cuốn tới thẻ có ID là cntt

Như vậy nếu kẻ nào đó dùng shell đọc file config.php chằng hạn
Nếu theo cách b́nh thường th́ nó sẽ gọi như sau:
[Only registered and activated users can see links]ở đây ḿnh ví dụ với shell c99 , như bạn thấy trong link trên dấu # đă phân cách chuỗi skin ra khỏi link
Vậy link trên sẽ tương đương link sau:
[Only registered and activated users can see links] CHMOD bảo vệ các vùng nằm trong tầm ngắm của Attacker

* Đối với các bạn dùng host cPanel, ḿnh khuyên các bạn CHMOD 400 cho file #skin/config.php , includes/class_core.php
* Đối với các bạn dùng host DirectAdmin, ḿnh khuyên các bạn CHMOD 004 cho file #skin/config.php , includes/class_core.php

Sau khi chmod cho 2 file này xong

* Đối với các bạn dùng host cPanel, ḿnh khuyên các bạn CHMOD 100 cho thư mục #skin và includes
* Đối với các bạn dùng host DirectAdmin, ḿnh khuyên các bạn CHMOD 001 cho thư mục #skin và includes

Đây là 2 mức thấp nhất có thể chấp nhận đối với host. Bạn sẽ ko CHMOD đc qua ftp mà phải CHMOD thông qua hosting controler (DirectAdmin,cPanel ..) Khi CHMOD như vậy chính các bạn cũng ko truy cập đc tới các file và thư mục này, do đó khi muốn chỉnh sửa th́ các bạn hăy chmod lại như ban đầu (file 644, thư mục 755) mới đoc hay backup đc

4. Đổi vị trí AdminCP
Mở file config.php t́m ḍng
$config['Misc']['admincpdir'] = 'admincp'; Thay bằng:
$config['Misc']['admincpdir'] = 'style'; chẳng hạn

SAu đó bạn dùng vào host đổi thư mục admincp thành style

Vậy bây giờ để vào admincp bạn ko vào bằng domain.com/forum/admincp/ nữa mà là domain.com/forum/style/

5. Bảo vệ vùng AdminCP bằng htaccess
Thao tác này dễ thực hiện nhưng rất quan trọng. Ḿnh xin hướng dẫn sơ qua đối với hosting DirectAdmin và cPanel. Nếu anh em nào cần chi tiết hơn reply lại ḿnh sẽ hướng dẫn bằng h́nh ảnh cụ thể.
a. cPanel, các bạn login vào host t́m tới mục Password Protect Directories
b. DirectAdmin, các bạn login vào host t́m tới mục Password Protect Directories và thao tác b́nh thường, ngoài ra trong các folder trong host có chức năng "Protect" để anh em thao tác trực tiếp trên host.

6. Cấu h́nh phân quyền user trên database
Đối với các hệ quản trị CSDL, mỗi user đều được phân cho 1 quyền hạn cố định. Khi tạo user cho database th́ ta cũng phải phân quyền cho nó, phân cho nó có những quyền ǵ trên database này.
Theo thông thường, các bạn thường cho full quyền. Song có 1 số quyền ta ít dùng tới nhưng lại đc Attacker lợi dụng để Drop database. Đó là quyền DROP.
V́ vậy để hạn chế nguy cơ database bị Drop sạch sẽ khi Attacker lấy đc thông tin tài khoản Database ta sẽ bỏ quyền này đi.
a. Đối với host cPanel
Khi Add user vào database các bạn chú ư bỏ quyền DROP bằng cách bỏ dấu tích và save là ok.
b. Đối với DirectAdmin
Login vào host t́m tới mục MSQL Managerment -> Chọn Database muốn phân quyền -> Modify Privileges -> Lựa chọn No trong mục Drop và Save là OK!
7.Một số lời khuyên
+ Khi biết ḿnh có nguy cơ tấn công, hăy nhanh chóng Backup toàn bộ database và các file trên host (Ưu tiên database trước)
Xem thêm các Backup data ko bị lỗi trong các topic khác trên diễn đàn.
+ Thường xuyên backup database, hăy backup ở mức thường xuyên nhất có thể
+ Luôn để 1 bản sao y chang trên host ở máy ḿnh
+ Thường xuyên theo dơi website, log, bảng điều khiển xem có ǵ lạ bất thường ko
+ Hăy giữ Password thật kỹ, tránh để lộ pass và nên thay đổi pass ngay nếu cảm thấy ḿnh có thể đă bị lộ. Nhất là pass email
+ Khi đổi vị trí file config.php bạn ko nên đi chuyển hẳn file config.hp mà hăy để lại includes 1 bản sao file config.php với thông tin database ko đúng. Nếu có thể hăy tạo 1 databse giả và cho vào file config này thông tin của database giả luôn.
+ Những biên pháp ḿnh nêu bên trên chỉ là tương đối, 1 attacker có kiến thức thực sự sẽ biết các vượt qua những ǵ ḿnh nói. Tuy nhiên, đại đa số các attacker deface nạn nhân đều là những bạn tuổi đời c̣n trẻ với khát vọng khám phá và thử nghiệm những ǵ mới biết, kiến thức nắm chưa thật sâu nên giúp bạn có thể an toàn.

Bài viết đă lược bỏ một số chi tiết. Anh em nào c̣n thắc mắc chỗ nào vui ḷng reply lại để ḿnh giải thích rơ hơn.
...

Trích bài viết từ SinhvienIT.Net

migo.vn
07-22-2011, 11:09 AM
cảm ơn thông tin của bạn. rất hay

tuanxa90
08-01-2011, 09:32 PM
mong nhận đc thêm những kinh nghiệm quư báu hơn nữa từ admin
THanks:(6):

admin
08-01-2011, 11:07 PM
mong nhận đc thêm những kinh nghiệm quư báu hơn nữa từ admin
THanks:(6):
Bản thân ḿnh cũng rất mong được học hỏi kinh nghiệm từ nhiều anh em khác. Vấn đề bảo mật là vấn đề muôn thủa :(15):

tuanxa90
08-02-2011, 12:43 AM
OK men rất mong mọi người cùng góp ư kiến giúp forum fat triển mạnh THanks:(66):