Архив метки: паранойя

switch без единого if

Лет 7 назад я придумал как можно проверять значение int за O(1). Тогда я подумал что можно просто разделить программу на одинаковые по размеру блоки и прыгнуть на соответствующий. Мне не было известно об устройстве switch, да и ассемблер я не знал.

Уже спустя пару лет я понял, что современный switch как раз этим и занимается, но только вчера я проверил, что теория сошлась с практикой.

Виной всему послужил доклад с cppcon:

Посмотрев на switch со слайдов, я вспомнил про свою старую идею и полез на godbolt проверять.
Читать далее

Немного о безопасности, приватности и анонимности

Ничто не предвещало беды, я всего лишь зашел на торрент-трекер rarbg.to

Надпись «С вашего ip-адреса поступает слишком много запросов» меня смутила. Такое бывает только когда я захожу на трекер напрямую без vpn. Только вот проблема, без vpn я давно в интернет не выхожу — в России без vpn бродить по сайтам невозможно, слишком много всего заблокировано не по делу.

Короче, мой ручной vpn дал сбой. Как оказалось, ipv6 трафик идет мимо него. Роутер в квартире был настроен провайдером, и этот самый провайдер начал поддерживать ipv6. ArchLinux автоматом подхватил ipv6. Rarbg ответил через ipv6. В один момент у меня оказался вполне себе белый ipv6 адрес (скорее всего какая-нибудь подсеть, доступа к роутеру толком нет). И в этот самый момент часть моего трафика оказалась видна в России. Полная жесть, меня просто трясет от того как можно все пропалить сидя из-под vpn будучи параноиком.

Скрина с rarbg нет, потому что rarbg мне теперь доверяет.

по ipv4 мы заходим из Нидерландов, по ipv6 — из Москвы

Ну а пока что я пытаюсь попеременно сломать ipv6 под арчем и починить openvpn на сервере для полной маршрутизации трафика.

UPD: +1 день
Долго пытался сделать переадресацию ipv6 трафика в туннель, но в итоге забил. Грохнул поддержку ipv6 на уровне системы через sysctl как кому-то это понадобилось.

Критические уязвимости во всех процессорах

Я как-то сразу не осознал насколько все плохо. Уязвимости Meltdown и Spectre оказались намного серьезнее, чем это могло показаться на первый взгляд.

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

Объяснение от меня:
Процессор знает телефон Путина. Мы хотим вычислить его поциферно. Мы выкладываем десять листков бумаги на пол, на каждом из них написана цифра — предполагаемая первая цифра. Мы говорим процессору: если 100 поделить на 0 == 666, то пометь, пожалуйста, первую цифру телефона крестиком. Процессор начинает вычислять 100 / 0, а пока он этим занимается, чтобы не терять времени он делает более быструю операцию — узнает телефон, берет его первую цифру и заносит свой виртуальный карандашик над листком. Права доступа при этом не проверяются — это более долго, это можно сделать и потом.

Деление завершается с ошибкой, и поток, задавший неудобный вопрос будет убит. Но можно успеть создать ребенка, он же не будет ответственен за родителя, верно? Ребенок смотрит на десять одинаковых, непомеченных листков, и начинает командовать процессору метить поочередно все листки крестиком. Только к пометке одного из листков процессор будет готов, остальные будут метиться медленнее — их нет в кеше. Таким образом из побочного эффекта в виде скорости доступа мы можем получить информацию о чужом участке оперативки. К чему это приводит известно на примере Heartbleed.

На физическом уровне вместо операции записи (пометить крестиком) используется операция чтения (просто посмотреть на то что написано на листке). На моей машине воспроизводится. Уязвимо тотально все, что осталось целым пока непонятно. Железного фикса не сделать, как выпускать новые поколения процессоров я пока не понял. Софтовый фикс состоит в том, что после каждого прерывания зачищать кеш. Падение производительности при этом катастрофическое (5-30%).

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

Исходные статьи дублирую здесь: spectre, meltdown.

Переезд на новый сервер

Я тут переехал на новый сервер. Очень давно пора было это сделать, жить на сервере с одним диском — идея не очень хорошая. Бывший сервер:
Процессор: Intel Atom N2800
Passmark: ~600
Оперативная память: 2G DDR3 1066MHz (привет meminfo, lshw и dmidecode)
Диск: 500Gb hitachi travelstar 7200rpm
Канал: 100mbit/s + DDoS protection
Провайдер: kimsufi, Франция
Текущий аптайм: 803+ дня
Цена: 5евро в месяц

Новый сервер:
Процессор: Intel Core i7-2600
Passmark: ~8300
Оперативная память: 8x4Gb DDR3 1333MHz (32 гига суммарно)
Диски: 2x3TB Seagate Barracuda 7200rpm (raid1)
Канал: 250mbit/s (40tb/month лимит)
Провайдер: hetzner, Германия
Цена: 34евро в месяц

Процесс переезда оказался ожидаемо болезненным.
Читать далее

ThinkPad P50 — мощь без компромиссов

Предыстория

С недавних пор меня перестал устраивать Acer Aspire S7. Конкретно — откровенно перестало хватать 4Gb памяти. Любая активность, вплоть до открывания нескольких «правильных» вкладок chrome, выливалось в использование swap со всеми вытекающими. В принципе, с учетом SSD, скорость swap’a была вполне приемлемой. На постоянно жить на swap’е c последующим перегревом — не вариант. Я просто боялся в какой-то момент остаться со сгоревшим ноутом. SSD можно было бы конечно дернуть, но его стоимость (а он был достаточно странным — планка представлялась рейд массивом, количество сброшенных данных не считалось) была несравнима со стоимостью всей машины. Поэтому он был торжественно продан.

Поиск нового ноута

Основные критерии:

  1. Экран не меньше FullHD
  2. Приличная батарея
  3. Либо 4 ядра SkyLake, либо 2 ядра KabyLake
  4. Отсутствие видеокарты AMD
  5. Возможность установки не менее 16 гигов оперативки, лучше 32
  6. Возможность установки SSD. Его, конечно всюду можно поставить, но все же…

Список интересных моделей:

  1. Dell XPS 15. Красивый и легкий ноут. Хорошая батарея и процессор. К сожалению, дико дорогой в нормальной конфигурации — 130 тысяч, из-за границы никак не провезти без возни с таможней. Вдобавок к этому — он перегревается при нагрузке. Если бы был готов отдать столько денег — купил бы его.
  2. ThinkPad t460/t560. Хорошие машинки. Единственная претензия — слабоват процессор.
  3. Ряд игровых ноутов. Две основные проблемы: никакущие аккумуляторы, уродливый дизайн.

Но победил ThinkPad p50. Младшая модель — 20ENCTO1WW.

Последняя фотка Aspire S7 на линуксе


Читать далее

Большой брат

Возможно все и так знают, но я параноик. Больше всего меня волнует тотальная слежка. И в интернете ее можно зарезать большей частью. Плагины adblock, ghostery — это обязательная мера предосторожности. К сожалению, об этом уведомлены не все.

Есть вторая сторона медали. Каждый владелец сайта хочет знать когда и куда к нему кто зашел. Наиболее популярные инструменты для этого(в России) — google analytics, яндекс метрика. Таким образом, каждый раз, когда человек заходит на чей-нибудь сайт, об этом становится известным от яндекса и гугла, вплоть до десятка (нескольких десятков) различных организаций. По идее, вы права обрабатывать информацию о себе им всем не давали, но кого волнует?

Читать далее

Китайские закладки в серверных платах

True-story 2007-ого года, опубликованная в 2011 году, пролежавшая у меня в закладках около трех лет.

Краткое содержание

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

Слова выше крайне плохо отражают всю катастрофичность ситуации, т.к. по моему мнению, подобный контроль позволяет китайцам, например, начать третью мировую между США и Россией без каких-либо проблем. Ситуация на текущий момент мне неизвестна.

Оригинал на сайте xaker.ru
Перезалив от меня.

Как я гулял

Сегодня гулял с Алёной. Гуляли за пределами Пущино, было очень красиво.
20150208_123747

20150208_123744

20150208_123731

20150208_123750

20150208_123753

Пришли в какую-то деревню, и были прогнаны оттуда злобной собакой и не злобной собакой. Не злобная собака не гавкала, но от этого было не легче. Она постоянно носилась вокруг нас кругами, создавая ощущение того, что мы под атакой. А еще ей нравилось становиться на задние лапы и толкаться. Она толкалась лучше нас. Эта собака преследовала нас очень долго. При этом она все время шла бегала где-то впереди и регулярно останавливалась, чтобы проверить, что мы никуда не денемся. Иногда она не угадывала дорогу, и ей приходилось возвращаться, но ее это не смущало. У нас была смутная надежда, что она не сможет пройти по мосту. Мост был особенный. Его ширина была по ширине наших ног, и где-то сбоку от него была деревяшка, претендующая на звание перила. Но нас ждало разочарование — когда мы форсировали преграду, на другом конце она уже ждала нас. Как она это сделала осталось загадкой, но по мосту она точно пройти не смогла бы.

Читать далее

Один дома

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