• Курс MIT «Безопасность компьютерных систем». Лекция 9: «Безопасность Web-приложений», часть 3

    • Перевод
    • Tutorial

    Массачусетский Технологический институт. Курс лекций #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
    Читать дальше →
  • Курс MIT «Безопасность компьютерных систем». Лекция 7: «Песочница Native Client», часть 1

    • Перевод
    • Tutorial

    Массачусетский Технологический институт. Курс лекций #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
    Читать дальше →
    • +21
    • 6,4k
    • 1
  • Сортировки обменами



      Если описать в паре предложений по какому принципу работают сортировки обменами, то:

      1. Попарно сравниваются элементы массива
      2. Если элемент слева* больше элемента справа, то элементы меняются местами
      3. Повторяем пункты 1-2 до тех пор, пока массив не отсортируется

      * — под элементом слева подразумевается тот элемент из сравниваемой пары, который находится ближе к левому краю массива. Соответственно, элемент справа находится ближе к правому краю.
      Траффик
      • +12
      • 15,9k
      • 8
    • 10 очевидных шагов для подготовки инфраструктуры интернет-магазина к Чёрной пятнице



        Несмотря на то, что мы предпочитаем писать про микросервисы, Kubernetes и прочее из области cloud native, нам хорошо известен и другой мир — гораздо более реальный, если посмотреть «в массе», например, на интернет-магазины (даже весьма успешные). В нём нет автоматического provisioning и масштабирования, сложной балансировки нагрузки и прочих красивых технических решений. Зато есть «Чёрная пятница», которая уже завтра, а значит — времени на подготовку практически не осталось. Конечно, наш рецепт №1 по качественной подготовке к ней (а заодно и получению целого букета дополнительных плюсов) — миграция на микросервисную архитектуру и Kubernetes, но предположим, что по какой-то причине этот вариант не подходит (до завтра его всё равно не реализовать).

        Эта статья — список более-менее быстрых действий для оптимизации типовой инфраструктуры интернет-магазина (рассматриваются примеры с nginx, Apache, PHP, MySQL) с целью её подготовки к высоким нагрузкам. Они могут быть весьма очевидны для опытных системных администраторов, однако наверняка окажутся полезными для тех, кто глубоко ещё не погружался в эти вопросы, а их актуальность стремительно нарастает. Итак, попробуем выжать максимум из того, что есть в инфраструктуре, или хотя бы взять на заметку те основные вопросы, которыми стоит озаботиться перед следующими всплесками нагрузки.
        Читать дальше →
        • +21
        • 8,6k
        • 3
      • Визуализация связей процессов в Linux



          Приходилось ли вам отслеживать зависимости системных процессов, «кто чей папка», найти императора и убить его, чтобы рабы не респаунились? Можно ps'ать и grep'ать, можно lsof погонять, ведь это так увлекательно ;) Но любые связи, как мне кажется, всегда проще анализировать в визуальной форме, консольные утилиты рисуют хорошие таблички, но из них не всегда можно быстро понять, что с чем связано и в какой последовательности, а для диагностики это очень важно.
          Читать дальше →
        • Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения

          • Tutorial

          Регулярные выражения в Python от простого к сложному




          Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие тексты на русском. Пяток сносных нашёл, но всё не то. Что-то смято, что-то упущено. У этих текстов был не только фатальный недостаток. Мало картинок, мало примеров. И почти нет разумных задач. Ну неужели поиск IP-адреса — это самая частая задача для регулярных выражений? Вот и я думаю, что нет.
          Про разницу (?:...) / (...) фиг найдёшь, а без этого знания в некоторых случаях можно только страдать.

          Плюс в питоне есть немало регулярных плюшек. Например, re.split может добавлять тот кусок текста, по которому был разрез, в список частей. А в re.sub можно вместо шаблона для замены передать функцию. Это — реальные вещи, которые прямо очень нужны, но никто про это не пишет.
          Так и родился этот достаточно многобуквенный материал с подробностями, тонкостями, картинками и задачами.

          Надеюсь, вам удастся из него извлечь что-нибудь новое и полезное, даже если вы уже в ладах с регулярками.
          Читать дальше →
        • Как оптимизировать DevOps с помощью машинного обучения

            Популярная сегодня методология разработки программного обеспечения DevOps (development и operations) нацелена на активное взаимодействие и интеграцию специалистов по разработке и специалистов по информационно-технологическому обслуживанию. Характерно, что в ходе DevOps генерируются большие объемы данных, которые можно использовать для упрощения рабочих процессов, оркестрации, мониторинга, диагностики неисправностей или других задач. Проблема в том, что данных этих слишком много. Одни только серверные логи могут накапливать несколько сотен мегабайт в неделю. Если используются инструменты мониторинга, то за короткий промежуток времени генерируются мегабайты и гигабайты данных.

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


            Читать дальше →
            • +11
            • 5,5k
            • 1
          • Советуют разработчики: подборка популярных книг о программировании, языках, алгоритмах

              В сегодняшнем материале мы собрали одни из наиболее популярных книг, отобранных самими разработчиками — резидентами Reddit, Quora, Stack Exchange, Stack Overflow и Hacker News.

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

              Читать дальше →
            • Интервью портала A Cloud Guru с Келси Хайтауэром: о DevOps, Kubernetes и serverless

              • Перевод

              image


              Наверняка не все знают, что по нагрузке и числу пользователей iFunny является настоящим highload-сервисом. API обслуживает в пиках порядка 15000 запросов в секунду, система аналитики обрабатывает около 5 миллиардов событий в сутки, а для поддержки полного функционала работает до 400 инстансов EC2. Поэтому для приложения очень важно иметь сильную команду инженеров. Чтобы решать типичные проблемы высоконагруженных систем и улучшать свою работу каждый день, команда iFunny постоянно ищет новые инструменты и решения. И в этот раз невозможно было пройти мимо интервью одного из основных контрибьюторов мирового IT-сообщества — Келси Хайтауэра. Достойно перевода и вашего внимания.

              Читать дальше →
            • Интеграция dovecot и Apache Solr

              • Tutorial
              Добрый день.

              Сегодня, почта до сих пор остаётся одним из ключевых средств обмена сообщениями в корпоративном сегменте. Объём хранимой почты только растёт и со временем занимает сотни гигабайт, а то и вовсе несколько терабайт. В такой момент пользователи в большинстве случаев начинают испытывать проблемы в процессе эксплуатации почты, например с поиском. Если использовать Web клиент, например тот же RoundCube, то при поиске по всем сообщениям во всех папках да и ещё по содержимому самого письма, очень часто результат приходилось ждать десятки секунд, что не очень приятно. Поэтому я и подумал, что пора бы в dovecot настроить FTS плагин.
              Читать дальше →
            • Организация системы мониторинга

                Мониторинг — это главное, что есть у админа. Админы нужны для мониторинга, а мониторинг нужен для админов.



                За последние несколько лет поменялась сама парадигма мониторинга. Новая эра уже наступила, и если сейчас вы мониторите инфраструктуру как набор серверов — вы не мониторите почти ничего. Потому что теперь "инфраструктура" — это многоуровневая архитектура, и для мониторинга каждого уровня есть свои инструменты.


                Кроме проблем типа "упал сервер", "надо заменить винт в рейде", теперь надо понимать проблемы уровня приложения и уровня бизнеса: "взаимодействие с микросервисом таким-то замедлилось", "в очереди слишком мало сообщений для текущего времени", "время выполнения запросов к бд в приложении растет, запросы — такие-то".


                У нас на поддержке около пяти тысяч серверов, в самых разных конфигурациях: от систем из трех серверов с кастомными докеровскими сетками, до больших проектов с сотнями серверов в Kubernetes. И за всем этим надо как-то следить, вовремя понимать, что что-то сломалось и быстро чинить. Для этого надо понять что такое мониторинг, как он строится в современных реалиях, как его проектировать и что он должен делать. Об этом и хотелось бы рассказать.

                Читать дальше →
              • Визуализация данных для киноманов: скрапим рекомендации фильмов и делаем интерактивный граф

                • Tutorial

                Однажды я наткнулся на интерактивную карту lastfm и решил обязательно сделать подобный проект для фильмов. Под катом история о том, как собрать данные, построить граф и создать своё интерактивное демо на примере данных с кинопоиска и imdb. Мы рассмотрим фреймворк для скрапинга Scrapy, пробежимся по методам визуализации больших графов и разберёмся с инструментами для интерактивного отображения больших графов в браузере.

                Читать дальше →
              • О том, как я переизобретал медиацентр

                • Tutorial

                Raspberry Pi 3 model B


                С приобретением нового телевизора возник вопрос, какую приставку для него брать. Возможностей Chromecast уже не хватало и хотелось полноценный медиацентр на Kodi. Телевизор со SmartTV покупать не вариант — Kodi можно установить только на Android (из SmartTV платформ), а к нему я отношусь без особой любви, к тому же он уже внутри телевизора, а не в отдельной коробке, которую можно безбоязненно перепрошивать. Ну а зачем мне полноразмерный Android, со всеми его сервисами и программами в виртуальной машине, без полноценного GNU/Linux окружения и, скорее всего, без обновлений? По той же причине также были отметены многочисленные готовые медиацентры на Android, хотя та же приставка от Xiaomi довольно хороша. Можно было бы подумать насчёт SmartTV на TizenOS, но для него нет Kodi.

                Читать дальше →
              • CIS Benchmarks: лучшие практики и рекомендации по информационной безопасности

                  image
                   
                  Центр интернет-безопасности (CIS) является некоммерческой организацией, которая разрабатывает собственные контрольные показатели и рекомендации, которые позволяют организациям совершенствовать свои программы обеспечения безопасности и соответствия требованиям. Эта инициатива направлена ​​на создание базовых уровней конфигурации безопасности систем, которые обычно встречаются во всех организациях. В этой статье я продолжу публикацию лучших практик и советов по организации информационной безопасности.
                  Читать дальше →
                  • +20
                  • 10,4k
                  • 1
                • 36 материалов о нейросетях: книги, статьи и последние исследования

                    Что делать, если хочется побольше узнать про нейронные сети, методы распознавания образов, компьютерное зрение и глубокое обучение? Один из очевидных вариантов — подыскать для себя какие-либо курсы и начать активно изучать теорию и решать практические задачи. Однако на это придется выделить значительную часть личного времени. Есть другой способ — обратиться к «пассивному» источнику знаний: выбрать для себя литературу и погрузиться в тему, уделяя этому всего полчаса-час в день.

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

                    Читать дальше →
                    • +23
                    • 67,9k
                    • 9
                  • Настройка Cisco AnyConnect VPN with 2FA (ActiveDirectory and Certificate) через ASDM

                    • Tutorial
                    Сразу хочу отметить, — не собираюсь устраивать холивар на счет того, что лучше — ASDM or console: на вкус и цвет все фломастеры разные…Я предпочитаю ASDM и настройки такого плана произвожу именно через нее. Поэтому статья будет насыщенна картинками (скринами)

                    Итак, приступим. Начнем с настройки LDAP сервера (в нашем случае это DC ActiveDirectory), для этого переходим в Configuration > DeviceManagement > Users/AAA > AAA Server Groups и создаем группу, назовем ее OFFICE, Protocol указываем LDAP

                    image
                    Configuration Cisco ASA AAA Server Groups
                    Читать дальше →
                    • +3
                    • 27,5k
                    • 8
                  • Как я сдал экзамен на сертификат CISSP

                      Первый источник информации, из которого я многое узнал о CISSP, это публикация на Хабре. В своем описании постараюсь не дублировать информацию из этого поста.

                      Я начинал готовиться еще в 2014 году и переход от 10 доменов к 8 еще не состоялся. Мне пришлось готовиться сначала по старым учебникам, а потом переходить на новые. Приведу ниже описание моего собственного опыта, и некоторых выводов, которые могут быть полезны для тех, кто планирует получить сертификат.

                      Для подготовки я избрал тактику медленного освоения материала — учебник читал по дороге из дома в офис и обратно. Получалось около часа в день. Лучше готовиться по английским учебникам, ибо в переведенных на русский учебниках осталось мало английских терминов, и будет трудно ориентироваться в вопросах на английском.
                      Читать дальше →
                    • Системы инициализации Unix и Linux после SysV

                        До середины 2000-х никому в голову не приходило менять sysvinit, почти никому. Gentoo с самого начала создавала и развивала OpenRC. Все изменилось с появлением launchd в Mac OS X. Разработчики Ubuntu бросились создавать Upstart, в котором были позаимствованы некоторые идеи из launchd. Дело шло ни шатко ни валко, но тут случился systemd и смешал все карты. Но кто же был истинным первопроходцем?




                        Daniel J. Bernstein математик и специалист по криптографии, автор популярного MTA qmail и множества других менее известных программ, среди которых выделяется daemontools. Для множества современных систем инициализации daemontools являлся примером и вдохновителем. Прошу внутрь для того, чтобы познакомиться с самой элегантной, простой и влиятельной системой управления службами в Unix / Linux.

                        Читать дальше →
                      • Видеозаписи докладов конференции AI&BigDataLab за последние три года



                          Через 2 недели, 13 мая в Одессе, команда FlyElephant будет проводить конференцию Data Science Lab. Это будет наша 4-я конференция, которая посвящена искусственному интеллекту, большим данным и науке о данных.

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

                        • Выходим на уровень эксперта! 50 оттенков экзамена 1Z0-047 (сертификация Oracle Database SQL Certified Expert)

                          Всем привет! В этой статье пойдет речь об одной из базовых сертификаций от ORACLE — Oracle Database SQL Certified Expert.

                          image

                          Чтобы получить сертификат, нужно сдать экзамен 1Z0-047.
                          Читать дальше →