8 mẹo cần thiết để bảo mật máy chủ ứng dụng web

Trong hầu hết các trường hợp, máy chủ ứng dụng web cần được truy cập công khai, điều đó 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 trong số các mối đe dọa này có thể dự đoán và dễ dàng tránh được, trong khi những mối đe dọa khác là không xác định và có thể khiến bạn mất cảnh giác. Để giảm thiểu khả năng xảy ra trường hợp sau này, chúng tôi cung cấp một danh sách các mẹo cần thiết để giữ cho máy chủ ứng dụng web 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 trong cụm ứng dụng web giúp lưu trữ và vận hành ứng dụng web. Do đó, để bảo mật, bạn phải tính đến 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ột môi trường cơ bản để lưu trữ và chạy các ứng dụng web bao gồm hệ điều hành (Linux, Windows), phần mềm máy chủ web (Apache, Nginx), một 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 nhập, kẻ tấn công có thể có quyền truy cập và thực hiện tất cả các hành độ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ô tả ở trên là đọc hướng dẫn bảo mật và danh sách thực hành tốt nhất cho từng thành phần. Điều đó đang được nói, hãy để Rà soát 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.

Tường lửa phá hủy

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

Tường lửa của bạn có thể chăm sóc biên giới 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 kẻ tấn công phá vỡ máy chủ ứng dụng web của bạn.

Làm sao?

Đơn giản: tường lửa mạng của bạn í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 (đó là HTTP và HTTPS) và không biết ai hoặc những 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 web và chặn mọi nỗ lực khai thác lỗ hổng như tập lệnh chéo trang hoặc tiêm mã. WAF hoạt động giống như một phần mềm chống vi-rút và phần mềm chống virus thông thường: nó tìm kiếm các mẫu đã biết trong luồng dữ liệu và chặn nó khi phát hiện một yêu cầu độc hại.

Để có hiệu quả, WAF cần phải cập nhật cơ sở dữ liệu liên tục với các mẫu mối đe dọa mới, để có thể chặn chúng. Vấn đề với phòng chống tấn công dựa trên mẫu 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 của bạn chưa nhận thức được.

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

Quét các lỗ hổng dành riêng cho web

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

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

Ví dụ: máy quét bảo mật, như Công viên mạng, đả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ó các 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, bên cạnh chi phí rất nhiều, là một phương pháp do con người và do đó dễ bị lỗi. Một ý tưởng tốt để thực hiện loại kiểm toán này mà không lãng phí nhiều tiền là nhúng nó vào quá trình phát triển, chủ yếu bằng cách giáo dục các nhà phát triển của bạ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 các ứng dụng của họ chạy trong thế giới lý tưởng, nơi tài nguyên không giới hạn, người dùng don lồng mắc lỗi và không có người nào có ý định tàn nhẫn. Thật không may, tại một số điểm, họ cần phải đối mặt với các vấn đề trong thế giới thực, đặc biệt là những vấn đề liên quan đến bảo mật thông tin.

Khi phát triển các ứng dụng web, các lập trình viên phải biết và thực hiện các cơ chế bảo mật để đảm bảo nó không bị lỗ hổng. Các cơ chế bảo mật đó 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 thủ.

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. Thực tiễn tốt nhất và kiểm toán là cách duy nhất để phát hiện các lỗ hổng logic, chẳng hạn như (ví dụ) truyền các tham số không được mã hóa và hiển thị bên trong URL, kẻ tấn công có thể dễ dàng thay đổi để thực hiện những gì mình muốn.

Tắt 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à trang trại được bảo mật, hãy để LÊ xem những gì có thể được thực hiện 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 cơ bản, thông thường là giảm số lượng điểm vào dễ bị tấn cô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, toàn bộ máy chủ web có thể gặp nguy hiểm.

Lập danh sách tất cả cổng mở và chạy các dịch vụ hoặc trình tiện ích trên máy chủ của bạn và đóng, tắt hoặc tắt những thứ không cần thiết. Máy chủ không nên được sử dụng cho bất kỳ mục đích nào khác ngoài việc chạy các ứng dụng web của bạn, vì vậy hãy xem xét chuyển tất 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

Các nhà phát triển và người thử nghiệm cần các đặc quyền trên các 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 mù quáng tin tưởng họ, mật khẩu của họ có thể dễ dàng bị rò rỉ và rơi vào tay không mong muốn.

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

Khái niệm phân tách tương tự cần được áp dụng cho dữ liệu ứng dụng. Người kiểm thử và nhà phát triển luôn thích dữ liệu thực để làm việ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à bản sao của dữ liệu đó. Bên cạnh những lo ngại về quyền riêng tư rõ ràng, 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, để đặt tên cho một cặp.

Luôn cập nhật phần mềm máy chủ của bạn

Rõ ràng như nó có vẻ, đây là một trong những nhiệm vụ bị bỏ qua nhất. SUCURI nhận thấy 59% ứng dụng CMS đã lỗi thời, có nguy cơ rủi ro.

Các mối đe dọa mới xuất hiện mỗi ngày và cách duy nhất để ngăn chặn chúng gây nguy hiểm cho máy chủ của bạn là luôn 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à máy 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. Nhưng chúng là cần thiết để bảo vệ máy chủ của bạn khỏi các mối đe dọa an ninh mạng phổ biến, như các cuộc 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à chúng bảo vệ hiệu quả ứng dụng kinh doanh của bạn.

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

Một biện pháp bảo mật cơ bản 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 giữ một danh sách giảm các địa chỉ IP từ nơi cho phép truy cập từ xa, đảm bảo rằng mọi nỗ lực đăng nhập từ xa từ bất kỳ IP nào khác đều bị chặn.

Các quản trị viên thỉnh thoảng cung cấp cho các tài khoản dịch vụ tất cả các đặc quyền có thể bởi vì họ biết rằng, bằng cách đó, mọi thứ sẽ hoạt động. Nhưng đây không phải là một thực tiễn tốt vì những kẻ tấn công có thể sử dụng các lỗ hổng trong các dịch vụ để xâm nhập máy chủ. Nếu các dịch vụ đó chạy với đặc quyền của quản trị viên, họ có thể chiếm giữ toàn bộ máy chủ.

Một sự cân bằng tốt giữa bảo mật và thực tiễn đòi hỏi mỗi tài khoản – cả tài khoản đăng nhập và tài khoản dịch vụ – có 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ó gì 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 nhiệm vụ khác nhau: một để tạo bản sao lưu, một tài khoản khác để xóa các tệp nhật ký, các 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 các quyền để đọc và ghi dữ liệu và không tạo hoặc xóa bảng. Do đó, nó nên chạy với một tài khoản có đặc quyền giới hạn để thực hiện các tác vụ cần thực hiện.

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

Các tệp nhật ký là có lý do.

Quản trị viên nên theo dõi họ thường xuyên để phát hiện bất kỳ hành vi đáng ngờ nào trước khi thực hiện 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á rất nhiều thông tin để giúp bạn bảo vệ ứng dụng 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ể cho bạn biết khi nào và nó bắt đầu như thế nào, giúp kiểm soát thiệt hại tốt hơn.

Bạn cũng phải có quy trình tự động để xóa các tệp nhật ký cũ hoặc cắt bớt thông tin lỗi thời, để ngăn chúng tiêu thụ hết dung lượng lưu trữ có sẵn trong máy chủ.

Tiền thưởng: giữ cho mình thông báo

Có rất nhiều thông tin hữu ích và miễn phí trên Internet mà bạn có thể sử dụng vì lợi ích của ứng dụng web của mình. Donv 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ư bài này) và được thông báo về những gì xảy ra trong ngành bảo mật và web.

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

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map