Tấn công website thường được tin tặc thực hiện bằng cách tạo ra các đoạn mã tự động dò quét lỗ hổng của các website trên Internet nhằm cố gắng khai thác các lỗ hổng phổ biến tồn tại trong các ứng dụng web. Bài viết sẽ đưa ra một số biện pháp chống hack website giúp bạn vận hành website an toàn hơn. Dưới đây là một số biện pháp chống hack website đơn giản mà hiệu quả:
1. Cập nhật thường xuyên
Điều này trông có vẻ hiển nhiên nhưng hãy chắc chắn rằng tất cả ứng dụng của mình đều được cập nhật phiên bản mới nhất, đây là công việc quan trọng giúp website trở nên an toàn. Biện pháp này được áp dụng trên cả hệ điều hành máy chủ hoặc bất cứ ứng dụng nào đang chạy trên website, ví dụ như một hệ quản trị nội dung (CMS) hay một diễn đàn. Khi một lỗ hổng bảo mật được tìm thấy trong ứng dụng, tin tặc luôn biết cách để lợi dụng triệt để chúng. Đây là một mối lo mà bất kỳ quản trị viên nào cũng phải đối mặt. Nếu bạn sử dụng hosting mà website của bạn không được cập nhật thường xuyên, bạn phải nhanh chóng yêu cầu nhà cung cấp dịch vụ để thực hiện.
2. Phòng chống SQL Injection
Tấn công SQL Injection xảy ra khi tin tặc khai thác điểm yếu trong các điểm đầu vào trên website, một tham số trong URL để tấn công và chiếm quyền truy cập, khai thác cơ sở dữ liệu của website. Tin tặc có thể chèn các đoạn Shellcode độc hại nhằm thay đổi, lấy thông tin hoặc xóa dữ liệu trên website. Biện pháp đơn giản để ngăn chặn kiểu tấn công này là kiểm duyệt chặt chẽ các tham số đầu vào. Ví dụ thực hiện truy vấn sau:
"SELECT * FROM table WHERE column = '" + tham_so_tu_url + "';"
Nếu tin tặc thay đổi tham số URL thành ‘ or ‘1’=’1 như sau:
"SELECT * FROM table WHERE column = '' OR '1'='1';"
Do 1 luôn bằng 1 nên câu lệnh cho phép tin tặc thêm vào các đoạn truy vấn SQL ở cuối cùng sẽ được thực thi và làm sai lệch cách xử lý của ứng dụng và làm lộ các thông tin nhạy cảm.
3. Phòng chống tấn công XSS
Tấn công Cross site scripting xảy ra khi tin tặc cố gắng đưa các mã độc JavaScript, VBscript, Flash… hoặc những đoạn mã độc khác trang web nhằm thực thi mã độc với người dùng truy cập website. Để chống hack website cần chắc chắn rằng ứng dụng web đã được kiểm duyệt chặt chẽ các tham số đầu vào cũng như ứng dụng web kiểm soát được các dữ liệu hiển thị trên trình duyệt web.
4. Hạn chế tối đa các thông báo lỗi
Thận trọng với các thông tin trả về của website, đặc biệt là các thông báo lỗi, nó có thể chứa các thông tin nhạy cảm về đường dẫn, dữ liệu RAM, tài khoản…. Ví dụ nếu có một form đăng nhập trên website, người quản trị nên nghĩ về việc sử dụng ngôn ngữ giao tiếp với người dùng trong trường hợp đăng nhập thất bại thay vì hiển thị các thông báo lỗi mặc định.
5. Kiểm duyệt phía máy chủ, kiểm duyệt các form nhập
Kiểm duyệt dữ liệu đầu vào luôn phải được hoàn thành ngay trên trình duyệt và cả phía máy chủ. Trình duyệt web có thể bắt những lỗi đơn giản như để trống trường bắt buộc hay nhập kí tự chữ cái vào trường số điện thoại. Tuy nhiên, tin tặc hoàn toàn có thể qua mặt được các thao tác kiểm duyệt này, cần đảm bảo chắc chắn rằng webiste đã kiểm duyệt được các dữ liệu đầu vào được gửi đến từ người dùng website.
6. Sử dụng mật khẩu an toàn
Mọi người đều biết nên sử dụng mật khẩu phức tạp, nhưng không phải ai cũng làm điều đó. Quản trị website nên sử dụng mật khẩu mạnh cho máy chủ và khu vực quản trị website, kể cả những tài khoản người dùng cũng nên dùng tài khoản mạnh mẽ. Bạn có tin là nếu một máy chủ đặt mật khẩu yếu, máy chủ đó có thể bị hack chỉ “5 phút” sau khi hoàn thành việc cài đặt?
7. Bảo vệ các form File Upload
Các form này cho phép người dùng tải lên các tệp tin, đây có thể là một rủi ro an ninh rất lớn, nếu các form này không được kiểm duyệt, kiểm soát chặt chẽ, tin tặc có thể vượt qua để tài lên các tệp tin độc hại. Đây sẽ là các điểm yếu chết người trên website. Nếu website có một form upload thì form này phải được kiểm duyệt chặt chẽ và kết hợp nhiều yếu tố trước khi ghi file vào ổ cứng của máy chủ. Bao gồm: tên file, phần mở rộng, MIME TYPE, kích thước… Ngoài ra bạn có thể đảm bảo an toàn bằng cách không cho phép thực thi tệp tin trong các thư mục chứa tài liệu upload. Một vài lựa chọn có thể dùng là đổi tên file đã được tải lên nhằm đảm bảo đúng phần mở rộng, hoặc thay đổi quyền của tệp tin, ví dụ chmod 0666 không thể thực thi. Nếu bạn sử dụng máy chủ Apache, bạn có thể tạo một tệp tin .htaccess file như sau:
deny from all
<Files ~ "^\w+\.(gif|jpe?g|png)$">
order deny,allow
allow from all
</Files>
Để chống hack website, giải pháp được khuyến cáo khác là ngăn sự sự truy cập trực tiếp đến các file được tải lên. Theo cách này, bất cứ file nào tải lên website đều được lưu trữ trong một thư mục ngoài webroot hoặc trong cơ sở dữ liệu dưới dạng blob. Nếu tệp tin của bạn không thể truy cập trực tiếp, bạn cần tạo ra một script lấy file từ thư mục riêng (hoặc một HTTP xử lý trong .NET) và chuyển chúng đến trình duyệt. Ngoài ra, nếu có thể hãy đặt cơ sở dữ liệu ở máy chủ khác máy chủ web. Máy chủ cơ sở dữ liệu sẽ không thể truy cập trực tiếp từ bên ngoài, chỉ máy chủ web mới có thể truy cập được nó, giảm thiểu rủi ro rò rỉ dữ liệu. Cuối cùng, đừng quên cách li truy cập vật lí đến máy chủ.
9. Triển khai HTTPs
SSL là một giao thức cung cấp chuẩn an ninh thông qua Internet để mã hóa các dữ liệu được gửi trên đường truyền và chống hack website. Bạn có thể sử dụng HTTPs miễn phí cho website của mình tại đây.
10. Kiểm thử an toàn cho website, máy chủ
Nếu website của bạn đã đảm bảo được 9 yếu tố trên, website của bạn chưa hẳn đã an toàn. Để chống bị hack website bạn nên thực hiện việc kiểm thử độ an toàn website, tìm kiếm các lỗ hổng khác của website. Cách hiệu quả nhất là thông qua một số dịch vụ, các chuyên gia về An toàn thông tin có thể hỗ trợ bạn tìm kiếm các lỗ hổng, hỗ trợ khắc phục và ứng cứu khi có sự cố xảy ra. Tại Việt Nam hiện nay có khá nhiều đơn vị cung cấp các dịch vụ về Kiểm tra, đánh giá bảo mật cho website, máy chủ với giá tiền hợp lý, các dịch vụ này sẽ giúp bạn đảm bảo an toàn tuyệt đối cho website của mình.