Как стать автором
Обновить
32
0
Михаил Чумичев @Chumicheff

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

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

Не открывайте порты в мир — вас поломают (риски)

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

image


Снова и снова, после проведения аудита, на мои рекомендации спрятать порты за white-list'ом встречаюсь со стеной непонимания. Даже очень крутые админы/DevOps'ы спрашивают: "Зачем?!?"


Предлагаю рассмотреть риски в порядке убывания вероятности наступления и ущерба.


  1. Ошибка конфигурации
  2. DDoS по IP
  3. Брутфорс
  4. Уязвимости сервисов
  5. Уязвимости стека ядра
  6. Усиление DDoS атак
Читать дальше →
Всего голосов 33: ↑28 и ↓5+23
Комментарии71

Понимание итераторов в Python

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

Python — особенный язык в плане итераций и их реализации, в этой статье мы подробно разберём устройство итерируемых объектов и пресловутого цикла for.


Особенности, с которыми вы часто можете столкнуться в повседневной деятельности


1. Использование генератора дважды


>>> numbers = [1,2,3,4,5]

>>> squared_numbers = (number**2 for number in numbers)

>>> list(squared_numbers)
[1, 4, 9, 16, 25]

>>> list(squared_numbers)
[]

Как мы видим в этом примере, использование переменной squared_numbers дважды, дало ожидаемый результат в первом случае, и, для людей незнакомых с Python в достаточной мере, неожиданный результат во втором.


2. Проверка вхождения элемента в генератор


Возьмём всё те же переменные:


>>> numbers = [1,2,3,4,5]
>>> squared_numbers = (number**2 for number in numbers)

А теперь, дважды проверим, входит ли элемент в последовательность:


>>> 4 in squared_numbers
True
>>> 4 in squared_numbers
False
Читать дальше →
Всего голосов 23: ↑21 и ↓2+25
Комментарии20

The Matrix has you: обзор проектов, использующих MITRE ATT&CK

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


Уже давно на разных площадках обсуждается матрица MITRE ATT&CK (Adversarial Tactics, Techniques and Common Knowledge), в том числе есть целая серия статей здесь, на самом Хабре. Можно сказать, что сообщество приняло эту модель, более того — многие начали ее использовать. Сегодня мы составили для вас небольшой обзор различных проектов, которые направлены на:

  • Улучшение восприятия и удобства работы с матрицей;
  • Сопоставление аналитики с методами ATT&CK;
  • Проведение проверок на различные атаки, описанные в матрице.
Follow the White Rabbit
Всего голосов 21: ↑21 и ↓0+21
Комментарии0

Эволюция Web Application Firewall: от сетевых экранов до облачных систем защиты с машинным обучением

Время на прочтение8 мин
Количество просмотров16K
В нашем прошлом материале по облачной тематике мы рассказывали, как защитить ИТ-ресурсы в публичном облаке и почему традиционные антивирусы не совсем подходят для этих целей. В этом посте мы продолжим тему облачной безопасности и поговорим об эволюции WAF и о том, что лучше выбрать: железо, ПО или облако. 



Что такое WAF


Более 75% атак хакеров направлены на уязвимости веб-приложений и сайтов: такие атаки, как правило, незаметны для ИБ-инфраструктуры и ИБ-служб. Уязвимости веб-приложений несут в себе, в свою очередь, риски компрометации и фрода учетных записей и персональных данных пользователей, паролей, номеров кредитных карт. Кроме того, уязвимости в веб-сайте служат точкой входа злоумышленников в корпоративную сеть.

Web Application Firewall (WAF) представляет собой защитный экран, который блокирует атаки на веб-приложения: SQL-инъекции, межсайтовый скриптинг, удаленное выполнение кода, брутфорс и обход авторизации (auth bypass). В том числе атаки, использующие zero-day уязвимости. Файрволы приложений обеспечивают защиту, выполняя мониторинг содержимого веб-страниц, включая HTML, DHTML и CSS, и фильтруя потенциально вредоносные запросы по HTTP/HTTPS.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии3

10 шагов к успешному Python-проекту

Время на прочтение9 мин
Количество просмотров34K
Материал, перевод которого мы сегодня публикуем, посвящён инструментам, которые позволяют оснащать Python-проекты средствами форматирования кода, тестирования, непрерывной интеграции и анализа зависимостей. Это помогает ускорить процесс разработки, способствует повышению качества, единообразия и безопасности кода. Предполагается, что у читателя этого материала уже есть некоторый опыт Python-разработки и проект на Python, с которым он, в ходе чтения, будет экспериментировать. Если такого проекта у вас нет — здесь можно узнать о том, как подготовить среду разработки и создать Python-пакет. Примеры, которые будут здесь приводиться, подготовлены с использованием macOS и Python 3.7.


Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии4

Web Security Testing Starter Kit

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

Меня зовут Андрей. Уже 10 лет я занимаюсь поиском уязвимостей в различных веб-сервисах. и готов поделиться своими знаниями с вами. В мае прошлого года я выступал с докладом про это на конференции Heisenbug, а теперь готов поделиться своими знаниями еще и здесь, на просторах Хабра. Итак, начнем.

Однажды я нашел уязвимость на серверах небезызвестной компании Facebook. Ребята забыли обновить ImageMagick (библиотеку по обработке изображений) и поплатились за это:) Этим примером я хотел показать, что все мы люди, и все можем допускать ошибки, неважно, в каких компаниях и на каких должностях мы работаем. Проблема только в том, что эти ошибки могут приводить к разного рода рискам.
Чем сложнее у вас приложение/сайт/инструмент, тем больше вероятность того, что что-то может пойти не так.
Проверять на уязвимости нужно. Глупо не делать этого совсем.
Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии8

Mayhem — машина, способная находить уязвимости в программах и исправлять их

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

Программа заняла первое место в конкурсе Cyber Grand Challenge от DARPA, посвящённом автоматизации этичного взлома




В 2011 года, когда инвестор Марк Андриссен сказал, что «программы поедают мир», эта идея была свежей. Сейчас очевидно, что ПО проникает во все аспекты наших жизней. От сложных электронных устройств типа медицинского оборудования и робомобилей до простейших, вроде лампочек, подсоединённых к интернету и термометров – нас окружает ПО.

А это значит, что мы уязвимы для атак на это ПО, как никогда раньше.
Читать дальше →
Всего голосов 15: ↑12 и ↓3+9
Комментарии8

Наша проблема c зависимостями

Время на прочтение19 мин
Количество просмотров14K
На протяжении десятилетий повторное использование ПО чаще обсуждалось, чем реально имело место. Сегодня ситуация обратная: разработчики каждый день повторно используют чужие программы, в виде программных зависимостей, а сама проблема остаётся практически неизученной.

Мой собственный опыт включает десятилетие работы с внутренним репозиторием Google, где зависимости установлены как приоритетная концепция, а также разработку системы зависимостей для языка программирования Go.

Зависимости несут серьёзные риски, которые слишком часто упускаются из виду. Переход к простому повторному использованию малейших фрагментов ПО произошёл так быстро, что мы ещё не выработали лучшие практики для эффективного выбора и использования зависимостей. Даже для принятия решения, когда они уместны, а когда нет. Цель этой статьи — оценить риски и стимулировать поиск решений в этой области.
Читать дальше →
Всего голосов 41: ↑41 и ↓0+41
Комментарии24

Безопасность алгоритмов машинного обучения. Атаки с использованием Python

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

image


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


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

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

Руководство и шпаргалка по Wireshark

Время на прочтение7 мин
Количество просмотров307K
Даже поверхностное знание программы Wireshark и её фильтров на порядок сэкономит время при устранении проблем сетевого или прикладного уровня. Wireshark полезен для многих задач в работе сетевого инженера, специалиста по безопасности или системного администратора. Вот несколько примеров использования:

Устранение неполадок сетевого подключения


  • Визуальное отображение потери пакетов
  • Анализ ретрансляции TCP
  • График по пакетам с большой задержкой ответа

Исследование сессий прикладного уровня (даже при шифровании с помощью SSL/TLS, см. ниже)


  • Полный просмотр HTTP-сессий, включая все заголовки и данные для запросов и ответов
  • Просмотр сеансов Telnet, просмотр паролей, введённых команд и ответов
  • Просмотр трафика SMTP и POP3, чтение писем
Читать дальше →
Всего голосов 34: ↑30 и ↓4+26
Комментарии5

Как не продолбать пароли в Python скриптах

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


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

Все меняется, когда мы убираем из схемы человека, который старательно вводит ключ с бумажки. При взаимодействии двух информационных систем, на клиентской стороне в любом случае должен храниться пароль в открытом для системы виде, чтобы его можно было передать и сравнить с эталонным хешем. И вот на этом этапе админы обычно открывают местный филиал велосипедостроительного завода и начинают старательно прятать, обфусцировать и закапывать секретный ключ в коде скриптов. Многие из этих вариантов не просто бесполезны, но и опасны. Я попробую предложить удобное и безопасное решение этой проблемы для python. И чуть затронем powershell.
Читать дальше →
Всего голосов 75: ↑72 и ↓3+69
Комментарии83

TL;DR книги “Искусство заниматься наукой и инженерным делом” Ричарда Хэмминга

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

На Хабре уже долгое время публикуется совместный перевод (у которого ещё есть отдельный сайт авторства MagisterLudi) замечательной книги Ричарда Хэмминга "The Art of Doing Science and Engineering". Я долгое время хотел её прочитать в оригинале. Да не просто прочитать, а составить насколько возможно краткую выжимку основных идей каждой главы. И вот недавно мне удалось это сделать.


Целью самой книги является "подготовить вас к вашему техническому будущему" путём обучения "стилю" мышления. Поэтому извлечённые идеи в основном имеют достаточно общий характер. Также из-за частого способа передачи идеи в виде историй некоторые пункты статьи являются моей личной их интерпретацией.


Из-за достаточно большого количества материала и его "плотной" подачи данная статья всё равно получилась достаточно объёмной. Поэтому предлагаю её TL;DR.


TL;DR этого TL;DR
  • Удача сопутствует подготовленному уму (Пастер).
  • Подготовка должна осуществляться ориентируясь на будущее, а не на прошлое (но основываясь на нём).
  • Стоит стараться достигать цели, которые вы себе поставили, и стоит ставить высокие цели.

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

Простое введение в АЛУ для нейронных сетей: пояснение, физический смысл и реализация

Время на прочтение9 мин
Количество просмотров9.1K
Недавно исследователи из Google DeepMind, в том числе известный учёный в сфере искусственного интеллекта, автор книги "Разбираемся в глубоком обучении", Эндрю Траск, опубликовали впечатляющую статью, которая описывает модель нейронной сети для экстраполяции значений простых и сложных численных функций с большой степенью точности.

В этом посте я объясню архитектуру НАЛУ (нейронных арифметико-логических устройств, NALU), их компоненты и существенные отличия от традиционных нейронных сетей. Главная цель этой статьи — просто и интуитивно понятно объяснить NALU (и реализацию, и идею) для учёных, программистов и студентов, мало знакомых с нейронными сетями и глубоким обучением.

Примечание от автора: я также очень рекомендую прочитать оригинальную статью для более детального изучения темы.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии13

MongoDB и исследование рынка ИТ-вакансий

Время на прочтение9 мин
Количество просмотров7.1K
Вы когда-нибудь анализировали вакансии?

Задавались вопросом, в каких технологиях наиболее сильна потребность рынка труда на текущий момент? Месяц назад? Год назад?

Как часто открываются новые вакансии Java-разработчиков в определенном районе Вашего города и как активно они закрываются?

В этой статье я расскажу Вам, как можно достичь желаемого результата и построить отчетную систему по интересующей нас теме. Поехали!


(Источник картинки)
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии2

В чём важность 196 884 = 196 883 + 1? Как это объяснить на пальцах?

Время на прочтение8 мин
Количество просмотров43K
Автор ответа на Quora — Майкл Гриффин, постдок по математике

Сения Шейдвассер дал очень хороший, простой ответ на этот вопрос, рекомендую прочитать эту краткую версию. Но есть гораздо более удивительная история гипотезы чудовищного вздора (Monstrous Moonshine), смешанной с уравнением Маккея: от виски Jack Daniel’s до чёрных дыр и квантовой гравитации.

В этой истории часто упоминаются симметрии и математические «группы», поэтому начнём с того, что понимается под группой в математике. Группу можно представить как способ переупорядочить набор объектов, сохраняя определённую структуру. Операции в группе должны следовать определённым правилам, например, всегда должна быть возможность отменить операцию, а если вы выполняете одну операцию, а затем другую, то получаете третью операцию в группе.
Читать дальше →
Всего голосов 70: ↑61 и ↓9+52
Комментарии141

Как обезопасить C

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


Язык C очень мощный и много где используется — особенно в ядре Linux — но при этом очень опасный. Один из разработчиков ядра Linux рассказал, как справиться с уязвимостями безопасности С.

Вы можете сделать практически любую вещь на С, но это не значит, что её нужно делать. Код C очень быстр, но несётся без ремней безопасности. Даже если вы эксперт, как большинство разработчиков ядра Linux, всё равно возможны убийственные ошибки.

Кроме подводных камней типа псевдонимов указателей, у языка C фундаментальные неисправленные ошибки, которые ждут своих жертв. Именно эти уязвимости Кейс Кук, инженер по безопасности ядра Google Linux, рассмотрел на конференции по безопасности Linux в Ванкувере.
Читать дальше →
Всего голосов 37: ↑23 и ↓14+9
Комментарии19

OpenID Connect 1.0 На Пальцах

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

У OpenID Connect есть спецификация, есть туториалы, статьи на хабре и не на хабре. Довольно бессмысленно лепить очередную пошаговую инструкцию, ведущую от глубокого недоумения к работающей сквозной авторизации и аутентификации. Задача текста ниже иная, описать лежащие в основе спецификаций идеи (их больше одной).


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


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

Что представляет собой веб-приложение в продакшне?

Время на прочтение8 мин
Количество просмотров16K
На заре карьеры я работал в компании, которая выпускала систему управления контентом. Эта CMS помогала отделам маркетинга самостоятельно управлять сайтами, а не полагаться на разработчиков при каждом изменении. Система помогла клиентам сократить операционные расходы, а мне — научиться создавать веб-приложения.

Хотя сам продукт имел очень общее назначение, клиенты обычно использовали его для конкретных задач. Эти задачи выжимали максимум из CMS, а разработчикам приходилось искать решение проблем. После десяти лет работы в таком окружении я узнал огромное число способов, как может сломаться веб-приложение в продакшне. Некоторые из них обсудим в этой статье.

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

Если вы начали работу в таком окружении, а затем приступили к созданию и развёртыванию веб-приложения с нуля, то очень быстро узнаете, что такое «до опасного поверхностные знания».
Читать дальше →
Всего голосов 35: ↑31 и ↓4+27
Комментарии5

Песочница и шпаргалка по изучению Python

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

Изучать Python3 я начал с документации на официальном сайте. Мне понравились примеры кода, но, к сожалению, они были там не интерактивными. Хотелось попробовать выполнить код самостоятельно, с разными входными данными и посмотреть на выводимый результат. Так же мне лично легче запоминаются конструкции языка, если я их набрал несколько раз вручную. Python консоль для этого подходит отлично, но хотелось так же иметь своего рода шпаргалку, к которой можно было бы вернуться при написании программ в дальнейшем, если, например, возникнет вопрос, как в Python-е написать цикл for и т.п. И последней каплей стало желание автоматической проверки стиля написания кода в соответствии с существующими стандартами. Читать и вникать в них было лень, поэтому хотелось чтобы проверка кода была автоматической и подсказывала какие ошибки я делаю и как их исправить.


В итоге все свои эксперименты я вылил на GitHub.


Читать дальше →
Всего голосов 49: ↑48 и ↓1+47
Комментарии20

Как айтишнику найти работу в США и ЕС: 9 лучших ресурсов

Время на прочтение5 мин
Количество просмотров166K
Мировой рынок IT стремительно развивается. С каждым годом профессия разработчика софта становится все более востребованной — уже в 2017 году в мире насчитывался примерно 21 миллион программистов различных направлений.

К сожалению, русскоговорящий рынок IT находится еще на начальной стадии развития — уже есть крупные и успешные проекты, но рынок еще долго не сможет сравняться с европейским и американским, которые производят до 85% всех IT-продуктов мира.
Читать дальше →
Всего голосов 53: ↑52 и ↓1+51
Комментарии25
1
23 ...

Информация

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