Bảo mật web server
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO THỰC TẬP BẢO MẬT WEB SERVER Đơn vị thực tập:
Công ty TNHH Dịch vụ tổng hợp & công nghệ Phúc Bình
Trang 2MỤC LỤC
CHMOD cùng lúc thay đổi quyền hạn trên các file/thư mục với các đối tượng sau: 4 CHMOD = 644 cho các tệp (file) có nghĩa là: 5
1 Thiết lập firewall mềm: 9
LỜI MỞ ĐẦU
Bảo mật luôn là vấn đề rất quan trọng trong mọi lĩnh vực kinh tế, chính trị, quân sự, ngoại giao Và đây cũng là một vấn đề đã được nghiên cứu trong hàng nghìn năm nay Các nhà quản trị luôn phải đau đầu, lo lắng tìm các phương pháp để bảo vệ máy chủ web và an toàn thông tin cho toàn bộ hệ thống Xuất phát từ những suy nghĩ như vậy nên em đã quyết định chọn đề tài: “Bảo mật web server” Trong bài báo cáo này em tập trung tìm hiểu những phương thức tấn công của hacker và một số biện pháp bảo mật cho web server Nội dung báo cáo chia làm 3 chương:
o CHƯƠNG I : KHÁI NIỆM VỀ CHMOD
o CHƯƠNG II: MỘT SỐ PHƯƠNG THỨC TẤN CÔNG HACKER
Trang 3o CHƯƠNG III: NHỮNG GIẢI PHÁP CẦN THIẾT BẢO MẬT CHO WEB SERVER
Vì thời gian có hạn cũng như còn hạn chế về kiến thức nên báo cáo của em khó tránh khỏi thiếu sót Em rất mong nhận được sự đóng góp ý kiến của thầy cô giáo và bạn bè
Với lòng biết ơn sâu sắc, em xin chân thành cảm ơn cán bộ Công ty TNHH Dịch vụ tổng hợp & công nghệ Phúc Bình đã nhiệt tình hướng dẫn giúp em hoàn thành báo cáo này
Em xin chân thành cảm ơn !
Hà Nội, tháng 4 năm 2013
Trang 4CHƯƠNG I: KHÁI NIỆM VỀ CHMOD
1 CHMOD là gì?
CHMOD định nghĩa đơn giản chính là cụm từ viết tắt của Change Mode - Một lệnh đặc biệt chỉ dùng trên các máy chủ hệ Unix (Linux, Solaris, True64 ) dùng để thay đổi quyền lực của một người bất kỳ đối với một tập tin, thư mục bất kỳ trên một website cụ thể Bằng cách thay đổi chmod, bạn đồng thời gán một quyền lực cho một người nào đó đối với các tập tin, thư mục trong cấu trúc website của bạn
Giá trị chmod luôn được biểu thị bằng một cụm gồm 3 chữ số (***) đại diện cho 3 người gồm: User (Owner - Chủ sở hửu) - Group (Nhóm cộng tác) - Other (Guest - Tất cả mọi người còn lại) và gồm các giá trị gồm 1 (Execute - Thực thi), 2 (Write - Ghi), 4 (Read - Đọc)
Ví dụ 1: chmod: 124 >>> Chủ sở hửu : 1 - Nhóm cộng tác : 2 - Mọi người : 4
Chủ sở hửu có quyền gọi thực thi tập tin, thư mục
Nhóm cộng tác có quyền ghi nội dung vào tập tin, thư mục
Mọi người có quyền xem nội dung tập tin, thư mục
Ví dụ 2: chmod: 412 >>> Chủ sở hửu : 4 - Nhóm cộng tác : 1 - Mọi người : 2
Chủ sở hửu có quyền xem nội dung tập tin, thư mục
Nhóm cộng tác có quyền gọi thực thi tập tin, thư mục
Mọi người có quyền ghi nội dung vào tập tin, thư mục
CHMOD chính là thao tác thay đổi các quyền sau:
• "Read" (Đọc): viết tắt là "r", và được biểu diễn bằng số 4
• "Write" (Ghi / Chỉnh sửa): viết tắt là "w", và được biểu diễn bằng số 2
• "Execute" (Thực thi): viết tắt là "x", và được biểu diễn bằng số 1
Trang 5CHMOD cùng lúc thay đổi quyền hạn trên các file/thư mục với các đối tượng sau:
• "Owner" - chủ sở hữu của file/thư mục,
• "Group" - Nhóm mà Owner là thành viên,
• "Public / Others/ Everybody": những người còn lại
CHMOD 755 (rwx r-x r-x) cho thư mục
Lưu ý: Khái niệm CHMOD không tồn tại trên hệ thống Windows, mà chỉ có trên các hệ thống Unix/Linux
2 CHMOD 755 và 644:
CHMOD = 755 cho các thư mục có nghĩa là:
• 7 = 4 + 2 + 1 : Người sở hữu thư mục có quyền đọc thư mục (read); chỉnh sửa thư mục (write); liệt kê các thư mục và file bên trong (execute);
• 5 = 4 + 0 + 1 : Những người cùng nhóm chỉ có quyền đọc thư mục (read); liệt kê các thư mục và file bên trong (execute)
Trang 6• 5 = 4 + 0 + 1 : Những người còn lại chỉ có quyền đọc thư mục (read); liệt kê các thư mục và file bên trong (execute)
CHMOD 755 (rwx r-x r-x) cho thư mục
CHMOD = 644 cho các tệp (file) có nghĩa là:
• 6 = 4 + 2 + 0 : Người sở hữu thư mục có quyền đọc tệp (read); chỉnh sửa tệp (write)
• 4 = 4 + 0 + 0 : Những người cùng nhóm chỉ có quyền đọc tệp (read)
• 4 = 4 + 0 + 0 : Những người còn lại chỉ có quyền đọc tệp (read)
Trang 7CHMOD 644 (rw- r r ) cho file
Trang 8CHƯƠNG II: MỘT SỐ PHƯƠNG THỨC TẤN CÔNG
HACKER THƯỜNG DÙNG
Sau đây là một phương thức tấn công hacker thường dùng nhất:
• Local attacking
• SQL-injection
• Tấn công từ chối dịch vụ (DOS)
1 SQL injection:
SQL injection là một kĩ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng trong việc kiểm tra dữ liệu nhập trong các ứng dụng web và các thông báo lỗi của hệ quản trị cơ sở dữ liệu để "tiêm vào" (inject) và thi hành các câu lệnh SQL bất hợp pháp (không được người phát triển ứng dụng lường trước) Hậu quả của nó rất tai hại vì
nó cho phép những kẻ tấn công có thể thực hiện các thao tác xóa, hiệu chỉnh, … do
có toàn quyền trên cơ sở dữ liệu của ứng dụng, thậm chí là server mà ứng dụng đó đang chạy Lỗi này thường xảy ra trên các ứng dụng web có dữ liệu được quản lí bằng các hệ quản trị cơ sở dữ liệu như SQL Server, MySQL, Oracle, DB2, Sysbase
2 Local attacking:
• Local Attack- tấn công nội bộ từ bên trong, là một khái niệm xuất hiện từ khi các máy chủ mạnh lên trong thời gian gần đây, để hiểu rõ khái niệm, chúng ta
sẽ lấy một số ví dụ:
Vào thập niên trước, các máy chủ chạy web(web server) có cấu hình chỉ ở mức trung bình và chỉ có thể đảm nhiệm việc gồng gánh một hoặc 2,3 trang web cùng tồn tại Theo thời gian, cấu hình các máy chủ ngày càng mạnh hơn,
Trang 9tốc độ bộ vi xử lý và các công nghệ phân luồng, đa nhân, xử lý song song; đồng bộ với sự phát triển của phần cứng là phần mềm hệ thống và web server software ngày càng được viết chuyên biệt để xử lý đa tác vụ Chính nhờ sự phát triển đó, một máy chủ ngày nay(có thể là chiếc PC của bạn) có thể đặt được nhiều website trên đó, ví dụ như PC của bạn có thể đặt 3 trang web: của lớp bạn, của bạn gái bạn và 1 blog của bạn Và cũng chính nhờ vậy, mà 1 công nghệ khai thác lỗi mới ra đời? Nó mang tên local attack -tấn công từ nội bộ
• Ví dụ ta cần tấn công site mục site1.com, nhưng sau khi phân tích tình hình
thì thấy rằng việc tấn công trực tiếp site này là rất khó Và cũng qua khảo sát
ta biết được rằng trên
server này có rất nhiều site khác Ý tưởng : tấn công một site khác cùng server sau đó lấy site này làm bàn đạp tấn công site mục tiêu.
3 Tấn công từ chối dịch vụ DOS:
DoS (Denial of Service) có thể mô tả như hành động ngăn cản những người dùng hợp pháp của một dịch vụ nào đó truy cập và sử dụng dịch vụ đó Nó bao gồm cả việc làm tràn ngập mạng, làm mất kết nối với dịch vụ… mà mục đích cuối cùng là làm cho server không thể đáp ứng được các yêu cầu sử dụng dịch vụ từ các client
DoS có thể làm ngưng hoạt động của một máy tính, một mạng nội bộ, thậm chí cả một hệ thống mạng rất lớn Thực chất của DoS là kẻ tấn công sẽ chiếm dụng một lượng lớn tài nguyên mạng như băng thông, bộ nhớ… và làm mất khả năng xử lý các yêu cầu dịch vụ đến từ các client khác
Trang 10CHƯƠNG III: NHỮNG GIẢI PHÁP CẦN THIẾT BẢO
MẬT CHO WEB SERVER
1 Thiết lập firewall mềm:
Là những Firewall được cài đặt trên Server
Đặc điểm của filewall mềm:
• Tính linh hoạt cao: Có thể thêm, bớt các quy tắc, các chức năng
• Firewall mềm hoạt động ở tầng cao hơn Firewall cứng (tầng ứng dụng)
• Firewal mềm có thể kiểm tra được nội dung của gói tin (thông qua các từ khóa)
• Ví dụ về Firewall mềm: Zone Alarm, Norton Firewall…
2 Sử dụng mod_security:
Trang 112.1 Giới thiệu về Mod_security
Mod_Security là một bộ máy phát hiện và phòng chống xâm nhập dành cho các ứng dụng web (hoặc 1 web application firewall) Hoạt động như một module của máy chủ web Apache, mục đích của ModSecurity là tăng cường bảo mật cho các ứng dụng web, bảo vệ chúng khỏi các loại tấn công đã biết
và chưa biết Modsecurity có thể :
• Theo dõi HTTP traffic để phát hiện những dấu hiệu bất thường.
• Lọc các dữ liệu ra vào webserver.
• Ghi lại các tương tác giữa client và webserver.
2.2 Cài đặt và cấu hình
Để cài đặt được Mod_Security thì đầu tiên chúng ta sẽ download bộ nguồn từ trang chủ của nó là http://www.modsecurity.org/download/ :
1 wget
http://www.modsecurity.org/download/modsecurity-apache_2.5.11.tar.gz
2 tar -xf modsecurity-apache_2.5.11.tar.gz
3 cd modsecurity-apache_2.5.11/apache2
Bước tiếp theo chúng ta sẽ đi cài các gói cần thiết phục vụ cho mod_security:
yum install httpd-devel pcre pcre-devel libxml2 libxml2-devel
Sau khi cài đặt các gói tin cần thiết xong thì sẽ biên dịch nó:
Trang 123 make install
Đồng thời ta sẽ thêm module này vào apache bằng cách mở file cấu hình apache (/etc/httpd/conf/httpd.conf ) và thêm vào dòng sau:
modules/mod_security2.so
Đến bước này thì chúng ta đã hoàn thành việc cài đặt mod_security và chuyển sang việc cấu hình cho nó Đầu tiên cấu hình file có tên
là modsec.conf tại /etc/httpd/conf.d/ với nội dung như sau:
1 <IfModule security2_module>
2 # Turn on rule engine and set default
action
3 SecRuleEngine On
4 SecDefaultAction "phase:2,deny,log,status:403"
5 </IfModule>
Với nội dung này chúng ta chỉ mới bật tính năng lọc của mod_security, ta phải
thêm vào các tập luật cho nó.Và bước cuối cùng là khởi động lại apache:
/etc/init.d/httpd restart
Cách cấu hình mod_security để hạn chế các cuộc tấn công cơ bản
•Chống lại kiểu tấn công thực thi các lệnh:
SecFilter /etc/password
SecFilter /bin/ls
•Chống lại kiểu tấn công Directory traversal
SecFilter "\.\./"
•Lọc các kí tự hay dùng trong shell code
SecFilterForceByteRange 32 126
•Hạn chế sqlinjection attack
Trang 13SecFilter "delete[[:space:]]+from"
SecFilter "insert[[:space:]]+into"
SecFilter "select.+from"
•Phát hiện xâm nhập
SecFilterSelective OUTPUT "Volume Serial Number"
SecFilterSelective OUTPUT "Command completed"
SecFilterSelective OUTPUT "Bad command or filename"
SecFilterSelective OUTPUT "file(s) copied"
SecFilterSelective OUTPUT "Index of /cgi-bin/"
SecFilterSelective OUTPUT ".*uid\=\("
3 Secure Web Server (HTTPS)
Khái niệm https: Là một sự kết hợp giữa giao thức HTTP và giao thức bảo mật
SSL hay TLS cho phép trao đổi thông tin một cách bảo mật trên Internet Các kết nối HTTPS thường được sử dụng cho các giao dịch thanh toán trên World Wide Web và cho các giao dịch nhạy cảm trong các hệ thống thông tin công ty HTTPS được sử dụng trong nhiều tình huống, chẳng hạn như các trang đăng nhập cho ngân hàng, các hình thức, ích đăng nhập công ty, và các ứng dụng khác, trong đó dữ liệu cần phải được an toàn.
Cài đặt và cấu hình SSL
a Add mod ssl
#apt-get install apache2.2-common
Trang 14#a2ensite default-ssl
#/etc/init.d/apache2 restart
b Config SSL
#openssl genrsa -des3 -out server.key 1024
Enter pass phrase for server.key:
#openssl rsa -in server.key -out server.key.insecure
Enter pass phrase for server.key:
#openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key:
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:
Email Address []:
A challenge password []:
An optional company name []:
==> bạn điền đầy đủ thông tin theo yêu cầu.
#openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
c Copy Key (certificate) to /etc/ssl/certs
#cp server.crt /etc/ssl/certs
#cp server.key /etc/ssl/private
==> /etc/init.d/apache2 restart
Trang 15Ta chạy thử https://localhost (https chạy Port 443)
4 Backup (Sao lưu định kỳ)
Để phòng ngừa hệ thống bị trục trặc, bị tấn công ta cần phải backup thường xuyên
và định kỳ để có thể khôi phục hệ thống trước khi bị trục trặc hay bị tấn công.
TÀI LIỆU THAM KHẢO
Trang 16• Hacking Exposed, Stuart McClure, Joel Scambray, George Kurtz
• RFC2617, J.Franks, P Hallam-Baker, J.Hostetler, S Lawrence, P Leach, A.
Luotonen, L Stewart –
06/1999
• http:/ /w w w .s q l s e curity c o m /
• http: / /ww w .ne x tgenss.com/ p ape r s/
• http://ww w o wasp o rg/
• http:/ /w w w .4guysfro m ro l l a com/ w e btech/
• http:/ /w w w .guarde n t co m /
• http://ww w .i d e f e n se co m /
• http://ww w .jmu e d u / c om p u ting / i n fo-se c u r ity/engin e e r i n g / issues/
• http://quantrilinux.vn/forum.php
• http://ww w http://linux.vn/
• http: / / http://www.ubuntu-vn.org/
• http://www.codeproject.com/
Trang 17KẾT LUẬN CHUNG
Các máy chủ Web (Webserver) luôn là những vùng đất màu mỡ cho các hacker tìm kiếm các thông tin giá trị hay gây rối vì một mục đích nào đó Hiểm hoạ có thể là bất cứ cái gì từ kiểu tấn công từ chối dịch vụ, quảng cáo các website có nội dung không lành mạnh, xoá, thay đổi nội dung các file hay phần mềm chứa mã nguy hiểm Hệ điều hành phải được kiện toàn càng chặt chẽ càng tốt, bao gồm việc phòng bị cho những tấn công từ bên ngoài lẫn bên trong, server không được cung cấp bất cứ dịch vụ nào khác ngoại trừ http (80/TCP) hay https(443/TCP), truy cập
từ xa đến server phải được điều khiển bởi tường lửa, thiết bị này chặn trọn bộ những tiếp nối cho lối ra và cho phép những tiếp nối cho lối vào đến cổng 80/TCP của web server mà thôi, server nên giảm thiểu tối đa vấn đề tiết lộ những thông tin của chính server.
Với những phân tích của mình, em mong rằng đã phần nào làm rõ hơn về việc bảo mật web server hiện nay.Tuy nhiên, do trình độ lý luận, hiểu biết về thực tế chưa nhiều, nên vẫn còn nhiều thiếu sót, rất mong được sự thông cảm,góp ý và chỉ dẫn của các thầy và các bạn Để làm tốt đồ án tốt nghiệp sắp tới.
Em xin chân thành cảm ơn!
Trang 18NHẬN XÉT CỦA ĐƠN VỊ THỰC TẬP
Công ty cổ phần đầu tư Cường Thịnh xác nhận cho em: Bùi Vân Nam -
sinh viên lớp IT-214 - Trường Đại học Kinh doanh và Công nghệ Hà Nội có thực tập tại Công ty.
Nhận xét:
Phúc Thọ, ngày … tháng … năm 2013 Giám đốc
Trang 19NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
A Về mặt hình thức chuyên đề:
………
………
………
………
B Về mặt nội dung:
……….
………
………
…………
C Tinh thần, thái độ thực tập:
………
………
………
…………
D Nhứng thiếu sót, hạn chế:
………
………
………
…………
E Điểm của sinh viên đạt: bằng chữ:
………
Trang 20………, Ngày…….tháng……năm………
Giáo viên hướng dẫn