Ivan's work&life thoughts
546 subscribers
366 photos
8 videos
3 files
104 links
Попытка забложить
@jnovikov
Download Telegram
С Новым годом!

Для меня это первое празднование вне семьи и друзей, а уж тем более в другой стране. Из-за этого немного тяжко и непривычно.

С другой стороны, я думаю что это полезный опыт сепарации, и хорошо что он был.

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

Ну и в новом году мне предстоит писать на жаве, так что себе я пожелаю крепких нервов и меньше AbstractFactory.

А вам желаю не выгорать и добиваться целей)
А может кто пояснить че там по консолям новым ?

Ну я знаю что плэйстейшена нигде нет, покупаем по талонам.

Про цены на видюхи тоже все понятно.

А вот XBOX же есть ? Или тоже дефицит ? Или все настолько привыкли к сони что не хотят брать XBOX ?
​​Помните «проблему 2000»? Оказывается, есть и «проблема 2022». В почтовых серверах MS Exchange (один из крупнейших движков для корпораций) сегодня перестала ходить почта из-за «ошибки 2022 года» или Y2K22.

Дело в том, что для обозначения версий антиспам-списков в этом почтовом сервере разработчики использовали формат 220101002. 22 — это 22-ой год, 0101 — день и месяц, 002 — внутренняя версия обновления в этот день. Проблема в том, что они хранили это длинное обозначение в формате «число», которое вмещает в себя числа не больше 2^31, то есть не больше 2 147 483 648. 21-й год в такой формат влезает, 22-й — уже нет.

Выросло поколение программистов, которое не знает, что такое «проблема 2000», Y2K, когда в конце 1999 люди закупались продовольствием и оружием в ожидании компьютерного апокалипсиса, а решением этой (компьютерной) проблемы на полном серьезе несколько лет занимались правительства всего мира. Вот душевные статьи на русской (там и про Россию есть) и английской википедиях.

На фото президент США Билл Клинтон объясняет сложные технические штуки простым человеческим языком.

С новым 2022 годом!
Кстати вот вам очевидный минус переезда - короткие выходные.

На самом деле это очень спорный минус, все-таки отдыхать 11 дней за счет работодателя кажется ок, пока ты не работодатель)

Но для меня лично проблема такая - я успел себе сбить режим за 1-3е число, а 4го пора на работу.

Обычно на НГ праздниках я успеваю сбить режим и более-менее вернуть его же к концу праздников.

Ну в общем, сегодня я еле-еле встал к daily-стэндапу.

Meh, будем исправляться.
В питонячей либе celery нашли забавную CVE, причем я тоже думал о подобной проблеме когда делал таск на кубок CTF России, и как оказывается недокрутил потенциальную CVE.

Давайте попробую рассказать про что там.

Celery - реализация очереди задач для Python. Основной функционал - возможность создавать и планировать задачи (единица исполнения кода), которые потом могут быть выполнены на другом воркере.

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

Чтобы доставить информацию о задачах на другие машины нужно использовать какое-то внешнее хранилище/брокер, например redis или rabbitmq.

Также celery позволяет хранить информацию о результатах выполнения задачи из коробки в так называемых result backend’ах. Это опять же может быть redis/memcached/бд. [1]

Вопрос, который я задал себе при составлении таска около месяца назад - «а что если мы можем повлиять на хранилище тасков (брокер) или хранилище результатов ?»

Может показаться что такое маловероятно, но достаточно популярный вариант брокера/бэкенда — redis (k-v хранилище).
При этом многие приложения могут использовать редис для кэширования или позволять пользователю хранить там свои данные.
Представить что для простоты деплоя люди будут использовать один и тот же редис для кэширования, хранения данных и celery достаточно легко.

Люди, которые интересуются безопасностью, могут быстро придумать вектор — сериализация (способ кодирования/декодирования объектов в рантайме в байты).

В питоне для сериализации есть очень мощный, но страшный инструмент — pickle. Pickle позволяет сохранить любой питоновский объект в байты, но несет by-design проблему безопасности — десериализовать можно любой объект с мета-поведением, из-за чего при десериализации может быть выполнен произвольный код. [2]

Но разработчики celery прошли этот этап. По-умолчанию в celery используется JSON сериализация. Это накладывает ограничения на объект, который вы можете положить в результат или аргумент задачи, но делает эту историю безопаснее.

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

Именно эта идея легла в основу моей задачи на кубок CTF. [3]

А теперь про CVE.

Задача может упасть с ошибкой. Если результатом выполнения задачи будет исключение (exception), то celery честно положит эксепшен в result backend (как строку в случае JSON).

Если приложение захочет получить результат упавшей задачи, то celery прочитает информацию об исключении из брокера и попытается найти/создать тип данных, который задан в строке. [4]

Если немного детальнее, то в случае JSON сериализации в строке будет модуль, тип эксепшена и сообщение.

Передаем модуль - os, тип - system, сообщение - ls.

И celery честно попытается найти модуль os, и сделать вызов конструктора/функции system с аргументом ls.

Красивое RCE.

Fix

В фиксе [5] сейчас проверяется что полученный тип является наследником exception’a и наследником класса ‘type’. Кажется звучит безопасно, но возможно супер-знатоки питона скажут что нет.

[1] https://docs.celeryproject.org/en/stable/getting-started/backends-and-brokers/index.html
[2] https://davidhamann.de/2020/04/05/exploiting-python-pickle/
[3] https://github.com/acisoru/ctfcup-21-quals/tree/main/tasks/web/json-config
[4] https://github.com/celery/celery/blob/c79d5c79c1c212b1f7e5036b7dca18568eae68de/celery/backends/base.py#L405
[5] https://github.com/celery/celery/commit/1f7ad7e6df1e02039b6ab9eec617d283598cad6b
👍18🔥1
Приехал в Москву на неделю, дел очень много оказалось.

Главным поводом был юбилей папы и желание проверить зубы.

На самом деле есть что рассказать про Ирландию, но напишу уже когда буду там снова.

Кстати, на работе на неделю дали хромбук, пока полет нормальный
Всё-таки в Москве интересный быт
На работе подарили nest mini.

Теперь у нас есть мини домашний питомец, который пока понимает только англ и умеет только в spotify/youtube music (ну или блютус)

В целом штука забавная, но понятно насколько важна локализация. Говорить «Hey google, play zemfira» очень забавно (кстати он понял).

А вот «Hey google, play anacondaz» включает мне Nicki Minaj — Anaconda, причем попытки в «band», «russian band» не работают..
А вот и сразу выдам второй пост, раз нашел минутку.

Вчера мы провели Stay ~ CTF 2022. Attack-Defence на 8 часов.

Я написал на соревнования два сервиса, один сервис был очень интересный — нужно было найти а-ля зеродэй в ONNX от Microsoft.

Второй сервис был проще и был сделан, чтобы в контесте был хотя бы один легкий сервис. Написал что-то тип биржи на джаве и плохо работал с флотами.

Если кому-то интересно, то можно посмотреть вот тут https://github.com/C4T-BuT-S4D/stay-home-ctf-2022 или попросить в комментах подробный райтап (может тогда напишу).

Из самого интересного — ощущение, что твой контент потребляют по всему миру. В плане ты знаешь что много людей (>500) из разных стран мира потратили 9 часов своего времени на что-то, что сделали вы. И это что-то было челенджем, который им понравился (судя по оценкам).

В общем-то наверное что-то такое должны чувствовать youtube-крейторы, чьи видео смотрят и комментируют разные люди по всей земле, но у нас гораздо меньше коммунити и все-таки очень интересная специфика.
🔥13👍4
Сегодня какой-то день сюрреализма

1) С утра в квартиру с улицы случайно зашла женщина, подумала что тут просмотр (прелести жизни на 1-м этаже). Дверь можно закрыть, но мы особо не паримся когда дома, вот и зашла.
2) Под вечер выпал снег минут на 10. Все сразу расстаяло, но снег тут в первый раз вижу.
3) А сейчас мимо нашего окна просто прошла лиса. Что-то нюхала и пошла дальше.
🔥13👍3
Наш президент начал войну в Европе.

Мы не выбирали этого президента.

Украине - поддержку
👍27🔥8
Путин: мы готовились к санкциям.
Набиуллина: финансовая система и экономика России сталкиваются с нестандартной ситуацией, ЦБ будет нестандартно подходить к решениям.

Получается стратег на президенте.
👍6
Всем кто собирается в ближайшее время уезжать, важно. Сейчас на границе спрашивают показать чаты в ТГ/Ватсапе.

Из чата:

Видимо, да, встретился похожий отзыв сегодня: ”Меня пограничники остановили и сначала 30 минут держали в зоне ожидания. После завели 1:1 в маленькую комнатку без окон, где сотрудник спрашивал и записывал рукой поверх скана моего паспорта:
– Куда еду и зачем
– Где работаю
– Есть ли обратный билет
– Не собираюсь ли я попасть на территорию Украины
– Нет ли у меня там друзей
– Почему так много IT специалистов выезжает сегодня (мой ответ — потому что праздники хотят погулять)
– Где родился, где живу
– Пользуюсь ли я телеграмом (сказал «да»)
– Из самого необычного: «Не будете ли вы против, если я посмотрю телеграм на предмет наличия террористических, противозаконных или анти-национальных материалов». Тоже согласился, у меня там тотальное преобладание рабочих чатов. ”


Мой совет - перед вылетом убрать все полит каналы и чаты, мой тоже можно (учитывая всякие фото протестов).
👍6
Эхо Москвы просуществовало 32 года, пройдя тяжелый и длинный путь настоящей журналистики.

Долгие годы это была самая популярная в Москве разговорная радиостанция, в последний месяц эта была самая популярная в Москве радиостанция вообще.

Закрыли быстро, очень быстро.

В целом было понятно, что более-менее объективное СМИ финансируемое ГазПромом просто не может существовать в России настоящего.

Но что это будет так быстро наверное не думал никто.

За разные годы в эфире Эха побывали разные личности: Путин, Навальный, Немцов, Светов, Муратов и многие другие.

Для меня Эхо это и личная история — в первое время в нашей квартире в Мытищах (новой) не было телевизора (да его и сейчас считай нет, только как монитор используется). Но было радио, и радио было - Эхо.

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

Я взрослел вместе с Эхом, за что я благодарен родителям и Эху.

Я знаю что к Эху и Венедиктову лично есть много вопросов, в том числе из-за ЭГ, но все еще считаю что Эхо было одним из лучших СМИ в РФ, на равне с Новой и Дождем.


Всей команде Эха — нижайший поклон. Надеюсь когда-нибудь в РФ появится радио, которое будет не хуже.
😢17
Находясь в Ирландии невольно приходят параллели между ситуацией РФ/Украина, UK/Ирландия.

Я думаю сходства очевидные (язык, были одной страной, территориальная близость).

И в связи с этим все чаще возникает вопрос о целях этой «спецоперации», ведь как мы знаем Ирландия в итоге отвоевала себе независимость, и даже после независимости боролись с «захватчиками»: песня Zombie, Луис Маунтбеттен и прочее.

И вопрос: «А зачем это все надо?» стоит в голове все более и более четко.
👍7👎1
Так получается ВК зря Снапстер закрыли, ща бы им прилетело траффла ух
В последнее время слушаю вот эти треки. Просто решил поделиться.


https://music.youtube.com/browse/VLPLfYx00Zg4BCYoiwcoGuwfoLjxxxyjkiEY

Ну кстати если вы не слушали последний альбом нойза - то послушайте, там как бы очень хорошо.
👍2
This media is not supported in your browser
VIEW IN TELEGRAM