beldmit: (Программизм)
Не то, чтобы в такую шальную погоду у меня были богатый выбор. Да ещё и Нина сбежала на игру, оставив детей мне. И в итоге, прочитав у [personal profile] vitus_wagner про то, что апгрейд на stretch у него прошёл гладко, я вдохновился и запустил апгрейд.

Ну да, апгрейд прошёл легко и непринуждённо, но после перезагрузки я увидел GUI, игнорирующий мышь и клавиатуру. Ок, гугль. Ага, несколько модулей. Ага, хрен. Ого, 2 часа. Пора спать.

Утром я осознал, что у меня ядро осталось аж с позапрошлого выпуска. А проапгрейдить его нельзя, потому что на партиции места нет. Вылез за болванками, записал LiveCD c GPartED, 4 часа двигал партиции, в итоге понял, что расширить раздел всё равно не получится. Долго архивировал домашнюю директорию. Ещё дольше копировал её на флешку, потому как забыл, что файлов больше 4Гб на FAT32 не бывает. Скопировал, запустил установку, ага, gnome3 работает, ого, как оно неудобно-то, да и тормозит, и глючит, ой блин, 2 часа, пора спать.

Утром попытался сделать 2 вещи. Заменить gdm3 на mate, а nouveau на проприетарные от nvidia. В общем, фиг, и проще переставить с нуля. Переставил, ушёл в гости, бросил детей на Надю, отмечавшую день рождения, вернулся, встретил Нину, скопировал настройки с бекапа. Заработало более-менее всё, и часть вещей, которые в gnome делались через задницу, типа добавления кнопок запуска на верхнююпанель, в mate делается интуитивно-понятным способом.

Из замеченного на бытовом уровне: переименованы сетевые интерфейсы (но судя по Debian Wiki, можно по-прежнему править /etc/network/interfaces). Новый openssl (1.1.0).

OpenSSH теперь по умолчанию игнорирует DSA-шные ключи, а он у меня почему-то был именно такой. Так что придётся сгенерировать новый, и непонятно – то ли генерить эллиптический в надежде на новые системы более-менее везде, то ли ограничиться длинным RSA.

WannaCrypt

May. 13th, 2017 12:32 pm
beldmit: (Программизм)
Вчера пошло распространение ransomware (вымогательское ПО) WannaCrypt. Эксплуатируется уязвимость в так называемом SMB-протоколе, исправленная в марте 2017.

Старые версии Windows, в том числе XP, тоже уязвимы. Microsoft, впрочем, сподобилась выпустить исправление и для XP, так что если у кого XP осталась, то надо срочно обновляться. Я, кстати, выпуска обновлений к настолько legacy-версиям вообще не помню, так что это мера оценки опасности.

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

Подробное описание заразы на русском языке.
beldmit: (Программизм)
Криптоанализ Keyless SSL. Keyless SSL -
попытка не отдавать в случае CDN секретный ключ на все серверы того CDN. Авторы статьи предложили две атаки, которые всё равно будут валидны при компрометации одного из frontend-сервера CDN, и исправление протокола, чтобы этих атак избежать.

Распределение сертификатов по УЦ. На картинке Let's Encrypt ставит крест на всех прочих УЦ (в части DV-сертификатов).
beldmit: (Программизм)
Отображение русских букв в утилитах командной строки openssl. Она и раньше была, но существенно не везде.

То, что можно было доделать сравнительно малой кровью, я доделал. Subject и issuer сертификатов теперь будет выводиться по-русски, если указать опцию вывода -nameopt utf8. До X509 extensions так просто не добраться, так что завёл issue.

Спасибо [personal profile] vitus_wagner за сделанную в своё время сводку.
beldmit: (Программизм)
Поскольку я сейчас не пишу платных материалов по инфобезу, то выложу здесь несколько ссылок, чтобы не пропадали.

Это отчёт компании Qrator о состоянии с DDoS-атаками по итогам 2016 года. Написано хорошо и понятно даже неспециалисту. Лучшая фраза оттуда, пожалуй, такова:

В 2017 году самым опасным человеком для сферы информационных технологий может оказаться подросток лет 18—19 с улыбкой на лице и парой биткоинов на электронном кошельке, проживающий где угодно на земном шаре. Не сыграет роли внутренняя или внешняя политика могучих держав.

Вторая новость из доменно-браузерной области, так что затрагивает примерно всех.
Несколько дней назад появилась публикация, из которой следовало, что браузеры, стремясь изобразить IDN-домены в человекочитаемом виде, способствуют фишингу. В качестве примеров был взят домен аррӏе.com (все символы в имени из кириллицы, смешивать их с латиницей нельзя, чётвёртая буква - уникодный символ PALOCHKA из кавказских языков). А если учесть, что TLS-сертификат теперь можно получить бесплатно, возможности для фишинга открываются довольно богатые. В качестве рекомендаций предлагают выключить в Mozilla изображение в человекочитаемом виде, а Google Chrome уже вроде бы выключил такое отображение в версии 58 (должна обновиться сегодня).

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

В выбранном решении утрачивается человекочитаемость (то есть то, ради чего все IDN-домены и выводились на рынок), но вероятность фишинга уменьшается. Но не до нуля: кириллицу от латиницы так отличить можно, а какую-нибудь условную одну крокозябрицу, которая имеет внутреннее представление xn--foo.com от другой с представлением xn--bar.com - уже не очень.

Ссылка на обсуждение в Chrome Bugzilla.
Позиция Mozilla на тему отображения IDN-символов.
beldmit: (Программизм)
Когда технически грамотные программисты рассказывают, что главное в TLS — шифрование, мне становится понятно, что надо пересказать тот кусок презентаций, который я обычно адресую широкой публике. Это упрощённое изложение, но типичный сценарий покрывает.

Сенситивные данные могут подслушать те, кто читает трафик в произвольной точке между вами и получателем. От этого спасает шифрование данных при передаче. Но когда вы передаёте номер банковской карты и прочие реквизиты, вам надо убедиться, что передаёте вы их именно туда, куда надо.

У протокола TLS есть несколько задач. И перед тем, как мы согласуем ключи шифрования и начнём передавать зашифрованные данные, наша задача — убедиться, что соединились мы именно с тем, с кем хотели. Для этого предусмотрена фаза handshake. На этой фазе клиент и сервер сверяют разные куски информации, которыми они обменялись, между собой. Типичный случай — доменное имя в DNS-запросе и в сертификате. Если они не совпали, то возможно, вы пытаетесь договориться не с тем.

Если они совпали, то надо внимательно посмотреть на сертификат, потому что сертификат может выписать кто угодно кому угодно. Но есть список доверенных корневых сертификатов (сертификатов удостоверяющих центров, УЦ), приходящий с браузерами и операционной системой в целом. Если мы смогли проверить, что предъявленный сертификат (вообще говоря, цепочка сертификатов) кончается одним из доверенных, то мы можем на что-то надеяться. Сертификат конкретного домена, конечно, может быть отозван, и это можно проверять, но на практике это работает довольно странно.

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

Процедуры проверки удостоверяющими центрами заявителей сильно регламентированы, и на нарушениях УЦ время от времени попадаются. Так, пару месяцев назад пострадал УЦ WoSign. Сейчас Google предъявляет претензии Symantec. Но проблема не в УЦ, а в том, что если сертификат УЦ выпадает из списка доверенных, то страдают все, кто у них сертификаты купил. В результате единожды попавший в браузеры доверенный сертификат порождает проблему "Too big to fail". Из-за этого реальные проверки в браузерах не сводятся к построению цепочки доверия. Кажется, чуть ли не единственный случай, когда доверие отзывалось моментально, был связан с Diginotar, голландским УЦ, который был взломан несколько лет назад.

И только если предъявленный сервером сертификат не вызывает никаких вопросов по всем процедурам проверки, стороны и начнут обмениваться зашифрованным трафиком.
beldmit: (Программизм)
Вдогонку к предыдущему посту. Это давно задуманная попытка посчитать всех, кто может вмешаться между автором контента и его потребителем в процессе доставки. Дополнения и поправки принимаются. Случаи банальной кражи пароля и завирусовывания по площадям в расчёт не берутся.

1. К сайту доступаемся, получая его адрес через DNS. Чаще всего через провайдерский. Который может дать модифицированный ответ на пользовательский DNS-запрос. Страховкой может оказаться DNSSec, но иногда злонамеренные резолверы DNSSec-валидацию отрубали.

2. Контент лежит на хостинге. Это значит, что его могут изменить сотрудники хостинговой компании. Случаев мне неизвестно, но должны время от времени происходить.

3. Если сайт не защищён с помощью TLS-сертификата, то передаваемый контент можно заменить где угодно, и вставка баннеров в код страниц точками Wifi-доступа в кафешках носит характер невинной игры в крысу.

4. Если сайт защищён по https, то надо понимать, что в типичном браузере прошито примерно 200 доверенных УЦ, и каждый может (технически) выпустить сертификат для вашего домена. Страховки от этого есть, Certificate Transparency (поддерживается только в Google Chrome, Mozilla только собирается), Certificate Pinning (Chrome и Mozilla), DANE (требует DNSSec, поддержка только в плагине к Mozilla).

5. Верификацию сертификата вы доверяете браузеру. Местами операционной системе, куда могут быть установлены сертификаты от разного рода TLS Proxies, DLP-систем и т.п. То есть доверяете авторам браузера, которым пользуетесь.

6. Плагины, которые в браузер установлены, тоже могут менять контент web-страницы.

7. Большинство сайтов использует JavaScript-овый код для подключения баннерных сетей. Он тоже будет управлять тем, что вы увидите. Пока что были прецеденты подсовывания ссылок на malware, но думаю, что и таргетированные атаки ещё последуют.

Наверняка что-то ещё я забыл.

С вами была пятничная рубрика «Как страшно жить».
beldmit: (Программизм)
Google анонсировал поэтапное выпиливание Symantec и его дочерних УЦ из Chrome.

Мотивировка - несоблюдение операционных практик в области безопасности. Пишут про 30000 сертификатов, выпущенных без должной проверки. При этом Symantec отвечает за 42% успешных валидаций по статистике Firefox (то есть посещений защищённых сайтов, доля сертификатов при этом скорее всего ниже).

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

Symantec пока внятных заявлений не делал, а то, которое сделал, сводится к тому, что Google неправ и проявляет безответственность.

Вообще логика проверки сертификатов на валидность становится всё сложнее и сложнее. Вместо безусловной цепочки доверия, начинаем наблюдать массу вариаций на тему "Здесь играем, здесь не играем, тут рыбу заворачивали".
beldmit: (Любовь к ближним)
Чёртовы идиоты из ЖЖ сломали перевели в состояние кота Шрёдингера кросспост с Dreamwidth. Что я по этому поводу буду делать, пока не знаю. Скорее всего какое-то время cut'n'paste, потом разберусь.
beldmit: (Программизм)
У меня метеопатия, как, в общем, у многих горожан категории «бледная немочь». Вылетает, как правило, сон (грядущий). В общем, за прошлую и эту неделю в результате у меня нашлось время, которое удалось позитивно использовать, породив 3 мелких патча к openssl.
Read more... )
На всякий случай прикопаю здесь ссылку на старый пост [personal profile] vitus_wagner на эту тему.
beldmit: (Программизм)
Сделал бету очередного микропроекта на python. Проект пока не публичный, если станет таковым — похвастаюсь.

Собственно, python там оказался (полу)случайно — альфу клиентской версии я сделал на Java, а когда мне заказчик сказал, что нужна серверная, я представил, как я бьюсь лбом о порог вхождения в экосистему Java на сервере и решил, что расшибу я тот лоб гораздо раньше. А со скриптовыми языками всё сравнительно просто, и пример того, что мне надо сделать, написанный на python, заработал с первого раза именно так, как мне требовалось. (На perl аналогичные модули работают несколько не так). Нина выбор тоже горячо одобрила. Я писал на python до того один раз 7 лет назад и воспоминания у меня были скорее положительные.

Некоторое время повозился с Django. Команд у manage.py больше, чем у git-а, документация в сети есть, но при гуглении есть шанс нарваться на какую-нибудь версию 1.4 (Cookbook-а для более новой версии я не нашёл, а удобнее всего для освоения с нуля именно он). Но типовые web-вещи там решаются просто и лучше, чем я бы написал с нуля, а учитывая, что мне нужно было всего-то пара страниц и раздача статики, то всё прошло идеально, хотя головой об стенку я побился. В Debian доступен 1.7.11, в upstream версия сейчас 1.10, а версия 1.7 значится на сайте как не поддерживаемая, я в итоге плюнул и поставил свежую версию через pip install. И прочие пакеты ставил так же, нарушая тем самым чистоту ленинских идей и отказываясь от менеджера пакетов.

Python я взял 2.7 (блин, посмотрел в предыдущие записи по тегу python — и осознал, что прошло 7 лет, а python 3 так и не завоевал мир). Из-за этого мне пришлось повоевать с указанием кодировок и, видимо, явной конвертацией в utf-8 в скрипте.

Финальным аккордом стала отладка cron-скрипта. То есть как нормальный скрипт он делал всё, что надо, а из cron-а он выдавал первое из серии диагностических сообщений, а затем падал с какой-то невнятицей. Через некоторое время нагуглилось, что надо выставлять переменную PYTHONIOENCODING=utf_8, и после этого всё заработало.

Вывод простой. Современные развитые скриптовые языки позволяют написать содержательный код без особого знания синтаксиса языка. Ну то есть я знал минимальные вещи, типа выравнивания пробелами и оформления циклов и управляющих конструкций, за чем-то сложнее лазил в учебник. И да, in stackoverflow we trust, но читать его надо очень внимательно и осмыслять, что же тебе посоветовали — просто копирование кода скорее всего не поможет.
beldmit: (Любовь к ближним)
Промо в ленте опознаётся по тегу article с классом j-e--feedpromo и ещё каким-то такого же типа.
Чтобы сконвертировать это в правило для uBlock, надо дождаться устойчивого воспроизведения поведения.

UPD: говорят, livejournal.com##.appwidget.appwidget-journalpromo не работает. Пробуем livejournal.com##.j-e--feedpromo
beldmit: (Манул)
Очевидные последствия переезда ЖЖ в Россию для тех, у кого ФСБ фигурирует в модели угроз - то, что подзамки, которые и до того, будем честны, особо надёжным укрытием не были, особенно при сотнях подписчиков, перестанут быть таковыми совсем. С другой стороны, понятно, что захотят посадить - посадят или по крайней мере испортят жизнь.

Переезд на DreamWidth, кросс-посты и периодическая синхронизация осмысленна для тех, у кого в модели угроз фигурируют криворукие сисадмины. Потому что бекапов много не бывает. Инструкция, например, здесь. При этом надо понимать, что DW из России периодически блокируется целиком от отдельных провайдеров, и доступ к нему придётся организовывать через Tor или VPN-ы. Переезд на DreamWidth без синхронизации в ЖЖ сократит аудиторию, но частично, пока времена вегетарианские, спасёт от п.1.

Переезд на ФБ мне не кажется осмысленным, потому что там доступе по большому счёту только сиюминутный контент.

Переезд на standalone blog требует какой-то технической квалификации и не лениться затыкать дыры вовремя. И без возможности кросспостов опять-таки приведёт к потере аудитории.

Про переезд на medium не скажу ничего, не знаю.
beldmit: (Программизм)
Мои письма так понравились спам-фильтру, что он теперь им прохода не даёт.

***
— Свяжитесь с нами через LinkedIn.
— Но у меня нет доступа к LinkedIn, Роскомнадзор заблокировал его!
— Вы нам не подходите.

***
И не моё, но прекрасное:
Мало кто знает, что буква S в аббревиатуре IoT обозначает "Security".
beldmit: (Default)
После замены AdBlock и AdBlock+ на uBlock Chrome на линуксовом компе перестал тормозить.

Для FB волшебной пилюлей стал FB Purity. Без него баннер в ленте - каждая вторая запись.

Осталось начйти решение для андроидных устройств, а то ЖЖ оттуда читать тяжко.
beldmit: (Программизм)
Удалось осуществить reverse engineering протокола Skype и сделать альтернативный клиент, пока только для текстового режима. Клиент пока только под Windows, но лиха беда начало.

Я помню времена, когда альтернативные клиенты ICQ стали работать не хуже, а то и лучше оригинала. Возможно, и для Skype пришло время.
beldmit: (Любовь к ближним)
I've come up with a few enlightening definitions: Sometimes
people make better security decisions if they look at them.
Some of them could be laws I suppose. Here are the ones I
put on the one-page version of the handout.

"Backward Compatible" -- Vulnerable to Downgrade Attack.

"Backup" -- Additional Target.

"Big Data" -- Whatever people didn't secure.

"CA" -- Some clown in Uzbekistan who paid somebody a bribe.

"Cloud" -- Computers that someone else can access at will or
take away from you at will.

"Common Carrier" -- Compromised Carrier.

"DRM" -- A technology which gives the key to the attacker.

"Firmware Update" -- A reminder that the software you can see
is not the only software that contains holes.

"IoT" -- Internet of Targets.

"Keyboard" -- A device for entering mistakes into a computer.

"Password" -- If a human can remember it a computer can guess it.

"Proprietary" -- Unreviewed.

"Protocol" -- A procedure ANY part of which may not be followed.

"Routine" -- With absolutely the minimum possible amount of
attention or checking required to usually get results.

"Secure" -- Less valuable to a crook than something else they
could steal or break with the same effort.

"Social Media" -- Surveillance As a Business Model.

"Switch" -- listening post.

"Trusted" -- Capable of screwing you over.

"USB" -- Un-Secure Bus.

"Virtual" -- Looks like something that it isn't.
beldmit: (Программизм)
Когда-то кто-то придумал, что правый нижний угол - хорошее место для всплывания сообщений от программ, по крайней мере под Windows. Идея пошла в массы. Как результат - теперь правый нижний угол десктопа занят стопками уведомлений, перекрывающих друг друга и мешающих разбираться друг с другом.

Такая вот трагедия общин на отдельно взятом экране.
beldmit: (Программизм)
Так как 2015-й год у меня был довольно интенсивно IT-шным, то пусть будет вот такая ёлочка.



А ещё мне нравится представление года 2016 в двоичной системе: 11111100000
beldmit: (Программизм)
В рамках подарка ставил на ноутбук Acer acpire E15 Debian. Выбрал gdm в качестве Display manager, поставил, включил — Gnome не стартует. xinit запускается, так что дело не в X-ах. В логах ругань типа

llvm error: cannot select: intrinsic %llvm.x86.sse41.pblendvb debian.

В гугле информация, что эта ошибка в Debian должна быть исправлена.

В таком виде я вчера процесс прервал, а сегодня посмотрел, что ругается gnome-session. Снёс, заменил на mate-session-manager. Вместо gdm3 поставил kdm (возможно, это было избыточно). Заработало. Возможно, чище было бы переставить с нуля, выбрав MATE в качестве терминала изначально. Но учитывая, что адресат собирается программировать на python (точнее, его осваивать), думаю, пока хватит. Вид минималистический, браузер запускается, офис запускается, vim есть.

Profile

beldmit: (Default)
beldmit

August 2017

S M T W T F S
  12345
678 9 101112
13 1415 1617 1819
20212223242526
2728293031  

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 21st, 2017 01:55 pm
Powered by Dreamwidth Studios