01-13-2020, 09:10 AM
Apache Web Server thường là thành phần tương tác trực tiếp với người dùng do đó nó trở thành một trong những dịch vụ dễ bị tổn thương nhất để tấn công. Với việc sử dụng cấu hình mặc định cung cấp nhiều thông tin nhạy cảm có thể giúp hacker chuẩn bị cho một cuộc tấn công máy chủ web.Phần lớn các cuộc tấn công ứng dụng web thường được sử dụng thông qua tấn công XSS, rò rỉ thông tin (Info Leakage), Quản lý Phiên(Session Management) và các cuộc tấn công PHP Injection do mã lập trình yếu kém và cơ sở hạ tầng ứng dụng web không đủ đáp ứng. Theo hãng bảo mật Cenzic, 96% ứng dụng được thử nghiệm có lỗ hổng.
1. Tránh rò rỉ thông tin (Information Leakage)
Trong cấu hình mặc định của Apache sẽ có nhiều chứa thông tin nhạy cảm, có thể được sử dụng để chuẩn bị cho một cuộc tấn công. Đây là một trong những nhiệm vụ quan trọng nhất để quản trị viên hiểu và bảo mật chúng.
1.1 Gỡ bỏ thông tin về version và banner
Việc để lộ phiên bản máy chủ web đang sử dụng có nghĩa đang giúp hacker đẩy nhanh tiến trình rà quét truy cập. Cấu hình mặc định sẽ hiển thị phiên bản Apache và hệ điều hành sử dụng như hình bên dưới.
Thực hiện cấu hình trong file httpd.conf và khởi động lại apache
ServerSignature Off
ServerTokens Prod
Kết quả sau khi cấu hình:
>>> Xem thêm: bán dell t30
1.2 Vô hiệu hoá danh sách thư mục trên web
Vô hiệu hoá danh sách thư mục trong một trình duyệt để khi người dùng truy cập sẽ không nhìn thấy tất cả các tập tin và thư mục bạn có trong thư mục gốc hoặc thư mục con. Với việc sử dụng cấu hình mặc định khi truy cập vào localhost/test
Cấu hình trong file httpd.conf chỉnh tham số Options bằng None hoặc –Indexes và khởi động lại apache
Options None
Hoặc
Options –Indexes
Kết quả:
- Multiviews: hỗ trợ hiển thị nội dung tương ứng khi website hỗ trợ đa ngôn ngữ.
- ExecCGI: thực hiện các script có trong thư mục /cgi-bin.
- FollowSymLinks & SymLinksIfOwnerMatch: khuyến cáo không nên sử dụng disable nếu có thể. Vì viêc sử dụng symbolic link sẽ tăng rủi ro vị tấn công bằng việc attack sử dụng symbolic link để truy cập những nội dung ngoài của document root web server, attack cũng có kết hợp với lỗ hổng bảo mật để tạo ra một link không đúng.
- Includes & IncludesNOEXEC: IncludesNOEXEC chỉ nên sử dụng khi server có những yêu cầu cần thiết. Includes không nên sử dụng vì option này cũng có khả năng cho phép thực hiện câu lệnh shell.
1.3 Etags
Cho phép những kẻ tấn công từ xa có được thông tin nhạy cảm như số inode, đa biên MIME, và tiến trình con thông qua tiêu đề Etag. Để ngăn chặn lỗ hổng này, thực hiện thiết lập như bên dưới dể khắc phục sự cố theo yêu cầu PCI.
Thiết lập:
Cấu hình trong file httpd.conf chỉnh tham số FileTag và khởi động lại apache
FileTag None
Kết quả:
>>> Xem thêm: bán dell t40
2. Phân quyền truy cập (Authorization)
2.1 Chạy ứng dụng Apache với user không có đặc quyền trong hệ thống (non-privileged account)
Mặc định cấu hình apache là chạy với quyền nobody hay daemon. Cách tốt nhất để giảm thiểu việc tấn công là tạo user và group không có đặc quyền cho một ứng dụng, không chạy ứng dụng với user và group "nobody" hoặc "daemon". Thay thế vào đó tạo tài khoản chỉ được sử dụng bởi apache và không có quyền được truy cập vào các service khác có trên hệ thống. Ngoài ra UID của user này không được sử dụng bởi các user thông thường tức là user apache nằm trong khoảng từ 1-999 đối với hệ thống systemD và từ 1-499 đối với hệ thống systemV hoặc upstart.
Thiết lập:
1. Nếu apache user và group không tồn tại, tạo tài khoản hệ thống cho user apache:
# groupadd -r apache
# useradd apache -r -g apache -d /var/www -s /sbin/nologin
2. Cấu hình Apache user và group trong file cấu hình apache httpd.conf:
User apache
Group apache
3. Khởi động lại Apache
Kiểm tra:
2.2 Khóa tài khoản user apache
Tài khoản apache nên bị khóa để ngăn chặn user bình thường có trong hệ thống có thể su sang user apache bằng việc sử dụng mật khẩu. Tốt nhất là không nên cho bất cứ ai còn thể su sang tài khoản apache. Khi cần thiết thì có thể sử dụng sudo thay thế mà không cần yêu cầu mật khẩu đăng nhập
Thiết lập:
Sử dụng passwd để khóa tài khoản apache:
# passwd -l apache
2.3 Phân quyền thư mục các file và thư mục trong apache
Các file và thư mục trong apache nên được thiết lập giới hạn tối thiểu quyền hạn với các user khác trong hệ thống có thể thay đổi file. Mặc định cấu hình cho các thư mục quyền rwxr-xr-x (755) và file quyền rw--r--r-- (644). Với việc cấu hình cho phép thay đổi nội dung dữ liệu có thể sẽ dẫn đến việc bị chèn thêm file hoặc phần mềm độc hại vào trong hệ thống.
Thiết lập:
Thực hiện lệnh sau để bỏ quyền ghi cho các file trong thưc mục apache:
# chown -R 750 $web_server
>>> Xem thêm: Dell EMC Powervault ME4
1. Tránh rò rỉ thông tin (Information Leakage)
Trong cấu hình mặc định của Apache sẽ có nhiều chứa thông tin nhạy cảm, có thể được sử dụng để chuẩn bị cho một cuộc tấn công. Đây là một trong những nhiệm vụ quan trọng nhất để quản trị viên hiểu và bảo mật chúng.
1.1 Gỡ bỏ thông tin về version và banner
Việc để lộ phiên bản máy chủ web đang sử dụng có nghĩa đang giúp hacker đẩy nhanh tiến trình rà quét truy cập. Cấu hình mặc định sẽ hiển thị phiên bản Apache và hệ điều hành sử dụng như hình bên dưới.
Thực hiện cấu hình trong file httpd.conf và khởi động lại apache
ServerSignature Off
ServerTokens Prod
Kết quả sau khi cấu hình:
>>> Xem thêm: bán dell t30
1.2 Vô hiệu hoá danh sách thư mục trên web
Vô hiệu hoá danh sách thư mục trong một trình duyệt để khi người dùng truy cập sẽ không nhìn thấy tất cả các tập tin và thư mục bạn có trong thư mục gốc hoặc thư mục con. Với việc sử dụng cấu hình mặc định khi truy cập vào localhost/test
Cấu hình trong file httpd.conf chỉnh tham số Options bằng None hoặc –Indexes và khởi động lại apache
Options None
Hoặc
Options –Indexes
Kết quả:
- Multiviews: hỗ trợ hiển thị nội dung tương ứng khi website hỗ trợ đa ngôn ngữ.
- ExecCGI: thực hiện các script có trong thư mục /cgi-bin.
- FollowSymLinks & SymLinksIfOwnerMatch: khuyến cáo không nên sử dụng disable nếu có thể. Vì viêc sử dụng symbolic link sẽ tăng rủi ro vị tấn công bằng việc attack sử dụng symbolic link để truy cập những nội dung ngoài của document root web server, attack cũng có kết hợp với lỗ hổng bảo mật để tạo ra một link không đúng.
- Includes & IncludesNOEXEC: IncludesNOEXEC chỉ nên sử dụng khi server có những yêu cầu cần thiết. Includes không nên sử dụng vì option này cũng có khả năng cho phép thực hiện câu lệnh shell.
1.3 Etags
Cho phép những kẻ tấn công từ xa có được thông tin nhạy cảm như số inode, đa biên MIME, và tiến trình con thông qua tiêu đề Etag. Để ngăn chặn lỗ hổng này, thực hiện thiết lập như bên dưới dể khắc phục sự cố theo yêu cầu PCI.
Thiết lập:
Cấu hình trong file httpd.conf chỉnh tham số FileTag và khởi động lại apache
FileTag None
Kết quả:
>>> Xem thêm: bán dell t40
2. Phân quyền truy cập (Authorization)
2.1 Chạy ứng dụng Apache với user không có đặc quyền trong hệ thống (non-privileged account)
Mặc định cấu hình apache là chạy với quyền nobody hay daemon. Cách tốt nhất để giảm thiểu việc tấn công là tạo user và group không có đặc quyền cho một ứng dụng, không chạy ứng dụng với user và group "nobody" hoặc "daemon". Thay thế vào đó tạo tài khoản chỉ được sử dụng bởi apache và không có quyền được truy cập vào các service khác có trên hệ thống. Ngoài ra UID của user này không được sử dụng bởi các user thông thường tức là user apache nằm trong khoảng từ 1-999 đối với hệ thống systemD và từ 1-499 đối với hệ thống systemV hoặc upstart.
Thiết lập:
1. Nếu apache user và group không tồn tại, tạo tài khoản hệ thống cho user apache:
# groupadd -r apache
# useradd apache -r -g apache -d /var/www -s /sbin/nologin
2. Cấu hình Apache user và group trong file cấu hình apache httpd.conf:
User apache
Group apache
3. Khởi động lại Apache
Kiểm tra:
2.2 Khóa tài khoản user apache
Tài khoản apache nên bị khóa để ngăn chặn user bình thường có trong hệ thống có thể su sang user apache bằng việc sử dụng mật khẩu. Tốt nhất là không nên cho bất cứ ai còn thể su sang tài khoản apache. Khi cần thiết thì có thể sử dụng sudo thay thế mà không cần yêu cầu mật khẩu đăng nhập
Thiết lập:
Sử dụng passwd để khóa tài khoản apache:
# passwd -l apache
2.3 Phân quyền thư mục các file và thư mục trong apache
Các file và thư mục trong apache nên được thiết lập giới hạn tối thiểu quyền hạn với các user khác trong hệ thống có thể thay đổi file. Mặc định cấu hình cho các thư mục quyền rwxr-xr-x (755) và file quyền rw--r--r-- (644). Với việc cấu hình cho phép thay đổi nội dung dữ liệu có thể sẽ dẫn đến việc bị chèn thêm file hoặc phần mềm độc hại vào trong hệ thống.
Thiết lập:
Thực hiện lệnh sau để bỏ quyền ghi cho các file trong thưc mục apache:
# chown -R 750 $web_server
>>> Xem thêm: Dell EMC Powervault ME4