Pull to refresh
12
0
Никита @Xokare

Питонист. Специалист по инфобезу

Send message

Цифровая крепость: как защитить себя в мире киберугроз

Level of difficultyMedium
Reading time21 min
Views3.9K

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

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

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

Готовы построить свою цифровую крепость? Тогда пристегните ремни — мы отправляемся в увлекательное путешествие по лабиринтам кибербезопасности!

Читать далее
Total votes 4: ↑4 and ↓0+8
Comments6

Карантин! Инфицируем .NET-сборки как настоящий APT

Level of difficultyMedium
Reading time10 min
Views2K

Привет, Хабр! Меня зовут Миша, я работаю ведущим экспертом по тестированию на проникновение в команде CICADA8 Центра инноваций МТС Future Crew. Недавно я занимался исследованием ранее неизвестных и просто любопытных способов закрепления в системах Windows. Я обратил внимание на одну особенность — в Windows очень много .NET-сборок. Как атакующие могут использовать их в своих целях против вас? Давайте разбираться.

Я сделал небольшой экскурс в прекрасный мир C#. Вы увидите, как злоумышленники прямо инфицируют сборки, принудительно добавляют в них импорты, внедряются с помощью AppDomain Manager, делают бэкдор через .NET-компилятор и Module Initializer.

Attention! Я рассказываю это все не для того, чтобы вы пошли взламывать чужие системы, а даю возможность увидеть, где и как злоумышленники могут закрепиться. Понимание принципов атаки позволяет быстро находить ее источник и реагировать на угрозу. Предупрежден — значит вооружен.

Читать далее
Total votes 8: ↑8 and ↓0+15
Comments0

Запросы двойной надежности

Level of difficultyMedium
Reading time9 min
Views5.4K

Отправляем запрос на 20 000 000 евро, на перестановку 900 ордеров на бирже. Что может пойти не так? 

Сегодня я расскажу, как не терять пару миллиардов клиентских денег, когда уж очень нужно что-то массово сделать на бирже. Этот текст про неявную и, казалось бы, незаметную проблему, которая ждет нас в недрах работы с любыми запросами, которые могут исполниться не до конца – в частности, с HTTP-запросами. Удивительно, как мало об этой проблеме думают и насколько мало инструментов для её решения. 

Задача была такова – реализовать массовое управления биржевыми ордерами, причём не только в рамках одной биржи, а в целом по всей планете. И чтобы оно точно отработало. 

В повествовании будут клиенты, серверы и котики. С котиками всегда интереснее.

Читать далее
Total votes 22: ↑19 and ↓3+21
Comments18

Как американская коррупция превратила физика-ядерщика в быдло-кодера

Level of difficultyEasy
Reading time17 min
Views106K

Это история из цикла «как войти в IT», написанная старпером, ветераном броуновского движения, который помнит динозавров. Поэтому его опыт вхождения в ИТ никому не пригодится, но представляет интерес с точки зрения истории.  

Также поделюсь своим мыслями об интерфейсе инженерного ПО. Участвуя в разработках различного ПО, предназначенного для ускорения разработки сложных систем, периодически приходится выслушивать жалобы от новых пользователей на «кривой и устаревший» интерфейс ПО. Однако инженеры, погруженные в проблемы проектирования реальных железок, вообще не задают нам таких вопросов, либо потому, что уже искривили свои руки о кривой интерфейс, либо им это вообще неважно. Более того, есть два примера, когда реальные высокопрофессиональные инженеры в своей области предъявляли претензии обратного свойства, и первая версия кривая версия GUI была удобнее, а вот улучшения делали какие-то полупокеры. 

К написанию данного текста меня подтолкнула беседа с одним из крутых разрабов из «жирной» конторы, с которым мы пересеклись на яхте в Средиземном море. Узнав, что я тоже из Бауманки, и у меня свой бизнес, он заинтересовался и выспрашивал. Как я смог начать бизнес на софте, почему не пошел в большую контору, типа Yandex, Сбер и прочие. У него тоже знакомство с софтом началось как создание собственной разработки по анализу результатов металлургических испытаний в лаборатории, но закончилось работой прогером по найму. Попивая вино на яхте где-то между Турцией и Грецией в 2023 году, он предположил, что, возможно, если бы он продолжал писать софт для металлургических исследований, то, наверное, сейчас мог плавать на своей яхте, а не арендованной, и не около Турции, а на Карибах (но это не точно). А поскольку фарш невозможно провернуть назад, я решил описать свою историю успеха, так как она забавна и поучительна.

Читать далее
Total votes 382: ↑367 and ↓15+417
Comments279

Творим дичь с помощью инструментов веб-разработки

Level of difficultyHard
Reading time11 min
Views13K

Или что будет если заставить очень опытного разработчика заниматься не своим делом. Думаю после этой статьи термин «overqualified» заиграет для вас новыми красками.

Читать далее
Total votes 40: ↑40 and ↓0+51
Comments15

apiman.io — api-шлюз для интеграционного обмена с открытым кодом

Reading time3 min
Views1.7K

Сначала о расскажу о проблеме. Нашей компании понадобился внешний шлюз для перенаправления API-запросов от партнеров к различным приложениям внутри компании.

Запросы нужно передавать для разных задач. Одна из них - интеграция внешних складских систем (WMS).

Читать далее
Total votes 1: ↑1 and ↓0+1
Comments0

Как устроен The Update Framework (TUF). Обзор технологии безопасного обновления ПО

Reading time9 min
Views6.8K

The Update Framework (TUF) — программный фреймворк с открытым кодом для защиты репозиториев, из которых скачиваются обновления. Главная задача TUF — предоставить возможность обновлять софт безопасно, а также минимизировать ущерб в случае, если обновление скомпрометировано. Фреймворк можно использовать, чтобы создать собственную систему обновления ПО (например, менеджер пакетов) либо повысить безопасность существующей.

В 2017 году TUF приняли в экосистему CNCF, а в 2019-м он стал первым выпускником среди проектов из области безопасности. TUF ориентирован на внедрение в любые системы обновления ПО и системы управления конфигурациями (а раз проект в CNCF, то речь, конечно, идет про решения из мира cloud native). Его уже используют Microsoft, Amazon, Google, DigitalOcean, Docker, IBM, Datadog, VMware, Red Hat и другие компании.

Читать далее
Total votes 40: ↑40 and ↓0+40
Comments0

Прощайте, базы данных, да здравствуют векторные базы данных

Level of difficultyEasy
Reading time11 min
Views75K

Революция в области искусственного интеллекта переформатирует все отрасли нашей жизни, с одной стороны обещая невероятные инновации, а с другой ー сталкивая нас с новыми вызовами. В безумном потоке изменений эффективная обработка данных становится приоритетом для приложений, на основе больших языковых моделей, генеративного ИИ и семантического поиска. В основе этих технологий лежат векторные представления (embeddings, дальше будем называть их Эмбеддинги), сложные представления данных, пронизанные критической семантической информацией.

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

Читать далее
Total votes 43: ↑41 and ↓2+49
Comments55

Ключевой навык успешной карьеры в ИТ или 8 заблуждений на проектах

Level of difficultyEasy
Reading time7 min
Views31K

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

Этот главный навык пригодится всем в индустрии — программистам, лидам, продуктологам, тестерам, менеджменту и всем остальным.

Имя ему этому навыку — здравый смысл.

Да, вот так просто, но на самом деле все совсем не просто, и я сейчас это объясню.

Читать далее
Total votes 55: ↑51 and ↓4+53
Comments61

Распаковываем файл gzip вручную. Часть 2

Level of difficultyMedium
Reading time13 min
Views3.5K

В этой части мы, как и в первой, распакуем файл gzip вручную, но теперь ещё и декодируем коды Хаффмана.

Для начала запишем данные на диск:

$ echo "hector the frantic father on an anchor or a rare fat cat sat on the ranch" > test-huff.txt
$ xxd test-huff.txt
00000000: 6865 6374 6f72 2074 6865 2066 7261 6e74  hector the frant
00000010: 6963 2066 6174 6865 7220 6f6e 2061 6e20  ic father on an
00000020: 616e 6368 6f72 206f 7220 6120 7261 7265  anchor or a rare
00000030: 2066 6174 2063 6174 2073 6174 206f 6e20   fat cat sat on
00000040: 7468 6520 7261 6e63 680a                 the ranch.

На этот раз файл получился размером 74 байта и содержит 13 символов:

a, c, e, f, h, i, n, o, r, s, t; пробел (0x20) и перевод каретки (0x0a).

В этой строке есть много повторений. Надеюсь, gzip это учтёт. Поскольку я работаю под Windows, то для распаковки использовал 7zip-zstd.

$ 7z a -mx9 test-huff.txt.gz .\test-huff.txt
$ xxd test-huff.txt.gz
00000000: 1f8b 0808 d76f 6565 0200 7465 7374 2d68  .....oee..test-h
00000010: 7566 662e 7478 7400 158b 410a 0031 0c02  uff.txt...A..1..
00000020: effb 0abf 2621 257b 69c1 e6ff d480 1e64  ....&!%{i......d
00000030: c6ca e823 7425 96b8 fb0f 2c7a 0967 8393  ...#t%....,z.g..
00000040: 2873 8710 9543 11ee 75ad cc51 237d 0fc7  (s...C..u..Q#}..
00000050: 9797 d64a 0000 00                        ...J...

Чтобы вы лучше поняли, как будет выглядеть декодирование, покажу первую строку декодированного потока gzip:

0101 1001 0001 1101 00111 010 000 1101 0101 1001 000
h    e    c    t    o     r   ' '   t    h  e    ' ' 

Ну а подробности читайте далее.
Читать дальше →
Total votes 28: ↑26 and ↓2+42
Comments0

Анонимный Дед Мороз на Хабре: хвастаемся подарками

Level of difficultyEasy
Reading time1 min
Views4.5K

Привет Хабр! 15 декабря мы запустили новый сезон АДМ — в нём успело принять участие 135 пользователей, 56 из которых уже отправили свои подарки, а 14 уже даже успели получить! И уже собралось немало запросов «А где же хвастаться подарками?!» — что ж, не далее, чем в комментариях к этой публикации!

Читать далее
Total votes 39: ↑36 and ↓3+57
Comments123

Почему вам стоит отказаться от использования timestamp в PostgreSQL

Reading time10 min
Views65K

Не секрет, что работа с часовыми поясами — боль, и многие разработчики объяснимо стараются ее избегать. Тем более что в каждом языке программирования / СУБД работа с часовыми поясами реализована по-разному.

Среди тех, кто работает с PostgreSQL, есть очень распространенное заблуждение про типы данных timestamp (который также именуется timestamp without time zone) и timestamptz (или timestamp with time zone). Вкратце его можно сформулировать так:

Мне не нужен тип timestamp with time zone, т.к. у меня все находится в одном часовом поясе — и сервер, и клиенты.

В статье я постараюсь объяснить, почему даже в таком довольно простом сценарии можно запросто напороться на проблемы. А в более сложных (которые на самом деле чаще встречаются на практике, чем может показаться) баги при использовании timestamp практически гарантированы.

Читать далее
Total votes 81: ↑78 and ↓3+90
Comments136

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

Reading time25 min
Views1.5M

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




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

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

Надеюсь, вам удастся из него извлечь что-нибудь новое и полезное, даже если вы уже в ладах с регулярками.
Читать дальше →
Total votes 99: ↑98 and ↓1+97
Comments66

Создание рекомендательных систем с использованием библиотеки Surprise

Level of difficultyEasy
Reading time10 min
Views6.7K

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

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

Читать далее
Total votes 8: ↑7 and ↓1+8
Comments3

Тестируем API в Таверне

Level of difficultyMedium
Reading time6 min
Views2.6K

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

В сегодняшней статье мы поговорим об использовании Python для проверки API веб приложений. Но сначала давайте рассмотрим, что представляет из себя тестирование API.

Читать далее
Total votes 9: ↑8 and ↓1+9
Comments1

Гайд по регистрации ПАК в реестр ПО Минцифры

Level of difficultyHard
Reading time19 min
Views14K

Рассказываем о 1236 Постановлении Правительства и других документах, регулирующих процедуру. Подробно описываем как включить ПАК в реестр отечественного программного обеспечения Минцифры. Отдельно разбираем процедуру включения программной части ПАК и все способы удовлетворить требования к аппаратной части. Указываем на ключевые моменты в подготовке и ссылки на все документы для самостоятельного изучения темы.

1. Что такое Программно-аппаратный комплекс (ПАК) ? Описание реестров, встречающихся в статье.

2. Какие преимущества дает регистрация ПАК в реестр Минцифры по ПП 1236?

3. Какие требования к программному обеспечению при регистрации ПАК в реестр?

4. Какие требования к аппаратной части при регистрации ПАК в реестр?

5. Какую документацию подготовить для регистрации ПАК в реестр?

6. Как проходит процедура проверки ПАК? Кто проверяет и в какие сроки?

Читать далее
Total votes 7: ↑5 and ↓2+4
Comments3

Почтофон: мфу за миллион

Reading time3 min
Views10K
Новым интересным изобретением порадовали нас Дагестанские учёные.
Да, всё правильно, называется он...почтофон.
Я думал они переизобрели факс, но на деле оказалось куда интереснее.
Про это изобретение уже успели поведать по телевидению, но на хабре о нём пока никто ничего не писал, исправим ситуацию.



Под катом вы так же увидете грандиозное разоблачение от других хабра-юзеров.
Читать дальше →
Total votes 230: ↑206 and ↓24+182
Comments334

Убийство разработки: опыт Selectel

Reading time8 min
Views34K

Итак, я зашел в раздел с постами и там увидел диаграмму (пик рилейтед).

А под ней ссылка на статью «Разработчики - в стойло, менеджеры в - башню из слоновой кости: создаем касту избранных в 4 шага».

Фейл за фейлом
Total votes 135: ↑107 and ↓28+106
Comments52

Языки и технологии принтеров

Reading time7 min
Views22K
image

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

В этой статье предлагаю рассмотреть и сравнить технологии печати, с которыми вы сталкиваетесь, выбирая новый принтер, проводя допечатную подготовку документа или работая с электронными PDF-копиями документов. И конечно, если вы пытаетесь перехватить и проанализировать задание на печать.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments5

Information

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