- Мастер-класс
Получить безопасную программу без безопасного проектирования невозможно. Однако даже самый лучший проект может привести к небезопасной программе, если разработчики не знают о многих ошибках безопасности, присущих программированию на C и С++.
На данном курсе подробно объясняются распространенные ошибки программирования в C и C++ и описывается, как эти ошибки могут привести к возникновению уязвимого кода.
Курс концентрируется на вопросах безопасности для языков программирования C и C++ и связанных с ними библиотек. Будет полезен для всех, кто участвует в разработке безопасных программ на C и C++ независимо от конкретного приложения.
Курс предполагает наличие базовых навыков программирования на C и С++, но глубоких знаний из области безопасности программного обеспечения не требуется. Представленные идеи применимы к различным средам разработки, но примеры являются специфическими для Microsoft Visual Studio, Linux/GCC и 32-разрядной архитектуры Intel (IA-32).
Курс даст участникам практические знания о распространенных ошибках программирования, приводящих к уязвимости программного обеспечения, о том, как эти ошибки могут быть использованы и каковы эффективные стратегии по предотвращению этих ошибок. В частности, участники смогут узнать, как
– повысить общую безопасность любого приложения на С или С ++;
– предотвратить переполнение буфера и исполнение атак нарушения стека, использующих опасную логику манипуляций со строками;
– исключить проблемы, связанные с целыми числами: переполнения, ошибки, связанные со знаком числа и с его усечением.
Кроме того, этот курс поможет программистам овладеть передовыми приемами обеспечения безопасности и выработать мировоззрение, ориентированное на безопасность, что поможет защитить программное обеспечение не только от существующих, но и от будущих атак.
Разбираемые темы:
1. Строки:
– типичные ошибки при использовании нуль-терминированных строк;
– типичные ошибки при использовании basic_string;
– уязвимые места строк;
– меры по снижению рисков.
2. Целые числа:
– типы целочисленных данных;
– целочисленные преобразования;
– целочисленные операции;
– уязвимые места целых чисел;
– меры по снижению рисков.
Тренер:
Роберт С. Сикорд в настоящее время является техническим руководителем по безопасному кодированию Программы CERT в Институте программной инженерии (SEI) Карнеги-Меллон Автор восьми книг, включая «The CERT® C Coding Standard, Second Edition» и «Secure Coding in C and C++, Second Edition». Роберт является представителем Университета Карнеги-Меллон (CMU) в рабочей группе ISO/IEC JTC1/SC22/WG14 по международной стандартизации языка программирования C. |