Search
Write a publication
Pull to refresh
0
0
Vadim Toptunov @g0rd1as

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

Send message

6 полезных ресурсов и сервисов для потенциальных эмигрантов в США, Германию и Канаду

Reading time3 min
Views32K


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

Взлом камер: векторы атак, инструменты поиска уязвимостей и защита от слежки

Reading time6 min
Views52K
image

Камеры видеонаблюдения стали частью Интернета вещей и, как другие устройства с беспрепятственным доступом к сети, попали в фокус интереса хакеров. Миллионы IP-камер разных производителей открыты для злоумышленников.

Производители камер могут экономить на работе программистов и железе – покупатели получают дешевые устройства с ограниченными вычислительными ресурсами и огромными дырами в механизмах безопасности.

Прошивки массово-потребительских noname устройств не выдерживают никакой критики. Часто они никем не обновляются и не становятся защищеннее после смены дефолтного пароля. Более того, сам производитель может заложить бэкдор.

Далее рассмотрим основные направления атак на системы видеонаблюдения.

Управление памятью в Python

Reading time10 min
Views16K
Всем привет! Вот и закончились длинные мартовские выходные. Первую послепраздничную публикацию мы хотим посвятить полюбившемуся многим курсу — «Разработчик Python», который стартует менее, чем через 2 недели. Поехали.

Содержание

  1. Память – пустая книга
  2. Управление памятью: от оборудования к программному обеспечению
  3. Базовая реализация Python
  4. Концепция глобальной блокировки интерпретатора (Global Interpreter Lock, GIL)
  5. Сборщик мусора
  6. Управление памятью в CPython:
    • Пулы
    • Блоки
    • Арены
  7. Заключение



Вы когда-нибудь задумывались как Python за кулисами обрабатывает ваши данные? Как ваши переменные хранятся в памяти? В какой момент они удаляются?
В этой статье мы углубимся во внутреннее устройство Python, чтобы понять, как происходит управление памятью.

Прочитав эту статью, вы:

  • Узнаете больше о низкоуровневых операциях, особенно касательно памяти.
  • Поймете, как Python абстрагирует низкоуровневые операции.
  • Узнаете об алгоритмах управления памятью в Python.

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

Как делегировать простые отчеты роботу. Пишем бота на Python и Google BigQuery

Reading time5 min
Views15K


Есть ли у вас задачи, которые повторяются изо дня в день, из недели в неделю? Например, написание отчетов. Вы запрашиваете данные, проводите анализ, визуализируете (делаете графики, диаграммы), а затем отправляете начальнику. Но что, если все это автоматизировать?

В этом туториале мы создадим бота для Telegram, который поможет автоматизировать отчетность. А самое классное — вся программа будет состоять всего из 50 строк кода! Если вы создаете бота для Telegram впервые, то стоит прочитать еще вот этот пост.
Читать дальше →

Несколько способов подделки PDF с цифровой подписью

Reading time4 min
Views17K

Рис. 1. Процедура инкрементального сохранения, на которой основаны цифровые подписи PDF. По результатам тестирования, это самый эффективный способ подделки документов

Теоретически, цифровые подписи PDF надёжно удостоверяют автора документа. Но на практике обработку PDF обычно осуществляет проприетарный софт, который не совсем корректно выполняет проверку. Специалисты Рурского университета в Бохуме (Германия) описали несколько вариантов подделки PDF-документов с цифровой подписью, которые срабатывают в большинстве программ просмотра PDF и сервисов онлайновой проверки.

Защита от всех атак обеспечивается только в единственной программе, да и та работает под Linux.
Читать дальше →

История типизации на примере одного большого проекта

Reading time5 min
Views5.7K
Всем привет! Сегодня я расскажу вам историю развития типизации на примере одного из проектов в Ostrovok.ru.



Эта история началась задолго до хайпа о typing в python3.5, более того, она началась внутри проекта, написанного еще на python2.7.

2013 год: совсем недавно был релиз python3.3, мигрировать на новую версию смысла не было, так как каких-то конкретных фичей она не добавляла, а боли и страдания при переходе принесла бы очень много.

Я занимался проектом Partners в Ostrovok.ru – этот сервис отвечал за все, что связано с партнерскими интеграциями, бронированиями, статистикой, личным кабинетом. У нас использовались как внутренние API для других микросервисов компании, так и внешнее API для наших партнеров.
Читать дальше →

Разбор задач. Бинпоиск_1

Reading time3 min
Views31K

Здравствуйте, уважаемые хабровчане. Серия статей содержит разбор задач, которые дают в 8 классе на уроках информатики в Челябинском физико-математическом лицее №31. Немного истории… Наш лицей — одно из сильнейших учебных заведений России, который в рейтинге по конкурентоспособности выпускников занимает 5 место, уступив школам Москвы и Санкт-Петербурга. Ученики регулярно побеждают на олимпиадах всероссийского и международного уровня.
Данная статья лишена теории, она содержит только способы решения задач. Подробно про бинпоиск описано здесь.
Так вот, перейдем к задачам. Эти задачи подразумевают собой использование бинарного поиска, в том числе бинпоиска по ответам. Как мы знаем бинпоиск — это алгоритм поиска объектов по заданному признаку в множестве объектов. Применяем для отсортированных по возрастанию/убыванию списков. Всего 4 задачи, 2 из которых направлены на применение "алгоритма без изюминок".

Читать дальше →

Лаборатория хакера: Ч1. LibSSH auth bypass

Reading time4 min
Views12K
Я начинаю цикл статей, посвященных разбору задач сервиса pentesterlab. К сожалению, у меня нет Про-версии курса, поэтому я ограничен только списком свободных задач. Каждый кейс — система, содержащая уязвимость, которой необходимо воспользоваться для достижения определенной цели.

Читать дальше →

Руководство по развертыванию моделей машинного обучения в рабочей среде в качестве API с помощью Flask

Reading time13 min
Views27K
Друзья, в конце марта мы запускаем новый поток по курсу «Data Scientist». И прямо сейчас начинаем делиться с вами полезным материалом по курсу.

Введение

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

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



Именно поэтому я сейчас пишу это руководство. Мне хочется, чтобы вы столкнулись с той проблемой, с которой столкнулся я в свое время, но смогли достаточно быстро ее решить. К концу этой статьи я покажу вам как реализовать модель машинного обучения используя фреймворк Flask на Python.
Читать дальше →

Математика для Data Scientist: необходимые разделы

Reading time3 min
Views98K
Математика — это краеугольный камень Data Science. Хотя некоторые теоремы, аксиомы и формулы кажутся слишком абстрактными и далекими от практики, на самом деле без них невозможно по-настоящему глубоко анализировать и систематизировать огромные массивы данных.

Для специалиста Data Science важны следующие направления математики:

  • статистика;
  • теория вероятностей;
  • математический анализ;
  • линейная алгебра.

В предыдущей статье «Data Science: книги для начального уровня» специалисты Plarium Krasnodar рекомендовали литературу по программированию на Python, а также по визуализации результатов и machine learning. В этой статье они предлагают подборку материалов и книг по математике, полезных в Data Science.


Читать дальше →

Как управлять конфликтами в команде

Reading time6 min
Views18K
Мы разные, и у нас часто возникают конфликты – маленькие и серьезные. Плохая новость: избежать конфликтов на работе не получится. Хорошая: конфликтами можно управлять. Умение договариваться и доносить свои мысли людям на их языке – очень полезный навык. Он помогает экономить силы и достигать своих целей.

Какие конфликты бывают в компаниях? Как распознавать конфликты и управлять ими? Разбираемся вместе со Светланой Гончар, консультантом по организационному развитию бизнеса с опытом работы в IT больше 16 лет.


Читать дальше →

Об оценке и управлении разработкой программных продуктов

Reading time13 min
Views16K
image

В институте учат алгоритмам, структурам данных, ООП. В хорошем случае могут рассказать о паттернах проектирования или многопоточном программировании. А вот про то, чтобы рассказывали как правильно оценивать трудозатраты, я не слышал.

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

Справедливости ради следует заметить, что в разработке гораздо более распространены заниженные оценки. Почему? Кто-то считает, что программисты слишком оптимистичны по своей натуре. Я добавлю к этому еще одну причину: быть хорошим программистом и быть хорошим оценщиком — не одно и тоже. Чтобы стать хорошим программистом одного желания не достаточно. Нужны знания и практика. С чего вдруг с оценкой будет по другому?

В статье я расскажу о том, как менялось мое отношение к оценке задач и как сейчас оцениваются проекты в нашей компании. А начну я с того, как оценивать не надо. Если про то как «не надо» вы уже знаете, переходите сразу ко второй части статьи.
Читать дальше →

Простейшая командная строка на NASM и QEMU

Reading time9 min
Views22K

image


Итак, сразу к делу. Писать будем под Linux, на NASM и с использованием QEMU. Установить это легко, так что пропустим этот шаг.


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

Читать дальше →

Web Security Testing Starter Kit

Reading time12 min
Views23K
Всем привет!

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

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

Основы PowerShell: определение конца строки с определенным символом

Reading time1 min
Views7.9K

Знаете ли вы, что можно определить, заканчивается ли строка определенным символом или начинается с него в PowerShell? Томас Рейнер (Thomas Rayner) ранее поделился на CANITPRO.NET, как это легко сделать с помощью регулярных выражений (regular expressions) или, проще говоря, Regex.


Читать дальше →

Учимся всегда и везде! Подкасты для разработчиков на английском языке

Reading time10 min
Views24K


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

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

В этой статье мы собрали для вас внушительную и весьма интересную подборку англоязычных подкастов по ИТ-тематике, в которой постарались охватить все сферы деятельности, начиная от программирования и заканчивая машинным обучением, веб-дизайном и искусственным интеллектом.

Наша подборка русскоязычных подкастов: https://habr.com/ru/company/mailru/blog/437428/

Читать дальше →

Как исследователи обнаруживают открытые базы данных MongoDB и Elasticsearch

Reading time3 min
Views15K

Какое-то время назад среди исследователей безопасности было очень «модно» находить неправильно сконфигурированные облачные хранилища AWS с разного рода конфиденциальной информацией. Я тогда даже опубликовал небольшую заметку про то, как обнаруживают открытые облачные хранилища Amazon S3.


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



Сегодня попробуем разобраться как такие БД обнаруживаются исследователями безопасности…

Читать дальше →

Я просканировал всю Австрию и нашёл…

Reading time3 min
Views28K

...IP-камеры, принтеры, АСУ ТП и многое другое


Отказ от ответственности: статья — результат нескольких недель работы. О самых больших проблемах я сообщил владельцам серверов, если смог их найти, а о других — в Cert.at. Кроме того, я не пытался войти ни на какое устройство/сервис/сайт, требующие пароль.

Прежде всего: как получить все IP-адреса целой страны?

Это очень просто. IP-адреса не «генерируются» страной, а назначаются центральным органом. Это означает, что существуют списки всех IP-адресов по странам.

Любой желающий может скачать такой список. Введите grep Austria IP2LOCATION-LITE-DB1.CSV > austria.csv и запустите простой скрипт для преобразования IP-адресов в удобный формат.
Читать дальше →

Практическая стеганография

Reading time6 min
Views9.3K

Применение принципов стеганографии для решения реальных задач


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

Электронная почта, взгляд изнутри

Reading time112 min
Views13K
Работаю я системным администратором в одной фирме. И вот произошла интересная ситуация с отправкой к нам на электронную почту некоторой информации. Дабы не углубляться в подробности с реальной ситуацией (дело касается тендерных предложений, где огромное количество условий), приведу свой пример.
Читать дальше →

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity