Модуль 6 · Программирование · урок 2 из 4 · ~7 мин

🐹 Go

Короткая выжимка урока бесплатного курса CyberStreak. Полный урок со слайдами, тестом и работой над ошибками — в Telegram.

Быстрый и простой

Go (Golang) — компилируемый язык от Google: простой синтаксис, высокая скорость, удобная работа с параллельными задачами.

При чём тут безопасность: на Go написаны многие современные инструменты безопасности и облачной инфраструктуры. Его стоит знать, чтобы читать и дорабатывать такие инструменты.

Почему его любят

  • Программа собирается в один исполняемый файл без зависимостей — легко распространять.
  • Лёгкая параллельность (горутины) — удобно сканировать тысячи адресов.
  • Сборка под разные ОС одной командой.
  • Встроенная сборка мусора: нет ручного управления памятью.

Безопасность языка

Go безопасен по памяти в обычном коде: нет ручного освобождения памяти, выход за границы массива вызывает ошибку, а не тихую порчу данных. Это исключает целый класс уязвимостей, типичных для C и C++.

Но логические ошибки, инъекции и небезопасные зависимости возможны в любом языке.

Инструменты Go для безопасности

В экосистеме Go есть официальный инструмент govulncheck: он проверяет, использует ли программа уязвимые функции из зависимостей, и учитывает, вызываются ли они на самом деле.

Это пример того, как язык поддерживает управление уязвимостями прямо в процессе разработки.

Обратная сторона

Удобство Go оценили и злоумышленники: на нём пишут вредоносные программы, потому что один файл легко запускается на разных ОС, а анализировать крупные бинарные файлы Go сложнее.

Поэтому аналитикам вредоносного ПО тоже полезно понимать, как устроены программы на Go.

Главное за урок

  1. Go — быстрый компилируемый язык, программы — один файл.
  2. Безопасен по памяти, но логические ошибки возможны.
  3. govulncheck находит используемые уязвимые зависимости.

Источники

Что ещё в полном уроке

  • О чём урок
  • Чем Go привлекателен
  • Где применяется в безопасности
  • Безопасность кода на Go
  • Go против Python (когда что)
  • Итог
  • Почему Go захватил инфраструктуру
  • Как это выглядит на практике
  • Типичные ошибки
  • Мини-лаборатория
  • Проверь себя
  • Тест из 5 вопросов с разбором каждого ответа

Пройди урок целиком

Слайды с примерами, тест, работа над ошибками и огонёк серии. Бесплатно, прямо в Telegram.