Mục tiêu:
Trang bị cho người học các kiến thức cơ bản về an toàn thông tin trong phát triển phần mềm. Giúp họ nắm được các lỗ hổng bảo mật thường gặp trong lập trình, hiểu rõ các nguy cơ tấn công có thể xảy ra đối với các phần mềm, từ đó có các giải pháp đảm bảo an toàn cho phần mềm. Nâng cao ý thức của người lập trình đối với việc đảm bảo an toàn thông tin cho các phần mềm do mình tham gia phát triển.
Người học có thể tham khảo thêm khoá học về An toàn thông tin để có kiến thức về Mật mã, cần có kiến thức cơ bản về Ngôn ngữ lập trình C.
Nội dung chính:
- Tổng quan về an toàn thông tin và lỗ hổng bảo mật
- Một số hệ mật mã cổ điển
- Một số hệ mật mã khoá công khai
- Chữ ký điện tử và hàm băm
- Tổng quan về các bộ nhớ đệm
- Các dạng tấn công dựa trên lỗi tràn bộ nhớ đệm
- Phòng tránh tấn công dựa trên lỗi tràn bộ nhớ đệm
- Các hàm format
- Các lỗ hồng bảo mật liên quan đến Format String
- Các công cụ phát hiện lỗ hổng bảo mật Format String
- Phân tích lỗi tràn bộ nhớ đệm bằng kỹ thuật phân tích TAINT
- Phát hiện lỗ hổng Format String bằng kỹ thuật phân tích TAINT
- Tấn công XSS
- SQL injection
- Một số công cụ phát hiện SQL injection
- Các vấn đề về lỗ hổng bảo mật khác
Sách giáo trình/Bài giảng:
- Herbert H. Thompson (2005). The Software Vulnerability Guide. Nhà xuât bản Charles River Media.
Tài liệu tham khảo khác:
- Nguyễn Khanh Văn (2014). Cơ sở An toàn Thông tin. Nhà xuất bản Bách Khoa.
- Frank H.P. Fitzek and Frank Reichert (2007). Mobile phone programming and its application to wireless networking. Springer.
- Marty Stepp et al. (2012). Lecture notes on web security.
- Aaron Emigh (2005). Online Identity Theft: Phishing Technology, Chokepoints and Countermeasures.
- Aleph One. Smashing The Stack For Fun And Profit.
- Willy Jimenez et al. (2007). Software Vulnerabilities, Prevention and Detection Methods
- Dr. Cliff Zou (2012). Khoá học CIS 3360: Security in Computing
- Website Learn to Hack: https://www.hacksplaining.com/