Pull to refresh
4
Karma
0
Rating

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

  • Followers
  • Following 7
  • Posts
  • Comments

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

Open source *Compilers *Concurrent computing *GitHub Artificial Intelligence
Translation
Экосистема TensorFlow содержит ряд компиляторов и оптимизаторов, работающих на различных уровнях программного и аппаратного стека. Для тех, кто использует Tensorflow ежедневно, этот многоуровневый стек может порождать трудные для понимания ошибки, как времени компиляции, так и в рантайме, связанные с использованием разного рода железа (GPU, TPU, мобильных платформ и пр.)

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



На самом деле всё сложнее
Читать дальше →
Total votes 19: ↑19 and ↓0 +19
Views 5.4K
Comments 0

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

Group-IB corporate blog Information Security *Algorithms *Mathematics *Desktop PC's


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

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

Configuring Linux *System administration *IT Infrastructure *
Tutorial
Достаточно много видел примеров использования whatsapp-уведомлений с zabbix, и другими системами мониторинга, но на собственные эксперименты с whatsapp меня вдохновила эта статья. Однако если с системами мониторинга все ясно, то при наличии прекрасной «врожденной» системы email-оповещений, городить огород ради одной bacula было откровенно лень. Да и вдруг, потом захочется поставить zabbix или еще что-то куда-то послать? Каждому боту по ватсапу?
Так что, пусть это будет что-то более универсальное. Например, отдельный сервер, который сможет обслужить bacula, zabbix, syslog-сервер, сайт или даже виндоусы с макинтошами.
Читать дальше →
Total votes 9: ↑8 and ↓1 +7
Views 41K
Comments 18

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

Information Security *Cryptography *Product Management *Software Social networks and communities
Translation
Автор колонки — Павел Дуров, основатель мессенджера Telegram



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

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

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

Development of mobile applications *

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


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


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

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

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

Badoo corporate blog Open source *PHP *Programming *


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

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

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

Acronis corporate blog Development for iOS *Development of mobile applications *Swift *
Мобильная разработка — это особая кухня, и в ней есть свои нюансы. Именно поэтому собеседования с кандидатами в отдел разработки под iOS должны проходить с определенным уклоном. Сегодня мы расскажем, как проходит прием в штат мобильных разработчиков Acronis, и какие курьезы бывают на собеседованиях, когда соискатель считает, что достаточно запомнить несколько умных слов, а потом «разберемся на месте».

image
Читать дальше →
Total votes 27: ↑24 and ↓3 +21
Views 16K
Comments 86

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

Information Security *System Programming *Programming microcontrollers *

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


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


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

Читать дальше →
Total votes 28: ↑27 and ↓1 +26
Views 19K
Comments 21

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

Information Security *Website development *
Translation

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


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

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

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

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

grep 'authentication failures' /var/log/auth.log
Читать дальше →
Total votes 157: ↑155 and ↓2 +153
Views 85K
Comments 184

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

Information Security *Reverse engineering *
Sandbox


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

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

Positive Technologies corporate blog Information Security *


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

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

Configuring Linux *System administration *Virtualization *
Tutorial


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

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

Information Security *Development for Android *Reverse engineering *CTF *
Tutorial


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

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

«Лаборатория Касперского» corporate blog Information Security *
Не перевелись еще виртуозы на темной стороне. Какие-то ушлые ребята нашли очередное вредоносное применение многострадальному протоколу DNS. Помните, лет десять назад вошли в моду DDoS-атаки типа DNS Amplification? Так они до сих пор в тренде.

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

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

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

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

НеоБИТ corporate blog Information Security *Entertaining tasks CTF *
Для поиска уязвимостей все средства хороши, а чем хорош фаззинг? Ответ прост: тем, что он дает возможность проверить, как себя поведёт программа, получившая на вход заведомо некорректные (а зачастую и вообще случайные) данные, которые не всегда входят во множество тестов разработчика.

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

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

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

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

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

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

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

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

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

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

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

Instant Messaging *PHP *
Sandbox
Привет!
Хотелось бы рассказать вам историю создания одного незамысловатого развлекательного сервиса чат ботов.

Вступление

О себе: Хабр читаю давно (лет этак 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. Там было все то, что я искал.
Подробности
Total votes 27: ↑24 and ↓3 +21
Views 91K
Comments 8

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

PHP *Prolog *

Введение


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

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

Простая клиентская и серверная авторизация пользователя Ajax-сайта с помощью ВКонтакте API

Website development *VK API *
Recovery mode
Sandbox
Tutorial
Для одного проекта понадобилось сделать авторизацию пользователя на сайте с помощью ВКонтакте API как на клиентской стороне, с помощью javascript Open API, так и на серверной, с помощью PHP.

Разрешение доступа к API ВКонтакте

На первый взгляд, задача не такая уж и интересная, благо у ВКонтакте есть хорошая документация с подробным описанием, что да как, и даже пример клиентской авторизации, плюс, в сети уже есть очень много сайтов с авторизацией через ВКонтакте API.
Однако, не всё так просто
Total votes 18: ↑9 and ↓9 0
Views 62K
Comments 3

Information

Rating
Does not participate
Location
Россия
Registered
Activity