Linux и инструменты разработчика
Основы Bash для работы в безопасности
Пайпы, перенаправление, переменные, циклы, коды завершения и set -euo pipefail, а затем подсчёт неудачных входов и хеширование папки на этой основе.
GitHub для начинающих: что делают Git и GitHub, какие термины нужны, локальная практика с Git и как проверить проект перед запуском.
GitHub — это сайт, где люди хранят, публикуют и проверяют программные проекты. Большинство этих проектов ведётся в Git, системе контроля версий, которая записывает каждое изменение в наборе файлов. GitHub держит репозитории Git в сети, добавляет к ним веб-интерфейс и даёт командам pull request, issues и релизы для совместной работы над кодом.
Коротко: Git — это инструмент, а GitHub — одно из мест, где размещают и обсуждают проекты на Git.
Git работает на вашем компьютере. Любую папку можно превратить в репозиторий и записывать изменения без интернета и без аккаунта на GitHub.
GitHub — онлайн-сервис. Он хранит копии репозиториев Git, показывает файлы и историю в браузере и добавляет такие возможности, как трекер задач и pull request. Репозитории Git размещают и другие сервисы, так что GitHub лишь одно из таких мест.
Быстрее всего понять эти слова, создав репозиторий самому.
Чтобы освоить основы, GitHub не нужен. Установите Git с официального сайта git-scm.com и проверьте установленную версию:
git --versionНа машине с Windows, где проверялась статья, команда вывела:
git version 2.49.0.windows.1У вас версия будет другой. Теперь задайте имя и email, которые Git добавляет к каждому коммиту. Укажите свои значения:
git config --global user.name "Your Name"
git config --global user.email "[email protected]"Создайте тренировочный репозиторий с двумя ветками и двумя коммитами:
mkdir security-learning-notes
cd security-learning-notes
git init
printf '# security-learning-notes\n' > README.md
git add README.md
git commit -m "Add README"
git switch -c add-glossary
printf -- '- DNS\n- HTTPS\n- hash\n- encryption\n' > glossary.md
git add glossary.md
git commit -m "Add glossary terms"
git branchgit branch в этом репозитории вывела:
* add-glossary
masterЗвёздочка отмечает ветку, на которой вы находитесь. Ветка по умолчанию может называться master или main, в зависимости от настроек Git. В Windows Git может ещё выводить предупреждения об окончаниях строк. На коммиты они не влияют.
В руководстве GitHub Hello World этот порядок действий описан для браузера. Меню и названия кнопок со временем меняются, так что, если экран не совпадает с текстом, следуйте официальному руководству:
security-learning-notes. Выберите публичный или приватный.README.md с одним предложением, описывающим проект.add-glossary.Шаг с pull request нужен даже в личном репозитории. В просмотре diff точно видно, какие строки изменились, ещё до того, как что-либо попадёт в основную ветку.
Чтобы отправить локальный репозиторий на GitHub, создайте на сайте пустой репозиторий и подключите его из терминала. OWNER и REPOSITORY здесь заполнители. Замените main именем своей ветки, если git branch показывает master:
git remote add origin https://github.com/OWNER/REPOSITORY.git
git push -u origin maingit clone копирует репозиторий вместе с полной историей:
git clone https://github.com/OWNER/REPOSITORY.gitЗамените OWNER и REPOSITORY владельцем и именем из адресной строки страницы проекта. Клонирование скачивает файлы. Оно ничего из проекта не запускает и не доказывает, что проект безопасен. ZIP-архив с сайта даёт файлы без истории: для чтения этого достаточно, но история коммитов теряется.
Прежде чем запускать незнакомый инструмент, изучите сам репозиторий:
install.sh или установочный скрипт системные пакеты, устанавливает ли службы, просит ли права администратора?Читайте установочные скрипты, прежде чем их выполнять. README, который просит вставить команду в терминал, просит вас запустить код на своей машине.
Инструменты безопасности предназначены для работы в пределах скоупа. Тренируйтесь на своих машинах, в собранной вами лаборатории или на целях, для которых есть письменное разрешение на тестирование.
Первая частая ошибка: путать Git с GitHub. Git работает на вашем компьютере, и сайт ему не нужен. GitHub — сервис, построенный вокруг Git.
Вторая: коммитить секреты. Токен или пароль, отправленный в публичный репозиторий, может скопировать любой, кто его найдёт. Удаление строки следующим коммитом не убирает её из истории. Сначала отзовите учётные данные, затем следуйте руководству GitHub по удалению конфиденциальных данных из репозитория.
Третья: запускать команды из README, не прочитав их. Установочные скрипты могут изменить ваш компьютер, поэтому читайте их перед запуском.
Следующая статья этого курса посвящена созданию аккаунта на GitHub и первого репозитория. Когда основы станут привычными, можно переходить к инструментам безопасности. Проверяйте каждый из них в своей лаборатории, прежде чем доверять ему что-то настоящее.
Linux и инструменты разработчика
Пайпы, перенаправление, переменные, циклы, коды завершения и set -euo pipefail, а затем подсчёт неудачных входов и хеширование папки на этой основе.
Linux и инструменты разработчика
Владельцы и группы в Linux, биты rwx, chmod, umask и setuid, а также лабораторная, где доступ проверяется от имени второго пользователя и ищутся опасные режимы файлов.
Linux и инструменты разработчика
Как работают ключи хоста и пользователя в SSH, почему по умолчанию стоит брать Ed25519 с парольной фразой и как настроить и защитить вход по ключу на своей лабораторной VM.