• Обходим ASLR для Linux по-новому



      Ядро Linux широко распространено во всем мире как на серверах, так и на пользовательских машинах, на мобильных платформах (ОС Android) и на различных «умных» устройствах. За время существования в ядре Linux появилось множество различных механизмов защиты от эксплуатации уязвимостей, которые могут существовать как в самом ядре, так и в приложениях пользователей. Такими механизмами является, в частности, ASLR и stack canary, противодействующие эксплуатации уязвимостей в приложениях.

      Читать дальше →
      • +50
      • 10,2k
      • 6
    • Проблемы безопасности Docker

      • Перевод


      По мере взросления и стабилизации экосистемы Docker связанные с безопасностью этого продукта темы привлекают все больше внимания. При проектировании инфраструктуры невозможно избежать вопроса обеспечения безопасности Docker.


      В Docker уже встроено несколько замечательных средств обеспечения безопасности:


      • Docker-контейнеры минимальны: один или несколько работающих процессов, только необходимое программное обеспечение. Это снижает вероятность пострадать от уязвимостей в ПО.


      • Docker-контейнеры выполняют специфическую задачу. Заранее известно, что должно выполняться в контейнере, определены пути к директориям, открытые порты, конфигурации демонов, точки монтирования и т. д. В таких условиях проще обнаружить какие-либо связанные с безопасностью аномалии. Этот принцип организации систем идет рука об руку с микросервисной архитектурой, позволяя значительно уменьшить поверхность атаки.


      • Docker-контейнеры изолированы как от хоста, так и от других контейнеров. Этого удается добиться благодаря способности ядра Linux изолировать ресурсы с помощью cgroups и namespaces. Но есть серьезная проблема — ядро приходится делить между хостом и контейнерами (мы еще вернемся к этой теме чуть позже).


      • Docker-контейнеры воспроизводимы. Благодаря их декларативной системе сборки любой администратор может легко выяснить, из чего и как был сделан контейнер. Крайне маловероятно, что у вас в итоге окажется неизвестно кем настроенная legacy-система, которую никому не хочется конфигурировать заново. Знакомо, не правда ли? ;)

      Однако в основанных на Docker системах есть и слабые места. В этой статье мы как раз о них и поговорим, рассмотрев 7 проблем безопасности Docker.

      Читать дальше →
      • +25
      • 13,2k
      • 1
    • Проблемы безопасности Android-приложений: классификация и анализ



        Изображение: etnyk, CC BY-NC-ND 2.0

        Использование смартфонов в повседневной жизни не ограничивается голосовыми звонками и СМС. Возможность загружать и выполнять программы, а также мобильный доступ в Интернет привели к появлению громадного числа мобильных приложений. Функциональность современного смартфона составляют браузеры, клиентские программы социальных сетей, офисные приложения и всевозможные сервисы, работающие в Сети. Android-устройства заняли бóльшую часть рынка смартфонов за счет открытой архитектуры платформы Android и удобного API разработчика. На данный момент Android является наиболее популярной мобильной ОС с долей рынка более 75%. Количество приложений, загруженных из магазина Google Play, в 2016 году составило 65 миллиардов [1].
        Читать дальше →
        • +16
        • 13,1k
        • 2
      • Лекции Технотрека. Администрирование Linux


          Представляем вашему вниманию очередную порцию лекций Технотрека. В рамках курса будут рассмотрены основы системного администрирования интернет-сервисов, обеспечения их отказоустойчивости, производительности и безопасности, а также особенности устройства ОС Linux, наиболее широко применяемой в подобных проектах. В качестве примера будут использоваться дистрибутивы семейства RHEL 7 (CentOS 7), веб-сервер nginx, СУБД MySQL, системы резервного копирования bacula, системы мониторинга Zabbix, системы виртуализации oVirt, балансировщика нагрузки на базе ipvs+keepalived. Курс ведёт Сергей Клочков, системный администратор в компании Variti.

          Читать дальше →
          • +59
          • 76,9k
          • 9
        • Расширения Intel SGX, учебное руководство. Предисловие и полное содержание курса



            В течение последних месяцев в блоге Intel публиковался русский перевод цикла обучающих статей с ресурса Intel Developer Zone, посвященный использованию расширений Intel Software Guard Extensions в программировании — Intel SGX Tutorial. Публикация растянулась во времени, поэтому для тех, кто решил методично изучать данный вопрос, мы сделали общий индекс статей как на языке оригинала, так и на русском. После выхода новых постов (а автор обещает продолжение) и их перевода они также будут сюда добавлены.

            Под катом вы также найдете требования к ПО и «железу» для изучения курса.
            Читать дальше →
            • +12
            • 2,9k
            • 2
          • Современная операционная система: что надо знать разработчику

              Александр Крижановский (NatSys Lab.)


              Александр Крижановский

              Нас сегодня будет интересовать операционная система – ее внутренности, что там происходит… Хочется поделиться идеями, над которыми мы сейчас работаем, и отсюда небольшое вступление – я расскажу о том, из чего состоит современный Linux, как его можно потюнить?

              По моему мнению, современная ОС – это плохая штука.




              Дело в том, что на картинке изображены графики сайта Netmap (это штуковина, которая позволяет вам очень быстро захватывать и отправлять пакеты сетевого адаптера), т.е. эта картинка показывает, что на одном ядре с разной тактовой частотой до 3 ГГц Netmap позволяет 10 Гбит – 14 млн. пакетов в сек. отрабатывать уже на 500 МГц. Синенькая линия – это pktgen – самое быстрое, что, вообще, есть в ядре Linux’а. Это такая штуковина – генератор трафика, который берет один пакет и отправляет его в адаптер много раз, т.е. никаких копирований, никакого создания новых пакетов, т.е., вообще, ничего – только отправка одного и того же пакета в адаптер. И вот оно настолько сильно проседает по сравнению с Netmap (то, что делается в user-space показано розовой линией), и оно вообще где-то там внизу находится. Соответственно, люди, которые работают с очень быстрыми сетевыми приложениями, переезжают на Netmap, Pdpdk, PF_RING – таких технологий море сейчас.
              Читать дальше →
            • Взаимодействие программных и аппаратных средств

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

                В этой работе рассматриваются вопросы, связанные с прямым и обратным преобразованием “программная переменная – сигнал”: особенности построения каналов передачи данных, подключения периферии к шинам процессора, вопросы адресной приёма-передачи данных и работа гипотетического процессора при обмене данными с внешним устройством.

                Формирование канала передачи данных
                Рассмотрим канал передачи данных, который имеет всего два состояния, например, наличие или отсутствие напряжения. Передатчик должен устанавливать напряжении в линии в соответствии с передаваемыми данными, а приемник по измеряемому напряжению выделять данные линии. Простейший передатчик включает источник напряжения и идеальный ключ, который изменением собственного сопротивления (ноль или бесконечность) замыкает или размыкает провода. В качестве идеального приемника используется измеритель напряжения (мультиметр) с бесконечным входным сопротивлением.
                image
                Рис. 1. Схема с неопределенным напряжением в линии передачи. В реальной схеме функцию ключа может выполнять транзистор.

                В схеме Рис. 1 при замыкании ключа приёмнику передается 5В источника, однако, когда ключ разомкнут на входе приемника находится неопределенное напряжение.
                Этой неопределенности нет в схеме Рис. 2, которая имеет два устойчивых состояния 5В или 0В. Сопротивление R добавлено в схему передатчика для ограничения тока через замкнутый ключ. Переходный процесс в линии пропорционален произведению ёмкости линии на выходное сопротивление передатчика, которое отличается при установлении и сбросе напряжения в линии. При установке напряжения в линии происходит заряд ёмкости через сопротивление R. Во время сброса напряжения ёмкость разряжается через сопротивление замкнутого ключа.

                image
                Рис. 2. Передача двух состояний 5В и 0В. Тождественные схемы. Постоянная времени (R*C) перехода из 0В в 5В (заряда емкости) больше постоянной разряда линии через идеальный ключ с нулевым сопротивлением.
                Читать дальше →
                • +10
                • 12,6k
                • 2
              • Asyncio Tarantool Queue, вставай в очередь



                  В одной из своих статей я рассказывал об асинхронной работе с Tarantool на Python. В данной статье продолжу эту тему, но внимание хочу уделить обработке информации через очереди на Tarantool. Мои коллеги опубликовали несколько статей о пользе очередей (Инфраструктура обработки очередей в социальной сети Мой Мир и Push-уведомления в REST API на примере системы Таргет Mail.Ru). Хочу дополнить информацию об очередях на примере решений наших задач, а также рассказать о работе с Tarantool Queue на Python и asyncio. Почему мы выбираем именно Tarantool, а не Redis или RabbitMQ?
                  Читать дальше →
                • Значимость SPF

                    Хочу обратить ваше внимание на важную, на мой взгляд, проблему, которой пренебрегают даже самые крупные и инновационные компании мира. Проблема заключается в отсутствии у большинства доменов SPF-записи, которая защищает домен от его несанкционированного использования в электронной почте.
                    SPF (Sender Policy Framework) представляет из себя текстовую запись в TXT-записи DNS домена. Запись содержит информацию о списке серверов, которые имеют право отправлять письма от имени этого домена и механизм обработки писем, отправленных от других серверов.
                    Например, SPF-запись «example.com. TXT «v=spf1 +a +mx -all»» говорит о том, что отправлять письма от имени домена «example.com» могут сервера, указанные в A и MX-записях этого домена, а письма, отправленные от других серверов должны быть удалены (Fail).

                    Читать дальше →
                  • PentestBox — портативная сборка популярных security утилит



                      На сегодняшний день самыми популярными дистрибутивами для тестирования на проникновение являются *nix-like дистрибутивы: Kali Linux, BlackArch Linux, Pentoo, Whonix и многие другие. Они могут использоваться как в виртуальной среде, так и в качестве live системы или вообще быть установлены в виде десктопной ОС.

                      Windows пользователи до недавнего времени были обделены (виртуальные машины не берем во внимание) такими сборками, пока не появилась волшебная коробочка — PentestBox.
                      Читать дальше →
                    • Атака на оракула. Подробный гайд по векторам атак на Oracle DB



                        Сегодня я бы хотел поговорить о векторах атак на СУБД Oracle на разных стадиях: как прощупать слабые места базы снаружи, проникнуть и закрепиться внутри плюс как все это дело автоматизировать с помощью специализированного софта. Архитектура и возможности базы данных весьма интересны, занимательных моментов немало, а значит, немало и способов все испортить. Однако не забывай: ломать — не строить, поэтому вся дальнейшая информация предоставлена исключительно с целью выявить недочеты в защищенности тестируемых систем и повысить безопасность.
                        Читать дальше →
                        • +19
                        • 26,5k
                        • 5
                      • Опять суровый Open source для госкомпаний и большого бизнеса с примерами решений. Я в него верю, если что


                          Я (справа) пытаюсь объяснять крупному бизнесу, что такое опенсорс, а мой коллега слева придает опенсорсным решениям душевности.

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

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

                          Начну не с этого. Начну с того, что напомню, что ещё 17 декабря 2010 г в распоряжении №2299-р В. Путин подписал план перехода федеральных органов власти и бюджетных учреждений на использование свободного ПО. Сейчас расскажу, как мы по плану уже живём в мире русского опенсорса.
                          Читать дальше →
                        • Трактат о радиотрактах или некоторые маркетинговые заблуждения о радиосвязи

                          Написать данную статью побудило наличие в сети большого количества маркетинговых заблуждений, информации типа «радиооборудование, работающее на дальности в 100км», «радиооборудование работает на полностью закрытых трассах» и т.п. В принципе, маркетинг на то и существует, чтобы приукрасить тот или иной продукт, однако сейчас всё чаще и чаще сталкиваюсь с тем, что многие коллеги воспринимают данные маркетинговые заявления за чистую монету. В статье постараюсь озвучить и обосновать некоторые утверждения, которые конкретизируют некоторую «маркетинговую информацию».
                          Читать дальше →
                        • Организация виртуальной памяти

                            Привет, Хабрахабр!

                            В предыдущей статье я рассказал про vfork() и пообещал рассказать о реализации вызова fork() как с поддержкой MMU, так и без неё (последняя, само собой, со значительными ограничениями). Но прежде, чем перейти к подробностям, будет логичнее начать с устройства виртуальной памяти.

                            Конечно, многие слышали про MMU, страничные таблицы и TLB. К сожалению, материалы на эту тему обычно рассматривают аппаратную сторону этого механизма, упоминая механизмы ОС только в общих чертах. Я же хочу разобрать конкретную программную реализацию в проекте Embox. Это лишь один из возможных подходов, и он достаточно лёгок для понимания. Кроме того, это не музейный экспонат, и при желании можно залезть “под капот” ОС и попробовать что-нибудь поменять.
                            Читать дальше →
                            • +39
                            • 39,4k
                            • 4
                          • OSSIM — разворачиваем комплексную open source систему управления безопасностью



                              OSSIM (Open Source Security Information Management) — система управления, контроля и обеспечения информационной безопасности.
                              OSSIM «из коробки» включает в себя такой функционал как:
                              • Сбор, анализ и корреляция событий — SIEM
                              • Хостовая система обнаружения вторжений (HIDS) — OSSEC
                              • Сетевая система обнаружения вторжений (NIDS) — Suricata
                              • Беспроводная система обнаружения вторжений (WIDS) — Kismet
                              • Мониторинг узлов сети- Nagios
                              • Анализ сетевых аномалий – P0f, PADS, FProbe, Arpwatch и др.
                              • Сканер уязвимостей – OpenVAS
                              • Мощнейшая система обмена информацией об угрозах между пользователями OSSIM — OTX
                              • Более 200 плагинов для парсинга и корреляции логов со всевозможных внешних устройств и служб

                              Читать дальше →
                            • Статичный хостинг: жизнь после смерти narod.ru

                                    В один прекрасный день я обнаружил, что narod.ru, наше все в области истории рунета и неисчерпаемый кладезь вырвиглазных сайтов, продался! Ucoz купил его. Невелика беда, подумал я, после того как перерегистрировал все свои старые сайты под ucoz и на время забыл о проблеме. Но вот недавно узнав о существовании изобилия генераторов статических сайтов я принял решение сделать еще один сайт ни о чем. Какого же было мое удивление, когда выяснилось, что Ucoz.ru более не поддерживает загрузку файлов html, обрекая вас использовать его конструктор сайтов помимо воли.

                                    Конечно, можно купить хостинг за пару долларов в месяц, можно найти бесплатный хостинг с perl, php и mysql. Можно даже идти в ногу с достижениями времени и воспользоваться heroku или google app engine, получив в нагрузку еще и поддержку передовых языков программирования. Но все это не то. Нет души. Разве может сравниться ламповая закачка обновлений по FTP с бездушной публикацией нажатием одной кнопки в Wordpress? Не может. Именно поэтому давайте посмотрим где и как сегодня можно сделать статический сайт.
                                Читать дальше →
                              • Обзор площадки для тестирования веб-уязвимостей OWASP Top-10 на примере bWAPP

                                  Привет, Хабр!

                                  В этой статье предлагаю читателю ознакомится с уязвимостями веб-приложений (и не только), по классификации OWASP Top-10, и их эксплуатацией на примере bWAPP.

                                  image

                                  Читать дальше →
                                  • +17
                                  • 41,8k
                                  • 8
                                • Оборудование помещения для прослушивания музыки

                                    image

                                    Вряд ли найдется много людей на Хабре, кто не любит музыку или кино. Но вот вы решили, что вам надоели наушники, что хочется послушать, как на самом деле звучит ваша любимая музыка, и, накопив немного денег, вы от души походили по разным магазинам и купили хорошую (на ваш вкус) аудиосистему.

                                    Чаще, чем того хочется, такие покупки не доставляют ожидаемого удовлетворения. Когда колонки расставлены там, где удобно и практично, кабели подключены и запущен любимый трек, выясняется, что все играет не так, как ожидалось. А все дело в том, что комната, в которой играет музыка, является существенной частью аудиосистемы, и именно игнорирование этого факта является наиболее частой причиной бессмысленных дополнительных расходов на ненужные компоненты, судорожных метаний по комнате в поисках правильного расположения колонок и прочих неприятностей. Про то, что предпринять, чтобы вернуть очарование звуку, и вытащить из системы максимум звучания, прошу под кат.
                                    Читать дальше →
                                  • Как начать разрабатывать железо, используя ПЛИС — пошаговая инструкция

                                    Каким образом повысить количество российских инженеров, которые были бы знакомы и с разработкой хардвера, и с разработкой софтвера, и могли бы строить системы, в которых часть функциональности находится в специализированном железе, а часть — в программном обеспечении, с соблюдением баланса между ними?

                                    Для этого вовсе не обязательно выбрасывать несуразные деньги а-ля сделка Сколкова и MIT.

                                    Есть масса дешевых и эффективных мер по апгрейду российской образовательной системы. Одна из них — широко ввести практические классы ПЛИС / ППВМ / FPGA среди старших школьников и студентов. Это то, на чем учатся и инженеры, которые потом разрабатывают микросхемы внутри Apple iPhone в Купертино, Калифорния.
                                    Читать дальше →
                                  • Как реализовать почти мгновенное переключение сайта между площадками, когда одна упала

                                      image

                                      Бывает, сайты падают из-за отказа площадки хостера, каналов и так далее. Я 7 лет работаю в хостинге, и часто вижу такие проблемы.

                                      Пару лет назад я понял, что услуга резервной площадки (без доработки их сайта или сервиса) очень важна клиентам. Теоретически тут всё просто:
                                      1. Иметь копию всех данных в другом дата-центре.
                                      2. При сбое переключать работу на резервный ДЦ.

                                      На практике система пережила 2 полные технические реорганизации (сохранение основных идей со сменой значительной части инструментария), 3 переезда на новое оборудование, 1 переезд между поставщиками услуг (переезд из немецкого дата-центра в два российских). На исследование поведения разных систем в реальных условиях под клиентской нагрузкой ушло 2 года.
                                      Читать дальше →