Hacking Security Sites part 15

Chia sẻ: Dqwdasdasd Qwdasdasdasd | Ngày: | Loại File: PDF | Số trang:6

0
54
lượt xem
20
download

Hacking Security Sites part 15

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Thời gian đáp ứng (tính bằng ms = 1/1000 giây) càng nhỏ thì host càng nhanh, bạn nên sử dụng host nhanh nhất. Hacking Security Sites part 15

Chủ đề:
Lưu

Nội dung Text: Hacking Security Sites part 15

  1. chương trình ping thông thường, chương trình này miễn phí. Thời gian đáp ứng (tính bằng ms = 1/1000 giây) càng nhỏ thì host càng nhanh, bạn nên sử dụng host nhanh nhất. Homepage: www.flexiblesoft.com Download: http://www.flexiblesoft.com/downloads/fp.zip (308KB) Để kiểm tra tốc độ của 1 host, bạn click menu Server >> Add (hoặc ấn Insert) gõ domain name hoặc IP của nó vào, VD tôi có thể gõ www.updatesofts.com hoặc 69.61.81.52 (đều là UDS cả) , sau đó click nút hình tia chớp để Ping, trong cột "Anser Time, ms" sẽ hiện lên thời gian trả lời của UDS là 371(ms). Tôi thử tiếp với www.edu.net.vn (site của bộ giáo dục đào tạo) có kết quả là 58ms . Như vậy là edunet nhanh hơn UDS. Muốn kiểm tra tốc độ của nhiều host, tôi ấn nhiều lần Insert rồi add nhiều host vào, sau đó click nút hình 2 tia chớp để Ping tất cả. Tác giả: freewarez (chongthamnhung.com) Kiện Toàn Bảo Mật Cho Apache - Phần 1 Bảo mật Apache: từng bước. Artur Maj Tài liệu này theo dạng chỉ dẫn từng bước cách cài đặt và chỉnh lý Apache 1.3.x web server với mục đích xử lý và phòng tránh các trường hợp đột nhập lúc những yếu điểm của chương trình này được khám phá. Chức năng Trước khi bắt đầu kiện toàn bảo mật Apache, chúng ta phải xác định rõ chức năng cần thiết nào của server sẽ được xử dụng. Tính đa năng của Apache tạo ra những khó khăn để thực hiện một mô thức tổng quát với mục đích kiện toàn bảo mật cho server trong mọi trường hợp có thể được. Ðây là lý do tài liệu này dựa trên các chức năng sau: * Web server có thể truy cập từ Internet; và, * Chỉ những trang HTML tĩnh (static HTML pages) sẽ được phục vụ, * Server hỗ trợ tên miền cho cơ chế dịch vụ ảo, * Các trang web đã ấn định chỉ có thể truy cập từ các cụm IP addresses hoặc người dùng (khai báo căn bản),
  2. * Server sẽ tường trình trọn bộ các thỉnh cầu (bao gồm những thông tin về các web browsers). Ðiều đáng nhấn mạnh ở đây là mô hình trên không hỗ trợ PHP, JSP, CGI hoặc bất cứ công nghệ nào khác có thể tạo cơ hội tương tác đến các dịch vụ Web. Ứng dụng cho những công nghệ trên có thể dẫn đến những đe dọa to lớn cho vấn đề bảo mật, dù chỉ là một đoạn script nhỏ, kín đáo cũng có thể giảm thiểu mức triệt để bảo mật của server. Tại sao? trước hết, các ứng trình ASP/CGI có thể chứa những yếu điểm bảo mật (ví dụ SQL injection, cross-site-scripting). Kế tiếp, chính các kỹ nghệ ấy có thể nguy hiểm (các yếu điểm trong PHP, các module của Perl v..v..). Ðó là lý do tại sao tôi mạnh mẽ đề nghị xử dụng những công nghệ ấy chỉ khi nào nhu cầu tương tác với một web site hoàn toàn cần thiết mà thôi. Lời bàn và mở rộng: Việc kiện toàn bảo mật cho một web server liên quan đến nhiều thủ thuật ở nhiều mức độ khác nhau. Tác giả chuộng nguyên tắc "tối thiểu" để giảm thiểu những lỗ hổng bảo mật có thể hiện diện trên một web server. Lý thuyết mà nói, nguyên tắc này đưa đến những ứng dụng và chỉnh định chặt chẽ hơn cho vấn đề bảo mật. Tuy nhiên, hoạt tính và nhu cầu làm việc của một web server không thể dừng lại ở khuôn khổ "tối thiểu" và bị áp đặt trong giới hạn các trang static HTML được. Thiết kế một chương trình làm việc cho web với yêu cầu đa năng và đa hoạt là một trong những yêu cầu hàng đầu. Một web site chỉ chuyên chú ở khuôn khổ các trang static HTML không những giới hạn tính năng của các trang web này một cách đáng kể, mà còn sa lầy trên mặt thực dụng và giá trị kinh tế lẫn giá thành xây dựng và bảo trì cho website. Giải pháp tối ưu có lẽ là sự cân bằng giữa kiến thức kiện toàn bảo mật cho web server cộng với khả năng thiết kế web một cách khoa học và vững chãi về mặt tính năng, hoạt động lẫn mặt giảm thiểu lỗi thiết kế, lỗi lập trình. Một trong những hạn chế hay đúng hơn là lối mòn thường gặp trong các thiết kế ứng dụng web là việc pha trộn lẫn lộn các phân đoạn làm việc với nhau. Nói một cách khác, các thiết kế gia và các lập trình viên không đầu tư đủ thời gian để nghiên cứu, phân tích và áp dụng các mẫu thiết kế hợp lý cho công trình của mình mà thường đi thẳng vào bước thực hiện. Các bước "đi thẳng" thường thiếu độ chín chắn trong bước thiết kế, dẫn đến tính năng hạn hẹp và mở cửa cho các lỗi bảo mật nghiêm trọng. Trên thực tế, sự khác biệt giữa việc làm cho một web site chạy được và làm cho một web site chạy được, chạy có hiệu xuất, có khả năng mở rộng và bảo đảm mật tính là chuyện khác nhau một trời một vực. Thói quen "xào nấu" các lệnh điều tác cho một hệ điều hành hoặc các lệnh tương tác đến database trực tiếp từ một trang html trần trụi, nhúng các lệnh điều tác vào php, jsp,
  3. asp... là chuyện rất thường gặp. Ðây là một ví dụ điển hình cho cái gọi là "chạy được nhưng thiếu hiệu xuất, thiếu khả năng mở rộng và mở cửa cho các lỗi bảo mật quan trọng". Vì khuôn khổ bài viết không tiện đi sâu vào các mẫu thiết kế cho những ứng dụng web, các bạn nên nghiên cứu thêm về những thiết kế này ở một số URL sau tùy theo công nghệ bạn đang dùng: http://www.object-arts.com/EducationCentre/Overviews/MVC.htm http://www.enode.com/x/markup/tutorial/mvc.html http://www.phppatterns.com/index.php/article/articleview/19/1/1/ http://www.dmbcllc.com/asp_mvc.aspx http://www.jdance.com/jsparchitecture.shtm http://www.redbooks.ibm.com/abstracts/sg245755.html http://www.redbooks.ibm.com/abstracts/sg245754.html Bạn có thể dùng google để search thêm các tài liệu về MVC với keyword: "MVC Pattern" hoặc tham khảo một số tài liệu chuyên ngành từ các website lớn như http://java.sun.comhoặc http://www.ibm.com. Những trù bị bảo mật Một trong những nhân tố quan trọng nhất cho mọi công trình điện toán là việc xác thực các trù bị bảo mật. Ðiều này phải được thoả mãn trước khi công trình được ứng tạo. Các trù bị bảo mật cho web server của chúng ta như sau: * 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), * Truy cập từ xa đến server phải được khiển tác 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, * Web server Apache là dịch vụ duy nhất hiện hữu trên hệ thống, * Chỉ có những modules nào tuyệt đối cần thiết mới được cho phép hoạt động, * Các trang web dùng cho công tác chẩn xét và tự động hoá mục lục phải được tắt bỏ, *
  4. Srver nên giảm thiểu tối đa vấn đề tiết lộ những thông tin của chính server (mật tính qua ẩn tính), * Apache server phải chạy bằng UID/GID riêng biệt (tín chỉ cá nhân, tín chỉ nhóm), không được dùng bất cứ process nào khác của hệ thống, * Các process của Apache phải có giới hạn nhất định đến hệ thư mục (chrooting); và, * Không có bất cứ chương trình dạng shell nào hiện hữu trong môi trường chrooted (/bin/sh, /bin/csh, v..v..). Lời bàn và mở rộng: Một lần nữa tác giả đẩy mạnh tính "tối thiểu". Tuy nhiên, điểm khác biệt trong tính "tối thiểu" ở phần này thuộc bình diện môi trường hơn là giảm thiểu hoạt tính của web server Apache. Bước kiện toàn bằng cách chỉ cho phép port 80/TCP trên server chạy Apache là thao tác căn bản cần phải làm vì nếu tấn công, tin tặc chỉ có một cổng để tấn công và để phòng thủ, người bảo vệ chỉ tập trung đến một cổng. Hơn thế, với cơ chế kiểm soát của tường lửa như tác giả đề nghị, tính bảo mật chắc chắn sẽ được nâng cao. Ở đây tác giả không đề cập một cách cụ thể loại tường lửa nào nên dùng vì quy trình chọn lựa, chỉnh định một tường lửa cho thích hợp phụ thuộc vào nhiều yếu tố khá phức tạp. Ðể mở rộng chi tiết này, tôi tin rằng sự hiện diện của một stateful firewall vừa có khả năng kiểm soát state ở tầng IP vừa có khả năng kiểm soát nội dung ở tầng application là cách tốt nhất. Nếu điều kiện tài chính cho phép, một stateful firewall như CheckPoint FW-1 hoặc Cisco PIX có thể đóng vai trò quan trọng này. Nếu điều kiện tài chính không cho phép, phương pháp tích hợp một số chương trình mở nguồn để đạt được khả năng tương tự vẫn có thể được, tuy nhiên sẽ mất nhiều nhân lực và thời gian hơn để điều chỉnh và thử nghiệm nếu chưa có nhiều kinh nghiệm trong lĩnh vực này. Cài đặt hệ điều hành Trước khi cài đặt Apache, chúng ta phải chọn lấy một hệ điều hành, đó là môi trường Apache sẽ hoạt động. Ở đây chúng ta có khá nhiều chọn lựa vì Apache có thể được biên dịch và cài đặt trên hầu hết các hệ điều hành. Phần còn lại của tài liệu này chỉ dẫn cách bảo mật Apache server trên nền FreeBSD (4.7), tuy nhiên các phương pháp được mô tả ở đây có thể ứng dụng trong hầu hết các hệ điều hành UNIX/LINUX. Chỉ có một hệ điều hành duy nhất tôi không giới thiệu là MS Windows - lý do chính là vì hệ điều hành này bị
  5. giới hạn khả năng kiện toàn bảo mật cho Apache. Bước đầu tiên trong vấn đề bảo mật Web server là kiện toàn hệ điều hành. Các thảo luận kiện toàn hệ điều hành vượt quá khuôn khổ tài liệu này. Tuy vậy, có rất nhiều tài liệu trên Net miêu tả cách thực hiện vấn đề ấy. Ðộc giả được khuyến khích khai phá các vấn đề liên hệ đến phạm vi này. Sau khi hệ thống được cài đặt và kiện toàn, chúng ta cần thêm một nhóm và một người dùng thông thường gọi là "apache" tương tự như thế này (một ví dụ từ FreeBDS): pw groupadd apache pw useradd apache -c "Apache Server" -d /dev/null -g apache -s /sbin/nologin Theo mặc định, các process thuộc Apache chạy với chủ quyền của người dùng nobody (ngoại trừ process chính phải chạy với chủ quyền root) và GID thuộc nhóm nogroup. Ðiều này có thể dẫn đến những đe dọa bảo mật nghiêm trọng. Trong trường hợp đột nhập thành công, tin tặc có thể lấy được quyền truy dụng đến những process khác chạy cùng UID/GID. Bởi thế, giải pháp tối ưu là cho Apache chạy bằng UID/GID từ nhóm riêng biệt, chuyên chú đến software ấy thôi. Lời bàn và mở rộng: Ðối với những ai quen dùng *nix hẳn không lạ gì với khái niệm UID/GID thuộc chế độ "file permission". Tuy nhiên, chi tiết này nên mở rộng một tí cho những bạn đọc chưa quen thuộc với UID/GID. Phần tạo nhóm (group) và người dùng (user) riêng cho Apache ở trên có hai chi tiết cần chú ý là: -d /dev/null: không cho phép user Apache có thư mục $HOME nhưng những user bình thường khác -s /sbin/nologin: không cho user Apache dùng bất cứ một shell nào cả. Có một số trường hợp dùng -s /bin/true thay vì nologin ở trên, true là một lệnh không thực thi gì cả và hoàn toàn vô hại. Lý do không cho phép user Apache có thư mục $HOME và không được cấp một "shell" nào cả vì nếu account Apache này bị nhân nhượng, tin tặc cũng không có cơ hội tiếp cận với system ở mức độ cần thiết cho thủ thuật gia tăng chủ quyền. Trên môi trường *nix nói chung, "shell" là giao diện giữa người dùng và hệ thống, không có shell thì không có cơ hội tiếp cận xa hơn.
  6. Chuẩn bị software[/] Bước kế tiếp là bước tải phiên bản Apache mới nhất từ web site Apache (http://httpd.apache.org). Chỉ có một số chọn lựa tiện ích được phép hoạt động trong quá trình biên dịch mà thôi, bởi thể, quyết định tải mã nguồn về biên dịch thay vì tải bản nhị phân (binary) là điều hết sức quan trọng. Sau khi tải software về, chúng ta phải xả nén. Kế tiếp, chúng ta quyết định modules nào được phép hoạt động. Bản tường trình tổng quan về các modules hiện hữu cho phiên bản mới nhất của Apache 1.3.x (1.3.27 [1]) có ở: http://httpd.apache.org/docs/mod/ [b]Những modules của Apache Chọn lựa các modules là một trong những bước quan trọng nhất trong vấn đề bảo mật Apache. Chúng ta nên theo luật: càng ít càng tốt. Ðể thoả mãn chức năng và những trù bị bảo mật, các modules sau cần được cho phép: Tên module httpd_core: Chứa các chức năng cốt lõi của Apache, cần thiết cho bất cứ Apache nào. mod_access: Cung cấp chế độ khiển tác dựa trên tên máy, địa chỉ IP, hoặc các tính chất yêu cầu thuộc về các clients. Bởi vì module này cần cho các chỉ phối (directive) "order", "allow" và "deny", nó cần được cho phép. mod_auth: Cần thiết để ứng dụng vấn đề khai báo người dùng cho việc sử dụng các hồ sơ nguyên bản (khai báo căn bản cho HTTP), được chỉ định trong chức năng trù bị. mod_dir: Cần thiết để tìm kiếm và phục vụ các hồ sơ thư mục: "index.html", "default.htm", v..v..  
Đồng bộ tài khoản