Как стать автором
Обновить
23
0
Василий Бурмистров @vburmistrov

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

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

Прикручиваем LDAP-авторизацию к Kubernetes

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


Небольшая инструкция о том, как используя Keycloak можно связать Kubernetes с вашим LDAP-сервером и настроить импорт пользователей и групп. Это позволит настраивать RBAC для ваших пользователей и использовать auth-proxy чтобы защитить Kubernetes Dashboard и другие приложения, которые не умеют производить авторизацию самостоятельно.

Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии8

Интервью как процесс с точки зрения собеседующего

Время на прочтение8 мин
Количество просмотров9.4K
Волею судеб так сложилось, что кроме повседневных обязанностей по написанию кода, исправлению ошибок, бесчисленных митингов и stand-up-ов, и всего прочего-прочего, я оказался вовлечён в процесс проведения собеседований.

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

Отработав в компании более 4х лет в нескольких смежных больших проектах я участвовал в собеседовании более чем 50 человек, из которых было нанято только 5.

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

По большей части буду говорить о техническом интервью — том самом этапе, где мы проверяем компетентность кандидата как инженера. Процесс сложный и дорогой, в нём нет единственно правильного подхода. По своей сути, цель диалога понять — какой остаточный набор знаний есть у кандидата, его способность думать и соображать и личностные качества, ну и ответить на самый главный вопрос вселенной и всего такого — готов ли я с этим человеком работать бок-о-бок в проекте.
Читать дальше →
Всего голосов 28: ↑18 и ↓10+8
Комментарии74

KeyCloak – щит от JBOSS для WEB приложений

Время на прочтение24 мин
Количество просмотров45K
Из диалога двух программистов:
— Кажется, у нас дыра в безопасности!
— Слава Богу, хоть что-то у нас в безопасности…

1. Введение


Пару лет назад мы уже затрагивали тему безопасности в веб-приложениях. Тогда в рамках исследовательских работ был реализован собственный Service Provider для интеграции с продуктом Shibboleth по протоколу SAML 2.0.

В сегодняшней статье речь снова пойдет о безопасности веб-приложений. Мы сделаем небольшой обзор продукта KeyCloak (доселе оставленного без внимания сообществом Habr).



В качестве практической ценности будет разобран пример, как защитить простое JEE приложение средствами KeyCloak, а также как осуществить взаимодействие между двумя защищенными приложениями.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии1

Мошенники и ЭЦП — всё очень плохо

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

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

Читать дальше →
Всего голосов 356: ↑356 и ↓0+356
Комментарии780

IBM System i (aka AS/400) — Как мы делали автотесты приложений зеленого экрана

Время на прочтение14 мин
Количество просмотров28K
Привет! Меня зовут Антон Воробьев, я отвечаю в Альфа-Банке за разработку приложений для централизованной банковской системы.

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



Платформа AS/400 (Application System/400) появилась на свет в 1988 году. Первой ОС для данной платформы является OS/400, позже переименованная в i5/OS и еще позже в IBM i. Не так давно она отметила свое тридцатилетие.

Погружаясь в мир разработки под операционной системой IBM i, понимаешь, что это никакой на самом деле не «legacy» в классическом понимании этого слова. Это другая, совершенно иная среда, которая мало схожа с привычными Windows или Unix-системами. Главная задача этой ОС — быть максимально производительной на аппаратуре, с которой работает, а не быть удобной пользователю.

ИМХО, эта ОС может свести с ума от того, насколько привычные подходы к написанию кода на С++ неэффективны на ней (до десятков раз потери CPU), что некоторые демонстрируемые в учебниках антипаттерны являются best-practice эффективного кода, а исходники с датой написания за 1978 год не просто собираются без проблем, но и работают как было спроектировано! Все это заставляет по-новому взглянуть на современные подходы к разработке ПО.
Читать дальше →
Всего голосов 43: ↑43 и ↓0+43
Комментарии75

Создаём собственный блокчейн на Ethereum

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

Как создать приватный блокчейн Ethereum с нуля?


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

Инструкция включает в себя следующее:

  • Создание приватного блокчейна Ethereum с помощью geth.
  • Создание кошелька MetaMask для работы с приватным блокчейном.
  • Перевод средств между несколькими аккаунтами.
  • Создание, развёртывание и вызов смарт-контракта в приватном блокчейне с помощью remix.
  • Создание обозревателя блоков Ethereum поверх приватного блокчейна.
Читать дальше →
Всего голосов 28: ↑25 и ↓3+22
Комментарии5

Делаем современное веб-приложение с нуля

Время на прочтение31 мин
Количество просмотров145K
Итак, вы решили сделать новый проект. И проект этот — веб-приложение. Сколько времени уйдёт на создание базового прототипа? Насколько это сложно? Что должен уже со старта уметь современный веб-сайт?

В этой статье мы попробуем набросать boilerplate простейшего веб-приложения со следующей архитектурой:


Что мы покроем:

  • настройка dev-окружения в docker-compose.
  • создание бэкенда на Flask.
  • создание фронтенда на Express.
  • сборка JS с помощью Webpack.
  • React, Redux и server side rendering.
  • очереди задач с RQ.
Читать дальше →
Всего голосов 64: ↑56 и ↓8+48
Комментарии125

Каково оно учить JavaScript в 2016

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


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

— Это теперь называется Front-End инженер, но да, я — именно он. Я работаю с вебом в 2016. Визуализации, музыкальные плееры, летающие дроны, которые играют в футбол, все что угодно. Я только что вернулся из JsConf и ReactConf, так что я знаю новейшие технологии для создания веб-приложений.

— Круто. Мне нужно создать страницу, которая отображает последние действия со стороны пользователей, так что мне просто нужно получить данные от REST и отобразить их в какой-то фильтруемой таблице, ну и обновлять её, если что-то изменится на сервере. Я думал, может быть, использовать JQuery для извлечения и отображения данных?

— О, Мой Бог! Нет! Никто больше не использует JQuery. Ты должен попробовать React: это — 2016!
Читать дальше →
Всего голосов 260: ↑238 и ↓22+216
Комментарии298

За Oracle JDK нужно будет платить. Какие теперь варианты?

Время на прочтение8 мин
Количество просмотров37K
Споры об актуальности Java продолжаются. Одни твердят о том, что она отживает свое и на смену приходят более усовершенствованные языки. Другие не соглашаются, ссылаясь на количество специалистов, которые из года в год выбирают Java своим профильным навыком. В любом случае, нельзя игнорировать тот факт, что большинство уже существующего программного обеспечения написаны на Java, да и заказчики, как внутренние, так и внешние, продолжают его использовать. В такой ситуации любые новые внедрения и глобальные новости о Java обходить стороной не стоит. Питер Верхас, ведущий разработчик и архитектор ПО в швейцарском офисе EPAM, поделился своим анализом того, какие изменения вводит Oracle и как это повлияет на нас с вами.

image
Читать дальше →
Всего голосов 25: ↑20 и ↓5+15
Комментарии64

CI/CD-пайплайн на примере одного небольшого проекта Уральской Дирекции ИТ

Время на прочтение11 мин
Количество просмотров53K
Действующие лица (Команда): разработчиков – 2 человека, админ – 1 человек.

Статья повествует об использовании таких технологий, как Ansible, Docker Swarm, Jenkins и Portainer для реализации CI/CD-пайплайна с возможностью контроля за ним с помощью красивого веб-интерфейса.



Вступление


Чего обычно хочет разработчик? Он хочет творить, не думая о деньгах, и максимально быстро видеть результаты собственного творчества.

С другой стороны, есть бизнес, который хочет денег, да побольше, и поэтому постоянно думает о снижении времени вывода продукта на рынок. Другими словами, бизнес мечтает об ускорении получения MVP (a.k.a. Minimum Viable Product) в новых продуктах или при обновлении существующих.

Ну а чего же хочет админ? А админ – человек простой, он хочет, чтобы сервис не падал и не мешал играть в Кваку Танки и чтобы его пореже дергали разработчики и бизнес.
Поскольку для реализации желаний админа, как показывает правда жизни, его силами должны реализоваться и мечты других героев, представители ИТ-тусовки много работали над этим. Часто получалось достичь желаемого, придерживаясь методологии DevOps и реализуя принципы CI/CD (Continuous Integration and Delivery).

Так получилось в одном небольшом новом проекте в Уральской Дирекции ИТ, в которой удалось в весьма сжатые сроки реализовать полный пайплайн от публикации изменений исходников в системе контроля версии разработчиком до автоматического запуска новой версии приложения в тестовой среде.
Читать дальше →
Всего голосов 36: ↑34 и ↓2+32
Комментарии30

Как мы теряли и находили машины на 9-этажной парковке

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


У нас в офисе 9 этажей парковки, каждый этаж 40 на 60 метров. Частая проблема — сотрудники забывают этаж со своей машиной и как зомби ходят с ключами, пытаясь «пикнуть» сигнализацией. Именно там мы решили обкатать indoor-навигацию на базе Bluetooth.

В целом тема горячая. Активный интерес есть у больших магазинов (устройства для тележек в продуктовом с пуш-уведомлениями про акции и интересные товары рядом), стадионов, аэропортов и госкомпаний для разного рода indoor-навигации. Опыт для музеев был, но понадобились дотесты ряда вещей. А ещё решения актуальны для промышленности (мониторинг персонала, груза, транспорта; обеспечение промышленной безопасности и охрана труда).

Про сами датчики уже сотни раз писали. Я хочу рассказать про практику их применения в реальном мире. Например, одним из сюрпризов во время тестов стало то, что они падают на головы людям.
Читать дальше →
Всего голосов 67: ↑63 и ↓4+59
Комментарии66

Как уже снова не получить телефон (почти) любой красотки в Москве, или интересная особенность MT_FREE

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

UPD0 14.03 8:21 — Телефон больше не получить. Остальные интересные данные пока остались.


UPD1 14.03 10:39 — Дабы не очернять ребят из саппорта MaximaTelecom: Сообщил о ней я окольными путями, но раз пять переспросил и уточнил, дошло ли моё письмо до адресата — короче говоря, убедился, что оно у эфемерного (имена просили молчать) ответственного за вафли лица в метро. Я признаю, что это тупо, но цепочка "проблема в мосметро" → "у меня уже были связи со всяким мос, надо позвонить им" мне показалась весьма и весьма логичной в момент обнаружения уязвимости.


UPD2 14.03 15:40 — Уязвимость была найдена в uid Antxak — суть в том, что в uid лежит md5 телефона без соли. Снова можно искать телефоны.


Пример намайненного телефона

image


UPD3 14.03 18:55 — Уязвимый хэш в uid был заменен на тот же, что и в телефоне. Пока не раскололи последний.


UPD4 15.03 20:51 — Значения и ключи почти всех полей были заменены на предположительно обфускованные.

Читать дальше →
Всего голосов 131: ↑130 и ↓1+129
Комментарии102

Security Operations: защита от киберугроз в ServiceNow

Время на прочтение5 мин
Количество просмотров9.4K
По прогнозам Gartner, к 2020 году 15% компаний, в которых отдел ИБ состоит из 5 или более человек, будут использовать системы SOAR (security operations, analytics and reporting).

Мы предлагаем разобраться, что предлагает ServiceNow в рамках класса таких систем.

Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии0

Консервативное национальное крипторегулирование. Что несут нам новые законопроекты?

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

О необходимости принятия модульного закона (т.е. закона определяющего общие рамки взаимодействия), который установит правовую основу регулирования крипторынка в России и определит основные понятия в устанавливающихся отношениях между различными субъектами, говорили чиновники разного уровня в течении последнего года.

И вот на прошлой неделе различные органы власти на разных площадках выложили сразу три законопроекта, так или иначе касающихся регулирования криптовалют и токенов, майнинга, а также организации токенсейлов в России:

  1. Законопроект Минфина “О цифровых финансовых активах”, который призван заложить основы создания, выпуска, хранения и обращения цифровых финансовых активов;
  2. Законопроект ЦБ “Об альтернативных способах привлечения инвестиций (краудфандинге)”, устанавливающий правила проведения токенсейлов;
  3. Законопроект депутата Курбанова & РАКИБ “О системе распределенного национального майнинга”, претендующего создать основу для майнинга крипторубля.
Читать дальше →
Всего голосов 19: ↑14 и ↓5+9
Комментарии27

Побег из Крипто Про. Режиссерская версия, СМЭВ-edition

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

Эта статья посвящена тому, как перестать использовать Крипто Про и перейти на Bouncy Castle в девелоперском/тестовом окружении.
В начале статьи будет больше про СМЭВ и его клиент, в конце — больше про конвертирование ключей с готовой копипастой, чтобы можно было начать прямо сейчас.


Картинка для привлечения внимания:


image
Читать дальше →
Всего голосов 33: ↑29 и ↓4+25
Комментарии52

Боты на .Net Core для Telegram, Slack и Facebook

Время на прочтение8 мин
Количество просмотров87K
Недавно на одном из проектов банка возникла задача написать бота. Итогом этого опыта стал данный текст, который предназначен, прежде всего, для начинающих разработчиков.



Практически все, кто пользуется современными средствами обмена сообщениями, сталкивались с ботами. Одно из определений бота – это программа, выполняющая автоматически и/или по заданному расписанию какие-либо действия через интерфейсы, предназначенные для людей.

Боты могут использоваться для информирования, для автоматизации процессов (например, автоматической генерации задачи в TFS на основе письма пользователя) и для многих других целей, но т.к. одной статьи не хватит, чтобы рассмотреть все варианты, далее пойдёт рассказ лишь о том, как создать бота для обработки команд.
Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Комментарии14

Построение цепочки доверия в PKI, так ли все просто

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

Инфраструктура открытых ключей (PKI) – достаточно популярная технология для обеспечения целостности и доказательства авторства в различных ИТ-системах. Порою о ее использовании человек, сидящий за компьютером, даже не подозревает, как и в случае проверки целостности программы при установке на компьютер.


Технология PKI не нова. Если считать от момента возникновения алгоритма Меркле по распределению ключа – то технологии уже 42 года, если считать от момента возникновения RSA – то 39 лет. Возраст в любом случае внушительный. За это время технология существенно эволюционировала и позволяет создать солидный список сервисов для других приложений и пользователей.

Читать дальше →
Всего голосов 14: ↑4 и ↓10-6
Комментарии17

Читаем контейнер закрытого ключа КриптоПро средствами OpenSSL

Время на прочтение8 мин
Количество просмотров83K
Речь пойдет о файлах primary.key, masks.key и header.key, которые лежат в директории ххххх.000 на флешке. Данные файлы входят в состав криптоконтейнера закрытого ключа электронной подписи криптопровайдера КриптоПро, формат которого нигде не опубликован. Целью данной статьи является чтение контейнера и преобразование закрытого ключа в формат, который может быть прочитан в библиотеке OpenSSL. Долгое время было распространено ошибочное суждение, что достаточно сделать нечто вида (primary_key XOR masks_key) и мы получим закрытый ключ в чистом (raw) виде, однако забегая вперед, можно утверждать, что в КриптоПро было применено более сложное преобразование, в худшем случае состоящее из более чем 2000 (двух тысяч) операций хеширования.

Стоит упомянуть о существовании утилиты P12FromGostCSP которая позволяет конвертировать ключ в формат P12, доступный для работы с OpenSSL, но утилита имеет следующие существенные недостатки:
  • Читает контейнер не напрямую, а через криптопровайдер, поэтому там, где кроме OpenSSL ничего нет, не работает.
  • Если в свойствах ключа не отмечено, что ключ «экспортируемый», то конвертировать его невозможно.
  • В демо версии не формирует файл с ключом, эта возможность присутствует только в платной версии.

Файл primary.key


Содержит 32 байта ключа в формате Asn1. Это только половина ключа, полный ключ получается при делении этого числа по модулю Q на маску. Поле, хранящее модуль Q в библиотеке OpenSSL имеет название order. Маска лежит в файле masks.key:

primary.key
Читать дальше →
Всего голосов 58: ↑56 и ↓2+54
Комментарии44

Не ждем, а готовимся к переходу на новые стандарты криптографической защиты информации

Время на прочтение18 мин
Количество просмотров39K
В информационном мире и Digital-Банке само собой разумеется – Digital Security и Digital Signature.

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

Криптография дает возможность закрыть для посторонних глаз информацию конфиденциального характера с помощью шифрования.

Как применять криптографию в соответствии с законодательством и ладу с регуляторами?

Речь пойдет о правовых аспектах и об организационно-технических мероприятиях в рамках официального перехода на национальные стандарты в области криптографической защиты информации ГОСТ Р 34.11-2012 «Функция хэширования» и ГОСТ Р 34.10-2012 «Процессы формирования и проверки электронной цифровой подписи».

Переход осуществляется в средствах электронной подписи, применяемых для информации, не содержащей сведений, составляющих государственную тайну, в случаях, подлежащих регулированию со стороны ФСБ России в соответствии с действующей нормативной правовой базой.
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии10

Большая миграция

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


Предисловие


Привет, %username%! Этот год принес много интересных новинок и приятных новостей. Вышел долгожданный релиз Spring 5, с реактивным ядром и встроенной поддержкой Kotlin, для которой еще появится много всего интересного. Sébastien представил новый функциональный подход конфигурации Spring на Kotlin. Зарелизился JUnit 5. Близится релиз Kotlin 1.2 c улучшенной поддержкой мульти-платформенных приложений. И в этом году произошло знаменательное событие! Теперь Kotlin перешел от сборки на Groovy Dsl в Gradle на сборку с помощью Kotlin Dsl.


Как правило, начать сразу с нового стека проще, но всегда возникают вопросы насчет того, как реализовать старые подходы. Поэтому рассмотрим как на примере приложения написанного на Java, Spring Boot 1.5 (Spring 4+) с использованием Lombok и Groovy Dsl в Gradle, поэтапно перейти на Spring boot 2 (Spring 5), JUnit 5, Kotlin, и попробовать реализовать проект в функциональном стиле на spring-webflux без spring-boot. А также как перейти с Groovy Dsl на Kotlin Dsl. В посте основное внимание будет уделяться именно переходу, поэтому будет неплохо, если уже знакомы со Spring, Spring Boot и Gradle.


Для тех, кому лень читать, можно посмотреть пример кода на github, для всех остальных — прошу под кат:

Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии17
1

Информация

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