Đề cương khóa học
Giới thiệu về Phát triển C và C++ an toàn
- Hiểu biết về các nguyên tắc phát triển phần mềm an toàn
- Các rủi ro bảo mật phổ biến trong ứng dụng C và C++
- Mối quan hệ giữa lỗi lập trình và lỗ hổng bảo mật
- Chuẩn mực và các thực hành tốt nhất trong lập trình an toàn
Các Lỗ hổng Lập trình C và C++ phổ biến
- Nhận diện các sai sót lập trình phổ biến gây ra rủi ro bảo mật
- Các vấn đề về an toàn bộ nhớ trong C và C++
- Các mô hình lỗ hổng và tác động của chúng
- Phân tích các ví dụ mã không an toàn
Các Nguyên tắc Lập trình An toàn
- Áp dụng các kỹ thuật phòng thủ theo chiều sâu (defence-in-depth)
- Viết mã vững chắc và dễ bảo trì
- Tối thiểu hóa bề mặt tấn công
- Các nguyên tắc thiết kế an toàn cho ứng dụng C và C++
Xác thực Đầu vào và Xử lý Dữ liệu
- Hiểu tầm quan trọng của việc xác thực đầu vào
- Chống khai thác dữ liệu đầu vào độc hại
- Các kỹ thuật làm sạch dữ liệu (data sanitisation)
- Xử lý an toàn dữ liệu của người dùng và dữ liệu bên ngoài
Xử lý Lỗi và Quản lý Ngoại lệ
- Các rủi ro liên quan đến việc xử lý lỗi không chính xác
- Thiết kế các cơ chế xử lý lỗi và ngoại lệ an toàn
- Tránh rò rỉ thông tin qua các lỗi
- Tạo ra các ứng dụng có khả năng chống chịu tốt
An toàn Bộ nhớ và Bảo vệ Tràn Đệm
- Hiểu các lỗ hổng quản lý bộ nhớ
- Tràn đệm dựa trên ngăn xếp (stack-based)
- Tràn đệm dựa trên vùng nhớ động (heap-based)
- Nhận diện và ngăn chặn sự hỏng hóc bộ nhớ
- Các kỹ thuật xử lý bộ nhớ an toàn
Bảo vệ Ngăn xếp và Các Tính năng Bảo mật Thời gian chạy
- Hiểu các lỗ hổng tràn ngăn xếp
- Các biện pháp bảo vệ bảo mật dựa trên trình biên dịch
- Các con mồi ngăn xếp (stack canaries) và cơ chế bảo vệ
- Ngẫu nhiên hóa bố cục không gian địa chỉ (ASLR)
- Các tính năng bảo mật hiện đại của hệ điều hành
Các Cân nhắc Bảo mật Nâng cao trong C++
- Quản lý vòng đời đối tượng an toàn
- Ngăn chặn các lỗ hổng sử dụng sau khi giải phóng
- Quản lý con trỏ và tham chiếu một cách an toàn
- Tránh các vấn đề nhầm lẫn kiểu dữ liệu
- Sử dụng an toàn các tính năng ngôn ngữ C++
Các Công cụ và Kỹ thuật Lập trình An toàn
- Sử dụng công cụ phân tích tĩnh để xác định lỗ hổng
- Các kỹ thuật rà soát mã để đánh giá bảo mật
- Các phương pháp kiểm thử bảo mật tự động
- Tích hợp các bước kiểm tra bảo mật vào quy trình phát triển
Chuẩn mực và Thực hành Tốt nhất về Lập trình An toàn
- Đánh giá các hướng dẫn lập trình an toàn của ngành
- Áp dụng các kỹ thuật lập trình phòng thủ
- Xây dựng bảo mật vào vòng đời phát triển phần mềm
- Duy trì các ứng dụng C/C++ an toàn và đáng tin cậy
Workshop Lập trình An toàn Thực hành
- Phân tích các ví dụ mã C/C++ có lỗ hổng
- Áp dụng các biện pháp sửa lỗi và cải thiện bảo mật
- Kiểm thử mã chống lại các lỗ hổng phổ biến
- Tổng kết khóa học và các khuyến nghị phát triển an toàn
Yêu cầu
Nền tảng cơ bản về C/C++
Đánh giá (6)
Kinh nghiệm chia sẻ, đó là kiến thức và sự quý giá của người thầy.
Carey Fan - Logitech
Khóa học - C/C++ Secure Coding
Dịch thuật bằng máy
cân bằng giữa lý thuyết và thực hành, nhịp độ, kiến thức và kỹ năng giảng dạy của người huấn luyện
Armando Pinto - EID
Khóa học - C/C++ Secure Coding
Dịch thuật bằng máy
Giảng viên đã cung cấp thông tin cập nhật và các tài liệu tham khảo, công cụ có giá trị.
Jose Vicente - EID
Khóa học - C/C++ Secure Coding
Dịch thuật bằng máy
để có được nhiều thông tin hữu ích về chủ đề của khóa học
Paulo Pereira - EID
Khóa học - C/C++ Secure Coding
Dịch thuật bằng máy
Huấn luyện viên có kiến thức vững chắc và kinh nghiệm, slide đẹp mắt, ví dụ hay.
Celso Almeida - EID
Khóa học - C/C++ Secure Coding
Dịch thuật bằng máy
Thông tin chung về khóa học
Paulo Gouveia - EID
Khóa học - C/C++ Secure Coding
Dịch thuật bằng máy