Cuối cùng, phần thứ ba nhóm nghiên cứu thực hiện mô phỏng tấn công website bằng phương pháp SQL Injection; cụ thể trong mô phỏng nhóm làm rõ mục tiêu thử nghiệm; song song đó, sử dụng câ
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC XÃ HỘI VÀ NHÂN VĂN
KHOA: THƯ VIỆN – THÔNG TIN HỌC
CÔNG TRÌNH NGHIÊN CỨU KHOA HỌC SINH VIÊN
CẤP TRƯỜNG NĂM 2016
Têncôngtrình: CÁC PHƯƠNG THỨC TẤN CÔNG VÀ PHÒNG THỦ
TRONG HỆ THỐNG MẠNG
Sinhviênthựchiện:
Chủnhiệm: TrầnThanhLiêm Lớp: QuảntrịThông tin Khóahọc: K29
Thànhviên: NguyễnThịMỹPhụng Lớp: QuảntrịThông tin Khóahọc: K29
VõThịThúyHạnh Lớp: QuảntrịThông tin Khóahọc: K29
HồThịThúyHằng Lớp: QuảntrịThông tin Khóahọc: K29 VươngThịHảiNhư Lớp: QuảntrịThông tin Khóahọc: K29
Ngườihướngdẫn: ThS NguyễnVănHiệp, Thông tin – Thưmục, KhoaThưviện –Thông tin học
Trang 2LỜI CẢM ƠN
Để hoàn thành bài nghiên cứu khoa học này, không chỉ là sự nỗ lực của cả nhóm mà còn là sự hỗ trợ, giúp đỡ tận tình từ phía quý thầy cô, gia đình và bạn bè trong suốt thời gian thực hiện đề tài
Với lòng biết ơn sâu sắc, chúng tôi xin gửi lời cảm ơn chân thành tới toàn thể quý thầy
cô khoa Thư viện – Thông tin học, trường Đại học Khoa học xã hội và Nhân văn TP.HCM và Thạc Sỹ Nguyễn Thanh Huy đã tạo nền tảng để chúng tôi có kiến thức thực hiện đề tài này, đặc biệt là Thạc Sỹ Nguyễn Văn Hiệp - người đã luôn tận tình hướng dẫn, giúp đỡ và tạo mọi điều kiện để chúng tôi có thể hoàn thành đề tài nghiên cứu khoa học này một cách tốt nhất
Trong thời gian thực hiện đề tài, chúng tôi gặp khá nhiều bỡ ngỡ trong quá trình tìm hiểu, nghiên cứu về an ninh mạng, chính vì vậy, chắc chắn sẽ không tránh khỏi được những thiếu sót trong đề tài Chúng tôi rất mong nhận được những ý kiến đóng góp quý báu từ phía quý thầy cô và các bạn để chúng tôi có thể hoàn thiện hơn kiến thức của mình
về lĩnh vực này
Cuối cùng, chúng tôi xin gửi lời chúc tốt đẹp nhất tới quý thầy cô khoa Thư viện – Thông tin học, kính chúc quý thầy cô dồi dào sức khỏe, thành công trên con đường trồng người
Trân trọng!
TP.HCM, ngày 14 tháng 03 năm 2016
Trang 3DANH MỤC NHỮNG TỪ VIẾT TẮT
Từ viết tắt Cụm từ đầy đủ
ASCII American Standard Code for Information Interchange
CIA Confidentiality Integrity Availability
CSDL Cơ sở dữ liệu
DdoS Distributed Denial of Service
DRDoS Distributed Reflection Denial of Service
ICMP Internet Control Message Protocol IIS Internet Information Services
OSI Open Systems InterconnectionPHP Personal Home Page (HyperText PreProcessor)
TCP/IP Transmission Control Protocol
Trang 4MỤC LỤC
TÓM TẮT 1
PHẦN MỞ ĐẦU 1
1 Tính cấp thiết của đề tài 1
2 Tình hình nghiên cứu 2
3 Mục đích và nhiệm vụ nghiên cứu 4
4 Đối tượng và phạm vi nghiên cứu 4
5 Phương pháp nghiên cứu 4
7 Bố cục 5
CHƯƠNG 1 MẠNG MÁY TÍNH VÀ VẤN ĐỀ AN TOÀN BẢO MẬT THÔNG TIN 6
1.1 Mạng máy tính 6
1.1.1 Lợi ích của việc kết nối mạng máy tính 6
1.1.2 Phân loại mạng máy tính 6
1.1.3 Mô hình OSI (Open System Interconnection) và giao thức TCP/IP (Transmission Control Protocol/Internet Protocol) 7
1.2 Tổng quan về an toàn bảo mật thông tin 8
1.2.1 Khái niệm 8
1.2.2 Nguyên tắc nền tảng an toàn bảo mật thông tin 9
1.2.3 Các loại hình tấn công mạng 11
1.2.4 Các bước tấn công mạng 13
1.2.5 Một số kĩ thuật tấn công mạng 15
1.2.6 Xu hướng tấn công hệ thống mạng 18
1.2.7 Các nguy cơ mất an toàn trong hệ thống mạng 20
1.2.8 Các biện pháp phòng thủ 22
Trang 5CHƯƠNG 2
KỸ THUẬT TẤN CÔNG SQL INJECTION VÀ SOCIAL ENGINEERING 26
2.1 SQL Injection 26
2.1.1 Tổng quan về SQL Injection 26
2.1.2 Cách thức tấn công của SQL Injection 27
2.1.3 Mức độ thiệt hại 29
2.1.4 Các dạng tấn công của SQL Injection 31
2.1.5 Cách phòng chống 36
2.2 Social Engineering 36
2.2.1 Social Engineering 36
2.2.2 Nghệ thuật thao túng 37
2.2.3 Điểm yếu của mọi người 38
2.2.4 Phân loại kĩ thuật Social Engineering 40
2.2.5 Các bước tấn công trong Social Engineering 42
2.2.6 Một sốphương thức tấn công phổ biến hiện nay và cách phòng tránh cụ thể 43
2.2.7 Biện pháp đối phó Social Engineering 45
CHƯƠNG 3 MÔ PHỎNG TẤN CÔNG WEBSITE BẰNG SQL INJECTION SỬ DỤNG CÂU LỆNH SELECT VÀ CÁCH PHÒNG CHỐNG 47
3.1 Mục tiêu thử nghiệm 47
3.2 Các bước tấn công bằng Sql Injection bằng câu lệnh Select và hình ảnh minh họa 54 3.3 Cách phòng chống 60
3.3.1 Đối với website (dành cho lập trình viên) 61
3.3.2 Đối với web server (dành cho quản trị mạng) 62
3.3.3 Đối với database server (dành cho quản trị mạng) 62
Trang 63.3.4 Hạn chế bị phát hiện lỗi 62
3.3.5 Phòng chống từ bên ngoài 62
3.3.6 Cải thiện dữ liệu nhập vào 63
KẾT LUẬN 66
Trang 7TÓM TẮT
Trong đề tài này, nhóm chúng tôi chủ yếu tìm hiểu về cách thức tấn công và phòng thủ mạng hiện nay Trong đó, chúng tôi đi sâu vào tìm hiểu, nghiên cứu hai phương thức tấn công mạng nguy hiểm nhất hiện nay là tấn công bằng phương pháp kỹ thuật (SQL Injection ) và phi kỹ thuật (Social Engineeing); đồng thời đưa ra một số biện pháp phòng thủ tương ứng với hai phương thức trên Trong quá trình nghiên cứu, nhóm thực hiện đưa
ra ví dụ mô phỏng để làm rõ cách thức tấn công SQL Injection Cụ thể đồ án được chia làm 3 phần chính
Phần thứ nhất là sơ lược về mạng máy tính và tổng quan về an toàn bảo mật thông tin hiện nay Trong phần này, chúng tôi nêu ra lợi ích của việc kết nối mạng, phân loại mạng máy tính và mô tả mô hình OSI cùng giao thức TCP/IP trong mạng máy tính hiện nay Bên cạnh đó, đưa ra khái niệm, nguyên tắc, loại hình, cách thức, kỹ thuật và xu hướng tấn công hệ thống mạng nhằm nhấn mạnh các nguy cơ gây mất an toàn hệ thống mạng và trình bày các biện pháp phòng thủ chung, phổ biến
Phần thứ 2, nhóm nghiên cứu chọn ra hai kỹ thuật tấn công mạng phổ biến và nguy hiểm hiện nay là “Kỹ thuật tấn cống SQL Injection và Social Engineering” để tìm hiểu chi tiết Trong phần này, nhóm nghiên cứu đưa ra khái niệm và đi sâu vào phân tích cách thức,
kĩ thuật tấn công, mức độ gây hại để từ đó đề xuất các biện pháp phòng chống cụ thể Cuối cùng, phần thứ ba nhóm nghiên cứu thực hiện mô phỏng tấn công website bằng phương pháp SQL Injection; cụ thể trong mô phỏng nhóm làm rõ mục tiêu thử nghiệm; song song đó, sử dụng câu lệnh SELECT với những hình ảnh minh họa để tấn công một website và đề ra cách hạn chế bị phát hiện lỗi, biện pháp phòng chống và các bước cải thiện dữ liệu nhập vào
PHẦN MỞ ĐẦU
1 Tính cấp thiết của đề tài
Sự phát triển mạnh mẽ của công nghệ, truyền thông cùng với việc Internet trở nên phổ biến đã thâm nhập, tác động rất sâu sắc đến hầu hết mọi lĩnh vực như kinh tế, chính trị, xã
Trang 8hội… Chính nhờ điều này, đã giúp cho việc tiếp cận, quản lí, chia sẻ thông tin giữa các
cá nhân, tổ chức diễn ra một cách nhanh chóng và thuận lợi hơn rất nhiều
Tuy nhiên, đi cùng với sự thuận tiện đó là việc thông tin cũng dễ dàng bị đánh cắp bởi những kẻ tấn công mạng (Hacker) Hoạt động của các tổ chức, doanh nghiệp ngày nay phụ thuộc rất nhiều vào hệ thống mạng máy tính và cơ sở dữ liệu (CSDL), vì đây là nơi lưu trữ số lượng rất lớn thông tin cá nhân của khách hàng cùng vô số tài liệu mật khác, việc thông tin bị sai lệch hoặc bị mất hay hệ thống bị mất quyền quản trị ảnh hưởng vô cùng lớn đến quá trình hoạt động và phát triển Nhận thấy được tầm quan trọng của thông tin, hacker luôn tạo ra nhiều hình thức tấn công khác nhau nhắm vào những thông tin cá nhân của người dùng để trục lợi, thông tin càng nhiều, càng quan trọng thì càng dễ dàng
là mục tiêu tấn công Các hình thức tấn công mạng có thể kể đến như: Cross Site Scripting, Information Leakage, Directory Traversal, Hacking Wireless, SQL Injection, Session Hijacking…
Trong thời buổi bùng nổ thông tin hiện nay, ngoài việc đảm bảo thông tin luôn được cập nhật và cung cấp một cách nhanh chóng, chính xác nhất thì vấn đề bảo vệ an toàn cho thông tin cũng được coi là một yếu tố sống còn Do đó, để làm tốt công tác bảo vệ thì cần
có cái nhìn cụ thể về cách thức cũng như phương pháp của các cuộc tấn công để từ đó tìm
ra cách giải quyết phòng tránh cụ thể, chính vì lý do trên nhóm chúng tôi đã quyết định
lựa chọn đề tài: “Các phương thức tấn công và phòng thủ trong hệ thống mạng” để
nghiên cứu
2 Tình hình nghiên cứu
Vấn đề bảo đảm an toàn dữ liệu cho các máy tính được kết nối vào mạng Internet có vai trò rất quan trọng, nhằm mục đích bảo vệ dữ liệu, bảo vệ thông tin doanh nghiệp, người dùng, bảo vệ hệ thống từ các mối đe dọa an ninh mạng hiện nay, có thể kể đến các hình thức như: tấn công từ chối dịch vụ DDoS- Botnet, tấn công lỗ hổng bảo mật web SQL Injection, sử dụng Proxy tấn công mạng, tấn công trên tầng ứng dụng,…Với tình hình đó, đã có rất nhiều đề tài nghiên cứu về cách thức tấn công mạng và tìm ra giải pháp
của chúng đã được tiến hành cả trong nước lẫn trên thế giới như:
Trang 9Đầu tiên là những nghiên cứu trong nước gồm: “Phát hiện và cảnh báo lỗ hổng bảo mật SQL Injection trong ứng dụng web” luận văn thạc sĩ của Nguyễn Thúy Hồng, năm 2013”; “Tìm hiểu về an ninh mạng và kỹ thuật SQL Injection” đồ án môn học của Phạm Thị Thảo vàVương Đình Khoa, năm 2012; “Bảo vệ ứng dụng web chống tấn công kiểu SQL Injection” của Lê Đình Huy, kỷ yếu hội thảo Công nghệ thông tin -2004, Đại học Khoa Học Tự Nhiên Tp.HCM; “Nghiên cứu một số vấn đề về bảo mật ứng dụng web trên Internet” khóa luận tốt nghiệp của Nguyễn Duy Thăng và Nguyễn Minh Thư, năm 2003;“Phát hiện lỗ hổng an ninh trên các ứng dụng web”, đồ án tốt nghiệp của Bùi Duy
Hùng, năm 2009; “Tìm hiểu kĩ thuật tấn công Ethical Hacking ”, Đồ án môn học An ninh
mạng- Trường Cao đẳngCông nghệ thông tin Việt-Hàn, năm 2012; “Nghiên cứu phân tích một số phương thức tấn công điển hình trên mạng máy tính và phương pháp ngăn chặn”, Luận án Thạc sĩ của Nguyễn Văn Thịnh, năm 2012; “Nghiên cứu vấn đề an ninh mạng Internet không dây và ứng dụng”, Luận văn Thạc sĩ của Bùi Phi Long, năm 2009; “Tìm hiểu về an ninh mạng và kỹ thuật Enumeration”, đồ án môn học của Đỗ Duy Sơn, Trường
Cao đẳngCông nghệ thông tin Việt- Hàn, năm 2012
Bên cạnh đó, còn có rất nhiều luận văn, bài nghiên cứu Quốc tế như: “A Classification
of SQL Injection Attacks and Countermeasures”, của William G.J Halfond, Jeremy
Viegas và Alessandro Orso College, Học viện công nghệ máy tính Georgia, năm 2006;
“Dissertation Defense-Analyzing Cyber Attacks”, của Zhenxin Zhan đại họcTexas - San Antonio, năm 2014; “A Model to Study Cyber Attack Mechanics and Denial-of-Service Exploits over the Internet's Router Infrastructure Using Colored Petri Nets”, của Master’s
Theses và Doctoral Dissertation, Lawrence M.Healy,đại học Michigan miền đông, năm
2009; “Cisco Secure Intrusion Detection System”, của Earl Carter, năm 2001
Nhìn chung, các đề tài trên có nêu ra các giải pháp phòng tránh tấn công mạng Tuy nhiên, cho đến nay vẫn chưa có biện pháp phòng tránh tuyệt đối, trong khi đó các phương thức tấn công luôn thay đổi không ngừng và ngày một tinh vi hơn, gây thiệt hại vô cũng
to lớn cho các tổ chức, cơ quan chính phủ, doanh nghiệp và cá nhân
Vì vậy, đề tài này được thực hiện không nằm ngoài mục đích tìm hiểu, phân tích và đặc biệt là cập nhật các lỗ hổng bảo mật cũng như phương thức tấn công mới trong hệ
Trang 10thống mạng cũng như các ứng dụng Web và biện pháp phòng tránh Đề tài này sẽ đóng góp một phần nhỏ cho kho nghiên cứu khoa học trong nước và thế giới nhằm tìm ra các biện pháp phòng tránh hiệu quả nhất các cuộc tấn công mạng hiện nay
3 Mục đích và nhiệm vụ nghiên cứu
Mục đích nghiên cứu: Tìm hiểu và phân tích một số phương thức tấn công mạng và
phương pháp phòng thủ
Nhiệm vụ nghiên cứu: Để đạt được mục đích nghiên cứu đã đề ra, đề tài hướng tới
giải quyết các vấn đề sau:
- Trình bày tổng quan về các hình thức tấn công mạng phổ biến trong đó tập trung vào làm rõ hai phương thức chính là SQL Injection và Social Engineering
- Mục đích, nội dung và các mối nguy hại, nguy cơ rủi ro của các phương thức tấn công mạng
- Xác định cách thức tấn công của SQL Injection và Social Engineering
- Hướng phòng thủ đối với các cuộc tấn công mạng, đặc biệt là hai phương thức: SQL Injection và Social Engineering
4 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu: Các phương thức tấn công và phòng thủ trong hệ thống mạng Phạm vi nghiên cứu: Đề tài nghiên cứu các cách thức tấn công hệ thống mạng phổ
biến, trong đó tập trung chủ yếu vào hai phương thức tấn công nguy hiểm nhất là SQL Injection (tấn công kỹ thuật) và Social Engineering (tấn công phi kỹ thuật), từ đó đưa
ra cách phòng thủ nhằm hạn chế các cuộc tấn công này
5 Phương pháp nghiên cứu
Đề tài kết hợp sử dụng nhuần nhuyễn các phương pháp nghiên cứu: phân tích, tổng hợp tài liệu, phương pháp mô phỏng
- Phương pháp nghiên cứu, phân tích và tổng hợp tài liệu: được sử dụng để tìm hiểu
cơ sở lý luận về an toàn bảo mật thông tin, cơ chế và cách thức tấng công SQL Injection
và Social Engineering
Trang 11- Phương pháp mô phỏng: dùng để mô phỏng lại quá trình thực hiện và kết quả của cách thức tấn công Sql Injection từ đó đưa ra hướng phòng thủ hiệu quả
6 Ý nghĩa khoa học và ý nghĩa thực tiễn
- Đề tài nghiên cứu có thể dùng làm tài liệu tham khảo cho sinh viên, người dùng muốn tìm hiểu rõ hơn các khái niệm, các cách thức tấn công, các nhận biết và phòng tránh khi dữ liệu bị thâm nhập, cùng nhiều vấn đề liên quan khác
7 Bố cục
Ngoài phần lời cảm ơn, tóm tắt, mở đầu, kết luận, tài liệu tham khảo, bố cục của đề tài được chia thành 3 chương:
Chương I: Mạng máy tính và vấn đề đảm bảo an toàn bảo mật thông tin
Chương II: Kỹ thuật tấn công SQL Injection và Social Engineering
Chương III: Mô phỏng kỹ thuật tấn công SQL Injection và cách phòng chống
Trang 12đó các máy tính có thể trao đổi thông tin qua lại với nhau.”[7]
Theo Tiến sĩ Phạm Thế Quế: “Mạng máy tính là tập hợp các máy tính đơn lẻ được kết nối với nhau bằng các phương tiện truyền dẫn (Transmission Medium) và theo một kiến trúc mạng xác định (Network Architecture) Nói cách khác, mạng máy tính là tập hợp các máy tính kết nối với nhau hoạt động, truyền thông tuân theo một quy tắc xác định.”[2]
1.1.1 Lợi ích của việc kết nối mạng máy tính
Việc kết nối các máy tính thành mạng có thể giảm được số lượng máy in, các thiết bị lưu trữ và các thiết bị ngoại vi khác, đồng thời tăng hiệu quả kinh tế Nhờ kết nối mạng, việc sử dụng, khai thác, chia sẻ các tài nguyên trong hệ thống máy tính cục bộ cũng như nguồn tài nguyên ở các hệ thống máy tính liên mạng được dễ dàng, không những tiết kiệm thời gian, sức lực để thu thập, lưu trữ, xử lý dữ liệu mà còn tăng khả năng tổ chức, triển khai các dịch vụ, dự án lớn trên diện rộng một cách thuận lợi và tiết kiệm chi phí Nói cách khác, việc kết nối mạng máy tính giúp xóa đi rào cản về khoảng cách địa lý của các hoạt động, dịch vụ, giao tiếp giữa con người với con người
1.1.2 Phân loại mạng máy tính
Mạng máy tính có nhiều loại phụ thuộc vào nhiều yếu tố như về đặc điểm địa lý, tốc
độ đường truyền, đường đi của dữ liệu mạng…Nhưng nhìn chung thì mạng máy tính được chia thành những nhóm cơ bản sau: Mạng cục bộ (LAN), mạng đô thị (MAN), mạng diện rộng (WAN)
Trang 131.1.3 Mô hình OSI (Open System Interconnection) và giao thức TCP/IP
(Transmission Control Protocol/Internet Protocol)
1.1.3.1 Mô hình OSI
Mô hình kết nối các hệ thống mở OSI là mô hình căn bản về các tiến trình truyền thông, thiết lập các tiêu chuẩn kiến trúc mạng ở mức Quốc tế, là cơ sở chung để các hệ thống khác nhau có thể liên kết và truyền thông được với nhau Mô hình OSI tổ chức các giao thức truyền thông thành bảy tầng, mỗi tầng đều có đặc tính là nó chỉ sử dụng chức năng của tầng dưới nó, đồng thời chỉ cho phép tầng trên sử dụng các chức năng của mình
Mô hình OSI cho phép chia nhỏ hoạt động phức tạp của mạng thành các phần công việc đơn giản, trừu tượng, dễ hình dung hơn Dựa vào mô hình OSI các nhà thiết kế có khả năng phát triển trên từng module chức năng, cùng với các chuẩn giao tiếp chung cung cấp khả năng “plug and play” và tích hợp nhiều nhà cung cấp sản phẩm
Trong mô hình OSI có hai loại giao thức chính được áp dụng: Giao thức hướng liên kết (Connection - Oriented) và giao thức không liên kết (Connectionless)
Giao thức hướng liên kết: Trước khi truyền dữ liệu, các thực thể đồng tầng trong hai
hệ thống cần thiết lập một liên kết logic Chúng thương lượng với nhau về tập các tham số
sẽ sử dụng trong giai đoạn truyền dữ liệu Dữ liệu được truyền với các cơ chế kiểm soát lỗi, kiểm soát luồng dữ liệu, cắt/hợp dữ liệu, nhằm nâng cao độ tin cậy và hiệu quả của quá trình truyền dữ liệu Sau khi trao đổi dữ liệu, liên kết sẽ được hủy bỏ Thiết lập liên kết logic sẽ nâng cao độ tin cậy và an toàn trong quá trình trao đổi dữ liệu
Giao thức không liên kết: Trước khi truyền dữ liệu, các thực thể đồng tầng trong hai
hệ thống không thiết lập một liên kết logic và dữ liệu được truyền độc lập trên các tuyến khác nhau Với các giao thức không liên kết chỉ có giai đoạn duy nhất truyền dữ liệu, không đảm bảo được nơi nhận và không kiểm soát được đường truyền
1.1.3.2 Mô hình TCP/IP (Transmission Control Protocol/ Internet Protocol)
Là họ các giao thức cùng làm việc với nhau để cung cấp phương tiện truyền thông liên mạng Vì lịch sử của TCP/IP gắn liền với Bộ quốc phòng Mỹ, nên việc phân lớp giao thức TCP/IP được gọi là mô hình DOD (Department of Defense), bộ giao thức cho phép kết
Trang 14nối các hệ thống mạng không đồng nhất với nhau Ngày nay, TCP/IP được sử dụng rộng rãi trong các mạng cục bộ cũng như trên mạng Internet toàn cầu
TCP/IP được xem là giản lược của mô hình tham chiếu OSI với bốn tầng như sau:
- Tầng liên kết mạng (Netwwork Access Layer)
- Tầng Internet (Internet player)
- Tầng giao vận (Host-to-Host Transport Layer)
- Tầng ứng dụng (Application)
Hình 1: Mô hình OSI và mô hình TCP/IP
1.2 Tổng quan về an toàn bảo mật thông tin
1.2.1 Khái niệm
Thông tin là một loại tài sản vô giá, một loại tài sản đặc biệt Thông tin tồn tại ở nhiều dạng thức khác nhau như được viết hoặc được in trên giấy, được lưu trữ dạng điện tử, dạng văn bản, phi văn bản Ngày nay, vai trò của thông tin ngày càng được nâng cao hơn khi thông tin quyết định khả năng tồn tại của cá nhân, tổ chức,…điều này thể hiện rõ ở việc cá nhân, doanh nghiệp càng nắm nhiều thông tin thì khả năng thành công và tầm ảnh hưởng càng lớn Nhận thấy được vai trò đặc biệt quan trọng của thông tin, vấn đề về bảo mật thông tin được đặt ra, cần thiết phải có những biện pháp để giảm thiểu sự phá hoại, những cuộc tấn công có chủ đích và các tác nhân không mong muốn nhắm vào thông tin
Theo ISO 17799/27001 “An toàn thông tin là khả năng bảo vệ môi trường thông tin kinh tế xã hội, đảm bảo cho việc hình thành, sử dụng và phát triển vì lợi ích của mọi công
Trang 15dân, mọi tổ chức và quốc gia Thông qua các chính sách về an toàn bảo mật thông tin được xây dựng trên nền tảng một hệ thống các chính sách, quy tắc, quy trình và các giải pháp kỹ thuật nhằm mục đích đảm bảo an toàn tài nguyên thông tin mà tổ chức đó sở hữu, cũng như tài nguyên thông tin của các đối tác, các khách hàng trong môi trường thông tin toàn cầu.”[4]
Theo luật công nghệ thông tin số 67/2006/QH11, ngày 29 tháng 6 năm 2006 “An toàn thông tin là duy trì tính bảo mật, tính toàn vẹn và tính sẵn sàng của thông tin; ngoài ra còn có thể bao hàm một số tính chất khác như tính xác thực, kiểm soát được, không từ chối và tin cậy.”[4]
Nhìn chung, chúng ta có thể hiểu an toàn bảo mật là bảo vệ thông tin trước nguy cơ mất an toàn và đảm bảo sự hoạt động liên tục của thông tin trong hoạt động, tổ chức, doanh nghiệp giảm thiểu sự phá hoại và nâng cao tối đa cơ hội phát triển thông tin
1.2.2 Nguyên tắc nền tảng an toàn bảo mật thông tin
An toàn bảo mật thông tin là một quá trình chứ không phải là một kỹ thuật Chính vì thế mà việc đảm bảo cho an toàn thông tin phải được diễn ra liên tục và phải được tuân thủ theo nguyên tắc nhất định
Thứ nhất: Phải thẩm định kỹ lưỡng về tính bảo mật, lường trước được các tình huống
tấn công có thể xảy ra Đảm bảo hệ thống thông tin không có lỗi, thường xuyên rà soát kiểm tra hệ thống thông tin, khắc phục những lỗi trong hệ thống mà có thể dễ bị lợi dụng tấn công
Thứ hai: Đảm bảo tính hệ thống và tính tổng thể trong việc sử dụng các phương tiện
đảm bảo an toàn bảo mật thông tin Ngày nay, chúng ta có rất nhiều thiết bị công nghệ lưu trữ thông tin được liên kết với nhau như: điện thoại, laptop, máy tính bàn,… Đây cũng là những mục tiêu cho các hacker nhắm tới khai thác lỗ hổng trong các phương tiện đó, kể
cả khai thác từ chính con người Chính vì vậy, các phương tiện đảm bảo an toàn bảo mật thông tin cần phải đồng bộ thành một hệ thống và phải thống nhất với nhau về tổ chức - quản trị và các giải pháp về kỹ thuật
Trang 16Thứ ba: Cần đảm bảo nguyên tắc tập trung An toàn bảo mật thông tin là một công tác
có điều khiển, cần quản lý thống nhất vì vậy cần phải được vận hành trên nguyên tắc tập trung Trên nguyên tắc này ta có thể bám sát các mục tiêu chung và tập trung nguồn lực
và phương tiện kỹ thuật để thực hiện các nhiệm vụ an toàn đặt ra
Thứ tư: Cần phải đảm bảo tính trong suốt cho hệ thống thông tin Có nghĩa là các biện
pháp bảo mật thông tin phải thân thiện với người sử dụng, dễ sử dụng và đặc biệt là chương trình đảm bảo an toàn này không làm ảnh hưởng đến hệ thống thông tin
Đối với nhiều tổ chức, doanh nghiệp, cá nhân thì thông tin đóng vai trò then chốt, quyết định đến sự sống còn của họ Các hệ thống thông tin cũng ngày càng phát triển, mở rộng, điều này góp phần gắn kết các thông tin lại với nhau nhưng cũng tiềm ẩn nhiều nguy hại cho thông tin như đánh cắp, tráo đổi…mà chúng ta không thể lường trước được Điều này khiến cho vai trò của công tác bảo mật trở nên quan trọng hơn bao giờ hết,
để đạt được sự an toàn trong bảo mật thông tin thì cần phải nắm được mục tiêu trong công tác bảo mật (mô hình CIA), gồm các mục tiêu: tính bảo mật thông tin, tính toàn vẹn của thông tin, tính sẵn sàng của thông tin
Tính bí mật của thông tin (Confidentiality) được hiểu là thông tin chỉ được phép truy
cập (đọc) bởi những đối tượng (người, chương trình máy tính…) được cấp phép
Tính toàn vẹn của thông tin (Integrity) là thông tin chỉ được phép xóa hoặc sửa bởi
những đối tượng được phép và phải đảm bảo rằng thông tin vẫn còn chính xác khi được lưu trữ hay truyền đi
Tính sẵn sàng của thông tin (Availability) là thông tin có thể được truy xuất bởi những
người được phép vào bất cứ khi nào họ muốn
Trang 17Hình 2: Mô hình CIA
1.2.3 Các loại hình tấn công mạng
Tấn công hệ thống mạng là hoạt động có chủ ý của kẻ phạm tội lợi dụng các lỗ hổng của hệ thống để phá vỡ tính sẵn sàng, tính toàn vẹn và tính bảo mật của hệ thống thông tin Một số loại hình tấn công thông dụng như:
Tấn công từ chối dịch vụ là kiểu tấn công ngăn chặn người dùng truy cập vào tài
nguyên thông tin Loại hình tấn công này thường tập trung tấn công vào các trang mạng hay server của ngân hàng, cổng thanh toán thẻ tín dụng…
Hình 3: Kiểu tấn côngtừ chối dịch vụ Tấn công ngăn chặn thông tin là kiểu tấn công mà hacker có thể truy cập tới tài
nguyên thông tin của người dùng Đây là hình thức tấn công vào tính bí mật của thông tin
Trang 18Hình 4: Kiểu tấn công chặn thông tin Tấn công sửa đổi thông tin là kiểu tấn công mà người tấn công vào hệ thống thông tin
thay đổi tính đúng đắn của thông tin Đây là kiểu tấn công vào tính toàn vẹn của thông tin
Hình 5: Kiểu tấn công sửa đổi thông tin Tấn công chèn thông tin giả là hình thức tấn công này kẻ tấn công sẽ truy cập vào hệ
thống thông tin của người dùng sau đó chèn những thông tin sai lệch vào hệ thống thông tin Đây là kiểu tấn công vào tính chính xác của hệ thống thông tin
Trang 19Hình 6: Kiểu tấn công chèn thông tin giả
1.2.4 Các bước tấn công mạng
Bước 1: Xác định mục tiêu
Đây là bước hacker xác định đối tượng sẽ thực hiện tấn công, mục tiêu có thể được xác định từ trước với mục đích rõ ràng hoặc không có chủ đích, mà được xác định sau khi hacker thực hiện tìm kiếm một cách ngẫu nhiên lỗ hổng thông qua các phần mềm quét lỗi
Bước 2: Thu thập thông tin mục tiêu (FootPrinting, Scanning), trinh sát dò tìm lỗ hổng (Enumeration)
Đây là bước hacker tiến hành thu thập thông tin về đối tượng bao gồm: Tên miền (Domain Name), Địa chỉ IP, giao thức mạng (Networking Protocol), xác định hệ điều hành, hệ quản trị cơ sở dữ liệu, tìm hiểu xemhệ thống có đang chạy không, các dịch vụ đang chạy hay đang lắng nghe, tìm các lỗ hổng, kiểm tra các cổng, xác định các dịch vụ
Bước 3: Lựa chọn mô hình tấn công
Gồm có hai mô hình tấn công:
Trang 20Mô hình tấn công truyền thống: Mô hình tấn công truyền thống được tạo dựng theo
nguyên tắc “một đến một” hoặc “một đến nhiều”, có nghĩa là cuộc tấn công xảy ra từ một nguồn gốc
Mô hình tấn công phân tán: Khác với mô hình truyền thống trong mô hình tấn công
phân tán sử dụng quan hệ “nhiều đến một” và “nhiều đến nhiều”
Bước 4: Thực hiện tấn công
Ở bước này, hacker bắt đầu sử dụng thông tin thu thập được từ bước 2 để phân tích hệ thống và tiến hành hành động Bao gồm các loại như:
Đột nhập hệ thống (Gaining Access): Phương pháp được sử dụng ở đây có thể là tấn
công vào lỗi tràn bộ đệm, lấy và giải mã file password hay đột nhập qua các cổng mở
Nâng quyền hệ thống (Privilege Escalation): Nếu hacker xâm nhập đựợc vào mạng
với một tài khoản nào đó, thì họ sẽ tìm cách kiểm soát toàn bộ hệ thống Hacker sẽ tìm cách crack password của admin, hoặc sử dụng lỗ hổng để leo thang đặc quyền Kẻ xâm nhập có thể truy cập vào các file hay folder dữ liệu mà tài khoản người sử dụng ban đầu không được cho phép truy cập Mục đích chung của hacker là chiếm được quyền truy cập
ở mức độ quản trị Khi đó xem như có toàn quyền điều khiển hệ thống mạng
Khai thác hệ thống (Pilfering): Thông tin lấy từ bước trên đủ để hacker định vị server
và điều khiển server
Bước 5: Dừng và xoá dấu vết
Sau khi kiểm soát được hệ thống, điều khiển được server, hacker sẽ dừng, nhưng họ sẽ tạo cổng để lần sau đột nhập dễ dàng hơn, đồng thời xóa mọi dấu vết Các hành động diễn
ra gồm:
Tạo cổng hậu (Creating Backdoors): Hacker để lại Backdoors để chuẩn bị cho lần
xâm nhập tiếp theo, đó là một cơ chế cho phép hacker truy nhập trở lại bằng con đường bí mật không phải tốn nhiều công sức khai phá
Trang 21Xoá dấu vết (Covering Tracks): Sau khi đạt được mục đích, hacker tìm cách xoá dấu vết, xoá các file Log của hệ điều hành làm cho người quản lý không nhận ra hệ thống đã
bị xâm nhập hoặc có biết cũng không tìm ra kẻ xâm nhập là ai
1.2.5 Một số kĩ thuật tấn công mạng
Để xây dựng một hệ thống bảo mật, trước hết chúng ta phải hiểu rõ cách thức các hacker sử dụng để tấn công vào hệ thống Việc tìm hiểu cách thức tấn công góp phần rất nhiều cho công tác bảo mật một hệ thống mạng, giúp việc ngăn chặn hiệu quả hơn rất nhiều Môi trường mạng ngày càng phát triển, do đó nhu cầu bào mật, bảo đảm an ninh trên mạng luôn phát triển
Hiện nay, các phương pháp tấn công rất đa dạng và phong phú Tuy có rất nhiều phương thức tấn công nhưng có thể chia ra thành các dạng tấn công sau:
1.2.5.1 Tấn công thăm dò
Thăm dò là việc thu thập thông tin trái phép về tài nguyên, các lỗ hổng hoặc dịch vụ của hệ thống Tấn công thăm dò thường bao gồm các hình thức:
Sniffing: là một hình thức nghe lén trên hệ thống mạng dựa trên những đặc điểm của
cơ chế TCP/IP Sniffer ban đầu là một kỹ thuật bảo mật, được phát triển nhằm giúp các nhà quản trị mạng khai thác mạng hiệu quả hơn, và có thể kiểm tra các dữ liệu ra vào mạng cũng như các dữ liệu trong mạng (kiểm tra lỗi) Sau này, hacker dùng phương pháp này để lấy cắp mật khẩu hay các thông tin nhạy cảm khác
Ping Sweep: Xác định hệ thống đang “sống” hay không rất quan trọng vì có thể hacker
ngừng ngay tấn công khi xác định hệ thống đó đã “chết” Việc xác định trạng thái hệ thống có thể sử dụng kỹ thuật Ping Scan hay còn gọi với tên Ping Sweep Bản chất của quá trình này là gửi một ICMP Echo Request đến máy chủ mà hacker đang muốn tấn công và mong đợi một ICMP Reply
Port scanning: là một quá trình kết nối các cổng (TCP và UDP) trên một hệ thống
mục tiêu nhằm xác định xem dịch vụ nào đang “chạy” hoặc đang trong trạng thái “nghe”
Trang 22Xác định các cổng nghe là một công việc rất quan trọng nhằm xác định được loại hình hệ
thống và những ứng dụng đang được sử dụng
1.2.5.2 Tấn công xâm nhập
Tấn công xâm nhập là một thuật ngữ rộng miêu tả bất kỳ kiểu tấn công nào đòi hỏi người xâm nhập lấy được quyền truy cập trái phép của một hệ thống bảo mật với mục đích thao túng dữ liệu, nâng cao đặc quyền Có ba loại:
Tấn công truy nhập hệ thống: Là hành động nhằm đạt được quyền truy cập bất hợp
pháp đến một hệ thống mà ở đó hacker không có tài khoản sử dụng
Tấn công truy nhập thao túng dữ liệu: Kẻ xâm nhập, đọc, viết, xóa, sao chép hay thay
đổi dữ liệu Ở dạng tấn công này phải kể đến SQL Injection- kiểu tấn công nhắm vào hệ thống cơ sở dữ liệu nhằm mục đích lấy được những thông tin có giá trị và đặc biệt là nắm được quyền quản trị, dựa vào những dòng lệnh truy vấn dựa trên lỗi của hệ thống quản trị
cơ sở dữ liệu
Tấn công truy nhập nâng cao đặc quyền: Các hacker phải cài đặt một chương trình có
mã độc trên máy tính mục tiêu, hoặc là đánh lừa người dùng để họ cài đặt chương trình có
chứa mã độc trên máy tính của họ Một số kĩ thuật tấn công sử dụng mã độc như: Trojan, Worms, Backdoor
Viruses: Virus, Wrom và Trojan Horse được gọi chung là những đoạn mã nguy hiểm
Chúng có thể chiếm dụng tài nguyên làm chậm hệ thống, hoặc làm hư hệ thống Virus là những chương trình được thiết kế để phá hoại hệ thống ở cả mức hệ điều hành và ứng dụng
Trojan: là chương trình máy tính thường ẩn mình dưới dạng một chương trình hữu ích
và có những chức năng mong muốn, hay ít nhất chúng trông như có các tính năng này nhưng nó lại tiến hành các thao tác khác không mong muốn một cách bí mật Những chức năng mong muốn chỉ là phần bề mặt giả tạo nhằm che giấu cho các thao tác này để gây hại và điều khiển máy tính
Trang 23Worms: Worm cũng là một dạng virus nhưng nó có khả năng tự tạo ra các bản sao để
phát tán Điểm khác biệt lớn nhất giữa Worm và Virus: Worm là một chương trình độc lập có thể tự nhân bản, lây lan qua mạng bằng nhiều cách nhưng thông thường nhất là E - mail và Chat Worm cũng có thể thực hiện các phá hoại nguy hiểm Trong khi đó virus là một đoạn mã nguy hiểm được gắn trong một chương trình khác Vì thế virus chỉ được kích hoạt khi chương trình có chứa virus được thực thi
Logic Bombs: Những đoạn mã được tích hợp vào các ứng dụng và có thể được thực
hiện để tấn công khi thỏa mãn một điều kiện nào đó (ví dụ các Script hay ActiveX được tích hợp trong các website) Là một loại malware thường được attacker để lại trong hệ thống có tính năng tương tự “bom hẹn giờ” Logic bomb khi gặp những điều kiện nhất định sẽ phát huy tính năng phá hoại của nó Một trong những logic bomb nổi tiếng là Chemobyl phát huy tính năng phá hoại của nó vào ngày 26/4 Một cách dùng của logic bomb mà attacker hay dùng là để hủy các chứng cứ của đợt tấn công khi admin hệ thống bắt đầu phát hiện đột nhập
Backdoor là tên một công cụ thuộc họ Trojan Dùng như tên gọi “Backdoor” dịch từ
tiếng anh sang tiếng việt có nghĩa là cửa sau Nguyên lý hoạt động của công cụ này khá đơn giản, khi được chạy trên máy tính nạn nhân, nó sẽ thường trực trên bộ nhớ và mở một cổng (Port) Cổng này do ta đặt hoặc mặc định, cho phép ta dễ dàng đột nhập vào máy nạn nhân thông qua cổng mà nó đã mở Ta có thể toàn quyền điều khiển máy tính nạn nhân Công cụ này cũng giúp hacker cầm cự trạng thái truy cập khi bị quản trị viên phát hiện và tìm cách khắc phục
1.2.5.4 Tấn công từ chối dịch vụ
Là những dạng tấn công mà kể tấn công trực tiếp gây nguy hại tới hệ thống mạng và ứng dụng (khống chế máy chủ, tắt các dịch vụ) Về cơ bản, tấn công từ chối dịch vụ là tên gọi chung của cách tấn công làm cho một hệ thống nào đó bị quá tải không thể cung cấp dịch vụ, làm gián đoạn hoạt động của hệ thống hoặc hệ thống phải ngưng hoạt động
Trang 24Tùy theo phương thức thực hiện mà nó được biết dưới nhiều tên gọi khác nhau như:
tấn công từ chối dịch vụ DoS (Denial of Service), tấn công từ chối dịch vụ phân tán DDoS (Distributed DoS), tấn công từ chối dịch vụ theo phương pháp phản xạ DRDoS
(Distributed Reflection DoS)
1.2.5.5 Social Engineering
Thuật ngữ này khá phổ biến trong công nghệ thông tin Đây là một kỹ thuật khai thác nhằm vào điểm yếu con người Con người trực tiếp quản lý phần mềm, hệ thống Do đó,
họ nắm được mọi thông tin quan trọng nhất
Kỹ thuật này ngày càng hữu ích và có độ chính xác tương đối cao Điển hình cho hình thức này là hacker nổi tiếng Kevin Mitnick Trong một lần, anh chỉ cần vài thông tin quan trọng của tổng thống Mỹ, đã gọi điện cho thư ký của ông và lấy được toàn bộ thông tin về thẻ tín dụng của tổng thống
Trang 25mức độ bảo mật thấp Thông tin này có thể được lưu trữ, chia sẻ hoặc sử dụng với mục đích bất hợp pháp
1.2.6.2 Sử dụng các công cụ tấn công khó phát hiện
Một số cuộc tấn công được dựa trên các mẫu tấn công mới, không bị phát hiện bởi các chương trình bảo mật, các công cụ này có thể có tính năng đa hình, siêu đa hình cho phép chúng thay đổi hình dạng sau mỗi lần sử dụng Cụ thể là gần đây, những kẻ tấn công đã
sử dụng phương pháp APT (Advanced Persistent Threat) hoặc các phương pháp tấn công
phức tạp khác để có thể xâm nhập vào hệ thống mạng một doanh nghiệp hầu như chỉ bằng cách lừa người dùng tải về và thực thi phần mềm độc hại bên trong mạng Sau khi xâm nhập, chúng sẽ tải nhiều công cụ tấn công hơn vào máy tính nạn nhân đầu tiên bị nhiễm, lấy thông tin đăng nhập và chuyển sang các máy trạm, máy chủ khác
Shellshock là một ví dụ điển hình về công cụ hợp pháp được xây dựng cho mục đích
cấy ghép mã độc hại rất khó phát hiện Trong thế giới Windows, những kẻ tấn công từ lâu
đã sử dụng các lệnh tích hợp trong Windows và DOS để thực hiện xâm nhập
1.2.6.3 Phát hiện nhanh các lỗ hổng bảo mật
Thông qua các lỗ hổng bảo mật của hệ thống, phần mềm kẻ tấn công khai thác các lỗ hổng này để thực hiện các cuộc tấn công Hàng năm, nhiều lỗ hổng bảo mật được phát hiện và công bố, tuy nhiên điều này cũng gây khó khăn cho các nhà quản trị hệ thống để luôn cập nhật kịp thời các bản vá Đây cũng chính là điểm yếu mà kẻ tấn công tận dụng
để thực hiện các hành vi tấn công, xâm nhập bất hợp pháp
Hiện nay, các lỗ hổng bảo mật được phát hiện càng nhiều trong các hệ điều hành, các web server hay các phần mềm khác,… Và các hãng sản xuất luôn cập nhật các lỗ hổng và đưa ra các phiên bản mới sau khi đã vá lại các lỗ hổng của các phiên bản trước Do đó, người sử dụng phải luôn cập nhật thông tin và nâng cấp phiên bản cũ mà mình đang sử dụng nếu không các hacker sẽ lợi dụng điều này để tấn công vào hệ thống
Trang 261.2.6.4 Tấn công bất đối xứng, tấn công diện rộng
Tấn công bất đối xứng xảy ra khi bên tấn công mạnh hơn nhiều so với đối tượng bị tấn công Với hàng loạt chiến tích trong thời gian gần đây, đội quân Anonymous bí hiểm đang trở thành nỗi khiếp sợ của nhiều tổ chức Ngày 20 tháng 5 năm 2009, những thành viên Anonymous đã thay phiên nhau post nhiều đoạn video “18+” lên trang chia sẻ video lớn nhất thế giới YouTube Rất nhiều đoạn video có nội dung “người lớn” đã được che đậy bằng những đoạn tag như “funny”, “Jonas”, “Brother” hay “family”
Tấn công diện rộng thực hiện khi kẻ tấn công tạo ra một mạng lưới kết hợp các hoạt động tấn công Tội phạm tấn công mạng diễn ra dưới nhiều hình thức khác nhau Mục tiêu chung của loại tội phạm này là lấy cắp thông tin, lừa đảo, chiếm đoạt tài sản hoặc phá hủy dữ liệu
1.2.7 Các nguy cơ mất an toàn trong hệ thống mạng
1.2.7.1 Cơ sở hạ tầng mạng
Cơ sở hạ tầng không đồng bộ, không đảm bảo tính hệ thống, tổng thể trong việc sử dụng các phương tiện đảm bào an toàn thông tin, cũng như yêu cầu thông tin được truyền trong hệ thống an toàn và thông suốt Các giải pháp về tổ chức-quản trị chưa được kết hợp thành một thể thống nhất, chưa đảm bảo quá trình kiểm soát an toàn sự vận hành của hệ thống, các thành phần của hạ tầng thông tin Đây là những yếu tố để những kẻ xâm nhập bất hợp pháp vào hệ thống khai thác và phá hoại thông tin dẫn đến nguy cơ mất an toàn thông tin Điển hình là các điểm yếu bảo mật tồn tại trong hạ tầng mạng, các kẽ hở trong giao thức TCP/IP Ta có thể thấy rằng các mối nguy hiểm có thể tiềm tàng ngay trong giao thức được sử dụng phổ biến trên mạng hiện nay Đây là một giao thức đơn giản, dễ
sử dụng và phổ cập Tuy nhiên do cấu trúc và một số đặc tính truyền giao dữ liệu, giao
thức này tiềm ẩn nhiều ruỉ ro Các hình thức tấn công TCP/IP thường gặp: Quét các cổng (Port Scans); tấn công tràn bộ đệm (TCP SYN hoặc TCP ACK Flood Attack) - TCP Sequence Number Attack; Giả mạo TCP/IP (TCP/IP Hijacking); Bắt giữ và hiển thị các thông báo trên mạng (Network Sniffers); Tấn công từ chối dịch vụ (Denial of Service
Attacks- DOS/DDOS),… là một trong những dạng tấn công TCP/IP rất nguy hiểm
Trang 27mã độc hại…tự động ăn cắp thông tin và gửi ra ngoài mà người dùng không hề hay biết Nguyên nhân dẫn đến tình trạng trên là do dữ liệu chưa được mô hình hóa và chuẩn hóa theo tiêu chuẩn về mặt tổ chức và mặt kỹ thuật Song song đó, các yếu tố pháp lý chưa được chú trọng trong truyền đưa các dữ liệu trên mạng, nghĩa là các dữ liệu được truyền
đi trên mạng chưa đảm bảo tính hợp pháp về mặt tổ chức và mặt kỹ thuật Đây là những yếu tố gây nguy cơ mất an toàn thông tin
1.2.7.3 Công nghệ
Chưa chuẩn hóa cho các loại công nghệ, mô hình kiến trúc tham chiếu nhằm đảm bảo cho tính tương hợp, tính sử dụng lại được, tính mở, an ninh, mở rộng theo phạm vi, tính riêng tư vào trong hạ tầng thông tin
1.2.7.4 Con người
Sự hiểu biết của những người trực tiếp quản lý, vận hành các hệ thống mạng còn hạn chế Vì vậy, cần những chính sách bảo mật hiệu quả và giúp cho người quản trị được mạng trước khi hacker tấn công; đồng thời cải thiện và phát triển hệ thống phần mềm, hệ thống thông tin nào chưa đồng đều và chưatheo quy chuẩn của các cơ quan tổ chức Đây
là yếu tố chủ chốt ảnh hưởng đến nguy cơ mất an toàn thông tin Vì cơ quan, tổ chức có xây dựng hạ tầng công nghệ thông tin, hệ thống bảo mật tốt đến đâu cũng không có ý nghĩa nếu như cá nhân trong cơ quản tổ chức không có kiến thức lẫn nhận thức về tầm quan trọng của việc bảo mật cũng như trách nhiệm, ý thức của họ trong việc tuân thủ đúng chính sách, quy tắc, giải pháp bảo mật an toàn thông tin
Trang 281.2.7.5 Quy trình, quản lý
Những bất cập phổ biến hiện nay như: Chưa chuẩn hóa quy trình nghiệp vụ trong vận hành hạ tầng thông tin, hệ thống mạng, chưa chuẩn hóa các thủ tục hành chính, các quy định pháp lý trong việc đảm bảo an toàn thông tin Song song đó, việc bố trí nguồn nhân lực chuyên trách chưa thật sự phù hợp, việc tổ chức quản lý, ứng dụng vào trong hệ thống chưa đúng cách, chưa chuẩn hóa và chưa có chế tài mang tính bắt buộc thực hiện Ngoài
ra, vẫn chưa xây dựng được một bộ quy tắc, chính sách về an toàn thông tin giúp cho việc quản lý, vận hành hệ thống được an toàn và hiệu quả cùng với việc chưa đảm bảo các phương tiện, cách thức thực hiện bảo mật an toàn thông tin và chính sách kiểm tra việc thực hiện của chúng Tất cả những thiếu sót nêu trên đã gây ra khó khăn, trở ngại trong việc bảo đảm an toàn thông tin hiện nay
1.2.8 Các biện pháp phòng thủ
1.2.8.1 Khái niệm phòng thủ
Nếu như tấn công hệ thống thông tin là hoạt động có chủ ý lợi dụng các lỗ hổng của
hệ thống tin để phá vỡ tính sẵn sàng, tính toàn vẹn và tính bảo mật của hệ thống thông tin thì việc phòng thủ chính là việc tìm và phát hiện hoặc dựa vào những lỗ hổng đã bị tấn công để thiết lập lại hệ thống, vá lại những lỗ hổng, ngăn chặn các mục đích tấn công khác nhằm vào thông tin của hệ thống, giúp hệ thống được an toàn hơn
1.2.8.2 Các biện pháp về công nghệ (Technology)
Ngoài các rủi ro mất thông tin đến từ các hacker thì thông tin có thể bị mất do chính các thiết bị lưu trữ tại nơi quản lý Các thiết bị lưu trữ dữ liệu trong hệ thống thông tin đều
có thời gian sử dụng nhất định, việc sử dụng càng lâu thì các khả năng ổn định của hệ thống sẽ càng giảm, đồng nghĩa với việc rủi ro ngày càng tăng lên Các phần mềm máy tính kể cả hệ điều hành không phải lúc nào cũng hoạt động đúng như mong muốn, sự cố như treo máy, không tương thích với phần mềm…rất dễ xảy ra, nguy cơ mất dữ liệu liên quan đến các vấn đề về công nghệ là không thể lường trước được Do đó, cần có những biện pháp để hạn chế những rủi ro trên như:
Đối với hệ thống dữ liệu cục bộ:
Trang 29- Backup dữ liệu thường xuyên
- Sử dụng các phần mềm có bản quyền cho máy Server và các máy Client
- Thường xuyên bảo trì, dò xét lỗi hệ thống lưu trữ dữ liệu
- Cập nhật hệ thống về phần mềm, phần cứng theo định kỳ
- Thiết lập các phân quyền hạn chế quyền truy cập
Đối với hệ thống dữ liệu có kết nối Internet: Ngoài những biện pháp trên thì cần thiết lập nhiều lớp hệ thống bảo mật trước khi truy cập các website không đáng tin cậy và trước khi tải các dữ liệu về như tưởng lửa, các phần mềm tìm, phát hiện và diệt virus, xây dựng
hệ thống cơ sở dữ liệu với độ bảo mật cao hơn (so với dữ liệu chỉ truy cập trong mạng cục bộ)
1.2.8.3 Các biện pháp về chính sách, tổ chức (Policy and Practices)
Quản lý dựa trên chính sách là một phương pháp hành chính được sử dụng để đơn giản hóa việc quản lý của một sự nỗ lực nhất định bằng cách thiết lập các chính sách để đối phó với các tình huống có khả năng xảy ra Chính sách hoạt động quy tắc có thể được gọi là một cách để duy trì trật tự, an ninh, ổn định Do đó, việc thiết lập các hệ thống hoạt động cần phải tuân thủ theo các chính sách cụ thể mà cơ quan đang được thực thi hệ thống đưa ra như chính sách quản lý, chính sách phân định kiểm soát, chính sách bảo mật…
Các cơ quan tổ chức có hệ thống cơ sở dữ liệu lớn, quan trọng cần thiết phải xây dựng một chính sách riêng, quy định rõ ràng về từng khoản, mục để bảo mật cho hệ thống, tránh được những rủi ro đã từng gặp phải và lường trước những rủi ro khác Từ đó việc tổ chức sẽ theo chính sách được thiết lập và đưa vào vận hành với mức độ an toàn cao nhất
Trang 30bảo mật, an toàn trong hệ thống Tuy nhiên, để có được một người có chuyên môn sâu về lĩnh vực bảo mật lại không hề đơn giản, cần thiết phải có những biện pháp như:
Các công ty, tổ chức cá nhân cần tạo điều kiện cho nhân viên theo học các khóa học
về bảo mật trong an toàn hệ thống máy tính để nâng cao nhận thức, hiểu biết của cá nhân
về lĩnh vực này Cần có những buổi hội thảo, tuyên truyền cho những cá nhân, tổ chức hiểu được tầm quan trọng của thông tin và những bất cập, nguy hiểm cũng như hậu quả khi thông tin bị đánh cắp
Mỗi cá nhân trong lĩnh vực thông tin cần thiết phải trang bị được kiến thức chuyên môn nhất định, từ đó có thể tìm hiểu, nghiên cứu sâu hơn để có những cách thức phòng chống, khắc phục cho những sự cố từ hệ thống dữ liệu hoặc các tác nhân từ bên ngoài (hacker)
Các cá nhân sử dụng cũng cần có những kiến thức cơ bản để nhận biết và phòng tránh dính phải những tập tin, dữ liệu nguy hiểm
Trong các hình thức tấn công hệ thống mạng được trình bày ở phần trên, nhóm nghiên cứu tiến hành nghiên cứu chi tiết về hai hình thức tấn công được coi là nguy hiểm nhất hiện nay đó là SQL Injection và Socia lEngineering
Theo số liệu thống kê của trang Security Intelligence thì trong top 10 phương thức tấn
công phổ biến nhất thì SQL Injection đứng vị trí đầu tiên
SQL Injection là một hình thức tấn công có mục tiêu rất cụ thể và thường chỉ là một hoặc một vài mục tiêu đơn lẻ nhưng mức độ thiệt hại là rất lớn, khó có thể phát hiện khi
bị tấn công như virus hay sâu trong máy tính Chính vì vậy việc xâm nhập bằng SQL Injection chiếm tỉ lệ thành công rất cao
Ngoài phương pháp tấn công mạng bằng kỹ thuật, nhóm đề tài cũng chọn thêm một
phương pháp tấn công mạng phi kỹ thuật “Social Engineering” Đây là phương pháp đột
nhập vào hệ thống hoặc mạng của một công ty, tổ chức - là quá trình đánh lừa người dùng của hệ thống hoặc thuyết phục họ cung cấp thông tin có thể giúp chúng ta đánh bại bộ phận an ninh Social Engineeringlà phương pháp phi kỹ thuật rất nguy hiểm, bởi vì hacker
Trang 31có thể lợi dụng tấn công vào yếu tố con người và phá vỡ hệ thống kỹ thuật an ninh hiện tại Phương pháp này có thể sử dụng để thu thập thông tin trước hoặc trong cuộc tấn công Sau khi thành công bằng một trong hai phương thức nguy hiểm trên sẽ kiểm soát được server, làm bàn đạp để tấn công hệ thống
The 10 Most Common Application Attacks in Action
Top 10 Unvalidated Redirects and Forwards Top 9 Using Components With Known Vulnerabilities Top 8 Cross-Site Request Forgery
Top 7 Missing Function Level Access Control Top 6 Sensitive Data Exposure
Top 5 Security Misconfiguration Top 4 Insecure Direct Object References Top 3 Cross-Site Scripting
Top 2 Broken Authentication and Session Management Top 1 Injection
Hình 8:Bảng xếp hạng ứng dụng tấn công mạng phổ biến năm 2015
Trang 32Việc thiết kế và đưa website vào hoạt động luôn đòi hỏi các nhà phát triển phải quan tâm đến vấn đề về an toàn, bảo mật nhằm giảm thiểu tối đa khả năng bị tin tặc tấn công Thường các nhà phát triển tập trung vào các vấn đề an toàn của hệ điều hành, hệ quản trị CSDL, Webserver… Chẳng hạn như lỗ hổng bảo mật trên IIS Tuy nhiên, có một nguy cơ tiềm ẩn ít được quan tâm đó là các đoạn mã của ứng dụng và một trong số đó là tấn công bằng SQL Injection
SQL Injection là một kỹ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng cho việc kiểm tra dữ liệu nhập trong các ứng dụng web và các thông báo lỗi của hệ quản trị cơ sở
dữ liệu để thi hành các câu lệnh SQL bất hợp pháp Việc thực thi các câu lệnh này mang lại một hệ quả rất nghiêm trọng vì những kẻ tấn công có thể từ đó đọc, xóa, tùy chỉnh… với toàn quyền trên cơ sở dữ liệu của ứng dụng Lỗi này thường xảy ra trên các ứng dụng web có dữ liệu được quản lý bằng các hệ quản trị cơ sở dữ liệu như MySQL, Oracle…
2.1.1.2 Mục đích
Thông qua SQL Injection, các hacker với mục đích bỏ qua các rào cản mẫu đăng nhập
và nhìn thấy những gì nằm sau nó Điều này chỉ có thể khi hệ thống bảo mật, hệ thống truy vấn còn lỗ hỗng và được gửi trực tiếp với các truy vấn SQL vào cơ sở dữ liệu Các lỗ
Trang 33hổng do hệ thống truy vấn cung cấp phương tiện cho hacker để giao tiếp trực tiếp với cơ
2.1.2 Cách thức tấn công của SQL Injection
2.1.2.1 Mô hình hoạt động của WebServer
Khi muốn xem một website nào đó, người dùng từ máy tính của mình đánh một địa chỉ website trên thanh địa chỉ của trình duyệt Khi đó sẽ xảy ra quá trình như sau:
Khi người dùng ấn “Enter” thì trình duyệt sẽ chuyển yêu cầu này đến WebServer (WebServer hay còn gọi là Host là nơi chứa Website của một doanh nghiệp, một tổ chức hay một cá nhân nào đó) WebServer sau khi nhận được yêu cầu từ người dùng sẽ sử dụng các chương trình như PHP, ASP lấy dữ liệu trong database (cơ sở dữ liệu) Các chương trình này sau đó sẽ trả dữ liệu về lại cho WebServer xử lý WebServer sau đó sẽ hiển thị dữ liệu này lên website đã được thiết kế sẵn với HTML và CSS Cuối cùng website này được trả về cho người dùng xem
Trang 34Hình 9: Mô hình hoạt động của WebServer
SQL Injection đúng như cái tên của nó, là cách thức tấn công vào lỗ hổng của website nhằm vào được cơ sở dữ liệu, bằng cách chèn thêm một đoạn query của SQL để làm sai lệch câu lệnh truy vấn, từ đó có thể phá hủy website hoặc lấy cơ sở dữ liệu
2.1.2.2 Quy trình tấn công
Bước 1: Hacker tìm form hoặc lỗ hổng qua URL của website
Bước 2: Hacker chèn lệnh SQL vào lỗ hổng
Bước 3: Hacker lấy được thông tin mình mong muốn (thông tin bài đăng hoặc thông tin của một User hoặc thông tin đăng nhập của SQL)
Bước 4: Hacker giải mã password của admin, hoặc thay thế mật khẩu của mình vào rồi đăng nhập bằng tài khoản Admin và làm những gì hắn muốn
2.1.2.3 Quá trình thực hiện
Mỗi khi người dùng tiến hành đăng nhập vào tài khoản trực tuyến, họ sẽ phải cung cấp thông tin về Username và Password Trong quy trình kiểm tra và xác nhận tính hợp pháp của tài khoản đó, hệ thống hoặc ứng dụng web tương ứng sẽ chạy 1 câu lệnh truy vấn có dạng như sau:
SELECT UserID FROM Users WHERE UserName='myuser' AND Password='mypass';
Trang 35Quy trình yêu cầu sự trùng khớp giữa tên tài khoản được nhập vào (myuser) và mật khẩu (mypass) với bản ghi lưu trữ thông tin trong bảng Users, và sau đó trả về giá trị UserID Nếu không trùng khớp thì sẽ không có giá trị UserID nào được trả về, và thông tin người dùng nhập vào là không chính xác Tiếp theo, tham khảo mẫu câu lệnh truy vấn xác nhận tài khoản có thể thay thế giá trị của người dùng nhập vào trên web
SELECT UserID FROM Users WHERE UserName=’[user]‘ AND Password=’[pass]‘
Ngay từ cái nhìn đầu tiên, có thể nhiều người sẽ nghĩ rằng quy trình xác nhận tài khoản như vậy là hoàn toàn hợp lý và chuẩn xác Tuy nhiên, chỉ cần một sự thay đổi nho nhỏ trong cấu trúc này thì đó có thể là dấu hiệu của đợt tấn công, xâm nhập của SQL Injection
Ví dụ, “myuser’–” là giá trị nhập vào trường Username và “wrongpass” là mật khẩu, thì mẫu câu lệnh truy vấn thay thế sẽ có dạng như sau:
SELECT UserID FROM Users WHERE UserName='myuser' ' AND Password='wrongpass'
Điểm mấu chốt và đặc điểm nhận dạng ở đây chính là 2 dấu gạch ngang liền nhau ( ), đây là điểm bắt đầu của phần thông báo đối với câu lệnh SQL, bất cứ những gì ở sau 2 dấu gạch ngang này sẽ bị bỏ qua Và do vậy, câu lệnh trên sẽ được cơ sở dữ liệu xác nhận thành:
SELECT UserID FROM Users WHERE UserName='myuser'
Phần thiếu sót lớn nhất ở đây chính là khâu kiểm tra mật khẩu, chỉ với 2 dấu gạch ngang như trên hacker đã hoàn toàn có thể vượt qua được quá trình kiểm tra, và “ngang nhiên” đăng nhập bằng tên tài khoản “myuser” mà không cần phải nhập mật khẩu tương ứng Tiếp theo sau đó sẽ là các cuộc tấn công SQL Injection kế tiếp và sau khi tấn công thành công web server, hacker sẽ tấn công leo thang và làm chủ luôn hệ thống mạng
2.1.3 Mức độ thiệt hại
Thực chất, nguồn gốc của quá trình tấn công SQL Injection là sự cẩu thả trong quy trình mã hóa ứng dụng, mật khẩu nhưng vẫn có thể ngăn chặn được, tuy nhiên mức độ
Trang 36thiệt hại là không thể lường trước được và phụ thuộc vào quy mô của từng database Trong quá trình một ứng dụng web, bất kỳ có thể giao tiếp với backend database thì sẽ phải cung cấp thông tin đăng nhập tới 1 cơ sở dữ liệu (quy trình này khác hẳn so với lúc người dùng tiến hành đăng nhập vào website qua form login) Phụ thuộc vào mức phân quyền tương ứng mà ứng dụng web yêu cầu, tài khoản trong cơ sở dữ liệu có thể sử dụng được bất kỳ quyền chỉnh sửa nào, từ việc đơn giản như đọc, ghi đơn thuần trên những bảng có sẵn cho tới mức quyền đầy đủ
Cũng dựa vào ví dụ trên, chúng ta thấy bằng việc nhập tên tài khoản (ví dụ -", "admin' " hoặc bất kỳ) thi hoàn toàn có thể đăng nhập trực tiếp vào database mà không cần biết password Khi ở bên trong, hệ thống sẽ không thể biết được tài khoản đó
"youruser'-là tài khoản bình thường hoặc có đầy đủ quyền tương ứng Về mặt bản chất, việc phân quyền của database không cung cấp quyền chính xác tương ứng và an toàn trong quá trình này, bởi vì thông thường 1 website ít nhất phải có quyền đọc hoặc ghi tới cơ sử dữ liệu tương ứng
Giả sử rằng hệ thống website của chúng ta có đầy đủ quyền truy cập, bao gồm việc xóa dữ liệu, thêm hoặc xóa bảng, tạo mới tài khoản và trên thực tế, có khá nhiều chương trình nếu muốn cài đặt và sử dụng thì phải được phân quyền ở mức cao nhất, do vậy bạn phải cẩn thận khi thực hiện việc gán quyền
Hình 10: Minh họa tình huống tấn công Sql Injection
Để minh họa thêm về mức độ thiệt hại có thể gây ra trong tình huống này, chúng ta sẽ dựa vào hình vẽ trên, và nhập phần thông tin sau vào trường Username:
Trang 37"Robert'; DROP TABLE Users; "
Chỉ với vài sự thay đổi nho nhỏ, câu lệnh query sẽ trở thành:
SELECT UserID FROM Users WHERE UserName='Robert'; DROP TABLE Users; ' AND Password='wrongpass'
Lưu ý rằng dấu phẩy trong MySQL được sử dụng để kết thúc mệnh đề cũ và bắt đầu 1 mệnh đề mới
Dòng lệnh trên sẽ được database thực hiện thành:
SELECT UserID FROM Users WHERE UserName='Robert'
DROP TABLE Users
Chỉ đơn giản như vậy, chúng ta đã thực hiện thành công 1 pha tấn công SQL Injection nho nhỏ với mục đích chính là xóa toàn bộ bảng dữ liệu Users
2.1.4 Các dạng tấn công của SQL Injection
2.1.4.1 Dạng tấn công vượt qua kiểm tra đăng nhập
Với dạng tấn công này, tin tặc có thể dễ dàng vượt qua các trang đăng nhập nhờ vào lỗi khi dùng các câu lệnh SQL thao tác trên cơ sở dữ liệu của ứng dụng web Xét một ví
dụ điển hình, thông thường để cho phép người dùng truy cập vào các website được bảo mật, hệ thống thường xây dựng trang đăng nhập để yêu cầu người dùng nhập thông tin về tên đăng nhập và mật khẩu Sau khi người dùng nhập thông tin vào, hệ thống sẽ kiểm tra tên đăng nhập và mật khẩu có hợp lệ hay không để quyết định cho phép hay từ chối thực hiện tiếp Trong trường hợp này, người ta có thể dùng hai trang, một trang HTML để hiển thị form nhập liệu và một trang ASP dùng để xử lí thông tin nhập từ phía người dùng Ví dụ: