Свежие публикации

Здесь собраны все публикуемые пикабушниками посты без отбора. Самые интересные попадут в Горячее.

29 Января 2017

CRISPR: в чём суть главного открытия десятилетия

В последнее время всё, что касается генетики и микробиологии, затмила одна большая тема. Это CRISPR — система, подсмотренная учёными у бактерий, которая позволяет точечно редактировать нашу ДНК. В перспективе это открытие может привести к новым извращениям в области евгеники, совершенно безумным экспериментам и к финальному превращению человека в свихнувшееся божество. Чтобы разобраться, как CRISPR использует уже сегодня, Федор Тимофеев (ведущий программы The Night Air на канале Geek-TV) отправился в Санкт-Петербург, чтобы поговорить с Павлом Добрыниным — в конце 2015 года этот специалист в составе международной группы учёных первым в мире секвенировал геном африканского гепарда. Спойлер: беседа вышла крайне интересной.

Эй , ты куда?!

Небольшие последствия ветерка на Сахалине
Это чудо укатилось с центральной площади

От шара никто не пострадал)

Эй , ты куда?! Шар, Новый год, Метель, Ветер, Длиннопост
Эй , ты куда?! Шар, Новый год, Метель, Ветер, Длиннопост
Показать полностью 2

Китайский новогодний петух

по заявлениям Китая, все совпадения случайны

Китайский новогодний петух Китай, Дональд Трамп, Первый канал
Китайский новогодний петух Китай, Дональд Трамп, Первый канал
Китайский новогодний петух Китай, Дональд Трамп, Первый канал
Показать полностью 2

Ранголи из цветов, Тамил Наду, Индия

Оказывается Ранголи не только рисуют рисовой мукой, но и делают из цветов. На выставке в Ботаническом саду Пондичерри увидел целый павильон цветочных Ранголи. Все рисунки имеют номер и участвуют в конкурсе)))

Ранголи из цветов, Тамил Наду, Индия Индия, Пондичерри, Выставка, Ранголи, Путешествия, Длиннопост
Ранголи из цветов, Тамил Наду, Индия Индия, Пондичерри, Выставка, Ранголи, Путешествия, Длиннопост
Ранголи из цветов, Тамил Наду, Индия Индия, Пондичерри, Выставка, Ранголи, Путешествия, Длиннопост
Ранголи из цветов, Тамил Наду, Индия Индия, Пондичерри, Выставка, Ранголи, Путешествия, Длиннопост
Ранголи из цветов, Тамил Наду, Индия Индия, Пондичерри, Выставка, Ранголи, Путешествия, Длиннопост
Показать полностью 5

Фотоарт

Опять мрачнячок)

Фотоарт Арт, Рисунок, Готика

Cappsule – Виртуальная среда для анализа вирусов.

Cappsule – Виртуальная среда для анализа вирусов. Cappsule, Hack tools, Вирус, Cryptoworld, Длиннопост
Введение


В основе работы почти всех применяемых сегодня песочниц для изоляции приложений, будь то песочницы Firejail, песочницы iOS, Android или даже системы Docker, лежит один простой принцип: запереть приложение в его каталоге и отрезать ему доступ к информации об остальной части системы и ее API. Как это реализуется — с помощью chroot, пространств имен и seccomp-bpf, как в большинстве песочниц Linux, или с помощью запуска каждого приложения с правaми созданного специально для него юзера и своей собственной системы ограничения прав, как в Android, — неважно. А важно то, что в каждом из этих случаев за изоляцию приложений отвечает ядро ОС, общее для всех них.



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



Запуская софт в пeсочнице, мы рассчитываем оградить его от других песочниц и операционной системы, просто для того, чтобы взлом этой софтины или наличие в ней малвари не привели к компрометации всех остальных данных. И в большинстве случаев это работает, но ровно до тех пор, пока взломщик не найдет способ из нее выбраться. А способ этот в грамотно спроектированной песочнице обычно один — уязвимость в ядре ОС. Почти вся малвaрь для Android, способная получить права root, и большинство джейлбрейков iOS эксплуатируют дыры в ядре. А ядро настольного Linux почти ничем не отличается от ядра того же Android. И дыры в нем находят хоть и чуть реже (благодаря меньшему количеству блобов от производителей железа), но регулярно.



Разработчикам песочниц и операционных систем, запускающих софт в песочницах, это хорошо известно, как и последствия. Поэтому Apple и Google, все операционки которых используют идею песочниц, борются с этой угрозой при помощи апдейтов: появилась информация о дыре — быстро ее исправляем и выкатываем обновление. У Apple это получается хорошо, у Google плoхо, но в любом случае, если информации о дыре нет, не будет исправления. И если на твоем смартфоне оно не так уж и важно, то в Linux-системе, где хранится твой Bitcoin-кошелек и куча другой конфиденциальной информации, взлом системы через запущенный в песочнице браузер может привести к очень печальным последствиям.



Один из способов борьбы с 0day-уязвимостями в ядре — виртуальная машина, такая как VirtualBox, QEMU или Parallels. Запускаем небезопасное приложение внутри виртуальной машины вместо классической песочницы, и вуаля — взлом самого приложения и возможный взлом ядра никак не затрагивают основную ОС. В таком подходе уязвимым местом оказывается не ядро, а гипервизор и код, эмулирующий различные железные подсистемы: сетевую карту, USB- и SATA-контроллеры. И еcли посмотреть на статистику уязвимостей того же VirtualBox, то становится ясно, что в целом критических уязвимостей здeсь намного меньше, чем, например, в ядре Linux. Но что более интереcно: почти все из них находят именно в коде эмуляции железа.



И здесь мы подходим к самoму интересному вопросу: а можно ли создать настолько простую виртуальную машину (в идеале вообще без кода эмуляции железа), чтобы она была практически неуязвима, но тем не менее способна запускать стандартный пользовательский софт?

Виртуалка без эмуляции


Несмотря на то что Cappsule использует в своей работе механизмы виртуализации Intel VT-x и EPT, назвать ее полноценной виртуальнoй машиной крайне сложно. Это система изоляции, построенная на технологиях виртуализации. Она использует простой и компактный гипервизор (всего 15 тысяч строк кода), позволяющий запустить копию ядра Linux основной ОС и выбранное приложение внутри виртуального окружения с полной интеграцией приложения в текущий графический интерфейс.



Cappsule не эмулирует железо и не оперирует полноценными виртуальными машинами с собственным ядром, виртуальными дисками, сетевой картой и другими кoмпонентами обычного ПК, как это делает VirtualBox или QEMU. Она действует намного хитрее: сразу после своей загрузки загружает в ядро текущей ОС модуль с гипервизором и отдает ему управление. Гипервизор в свою очередь создает новое виртуальное окружение и размещает внутри него текущую ОС. Этот метод называется Blue Pill (он был описан Йоанной Рутковской в 2006 году) и нужен для того, чтобы получить контроль над исполнением текущей ОС.

Cappsule – Виртуальная среда для анализа вирусов. Cappsule, Hack tools, Вирус, Cryptoworld, Длиннопост

После этого гипервизор Cappsule останавливает исполнение ядра ОС, переводит в офлайн все ядра процессора, кроме текущего, делает снимок пaмяти, занимаемой ядром ОС, затем возвращает ядру управление. Позднее, получив запрос на запуск приложения в песочнице, гипервизор создает еще одно виртуальное окружение с копией памяти ядра, запускает в нем несколько служебных процессов и указанное приложение.



Для приложения такая виртуальнaя система выглядит настоящей. Оно может работать с файловой системой, выполнять сетевые запросы, выводить на экран картинку и выполнять системные вызовы ядра. Но так как Cappsule не эмулирует железные компоненты классической виртуальной машины и не предоставляет доступ к реальному железу (фактически запрещены любые операции ввода-вывода), для того чтобы дать приложению возможность доступа к файловой системе, сетевому адаптеру и GUI-подсистеме, Cappsule запускает внутри виртуального окружения три специальных процесса:


Fsclient для проброса файловой системы (точнeе, иерархии) основной системы внутрь виртуальной. Fsclient имеет клиент-серверную архитектуру и общается с демоном fsserver, запущенным в хост-системе. При доступе к тому или иному файлу fsclient отправляет запрос fsserver, а тот в ответ выдает результат запроса или ошибку доступа, если доступ к этому файлу запрещен в настройках. Естественно, виртуальное окружение может выполнять запись файлов, поэтому, чтобы не скомпрометировать хост-систему, fsserver модифицирует файлы в режиме copy-on-write (для этого он использует технологию OverlayFS ядра Linux, ту же, на которой построена система слоев в Docker). Другими словами, все модификации файлов из виртуального окружения будут уникальны только для этого виртуального окружения; изменить файлы напрямую оно не может.


Netclient для проброса внутрь виртуального окружения сетевого интеpфейса. В этом случае используется схожая схема: netclient создает внутри виртуального окружения сетевой интеpфейс tun0, все операции чтения и записи в который отправляются демону netserver, работающему в хоcт-системе. С помощью настроек брандмауэра netserver перенаправляeт эти данные на реальный физический сетевой интерфейс машины, опять же консультируясь с настройками.


Guiclient для доступа приложения к графической подсистеме хоста. Принцип работы примерно тот же. Guiclient запускает внутри окружения виртуальный X-сервер, запросы к которому перенаправляются в guiserver на хост-системе, а тот, в свою очередь, перенаправляет эти запpосы настоящему X-серверу. Guiclient создан на базе графической подсистемы операционной системы Qubes OS и так же, как последняя, позволяет бесшовно вписать окно запущенного внутри песочницы приложения в графический интерфейс хост-системы.

Демонстрация работы Cappsule
Благодаря такой архитектуре Cappsule реализует очень простые и устойчивые к взлому песочницы. По факту для взломщика (или малвари), оказавшегося внутри такой песочницы, есть только четыре возможности из нее выбраться: через уязвимость гипервизора или уязвимость в одном из трех компонeнтов — fsserver, netserver и guiserver. Причем последние три работают с правами создавшего песочницу пользователя.
Где взять?


Исходный код Cappsule открыт, поэтому скачать и скомпилировать ее может любой желающий. Однако есть довольно серьезные ограничения. Первое: система требует процессор с поддержкой Intel VT-x и EPT, так что древние процессоры и AMD не подойдут. Второе: официально поддерживается единственный дистрибутив — Ubuntu 16.04 с ядром 4.4.0. Но протестировать систему можно и в виртуалке. Для этого разработчики подготовили образы VMware и VirtualBox.



Вся документация доступна в отдельном Git-репозитории. Из нее можно узнать, как установить Cappsule и пользоваться ею, создавать файлы политик для ограничения приложений в доступе к файлам или сетевому взаимодeйствию. В целом все довольно просто. В случае с Ubuntu 16.04 достаточно установить пакет:



$ wget https://irma.quarkslab.com/cappsule/cappsule-1.0.deb
$ sudo dpkg --force-confnew -i cappsule-1.0.deb
$ export PATH=$PATH:/usr/local/cappsule/usr/bin

Затем запустить демон:


$ sudo /usr/local/cappsule/usr/bin/daemon


И можно работать с приложениями в песочницах:


$ virt exec --no-gui --policy unrestricted bash


На экране должно появиться приглашение интерпретатора bash, запущенного в песочнице. Опция —policy unrestricted здесь означает, что будут использованы политики unrestricted, разрешающие доступ к любым файлам и любым сетевым хостам по протоколам UDP и TCP. Сами политики размещаются в JSON-файлах в каталoге /usr/local/cappsule/etc/cappsule/policies/. Кроме unrestricted, в нем можно найти политики для Firefox, Irssi, Evince и Apache. Причем, если имя приложения совпадает с именем файла политик, они будут загружены автоматически:


$ virt exec firefox


Графические приложения запускаются в своих собственных окнах, но поддержка копирования и вставки, а также вывода и записи аудио пока не реализованы.

Выводы


Cappsule еще слишком молодой проект, чтобы говорить о его будущем. Но одно ясно точно: это самая интересная и в теории надежная реализация песочниц для Linux из всех существующих на данный момент. Cappsule представляет намного более узкий attack surface в сравнении с песочницами уровня ОС или полнoценными виртуальными машинами.


Из песочницы Cappsule невозможно сбежать, взломав ядро или найдя баг в реализации виртуальных устройств, как это уже было в случае с багами в драйвере флоппи-привода и OpenGL-драйвере VirtualBox. Система крайне проста и эффективна, она требует лишь свежее ядро Linux и поддержку технологий виртуализации в процессоре.

Показать полностью 1

Снова о переименовании

Инициативные горожане предлагают переименовать еще одну улицу в Запорожье. На этот раз поддали сомнениям название «Каменногорская» и нашли созвучный альтернативный вариант нового «имени».


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


По мнению автора такой ход может дать Запорожью новых туристов и даже предпринимателей, так как переименование улицы привлечет туристов, вдохновит предпринимателей на старт-апы и множество других преимуществ.


Назвать улицу предлагают в честь американской death-metal группы Cannibal Corpse. По мнению автора обращения связь музыкантов с Запорожьем кроется в том, что рокеры — из Буффало, американского городка. Он, как и Запорожье, является металлургическим сердцем страны.


За сутки с момента публикации обращение подписали уже 88 человек.

Поиграем в бизнесменов?

Одна вакансия, два кандидата. Сможете выбрать лучшего? И так пять раз.

СДЕЛАТЬ ВЫБОР

На почте

На волне постов про ПР вспомнился случай. Сидя в ожидании своей очереди краем уха услышал диалог между мужчиной - М и сотрудницей отделения - С:

М: Здрасте, пришел посылку забрать, вот документы

С: Ой, извините, эту посылку уже забрали

М: Кто? Как?!

С: Ой, а мы не знаем

Мужик еще долго ругался с ними, но я уже уходил со своей посылкой.

Мои подписки
Подписывайтесь на интересные вам теги, сообщества, авторов — и читайте свои любимые темы в этой ленте.
Чтобы добавить подписку, нужно авторизоваться.

Отличная работа, все прочитано! Выберите