Do đó, việc triển khai bảo mật cho hệ thống website để bảo đảm sự hoạtđộng liên tục của website có ý nghĩa rất quan trọng đối với các doanh nghiệp,các tổ chức quan tâm đến vấn đề an toàn
Trang 1TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
LUẬN VĂN TỐT NGHIỆP
TRIỂN KHAI VÀ NÂNG CAO BẢO MẬT CHO HỆ THỐNG
WEBSITE TRÊN HỆ ĐIỀU HÀNH LINUX
Chuyên ngành: MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG
GVHD : Ths Lê Quốc Tuấn
SVTH : HOÀNG NGỌC TUYỂN 11L1120076
LÊ THỊ KIM HƯƠNG 11L1120028
Lớp : CN11LT
TP Hồ Chí Minh, 2013
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
LUẬN VĂN TỐT NGHIỆP
TRIỂN KHAI VÀ NÂNG CAO BẢO MẬT CHO HỆ THỐNG
WEBSITE TRÊN HỆ ĐIỀU HÀNH LINUX
Ngành: CÔNG NGHỆ THÔNG TIN Chuyên ngành: MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG
GVHD : Ths Lê Quốc Tuấn SVTH : HOÀNG NGỌC TUYỂN 11L1120076
Lớp : CN11LT
Trang 2NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
TpHCM, ngày … tháng …… năm ……
Giáo viên hướng dẫn [Ký tên và ghi rõ họ tên]
Trang 4NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Khóa luận đáp ứng yêu cầu của Khóa luận kỹ sư CNTT TpHCM, ngày … tháng …… năm ……
Giáo viên phản biện [Ký tên và ghi rõ họ tên]
Trang 5LỜI CAM ĐOAN
Chúng tôi là : Họ và tên: Hoàng Ngọc Tuyển Sinh ngày:21/6/1980 Tại: Bắc Giang
Số CMND: 023 334 827 Ngày cấp: 5/10/2010 Tại: Công an TPHCM
Mã số sinh viên : 11L1120076 Lớp: CN11LT
Họ và tên: Lê Thị Kim Hương Sinh ngày: 20/4/1987 Tại Tiền Giang
Số CMND: 311 900 306 Ngày cấp: 18/9/2001 Tại : Công an Tiền Giang
Mã số sinh viên : 11L1120028 Lớp: CN11LT
Xin cam đoan rằng đây là quá trình nghiên cứu và tìm hiểu đề tài dưới sự hướng dẫn củaThầy Lế Quốc Tuấn Tài liệu tìm hiểu và nghiên cứu có nguồn trích dẫn rõ ràng Chúng tôihoàn toàn chịu trách nhiệm về kết quả nghiên cứu và tìm hiểu trong luận văn của mình
TP.HCM, ngày 27 tháng 12 năm 2013Sinh viên thực hiện
Hoàng Ngọc Tuyển Lê Thị Kim Hương
Trang 6LỜI CẢM ƠN
Lời đầu tiên, chúng tôi xin gửi lời cảm ơn chân thành đến quý thầy cô Khoa CôngNghệ Thông Tin và quý thầy cô các bộ môn khoa khác Trường Đại Học Giao Thông VậnTải TPHCM đã tạo điều kiện cho chúng tôi môi trường học tập tốt, đã dìu dắt, hướng dẫn
và chỉ dạy tận tình cho chúng tôi trong suốt hai năm qua
Chúng tôi xin chân thành cảm ơn Thầy Ths Lê Quốc Tuấn đã tận tình hướng dẫn, chỉdạy và giúp đỡ nhóm chúng tôi tìm hiểu nghiên cứu và hoàn thành khóa luận đúng thờihạn Sau cùng, chúng tôi xin kính chúc quý thầy cô Khoa Công Nghệ Thông Tin và cácthầy cô Trường Đại Học giao Thông Vận Tải TPHCM dồi dào sức khỏe, vững niềm tin đểtruyền dạy cho thế hệ mai sau những lời quý báo
TP.HCM, ngày 27 tháng 12 năm 2013
Sinh viên thực hiện
Hoàng Ngọc Tuyển Lê Thị Kim Hương
Trang 7MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT 3
LỜI MỞ ĐẦU 1
CHƯƠNG 1: TÌM HIỂU VỀ HỆ THỐNG WEBSITE TRÊN LINUX - CÁC NGUY CƠ MẤT AN TOÀN VÀ CÁC BIỆN PHÁP NÂNG CAO BẢO MẬT 5
1.1 Tìm hiểu về hệ thống website trên Linux 5 1.1.1 Website 5
1.1.2 Hệ điều hành Linux 6
1.1.3 Apache 9
1.1.4 PHP 10
1.1.5 My SQL 10
1.1.6 Tường lửa 10
1.2 Tìm hiểu về các nguy cơ mất an toàn và các biện pháp nâng cao bảo mật cho hệ thống website 12 1.2.1 Lỗi phần cứng 12
1.2.2 Lỗi kỹ thuật 14
1.2.3 Lỗi quản trị 32
1.2.4 Lỗi về con người 33
1.2.5 Lỗi về chính sách 34
CHƯƠNG 2: THIẾT KẾ VÀ THUYẾT MINH MÔ HÌNH HỆ THỐNG 35
2.1 Thiết kế mô hình 35 2.1.1 Mô hình thực tế 35
2.1.2 Mô hình giả lập 35
2.2 Thuyết minh mô hình 36 CHƯƠNG 3: HIỆN THỰC HOÁ MÔ HÌNH THIẾT KẾ 37
3.1 Cài đặt và cấu hình HĐH Linux 37 3.2 Cài đặt và cấu hình Webserver Apache 43 3.2.1 Cài đặt 43
3.2.1 Cấu hình 45
3.3 Cài đặt và cấu hình PHP, PHP Admin 48 3.3.1 Cài đặt 48
3.3.2 Cấu hình 49 3.4 Cài đặt và cấu hình MySQL 51
Trang 83.5 Cài đặt và cấu hình bảo mật trên tường lửa UTM 52
3.5.1 Cài đặt 523.5.1 Cấu hình 563.6 Quảng bá webserver ra bên ngoài qua tường lửa UTM 68
CHƯƠNG 4: KẾT LUẬN 734.1 Những kết quả đạt được 73
4.2 Hướng phát triển 73
TÀI LIỆU THAM KHẢO 75PHỤ LỤC 765.1 Cơ chế hoạt động của SSL 76
5.2 Tấn công từ chối dịch vụ 82
Trang 9DANH MỤC CÁC TỪ VIẾT TẮT
STT Từ viết tắt Viết đầy đủ
4 FTP File Transfer Protocol
5 HTTP Hypertext Transfer Protocol
Trang 10LỜI MỞ ĐẦU
1 Tính cấp thiết của đề tài
Hiện nay, với sự phát triển không ngừng của công nghệ, trong đó có côngnghệ về nội dung số mà điển hình là việc quảng bá hình ảnh, thông tin quainternet Hầu như các tổ chức, doanh nghiệp ở mọi ngành nghề, lĩnh vực khácnhau đều xây dựng cho riêng mình một trang web với mục đích quảng bá hìnhảnh, sản phẩm của doanh nghiệp đến các đối tác trên toàn thế giới Đây là mặttích cực của việc quảng bá thông tin qua website trên internet Tuy nhiên, đi đôivới nó là các nguy hiểm tiềm tàng của việc mất mát dữ liệu, các thông tin quantrọng Do đó, việc triển khai bảo mật cho hệ thống website để bảo đảm sự hoạtđộng liên tục của website có ý nghĩa rất quan trọng đối với các doanh nghiệp,các tổ chức quan tâm đến vấn đề an toàn giao dịch trên website, an toàn về cơ sở
dữ liệu hệ thống… vì nó không chỉ bảo đảm về tính toàn vẹn của dữ liệu mà cònduy trì uy tín của doanh nghiệp
Bên cạnh đó, khi website của doanh nghiệp được bảo đảm an toàn, bảomật thì lợi thế kinh doanh của doanh nghiệp được tăng lên đáng kể, doanhnghiệp sẽ tiết giảm được chi phí, thời gian, giảm thiểu các cạnh tranh không lànhmạnh hay sự phá hoại của các đối tượng khác Ngược lại, nếu vấn đề bảo mật antoàn cho hệ thống website không được chú trọng thì thiệt hại đối với doanhnghiệp là rất lớn, kể cả khả năng dẫn đến phá sản
Để hiểu rõ hơn về những vấn đề liên quan đến bảo mật, bảo đảm an toàncho hệ thống website chạy trên HĐH Linux, nhóm chúng em lựa chọn đề tài
“Triển khai và nâng cao bảo mật cho hệ thống web trên HĐH Linux” nhằm mụcđích đi vào một số giải pháp thực tế giúp giảm nguy cơ mấtan toàn cho hệ thốngwebsite
Trang 112 Tình hình nghiên cứu
Đề tài được xây dựng, nghiên cứu triển khai theo các kiến thức dựa trên
mã nguồn mở, kết hợp với nhau theo các đặc tính kỹ thuật của các sản phẩm nhưHĐH Linux, tường lửa UTM, PHP, CSDL MySQL, Apache
Website của các doanh nghiệp, tổ chức thường nhằm mục đích quảng bá hìnhảnh, giới thiệu sản phẩm, công bố thông tin Trong đó, các trang website có các
dữ liệu nhạy cảm, quan trọng như các trang web của chính phủ, các doanhnghiệp kinh doanh online, thương mại điện tử luôn được các doanh nghiệp, tổchức chú trọng nghiên cứu về bảo mật và đưa ra các giải pháp nhằm nâng caotính bảo mật của hệ thống website điển hình như:
- Các hãng phần mềm anti-virus: Mcafee, Kaspersky, Norton,Panda,
- Các hãng cung cấp các sản phẩm bảo mật như Checkpoint, Juniper,Astaro,…
- Các viện nghiên cứu, các trường đại học
Tại Việt Nam, có nhiều diễn đàn, hội nghị, hội thảo về an toàn bảo mậtliên tục được tổ chức hàng năm như:
- Ngày An Toàn Thông Tin 2012 vào ngày 16/11/2012 tại TP.HCM
- Cafe bảo mật diễn ra thường xuyên của Chi hội An Toàn Thông Tinphía Nam
- Ngày An toàn thông tin 2013 vào ngày 14/11/2013 tại HN vàTp.HCM
Các luật có liên quan đến bảo đảm an toàn thông tin trên internet như:
- Luật Giao dịch điện tử số 51/2005/QH11 của Quốc hội nướcCHXHCN Việt Nam năm 2005
- Nghị định 57/2006/NĐ-CP của Chính phủ về thương mại điện tử
- Quyết định 25/2006/QĐ-BTM của Bộ Thương mại về việc banhành Quy chế sử dụng chữ ký số của Bộ Thương mại
Trang 123 Mục đích nghiên cứu
Ngăn chặn, giảm thiểu được các cuộc tấn công vào hệ thống website dựatrên các lỗ hổng nhất định liên quan đến phần cứng, kỹ thuật, con người, chínhsách…, đảm bảo hệ thống website hoạt động liên tục, không bị gián đoạn và các
dữ liệu được bảo toàn
Đưa ra một số giải pháp nâng cao an toàn và bảo mật website, hạn chế việc
bị xâm nhập trái phép
4 Nhiệm vụ nghiên cứu
Tìm hiểu về cách thức triển khai, cài đặt xây dựng hệ thống web server vớiApache kết hợp PHP, MySQL trên hệ điều hành Linux
Tìm hiểu về cách thức triển khai, cài đặt hệ thống tường lửa UTM nhằm bảođảm an toàn cho hệ thống web server
Tìm hiểu về cách thức triển khai, nâng cao tính bảo mật cho hệ thống web
5 Phương pháp nghiên cứu
+ Phương pháp:
Thu thập dữ liệu : Tìm hiểu các thông tin về an toàn bảo mật cho hệthống website qua Internet, qua các diễn đàn công nghệ thông tin về mã nguồn
mở, qua các tài liệu liên quan đến an toàn bảo mật thương mại điện tử
Phân tích và xử lý số liệu : Dữ liệu có được sẽ được chọn lọc, phân tích,tổng hợp để chọn ra được thông tin phù hợp với mục đích nghiên cứu của đề tài.+ Đối tượng nghiên cứu:
Nghiên cứu về các vấn đề liên quan đến việc mất an toàn bảo mật của hệthống website
Nghiên cứu về các giải pháp nhằm nâng cao an toàn bảo mật cho hệthống website
+ Phạm vi nghiên cứu:
Không gian nghiên cứu: Nghiên cứu trên hệ thống máy ảo chạy HĐHLinux
Trang 13Thời gian nghiên cứu: Nghiên cứu, thực nghiệm các vấn đề liên quan trong
12 tuần
6 Các kết quả đạt được của đề tài;
Triển khai thành công hệ thống máy chủ web Apache kết hợp với PHP,MySQL trên HĐH Linux và được bảo vệ bởi tường lửa UTM
Hệ thống web server sẽ hoạt động liên tục khi có sự cố
7 Kết cấu khóa luận
- Lời mở đầu
- Chương 1: Tìm hiểu về hệ thống website trên Linux - các nguy cơ mất antoàn và các biện pháp nâng cao bảo mật
- Chương 2: Thiết kế và thuyết minh mô hình hệ thống
- Chương 3: Hiện thực hoá mô hình thiết kế
- Chương 4: Kết luận
- Tài liệu tham khảo
- Phụ lục
Trang 14CHƯƠNG 1: TÌM HIỂU VỀ HỆ THỐNG WEBSITE TRÊN LINUX - CÁC NGUY CƠ MẤT AN TOÀN VÀ CÁC BIỆN PHÁP NÂNG CAO BẢO MẬT 1.1 Tìm hiểu về hệ thống website trên Linux
1.1.1 Website
Định nghĩa:
Website là một tập hợp các trang web (web pages) bao gồm văn bản,hình ảnh, video, flash v.v… thường chỉ nằm trong một tên miền (domain name)hoặc tên miền phụ (subdomain) World Wide Web của Internet Website được lưutrữ trên máy chủ web (web server) có thể truy cập thông qua Internet hoặc mạng nội
bộ qua giao thức TCP/IP.Website có thể được xây dựng bằng nhiều ngôn ngữ lậptrình khác nhau (PHP,.NET, Java, Ruby on Rails )
Website đóng vai trò là cổng thông tin của doanh nghiệp, nơi giới thiệuthông tin về doanh nghiệp, giới thiệu, quảng bá sản phẩm hoặc dịch vụ do doanhnghiệp cung cấp… Có thể coi website chính là bộ mặt của doanh nghiệp, là nơi tiếp
nhận thông tin và giao dịch với các khách hàng, đối tác trên toàn thế giới [1]
Lịch sử:
World Wide Web (mạng lưới toàn cầu), gọi tắt là Web hoặc WWW làmột không gian thông tin toàn cầu mà mọi người có thể truy nhập (đọc và viết) quacác máy tính nối với mạng Internet Thuật ngữ này thường được hiểu nhầm là từđồng nghĩa với chính thuật ngữ Internet Nhưng Web thực ra chỉ là một trong cácdịch vụ chạy trên Internet, chẳng hạn như dịch vụ thư điện tử Web được phát minh
và đưa vào sử dụng vào khoảng năm 1990, 1991 bởi viện sĩ Viện Hàn lâm Anh TimBerners-Lee và Robert Cavay illiau (Bỉ) tạivay European Organization for NuclearResearch (được biết đến như CERN- Tổ chức Nghiên cứu nguyên tử Châu Âu),Geneva, Switzerland
Các tài liệu trên World Wide Web được lưu trữ trong một hệ thống siêuvăn bản (hypertext), đặt tại các máy tính trong mạng Internet.Người dùng phải sửdụng một chương trình được gọi là trình duyệt web (web browser) để xem siêu văn
Trang 15bản Chương trình này sẽ nhận thông tin (documents) tại ô địa chỉ (address) dongười sử dụng yêu cầu (thông tin trong ô địa chỉ được gọi là tên miền (domainname)), rồi sau đó chương trình sẽ tự động gửi thông tin đến máy chủ (web server)
và hiển thị trên màn hình máy tính của người xem Người dùng có thể theo các liênkết siêu văn bản (hyperlink) trên mỗi trang web để nối với các tài liệu khác hoặc gửithông tin phản hồi theo máy chủ trong một quá trình tương tác
Phân loại:
Có 02 loại web tỉnh (không có cơ sở dữ liệu) và web động (bao gồm các cơ
sở dữ liệu) Website thương mại điện tử là 01 trong những loại web động [2]
Trình duyệt web
Trình duyệt web là một phần mềm ứng dụng cho phép người sử dụng xem
và tương tác với các văn bản, hình ảnh, đoạn phim, nhạc, trò chơi và các thông tinkhác ở trên một trang web của một địa chỉ web trên mạng toàn cầu hoặc mạng nội
bộ Văn bản và hình ảnh trên một trang web có thể chứa siêu liên kết tới các trangweb khác của cùng một địa chỉ web hoặc địa chỉ web khác Trình duyệt web chophép người sử dụng truy cập các thông tin trên các trang web một cách nhanh chóng
và dễ dàng thông qua các liên kết đó Trình duyệt web đọc định dạng HTML đểhiển thị, do vậy một trang web có thể hiển thị khác nhau trên các trình duyệt khácnhau Một số trình duyệt web phổ biến hiện nay bao gồm Internet Explorer, MozillaFirefox, Safari, Opera, Google Chrome, [3]
1.1.2 Hệ điều hành Linux
Định nghĩa
Linux là tên gọi của một hệ điều hành máy tính và cũng là tên hạt nhân của
hệ điều hành.Nó là hệ điều hành mã nguồn mở
Lịch sử
Phiên bản Linux đầu tiên do Linus Torvalds viết vào năm 1991, lúc ôngcòn là một sinh viên của Đại học Helsinki tại Phần Lan Ông ra đời phiên bản Linux1.0 vào năm 1994 Bộ phận chủ yếu này được phát triển và tung ra trên thị trường
Trang 16dưới bản quyền GNU General Public License Do đó mà bất cứ ai cũng có thể tải vàxem mã nguồn của Linux.
Một cách chính xác, thuật ngữ "Linux" được sử dụng để chỉ nhân Linux,nhưng tên này được sử dụng một cách rộng rãi để miêu tả tổng thể một hệ điềuhành giống Unix (còn được biết đến dưới tên GNU/Linux) được tạo ra bởi việcđóng gói nhân Linux cùng với các thư viện và công cụ GNU, cũng như là các bảnphân phối Linux Thực tế thì đó là tập hợp một số lượng lớn các phần mềmnhư máy chủ web, các ngôn ngữ lập trình, các hệ quản trị cơ sở dữ liệu, các môitrường làm việc desktop như GNOME và KDE, và các ứng dụng thích hợp chocông việc văn phòng như OpenOfficehayLibreOffice
Khởi đầu, Linux được phát triển cho dòng vi xử lý386, hiện tại hệ điềuhành này hỗ trợ một số lượng lớn các kiến trúc vi xử lý, và được sử dụng trongnhiều ứng dụng khác nhau từ máy tính cá nhân cho tới các siêu máy tính vàcác thiết bị nhúng như là các máy điện thoại di động
Ban đầu, Linux được phát triển và sử dụng bởi những người say mê Tuynhiên, hiện nay Linux đã có được sự hỗ trợ bởi các công ty lớn như
IBM và Hewlett-Packard, đồng thời nó cũng bắt kịp được các phiên bản Unix độcquyền và thậm chí là một thách thức đối với sự thống trị của Microsoft Windows trongmột số lĩnh vực Sở dĩ Linux đạt được những thành công một cách nhanh chóng lànhờ vào các đặc tính nổi bật so với các hệ thống khác: chi phí phần cứng thấp, tốc
độ cao (khi so sánh với các phiên bản Unix độc quyền) và khả năng bảo mật tốt, độtin cậy cao (khi so sánh với Windows) cũng như là các đặc điểm về giá thành rẻ,không bị phụ thuộc vào nhà cung cấp Một đặc tính nổi trội của nó là được pháttriển bởi một mô hình phát triển phần mềm nguồn mở hiệu quả
Tuy nhiên, hiện tại số lượng phần cứng được hỗ trợ bởi Linux vẫn còn rấtkhiêm tốn so với Windows vì các trình điều khiển thiết bị tương thích với Windowsnhiều hơn là Linux Nhưng trong tương lai số lượng phần cứng được hỗ trợ cho
Linux sẽ tăng lên [4]
Trang 17Các phiên bản
Do có tính mở nên HĐH Linux có nhiều bản phân phối khác nhau như: [4]
Tên bản phân phối Phiên bản mới nhất Trang web chính thức
Ubuntu 13.04 http://www.ubuntu.com/
Debian GNU/Linux 7.1 http://www.debian.org/
Ultimate Edition 3.4 http://ultimateedition.info/
Red Hat Enterprise
Linux 6.0 http://www.redhat.com/rhel/Chrome Linux 2.1.1145 http://getchrome.eu/
Trang 18Tên bản phân phối Phiên bản mới nhất Trang web chính thức
Hacao Linux 2011 http://www.hacao.com/
Asianux 4.5 http://www.asianux.vn/
SliTaz 4.0 http://www.slitaz.org/
Back Track 5r3 http://www.backtrack-linux.org/
Kali linux 1.0.3 http://www.kali.org/
Super Ubuntu 11.04 http://hacktolive.org/wiki/Super_OS
Khi được phát hành lần đầu, Apache là chương trình máy chủ mã nguồn mởduy nhất có khả năng cạnh tranh với chương trình máy chủ tương tự của NetscapeCommunications Corporation mà ngày nay được biết đến qua tên thương mại SunJava System Web Server Từ đó trở đi, Apache đã không ngừng tiến triển và trởthành một phần mềm có sức cạnh tranh mạnh so với các chương trình máy chủ khác
về mặt hiệu suất và tính năng phong phú Từ tháng 4 năm 1996, Apache trở thànhmột chương trình máy chủ HTTP thông dụng nhất Hơn nữa, Apache thường đượcdùng để so sánh với các phần mềm khác có chức năng tương tự Tính đến tháng1/2007 thì Apache chiếm đến 60% thị trường các chương trình phân phối trang webApache được phát triển và duy trì bởi một cộng đồng mã nguồn mở dưới sự bảo trợcủa Apache Software Foundation Apache được phát hành với giấy phép Apache
License và là một phần mềm tự do và miễn phí [5]
Trang 191.1.4 PHP
PHP (Hypertext Preprocessor) là một ngôn ngữ lập trình kịch bản hay mộtloại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mãnguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và có thể dễdàng nhúng vào trang HTML Do được tối ưu hóa cho các ứng dụng web, tốc độnhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩmtương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thànhmột ngôn ngữ lập trình web phổ biến nhất thế giới [6]
1.1.5 My SQL
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới
và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng vìMySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạtđộng trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh.Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cậpCSDL trên internet MySQL miễn phí hoàn toàn và có nhiều phiên bản cho các hệđiều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux,MAC OSX, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS…
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệuquan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL)
MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó
làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl, [7]
1.1.6 Tường lửa
Firewall (tường lửa), là một thiết bị trung gian giữa hệ thống thông tin của tổchức và internet, là rào chắn mà một số cá nhân, tổ chức, doanh nghiệp, cơ quan nhànước lập ra nhằm ngăn chặn người dùng mạng Internet truy cập các thông tin khôngmong muốn hoặc/và ngăn chặn người dùng từ bên ngoài truy nhập các thông tin bảomật nằm trong mạng nội bộ Việc triển khai firewall được cho là biện pháp hữu hiệutrong việc hạn chế mất an toàn thông tin, hạn chế việc xâm nhập trái phép vào hệthống
Trang 20Firewall có 02 loại là firewall cứng và firewall mềm:
- Firewall cứng: là firewall được tích hợp sẵn trên Router
LAN Internet
- Cho phép hoặc cấm những dịch vụ truy cập ra ngoài (từ intranet ra internet)hoặc ngược lại trong (từ internet vào intranet)
- Theo dõi luồng dữ liệu mạng giữa internet và intrenet
- Kiểm soát, theo dõi địa chỉ IP truy nhập từ trong mạng nội bộ ra ngoàiinternet và ngược lại
- Kiểm soát, theo dõi việc sử dụng, truy nhập các ứng dụng của người sử dụng
- Kiểm soát nội dung thông tin lưu chuyển trên mạng
Trang 21- Đóng vai trò là 1 proxy.
- Đóng vai trò là cửa ngõ kiểm soát virus, mã độc
- Đóng vai trò chứng thực người dùng từ xa
- Đóng vai trò là thiết bị định tuyến cho các mạng nội bộ và mạng ngoàiinternet
- Cung cấp khả năng kết nối truy cập từ xa (VPN) [8]
1.2 Tìm hiểu về các nguy cơ mất an toàn và các biện pháp nâng cao bảo mật cho hệ thống website.
1.2.1 Lỗi phần cứng
1.2.1.1 Truy cập máy chủ trái phép
Các máy chủ web được đặt ở những khu vực (phòng máy chủ) nhưngkhông có cửa kiểm soát ra vào, không có biển cảnh báo, không có camera giám sát,không có nhật ký làm việc, có thể có các nguy cơ ảnh hưởng đến hoạt động liêntục của máy chủ do các hành động phá hoại có thể là cố tình hoặc vô ý
Để hạn chế việc truy cập vật lý máy chủ trái phép, cần triển khai phânquyền đúng và đủ cho từng đối tượng nhất định được phép truy cập vật lý máy chủweb Việc truy cập máy chủ cần được phân quyền rõ ràng: ai được phép truy cập,truy cập vào mục nào, ứng dụng nào, thời điểm truy cập, có quyền gì khi truy cậpthành công và phải có nhật ký lưu lại hành động trên máy chủ
1.2.1.2 Nguồn điện
Việc không bảo đảm nguồn điện cũng như được đặt ở những khu vựckhông bảo đảm độ lạnh, độ ẩm thích hợp có thể dẫn đến việc cung cấp dịch vụ bịgián đoạn
Để bảo đảm cho máy chủ web hoạt động liên tục, cần phải đặt máy chủtrong phòng máy chủ được trang bị các thiết bị lưu điện đủ lớn, có ổn áp và hệthống máy phát điện có khả năng cung cấp nguồn điện ổn định liện tục cho hệ thốngmáy chủ Bên cạnh đó, máy chủ web cần được trang bị 02 nguồn để sao lưu dựphòng cho máy chủ khi 01 nguồn gặp sự cố, bảo đảm máy chủ luôn hoạt động liêntục khi xảy ra các sự cố đột ngột về điện Ngoài đảm bảo nguồn điện, hệ thống máy
Trang 22lạnh trong phòng máy chủ cũng phải được trang bị và hoạt động liên tục để bảo đảm
độ lạnh, độ ẩm cho máy chủ hoạt động ổn định liên tục 24/24
1.2.1.3 Hỏa hoạn, cháy nổ
Máy chủ web được đặt trong khu vực không có hệ thống phòng cháy chữacháy luôn tiềm ẩn nguy cơ cháy nổ cao, dẫn đến việc hư hỏng toàn bộ máy chủ vật
lý cùng các dữ liệu trên máy chủ
Để hạn chế rủi ro này, máy chủ phải được đặt trong phòng máy chủ có hệthống phòng cháy chữa cháy theo tiêu chuẩn nhất định, bảo đảm cho máy chủ được
an toàn khi xảy ra sự cố cháy nổ
1.2.1.4 Kết nối mạng
Máy chủ web không có đường dự phòng cho các kết nối mạng nên khi xảy
ra sự cố hư hỏng card mạng dẫn đến hệ thống web bị tê liệt
Để bảo đảm kết nối mạng thông suốt, máy chủ web cần trang bị từ 02 cardmạng trở lên để cân bằng tải, tăng tốc độ truy cập cũng như chạy dự phòng khi có
sự cố với 01 card mạng
1.2.1.5 Ổ cứng
Các ổ cứng, nơi lưu trữ hệ điều hành, các ứng dụng và dữ liệu quan trọng,
có khả năng bị hư hỏng dẫn đến toàn bộ máy chủ web bị sụp đổ
Do đó, để bảo đảm cho dữ liệu không bị hư hỏng do lỗi của ổ đĩa cứng thìcần phải triển khai các kỹ thuật liên quan đến việc bảo đảm cho sự hoạt động liêntục của tổ hợp ổ cứng như chạy Raid cho các dữ liệu liên quan đến HĐH, các dữliệu của ứng dụng (thông thường chạy Raid 1 cho HĐH và raid 5 hoặc raid 10 cho
Trang 23thông báo lỗi có liên quan đến CSDL, do đó, hacker có thể biết được nội dungCSDL và điều khiển toàn bộ hệ thống thông qua các thông tin này.
Một số lỗi SQL thông dụng được khai thác như sau:
Ví dụ: giả sử ứng dụng web có đoạn mã sau:
Đoạn mã trên kiểm tra chuỗi nhập Username và Password Nếu tồn tại trong bảngUser thì check=true ngược lại check=false
Giá tri nhập vào là:
Username: ’ OR ‘’=’
Password: ’ OR ‘’=’
Câu lệnh SQL lúc này như sau:
Câu lệnh so sánh trên luôn luôn đúng (vì ‘’ luôn bằng ‘’) Do đó câu điều kiện trongmệnh đề WHERE luôn đúng Giá trị tên người sử dụng của dòng đầu tiên trongbảng sẽ được chọn
Kết hợp với kí tự đặc biệt của SQL :
• kí tự “ ; ” : đánh dấu kết thúc 1 câu truy vấn
• kí tự “ ” : ẩn chuỗi kí tự phía sau nó trên cùng 1 dòng
Ví dụ:
Username: ’; drop table
User Password:
SQLQuery= “SELECT tkUsername FROM User
WHERE tkUsername= ‘” &strUsername & “’ AND Password= ‘” &
Trang 24Câu lệnh SQL lúc này như sau:
SELECT tkUsername FROM User WHERE tkUsername= ‘’;drop table
User AND Password= ‘” & tkPassword & “’”
Với câu lệnh trên thì bảng User sẽ bị xóa hoàn toàn
Ví dụ: về việc sử dụng kí tự đặc biệt SQL để thâm nhập vào hệ thống như sau:Username: admin’
Password:
Câu lệnh SQL như sau:
Câu lệnh trên cho phép đăng nhập vào hệ thống với quyền admin mà không đòi hỏipassword
Dưới đây là cách để giảm thiểu tấn công SQL Injection:
Mã hoá các ký tự trên địa chỉ URL trước khi được sử dụng
Không cho hiển thị thông báo lỗi cho người dùng mà thay thế bằng cách trỏ đến
1 trang do người phát triển định nghĩa
Kiểm tra kĩ giá trị nhập vào của người dùng, thay thế những kí tự như ‘ ; v v
Loại bỏ các kí tự meta như “',",/,\,;“ và các kí tự extend như NULL, CR, LF, trong các string nhận được từ dữ liệu nhập do người dùng, các tham số từ URL,các giá trị từ cookie
Chuyển đổi các giá trị số sang interger trước khi thực hiện câu truy vấn SQL
Dùng thuật toán để mã hoá dữ liệu
Kiểm tra tính đúng đắn của dữ liệu để bảo đảm dữ liệu hợp lệ, loại bỏ những dữliệu bất hợp lệ Ví dụ: lọc bỏ những dữ liệu bất hợp lệ như ‘ ‘,’select’ và
‘union’
Bảo mật cơ sở dữ liệu (đối với SQL server) như :
o Xác định các phương pháp kết nối đến server
o Kiểm tra tất cả các tài khoản có trong SQL Server
SELECT tkUsername FROM User WHERE tkUsername= ‘admin’—
ANDPassword= ‘” & tkPassword & “’”
Trang 25o Chỉ tạo tài khoản có quyền thấp cho các ứng dụng.
o Loại bỏ những tài khoản không cần thiết
o Đảm bảo rằng tất cả tài khoản có một mật khẩu hợp lệ
o Xoá bỏ tất cả cơ sở dữ liệu mẫu như “northwind” và “pubs”
o Xóa các stored procedure không dùng như : master xp_cmdshell,xp_startmail, xp_sendmail, xp_ makewebtask
o Kiểm tra những tài khoản nào có thể truy xuất đến những đối tượng nào
o Đối với những tài khoản của một ứng dụng nào đó dùng để truy xuất cơ
sở dữ liệu thì chỉ được cấp những quyền hạn cần thiết tối thiểu để truyxuất đến những đối tượng nó cần dùng
o Kiểm tra lớp sửa chữa của server
o Kiểm tra các phiên làm việc trên server
o Thay đổi "Startup và chạy SQL Server" ở mức người dùng quyền hạnthấp
Sử dụng tường lửa để bảo vệ cơ sở dữ liệu [9]
1.2.2.2 Session
Session dùng để lưu trữ trạng thái làm việc giữa trình duyệt tại máy trạm
và trình chủ tại máy chủ Mỗi session có 01 session ID có thể được lưu trữ trongcookie hay được nhúng vào địa chỉ URL hay trong biến ẩn của form Theo thực tếthì session ID lưu trong cookie vẫn là lựa chọn tốt nhất, và là phương pháp an toànhơn cả
Khi người dùng truy cập vào 01 website nào đó và được chứng thực quausername/password, thì lúc này session ID được xem là một mật khẩu tĩnh tạm thờicho những lần yêu cầu đăng nhập tiếp theo, hacker sẽ dùng các kỹ thuật để giànhlấy session ID của người dùng và đột nhập vào phiên làm việc của họ
Quá trình tấn công như sau:
Bước 1: Thiết lập session ID theo 2 hướng:
Trang 26- Hướng tự do: chấp nhận bất kì một session ID, nếu chưa tồn tại session thìtạo mới một session ID Hacker chỉ cần thiết lập một session ID bất kì, nhớ
và sau đó sử dụng lại session ID này
- Hướng giới hạn: chỉ chấp nhận session ID nào đã đăng kí trước đó Hackerphải đăng kí một session ID với ứng dụng
- Thường thì một phiên làm việc có thời gian nhất định Hệ thống sẽ tự độnghủy bỏ phiên làm việc nếu nó không thực hiện một thao tác nào (thời giannhàn rỗi ) hoặc hết hạn định Để duy trì phiên làm việc, hacker phải gửi yêucầu đến máy chủ.oa CNTT
Hacker gửi session ID vừa tạo đến người dùng và việc trao đổi session IDcòn tùy vào ứng dụng mà có thể qua URL, biến ẩn form hay cookie
Các cách tấn công thông dụng gồm:
Tấn công session ID trên tham số URL
Hacker gửi một liên kết yêu cầu người dùng đăng nhập vào website vớisession ID đã được ấn định sẵn trên URL
Ví dụ: http://www.abc.com/login.jsp?sessionid=1234
Cách thực hiện thường là hacker có sẵn sessionid từ trang web cùng vớinạn nhân, sau đó thay thế sessionid của hacker vào link và gửi, đánh lừa nạn nhântruy cập vào ứng dụng
Tấn công session ID bằng biến ẩn form
Tương tự như trên, hacker xem mã HTML của trang Web, nhận thấysession ID được đặt trong biến ẩn form, hacker sẽ gửi một sessionID cũng trên URLđến người dùng với biến ẩn form mang giá trị ấn định sẵn
Tấn công session ID trong cookie
Dựa vào cookie, hacker sẽ đưa một session ID đến trình duyệt của nạn nhânbằng cách thiết lập một cookie trên trình duyệt bằng ngôn ngữ kịch bản, dùng thẻ
<META> với thuộc tính Cookie hoặc thiết lập cookie dùng thuộc tính Cookie trong header HTTP response
Trang 27Set-VD: Hầu hết trình duyệt đều hỗ trợ các ngôn ngữ kịch bản thực thi trên trình duyệt
như Javascript, VBScript Cả hai ngôn ngữ này có thể thiết lập một cookie cho trìnhduyệt bằng cách thiết lập giá trị “ document.cookie” như:
http://www.abc.com/
<script>document.cookie=“sessionid=1234;domain=abc.com”;</script>.idc
Bước 3: Đột nhập vào phiên làm việc của nạn nhân.
Khi nạn nhân đăng nhập vào hệ thống qua session ID đã được định sẵn vàchưa thoát khỏi ứng dụng, hacker bắt đầu dùng session ID đó để bước vào phiênlàm việc của nạn nhân
Để hạn chế tấn công theo cách này thì ứng dụng đóng vai trò chính vớinhững biện pháp phòng chống như sau
Biện pháp 1: Chống việc đăng nhập với một session ID có sẵn
Theo kiểu tấn công này, người dùng đăng nhập vào hệ thống thông qua mộtsession ID do hacker tạo sẵn thay vì cho trình chủ tạo mới, do đó để có thể phòngchống, ứng dụng phải hủy bỏ session ID được cung cấp bởi trình duyệt của ngườidùng khi đăng nhập và luôn tạo một session ID mới khi người dùng đăng nhậpthành công
Biện pháp 2: Phòng chống những hacker bên ngoài hệ thống
Việc tạo ứng dụng trên hệ thống theo hướng giới hạn ( chỉ tạo một session ID mớicho người dùng sau khi họ thành công ) sẽ khiến cho những hacker không phải làngười dùng hợp lệ của hệ thống không thể sử dụng phương pháp tấn công này
Biện pháp 3: Giới hạn phạm vi ứng dụng của session ID
- Kết hợp Session ID với địa chỉ của trình duyệt
- Kết hợp Session ID với thông tin chứng thực được mã hoá SSL của ngườidùng
- Xóa bỏ session khi người dùng thoát khỏi hệ thống hay hết hiệu lực, có thểthực hiện trên trình chủ hoặc trình duyệt (cookie)
Trang 28- Người sử dụng phải dùng chế độ thoát khỏi hệ thống để xóa bỏ session hiệnthời và có thể những session ID còn lưu lại trên hệ thống khi họ quên thoát rangoài những lần trước.
- Thiết lập thời gian hết hiệu lực cho session, tránh trường hợp hacker có thểduy trì session và sử dụng nó lâu dài
1.2.2.3 Cookie
Cookie là những file lưu trữ các thông tin liên quan đến tên, định danh, mậtkhẩu,…của người dùng và được chia sẻ giữa trình duyệt web của người dùng vàtrình chủ và được ứng dụng sử dụng để lưu trữ, nhận biết các thông tin về ngườidùng đã truy cập vào trang web Cookie được trình duyệt của người dùng chấp nhậnlưu trên ổ đĩa cứng, tuy nhiên người dùng có thể hiệu chỉnh việc chấp nhận haykhông chấp nhận việc lưu cookie và còn tùy thuộc vào từng trình duyệt khác nhau.Khi cookie được lưu, những lần truy cập sau đến trang Web đó, ứng dụng có thểdùng lại những thông tin trong mà người dùng không phải làm lại thao tác đăngnhập hay phải cung cấp lại các thông tin khác
Cookie được phân làm 2 loại secure/non-secure và persistent/non-persistent
do đó ta sẽ có 4 kiểu cookie là:
Persistent cookie: được lưu trữ dưới dạng tập tin txt trên máy khách trong mộtkhoản thời gian xác định
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 cookie: chỉ có thể được gửi thông qua HTTPS (SSL) Với kiểu cookienày, trình chủ sẽ cung cấp chế độ truyền bảo mật
Non-Secure cookie: có thể được gửi bằng cả hai giao thức HTTPS hay HTTP Tất cả các loại cookie như trên đều có thể bị thay đổi thông tin bởi người dùng vàđược gởi về cho trình chủ Dựa vào điều này, hacker có thể thay đổi nội dungcookie để phá hoại ứng dụng
Ví dụ: về cookie dùng để lưu trữ thông tin cho một ứng dụng web như sau:
Cookie: lang=en-us; ADMIN=no; y=1 ; time=10:30GMT ;
Trang 29Cookie trên xác định người dùng này không phải là Admin (ADMIN=no), nhưngnếu hacker có thể thay đổi trường này như sau:
Cookie: lang=en-us; ADMIN=yes; y=1 ; time=12:30GMT ;
thì lúc này hacker trở thành vai trò là một người quản trị của ứng dụng
Để phòng chống tấn công Cookie, các phương pháp sau nên áp dụng:
Sử dụng đối tượng session lưu trữ thông tin quan trọng trên trình chủ trongcache hoặc trong cơ sở dữ liệu Khi ứng dụng cần kiểm tra thông tin của mộtngười dùng, ứng dụng sẽ dùng session ID của người dùng để chỉ đến thông tincủa người dùng đó trong cache hay cơ sở dữ liệu
Xây dựng cơ chế kiểm tra nội dung của cookie để tìm ra những giá trị khônghợp lệ từ đó phát hiện được cookie đó là giả
Dùng các phương pháp mã hóa như symmetric (dùng 1 khóa duy nhất cho cả mãhóa và giải mã) hay asymmetric (mã hóa dùng 2 khóa riêng biệt, một khóa dùngchung cho mã hóa và một khóa riêng để giải mã)
1.2.2.4 Buffer Overflow
Buffer Overflow là kỹ thuật cho phép một số lượng lớn dữ liệu được cung cấpbởi người dùng vượt quá lượng bộ nhớ cấp phát ban đầu bởi ứng dụng, do đó, làmcho hệ thống tràn bộ nhớ, thậm chí có thể bị chèn thêm một đoạn mã bất kì Nếuứng dụng được cấu hình để được thực thi bởi tài khoản quản trị như root hoặcadmin thì người tấn công có thể thao tác như một nhà quản trị hệ thống trên webserver Nguyên nhân là do thiếu bước kiểm tra kích thước dữ liệu nhập vào
Ví dụ:
func(char *ch){
char buffer[256];
strcpy(buffer,ch);
}Buffer chỉ được cấp phát 256 byte nhưng ở hàm func, nếu buffer nhận 257 kí tựthì sẽ xảy ra lỗi tràn bộ đệm
Trang 30Kỹ thuật khai thác lỗi tràn bộ đệm (buffer overflow exploit) là một trong những
kỹ thuật hacking kinh điển nhất
Để phòng chống tấn công Buffer Overflow, người thiết kế Web cần phải kiểmtra kĩ kích thước dữ liệu trước khi sử dụng; dùng Referer trong HTTP Header đểkiểm tra yêu cầu có phải xuất phát từ máy người dùng hay không
1.2.2.5 Cross-site Scripting (XSS)
Cross Site Scripting (XSS) là phương pháp tấn công bằng cách chèn thêmnhững đoạn mã có khả năng đánh cắp hay thiết lập được những thông tin quan trọngnhư cookie, mật khẩu,… vào mã nguồn ứng dụng web để từ đó chúng được chạynhư là một phần của ứng dụng Web và có chức năng cung cấp hoặc thực hiệnnhững những điều hacker muốn
Phương pháp này không nhằm vào máy chủ hệ thống mà chủ yếu tấn công trênchính máy người sử dụng Hacker sẽ lợi dụng sự kiểm tra lỏng lẻo từ ứng dụng vàhiểu biết hạn chế của người dùng cũng như biết đánh vào sự tò mò của họ dẫn đếnngười dùng bị mất thông tin một cách dễ dàng
Thông thường hacker lợi dụng địa chỉ URL để đưa ra những liên kết là tácnhân kích hoạt những đoạn chương trình được viết bằng ngôn ngữ máy khách nhưVBScript, JavaScript…được thực thi trên chính trình duyệt của nạn nhân
VD:http://www.oracle.co.jp/mts_sem_owa/MTS_SEM/im_search_exe?
search_text=%3Cscript%3Ealert%28document.cookie%29%3C%2Fscript%3EỨng dụng Web thường lưu trữ thông tin quan trọng ở cookie Cookie là mẩuthông tin mà ứng dụng lưu trên đĩa cứng của người sử dụng nhưng chỉ ứng dụngthiết lập ra cookie thì mới có thể đọc nó Do đó chỉ khi người dùng đang trong phiênlàm việc của ứng dụng thì hacker mới có cơ hội đánh cắp cookie Công việc đầutiên của hacker là tìm trang đích để dụ người dùng đăng nhập sau khi đã tìm ra lỗhổng trên ứng dụng đó Đây là phương pháp tấn công XSS truyền thống và cácbước thực hiện như sau:
hỏng XSS
Trang 31 Bước 2 : Người dùng nhận được 1 liên kết thông qua email hay trên chính trang
Web (như trên guestbook, banner dễ dàng thêm 1 liên kết do chính hacker tạora…) Thông thường hacker khiến người dùng chú ý bằng những câu kích thích
sự tò mò của người dùng như “ Kiểm tra tài khoản”, “Một phần thưởng hấp dẫnđang chờ bạn”, “Hình hot Ngọc Trinh”…
hacker
những thông tin đã đánh cắp vào 1 tập tin
nhập vào tài khoản của người dùng
Để hạn chế tấn công XSS thì những dữ liệu, thông tin nhập vào của người dùng,người thiết kế ứng dụng Web cần phải thực hiện vài bước cơ bản sau:
Tạo ra danh sách những thẻ HTML được phép sử dụng
1.2.2.6 DoS
Tấn công DoS là kiểu tấn công dựa trên các giao thức mạng làm cho các dịch
vụ mạng bị tê liệt, không thể cung cấp dịch vụ cũng như đáp ứng các yêu cầu khác.Đây là loại tấn công gây ảnh hưởng, thiệt hại nhiều cho hệ thống, dễ thực hiện
Trang 32nhưng khó bảo vệ VD: dùng giao thức ICMP ping liên tục máy chủ, dùng giao thứcsmtp, bomb mail,…làm tiêu hao hoặc dẫn đến cạn kiệt tài nguyên của máy chủ.Các tài nguyên trên máy chủ có thể bị ảnh hưởng bao gồm:
Swap space: swap space thuờng dùng cho các tiến trình con có thời gianngắn nên DoS có thể được dựa trên phương thức làm tràn swap space
Bandwidth: tấn công vào băng thông có giới hạn của hệ thống bằng cáchgửi nhiểu yêu cầu đến hệ thống làm cho hệ thống bị nghẽn mạchKhoCNTT
RAM: tấn công vào hệ thông bằng cách gửi các yêu cầu liên tục khiến hệthống trả lời liên tục gây tiêu tốn RAM và phá hủy hệ thống
Hard Disk: đĩa cứng có thể bị tràn và không thể được sử dụng nữa
Dưới đây là một số kỹ thuật tấn công DoS:
Tấn công SYN flood dựa vào TCP bắt tay ba chiều:
Buớc 1: Máy con gửi gói tin SYN (synchoronize) yêu cầu kết nối
Bước 2: Nếu máy chủ chấp nhận kết nối, máy chủ sẽ gửi gói tin SYN/ACK (acknowledgement) Server bắt buộc phải gửi thông báo lại bởi vì TCP làchuẩn tin cậy nên nếu máy con không nhận được thông báo thì sẽ nghĩ rằng packet
đã bị lạc và gửi lại một packet mới
Bước 3: Máy con gửi hồi đáp bằng gói tin ACK báo cho máy chủ biếtrằng máy con đã nhận được SYN/ACK packet và lúc này kết nối đã được thiết lập.Như vậy, bất cứ 1 gói tin SYN, máy chủ cũng phải để 1 phần tài nguyên của hệthống như bộ nhớ đệm để nhận và truyền dữ liệu cho đường truyền đó Tuy nhiên,tài nguyên của hệ thống là có hạn và hacker sẽ tìm mọi cách để hệ thống tràn quagiới hạn đó Điều này là do máy chủ sau khi gửi trả một gói tin SYN/ACK để thôngbáo chấp nhận kết nối cho máy khách nhưng nếu địa chỉ IP của máy khách này làgiả mạo thì gói tin không thể đến được đích, nên máy chủ vẫn phải dành tài nguyêncho yêu cầu đó Sau một thời gian không nhận được phản hồi từ máy khách, máychủ lại tiếp tục gửi một gói tin SYN/ACK để xác nhận lần nữa và cứ như vậy, kếtnối vẫn tiếp tục mở Nếu như hacker gửi nhiều gói tin SYN đến máy chủ đến khi
Trang 33máy chủ không thể tiếp nhận thêm 1 kết nối nào nữa thì lúc này hệ thống đã bị phávỡ.
Tấn công vào băng thông
Trường hợp hacker có đường truyền với băng thông lớn
Hacker hoàn toàn có khả năng làm ngập hệ thống vì băng thông của hacker lớn hơnbăng thông của máy đích.VD: Hacker có một đường truyền tốc độ cao T1 (1.544-Mbps) hay lớn hơn có thể dễ dàng phá vỡ một hệ thống có đường truyền 56Kbps
Trường hợp hacker có đường truyền với băng thông nhỏ
Kiểu tấn công này sẽ lợi dụng những gói tin từ những hệ thống khác nhau cùng mộtlúc tiến đến hệ thống đích khiến cho đường truyền của hệ thống đích không còn khảnăng đáp ứng, máy chủ không còn khả năng nhận một gói tin nào nữa Kiểu tấncông này còn gọi là DDoS (kiểu từ chối dịch vụ phân tán), nghĩa là cùng một lúcnhiều máy sẽ được phát động để gửi gói tin đến máy đích ( mặc dù đường truyềncủa mỗi máy không cao nhưng nhiều đường truyền lại hợp thành một đường truyền
có băng thông cao) làm cho máy đích không còn khả năng tiếp nhận gói tin.nhữ
Tấn công vào tài nguyên hệ thống
Đây là kiểu tấn công nhằm vào tài nguyên hệ thống của máy chủ như CPU,
bộ nhớ, file hệ thống, tiến trình… VD: Hacker là một người dùng hợp lệ của hệthống, và được một lượng tài nguyên giới hạn trên hệ thống Tuy nhiên, hacker sẽlạm dụng quyền truy cập này để yêu cầu thêm tài nguyên Như vậy, hệ thống haynhững người dùng hợp lệ khác sẽ bị từ chối sử dụng tài nguyên chia sẻ Kiểu tấncông này sẽ khiến cho hệ thống không thể sử dụng được vì tài nguyên đã bị sử dụnghết, không còn tiến trình để thực thi nữa
Trong cách tấn công DoS, hacker thường che dấu IP của mình Do đó, rấtkhó xác định thủ phạm thật sự gây ra nhiều khó khăn trong công tác bảo vệ hệthống Để phòng chống, hạn chế tấn công DoS, cần thực hiện các biện pháp sau:
Huỷ khả năng broadcast tại router biên
Tăng kích thước hàng đợi kết nối
Giảm thời gian thiết lập kết nối
Trang 34Dùng những phần mềm phát hiện và phá hủy kiểu tấn công DoS (các loạitường lửa UTM).
1.2.2.7 Giả mạo
Giả mạo (Masquerading) hoặc đánh lừa (spoofing) là một trong những cáchphá hoại website bằng cách sử dụng một kẽ hở trong hệ thống tên miền (DNS), tứctrở DNS vào một địa chỉ IP khác của hacker thay vì IP thật của doanh nghiệp Do
đó, mọi truy cập đến website của doanh nghiệp đều bị chuyển hướng đến websitegiả
Để hạn chế cách tấn công này, cần lưu ý về quản trị tên miền nhằm phòngchống việc giả mạo dựa vào tên miền Đề phòng các trường hợp giả danh những tổchức hoặc người có liên quan để lấy username/password quản trị DNS qua các hìnhthức như chat, điện thoại, thư điện tử,…
1.2.2.8 HTTP Header
HTTP header là phần đầu (header) của thông tin mà trình khách và trình chủgửi cho nhau Những thông tin trình khách gửi cho trình chủ được gọi là HTTPrequests (yêu cầu) còn trình chủ gửi cho trình khách là HTTP responses (trả lời).Thông thường một HTTP header gồm nhiều dòng, mỗi dòng chứa tên tham số vàgiá trị Một số tham số có thể được dùng trong cả header yêu cầu và header trả lời,còn số khác thì chỉ đuợc dùng riêng trong từng loại
Ví dụ :
• Header yêu cầu:
Dòng đầu là dòng yêu cầu cho biết phương thức yêu cầu (GET hoặc POST),địa chỉ yêu cầu (/tintuc/homnay.asp) và phiên bản HTTP (HTTP/1.1)
Accept-Language: Cho biết ngôn ngữ dùng trong trang web
Host: Cho biết địa chỉ của máy chủ
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Accept-Encoding: gzip, deflate
Trang 35 Referer: Cho biết địa chỉ của trang web tham chiếu tới.
Header của HTTP request sẽ kết thúc bằng một dòng trống
• Header trả lời:
Dòng đầu là dòng trạng thái, để cho biết phiên bản HTTP được dùng (HTTP/1.1), mã trạng thái (200) và trạng thái (OK)
Tiếp theo là các tham số
Tiếp theo là một dòng trống để báo hiệu kết thúc header, tiếp theo là phần thâncủa HTTP response URL, biến ẩn form, cookie đều là những thành phần lưu trữthông tin mà người dùng thông thường có thể xem và thay đổi Tuy nhiên, nhữngthành phần đó đều được chuyển đi thông qua HTTP Header Vì thế, mặc dù HTTPHeader không phải là tham số truyền của một ứng dụng nhưng mọi thông tin đềuđược lưu trữ vào nó trước khi chuyển đi nên trong phần này sẽ đề cập đến việc thayđổi một HTTP Header
Thông thường chỉ có trình duyệt và trình chủ là trao đổi HTTP Header còn hầuhết các ứng dụng web thì không Tuy nhiên, hacker có thể tự viết một chương trình
để điều khiển HTTP header (như xem nội dung, tạo mới) hay sử dụng các tool,proxy miễn phí cho phép thay đổi dữ liệu được gửi từ trình duyệt Ngoài ra hacker
có thể tấn công trực tiếp bằng cách telnet gửi HTTP Request đến trình chủ
Trang 36Referer header chứa URL của trang web mà từ đó yêu cầu được gửi đi.Hacker
có thể sửa lại Referer header để nó giống như được gửi từ trang web hợp lệ
Để hạn chế rủi ro ngày, các header cần có các biện pháp an toàn như đối vớicác header gửi từ trình chủ, chẳng hạn như cookie thì có thể được mã hoá, còn vớicác header gửi từ trình khách thì không nên dùng các tham số như referer,…Bêncạnh đó, mọi thông tin quan trọng trao đổi giữa trình duyệt và trình chủ không nênlưu trữ dưới dạng chuỗi thông thường mà cần được mã hóa, ngoài ra những thôngtin này nên được kiểm tra, đối chiếu với dữ liệu trong cơ sở dữ liệu hay trong cachecủa trình chủ, phòng tránh trường hợp nội dung thông tin bị sai lệch; kết hợp vớiviệc kiểm tra tính đúng đắn của dữ liệu vì hầu như các kĩ thuật tấn công đều dựavào dữ liệu nhập trên URL, biến ẩn form hay cookie,
1.2.2.9 Chứng thực kết nối
Máy chủ web không được triển khai bảo mật truy suất qua SSL khiến cho cácthông tin truy suất có thể bị hack do không được mã hóa dữ liệu trên đường truyền,mọi dữ liệu sẽ được truyền đi nguyên bản Khi đó, nguy cơ dữ liệu bị xâm nhậptrong quá trình trao đổi dữ liệu giữa người gửi và người nhận sẽ rất cao, tạo điềukiện cho hacker tận dụng cơ hội để lấy thông tin khách hàng, thông tin kinh doanhcủa website và xa hơn, kẻ gian có thể ăn cắp thông tin trên thẻ tín dụng của khách
Trang 37truyền số hiệu thẻ tín dụng, mật khẩu, số bí mật cá nhân (PIN) trên Internet Giaothức SSL được hình thành và phát triển đầu tiên năm 1994 bởi nhóm nghiên cứuNetscape dẫn dắt bởi Elgammal và ngày nay đã trở thành chuẩn bảo mật thịnh hànhtrên mạng Internet Các thuật toán mã hóa và xác thực của SSL được sử dụng baogồm:
DES-chuẩn mã hóa dữ liệu (ra đời năm 1977), phát minh và sử dụng củachính phủ Mỹ
DSA- thuật toán chữ ký điện tử, chuẩn xác thực điện tử, phát minh và sửdụng của chính phủ Mỹ
- KEA- thuật toán trao đổi khóa, phát minh và sử dụng bởi chính phủ Mỹ
- MD5- thuật toán tạo giá trị “băm” (message digest), phát minh bởi Rivest
- RC2, RC4- mã hóa Rivest, phát triển bởi công ty RSA Data Security
- RSA-thuật toán khóa công khai, cho mã hóa và xác thực, phát triển bởiRivest, Shamir, Adleman
- RSA key exchange- thuật toán trao đổi khóa cho SSL dựa trên thuật toánRSA
- SHA-1 – thuật toán hàm băm an toàn, phát triển và sử dụng bởi chính phủMỹ
- SKIPJACK- thuật toán khóa đối xứng phân loại được thực hiện trong phầncứng Fortezza, sử dụng bởi chính phủ Mỹ
- Triple-DES- mã hóa DES ba lần
Để bảo đảm cho các website, việc triển khai giao thức SSL là tối cần thiết theonguyên tắc hoạt động như sau:
- Kết nối từ client đến server được thực hiện bằng giao thức HTTPS(HTTP+SSL)
- Server ký khóa công khai (public key) bằng khóa bí mật (private key) của mình
và gửi cho client
- Client dùng khóa công khai của server để xác nhận đúng server đang liên lạc
- Ở chiều ngược lại, server sẽ xác nhận lại client
Trang 38- Client kiểm tra xem có Cơ quan chứng thực (CA) nào đã ký vào khóa Nếukhông client sẽ hỏi người dùng xem có nên tin tưởng server không.
- Client sinh ra một khóa bất đối xứng (asymmetric key) cho phiên giao dịch,khóa này được mã hóa bằng khóa công khai của máy chủ và gửi ngược lại Khóanày cũng sẽ được dùng để mã hóa tất cả các thông tin sau này
Các chứng chỉ SSL có thể mua từ các nhà cung cấp độc lập với các thông tin giánhư sau:
Nhà cung cấp GlobalSign
Hình 1.3
Trang 39Hình 1.4
Nhà cung cấp Symantec
Hình 1.5
Trang 40 Nhà cung cấp GoDaddy
Hình 1.6Đối với việc mua SSL từ nhà cung cấp thì phí người dùng phải gửi Certificate
Signing Request (CSR) đến nhà cung cấp dịch vụ [10]
1.2.2.10 Tường lửa
Việc thiếu trang bị các tường lửa bảo vệ cho máy chủ trong hệ thốngmạng khiến cho việc kiểm soát, phát hiện, phòng ngừa các cuộc tấn công vào máychủ web trở lên khó khăn, tiềm ẩn nhiều nguy cơ mất an toàn thông tin
Do đó, việc triển khai chính sách trên tường lửa, bảo đảm chỉ cho phépcác dịch vụ nhất định đi qua, hạn chế, ngăn chặn các dịch vụ không cần thiết làphương pháp hữu hiệu chống lại các cuộc tấn công từ bên ngoài Tường lửa, đặcbiệt là tường lửa đã được tích hợp các ứng dụng bảo mật như anti-virus, IPS,…sẽgiúp cho hoạt động của webserver được bảo mật, an toàn, hạn chế được hầu hết cáclỗi kỹ thuật cho máy chủ web