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

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

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

Как работает ProGuard

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

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

В данной статье я не буду рассказывать ни о том, как прописывать keep rules или о каких-то полезных опциях. На мой взгляд для того чтобы втащить в проект ProGuard вполне достаточно просмотреть прикрепленные к нему туториалы. Я буду разбирать как именно работает ProGuard с точки зрения кода. И если вы заинтересованы — добро пожаловать под кат.

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

Что нужно знать перед тем, как начать карьеру в аудиоиндустрии

Время на прочтение8 мин
Количество просмотров12K
Профессий, связанных со звуком, много — это и сами музыканты, и аудиоинженеры в студиях, и создатели аппаратуры, и диджеи на радио, и другие. В этой статье мы расскажем, что предстоит испытать тем, кто решится начать карьеру в этой области — к чему следует быть готовым.

Читать дальше →
Всего голосов 13: ↑10 и ↓3+7
Комментарии7

В Германии разработали требования к домашним маршрутизаторам

Время на прочтение1 мин
Количество просмотров24K
Продолжительное время в Интернете регулярно появляются статьи об уязвимости маршрутизаторов для SOHO сегмента. Я тоже публиковал статью как обнаружить, что Ваш Микротик взломан. Резкий рост участников нашего канала в Телеграм (@router_os) показал, что проблема крайне остра.

Но проблема стоит глобальней.

Подавляющее большинство пользователей, покупающих маршрутизатор для дома, не понимают как эта «чёрная коробочка» работает. Они тыкают по кнопочкам в соответствии с инструкцией «quick start». А кто-то чисто методом «научного тыка» настраивает. Интернет появляется.
Дальше устройство начинает жить своей жизнью. И злоумышленникам не представляет труда использовать роутер для своих целей. Готовых инструментов для поиска таких железок в Интернете — полно.

Но!
Лёд тронулся, господа присяжные заседатели! (С) «Великий комбинатор»


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

Загрузка ядра Linux. Часть 1

Время на прочтение12 мин
Количество просмотров62K
От загрузчика к ядру

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

Мне очень интересно разобраться, как работают низкоуровневые штуки: как программы запускаются на моём компьютере, как они расположены в памяти, как ядро управляет процессами и памятью, как работает сетевой стек на низком уровне и многое другое. Итак, я решил написать еще одну серию статей о ядре Linux для архитектуры x86_64.

Обратите внимание, что я не профессиональный разработчик ядра и не пишу код ядра на работе. Это всего лишь хобби. Мне просто нравятся низкоуровневые вещи и интересно в них копаться. Поэтому если заметите какую-то путаницу или появилятся вопросы/замечания, свяжитесь со мной в твиттере, по почте или просто создайте тикет. Буду благодарен.
Читать дальше →
Всего голосов 69: ↑67 и ↓2+65
Комментарии40

Be a security ninja: запись вебинаров и бонусный уровень

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

 
Информационная безопасность – одна из дисциплин, набирающих бешеную популярность в последние годы. Мы решили помочь всем желающим и организовали цикл бесплатных вебинаров по информационной безопасности. Сегодня мы публикуем видеозаписи и анонсируем бонусный уровень, посвященный практической информационной безопасности.
Всего голосов 22: ↑21 и ↓1+20
Комментарии3

11 способов (не) стать жертвой взлома в Kubernetes

Время на прочтение13 мин
Количество просмотров20K
Прим. перев.: Оригинал этой статьи был опубликован в официальном блоге Kubernetes и написан Andrew Martin — одним из основателей молодой британской компании Control Plane, специализирующейся на безопасности для cloud native-приложений, запускаемых в K8s.



Безопасность в Kubernetes прошла длинный путь с момента появления проекта, однако в ней по-прежнему встречаются подводные камни. Предлагаем список полезных рекомендаций по тому, как защитить кластеры и повысить их устойчивость в случае взлома: начнём с control plane, продолжим с рабочими нагрузками и сетевой безопасностью, а закончим оценкой будущего безопасности.
Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии1

Курс MIT «Безопасность компьютерных систем». Лекция 10: «Символьное выполнение», часть 1

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

Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год


Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
Лекция 2: «Контроль хакерских атак» Часть 1 / Часть 2 / Часть 3
Лекция 3: «Переполнение буфера: эксплойты и защита» Часть 1 / Часть 2 / Часть 3
Лекция 4: «Разделение привилегий» Часть 1 / Часть 2 / Часть 3
Лекция 5: «Откуда берутся ошибки систем безопасности» Часть 1 / Часть 2
Лекция 6: «Возможности» Часть 1 / Часть 2 / Часть 3
Лекция 7: «Песочница Native Client» Часть 1 / Часть 2 / Часть 3
Лекция 8: «Модель сетевой безопасности» Часть 1 / Часть 2 / Часть 3
Лекция 9: «Безопасность Web-приложений» Часть 1 / Часть 2 / Часть 3
Лекция 10: «Символьное выполнение» Часть 1 / Часть 2 / Часть 3
Всего голосов 21: ↑21 и ↓0+21
Комментарии0

Курс MIT «Безопасность компьютерных систем». Лекция 3: «Переполнение буфера: эксплойты и защита», часть 3

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

Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год


Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
Лекция 2: «Контроль хакерских атак» Часть 1 / Часть 2 / Часть 3
Лекция 3: «Переполнение буфера: эксплойты и защита» Часть 1 / Часть 2 / Часть 3
Всего голосов 15: ↑14 и ↓1+13
Комментарии0

Linux-контейнеры: изоляция как технологический прорыв

Время на прочтение11 мин
Количество просмотров39K
Представьте, что вы разрабатываете приложение, причем, на своем ноутбуке, где рабочее окружение имеет определенную конфигурацию. Приложение полагается на эту конфигурацию и зависит от определенных файлов на вашем компьютере. У других разработчиков конфигурация может слегка отличаться. Кроме того, в вашей организации есть тестовые и промышленные среды со своими конфигурациями и наборами файлов. Вам хотелось бы как можно точнее эмулировать эти среды у себя, но совершенно не хочется воспроизводить сложные и тяжелые сервера на своей машине. Как же сделать так, чтобы приложение работало во всех средах, прошло контроль качества и попало в продакшн, не сталкиваясь по дороге с массой проблем, требующих постоянной доработки кода?



Ответ: использовать контейнеры. Вместе с вашим приложением контейнер содержит в себе все необходимые конфигурации (и файлы), поэтому его можно легко переносить из среды разработки в среду тестирования, а затем в промышленную среду, не опасаясь никаких побочных эффектов. Кризис устранен, все в выигрыше.
Читать дальше: Linux-контейнеры
Всего голосов 18: ↑14 и ↓4+10
Комментарии7

Чему я научился, пройдя множество собеседований в компаниях и стартапах из сферы ИИ

Время на прочтение14 мин
Количество просмотров38K
За последние восемь месяцев я прошел собеседования в самых разных компаниях — DeepMind в Google, Wadhwani Institute of AI, Microsoft, Ola, Fractal Analytics и некоторых других — в основном на позиции Data Scientist, Software Engineer и Research Engineer. По ходу дела мне предоставлялись возможности не только пообщаться со многими талантливыми людьми, но также по-новому взглянуть на себя с пониманием того, что хотят услышать работодатели, когда беседуют с кандидатами. Думаю, если бы я располагал этой информацией раньше, то мог бы избежать многих ошибок и подготовиться к собеседованиям куда лучше. Это и стало импульсом к написанию данной статьи — возможно, она поможет кому-нибудь получить работу мечты.


В конце концов, если уж собираешься две трети своего времени (если не больше) проводить за работой, она должна быть этого достойна.
Читать дальше →
Всего голосов 28: ↑20 и ↓8+12
Комментарии6

Контейнеры для взрослых (Часть 02): Практический гид по терминологии

Время на прочтение10 мин
Количество просмотров13K
Есть много шаблонов построения контейнеров. Контейнер – это всего лишь выполняемая версия своего же образа. Поэтому способ построения контейнера тесно связан с тем, как он запускается.

Одни образы контейнеров прекрасно работают без каких-либо особых привилегий, другим в обязательном порядке требуются права root. Причем один и тот же образ/контейнер может объединять в себе сразу несколько шаблонов построения и сценариев использования.



Ниже мы рассмотрим наиболее типовые сценарии использования контейнеров.

(Введение в терминологию контейнеров см. в первой части)
Читать дальше: Практический гид по контейнерам
Всего голосов 14: ↑13 и ↓1+12
Комментарии0

Контейнеры для взрослых (Часть 01): Практический гид по терминологии

Время на прочтение16 мин
Количество просмотров27K
Вы можете спросить, зачем разбираться с терминологией, если концепция контейнеров выглядит вполне простой и понятной? Однако, довольно часто неверное использование терминов создает препятствия на пути к освоению контейнеров. Например, люди часто считают, что термины «контейнеры» и «образы» взаимозаменяемы, хотя на самом деле между ними есть важные концептуальные различия. Другой пример: в мире контейнеров «репозиторий» означает вовсе не то, что вы думаете. Кроме того, контейнерные технологии – это гораздо больше, чем только docker.



Так что, не владея терминологией, будет сложно понять, чем docker отличается от CRI-O, rkt или lxc/lxd; либо оценить роль Open Container Initiative в деле стандартизации контейнерных технологий.
Читать дальше: Практический гид по контейнерной терминологии
Всего голосов 13: ↑11 и ↓2+9
Комментарии0

Где и как изучать машинное обучение?

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

Всем привет!


Ни для кого не секрет, что интерес к машинному обучению и искусственному интеллекту растет в лучшем случае по экспоненте. Тем временем мой Яндекс Диск превратился в огромную свалку пейперс, а закладки в Google Chrome превратились в список, длина которого стремится к бесконечности с каждым днем. Таким образом, дабы упростить жизнь себе и вам, решил структурировать информацию и дать множество ссылок на интересные ресурсы, которые изучал я и которые рекомендую изучать вам, если вы только вначале пути (буду пополнять список постоянно).

Путь для развития новичка я вижу примерно так:

Untitled_presentation
Читать дальше →
Всего голосов 47: ↑44 и ↓3+41
Комментарии19

Быстрое создания SELinux-модулей с помощью утилиты sepolicy

Время на прочтение5 мин
Количество просмотров8.2K
В пакет policycoreutils-devel входит python-утилита sepolicy, которая сильно облегчает написание модуля. В этой статье мы рассмотрим процесс создания модуля для nmap с помощью этой утилиты.


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

Анимации в мире состояний

Время на прочтение16 мин
Количество просмотров17K
Многие уже научились строить чистые интерфейсы и писать «undo-redo» в несколько строчек. Но как быть с анимациями? Часто их обходят стороной, и они не всегда вписываются в подход (state) ↦ DOM. Есть отличные решения вроде React Motion, но что если вам нужно делать сложные анимации или работать с Canvas, используя физический движок?

В нашем тексте рассказывается, как работать с анимациям в React-приложениях, и сравнивается несколько подходов (D3, React-Motion, «грязные компоненты»). А также о том, как «запускать» анимации в Redux-приложениях. Материал основан на расшифровке доклада Алексея Тактарова с нашей декабрьской конференции HolyJS 2017 Moscow. Прилагаем заодно видеозапись этого доклада:


Осторожно, трафик: под катом много картинок и гифок (сами понимаете, материал про анимации).
Всего голосов 35: ↑35 и ↓0+35
Комментарии1

Кросскомпиляция под ARM

Время на прочтение8 мин
Количество просмотров86K
Достаточно давно хотел освоить сабж, но всё были другие более приоритетные дела. И вот настала очередь кросскомпиляции.

В данном посте будут описаны:

  1. Инструменты
  2. Элементарная технология кросскомпиляции
  3. И, собственно, HOW2

Кому это интересно, прошу под кат.
Читать дальше →
Всего голосов 28: ↑24 и ↓4+20
Комментарии28

Тестирование документации к программным продуктам

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

Как наломать велосипедов поверх костылей при тестировании своего дистрибутива

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

Диспозиция


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



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

Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии7

Расширение Visual C++ for Linux Development

Время на прочтение9 мин
Количество просмотров37K
Расширение Visual C++ for Linux Development позволяет создавать решения на C++ для серверов, настольных ПК и устройств под управлением Linux. Управлять подключениями к ним можно непосредственно в Visual Studio. VS будет автоматически копировать и удалённо собирать исходный код программ. Также среда позволяет запустить ваше приложение в режиме отладки. Система управления проектами поддерживает создание решений для конкретных архитектур, в том числе APM. Под катом мы расскажем, как начать работу с новыми проектами для Linux.


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

Эволюция вредоносных расширений: от любительских поделок до стеганографии. Опыт команды Яндекс.Браузера

Время на прочтение9 мин
Количество просмотров35K
Расширения – это отличный инструмент для добавления новых возможностей в браузер. А еще с их помощью тайно встраивают рекламу, воруют данные, рассылают спам и даже майнят криптовалюты. Сегодня мы поделимся с вами нашим опытом борьбы с подобными расширениями, вы узнаете об основных каналах распространения сомнительных разработок и о способах маскировки вредоносной сущности от модераторов и сканеров.



Яндекс.Браузер изначально поддерживал установку расширений для Chromium, но в первое время индустрия заработка на дополнениях еще только зарождалась, поэтому особых проблем не было. Вредоносные образцы, конечно же, встречались: мы либо сами находили их вручную, либо узнавали о них из обращений в поддержку. Уникальные идентификаторы (ID) таких разработок вносились в черный список на сервере, к которому через API обращался Яндекс.Браузер и блокировал установку потенциально опасных расширений. Причем сами расширения очень редко маскировались: все их возможности почти всегда были явно описаны на HTML и JS без попыток что-либо скрыть. Но потом все изменилось.

Читать дальше →
Всего голосов 95: ↑92 и ↓3+89
Комментарии101

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность