This media is not supported in your browser
VIEW IN TELEGRAM
Технолоджиа!
Running Rust on shared hosting via PHP wrapper (hear me out)
https://www.reddit.com/r/rust/comments/1o9w36k/running_rust_on_shared_hosting_via_php_wrapper/
I wanted actual memory safety and compile-time guarantees, but I'm also practical about infrastructure. Didn't feel like paying for VPS hosting, managing security patches, configuring databases, setting up backups, and generally babysitting servers when shared hosting is under $10/month and handles all that.
Problem: how do you run Rust on shared hosting that only officially supports PHP?
A compromise: use PHP as a thin CGI-style wrapper that spawns your Rust binary as a subprocess:
1. PHP receives HTTP request
2. Serializes request context to JSON (method, URI, headers, body, query params)
3. Spawns Rust binary via proc_open
4. Binary reads JSON from stdin, processes request, writes response to stdout
5. PHP captures output and returns to client
Static linking is critical so you don't depend on the host's glibc. Using musl target:
Verify it's fully static:
Then just upload via SFTP and chmod +x.
Rust side (simplified):
Database gotcha:
Shared hosting usually blocks TCP connections to MySQL. Use Unix sockets:
Find your socket path via phpinfo().
Trade-offs:
Pros: actual memory safety, minimal memory footprint, no server maintenance, cheap hosting, just upload via SFTP
Cons: process spawn overhead per request, no persistent state between requests, two codebases, requires cross-compilation, binaries run with your account's full permissions (no additional sandboxing)
Security considerations:
Your binary runs with the same permissions as PHP scripts. Not sandboxed. All the usual rules apply: validate input rigorously, don't expose to untrusted users, sanitize file paths. The security model is essentially identical to running PHP.
Why this works:
You get Rust's memory safety guarantees and zero-cost abstractions while leveraging cheap shared hosting infrastructure. Not optimal for high-traffic production systems, but solid for side projects, low-traffic sites, and learning purposes. For serious production workloads you probably still want proper VPS or containerized deployment.
Ultimately though, the borrow checker doesn't care that it's being spawned by PHP.
Running Rust on shared hosting via PHP wrapper (hear me out)
https://www.reddit.com/r/rust/comments/1o9w36k/running_rust_on_shared_hosting_via_php_wrapper/
I wanted actual memory safety and compile-time guarantees, but I'm also practical about infrastructure. Didn't feel like paying for VPS hosting, managing security patches, configuring databases, setting up backups, and generally babysitting servers when shared hosting is under $10/month and handles all that.
Problem: how do you run Rust on shared hosting that only officially supports PHP?
A compromise: use PHP as a thin CGI-style wrapper that spawns your Rust binary as a subprocess:
1. PHP receives HTTP request
2. Serializes request context to JSON (method, URI, headers, body, query params)
3. Spawns Rust binary via proc_open
4. Binary reads JSON from stdin, processes request, writes response to stdout
5. PHP captures output and returns to client
Static linking is critical so you don't depend on the host's glibc. Using musl target:
rustup target add x86_64-unknown-linux-musl cargo build --release --target x86_64-unknown-linux-musl
Verify it's fully static:
ldd target/x86_64-unknown-linux-musl/release/myapp
Then just upload via SFTP and chmod +x.
Rust side (simplified):
use serde::{Deserialize, Serialize}; use std::io::{self, Read};
#[derive(Deserialize)]
struct Context { method: String, uri: String, headers: HashMap<String, String>, body: String, }
#[derive(Serialize)]
struct Response { data: serde_json::Value, }
fn main() -> Result<(), Box<dyn std::error::Error>> { let mut input = String::new(); io::stdin().read_to_string(&mut input)?;
let ctx: Context = serde_json::from_str(&input)?;
let result = handle_request(ctx)?;
println!("Content-Type: application/json\n");
println!("{}", serde_json::to_string(&result)?);
Ok(())
}Database gotcha:
Shared hosting usually blocks TCP connections to MySQL. Use Unix sockets:
// Won't work: let url = "mysql://user:pass@localhost:3306/db";
// Will work: let url = "mysql://user:pass@localhost/db?socket=/var/run/mysqld/mysqld.sock";
Find your socket path via phpinfo().
Trade-offs:
Pros: actual memory safety, minimal memory footprint, no server maintenance, cheap hosting, just upload via SFTP
Cons: process spawn overhead per request, no persistent state between requests, two codebases, requires cross-compilation, binaries run with your account's full permissions (no additional sandboxing)
Security considerations:
Your binary runs with the same permissions as PHP scripts. Not sandboxed. All the usual rules apply: validate input rigorously, don't expose to untrusted users, sanitize file paths. The security model is essentially identical to running PHP.
Why this works:
You get Rust's memory safety guarantees and zero-cost abstractions while leveraging cheap shared hosting infrastructure. Not optimal for high-traffic production systems, but solid for side projects, low-traffic sites, and learning purposes. For serious production workloads you probably still want proper VPS or containerized deployment.
Ultimately though, the borrow checker doesn't care that it's being spawned by PHP.
🤪27🤡21🔥9💊9❤🔥2🙈2😁1🐳1
ФСБ потребовала от банков хранить переписку с клиентами
https://www.banki.ru/news/lenta/?id=11018892
ФСБ потребовала от банков установить системы для хранения переписки c клиентами в приложениях, узнал РБК. Соответствующие письма были направлены крупным кредитным организациям, рассказали источники издания. В самих банках от комментариев отказались.
Кредитные организации попадают под статус организаторов распространения информации (ОРИ), если соответствуют ряду критериев. Например, если они обеспечивают работу интернет-сайтов и мобильных приложений, через которые сотрудники и пользователи могут обмениваться сообщениями.
В соответствии с законом, ОРИ должны устанавливать у себя системы оперативно-разыскных мероприятий (СОРМ), хранить переписки, голосовые сообщения и видеозаписи из приложений и предъявлять их правоохранительным органам по запросу. Сейчас срок хранения данных о пользователях составляет один год, а с 2026 года увеличится до трех лет.
Банки также должны будут разработать программу взаимодействия с ФСБ, назначить ответственного сотрудника и установить оборудование с возможностью удаленного доступа.
По мнению экспертов, нововведение ожидаемо для рынка, поскольку предусмотрено законом. С реализацией проблем возникнуть не должно, уверены производители оборудования СОРМ.
https://www.banki.ru/news/lenta/?id=11018892
ФСБ потребовала от банков установить системы для хранения переписки c клиентами в приложениях, узнал РБК. Соответствующие письма были направлены крупным кредитным организациям, рассказали источники издания. В самих банках от комментариев отказались.
Кредитные организации попадают под статус организаторов распространения информации (ОРИ), если соответствуют ряду критериев. Например, если они обеспечивают работу интернет-сайтов и мобильных приложений, через которые сотрудники и пользователи могут обмениваться сообщениями.
В соответствии с законом, ОРИ должны устанавливать у себя системы оперативно-разыскных мероприятий (СОРМ), хранить переписки, голосовые сообщения и видеозаписи из приложений и предъявлять их правоохранительным органам по запросу. Сейчас срок хранения данных о пользователях составляет один год, а с 2026 года увеличится до трех лет.
Банки также должны будут разработать программу взаимодействия с ФСБ, назначить ответственного сотрудника и установить оборудование с возможностью удаленного доступа.
По мнению экспертов, нововведение ожидаемо для рынка, поскольку предусмотрено законом. С реализацией проблем возникнуть не должно, уверены производители оборудования СОРМ.
💊31👏10👍6😁5🤡5👎4🥴4🎃2
Четверг, а значит время проектов от подписчиков! 🌝
Тем, кто пропустил, что такое четверговые проекты от подписчиков, можно прочитать тут - https://xn--r1a.website/tech_b0lt_Genona/4983
Слово автору @ozeranskii
---
Решал конкретно свою задачу и в итоге решил, что это можно выкатить в опенсорс.
Мне нужно было задебажить запросы к удаленному API по перформансу - не просто увидеть "запрос занял 800 мс", а получить реальную картину: какие этапы есть у запроса, сколько времени тратится на каждый шаг (DNS, коннект, TLS, ожидание ответа и т д), что именно тормозит. Так и появился httptap.
🔗 Репозиторий: https://github.com/ozeranskii/httptap
PyPi - https://pypi.org/project/httptap/
Почему не httpstat
Когда искал готовые решения, нашел два инструмента:
- https://github.com/reorx/httpstat (Python)
- https://github.com/davecheney/httpstat (Go)
И вот какие там ограничения.
httpstat (Python):
- это по сути обертка над curl - без curl не работает
- проект давно не развивается
- по набору фичей тоже получается бедней, чем у меня
httpstat (Go):
- нативная реализация без curl. Удобно
- но это скорее удобный curl -v с подсветкой
- нет глубокого TLS аудита
- нет JSON экспорта для автоматизации и регрессионных проверок
Короче, ни одно решение не закрывало мои сценарии полностью, плюс захотел свое ,как мне кажется, более интересное.
Что делает httptap по другому
🎯 Чистая Python экосистема
- без внешнего curl и системных зависимостей
- минимум зависимостей: httpx, dnspython, rich
- работает на macOS, Linux, Windows
- можно использовать как CLI и можно использовать как библиотеку внутри питоновского кода
📊 Продвинутый трейсинг
- точные замеры через httpcore trace hooks, а не парсинг вывода curl
- полная цепочка редиректов с таймингами на каждом хопе
- честно помечает метрики как is_estimated, если где то пришлось сделать фолбек
- это не просто "запрос занял N мс", это поэтапный waterfall
🔒 Глубокая TLS инспекция
- версия протокола и cipher suite
- common name сертификата
- сколько дней осталось до истечения (cert_days_left)
- отдельный TLS probe чтобы это измерить и показать отдельно
🌐 Работа с сетью
- определяет IPv4/IPv6
- показывает какой IP был на каждом шаге редиректа
💾 Удобные форматы вывода
- rich waterfall - человекочитаемая табличка с этапами
- compact - однострочник для логов
- metrics-only - только цифры, чтобы парсить в скриптах или в CI
- полный JSON экспорт со всеми метаданными по каждому шагу, включая тайминги DNS/TCP/TLS/TTFB/Transfer, хедеры, сертификаты, summary
- максирование чувствительных заголовков при экспорте в JSON
🔧 Расширяемость
- четкие интерфейсы для DNS резолвера, TLS инспектора, визуализации
- можно подменить компонент и встроить httptap в свою отладку
- это не тупо консолька, это реально пригодно как часть пайплайна
Как это устроено внутри
В отличие от httpstat (python), который полагается на curl, httptap делает все сам внутри Python:
- использует httpx/httpcore и низкоуровневые trace hooks, то есть мы реально видим поведение клиента на уровне сокетов
- лезет в TLS руками и вытаскивает параметры шифрования и сертификат
- полностью контролирует измерения, а не просто печатает чужую статистику
Для чего это вообще
- performance troubleshooting - где именно тормозит API
- regression analysis - сравнение базовой метрики и текущей
- tls audit - что там с сертификатом и шифром
- network diagnostics - DNS, IPv4 vs IPv6, латентность соединения
- redirect chain analysis - как реально ходит запрос до финальной точки
Если вы отлаживаете API и вам нужно не просто "оно отвечает медленно", а понять почему - забирайте, пишите фидбек и контрибутьте. 🚀
---
Слово автору @ozeranskii
---
Решал конкретно свою задачу и в итоге решил, что это можно выкатить в опенсорс.
Мне нужно было задебажить запросы к удаленному API по перформансу - не просто увидеть "запрос занял 800 мс", а получить реальную картину: какие этапы есть у запроса, сколько времени тратится на каждый шаг (DNS, коннект, TLS, ожидание ответа и т д), что именно тормозит. Так и появился httptap.
🔗 Репозиторий: https://github.com/ozeranskii/httptap
PyPi - https://pypi.org/project/httptap/
Почему не httpstat
Когда искал готовые решения, нашел два инструмента:
- https://github.com/reorx/httpstat (Python)
- https://github.com/davecheney/httpstat (Go)
И вот какие там ограничения.
httpstat (Python):
- это по сути обертка над curl - без curl не работает
- проект давно не развивается
- по набору фичей тоже получается бедней, чем у меня
httpstat (Go):
- нативная реализация без curl. Удобно
- но это скорее удобный curl -v с подсветкой
- нет глубокого TLS аудита
- нет JSON экспорта для автоматизации и регрессионных проверок
Короче, ни одно решение не закрывало мои сценарии полностью, плюс захотел свое ,как мне кажется, более интересное.
Что делает httptap по другому
🎯 Чистая Python экосистема
- без внешнего curl и системных зависимостей
- минимум зависимостей: httpx, dnspython, rich
- работает на macOS, Linux, Windows
- можно использовать как CLI и можно использовать как библиотеку внутри питоновского кода
📊 Продвинутый трейсинг
- точные замеры через httpcore trace hooks, а не парсинг вывода curl
- полная цепочка редиректов с таймингами на каждом хопе
- честно помечает метрики как is_estimated, если где то пришлось сделать фолбек
- это не просто "запрос занял N мс", это поэтапный waterfall
🔒 Глубокая TLS инспекция
- версия протокола и cipher suite
- common name сертификата
- сколько дней осталось до истечения (cert_days_left)
- отдельный TLS probe чтобы это измерить и показать отдельно
🌐 Работа с сетью
- определяет IPv4/IPv6
- показывает какой IP был на каждом шаге редиректа
💾 Удобные форматы вывода
- rich waterfall - человекочитаемая табличка с этапами
- compact - однострочник для логов
- metrics-only - только цифры, чтобы парсить в скриптах или в CI
- полный JSON экспорт со всеми метаданными по каждому шагу, включая тайминги DNS/TCP/TLS/TTFB/Transfer, хедеры, сертификаты, summary
- максирование чувствительных заголовков при экспорте в JSON
🔧 Расширяемость
- четкие интерфейсы для DNS резолвера, TLS инспектора, визуализации
- можно подменить компонент и встроить httptap в свою отладку
- это не тупо консолька, это реально пригодно как часть пайплайна
Как это устроено внутри
В отличие от httpstat (python), который полагается на curl, httptap делает все сам внутри Python:
- использует httpx/httpcore и низкоуровневые trace hooks, то есть мы реально видим поведение клиента на уровне сокетов
- лезет в TLS руками и вытаскивает параметры шифрования и сертификат
- полностью контролирует измерения, а не просто печатает чужую статистику
Для чего это вообще
- performance troubleshooting - где именно тормозит API
- regression analysis - сравнение базовой метрики и текущей
- tls audit - что там с сертификатом и шифром
- network diagnostics - DNS, IPv4 vs IPv6, латентность соединения
- redirect chain analysis - как реально ходит запрос до финальной точки
Если вы отлаживаете API и вам нужно не просто "оно отвечает медленно", а понять почему - забирайте, пишите фидбек и контрибутьте. 🚀
---
🔥60❤9👍6
Telegram в России тестирует отправку SMS-кодов через пользователей
https://kod.ru/telegram-p2pl-rus
Telegram начал поэтапно разворачивать в РФ функцию отправки SMS-кодов за счёт пользователей.
Речь о возможности воспользоваться программой Peer-to-Peer Login Program (Программа одноранговой авторизации), которую Telegram впервые запустил лишь в нескольких странах ещё в начале 2024 года.
- Суть функции в следующем: пользователь разрешает Telegram отправлять со своего номера телефона до 100 SMS в месяц — это SMS-сообщения с кодами авторизаций, которые получают другие пользователи.
Важный момент: функция фактически предлагается сейчас только пользователям с Android-смартфонами, так как iOS — закрытая система и позволять пользователю быть «ретранслятором» сообщений труднее.
- Как правило, подписку Telegram Premium отправляют при достижении минимального количества отправленных сообщений с использованием тарифного плана номера телефона пользователя.
- При этом подписка в виде подарочной ссылки, поэтому её можно подарить кому-то другому, например, другу или родственнику.
- Пользователи в любой момент могут отказаться от участия в Программе одноранговой авторизации.
«Код Дурова» убедился, что функция пока доступна только 0,01% пользователей и её массового распространения в России пока нет, при этом принудительно пользоваться ей Telegram заставлять не будет.
И сразу в эту же тему
390 миллиардов сообщений отправят в 2025 году компании в мессенджеры, продолжая диверсифицировать каналы доставки своих сообщений пользователям. В первую очередь это касается A2P-коммуникации, проще говоря – отправки одноразовых паролей и PIN-кодов для доступа в сервисы и на сайты, а также для подтверждения действий пользователя. Рост к 2027 году составит почти 44%. Главный драйвер – отказ от использования SMS и агрессивная ценовая политика WhatsApp, использование которого дает компаниям экономию от 50% до 90% по сравнению с использованием традиционных операторских SMS.
https://xn--r1a.website/contentreview/11030
https://kod.ru/telegram-p2pl-rus
Telegram начал поэтапно разворачивать в РФ функцию отправки SMS-кодов за счёт пользователей.
Речь о возможности воспользоваться программой Peer-to-Peer Login Program (Программа одноранговой авторизации), которую Telegram впервые запустил лишь в нескольких странах ещё в начале 2024 года.
- Суть функции в следующем: пользователь разрешает Telegram отправлять со своего номера телефона до 100 SMS в месяц — это SMS-сообщения с кодами авторизаций, которые получают другие пользователи.
Важный момент: функция фактически предлагается сейчас только пользователям с Android-смартфонами, так как iOS — закрытая система и позволять пользователю быть «ретранслятором» сообщений труднее.
- Как правило, подписку Telegram Premium отправляют при достижении минимального количества отправленных сообщений с использованием тарифного плана номера телефона пользователя.
- При этом подписка в виде подарочной ссылки, поэтому её можно подарить кому-то другому, например, другу или родственнику.
- Пользователи в любой момент могут отказаться от участия в Программе одноранговой авторизации.
«Код Дурова» убедился, что функция пока доступна только 0,01% пользователей и её массового распространения в России пока нет, при этом принудительно пользоваться ей Telegram заставлять не будет.
И сразу в эту же тему
390 миллиардов сообщений отправят в 2025 году компании в мессенджеры, продолжая диверсифицировать каналы доставки своих сообщений пользователям. В первую очередь это касается A2P-коммуникации, проще говоря – отправки одноразовых паролей и PIN-кодов для доступа в сервисы и на сайты, а также для подтверждения действий пользователя. Рост к 2027 году составит почти 44%. Главный драйвер – отказ от использования SMS и агрессивная ценовая политика WhatsApp, использование которого дает компаниям экономию от 50% до 90% по сравнению с использованием традиционных операторских SMS.
https://xn--r1a.website/contentreview/11030
👍14👎10🥴7🤔3❤2😁1🖕1
Forwarded from Кадровый Болт Генона
- Не будет пузыря?
- Нет.
- Твёрдо и чётко?
- Твердо и четко.
Powell says that, unlike the dotcom boom, AI spending isn’t a bubble: ‘I won’t go into particular names, but they actually have earnings’
https://fortune.com/2025/10/29/powell-says-ai-is-not-a-bubble-unlike-dot-com-federal-reserve-interest-rates/
Federal Reserve Chair Jerome Powell doesn’t think the AI boom is another dotcom bubble. In fact, he made that distinction explicit on Wednesday, arguing that the current wave of artificial intelligence investment is grounded in profit-making firms and real economic activity rather than speculative exuberance.
“I won’t go into particular names,” Powell told reporters after the Fed’s policy meeting, “but they actually have earnings.
“These companies … actually have business models and profits and that kind of thing. So it’s really a different thing” from the dotcom bubble, he added.
- Нет.
- Твёрдо и чётко?
- Твердо и четко.
Powell says that, unlike the dotcom boom, AI spending isn’t a bubble: ‘I won’t go into particular names, but they actually have earnings’
https://fortune.com/2025/10/29/powell-says-ai-is-not-a-bubble-unlike-dot-com-federal-reserve-interest-rates/
Federal Reserve Chair Jerome Powell doesn’t think the AI boom is another dotcom bubble. In fact, he made that distinction explicit on Wednesday, arguing that the current wave of artificial intelligence investment is grounded in profit-making firms and real economic activity rather than speculative exuberance.
“I won’t go into particular names,” Powell told reporters after the Fed’s policy meeting, “but they actually have earnings.
“These companies … actually have business models and profits and that kind of thing. So it’s really a different thing” from the dotcom bubble, he added.
😁32🤔7🥴2❤1🔥1
Технологический Болт Генона
Telegram в России тестирует отправку SMS-кодов через пользователей https://kod.ru/telegram-p2pl-rus Telegram начал поэтапно разворачивать в РФ функцию отправки SMS-кодов за счёт пользователей. Речь о возможности воспользоваться программой Peer-to-Peer Login…
Буквально три часа назад написал про СМС и Telegram
https://xn--r1a.website/tech_b0lt_Genona/5825
и вот уже объяснение этого движа
От российских операторов потребовали прекратить передачу SMS и звонков новым пользователям со стороны подрядчиков Telegram и WhatsApp* при попытке их регистрации, сообщил «Коду Дурова» источник на телеком-рынке. Операторы начали выполнять указание — и это затронет в том числе уже зарегистрированных пользователей
Эксклюзив: в России ограничили регистрацию пользователей в Telegram и WhatsApp*
https://kod.ru/telegram-i-whatsapp-bez-sms
Я уже говорил, что принудительно привязывать что-либо к номерам мобильных телефонов максимально тупорылая идея
https://xn--r1a.website/tech_b0lt_Genona/4953
https://xn--r1a.website/tech_b0lt_Genona/5082
https://xn--r1a.website/tech_b0lt_Genona/5825
и вот уже объяснение этого движа
От российских операторов потребовали прекратить передачу SMS и звонков новым пользователям со стороны подрядчиков Telegram и WhatsApp* при попытке их регистрации, сообщил «Коду Дурова» источник на телеком-рынке. Операторы начали выполнять указание — и это затронет в том числе уже зарегистрированных пользователей
Эксклюзив: в России ограничили регистрацию пользователей в Telegram и WhatsApp*
https://kod.ru/telegram-i-whatsapp-bez-sms
Я уже говорил, что принудительно привязывать что-либо к номерам мобильных телефонов максимально тупорылая идея
https://xn--r1a.website/tech_b0lt_Genona/4953
https://xn--r1a.website/tech_b0lt_Genona/5082
🔥23🤬13🤔2😁1🤯1
Серия постов про то как наше железо (и не только) привязывают всё больше к облакам, подпискам и прочей шляпе
https://xn--r1a.website/tech_b0lt_Genona/5163
https://xn--r1a.website/tech_b0lt_Genona/5166
https://xn--r1a.website/tech_b0lt_Genona/5195
https://xn--r1a.website/tech_b0lt_Genona/5197
https://xn--r1a.website/tech_b0lt_Genona/5657
https://xn--r1a.website/tech_b0lt_Genona/5810
Умные матрасы Eight Sleep перестали работать из-за сбоя AWS: в них нет офлайн-режима
https://habr.com/ru/news/958652/
> В постах на неофициальном сабреддите Eight Sleep многие пользователи впервые узнали, что их матрасы сильно зависят от стабильного подключения и ошибок на серверах производителя. Один из комментаторов отметил, что его флагманская модель за 5 тыс. долларов должна работать всегда.
Лучше поздно, чем никогда
https://xn--r1a.website/tech_b0lt_Genona/5163
https://xn--r1a.website/tech_b0lt_Genona/5166
https://xn--r1a.website/tech_b0lt_Genona/5195
https://xn--r1a.website/tech_b0lt_Genona/5197
https://xn--r1a.website/tech_b0lt_Genona/5657
https://xn--r1a.website/tech_b0lt_Genona/5810
Умные матрасы Eight Sleep перестали работать из-за сбоя AWS: в них нет офлайн-режима
https://habr.com/ru/news/958652/
> В постах на неофициальном сабреддите Eight Sleep многие пользователи впервые узнали, что их матрасы сильно зависят от стабильного подключения и ошибок на серверах производителя. Один из комментаторов отметил, что его флагманская модель за 5 тыс. долларов должна работать всегда.
Лучше поздно, чем никогда
😁33❤7🔥5
Forwarded from Активация
Для тех, кто в теме, уже давно не секрет, что обновление библиотеки OpenSSL до версии 3.x очень болезненное и проблемное: сломы обратной совместимости без явной на то причины, нередкие просадки производительности.
https://www.haproxy.com/blog/state-of-ssl-stacks
В этом году разработчики HAProxy сравнили производительность различных TLS-бэкендов: OpenSSL 1.1.1, несколько версий OpenSSL 3.x, WolfSSL и Amazon aws-lc (форк Google BoringSSL (форк OpenSSL 1.x)).
Помимо всего прочего, в посте представлен некоторый исторический контекст, который затрагивает вопросы адекватности и компетентности нынешних разработчиков OpenSSL, которые закономерно наносят вред качеству и репутации проекта.
TL;DR: OpenSSL — кринж, aws-lc и BoringSSL — база
https://www.haproxy.com/blog/state-of-ssl-stacks
В этом году разработчики HAProxy сравнили производительность различных TLS-бэкендов: OpenSSL 1.1.1, несколько версий OpenSSL 3.x, WolfSSL и Amazon aws-lc (форк Google BoringSSL (форк OpenSSL 1.x)).
Помимо всего прочего, в посте представлен некоторый исторический контекст, который затрагивает вопросы адекватности и компетентности нынешних разработчиков OpenSSL, которые закономерно наносят вред качеству и репутации проекта.
TL;DR: OpenSSL — кринж, aws-lc и BoringSSL — база
HAProxy Technologies
The state of SSL stacks
The SSL landscape has shifted dramatically. In this paper, we examine OpenSSL 3.x, BoringSSL, LibreSSL, WolfSSL, and AWS-LC with HAProxy.
😱12💯2❤1👍1
Больше никакой латиницы. Россияне перекроили популярнейший язык программирования, чтобы писать программы на русском
https://www.cnews.ru/news/top/2025-10-30_bolshe_nikakoj_latinitsy
> По словам кандидата педагогических наук, доцента кафедры «Информатика и методика обучения информатике и математике» Андрея Дикова, все это «облегчает освоение программирования и снимает языковой барьер».
Когда устал от англоязычного написания своей фамилии и решил бороться радикально с английским языком во всех его проявлениях
https://www.cnews.ru/news/top/2025-10-30_bolshe_nikakoj_latinitsy
> По словам кандидата педагогических наук, доцента кафедры «Информатика и методика обучения информатике и математике» Андрея Дикова, все это «облегчает освоение программирования и снимает языковой барьер».
Когда устал от англоязычного написания своей фамилии и решил бороться радикально с английским языком во всех его проявлениях
🤡92😁39💊19🤣7👍3🖕3❤1
Аня, она же @theyforcedme, задефейсила Башорг. Не забывайте оплачивать свои ресурсы 🌝
zoi: ты как, сцуко, башорг задефейсила?
аня: вы, уважаемый Зой, домен продлить забыли!
zoi: врёшь, продлили же
аня: ну bash.org.ru продлили, а домен, указанный в NS-записях оплатить забыли
zoi: так и что же теперь?
аня: да просто напишите на vernisuka[at]bash.org.ru или vernisuka[at]chatty.fish, и я всё верну
zoi: пиздец ты скучная, хоть бы гоатсе повесила
аня: я хотела вернуть максимально аутентичный баш, поэтому повесила выдуманный диалог
https://bash.org.ru/
via @dotrubic_thoughts
zoi: ты как, сцуко, башорг задефейсила?
аня: вы, уважаемый Зой, домен продлить забыли!
zoi: врёшь, продлили же
аня: ну bash.org.ru продлили, а домен, указанный в NS-записях оплатить забыли
zoi: так и что же теперь?
аня: да просто напишите на vernisuka[at]bash.org.ru или vernisuka[at]chatty.fish, и я всё верну
zoi: пиздец ты скучная, хоть бы гоатсе повесила
аня: я хотела вернуть максимально аутентичный баш, поэтому повесила выдуманный диалог
https://bash.org.ru/
via @dotrubic_thoughts
🥰47😁34🥱12❤3👍3🤡1🌚1
В чате FreeBSD 1!!11! (@freebsd_ru) увидел чудесное про Debian (точнее про APT)
Hard Rust requirements from May onward
https://lists.debian.org/debian-devel/2025/10/msg00285.html
I plan to introduce hard Rust dependencies and Rust code into APT, no earlier than May 2026. This extends at first to the Rust compiler and standard library, and the Sequoia ecosystem.
In particular, our code to parse .deb, .ar, .tar, and the HTTP signature verification code would strongly benefit from memory safe languages and a stronger approach to unit testing.
If you maintain a port without a working Rust toolchain, please ensure it has one within the next 6 months, or sunset the port.
It's important for the project as whole to be able to move forward and rely on modern tools and technologies and not be held back by trying to shoehorn modern software on retro computing devices.
И это не просто сообщение не пойми от кого, это сообщение от мэйнтейнера APT (и вообще разработчика Debian с 2008 года) - Julian Andres Klode
https://www.debian.org/vote/2025/platforms/jak
https://github.com/julian-klode
Не все оказались рады такому подходу
> I find this particular wording rather unpleasant and very unusual to what I'm used to from Debian in the past. I have to admit that I'm a bit disappointed that such a confrontational approach has been chosen.
https://lists.debian.org/debian-devel/2025/10/msg00286.html
Hard Rust requirements from May onward
https://lists.debian.org/debian-devel/2025/10/msg00285.html
I plan to introduce hard Rust dependencies and Rust code into APT, no earlier than May 2026. This extends at first to the Rust compiler and standard library, and the Sequoia ecosystem.
In particular, our code to parse .deb, .ar, .tar, and the HTTP signature verification code would strongly benefit from memory safe languages and a stronger approach to unit testing.
If you maintain a port without a working Rust toolchain, please ensure it has one within the next 6 months, or sunset the port.
It's important for the project as whole to be able to move forward and rely on modern tools and technologies and not be held back by trying to shoehorn modern software on retro computing devices.
И это не просто сообщение не пойми от кого, это сообщение от мэйнтейнера APT (и вообще разработчика Debian с 2008 года) - Julian Andres Klode
https://www.debian.org/vote/2025/platforms/jak
https://github.com/julian-klode
Не все оказались рады такому подходу
> I find this particular wording rather unpleasant and very unusual to what I'm used to from Debian in the past. I have to admit that I'm a bit disappointed that such a confrontational approach has been chosen.
https://lists.debian.org/debian-devel/2025/10/msg00286.html
😁7❤3🔥3🤔3👎2👍1
Блог* рассказал чего там нового в Rust 1.91.0 завезли
https://xn--r1a.website/dereference_pointer_there/10329
Я, как человек у которого несколько раз заканчивалось место на разделе во время сборки проектов на Rust, рад больше всего новому параметру
> У cargo теперь есть настройка (https://github.com/rust-lang/cargo/pull/15833) для указывания того, куда складывать промежуточные артефакты компиляции.
> The directory where intermediate build artifacts will be stored. Intermediate artifacts are produced by Rustc/Cargo during the build process.
https://doc.rust-lang.org/cargo/reference/config.html#buildbuild-dir
https://xn--r1a.website/dereference_pointer_there/10329
Я, как человек у которого несколько раз заканчивалось место на разделе во время сборки проектов на Rust, рад больше всего новому параметру
> У cargo теперь есть настройка (https://github.com/rust-lang/cargo/pull/15833) для указывания того, куда складывать промежуточные артефакты компиляции.
CARGO_BUILD_BUILD_DIR> The directory where intermediate build artifacts will be stored. Intermediate artifacts are produced by Rustc/Cargo during the build process.
https://doc.rust-lang.org/cargo/reference/config.html#buildbuild-dir
👍14🤡6❤1
Мощно ворвались
Linux gamers on Steam finally cross over the 3% mark
https://www.gamingonlinux.com/2025/11/linux-gamers-on-steam-finally-cross-over-the-3-mark/
Linux gamers on Steam finally cross over the 3% mark
https://www.gamingonlinux.com/2025/11/linux-gamers-on-steam-finally-cross-over-the-3-mark/
😁54🔥36🥰8🤡3
no-code - пакет для скрытия кода на языке Python
https://www.opennet.ru/opennews/art.shtml?num=64148
Опубликован инструментарий no-code, позволяющий скрывать код в скриптах на языке Python. Преобразованный скрипт выглядит в редакторах кода как одна строка "# coding: no" без какого-либо иного содержимого, но при этом продолжает запускаться и выполнять прежние функции.
Метод скрытия основан на кодировании содержимого при помощи двух Unicode-символов, имеющих нулевую длину (не приводящие к отступу пробелы 0x200B и 0x200C). Один невидимый символ отождествляется с "0", а второй с "1".
Строка "# coding: no" в скрипте со скрытым кодом указывает на использование в файле кодировки с именем "no" - ключевое слово "coding:" применяется в Python для задания кодировки исходного кода. Для запуска преобразованного скрипта требуется установка Python-пакета "no_code", который включает файл "no.pth", вызываемый при использовании кодировки c именем "no" для декодирования перед обработкой парсером. Для скрытия не всего файла, а отдельных порций с кодом, проектом предоставляются функции no_code.nothing() и no_code.something().
GutHub
https://github.com/lemonyte/no-code
Из похожих проектов можно отметить Perl-модуль Acme::Bleach (https://metacpan.org/pod/Acme::Bleach), преобразующий код в представление из пробелов и табуляций, а также JavaScript-библиотеку INVISIBLE.js (https://aem1k.com/invisible/encoder/), позволяющую скрывать код через кодирование в символы с нулевой длиной.
https://www.opennet.ru/opennews/art.shtml?num=64148
Опубликован инструментарий no-code, позволяющий скрывать код в скриптах на языке Python. Преобразованный скрипт выглядит в редакторах кода как одна строка "# coding: no" без какого-либо иного содержимого, но при этом продолжает запускаться и выполнять прежние функции.
Метод скрытия основан на кодировании содержимого при помощи двух Unicode-символов, имеющих нулевую длину (не приводящие к отступу пробелы 0x200B и 0x200C). Один невидимый символ отождествляется с "0", а второй с "1".
Строка "# coding: no" в скрипте со скрытым кодом указывает на использование в файле кодировки с именем "no" - ключевое слово "coding:" применяется в Python для задания кодировки исходного кода. Для запуска преобразованного скрипта требуется установка Python-пакета "no_code", который включает файл "no.pth", вызываемый при использовании кодировки c именем "no" для декодирования перед обработкой парсером. Для скрытия не всего файла, а отдельных порций с кодом, проектом предоставляются функции no_code.nothing() и no_code.something().
$ cat some_code.py
print("Hello, world!")
$ no_code some_code.py > no_code.py
$ cat no_code.py
# coding: no
$ python no_code.py
Hello, world!
$ yes_code no_code.py > some_code.py
$ cat some_code.py
print("Hello, world!")
GutHub
https://github.com/lemonyte/no-code
Из похожих проектов можно отметить Perl-модуль Acme::Bleach (https://metacpan.org/pod/Acme::Bleach), преобразующий код в представление из пробелов и табуляций, а также JavaScript-библиотеку INVISIBLE.js (https://aem1k.com/invisible/encoder/), позволяющую скрывать код через кодирование в символы с нулевой длиной.
🔥25😁16❤2🤔2
В списке рассылки разработчиков ядра Linux опубликованы патчи с реализацией архитектуры "Wasm" для ядра Linux, позволяющей компилировать ядро в промежуточный код WebAssembly для последующего прямого выполнения в web-браузере без задействования эмуляторов. Кроме того, для ядра Linux проектом реализована возможность запускать исполняемые файлы в формате ".wasm" и подготовлен драйвер "web console" для симуляции работы с консолью в браузере. Также подготовлен инструментарий для упрощения сборки запускаемых в браузере системных окружений.
В качестве примера сформировано окружение на базе скомпилированных в WebAssembly набора утилит BusyBox и системной библиотеки musl. В качестве эмулятора терминала для работы с подобным окружением задействован Xterm.js.
Проект развивается уже около двух лет и на текущем этапе позволяет загружать ядро в браузерах и выполнять типовые программы. Работа ещё не завершена и порт имеет отдельные проблемы и ограничения. Например, ещё не реализована поддержка вызовов vfork и longjmp (к BusyBox применены патчи для работы без них), отсутствует возможность прерывания задач, недоступен MMU (ядро и процессы работают в одном адресном пространстве), невозможно изменение уже загруженного кода, наблюдается зависание консоли примерно через 5 минут из-за проблем с таймером. Отмечается, что имеющиеся ограничения преодолимы, но для некоторых из них требуется реализация в браузерах дополнительных расширений к WebAssembly. Подобные расширения предложено реализовать для MMU и приостановки потоков.
Невозможность приостановки выполнения потоков в WebAssembly не сочетается с работой планировщика задач в ядре, но многозадачность удалось реализовать обходным путём, через привязку каждого потока/задачи к своему виртуальному CPU, обрабатываемому в отдельном Web Worker. Таким способом удалось добиться параллельного выполнения процессов за счёт браузерного движка и ядра хостовой ОС без использования вытесняющей многозадачности и переключения задач в запускаемом в браузере ядре. Прерывания и сигналы при такой схеме полноценно не работают, а для доставки прерываний таймера и IPI (Inter-Processor Interrupt) задействован отдельный виртуальный CPU.
Область применения проекта выходит за рамки простого запуска Linux-окружений в браузерах. Например, порт может применяться для создания многоплатформенных WebAssembly программ, использующих специфичные для Linux системные вызовы. Реализация подобных системных вызовов может быть отдельно преобразована в WebAssembly и прикреплена к приложению, что позволит использовать его без привязки к системному ядру. Порт также будет полезен для организации изолированного выполнения приложений при помощи WASI (WebAssembly System Interface).
Представлен порт ядра Linux для WebAssembly, запускаемый в браузере
https://www.opennet.ru/opennews/art.shtml?num=64163
Оригинал
https://lore.kernel.org/lkml/618f3602-03aa-46a8-b2d4-3c9798c4cd2b@icemanor.se/
Сайт с демо - https://joelseverin.github.io/linux-wasm/
В качестве примера сформировано окружение на базе скомпилированных в WebAssembly набора утилит BusyBox и системной библиотеки musl. В качестве эмулятора терминала для работы с подобным окружением задействован Xterm.js.
Проект развивается уже около двух лет и на текущем этапе позволяет загружать ядро в браузерах и выполнять типовые программы. Работа ещё не завершена и порт имеет отдельные проблемы и ограничения. Например, ещё не реализована поддержка вызовов vfork и longjmp (к BusyBox применены патчи для работы без них), отсутствует возможность прерывания задач, недоступен MMU (ядро и процессы работают в одном адресном пространстве), невозможно изменение уже загруженного кода, наблюдается зависание консоли примерно через 5 минут из-за проблем с таймером. Отмечается, что имеющиеся ограничения преодолимы, но для некоторых из них требуется реализация в браузерах дополнительных расширений к WebAssembly. Подобные расширения предложено реализовать для MMU и приостановки потоков.
Невозможность приостановки выполнения потоков в WebAssembly не сочетается с работой планировщика задач в ядре, но многозадачность удалось реализовать обходным путём, через привязку каждого потока/задачи к своему виртуальному CPU, обрабатываемому в отдельном Web Worker. Таким способом удалось добиться параллельного выполнения процессов за счёт браузерного движка и ядра хостовой ОС без использования вытесняющей многозадачности и переключения задач в запускаемом в браузере ядре. Прерывания и сигналы при такой схеме полноценно не работают, а для доставки прерываний таймера и IPI (Inter-Processor Interrupt) задействован отдельный виртуальный CPU.
Область применения проекта выходит за рамки простого запуска Linux-окружений в браузерах. Например, порт может применяться для создания многоплатформенных WebAssembly программ, использующих специфичные для Linux системные вызовы. Реализация подобных системных вызовов может быть отдельно преобразована в WebAssembly и прикреплена к приложению, что позволит использовать его без привязки к системному ядру. Порт также будет полезен для организации изолированного выполнения приложений при помощи WASI (WebAssembly System Interface).
Представлен порт ядра Linux для WebAssembly, запускаемый в браузере
https://www.opennet.ru/opennews/art.shtml?num=64163
Оригинал
https://lore.kernel.org/lkml/618f3602-03aa-46a8-b2d4-3c9798c4cd2b@icemanor.se/
Сайт с демо - https://joelseverin.github.io/linux-wasm/
🔥30💊15🤪9❤4🌚3👎2
Объявляю этот вторник ностальгически конференцевым!
Первой идёт конференция ZeroNights 2025. Я на ней точно буду, так что пишите в личку @rusdacent или комментарии, если хотите пересечься.
Проходить она будет 26 ноября в Санкт-Петербурге (LOFT#7, Арсенальная набережная 1)
Вообще, я ZN искренне люблю, потому что это было первое крупное мероприятие, которое я помогал делать. Помимо предконференцевой подготовки площадки я волонтёрил и управлял волонтёрством в главном зале.
Особо внимательные смогут меня найти на одном из прикреплённых видео, а заодно и себя (я точно знаю что есть подписчики, которые были там 🌝)
Проводилась она в 2011 году в гостинице "Карелия" (точнее в пристройке где располагался клуб "Котовский") и конфа прошла настолько хорошо, что пристройку на следующий год снесли
https://kanoner.com/2012/08/01/54568/
Анонс ZN 0x01 был сделан на DCG 7812. Посмотреть его можно в архиве
https://xn--r1a.website/DCG7812_archive/167
В этом году программа уже частично сформирована и среди докладчиков будут
- ValdikSS, "От А до Бутрома: уязвимости в цепочке загрузки SoC Kirin и Balong"
Доклад расскажет об уязвимостях BootROM, присущих модемам всего семейства Huawei Balong за последние 12 лет (включая модели с поддержкой 5G), а также смартфонам на процессоре Kirin 980 (2019)
- Сергей Гордейчик, "Что в дашборде твоём? Я просто хотел посмотреть метрики"
Мониторинг — это не только про графики и тихие радости девопса, это про и про стремительный pwn. Мы покажем, как через Grafana и особенно в связке с Prometheus и прочими k8s можно получить доступ к чувствительным данным, обойти ограничения сети и начать внутреннюю разведку — даже без yet another CVE. Доклад основан на живом исследовании с практическими примерами и тулами.
- Павел Топорков, "Солевые приключения"
Как не уйти с пентеста несолоно хлебавши и найти ту самую рану в инфраструктуре, на которую можно насыпать соль. Рассказ о том, как устроен SaltStack, как его ломать, и в чём его соль
Сайт со всей программой - https://zeronights.ru/
Следить за обновлениями можно на канале - @zeronights
Первой идёт конференция ZeroNights 2025. Я на ней точно буду, так что пишите в личку @rusdacent или комментарии, если хотите пересечься.
Проходить она будет 26 ноября в Санкт-Петербурге (LOFT#7, Арсенальная набережная 1)
Вообще, я ZN искренне люблю, потому что это было первое крупное мероприятие, которое я помогал делать. Помимо предконференцевой подготовки площадки я волонтёрил и управлял волонтёрством в главном зале.
Особо внимательные смогут меня найти на одном из прикреплённых видео, а заодно и себя (я точно знаю что есть подписчики, которые были там 🌝)
Проводилась она в 2011 году в гостинице "Карелия" (точнее в пристройке где располагался клуб "Котовский") и конфа прошла настолько хорошо, что пристройку на следующий год снесли
https://kanoner.com/2012/08/01/54568/
Анонс ZN 0x01 был сделан на DCG 7812. Посмотреть его можно в архиве
https://xn--r1a.website/DCG7812_archive/167
В этом году программа уже частично сформирована и среди докладчиков будут
- ValdikSS, "От А до Бутрома: уязвимости в цепочке загрузки SoC Kirin и Balong"
Доклад расскажет об уязвимостях BootROM, присущих модемам всего семейства Huawei Balong за последние 12 лет (включая модели с поддержкой 5G), а также смартфонам на процессоре Kirin 980 (2019)
- Сергей Гордейчик, "Что в дашборде твоём? Я просто хотел посмотреть метрики"
Мониторинг — это не только про графики и тихие радости девопса, это про и про стремительный pwn. Мы покажем, как через Grafana и особенно в связке с Prometheus и прочими k8s можно получить доступ к чувствительным данным, обойти ограничения сети и начать внутреннюю разведку — даже без yet another CVE. Доклад основан на живом исследовании с практическими примерами и тулами.
- Павел Топорков, "Солевые приключения"
Как не уйти с пентеста несолоно хлебавши и найти ту самую рану в инфраструктуре, на которую можно насыпать соль. Рассказ о том, как устроен SaltStack, как его ломать, и в чём его соль
Сайт со всей программой - https://zeronights.ru/
Следить за обновлениями можно на канале - @zeronights
❤9👍3🔥2👎1👏1😁1
Вторым участником сегодняшнего ностальгически конференцевого дня является Big Monitoring Meetup 13
Проходить он будет 20 ноября в Москве (БЦ “Калибр”, ул. Годовикова, дом 9, стр. 17), мероприятие бесплатное
О нём я пишу уже не первый раз и регулярно посещал, когда проводился в Санкт-Петербурге.
Тоже поностальгируем 🌝
На BMM 4 я познакомился лично с Александром Валялкиным (@valyala) и мы потом в баре продолжительное время обсуждали относительно недавно появившуюся в open source, на тот момент, Victoria Metrics
Open-sourcing VictoriaMetrics
https://web.archive.org/web/20190702092906/https://blog.usejournal.com/open-sourcing-victoriametrics-f31e34485c2b
Вот Сашин доклад из 2019 года
Сравнение Thanos и VictoriaMetrics (Александр Валялкин, VictoriaMetrics)
https://www.youtube.com/watch?v=HyOXAdQE0Pk
А на BMM 5, точнее тоже после него, с Александром Зобниным из Grafana говорили о только-только релизнувшейся Grafana 8.
Релиз состоялся 8 июня 2021 года, а митап был 10 июня.
Ссылка на доклад из 2021
Что нового в Grafana 8 (Александр Зобнин, Grafana)
https://www.youtube.com/watch?v=xV3MATgtSWI
Для нынешнего BMM программа уже сформирована и среди докладчиков будут
- Максим Емельянов, Дмитрий Стюков "Дорожная карта внедрения SRE-практик в большой компании"
- Кирилл Борисов, "Эволюция культуры инцидент-менеджмента: от реактивного реагирования к проактивной инженерии надежности"
- Волотов Михаил, "DR большого кластера Zabbix — как сделать и с чем вы столкнетесь"
Сайт с программой и регистрацией - https://monhouse.tech/big-monitoring-meetup13/
Следить за обновлениями можно на канале - @monhousetech
Проходить он будет 20 ноября в Москве (БЦ “Калибр”, ул. Годовикова, дом 9, стр. 17), мероприятие бесплатное
О нём я пишу уже не первый раз и регулярно посещал, когда проводился в Санкт-Петербурге.
Тоже поностальгируем 🌝
На BMM 4 я познакомился лично с Александром Валялкиным (@valyala) и мы потом в баре продолжительное время обсуждали относительно недавно появившуюся в open source, на тот момент, Victoria Metrics
Open-sourcing VictoriaMetrics
https://web.archive.org/web/20190702092906/https://blog.usejournal.com/open-sourcing-victoriametrics-f31e34485c2b
Вот Сашин доклад из 2019 года
Сравнение Thanos и VictoriaMetrics (Александр Валялкин, VictoriaMetrics)
https://www.youtube.com/watch?v=HyOXAdQE0Pk
А на BMM 5, точнее тоже после него, с Александром Зобниным из Grafana говорили о только-только релизнувшейся Grafana 8.
Релиз состоялся 8 июня 2021 года, а митап был 10 июня.
Ссылка на доклад из 2021
Что нового в Grafana 8 (Александр Зобнин, Grafana)
https://www.youtube.com/watch?v=xV3MATgtSWI
Для нынешнего BMM программа уже сформирована и среди докладчиков будут
- Максим Емельянов, Дмитрий Стюков "Дорожная карта внедрения SRE-практик в большой компании"
- Кирилл Борисов, "Эволюция культуры инцидент-менеджмента: от реактивного реагирования к проактивной инженерии надежности"
- Волотов Михаил, "DR большого кластера Zabbix — как сделать и с чем вы столкнетесь"
Сайт с программой и регистрацией - https://monhouse.tech/big-monitoring-meetup13/
Следить за обновлениями можно на канале - @monhousetech
👍6❤3🔥1👏1
В 2023 году Microsoft открыл проект CHERIoT (Capability Hardware Extension to RISC-V for Internet of Things), который направлен на то что бы улучшить безопасность уже существующих проектов на C и C++.
First steps in CHERIoT Security Research
https://www.microsoft.com/en-us/msrc/blog/2023/02/first-steps-in-cheriot-security-research/
И вот наконец-то он дорос до версии 1.0
Программно-аппаратная платформа CHERIoT 1.0 для повышения безопасности кода на языке Си
https://www.opennet.ru/opennews/art.shtml?num=64180
> Защита реализуется через применение модифицированного компилятора, использующего расширенный набор процессорных инструкций (ISA) для обеспечения целостности указателей, контроля за границами при работе с памятью и предотвращения обращения к освобождённой памяти.
> Аппаратные компоненты CHERIoT оформлены в виде микроконтроллера на базе архитектуры RISC-V, реализующего защищённую процессорную архитектуру CHERI (Capability Hardware Extension to RISC-V) c моделью управляемого доступа к памяти на основе "capability" (каждая операция чтения и записи в память авторизуется). На базе предоставляемой в CHERIoT архитектуры набора команд (ISA) построена программная модель, гарантирующая безопасность работы с памятью на уровне отдельных объектов, предоставляющая защиту от обращения к уже освобождённой памяти и реализующая легковесную систему изоляции доступа к памяти.
> Указанная программная модель защиты напрямую отражается в языковую модель C/C++, что позволяет применять её для существующих приложений, для защиты которых требуется лишь перекомпиляция и запуск на оборудовании, поддерживающем ISA CHERIoT.
> Среди проблем, блокируемых при помощи CHERIoT:
- Выход за границы объекта в памяти;
- Подмена указателей (при применении CHERIoT все указатели должны порождаться от уже существующих указателей);
- Обращение к памяти после освобождения (любой доступ к памяти по некорректному указателю или указателю, ссылающемуся на освобождённый объект приводит при применении CHERIoT к генерации исключения).
Спецификация и эталонная формальная модель CHERIoT ISA
CHERIoT Specification and Sail model
https://github.com/CHERIoT-Platform/cheriot-sail/
Эталонная реализация 32-разрядного RISC-V CPU Ibex c поддержкой ISA CHERIoT, схемы прототипа CPU и описания аппаратных блоков на языке Verilog
cheriot-ibex is a RTL implementation of CHERIoT ISA based on LowRISC's Ibex core
https://github.com/microsoft/cheriot-ibex
На базе ядра CHERIoT Ibex готовятся к массовому производству чипы ICENI, поступление в продажу которых запланировано на следующий год
Модифицированный LLVM
Fork of LLVM adding CHERIoT, based on the CHERI LLVM fork
https://github.com/CHERIoT-Platform/llvm-project
Отдельно компанией Microsoft развивается микроконтроллер Kudu с поддержкой ISA CHERIoT
cheriot-kudu is a 32-bit dual-issue RISC-V MCU core with CHERIoT support
https://github.com/microsoft/cheriot-kudu
Эмулятор платформы на базе FPGA
https://github.com/microsoft/cheriot-safe
Docker-контейнер для разработчиков
https://github.com/CHERIoT-Platform/devcontainer
https://github.com/orgs/CHERIoT-Platform/packages/container/package/devcontainer
Прототип операционной системы реального времени
The RTOS components for the CHERIoT research platform
https://github.com/CHERIoT-Platform/cheriot-rtos
ЗЫ "Опёнок" не меняется 🌝
First steps in CHERIoT Security Research
https://www.microsoft.com/en-us/msrc/blog/2023/02/first-steps-in-cheriot-security-research/
И вот наконец-то он дорос до версии 1.0
Программно-аппаратная платформа CHERIoT 1.0 для повышения безопасности кода на языке Си
https://www.opennet.ru/opennews/art.shtml?num=64180
> Защита реализуется через применение модифицированного компилятора, использующего расширенный набор процессорных инструкций (ISA) для обеспечения целостности указателей, контроля за границами при работе с памятью и предотвращения обращения к освобождённой памяти.
> Аппаратные компоненты CHERIoT оформлены в виде микроконтроллера на базе архитектуры RISC-V, реализующего защищённую процессорную архитектуру CHERI (Capability Hardware Extension to RISC-V) c моделью управляемого доступа к памяти на основе "capability" (каждая операция чтения и записи в память авторизуется). На базе предоставляемой в CHERIoT архитектуры набора команд (ISA) построена программная модель, гарантирующая безопасность работы с памятью на уровне отдельных объектов, предоставляющая защиту от обращения к уже освобождённой памяти и реализующая легковесную систему изоляции доступа к памяти.
> Указанная программная модель защиты напрямую отражается в языковую модель C/C++, что позволяет применять её для существующих приложений, для защиты которых требуется лишь перекомпиляция и запуск на оборудовании, поддерживающем ISA CHERIoT.
> Среди проблем, блокируемых при помощи CHERIoT:
- Выход за границы объекта в памяти;
- Подмена указателей (при применении CHERIoT все указатели должны порождаться от уже существующих указателей);
- Обращение к памяти после освобождения (любой доступ к памяти по некорректному указателю или указателю, ссылающемуся на освобождённый объект приводит при применении CHERIoT к генерации исключения).
Спецификация и эталонная формальная модель CHERIoT ISA
CHERIoT Specification and Sail model
https://github.com/CHERIoT-Platform/cheriot-sail/
Эталонная реализация 32-разрядного RISC-V CPU Ibex c поддержкой ISA CHERIoT, схемы прототипа CPU и описания аппаратных блоков на языке Verilog
cheriot-ibex is a RTL implementation of CHERIoT ISA based on LowRISC's Ibex core
https://github.com/microsoft/cheriot-ibex
На базе ядра CHERIoT Ibex готовятся к массовому производству чипы ICENI, поступление в продажу которых запланировано на следующий год
Модифицированный LLVM
Fork of LLVM adding CHERIoT, based on the CHERI LLVM fork
https://github.com/CHERIoT-Platform/llvm-project
Отдельно компанией Microsoft развивается микроконтроллер Kudu с поддержкой ISA CHERIoT
cheriot-kudu is a 32-bit dual-issue RISC-V MCU core with CHERIoT support
https://github.com/microsoft/cheriot-kudu
Эмулятор платформы на базе FPGA
https://github.com/microsoft/cheriot-safe
Docker-контейнер для разработчиков
https://github.com/CHERIoT-Platform/devcontainer
https://github.com/orgs/CHERIoT-Platform/packages/container/package/devcontainer
Прототип операционной системы реального времени
The RTOS components for the CHERIoT research platform
https://github.com/CHERIoT-Platform/cheriot-rtos
ЗЫ "Опёнок" не меняется 🌝
❤5🤡2👍1🖕1😡1
Forwarded from commit -m "better"
After turning down $1.5 Million from the US Government as an act of DEI Virtue Signalling, the Python Software Foundation reveals that they have a $1.4 Million deficit, with only 6 months of money left.
https://youtu.be/cW7zeTMN6x4
YouTube
Python Software Foundation Running Out of Money
After turning down $1.5 Million from the US Government as an act of DEI Virtue Signalling, the Python Software Foundation reveals that they have a $1.4 Million deficit, with only 6 months of money left.
More from The Lunduke Journal:
https://lunduke.com/
More from The Lunduke Journal:
https://lunduke.com/
😁25🤣10🗿4👍2🤡2🌚2🤷♂1👏1🍌1