Linux и инструменты разработчика
Основы Bash для работы в безопасности
Пайпы, перенаправление, переменные, циклы, коды завершения и set -euo pipefail, а затем подсчёт неудачных входов и хеширование папки на этой основе.
Создайте аккаунт GitHub и первый репозиторий в браузере, добавьте README и второй коммит и не пускайте туда секреты.
Репозиторий GitHub — это папка, которую отслеживает Git. Каждое изменение файлов сохраняется в виде коммита, поэтому позже можно прочитать историю и увидеть, что менялось. В этом уроке вы создадите аккаунт, репозиторий и два коммита, всё в браузере. Опыт программирования и инструменты безопасности не нужны.
Откройте github.com и пройдите регистрацию на сайте. Придумайте пароль, который больше нигде не используется, и желательно храните его в менеджере паролей. Затем включите двухфакторную аутентификацию в настройках безопасности аккаунта. В официальном руководстве по 2FA перечислены доступные способы второго фактора. SMS предлагается только в некоторых странах.
Интерфейс GitHub со временем меняется. Если какая-то надпись ниже не совпадает с вашим экраном, сверяйтесь с руководством Hello World.
Откройте меню создания в правом верхнем углу и выберите New repository. В официальном руководстве описаны такие поля:
., - и _..gitignore и лицензия.Укажите имя security-learning-notes, добавьте короткое описание и на время обучения выберите Private. Отметьте опцию добавления README и создайте репозиторий.
Приватная видимость ограничивает круг тех, кто может видеть репозиторий. Безопасным местом для паролей и ключей он от этого не становится, как объясняет раздел 6.
Откройте README.md и щёлкните по значку карандаша, чтобы редактировать файл в браузере. Замените содержимое чем-нибудь конкретным:
# My Security Learning Notes
This repository contains exercises I created while learning cybersecurity.
## Topics
- How DNS works
- Encoding versus encryption
## Scope
All exercises use local labs or systems I own.Напишите короткое сообщение с описанием изменения, например Document learning goals, и сделайте коммит. Коммит — это сохранённое изменение с сообщением и меткой времени. GitHub хранит его как часть истории репозитория.
Выберите Add file, затем Create new file. Введите notes/first-lesson.md в поле имени. Косая черта создаёт папку. В теле файла напишите один абзац о разнице между хешем пароля и шифрованием. Хеш — это односторонний отпечаток данных, с его помощью значение проверяют, не храня его самого. Шифрование обратимо для любого, у кого есть ключ. Сделайте коммит этого файла с отдельным сообщением, например Add first lesson notes.
Отдельные коммиты упрощают чтение истории. Каждый коммит должен описывать одну идею.
Откройте историю коммитов репозитория. Вы должны увидеть как минимум два коммита с понятными вам сообщениями. Умение объяснить, что изменилось и почему, важнее количества коммитов.
Если на компьютере установлен Git, ту же историю можно посмотреть из командной строки. Я запустил это на временном репозитории с одним коммитом и тем же сообщением:
git log --onelineВывод этого запуска:
03c208a Document learning goalsВаш хеш будет другим. В Windows при первом коммите Git может ещё вывести предупреждение об окончаниях строк. На коммит это предупреждение не влияет.
Перед загрузкой любого файла проверьте его на файлы .env, токены доступа, данные клиентов, облачные учётные данные и закрытые логи. Файл .gitignore велит Git пропускать подходящие файлы, и это помогает избежать случайностей. Секрет, который уже попал в коммит, он не удалит, потому что старый коммит остаётся в истории.
Пример .gitignore для учебного проекта:
.env
*.pem
*.logЕсли вы случайно закоммитили секрет, сначала отзовите или смените его. После этого старое значение больше не даёт доступа, так что переписывать историю, возможно, и не стоит. Руководство GitHub по удалению конфиденциальных данных описывает оба шага, включая побочные эффекты переписывания.
Веб-репозиторий помогает разобраться в структуре и истории. Следующий шаг — понять, что Git делает на вашей машине, а затем как git clone создаёт локальную копию репозитория, чтобы вы могли безопасно работать с ней.
Храните в этом репозитории только те заметки и упражнения, которые не постеснялись бы показать кому угодно.
Linux и инструменты разработчика
Пайпы, перенаправление, переменные, циклы, коды завершения и set -euo pipefail, а затем подсчёт неудачных входов и хеширование папки на этой основе.
Linux и инструменты разработчика
Владельцы и группы в Linux, биты rwx, chmod, umask и setuid, а также лабораторная, где доступ проверяется от имени второго пользователя и ищутся опасные режимы файлов.
Linux и инструменты разработчика
Как работают ключи хоста и пользователя в SSH, почему по умолчанию стоит брать Ed25519 с парольной фразой и как настроить и защитить вход по ключу на своей лабораторной VM.