Разработка и инженерия

страница 19 из 46
пост №1067Разработка и инженерия

Хочу поделиться двумя классными программами. Первая для журналистов, вторая - программистам.

Piezo - гениальная в своей простоте утилита для записи звонков. Выбираете программу, с которой вы звоните - телеграм, скайп, FaceTime, хром, вообще любая программа и нажимаете кнопку «запись». После звонка «отжимаете кнопку» и у вас на руках mp3 файл. В левом ухе - то, что говорили вы, в правом - собеседник. Лучшая в своём роде. macOS, 23$ 🎙

Charles - отличная программа для отладки мобильных приложений. Запускаете ее на компьютере, прописываете на айфоне или андроиде в сетевых настройках свой адрес как прокси и можете наблюдать, какие именно сетевые запросы делает ваш телефон. Да что там наблюдать, можно поставить брекпоинты и подменять запросы клиентов и ответы сервера на лету! Программа умеет перехватывать HTTPS трафик путём установки корневого сертификата. Умеет писать дампы для последующего анализа на других компьютерах. Mac, Win, Linux, 50$ 🔥

пост №1063Разработка и инженерия

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

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

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

Далее, заменим старую и неподдерживаемую систему фоновых задач gearman на celery и переедем на python3.

А вот дальше начинается круть: полный аудит текущих мобильных приложений и новая версия API, свободная от легаси. Самый сок: сейчас большая часть данных о пользователе хранится в json-ах внутри одной таблицы «users» — мы её распилим на кусочки. Меняем систему доставки обновлений на клиенты с long-polling на вебсокеты (заодно выпиливаем mongo с сотней гигабайт мусора).

Если всё это звучит для вас не как шум, а как интересные задачи и вызов — пишите мне в личку или на samat@pure.app. Обязательный список: django, celery, aiohttp (можно хотеть изучить, нужен для бэкенда чатов), postgres. Приложите код, который вы считаете лучшим в своей жизни.

Минусы:
- задачи часто меняются
- процесс ещё не устаканен
- нужно много прогать

Плюсы:
- можно участвовать в формулировке задач
- есть тестировщики и хороший сисадмин (devops)
- удаленка
- вы будете работать с АНТОНОМ ШУРАШОВЫМ.

пост №1061Разработка и инженерия

Мессенджер Signal рассказывает, как они работают над возможность выкинуть кого-то из группового чата.

Да, вы не ослышались. Это мессенджер, в котором невозможно удалить человека из группового чата.

Любой мессенджер — это десятки компромиссов между безопасностью и удобством пользования. Signal во всех спорных ситуациях выбирает безопасность.

Во всех остальных мессенджерах владелец сервера может как минимум посмотреть, кто с кем переписывается и в каких группах состоит. В Signal эта информация скрыта от владельца сервера [1, 2].

Это защита на случай, если серверы Signal взломают или государство выпишет им судебный ордер на выдачу данных.

Дуров говорит, что Telegram не взломают потому что они крутые; и не заставят выдать данные юридически, потому что он устроил адскую схему из компаний в разных юрисдикциях, владеющих частями друг-друга.

Signal решает подобные проблемы технически, без внесения компоненты доверия. Для этого улучшения групповых чатов они попросили авторов доработать криптографический алгоритм, придуманный учеными всего несколько лет назад! Это примерно как если бы для строительства здания привлекли ученых физиков, которые открыли новый закон, который позволил сделать колонны необычной формы.

Вот бы команде Signal десятую долю инженерных способностей направить в дизайн и интерфейсы — цены бы этой программе не было!

Мне очень близка тема безопасного, анонимного общения. Мы наведем базовый технический порядок в Pure, чтобы быстро работал и не глючил, а потом скопируем техническую начинку Signal максимально. Предвкушаю момент, когда буду объяснять «у нас в приложении самый безопасный анонимный мессенджер на свете, которым удобно пользоваться. А ещё знакомства для взрослых».

пост №1053Разработка и инженерия

Доброе утро, друзья!

Второй эпизод подкаста — про безопасность. Трое хакеров делятся, как взломать, заработать и не сесть и как защититься.

С Эмилем и Каримом мы вместе участвовали в школьных соревнованиях по программированию. Тогда они были на голову сильнее меня в решении задач, а теперь стали одними из лучших хакеров России. Карим руководит безопасностью в Mail.ru. Третий гость — Омар Ганиев, член одной из сильнейших команд хакеров и владелец своей компании, оказывающей услуги информационной безопасности.

Слушайте в iTunes, Google и вообще везде.

Этот эпизод мы записывали в мае. Спасибо редактору Андрею Борзенко, звукорежиссёру Павлу Цурикову и продюсеру Паше Боровкову за терпение. Вы вытащили эпизод из 2 часов безудержного гоготания в микрофон перемежающегося «эту информацию нужно запикать». 💪 Насколько хорошо у нас получилось — решать вам.

пост №1037Разработка и инженерия

Скриншот из NewRelic — системы, которая собирает и удобно показывает очень подробную информацию о том, как чувствует себя ваш бэкенд (и даже клиенты): число запросов, время ответов, что именно тупит и почему. Сервис дорогой, но стоит своих денег. Лайфхак: можно сэкономить, установив его только на один сервер из группы.

пост №1036Разработка и инженерия

Похвастаюсь: ко мне на работу в Pure пришел бэкендер Антон Шурашов и начал приводить бэкенд Pure в чувство.

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

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

Спасибо всем, кто откликнулся на вакансию. Познакомились с несколькими интересными специалистами, надеюсь ещё поработаем вместе. 🍒

пост №1033Разработка и инженерия

Чумовой блог про программирование нашёл.

Три статьи, каждая на минуту чтения, а в голову западают будь здоров:

1. «В программировании главное - организационные способности»

2. «Спорные мысли о программировании»

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

Золото ⭐️

пост №1017Разработка и инженерия

Классная история и повод рассказать про взломы паролей понятным языком.

Историки взломали пароль Кена Томпсона из 1980-х! Томпсон — живая легенда (ru), создатель операционной системы Unix (предок Linux).

Дело в том, что в 1980е создатели Unix раздавали хэши (шифрованные отпечатки) своих паролей вместе с копиями операционной системы. Как так получилось?

Самый простой способ работы с паролями - хранить их на диске и при попытке входа сравнить введенный пароль с сохранённым. Совпадают - пускаем, не совпадают - не пускаем. У этого подхода есть проблема - если вдруг диск попадёт в руки злоумышленнику - все пропало.

Чтобы защитить пароль от утечки, мы храним не сами пароли, а их отпечатки (хэши). При попытке входа система подсчитывает хэш введённого пароля и сравнивает его с сохранённым. Хороший хэш устроен так, что по нему нельзя угадать пароль.

И все же, есть один гарантированный способ восстановить пароль зная его хэш: для этого нужно посчитать хэши всех возможных паролей. Тот, чей хэш совпал с нашим и есть искомый пароль. «Против лома нет приема», по английски - brute-force attack, по русски брутфорс или просто «перебор».

Именно отсюда происходят советы по хорошим паролям (я ненавижу формы регистрации не меньше вашего):

— не стоит использовать короткий пароль. При длине 1 для взлома нужно перебрать всего 26 вариантов (26 букв), при длине 2 вариантов — 26×26=676, при трех — уже 17 576 (26×26×26). Если у вас в пароле 8 букв — то это 208 миллиардов вариантов для перебора;
— заглавные буквы рулят! Добавление заглавных букв увеличивает число вариантов для 8 букв в 256 раз, до 53 триллионов.
— нельзя использовать как пароль слово из словаря. Слов очень мало — порядка 200 тысяч . Для перебора всех слов нужно в 800 миллионов раз меньше времени (ресурсов), чем для перебора случайных паролей длины 8.

☞ Попытки атакующих быстро перебрать много паролей и старания разработчиков сделать процесс перебора максимально долгим — одна из классических гонок вооружений. Существуют так называемые «радужные таблицы» предподсчитанных хэшей, которые существенно ускоряют процесс перебора вариантов. Для борьбы с использованием радужных таблиц придумали «соль)». ◼︎

Так вот, на прошлой неделе один энтузиаст подобрал пароль Томпсона найдя его хэш на винтажном диске — это заняло 4 дня непрерывной работы современной графической карты. Вычислительная мощь непредставимая 40 лет назад. Пароль был «p/q2-q4!», что на современный шахматный язык переводится «e2-e4» :)

🍒 Вишенка на торте — в публичную почтовую рассылку ответил сам Кен Томсон (!): «поздравляю». Через день в рассылку написал Роб Пайк — другая живая легенда: «во первых, я невольно подглядел пароль ещё в восмидесятых, а во вторых — взламывать пароли — безвкусно. Было безвкусно тогда, безвкусно и сейчас». У дедушек вечеринка 🎉

пост №998Разработка и инженерия

На прошлой неделе в Лас-Вегасе прошел ежегодный Defcon — главная международная конференция по информационной безопасности. Вот неплохой список интересного от техкранча.

Меня больше всего впечатлили USB-кабели от _MG_. Cтоит воткнуть их в ноутбук, как атакующий получает контроль над вашим компьютером. Кабель содержит антенну, так что для связи не нужен интернет, достаточно айфона в радиусе 100 метров от жертвы. Можно вообще не быть рядом, а зашить в кабель команды, которые выполнятся при подключении к компьютеру жертвы.

Стоит прототип всего 200$. Чуваки обещают, что продакшен версия будет стоить 100$.

Я всегда рекомендовал журналистам макбуки и айпады, теперь моя рекомендация меняется. Для критических вещей — только айпады. А ещё не использовать чужие кабели и не покупать их в предсказуемых магазинах. Где моя шапочка из фольги?

P.S. Такие «заряженные» флешки мы видели уже несколько лет назад, но запихнуть целый атакующий компьютер внутрь кабеля у себя на кухне — это новая вершина. Респект и уважуха.

пост №989Разработка и инженерия

История systemd и её создателя Леннарта Пёттеринга ждет экранизации.

Чувак в одиночку переписал аудио-подсистему, систему инициализации, управление сервисами и логирования Linux. Ну ладно переписал, эти изменения фундаментальных компонент, частью не менявшихся с шестидесятых (!) приняли все крупнейшие дистрибутивы.

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

Дополнительный твист истории, про который часто забывают: все его проекты - калька с решений Apple в macOS и Пёттеринг не стесняется об этом говорить.

Лекция разработчика FreeBSD называется «трагедия systemd» и достойна своего отличного имени.

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