Pull to refresh
174
0.1
Alexander Pevzner @apevzner

Программист на все руки

Send message

Простой саботаж в мире ПО

Reading time6 min
Views35K

В кульминационный момент Второй мировой войны ЦРУ выпустило потрясающую книгу Simple Sabotage. В ней изложены различные способы, которыми диверсанты могут снижать продуктивность компании. Некоторые из этих советов не стареют, например, раздел «Общие помехи организациям и производству»:

1. Настаивайте на том, чтобы всё выполнялось через «каналы». Не допускайте того, чтобы для ускорения реализации решений выбирались кратчайшие пути.

2. Делайте «доклады». Говорите как можно чаще и пространнее. Иллюстрируйте свои «идеи» долгими историями из жизни и ссылайтесь на личный опыт. С готовностью делайте «патриотические» комментарии.

3. По возможности отправляйте все вопросы в комитеты для «более глубокого изучения и рассмотрения». Стремитесь делать комитеты как можно больше, не менее чем из пяти членов.

4. Как можно чаще поднимайте вопросы о несущественных проблемах.

5. Спорьте о чётких формулировках в общении, протоколах, резолюциях.

6. Возвращайтесь к темам, по которым было принято решение на последнем совещании, и пытайтесь повторно открыть вопрос о целесообразности этого решения.

7. Советуйте «быть аккуратными». Будьте «разумны» и подталкивайте других участников совещаний к «разумности», к тому, чтобы они избегали спешки, которая может в будущем вызвать неудобства или сложности.

8. Беспокойтесь о правильности каждого решения, поднимайте вопрос о том, будет ли рассматриваемое действие относиться к юрисдикции группы или оно может вызвать конфликт с политикой какого-то более высокого эшелона.

Меня всегда поражало, насколько хорошо эти советы прошли проверку временем.

Читать далее
Total votes 66: ↑64 and ↓2+86
Comments35

Вальяжной походкой по HTTP-заголовкам

Level of difficultyEasy
Reading time8 min
Views12K

Статья по основам HTTP‑заголовков, обеспечивающим безопасность, а также методы их использования. То есть будем разбираться какие заголовки безопасности существуют, какие директивы у них есть, какие методы использования возможны, и от чего мы вообще можем защититься, если будем их применять.

Разбора конфигов Web‑сервера не будет, будут только заголовки, их директивы и пояснения с примерами.

Давайте разбираться
Total votes 11: ↑8 and ↓3+8
Comments3

Выбор Минцифры: какие российские операционные системы получат господдержку

Level of difficultyEasy
Reading time7 min
Views25K

В марте 2022 года американская компания Microsoft объявила о постепенном сворачивании бизнеса в России. Легальное использование ее главного продукта — операционной системы Windows — было поставлено под угрозу. Интересно, что уже в апреле IT-гигант начал «мягко» возвращаться, в июне президент Microsoft Брэд Смит заявил о «планомерном уничтожении бизнеса в стране», а весной 2023 года многие отечественные корпоративные клиенты стали получать письма с предложениями продлить лицензию на Windows. Но еще задолго до череды этих непоследовательных действий поставщика российские госорганы стали плавно переходить на отечественные решения, потому что их на рынке достаточно. 

В ноябре 2022 года стало известно, что эксперты Минцифры выбрали 3 наиболее перспективные российские операционные системы, которые получат всестороннюю поддержку от государства — Astra Linux (ГК «Астра»), ОС «Альт» («БазАльт СПО») и «Ред ОС» («Ред Софт»). Сегодня мы поговорим об этих и других ОС из реестра ПО, а также оценим перспективы вытеснения Windows с российского рынка.

Читать далее
Total votes 14: ↑12 and ↓2+14
Comments20

WebSocket. Краткий экскурс в пентест ping-pong протокола

Level of difficultyMedium
Reading time12 min
Views15K

"Краткость - сестра таланта" - именно так сказал Антон Павлович Чехов, и теперь говорю я. Сегодня, завтра и до конца дней habr-а речь пойдет о WebSocket-ах: "Что это?", "Как работает?" и главное - "Как это взламывать?" (в целях этичного хакинга конечно). Начнем с простого и будем идти к более сложному, пробираясь через тернии к звёздам.

Приятного чтения
Total votes 19: ↑19 and ↓0+19
Comments0

Сертифицируй ЭТО: как получить сертификат ФСТЭК на новейшую версию ПО

Level of difficultyEasy
Reading time6 min
Views8K

Привет! Сегодня наш разговор пойдет про сертификацию ФСТЭК и про тонкости этого процесса. Этот пост — не про теорию, а про практику, которая позволила нам получить одобрение ФСТЭК на версию 2.32 (на тот момент являлась новейшей - сейчас есть еще 2.33). Мы расскажем о том, что все это значит для пользователей нашей BI-платформы (из первых уст), а также почему мы уверены, что сертификация — это правильная практика не только “для бумажки”, но и для реальной пользы дела. Надеюсь, многое из этого текста окажется полезно как разработчикам российского ПО, так и его пользователям. Все подробности процесса нашей сертификации, в том числе мучительные — под катом!

Читать далее
Total votes 19: ↑18 and ↓1+17
Comments12

Децентрализация и Web Proxy: как это работает в сети P2P-проекта Utopia

Reading time4 min
Views2.5K

Привет, Хабр! Сейчас, как никогда, актуальна тема анонимности, безопасности личных данных, а также возможности создания реально безопасной для участников системы для обмена информацией. Не так давно я рассказывал об P2P-проекте Utopia, а сегодня поговорим о новом сервисе от той же команды. Причем сервис является частью экосистемы Utopia.

Весной 2023 года команда представила Web Proxy, инструмент, предназначенный для быстрого и анонимного серфинга. Работает, правда, он только с браузером Idyll, но работает хорошо. Под катом - основные подробности.

Читать далее
Total votes 7: ↑6 and ↓1+7
Comments5

Введение в теорию множеств

Reading time12 min
Views120K
image

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

Когда-то давным давно во всех академических дисциплинах было заложено фундаментальное убеждение — существует единственная бесконечность.

Но 1874 году довольно малоизвестный математик провёл серию революционных наблюдений, подвергавших сомнению это всеми принятое и глубоко укоренившееся убеждение. Георг Кантор в своей (теперь уже ставшей легендарной) публикации On a Property of the Collection of All Real Algebraic Numbers доказал, что множество вещественных чисел «более многочисленно», чем множество алгебраических чисел. Так он впервые показал, что существуют бесконечные множества разных размеров (не волнуйтесь — для прояснения этого мы вскоре подробно изучим его статью).
Читать дальше →
Total votes 38: ↑31 and ↓7+24
Comments27

Теория типов

Level of difficultyMedium
Reading time43 min
Views32K

Мы так привыкли к типам, что редко задаёмся вопросом, что же они такое на самом деле? А главное - почему возникла необходимость в их использовании? Этот поверхностный обзор сделан для того, чтобы продемонстрировать, как типы и другие связанные абстракции являются следствием из обобщения условий различных задач.

Что можно узнать из этой статьи?
Total votes 75: ↑75 and ↓0+75
Comments70

DNSTT. DNS туннель для обхода блокировок

Level of difficultyMedium
Reading time11 min
Views15K

dnstt — это DNS-туннель (VPN over DNS), который может использовать резолверы DNS через HTTPS (DoH) и DNS через TLS (DoT). Проект написан на языке Go.

Руководство будет включать:

1. Описание работы DNSTT

2. Настройку DNS для домена

3. Настройку туннеля dnstt на сервере

4. Настройку клиента dnstt на OpenWRT

5. Настройку автозапуска сервера, клиента и tun2socks

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments8

Ликбез по распространенным Client-Side уязвимостям

Level of difficultyMedium
Reading time15 min
Views18K


В этой статье мы покажем:


  • как в разных ситуациях манипулировать веб-сайтом таким образом, чтобы он передавал пользователям вредоносный JavaScript.
  • как скомпрометировать администратора сайта, отправив ему личное сообщение;
  • как атаковать разом всех пользователей при помощи комментария под статьей;
  • как заставить пользователя отправить запрос на действия, которые он не собирается выполнять;
  • как прослушивать WebSocket-соединения;
  • и коротко объясним, как предотвратить все эти безобразия.

В общем, под катом вас ждет рассказ про распространенные уязвимости на стороне клиента и некоторые методы Client-Side защиты.

Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments3

«Rust – не Си на стероидах. Чтобы его изучить, нужно избавиться от предрассудков»

Reading time7 min
Views18K

В отличие от нашего прошлого героя, Михаил сделал выбор не в пользу Scala, а предпочел Rust, так как этот язык обеспечивает безопасное использование данных и ресурсов. На нём можно управлять памятью и создавать не только более быстрый, но и более надёжный код. Кстати, Михаил считает C++ не столько базовым языком для Rust, сколько консервативным конкурентом. По его словам, поклонники C/C++ недолюбливают Rust лишь потому, что имеют о нём много предрассудков и пока не осознали преимущества нового языка.

Мы поговорили с ведущим системным программистом департамента разработки компании «Криптонит» Михаилом Дорониным, чьей основной специализацией в компании является программирование на Rust.

Читать далее
Total votes 28: ↑20 and ↓8+16
Comments20

Эволюция технологий виртуализации сети в Linux

Level of difficultyMedium
Reading time11 min
Views22K

Виртуализация оборудования — одна из важнейших и фундаментальных технологий в области облачных вычислений. Без нее не смогло бы работать ни одно «устройство» внутри виртуальных машин: ни сетевая карта, ни диск, ни клавиатура, ни мышь и т. п. В статье мы проследим развитие технологий виртуализации оборудования в Linux.

Читать далее
Total votes 43: ↑43 and ↓0+43
Comments14

Сложности перехода на отечественный NGFW, или почему наличие конвертера правил не поможет

Level of difficultyMedium
Reading time6 min
Views4.3K

Привет! Меня зовут Великов Павел, я архитектор по информационной безопасности в «Кросс технолоджис». Хочу поделиться интересным опытом миграции с зарубежного NGFW на Континент 4.

Читать далее
Total votes 5: ↑4 and ↓1+6
Comments2

Преимущества использования СЗИ в ОС Astra Linux Special Edition

Reading time11 min
Views40K

Безопасность ОС Astra Linux Special Edition в первую очередь базируется на реализации в ней средств защиты информации (СЗИ) собственной разработки ГК «Астра», которые включаются в зависимости от выбранного режима работы: «Базовый» («Орел»), «Усиленный» («Воронеж») и «Максимальный» («Смоленск»). Пришло время рассказать об отличиях этих режимов, о возможностях СЗИ (мандатного контроля целостности, замкнутой программной среды и др.) противостоять типовым атакам на ОС семейства Linux, т. е. о том, почему их комплексное применение обеспечивает реальную защищенность от основных угроз безопасности информации.

Читать далее
Total votes 13: ↑7 and ↓6+2
Comments61

Устройство современного веб-браузера Chrome (часть 1/4)

Reading time8 min
Views35K

Оригинальное название публикации: "Inside look at modern web browser".


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


Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments12

Эволюция технологии, которая трансформирует все сферы современной экономики

Level of difficultyMedium
Reading time11 min
Views3.1K





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

Истоки

Как появился блокчейн?

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

По нашему мнению, с технической точки зрения, отсчет точнее всего начинать с регистрации Ральфом Мерклом патента хэш дерева в 1979 году. Квинтэссенция идеи Меркла заключалась просто в хранении данных в цепочке. Однако в 1991 году изначальная идея получила дальнейшее развитие. А именно, хэши были связаны в цепочку, где последняя ячейка хэша становится частью следующего блока. По сей день это изобретение хорошо известно всем тем, кто занимается разработкой децентрализованных решений и носит имя своего автора - дерево Меркла.

Читать далее
Total votes 7: ↑4 and ↓3+3
Comments4

Экосистема Hyper. Полный пиринг и шифрование

Level of difficultyMedium
Reading time7 min
Views6K


В настоящее время резко выросла потребность людей в защищённых коммуникациях. А с ней и популярность сервисов для защиты связи и шифрования. Это VPN, mesh-сети и пиринговые приложения для прямого обмена зашифрованными сообщениями, файлами и т. д. Один из самых продвинутых наборов такого рода — экосистема Hyper. Есть и другие (о них ниже).
Читать дальше →
Total votes 53: ↑53 and ↓0+53
Comments12

CRDT, RON и Сети Данных

Reading time6 min
Views6.8K

Эта статья о следующем эволюционном шаге в развитии систем обработки данных. Тема амбициозная, поэтому расскажу сначала немного о себе. Вот уже больше 10 лет я работаю над проектами в области CRDT и синхронизации данных. За это время успел поработать на университеты, стартапы YCombinator и известные международные компании. Мой проект последние три года – Replicated Object Notation, новый формат представления данных, сочетающий возможности объектной нотации (как JSON или YAML), сетевого протокола и оплога/бинлога. Вы могли слышать про другие проекты, работающие в том же направлении, например, Datanet, Automerge и другие. Также вы могли читать Local-first software, это наиболее полный манифест данного направления Computer Science. Авторы - замечательный коллектив Ink&Switch, включая широко нам известного по "Книге с Кабанчиком" М.Клеппманна. Или вы, возможно, слушали мои выступления по этой теме на различных конференциях.

Идеи этой статьи перекликаются с тем, что пишет последние годы Pat Helland: Immutability Changes Everything и др. Они смежны с проектами IPFS и DAT, к которым я имею отношение.

Итак. Классические БД выстроены на линейном логе операций (WAL). От этого лога выстроены транзакции, от него же выстроена репликация master-slave. Теория репликации с линейным логом написана ещё в начале 1980-х с участием небезызвестного Л. Лампорта. В классических legacy системах с одной большой центральной базой данных всё это работает хорошо. Так работают Oracle, Postresql, MySQL, DB2 и прочие классические SQL БД. Так работают и многие key-value БД, например, LevelDB/RocksDB.

Но линеаризация не масштабируется. Когда система становится распределённой, всё это начинает ломаться. Образно говоря, линейная система – это что-то вроде греческой фаланги. Нужно, чтобы все шли ровно, а для этого хорошо, чтобы земля была везде ровной. Так получается не всегда: где-то электричество отключили, а где-то сеть медленная. Хотя в системе Google Spanner и было показано, что с достаточно большим бюджетом землю можно сделать ровной абсолютно везде, мы всё же отметим, что Google тоже бывает отключается целиком по совершенно смешным причинам.

Читать далее
Total votes 17: ↑15 and ↓2+20
Comments8

CRDT: Conflict-free Replicated Data Types

Reading time10 min
Views46K

Как считать хиты страницы google.com? А как хранить счётчик лайков очень популярных пользователей? В этой статье предлагается рассмотреть решение этих задач с помощью CRDT (Conflict-free Replicated Data Types, что по-русски переводится примерно как Бесконфликтные реплицированные типы данных), а в более общем случае — задачи синхронизации реплик в распределённой системе с несколькими ведущими узлами.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments14

Information

Rating
2,979-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

System Software Engineer, Software Architect
Lead