Giáo trình Bảo mật Web và Cơ sở dữ liệu - CĐ Công nghiệp và Thương mại

Giáo trình Bảo mật Web và Cơ sở dữ liệu nghề Quản trị mạng. Tổng hợp các kỹ thuật tấn công phổ biến như SQL Injection, XSS và biện pháp phòng chống.

Chuyên ngành

Quản trị mạng

Người đăng

Ẩn danh

Thể loại

Giáo trình

2018

63
3
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng quan Giáo trình Bảo mật Web và CSDL cho Quản trị mạng

Giáo trình Bảo mật Web và CSDL đóng vai trò là một mô đun chuyên môn bắt buộc trong chương trình đào tạo cao đẳng nghề Ngành Quản trị mạng. Vị trí của mô đun này cực kỳ quan trọng, cung cấp nền tảng kiến thức và kỹ năng thiết yếu để học viên có thể kiểm tra, đánh giá và triển khai các biện pháp phòng chống tấn công vào hệ thống Website và Cơ sở dữ liệu (CSDL) trên máy chủ. Trong bối cảnh các mối đe dọa an ninh mạng ngày càng tinh vi, việc trang bị năng lực bảo mật Web và CSDL không còn là lựa chọn mà là yêu cầu cơ bản đối với một chuyên gia quản trị hệ thống. Nội dung giáo trình được thiết kế để người học không chỉ hiểu về lý thuyết mà còn có khả năng thực hành, áp dụng trực tiếp vào công việc. Mục tiêu chính là giúp người học trình bày được các trường hợp phổ biến gây mất an ninh, nhận diện các phương pháp tấn công và nắm vững các kỹ thuật phòng thủ. Toàn bộ mô đun được phân bổ trong 75 giờ, bao gồm 15 giờ lý thuyết, 57 giờ thực hành và 3 giờ kiểm tra, đảm bảo sự cân bằng giữa việc tiếp thu kiến thức và rèn luyện kỹ năng thực tế. Trọng tâm của chương trình là hai bài học chính: "Một số kỹ thuật tấn công và bảo mật Website" và "Bảo mật CSDL". Thông qua đó, người học sẽ có thái độ cẩn thận, chủ động và trách nhiệm trong việc bảo vệ tài sản số của tổ chức.

1.1. Vai trò của bảo mật trong Quản trị mạng máy tính

Trong lĩnh vực Quản trị mạng máy tính, bảo mật không phải là một phần riêng lẻ mà là yếu tố cốt lõi xuyên suốt mọi hoạt động. Một quản trị viên mạng chịu trách nhiệm đảm bảo tính sẵn sàng, toàn vẹn và bí mật của dữ liệu và hệ thống. Môn học Bảo mật Web và CSDL trực tiếp trang bị những kỹ năng để thực hiện nhiệm vụ này, đặc biệt là trong môi trường web, nơi các cuộc tấn công diễn ra thường xuyên nhất. Việc thiếu kiến thức về bảo mật có thể dẫn đến hậu quả nghiêm trọng như rò rỉ dữ liệu khách hàng, gián đoạn hoạt động kinh doanh và tổn hại uy tín của doanh nghiệp. Do đó, mô đun này giúp xây dựng một tư duy bảo mật chủ động, thay vì chỉ phản ứng khi sự cố đã xảy ra. Kiến thức về phòng chống tấn công giúp người học xây dựng các hệ thống vững chắc ngay từ đầu.

1.2. Mục tiêu cốt lõi của môn học Bảo mật Web và CSDL

Mục tiêu của giáo trình Bảo mật Web và CSDL được xác định rõ ràng. Về kiến thức, người học phải trình bày được các trường hợp gây mất an ninh phổ biến và các phương pháp bảo mật tương ứng. Về kỹ năng, học viên phải có khả năng tổ chức tấn công thử nghiệm để kiểm tra bảo mật, áp dụng các kỹ thuật phòng chống tấn công, và thực hiện sao lưu, phục hồi dữ liệu cho Website và CSDL. Quan trọng hơn, mô đun còn hướng đến việc rèn luyện năng lực tự chủ và trách nhiệm, yêu cầu người học phải có thái độ cẩn thận và chủ động trong việc tiếp thu kiến thức. Những mục tiêu này đảm bảo rằng sau khi hoàn thành khóa học, một chuyên gia Quản trị mạng có đủ năng lực để đối phó với các thách thức an ninh trong thực tế.

II. Top các kỹ thuật tấn công Bảo mật Web và CSDL phổ biến

Thế giới an ninh mạng luôn phải đối mặt với vô số kỹ thuật tấn công tinh vi, và việc hiểu rõ chúng là bước đầu tiên để xây dựng một hệ thống phòng thủ vững chắc. Giáo trình Bảo mật Web và CSDL tập trung phân tích các phương pháp tấn công phổ biến nhất, gây ra nhiều thiệt hại nhất cho các tổ chức. Trong đó, SQL Injection nổi lên như một trong những lỗ hổng bảo mật nghiêm trọng nhất, cho phép kẻ tấn công thực thi các lệnh SQL bất hợp pháp, có thể dẫn đến việc đánh cắp hoặc phá hủy toàn bộ cơ sở dữ liệu. Một kỹ thuật khác là Cross-Site Scripting (XSS), nơi mã độc được chèn vào trang web và thực thi trên trình duyệt của người dùng, nhằm mục đích đánh cắp thông tin phiên làm việc hoặc cookie. Bên cạnh đó, các cuộc tấn công từ chối dịch vụ phân tán (DDoS) sử dụng mạng lưới Botnet khổng lồ để làm quá tải máy chủ, gây gián đoạn dịch vụ. Các hình thức lừa đảo như Phishing (tấn công giả mạo) và Cookie Theft (đánh cắp cookie) cũng là những mối đe dọa thường trực, nhắm vào người dùng cuối để chiếm đoạt thông tin nhạy cảm. Cuối cùng, không thể không kể đến Viruses and Malicious Code (mã độc), bao gồm Trojan, Worm, Rootkit, được thiết kế để xâm nhập và phá hoại hệ thống từ bên trong.

2.1. Phân tích tấn công SQL Injection và Cross Site Scripting

SQL Injection xảy ra khi ứng dụng không kiểm tra kỹ dữ liệu đầu vào từ người dùng trước khi đưa vào câu truy vấn SQL. Kẻ tấn công có thể chèn các đoạn mã SQL độc hại, ví dụ như a' or 't'='t, để làm sai lệch logic của câu truy vấn và truy xuất toàn bộ dữ liệu. Ngược lại, XSS là một dạng tấn công client-side, mã độc (thường là Javascript) được thực thi ở trình duyệt của nạn nhân. Có hai loại chính: Stored-XSS (mã độc được lưu trên máy chủ) và Reflected-XSS (mã độc được gắn trực tiếp vào URL). Cả hai kỹ thuật này đều khai thác sự thiếu sót trong việc xác thực và mã hóa dữ liệu đầu vào, là những lỗ hổng bảo mật cơ bản nhưng cực kỳ nguy hiểm.

2.2. Hiểm họa từ tấn công từ chối dịch vụ DDoS và Botnet

Tấn công từ chối dịch vụ (DDoS) là hình thức làm cạn kiệt tài nguyên của máy chủ bằng cách gửi một lượng lớn yêu cầu truy cập từ nhiều nguồn khác nhau cùng một lúc. Sức mạnh của các cuộc tấn công DDoS đến từ việc sử dụng Botnet – một mạng lưới gồm hàng ngàn, thậm chí hàng triệu máy tính bị nhiễm mã độc (máy zombie) và bị điều khiển bởi kẻ tấn công. Các máy tính này đồng loạt gửi lưu lượng truy cập đến mục tiêu, khiến máy chủ không thể xử lý các yêu cầu hợp lệ. Việc ngăn chặn DDoS rất khó khăn vì các yêu cầu tấn công đến từ nhiều địa chỉ IP khác nhau, gây khó khăn cho việc phân biệt đâu là lưu lượng hợp lệ và đâu là tấn công.

2.3. Nhận diện tấn công giả mạo Phishing và các loại mã độc

Phishing là hình thức tấn công giả mạo, trong đó kẻ tấn công tạo ra các email hoặc trang web lừa đảo, giả dạng các tổ chức uy tín như ngân hàng để lừa người dùng cung cấp thông tin đăng nhập, mật khẩu, hoặc thông tin thẻ tín dụng. Trong khi đó, mã độc (Malicious Code) là một thuật ngữ rộng bao gồm nhiều loại phần mềm gây hại như Trojan Horse, Worm, và Rootkit. Trojan thường ẩn mình trong các phần mềm hợp pháp để mở cửa sau (Backdoor) cho kẻ tấn công. Worm có khả năng tự nhân bản và lây lan qua mạng. Rootkit được thiết kế để che giấu sự hiện diện của các mã độc khác, khiến việc phát hiện và loại bỏ chúng trở nên cực kỳ khó khăn.

III. Phương pháp phòng chống các lỗ hổng Bảo mật Web và CSDL

Đối mặt với các mối đe dọa không ngừng, việc trang bị các phương pháp phòng chống hiệu quả là yếu tố sống còn trong Bảo mật Web và CSDL. Nguyên tắc cơ bản nhất là không bao giờ tin tưởng vào dữ liệu đầu vào của người dùng. Để chống lại SQL InjectionXSS, giải pháp cốt lõi là xác thực và mã hóa (escape) tất cả dữ liệu nhận được từ phía client trước khi xử lý hoặc lưu trữ. Cụ thể, cần sử dụng các hàm như mysqli_real_escape_string() trong PHP để vô hiệu hóa các ký tự đặc biệt trong câu truy vấn SQL, và hàm htmlentities() để chuyển đổi các ký tự HTML đặc biệt thành các thực thể an toàn, ngăn chặn việc thực thi mã script độc hại. Đối với các cuộc tấn công DDoS, không có một giải pháp duy nhất. Cần áp dụng một chiến lược phòng thủ theo lớp, bao gồm việc sử dụng các dịch vụ tường lửa (Firewall), giới hạn tốc độ truy cập (Rate Limiting), và định tuyến hố đen (Black Hole Routing). Các dịch vụ như Cloudflare cũng cung cấp một lớp bảo vệ trung gian hiệu quả, giúp lọc lưu lượng độc hại trước khi chúng đến được máy chủ gốc. Để bảo vệ người dùng khỏi Phishingmã độc, việc nâng cao nhận thức là quan trọng nhất, kết hợp với việc sử dụng các phần mềm diệt virus cập nhật và triển khai các bộ lọc email thông minh.

3.1. Kỹ thuật mã hóa dữ liệu chống SQL Injection và XSS

Để phòng chống SQL Injection, giải pháp hiệu quả là sử dụng "chuỗi escape" hoặc các câu lệnh tham số hóa (Parameterized Statements). Việc escape chuỗi sẽ mã hóa các ký tự đặc biệt như dấu nháy đơn ('), khiến chúng không còn được hiểu là ký tự điều khiển trong câu lệnh SQL. Tương tự, để ngăn chặn XSS, mọi dữ liệu hiển thị ra HTML phải được xử lý bằng các hàm escape, ví dụ như htmlentities() trong PHP. Kỹ thuật này biến đổi các ký tự như <> thành &lt;&gt;, làm cho trình duyệt chỉ hiển thị chúng dưới dạng văn bản thay vì thực thi như một thẻ HTML. Đây là biện pháp phòng thủ cơ bản nhưng bắt buộc đối với mọi ứng dụng web.

3.2. Các giải pháp ngăn chặn tấn công DDoS hiệu quả nhất

Việc phòng chống tấn công DDoS đòi hỏi một cách tiếp cận đa tầng. Ở mức độ cơ bản, quản trị viên có thể cấu hình giới hạn số lượng kết nối từ một địa chỉ IP. Sử dụng tường lửa (Web Application Firewall - WAF) giúp lọc các yêu cầu đáng ngờ dựa trên các quy tắc được định sẵn. Ở quy mô lớn hơn, các dịch vụ chống DDoS chuyên dụng như Cloudflare hay Akamai hoạt động như một lá chắn. Chúng hấp thụ và lọc một lượng lớn lưu lượng tấn công tại mạng lưới biên của mình, chỉ cho phép các truy cập hợp lệ đi qua đến máy chủ của bạn. Định tuyến hố đen (Blackhole routing) là giải pháp cuối cùng, chuyển hướng toàn bộ lưu lượng truy cập (cả tốt và xấu) vào một "hố đen" để bảo vệ hạ tầng mạng.

3.3. Biện pháp bảo vệ người dùng cuối khỏi mã độc và lừa đảo

Bảo vệ người dùng là một phần quan trọng của chiến lược bảo mật Web và CSDL. Đối với Phishing, cần đào tạo người dùng nhận biết các dấu hiệu lừa đảo như email yêu cầu thông tin nhạy cảm, các đường link đáng ngờ, hoặc các thông điệp tạo cảm giác khẩn cấp. Về phía doanh nghiệp, cần triển khai các bộ lọc SPAM và các công nghệ xác thực email như SPF, DKIM. Để chống lại mã độc, người dùng cần được khuyến cáo không mở các tập tin không rõ nguồn gốc, không sử dụng phần mềm lậu, và luôn cập nhật hệ điều hành cùng phần mềm diệt virus. Đối với tổ chức, việc triển khai các giải pháp bảo mật điểm cuối (Endpoint Security) và giám sát hệ thống liên tục là điều cần thiết.

IV. Hướng dẫn cài đặt và sử dụng Kali Linux để kiểm tra bảo mật

Kali Linux là một bản phân phối Linux dựa trên Debian, được thiết kế đặc biệt cho các chuyên gia an ninh mạng và kiểm thử xâm nhập (penetration testing). Đây là công cụ không thể thiếu trong giáo trình Bảo mật Web và CSDL dành cho Ngành Quản trị mạng, vì nó tích hợp sẵn hàng trăm công cụ mạnh mẽ để kiểm tra bảo mật. Việc cài đặt Kali Linux giờ đây rất linh hoạt, người học có thể chọn cài đặt trên máy ảo như VMware Workstation để có một môi trường an toàn, tách biệt với hệ điều hành chính. Có hai phương pháp cài đặt phổ biến. Phương pháp đầu tiên và nhanh nhất là sử dụng bản ảo hóa đầy đủ (Full Virtualization Image) do chính nhà phát triển cung cấp. Người dùng chỉ cần tải về, giải nén và mở file .vmx bằng VMware là có thể sử dụng ngay với tài khoản và mật khẩu mặc định là 'kali'. Phương pháp thứ hai, truyền thống hơn, là cài đặt từ file ISO. Cách này cho phép tùy chỉnh sâu hơn về phân vùng ổ đĩa, lựa chọn gói phần mềm và cấu hình hệ thống theo ý muốn. Quá trình cài đặt từ file ISO đòi hỏi nhiều bước hơn, từ chọn ngôn ngữ, cấu hình mạng, đặt mật khẩu cho tài khoản root đến cài đặt bộ nạp khởi động GRUB, nhưng mang lại sự kiểm soát toàn diện cho người dùng.

4.1. Cài đặt Kali Linux trên VMware từ bản ảo hóa và file ISO

Cài đặt Kali Linux trên VMware từ bản ảo hóa là phương pháp đơn giản nhất. Người dùng chỉ cần tải file nén từ trang chủ, giải nén và mở file có đuôi .vmx. Máy ảo sẽ được nạp vào VMware và sẵn sàng để chạy. Ngược lại, cài đặt từ file ISO mang tính tùy biến cao hơn. Quá trình này bao gồm các bước: tạo một máy ảo mới, chọn hệ điều hành là Linux (phiên bản Debian), cấp phát tài nguyên (RAM, CPU, ổ cứng), sau đó khởi động máy ảo từ file ISO đã tải về. Người dùng sẽ phải thực hiện các bước cấu hình như chọn ngôn ngữ, phân vùng đĩa, thiết lập mật khẩu root và cài đặt bộ nạp khởi động GRUB. Mặc dù phức tạp hơn, phương pháp này giúp hiểu rõ hơn về cấu trúc hệ thống Linux.

4.2. Khám phá các công cụ kiểm tra bảo mật tích hợp sẵn

Sức mạnh của Kali Linux nằm ở bộ công cụ đa dạng được tích hợp sẵn, phục vụ cho mọi giai đoạn của một cuộc kiểm tra bảo mật. Các công cụ này được phân loại rõ ràng theo chức năng, ví dụ như Information Gathering (thu thập thông tin), Vulnerability Analysis (phân tích lỗ hổng), Web Application Analysis (phân tích ứng dụng web), Database Assessment (đánh giá cơ sở dữ liệu), và Password Attacks (tấn công mật khẩu). Các chuyên gia Quản trị mạng có thể sử dụng Nmap để quét cổng, Burp Suite để phân tích lưu lượng web, SQLMap để tự động khai thác lỗ hổng bảo mật SQL Injection, và Metasploit Framework để phát triển và thực thi các mã khai thác. Việc thành thạo các công cụ này là kỹ năng quan trọng để bảo vệ hệ thống hiệu quả.

V. Bí quyết kiểm tra Bảo mật Web Phương pháp Hộp đen và Trắng

Để đảm bảo an toàn cho hệ thống, việc kiểm tra bảo mật định kỳ là hoạt động bắt buộc. Có hai phương pháp tiếp cận chính được giới thiệu trong giáo trình Bảo mật Web và CSDL: kiểm tra hộp đen (Blackbox) và kiểm tra hộp trắng (Whitebox). Kiểm tra hộp đen mô phỏng góc nhìn của một kẻ tấn công từ bên ngoài. Người kiểm tra không có kiến thức về cấu trúc bên trong, mã nguồn hay logic hoạt động của ứng dụng. Họ chỉ tương tác với hệ thống thông qua các giao diện công khai, cố gắng tìm ra lỗ hổng bảo mật bằng cách gửi các dữ liệu đầu vào khác nhau và phân tích kết quả trả về. Quá trình này có thể thực hiện thủ công bằng các công cụ proxy như WebScarab hoặc tự động bằng các máy quét lỗ hổng như Wa3f hay Acunetix. Ngược lại, kiểm tra hộp trắng là quá trình phân tích trực tiếp mã nguồn của ứng dụng. Phương pháp này cho phép phát hiện các lỗ hổng logic, các lỗi lập trình tiềm ẩn mà phương pháp hộp đen có thể bỏ sót. Các công cụ quét mã nguồn tĩnh (SAST) như AppCodeScan sẽ tự động phân tích code để tìm ra các hàm hoặc các mẫu mã nguy hiểm. Mỗi phương pháp đều có ưu và nhược điểm riêng, và việc kết hợp cả hai sẽ mang lại kết quả đánh giá bảo mật Web toàn diện nhất.

5.1. Thực hiện kiểm tra hộp đen với WebScarab và các công cụ tự động

Kiểm tra hộp đen là phương pháp kiểm tra bảo mật từ góc nhìn bên ngoài. Công cụ WebScarab, một framework viết bằng Java, hoạt động như một proxy chặn và cho phép người kiểm tra thay đổi các yêu cầu (requests) và phản hồi (responses) giữa trình duyệt và máy chủ. Điều này giúp phát hiện các lỗ hổng như SQL Injection hoặc XSS bằng cách thử nghiệm thủ công. Bên cạnh đó, các công cụ tự động như Wa3f (miễn phí) và Acunetix (thương mại) có khả năng tự động quét toàn bộ ứng dụng web, xác định các điểm nhập liệu và thử nghiệm hàng loạt các vector tấn công đã biết để tìm ra các lỗ hổng bảo mật một cách nhanh chóng.

5.2. Phân tích mã nguồn ứng dụng qua kiểm tra hộp trắng

Kiểm tra hộp trắng cung cấp một cái nhìn sâu sắc vào bên trong ứng dụng bằng cách phân tích mã nguồn. Phương pháp này giúp xác định các lỗi logic, cấu hình sai hoặc các hàm không an toàn mà có thể không bộc lộ ra bên ngoài. Các chuyên gia Bảo mật Web sẽ đọc và rà soát từng dòng mã để tìm kiếm các vấn đề tiềm ẩn. Các công cụ phân tích mã nguồn tĩnh (SAST) như AppCodeScan có thể tự động hóa quá trình này, giúp quét toàn bộ codebase và chỉ ra những đoạn mã có nguy cơ gây ra lỗ hổng, giúp các nhà phát triển khắc phục sự cố ngay từ giai đoạn lập trình. Đây là cách tiếp cận chủ động để xây dựng phần mềm an toàn.

VI. Tương lai ngành Bảo mật Web và CSDL Xu hướng và Thách thức

Ngành Bảo mật Web và CSDL đang phát triển với tốc độ chóng mặt, đặt ra những thách thức và cơ hội mới cho các chuyên gia Quản trị mạng. Tương lai của lĩnh vực này được định hình bởi sự phát triển của công nghệ và sự tinh vi của các mối đe dọa. Các xu hướng tấn công mới đang nổi lên, chẳng hạn như tấn công chuỗi cung ứng phần mềm, tấn công sử dụng trí tuệ nhân tạo (AI) để tự động hóa việc tìm kiếm lỗ hổng, và sự gia tăng của mã độc tống tiền (Ransomware) nhắm vào các cơ sở dữ liệu quan trọng. Để đối phó, các giải pháp phòng thủ cũng đang dịch chuyển theo hướng thông minh hơn, sử dụng AI và Machine Learning để phát hiện các hành vi bất thường và dự đoán các cuộc tấn công trước khi chúng xảy ra. Đối với các chuyên gia trong ngành Quản trị mạng, việc chỉ nắm vững các kiến thức cơ bản là không đủ. Yêu cầu cấp thiết là phải liên tục cập nhật kiến thức, rèn luyện kỹ năng thực hành với các công cụ mới như Kali Linux, và phát triển một tư duy bảo mật toàn diện. Việc hiểu và áp dụng các phương pháp kiểm tra bảo mật như hộp đen và hộp trắng sẽ trở thành kỹ năng tiêu chuẩn, đảm bảo rằng họ có thể xây dựng và duy trì các hệ thống không chỉ hoạt động hiệu quả mà còn có khả năng chống chọi trước các cuộc tấn công mạng phức tạp trong tương lai.

6.1. Tầm quan trọng của việc cập nhật kiến thức bảo mật liên tục

Các kỹ thuật tấn công và lỗ hổng bảo mật mới xuất hiện mỗi ngày. Do đó, một chuyên gia Quản trị mạng không thể chỉ dựa vào kiến thức đã học. Việc cập nhật liên tục thông qua các blog an ninh mạng uy tín, các hội thảo chuyên ngành, và các khóa học nâng cao là điều bắt buộc. Sự hiểu biết về các mối đe dọa mới nhất như Phishing, DDoS hay các biến thể mã độc mới giúp họ có thể triển khai các biện pháp phòng vệ kịp thời và hiệu quả, bảo vệ tài sản số của tổ chức một cách tốt nhất.

6.2. Định hướng phát triển kỹ năng cho chuyên gia Quản trị mạng

Trong tương lai, vai trò của một chuyên gia Quản trị mạng sẽ ngày càng gắn liền với an ninh mạng. Bên cạnh các kỹ năng quản trị hệ thống truyền thống, họ cần phải thành thạo các kỹ năng kiểm tra bảo mật, phân tích mã độc, và ứng phó sự cố. Việc thực hành thường xuyên với các nền tảng như Kali Linux, tham gia các cuộc thi CTF (Capture The Flag) và lấy các chứng chỉ bảo mật quốc tế sẽ là định hướng phát triển quan trọng. Điều này không chỉ nâng cao năng lực cá nhân mà còn tăng cường khả năng bảo mật Web và CSDL cho toàn bộ tổ chức.

04/10/2025

Trích đoạn nội dung tài liệu

BỘ CÔNG THƢƠNG TRƢỜNG CAO ĐẲNG CÔNG NGHIỆP VÀ THƢƠNG MẠI GIÁO TRÌNH MÔ ĐUN: BẢO MẬT WEB VÀ CƠ SỞ DỮ LIỆU NGHỀ: QUẢN TRỊ MẠNG MÁY TÍNH TRÌNH ĐỘ: CAO ĐẲNG NGHỀ (Ban hành kèm theo Quyết định số: /QĐ-CDCN&TM ngày tháng năm 2018 của Hiệu trưởng Trường Cao đẳng Công nghiệp và Thương Mại Vĩnh phúc, năm 2018 Tên mô đun: Bảo mật Website và cơ sở dữ liệu Mã số mô đun: MDCC13030191 Thời gian thực hiện mô đun: 75h (Lý thuyết:15; Thực hành: 57; Kiểm tra: 3) I. Vị trí, tính chất của mô đun: - Vị trí của mô đun: Mô đun này giúp ngƣời học có các kiến thức, kỹ năng về kiểm tra và thực hiện phòng chống sự tấn công vào Website và CSDL trên máy chủ. - Tính chất của mô đun: là mô đun chuyên môn bắt buộc. Mục tiêu mô đun: + Kiến thức: - Trình bày đƣợc các trƣờng hợp phổ biến gây mất an ninh, an toàn Website và CSDL.

- Trình bày đƣợc các phƣơng pháp bảo mật website và CSDL + Kỹ năng: - Tổ chức thực hiện tấn công để kiểm tra bảo mật của website - Áp dụng các kỹ thuật phòng chống tấn công Website - Sao lƣu và phục hồi dữ liệu Website và CSDL + Về năng lực tự chủ và trách nhiệm: Ngƣời học có thái độ đúng đắn cẩn thận, chủ động trong việc lĩnh hội kiến thức III. Nội dung mô đun: 1. Nội dung tổng quát và phân phối thời gian: Thời gian (giờ) Kiểm Thực TT Nội dung mô đun tra* Tổng Lý hành (LT số thuyết Bài hoặcT tập H) 1 Bài 1: Một số kỹ thuật tấn công và bảo 50 10 38 2 mật Website 2 Bài 2: Bảo mật CSDL 25 5 19 1 Tổng cộng 75 15 57 3 MỤC LỤC BÀI 1: MỘT SỐ KỸ THUẬT TẤN CÔNG VÀ BẢO MẬT WEBSITE. MỘT SỐ PHƢƠNG PHÁP TẤN CÔNG WEBSITE: SQL INJECTION, XSS, DDOS, PHISING, COOKIE THEFT, VIRUSES AND MALICIOUS CODE,.2 TẤN CÔNG XSS (CROSS-SITE SCRIPTING) .5 Phòng Chống Dos - Ddos - Botnet .2 CÀI KALI LINUX .1 CÀI KALI LINUX TRÊN VMWARE WORKSTATION TỪ BẢN ẢO HÓA FULL .2 CÀI ĐẶT KALI LINUX TRÊN MÁY ẢO VM WARE TỪ FILE ISO .3 KIỂM TRA BẢO MẬT VÀ CÁC BIỆN PHÁP PHÒNG CHỐNG.

51 BÀI 2 : TẤN CÔNG VÀ BẢO MẬT CSDL .1 CÁC PHƢƠNG PHÁP TẤN CÔNG, KHAI THÁC TRÁI PHÉP CSDL .1Tổng quan về SQL Injection. 51 Tính nguy hiểm của tấn công SQL Injection .2 Phân loại các kiểu tấn công SQL Injection. 52 In-band SQLi. 54 Out-of-band SQLi .2 BẢO MẬT, AN TOÀN CSDL.

55 BÀI 1: MỘT SỐ KỸ THUẬT TẤN CÔNG VÀ BẢO MẬT WEBSITE 1. MỘT SỐ PHƢƠNG PHÁP TẤN CÔNG WEBSITE: SQL INJECTION, XSS, DDOS, PHISING, COOKIE THEFT, VIRUSES AND MALICIOUS CODE,.1 SQL injection * Khái niệm: SQL injection là kĩ thuật cho phép các kẻ tấn công thực hiện các lệnh thực thi SQL bất hợp pháp (mà ngƣời phát triển không lƣờng trƣớc đƣợc), bằng cách lợi dụng các lỗ hổng bảo mật từ dữ liệu nhập vào của các ứng dụng. * Cách thức hoạt động của Sql injection  Lỗi Sql injection thƣờng xảy ra do sự thiếu kiểm tra dữ liệu truyền vào, điều này gây ra những tác động không mong muốn ngoài mục đích chính của câu truy vấn. Ta hãy xem xét câu truy vấn sau: Selected_user = "SELECT * FROM users WHERE name = '" + userName + "';"  Ta thấy rằng, mục đích chính của câu truy vấn này là lục tìm trong bảng users những dòng dữ liệu nào mà trƣờng name có giá trị bằng với tham số userName đã truyền vào.

 Thoạt nhìn thì câu truy vấn này là đúng cấu trúc và không có bất cứ vấn đề gì, thế nhƣng ta hãy thử phân tích một tình huống sau đây: giả sử ngƣời gọi câu truy vấn này truyền vào tham số userName có giá trị: a' or 't'='t Nhƣ vậy câu truy vấn của ta có đƣợc hiểu nhƣ sau: SELECT * FROM users WHERE name = 'a' or 't'='t'; Câu truy vấn trên có ý nghĩa là gì? Mệnh đề WHERE của câu truy vấn trên luôn đúng, lí do là vì „t‟=‟t‟ luôn cho ra giá trị đúng. Nhƣ vậy, thay vì trả về kết quả của 1 dòng dữ liệu mong muốn, câu truy vấn này trả về kết quả là toàn bộ dữ liệu của bảng users.  Nguyên nhân chính của việc truy vấn sai này chính là do dữ liệu của tham số truyền vào. Hãy tƣởng tƣợng rằng toàn bộ dữ liệu này bị sử dụng nhằm mục đích không tốt, hậu quả thật khó lƣờng phải không nào? 1 * Các trƣờng hợp thƣờng bị tấn công Sql injection  Bất cứ thao tác nào của ứng dụng có thực hiện truy vấn tới cơ sở dữ liệu đều có thể bị lợi dụng để tấn công Sql injection.

Các thao tác cơ bản với CSDL là: select, insert, update đều có thể bị tấn công. Có thể kể ra vài thao tác phổ biến có thể tấn công nhƣ:  Kiểm tra đăng nhập ứng dụng.  Thao tác lƣu comment của user xuống DB.  Thao tác truy vấn thông tin user.

 … * Cách phòng tránh lỗi Sql injection  Nhƣ đã phân tích ở trên: điểm để tấn công chính là tham số truyền vào câu truy vấn. Do vậy phải thực hiện các biện pháp phòng chống để đảm bảo việc kiểm tra dữ liệu truyền vào không thể gây ra sai lệch khi thực hiện truy vấn.  Giải pháp cho việc kiểm tra này là sử dụng “chuỗi escape”. Khi thực hiện escape một chuỗi, tức là mã hoá các kí tự đặc biệt của chuỗi (nhƣ kí tự „, &, |, …) để nó không còn đƣợc hiểu là 1 kí tự đặc biệt nữa.

Mỗi ngôn ngữ lập trình đều cung cấp các hàm để thực hiện escape chuỗi, với PHP ta sẽ sử dụng hàm mysqli_real_escape_string() hoặc cũng có thể dùng addslashes() để thực hiện điều này.  Ví dụ về hàm addslashes(): kí tự nháy kép lúc này không còn đƣợc hiểu là kí tự điểu khiển nữa. 1 $str = addslashes('What does "yolo" mean?'); 2 //$str = 'What does \"yolo\" mean?' 1.2 TẤN CÔNG XSS (CROSS-SITE SCRIPTING) * Khái niệm  XSS là một kĩ thuật tấn công, trong đó kẻ tấn công sẽ chèn các đoạn mã client-script độc (thƣờng là javascript hoặc HTML) vào trang web, các đoạn mã này sẽ đƣợc thực thi khi ngƣời dùng truy cập và load trang có chứa mã độc.  Khác với Sql injection nơi mà mã độc đƣợc thực thi ở server, XSS là một dạng tấn công trong đó mã độc đƣợc thực thi ở máy client.

Bởi vì mã độc đƣợc chứa ở server nhƣng lại đƣợc thực thi ở client, do đó kĩ thuật này đƣợc gọi là “cross-site” là vì vậy. 2 * Cách thức hoạt động của XSS  Có thể chia XSS thành 2 loại: Stored-XSS và Reflected-XSS. Cả 2 đều là đƣa những đoạn mã độc tới máy client để thực thi, cụ thể là việc hiển thị các nội dung đƣợc sinh ra trong quá trình trang web hoạt động, tuy nhiên cách thức có đôi chút khác biệt nhƣ sau: * Stored-XSS  Loại tấn công XSS này lợi dụng các lỗ hổng bảo mật của trang web để lƣu trữ các đoạn mã độc trên server, mỗi khi ngƣời dùng tải trang về thì các đoạn mã độc này sẽ đƣợc thực thi. Điển hình nhất của loại tấn công này là lợi dụng các điểm chứa dữ liệu nhập vào từ ngƣời dùng nhƣ: các ô comment trong trang blog, các ô điền nội dung của thông tin tài khoản công khai, …  Giả sử trang web của chúng ta có ô nhập nội dung comment nhƣ sau:  Cài đặt và sử dụng Kali Linux  Kiểm tra bảo mật và các biện pháp phòng chống tấn công Thay vì nhập comment nhƣ bình thƣờng, kẻ tấn công sẽ chèn mã độc, ví dụ nhƣ đoạn script sau: 1 <script>alert("XSS");</script> Khi đó, nếu một ngƣời dùng khác truy cập vào trang web này, đoạn script sẽ đƣợc kích hoạt, và kết quả của nó nhƣ sau: 3 Trên đây chỉ là 1 ví dụ đơn giản về kĩ thuật tấn công XSS, tất nhiên là kẻ tấn công hoàn toàn có thể chèn vào các đoạn mã nguy hiểm hơn để khai thác thông tin của ngƣời dùng.

Ta thấy rằng, mặc dù đoạn mã độc này đƣợc lƣu ở server, nhƣng nó lại đƣợc thực thi tại máy tính của client, do đó nó đƣợc gọi là stored-XSS. * Reflected-XSS Ở kĩ thuật tấn công này, mã độc đƣợc gắn trực tiếp vào link trang  web, một khi bạn truy cập vào đƣờng link có chứa mã độc, thì đoạn mã độc sẽ đƣợc thực thi.  Giả sử ta có link trang web sau: xyz.vn/xss/reflected/index?qid=alert(„XSS‟);  Nếu nhƣ trang web này dùng giá trị của tham số qid để hiển thị, thì khi truy cập vào đƣờng link này, ta sẽ bị lỗi XSS. * CÁC PHÒNG TRÁNH XSS  Nhƣ đã đề cập ở trên, mấu chốt của kĩ thuật tấn công này nằm ở chỗ hiển thị các nội dung được nhập vào ở client, do vậy để phòng tránh thì ta sẽ kiểm soát chặt chẽ các nơi có thể hiển thị nội dung.

 Cũng tƣơng tự nhƣ cách phòng chống Sql injection, mỗi khi nhận vào dữ liệu, ta sẽ thực hiện kiểm tra và mã hoá các kí tự đặc biệt và các kí tự điều khiển có nguy cơ gây hại cho chƣơng trình. Khi đó những kí tự đặc biệt sẽ đƣợc biến đổi một cách tƣơng tự nhƣ sau: <script> sẽ đƣợc đổi thành &lt;script&gt;  Để làm đƣợc điều này, trƣớc khi hiển thị thông tin nào đó ra một thẻ HTML, ta luôn thực hiện escape trƣớc ở server để biến đổi các kí tự đặc biệt thành html entity (trong PHP ta có thể sử dụng hàm htmlentities() để làm việc này).3 DDOS Dos là viết tắt của "Denial Of Service" nghĩa là "Tấn công từ từ chối dịch vụ", là kiểu thƣờng đƣợc sử dụng để tấn công vào các máy chủ, web server 4 nhằm mục đích làm tắc nghẽn, gián đoạn kết nối giữa ngƣời dùng và máy chủ gây cạn kiệt tài nguyên. Kiểu tấn công cơ bản thƣờng dùng nhất là Attacker sẽ gửi liên tục các yêu cầu đến máy chủ và yêu cầu nào cũng mang dung lƣợng lớn. Do phải xử lý lƣợng yêu cầu này mà máy chủ không còn đủ tài nguyên để xử lý các yêu cầu từ ngƣời dùng khác gây nên tình trạng gián đoạn kết nối.

"Ddos" tên đầy đủ là "Distributed Denial Of Service" hay "Tấn công từ từ chối dịch vụ phân tán" Tƣơng tự nhƣ Dos nhƣng lần này Attacker tấn công từ nhiều luồng khác nhau với nhiều IP và dãy IP khác nhau. Họ có thể gửi nhiều lƣợt truy cập vào một máy chủ trong cùng thời điểm, làm máy chủ không phân tán rất nhiều tài nguyên để xử lý đồng thời các yêu cầu đó. Gây ra tình trạng quá tải và đó là điều mà Attacker đang mong muốn.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ