Как стать автором
Обновить
1
0
Максим Щербаков @UnknownErrror

Пользователь

Отправить сообщение

Байки «инженерного спецназа», ну или просто наша весёлая работа

Время на прочтение10 мин
Количество просмотров76K


Шли по трассе от Магадана на Якутск, везли комплектующие для одного дата-центра. Холода в этих краях стоят такие, что машины не глушат. Потому что до весны уже не заведёшь. Машины надо ставить в тёплые гаражи или ангары. Мы уже под вечер как раз нашли такой ангар и стали стучать. Открывает сильно поддатый хозяин, такой простой сибирский мужик в ватнике и ушанке:
— Здравствуйте, можно у вас машину поставить?
— Не. Идите отсюда, я вас не знаю!
— Да ладно тебе, мужик, мы же тебе денег дадим.
Мужик вынимает из кармана котлету пятитысячных сантиметров пять толщиной и сообщает:
— Да я те, ик, сам денег дам ща! Вот бухнёшь со мной — тогда поставим.

Обязательства по госконтракту для этого дата-центра мы тогда выполнили.

А вы заходите внутрь, буду дальше рассказывать наши байки. Кстати, да, кто беспокоился за нашу крысу (ещё живую на фотографии в прошлом посте) — хоть ей и прилетело 380 В, но она оклемалась и начала немного ходить. Мы её отпоили сладким чаем и отпустили, убегала она уже весело. Правда, что с ней было дальше, не знаем.
Читать дальше →

Романтика дальних инженерных выездов (а наша крыса выжила)

Время на прочтение8 мин
Количество просмотров104K

"— Да ладно тебе, чё, правда нельзя так? Удобно же, кабель многожильный, мягкий. В одножильный так не завернёшь..."

Заказчик — большая компания — объявляет тендер на ИБП и кондиционирование для инфраструктуры своих дата-центров по всей стране. Объектов чуть меньше 30 штук, причём включая города, где нет железной дороги. В основном. В августе стартует конкурс, в ноябре только-только заканчивается оформление всей документации. Соответственно, наши инженеры приезжают уже в тот момент, когда «снаружи» от -30 до -40 наружного воздуха. А по условиям контракта нужно мыть наружный блок кондиционера.

Кто не знает, сообщаю — делается это водкой. Желательно — палёной, она хуже обмерзает. Процедура такая: покупается ящик или два в ближайшем магазине, оцинкованное ведро. В этот момент прохожие уже начинают крайне болезненно реагировать, наблюдая за сливом водки в ведро. Водка, кстати, во многих удалённых городах — до сих пор альтернативная валюта покрепче рубля. Затем на лицах окружающих проступает неподдельная печаль и вся мировая боль, когда блок кондиционера начинает промываться.

В такие выезды мы всегда отправляем хотя бы одного инженера с опытом подобных работ, потому что подводных камней много. Начиная от того, что за святотатство могут банально побить, и заканчивая тем, что ящик водки потом «дома» надо как-то провести по бухгалтерии. А вопросы будут. Ещё одна опасность — при распрыскивании на внешний блок кондиционера можно крайне быстро надышаться парами спирта. Как шутят бывалые — в инструментальном наборе обязательно нужно иметь отсек для огурчиков, чтобы снимать последствия ингаляций такого типа. Следующая проблема — всё надо делать быстро, потому что при -35 и ниже с учётом температуры конденсатора около 60 градусов в плюсе — запах водки стремительно распространяется по району в направлении ветра. Или всенаправленно, если ветра нет. Местные жители реально начинают очень странно себя вести и искать источник беспокойства.

Заходите, буду делиться другими историями.
Читать дальше →

Байки выездных инженеров – монтаж и сервис ВКС/КЦ

Время на прочтение6 мин
Количество просмотров65K


Привет! А я продолжаю травить байки нашей команды выездных инженеров. Часть произошла со мной, частью поделились коллеги — лично присутствовал не везде, поэтому именно «байки». Плюс, конечно, детали немного изменены, чтобы никого не обидеть. Если вы вдруг узнаёте себя — помните, что в это же время ещё десять разных человек думают о своей компании.

Начнём. В большой компании мы делали видеонаблюдение на одном из объектов. Там две службы безопасности — ИТ и «физики». Первые «кладут кабель», вторые «ложат мордой в пол». Так вот, по настоянию ИТ-безопасников мы делали вообще отдельную сеть на коаксиале, чтобы нельзя было открутить камеру, воткнуться на её место и сбрутить роутер. Промучились изрядно. В конце монтажа мы обратили внимание на ряд датчиков «физиков», стоящих прямо рядом с камерами. На витой паре. Скрутили один, воткнулись с ноутбуком, там веб-интерфейс роутера… и да, пароль 12345678!

Однажды мы поднимали колл-центр для той части банка, которая, как оказалось, занимается сбором долгов. Впечатления инженера с приёмки совершенно потрясающие:
— Ты знаешь, стайка такая милых девушек до смены. Ласковые, флиртуют, глазки строят. А потом садятся на АРМ и начинают так брутально с клиентами разговаривать, что просто страшно становится. Я там чуть по стене не съехал первый раз.
Пробыв на тестовой эксплуатации 3 дня, инженер принял волевое решение и закрыл все свои кредитные карты.
Читать дальше →

Байки по кибербезопасности: играем в «Правда или ложь»

Время на прочтение9 мин
Количество просмотров16K

Привет, Хабр!

Правила игры простые: я рассказываю историю про аудит безопасности, а вы оцениваете, правда это или нет. Под спойлером — ответ.

1. «Суперпроводимость»

Проводим экспертный аудит в крупном производственном комплексе. Последнее время заказчики часто выбирают дистанционный формат сбора информации. Но в данном случае заказ был очный, то есть мы с аудиторской командой приезжаем на проходную, дальше планируется, что мы будем ходить по территории и искать всякие радости для внутреннего злоумышленника. И вот мы стоим и готовимся получить пропуск, а в это время по всему производству отключается электричество. Заодно останавливается вся производственная линия, что по масштабам проблемы примерно равняется дню П. Ни о каком аудите речи, конечно, уже нет. Мы около часа сидим на проходной, пытаемся дописаться до наших пентестеров (вдруг они «постарались»), а потом узнаём, что причиной инцидента стала полевая мышь: она залезла в щитовую и закоротила собой электрику.

2. «Новогодняя ёлка»
Тест на проникновение. Задача — получить доступ из корпоративного сегмента в технологический, по возможности — к серверам АСУ ТП. Неделю мы его колупали, а потом прошли. Оформили доказательства, отправили заказчику. Но скриншоты в отчёте с чёрным фоном из терминала Kali с перечислениями уязвимостей и подробным описанием оказались для заказчика не очень убедительными: в систему защиты были вложены деньги, всего этого просто не может быть! В очередной раз получив комментарий «Это к ничему страшному не приведет», наш пентестер психанул и нарисовал лампочками на пульте управления SCADA-системой (в тестовом сегменте) ёлочку. Вопросов у заводчан сразу не осталось.

Читать далее

Про догмы в криптографии

Время на прочтение7 мин
Количество просмотров9K
Вчера я наконец-то выпустил первую публичную версию Lamer News, это одновременно и реальный пример использования Redis в виде сайта напободие Hacker News, и проект совершенно независимого сайта про новости из мира программирования.

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

После релиза я получил несколько просьб об изменении хэш-функции, которую я использовал для того, чтобы хэшировать пароли в БД:

# Turn the password into an hashed one, using
# SHA1(salt|password).
def hash_password(password)
    Digest::SHA1.hexdigest(PasswordSalt+password)
end


Этот код использует SHA1 с солью. Как отметили читатели, это не самый безопасный выбор, поскольку есть способы вычислить SHA1 очень быстро. Через некоторое время люди хором начали твитить и писать в комментах одно и то же предложение: «используй BCrypt». Я предложил использовать вложенные SHA1 в цикле, чтобы избежать добавления новых зависимостей в коде (если вы проверите README, одной из целей является сделать код простым и с как можно меньшим количеством зависимостей). И тут это случилось: догма шифрования. Никаких рассуждений о криптопримитивах и их возможных применениях и комбинациях, просто тупо «используй BCrypt». В глазах этих товарищей программисты — просто тупые дроны, исполняющие гайдлайны, которые не могут ни в коем случае рассуждать о криптографии. Но об этом позже…

Давайте пока сделаем шаг назад и рассмотрим исходную проблему со всем этим, и насколько небезопасен этот код.
Читать дальше →

А ты хто такой? Эволюция протоколов аутентификации MySQL и MariaDB в лицах

Время на прочтение5 мин
Количество просмотров8.9K
замок на старом сейфе В далекие времена, до фейсбука и гугла, когда 32 мегабайта RAM было дофига как много, security была тоже… немножко наивной. Вирусы выдвигали лоток CD-ROM-а и играли Янки Дудль. Статья «Smashing the stack for fun and profit» уже была задумана, но еще не написана. Все пользовались telnet и ftp, и только особо продвинутые параноики знали про ssh.

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

Michael Widenius (или просто Monty) явно был знаком с параноидальными безопасниками не понаслышке, чего стоит один такой момент (из исходников, global.h):

/* Paranoid settings. Define I_AM_PARANOID if you are paranoid */
#ifdef I_AM_PARANOID
#define DONT_ALLOW_USER_CHANGE 1
#define DONT_USE_MYSQL_PWD 1
#endif

Так что неудивительно, что пароли в MySQL открытым текстом не передавались никогда. Передавались случайные строки на основе хешей. А конкретно, первый протокол аутентификации (цитируется по mysql-3.20, 1996) работал так:
Читать дальше →

Грязные трюки и оперативка

Время на прочтение9 мин
Количество просмотров41K

Проблемы с ограничениями памяти давно в прошлом?

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

Мы собрали примеры из игровой индустрии (разных годов и платформ), о почти незаконных способах ужимания уровней, текстур и целых игр в требуемые объёмы. Может быть, эти способы не очень красивы, но они позволили разработчикам выпустить игры, и никто до сих пор ни о чём не догадался.
Читать дальше →

Вы ни черта не понимаете в цветах

Время на прочтение3 мин
Количество просмотров72K

Это все розовый

Я думаю многие сталкивались с ситуацией, девушки пытаются убедить нас, что совершенно очевидно, что цвет ее белья вовсе не черный, а очевидно ониксовый или обсидианово-дымчатый. При том, что там явно #000000ff или максимум #080808d5, если белье слегка прозрачное. Или вдруг та же девушка внезапно решает перекрасить стены и начинает мечтательно описывать всю красоту оттенков, которые она хотела бы получить. И вы погружаетесь вместе с ней в чудесный мир лавандовых стен и пытаетесь определиться со шторами. То ли цвет пенящейся морской волны, то ли кораллово-бирюзовый. Где-то на этом этапе вы начинаете тоскливо смотреть на стену, размышляя о том, какой оттенок придаст ей ваш мозг после хорошего разбега.



Я решил разобраться в том, что за странные картины роятся в голове у других, когда мы произносим «нежно-зеленый» или «золотисто-лаймовый». Естественно, все это вылилось в бесчеловечные эксперименты на живых людях, которым я выдал Inkscape, рисунок выше и попросил заполнить квадраты цветами.

Грязные трюки разработчиков видеоигр

Время на прочтение12 мин
Количество просмотров78K

Предыдущие части: раз, два, три.

Благодарим за игру!


В первой части Wing Commander при выходе из игры мы получали от нашего менеджера памяти EMM386 исключение. Экран очищался и на него выводилась единственная строка, что-то типа «Ошибка менеджера памяти EMM386. Бла-бла-бла».

Нам нужно было выпустить игру как можно быстрее, поэтому я отредактировал ошибку менеджера памяти в hex-редакторе, чтобы она выглядела как «Благодарим за то, что играли в Wing Commander».

— Кен Демарест

Читать дальше →

Можно ли рендерить реалистичные изображения без чисел с плавающей запятой?

Время на прочтение19 мин
Количество просмотров23K

Введение




«Что получится, если мы заменим числа с плавающей запятой на рациональные числа и попытаемся отрендерить изображение?»

Такой вопрос я задал себе после размышлений над твитом исследователя и преподавателя компьютерной графики Моргана Макгвайра. Он рассуждал о том, насколько сильно студенты компьютерных наук удивляются, когда впервые узнают, что для хранения привычных нам чисел с плавающей запятой в современных компьютерах нужно идти на компромиссы. И эти компромиссы делают сложными простые задачи, например, проверку принадлежности точки треугольнику. Проблема, разумеется, заключается в том, что проверка нахождения четырёх точек в одной плоскости (копланарности) с помощью определителя или какого-нибудь векторного умножения (а на самом деле это одно и то же) никогда не даст значение, точно равное нулю, чего требуют эти математические методы. Даже если бы настоящие вычисления нахождения на одной плоскости были бы точны, те же компромиссы с точностью почти с вероятностью в 1,0 дали бы ответ, что сами четыре точки не копланарны.

Это зародило во мне мысль — если допустить, что все входящие данные рендерера (координаты вершин, 3D-преобразования и т.д.) были бы заданы как рациональные числа, то создавали бы все операции, от создания луча, обхода ускоряющей структуры и до пересечения лучей с треугольниками только рациональные числа? Если это было бы так, то мы бы смогли выполнять проверку копланарности совершенно точно! Возможно, вы зададитесь вопросом, почему 3D-сцена, выраженная в рациональных числах должна давать результаты тоже только в рациональных числах…


Простая сцена, трассировка пути в которой выполнена рациональной арифметикой. Здесь используется система чисел «с плавающей чертой дроби», а не числа с плавающей запятой.
Читать дальше →

Анатомия GNU/Linux

Время на прочтение13 мин
Количество просмотров121K

Какое-то время назад на Хабре была небольшая волна постов на тему «Почему я [не] выбрал Linux». Как порядочный фанатик я стриггерился, однако решил, что продуктивнее что-нибудь рассказать о своей любимой системе, чем ломать копии в комментариях.

У меня сложилось впечатление, что многие пользователи GNU/Linux слабо представляют, из чего сделана эта операционная система, поэтому утверждают, что она сляпана из попавшихся под руку кусков. В то же время, архитектура большинства дистрибутивов является устоявшейся и регламентируется рядом стандартов, включая стандарт графического окружения freedesktop.org и Linux Standard Base, расширяющий стандарты Unix. Мне при знакомстве с GNU/Linux несколько лет назад для погружения не хватало простой анатомической карты типичного дистрибутива, поэтому я попробую рассказать об этом сам.

Читать далее

Страшилки на Хэллоуин от веб-разработчиков

Время на прочтение7 мин
Количество просмотров8.6K


В преддверии Хэллоуина фуллстек-разработчик Уэс Бос в своём Твиттере попросил других программистов поделиться своими ужасными историями о вебдеве. Вот некоторые из них...

@DimitroffPeter:

Моя первая работа и первый вклад в продакшен. Мне нужно починить клиент-серверную утилиту. Её функция проста: у нас есть самодельное устройство из роутера и PC. У роутера есть CLI и он должен показывать информацию о состоянии PC. Вещи наподобие systemctl, top, free. Команда передаётся в виде текста, выполняется, и результат принимается в виде текста. Однако сделано это было наиболее ужасающим способом из всех возможных…
Читать дальше →

Как мы ели лубрикант

Время на прочтение8 мин
Количество просмотров55K
Появляется у нас на пороге серьёзный заказчик с ТЗ. Мы на него смотрим и думаем: съедобные лубриканты? Серьёзно?

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

Тема настолько упоротая, что нас было не остановить.

Начали мы с просчёта оптимальной диеты из лубрикантов. В той формуле, которую мы в итоге стали производить, 100 граммов дают вам 44 ккал энергии. Это примерно как три средних огурца (внутрь перорально). Но, увы, эффективной диеты не будет: через организм он проходит практически транзитом.

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


Здание арсенала в Сан-Франциско, которое более узнаваемо в своём вечернем освещении.

В общем, сейчас я расскажу, как формировалось ТЗ на это изделие и как проводились бета-тесты.
Читать дальше →

50 цитат о программировании всех времён

Время на прочтение6 мин
Количество просмотров163K
Перевёл после прочтения комментариев к статье «О ненависти к C++». В цитатах можно найти ответы на большинство возникших там вопросов.

50. Программирование сегодня — это гонка разработчиков программ, стремящихся писать программы больше и с лучшей идиотоустойчивостью, и вселенной, которая пытается создавать больших и лучших идиотов. Пока вселенная побеждает.
— Rick Cook

49. Lisp — это не язык, а строительный материал.
— Alan Kay

48. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
— Edward V Berard
Читать дальше →

Язык программирования karasic

Время на прочтение8 мин
Количество просмотров52K

Привет, друг.


Как известно, каждый уважаемый кодер рано или поздно пишет свой логер, парсер json и язык программирования. Поскольку первое и второе мы уже написали, то нам ничего не остаётся, как представить наши наработки по новому инновационному языку программирования karasic.


Читать дальше →
2

Информация

В рейтинге
Не участвует
Откуда
Сочи, Краснодарский край, Россия
Дата рождения
Зарегистрирован
Активность