Xuất phát từ thực tế trên, luận văn tiến hành khảo sát tình hình bảo mật thông tin website, phân tích các hướng tấn công mà kẻ mạo danh có thể sử dụng để đánh chiếm quyền quản trị websit
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
VIỆN ĐẠI HỌC MỞ HÀ NỘI
LUẬN VĂN THẠC SĨ
MỘT SỐ HÌNH THỨC TẤN CÔNG VÀ GIẢI PHÁP PHÒNG CHỐNG TẤN CÔNG ỨNG DỤNG TRANG THÔNG TIN ĐIỆN TỬ KÊNH
TRUYỀN HÌNH CAND (ANTV)
ĐOÀN THỊ KIM DUNG
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
MÃ SỐ: 60480201
HƯỚNG DẪN KHOA HỌC: PGS TS ĐOÀN VĂN BAN
HÀ NỘI - 2017
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của bản thân Các số liệu, kết quả trình bày trong luận văn này là số liệu thực tế hoàn toàn trung thực Những tài liệu được sử dụng trong luận văn có nguồn gốc và trích dẫn rõ ràng, đầyđủ
Hà nội, 08 tháng 12 năm 2017
Đoàn Thị Kim Dung
Trang 3LỜI CẢMƠN
Trước hết, tôi xin bày tỏ lòng biết ơn sâu sắc và chân thành tới thầy giáo hướng dẫn khoa học: PGS.TS Đoàn Văn Ban, người đã tận tình chỉ bảo, hướng dẫn tôi trong suốt quá trình làm luận văn Sự giúp đỡ quý báu của thầy giáo về mặt định hướng nghiên cứu khoa học và là nguồn động viên tinh thần rất lớn giúp tôi hoàn thành luận văn của mình
Tôi xin cảm ơn tất cả các thầy cô giáo đã hết lòng giúp đỡ tôi trong suốt quá trình học tập
Tôi xin cảm ơn tập thể lớp và bạn bè đã hỗ trợ tôi trong những ngày tháng học tập tại Viện
Tôi cũng xin cảm ơn gia đình đã động viên tôi trong suốt thời gian hoàn thành luận văn này
Trang 4MỤC LỤC
MỞ ĐẦU 7
CHƯƠNG 1CÁC DỊCH VỤ CỦA WEB VÀ VẤN ĐỀ ĐẢM BẢO AN NINH THÔNG TIN 10
1.1 Tình hình an ninh mạng trong nước và thế giới 10
1.2 Các khái niệm trong ứng dụng web 12
1.2.1 Ngôn ngữ lập trình 13
1.2.2 Hosting và tên miền 16
1.2.3 Cơ sở dữ liệu 16
1.2.4 Cookies 16
1.2.5 Session 17
1.3 Các dịch vụ web 18
1.3.1 Đặc điểm 18
1.3.2 Ưu diểm và nhược điểm của Web service 18
1.3.3 Các thành phần của Web service 20
1.3.4 Quy trình xây dựng Web service 25
1.3.5 An toàn cho dịch vụ Web 27
1.4 Các lỗi bảo mật hệ thống ứng dụng trên nền web 28
1.5 Nguy cơ bị tấn công của ứng dụng web 29
1.6 Kết luận chương 30
CHƯƠNG 2MỘT SỐ KỸ THUẬT TẤN CÔNG VÀ BIỆN PHÁP PHÒNG TRÁNH 31
2.1 Tấn công từ chối dịch vụ (DDOS) 31
2.1.1 Khái niệm 31
2.1.2 Cách thức tấn công 32
2.1.3 Các dạng tấn công 32
2.1.4 Mô hình tấn công DDoS 34
2.1.5 Phân loại tấn công DDoS 35
2.1.6 Khó khăn trong việc phòng chống 38
2.1.7 Biện pháp phòng chống 39
2.2 Tấn công CSRF 40
Trang 52.2.1 Khái niệm CSRF 40
2.2.2 Các đặc tính của tấn công CSRF 40
2.2.3 Các hình thức tấn công CSRF 41
2.2.4 Cách phòng chống và bảo mật 47
2.3 Tấn công XSS 49
2.3.1 Khái niệm 49
2.3.2 Các thức tấn công 50
2.3.3 Các dạng tấn công 50
2.3.4 Biện pháp phòng chống 51
2.3.5 Kiếm tra lỗi XSS 52
2.4 Một số lỗ hổng bảo mật khác phổ biến nhất hiện nay 53
2.4.1 Lỗi Hearbleed 53
2.4.2 Khai thác qua Phishing 54
2.4.3 Một số giải pháp phòng chống tấn công 54
2.5 Một số công cụ tấn công 55
2.5.1 Maxisploit Scanner 55
2.5.2 Paros Proxy 56
2.6 Kết luận 56
CHƯƠNG 3THỰC NGHIỆM TẤN CÔNG WEBSITE KÊNH TRUYỀN HÌNH CAND (ANTV) 57
3.1 Đặt bài toán 57
3.1.1 Mô tả bài toán tấn công và phòng thủ 57
3.1.2 Xác định yêu cầu và chức năng của ứng dụng 57
3.1.3 Môi trường và công cụ thực hiện 58
3.2 Tấn công ứng dụng web 59
3.2.1 Tấn công CSRF 59
3.2.1 Tấn công XSS 63
3.3 Kết quả thực nghiệm 67
3.4 Giải pháp phòng chống tấn công 67
3.4.1 Giải pháp phòng chống CSRF 67
3.4.2 Giải pháp phòng chống XSS 68
Trang 63.5 Kết luận 68 KẾT LUẬN 69 TÀI LIỆU THAM KHẢO 70
Trang 7DANH MỤC CÁC TỪ VIẾT TẮT
DDoS - Tấn công từ chối dịch vụ (DistributedDenial of Service) CSRF – Tấn công CSRF ( Cross Site Request Forgery)
XXS – Tấn công XSS (Cross Site Scripting)
XML – Extensible Markup Language
HTML – Hyper Text Markup Language
Trang 8DANH MỤC HÌNH VẼ
Hình 1 1: Biểu đồ thống kê số lượng lỗ hổng bảo mật từ 2010-2014[1] 10
Hình 1 2: Mô hình cấu trúc ứng dụng website 12
Hình 1 3: Các thành phần của Web service 20
Hình 2 1: Mô hình tấn công DDoS cơ bản 31
Hình 2 2: Mô hình tấn công DDoS 33
Hình 2 3 Kẻ tấn công sử dụng Agent Handler để tấn công 34
Hình 2 4: Kẻ tấn công sử dụng các mạng IRC 34
Hình 2 5: Hiển thị tấn công DOS – đang tấn công Smurt sử dụng gói ICMP làm ngập các giao tiếp khác 35
Hình 2 6: Mô hình tấn công bằng các gói SYN 38
Hình 2 7 : Cơ chế tấn công CSRF 40
Hình 2 8: Cách thức tấn công chung của tấn công CSRF 42
Hình 2 9: Cách thức tấn công chung của tấn công CSRF 42
Hình 2 10 : Danh sách sản phẩm 43
Hình 2 11: Nội dung mail kèm theo mã độc 44
Hình 2 12: Tiến hành gửi nội dung cho người dùng 45
Hình 2 13: Người dùng thực hiện hành động vô tình gây thiệt hại về dữ liệu 45
Hình 2 14: Danh sách sản phẩm sau khi bị tấn công 45
Hình 2 15: Mô hình tấn công CSRF theo phương thức POST 46
Hình 2 16: Cấu trúc tấn công Cross-Site Srcipting 49
Hình 2 17: Giao diện chính của Maxisploit Scanner 55
Hình 3 1: Giao diện khi cài đặt thành công xampp 58
Hình 3 2: Giao diện localhost 59
Hình 3 3: Giao diện quản trị cơ sở dữ liệu PHPMyadmin 59
Hình 3 4: Giao diện trang chủ kênh truyền hình ANTV 59
Hình 3 5: Giao diện danh sách tin tức 60
Hình 3 6: Giao diện đăng nhập dành cho quản trị 60
Hình 3 7: Giao diện danh sách bài viết của trang 61
Hình 3 8: Thu nhập thông tin, mã bài viết là 3 61
Hình 3 9: Url xóa bài viết 61
Trang 9Hình 3 10: Tiến hành việc gửi email cho admin 62
Hình 3 11: Gửi link có kèm Url xóa bài viết 62
Hình 3 12: Người dùng nhận email, click vào link và vô tình xóa bài viết 62
Hình 3 13: Giao diện trang tin tức chi tiết của Website 63
Hình 3 14: Ta nhận thấy ở cuối mỗi bài viết đều có ô comment, đây là nơi rất dễ dàng dính lỗi bảo mật XSS 63
Hình 3 15: Kiểm tra lỗi bảo mật XSS bằng cách chèn đoạn script vào ô comment 63 Hình 3 16: Màn hình hiện lên popup, như vậy website bị lỗ hổng bảo mật XSS 64
Hình 3 17: Truy vấn lấy cookie người dùng 64
Hình 3 18: Thực hiện việc đánh cắp cookie người dùng lưu trữ tại server riêng 64
Hình 3 19: Đoạn code mô phỏng việc lấy thông tin từ website gửi về 65
Hình 3 20: Toàn bộ thông tin cookie đã được đánh cắp 65
Hình 3 21: Bài viết chính thức trên website 66
Hình 3 22: Kẻ tấn công thực hiện việc thay đổi thông tin trên website bằng đoạn mã javascript 66
Hình 3 23: Bài viết đã bị thay đổi nội dung 66
Trang 10MỞ ĐẦU
1 Lý do chọn đề tài
Ngày nay, con người đang bước vào giai đoạn kỷ nguyên số với sự bùng nổ thông tin mạnh mẽ Các tổ chức, doanh nghiệp cũng đi theo mô hình số hóa, giới thiệu, định hướng thông tin trên Internet Việc sử dụng Internet trở nên thân quen và trở thành một công cụ không thể thiếu trong đời sống thì lợi ích của website với các
cơ quan Nhà nước và doanh nghiệp là vô cùng lớn
Internet mang lại rất nhiều lợi ích nhưng bên cạnh đó nó cũng là một con dao hai lưỡi nếu các nhà quản trị mạng quản lý không thật tốt thông tin website của mình Website được đưa lên Internet có nghĩa là đã công bố cho mọi người Và từ đây có những nguy cơ không thể lường trước được Một kẻ mạo danh có thể tấn công website, chiếm lấy quyền quản trị sau đó đưa thông tin xấu, sai sự thật làm ảnh hưởng tới uy tín của các cơ quan, doanh nghiệp.Vì vậy, bảo mật thông tin website là việc làm hết sức cấp thiết đặc biệt như trong thời điểm hiện nay
Năm 2016, hàng loạt các website, diễn đàn lớn trong nước bị tấn công như:Ngân hàng TMCP Ngoại thương Việt Nam (Vietcombank), Vietnamworks.com, Sân bay Nội Bài, Tân Sơn Nhất,…khiến bị nghẽn mạng nghiêm trọng và thông tin, mật khẩu của khách hàng đã bị đánh cắp, tin tặc lợi dụng lấy cắp tiền trong tài khoản Các cơ quan quản lý, nhà mạng và các chuyên gia an ninh thông tin của Hiệp hội An toàn thông tin (VNISA) cùng phối hợp tìm kiếm giải pháp chống lại
Tại website của kênh Truyền hình CAND, trong 4 năm hoạt động, website gặp nhiều sự cố về bảo mật thông tin mạng điển hình tháng 6/2014 và tháng 1/2016 trước Đại hội Đảng toàn quốc lần thứ 12 tại Việt Nam website truyền hình công an nhân dân gặp nhiều sự cố của một số kẻ mạo danh đãtấn công website, chiếm lấy quyền quản trị sau đó đưa thông tin xấu, sai sự thật làm ảnh hưởng tới uy tín cũng như định hướng sai thông tin của Đảng, Nhà nước và Bộ công an Vì vậy, bảo mật thông tin website là việc làm hết sức cấp thiết đặc biệt như trong thời điểm hiện nay
Xuất phát từ thực tế trên, luận văn tiến hành khảo sát tình hình bảo mật thông tin website, phân tích các hướng tấn công mà kẻ mạo danh có thể sử dụng để đánh chiếm quyền quản trị website.Sau khi đã nắm được một số phương thức tấn công,
Trang 11luận văn nêu một số phương pháp phòng chống tấn công website Cuối cùng là thực nghiệm tấn công vào website bằng một trong nhưng phương thức tấn công đã nêu
ra
Nghiên cứu về các cơ chế tấn công website như DDoS, CSRF, XSS và cách
phòng chống các nguy cơ tấn công website
3 Đối tượng và phạm vi nghiên cứu
Cụ thể là:
Các khái niệm về website, bảo mật website, tấn công website
Các khái niệm cơ bản về các hình thức tấn công, mô hình tấn công, lỗ hổng tấn công của một số hình thức tấn công DDoS, CSRF, XSS
Thực nghiệm tấn công vào website có lỗ hổng
Đưa ra giải pháp phòng chống và bảo vệ
Tìm hiểu về các hình thức, cơ chế tấn công website như DDoS, CSRF, XSS
Tìm hiểu cách thức phòng chống các cơ chế tấn công website và ứng dụng giải pháp phòng chống lên website thông tin điện tử kênh truyền hình CAND (ANTV)
Đọc tài liệu phân tích, tổng hợp lý thuyết
Nghiên cứu các tài liệu về mã hóa, hệ mật mã của các tác giả trong và ngoài nước, các bài báo, thông tin trên mạng, tìm hiểu các mô hình bảo mật,… để phát hiện các cơ chế tấn công website và đề xuất cách thức phòng chống tấn công website, ứng dụng giải pháp phòng chống lến website thông tin điện tử
Khai thác hệ thống mã nguồn mở và ngôn ngữ lập trình hướng đối tượng Java, Javascript, PHP Các cơ sở dữ liệu Mysql, Sql Server, Postgre Sql, để xây dựng ứng dụng demo cho các phương pháp tấn công
Vận dụng các lý thuyết về bảo mật website, các phương pháp tấn công, lỗ hổng trong việc xây dựng website để tiến hành tấn công
Trang 126 Bố cục của luận văn
Mở đầu
Chuơng 1: Các dịch vụ của web và vấn đề đảm bảo an ninh thông tin
Chuơng 2: Một số kỹ thuật tấn công và biện pháp phòng tránh
Chuơng 3: Thực nghiện tấn công trang thông tin điện tử truyền hình Công an nhân dân (ANTV)
Kết luận
Tài liệu tham khảo
Trang 13CHƯƠNG 1 CÁC DỊCH VỤ CỦA WEB VÀ VẤN ĐỀ ĐẢM
BẢO AN NINH THÔNG TIN 1.1 Tình hình an ninh mạng trong nước và thế giới
Theo thống kế từ tổ chức Cơ sở dữ liệu về lỗ hổng bảo mật quốc gia (NVD) công bố trong năm 2014, trung bình mỗi ngày có 19 lỗ hổng bảo mật trên các hệ điều hành máy tính được thông báo Các lỗ hổng nguy hiểm được đánh giá theo tác động bảo mật của chúng cao hay thấp, chẳng hạn như lỗ hổng cho phép tin tặc thực thi các mã độc từ xa được xem là lỗ hổng phổ biến và gây nguy cơ mất an ninh cao
Hình 1 1: Biểu đồ thống kê số lượng lỗ hổng bảo mật từ 2010-2014
(Nguồn :thông báo và dữ liệu từ Cơ sở dữ liệu về lỗ hổng bảo mật quốc gia (NVD) - Viện
nghiên cứu về các tiêu chuẩn và công nghệ quốc gia (NIST) )
Một website tồn tại quá nhiều lỗ hổng bảo mật là cơ sở để các tín tặc truy cập
và đánh cắp cơ sở dữ liệu của cá nhân, tổ chức như thông tin thẻ tín dụng, danh sách khách hàng, báo cáo tài chính, làm sai lệch quy trình hoạt động vì mục đích bất hợp pháp, …
Trang 14Tháng 6-2015, tin tặc đã phát hiện được lỗ hổng và tấn công vào Văn phòng quản lý nhân sự ở Mỹ Cuộc tấn công này khiến cho thông tin cá nhân của hơn 20 triệu người bị đánh cắp, trong đó có khoảng 5.6 triệu người bị đánh cắp cả dữ liệu vân tay
Ở Việt Nam, theo thống kê năm 2015, chỉ riêng 9 tháng đầu năm đã có 2.790 webiste của các cơ quan, doanh nghiệp tại Việt Nam bị hacker xâm nhập, trong đó
có 34 website chính chủ gov.vn và 122 website giáo dục edu.vn
Trong diễn biến căng thẳng trước tình hình biển Đông, hacker Trung Quốc cũng tăng cường tấn công vào các cơ quan nhà nước Có 1.597 trường hợp trong đó nhiều nhóm hacker Trung Quốc tấn công thay đổi giao diện các trang web đặt tại Việt Nam, trong đó có khoảng 10 trang thuộc các cơ quan quản lý nhà nước Gần đây nhất là vụ tấn công vào hệ thống của hãng hàng không Việt Nam Airline vào cuối tháng 7/2016
Sự việc này gây ra những hậu quả vô cùng nghiêm trọng với một hệ thống lớn
và có tầm quan trọng đối với quốc gia như vậy.Khoảng 400.000 dữ liệu khách hàng của Việt Nam Airline đã bị đánh cắp Nhóm hacker tấn công trang web Vietnam Airlines tự xưng là 1937CN Tuy rất nổi tiếng với nhiều vụ tấn công tương tự với các quốc gia khác nhưng cho đến nay thông tin về nhóm hacker này còn khá ít Đầu tháng 11/2016, website https://www.vietnamworks.com chuyên về lĩnh vực tìm viêc và tuyển dụng quy mô lớn ở Việt Nam đã bị tin tặc tấn công và đánh cắp nhiều thông tin thành viên Sau đó, Cục an toàn thông tin – Bộ Thông tin và Truyền thông đã đưa ra khuyến cáo đối với người dùng có tài khoản Sự việc thậm chí còn tệ hơn khi tin tặc lấy được thông tin mật khẩu chưa được mã hóa của người dùng
Qua kiểm tra ngẫu nhiên, nhiều người dùng sử dụng chung mật khẩu cho nhiều tài khoản khác nhau kể cả tài khoản ngân hàng Hiện tại, tin tặc tấn công vẫn chưa bị phát hiện nên trong thời gian tới những cuộc tấn công có thể tiếp tục xảy ra Những vụ tấn công liên tiếp xảy ra trong thời gian gần đây nhằm vào những công ty lớn cho thấy nguy cơ mất an toàn an ninh có thể xảy ra ở bất kỳ đâu Các biện pháp phòng tránh sẽ không bao giờ thừa để bảo vệ thông tin cho công ty, doanh nghiệp trong thời đại số ngày nay [2]
Trang 151.2 Các khái niệm trong ứng dụng web
Ứng dụng web là một chương trình chạy trên nền tảng web, thường được cài đặt trên máy chủ của một Web Server trên mạng, người dùng truy cập vào mạng và
sử dụng ứng dụng này thông qua một trình duyệt web Ưu điểm của ứng dụng web như hoạt động dễ dàng, không cần cài đặt trên máy cá nhân, giao diện tùy biến, đẹp
và phong phú giúp người sử dụng có thể dễ dàng sử dụng và tương tác
Website là tập hợp nhiều trang web được tổ chức theo các danh mục Khi doanh nghiệp xây dựng website nghĩa là họ đang muốn đưa ra kênh thông tin quảng
bá về các lĩnh vực, các thông tin sản phẩm, các dịch vụ, …
Đây là một hình thức marketing online rất đơn giản mà mang lại hiệu quả cao
Để tạo nên một website động cần phải có 3 yếu tố cơ bản:
Cần phải có tên miền (domain)
Nơi lưu trữ website (hosting)
Cơ sở dữ liệu (database)
Ngày nay, với sự bùng nổ của mạng Internet, các ứng dụng web cũng phát triển đa dạng áp dụng vào nhiều lĩnh vực khác nhau như cổng thông tin điện tử, giao dịch ngân hàng, bán hàng trực tuyến, mạng xã hội, bản đồ, công cụ tìm kiếm…
Hình 1 2: Mô hình cấu trúc ứng dụng website [3]
Trang 16Cấu trúc 1 ứng dụng web thường có tầng gồm: Tầng trình bày, tầng logic và tầng cơ sở dữ liệu Tầng trình bày có nhiệm vụ hiển thị dữ liệu người dùng theo bố cục trang web thông qua trình duyệt web Tầng logic xử lý thông tin yêu cầu từ phía người dùng, có thể lấy thông tin từ cơ sở dữ liệu và trả về tầng hiện thị cho người dùng, như vậy tầng logic được xem như cầu nối.Tâng cơ sở dữ liệu là nơi lưu dữ thông tin, quản lý file và phân quyền truy cập Các hệ quản trị cơ sở dữ liệu như Mysql, Sql Server, Postgre Sql, Mongodb…
1.2.1 Ngôn ngữ lập trình
Một ứng dụng web thường được xây dựng bằng các ngôn ngữ chạy phía web server như Php, Java, C#, … Mỗi ngôn ngữ có những đặc điểm và cấu hình môi trường hoạt động khác nhau
Java là ngôn ngữ lập trình hướng đối tượng được phát triển bởi James Gosling năm 1991 Ban đầu, Java có tên gọi là Oak có nghĩa là cây sồi vì quanh nơi làm việc của ông có rất nhiều loại cây này
Năm 1995 Oak được đổi tên thành Java và được tạp chí Times bình chọn là một trong mười sản phẩm tốt nhất Java được sử dụng để làm các ứng dụng cá nhân, ứng dụng web, ứng dụng cho doanh nghiệp và ứng dụng điện thoại Một chương trình Java được biên dịch thành bytecode, sau đó sẽ chạy trên môi trường thực thi Java là sự lựa chọn của nhiều lập trình viên vì một chương trình Java có thể chạy trên mọi nền tảng ứng đúng với tiêu chí “write one, run anywhere”
Java có nhiều đặc điểm và tính năng nổi bật so với các ngôn ngữ khác
Đơn giản: Cú pháp của java dựa trên C++, gỡ bỏ nhiều đặc điểm gây
bối rối và hiếm khi được sử dụng chẳng hạn như các con trỏ tường minh, nạp chồng toán tử, … Hỗ trợ dọn rác tự động (Garbage Collection) trong Java
Hướng đối tượng: Lập trình hướng đối tượng (OOP) là một phương
pháp làm đơn giản hóa việc phát triển và duy trì phần mềm bằng việc cung cấp một số quy tắc Một số khái niệm cơ bản của hướng đối tượng (OOP) là đối: Đối tượng, tính kế thừa, tính đa hình, tính trừa tượng, tính bao đóng
Độc lập nền tảng: Một Platform là môi trường phần cứng hoặc phần
Trang 17mềm trong đó một chương trình chạy Có hai loại Platform: một loại dựa trên phần mềm (software-based) và một loại dựa trên phần cứng (hardware-based) Java cung cấp software-based platform Java Platform khác với nhiều nền tảng khác ở chỗ nó chạy ở trên các nền tảng hardware-based khác Nó có hai thành phần là Runtime Environment và API (Application Programming Interface)
Roubust: Java sử dụng hệ quản trị bộ nhớ mạnh mẽ Đó là Java sử
dụng ít con trỏ hơn để tránh các vấn đề liên quan tới bảo mật Bên cạnh
đó còn có Trình dọn rác tự động (Garbage Collection) trong Java Đó là
xử lý ngoại lệ (Exception Handling) và kiểm tra kiểu Tất cả những thứ này là cho Java là Robust
Độc lập cấu trúc: Đó là không có đặc điểm nào mà phụ thuộc vào trình
triển khai
Portable: Chương trình được biên dịch thành Java Bytecode và chạy
bất cứ nền tảng nào
Hiệu suất cao: Với việc sử dụng Just-In-Time compilers, Java giúp
nâng cao hiệu năng, giúp việc debug được dễ dàng cũng như nhanh chóng phát hiện lỗi
Phân tán: Chúng ta có thể tạo các ứng dụng phân tán trong Java RMI
và EJB được sử dụng để tạo các ứng dụng này Chúng ta có thể truy cập các file bằng việc gọi các phương thức từ bất cứ thiết bị nào trên Internet
Đa luồng: Một Thread là giống như một chương trình riêng rẽ, thực thi
một cách đồng thời Chúng ta có thể viết các chương trình Java mà xử
lý nhiều tác vụ cùng một lúc bằng việc định nghĩa nhiều Thread Lợi thế chính của Multi-thread là nó chia sẻ cùng bộ nhớ Các Thread là quan trọng cho Multi-media, Web App, …
Khác với Java, PHP là một ngôn ngữ kịch bản, thông dịch và mã nguồn mở PHP là ngôn ngữ có cú pháp đơn giản, dễ sử dụng và thời gian xây dựng sản phẩm ngắn PHP có thể nhúng vào trong các trang html để thực thi chức năng Hiện nay, Php đã phát hành phiên bản PHP 7, cung cấp nhiều tính năng mới Các ứng dụng
Trang 18lớn sử dụng Php có thể kể tới Wordpress, Facebook, …
PHP chạy trên môi trường Webserver và lưu trữ dữ liệu thông qua hệ quản trị
cơ sở dữ liệu nên PHP thường đi kèm với Apache, MySQL và hệ điều hành Linux (LAMP)
Apache là một phần mềm web server có nhiệm vụ tiếp nhận request từ trình duyệt người dùng sau đó chuyển giao cho PHP xử lý và gửi lại cho trình duyệt
MySQL cũng tương tự như các hệ quản trị cơ sở dữ liệu khác (Postgress, Oracle, SQL server, …) đóng vai trò là nơi lưu trữ và truy vấn dữ liệu
Linux: Hệ điều hành mã nguồn mở được sử dụng rất rộng rãi cho các website Thông thường các phiên bản được sử dụng nhiều nhất là RedHat Enterprise Linux, Ubuntu, …
C# là một ngôn ngữ lập trình đơn giản, hiện đại, mục đích tổng quát, hướng đối tượng được phát triển bởi Microsoft và được phê chuẩn bởi European Computer Manufacturers Association (ECMA) và International Standards Organization (ISO) C# được phát triển bởi Anders Hejlsberg và team của ông trong khi phát triển Net Framework C# được thiết kế cho Common Language Infrastructure (CLI), mà gồm Executable Code và Runtime Environment, cho phép chúng ta sử dụng các ngôn ngữ high-level đa dạng trên các nền tảng và cấu trúc máy tính khách nhau
Ngôn ngữ này được lập trình bằng công cụ Visual Studio kết hợp với cơ sở dữ liệu Sql Server hoặc Oracle Ứng dụng viết bằng ngôn ngữ này không thể chạy trên server linux và rất khó lập trình nếu như không có Visual Studio
Còn nhiều ngôn ngữ lập trình khác cũng đang trở lên phổ biến để xây dựng ứng dụng như Javascript, Python, Ruby, Go lang, …
Các kỹ thuật tấn công vào một website ngày nay chủ yếu tập trung vào những
lỗ hổng trong quá trình tạo ứng dụng của những lỗ hổng trong quá trình tạo ứng dụng của những nhà sản xuất website hơn là tấn công vào hệ thống mạng hoặc hệ điều hành
Trang 191.2.2 Hosting và tên miền
Hosting là không gian lưu trữ trên máy chủ có cài đặt các dịch vụ như world wide web (www), truyền file (FTP), Mail, … Hosting là nơi diễn ra tất cả các hoạt động trao đổi thông tin giữa website với người sử dụng Một doanh nghiệp có thể thuê hosting của nhà cung cấp dịch vụ hoặc tự trang bị máy chủ riêng tùy vào kinh phí cũng như mục đích sử dụng
Khi sử dụng Hosting cần chú ý tới hai thông tin quan trọng là dung lượng và băng thông truy cập Dung lượng hosting là không gian lưu trữ trên server Băng thông là lượng dữ liệu được truyền tải với người truy cập
Tên miền là một địa chỉ định danh trên Internet đại điện cho một website Website được truy cập bằng cách viết tên miền trên trình duyệt Tên miền cũng có nhiều loại được phân biệt với nhau bằng đuôi như tên miền tổ chức chính phủ org, tên miền giáo dục edu hoặc tên miền công ty, doanh nghiệp, tổ chức com hoặc tên miền quốc gia vn, …
Mỗi tên miền là duy nhất trên thế giới, việc mua bán tên miền có thể thực hiện thông qua dịch vụ của nhà cung cấp
1.2.3 Cơ sở dữ liệu
Để xây dựng một website động, không thể thiếu được đó là một cơ sở dữ liệu lưu trữ thông tin dữ liệu của website.Với mỗi ứng dụng web, cơ sở dữ liệu được thiết kế phù hợp
Cơ sở dữ liệu được phân chia loại thành cơ sở dữ liệu dạng file, cơ sở dữ liệu quan hệ, cơ sở dữ liệu bán cấu trúc, cơ sở dữ liệu hướng đối tượng Các ngôn ngữ lập trình sẽ truy vấn dữ liệu từ cơ sở dữ liệu và hiển thị lên trang web Ngoài ra, các
hệ quản trị cơ sở dữ liệu như My Sql, Sql Server, Postgres, … được phát triển để thao tác với cơ sở dữ liệu
1.2.4 Cookies
Cookies là một đoạn dữ liệu được ghi vào đĩa cứng hoặc bộ nhớ của máy người sử dụng Nó được trình duyệt gửi ngược lên lại server mỗi khi trình duyệt tải một trang web từ server Những thông tin được lưu trữ trong cookies hoàn toàn phụ thuộc vào website trên server Mỗi website có thể lưu trữ những thông tin khác nhau trong cookie, ví dụ thời điểm lần cuối ta ghé thăm website, đánh dấu ta đã login hay
Trang 20chưa
Cookie được tạo ra bởi website và gửi tới trình duyệt, do vậy hai website khác nhau (cho dù cùng host trên một web server) sẽ có hai cookie khác nhau gửi tới trình duyệt
Ngoài ra, mỗi trình duyệt quản lý và lưu trữ cookie theo cách riêng của mình, cho nên hai trình duyệt cùng truy cập vào một website sẽ nhận được hai cookie khác nhau
Mỗi máy ở phía người dùng có thể lưu trữ được số lượng lớn cookies, khoảng
300 cookies.Kích thước tối đa cho một cookie là 4KB.Mỗi website giới hạn khoảng
20 cookies Nếu vượt quá giới hạn lưu trữ, máy phía người dùng tự động xóa đi những cookies ít sử dụng hoặc không còn sử dụng
1.2.5 Session
Session là phiên bản làm việc, mục đích của nó đơn giản để lưu trữ một biến
và duy trì biến đó tồn tại từ trang này sang trang khác Nếu như với các biến thông thường, khi trang web bắt đầu thực thi, biến đó sẽ được cấp phát bộ nhớ, lưu giá trị
và thu hồi vùng nhớ sau khi trang kết thúc Session sẽ khác, nó có thể được tạo ra, tồn tại trên server, có thể xuyên từ trang này sang trang khác, chỉ mất đi khi ta xóa, hết hạn hoặc tắt trình duyệt
Session khi sinh ra được lưu trên một file có tên dài dòng, khó đoán và tạo ngẫu nhiên là session id trên máy chủ và đồng thời ở máy client cũng có một cookie sinh ra có nội dung đúng như session ID đối với mỗi ngôn ngữ lập trình web sẽ có tên cookie quy trình như Php là PHPSESSID, Jsp là JSESSIONID, …Các giá trị của biến session sẽ được lưu trong file
Ứng dụng: Thông thường session được ứng dụng vào việc quản lý đăng nhập,
đăng xuất của thành viên Với những tác vụ cần xác nhận là thành viên mới sử dụng được, chúng ta cần yêu cầu thành viên đăng nhập vào hệ thống.Nhưng nếu chỉ dùng biến thông thường thì mỗi lần cần thực hiện lại đăng nhập vào
Trong khi ấy, nếu dùng session thì sau khi đăng nhập, 1 biến session được tạo
ra, thì biến này sẽ tồn tại từ trang này sang trang khác, như thế khi cần thực hiện tác
vụ khác cần đăng nhập, ta chỉ cần kiểm tra xem có tồn tại biến session này hay chưa
là đủ Nếu tồn tại rồi thì thôi, chưa tồn tại thì đăng nhập
Trang 211.3 Các dịch vụ web
Web service là những dịch vụ web khác với khái niệm web thông thường Web service trả về người dùng các thông tin dữ liệu dạng thô, các ứng dụng như ứng dụng web, ứng dụng điện thoai, … sẽ chế biến dữ liệu sau đó hiển thị cho người dùng cuối trên giao diện
Các ứng dụng có thể sử dụng một hoặc nhiều Web service để thực hiện theo chức năng của ứng dụng Với sự phát triển và lớn mạnh của Internet, Web service thật sự là một công nghệ đáng được quan tâm để giảm chi phí và độ phức tạp trong tích hợp và phát triển hệ thống
1.3.1 Đặc điểm
Web Service mô tả một cách thức chuẩn để tích hợp các ứng dụng trên nền tảng Web, sử dụng các chuẩn XML (Extensible Markup Language), UDDI (Universal Description, Discovery and Integration), SOPA (Simple Object Access Protocol), WSDL (Web Service Description Language) thông qua giao thức Internet
Web service có khả năng giúp cho việc tương tác trong những môi trường khác nhau trở lên đơn giản Các ứng dụng web thường được triển khai trên các môi trường phù hợp với ngôn ngữ lập trình Khi được xây dựng trên môi trường khác nhau, các thành phần trong ứng dụng cần một chuẩn để giao tiếp và trao đổi thông tin với nhau Môi trường kết nối giữa các thành phần có thể trong mạng cục bộ hoặc qua mạng Internet Một ứng dụng khi được triển khai sẽ hoạt động theo mô hình client-server Nó có thể được triển khai bởi một phần mềm ứng dụng phía server ví
dụ Apache, Mysql Server, Jboss hay Net…
Ngày nay, các ứng dụng tích hợp Web service đã phát triển rất mạnh mẽ, đặc biệt trong điều kiện thương mại điện tử đang bùng nổ và phát triển không ngừng cùng với sự lớn mạnh của Internet Bất kì một lĩnh vực nào trong cuộc sống cũng có thể tích hợp công nghệ Web service Tích hợp Web service mang lại sự tiện lợi và khả năng tái sử dụng cao Do vậy, việc phát triển và tích hợp các ứng dụng với Web service đang là hướng đi đúng đắn trong tương lại
1.3.2 Ưu diểm và nhược điểm của Web service
1.3.2.1 Ưu điểm của Web service
Trang 22Web Service có những ưu điểm chính sau:
Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép các tiến trình, chức năng nghiệp vụ đóng gói trong giao diện dịch vụ Web
Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán
Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành hoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh nghiệp khác
Khả năng vượt tưởng lửa: Web service hoạt động trên nền HTTP nên
sử dụng cổng 80, là cổng mà tưởng lửa cho phép
Hoạt động trên đa môi trường: Web service dựa trên công nghệ XML được hỗ trợ bởi tất cả các hệ điều hành kể cả môi trường di động
Tính linh hoạt, dễ chuyển đổi: Web Service chỉ bao gồm các hàm nên việc thay đổi dễ dàng và giảm chi phí đường truyền do truyền dữ liệu không định dạng HTML
Sử dụng các giao thức và chuẩn mở Giao thức và định dạng dữ liệu dựa trên văn bản, giúp các lập trình viên dễ dàng hiểu được
1.3.2.2 Nhược điểm của Web service
Mặc dù Webservice có nhiều ưu điểm như trên, nó vẫn còn tồn tại một số nhược điểm sau:
Có quá nhiều chuẩn cho dịch vụ Web khiến người dùng khó nắm bắt
Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật
Phụ thuộc nhiều vào công nghệ
Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của Dịch vụ Web, giao diện không thay đổi, có thể lỗi nếu một máy khách không được nâng cấp, thiếu các giao thức cho việc vận hành
Trang 231.3.3 Các thành phần của Web service
Các thành phần trong Web service được mô tả trong hình
Hình 1 3: Các thành phần của Web service [5]
Tầng vận chuyển (Transport) có nhiệm vụ truyền thông điệp giữa các ứng dụng mạng, bao gồm các giao thức như HTTP, SMTP, JMS và gần đây nhất là giao thức thay đổi khối mở rộng (Blocks Extensible Exchange Protocol – BEEP)
Tầng giao thức tương tác dịch vụ (Service Communication Protocol) với công nghệ chuẩn là SOAP SOPA cho phép người dùng triệu gọi một service từ xa thông qua message XML Có nhiệm vụ giải mã các thông điệp theo định dạng XML để có thể hiểu được ở mức ứng dụng tương tác với người dùng
Tầng mô tả dịch vụ (Service Description) sử dụng để miêu tả các giao diện chung cho một dịch vụ Web cụ thể với công nghệ chuẩn là WSDL
và XML WSDL thường được sử dụng cho mục đích này, nó là một ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML Web service sẽ sử dụng ngôn ngữ này để truyền tham số và các loại dữ liệu cho các thao tác và chức năng mà dịch vụ Web cung cấp
Trang 24 Tầng dịch vụ (Service) cung cấp các chức năng của service
Tầng (Business Process) tiến hành các bước xử lý thông tin đầu vào để cho kết quả đầu ra theo yêu cầu, là các hoạt động có tính chất nghiệp
vụ
Tầng đăng ký dịch vụ (Service Registry) với công nghệ chuẩn là UDDI UDDI dùng cho cả người dùng và SOAP server, nó cho phép đăng ký dịch vụ để người dùng có thể gọi thưc hiện service từ xa qua mạng, hay nói cách khác một service cần phải được đăng ký để cho phép các client
có thể gọi thực hiện
1.3.3.1 XML – Extensible Markup Language
XML là một chuẩn mở do W3C đưa ra cho cách thức mô tả dữ liệu, nó được
sử dụng để định nghĩa các thành phần dữ liệu trên trang web và cho những tài liệu B2B
XML là viết tắt của Extensible Markup Language, tạm dịch là ngôn ngữ đánh dấu mở rộng XML là ngôn ngữ xây dựng cấu trúc tài liệu văn bản, được thiết kế dựa trên SGML Standard Genrealized Markup Language) theo tiêu chuẩn ISO 8879 nhằm phục vụ việc quản trị các tài liệu điện tử XML được xây dựng từ dưới sự chỉ đạo của W3C từ năm 1996 và chính thức thông qua vào 2/1998
Do dịch vụ Web là sự kết hợp của nhiều thành phần khác nhau nên nó sử dụng các tính năng và đặc trưng của các thành phần đó để giao tiếp XML là công cụ chính để giải quyết vấn đề này và là kiến trúc nền tảng cho việc xây dựng một dịch
vụ Web, tất cả dữ liệu sẽ được chuyển sang định dạng thẻ XML Khi đó, các thông tin mã hóa sẽ hoàn toàn phù hợp với các thông tin chuẩn của SOAP hoặc XML-RPC và có thể tương tác với nhau trong một thể thống nhất
Ngôn ngữ XML không chỉ dùng để mô tả sự trình bày nội dung tài liệu và còn
có phương pháp định ra nội dung, sắp xếp cấu trúc, từ vựng cà cú pháp của dữ liệu XML có cấu trúc mã chặt chẽ, tách biệt nội dung ra khỏi hình thức của dữ liệu và mang lại thông tin đầy đủ về dữ liệu
Điều này góp phần hỗ trợ cho việc tìm kiếm và sử dụng thông tin được dễ dàng hơn, cho phép hiển thị cùng một tài liệu trên một số ứng dụng hoặc thiết bị ngoại vi khác nhau mà không phải tạo ra phiên bản tài liệu mới, giống như một
Trang 25Với XML, các thẻ có thể được lập trình viên tự tạo ra trên mỗi trang web và được chọn là định dạng thông điệp chuẩn bởi tính phổ biến và hiệu quả mã nguồn
Cấu trúc của XML:
Một tài liệu XML bao gồm 2 phần:
Cấu trúc logic: định nghĩa các phần tử, các thuộc tính, các kiểu dữ liệu, …
Cấu trúc vật lý: chứa dữ liệu và các phần tử chứa dữ liệu như text, image, media
1.3.3.2 UDDI – Universal Description, Discovery and Integration
UDDI là một thư mục để lưu trữ các thông tin về các Web Service
Để có thể sử dụng các dịch vụ, trước tiên client phải tìm dịch vụ, ghi nhận thông tin về cách sử dụng và biết được đối tượng nào cung cấp dịch vụ UDDI định nghĩa một số thành phần cho biết các thông tin này, cho phép các client truy tìm và nhận những thông tin được yêu cầu khi sử dụng dịch vụ Web
Những thông tin về dịch vụ Web được sử dụng và công bố lên mạng sử dụng giao thức này.Nó sẽ kích hoạt các ứng dụng để tìm kiếm thông tin của dịch vụ Web
Trang 26khác nhằm xác định dịch vụ nào sẽ cần đến nó
UDDI là một nơi mà các nhà cung cấp cho phép khách hàng đăng kí dịch vụ
để sử dụng các chức năng của web service UDDI sẽ định vị các thông tin về các web service được cung cấp bởi các nhà cung cấp dịch vụ, danh sách các nhà cung cấp dịch vụ trên web service nào đó, chi tiết về kĩ thuật sử dụng (API) web service
do mình đưa ra
UDDI cung cấp các chuẩn kỹ thuật để mô tả, khám phá và tập hợp các cài đặt dựa trên Internet Các đặc tính kĩ thuật phát triển nhanh chóng vì nó nhận được phản hồi nhanh nhạy từ các cài đặt, những cài đặt này xác nhận các khái niệm và cung cấp nền tảng kinh nghiệm phong phú cho việc hoàn thiện các đặc tả sau này
Trong kinh doanh, nó giúp mở rộng và đơn giản hóa các giao dịch giữa các doanh nghiệp (B2B), tạo mối quan hệ giữa nhà sản xuất với các khách hàng khác nhau, mỗi khách hàng ứng với một tập các giao thức và các chuẩn hỗ trợ miêu tả dịch vụ rất linh hoạt sử dụng bất kỳ giao thức tương tác nào, lấy dữ liệu từ các nhà cung cấp khác trong cùng một lĩnh vực có liên quan, cung cấp “cửa hàng một cửa” cho việc tìm kiếm thông tin về dịch vụ điện tử và thương mại
UDDI dựa vào những chuẩn đã có như là ngôn ngữ đánh dấu mở rộng (XML)
và giao thức truy cập đối tượng đơn giản SOAP để xây dựng nền tảng cho việc đăng
ký, các đặc tính (như quan hệ kinh doanh), giải quyết những vấn đề quan trọng cho việc phát triển dịch vụ web như: bảo mật, tăng cường quốc tế hóa, khả năng tương tác nội bộ và hàng loạt các cải tiến hàm API để cải tiến công cụ tốt hơn
1.3.3.3 WSDL – Web Service Description Language
WSDL định nghĩa cách mô tả dịch vụ Web theo cú pháp tổng quát của XML, bào gồm các thông tin:
Tên dịch vụ
Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm dịch vụ Web
Loại thông tin: thao tác, tham số, những kiểu dữ liệu
Một WSDL hợp lệ gồm hai phần: phần giao và phân thi hành mô tả thông tin truy xuất cơ sở dữ liệu Cả hai phần này sẽ được lưu trong 2 tập tin XML tương ứng
là tập tin giao diện dịch vụ và tập tin thi hành dịch vụ Tên, giao thức liên kết và
Trang 27định dạng thông điệp yêu cầu để tương tác với dịch vụ Web được đưa vào thư mục WSDL
WSDL thường được sử dụng kết hợp XML schema và SOAP để cung cấp dịch
vụ Web quan Internet Một client khi kết nối tới dịch vụ Web có thể đọc WSDL để xác định những chức năng sẵn có trên server Sau đó, client có thể sử dụng SOPA
để lấy ra chức năng chính xác có trong WSDL
1.3.3.4 SOAP – Simple Object Access Protocol
Các dịch vụ Web có thể được truy xuất bằng một giao thức là Simple Object Access Protocol – SOAP SOAP là một giao thức giao tiếp có cấu trúc như XML
Nó được xem là cấu trúc xương sống của các ứng dụng phân tán được xây dựng từ nhiều ngôn ngữ và các hệ điều hành khác nhau SOAP là giao thức thay đổi các thông điệp dựa trên XML qua mạng máy tính, thông thường sử dụng giao thức HTTP
Một client sẽ gửi thông điệp yêu cầu tới server và ngay lập tức server sẽ gửi những thông điệp trả lời tới client Cả SMTP và HTTP đều là những giao thức ở lớp ứng dụng của SOAP nhưng HTTP được sử dụng và chấp nhận rộng rãi hơn bởi ngày nay nó có thể làm việc rất tốt với cơ sở hạ tầng Internet Thông điệp theo định dạng SOAP là một văn bản XML bình thường bao gồm các phần tử sau:
Phần tử gốc – envelop: Phần tử bao trùm nội dung thông điệp, khai báo văn bản XML như là một thông điệp SOAP
Phần tử đầu trang – header: Chứa các thông tin tiêu đề cho trang, phần
tử này không bắt buộc khai báo trong văn bản Header còn có thể mang lại những dữ liệu chứng thực, những chữ ký số, thông tin mã hóa hay cài đặt cho các giao dịch khác
Phân tử khai báo nội dung chính trong thông điệp – body, chứa các thông tin yêu cầu và thông tin được phản hồi
Phần tử đưa ra các thông tin về lỗi – faulf, cung cấp thông tin lỗi xảy ra trong quá trình xử lý thông điệp
Trang 281.3.4 Quy trình xây dựng Web service
Có 4 giai đoạn chính để xây dựng một Webservice là xây dựng, triển khai, tiến hành và quản lý
Giai đoạn xây dựng bao gồm phát triển và chạy thử web, xây dựng các chức năng và định nghĩa dịch vụ Có 2 cách khác nhau để tiến hành trong giai đoạn này
đó là Red-Path-Sold và Blue – Path – Dashed Với Red – Path – Solod chúng ta có thể xây dựng một dịch vụ web mới từ trạng thái ban đầu hoặc với một dịch vụ đã có sẵn
Từ đó xây dựng định nghĩa service (WSDL), với các đối tượng hàm chức năng
mà chúng ta mong muốn Nếu theo cách Blue – Path – Dashed, dịch vụ web se được xây dựng từ ban đầu hoặc từ một định nghĩa dịch vụ WSDL Sử dụng WSDL, xây dựng hoặc sửa đổi lại mã để thực hiện các yêu cầu mong muốn trong dịch vụ web
Giai đoạn triển khai: công bố định nghĩa dịch vụ, xây dựng WSDL và triển khai mã thực thi của dịch vụ web Triển khai một dịch vụ web tới một ứng dụng phía server, sau đó sẽ công bố dịch vụ web lên mạng Internet để các Client có thể nhìn thấy Sử dụng UDDI registry để công bố lên mạng
Giai đoạn tiến hành: tìm kiếm và thực thi dịch vụ web bởi những người dùng muốn sử dụng dịch vụ
Quản lý: quản lý và quản trị dịch vụ, duy trì sự ổn định của dịch vụ, cập nhật thông tin mới, sửa lỗi khi nó xảy ra
Để xây dựng được dịch vụ web chúng ta cần hiểu được những điểu cần phải làm và nên bắt đầu từ đâu Có 3 cách tiếp cận chủ yếu để xây dựng nên một dịch vụ web, có thể từ một ứng dụng đã có (bottom – up); từ một định nghĩa dịch vụ, WSDL để phát sinh một ứng dụng mới (top – down) hoặc có thể từ một nhóm các dịch vụ web hiện có, kết hợp lại với nhau để tạo nên các chức năng mới hoặc mở rộng thêm chức năng Những hướng tiếp cận này dựa trên những gì mà chúng ta đã
có, tùy thuộc vào yêu cầu của hệ thống, trong đó tối đa việc sử dụng lại các chức năng, các thành phần, các module được xây dựng
1.3.4.1 Quy trình xây dựng một dịch vụ web
Để xây dựng một Web service cần làm theo các bước sau:
Trang 29Bước 1: Định nghĩa và xây dựng các chức năng, các dịch vụ mà dịch vụ sẽ
cung cấp
Bước 2: Tạo WSDL cho dịch vụ
Bước 3: Xây dựng SOAP cho server
Bước 4: Đăng ký WSDL với UDDI registry để cho phép các Client có thể tìm
thấy và truy xuất
Bước 5: Client nhận file WSDL và từ đó xây dựng SOAP client có thể kết nối
tới SOAP server
Bước 6: Xây dựng ứng dụng phía Client, sau đó gọi thực hiện dịch vụ thông
qua việc kết nối tới SOAP server
Lựa chọn một ngôn ngữ, xây dựng các tiến trình nghiệp vụ và chúng ta bắt đầu tạo một dịch vụ web như ý muốn, sau đó là cung cấp dịch vụ web này lên Internet
1.3.4.2 Tích hợp Webservice theo chuẩn
Để có thể thành công với dịch vụ web chúng ta phải quan tâm đến khá nhiều vấn đề, bao gồm việc triển khai, giám sát và tích hợp hệ thống Doanh nghiệp không những phải phát triển một ứng dụng dịch vụ web mới mà còn phải tích hợp các ứng dụng nghiệp vụ phụ trợ của họ trong kiến trúc dịch vụ web Cùng với việc triển khai
và tích hợp, những nhà kinh doanh và những người sử dụng kỹ thuật cũng cần có khả năng giám sát, triển khai toàn diện để đảm bảo hoạt động kinh doanh hiệu quả
và tin cậy
Giám sát (monitoring): Cần hỗ trợ ở cả mức công cụ và cơ sở hạ tầng
để giám sát các dịch vụ web chạy như thế nào qua toàn bộ mạng, từ một chi nhánh con của một công ty trên mạng tới các chi nhánh khác trong công ty hay giao tiếp với doanh nghiệp khác Kết hợp thông báo theo sự kiện với các lỗi trong luồng nghiệp vụ cho những người dùng không có kinh nghiệm trong giám sát dịch vụ web và các dịch vụ kế thừa khác
Xác định đường đi dữ liệu (Data routing): Việc thiết lập đường đi
của dữ liệu giữa những thành phần của dịch vụ web hướng tới tối đa hóa khả năng sử dụng lại Nếu coi một thành phần (component) là một đối tượng thì mỗi thể hiện (instance) của nó sẽ không quan tâm đến các
Trang 30thể hiện khác của cùng thành phần đó Những thể hiện của cùng một thành phần có thể dễ dàng được sử dụng lại các ứng dụng phân tán khác bởi vì chúng hoàn toàn độc lập và không phụ thuộc lẫn nhau
Triển khai (deployment): Triển khai các dịch vụ web có khả năng
nâng cấp, điều khiển và cấu hình các thành phần từ xa thông qua mạng phân tán
Quản lý (management): Có thể xây dựng theo kiến trúc P2P Các hoạt
động chính như thực thi các thành phần, định tuyến các dữ liệu, xử lý luồng dữ liệu và chuyển đổi dữ liệu được thực hiện ở các điểm cuối cùng của mạng Server sẽ tập trung giải quyết các hoạt động khác như quản lý, điều khiển sự kiện, chứng thực bảo mật và quản trị
Cấu hình và quản lý phiên bản (configuration and version management): Sử dụng các công cụ linh hoạt để quản lý các phiên bản
khác nhau của dịch vụ web, cho phép các công cụ nâng cấp và điều khiển từ một công cụ web, cho phép các công cụ nâng cấp và điều khiển từ một công cụ quản lý tập trung Kết hợp giữa ứng dụng và mạng giúp các kỹ sư triển khai có thể điều khiển các thành phần chạy trên nền tảng hệ thống phần cứng cụ thể bên trong mạng
Bảo mật (security): các chuẩn mở như HTTP, SOAP, WSDL và chuẩn
bảo mật JSM được sử dụng rộng rãi khiến chúng trở thành lý tưởng để xây dựng các ứng dụng web Đầu tiên dịch vụweb sử dụng những công nghệ này giống như Firewall, SSL và các chứng nhận số Dịch vụ web thế hệ sau này sẽ kết hợp với những công nghệ có khả năng bảo mật cao hơn, giống như mã hóa XML và chứng nhận số XML
Như vậy, với dịch vụ web, việc giao tiếp và truyền nhận dữ liệu trở nên dế dàng và hiệu quả hơn, đồng thời đem lại chi phí thấp hơn và tăng cường những khả năng giao tiếp thời gian thực, kết nối với mọi người trên khắp thế giới Bản chất của nền tảng công nghệ này là kiến trúc hướng dịch vụ và sự phát triển của dịch vụ web
có tương lai rất khả quan
1.3.5 An toàn cho dịch vụ Web
Web service liên kết và tương tác với các ứng dụng qua Internet, chính vì vậy
Trang 31bảo mật là một vấn đề được quan tâm khi các công ty tiến tới kết hợp ứng dụng với một dịch vụ Web Việc đảm bảo an toàn cho Web service là một vấn đề quan trọng, đặc biệt đối với những dịch vụ liên quan đến trao đổi tiền tệ, thông tin từ thị trường chứng khoán hay dịch vụ bán hàng qua mạng
Hiện nay, việc đảm bảo an toàn cho những SOAP/HTTP dựa trên cơ chế truyền thông điệp bằng cách sử dụng giao thức HTTPS Không chỉ là an toàn ở mức truyền thông điệp, HTTPS còn cung cấp sự an toàn tới toàn bộ gói dữ liệu HTTP Mặc dù HTTPS không bao gồm tất cả các khía cạnh trong chuẩn an toàn chung cho Web service nhưng nó đã cung cấp một lớp bảo mật khá đầy đủ với định danh, chứng thực, tính toàn vẹn thông điệp hay độ tin cậy
Bên cạnh việc bảo mật đường truyền, để đảm bảo an toàn cho Web service, WS-Security được đưa ra WS-Security là một chuẩn an toàn bao trùm cho SOAP,
nó được dùng khi muốn xây dựng những dịch vụ Web toàn vẹn và tin cậy Toàn vẹn
có nghĩa là khi có một giao dịch hay khi truyền thông tin, hệ thống và thông tin sẽ không bị chặn, giao dịch khi truyền thông tin, hệ thống và thông tin sẽ không bị chặn, giao dịch sẽ không bị mất cũng như không thể có người lấy cắp được dữ liệu trên đường truyền
WS-security được thiết kế mang tính mở nhằm hướng tới những mô hình an toàn khác bao gồm PKI, Kerberos và SSL Nó cũng đưa ra nhiều hỗ trợ cho các cơ chế an toàn khác, nhiều khuôn dạng chữ ký và công nghệ mã hóa, đảm bảo sự an toàn, toàn vẹn thông điệp và tính tin cậy của thông điệp Tuy nhiên, WS-security cũng chưa thể đảm bảo được tất cả yêu cầu về bảo mật và an toàn thông tin, nó chỉ
là một trong những lớp của giải pháp an toàn cho Web service
1.4 Các lỗi bảo mật hệ thống ứng dụng trên nền web
Theo các chuyên gia bảo mật 75% các tấn công thành công của hacker trên Internet dựa vào việc khai thác các lỗ hổng, lỗi an toàn bảo mật trong các ứng dung web Website luôn bị đặt trong những tình huống tấn công bất ngờ không thể lường trước được sự nguy hiểm cũng như rủi ro
Website có thể bị tấn công qua những phương pháp như DDoS, CSRF, XSS,
… Các khái niệm cũng như giải pháp chống tấn công sẽ được trình bày rõ hơn trong Chương 2
Trang 321.5 Nguy cơ bị tấn công của ứng dụng web
Với các cá nhân, tổ chức hay doanh nghiệp thì website là công cụ hữu ích để quảng cáo, quản lý thông tin hỗ trợ đắc lực mang lại lợi nhuận và hiệu quả kinh tế cao.Tuy nhiên, nhiều doanh nghiệp lại không quan tâm, coi trọng công tác bảo mật cho website Các mỗi nguy hiểm đe dọa đến từ môi trường mạng ngày càng khó lường, nhiều lỗ hổng bảo mật mới được phát hiện và khai thác bởi các tin tặc làm cho thế giới mạng trở lên phức tạp Bảo mật website, đưa ra những giải pháp phòng chống tấn công cho website đã trở thành một điều thiết yếu với sự sống còn của doanh nghiệp
Xu hướng tấn công theo thống kê năm 2016 là tin tặc phát tán các mã độc hại trên mạng và khi người dùng bấm vào các đường link chứa mã độc hại đó, thông tin
cá nhân của họ sẽ bị đánh cắp Và một kiểu tấn công khác là các cuộc tấn công từ chối dịch vụ nhắm vào các website hoặc hệ thống mạng Các cuộc tấn công này không xâm nhập được vào hệ thống, không lấy cắp dữ liệu nhưng lại có thể làm cho dịch vụ của website bị ngưng trệ hoàn toàn Việc phòng chống các cuộc tấn công đang là một bài toán khó cho các cơ quan, doanh nghiệp hoạt động phụ thuộc vào Internet
Vì vậy, an ninh mạng nói chung và bảo mật website nói riêng đang là một vấn
đề quan trọng và cần phải được nghiên cứu, tìm hiểu và đưa ra các giải pháp và kỹ thuật mới để phòng chống, đồng thời cá nhân, tổ chức và doanh nghiệp cũng cần dành nhiều thời gian, kinh phí, nhân lực kỹ thuật để đảm bảo cho hệ thống mạng cũng như website của mình hoạt động tốt, có khả năng chống chọi và ngăn chặn trước các mối nguy hiểm và các cuộc tấn công
Việc truy cập vào ứng dụng web diễn ra ở mọi nơi có mạng Internet cũng dẫn đến việc phát hiện các lỗ hổng bảo mật và bị khai thác bởi tin tặc càng cao Một tin tặc muốn tấn công vào một website cần tìm hiểu thông tin của websitenhư web server, port, …
Việc thu nhập thông tin là vô cùng quan trọng Tiếp đó, tin tặc sẽ tiến hành tấn công chiếm đoạt thông tin, đưa dữ liệu bẩn, chiếm quyền kiểm soát hệ thống, … Cuối cùng, xóa dấu vết xâm nhập tấn công hệ thống Tùy vào mục đích mà tin tặc
sẽ xây dựng kịch bản tấn công khác nhau dựa vào thông tin đã thu nhập được ban
Trang 33lỗ hổng bảo mật để thực hiện hành vi xấu Vì vậy, không thể xem thường trước nguy cơ tấn công của tin tặc
Trang 34CHƯƠNG 2 MỘT SỐ KỸ THUẬT TẤN CÔNG VÀ
có thể làm ngừng tệ, gián đoạn mọi hoạt động của một máy tính, web server một mạng nội bộ thậm chí cả một hệ thống mạng rất lớn
Hình 2 1: Mô hình tấn công DDoS cơ bản [5]
Về bản chất của DDoS, một kẻ tấn công sẽ chiếm dụng một lượng lớn tài nguyên mạng như băng thông, bộ nhớ, … và làm mất khả năng xử lý các yêu cầu dịch vụ cho những người dùng khác Tấn công DDoS nhìn chung không nguy hiểm
Trang 35như các kiểu tấn công khác, vì kẻ tấn công ít có khả năng thâm nhập hay chiếm được thông tin dữ liệu của hệ thống
Tuy nhiên, nếu máy chủ tồn tại mà không thể cung cấp thông tin, dịch vụ cho người sử dụng thì sự tồn tại này là không có ý nghĩa, đặc biệt là các hệ thống phục
vụ giao dịch điện tử thì thiệt hại là vô cùng lớn như hệ thống ngân hàng, cổng thanh toán, thẻ tín dụng, … Đối với hệ thống máy chủ được bảo mật tốt, khó thâm nhập, việc tấn công từ chốt dịch vụ DDoS được các hacker sử dụng để phá hủy hệ thống
Phá vỡ các thông tin cấu hình như thông tin định tuyến
Phá vỡ các trạng thái thông tin như việc tự động reset lại các phiên TCP
đa dạng và phức tạp hơn như tấn công từ chốt dịch vụ phân tán DDoS (Distributed Denial of Service)
Tần công từ chốt dịch vụ phân tán DDoS có sức mạnh tăng gấp nhiều lần so với tấn công thường Hầu hết các cuộc tấn công DDoS nhằm vào việc chiếm dụng băng thông gây nghẽn mạch hệ thống, dẫn đến ngưng hoạt động hệ thống
Trang 36Hình 2 2: Mô hình tấn công DDoS [5]
Để thực hiện DDoS, kẻ tấn công tìm cách chiếm dụng và điều khiển nhiều máy tính/ mạng máy tính trung gian được gọi là botnet từ nhiều nơi để trồng trọt gửi
ồ ạt các gói tin với số lượng rất lớn nhằm chiếm dụng tài nguyên và làm tràn ngập đường truyền của một mục tiêu xác định nào đó
Tấn công từ chốt dịch vụ phản xạ nhiều vùng DRDoS (Distributed Reflection Denial of Service)
Tấn công từ chối dịch vụ phản xạ phân tán DRDoS lại là kiểu tấn công mới nhất, mạnh nhất trong các kiểu tấn công DoS Trong suốt quá trình máy chủ bị tấn công bằng DDoS, không một máy khách nào có thể kết nối được vào máy chủ đó Tất
cả các dịch vụ chạy trên nền TCP/IP như DNS, HTTP, FTP, POP3, … đều bị vô hiệu hóa Về cơ bản, DRDoS là sự phối hợp giữa hai kiểu DoS và DDoS
Kẻ tấn công thực hiện bằng cách giả mạo địa chỉ của máy chủ mục tiêu rồi gửi yêu cầu đến các máy chủ lớn như Yahoo, Microsoft, Google, … để các máy chủ này gửi các gói tin trả lời đến máy chủ mục tiêu
Quá trình cứ lặp đi lặp lại liên tục với nhiều máy chủ lớn tham gia nên máy chủ mục tiêu nhanh chóng bị quá tải, băng thông bị chiếm dụng bởi máy chủ lớn, dẫn đến máy chủ mục tiêu không thể hoạt động bình thường