Đề cương chi tiết học phần Lập trình an toàn (Programming Security) cung cấp các thông tin về môn học, điều kiện tiên quyết, mục tiêu của học phần, mô tả tóm tắt nội dung học phần, nhiệm vụ của sinh viên; các thang điểm và nội dung chi tiết học phần.
BM01.QT02/ĐNT-ĐT TRƯỜNG ĐH NGOẠI NGỮ - TIN HỌC TP.HCM KHOA CƠNG NGHỆ THƠNG TIN CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh Phúc ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN Thông tin chung học phần - Tên học phần : Lập trình an toàn (Programming Security) - Mã số học phần : 1250104 - Số tín học phần : (3+1) tín - Thuộc chương trình đào tạo bậc, ngành: Bậc Đại học, ngành Công nghệ thông tin - Số tiết học phần : Nghe giảng lý thuyết : 45 tiết Làm tập lớp : tiết Thảo luận : tiết Thực hành : 30 tiết Hoạt động theo nhóm : tiết Thực tế: : tiết Tự học : 120 - Đơn vị phụ trách học phần: Bộ mơn Mạng máy tính / Khoa Cơng nghệ thơng tin Học phần trước: - Lập trình Windows Mục tiêu học phần: Tính bảo mật nguyên tắc mã hóa an tồn Kỹ thuật phịng thủ cho cơng SQL injection Mã hóa đầu để ngăn chặn công xác nhận đầu vào Kỹ thuật phòng thủ chống lại công phiên, cookie Giảm thiểu lỗ hổng lớp mức độ xử lý ngoại lệ Kỹ thuật phòng thủ chống lại công canonicalization ACL Tầm quan trọng lập trình an tồn kỹ cần thiết thiết lập trình an tồn Chuẩn đầu ra: Nội dung Kiến thức Kỹ Đáp ứng CĐR CTĐT 4.1.1 Lập trình trọng yếu tố an toàn K1 code, cookie, đầu vào, đầu 4.1.2 Kỹ thuật cơng lỗ hổng lập trình K2, K3 4.2.1 Lập trình với quy tắc an tồn S1 4.2.2 Lập trình chống cơng thơng thường S2, S3 4.2.3 Giảm thiểu lỗ hổng mức S2, S3 công Thái độ 4.3.1 Ý thức tầm quan trọng lập trình A1 an tồn cơng tác lập trình 4.3.2 Chuẩn bị trước đến lớp Đi học A2, A3 đầy đủ Tham gia tích cực học Mơ tả tóm tắt nội dung học phần: Học phần cung cấp khả tổng quan công ứng dụng Các kiến thức công, khai thác lỗ hổng bảo mật mặt lập trình Từ kiến thức cơng, khai thác phổ biến, lập trình viên phịng chống lỗi trọng chi tiết lập trình nhằm tránh lỗi bảo mật Nội dung lịch trình giảng dạy: - Các học phần lý thuyết: Buổi/ Tiết 1/ (3) Nội dung Chương 1: Giới thiệu lập trình an tồn Khái niệm lập trình an tồn Các loại cơng dựa lỗi lập trình 2-3/ (6) Chương 2: Net framework security 4-5/(6) Net runtime security Net Class libraries security Net assembly security Net security tools Chương 3: Kiểm tra nhập xuất Các cơng lỗi lập trình nhập xuất Lọc Sandboxing 6-7/(6) Chương 4: Authorization Authentication Authorization Authentication - Hoạt động giảng viên Giới thiệu đề cương chi tiết Thuyết giảng ngắn Đặt câu hỏi Nhấn mạnh điểm Thuyết giảng ngắn Đặt câu hỏi Cho tập Nhấn mạnh điểm Yêu cầu chuẩn bị buổi học sau - Đặt vấn đề Thuyết giảng ngắn Đặt câu hỏi Cho tập Nhấn mạnh điểm - Yêu cầu chuẩn bị buổi học sau Hoạt động sinh viên - Nghe giảng, ghi - Trả lời câu hỏi Giáo trình [1] Chương 2,3 [3] Phần Giải mục tiêu 4.1.1 - Nghe giảng, ghi - Trả lời câu hỏi - Làm tập [1] Chương 4,5 [2] Phần Giải mục tiêu 4.1.1 4.2.1 4.3 [1] Chương 6,7 [3] Chương 9,10 Giải mục tiêu 4.1.1 4.2.1 4.3 - Nghe giảng, ghi - Trả lời câu hỏi - Làm tập [1] Chương - Đặt vấn đề Thuyết giảng ngắn Đặt câu hỏi Cho tập - Nghe giảng, ghi - Trả lời câu hỏi - Làm tập Tài liệu tham khảo Ghi Giải mục tiêu 4.1.1 4.2.1 4.3 Lỗ hổng liên quan Authorization Authentication Bảo mật đường truyền 8,9/(6) Chương 5: Bảo mật Session State Management Khái niệm Session Management công nghệ Session Management Các loại công Session Management 10,11/(6) Chương 6: Error Handling, Auditing, and Logging Error Handling Exception Handling Auditing Logging - Nhấn mạnh điểm - Yêu cầu chuẩn bị buổi học sau [1] Chương - Đặt vấn đề Thuyết giảng ngắn Đặt câu hỏi Cho tập Nhấn mạnh điểm - Yêu cầu chuẩn bị buổi học sau - Nghe giảng, ghi - Trả lời câu hỏi - Làm tập - - Nghe giảng, ghi - Trả lời câu hỏi - Làm tập Đặt vấn đề Thuyết giảng ngắn Đặt câu hỏi Cho tập Nhấn mạnh điểm - Yêu cầu chuẩn bị buổi học sau 12,13/(6) Chương 7: An Toàn File - Đặt vấn đề File Handling - Thuyết giảng ngắn Tấn công File Bảo mật cho công File - Đặt câu hỏi - Cho tập - Nhấn mạnh điểm - Yêu cầu chuẩn bị buổi học sau - Nghe giảng, ghi - Trả lời câu hỏi - Làm tập [2] Phần Giải mục tiêu 4.1.1 4.2.1 4.3 [1] Chương 15 Giải mục tiêu 4.1.1 4.2.1 4.3 [1] Chương 16 Giải mục tiêu 4.1.1 4.2.1 4.3 14/(3) Chương 8: Cấu hình quản lý bảo mật code 15/(3) Cấu hình quản lý hệ thống Cầu hình quản lý File Cấu hình quản lý Application Bảo mật code Ôn tập - Đặt vấn đề Thuyết giảng ngắn Đặt câu hỏi Cho tập Nhấn mạnh điểm - Yêu cầu chuẩn bị buổi học sau - Nghe giảng, ghi - Trả lời câu hỏi - Làm tập - - [1] Chương 18 [2] Phần Giải mục tiêu 4.1.1 4.2.1 4.3 Ghi chú: buổi: tiết - Các học phần thực hành: Buổi/ Tiết 1/(3) 2/(3) 3/(3) 4/(3) Nội dung Chương 1: Cài đặt mơi trường lập trình an toàn - Chương 2: Net framework security - Chương 3: Kiểm tra nhập xuất - Chương 4: Authorization Authentication - Hoạt động giảng viên Review điểm Hướng dẫn sinh viên thực Trả lời câu hỏi SV Review điểm Hướng dẫn sinh viên thực Trả lời câu hỏi SV Review điểm Hướng dẫn sinh viên thực Trả lời câu hỏi SV Review điểm Hướng dẫn sinh viên Hoạt động sinh viên - Nghe giảng, ghi - Đặt câu hỏi - Làm tập Giáo trình Bài tập thực hành Tài liệu tham khảo [3] Phần Giải mục tiêu 4.2, 4.3 - Nghe giảng, ghi - Đặt câu hỏi - Làm tập Bài tập thực hành [2] Phần Giải mục tiêu 4.2, 4.3 - Nghe giảng, ghi - Đặt câu hỏi - Làm tập Bài tập thực hành [3] Chương 9,10 Giải mục tiêu 4.2, 4.3 - Nghe giảng, ghi - Đặt câu hỏi Bài tập thực hành Ghi Giải mục tiêu 5/(3) Chương 5: Bảo mật Session State Management 6/(3) Chương 6: Error Handling, Auditing, and Logging 7/(3) Chương 7: An Tồn File 8,9/(6) Chương 8: Cấu hình quản lý bảo mật code 10/(3) Thi thực - Trả lời câu hỏi SV - Review điểm - Hướng dẫn sinh viên thực - Trả lời câu hỏi SV - Review điểm - Hướng dẫn sinh viên thực - Trả lời câu hỏi SV - Review điểm - Hướng dẫn sinh viên thực - Trả lời câu hỏi SV - Review điểm - Hướng dẫn sinh viên thực - Trả lời câu hỏi SV Coi thi chấm điểm - Làm tập 4.2, 4.3 - Nghe giảng, ghi - Đặt câu hỏi - Làm tập Bài tập thực hành - Nghe giảng, ghi - Đặt câu hỏi - Làm tập Bài tập thực hành Giải mục tiêu 4.2, 4.3 - Nghe giảng, ghi - Đặt câu hỏi - Làm tập Bài tập thực hành Giải mục tiêu 4.2, 4.3 - Nghe giảng, ghi - Đặt câu hỏi - Làm tập Bài tập thực hành [2] Phần [2] Phần Giải mục tiêu 4.2, 4.3 Giải mục tiêu 4.2, 4.3 Làm thi Nhiệm vụ sinh viên: Sinh viên phải thực nhiệm vụ sau: - Tham dự tối thiểu 80% số tiết học lý thuyết - Tham dự tối thiểu 50% thực hành giải tất tập - Tham dự kiểm tra thực hành - Tham dự thi kết thúc học phần - Chủ động tổ chức thực tự học Đánh giá kết học tập sinh viên: 8.1 Cách đánh giá Sinh viên đánh giá tích lũy học phần sau: TT Thành phần Thực hành Lý thuyết Điểm thành phần Điểm chuyên cần Điểm thi thực hành Điểm thi kết thúc học phần Quy định - Tham dự 70% số tiết học số tập giao - Thực hành máy Trọng số điểm Trọng số thành phần 30% Mục tiêu 4.3.2 30% 4.2 70% - Thi viết (60 phút) 70% 4.1 4.2.1 8.2 Cách tính điểm - Điểm đánh giá thành phần điểm thi kết thúc học phần chấm theo thang điểm 10 (từ đến 10), làm tròn đến 0.5 - Điểm học phần tổng điểm tất điểm đánh giá thành phần học phần nhân với trọng số tương ứng Điểm học phần theo thang điểm 10 làm tròn đến chữ số thập phân Tài liệu học tập: 9.1 Giáo trình/Tài liệu chính: [1] Programming NET Security- Adam Freeman, O'Reilly, 2003 9.2 Tài liệu tham khảo: [2] Security for Web Developers, John Paul Mueller, O'Reilly Media, 2016 [3] Coding for Penetration Testers, 2nd Edition, Jason Andress, Ryan Linn, Syngress, 2017 10 Hướng dẫn sinh viên tự học: Tuần/ Buổi 1/1 1/1 1/1 1/1 1/1 1/1 1/1 2/1 1/1 Lý thuyết (tiết) Nội dung Chương 1: Cài đặt mơi trường lập trình an toàn Chương 2: Net framework security Chương 3: Kiểm tra nhập xuất Chương 4: Authorization Authentication 3 3 Nhiệm vụ sinh viên -Nghiên cứu trước: [1] Chương 2,3 -Nghiên cứu trước: [1] Chương 4,5 -Nghiên cứu trước: [1] Chương 6,7 -Nghiên cứu trước: [8] Chương Chương 5: Bảo mật Session State Management Chương 6: Error Handling, Auditing, and Logging Chương 7: An Toàn File -Nghiên cứu trước: [1] Chương -Nghiên cứu trước: [1] Chương 15 -Nghiên cứu trước: Chương 8: Cấu hình quản lý bảo mật code Ơn tập [1] Chương 16 -Nghiên cứu trước: [1] Chương 18 Thực hành: Sinh viên làm trước tập có hướng dẫn tài liệu thực hành nhà theo bảng lịch trình giảng dạy phía trên, tham khảo thêm tài liệu [1] nội dung tương ứng để làm tốt Ngày… tháng… Năm 201 Trưởng khoa (Ký ghi rõ họ tên) Ngày… tháng… Năm 201 Trưởng Bộ môn (Ký ghi rõ họ tên) Phạm Đình Thắng Ngày… tháng… Năm 201 Người biên soạn (Ký ghi rõ họ tên) Trần Phương Tuấn Ngày… tháng… Năm 201 Ban giám hiệu ... tầm quan trọng lập trình A1 an tồn cơng tác lập trình 4.3.2 Chuẩn bị trước đến lớp Đi học A2, A3 đầy đủ Tham gia tích cực học Mơ tả tóm tắt nội dung học phần: Học phần cung cấp khả tổng quan công... bảo mật mặt lập trình Từ kiến thức cơng, khai thác phổ biến, lập trình viên phịng chống lỗi trọng chi tiết lập trình nhằm tránh lỗi bảo mật Nội dung lịch trình giảng dạy: - Các học phần lý thuyết:... thành phần điểm thi kết thúc học phần chấm theo thang điểm 10 (từ đến 10), làm tròn đến 0.5 - Điểm học phần tổng điểm tất điểm đánh giá thành phần học phần nhân với trọng số tương ứng Điểm học phần