Bảo mật cho website của bạn - cấu hình website - chống local attack

Bảo mật cho website của bạn - cấu hình website - chống local attack

Với 1 site, file config gần như là file quan trọng nhất, nó nắm giữ toàn bộ thông tin cơ sở dữ liệu, chính vì vậy, bảo vệ nó là mục đích mà webmaster nào cũng làm đầu tiên và nó cũng là mục đích mà các attacker hay nhắm tới.
14009/10

Bảo mật - Bảo mật ứng dụng web

Bảo mật cho website của bạn - cấu hình website - chống local attack

Với 1 site, file config gần như là file quan trọng nhất, nó nắm giữ toàn bộ thông tin cơ sở dữ liệu, chính vì vậy, bảo vệ nó là mục đích mà webmaster nào cũng làm đầu tiên và nó cũng là mục đích mà các attacker hay nhắm tới.

Hôm nay mình xin phép chia sẻ với anh em một vài kinh nghiệm bảo mật website của mình để anh em cũng thảo luận ra cách thức bảo mật tốt nhất cho site của mình và ở đây mình chú trọng đến việc chống local  bài viết đc viết dưới góc độ là 1 user host trên server, ở đây mình ko bàn đến vấn đề là config server ra sao nhé. :) hacking và bảo mật luôn đi kèm với nhau, vì vậy trong bài viết mình cũng đưa vào 1 số trick nhỏ để mọi người hiểu rõ hơn 

1. Phân quyền - thao tác nắm giữ 80%

Với 1 website, file cấu hình kết nối CSDL gần như là file quan trọng nhất, nó nắm giữ toàn bộ thông tin cơ sở dữ liệu, chính vì vậy, bảo vệ nó là mục đích mà webmaster nào cũng làm đầu tiên và nó cũng là mục đích mà các attacker hay nhắm tới.

Mình đã đọc một số bài viết về bảo mật vbb, thấy mọi người hay nói rằng zend hay mã hóa nó lại là yên tâm. Nhưng thực tế mà nói, dù có zend thì chẳng có tác dụng là mấy.  Bài sau, mình sẽ hướng dẫn các bạn cách dezend các loại.

Vậy theo mình nghĩ, các bạn thực sự cần chú ý đến phân quyền hơn là đi mắc công ngồi zend hay encode. Và theo mình ở đây, file config các bạn có thể CHMOD  0404 (tùy từng servert) cho file config, tức là ở đây ta set quyền cho chỉ host của mình có quyền đọc file config của ta.

Tiếp đó, chúng ta CHMOD 0501 cho tất cả các thư mục và 0644 cho tất cả file còn lại. (Website có 1000 file, config bằng tay kiểu này sẽ .. die -> Hôm sau mình sẽ viết đoạn code chmod tự động

Tuy nhiên, đó chưa phải là tất cả, tùy theo server mà việc chmod 0501 làm website có chạy được hay không lại là chuyện khác. shell mà đã đính kèm trong bộ source thì thì ... có chạy đường giời cũng chết!

2. Cấp quyền cho user - Xin đừng set full quyền

Mình đọc hầu hết những bài về hướng dẫn làm diễn đàn vbb, đến đoạn tạo user cho database, mọi người đều hướng dẫn là add all quyền cho user, nhưng thực sự có phải như vậy?

Giả sử bạn gây thù chuốc oán với 1 ai đó, làm cho người ta căm ghét tận xương tận tủy, và 1 khi người ta đã có shell trên server, connect đc vào db của bạn, haizz, db của bạn ra đi. Vậy để ngăn chặn việc đó, ta phải làm thế nào? Theo mình là khi các bạn add quyền cho user quản lí database bạn nên bỏ qua quyền DROP của user nếu ko muốn chỉ 1 lần quên backup mà site bạn ra đi. Tất nhiên là nhớ bỏ quyền DROP sau khi bạn restore data nhé, vì theo mình thấy 1 số tools backup khi restore db vẫn yêu cầu có quyền DROP tables đấy :D

Giống như thế, khi bạn quản lí site cũng như vậy, hãy làm sao để attacker chui vào được site bạn cũng chưa chắc đã làm được gì, điều này thực hiện được khi bạn có chế độ phần quyền cho user trong site hợp lí.

3. Link thực. link ảo - Vấn đề cho symlink

Phương pháp mà các attacker hay sử dụng khi local là symlink, vậy thì chống local hữu hiệu nhất là chống symlink.

Việc tìm đc user của 1 site trên server đã đc nhiều bạn đặt ra, và cũng đã có những phương pháp đọc error_log để tìm user.

Đầu tiên ta hãy xét đến trường hợp hệ thống config tốt, làm cho attacker không có khả năng đọc đc error_log, vậy thì việc bạn đặt đc 1 đường dẫn hợp lí cho site của bạn cũng sẽ giảm 1 phần đáng kể trong việc attack site của bạn.

Ví dụ, mình có 2 domain abc.combcd.com, mình muốn tạo 1 site chạy dưới tên miền bcd.com, mình sẽ đăng kí 1 gói host bằng tên miền abc.com =>> như vậy thông thường đường dẫn đến user của mình sẽ là

/home/abc/public_html/

Bây giờ chúng ta vào HostCP, addon thêm cái domain bcd.com với đường dẫn:

/home/abc/public_html/m/r/p/1/n/3/ =>>> bcd.com

Như vậy là site của chúng ta sẽ nằm dưới đường dẫn /home/abc/public_html/m/r/p/1/n/3/ , nếu ko đọc đc error_log thì để kiếm đc cái đường dẫn này cũng khá vất vả đấy kiss

Trong trường hợp server config ko tốt, làm cho attacker đọc đc file error_log thì theo mình bạn vẫn nên đặt đường dẫn khó đoán cho site của mình, bên cạnh đó có thể kết hợp với file .htaccess để tạo trang báo lỗi 404, 500, 403 .... theo ý mình và chống ghi error_log
Ví dụ:

ErrorDocument 400 /errors/badrequest.html
ErrorDocument 401 /errors/authreqd.html
ErrorDocument 403 /errors/forbid.html
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/serverr.html

4. Thường xuyên kiểm tra soucer và db

Đôi khi, attacker đã chiếm đc quyền điều khiển trên site của ta nhưng lại ko báo cho ta hoặc tạm thời chưa làm gì manh động, vì vậy ta cũng cần kiểm tra một cách thường xuyên mã nguồn của site, đặc biệt là những file nhạy cảm và dễ lợi dụng như config, login, global, index, orders ... đây là những file mà attacker hay lợi dụng để chèn keyloger hay chèn code send mail như mình hay đề cập đến. Nếu phát hiện có sự bất thường trong những file này thì bạn phải ngay lập tức thay file mới ngay.

Bên cạnh đó kiểm tra và backup database thường xuyên cũng làm giảm nguy cơ trên. bạn có thể search trong db với từ khóa include, base64 hay mail để kiểm tra attacker có chèn mã độc hay shell vào db của bạn hay ko, nếu phát hiện thì phải lọc ra và del ngay lập tức và thông báo cho toàn bộ thành viên và cá nhân bạn phải đổi pass ngay lập tức. Backup db thường xuyên và định kỳ cũng giúp cho bạn phát triển site đc bền vững hơn :)

Trên đây là những ý kiến của mình trong việc bảo mật cho website, bài viết hơi dài mong mọi người thông cảm vì mình muốn làm kĩ một chút cho mọi người đều hiểu vấn đề. Bên cạnh những phương pháp bảo mật này, bạn còn có thể kết hợp thêm với các câu lệnh htaccess khác để bảo mật hơn cho site của bạn. Và có 1 điều chắc chắn mà bạn nên nhớ là bất cứ hệ thống nào cũng có lỗi, đừng bao giờ tự tin quá mức vào kĩ thuật của mình, vì vậy đừng bao giờ gây thù chuốc oán với để rồi có ngày lại phải hối hận

Còn bạn thì có những phương pháp bảo mật nào, hãy chia sẽ với mọi ngừoi để nâng cao kiến thức của nhau nhé :)

Sưu tầm


Công ty thiết kế website, lập trình phần mềm NEVICOM

Công ty thiết kế website, lập trình phần mềm NEVICOM

Bình luận

Top