Lỗ hổng bảo mật Các lỗ hổng bảo mật trên một hệ thống là các điểm yếu có thể tạo ra sự ngưngtrệ của dịch vụ, thêm quyền đối với người sử dụng hoặc cho phép các truynhập không hợp pháp và
Trang 1ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Hà Nội - Năm 2015
Chuyên ngành: Công nghệ Thông tin
NGHIÊN CỨU TẤN CÔNG WEB ỨNG DỤNG
Trang 2ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Hà Nội – 2015
Hà Nội - Năm 2012
Chuyên ngành: Công nghệ Thông tin
NGHIÊN CỨU TẤN CÔNG WEB ỨNG DỤNG
VÀ PHƯƠNG PHÁP PHÒNG CHỐNG
Giáo viên hướng dẫn: TS Đỗ Xuân Chợ
Trang 3Hà Nội, ngày 11 tháng 05 năm 2015
NHIỆM VỤ CỦA ĐỒ ÁN TỐT NGHIỆP
1 Tên đề tài
Nghiên cứu tấn công Web ứng dụng và phương pháp phòng chống.
2 Nhiệm vụ và nội dung
Nghiên cứu sâu về các dạng tấn công vào web ứng dụng, nghiên cứu cáccông nghệ và kỹ thuật kẻ tấn công có thể sử dụng để tấn công vào webứng dụng Bên cạnh đó đồ án nghiên cứu và đề xuất các phương án, côngnghệ, kỹ thuật để phòng chống tấn công lên web ứng dụng Từ đó hiểu rõhơn về các mối đe dọa mất an toàn thông tin khi làm việc trên ứng dụngweb hàng ngày và phương án xây dựng web ứng dụng an toàn
Đề tài cho phép:
Trang 5- Trình bày các hình thức tấn công Web ứng dụng, các đặc điểm, giai đoạncủa các cuộc tấn công.
- Demo cuộc tấn công web
Sinh viên Nguyễn Thị Thu Hường:
- Trình bày về hệ thống thông tin, an toàn bảo mật hệ thống thông tin vàcác dạng tấn công hệ thống thông tin thông dụng
- Trình bày các phương pháp phòng chống tấn công Web ứng dụng
Trang 6Để hoàn thành đồ án “Nghiên cứu tấn công Web ứng dụng và cácphương pháp phòng chống”, trước tiên chúng em xin gửi lời cảm ơn sâu sắc
đến thầy giáo Trần Duy Hùng - Viện Đại học Mở Hà Nội, đã tận tình hướng
dẫn và giúp đỡ chúng em trong suốt quá trình nghiên cứu, xây dựng và thựchiện đồ án này
Chúng em xin chân thành cảm ơn Ban chủ nhiệm khoa Công nghệ
thông tin – Viện Đại học Mở Hà Nội, cùng các quý thầy cô đã hỗ trợ tạo
nhiều điều kiện thuận lợi cho chúng em trong quá trình học tập cũng như quátrình thực hiện đồ án này
Trong quá trình thực hiện đồ án, chúng em đã học hỏi thêm được rấtnhiều kiến thức Mặc dù đã rất cố gắng và nỗ lực hết sức để hoàn thành tốt đồ
án nhưng không thể tránh khỏi những sai sót Kính mong quý thầy cô đónggóp ý kiến để đồ án của chúng em có thể hoàn thiện tốt hơn
Trang 9Họ và tên: Vũ Chí Thành
Nguyễn Thị Thu Hường
Chuyên ngành: Công nghệ Thông tin Khóa : 11
Trang web cung cấp các tin tức về làm đẹp, tin tức làm đẹp của Sao chokhách hàng Qua đó khách hàng xem, đọc, tìm kiếm các sản phẩm hay dịch
vụ hợp lí với mình Nếu có nhu cầu mua hoặc làm dịch vụ thì có thể đến trựctiếp trung tâm để làm giao dịch hoặc là để lại thông tin đặt lịch hẹn vào mộtthời gian nào đó cho trung tâm sắp xếp phục vụ
Khách hàng ghé thăm trang web nếu có bất kỳ điều gì thắc mắc có thểchát trực tiếp với trung tâm để hiểu rõ hơn về thông tin hoặc khách hàng cóthể gửi phản hồi cho trung tâm bằng cách để lại liên hệ
Đặc biệt trung tâm luôn có nhiều chương trình ưu đãi để tri ân kháchhàng cụ thể là bán voucher điện tử Khách chỉ cần đặt mua voucher bằng cách
để lại thông tin cần thiết theo mẫu sẵn của trung tâm là đã giữ cho mình mộtgói ưu đãi giảm giá dịch vụ khi tới trung tâm thực hiện dịch vụ
Trang 10STT Ký hiệu, chữ viết tắt Tên đầy đủ Dịch ra tiếng việt
6 AJAX AsynchronousJavaScript And XML Bộ công cụ cho phép tăngứng dụng web
7 DNS Domain Name System Hệ thống phân giải tên miền
8 HTML HyperText MarkupLanguage Ngôn ngữ đánh dấu siêu vănbản
9 SSL Secure Socket Layer Tiêu chuẩn bảo mật
10 LDAP Lightweight DirectoryAccess Protocol Giao thức truy cập nhanhcác dịch vụ thư mục
Trang 11Chương 1 GIỚI THIỆU VỀ AN TOÀN HỆ THỐNG THÔNG TIN VÀ CÁC DẠNG
bị xâm phạm, gây mất mát dữ liệu cũng như các thông tin có giá trị Kết nốicàng rộng thì càng dễ bị tấn công, đó là một quy luật tất yếu Từ đó, vấn đềbảo vệ thông tin cũng đồng thời xuất hiện và như thế an ninh mạng ra đời
Hacker mũ trắng
Họ là những nhà bảo mật và bảo vệ hệ thống Họ cũng xâm nhập vào hệthống, mục đích là tìm ra những kẽ hở, những lổ hổng chết người và sau đótìm cách vá lại chúng Tất nhiên, hacker mũ trắng cũng có khả năng xâm nhập
và cũng có thể trở thành hacker mũ đen
Trang 12 Hacker mũ xám
Loại này được sự kết hợp giữa hai loại trên Thông thường họ là những ngườicòn trẻ, muốn thể hiện mình Trong một thời điểm, họ đột nhập vào hệ thống
để phá phách Nhưng trong thời điểm khác họ có thể gửi đến nhà quản
trị những thông tin về lổ hổng bảo mật và đề xuất cách vá lỗi
Ranh giới phân biệt các Hacker rất mong manh Một kẻ tấn công là Hacker
mũ trắng trong thời điểm này nhưng ở thời điểm khác họ lại là một tên trộmchuyên nghiệp
Theo thống kê của tổ chức IC 3 thì số tội phạm internet ngày càng gia tăngnhanh chóng chỉ trong vòng 8 năm từ năm 2001 đến năm 2009 số lượng tộiphạm đã tăng gần gấp 20 lần và dự đoán trong tương lai con số này con tănglên nhiều
Hình 1.1: Thống kê tội phạm internet của tổ chức IC3
Lỗ hổng bảo mật
Các lỗ hổng bảo mật trên một hệ thống là các điểm yếu có thể tạo ra sự ngưngtrệ của dịch vụ, thêm quyền đối với người sử dụng hoặc cho phép các truynhập không hợp pháp vào hệ thống Các lỗ hổng cũng có thể xuất hiện ngaytrong hạ tầng mạng hoặc nằm ngay trên các dịch vụ cung cập như Sendmail,
Trang 13Web, Ftp, Ngoài ra các lỗ hổng còn tồn tại ngay chính các hệ điều hành như:Windows XP, 7, Linux, hoặc trong các ứng dụng mà người sử dụng thườngxuyên sử dụng như: Office, trình duyệt,
Theo bộ quốc phòng Mỹ, các lỗ hổng bảo mật một hệ thống được chia nhưsau:
Lỗ hổng loại A
Các lỗ hổng này cho phép người sử dụng ở ngoài có thể truy nhập vào hệthống bất hợp pháp Lỗ hổng này rất nguy hiểm, có thể phá hủy toàn bộ hệthống
Lỗ hổng loại B
Các lỗ hổng này cho phép người sử dụng thêm các quyền trên hệ thống màkhông cần thực hiện kiểm tra tính hợp lệ Mức độ nguy hiểm trung bình.Những lỗ hổng này thường có trong các ứng dụng trên hệ thống, có thể dẫnđến mất hoặc lộ thông tin dữ liệu
Lỗ hổng loại C
Các lỗ hổng loại này cho phép thực hiện các phương thức tấn công theo DOS.Mức độ nguy hiểm thấp, chỉ ảnh hưởng tới chất lượng dịch vụ, có thể làmngưng trệ, gián đoạn hệ thống, không làm phá hỏng dữ liệu hoặc được quyềntruy nhập bất hợp pháp
1.2 Đánh giá vấn đề an toàn, bảo mật hệ thống mạng
1.2.1 Phương diện vật lý
- Có thiết bị dự phòng nóng cho các tình huống hỏng độtngột Có khả năng thay thế nóng từng phần hoặc toàn phần(hot-plug, hot-swap)
- Bảo mật an ninh nơi lưu trữ các máy chủ
- Khả năng cập nhật, nâng cấp, bổ xung phần cứng và phầnmềm
Trang 14- Yêu cầu nguồn điện, có dự phòng trong tình huống mấtđiện đột ngột.
- Các yêu cầu phù hợp với môi trường xung quanh: độ ẩm,nhiệt độ, chống sét, phòng chống cháy nổ,…
1.2.2 Phương diện logic
Tính bí mật (Confidentiality):
Là giới hạn các đối tượng được quyền truy xuất đến thông tin Đối tượng truyxuất thông tin có thể là con người, máy tính và phần mềm Tùy theo tính chấtcủa thông tin mà mức độ bí mật của chúng có thể khác nhau
Ví dụ: User A gởi email cho User B, User A gởi nội dung như thế nào thì User
B chắc chắn sẽ nhận được đúng y nội dung như vậy có nghĩa là User A gởi gìthì User B nhận y như vậy không có sự thay đổi
Tính không thể phủ nhận nhận (Non repudiation):
Tính không thể phủ nhận bảo đảm rằng người gửi và người nhận không thểchối bỏ một bản tin đã được truyền Vì vậy, khi một bản tin được gửi đi, bênnhận có thể chứng minh được rằng bản tin đó thật sự được gửi từ người gửihợp pháp Hoàn toàn tương tự, khi một bản tin được nhận, bên gửi có thểchứng minh được bản tin đó đúng thật được nhận bởi người nhận hợp lệ
Ví dụ: User A gởi email cho User B thì User A không thể từ chối rằng A
Trang 15không gởi mail cho B.
Tính sẵn sàng(Availability):
Một hệ thống đảm bảo tính sẵn sàng có nghĩa là có thể truy nhập dữ liệu bất
cứ lúc nào mong muốn trong vòng một khoảng thời gian cho phép Các cuộctấn công khác nhau có thể tạo ra sự mất mát hoặc thiếu về sự sẵn sàng củadịch vụ Tính khả dụng của dịch vụ thể hiện khả năng ngăn chặn và khôi phụcnhững tổn thất của hệ thống do các cuộc tấn công gây ra
Ví dụ: Server web là hoạt động hàng ngày để phục vụ cho web client nghĩa làbất cứ khi nào, ở đâu Server web cũng sẵn sàng để phục vụ cho web client
1.2.3 Tình hình an ninh mạng hiện nay.
Chỉ tính từ đầu năm 2012 đến tháng 3/2013, trung bình mỗi ngày có tới
6 website tại Việt Nam bị tấn công, tương ứng với hơn 2.000 website bị tấncông mỗi năm Trên 70% các trang web có lỗ hổng có thể dẫn đến các hành vitrộm cắp dữ liệu và phá hoại của các công ty, tổ chức, cá nhân như: Thông tinthẻ tín dụng hay danh sách khách hàng, đánh cắp bí mật thương mại, lừa đảo,phát tán, thay đổi nội dung, chiếm quyền điều khiển, phá hoại hoạt động,.v.v
Hình 1.2: Danh sách 10 quốc gia có tỷ lệ lây nhiễm máy tính qua Internet cao
nhất năm 2013
Trang 16CHƯƠNG 2 NGHIÊN CỨU VỀ TẤN CÔNG ỨNG DỤNG WEB
2 Khái niệm về ứng dụng WEB
2.1.1 Thống kê bảo mật ứng dụng Web
Hình 2.1: Thống kê bảo mật ứng dụng Web
2.1.2 Giới thiệu về ứng dụng Web
Ứng dụng WEB là một ứng dụng máy chủ/máy khách sử dụng giao thứcHTTP để tương tác với người dùng hay hệ thống khác Trình duyệt WEBgiành cho người dùng như Internet Explore hoặc Firefox hay Chrome, Người dùng gửi và nhận các thông tin từ máy chủ WEB thông qua việc tácđộng vào các trang WEB Các ứng dụng WEB có thể là trang trao đổi muabán, các diễn đàn, gửi và nhận email, games online,
Với công nghệ hiện nay, website không chỉ đơn giản là một trang tin cung cấpcác bài tin đơn giản Những ứng dụng web viết trên nền web không chỉ đượcgọi là một phần của website nữa, giờ đây chúng được gọi là phần mềm viết
Trang 17Máy c
hủ WE B Đăng
nhập
Cơ c
hế the
o dõi phiê
n làm việc
Quyề
n của ngư
ời s
ử dụng
Truy xuất dữ liệ u Nội
dung ứ
ng dụng
V ai trò c
ủa hệ thống bảo m ật
Lưu trữ
dữ li
ệu ng rình ứ dụng ơng t Chư ất Đăng xu
trên nền web Có rất nhiều phần mềm chạy trên nền web như Google Word
(xử lý các file văn bản), Google spreadsheets (xử lý tính bảng tính), Google
Translate (từ điển, dịch văn bản),
Ngày nay, ứng dụng web phát triển rất cao, gần như bây giờ người ta đều sử
dụng ứng dụng web như xem phim online, nghe nhạc online, chia sẻ mạng xã
hội (facebook, zing), chơi games online, ngân hàng trực tuyến, và bắt đầu
xuất hiện những Hacker muốn thu lợi ích về phần mình từ các ứng dụng web
2.1.3 Các thành phần ứng dụng Web
Hình 2.2: Các thành phần ứng dụng WEB
Trang 18Vậy ứng dụng Web hoạt động như thế nào?
2.1.4 Hoạt động ứng dụng Web
Hình 2.3: Hoạt động của ứng dụng WEBBước 1: Tại trình duyệt của máy khách gõ địa chỉ trang web vào, lúc này trìnhduyệt sẽ tạo request gởi đến máy chủ ứng dụng web Nếu như thành công thì
sẽ tải được trang web về ngược lại nếu thất bại ta cần phải kiểm tra kết nối từmáy khách đến máy chủ web là phải thông suốt có thể thử bằng lệnh ping.Bước 2: Sau khi tải được trang web, máy chủ web yêu cầu người dùng đăngnhập tên tài khoản và mật khẩu, tất nhiên người dùng phải biết mình đang sửdụng ứng dụng nào và tài khoản, mật khẩu là gì Nếu chưa có tài khoản chúng
ta có thể đăng kí một tài khoản để được truy cập
Bước 3: Thông báo đăng nhập thành công được hiển thị trên trình duyệt củamáy khách Giả sử người dùng muốn thực hiện rút tiền trong tài khoản ngânhàng, người dùng sử dụng ứng dụng web rút tài khoản ngân hàng Sau khithực hiện các bước rút tiền theo yêu cầu thì tại máy chủ web gói tin yêu cầurút tiền sẽ đến ứng dụng web, ứng dụng web sẽ kiểm tra tài khoản này có đủtiền tối thiểu được rút hay không nếu đủ thì nó chuyển đến máy chủ cơ sở dữliệu
Bước 4: Tại máy chủ cơ sở dữ liệu nó sẽ truy vấn các thông tin cần thiết để
Trang 19tính toán như là số tài khoản dư và lưu trữ các thông tin cần thiết như thờigian, thông tin tài khoản,
Bước 5: Sau khi đã truy vấn xong thì nó sẽ gởi lại cho máy khách nhữngthông báo cần thiết
2.1.5 Kiến trúc ứng dụng Web
Hình 2.4: Kiến trúc ứng dụng WEBMột ứng dụng web có đầy đủ các thành phần như sau:
Máy khách
Tại máy khách muốn truy cập vào được các ứng dụng web thì phải có trìnhduyệt web có thể dùng trình duyệt web mặc định của các hệ điều hành nhưwindow là Internet Explore, Linux thường là Firefox, còn không thì có thểcài thêm các chương trình duyệt web như Google Chrome, Opera,
Máy chủ web
Là nơi lưu trữ nội dung trang web, tiếp nhận các yêu cầu kết nối từ máykhách, máy chủ web sử dụng phần mềm để chạy dịch vụ web phục vụ cho các
Trang 20máy khách như trên Windows có IIS, Linux thì có Apache, Tom cat,
Ứng dụng web
Ứng dụng web được viết bằng các ngôn ngữ khác nhau như java, php, hay
có thể là một đoạn flash đơn giản để nhúng các ứng dụng vào trang web Ví
dụ như games online trên facebook hay zing
Cơ sở dữ liệu
Là một máy chủ chịu đảm nhiệm việc lưu trữ thông tin của các ứng dụng web
có thể là lưu trữ ngay trên máy chủ web hoặc là một máy chủ khác nhưngthường để bảo mật thì người ta lưu trên một máy chủ khác và sử dụng hệ quảntrị cơ sở dữ liệu như SQL Server hay Oracle, Ví dụ: như chơi games onlinetrên web của facebook hay zing thì người chơi games xong thường lưu các giátrị của người chơi vào một cơ sở dữ liệu nào đấy và khi nào người chơi muốntiếp tục chơi thì truy vấn lấy cơ sở dữ liệu đẩy ra
2.1.6 Ứng dụng Web 2.0
Hình 2.5 Ứng dụng Web 2.0
Trang 21Danh sách các đối tượng dễ bị tấn công:
Các ứng dụng WEB Lỗ hổng trong king doanh - logicThành phần bên thứ ba Nguồn mở / thương mại
2.1.7 Các mối đe dọa ứng dụng Web
Khi mà các ứng dụng Web ngày một phát triển thì các mối đe dọa của nó cũngnhiều lên và nguy hiểm hơn:
Tập tin chưa thông tin người dùng
nhiễm độc
Đăng nhập giả mạoLưu trữ không bảo mật Dữ liệu đưa vào không hợp lệ
Thông tin bị rò rỉ Kiểm soát truy cập bị hổng
Việc xử lý lỗi không đúng cách Lỗi cấu hình bảo mật
Bẻ khóa tài khoản quản lý Quản lý phiên bị phá vỡ
Vượt rào thư mục Khai thác nền tảng lỗ hổng
Thông số/ hình thức giả mạo Không giới hạn truy cập URL
Từ chối dịch vụ Xác thực chiếm quyền điều khiểnTham chiếu đối tượng trực tiếp không
bảo mật
Bảo vệ lớp giao vận không đầy đủ
Các cuộc tấn công vào dịch vụ Web Tập tin thực thi độc hại
Chuyển tiếp và chuyển hướng không
hợp lệ
Tấn công ngưng phiên làm việc
Trang 222.2 Các phương pháp tấn công ứng dụng Web
2.2.1 Bộ công cụ tấn công ứng dụng Web
2.2.1.1 Burp Suite
Burp Suite hoạt động như một proxy trung gian giữa trình duyệt và web server cho phép :
- Ngăn chặn và thay đổi tất cả các traffic HTTP/HTTPS theo cả hai hướng
- Cấu hình các rule quyết định các traffic nào sẽ sử dụng cho manual
- Cho phép thực hiện lại 1 hoặc 1 tập các hành động
- Thiết lập các rule cho phép thay đổi các giá trị (fuzzing) trong các
Trang 23phân tích những ứng dụng web với hai giao thức hỗ trợ HTTP và HTTPS.WebScarab có khả năng ghi lại hoặc thay đổi tham số ứng dụng trước khi đitrình những yêu cầu, phản hồi giữa trình duyệt và ứng dụng web Ngoài ra,công cụ còn cho phép thực hiện một số chức năng hữu ích khác như:
- Spider (duyệt toàn bộ cấu trúc của website): Sẽ thực hiện quét toàn bộ thưmục và tập tin của ứng dụng web
- SessionID Analysis (phân tích chỉ số phiên làm việc): Cho phép phân tíchphiên làm việc giữa trình duyệt và ứng dụng
- Fuzzer: Một chức năng tự động truyền dữ liệu đối với các tham số đãđược người kiểm tra chỉ định trước đó
Hình 2.7 WebScarab
2.2.1.3 Ứng dụng công cụ Backtrack để tấn công
Backtrack là một bản phân phối dạng Live DVD của Linux, được pháttriển để thử nghiệm thâm nhập Trong các định dạng Live DVD, có thể sửdụng Backtrack trực tiếp từ DVD hoặc cài đặt trên máy và sử dụng như một
Trang 24hệ điều hành Backtrack hỗ trợ một cách nhanh chóng cho việc tìm kiếm vàcập nhật cơ sở dữ liệu các công cụ bảo mật Backtrack có lịch sử phát triểnqua nhiều bản Linux khác nhau (phiên bản hiện nay sử dụng bản phân phốiSlackware Linux) và liên tục cập nhập các công cụ, drivers qua các phiênbản… Công cụ kiểm thử bảo mật trong Backtrack có thể được phân loại thànhcác nhóm như sau:
− Information gathering: Sử dụng để có được thông tin liên quan đến mộtmục tiêu DNS, địa chỉ email, trang web, máy chủ mail…
− Network mapping: Quét thăm dò, bao gồm việc kiểm tra các host đangtồn tại, thông tin về hệ điều hành, ứng dụng được sử dụng bởi mụctiêu…
− Vulnerability identification: Quét các lỗ hổng, phân tích ServerMessage Block (SMB) và Simple Network Management Protocol(SNMP)
− Web application analysis: Theo dõi, giám sát các ứng dụng web
− Radio network analysis: Kiểm tra mạng không dây, bluetooth và nhậndạng tần số vô tuyến (RFID)
− Penetration: Khai thác các lỗ hổng tìm thấy trong các máy tính mụctiêu
− Privilege escalation: Sau khi khai thác các lỗ hổng và được truy cập vàocác máy tính mục tiêu, các công cụ trong loại này có thể sử dụng để leothang đặc quyền
− Digital forensics: Phân tích hình ảnh đĩa cứng, cấu trúc các tập tincó thểchọn Start Backtrack Forensics trong trình đơn khởi động
− Reverse engineering: Gỡ rối chương trình hoặc tháo rời tập tin thực thi
Trang 25Hình 2.8 Backtrack
2.3 Các phương pháp tấn công web ứng dụng
2.3.1 In dấu vết cơ sở hạ tầng Web
In dấu vết cơ sở hạ tầng web là bước đầu tiên trong tấn công ứng dụng web,
nó giúp Attacker lựa chọn Victim và xác nhận ứng dụng web dễ bị tấn công.Bao gồm:
a. Khai thác máy chủ: khám phá máy chủ vật lý của web
Cung cấp thông tin về vị trí của máy chủ và đảm bảo máy chủ đó còn hoạtđộng trên Internet
Trang 26• Port Scanning: Port scanning kết nối đến tập hợp các cổng TCPhay UDP để tìm ra dịch vụ tồn tại trên máy chủ.
Tool hỗ trợ: Telnet, Netcat, Fscan
d. Nội dung ẩn:
Khai thác nội dung ẩn và không truy cập từ nội dung chính để khai tháccác đặc quyền của người sử dụng ứng dụng Cho phép Attacker khôi phục các
Trang 27bản sao lưu các tập tin trực tiếp, tập tin cấu hình, tập tin chứa dữ liệu nhạycảm, các tập tin trong thư mục gốc WEB mà không liên quan đến các ứngdụng
WEB Spiders tự động phát hiện các nội dung ẩn và chức năng phân tích
cú pháp dạng HTML, các yêu cầu javascrip phía máy khách trả lời
Web Speidering Tools: Paros, Burp Spider, WebScarab
• Attacker-Directed Spidering: Attacker truy cập tất cả các chức năng củaứng dụng và sử dụng proxy chặn để giám sát tất cả các Re và Ro Cácproxy chặn và phân tích, báo nội dung mà nó phát hiện ra
• Tools: Poras Proxy
• Brute-Forcing: Sử dụng các công cụ tự động hóa như Burp để gởi sốlượng lớn các yêu cầu đến máy chủ WEB nhằm đoán tên hoặc địnhdanh nội dung và chức năng ẩn
2.3.2 Tấn công máy chủ WEB
Sau khi xác định môi trường máy chủ WEB, quét máy chủ tìm ra lỗhổng Khởi động tấn công máy chủ WEB để khai thác xác định lỗ hổng.Khởi động tấn công từ chối dịch vụ (DOS) đối với máy chủ WEB
e. Xác định các điểm đi vào cho người sử dụng đầu vào:
Xem lại các yêu cầu HTTP được tạo ra để xác định những điểm của người
Trang 28dùng đầu vào Kiểm tra URL, Header HTTP, các thông số chuỗi truy vấn vàcookie để xác định tất trường đầu vào của người dùng Xác định các thông sốhead HTTP có thể được xử lý bởi các ứng dụng đầu vào người sử dụng nhưUser agent, header host,… Xác định kỹ thuật mã hóa URL và các biện pháp
mã hóa khác thực hiện để đảm bảo lưu lượng truy cập web như SSL
Công nghệ dấu vân tay hoạt động trên máy chủ bằng cách sử dụng các
kỹ thuật dấu vân tay khác nhau (HTTP) Thực hiện thu thập thông tin máychủ chi tiết phân tích header HTTP và mã nguồn HTML để xác định côngnghệ tại máy chủ Kiểm tra URLs cho tập tin phần mở rộng, thư mục và cácthông tin xác nhận khác Kiểm tra các thông báo lỗi của trang WEB Kiểm tra
mã ID phiên làm việc: Jsessionid – java, Aspsessionid – IIS Server,ASP.NET Sessionid ASP.NET, PHPSessionid - php
- Các tính năng Server-Side:
Quan sát các ứng dụng tiết lộ thông tin cho khách hàng để xác địnhServer-Side (cấu trúc và chức năng) Kiểm tra mã nguồn của trang WEB vàURL và xác định cấu trúc bên trong và chức năng của các ứng dụng WEB
Bộ công cụ: Teleport Pro, BlackWidow
Sơ đồ các mặt tấn công
Xác nhận Client – Side Tấn công Injection, Tấn công ủy
quyềnTương tác với CSDL SQL Injection, Data Leakage
Tải tập tin lên và tải về Vượt đường dẫn
Cung cấp dữ liệu thông qua việc hiển Cross Site Scripting
Trang 29Tự động chuyển hướng Redirection, Header Injection
Trạng thái phiên việc làm Session Hijacking, Session FixationTấn công chèn lệnh Privilege Escalation, Access ControlsThông tin liên lạc “dữ liệu chua mã
hóa”
Data Theft, Session Hijacking
Ứng dụng trung gian Known Vulnerabilities ExplotationPhần mềm máy chủ WEB Known Vulnerabilities Explotation
2.3.2 Tấn công cơ chế xác thực
Kiểm tra mã nguồn của trang WEB và URL và xác định cấu trúc bêntrong và chức năng của các ứng dụng WEB
- Liệt kê tên đăng nhập:
Nếu đăng nhập lỗi một phần tên đăng nhập và mật khẩu không đúng,đoán người dùng bằng cách sử dụng phương pháp kiểm thử và báo lỗi Một sốphần mềm tự động tạo ra các tên đăng nhập dựa trên một chuỗi như (user101,user102,…) và Attacker có thể xác định thứ tự và liệt kê tên người dùng hợplệ
Hình 2.10 Tấn công mật khẩu
- Tấn công mật khẩu
Trang 30Có 3 kiểu tấn công mật khẩu:
• Khai thác chức năng mật khẩu:
Thay đổi mật khẩu: Hãy thử các chuỗi ngẫu nhiên cho “Old Password”,
“New Password” và xác nhận mật khẩu mới Phân tích lỗi để xác định các lỗhổng trong chức năng thay đổi mật khẩu
Phục hồi mật khẩu: Quên mật khẩu là tính năng “nói chung hỗ trợngười sử dụng”, nếu số lần không giới hạn Attacker sẽ tìm thấy pass với các
bộ công cụ hỗ trợ Các ứng dụng có thể gởi link URL phục hồi hoặc mậtkhẩu đến địa chỉ Email của Attacker quy định
Khai thác “Remember Me”: “Remember Me” cho phép thực hiện liêntục bằng cách sử dụng cookie đơn giản, chẳng hạn như RememberUser
=Jason,… Attacker có thể sử dụng liệt kê tên người dùng hoặc dự đoán địnhdanh phiên làm việc để bỏ qua xác thực
• Tấn công mật khẩu: đoán, dò mật khẩu
Attacker tạo ra một danh sách mật khẩu, có thể sử dụng mật khẩu phổbiến nhất và cố gắng cho đến khi tìm ra mật khẩu chính xác Dò mật khẩu cóthể sử dụng bằng tay hoặc cách sử dụng các công cụ tự động nhưWebcracker, Brutus, Burp Insider, THC Hydra
• Tấn công mật khẩu: Brute Forcing
Tấn công Brute-Forcing, Attacker bẻ khóa mật khẩu đăng nhập bằngcách thử tất cả các giá trị có thể từ tập hợp các bảng chữ cái, số và ký tự đặcbiệt Attacker sử dụng công cụ bẻ khóa như là Burp Suite’s Intruder, Brutus
và Sensepost’s Crowbar
2.3.3 Tấn công phiên làm việc
Bước đầu tiên, Attacker thu thập ID phiên hợp lệ bằng cách nghe lénlưu lượng mạng truy cập từ người dùng có được xác thực Attacker phân tíchcác ID phiên bắt được để xác định cấu trúc của ID phiên, các thông tin được
sử dụng để tạo ra nó và mã hóa hoặc thuộc toán sử dụng để bảo vệ nó Ngoài
Trang 31ra, Attacker có thể thực hiện một kỹ thuật để tạo ra và kiểm tra các giá trị IDphiên khác nhau cho đến khi truy cập vào được ứng dụng Cơ chế phiên có
lỗ hổng sử dụng ID phiên bao gồm tên người dùng hoặc các thông tin khác,đánh dấu thời gian hoặc địa chỉ IP client có thể được khai thác bằng cách dễdàng đoán được các ID phiên hợp lệ
2.3.5 Tấn công ủy quyền
Kẻ tấn công gởi các yêu cầu HTTP để phá hoại các ứng dụng, ủy quyềncác chương trình sửa đổi các thông tin đầu vào liên quan đến người sử dụng
ID, tên đăng nhập, nhóm, tên tập tin, các định dạng tập tin, …
Đầu tiên Attacker truy cập ứng dụng bằng cách sử dụng tài khoản vớiquyền thấp và sau đó leo thang với đặc quyền truy cập các tài nguyên đượcbảo vệ Nếu chuỗi truy vấn được hiển thị trong thanh địa chỉ trên trình duyệt,
kẻ tấn công có thể dễ dàng thay đổi các tham số chuỗi để bỏ qua các cơ chếxác thực
Trang 32số của nó bằng cách sử dụng các công cụ như Paros Proxy và truyền lại cácứng dụng.
2.3.6 Tấn công cơ chế quản lý phiên làm việc
Attacker phá vỡ cơ chế quản lý phiên của một ứng dụng để bỏ qua các cơ chếxác thực và giả mạo đặc quyền của người sử dụng
Tấn công cơ chế thẻ tạo phiên: Attacker có được thẻ phiên hợp lệ bằngcách nghe lén lưu lượng mạng hoặc hợp pháp đăng nhập ứng dụng và phântích mã hóa (mã hóa hex, BaseG4) Sau đó Attacker thực hiện một số lượnglớn các yêu cầu dự đoán thẻ đến một trang phụ thuộc vào phiên làm việc đểxác định một thẻ phiên hợp lệ
Nghe lén thẻ phiên làm việc: Attacker nghe lén lưu lượng mạngbằng cách sử dụng một công cụ nghe lén như Wireshark hoặc Proxy nhưBurp Nếu Cookie HTTP đang được sử dụng như là cơ chế truyền cho thẻphiên và không thiết lập cờ an toàn Attacker có thể xem lại các Cookie đểđược truy cập trái phép vào ứng dụng Attacker có thể sử dụng Cookie phiên
để thực hiện việc cướp quyền, kế nối lại phiên,…
hệ thống hoạt động bằng cách nhập vào các câu lệnh độc hại (OS CommandInjection), nếu người dùng được sử dụng scrip để thực hiện thì các lệnh đượcthực hiện trên máy chủ (Web Scrip Injection)
Trang 332.4.1 Tấn công kết nối dữ liệu
Tấn công kết nối dữ liệu khai thác ứng dụng kết nối đến CSDL thay vì lợidụng các truy vấn đến CSDL
Thêm chuỗi kết nối :
Trong môi trường thẩm định, ủy quyền Attacker thêm các thông số trongchuỗi kết nối Tấn công thêm chuỗi kết nối có thể xảy ra khi chuỗi kết nối (tựđộng) dựa trên đầu vào người sử dụng
Ví dụ:
Trước khi Injection:
“Data Source=Server,Port; Initial Catalog=DataBase; User ID=Username;Password=12;”
Sau khi Injection:
“Data Source=Server,Port; Initial Catalog=DataBase; User ID=Username;Password=12;Encryption=off”
Tấn công Connection String Parameter Pollution (CSPP)
Tấn công CSPP Attacker ghi đè lên giá trị thông số kết nối
- Hash Stealing: Attacker thay thế các giá trị tham số của nguồn dữliệu với một máy chủ giả mạo SQL kết nối với internet chạysniffer Attacker sẽ có thông tin về các người dùng kết nối đếnmáy chủ giả mạo SQL
- Port Scanning: Attacker cố gắng quét các port khác nhau bằngcách thay đổi giá trị và xem thông báo lỗi khi nhận được
- Hijacking Web Credentials: Attacker kết nối với CSDL bằngcách sử dụng tài khoản hệ thống ứng dụng WEB thay vì ngườidùng cung cấp thông tin
- Connection Pool Dos
Attacker kiểm tra tổng quát các kết nối đến ứng dụng, xây dụng mộtlượng lớn truy vấn SQL độc hại và chạy nhiều truy vấn đồng thời tiêu thụ tất
cả các kết nối, gây ra các truy vấn CSDL lỗi không cho người dùng truy
Trang 342.4.2 Tấn công ứng dụng Web Client
Attacker tương tác với các ứng dụng phái máy chủ để thực hiện các thao tácnguy hiểm đối với người dùng đầu cuối và truy cập dữ liệu trái phép
Hình 2.11 Tấn công ứng dụng Web Client
2.4.3 Tấn công dịch vụ WEB
Bất kì cuộc tấn công vào dịch vụ WEB sẽ ảnh hưởng trực tiếp đến các doanhnghiệp và các lỗ hổng logic cho các cuộc tấn công khác nhau
Tấn công thăm dò dịch vụ WEB
Bước đầu tiên, Attacker thu thập thông tin WSDL từ lưu lượng mạng truy cậpdịch vụ web và phân tích để xác định mục đích của ứng dụng, phá vỡ cácchức năng, các điểm truy cập vào và các loại tin nhắn
Sau đó, Attacker tạo ra một tập hợp các yêu cầu hợp lệ và xây dựng thông
Trang 35điệp yêu cầu theo quy tắc của XML có thể gởi đến các dịch vụ WEB.
Attacker sử dụng yêu cầu này bao gồm các nội dung độc hại trong các yêucầu SOAP và phân tích các lỗi
- Thêm lệch SOAP
Attacker thêm mã độc hại vào chuỗi truy vấn để bỏ qua cơ chế xác thực cácdịch vụ WEB và truy cập cơ sở dữ liệu Kiểu tấn công này hoạt động tương tựnhư tấn công SQL Injection Attacker thêm dữ liệu XML và các thẻ vàongười dùng để thao tác lượtc đồ XML hoặc cơ sở dữ liệu XML với mục đíchkhông có thật Thêm XML có thể được sử dụng bỏ qua việc ủy quyền, leothang đặc quyền, và tạo ra các cuộc tấn công DOS với các dịch vụ WEB
- Phân tích dịch vụ WEB
Tấn công khai thác, phân tích lỗ hổng và điểm yếu trong việc xử lý cú phápXML để tạo ra một cuộc tấn công từ chối dịch vụ hoặc tạo ra các lỗi logictrong xử lý yêu cầu dịch vụ WEB
Attacker truy vấn các dịch vụ WEB với một tài liệu SOAP hợp lệ có chứavòng lặp xử lý vô hạn dẫn đến cạn kiệt tài nguyên CPU
Attacker gởi gói tin có kích thước lớn để tiêu thụ tấn cả tài nguyên của hệthống, người dùng hợp pháp không thể truy cập các dịch vụ WEB được
Công cụ tấn công: SOAPUI, XMLSpy
2.5 CÁC KĨ THUẬT TẤN CÔNG WEB
2.5.1 Các thiếu xót trong việc kiểm tra dữ liệu nhập vào
2.4.1.1 Tràn bộ nhớ đệm (Buffer Overflow)
Một khối lượng dữ liệu được gửi vào ứng dụng vượt quá lượng dữ liệuđược cấp phát khiến cho ứng dụng không thực thi được câu lệnh dự định kếtiếp mà thay vào đó phải thực thi một đoạn mã bất kì do Hacker đưa vào hệthống Nghiêm trọng hơn nếu ứng dụng được cấu hình để thực thi với quyềnroot trên hệ thống thì coi như Hacker đã chiếm được toàn bộ hệ thống máychủ web Hầu hết những vấn đề phát sinh từ người lập trình yếu kém hay mớivào nghề
Trang 362.4.1.2 Vượt đường dẫn (Directory Traversal)
Ứng dụng sử dụng tập tin hệ thống của máy chủ trong lớp “ứng dụng”
để hiện thị thông tin lưu trữ tạm thời Những tập tin nào bao gồm tập tin hìnhảnh, tập tin HTML Thư mục www/root là một thư mục gốc chứa trang web,nơi mà được truy xuất từ trình duyệt Ứng dụng web có thể lưu bên tronghoặc bên ngoài www/root
Nếu ứng dụng không kiểm tra những kí đặc biệt, thường được sử dụngtrong đường dẫn như “/” thì có thể rằng ứng dụng đã có lỗ hổng cho kiểu tấncông vượt đường dẫn Hacker có thể yêu cầu máy chủ gởi kết quả là nội dungcủa những tập tin nằm ngoài thư mục www/root có thể là /etc/password
Ví dụ: Hacker vào trang web đọc thông tin
http://www.example.com/ / /index.html
nhưng nếu Hacker thay đổi tập tin cần truy xuất như sau:
http://www.example.com/get/process.php./ / / /etc/password
Vậy là Hacker có thể truy cập đến thư mục chứa toàn bộ password của
hệ thống máy chủ Như vậy thì anh ta đã có những gì anh ta cần
2.4.1.3 Kí tự rỗng
Nhiều ứng dụng WEB thường sử dụng ngôn ngữ lập trình như C, java
để tạo modul xử lý những công việc như thao tác với những dữ liệu nhập vào
từ người dùng Hacker lợi dụng kí tự kết thúc chuỗi sẽ thêm vào trong nhữngđoạn code nhằm đánh lừa các ứng dụng
Trang 37Ví dụ: Giả sử đưa vào chuỗi như thế này “123\0456” thì qua chươngtrình lập trình bằng C, chuỗi này có thể bị cắt ngắn còn lại là 123 vì C xem \0
là dấu hiệu kết thúc chuỗi Đây cũng chính là điểm yếu mà Hacker lợi dụngvào, mục đích chính của nó chính là lợi dụng điều này có thể vượt qua cáckhâu kiểm tra nội dung chuỗi
2.5.2 Thao tác trên các tham số truyền
2.5.2.1 Thao tác trên URL
Khi nhập một form HTML thì kết quả sẽ được gởi đến máy chủ thông qua 2cách: GET hay POST Nếu dùng GET, thì tất cả các tên biến và giá trị của nóxuất hiện trong chuỗi URL
- Ví dụ 1: Trang web cho phép thành viên đăng nhập và thanh URL
http://www.example.com/login?user=vuthanh&pass=123
User: tên tài khoản người dùng
Pass: mật khẩu của người dùng
- Ví dụ 2: Giả sử muốn thay đổi mật khẩu của người quản trị
http://www.example.com/example?user=admin&newpass=123456
User: tên tài khoản người dùng
Newpass: thay đổi mật khẩu của người dùng
Qua ví dụ trên có thể thấy được Hacker có thể lợi dụng lỗ hổng này đểthay đổi mật khẩu bất kì người dùng nào kể cả người quản trị viên Chính vìthế mà trong các form đăng nhập thường thì sử dụng phương thức truyền làPOST POST cũng giống như GET nhưng nó khác ở chỗ GET thì hiện cácthông tin lên URL rồi truyền đi còn POST thì lại chạy ngầm, gởi các thông tinngầm đến cho máy chủ web nên mắt thường không thể thấy được nhưng nóinhư vậy là Hacker không thể biết được, chỉ cần nó sử dụng các phần mềmquét thì có thể thấy được Tuy GET bảo mật kém nhưng hiện đang được sử
Trang 38dụng rất rộng rãi và chỉ khi nào cần đăng nhập hay gởi các thông tin quantrọng thì mới sử dụng phương thức POST.
Thao tác với biến ẩn trong Form
Thông tin có thể được chuyển đổi thông qua một biến ẩn của form, gọi
là Hidden Form Field Biến ẩn form không hiển thị trên màn hình trình duyệtnhưng người dùng có thể tìm thấy nội dung của nó trong “ view source ” vìthế đây là một điểm yếu để Hacker lợi dụng bằng cách lưu nội dung trangweb xuống trình duyệt, thay đổi nội dung trang và gửi đến trình chủ
Ngoài việc thay đổi nội dung biến ẩn của form, Hacker còn biến đổi nội dungcác thành phần trong form như chiều dài của một ô nhập dữ liệu để thực hiệnviệc tấn công “buffer overflow”, …
Ví dụ: Các trang web bán hàng trực tuyến, Hacker có thể lợi dụng lỗhổng này thay đổi giá các sản phẩm mà trang bán hàng trực tuyến quy định.Giá chính của sản phầm là 200$ nhưng Hacker đã sửa lại thành 2$ và sau đótruy vấn lên máy chủ WEB
<form method=”post” action=”page.aspx”>
<input type=”hidden” name=”price” value=”200”>
Product name: <input type=”text” name=”product”value=”Product”/></br>
Product price: 200</br>
<input type=”submit” value=”submit”>
</form>
Thao tác với Cookie
Cookie là thành phần lưu trữ thông tin bảo mật nhất nên Cookie thườngđược dùng để lưu trữ trạng thái cho giao thức HTTP Nó còn dùng được dùng
để lưu thông tin của người dùng khi sử dụng ứng dụng và những dữ liệu kháccủa Session Tất cả các loại Cookie đều có thể bị thay đổi trong quá trìnhtruyền từ người sử dụng đến máy chủ web Do đó Hacker có thể thay đổi nộidung Cookie nhằm phá hoại ứng dụng web hay nhằm một mục tiêu nào đấy
Trang 39Ví dụ sau sẽ trình bày cách thay đổi một Cookie.
Ví dụ: Cookie lưu trữ thông tin về tài khoản gởi tiền ngân hàng
Cookie: lang=en-us; ADMIN=no; y=1; time=8:30GMT;
Cookie xác định người dùng này không phải là Admin, nhưng nếuHacker thay đổi trường ADMIN này thì sao? Như vậy thì Hacker sẽ có quyềnquản trị trên trang web hay ứng dụng web này với sự thay đổi sau:
Cookie: lang=en-us; ADMIN=yes; y=1; time=15:30GMT;
2.5.3 Chiếm hữu phiên làm việc
Ấn định phiên làm việc (Session Fixation)
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 đó, nghiễnnhiên trở thành người dùng hợp lệ và khai thác thông tin hay với mục đíchnào đó tại máy chủ
Ví dụ: Attacker muốn chiếm được phiên làm việc của người dùng nào đấyđang sử dụng tài khoản ngân hàng
(1) và (2) bước này Attacker sẽ thiết lập một phiên làm việc hợp lệ vớimáy chủ bằng cách đăng nhập tài khoản của mình vào Như vậy đã có mộtphiên làm việc hợp lệ từ máy chủ ngân hàng
(3) Sau khi đã đăng kí một phiên làm việc hợp lệ xong, Attacker mớigởi một email hay bằng mọi cách buộc người dùng phải click chuột vàođường dẫn với ID phiên làm việc của Attacker thì khi click vào đường đẫnđấy nó sẽ chuyển hướng đến máy chủ ngân hàng và yêu cầu nhập tài khoản,mật khẩu vào như bước (4)
(5) Như vậy người dùng đã đăng nhập vào máy chủ của trang web ngânhàng với ID phiên làm việc là do Attacker ấn định trước ID phiên củaAttacker và ID phiên của người dùng thực chất là một
(6) Attacker đăng nhập vào trang web ngân hàng bằng tài khoản của
Trang 40người dùng và thực hiện được các ý đồ như Attacker muốn.
Với kỹ thuật này thì Attacker có thể dễ dàng qua mặt được các máy chủmặt dù đã kiểm tra ID phiên làm việc
Hình 2.12 Ấn định phiên làm việc
Đánh cắp phiên làm việc (Session Hijacking)
Là kỹ thuật tấn công cho phép Hacker mạo danh người dùng hợp lệ saukhi 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
Khác với kiểu tấn công ấn định phiên làm việc, Hacker đánh cắp một Session
ID của người dùng khi họ đang trong phiên làm việc của mình Và để đánhcắp Session ID của người dùng, Hacker có thể sử dụng các phương pháp sau:
Dự đoán phiên làm việc (Prediction Session ID)
Hacker phải là người dùng hợp lệ của hệ thống, sau vài lần đăng nhậpvào hệ thống, Hacker xem xét giá trị Session ID nhận được từ đó tìm ra quyluật phát sinh và từ đó có thể đoán được giá trị của một phiên làm việc củangười dùng kế tiếp
Kỹ thuật này rất khó khăn và xác xuất là không cao đòi hỏi Hacker phải
có tính kiên trì và đầu óc thông minh nên phương pháp này rất ít xài Giả sửmáy chủ web sử dụng “random” để cấp pháp Session ID thì Hacker không thể
dò ra phiên làm việc được Việc này giống như “ôm cây đợi thỏ” vậy