Лекториум / Каталог / Информационная безопасность

Безопасная разработка, развертывание и автоматизация

Курс «Информационная безопасность»

Жизненный цикл ПО — это период времени от принятия решения о создании продукта до изъятия его из эксплуатации. Рассмотрим механизмы, способствующие безопасности в рамках этого процесса.
Ландшафты
Большинство организаций имеет несколько отдельных вычислительных сред, предназначенных для обеспечения изоляции между процессами разработки, тестирования, промежуточной обработки и производства. Основная цель их создания — предотвратить инциденты безопасности, возникающие из-за попадания непроверенного кода в производственную среду.
Аппаратное обеспечение этих сред разделено, и списки контроля доступа используются для предотвращения доступа пользователей более чем к одной среде одновременно. Для перемещения кода между средами требуется специальная учетная запись, которая может получать доступ к обеим средам, сводя к минимуму проблемы «перекрестного заражения».
Среда разработки (DEV) — ландшафт, предназначенный для написания кода и разработки программного решения. После успешной разработки кода его перемещают в тестовую систему.
Тестовая среда — ландшафт, предназначенный для имитации производственной среды. Цель тестовой среды — полностью протестировать систему перед ее развертыванием в рабочей среде, чтобы убедиться, что в ней нет ошибок и багов.
Препродакшен — используется для поэтапного развертывания. Программное обеспечение развертывается в некоторых подразделениях предприятия, а затем наступает пауза для выявления невидимых проблем.
Если ничего не происходит, развертывание продолжается этап за этапом, пока не будут изменены все производственные системы. При перемещении программного обеспечения таким образом старая производственная система не теряется до конца перемещения, что дает время отслеживать и выявлять любые непредвиденные проблемы. Это также предотвращает полную потерю производительности из-за неудачного обновления.
Продакшен — это место, где системы работают с реальными данными, выполняя ту работу, для которой предназначена система. Это среда, в которой по замыслу происходит очень мало изменений, а те, что происходят, сначала должны быть одобрены и протестированы в рамках процесса управления изменениями системы.
Безопасные методы написания кода
Безопасность программного обеспечения начинается с безопасного кода, не содержащего уязвимостей. У любого кода есть слабые места и уязвимости.
Безопасное программирование — методика разработки ПО, предотвращающая случайное внедрение уязвимостей и обеспечивающая устойчивость к воздействию вредоносных программ и несанкционированному доступу. Баги и логические ошибки являются основной причиной появления уязвимостей.
Принципы безопасного программирования:
  • Нормализация
    Процесс проверки входных данных и создания простейшей формы строки перед обработкой.
  • Хранимые процедуры
    Предварительно скомпилированные скриптовые методы доступа к данным.
  • Запутывание/маскировка
    Запутывание кода, чтобы злоумышленнику было труднее его понять и использовать.
  • Повторное использование кода
    Методология проектирования, заключающаяся в том, что система частично либо полностью должна составляться из частей другой системы. Применяется для сокращения трудозатрат при разработке сложных систем. Самыми популярными сервисами являются Stackoverflow и Legacy Code.
  • Управление памятью
    Предоставление способов динамического выделения частей памяти программам по их запросу и освобождения ее для повторного использования, когда она больше не нужна.
  • Использование сторонних библиотек и средств для разработки ПО (SDK)
    Набор инструментов для разработчиков. Для создания кода, работающего на определенной платформе, операционной системе или языке программирования, требуются такие компоненты, как отладчики, компиляторы и библиотеки. Пакеты SDK содержат все необходимое для разработки и запуска программного обеспечения.
  • Доступ к данным
    Данные должны быть защищены на протяжении всего процесса: во время хранения, обмена и использования.
OWASP
В рамках безопасной разработки ПО необходимо знать об основных векторах атак нарушителей безопасности, последствия которых могут стоить больших денег или подрыва деловой репутации. OWASP создал список из 10 самых опасных векторов атак.
Некоторые компании включают список OWASP Top 10 в требования к подрядчикам при найме. Компании могут использовать OWASP Top 10 для оценки знаний безопасности кандидата. На данный момент актуальным является список 2021 г.
Заключение
В процессе жизненного цикла продукта над ним трудится множество специалистов, отвечающих за различные процессы. Чтобы наладить эффективное взаимодействие разработчиков с другими IT-специалистами, была придумана методология DevOps.
Secure DevOps (DevSecOps) — это интеграция процессов и инструментов безопасности в процесс разработки DevOps.
Программы требуют корректировки: либо для изменения функциональности, исправления ошибок, либо для повышения производительности. Это приводит к появлению нескольких версий программ. Наличие нескольких версий ставит в центр внимания проблему управления изменениями.
Нужен процесс, который гарантирует, что все изменения в рабочей среде авторизованы, должным образом протестированы и откатываются в случае их сбоя. Также необходимо поддерживать актуальную и точную документацию.
Контроль версий — это системный процесс отслеживания и контроля обновлений исходного кода и графики.
Git («гит») — это система контроля версий, которая помогает отслеживать историю изменений в файлах.

Запишитесь на курс, чтобы выполнять задания и получить сертификат!

Все изображения предоставлены авторами курса.
Информационная безопасность
Курс об основах защиты данных в современном мире.
  • Что вы получите
    • 17 уроков с видео и заданиями
    • Авторская подача: живая и грамотная речь
    • Свободное расписание: нет дедлайнов и сроков сдачи заданий
    • Все материалы доступны сразу, можно начать обучение в удобное время
    • Профессиональное видео и современная графика
    • Быстрая связь с техподдержкой и чат с однокурсниками
    • Сертификат о прохождении курса
  • Зачем
    • Научиться защищать свои устройства, учетные записи и данные от кибератак, мошенников и других угроз
    • Разобраться в современных технологиях: узнать, как работают сети, облачные технологии и системы виртуализации, чтобы уверенно пользоваться ими в повседневной жизни
    • Подготовиться к карьере в IT: получить прочную базу для старта в сфере информационной безопасности, программирования и сетевого администрирования
    • Избежать ошибок в цифровом мире, научиться распознавать риски
    • Повысить цифровую грамотность
Находясь на сайте, вы даете согласие на обработку файлов cookie. Это необходимо для более стабильной работы сайта
OK