Pull to refresh
6
0
Денис @Disen

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

Send message

Анатомия программы в памяти

Reading time6 min
Views86K
Управление памятью – одна из главных задач ОС. Она критична как для программирования, так и для системного администрирования. Я постараюсь объяснить, как ОС работает с памятью. Концепции будут общего характера, а примеры я возьму из Linux и Windows на 32-bit x86. Сначала я опишу, как программы располагаются в памяти.

Каждый процесс в многозадачной ОС работает в своей «песочнице» в памяти. Это виртуальное адресное пространство, которое в 32-битном режиме представляет собою 4Гб блок адресов. Эти виртуальные адреса ставятся в соответствие (mapping) физической памяти таблицами страниц, которые поддерживает ядро ОС. У каждого процесса есть свой набор таблиц. Но если мы начинаем использовать виртуальную адресацию, приходится использовать её для всех программ, работающих на компьютере – включая и само ядро. Поэтому часть пространства виртуальных адресов необходимо резервировать под ядро.

image

Это не значит, что ядро использует так много физической памяти – просто у него в распоряжении находится часть адресного пространства, которое можно поставить в соответствие необходимому количеству физической памяти. Пространство памяти для ядра отмечено в таблицах страниц как эксклюзивно используемое привилегированным кодом, поэтому если какая-то программа пытается получить в него доступ, случается page fault. В Linux пространство памяти для ядра присутствует постоянно, и ставит в соответствие одну и ту же часть физической памяти у всех процессов. Код ядра и данные всегда имеют адреса, и готовы обрабатывать прерывания и системные вызовы в любой момент. Для пользовательских программ, напротив, соответствие виртуальных адресов реальной памяти меняется, когда происходит переключение процессов:
Читать дальше →
Total votes 62: ↑61 and ↓1+60
Comments24

Защита переговоров. Антижучки и индикаторы поля

Reading time15 min
Views101K

Примеры найденных жучков (источник фото: Интернет)

Дело было еще во Владивостоке.
Знакомые, владельцы турфирмы, рассказали, что однажды уборщица их спросила: «А почему вечером, когда все уходят, у вас сверху, на шкафу что-то мигает?». Полезли на шкаф, а там — чуть ли не автомобильный аккумулятор и рация, прикрученная синей изолентой. Вот такой суровой бывала дальневосточная прослушка.

Я узнал, что компания detsys.ru проводит у себя бесплатное обучение по пользованию индикаторами поля и попросил у них на недельку три экземпляра антижучков и еще парочку имитаторов сигналов для проверки работоспособности поисковой техники, для того чтобы повозиться с ними в Хакспейсе.

Под катом немного исторических примеров прослушки и доступные способы самостоятельной проверки своих помещений.
(Если ваши далекие знакомые сталкивались с обнаружением и, не дай бог, с установкой жучков, поделитесь в комментах)
Читать дальше →
Total votes 59: ↑58 and ↓1+57
Comments35

Сражаясь с анонимностью

Reading time7 min
Views153K
Тема анонимности в Интернете является сейчас достаточно модной и интересной, и особенно теперь, когда новостные порталы пугают наc всякими там PRISM, правительственными инициативами и прочим. Большинство людей озабочены тем, как сохранить тайну своей личности в сети и поэтому все темы так или иначе посвящены ЗАЩИТЕ. Но иногда, раскрытие анонимности это не такое уж и плохое дело. Да-да, эта заметка — мой опыт борьбы с анонимностью своими силами, без помощи спец-служб…

image

Читать дальше →
Total votes 253: ↑238 and ↓15+223
Comments61

Как и где нужно применять СКЗИ — точка зрения ФСБ

Reading time5 min
Views64K
8-й Центр ФСБ выложил достаточно неожиданный документ. Документ описывает рекомендации в области разработки нормативно-правовых актов в области защиты ПДн. Но этим же документом рекомендуется пользоваться операторам ИСПДн при разработке частных моделей угроз.

Что же думает ФСБ о том, как и где нужно применять СКЗИ?
Читать дальше →
Total votes 27: ↑22 and ↓5+17
Comments4

Чистим интернет от назойливой рекламы (AD Blocker для MikroTik)

Reading time6 min
Views144K


Данная статья является логическим завершением небольшой дискуссии с тов. vvzvlad, которая развернулась под топиком "Чистим домашний интернет от очень назойливой рекламы (Ad's blocker для OpenWRT)", где автор с помощью wget, sed и cron на OpenWRT успешно сливает файлы рекламных хостов, парсит и подсовывает dns-серверу dnsmasq.

Переадресовывая клиента при запросе «рекламного» домена, например, на loopback (127.0.0.1 — 127.255.255.255), вместо котента рекламы клиент получит благодатное «ничего» (разумеется, при условии, что у нас не работает локальный веб-сервер который слушает локалхост). Механизм фильтрации довольно старый и не лишен недостатков. Например, нельзя указать маски хостов (*.ad-domain.tld) или «вырезать» рекламу, баннеры которой хостятся на запрашиваемых ресурсах. Но зато не привязан к какому-то либо протоколу и довольно прост в эксплуатации. Более того, если его использовать, например, на домашнем или офисном маршрутизаторе, который используется в качестве DNS сервера, реклама успешно порежется на всех гаджетах, где IP нашей железки прописан первым в качестве DNS сервера.

Но что если у нас вместо роутера с кастомной прошивкой используется… MikroTik (RouterOS), функционал которого накладывает некоторые ограничения? Под катом вы узнаете каким образом удалось успешно "сконвертировать" файл хостов в пригодный для него формат, как автоматизировать это дело и что для хабралюдей в качестве бонуса был создан небольшой сервис как раз для автоматизации этого процесса (маленький, абсолютно бесплатный и с открытыми исходниками).
Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments63

Хостинг картинок за полчаса

Reading time5 min
Views40K
Сегодня проекты, особенно на начальном этапе, строятся из готовых блоков. Например, умный хостинг или сервис быстрой отправки сообщений в браузер пользователю. Складывая такие блоки по-разному, можно получить совершенно неожиданный результат. И чем больше разных блоков вам доступно, тем разнообразнее могут получаться проекты. Иногда появляются блоки, которыми можно заменить сразу несколько других блоков. И сами эти блоки — такие же проекты, состоящие из других блоков.

imageНасколько просто сейчас сделать такой сервис, как хостинг изображений? В принципе, его и раньше было несложно сделать. Но прогресс не стоит на месте, и за то же самое время теперь можно учесть больше нюансов. Я уже рассказывал о проекте Uploadcare. Это сервис, позволяющий облегчить работу с файлами: загрузку, хранение, обработку и раздачу конечному пользователю. Его и будем использовать в качестве основного блока.

Пример будет написан на Питоне. Во-первых, потому что Питон я знаю лучше всего, во-вторых библиотека pyuploadcare обновляется в первую очередь. На самом деле, для Uploadcare есть библиотеки под разные языки, и все они в open source. Если в нужном вам модуле отсутствует какая-то функциональность, можно дождаться, когда она появится, или дописать самому.
Читать дальше →
Total votes 61: ↑54 and ↓7+47
Comments18

Palantir, мафия PayPal, спецслужбы, мировое правительство

Reading time8 min
Views71K
«Лучший способ избавиться от дракона — это иметь своего собственного»



На Хабре нет ни одного упоминания о Palantir`е, в русской Википедии об этом проекте нет статьи, Mithgol молчит — что-то идет не так. Или так.

А между тем Palantir стала второй крупнейшей частной компанией Кремниевой Долины с оценкой в 20 000 000 000$ (уступив Uber). Среди прочих заслуг Palantir`а — раскрытие крупных китайских разведывательных операций Ghostnet и Shadow Network.
Журналист: — В «Википедии» говорится, что вы входите в управляющий комитет Бильдербергского клуба. Правда ли это, и если да, чем вы там занимаетесь? Организуете тайное мировое господство?

Питер Тиль: — Это правда, хотя все не до такой степени тайно или секретно, чтобы я не мог вам рассказать. Суть в том, что ведется хороший диалог между разными политическими, финансовыми, медиа- и бизнес-лидерами Америки и Западной Европы. Никакого заговора нет. И это проблема нашего общества. Нет секретного плана. У наших лидеров нет секретного плана, как решить все наши проблемы. Возможно, секретные планы – это и плохо, но гораздо возмутительнее, по-моему, отсутствие плана в принципе.

Приходится собирать информацию о Palantir`е по крохам. И такая жирная кроха прячется в книге Питера Тиля «От нуля к единице» (хотя в этой книге множество намеков и информации между строк, так же как в легендарном курсе и его переводе на Хабре, спасибо zag2art).

Питер Тиль: Цель, которую я ставил перед собой, читая стэнфордский курс о стартапах и предпринимательстве, заключалась в том, чтобы донести все те знания о бизнесе, которые я приобрел за последние 15 лет в Кремниевой долине как инвестор и предприниматель, собрать их воедино. С книгой то же самое.

Надеюсь, благодаря этой статье и комментам хабрачитателей, положение дел относительно Palantir`а станет чуточку яснее.
(Есть многомиллиардный рынок, связанный с аналитикой и ИБ, а мы ничего про него не знаем.)
Читать дальше →
Total votes 56: ↑44 and ↓12+32
Comments22

Пишем модуль безопасности Linux

Reading time5 min
Views16K
Linux Security Modules (LSM) — фреймворк, добавляющий в Linux поддержку различных моделей безопасности. LSM является частью ядра начиная с Linux версии 2.6. На данный момент в официальном ядре «обитают» модули безопасности SELinux, AppArmor, Tomoyo и Smack.

Работают модули параллельно с «родной» моделью безопасности Linux — избирательным управлением доступом (Discretionary Access Control, DAC). Проверки LSM вызываются на действия, разрешенные DAC.

Применять механизм LSM можно по-разному. В большинстве случаев это добавление мандатного управления доступом (как, например, в случае с SELinux). Кроме того, можно придумать собственную модель безопасности, реализовать ее в виде модуля и легко внедрить, используя фреймворк. Рассмотрим для примера реализацию модуля, который будет давать права на действия в системе при наличии особого USB-устройства.

Поглядим на схему и попытаемся разобраться, как работает хук LSM (на примере системного вызова open).


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

Искусство командной строки

Reading time15 min
Views250K


Вот уже как неделю английская версия the art of command line висит в секции trending на Github. Для себя я нашел этот материал невероятно полезным и решил помочь сообществу его переводом на русский язык. В переводе наверняка есть несколько недоработок, поэтому милости прошу слать пулл-реквесты мне сюда или автору оригинальной работы Joshua Levy вот сюда. (Если PR отправите мне, то я после того, как пересмотрю изменения отправлю их в мастер-бранч Джоша). Отдельное спасибо jtraub за помощь и исправление опечаток.

Enjoy!
Total votes 127: ↑122 and ↓5+117
Comments143

Собираем базу людей из открытых данных WhatsApp и VK

Reading time15 min
Views219K
Etan Hunt
кадр из фильма Миссия Невыполнима II

Эта история началась пару месяцев назад, в первый день рождения моего сына. На мой телефон пришло СМС-сообщение с поздравлением и пожеланиями от неизвестного номера. Думаю, если бы это был мой день рождения мне бы хватило наглости отправить в ответ, не совсем культурное, по моему мнению, «Спасибо, а Вы кто?». Однако день рождения не мой, а узнать кто передаёт поздравления было интересно.

Первый успех


Было решено попробовать следующий вариант:
  • Добавить неизвестный номер в адресную книгу телефона;
  • Зайти по очереди в приложения, привязанные к номеру (Viber, WhatsApp);
  • Открыть новый чат с вновь созданным контактом и по фотографии определить отправителя.

Мне повезло и в моём случае в списке контактов Viber рядом с вновь созданным контактом появилась миниатюра фотографии, по которой я, не открывая её целиком, распознал отправителя и удовлетворенный проведенным «расследованием» написал смс с благодарностью за поздравления.

Сразу же за секундным промежутком эйфории от удачного поиска в голове появилась идея перебором по списку номеров мобильных операторов составить базу [номер_телефона => фото]. А еще через секунду идея пропустить эти фотографии через систему распознавания лиц и связать с другими открытыми данными, например, фотографиями из социальных сетей.
Далее перебор аккаунтов WhatsApp и VK по Москве и Ненецкому АО и распознание лиц
Total votes 128: ↑127 and ↓1+126
Comments34

Сервисы для проверки навыков тестирования на проникновение

Reading time3 min
Views89K


В прошлом топике я опубликовал обзор дистрибутива PentestBox со ссылками и описанием входящих в него утилит. Надеюсь вам хватило времени ознакомиться с ними и изучить функционал. Сегодня я предлагаю вам несколько сервисов для тестирования своих навыков на практике. Это специализированные сервисы, абсолютно легальные и позволяющие всем желающим проверить свои знания и умения.
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments3

Теория «Черного лебедя» и фундаментальная уязвимость автоматизированных систем

Reading time3 min
Views37K
Существует актуальная фундаментальная уязвимость в любой программном средстве написанном на компилируемых языках.

Теория «Черного лебедя»


Автор теории Нассим Николас Талеб, описавший ее своей книге «Чёрный лебедь. Под знаком непредсказуемости». Теория рассматривает труднопрогнозируемые и редкие события, которые несут за собой значительные последствия. Процессы реального мира не возможно описать с точки зрение одной лишь математики, и в доказательство этому рассмотрим один простой пример.
Читать дальше →
Total votes 68: ↑51 and ↓17+34
Comments67

Работа с ssh в Python

Reading time3 min
Views200K
Всем добрый день.

Хочу рассказать про paramiko — модуль для работы с ssh в python.
С его помощью можно написать скрипт, который получит доступ к удаленному серверу (или многим) и что-то на нем сделает.

Кому интересно — прошу под кат.
Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments15

Мониторинг событий информационной безопасности с помощью ZABBIX

Reading time9 min
Views171K
image

Некоторое время поработав с Zabbix, я подумал, почему бы не попробовать использовать его в качестве решения для мониторинга событий информационной безопасности. Как известно, в ИТ инфраструктуре предприятия множество самых разных систем, генерирующих такой поток событий информационной безопасности, что просмотреть их все просто невозможно. Сейчас в нашей корпоративной системе мониторинга сотни сервисов, которые мы наблюдаем с большой степенью детализации. В данной статье, я рассматриваю особенности использования Zabbix в качестве решения по мониторингу событий ИБ.
Читать дальше →
Total votes 47: ↑40 and ↓7+33
Comments29

Linux From Scratch, не вдаваясь в детали

Reading time2 min
Views28K

Linux From Scratch, не вдаваясь в детали


LFS — это книга о том, как собрать работающую операционную систему GNU/Linux из исходных кодов. Конечно, лучше самому собрать систему по этой книжке. Но если тратить несколько дней своего времени жалко, а познакомиться все же охота — попробую рассказать.
Читать дальше →
Total votes 43: ↑22 and ↓21+1
Comments10

Как перевести сайт целиком на постоянный HTTPS для всех

Reading time6 min
Views44K

Шифруем всё подряд


Эра незашифрованного веба проходит, и это хорошо. В этой инструкции мы предполагаем, что на вашем сервере работает веб-сервер Nginx. И теперь мы сделаем так, чтобы все посетители сайта пользовались исключительно протоколом HTTPS. Кроме этого мы включим HSTS – это «HTTP Strict Transport Security», когда сайт не только поддерживает HTTPS, но и настаивает на его использовании.

Для этого есть множество способов, но я опишу метод под названием «HTTPS termination». Иначе говоря, мы поставим перед веб-сервером обратный прокси, который и будет обеспечивать HTTPS. Это получается проще и гибче, чем настраивать HTTPS только при помощи возможностей веб-сервера. Возможно, вам покажется контринтуитивным, что добавление ещё одного приложения в стек упростит вашу жизнь – но это действительно так.

Уточним, что данный рецепт подходит для серверов на базе Linux, на которых установлен Nginx.

То, что будет работать прежде всех остальных приложений в стопке – это HAProxy. Это в первую очередь приложение для балансировки – он умеет распределять приходящие запросы между разными физическими серверами. Много высоконагруженных сайтов используют его в этом качестве (тот же reddit), но в последней версии у него появилась возможность выполнять SSL termination. Он умеет устанавливать HTTPS-соединения от имени сервера.

Поэтому мы поставим HAProxy, скормим ему наши сертификаты SSL/TLS, поручим перенапрявлять все HTTP запросы на HTTPS, и покажем ему уже сам веб-сервер в качестве бэкенда.
Читать дальше →
Total votes 63: ↑49 and ↓14+35
Comments38

Реализуем безопасный VPN-протокол

Reading time12 min
Views48K
Снова тема VPN, конфиденциальной передачи данных, безопасности и криптографии. Сейчас, в эру пост-Сноудена, стало модно клепать безопасные, уважающие приватность, невзламываемые, защищённые от спецслужб и цензуры программы. Однако эта статья – не очередной маркетинговый пиар, а, скорее, демонстрация того, как применяются криптографические примитивы и на что стоит обращать внимание при разработке подобного программного обеспечения.



Результатом этой работы предполагается создание работающего клиент-сервера, пригодного для review разработчиками (то есть немного кода на высокоуровневом языке), достаточно производительного, чтобы использоваться в промышленных условиях, имеющего высокий порог безопасности: GoVPN.
Читать дальше →
Total votes 47: ↑46 and ↓1+45
Comments56

Как поймать то, чего нет. Часть пятая: Миф о необходимости сертифицированного ПО

Reading time10 min
Views28K
За рамками предыдущей статьи, в которой мы рассматривали мифы в области защиты персональных данных ( habrahabr.ru/post/255595 ), остался интереснейший вопрос о необходимости использования сертифицированных продуктов. Традиционно, если компания хочет реализовать требования регуляторов, то она закупает (но не факт, что использует :-) ) сертифицированные продукты. Такова сложившаяся практика.

При этом большинство отлично понимает все проблемы, связанные с использованием таких продуктов — но покорно идет в общей массе. А что если заглянуть в законы и приказы и определить требования самостоятельно?

Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments27

Шифрование ГОСТ 28147-89 на х86- и GPU-процессорах

Reading time6 min
Views30K
В статье представляются результаты тестирования оптимизированных алгоритмов шифрования ГОСТ, полученные в сентябре и марте 2014 г. компанией “Код Безопасности”, на новых серверных процессорах Intel, а также на графических процессорах различных производителей.

Ускорение шифрования ГОСТ 28147–89


С развитием ИТ-технологий резко возросли объемы данных, передаваемых по глобальной сети Интернет, находящихся в сетевых хранилищах и обрабатываемых в «облаках». Часть этих данных конфиденциальна, поэтому необходимо обеспечить их защиту от несанкционированного доступа. Для защиты конфиденциальных данных традиционно используется шифрование, а при шифровании больших объемов используют алгоритмы симметричного шифрования, такие как широко известный блочный алгоритм – AES. Для соответствия российскому законодательству при шифровании таких сведений, как персональные данные, необходимо использовать отечественный алгоритм симметричного блочного шифрования ГОСТ 28147–89.
Читать дальше →
Total votes 28: ↑25 and ↓3+22
Comments32

Systemd за пять минут

Reading time4 min
Views653K
Наша компания занимается администрированием веб-серверов на базе CentOS. Довольно часто наши клиенты используют веб-приложения на базе python, ruby или java. Для автозапуска подобных приложений есть готовые шаблоны для написания стартап-скриптов. Но прогресс не стоит на месте, вышел уже второй релиз CentOS 7 и, следуя старой традиции «не ставить dot-zero релизы на продакшен», мы начинаем предлагать клиентам сервера на базе CentOS 7.1 (1503).

В CentOS7, так же как и в его родителе RHEL7, используется systemd — менеджер системы и служб для Linux, совместимый со скриптами инициализации SysV и LSB. systemd обеспечивает возможности агрессивной параллелизации и много всего прочего.

image

Огромный монстр с множеством возможностей, гибкими настройками и мегабайтами документации…

Но что делать, если стоит задача быстро-быстро, вот прямо вчера, сделать автозапуск некоего сервиса?
Давайте выжмем из документации минимально необходимый набор информации для создания простых старт-стоп скриптов.
Знакомство с systemd
Total votes 70: ↑66 and ↓4+62
Comments58

Information

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