Secure Coding in C and C++

Các lỗ hổng phần mềm thường bị khai thác thường là do các lỗi phần mềm có thể tránh được. Sau khi phân tích hàng chục nghìn báo cáo về lỗ hổng kể từ năm 1988, CERT đã xác định rằng một số lượng tương đối nhỏ các nguyên nhân gốc rễ gây ra hầu hết các lỗ hổng.

Secure Coding in C and C++, Second Edition, xác định và giải thích những nguyên nhân gốc rễ này và chỉ ra các bước có thể thực hiện để ngăn chặn khai thác. Hơn nữa, cuốn sách này khuyến khích các lập trình viên áp dụng các biện pháp bảo mật tốt nhất và phát triển tư duy bảo mật có thể giúp bảo vệ phần mềm khỏi các cuộc tấn công trong tương lai, không chỉ của ngày hôm nay. Dựa trên các báo cáo và kết luận của CERT, Robert C. Seacord xác định một cách có hệ thống các lỗi chương trình có khả năng dẫn đến vi phạm bảo mật cao nhất, chỉ ra cách chúng có thể bị khai thác, xem xét các hậu quả tiềm ẩn và đưa ra các giải pháp thay thế an toàn.

Phạm vi bao gồm chi tiết kỹ thuật về cách

  • Cải thiện tính bảo mật tổng thể của bất kỳ ứng dụng C hoặc C++ nào
  • Ngăn chặn tràn bộ đệm, phá vỡ ngăn xếp và các cuộc tấn công lập trình hướng trả về khai thác logic thao tác chuỗi không an toàn
  • Tránh các lỗ hổng và lỗi bảo mật phát sinh do sử dụng sai các chức năng quản lý bộ nhớ động
  • Loại bỏ các vấn đề liên quan đến số nguyên phát sinh do tràn số nguyên có dấu, đóng gói số nguyên không dấu và lỗi cắt bớt
  • Thực hiện I/O an toàn, tránh lỗ hổng hệ thống tệp
  • Sử dụng đúng các hàm đầu ra được định dạng mà không đưa vào lỗ hổng chuỗi định dạng
  • Tránh tình trạng chạy đua và các lỗ hổng có thể khai thác khác trong khi phát triển mã đồng thời

 

Phiên bản thứ hai có các tính năng

  • Bản cập nhật cho C11 và C++11
  • Những sửa đổi đáng kể đối với các chương về chuỗi, quản lý bộ nhớ động và bảo mật số nguyên
  • Một chương mới về sự đồng thời
  • Truy cập vào khóa học mã hóa an toàn trực tuyến được cung cấp thông qua Sáng kiến ​​học tập mở (OLI) của Carnegie Mellon

Secure Coding in C and C++, Second Edition, trình bày hàng trăm ví dụ về mã an toàn, mã không an toàn và khai thác, được triển khai cho Windows và Linux. Nếu bạn chịu trách nhiệm tạo phần mềm C hoặc C++ an toàn - hoặc giữ cho phần mềm an toàn - không có cuốn sách nào khác cung cấp cho bạn sự hỗ trợ chuyên môn, chi tiết như vậy.