Цифра- Научно-практический журнал

Ловцы хакеров: в Самаре открылся международный турнир по информбезопасности VolgaCTF

Фото: пресс-служба турнира Volga CTF

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

Об этом говорили в напутственных словах на церемонии открытия чемпионата почетные гости и эксперты отрасли.

CTF — от английского «Capture the Flag» («Захват флага») — формат соревнований по кибербезопасности. Главная задача участников — найти и захватить «флаг»  противника. «Флаг» может выглядеть как строка, скрытая в файле или системе, или часть кода.
Концепция CTF происходит от реальной дворовой игры «Захвати флаг»: команды захватывают реальный флаг соперника. Побеждают те, кто принесет вражеский флаг на свою территорию.

«Это исключительно актуальные соревнования. За 15 лет их проведения многие ребята-участники прошли серьезный путь в науке, в своих прикладных разработках и заняли топовые позиции по информационной безопасности в ведущих ИТ-компаниях России и мира. Поэтому и у вас здесь есть возможность проявить себя. И тот опыт, который вы приобретете за эти дни, будет очень полезен и вам, и всей нашей стране», — сказал президент Самарского университета, академик РАН Виктор Сойфер.

Ректор Самарского университета Владимир Богатырев привел статистику: в возглавляемом им вузе численность студентов, которые обучаются по информационным направлениям и специальностям, за последние четыре года выросла в два раза.

«Ожидаем, что количество айтишников в университете в ближайшие несколько лет увеличится до четырех тысяч человек. Это очень и очень существенный рост», — отметил Владимир Богатырев.

«Любая кибератака — это не только техническая атака, это еще и экономический ущерб. Сейчас много компаний цифровизируется, создаются реестры и различные информационные ресурсы. Их нужно защищать, охранять, чтобы организации и предприятия избежали ущерба. Поэтому такие специалисты, как вы, на рынке востребованы, в том числе в нашей компании: мы с удовольствием берем ребят на практику», — сказала генеральный директор ООО «АйЭсТи» Елена Лукьянчикова. 

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

Организаторы VolgaCTF — министерство цифрового развития и связи Самарской области, Самарский университет, «Компьютерные технологии», «Самара-Информспутник», СРОО «За информационное общество», а также группа независимых специалистов. При поддержке МИД РФ. Партнеры соревнований: BI.ZONE (Бизон), BI.ZONE BUG BOUNTY (Бизон Баг Баунти), OFFZONE 2025 (офзон), Standoff 365 (Стэндоф), ГК «Солар», «МойОфис». Информационные партнеры: CyberED (Кибер ЭДи), MEPhI CTF (МефИ ЭсТи Эф), Райтапы по CTF{2025}.

Формат соревнований VolgaCTF — традиционный для сферы информационной безопасности — Capture the flag (кэ́пчэр зэ флэг). Существует несколько его разновидностей.

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

Attack-defense (атак дифенз) — формат для финала. В нем участники должны в виртуальном пространстве «похитить флаг» у соперников, атакуя их сервисы, при этом защищая собственные ресурсы.

Вторая составляющая VolgaCTF — конференция, во время которой перед слушателями выступают представители ведущих компаний отрасли, независимые ИБ-эксперты.

Один из них — специалист по информационной и мобильной безопасности Александр Чайка (Вир).

Тема его доклада — «Архитектура утечек в операционной системе Андроид» — актуальна для всех владельцев смартфонов с этой операционной системой.
«У нас есть две компании, которые лидируют в мире по производству сотовых телефонов: Apple (Эплс) с iPhone (айфон) и Google (Гугл) с Android (андроид). Поскольку Google является в первую очередь коммерческой компанией, то ее задача в первую очередь приносить прибыль. Поэтому Google торгует информацией с наших смартфонов. Примерно 80% всего трафика, который выдает ваш телефон, уходит разным хорошим людям», — объяснил Александр.

Во время лекции эксперт рассказал студентам, откуда именно уходят данные: от системных служб Google и OEM-прошивок до предустановленных приложений и библиотек SDK (ЭсДэКа). А также проинформировал о мерах защиты, которые действительно работают, и развенчал популярные мифы о  настройках конфиденциальности.

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

Например, Гантумур Золбообаяр из Улан-Батора участвует в VolgaCTF в четвертый раз и признается: «Волга — это в самое сердечко!».

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

Завершится VolgaCTF 19 сентября.

Татьяна Плотникова

Материал подготовлен при поддержке гранта Минобрнауки России в рамках Десятилетия науки и технологий.

Валентин Шабаев, студент ПГУТИ: «Имея в активе свои собственные проекты, можно рассчитывать совсем на другой уровень дохода»

Фото: Юлия Зиганшина

Досье «ВН»

Валентин Шабаев родился в 2001 году в городе Бугуруслане Оренбургской области.

В 2024 году окончил бакалавриат ПГУТИ по специальности «ИВТ». Студент магистратуры по специальности «Программная инженерия», направление «Большие данные и их анализ». Работает в штате федеральной ИТ-компании в должности «Разработчик».

— Валентин, какой профессии вы учитесь?

— Аналитик данных, разработчик хранилищ для этих данных, программист, системный аналитик.

— А чем вы занимаетесь в компании, в которой работаете?

— Мы разрабатываем различные программные продукты для государственных и частных заказчиков.  Например, сейчас работаю над системой, которая автоматизирует подачу заявлений через портал «Госуслуги».

— Это первое ваше место работы?

— Нет. Я начал работать на 4 курсе, сейчас понимаю, что поздновато это сделал: последний семестр, учиться осталось восемь недель, потом писать диплом, а я нашел работу… Первый мой проект в этой компании — создание CRM-системы для анализа и управления компанией в сфере общественного питания. Я проработал над ней несколько месяцев.

А после поступления в магистратуру нашел удаленную работу в своей нынешней компании.

— Учась на бакалавриате, вы реализовали свой собственный коммерческий проект. Как вы к этому пришли?

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

— Как все начиналось? Какие этапы реализации проекта вы могли бы выделить?

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

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

Затем мы работали над нефункциональными требованиями. Одно из них — безопасность.

Потом в дело вступил дизайнер из нашей команды. В итоге мы создали лендинг. В нем можно было посмотреть информацию о нашем сообществе и о проведенных нами мероприятиях. Это было нечто вроде рекламной презентации для представления спонсорам. Кстати, тогда я узнал интересную деталь: многие представители бизнеса, оказывается, приветствуют, когда у тебя есть не только группа во «ВКонтакте», но и сайт. Хотя одновременно я наблюдаю, что сегодня все быстро меняется в этом смысле. Нужно учитывать возраст предпринимателя, руководителя, и то, кто распоряжается маркетинговым, рекламным или PR-бюджетом. И уже из этого строить свою стратегию. Если приходится работать напрямую с начальником, то среди них встречаются те, кто по старинке отдает предпочтение не соцсетям, а сайтам. 

— Что дальше произошло с вашим лендингом?

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

— А если отбросить финансовую составляющую — как вы думаете, какие еще факторы не позволили вам тогда осуществить успешный коммерческий запуск этого проекта? 

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

— А какой опыт вы для себя приобрели?

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

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

— И как вам работа в команде?

— Это необходимость, от которой уже не уйдешь. Ты не сможешь быть одиночкой, который все тащит на своем горбу.

— Планируете в дальнейшем реализовывать собственные коммерческие проекты?

— Конечно, сейчас мой стимул — решение в будущем жилищного вопроса с помощью ипотеки. Для этого нужно хорошо зарабатывать. Сейчас, в найме, я понимаю, что мои финансовые возможности ограничены. А имея в своем активе еще и собственные проекты, можно рассчитывать уже совсем на другой уровень дохода. У меня перед глазами пример моего руководителя на первой моей работе, тоже программиста. Он ушел из фирмы, открыл свое кафе. Создал для себя же программное обеспечение, а потом это программное обеспечение — CRM-систему — начал продавать.

— А у вас есть уже идеи, которые впоследствии могли бы вырасти в успешный коммерческий проект?

— Пока не хотелось бы их озвучивать. Но в целом, наверное, первое, что приходит на ум, — разработка какого-либо инструмента, которого либо не хватает, либо он стал бы более удобным в использовании по сравнению с аналогом. Можно его создать и потом на нем зарабатывать. Скажем, есть у нас есть программное обеспечение для сбора логов Prometheus. Логи — это информация о том, как работает приложение.

Ребятам-разработчикам, которые пользовались Prometheus, не понравилось, как работает в нем шардирование. И они разработали аналог этого ПО — Victoria Metrics.

Поэтому нужно внимательно относиться к деталям в своей работе и думать, как их можно усовершенствовать и заработать на этом.

— А как сегодня нужно регистрировать свои разработки в области ПО, чтобы на них зарабатывать?

— После 2022 года в России создан реестр отечественного ПО, в котором регистрируется каждая разработка, нужно только заплатить госпошлину. К слову, студенты могут регистрировать свои разработки при поддержке вуза. В этом случае учебное заведение уже является партнером разработчика и имеет право на часть прибыли от проекта.

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

— А как вы оцениваете перспективы использования отечественного ПО в разработке?

— Здесь нам, безусловно, есть куда расти. Сегодня из отечественного ПО максимум, что используют разработчики, — «КриптоПро». Появляются сервера на Astra Linux, Ред ОС, аналог Prometheus — Victoria Metrics, о котором я уже говорил.

Весь другой инструмент, язык программирования, сама логика программирования — это пока только зарубежные технологии…

— Что вы могли бы посоветовать тем молодым людям, которые только собираются создать свой первый коммерческий проект в сфере разработки?

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

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

Татьяна Плотникова

Материал подготовлен при поддержке гранта Минобрнауки России в рамках Десятилетия науки и технологий.

Олег Рыбин: «Утверждение о том, что на рынке побеждает лучший, работает, только когда рынок зарождается»

Автор фото: Ольга Никитина

«Пришлось резко перестраиваться»

— В 2025 году вы закончили ПГУТИ. По вашим ощущениям, в последние годы изменился подход к обучению?

— Когда выбирал вуз, изучал учебные планы и увидел, что в ПГУТИ образовательная нагрузка сконцентрирована больше на прикладных предметах, чем на непрофильных. Чтобы научиться профессии, важно не отвлекаться на непрофильные предметы, поэтому выбрал этот вуз. Так сложилось, что завершал обучение уже в интересных условиях. В связи с политической обстановкой западные компании отозвали у вуза свои лицензии, и пришлось резко перестраиваться. Студентов перевели на российскую информационную систему, некоторые программы были заменены. Практически весь софт (написание программ — Прим. ред.) теперь базировался на открытых исходных кодах — таких, которые разработчик выложил в открытый доступ. Для обучения все это было не так удобно, как раньше, и большая часть лабораторных работ перекладывалась на устройства студентов.

— Какие знания, которые вы получили в ПГУТИ, больше всего пригодились?

— Направление «программная инженерия» — это больше не программист, а разработчик, проектировщик, который выбирает, какие технологии использовать, на каких платформах писать программы и который, исходя из условий, пишет техническое задание. В вузе получил фундаментальные знания: объектно-ориентированное программирование, структурное программирование, шаблоны, проектирование, архитектурные шаблоны, принципы работы с базами данных и так далее. На основе этих знаний не сложно понять, как работать в конкретном инструменте под конкретную платформу. Эти знания также пригодились, чтобы в дальнейшем было проще учиться. В ИТ нужно всю жизнь учиться: новая технология появилась, надо быстро ее изучить.

Программная инженерия подразумевает весь цикл разработки: сбор требований, формирование технического задания, проектирование программы и ее написание, тестирование и выпуск программы. Знаний ПГУТИ достаточно для того, чтобы понимать, о чем работодатель говорит и что просит сделать.

«В России было разрушено производство»

— Программное обеспечение переходит на российские платформы. Насколько это сложный процесс в части «железа»?

— На базе ARM (компания, выдающая лицензии на изготовление мобильных процессоров — Прим. ред.) в России есть два крупных производителя: «Байкал» и «Скиф». «Байкал» — для ноут-буков и компьютеров, «Скиф» — для мобильных устройств. При этом у обоих архитектура получается иностранная — ARM. Но это уже лучше, чем просто закупать процессоры. Потому что есть уязвимости, лазейки, через которые можно воровать данные (иногда иностранные производители это сами закладывают). Наши производители проходят специализированные проверки. И у них — даже если было бы желание сделать так, чтобы в будущем данные можно было бы получить незаконным путем — гораздо меньше возможностей это сделать. И это уже лучше для пользователей.

В теории, если у наших производителей правообладатели ARM отзовет лицензию, мы не сможем изготавливать процессоры. Но у нас сохранилась своя архитектура. Это процессоры «Эльбрус», которые работают на своей архитектуре, принадлежащей России. И у них нельзя отозвать лицензию, потому что она российская. Это одно из немногого, что смогли сохранить из СССР — архитектуру процессоров 1960 -1970-х годов.

— Значит, производить «железо» Россия может.

— Проблема даже не в том, можем мы или не можем что-то придумывать. Мы можем. Но это надо произвести, а производство у нас практически все было все разрушено. Опомнились только 2 — 3 года назад: «Что-то, кажется, не друзья вокруг нас!». Остался единственный вариант — заказывать процессоры у Китая. Китай при всем хорошем взаимоотношении с ним — часть мировой торговой системы. Заводу (который один в мире делает процессоры — Прим. ред.) запретили производить процессоры для наших компаний. И наши компании вынуждены делать 10 фирм-прокладок, через которые заказывают и принимают процессоры. Из-за этого у нас становится еще меньше объем производства и как следствие — еще дороже цена ПО.

— У нас свое есть, но по сравнению с тем, что сейчас есть на мировом рынке — оно в зачаточном состоянии?

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

«У нас один вариант — стимулировать спрос»

— Достаточно ли поддержки государства производителям «железа»? Стимулирует ли эта поддержка разработчиков?

— Есть некоторые льготы для производственников, гранты и госзакупки. Но сейчас это полумеры, это очень мало. Можно было бы убрать и срезать льготы и гранты, но увеличить госзакупки. Это ключевой момент. Увеличиваем госзакупку — чуть-чуть растет спрос, и можем сделать чуть дешевле. После этого могут прийти крупные госзаказчики и закупить оптом. Тоже увеличивается спрос, и можно продавать уже чуть дешевле. Будет дороже, чем у конкурентов, но можно выйти на потребительский рынок. И будут покупать хотя бы энтузиасты — не обычные пользователи, а кому это интересно.

По части софта та же история. Есть операционная мобильная система на «Авроре». На ней последние несколько лет работает РЖД и Почта России. Сейчас можно купить телефон на «Авроре». На «Андроиде» такой телефон стоит тысяч 7 — 8, на Авроре — 17 тысяч рублей.

Автор фото: Ольга Никитина

— В два раза дороже!

— Но это все равно низкая ценовая планка, и для энтузиастов это не так дорого. Надо понимать, что все зависит от объема производства. Нашим не на чем сэкономить. Китайские телефоны берут оптом, это распространяется на полмира, и Китай может и по 5 тысяч продавать и оставаться в плюсе. У нас на данный момент так не получится.

У нас один вариант — стимулировать спрос. Рыночно это сделать не получится, потому что рынок уже сформирован. Фраза «на рынке побеждает лучший» работает, только когда рынок зарождается, когда отрасль молодая, и все игроки примерно на одной стартовой позиции. Кто-то вырывается вперед и у него больше шансов.

А чтобы сейчас рыночно перебить Google — кому принадлежит андроид — надо спонсировать отрасль больше, чем Google. Причем, несколько лет подряд. А это невозможно. Есть статистика: сколько Intel (компания, которая изготавливает процессоры и комплектующие для ПК — Прим. ред.) тратит на анализ рынка — по сути, чтобы просто узнать сколько пользователей и чего хотят. Не произвести, не разработать, а просто узнать. А есть данные, сколько Российская Федерация выделяет на всю ИТ сферу. Так вот у Intel только на анализ рынка тратится больше, чем наша страна может себе позволить на всю отрасль.

— Разработчики подчеркивают безопасность отечественного ПО. А насколько оно качественное и удобное?

— Ничего не вижу плохого в том, чтобы государство стимулировало приобретение того, что в потенциале безопасно. «Авророй» удобно пользоваться. Проблема в том, что на сегодня там мало приложений. Нет почти никаких банковских приложений нет — Сбера нет, есть только Тинькофф, российской социальной сети нет, нет приложений от «Яндекса». Но есть RuStore.

И здесь тот же самый замкнутый круг: разработчики не хотят делать, потому что пользователи не берут, а покупатели не хотят покупать, потому что мало программ. Решение такое же: в теории государство могло бы сработать и кнутом, и пряником. Если вы разрабатываете под Аврору, вам премии от государства. Если не разрабатываете, мы вас лишаем аккредитации.

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

«Можем сделать все, кроме процессора»

— Сколько лет понадобится, чтобы перейти на российское ПО?

— Вопрос политической воли и вложения государственных денег. На данный момент государство недостаточно вкладывается в это. Технически — с точки зрения уязвимости, которая заложена производителем — это вопрос выживания. Условно говоря — через процессор можно прослушку у генерала поставить и все — все секреты — это уже не секреты.  Думаю, это не в ближайшие 5 и даже 10 лет. Потребительский рынок полностью на отечественное ПО не перейдет. Госсектор потихоньку переходит, но очень медленно.

В 1980–1990 годах Intel построила отдельный завод под каждый свой процессор. Завод отбивался за 1-2 недели. Если бы мы построили такой завод, он отбился бы за 6 лет — и это только выйти в ноль! Нам было бы неплохо сделать общероссийский завод. Разумеется, не такой крутой, как сейчас в Китае. По факту нам не нужен самый мощный и передовой завод. Нам нужен просто завод, мировой актуальности лет 10-15 назад.

— Россия — одна из трех стран, обладающая своими технологиями. Почему у нас не создано отечественное ПО?

— «Эльбрус» сохранился вопреки действиям российского правительства в 1990-е годы. «Московский Центр SPARC-технологий» — это компания, которая владеет «Эльбрусом», и ее создатели разрабатывали «железо» в рамках одного из советских министерств. Когда их расформировали на государственном уровне, они создали свою частную фирму, чтобы хоть как-то выжить. То, что у нас есть «Эльбрус» — это заслуга самой компании, а не государства. Государство начало помогать после начала 2010 годов. До этого организация была на самообеспечении и сумела сохранить наработки. В итоге сегодня мы можем сделать все, кроме процессора, который может сделать только Китай. Мера, которая поможет выйти сегодняшним российским разработчикам на должный уровень — это жесткое регулирование рынка. В условиях догоняющего это единственный способ.

— Как определиться с направлением, куда пойти учиться в ИТ сфере?

— Это широкая сфера: проектировщики, дизайнеры графические, геймдизайнеры, саунддизайнеры, технические писатели, кодеры, тестировщики и так далее. Надо посмотреть любые бесплатные курсы из максимально суженой линии. И для себя решить: что конкретно меня привлекает или что у меня получается. Например, человек хочет делать игры, а по факту гейм дизайн (продумывание игры) ему не нравится, а увлекает рисовать спрайты — иконки, визуал. Двух-трех семинаров и столько же уроков будет достаточно, чтобы определиться. Увидишь, что лучше понимаешь и что можешь легче повторить. Что получается и увлекает — туда и надо идти.

Никитина Ольга

Материал подготовлен при поддержке гранта Минобрнауки России в рамках Десятилетия науки и технологий.

Оксана Захарова: «ИИ усиливает разработчиков, но не заменяет их»

Фото: Юлия Зиганшина

Оксана Игоревна Захарова занимается научной деятельностью более 15 лет. Является кандидатом технических наук, доцентом кафедры информационных систем и технологий и заместителем заведующего научно-исследовательской лабораторией искусственного интеллекта ПГУТИ. На ее счету — более 180 научных трудов, монографий, учебно-методических работ, кураторство студенческих стартапов и проектов.

«Ключевая роль остается за человеком»

— Оксана Игоревна, какое место ИИ сейчас занимает в программировании?

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

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

— Какие инструменты используют разработчики? Опишите их плюсы и минусы.

— С развитием генеративного ИИ появилось множество инструментов, которые помогают разработчикам повышать производительность. В частности, популярностью пользуются ассистенты, способные генерировать фрагменты кода, предлагать автодополнения и даже писать целые функции на основе описания. Один из первых и самых известных инструментов — GitHub Copilot, основанный на модели OpenAI Codex. Amazon CodeWhisperer особенно хорош при работе с AWS. Google Duet AI / Gemini for Developers предназначен для интеграции в экосистему Google. Tabnine работает как локально, так и в облаке. Intellicode (от Microsoft) — это расширение для VS Code и Visual Studio с улучшенным автокомплитом. Но в работе с перечисленными инструментами требуется проверка. Они могут сгенерировать небезопасный код и даже нарушить авторские права.

ИИ-инструменты для тестирования и отладки помогают автоматизировать создание тестов, находить ошибки в коде и предсказывать потенциальные баги. DeepCode способен не только анализировать, но и предлагать исправления. Snyk + AI помогает в выявлении уязвимостей в зависимости и коде. Testim.io, Functionize представляют собой платформы для автоматизации тестирования с элементами машинного обучения, а российская разработка Kruzhok AI — открытые модели для программирования, которые подходят для анализа и тестирования. Однако нужно помнить, что эти инструменты могут давать ложные срабатывания. Да и ручное тестирование они полностью не заменят.

Некоторые ИИ-инструменты помогают в проектировании системной архитектуры (ArchUnit + ИИ), диаграмм UML (Mermaid Live Editor + ИИ), UI/UX-дизайне и прототипировании (Galileo AI, Visla AI, Uizard). Есть ассистенты, которые создают техническую документацию (DocuGen, Write the Docs AI), комментировать сложные участки кода (ChatGPT / Gemini / YandexGPT), а также переводят код между языками программирования (Transcrypt, Codex Translator). Вероятнее всего, потребуется проверка и дополнительное редактирование, но процесс эти инструменты точно облегчат.

Хорошим подспорьем ИИ стал также для DevOps и автоматизации. Созданные инструменты помогают в управлении инфраструктурой, автоматизации деплоя, анализе логов. Также они позволяют мониторить производительность. Например, Wiz.io, Polaris AI хороши в анализе безопасности и управления облачной инфраструктурой, Run.ai, Domino Data Lab — в оптимизации работы с ресурсами в ML-проектах, Logz.io + ИИ — в поиске аномалий, а Prometheus + ИИ-аналитика — в прогнозировании нагрузки и сбоев.

— Как в России продвигается разработка таких ИИ-ассистентов?

— В России активно развиваются собственные ИИ-технологии, особенно в области LLM (Large Language Models), ориентированных на русскоязычную среду и локализованные задачи. Например, упомянутый мной Kruzhok AI поддерживает несколько языков. YandexGPT может помочь в написании и объяснении кода. SberGigaChat, GigaChat Pro используется внутри Сбера и доступен через API, в том числе для разработки. Skolkovo AI представляет собой платформу с открытыми моделями для различных задач, включая программирование. Есть стартапы и частные разработки: NeuralSpace, Redmadrobot AI, AICoder.

— Создают ли разработчики ИИ-инструменты под себя? Каковы особенности?

— Да, всё чаще разработчики создают собственные внутренние инструменты, адаптированные под конкретные задачи, технологии или стек компании. Это позволяет учитывать корпоративные стандарты кодирования, интегрировать решения в CI/CD и другие процессы, повышать безопасность и контролируемость результатов.

Например, крупные компании используют частные LLM на базе своих данных, чтобы избежать утечек информации или зависимости от внешних сервисов. Такие решения требуют ресурсов, но дают большую гибкость и контроль.

— Какие слабые стороны есть у ИИ и продуктов на его основе?

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

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

«Ключ — в балансе и осознанном использовании технологий»

— Есть мнение, что ИИ заменит Junior-разработчиков. Каков ваш прогноз?

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

Junior-разработчики будут учиться работать с ИИ, использовать его как инструмент, а не как замену. И именно через практику, через ошибки и опыт они будут расти в Middle и Senior. Более того, новые уровни подготовки могут появиться — например, AI-Aware Developer, который эффективно использует ИИ в своей работе.

Что касается Middle и Senior — они тоже подвержены влиянию ИИ, но в гораздо меньшей степени. Эти специалисты отвечают за принятие архитектурных решений, управление проектами, менторство, которые требуют глубокого понимания предметной области и лидерских качеств — то, что ИИ пока не в состоянии обеспечить.

— Как в целом ИИ влияет на уровень подготовки и развития специалистов? Не приводит ли это к их деградации?

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

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

— Каковы перспективы дальнейшего использования ИИ в разработке IT-продуктов?

— Они огромны. Сейчас мы находимся лишь в начале пути. В будущем можно ожидать глубокую интеграцию ИИ в IDE и DevOps-процессы, автоматическое тестирование и генерацию тест-кейсов, генерацию прототипов, MVP и даже простых приложений по описанию, более точный анализ кода на безопасность, производительность и читаемость, персонализированные рекомендации по обучению и развитию разработчиков. Также, вероятно, удастся добиться улучшенного взаимодействия между людьми и машинами через естественный язык.

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

Александра Ламзина

Материал подготовлен при поддержке гранта Минобрнауки России в рамках Десятилетия науки и технологий.

Андрей Храмов, программист: «ИТ-технологии в медицине позволяют реализовывать идеи, которые раньше казались невыполнимыми»

Фото: Волга Ньюс

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

— Я окончил бакалавриат и магистратуру Самарского государственного технического университета по специальности «современные технологии в электромеханике и автоматизированном электроприводе». После вуза устроился инженером-конструктором. Немного поработав, начал интересоваться ИТ-сферой. У нас была такая программа для расчетов — на базе языка программирования Visual Basic и таблиц Excel. Она довольно простая, но очень экономила время и была удобна в использовании. Можно сказать, что с нее и начался мой интерес к ИТ-направлению. 

Затем я перешел на работу в Институт инновационного развития СамГМУ на должность инженера-конструктора. В мои обязанности входила разработка конструкторской документации, прототипов различных продуктов, работа с «железом».

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

Занятия были ориентированы на junior-программистов. На этих курсах я получил базу, опыт разработки под Unity, научился адаптировать решение под любую платформу.

— А по итогам обучения вам давали задание создать какой-либо «выпускной» проект?

— Да. Мы делали проект, который был связан с летающим космическим кораблем — своего рода «выживалка» в космосе. Там были планеты, которые вращались вокруг Солнца. А мы как бы летали на космическом корабле и еще создавали противников, от атак которых нужно было спасаться.

— Но и после этих курсов вас все-таки нельзя было еще назвать разработчиком?

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

Обстоятельства так сложились, что я вновь сменил место работы. И здесь я начал развиваться уже как ИТ-специалист.

— А чем конкретно вы занимались?

— Компания специализировалась на строительстве. Допустим, есть определенный спроектированный объект. Мы готовили, например, виртуальную модель этого проекта с помощью AR-технологий и как бы вписывали ее в конкретное место, где в будущем планировалось построить этот объект. И инженеры, надев VR-очки, могли проверить свои расчеты, внести какие-то правки, уточнения. Эта технология используется не только в строительстве зданий. Помню, у меня была командировка на завод, где собирают ледоколы. Я впервые побывал внутри строящегося огромного корабля. Так вот там столько всевозможных труб, отсеков, что заблудиться можно! И если где-то в этой системе допущена какая-то ошибка, или использованы некорректные размеры, то обнаружить эту неточность достаточно сложно. В этом случае и выручают такие VR/AR-программы.

— Но вы все-таки вернулись в Институт инновационного развития СамГМУ?

— Да, спустя три года здесь открылась профильная вакансия.

— Почему медицина?

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

— Ваша специализация сейчас — это работа с VR/AR-технологиями?

— В целом да, но у меня достаточно разносторонний функционал. Например, могу создавать какие-либо прикладные программы, необходимые для работы с аппаратной частью. У нас есть проект с роботизированными руками, ногами, датчиками дыхания. Поэтому иногда приходится выходить за рамки VR/ AR-технологий. 

— Расскажите, над какими проектами вы работаете?

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

ReviSide (Ревисайд) — это аппаратно-программный комплекс для проведения дыхательных тренингов по релаксации и стабилизации эмоционального состояния при помощи виртуальной реальности. Терапевтический эффект достигается за счет перехода пользователя от поверхностного дыхания к глубокому, тренировки данного способа дыхания в течение сеанса и его последующего закрепления в повседневной жизни.

— В чем особенность работы тренажера ReviSide?

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

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

Меняется ритм дыхания — меняется сцена. Датчик дыхания фиксирует изменения. Продолжительность дыхания увеличивается, человек расслабляется. Это подтвержденный медицинский факт, что наше эмоциональное состояние зависит от дыхания.

— Вы с самого начала участвовали в создании этого продукта или позже присоединились к проекту?

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

— А как часто вы обновляете ПО для этого тренажера?

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

— Как вы думаете, какое значение для дальнейшего развития медицины имеют современные технологии?

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

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

— Главное — это с чего-то начать. Например, проанализировать рынок, посмотреть, какие вообще есть специальности, в какие компании устроиться проще, в какие — сложнее. А затем выбирать, что больше подходит исходя из своих предпочтений. Например, если человек больше любит разбираться с логикой, то ему стоит выбрать frontend- или backend-разработку. Если он склонен больше к графическому дизайну, то можно стать дизайнером UI/UX интерфейсов. Если к созданию виртуальных миров и работе с 3D-графикой, то, возможно, нужно выбрать технологии AR и VR.

Татьяна Плотникова

Материал подготовлен при поддержке гранта Минобрнауки России в рамках Десятилетия науки и технологий.

Кадры на перспективу: показываем, как студенты создают проекты с ИИ в лаборатории ПГУТИ

Автор фото: Юлия Зиганшина

Материал подготовлен при поддержке гранта Минобрнауки России в рамках Десятилетия науки и технологий.

Проекты будущего: как работает лаборатория ИИ в ПГУТИ

Фото: Зиганшина Юлия

Лабораторию основали в 2020 году в рамках национальной программы «Цифровая экономика РФ» и «Плана 2030», в которых наука о данных и искусственный интеллект обозначены в качестве приоритетных в рамках реализации цифровой трансформации экономики. Заведующим стал Сергей Левашкин — ученый с 20-летним стажем, работавший в области ИИ в университетах и компаниях России, Америки и Европы. Его заместителем является кандидат технических наук, доцент ПГУТИ Оксана Захарова, которая уже 15 лет занимается научной деятельностью, студенческими стартапами и проектами.

«Мы поняли, что практически во всех предметных областях разработки сводятся к необходимости применения инструментов ИИ. Поэтому решили аккумулировать их в рамках лаборатории. Проекты, число которых уже исчисляется десятками, поддерживаются грантами различных фондов, в том числе «Российским научным фондом», — рассказала Оксана Захарова.

Административный центр лаборатории находится в первом корпусе ПГУТИ на ул. Льва Толстого. В корпусе на Московском шоссе располагаются кабинеты, где непосредственно трудятся специалисты. Они оборудованы современными компьютерами, объединенными в единый вычислительный кластер. Большим плюсом для деятельности лаборатории является возможность подключения к ресурсам суперкомпьютера одного из ведущих российских вузов удаленно.

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

Кадры на перспективу: показываем, как студенты создают проекты с ИИ в лаборатории ПГУТИ

На счету лаборатории уже несколько успешных проектов. Первым стала «Ферма данных». Это программно-инструментальная система, которая проводит сбор и анализ данных в сети интернет по заданным параметрам и может составлять прогнозы.

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

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

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

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

В перспективе она видит себя в роли преподавателя для школьников или студентов:

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

По словам Оксаны Захаровой, студенты, которые принимают участие в проектах лаборатории, имеют хорошие шансы на трудоустройство. В прошлом году около 20 человек, участвующих в проектах лаборатории, получили работу в IT-компаниях региона, Москвы и Санкт-Петербурга:

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

Александра Ламзина

Материал подготовлен при поддержке гранта Минобрнауки России в рамках Десятилетия науки и технологий.

Безопасность кода — не роскошь, а необходимость

Фото: предоставлено Александром Устиновым

Цифра
70% приложений содержат хотя бы одну уязвимость после пяти лет разработки
Источник: www.veracode.com.

— Александр, какие самые частые причины появления уязвимостей в программах?
— Первое — это неосведомленность об этих самых уязвимостях. Это может показаться нелогичным: как разработчик может не знать об уязвимостях? Но не все программы и сайты, которыми мы пользуемся, написаны разработчиками уровня «сеньор» с многолетним опытом. Многие из них пишут начинающие программисты, которых еще не научили такому понятию как безопасный код. Хотя, по правде говоря, этот фактор присущ не только начинающим разработчикам программного обеспечения (ПО).

Частота обнаружения уязвимостей в динамике Источник: zerothreat.ai

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

Третья причина — использование устаревшего ПО (фреймворки, библиотеки, CMS), известного своими уязвимостями.

На четвертом месте я бы назвал несколько безответственный подход разработчиков к необходимости тестирования собственного кода на безопасность. Данный фактор, конечно, не относится ко всем поголовно. Но я заметил, что в больших компаниях с ростом числа тестировщиков разработчики стали меньше тестировать свой код. «Зачем? Ведь его протестирует тестировщик», — думают они. Вот только тестировщики тестируют функциональность, юзабилити, юзер-экспириенс… Тестирование безопасности не входит в их область знаний и компетенций.

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

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

Частота обнаружения уязвимостей в динамике Источник: arxiv.org.
Сравнение критичности проблем безопасности, допущенных людьми и ИИ Источник: arxiv.org.


SQL-инъекция — это кибератака, при которой злоумышленник внедряет вредоносный SQL-код в запросы к базе данных, чтобы получить несанкционированный доступ к информации или управлению системой.
Как защитить свой код от SQL-инъекции:
— относиться ко всем данным, приходящим от клиента как к «недоверенным» и применять к ним валидацию типов (то есть, проверять, что данные соответствуют ожидаемому формату) и санитизацию (удаление из переданных данных специальных символов или подстрок);
— не использовать «сырые» SQL-запросы (то есть, собранные вручную), и никогда напрямую не конкатенировать (по сути, не «склеивать») необработанный пользовательский ввод в SQL-запрос;
— использовать ORM библиотеки для работы с базами данных, обязательно изучить документацию, ведь в ней часто есть раздел про безопасность;
— отслеживать обновления используемой ORM библиотеки и, соответственно, вовремя ее обновлять.

— Почему обновления библиотек так важны для безопасности?
— В сторонних библиотеках регулярно находят уязвимости, и разработчики их патчат (исправляют). Не обновлённая библиотека — частый вектор атаки. Когда мы скачиваем и внедряем библиотеку в своё приложение, она становится его частью со всеми вытекающими.
Будет обидно, если вы предусмотрели всё, но оставили не обновлённую библиотеку с критической уязвимостью.
Стоит воздержаться от использования заброшенных или архивированных библиотек, которые не будут запатчены никогда.

Цифра
60% кибератак проводится через уязвимости, для которых был доступен, но не применен «патч».
Источник: servicenow.com.


Советы по обеспечению безопасности пользовательских данных при написании код
Ключевой принцип: все внешние данные проверяются перед использованием, а их обработка выполняется с учётом возможных угроз.
— Все данные, полученные от пользователей или внешних систем, следует считать потенциально опасными и проверять их на соответствие ожидаемому формату, а также удалять в случае необходимости спецсимволы, которые могут нарушить работу системы.
— Каждое поле в программе должно иметь четко заданный тип данных, и, если полученное значение не соответствует типу (например, вместо числа пришел текст), система должна прекратить обработку и сообщить об ошибке.
— Не конвертируйте XML-данные из ненадежных источников. Если такая необходимость есть, используйте настройки, которые не позволят программе загружать потенциально опасные сторонние данные.

— Как хранить пароли пользователей, чтобы их не украли?
— Во-первых, нельзя хранить пароли в открытом виде. Их нужно хешировать с использованием «соли» (добавление к паролю «случайного» набора символов) и «перца» (секретного ключа, который хранится отдельно от базы). Хеширование — это превращение пароля в набор случайных символов, который хакер, даже украв базу данных, не сможет расшифровать. Для хеширования нужно использовать стойкие алгоритмы, например, bcrypt или argon2.
Кроме того, хранить пароли лучше в отдельной таблице, к которой у приложения нет прямого доступа.

— Я читала, что самые опасные ошибки допускаются при написании кода на С или С++. Это действительно так? Как защититься от взлома, если программа написана на этом языке?
— Действительно, принято так считать ввиду того, что на этих языках часто пишут низкоуровневое ПО. Низкоуровневое не потому, что низкий уровень программистов, а как раз наоборот. Имеется в виду низкий уровень абстракций: часто работа ведётся напрямую с процессами и памятью устройства, поскольку на С и С++ пишут драйвера, ПО для заводов, прошивки.
Для дополнительной защиты приложений на C/C++ разработаны специальные механизмы компиляции и runtime-защиты. Например, stack canaries, ASLR, DEP. Если их включить, то даже при наличии уязвимости, её эксплуатация усложнится, либо станет невозможной.
Также если вы работаете на С/С++, стоит отдельно изучать практики по безопасности. Их можно найти, в частности, на таком ресурсе, как Microsoft Learn.

— Существуют ли способы автоматической проверки кода на безопасность?
— Да, есть ряд специализированного ПО для проверки кода на безопасность — так называемые SAST (Static Application Security Testing) решения. Также есть IAST и RASP решения, которые предлагают возможность совмещения динамического и статического анализа. Из платных решений существуют checkmarx, PT AI, mend, oversecured scanner.

— Что делать, если в программе нашли опасную ошибку уже после выпуска?
— Если речь о веб-приложении, то нужно локализовать код, который привёл к уязвимости, назначить ответственного за исправление кода, а затем провести расследование, просмотреть логи приложения на предмет того, пытался ли кто-то уже проэксплуатировать уязвимость.
Если в компании есть WAF (специальное средство защиты веб-приложений от атак), можно написать правило, которое будет блокировать атаку в будущем или сейчас, если хакеры уже прознали о бреши безопасности.
Если говорить про мобильное или десктоп приложение, то тут все немного сложнее, так как обновлённое приложение нужно доставить до конечного клиента. То есть в данном случае нужно не только исправить ошибку, но и подготовить обновление, которое пользователь должен скачать.

— Где ИТ-специалисты, разработчики могут получить информацию об основах кибербезопасности при написании кода? Посоветуйте, если можете, какие-то конкретные ресурсы.
— Во-первых, на профильных конференциях. Например, в РФ есть PHDays, Offzone, Zeronights, Volga CTF. Они больше других нацелены на специалистов по кибербезопасности. Также есть Huizenbug: целевая аудитория этой конференции — разработчики и тестировщики, на ней часто выступают мои коллеги с материалом, который будет полезен разработчикам. Записи с этих конференций обычно всегда доступны на их каналах.

Я ранее упоминал инструмент semgrep. Он производит сигнатурный анализ уязвимостей для разных языков программирования. В себе он содержит базу правил, которые можно изучить. Для каждого правила описано, что это за уязвимость, пример уязвимого кода и пример исправленного кода.
Можно обучаться по похожему принципу, идя от противного.

Есть примеры приложений, с заранее заложенными в них уязвимостями. Можно смотреть код этих приложений и изучать, как делать не нужно (например, https://github.com/JoyChou93/java-sec-code?tab=readme-ov-file, https://github.com/digininja/DVWA, https://github.com/juice-shop/juice-shop, https://cheatsheetseries.owasp.org/cheatsheets/PHP_Configuration_Cheat_Sheet.html, https://owasp.org/www-project-top-ten/).

Кроме того, обычно в документации к фреймворкам для разработки есть раздел про безопасность. Я рекомендую его изучать (например, для PHP symphony — https://symfony.com/doc/current/security.html).

— После вуза (или во время практики) студенты имеют какие-то базовые знания по безопасной работе с кодом? Или эти знания они получают уже во время практики или самостоятельного изучения?
— Очень зависит от вуза и преподавательского состава. Когда я учился, такой дисциплины у нас не было, и никто не преподавал. Чаще всего это получается через практику и самообразование.

Кратко
Что делать для обеспечения безопасности кода:
— повышать уровень насмотренности разработчиков в разрезе безопасности;
— покрывать код тестами, нацеленными на безопасность (например, автоматическая проверка ролевой модели по матрице доступа);
— использовать современные IDE (приложение, в котором пишут код), которые могут самостоятельно подсветить разработчикам некоторые недочеты, способные привести к уязвимостям;
— добавить в процесс CI/CD утилиты, которые проверяют код на безопасность (из бесплатных, например, semgrep, codeql, joern);
— отслеживать уязвимости в сторонних библиотеках;
— внедрять практики security gates (подразумевается, что если в ходе релиза новой версии, суммарный коэффициент безопасности переваливает за определённую отметку, этот релиз останавливается);
— применять ИИ инструменты для проверки и анализа кода: например, можно спросить ИИ, безопасен ли код, который вы написали, подвержен ли он уязвимостям из OWASP TOP 10.

(Важно: ИИ должен быть запущен у вас локально, не отправляйте ваш код в chatgpt или perplexity).

 Материал подготовлен при поддержке гранта Минобрнауки России в рамках Десятилетия науки и технологий.

Мария Рыжова

Андрей Спирченков: «Сложностей в ИТ очень много, мы проходим через них каждый день»

Фото: предоставлено Андреем Спирченковым

Выбрал профессии сердцем и разумом

— Андрей, у вас интересная история, связанная с обучением в ПГУТИ. Расскажите, как случилось, что поступили на одно направление, а потом выбрали другую сферу? 

— В 2006 году я прошел по баллам ЕГЭ в три университета, но ни на секунду не задумывался, куда пойти получать высшее образование. Оригиналы документов принес в ПГУТИ. Здание вуза для меня было знакомым и почти родным. Отец работал в компании, которая занимала целый этаж здания вуза, я приходил к нему на работу с первого класса. Кроме того, школа возила нас в этот университет на дополнительные курсы по физике и математике. Поэтому мой выбор был очевиден. 

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

— Вы работаете разработчиком программного обеспечения. Что привлекает и удерживает в этой профессии? 

— Недавно ездил с семьей отдыхать. И как только попал в аэропорт (было время ожидания перед вылетом), вспомнил, что у меня есть проход в бизнес-зал аэропортов. Можно по куар-коду пройти. Сервис, над которым работаю, в том числе обеспечивает проходы в эти бизнес-залы. То есть я воспользовался продуктом, который делаю сам! Кстати, нашел пару «косяков» со стороны теперь уже не программиста, а пользователя. Мы с коллегами за месяц их исправили и улучшили. И это не один случай в моей жизни, похожие были и на предыдущем месте работы. Разрабатывать продукт, которым сам же можешь воспользоваться — хороший мотиватор! 

— Что самое ценное для вас было в обучении?

— Есть расхожее мнение: когда приходишь на работу, говорят: «Забудь все, чему учили в вузе — это все уже устарело». Но у меня это не сработало. Все, что было в университете, пригодилось. На 4 курсе я попал на практику, на производство, в закрытый город, въезд в который по специальным пропускам. Пришел в лабораторию и оказалось, что будучи на 4 курсе, все понимал, что мне говорят с технической точки зрения.  Мне не надо было ничего забывать, потому что все знания были актуальны! 

Темпы роста: программа и железо

— Если сравнить программное обеспечение три года назад и сейчас, что поменялось, а что осталось прежним?

— А почему точка отсчета именно три года назад? 

— В 2022 году началась специальная военная операция, и остро встали вопросы импортозамещения, в том числе в ИТ-сфере. 

— На самом деле тенденция на импортозамещение в ИТ пошла сильно раньше. Это можно увидеть в Реестре отечественного ПО, где регистрируются все программные продукты. Реестр появился задолго до 2022 года. И продукты, зарегистрированные в нем, уже давно разработаны и продаются. В 2022 году о приоритетах цифровизации заговорили повсеместно —  в СМИ, в социальных медиа. И таким образом был обнародован количественный и качественный рост программного обеспечения. Но фактический рост случился не сейчас. Сейчас мы о нем узнали.  

— В каких сферах отечественное ПО набирает обороты, а где импортозамещение идет пока не так быстро, как хотелось бы? С чем это связано?

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

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

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

Российское ПО лучше

— Чувствуется ли сегодня приоритет государства в сторону отечественного программного обеспечения?

— Безусловно. Министерство цифрового развития РФ публично в своем канале заявляет о катастрофической нехватке рабочих рук. Бешеное количество людей не хватает в индустрии для того, чтобы без аффекта на сроки вести разработку и переезжать на полностью отечественное ПО. Кстати, далеко не все системы «переезжают» или уже «переехали». В первую очередь под замещение попали критически важные сервисы, связанные с биллингом и денежными переводами. 

— С какими сложностями сталкиваются разработчики отечественного ПО? Как эти трудности преодолеваются? 

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

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

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

Отсюда и сложность: есть продукты, которые давно были на рынке, и они набили шишки и исправили софт. Наши аналоги пока не такие стабильные. 

— Как бы оценили процесс перехода на отечественное ПО? Какими видятся перспективы?

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

— В чем отечественное ПО превосходит конкурентов?

— Оно лучше, потому что свое. И мы можем влиять на его качество и функционал прямо, а не косвенно. И если что-то не работает, починить можно очень быстро. 

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

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

— Что могли бы посоветовать абитуриентам? Какую специализацию выбирать?

— Чтобы понять, что может «выстрелить», можно исходить из количества вакансий индустрии. В целом общее информационно-технологическое образование разработчиков (программисты, тестировщики, аналитики) не так сильно может повлиять на выбор сферы деятельности. Главное — получить базу и от нее отталкиваться. А конкретные узкие специалисты могут по-разному быть востребованы сейчас и вчера. Такая аналогия: сегодня постоянно говорят про искусственный интеллект. И если ты знаешь, на какой базе он держится, сможешь написать подобный софт. 

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

Ольга Никитина