Tin tức và phân tích của tất cả các thiết bị di động

8 mẹo cơ bản về cách bảo mật máy chủ ứng dụng web của bạn

Trong hầu hết các trường hợp, máy chủ ứng dụng web phải được truy cập công khai, có nghĩa là chúng phải đối mặt với tất cả các loại mối đe dọa.

Nhiều mối đe dọa trong số này có thể đoán trước và dễ tránh, trong khi những mối đe dọa khác không xác định và có thể làm bạn ngạc nhiên. Để giảm thiểu khả năng xảy ra trường hợp sau, chúng tôi đưa ra danh sách các mẹo cần có về cách giữ cho máy chủ ứng dụng web của bạn an toàn nhất có thể.

Trước khi bắt đầu với danh sách mẹo, bạn cần hiểu rằng máy chủ ứng dụng web không phải là một hòn đảo. Máy chủ là thành phần trung tâm của nhóm ứng dụng web cho phép lưu trữ và bảo trì ứng dụng web. Do đó, để bảo mật, bạn phải xem xét tất cả các thành phần bao quanh nó và bảo mật toàn bộ môi trường ứng dụng web.

Môi trường cơ bản để lưu trữ và chạy các ứng dụng web bao gồm một hệ điều hành (Linux, Windows), phần mềm máy chủ web (Apache, Nginx), máy chủ cơ sở dữ liệu. Nếu bất kỳ thành phần nào trong số này bị tấn công, kẻ tấn công có thể truy cập và thực hiện tất cả các hoạt động độc hại mà chúng muốn.

Mẹo đầu tiên và cơ bản để bảo vệ một môi trường như môi trường được mô tả ở trên là đọc nguyên tắc bảo mật và danh sách phương pháp hay nhất cho từng thành phần. Với ý nghĩ đó, chúng ta hãy xem lại một số nguyên tắc bảo mật thông thường áp dụng cho hầu hết mọi môi trường ứng dụng web.

Đập làm sáng tỏ

Bạn có thể muốn kiểm tra nhanh mục này và nghĩ: “Thật may mắn, tôi đã có tường lửa bảo vệ mạng của mình.” Nhưng bạn tốt hơn nên giữ ngựa của bạn.

Tường lửa có thể trông chừng chu vi mạng của bạn, ngăn chặn kẻ xấu và kẻ tốt, nhưng chắc chắn nó sẽ mở rộng cánh cửa cho những kẻ tấn công đột nhập vào máy chủ ứng dụng web của bạn.

Làm sao?

Đơn giản: Tường lửa ít nhất phải cho phép lưu lượng truy cập đến trên các cổng 80 và 443 (còn gọi là HTTP và HTTPS) và không biết ai hoặc cái gì đang đi qua các cổng đó.

Những gì bạn cần để bảo vệ ứng dụng của mình là Tường lửa ứng dụng web (WAF) phân tích cụ thể lưu lượng truy cập mạng của bạn và chặn mọi nỗ lực khai thác các lỗ hổng như tập lệnh chéo trang hoặc chèn mã. WAF hoạt động giống như một chương trình chống vi-rút và phần mềm độc hại điển hình: nó tìm kiếm các mẫu đã biết trong luồng dữ liệu và chặn chúng khi phát hiện một yêu cầu độc hại.

Để có hiệu quả, WAF phải liên tục cập nhật cơ sở dữ liệu của mình với các mẫu mối đe dọa mới để có thể chặn chúng. Vấn đề với việc ngăn chặn tấn công dựa trên chữ ký là ứng dụng web của bạn có thể là một trong những mục tiêu đầu tiên của mối đe dọa mới mà WAF chưa biết.

Vì những lý do này, một ứng dụng web yêu cầu các lớp bảo vệ bổ sung ngoài tường lửa.

Quét các lỗ hổng mạng

Một lần nữa, đừng nghĩ rằng máy chủ ứng dụng web của bạn không có lỗ hổng bảo mật chỉ vì trình quét bảo mật mạng của bạn cho biết như vậy.

Máy quét mạng không thể phát hiện lỗ hổng ứng dụng. Để phát hiện và loại bỏ các lỗ hổng này, bạn phải đưa ứng dụng của mình vào một loạt thử nghiệm và kiểm tra, chẳng hạn như kiểm tra thâm nhập, quét hộp đen và kiểm tra mã nguồn. Tuy nhiên, không có phương pháp nào trong số này là chống đạn. Tốt nhất là làm càng nhiều càng tốt để loại bỏ mọi khoảng cách.

Ví dụ: các trình quét bảo mật như Invicti đảm bảo rằng không có mã khai thác nào được đưa vào môi trường sản xuất. Nhưng có thể có những lỗ hổng logic chỉ có thể được phát hiện bằng cách kiểm tra mã thủ công. Kiểm toán thủ công, ngoài chi phí cao, là một phương pháp của con người, do đó dễ xảy ra sai sót. Một ý tưởng hay để tiến hành loại kiểm tra này mà không lãng phí nhiều tiền là đưa nó vào quá trình phát triển, chủ yếu thông qua đào tạo dành cho nhà phát triển.

Giáo dục các nhà phát triển của bạn

Các nhà phát triển có xu hướng nghĩ rằng ứng dụng của họ chạy trong thế giới lý tưởng, nơi tài nguyên là vô hạn, người dùng không mắc lỗi và không có người có ý định tàn nhẫn. Thật không may, đến một lúc nào đó họ phải đối mặt với các vấn đề trong thế giới thực, đặc biệt là về bảo mật thông tin.

Khi tạo các ứng dụng web, các nhà phát triển phải biết và triển khai các cơ chế bảo mật để đảm bảo rằng chúng không có lỗ hổng. Các cơ chế bảo mật này phải là một phần của hướng dẫn thực hành tốt nhất mà nhóm phát triển phải tuân theo.

Kiểm toán chất lượng phần mềm được sử dụng để đảm bảo tuân thủ các thông lệ tốt nhất. Các phương pháp hay nhất và kiểm tra là những cách duy nhất để phát hiện các lỗ hổng logic, chẳng hạn như (ví dụ) chuyển các tham số không được mã hóa và hiển thị bên trong một URL mà kẻ tấn công có thể dễ dàng thay đổi để thực hiện những gì hắn muốn.

Vô hiệu hóa chức năng không cần thiết

Giả sử các ứng dụng web không có lỗi nhất có thể và nhóm web được bảo mật, hãy xem có thể làm gì trên chính máy chủ để bảo vệ nó khỏi các cuộc tấn công.

Một mẹo thông thường cơ bản là giảm số lượng điểm vào dễ bị tổn thương. Nếu kẻ tấn công có thể khai thác bất kỳ thành phần nào của máy chủ web, thì toàn bộ máy chủ web có thể bị xâm phạm.

Lập danh sách tất cả các cổng đang mở và các dịch vụ hoặc daemon đang chạy trên máy chủ và đóng, tắt hoặc vô hiệu hóa những cái không cần thiết. Không nên sử dụng máy chủ cho bất kỳ mục đích nào khác ngoài việc chạy các ứng dụng web, vì vậy hãy xem xét chuyển tất cả các chức năng bổ sung sang các máy chủ khác trong mạng của bạn.

Sử dụng các môi trường riêng biệt để phát triển, thử nghiệm và sản xuất

Nhà phát triển và người thử nghiệm cần có quyền trong môi trường mà họ làm việc mà họ không nên có trên máy chủ ứng dụng trực tiếp. Ngay cả khi bạn tin tưởng họ một cách mù quáng, mật khẩu của họ có thể dễ dàng bị rò rỉ và rơi vào tay kẻ xấu.

Ngoài mật khẩu và quyền, môi trường phát triển và thử nghiệm thường chứa cửa hậu, tệp nhật ký, mã nguồn hoặc thông tin gỡ lỗi khác có thể tiết lộ dữ liệu nhạy cảm như tên người dùng cơ sở dữ liệu và mật khẩu. Quá trình triển khai ứng dụng web phải được thực hiện bởi quản trị viên, người phải đảm bảo rằng không có thông tin bí mật nào bị tiết lộ sau khi ứng dụng được cài đặt trên máy chủ trực tiếp.

Khái niệm tách biệt tương tự phải được áp dụng cho dữ liệu ứng dụng. Người thử nghiệm và nhà phát triển luôn thích làm việc với dữ liệu thực, nhưng không nên cấp cho họ quyền truy cập vào cơ sở dữ liệu sản xuất hoặc thậm chí là một bản sao của nó. Ngoài những lo ngại rõ ràng về quyền riêng tư, cơ sở dữ liệu có thể chứa các tham số cấu hình tiết lộ cài đặt máy chủ nội bộ — chẳng hạn như địa chỉ điểm cuối hoặc tên đường dẫn, v.v.

Cập nhật phần mềm máy chủ

Mặc dù điều này có vẻ hiển nhiên, nhưng đây là một trong những nhiệm vụ bị bỏ qua nhiều nhất. SUCURI nhận thấy rằng 59% ứng dụng CMS đã lỗi thời, điều này có nguy cơ xảy ra.

Các mối đe dọa mới xuất hiện hàng ngày và cách duy nhất để ngăn chúng đe dọa máy chủ của bạn là cài đặt các bản vá bảo mật mới nhất.

Chúng tôi đã đề cập trước đó rằng tường lửa và trình quét an ninh mạng không đủ để ngăn chặn các cuộc tấn công vào các ứng dụng web. Tuy nhiên, chúng cần thiết để bảo vệ máy chủ khỏi các mối đe dọa an ninh mạng phổ biến như tấn công DDoS. Vì vậy, hãy đảm bảo rằng các ứng dụng đó luôn được cập nhật và bảo vệ hiệu quả ứng dụng kinh doanh của bạn.

Hạn chế quyền truy cập và quyền

Biện pháp bảo mật chính là giữ lưu lượng truy cập từ xa – chẳng hạn như RDP và SSH – được mã hóa và tạo đường hầm. Bạn cũng nên duy trì một danh sách giới hạn các địa chỉ IP được phép truy cập từ xa, đảm bảo mọi nỗ lực đăng nhập từ xa từ bất kỳ địa chỉ IP nào khác đều bị chặn.

Quản trị viên đôi khi cấp cho tài khoản dịch vụ tất cả các quyền mà họ có thể vì họ biết điều đó sẽ khiến “mọi thứ hoạt động”. Tuy nhiên, đây không phải là một cách làm tốt vì kẻ tấn công có thể khai thác các lỗ hổng của dịch vụ để xâm nhập vào máy chủ. Nếu các dịch vụ này chạy với quyền root, chúng có thể chiếm toàn bộ máy chủ.

Sự cân bằng tốt giữa tính bảo mật và tính thực tế yêu cầu mỗi tài khoản – cả tài khoản đăng nhập và tài khoản dịch vụ – đều có các quyền cần thiết để thực hiện công việc của mình và không có quyền nào khác.

Ví dụ: bạn có thể xác định các tài khoản khác nhau để quản trị viên thực hiện các tác vụ khác nhau: một tài khoản để sao lưu, một tài khoản khác để dọn dẹp tệp nhật ký, một tài khoản khác để thay đổi cấu hình dịch vụ, v.v. Điều tương tự cũng áp dụng cho các tài khoản cơ sở dữ liệu: một ứng dụng thường chỉ cần quyền đọc và ghi dữ liệu, không cần tạo hoặc xóa bảng. Do đó, nó nên chạy với một tài khoản có quyền hạn chế để thực hiện các tác vụ mà nó cần thực hiện.

Theo dõi nhật ký máy chủ

Tệp nhật ký ở đó là có lý do.

Quản trị viên nên thường xuyên theo dõi chúng để phát hiện hành vi đáng ngờ trước khi nó gây ra bất kỳ thiệt hại nào. Bằng cách phân tích các tệp nhật ký, bạn có thể khám phá ra nhiều thông tin sẽ giúp bạn bảo vệ ứng dụng của mình tốt hơn. Nếu một cuộc tấn công xảy ra, các tệp nhật ký có thể hiển thị thời điểm và cách thức cuộc tấn công bắt đầu, giúp kiểm soát thiệt hại tốt hơn.

Bạn cũng cần có một quy trình tự động để xóa các tệp nhật ký cũ hoặc xóa thông tin lỗi thời để ngăn không cho sử dụng hết dung lượng lưu trữ có sẵn trên máy chủ.

Mẹo bổ sung: cập nhật thông tin

Có rất nhiều thông tin miễn phí và hữu ích trên Internet mà bạn có thể sử dụng để mang lại lợi ích cho ứng dụng web của mình. Đừng bỏ lỡ bất kỳ bài đăng mới nào trên các blog bảo mật có uy tín (như blog này) và luôn cập nhật những gì đang diễn ra trong ngành bảo mật và mạng.

Hướng dẫn, khóa học, video và sách cũng là một nguồn kiến ​​thức hữu ích. Thực hành dành một hoặc hai giờ mỗi tuần chỉ để cập nhật tin tức trong ngành – điều này sẽ đảm bảo bạn đang làm đúng để bảo mật ứng dụng của mình.