tìm hiểu về tấn công ứng dụng web
LỜI MỞ ĐẦU Trong thời đại ngày internet trở nên quen thuộc công cụ hữu ích để đất nước, tổ chức giới thiệu hình ảnh hay đơn giản trang web cá nhân giới thiệu Tất kéo theo phát triển không ngừng ứng dụng web Và khái niệm ứng dụng web trở nên phổ biến Khi mà internet ,ứng dụng web trở lên phổ biến ,ứng dụng cách rộng rãi công ứng dụng web phát triển phức tạp Điều đặt vấn đề cấp thiết cần làm để bào đảm an toàn thông tin cho ứng dụng web, thông tin người sử dụng Các khái niệm chuyên môn ứng dụng web công ứng dụng web dần trở nên phổ biến tài liệu chuyên ngành Các công cụ hỗ trợ người lập trình web, người quản trị mạng xuất giúp tìm kiếm lỗ hổng ứng dụng web không theo kịp phát triển nhanh đến mức chóng mặt theo xu hướng nhanh đẹp ứng dụng web, tất nhiên ngăn chặn hoàn toàn công ứng dụng web, mà công ngày đa dạng khai thác triệt để lỗi ứng dụng web, người quản trị, hay người lập trình ứng dụng web Thống kê cho thấy 75% công internet công ứng dụng web,nó gây thiệt hại vô to lớn, việc tìm hiểu công ứng dụng web cần thiết nhằm có cách phòng chống công bảo mật ứng dụng web hiệu trở thành yêu cầu cấp thiết Do xu tất yếu thời, nên việc tìm hiểu nghiên cứu ứng dụng web giúp ích nhiều cho nhà lập trình web mới, hay quản trị viên kinh nghiệm việc quản trị hệ thống mạng mình, phòng tránh , hay khắc phục lỗi ứng dụng web Đồ án thực nhằm mục đích giới thiệu rõ ứng dụng web nhằm tránh nhầm lẫn đồng thời tìm hiểu công ứng dụng web phổ dụng nhằm có cách phòng chống ,bảo mật cho ứng dụng web hợp lý Lời cảm ơn Em xin cảm ơn khoa an toàn thông tin Học viện kỹ thuật MAatj Mã tạo điều kiện thuận lợi để em hoàn thành báo cáo thực tập Cảm ơn Thầy Vũ Đình Thu thầy khoa an toàn thông tin tận tình hướng dẫn cung cấp tài liệu giúp đỡ em làm báo cáo thực tập CHƯƠNG : TỔNG QUAN VỀ WEBSITE 1.1 XU HƯỚNG PHÁT TRIỂN Các khách hàng quen nhìn nhận phát triển phương tiện truyền thông để mang lại lợi nhuận nhiều thu tiền tệ Nhưng tiến giới web đảm nhận trách nhiệm vai trò Để mang lại mức tăng tham gia nhường đường cho tương tác nhiều hơn, nhiều chương trình dịch vụ cộng đồng mở cửa cho người dân Hiện nhiều dịch vụ cộng đồng Face book, Orkut, Hi5, vv, kết nối người dân cộng đồng Blog diễn đàn có thêm công cụ giúp tốt tảng cho việc tương tác với Sau có Wiki mà làm cho nguồn tài nguyên trực tuyến có sẵn quan trọng cho người dân nói chung Trong cộng đồng phát triển công nghệ web tái phát triển chủ yếu để làm cho chúng thân thiện tương tác Trên mặt trước thiết kế kỹ thuật hai lập trình khoa học có sử dụng để giả mạo sản phẩm cuối lợi ích nhân dân lớn Theo nhiều người số sản phẩm dịch vụ trực tuyến có sẵn miễn phí mở dịch vụ kết thúc Do phát triển cộng đồng web kết hợp tất thay đổi yêu cầu để gở rối web từ giá trị thương mại Các dịch vụ sản phẩm có chủ yếu thiết kế phát triển phép người đến gần tận hưởng lợi ích công nghệ Đó giá trị nhắc đến vào thời điểm mà nhiều tổ chức kinh doanh phát triển sản phẩm, cung cấp dịch vụ để có quan hệ tốt với công chúng Đôi xảy dịch vụ cộng đồng miễn phí trình thay đổi thời gian ưu đãi chịu sắc thương mại 1.2 Khái niệm ứng dụng web(website widget hay web application) Mang tính kỹ thuật nhiều giải thích ứng dụng Web truy vấn máy chủ chứa nội dung (chủ yếu sở liệu lưu trữ nội dung) tạo tài liệu Web động để phục vụ yêu cầu máy khách (chính người dùng website) Tài liệu tạo kiểu định dạng tiêu chuẩn hỗ trợ tất trình duyệt (như HTML, XHTML) JavaScript dạng script clientside cho phép yếu tố động có trang (như thay đổi ảnh lần người dùng di chuột tới) Trình duyệt Web chìa khóa Nó dịch chạy tất script, lệnh… hiển thị trang web nội dung yêu cầu Dưới góc độ chức năng, ứng dụng Web chương trình máy tính cho phép người dùng website đăng nhập, truy vấn vào liệu qua mạng Internet trình duyệt Web yêu thích họ Dữ liệu gửi tới người dùng trình duyệt theo kiểu thông tin động (trong định dạng cụ thể, với HTML dùng CSS) từ ứng dụng Web qua Web Server Để hiểu nghĩa khái niệm sâu vào tìm hiểu tiếp mô hình cấu trúc chức nhiệm vụ ứng dụng web Cấu trúc,chức năng,giao diện&nguyên tắc hoạt động ứng dụng web 1.3.1 Cấu trúc ứng dụng web Mô hình ứng dụng web đơn giản mô hình MVC (Model View - Controller) Tầng Model: chứa code connect tới database,truy vấn thêm xóa sửa liệu Tầng View: chứa code tạo giao diện tương tác với người dùng, liệu vẽ nhu Tầng Controller: chứa code điều khiển dòng liệu (flow control), gắn kết tầng Mode tầng View lại với Ứng dụng chia thành layer tăng tính reuse dễ dàng mở rộng Chẳng hạn muốn ứng dụng truy xuất di dộng, cần tạo tầng view riêng cho di động, tầng model controller không thay dổi Hay muốn thay đổi database, việc dễ dàng hơn, cần ta tạo tầng model mới, phần view controller không bị ảnh hưởng Mô hình thể quan hệ ba lớp ứng dụng web: Hình mô hình tầng ứng dụng web Còn mô hình dịch vụ ứng dụng web: Hình Mô hình dịch vụ ứng dụng web đơn giản Tầng Presentation: dùng để giao tiếp với người dùng, nhiệm vụ hiển thị liệu nhận liệu từ người dùng - Tầng Business Logic: nhiệm vụ cung cấp chức phần mềm - Tầng Data: lưu trữ liệu, cho phép lớp Business Logic tìm kiếm, trích xuất, cập nhật… liệu 1.3.2 Giao diện ứng dụng web Giao diện web đặt giới hạn khả người dùng Thông qua Java, JavaScript, DHTML, Flash công nghệ khác, phương pháp ứng dụng có vẽ hình, chơi nhạc, dùng bàn phím chuột tất thực Những kỹ thuật thông thường kéo thả hỗ trợ công nghệ Những nhà phát triển web thường dùng ngôn ngữ kịch phía người dùng để thêm hiệu tính năng, đặc biệt tạo cảm giác giao tiếp trực quan mà không cần phải tải trang lại (điều mà nhiều người dùng cảm thấy ngắt quãng) Vừa rồi, công nghệ phát triển để phối hợp ngôn ngữ kịch phía người dùng với công nghệ phía máy chủ PHP Ajax, kỹ thuật phát triển web sử dụng kết hợp nhiều công nghệ khác nhau, ví dụ công nghệ tạo ngày nhiều trải nghiệm tương tác 1.3.3 Chức ứng dụng web Ứng dụng web phổ biến nhờ vào có mặt vào nơi đâu chương trình Khả cập nhật bảo trì ứng dụng Web mà phân phối cài đặt phần mềm hàng ngàn máy tính lý cho phổ biến Ứng dụng web dùng để thực Webmail, bán hàng trực tuyến, đấu giá trực tuyến, wiki, diễn đàn thảo luận, Weblog, MMORPG, Hệ quản trị quan hệ khách hàng nhiều chức khác Web kênh bán hàng thông minh cho hàng nghìn tổ chức, doanh nghiệp, lớn có, nhỏ có Với tỷ người dùng Internet ngày (nguồn: Computer Industry Almanac 2006), thương mại điện tử Mỹ sử dụng khoảng 102 tỷ đô la năm 2006 cho giao dịch (nguồn: comScore Networks 2007) Tất liệu cần phải đóng gói, lưu trữ, xử lý truyền vận theo cách đó, sử dụng vào ngày sau Các ứng dụng Web, lĩnh vực đăng ký, đệ trình, truy vấn, đăng nhập, bán hàng hệ thống quản lý nội dung website widget cho phép thực tất công việc mong muốn Web là yếu tố giúp doanh nghiệp tăng cường hình ảnh trực tuyến giới mạng, tạo trì nhiều mối quan hệ đem lại lợi nhuận lâu dài với khách hàng tiềm khách hàng Không nghi ngờ ứng dụng Web trở thành thứ hữu khắp nơi giới Nhưng tính kỹ thuật cao yếu tố tổng hợp phức tạp tự nhiên nên chúng không nhiều người biết đến xác, chí bị hiểu nhầm trầm trọng sống bận rộn ngày Website ngày khác xa so với kiểu đồ họa văn tĩnh kỷ mười chín hay thời kỳ trước Các trang Web đại cho phép người dùng lấy xuống nội dung động cá nhân hóa theo thiết lập tham chiếu riêng Hơn chúng chạy script máy khách, “thay đổi” trình duyệt Internet thành giao diện cho ứng dụng thư điện tử, phần mềm ánh xạ tương tác (Yahoo Mail, Google Maps) Quan trọng website đại cho phép đóng gói, xử lý, lưu trữ truyền tải liệu khách hàng nhạy cảm (như thông tin cá nhân, mã số thẻ tín dụng, thông tin bảo mật xã hội …) dùng dùng định kỳ sau Và, điều thực qua ứng dụng Web Đó thành phần webmail (thư điện tử), trang đăng nhập, chương trình hỗ trợ mẫu yêu cầu sản phẩm hay hoạt động mua bán, hệ thống quản lý nội dung, phát triển website đại, cung cấp cho doanh nghiệp phương tiện cần thiết để liên lạc với khách hàng tương lai khách hàng Nguyên tắc hoạt động ứng dụng web Trong dạng tính toán chủ-khách trước đây, ứng dụng có chương trình khách riêng phục vụ giao diện người dùng phải cài đặt riêng rẽ máy tính cá nhân người dùng Sự nâng cấp phần máy chủ ứng dụng cần nâng cấp tất máy khách cài máy trạm người dùng, thêm vào chi phí hỗ trợ giảm suất Ứng dụng web linh hoạt tạo loạt tài liệu Web định dạng chuẩn hỗ trợ trình duyệt phổ biến HTML/XHTML Ngôn ngữ kịch phía người dùng dạng ngôn ngữ chuẩn JavaScript thường thêm vào để có thêm yếu tố động giao diện người dùng Nói chung, trang Web đơn lẻ gửi tới người dùng tài liệu ổn định, thứ tự trang cung cấp cảm giác trực quan, người dùng nhập vào trả thông qua thành phần mẫu Web nhúng vào đánh dấu trang Trong trình giao dịch đó, trình duyệt Web thông dịch hiển thị trang, hoạt động người dùng chung cho ứng dụng Web Theo mô hinh MVC (Model - View - Controller) Hình Mô tả hoạt động ứng dụng web Các bước hoạt động ứng dụng web đơn giản Bước : Browser tạo HTTP Request gửi tới ứng dụng web bước 2: Controller Struts class ActionServlet bắt request này, phân tích URL nó, dựa vào file struts-config.xml để gửi request tới Action class tương ứng Bước 3: Action class class Struts Framework Ứng dụng chúng tathường extends từ class viết code để sử lý business tương ứng Chẳng hạn ta có LoginAction để xử lý việc user login, logout Bước 4: Action class truy xuất, cập nhật database cần thiết Bước 5: Khi Action class thực việc xử lý business xong, gửi yêu cầu forward/redirect, với liệu (nếu có) controller Bước 6: Controller chuyển control đến trang JSP tương ứng tầng view Nếu trang JSP có sử dụng liệu, controller cung cấp cho (đây liệu mà action tạo đua cho controller Bước 7: Sau trang JSP chuẩn bị xong, Controller tạo HTTP Response gửi cho browser, để browser hiển thị hình 1.3.5 Vấn đề bảo mật ứng dụng web Khi mà ứng dụng web phát triển nhanh mặt, khả ứng dụng cách rộng rãi vấn đề bảo mật cho ứng dụng web trọng Mặc dù phủ nhận cải tiến nâng cao đáng kể nay, vấn đề bảo mật ứng dụng Web không ngừng tăng lên Nguyên nhân xuất phát từ đoạn mã không phù hợp Nhiều điểm yếu nghiêm trọng hay lỗ hổng cho phép hacker xâm nhập thẳng truy cập vào sở liệu tách lấy liệu nhạy cảm Nhiều sở liệu chứa thông tin giá trị (như chi tiết cá nhân, thông tin tài chính) khiến chúng trở thành đích nhắm thường xuyên hầu hết hacker Mặc dù hoạt động công phá hoại website doanh nghiệp diễn thường xuyên, tin tặc thích tăng cường khả truy cập liệu nhạy cảm nằm trình chủ chứa database lợi nhuận khổng lồ từ vụ mua bán liệu đem lại Hình Mô hình hoạt động ứng dụng web Trong khung hoạt động mô tả trên, bạn thấy thật dễ dàng cho hacker truy cập nhanh chóng thông tin nằm sở liệu với chút sáng tạo Nếu may mắn chúng gặp lỗ hổng xuất phát từ cẩu thả hay lỗi người dùng ứng dụng Web Như nói, website phụ thuộc vào sở liệu để phân phối thông tin yêu cầu cho người dùng Nếu ứng dụng Web không an toàn (như có lỗ hổng, gặp phải kiểu kỹ thuật hacking đó), toàn sở liệu chứa thông tin nhạy cảm gặp nguy hiểm nghiệm trọng Một số hacker chèn mã độc hại vào ứng dụng Web có lỗ hổng để lừa đảo người dùng dẫn họ tới website phishing Kỹ thuật gọi Cross-site Scripting, dùng thân Web Server nơi chứa sở liệu lỗ hổng Một nghiên cứu gần 75% công mạng thực mức ứng dụng Web.Website ứng dụng Web liên quan phải sẵn sàng 24/7 để cung cấp dịch vụ theo yêu cầu khách hàng, yêu cầu từ phía nhân viên, nhà cung cấp nhiều người liên quan khác ZF Tường lửa, SSL bảo vệ ứng dụng Web trước hoạt động hacking, đơn giản truy cập vào website phải để chế độ public để ghé thăm website Tất hệ thống sở liệu đại (như Microsoft SQL Server, Oracle, MySQL) truy cập qua số cổng cụ thể (như cổng 80, 443) Nếu muốn, người kết nối trực tiếp tới sở liệu cách hiệu vượt qua chế bảo mật hệ điều hành Các cổng để mở nhằm cho phép liên lạc với hoạt động giao thông mạng hợp pháp, hình thành nên lỗ hổng lớn nguy hiểm Các ứng dụng Web thường truy cập liệu cuối sở liệu khách hàng, điều khiển liệu có giá trị khó để tuyệt đối an toàn Lúc truy cập liệu thường không kèm script cho phép đóng gói truyền tải liệu Nếu hacker nhận điểm yếu script, dễ dàng mở lại lưu lượng sang khu vực khác chia lẻ bất hợp pháp chi tiết cá nhân người dùng, dù không chủ tâm làm điều Hầu hết ứng dụng Web tự tạo, có kiểm tra trình độ so với phần mềm loại Do ứng dụng tùy biến thường dễ bị công Có thể nói ứng dụng Web cổng vào (gateway) sở liệu, ứng dụng tùy biến Chúng không phát triển với mức bảo mật tốt qua kiểm tra bảo mật thông thường Nói chung, bạn cần trả lời câu hỏi: “Phần website nghĩ an toàn lại mở cửa cho công?” “Dữ liệu đem vào ứng dụng khiến thực số điều không nên làm?”.Đó công việc phần mềm rà soát lỗ hổng Web Hiện , hacker có nhiều cách công ứng dụng web từ kĩ thuật kĩ thuật đòi hỏi kĩ thuật công nghệ cao cao Các công cụ(tool) hỗ trợ đời ngày nhiều , hỗ trợ nhiều cho người quản trị mạng , tìm lỗ hổng để có vá lỗi kịp thời đồng thời dao hai lưỡi Hacker dùng tool để phát lỗ hổng ứng dụng web từ có cách công tương ứng vào lỗ hổng gây nhiều tổn thất Vì việc nghiên cứu kĩ thuật công tool nhu cầu tất yếu việc nghiên cứu bảo mật ứng dụng web 1.4 Xu hướng công website – vấn đề hacker Máy tính an ninh mạng trò chơi mèo vờn chuột hồi kết Những kẻ công không giỏi công nghệ mà sâu sắc nhận định xu hướng xã hội để tìm điểm yếu, lỗ hổng khiến nhiều người phải điêu đứng, nhiều tổ chức phải đau đầu Hãy nhìn lại xu hướng an ninh mạng hàng đầu năm để bạn tìm cách bảo vệ máy tính riêng tốt thời gian tới Mục tiêu đe dọa Năm 2010 bắt đầu vụ đại gia Google hàng loạt tên tuổi lớn bị tin tặc công Đây nét mẻ lựa chọn mục tiêu hacker với công cụ loại sâu có tên Stuxnet Gary Egan, giám đốc trung tâm phản hồi an ninh Symantec cho hay:“Có thể thấy Stuxnet mở bước phát triển đáng lo ngại phần mềm độc hại Với mục tiêu công ty công nghệ lớn, thiệt hại giới thực rõ ràng Trên thực tế, tác động trị xã hội loại sâu vượt tầm kiểm soát.” Trò chơi khuôn cát (sandbox) 10 tầm kiểm soát server Nó request gửi từ form liệu URL http://www.example.com/search.cgi?query=alert('XSS was found !'); Và trình duyệt bạn lên thông báo "XSS was found !" Các đoạn mã thẻ script không bị giới hạn chúng hoàn toàn thay file nguồn server khác thông qua thuộc tính src thẻ script Cũng lẽ mà chưa thể lường hết độ nguy hiểm lỗi XSS Nhưng kĩ thuật công khác làm thay đổi liệu nguồn web server (mã nguồn, cấu trúc, sở liệu) XSS gây tổn hại website phía client mà nạn nhân trực tiếp người khách duyệt site Tất nhiên hacker sử dụng kĩ thuật đề deface website công vào bề mặt website Thật vậy, XSS Client-Side Script, đoạn mã chạy trình duyệt phía client XSS không làm ảnh hưởng đến hệ thống website nằm server Mục tiêu công XSS không khác người sử dụng khác website, họ vô tình vào trang có chứa đoạn mã nguy hiểm hacker để lại họ bị chuyển tới website khác, đặt lại homepage, hay nặng mật khẩu, cookie chí máy tính bạn bị cài loại virus, backdoor, worm Cảnh giác với XSS Có lẽ không cần liệt kê nguy hiểm XSS, thực tế bạn có chút hiểu biết XSS bạn sợ chúng Thật bạn hoàn toàn tránh khỏi việc bị công lỗi XSS hiểu kĩ Các thẻ HTML công cụ cho công kĩ thuật XSS, thẻ IMG IFRAME cho phép trình duyệt bạn load thêm website khác lệnh HTML hiển thị Ví dụ BadTrans Worm loại worm sử dụng thẻ IFRAME để lây lan hệ thống có sử dụng Outlook hay Outlook Express: ====_ABC1234567890DEF_==== Content-Type: multipart/alternative; boundary="====_ABC0987654321DEF_====" 74 ====_ABC0987654321DEF_==== Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable ====_ABC0987654321DEF_==== -====_ABC1234567890DEF_==== Content-Type: audio/x-wav; name="filename.ext.ext" Content-Transfer-Encoding: base64 Content-ID: Đôi đọc thư bạn bị chuyển sang website khác, bạn có nghĩ bạn mật Trước đây, hàng loạt hộp thư Yahoo bị mật hay bị đọc trộm thư mà không rõ nguyên nhân Có lẽ bạn mở thư mà không cảnh giác với XSS, đâu phải file đính kèm gây nguy hiểm cho bạn Chỉ cần với đoạn mã HTML gửi thư bạn hoàn toàn bị cookie mình: Vậy bạn nhận thư, bạn vô tình đưa chuột qua ảnh gửi kèm có nghĩa bạn bị lấy cookie Và với cookie lấy được, hacker dễ dàng login hòm thư bạn mà không cần biết mật bạn Thực bất ngờ tìm thấy Yahoo ngăn hầu hết mối đe doạ từ thẻ HTML lại bỏ qua thẻ IMG Tuy nhiên ngày 12/7/2003 Yahoo kịp thời vá lỗ hồng nghiêm trọng này, mà bạn cảnh giác với "lỗi" website Nếu bạn gặp liên kết có dạng: http://example.com/search.cgi? query=alert(document.cookie) chắn bạn phải xem xét kĩ trước click vào Có thể tắt JavaScript cho trình 75 duyệt bạn trước click vào hay có chút cảnh giác Nhưng bạn gặp liên kết : http://example.com/search.cgi?%71%75%65%61%72%79%3D%3C%73%63%72%69%70%74 Đó thực chất liên kết ban đầu khác mã hoá Một phần kí tự liên kết thay mã HEX nó, tất nhiên trình duyệt bạn hiểu địa thực Bởi bạn gặp phải đoạn mã nguy hiểm bạn cảnh giác với XSS Tât nhiên nhiều kiểu công khác, có kiểu tìm có kiều chưa lường hết được, khuôn khổ viết hi vọng với vài ví dụ vừa rồi, bạn hiểu phần XSS Phát XSS cách nào? Nếu bạn sử dụng mã nguồn chương trình có sẵn bạn tham khảo danh sách lỗ hổng chương trình bạn trang web chứa thông tin bảo mật securityfocus.com, securiteam.com, Tuy nhiên website tự viết mã nguồn bạn áp dụng phương pháp Trong trường hợp bạn cần đến chương trình scanner tự động Nếu bạn sử dụng môi trường Windows bạn dùng N-Stealth hay AppScan, chương trình scan tuyệt, bạn không kiểm tra lỗi XSS mà cho phép bạn kiểm tra lỗi khác Website đó, Server Tất nhiên đâu phải lúc bạn cần kiểm tra tất cả, bạn muốn kiểm tra lỗi XSS có website, bạn cần sử dụng screamingCSS Đó Perl Script mở kết nối tới website (sử dụng Perl's socket) để kiểm tra lỗi XSS bạn Hơn bạn sử dụng môi trường Unix lẫn Windows Ngăn ngừa XSS nào? Người ta không lường hết mức độ nguy hiểm XSS không khó khăn để ngăn ngừa XSS Có nhiều cách để giải vấn đề OWASP (The Open Web Application Standard Project) nói để xây dựng website bảo mật cao, liệu người sử dụng bạn nên • • • Chỉ chấp nhận liệu hợp lệ Từ chối nhận liệu hỏng Liên tục kiểm tra lọc liệu 76 Tuy nhiên thực tế, số trường hợp bạn phải chấp nhận loại liệu hay lọc phù hợp Chính bạn phải có cách riêng để giải Một cách hay sử dụng bạn mã hoá kí tự đặc biệt trước in website, gây nguy hiểm cho người sử dụng Trong trường hợp thẻ script đổi thành script Như in hình mà không gây nguy hiểm cho người sử dụng Tôi lấy ví dụ với script search.cgi với mã nguồn là: #!/usr/bin/perl use CGI; my $cgi = CGI->new(); my $query = $cgi->param('query'); print $cgi->header(); print "You entered $query"; Đây hoàn toàn script có lỗi in trực tiếp liệu nhập vào Dĩ nhiên in ra, in dạng đoạn mã HTML, không không in xác liệu vào cách trực quan mà có tiềm ẩn lỗi XSS Như nói trên, để giải vấn đề này, mã hoá kí tự đặc biệt HTML với hàm HTML::Entities::encode() Như ta có mã nguồn hoàn hảo sau: #!/usr/bin/perl use CGI; use HTML::Entities; my $cgi = CGI->new(); my $text = $cgi->param('text'); print $cgi->header(); print "You entered ", HTML::Entities::encode($text); Tất nhiên với phương pháp bạn áp dụng ngôn ngữ Web Application khác (ASP, PHP ) Để kiểm tra việc lọc mã hoá liệu trước in ra, bạn dùng chương trình viết ngôn nhữ PHP, đặc biệt thiết kế để phòng chống lỗi XSS Bạn lấy mã nguồn chương trình từ http://www.mricon.com/html/phpfilter.html Lọc mã hoá liệu cho vấn cách 77 tốt để chống XSS bạn sử dụng mod_perl Apache Server bạn dùng module Apache::TaintRequest Khi mã nguồn chương trình có dạng : use Apache::TaintRequest; my $apr = Apache::TaintRequest->new(Apache->request); my $text = $apr->param('text'); $r->content_type("text/html"); $r->send_http_header; $text =~ s/[^A-Za-z0-9 ]//; $r->print("You entered ", $text); Kĩ thuật XSS mô tả lần cách năm hầu hết khả tiềm ẩn kĩ thuật biết đến Tuy nhiên khắc phục phần Không phải vô tình mà Yahoo Mail lại để sót lỗi XSS lọc Một phương pháp tối ưu phía trước Kĩ thuật công gây tràn đệm từ chối dịch vụ(Buffer overflow) Kĩ thuật chủ yếu khai thác việc người dùng mà vượt lượng nhớ cấp phát ban đầu ứng dụng gây chohệ thống lâm vào tình trạng tràn nhớ, chí bị chèn thêm đoạn mã Nếu ứng dụng cấu hình để thực thi root người công thao tác nhà quản trị hệ thống web server Đây cách công coi kinh điển Ở đồ án trình bày kĩ thuật công gây tràn đệm từ chối dịch vụ Dos 3.1 Khái niệm Tấn công kiểu DoS kiểu công làm cho dịch vụ mạng bị tê liệt, không khả đáp ứng yêu cầu Loại công ảnh hưởng đến nhiều hệ 78 thống, dễ thực lại khó bảo vệ hệ thống khỏi kiểu công DoS Thông thường, kiểu công DoS dựa giao thức (protocol) Ví dụ với giao thức ICMP, hacker sử dụng bomb e-mail để gửi hàng ngàn thông điệp email với mục đích tiêu thụ băng thông để làm hao hụt tài nguyên hệ thống mail server Hoặc dùng phần mềm gửi hàng loạt yêu cầu đến máy chủ khiến cho máy chủ không thểđáp ứng yêu cầu đáng khác 3.2 Các đối tượng bị ảnh hưởng kiểu công • TẤN CÔNG TRÊN SWAP SPACE Hầu hết hệ thống có vài trăm MB không gian chuyển đổi ( swap space) đểphục vụ cho yêu cầu từ máy khách Swap space thuờng dùng cho tiến trình có thời gian ngắn nên DoS dựa phương thức làm tràn đầy swap space • TẤN CÔNG TRÊN BANDWIDTH: Phần băng thông dành cho hệ thống giới hạn, hacker lúc gửi nhiều yêu cầu đến hệ thống phần băng thông không đủ đáp ứng cho khối lượng liệu lớn dẫn đến hệ thống bị phá vỡ • TẤN CÔNG VÀO RAM: Tấn công Dos chiếm khoảng lớn RAM gây vấn đề phá hủy hệ thống Kiểu công BufferOverflow ví dụ cho cách phá hủy • TẤN CÔNG VÀO DISKS: Một kiểu công cổ điển làm đầy đĩa cứng Đĩa cứng bị tràn sử dụng 3.3 Các kiểu công DDos 3.3.1 Kiểu công thứ Hacker hoàn toàn có khả làm ngập hệ thống băng thông hacker lớn băng thông máy đích Kiểu công không bị hạn chế tốc độ truyền mạng ví dụ: Hacker có đường truyền tốc độ cao T1 ( 1.544- Mbps ) hay lớn dễ dàng phá vỡ hệ thống có đường truyền 56Kbps 3.3.2 Kiểu công thứ Kiểu công sử dụng đường truyền mạng hacker thấp so với đường truyền máy đích Không giống kiểu công DoS truyền thống ( phần ), kiểu công vào băng thông lớn lợi dụng gói tin từ hệ thống khác 79 lúc tiến đến hệ thống đích khiến cho đường truyền hệ thống đích không khả đáp ứng, máy chủ không khả nhận gói tin Kiểu công loại máy đích khỏi Internet Đây phương pháp công kiểu từ chối dịch vụ không DoS mà gọi DDoS ( kiểu từ chối dịch vụ phân tán ), nghĩa lúc nhiều máy sẽđược phát động để gửi gói tin đến máy đích, làm cho máy đích không khả tiếp nhận gói tin bị loại khỏi mạng Internet Bằng cách giả địa IP máy đích, hacker lúc gửi nhiều gói tin đến hệ thống máy mạnh mạng, hệ thống nhận gói tin SYN giả này, chấp nhận kết nối gửi trả gói tin SYN/ACK để thông báo Vì địa IP gói tin SYN bị hacker sửa đổi thành địa IP máy đích nên gói tin SYN/ACK gửi cho máy đích Cùng lúc nhận nhiều gói tin, đường truyền máy đích không đủ khả đáp ứng, hệ thống máy đích từ chối nhận gói tin lúc hệ thống máy đích bị sụp đổ 3.3.3 Kiểu công vào tài nguyên hệ thống Đây kiểu công nhằm vào tài nguyên hệ thống tài nguyên mạng CPU, nhớ, file hệ thống, tiến trình… Hacker người dùng hợp lệ hệ thống, lượng tài nguyên giới hạn hệ thống Tuy nhiên, hacker lạm dụng quyền truy cập để yêu cầu thêm tài nguyên Như vậy, hệ thống hay người dùng hợp lệ bị từ chối sử dụng tài nguyên chia sẻ Kiểu công khiến cho hệ thống sử dụng tài nguyên bị sử dụng hết, không tiến trình để thực thi 3.4 Cách phòng chống Kiểutấn công từ chối dịch vụ khiến cho hệ thống bị phá vỡ vài phút hậu to lớn (ảnh hưởng phạm vi tiền uy tín) Đây kĩ thuật thường hacker sử dụng trường hợp chiếm quyền quản trị hệ thống thông tin, muốn phá hủy uy tín quan đó.Thêm vào đóviệc giả mạo địa khiến cho hacker dễ dàng thực viêc công mà không sợ bị phát Kiểu công từ chối dịch vụ kiểu công gây nhiều khó khăn vấn đề bảo vệ điều tra tìm thủ phạm nhất, hầu hết hacker thay đổi địa IP máy nên khó xác định thủ phạm Để phòng chống khả khuyếch đại đường truyền, cần: - Huỷ khả broadcast router biên - Tăng kích thước hàng đợi kết nối 80 Ta phòng tránh khả tràn hàng đợi qua nhiều kết nối, cách sử dụng nhiều tài nguyên: - Giảm thời gian thiết lập kết nối - Dùng phần mềm phát phá hủy kiểu công DoS: Hầu hết hệ điều hành hỗ trợ khả phát phòng chống kiểu công lụt SYN Tuy nhiên có phần mềm có khả tránh kiểu công Ví dụ với Linux kernels 2.0.30 sau cài đặt tùy chọn gọi SYN Cookie , kernel có nhiệm vụ truy tìm lưu vết khả xảy kĩ thuật SYN Sau đó, kernel sử dụng giao thức mã hoá SYN cookie cho phép người dùng hợp lệ hệ thống tiếp tục kết nối đến hệ thống Với WindowNT 4.0 trở sau, sử dụng kĩ thuật backlog, hàng đợi kết nối không đủ đáp ứng, hệ thống tự động cung cấp tài nguyên cho hàng đợi, hàngđợi không bị phá vỡ Ứng dụng cho phép máy chỉđược thiết lập số kết nối tối đa theo qui định tránh trường hợp hacker gửi lúc nhiều yêu câu gây tắc nghẽn CHƯƠNG GIỚI THIỆU MỘT SÔ CÔNG CỤ PHỔ DỤNG TRONG KĨ THUẬT TẤN CÔNG VÀ BẢO MẬT ỨNG DỤNG WEB 3.1 Tool scanning Trong kĩ thuật công bảo mật ứng dụng web thao tác thường thao tác kiểm tra lỗi hệ thống nhằm xác định lỗi hệ thống Các công cụ dò tìm lỗi(tool scanning) hỗ trợ đắc lực cho công việc , hacker dùng chúng để dò tìm lỗi sau dung framework hay code có sẵn số tài liệu hay internet mà công ứng dụng web Nhưng công cụ hữu ích để nhà quản trị mạng , nhà quản trị hệ thống ứng dụng 81 web đânhs giá lại mức độ bảo mật hệ thống ứng dụng web từ có phương phát bảo mật hay vá lỗi tương ứng Trong đồ án giới thiệu tool scanning mà nguồn mở thông dụng nmap Nmap công cụ dễ sử dụng bạn có thẻ sử dụng dòng lệnh môi trường dos hay sử dụng tùy chọn trước tiếp giao diện nmap Hình giao diện nmap Giao diện thân thiện với người dung nên nmap dễ sử dụng Dưới ví dụ minh họa ứng dụng web host forum.congthuongit.net Thực điền: Target: forum.congthuongit.net profile:Intense sacan Chúng ta thu kết 82 Hình mô tả kiểu quét intense nmap Hình kết dùng nmap phần (nmap out) 83 Hình Kết nmap out (tiếp) Đây hình ảnh giao thức hệ thống ứng dụng web 84 Hình hình ảnh host kiểm tra Mặc dù có nhiều chức có lúc nmap không xác định xác thông số đối tượng Như trường hợp Nmap không xác định thông tin vè phần mềm host(no Os matches for host) Khi bạn sử dụng namap để quét host sau sảy tình trạng không truy cập vào trang web bạn đừng lo lắng để vài phút sau bạn truy cập Công cụ bắt gói tin Dùng công cụ bắt gói tin cách phổ biến để nghe gói tin mạng Trong đồ án giới thiệu công cụ wireshare Một công cụ mà nguồn mở giao diện đồ họa thân thiện dễ sử dụng 85 Hình giao diện wireshare Bạn click vào mục interface list chọn card mạng chọn start Ta giao diện sau(hình 7) Phần màu vàng gói tin truyền tới bạn Phần bên dươid thông tin gói tin mà hóa dạng hexa 86 Hình giao diện wireshare bắt gói tin Khi bạn nhấp vào phâng mã hexa dòng thông tin bạn thu thông tin gói tin mã hóa Nhu hinh Hình Thông tin gói tin mà wireshare bắt 87 Bạn save thông tin sử dụng sau.Công việc bạn tìm thêm phần mềm dich nhũng mà hóa đọc thông tin gói tin Công cụ dùng để công dos ứng dụng web Như trình bày chương phương pháp công dó phương pháp kinh điển khó phòng tránh giới thiệu với bạn côgn cụ DoSHTTP 2.5 công cụ phổ dụng việc công dos ứng dụng web công cụ mà Hacker hay dùng Giao diện DoSHTTP 2.5(hình 9) Hình Giao diện DoSHTTP 2.5 Thao tác với công cụ dễ dàng, hacker cần nhập vào ô target URL địa ddos Chọn số socket nhấn start flood Và sau việc ngồi đợi khoảng phút sau host không truy cập Cảnh báo việc côgn ứng dụng web trái pháp luật nên bạn tùy tiện sử dụng công cụ 88 [...]... các ứng dụng web cơ bản nào được dùng(trường hợp dùng ASP.NET) sẽ cho kẻ tấn công biết rẳng server đang chạy một phiên bản Microsoft Windows nào cũng như sử dụng web server là Microsoft Internet Information Server(IIS) 6.0 hay cao hơn Lỗi này cũng giúp cho các hacker biết được cấu hình của các ứng dụng web đó; chẳng hạn như, nếu một "SqlException" được bắt, thì kẻ tấn công sẽ biết được rằng ứng dụng. .. Việc hiểu được nguồn gốc các lỗi thì tự nó không gây hại gì cho khả năng bảo mật của ứng dụng nhưng hãy chú ý là: một hacker càng có nhiều thông tin về một website thì chúng càng có nhiều khả năng tấn công nó Một thông báo lỗi có thể trở thành một mỏ vàng các thông tin cho những kẻ tấn công Một thông báo lỗi liệt kê các phiên bản đặc trưng của các framework ASP.NET và NET có thể được sử dụng bởi các web. .. hãng như Microsoft mời về làm việc chuyên tìm lỗi cho phần mềm của họ - Hacker mũ xám hay mũ nâu: là những người đôi khi làm công việc của hacker mũ trắng nhưng vẫn làm công việc của hacker mũ đen - Dù tự nhận mình là giới nào, họ vẫn đang làm công việc xâm nhập hệ thống thông qua những lỗ hổng bảo mật Vì vậy tôi sẽ sủ dụng thuật ngữ hacker để chỉ nhũng người tấn công ứng dụng web 1.6.2 HTTP HEARDER... THUẬT TẤN CÔNG WEB CƠ BẢN A Lý thuyết 1 KIỂM SOÁT TRUY CẬP WEB (Web Access Control) Thâm nhập hệ thống qua cửa sau (Back door) Trong quá trình thiết kế ứng dụng, những người phát triển ứng dụng có thể cài một “cửa sau” (back door) để sau này có thể thâm nhập vào hệ thống một cách dễ dàng 34 2 CHIẾM HỮU PHIÊN LÀM VIỆC(Session Mangement) 1.1 Ấn định phiên làm việc (Session Fixation) Là kĩ thuật tấn công. .. hơn trong phát hiện lỗi và đáp ứng kịp thời hơn Microsoft liên tục đưa ra các bản tin bảo mật cập nhật trong năm qua Nói đến vấn đề này, Egan cho hay: “Trong năm 2010, Microsoft đã phát hiện và khắc phục 261 lỗ hổng, tăng hơn gần 100 lỗi so với con số 170 của năm ngoái.” Bộ công cụ tấn công Web 12 Thêm một năm chứng kiến sự gia tăng chóng mặt của các bộ dụng cụ tấn công Web – thứ cho phép những kẻ “mới... của công ty nếu nó được bảo mật yếu và từ đó họ có thể xâm nhập vào những đường kết nối mạng khác nếu chúng có cấu hình kém Những tấn công này thường âm thầm (không ầm ĩ như những trường hợp deface trang web) nhưng gây tổn thất rất lớn về tài chính Do những tấn công dạng này thường âm thầm, nên các DN không thể chủ quan rằng họ chưa bị hacker viếng thăm vì trang web của họ không bị defaced Những tấn công. .. thể truy cập vào một trang web công cộng,khiến cho các ứng dụng bảo mật gặp nhiều vấn đề Khi mà các hệ thống mạng đang trở nên kiên cố hơn, các file có khả năng bảo mật thấp trong các ứng dụng web càng thu hút được sự chú ý của các hacker, bao gồm cả những người chỉ muốn tiêu khiển và cả những tên trộm, những kẻ luôn có các công nghệ đủ để khai thác các lỗ hổng đó Việc tấn công này có thể gây các nguy... một số người phát triển được đào tạo để tạo ra các phần mềm bảo mật hay thiết kế các ứng dụng web có khả năng tự bảo vệ cao Bằng cách "baking in" an ninh của các ứng dụng ngay từ đầu quá trình phát triển thay cho "brush it on" sau khi đã hoàn thành, bạn sẽ dễ dàng tạo ra các ứng dụng bảo mật có thể chống lại sự tấn công của hackers Tuy nhiên, ngay cả những mã nguồn bảo mật được viết tỉ mỷ nhất trên... thể bị sử dụng để mạo nhận người dùng, hoặc các thông tin về tài khoản ngân hàng hay thẻ tín dụng có thể bị đánh cắp Thậm chí là những dữ liệu có vẻ như vô hại nhất trong trace cũng có thể gây nguy hiểm nếu rơi vào tay kẻ xấu Ví dụ, biến server "APPL_PHYSICAL_PATH", bao gồm các đường dẫn vật lý của các ứng dụng web trên server, có thể giúp các hacker tìm được các đường dẫn tới các thư mục tấn công lại... trace từ các ứng dụng web là không cho phép xem trace bẳng cách thiết lập đặc tính "enabled" của sang "false" Nếu bạn bắt buộc phải để trace ở "enabled" thì hãy chắc chắn rằng để "localOnly" ở "true" Điều đó khiến người dùng chỉ có thể xem trace ở trên web server và vô hiệu việc xem từ các máy từ xa, tăng khả năng bảo vệ cho ứng dụng của bạn 2.7 Debugging Enabled Triển khai các ứng dụng web ở chế độ ... niệm sâu vào tìm hiểu tiếp mô hình cấu trúc chức nhiệm vụ ứng dụng web Cấu trúc,chức năng,giao diện&nguyên tắc hoạt động ứng dụng web 1.3.1 Cấu trúc ứng dụng web Mô hình ứng dụng web đơn giản mô... mật ứng dụng web Khi mà ứng dụng web phát triển nhanh mặt, khả ứng dụng cách rộng rãi vấn đề bảo mật cho ứng dụng web trọng Mặc dù phủ nhận cải tiến nâng cao đáng kể nay, vấn đề bảo mật ứng dụng. .. Chức ứng dụng web Ứng dụng web phổ biến nhờ vào có mặt vào nơi đâu chương trình Khả cập nhật bảo trì ứng dụng Web mà phân phối cài đặt phần mềm hàng ngàn máy tính lý cho phổ biến Ứng dụng web