Mikrotik Ninja – Telegram
Mikrotik Ninja
3.97K subscribers
384 photos
9 videos
57 files
1.23K links
Канал по новым компьютерным технологиям и защите компьютерных программ


Блог http://bubnovd.net
https://medium.com/@dbubnov
https://xakep.ru/author/bubnovd/
Мысли неглупых людей https://news.1rj.ru/str/channel1name
Книги https://news.1rj.ru/str/mreadninja
Download Telegram
Matrix in your terminal

while :;do echo $LINES $COLUMNS $(( $RANDOM % $COLUMNS)) $(printf "\U$(($RANDOM % 500))");sleep 0.05;done|gawk '{a[$3]=0;for (x in a){o=a[x];a[x]=a[x]+1;printf "\033[%s;%sH\033[2;32m%s",o,x,$4;printf "\033[%s;%sH\033[1;37m%s\033[0;0H",a[x],x,$4;if (a[x] >= $1){a[x]=0;} }}'
Часто приходится писать bash скрипты. Я далеко не специалист в баше и недавно осознал одну вещь.

Каждый скрипт должен иметь статус выхода. Зачем? Да просто потому что он может использоваться другими скриптами или вызываться из других систем, например CI. Если скрипт выполнился с ошибками, но на выходе мы получили статус 0, что говорит о его успешном выполнении, то, к примеру Gitlab CI, посчитает его успешно выполнившимся и передаст управление следующей задаче. Но ведь наш скрипт может готовить данные для следующих задач, а значит они пройдут некорректно.
ВЫВОД 1: скрипт должен иметь статус выхода: 0 - всё хорошо, !0 - что-то пошло не так

Решить эту задачу достатчно просто: используем set -euo pipefail
-e
заставляет скрипт немедленно остановиться после ошибки в любой команде
-u проверяет корректность заданных переменных. Если на вход скрипта не пришла нужная переменная, то он упадет с ошибкой
-o pipefail проверяет работу перенаправлений. Например, эта команда выполнится без ошибки без флага -o pipefail : grep some-string /non/existent/file | sort . А с флагом выпадет с ошибкой

Но иногда команда может выполниться с ошибкой, но для нас это ожидаемо и нужно продолжить выполнение кода. Например, мы хотим проверить существование репозитория в GitHub и, если его нет - создать репозиторий. В CI имеем две джобы - проверка и создание.
Для проверки запускаем gh repo view $REPO . Если репозиторий есть, код выхода 0. Если нет - 1. Если мы не смогли получить доступ к GitHub из-за протухшего токена, тоже получим 1. Но ведь в случае ошибки нам нужно запустить следующую джобу, а она не запустится, если проверка выпала с ошибкой.
ВЫВОД 2: при ожидании ошибки нужно проверять вывод и, в зависимости от него, выдавать статус выхода

# Получаем сообщение от GitHub. 2>&1 указывает, что в переменную нужно писать не только успешный вывод, но и ошибку
RESULT=$(gh repo view $REPO 2>&1)
# Если репа существует - считаем скрипт успешно выполненным и выходим
if [ $? -eq 0 ]; then
echo "0"
exit 0
# Если репы нет - считаем скрипт успешно выполненным и отдаем на выход 1. Следующая джоба по этому коду понимает, что нужно запуститься
elif [ "$RESULT" = "GraphQL error: Could not resolve to a Repository with the name $REPO." ]; then
echo "1"
exit 0
else
# если текст ошибки другой - считаем, что что-то пошло не так и выходим с ошибкой exit 255
echo ERROR: $RESULT
exit 255
fi

Для многих это очевидно, но я в очередной раз столкнулся с этой проблемой и решил написать об этом, чтобы не забыть на будущее и лучше разобраться в вопросе. Этот пример успешно работает в ArgoWorkflow. Понятное описание флагов тут

#bash #noscript
Спасибо всем, кто был с нами в этом году!
Оригинальных постов было мало. Буду исправляться в следующем.

Работы и постов про сети было очень мало, так как направление моей работы изменилось в сторону DevOps. В следующем году планирую больше писать про DevOps. Если появятся сетевые проекты, то буду писать и о них.

Планирую изучить сети в публичных облаках и kubernetes и чуть больше программировать.

Желаю всем в новом году продуктивно изучать новое, внедрять классные технологии и чтобы ковид обошел вас и ваших близких стороной.

Вперед - к светлому будущему!
Forwarded from NetDevOps Space
​​По традиции в первые дни нового года ставим цели и планируем шаги их достижения. Лучше чем книги для этого сложно что-то найти.
Начну с книги "Kafka Up and Running for Network DevOps" Эрика Чоу, о которой я писал в этом посте. Он выложил ее бесплатно для тех у кого Kindle. У вас есть пара дней, чтобы ее заполучить.

Продолжим. Вы можете абсолютно бесплатно скачать книги от Juniper Networks. Нас, как автоматизаторов интересует три самые популярные книги по автоматизации: PyEZ, Salt и Ansible

Ну и на последнее. 460 бесплатных учебников по математике, инженерии, естественным наукам и множества другим от FreeCodeCamp.

Ну и новое в канале, тестирую новые реакции для поста, которое запустил телеграм. Кто еще не знает, чтобы проголосовать попробуйте тапнуть на пост и у вас должны появится реакции.

Спасибо, иду планировать свой 2022! - 🔥
Я еще от 2021 не отошел! - 🎉
Мне нравятся новые реакции! - ❤️
Мне оно не надо! - 👎

Заходим в наш уютный чат - https://news.1rj.ru/str/automate_devnet
Основной канал - https://news.1rj.ru/str/automate_net

#netdevops #free #books
👍137🔥4😱2😢1🎉1🤩1
Forwarded from RUH8
Эксплоиты, программки, которые превращают уязвимости в софте во что-нибудь полезное (для хакера, не для вас) - отдельный вид современного искусства. Не знаю с чем сравнить. Сборка кораблика в бутылке с помощью трехметровой линейки с завязанными глазами? Поездка на машине, от которой вы по ходу дела отломали тормоза, колесо, и пытаетесь ей управлять с помощью лома, резинки от трусов и набора цветных карандашей? Как-то так.

Гугл распотрошил экслоит израильской NSO https://bit.ly/3mabxOl и это замечательная конструкция. Люди посылают друг другу смешные анимированные гифки (хотел бы я рассказать какие гифки есть в нашем секретном партийном чате, но меня тут же забанят). iMessage хочет, чтобы они крутились вечно. Для этого в заголовке GIF нужно поправить флажок, и чтобы не портить файл iMessage делает его копию. Казалось бы, что могло пойти не так?

По ошибке вместо копирования вызывается рендеринг картинок. А он уже на расширения файлов не смотрит. И NSO под видом гифки подсовывает PDF. А внутри PDF-ки картинка JBIG2 - это такой доисторический формат графики для ксероксов. Чтобы файлы получались маленькими, то он режет картинку на кусочки, и если куски, например буква "а" достаточно похожи между собой, то он использует один глиф для всего, как типографскую литеру.

Из-за этого случались многие беды https://bit.ly/3scwDiQ Кодек мог к примеру подумать что цифра 6 достаточно похожа на цифру 8, и заменить ее везде на картинках, чтобы сэконосить место. Потому в формат добавили маски - разницу между "похожим" глифом и тем, что нужно воспроизвести. И эти исправления накладываются на глиф с помощью операций AND, OR, XOR и XNOR. То есть эта штука тьюринг-полная. Любое мыслимое вычисление можно провести с помощью этих операций.

Дальше NSO использовали целочисленное переполнение, чтобы выйти за границы буфера и эта часть напоминает бутылку и кораблик. В результате они получили два основных примитива чтение и запись в произвольные места памяти. Если бы они хотели взломать одну конкретную версию софта, то этого бы хватило, но они захотели все и сразу. Для этого нужно знать, что и куда записывать.

И из доисторического графического формата они собрали полноценный виртуальный микрокомпьютер из 70 000 вентилей (те самые маски).

Нужно еще раз все перечислить, чтобы оценить проделанную NSO работу. Вам приходит гифка, которая на самом деле пдфка, и ее по ошибке, не копируют, а пытаются прочитать, в ней доисторическая картинка в формате ксероксов, которая в результате целочисленного переполнения может писать в память, и внутри этой "картинки" семьдесят тысяч блоков логических операций, которые эмулируют небольшой компьютер, который уже находит то место в памяти, которое нужно пропатчить, чтобы убежать из песочницы.

NSO продавали эту изящную вещицу негодяям и убийцам, но то как она сделана!..
🔥11👍6
Forwarded from noc_announces
Трафик на пире с Казахстаном
👎3
Forwarded from NetDevOps Space
​​Январь обещает быть щедрым на разные курсы. Вслед за Google о бесплатном доступе к 25 своих курсов объявили и ACloudGuru.
Среди которых бесплатное обучение по AWS, бесплатные курсы по сертификации Microsoft Azure, а также бесплатный контент по Google Cloud (GCP), безопасности, DevOps, Kubernetes, Linux и не только.

Круто, спасибо иду регистрироваться! - 🔥
Уговорил, иду изучать! - ❤️
Мне оно не надо! - 👎

Заходим в наш уютный чат - https://news.1rj.ru/str/automate_devnet
Основной канал - https://news.1rj.ru/str/automate_net

#netdevops #free #course
3🔥3👍1
Ушел из жизни Владимир Безмалый. Безопасник, популяризующий ИБ для обычных людей. Он писал сказки про информационную безопасность, которые можно было дать почитать родителям и детям, чтобы повысить уровень информационой грамотности.

Общались с Владимиром в FB - эрудированный, интеллигентный человек. На днях выпустил юбилейную - тысячную - сказку. Человека нет, а дело его живет. Не дайте памяти о нем кануть в лету - читайте сказки и покажите их близким
https://news.1rj.ru/str/ib_skazki
👍1
Yandex.Cloud Security Solution Library — это набор примеров и рекомендаций, собранных в публичном репозитории на GitHub. Они помогут компаниям, которые хотят построить безопасную инфруструктуру в Облаке и соответствовать требованиям различных регуляторов и стандартов. Команда Yandex.Cloud проработала самые распространённые задачи, которые возникают при построении безопасности в облаке, протестировала и подробно описала необходимые сценарии.

https://github.com/yandex-cloud/yc-solution-library-for-security?s=09

#yandex #cloud #security
🔥2
В далеком 2015 я писал о сегментации корпоративной сети: с чего начать, как правильно рассчитать подсети и как настроить.

А недавно увидел репозиторий Best-practice-for-network-segmentation. В простой форме и со схемами там описаны четыре уровня сегментации: от самого простого, но эффективного до монструозного для компаний с SOC от 20 человек и двумя рабочими станциями на юзера.

Посмотрите и, если у вас ещё не реализовано, то внедряйте первую схему. Или вторую. Владельцам третьей и четвертой я не завидую

#network #segmentation
👍18🎉1
Чтобы защититься от преступника, надо думать как преступник

The Ultimate Guide to Phishing

#security #phishing
Опять плюешься от плохого Wi-Fi? netsh wlan show wlanreport сгенерирует отчет, который поможет разобраться в проблемах

https://support.microsoft.com/en-us/windows/analyze-the-wireless-network-report-76da0daa-1db2-6049-d154-7bb679eb03ed

#windows #wireless #wifi
19
Kubernetes jobs market trends for 2021

The most popular choices of technology among Kubernetes engineers are:

- Programming languages: Python, Go, and Java
- Cloud platforms: AWS, GCP, and Azure (in that order)
- Containers: Docker
- Infrastructure as Code: Terraform
- Databases: PostgreSQL, Redis, and MySQL
- Configuration management: Ansible
- CI/CD: Jenkins
🛠 Отличная серия статей получилась, как по мне:

- Debugging Distributed Trace Gaps with tcpdump;
- Debugging Distributed Trace Gaps with ftrace;
- Monitoring Linux Audit.

#audit #trace #напочитать