Технологический Болт Генона
8.27K subscribers
3.05K photos
373 videos
214 files
3.92K links
До Декарта никогда не существовало рационализма.

Музыкальный Болт Генона: @mus_b0lt_Genona
Мемный Болт Генона: @mem_b0lt_Genona
Кадровый Болт Генона @kadr_b0lt_Genona

Обратная связь: @rusdacent
Download Telegram
Flipper Zero — мы начали доставку
https://habr.com/ru/company/flipperdevices/blog/647341/

Чат камунити @flipperzero
Researchers from Qualys today published an advisory about a local privilege escalation vulnerability in the pkexec tool, that is installed as part of the Polkit (formerly PolicyKit) package.
. . .
Now, there are three scary things about this vulnerability:

- It has been around for 12+ years (!!!) since it was introduced in a commit to pkexec in May 2009

- The affected version of pkexec is installed with all popular Linux distributions: Ubuntu, Debian, Fedora and CentOS

- It is very simple to create the exploit, and it works 100% reliable


Local privilege escalation vulnerability in polkit's pkexec (CVE-2021-4034)
https://isc.sans.edu/diary/rss/28272

Коммит с патчем
https://gitlab.freedesktop.org/polkit/polkit/-/commit/a2bf5c9c83b6ae46cbd5c779d3055bff81ded683
👍8
#машины_aws

Одно из моих любимых занятий - ковырять нелюбимые инструменты, чтобы не любить их экспертно и за дело. Один из таких инструментов - CodeDeploy - до неприятия муторный, сложный и противный.

Чего только стоит необходимость запускать Shell скрипты из spec-файла. Да, даже если весь скрипт состоит из одной команды.

Предлагаю разделить мою нелюбовь и начать эту неделю с мультирегионального развертывания приложений с помощью CodePipeline и CodeDeploy. Да еще и на виртуальные машины, чтоб жизнь совсем уж медом не казалась.
👍1
Я сделал rm -rf /* прод сервера, на новом месте работы.

Давайте внимательно разберём все ошибки, что есть в огрызке скрипта выше.
1. set +x совершенно бесполезен
2. Все строковые значения подаются в " " кавычках
3. Нет обработки ошибок
4. АВТОЗАМЕНА ЗЛО

Поехали

1. set +x
set - Set or unset values of shell options and positional parameters.
-x Print commands and their arguments as they are executed.
Using + rather than - causes these flags to be turned off.

set -x
очень крутой инструмент для дебага баш скриптов
"> не понимаешь что происходит? Врубай set -x"

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

Что я сделал не так ? Зачем-то поставил +x вместо -x тем самым отключив и так нерабочий флаг.
Глупая опечатка, но не критичная, идём дальше.

2. " " вместо ' '

Enclosing characters in single quotes (') preserves the literal value of each character within the quotes. A single quote may not occur between single quotes, even when preceded by a backslash.

Enclosing characters in double quotes (") preserves the literal value of all characters within the quotes, with the exception of $,
, \`etc..

Если по-простому, '' - нет интерполяции "" - есть интерполяция
https://en.wikipedia.org/wiki/String_interpolation

Пример

Двойные кавычки раскрывают переменные
apples=4
echo "I have ${apples} apples"

#I have 4 apples

Одинарные кавычки ничё не раскрывают
apples=4
echo 'I have ${apples} apples'

#I have ${apples} apples

Самая правильная практика которой меня учил мой очень умный начальник на прошлой работе:

Строки которые в себе не содержат переменных ВСЕГДА должны быть в ' ' кавычках
Настрой себе линтеры, что бы проверяло постоянно
Используй линтеры!

Если бы я сразу прогнал линтер, что бы он автоматически заменил все кавычки там где нужно, проблемы можно было бы избежать.
Но я этого не сделал и я сам себе дурак. Next

3. set -euo pipefail

Всегда и везде нужно использовать вот эту волшубную строчку.
Разберём её по пунктам.
  -e  Exit immediately if a command exits with a non-zero status.
-u Treat unset variables as an error when substituting.
-o <option-name> pipefail
the return value of a pipeline is the status of
the last command to exit with a non-zero status,
or zero if no command exited with a non-zero status

Суммарно получаем падение в любой непонятной ситуации, что очень безопасно, но временами не очень удобно
С этими параметрами нельзя будет обрабатывать ошибки как
if [[ $? != 0 ]]; then
Потому что скрипт закончит выполнение сразу как команда упадёт даже не дойдя до if проверки
и нужно саму команду заключать в if
if command; then

Я привык к тому что у меня во всех скриптах этот параметр уже есть и не обратил внимания на его отсутствие.
Если бы этот параметр был указан, то скрипт бы завалился ещё на строчке
maria_dump.sh: line 5: backup_dir: unbound variable
И проблемы можно было бы избежать.

4. Чёртова автозамена и глупая невнимательность

Дурацкая ошибка, я сделал автозамену /data на ${backup_dir} и тем самым испортил строку, где переменная изначально задавалась. Из-за этой глупости я теперь и переустанавливаю

5. Всё остальное
Переписывать чужой скрипт на ходу, по кусочкам меняя нужные места, приведёт к тому, что ты что-то упустишь.
Запускать rm -rf без проверки опасно, даже если ты уверен, что всё збс.

К этому моменту я уже совсем устал и забыл чё надо добавить
👍10
> По своему назначению Rancher Desktop близок к проприетарному продукту Docker Desktop и отличается главным образом использованием CLI-интерфейса nerdctl и runtime containerd для создания и запуска контейнеров, но в будущем в Rancher Desktop планируют добавить поддержку Docker CLI и Moby.

> Rancher Desktop позволяет выбрать определённую версию Kubernetes для использования, протестировать работу своих контейнеров с различными версиями Kubernetes, мгновенно запустить контейнеры без регистрации в сервисах Kubernetes, собрать, получить и разместить образы контейнеров и развернуть разрабатываемое приложение в контейнере на локальной системе (сетевые порты, связанные с контейнерами доступны только с localhost).

Компания SUSE выпустила Rancher Desktop 1.0
https://www.opennet.ru/opennews/art.shtml?num=56599
👍14
Среда, это маленькая пятница

How To Create An LED Rave Mask Using Arduino, NeoPixels, and C++
https://armaizadenwala.com/blog/how-to-create-a-led-rave-mask-using-arduino/
👎3
Слава Патрику!

После шести лет затишья вышел Slackware 15.0.

Сам анонс
http://www.slackware.com/announce/15.0.php

Release Notes
http://www.slackware.com/releasenotes/15.0.php

ISO
https://mirrors.slackware.com/slackware/slackware-iso/slackware64-15.0-iso/

Список зеркал
https://mirrors.slackware.com/mirrorlist/

Зачем нужна Слака в современном мире не очень понятно, но уже качаю, буду посмотреть, что там сделали.
🔥7
На GitHub есть один увлекательный проект за которым я слежу - https://github.com/uutils/coreutils

В нём занимаются переписыванием GNU Coreutils на Rust.

Оказывается к нему в нагрузку есть ещё https://github.com/uutils/findutils, который "переписывает" GNU Findutils.

Прогресс работ отображают в таблице
https://github.com/uutils/coreutils#utilities

Новость на opennet
В качестве причины создания проекта и использования языка Rust называется желание создать кросс-платформенную альтернативную реализацию Coreutils и Findutils, способную работать в том числе на платформах Windows, Redox и Fuchsia. Ещё одним важным отличием uutils является распространение под пермиссивной лицензией MIT, вместо копилефт-лицензии GPL.
. . .
Из последних достижений отмечается оптимизация производительности - в текущем состоянии многие утилиты, такие как head и cut, значительно превосходят по производительности варианты из GNU Coreutils. Охват тестовым набором расширен с 55% до 75% от всего кода (достаточной целью является 80%). Проведён рефакторинг кода для упрощения сопровождения, например, унифицирована обработка ошибок в разных программах, а в chgrp и chown объединён код для работы с правами доступа. Добавлены многочисленные изменения для улучшения совместимости с GNU Coreutils.

https://www.opennet.ru/opennews/art.shtml?num=56609
🔥15👍5😁2👎1
Технологический Болт Генона
Время следующего поста про подкасты, которые я слушаю. 1. "Noise Security Bit" (@N0iSeBit, https://noisebit.podster.fm/) Подкаст посвящённый различным аспектам информационной безопасности. В первой своей реинкарнации назывался "100% Virus Free Podcast" (архив…
Подкасты я люблю, подкасты я слушаю часто и много. Один из таких DevOps Kitchen Talks.

Например, у них есть интереснейший выпуск с ребятами из VictoriaMetrics (@VictoriaMetrics_ru1)

31 - Monitoring vs Observability: VictoriaMetrics в гостях у DevOps Kitchen Talks
https://www.youtube.com/watch?v=5FTcJmJXbqA

А сегодня выложили новый выпуск

DevOps Kitchen Talks 37 - DevOps vs SRE
https://www.youtube.com/watch?v=88SCuXxrwXo
👍6🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Интересный и подробный пост с разбором уязвимости. Не всё понятно, но очень интересно.

Firefox JIT Use-After-Frees | Exploiting CVE-2020-26950
https://www.sentinelone.com/labs/firefox-jit-use-after-frees-exploiting-cve-2020-26950/
+
https://twitter.com/maxpl0it/status/1489283212786475008

За ссылку спасибо @oleg_log
👍5🔥1
Forwarded from oleg_log (Oleg Kovalov)
можно смотреть на 3 вещи бесконечно: как течёт вода, как бесится в воде лабрадор и как фиксятся баги фаззингом
👍10👎1
Forwarded from DocOps (Nick Volynkin)
Прекрасные ребята из подкаста @newpodcast2 зовут меня сегодня пообщаться в эфире. Начало в 18:00 Мск, трансляция будет на ютубе.

Пока что собираемся обсуждать такие темы:

1. Конференцию KnowledgeConf, которую мы в этом году проводим вместе с TeamLead Conf. Расскажу про свой опыт работы в программном комитете и про доклад, с которым сам буду выступать.
2. Работу в tarantool.io, новую команду Developer Experience, прежнюю команду документации.
3. Можем в целом обсудить мою странную карьеру, путь из разработки в документацию и обратно.

Задавайте вопросы здесь, постараюсь на них ответить :)
👍3
> The first erroneous computation example is CVE-2021-39137 which is an interesting go-ethereum bug identified by Guido Vranken. The bug caused a netsplit in the Ethereum network and essentially results from the ability to have a mutable and non-mutable slice referencing the same chunk of memory.

A deeper dive into CVE-2021-39137 – a Golang security bug that Rust would have prevented
https://research.nccgroup.com/2022/02/07/a-deeper-dive-into-cve-2021-39137-a-golang-security-bug-that-rust-would-have-prevented/

И что б два раза не вставать. Интересный пост

> On 2/2/2022, I reported a critical security issue to Optimism—an "L2 scaling solution" for Ethereum—that would allow an attacker to replicate money on any chain using their "OVM 2.0" fork of go-ethereum (which they call l2geth).

Attacking an Ethereum L2 with Unbridled Optimism
https://www.saurik.com/optimism.html
👍2🔥1
Cloud-native AuthN/AuthZ enforcer to protect your APIs.
https://github.com/kuadrant/authorino

Очень подробный и интересный FAQ на GitHub лежит. Люблю такое.
+
Tech Talk: Authorino (Showcase)
https://www.youtube.com/watch?v=JPxZaa3pxcw
🔥4