Pull to refresh
1
0
Send message

Большой гайд. Пишем микросервисы на Java и Spring Boot, заворачиваем в Docker, запускаем на EKS, мониторим на Grafana

Reading time37 min
Views95K

Туториалы делятся на две больших категории: либо "как нарисовать сову", либо подробно расписанные тысячи шагов в формате "напиши туториал для дурака - и только дурак захочет его читать".

Как какой из двух категорий относится эта статья — решать вам.

В этой статье вы увидите пошаговое создание cloud-native микросервиса на Amazon AWS, пригодное для "чтения с листа". Чтобы понять, что здесь происходит, не нужно разворачивать проект - достаточно обладать живым воображением и прочитать текст по диагонали. Если же вы всё-таки захотите повторить шаги, вам будут жизненно нужны знания вида, как создавать классы в IDE и что такое Spring.

Вначале мы напишем пару простых микросервисов на Spring Boot, докеризуем их, зальём в AWS, настроим красивые доменные имена и HTTPS, прикрутим логирование и мониторинг, Prometheus и Grafana. Это небольшое путешествие по всем кругам ада, из которого вы не вернетесь прежним.

Текст написан на основе текстов и демо-проекта microservice-customer за авторством @kamaruzzaman. Если вы потеряли нить повествования, всегда можно зайти на GitHub и найти весь код в пригодном для запуска виде. Если захочется закопаться в тему, то бро Дима Чуйко (@Teapot) написал вам ещё две части статьи "Микросервисы: от CRUD до Native Image" (раз, два).

Последняя важная оговорка. В этом гайде будут использоваться технологии Amazon и обычные дистрибутивы OpenJDK. Автор осознает, что мы живём в России, и возможно, вместо Amazon куда лучше подойдет что-то вроде SberCloud или MTS Cloud, а вместо обычного OpenJDK - Axiom JDK с сертификацией по ФСТЭК. Особенности российских технологий - тема для отдельной статьи. Если вы захотите таковую после чтения этого гайда - отметьтесь в комментариях.

Читать далее
Total votes 66: ↑65 and ↓1+83
Comments27

Пособие по программированию модулей ядра Linux. Ч.1

Reading time19 min
Views41K

Перед вами последняя версия пособия по программированию модулей ядра Linux, вышедшего 2 июля 2022 года. Пособие большое, поэтому материал будет разбит на серию статей. В первой части мы разберём, что такое модули ядра, рассмотрим необходимые подготовительные этапы для их создания и в завершении по традиции напишем первый простейший модуль «Hello world», попутно разобрав вопросы лицензирования, передачу аргументов командной строки и прочие нюансы. Это пособие вы можете смело воспроизводить и изменять в соответствии с условиями Open Software License v 3.0.
Читать дальше →
Total votes 43: ↑43 and ↓0+43
Comments4

Разработка драйвера сетевого адаптера для Linux. Часть 1

Reading time25 min
Views27K

В этой статье мы рассмотрим как устроен драйвер сетевого адаптера для Linux.

Cтатью разделим на две части.

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

Хотя при разработке драйверов необходимо использовать стандартные ядерные фреймворки, такие как clock, reset, libphy и пр., поначалу мы будем работать с адаптером напрямую через регистры состояния и управления. Это позволит нам детально разобраться с аппаратной частью.

Во второй части статьи приведем драйвер к нормальному виду, с использованием стандартных фреймворков и описанием того, что надо указать в Device Tree, и рассмотрим как передавать сетевые пакеты.

Нам нужна макетная плата с сетевым адаптером, на которую можно поставить Linux. Возьмем Orange Pi Zero на платформе Allwinner H2+. В состав платформы входят четыре процессорных ядра Cortex-A7, поддерживается ОЗУ стандартов LPDDR2, LPDDR3, DDR3, широкий спектр соединений и интерфейсов, в том числе сетевой адаптер, для которого мы будем разрабатывать драйвер. Подробное описание платформы тут, документация на платформу Allwinner H3 Datasheet.

Читать далее
Total votes 71: ↑71 and ↓0+71
Comments19

Синтез речи виртуальных ассистентов Салют: как мы отошли от классических научных статей, чтобы сделать его человеческим

Reading time12 min
Views19K

Автор исходного изображения: Blue Flourishes/Shutterstock.com

Всем привет! В этом посте мы расскажем про синтез голосов Сбера, Афины и Джой — виртуальных ассистентов семейства Салют. О том, как мы в SberDevices обучали модели, чтобы сделать синтез живым и специфичным для каждого персонажа, а также с какими проблемами столкнулись и как их решали.

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


Персонажей озвучили телеведущая Анастасия Чернобровина (Афина) и актёры дубляжа Даниил Щебланов и Татьяна Ермилова (Сбер и Джой). Виртуальных ассистентов можно услышать в приложениях Сбер Салют, СберБанк Онлайн, нашем колл-центре по номеру 900, а также в устройствах SberBox и SberPortal. Всё, что вы услышите, — это синтез речи, реализованный с помощью нейросетей. Он работает на связке Tacotron 2 и LPCNet.

Но, чтобы было понятно, что, зачем и почему, — немного теории и истории

Читать далее
Total votes 35: ↑34 and ↓1+45
Comments30

Как я хакнул свой автомобиль: завершение истории

Reading time19 min
Views21K
Если вы не читали первую часть статьи, то сделайте это.

Часть 2: создаём бэкдор


Хватит ждать


28 апреля 2022 года выпустили новые версии обновлений прошивок Display Audio для автомобилей Hyundai и Kia. К счастью, в том числе и для моей машины.


Я сразу же принялся за разработку собственного обновления прошивки с бэкдором.
Читать дальше →
Total votes 135: ↑135 and ↓0+135
Comments15

Как я хакнул свой автомобиль

Reading time10 min
Views60K
image

Машина


Прошлым летом я купил Hyundai Ioniq SEL 2021 года. Это хороший экономящий топливо гибрид с приличным набором функций: беспроводные Android Auto/Apple CarPlay, беспроводная зарядка для телефона, сиденья с подогревом и люк в крыше.

Особенно мне понравилась в этой машине система In-Vehicle Infotainment (IVI). Как я говорил ранее, у машины есть беспроводное Android Auto, что довольно редко для такого ценового диапазона. Приложение имеет красивые плавные анимации меню, поэтому я понял, что ЦП/GPU не такие уж и слабые; или, по крайней мере, ПО ест не слишком много ресурсов.

Как и со всеми остальными моими гаджетами, я решил немного поэкспериментировать и посмотреть, что можно сделать с этой системой.
Читать дальше →
Total votes 284: ↑283 and ↓1+339
Comments71

Фаззинг Linux через WTF

Reading time8 min
Views4.3K

Недавно появился фаззер What The Fuzz, который (кроме названия) интересен тем, что это:


  • blackbox фаззер;
  • snapshot-based фаззер.

То есть он может исследовать бинарь без исходников на любом интересном участке кода.


Например, сам автор фаззера натравил WTF на Ida Pro и нашел там кучу багов. Благодаря подходу с snapshot'ами, WTF умеет работать с самыми тяжелыми приложениями.


Ключевые особенности WTF, на которые стоит обратить внимание:


  • работает только с бинарями под x86;
  • запустить фаззинг можно и на Linux, и на Windows;
  • исследуемым бинарем может быть только бинарь под Windows.

Получается, нельзя фаззить ELF?


На самом деле, можно. Просто нет инструкции, как сделать snapshot для Linux. Все-таки главная мишень — это программы для Windows.


Эта статья появилась из желания обойти это ограничение.

Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments0

Технический анализ эксплойта checkm8

Reading time27 min
Views34K

С большой вероятностью вы уже слышали про нашумевший эксплойт checkm8, использующий неисправимую уязвимость в BootROM большинства iDevice-ов, включая iPhone X. В этой статье мы приведем технический анализ эксплойта и разберемся в причинах уязвимости. Всем заинтересовавшимся — добро пожаловать под кат!

Читать дальше →
Total votes 68: ↑68 and ↓0+68
Comments12

Безопасность iOS-приложений: гайд для новичков

Reading time18 min
Views17K

Привет! Меня зовут Гриша, я работаю application security инженером в компании Wrike и отвечаю за безопасность наших мобильных приложений. В этой статье я расскажу про основы безопасности iOS-приложений. Текст будет полезен, если вы только начинаете интересоваться безопасностью мобильных приложений под iOS и хотите разобраться, как все устроено изнутри.

Читать далее
Total votes 21: ↑21 and ↓0+21
Comments4

Так все же, насколько быстры каналы в Linux?

Reading time26 min
Views23K

В этом посте будет проанализировано, как каналы Unix реализуются в Linux. Для этого мы напишем и в несколько итераций оптимизируем тестовую программу, которая записывает и считывает данные через канал.  

Читать далее
Total votes 77: ↑72 and ↓5+86
Comments31

OSINT самолетов, пароходов и поездов

Reading time2 min
Views27K
Предлагаем вашему вниманию набор инструментов от мировых профессионалов в области OSINT, которые помогут в ваших поисках информации, связанных с транспортом. Если вы решили заняться автостопом, авиастопом или хотите поймать попутный грузовой корабль, то эти сервисы для вас. Если вам срочно понадобилось отследить самолет Илона Маска или просто послушать переговоры диспетчеров, то тоже найдете тут много полезного.

Водный транспорт


MarineTraffic


image

Открытый проект, основанный на сообществе, предоставляющий (почти) в режиме реального времени информацию о передвижении судов и их местонахождении в гаванях и портах.
Читать дальше →
Total votes 56: ↑52 and ↓4+64
Comments11

Анализ теней: 5 примеров использования SunCalc для OSINT расследований

Reading time3 min
Views16K
image

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

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

Есть два проекта: SunCalc.org и SunCalc.net. Последний на досуге разработал хабраюзер Mourner в 2010 году и написал пост на Хабре, а через год выложил библиотеку в открытый доступ (а какой-то ушлый немец без упоминания автора её форкнул).

Под катом несколько примеров, как по теням на кадрах видео и фото можно вычислить недостающую информацию: местоположение или время.
Читать дальше →
Total votes 35: ↑29 and ↓6+36
Comments5

Radar Interference Tracker — инструмент OSINT для обнаружения действующих радаров

Reading time7 min
Views18K
image

Полосы сильных радиопомех в Катаре на спутниковых снимках.

Radar Interference Tracker (RIT) — это open source инструмент, созданный Олли Баллинджером, который позволяет любому человеку искать и потенциально обнаруживать активные военные радарные системы в любой точке Земли. (Github)

Пара спутников Европейского Космического Агентства Sentinel-1, запущенных в 2014 и 2016 годах зондируют Землю при помощи технологии Synthetic Aperture Radar (SAR) и охватывают области, недоступные для обычных видеоспутников. Данные с этих спутников выкладываются в открытый доступ. Бага в том, что на снимках этих спутников часто бывает «засветка» от радиоизлучения, но эту багу исследователи OSINT превратили в фичу.

В 2018 году простой израильский инженер Харел Дан сделал случайное открытие. Он любовался изображениями Ближнего Востока и заметил сильные интерференционные картины. Он решил отфильтровать шум, но вместо «минимизации» шума сделал «максимизацию» и заметил закономерность. Это послужило поводом для энтузиастов запилить open source проект.

(осторожно, много тяжелых гифок)
Читать дальше →
Total votes 27: ↑26 and ↓1+35
Comments6

15 лучших и бесплатных инструментов компьютерного криминалиста

Reading time4 min
Views35K

Добрый день Хабр. Сегодня, мы с вами окунемся в «О дивный мир» форензики. В данной статье Мы решили собрать программы, которые помогут Вам в проведении расследований и, что немаловажно, будут при этом бесплатными.

DISCLAIMER: Данная статья написана в ознакомительных целях и не является руководством к неправомерным действиям или обучающим материалом для сокрытия правонарушений.

Читать далее
Total votes 34: ↑32 and ↓2+35
Comments9

Хватит совать в детей интерфероны

Reading time9 min
Views119K
Интерфероны? Да в задницу их!


Это, как многие думают, концентрат иммунитета. Коротко — нет.

Что происходит:

  1. Ребёнка с симптомами ОРВИ приводят к педиатру.
  2. Педиатр прописывает витамин С, разбавленный сахар и интерферон в форме ректального суппозитория. Если витамин С и дорогой сахар в целом безопасны, то вот с интерфероном это далеко не так.
  3. Уровень интерферона в крови — это сложнейшая система, дающая сигнал к запуску процесса иммунного ответа, связующее звено врождённого и приобретённого иммунитета, но добавление интерферона в организм не означает, что иммунитет будет «сильнее». Упрощая, интерфероны тормозят работу заражённых клеток и дают другим клеткам вокруг поражённой вирусом сигнал, что произошло вторжение, останавливают деление вируса внутри клетки и стимулируют работу Т- и В-лимфоцитов. Так же они способны влиять на деление клеток, что важно при онкологии, например.

Изначально этот класс белков случайно открыли в 1957 году вирусологи Алик Айзекс и Жан Линдеман. У них возникла проблема с мышами, которые не заболевали при введении вируса. Как выяснилось позже, причина была в том, что эти мыши уже болели другой вирусной инфекцией, что приводило к выбросу белков ранее неизвестного класса — интерферонов. Поначалу казалось, что наконец найдено универсальное решение против вирусных болезней, но, как обычно, дальнейшие исследования выявили множество ограничений. Например, при введении серьёзных дозировок интерферона альфа можно получить жёсткую депрессию, биполярное расстройство и другие ментальные нарушения вплоть до бреда и галлюцинаций.

Поэтому сегодня я попробую объяснить, почему этот класс препаратов вовсе не добрые капельки от гриппа, а серьёзное лечение с кучей побочных эффектов. Ну и бесполезность введения его в нос и per rectum тоже затронем.
Читать дальше →
Total votes 161: ↑153 and ↓8+180
Comments231

Как расшифровать прошивку автомобиля в неизвестном формате

Reading time8 min
Views26K

Toyota распространяет свои прошивки в недокументированном формате. Мой заказчик, у которого автомобиль этой марки, показал мне файл прошивки, который начинается так:

CALIBRATIONêXi º
attach.att
ÓÏ[Format]
Version=4

[Vehicle]
Number=0
DateOfIssue=2019-08-26
VehicleType=GUN1**
EngineType=1GD-FTV,2GD-FTV
VehicleName=IMV
ModelYear=15-
ContactType=CAN
KindOfECU=0
NumberOfCalibration=1

[CPU01]
CPUImageName=3F0S7300.xxz
FlashCodeName=
NewCID=3F0S7300
LocationID=0002000100070720
CPUType=87
NumberOfTargets=3
01_TargetCalibration=3F0S7200
01_TargetData=3531464734383B3A
02_TargetCalibration=3F0S7100
02_TargetData=3747354537494A39
03_TargetCalibration=3F0S7000
03_TargetData=3732463737463B4A

3F0S7300forIMV.txt ¸Ni¶m5A56001000820EE13FE2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133E2030133E2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133E2030133E2030133E20301
33E2030133C20EF13FE2030133E20301
33E2030133E20911381959FAB0EE9000
81C9E03ADE35CEEEEFC5CF8DE9AC0910
38C2E031DE35CEEEEFC8CF87E95C0920
...

Дальше идут строки по 32 шестнадцатеричные цифры.

Хозяину и прочим умельцам хотелось бы перед установкой прошивки иметь возможность проверить, что там внутри: засунуть ее в дизассемблер и посмотреть, что она делает.
Читать дальше →
Total votes 44: ↑42 and ↓2+60
Comments33

Делаем маршрутизацию (роутинг) на OpenStreetMap. Добавляем поддержку односторонних дорог

Reading time8 min
Views5.5K

Продолжаем цикл статей про построение систем роутинга со сложными требованиями на основе Open Source базы данных PostgreSQL и расширения PgRouting на карте OpenStreetMap. Сегодня мы поговорим о том, как добавить поддержку односторонних дорог (направлений движения). Зачастую, именно отсутствие этой поддержки является основной причиной смены PgRouting на другой "движок" маршрутизации. Как обычно, все данные и результаты доступны в моем GitHub репозитории OSM Routing Tricks, который я пополняю по мере публикаций.



Небольшой маршрут из 330 адресов на карте OpenStreetMap.

Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments0

Борьба с нагрузкой в PostgreSQL, помогает ли репликация в этом. Андрей Сальников (Data Egret)

Reading time22 min
Views9.5K


Что делать, когда мастер сервер PostgreSQL погибает под нагрузкой?


Довольно часто встречается ситуация, когда база данных не тянет существующую нагрузку и вертикальное масштабирование железа не помогает. Менять PostgreSQL на другую базу данных или переделывать архитектуру приложения и отказываться от СУБД?

Читать дальше →
Total votes 12: ↑11 and ↓1+11
Comments8

Реверс-инжиниринг домашнего роутера с помощью binwalk. Доверяете софту своего роутера?

Reading time10 min
Views67K


Несколько дней назад, я решил провести реверс-инжиниринг прошивки своего роутера используя binwalk.


Я купил себе TP-Link Archer C7 home router. Не самый лучший роутер, но для моих нужд вполне хватает.


Каждый раз когда я покупаю новый роутер, я устанавливаю OpenWRT. Зачем? Как правило производители не сильно заботятся о поддержке своих роутеров и со временем софт устаревает, появляются уязвимости и так далее, в общем вы поняли. Поэтому я предпочитаю хорошо поддерживаемую сообществом open-source прошивку OpenWRT.


Скачав себе OpenWRT, я так же скачал последний образ прошивки под мой новый Archer C7 с официального сайта и решил проанализировать его. Чисто ради фана и рассказать о binwalk.

Читать дальше →
Total votes 41: ↑40 and ↓1+55
Comments16

От земли к FPV Квадрокоптеру: Введение

Reading time7 min
Views45K


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

Total votes 25: ↑25 and ↓0+25
Comments23
1

Information

Rating
Does not participate
Registered
Activity