research
  • 12 Янв
  • 2023

Севак Саргсян: "Если хотите быть конкурентоспособными программистами, надо изучать математику".

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

    Об уязвимостях программного обеспечения, которые могут стать проблемой кибербезопасности и спровоцировать хакерские атаки, новых тенденциях в IT-индустрии, образовании в данной сфере и многом другом мы поговорили с заведующим кафедрой системного программирования Российско-Армянского университета, специалистом в области компиляторных технологий и анализа программ, кандидатом физико-математических наук Севаком Саргсяном.
     
     
    - Назовите, пожалуйста, самые распространенные проблемы безопасности в программном обеспечении.
     
    - Если посмотреть историю атак, то основная проблема безопасности в ПО, - это допущенные программистами ошибки. Эти ошибки возникают, поскольку код пишут люди. Простой пример - текст: студент написал дипломную работу, там есть опечатки или какие-то грамматические ошибки. То же самое и с программированием: код может работать, но, скорее всего, будут специфические случаи, которые программист не учёл. И далее взломщик, имея код, а иногда даже не имея его, может понимать, какие проблемы в ПО могут быть и использовать это для взлома. В основном это проблемы, связанные с массивами, в которых хранятся данные, а именно переходы за границы массивов, что дает взломщику возможность осуществлять операции, которые изначально не предполагались. 
     
     
    - Какими способами можно предотвратить эти ошибки?
     
    - Есть множество инструментов анализа исходного и бинарного кодов, которые позволяют находить эти ошибки. Однако решить задачу полностью нельзя: не все имеющиеся механизмы могут выявлять те или иные проблемы. Есть два основных подхода: это статический анализ, когда инструмент "смотрит" на исходный/бинарный код программы и определяет, есть ли там ошибка или нет, и динамический анализ, который запускает программу и смотрит, ведет ли себя программа корректно или нет. В Центре передовых программных технологий РАУ по направлению анализа программ разрабатываются инструменты как статического, так и динамического анализа.
     
     
    - Чем ваша разработка лучше имеющихся альтернатив?
     
    - Перед тем, как начинать что-то разрабатывать, мы делаем подробный анализ, в ходе чего понимаем, какие ограничения имеют существующие механизмы. И уже при разработке конкретного инструмента мы стараемся исключать ограничения, которые есть у текущих инструментов, что и дает нам конкурентное преимущество. 
     
    Если говорить о хакерских атаках, то можно разграничить их по категориям и уровню подготовки "специалистов/хакеров". Так, для осуществления примитивных атак вполне можно использовать уже готовый инструментарий. Подобным арсеналом пользуются специалисты/хакеры невысокого уровня. Но есть специалисты второго уровня: их мало, каждый из них - на вес золота. Эти ребята умеют находить уязвимости и первыми их эксплуатировать.
     
    Конечно, в первую очередь необходимо подготовить квалифицированных специалистов, которые смогут защитить от широко известных уязвимостей, и после этого продумать стратегию действий по укреплению потенциала людских ресурсов и подготовке специалистов, которые будут в силах не только защитить, но и решить некоторые другие задачи.
     
     
    - Совсем недавно начал набирать популярность язык программирования Rust. Как Вы думаете, сможет ли он вытеснить классические C и C++?
     
    - Надо понимать, что язык C появился в начале 70-х, а язык C++ в начале 80-х. И за эти 40-50 лет очень много кодов было написано на этих языках. Операционные системы мобильных телефонов и компьютеров и многие другие приложения написаны в основном на C и C++. Это многолетний труд, и никто не сможет так просто взять и заменить миллиарды строк исходного кода. 

    Примечательно, что в Rust есть возможность анонсирования небезопасного сегмента кода. И если изучить различные проекты, то можно увидеть много фрагментов кода, которые объявлены как "небезопасные". Это те места, по которым может быть осуществлена атака.
     
     
    - В обществе распространено мнение, что программистам математика не нужна. Так ли это?
     
    - Это мнение некорректное. По всей Армении ежегодно выпускаются 600-700 бакалавров в сфере ИТ, которые изучали программирование, в Индии - 200 тысяч, в Китае - более 300 тысяч. И если не изучать математику, то конкурировать с ними будет, мягко говоря, сложно. Это учитывая то, что зарплаты там в среднем в 3-4 раза меньше, чем в Армении.

    Если хотите быть конкурентоспособными программистами, специалистами в сфере IT, надо изучать математику. Без математики нельзя делать качественные продукты. Задачи, для решения которых математика не нужна, скорее всего, связаны с веб-программированием, некоторыми аспектами мобильного программирования. Думаю, в ближайшие годы в этом сегменте появятся инструменты на основе искусственного интеллекта, которые с легкостью будут решать поставленные задачи. И тогда ребята, которые не изучали математику или считали, что математика не очень важна, первыми "выйдут" из игры (их заменит ИИ). Поэтому все студенты, которые учатся сегодня, должны понимать, что математика обязательна. 
     
     
    - В последнее время мы стали свидетелями большого притока IT-специалистов из России. Как это сказалось на экономике Армении и на рынке в целом?
     
    - Каждое изменение имеет положительные и отрицательные стороны. Если посмотреть с точки зрения IT-индустрии и экономики, то это, скорее всего, плюс. Приезжие заселились здесь, платят налоги, тратят деньги, ходят в кафе и рестораны и т.д. Международные организации прогнозировали 3-4% прироста экономики, а в итоге мы зафиксировали более 14%. Но есть и отрицательные стороны. Так, значительно выросла аренда за жилплощадь. 
     
     
    - В последнее время начали набирать популярность инструменты автодополнения кода с применением искусственного интеллекта. Возможна ли в будущем полная или частичная замена человека ИИ?
     
    - Частичная замена человеческих ресурсов механизмами искусственного интеллекта происходит уже сегодня. В ближайшее время полностью заменить не получится, но довольно много аспектов программирования будут заменены. Основной месседж - надо изучать математику и заниматься сложными задачами, который искусственный интеллект решать, я думаю, в ближайшие десятилетия не сможет.
     
     
    - Как IT-технологии применяются в образовании?
     
    - IT-технологии широко применяются в образовании, начиная от систем и платформ, позволяющих проводить онлайн-уроки, видеолекции и др. Популярны технологии, позволяющие "разгрузить" преподавателя, например, осуществить автоматическую проверку тех или иных заданий, тестов. Те же Moodle-системы и другие платформы онлайн-обучения позволяют создавать контент и обучать сразу сотни ребят, имея ограниченные ресурсы.
     
     
    - Какая сфера в IT сейчас самая популярная, есть ли заинтересованность в системном программировании?
     
    - В Армении весьма популярны веб-программирование и мобильное программирование. Для решения серьезных задач многие весомые компании используют .NET Framework, JavaScript и технологии, связанные с ним. 
     
    К сожалению, должен отметить, что интерес к системному программированию довольно низкий. В принципе это логично: Армения - страна маленькая, рынок здесь тоже небольшой. Потому многие наши специалисты работают на зарубежные компании. 
     
     

    Давид Ерицян 
    ("Журналистика", I курс)