Как стать автором
Обновить
3
0

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

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

LLVM для Tensorflow, или компилятор эпохи конца закона Мура

Время на прочтение 4 мин
Количество просмотров 7.7K
Экосистема TensorFlow содержит ряд компиляторов и оптимизаторов, работающих на различных уровнях программного и аппаратного стека. Для тех, кто использует Tensorflow ежедневно, этот многоуровневый стек может порождать трудные для понимания ошибки, как времени компиляции, так и в рантайме, связанные с использованием разного рода железа (GPU, TPU, мобильных платформ и пр.)

Эти компоненты, начиная с графа Tensorflow, могут быть представлены в виде такой диаграммы:



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

По следам RTM. Криминалистическое исследование компьютера, зараженного банковским трояном

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


Об атаках банковского трояна RTM на бухгалтеров и финансовых директоров писали довольно много, в том числе и эксперты Group-IB, но в публичном поле пока еще не было ни одного предметного исследования устройств, зараженных RTM. Чтобы исправить эту несправедливость, один из ведущих специалистов Group-IB по компьютерной криминалистике — Олег Скулкин подробно рассказал о том, как провести криминалистическое исследование компьютера, зараженного банковским трояном в рамках реагирования/расследования инцидента.
Читать дальше →
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 7

Отправка служебных сообщений в whatsapp через yowsup2 методом http-get, в том числе отчетов бэкап-сервера Bacula

Время на прочтение 6 мин
Количество просмотров 45K
Достаточно много видел примеров использования whatsapp-уведомлений с zabbix, и другими системами мониторинга, но на собственные эксперименты с whatsapp меня вдохновила эта статья. Однако если с системами мониторинга все ясно, то при наличии прекрасной «врожденной» системы email-оповещений, городить огород ради одной bacula было откровенно лень. Да и вдруг, потом захочется поставить zabbix или еще что-то куда-то послать? Каждому боту по ватсапу?
Так что, пусть это будет что-то более универсальное. Например, отдельный сервер, который сможет обслужить bacula, zabbix, syslog-сервер, сайт или даже виндоусы с макинтошами.
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Комментарии 18

Почему WhatsApp никогда не станет безопасным

Время на прочтение 5 мин
Количество просмотров 214K
Автор колонки — Павел Дуров, основатель мессенджера Telegram



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

Однако эта новость меня не удивила. В прошлом году WhatsApp пришлось признать очень похожую проблему — хакер мог получить доступ ко всем данным вашего телефона через один видеозвонок.
Читать дальше →
Всего голосов 216: ↑186 и ↓30 +156
Комментарии 743

Мой опыт ошибок

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

Мой опыт ошибок


Список ошибок


  1. Всемогущий класс MCManager
  2. Изобретаем свою навигацию между экранами
  3. Наследования много не бывает
  4. Архитектура собственного производства или продолжаем творить велосипеды
  5. MVVM с душой MVP
  6. Вторая попытка с навигацией или Router и кривизна навигации
  7. Персистент манагер

Многие, и я, в том числе, пишут как правильно поступать в той или иной ситуации, как правильно писать код, как правильно применять архитектурные решения и т. д. Но я хотел бы поделиться своим опытом как было сделано неправильно и выводами, которые я сделал на основе своих ошибок. Скорей всего это будут распространенные ошибки всех, кто идет по пути разработчика, а может что-то будет и вновинку. Я хочу просто поделиться своим опытом и почитать комментарии других ребят.
Читать дальше →
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 3

Статический анализ PHP-кода на примере PHPStan, Phan и Psalm

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


Компания Badoo существует уже более 12 лет. У нас очень много PHP-кода (миллионы строк) и наверняка даже сохранились строки, написанные 12 лет назад. У нас есть код, написанный ещё во времена PHP 4 и PHP 5. Мы выкладываем код два раза в день, и каждая выкладка содержит примерно 10—20 задач. Помимо этого, программисты могут выкладывать срочные патчи — небольшие изменения. И в день таких патчей у нас набирается пара десятков. В общем, наш код меняется очень активно.

Мы постоянно ищем возможности как для ускорения разработки, так и для повышения качества кода. И вот однажды мы решили внедрить статический анализ кода. Что из этого получилось, читайте под катом.
Читать дальше →
Всего голосов 77: ↑76 и ↓1 +75
Комментарии 51

Новичок или опытный? Как нанять мобильного разработчика под iOS, который что-то действительно умеет

Время на прочтение 8 мин
Количество просмотров 17K
Мобильная разработка — это особая кухня, и в ней есть свои нюансы. Именно поэтому собеседования с кандидатами в отдел разработки под iOS должны проходить с определенным уклоном. Сегодня мы расскажем, как проходит прием в штат мобильных разработчиков Acronis, и какие курьезы бывают на собеседованиях, когда соискатель считает, что достаточно запомнить несколько умных слов, а потом «разберемся на месте».

image
Читать дальше →
Всего голосов 27: ↑24 и ↓3 +21
Комментарии 86

Немного о ARM Security Extensions (aka ARM TrustZone)

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

О чем эта статья


На Хабре уже несколько раз упоминали о SMM — режиме процессора x86/64 который имеет больше привилегий чем даже режим гипервизора. Нечто подобное есть и в процессорах архитектуры ARMv7 и ARMv8. Вычислительные ядра этих архитектур могут иметь опциональное расширение под названием ARM Security Extensions, которое позволит разделить исполняемый код, память и периферию на два домена — доверенный и недоверенный. Официальное маркетинговое название этой технологии — ARM TrustZone. Но технари чаще предпочитают говорить о security extensions.


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

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

Защищаем сайт с помощью ZIP-бомб

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

Старые методы по-прежнему работают


[Обновление] Теперь я в каком-то списке спецслужб, потому что написал статью про некий вид «бомбы», так?

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

Когда я в возрасте 13 лет впервые захостил свою маленькую Linux-коробочку с доступом по SSH, я смотрел логи и каждый день видел IP-адреса (в основном, из Китая и России), которые пытались подключиться к моей сладенькой маленькой коробочке (которая на самом деле была старым ноутом ThinkPad T21 со сломанным дисплеем, жужжавшим под кроватью). Я сообщал эти IP их провайдерам.

На самом деле если у вас Linux-сервер с открытым SSH, то можете сами посмотреть, сколько попыток подключений происходит ежедневно:

grep 'authentication failures' /var/log/auth.log
Читать дальше →
Всего голосов 157: ↑155 и ↓2 +153
Комментарии 184

Уязвимость ВКонтакте: отправляем сообщение с кодом восстановления страницы на чужой номер

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


Обычным весенним днем, занимаясь «подготовкой» к ЕГЭ по информатике, наткнулся на статью об уязвимости Facebook, позволявшей взломать все аккаунты в социальной сети, за которую выплатили 15000$. Суть уязвимости заключалась в переборе кодов восстановления на тестовом домене компании. Я подумал, а чем собственно ВКонтакте хуже? И решил попробовать провернуть подобный трюк у них. Зная, что веб-версия уже достаточно хорошо исследована, жертвой должен был стать Android клиент, а что из этого вышло можно прочитать под катом.
Всего голосов 221: ↑219 и ↓2 +217
Комментарии 144

МИФИ организует олимпиаду по информационной безопасности для студентов

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


Совсем скоро, 21-23 апреля 2017 года, состоится всероссийская студенческая олимпиада по информационной безопасности. Соревнование проходит на базе Национального исследовательского ядерного университета «МИФИ» при участии Positive Technologies. Принять участие в олимпиаде могут студенты в возрасте 18 до 25 лет.
Читать дальше →
Всего голосов 17: ↑15 и ↓2 +13
Комментарии 3

Запускаем VMWare ESXi 6.5 под гипервизором QEMU

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


На свете существует замечательный гипервизор ESXi от компании VMWare, и все в нем хорошо, но вот требования к “железу”, на котором он может работать, весьма нескромные. ESXi принципиально не поддерживает программные RAID’ы, 100-мегабитные и дешевые гигабитные сетевые карты, поэтому попробовать, каков он в работе, можно только закупившись соответствующим оборудованием.
Однако ESXi самые “вкусные” возможности ESXi открываются тогда, когда у нас есть не один, а несколько хостов ESXi — это кластеризация, живая миграция, распределенное хранилище VSAN, распределенный сетевой коммутатор и т.п. В этом случае затраты на тестовое оборудование уже могут составить приличную сумму. К счастью, ESXi поддерживает Nested Virtualization — то есть способность запускаться из-под уже работающего гипервизора. При этом и внешний гипервизор понимает, что его гостю нужен доступ к аппаратной виртуализации, и ESXi знает, что работает не на голом железе. Как правило, в качестве основного гипервизора также используется ESXi — такая конфигурация поддерживается VMWare уже довольно давно. Мы же попробуем запустить ESXi, использую гипервизор QEMU. В сети есть инструкции и на этот счет, но, как мы увидим ниже, они слегка устарели.
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 10

NeoQuest 2017: Реверс андроид приложения в задании «Почини вождя!»

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


Всем доброго времени суток, сегодня, 10 марта закончился онлайн этап NeoQuest 2017. Пока жюри подводят итоги и рассылают пригласительные на финал, предлагаю ознакомиться с райтапом одного из заданий: Greenoid за который судя по таблице рейтинга, можно было получить до 85 очков.
Читать дальше →
Всего голосов 23: ↑20 и ↓3 +17
Комментарии 9

Security Week 10: удаленное управление по DNS, как Google капчу свою обманул, дыра в плагине к Wordpress

Время на прочтение 4 мин
Количество просмотров 18K
Не перевелись еще виртуозы на темной стороне. Какие-то ушлые ребята нашли очередное вредоносное применение многострадальному протоколу DNS. Помните, лет десять назад вошли в моду DDoS-атаки типа DNS Amplification? Так они до сих пор в тренде.

Еще тогда ддосеры додумались использовать замечательные поля TXT в записи DNS. Туда ведь можно поместить произвольные данные, потому организаторы атак регистрировали домен с рандомным именем, а TXT под завязку забивали мусором (благо, в поле влезало до 4 Кб – 16 строк по 256 байт). Запрос — 64 байт, ответ — 3,8 Кб (чтобы уместиться в UDP), жертва получает трафик по курсу 1:60, и ее канал, а то и канал ее провайдера, говорит «ква» уже от нескольких десятков ботов.
Читать дальше →
Всего голосов 24: ↑23 и ↓1 +22
Комментарии 8

Универсальный грамматический анализатор естественных языков с нуля. Выпуск 1

Время на прочтение 13 мин
Количество просмотров 13K
Компиляторы, интерпретаторы… Сколько им посвещено книг и проектов! Баста, надоело! А вот сунешся в область анализа естественных языков, и никакой информации! А все что есть как-то очень сложно, непонятно и не универсально. Была у меня идея создать средневековую лингвистическую новеллу. Чтобы можно было разговаривать с персонажами на каком нибудь древнем естественном или вымышленном языке. На Латыни например? И на Квенья. И чтобы они понимали. А почему бы и нет?
Читать дальше →
Всего голосов 41: ↑37 и ↓4 +33
Комментарии 5

Поиск уязвимости методом фаззинга и разработка шеллкода для её эксплуатации

Время на прочтение 9 мин
Количество просмотров 22K
Для поиска уязвимостей все средства хороши, а чем хорош фаззинг? Ответ прост: тем, что он дает возможность проверить, как себя поведёт программа, получившая на вход заведомо некорректные (а зачастую и вообще случайные) данные, которые не всегда входят во множество тестов разработчика.

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

В этой статье мы:

  • продемонстрируем, как фаззить обработчик JSON-запросов;
  • используя фаззинг, найдём уязвимость переполнения буфера;
  • напишем шеллкод на Ассемблере для эксплуатации найденной уязвимости.

Разбирать будем на примере исходных данных задания прошлого NeoQUEST. Известно, что 64-хбитный Linux-сервер обрабатывает запросы в формате JSON, которые заканчиваются нуль-терминатором (символом с кодом 0). Для получения ключа требуется отправить запрос с верным паролем, при этом доступа к исходным кодам и к бинарнику серверного процесса нет, даны только IP-адрес и порт. В легенде к заданию также было указано, что MD5-хеш правильного пароля содержится где-то в памяти процесса после следующих 5 символов: «hash:». А для того, чтобы вытащить пароль из памяти процесса, необходима возможность удалённого исполнения кода.
Читать дальше →
Всего голосов 41: ↑38 и ↓3 +35
Комментарии 6

Пулы потоков: ускоряем NGINX в 9 и более раз

Время на прочтение 15 мин
Количество просмотров 87K
Как известно, для обработки соединений NGINX использует асинхронный событийный подход. Вместо того, чтобы выделять на каждый запрос отдельный поток или процесс (как это делают серверы с традиционной архитектурой), NGINX мультиплексирует обработку множества соединений и запросов в одном рабочем процессе. Для этого применяются сокеты в неблокирующем режиме и такие эффективные методы работы с событиями, как epoll и kqueue.

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

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

У медали есть и обратная сторона. Главной проблемой асинхронного подхода, а лучше даже сказать «врагом» — являются блокирующие операции. И, к сожалению, многие авторы сторонних модулей, не понимая принципов функционирования NGINX, пытаются выполнять блокирующие операции в своих модулях. Такие операции способны полностью убить производительность NGINX и их следует избегать любой ценой.

Но даже в текущей реализации NGINX не всегда возможно избежать блокировок. И для решения данной проблемы в NGINX версии 1.7.11 был представлен новый механизм «пулов потоков». Что это такое и как его применять разберем далее, а для начала познакомимся с нашим врагом в лицо.
Читать дальше →
Всего голосов 72: ↑71 и ↓1 +70
Комментарии 58

Исследование защищенности карты Тройка

Время на прочтение 18 мин
Количество просмотров 202K
Карта тройка

Карта Тройка представляет из себя универсальный пополняемый электронный кошелек, широко используемый в системах оплаты общественного транспорта Москвы с 2013 года.

Цель данного исследования — выяснить защищенность системы электронного кошелька от подделки баланса, оценить безопасность инфраструктуры, работающей с картой. Вся работа была выполнена без использования специальных технических средств. Использовался дешевый смартфон на платформе Android и персональный компьютер. Общее время, затраченное на исследование, составило 15 дней.

В ходе работы был успешно проведен реверс­-инжиниринг мобильного приложения «Мой проездной», что позволило получить доступ к памяти карты и изучить структуру хранения данных. Были найдены уязвимости, позволяющие выполнить подделку баланса, записанного на электронном кошельке карты Тройка. В результате чего стало возможным использование систем, поддерживающих карту, без оплаты.

Итогом исследования стала разработка приложения TroikaDumper, позволяющего эксплуатировать уязвимости системы электронного кошелька.

Внимание! Данные материалы представлены исключительно в ознакомительных целях. Подделка проездных билетов является уголовным преступлением и преследуется по закону.

Читать дальше →
Всего голосов 380: ↑374 и ↓6 +368
Комментарии 348

Чат-бот приложения через skype, jabber и whatsapp

Время на прочтение 15 мин
Количество просмотров 93K
Привет!
Хотелось бы рассказать вам историю создания одного незамысловатого развлекательного сервиса чат ботов.

Вступление

О себе: Хабр читаю давно (лет этак 5), а вот зарегистрировался месяц назад, так как очень хотелось поделиться. Работаю в IT компании инженером по тестированию. Но меня всегда тянуло к разработке. И лет 7 назад занялся freelance параллельно основной работе. Начинал, как и все с малого, разбирался при помощи google. Писал всякие web непотребства. Все это ради достижения неких финансовых целей. Да и вообще вся жизнь состояла из цикла: поиск цели – достижение любыми средствами – удовлетворение – поиск новой цели. Так было и с freelance.

Переломный момент

Шла зима 2012/2013 года. Работал я на freelance над проектом онлайн-консультанта, и мне надо было сделать интеграцию с jabber и skype, то есть чтобы операторы могли работать с клиентом печатая в свой im клиент, а пользователь сайта получал это все на web. После поиска в google, оказалось, что с jabber все просто, любой xmpp сервер на выбор (я выбрал ejabbered) и библиотечка для работы с ним JAXL (взял на github), тогда еще версии 2.х. А вот со Skype были проблемы: на сайте в разделе Developers предлагался какой-то kit за деньги (и лицензия, запрещающая серверное использование), с ненужными мне активациями и с упоминанием про какой-то api. А хотелось чего-то более простого. И тут я наткнулся на этот api в «Доступ к Skype API используя PHP на *nix системах», сейчас на сайте skype упоминания о работе с api отсутствуют уже, хотя тогда было, и скачал pdf по работе с ним через dbus. Там было все то, что я искал.
Подробности
Всего голосов 27: ↑24 и ↓3 +21
Комментарии 8

Разговорный бот на php+prolog

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

Введение


Многие считают, что язык программирования prolog является сугубо научным и устаревшим языком для обучения студентов. Большинство в университете «напрягали» именно этим языком на предметах, хоть немного приближенных к теме искусственного интеллекта, эта тема не обошла и меня.

Стандартная задача, которая мне попалась – оказалась настолько скучной и распространенной для этого языка, что был соблазн «скачать готовую бесплатно без регистрации», но я решил вынести максимум из этого курса и повернуть тему пролога, для написания чего-нибудь практически значимого и интересного. Прочитав достаточно много разной документации, в том числе и посты на хабре о prolog, я пришел к выводу, что пролог является отличным инструментом для обработки предложений формального языка. Я решил, что было бы круто – написать бота, который бы умел отвечать на фразы (может быть даже складно) вконтакте.
Читать дальше →
Всего голосов 39: ↑35 и ↓4 +31
Комментарии 21

Информация

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