Pull to refresh
1
0
Send message

Статический и динамический полиморфизм в C++

Level of difficultyEasy
Reading time6 min
Views7.2K

Привет, Хабр! К сегодняшнему дню написано уже немало учебников и статей по полиморфизму в целом и его воплощения в C++ в частности. Однако, к моему удивлению, при описании полиморфизма никто (или почти никто) не затрагивает тот факт, что помимо динамического полиморфизма в C++ имеется и достаточно мощная возможность использования его младшего брата – полиморфизма статического. Более того, он является одной из основных концепций STL – неотъемлемой части его стандартной библиотеке.

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

Читать далее
Total votes 11: ↑8 and ↓3+6
Comments28

Маленькие коробочки или почему мы любим 7547/TCP

Reading time5 min
Views7.9K

Исследование СайберОК содержит в себе интересные ответы на то, что находится на интересном порту 7547/TCP, о котором многие могут услышать впервые. Пробежимся по тому, какую опасность в себе представляет этот порт и какие интересные физические устройства обитают на нём. Построим поверхность атаки, вспомним как беспощадно наводили шуму эти маленькие коробочки – разложим это всё тщательно на атомы – на TP-Link-и, Keenetic-и, Mikrotik-и, а также проанализируем насколько это всё уязвимо. Лээтс го!

Читать далее
Total votes 12: ↑10 and ↓2+10
Comments19

С++ вам не нянька! Делайте, что хотите, но виноваты будете сами

Reading time7 min
Views7K

Поговорили о перспективах С++, его особенностях и востребованности на рынке с Андреем Никитиным, ведущим инженером-разработчиком направления системного программирования Нижегородского подразделения компании «Криптонит».

С++ уже более сорока лет. В чём причина его популярности?

В плане семантики — это универсальный язык, но чаще С++ используется как объектно-ориентированный — с наследованием, интерфейсами и так далее. С++ позволяет строить что угодно — универсальные абстракции, иерархии любой сложности, логические слои, стеки протоколов... Обычно среди сильных сторон упоминают кроссплатформенность, но её нет «по умолчанию». Это не Java, программы на которой транслируются в байт-код и запускаются в виртуальной машине. В C++ нужно сразу писать код под все планируемые архитектуры и операционные системы, учитывать зависимые библиотеки. Всё это требует значительных усилий. Кроссплатформенность в С++ не данность, а отдельное требование, которое нужно учитывать на этапе разработки.

Почему С++ используют в «Криптоните» сейчас, когда есть более современные языки?

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

Читать далее
Total votes 10: ↑8 and ↓2+6
Comments15

Как сделать пароль менеджер

Level of difficultyEasy
Reading time55 min
Views20K

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

Читать далее
Total votes 20: ↑12 and ↓8+5
Comments39

TI на коленке или как исследовать угрозу с помощью браузера

Level of difficultyEasy
Reading time4 min
Views2.8K

Всем привет! В этой статье мы не будем рассуждать на тему что такое Threat Intelligence, и с чем его едят, а сразу перейдем к делу.

TL DR В этой небольшой заметке будет показано, как можно провести разведку угрозы и атрибутировать группировку имея лишь письмо и браузер, не прибегая к техническому анализу и вот это вот все. Матерым разведчикам такая статья может показаться скучной, но молодым ребятам и девчатам, кто ничинает свой путь в TI, может быть любопытно взглянуть на mindset при проведении разведки.

PS: картинка сгенерирована нейросетью kadinsky 3.1 по запросу "Cyber Threat Intelligence по русски"

Читать далее
Total votes 6: ↑4 and ↓2+4
Comments1

Конструирование лучшей команды (мечты). Социальная инженерия. Часть 2

Level of difficultyMedium
Reading time7 min
Views1.4K

В завершении предыдущей части мы рассмотрели четвертую концепцию Лумана о внутреннем противостоянии в Социальной среде между, насаждающей правила Надсистемой и сопротивляющейся ей Системой-элементом. Случаются и более запущенные случаи, когда Надсистема биологически состаривается, а Система-элемент только набирает социальный вес. При этом при всем, Субъективная реальность Надсистемы все еще воображает себя злободневной и насущной. Такое вот столкновение сказывается на устойчивости и стабильности всего Сообщества, воздействуя на структуру ее глубинного “внутреннего мира”. В результате этих перемен, трансформируется и продукт Среды - Социальная реальность, что нельзя не учитывать при конструировании Сообщества.

С точки зрения системотехники подобные процессы отражают седьмое свойство системы:

«Изменчивость системы со временем». В любой системе происходят изменения, которые надо учитывать: предусматривать и закладывать в проект будущей системы.

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

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

Читать далее
Total votes 6: ↑2 and ↓4+2
Comments13

Статический анализ структуры базы данных (часть 3)

Level of difficultyMedium
Reading time7 min
Views4.3K

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

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

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

Чему нас НЕ учат случаи МТС, СДЭК и КБ Радуга или Имитационная Безопасность

Level of difficultyHard
Reading time7 min
Views29K

Утром 17 марта (2024) стали недоступны VDS‑серверы одновременно в двух датацентрах CloudMTS — в 03:30 в 1cloud.ru, в 03:45 в oblako.kz
Сервер в oblako.kz ожил 18 марта в 22:25
Сервер в 1cloud.ru ожил 23 марта в 15:40

Читать далее
Total votes 111: ↑86 and ↓25+80
Comments61

Почему тебе не дают повышение / новый тайтл ч.1

Level of difficultyMedium
Reading time11 min
Views9.7K

Какие основные факторы влияют на перформанс-ревью и твой карьерный рост?

На самом деле, в этом вопросе играют роль два фактора.

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

1. Первый фактор: бизнес-модель;

2. Второй фактор: твоя ценность для бизнеса и твоё позиционирование.

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

Читать далее
Total votes 16: ↑12 and ↓4+11
Comments39

Дроиды и питоны: работаем с ADB на Python

Level of difficultyEasy
Reading time16 min
Views6.4K

Однажды, в одну из бессонных ночей, я думал, как можно автоматизировать рутинные действия на андроид-смартфоне. Ну вы же знаете программистов - их хлебом не корми, дай только что-то автоматизировать. Будь это просто создание каких-то отчетов или сортировка файлов.

И вот, тогда я узнал об одной прекрасной утилите - Android Debug Bridge, ADB. Прекрасный инструмент для работы с Android - подключил телефон, и занимайся чем хочешь. Но иногда так лень запоминать разные команды, вводить их каждый раз... Вот здесь на помощь приходит Python. Прекрасный язык с большими возможностями.

В этой статье я рассмотрю как работать с ADB через python.

Если вы - разработчик или тестировщик приложений для Android, просто обычный программист или юзер - то вы попали по адресу.

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

Что такое PID 0

Reading time17 min
Views34K

Как говорится, «не будите во мне ботана». Иногда кто-нибудь беспечно задаст мне, казалось бы, невинный вопрос — и я убиваю следующие несколько часов (в описываемом случае — дней), чтобы полноценно сформулировать ответ. Обычно всё это заканчивается с моей стороны очередной филиппикой на mastodon или в каком-нибудь приватном чате. Но на сей раз не буду этим ограничиваться и напишу целый пост.

Вот с какого невинного вопроса всё началось:

А почему UID начинаются с 0, но PID начинаются с 1?

Если совсем коротко: в Unix PID (идентификаторы процессов) начинаются именно с 0! PID 0 просто не отображаются в пользовательском пространстве через традиционные API.  PID 0 запускает ядро, а затем практически уходит на покой, только немного участвует в работе планировщика процессов и в управлении питанием. Кроме того, на просторах Интернета доминирует заблуждение о PID 0, всё из-за одного ошибочного утверждения в Википедии, которому уже 16 лет.

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

Но, конечно же, любой желающий может просто загуглить, что такое PID 0, верно? Зачем мне вообще всё это писать?

Читать далее
Total votes 89: ↑77 and ↓12+78
Comments18

ECSF — европейская система навыков кибербезопасности

Level of difficultyMedium
Reading time5 min
Views2.9K

Завершая небольшую серию материалов о моделях компетенций в ИБ, нельзя не рассказать о самой молодой и компактной из них — ECSF, впервые представленной на 1-й конференции ENISA по кибернавыкам в сентябре 2022 года. ECSF обобщает роли, связанные с кибербезопасностью, в 12 профилей, которые с учётом обязанностей, взаимодействия и взаимозависимостей, обеспечивают единое понимание задач, навыков и знаний, и способствуют разработке программ обучения.

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

Использование Windows Credential Manager для безопасности PowerShell

Reading time4 min
Views2K

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

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

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

Читать далее
Total votes 6: ↑6 and ↓0+9
Comments7

Боль руководителя при внедрении систем безопасности в компании или как я MFA внедрял

Level of difficultyMedium
Reading time11 min
Views3.5K

Как вы думаете, просто ли внедрить MFA в организацию? С какими проблемами сталкивается руководитель? Что при этом видят пользователи?

На эти и другие вопросы вы найдете ответ в этой статье.

Поехали
Total votes 10: ↑9 and ↓1+9
Comments15

Даже в школе есть безопасники: решаем простые, но интересные CTF-турниры

Reading time5 min
Views4.2K

В продолжение серии материалов по решению CTF-турниров из разных стран хочу рассказать о недавно прошедшем BYUCTF 2024 от организаторов из университета Бригама Янга. А также о bcactf 5.0 от академии округа Берген, который ориентирован на школьников старших классов. Оттого будет интересно узнать, чем сейчас живут старшеклассники, которые увлекаются информационной безопасностью.

В рамках статьи покажу решение нескольких заданий из разных категорий: OSINT, Misc, Forensic и Web. Некоторые могут показаться простыми, ведь в этой подборке задачи с турниров для старшеклассников и студентов. Если вы считаете, что CTF — это сложно и непонятно, надеюсь, что мои обзоры смогут вселить в вас уверенность. Поехали!
Читать дальше →
Total votes 28: ↑28 and ↓0+39
Comments0

Начинаем утреннюю зарядку для тех, кто смотрит нас вечером, или основы сбора логов в ОС Astra Linux Special Edition

Level of difficultyEasy
Reading time6 min
Views8.5K

Всем привет! Меня зовут Михаил, я разработчик в команде, которая создает ОС Astra Linux.

Тема логирования в дистрибутивах Linux всегда живо обсуждается как среди наших клиентов и партнёров, так и внутри компании.

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

Описанные выше пробелы в знаниях сообщества побудили меня подумать над тем, как помочь коллегам сориентироваться в непростом хитросплетении путей, по которым запись лога проходит от исходной программы до конечного файла. Так мне пришла идея написать цикл статей, посвященный логированию в операционной системе Astra Linux Special Edition.

Читать далее
Total votes 12: ↑10 and ↓2+9
Comments13

Осваиваем DOM Invader: ищем DOM XSS и Prototype Pollution на примере пяти лабораторных и одной уязвимости на Хабре

Reading time8 min
Views3.7K

Привет, Хабр! Сегодня мы познакомимся с DOM XSS и Prototype Pollution, рассмотрим примеры уязвимостей на Bug Bounty и научимся использовать инструмент DOM Invader, который заметно упростит поиск таких уязвимостей.

Материал будет интересен специалистам, которые уже сталкивались с DOM XSS и Prototype Pollution. Если вы еще не знакомы с этими уязвимостями, стоит обратить внимание на лабораторные PortSwigger и теорию и только потом приступать к изучению DOM Invader. А если знакомы, то быстро вспомним основные понятия и объясним, а в чем же, собственно, состоит опасность.

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

Разработка многопоточной Базы Данных: Ключевые аспекты и примеры реализации ( C++ )

Reading time6 min
Views2.5K

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

Читать далее
Total votes 9: ↑5 and ↓4+4
Comments7

Как выбрать плагин для защиты сайта, если вы начинающий веб-мастер

Reading time9 min
Views1.5K

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

Меня зовут Алексей Солдатов, я руковожу техподдержкой в SpaceWeb. В этой статье рассказываю, как из всего многообразия плагинов выбрать действительно надёжные. В конце — подборка хороших бесплатных плагинов для популярных CMS. 

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

Как решить проблему уязвимостей бизнес-логики? Поломать приложение еще до написания кода

Level of difficultyMedium
Reading time10 min
Views3.2K

Всем привет. Меня зовут Нияз Кашапов, я AppSec Lead в СберМаркете. Улучшаю процессы безопасной разработки уже более 5 лет. Начинал карьеру в финтехе, где занимался безопасностью кода, фич и бизнес-процессов в онлайн-банкинге. А сейчас продолжаю начатое в одном из самых быстрорастущих игроков на рынке e-com.

Думаю, у многих в практике встречалась уязвимость, которую просто так не пофиксить — ведь она заложена глубоко внутри разрабатываемого решения, обвешана кучей зависимостей и требует полного ребилда самого решения. Чаще всего такие уязвимости остаются в проде навсегда и удерживаются от «падения» множеством костылей. Возникает резонный вопрос: «Как они возникли?» Чаще всего ответ — «Так исторически сложилось», а истоки проблемы давно забыты. Боролься с таким лучше превентивно, а как это сделать — попробую рассказать в этой статье.

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

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

Information

Rating
Does not participate
Registered
Activity

Specialization

Pentester, Reverse Engineer
Junior
From 80,000 ₽
Reverse development
Ruby
Linux
IDA Pro
Ghidra
C++
C
Assembler
Penetration testing