ChangeText: тренуємо імунітет ПЗ
Коли йдеться про наукові розробки, то, мабуть, найцікавішим для більшості є те, що безпосередньо застосовується в нашому житті. І в цьому плані системи антиплагіату — гаряча тема в університетах. Як і в постійній боротьбі антивірусних та вірусних програм, у цій сфері триває протистояння методів виявлення запозичень та їх маскування. На кафедрі КІТ ДНУЗТ (ДІІТу) розробили та отримали охоронні документи на програму, яка дає ПЗ антиплагіату важливі додаткові переваги у цій боротьбі. При розробці використали новий підхід – конструктивно-продукційне моделювання. На наші питання відповідає її автор — викладач кафедри КІТ Олена Куроп'ятник.

Давайте спочатку з’ясуємо, в чому проблема сучасних ПЗ антиплагіату
Слід зазначити, що слово «антиплагіат» не зовсім точно відображає принцип дії таких програм. Їх завдання — визначити скільки відсотків з поданого тексту вже є в базах для перевірки. Якщо відсоток значний, то варто вже в ручному режимі перевірити текст аби з’ясувати суть запозичень: це може бути цитата або опис відомого алгоритму чи методики, і людина, що представила текст на перевірку, зовсім не претендує на авторство цієї частини. А от якщо претендує, то тут вже можна думати в сторону плагіату – порушення авторських прав. В останньому випадку правопорушник може вдаватися до механічних трюків аби зменшити відсоток запозичень з формальної точки зору – обійти систему. Наприклад, він може змінювати порядок абзаців чи слів, замінювати кирилицю латиницею тощо.
Тому, якщо ми хочемо мати нормальне ПЗ для виявлення запозичень, треба постійно тестувати його здатність розпізнавати або не реагувати на таку оману. І звісно слід пам’ятати, що з вдосконаленням систем трюки теж вдосконалюються.

Тобто це схоже на те, як ворожий літак маскується, створюючи перешкоди, а система ППО може його все ж таки виявити, якщо вона цьому навчена...
Десь так. А можна порівняти з організмом, якому для захисту від вірусів ми робимо щеплення, а далі не лише виробляється імунітет, а й ведуться спостереження за реакцією, щоб у разі необхідності надати допомогу.
Щось подібне хотілося зробити для систем виявлення запозичень. Тут «щеплення» робиться у вигляді текстів із замаскованими запозиченнями, з використанням нових трюків маскування. Але для надійності розмір доз має складати сотні текстів. Робити таке в ручному режимі – на це все життя піде! Краще написати програму, яка це зробить за нас, а ми поки чаю поп’ємо :)
Розроблена програма ChangeText модифікує тексти, щоб їх можна було використати для «щеплення», та не просто так. Для маскування запозичень вона генерує сценарії з дій (трюків). Зловмисні дії, параметри їх застосування та кількість можна обирати випадковим чином, задавати вручну або ж лишити значення за замовченням – дуже гнучка система налаштувань.

Демо роботи програми наведено нижче


А які дії мають бути з боку системи виявлення запозичень?
За своєю суттю ChangeText генерує тести. Пам’ятаємо, що тест – це набір вхідних і вихідних значень. На вході маємо два тексти – початковий та маскований. На виході – два рівні числа – відсоток запозичень у тексті. Подаємо це на вхід будь-якої системи виявлення запозичень. Якщо на виході маємо два однакових числа, тест пройдено. Інакше треба вносити зміни у код системи.

Ця розробка має наукове підґрунтя, що апробоване зокрема на міжнародних наукових конференціях, опубліковане в наукових виданнях. Яку саме роль відіграє наука у цій розробці?
Я б сказала, що ключову! Ти не зможеш нічого автоматизувати доти, доки не зможеш це формалізувати – «одягнути в гачки». І тут «чарівною паличкою» стало конструктивно-продукційне моделювання, засновниками якого є мій науковий керівник професор Віктор Іванович Шинкаренко та доцент Валерій Михайлович Ільман.
В основі даного моделювання – використання конструктивних властивостей формальних граматик (тип математичних числень) та визначення алгоритму для кожної операції (якщо говорити спрощено). Конструктивне, бо конструюємо і використовуємо для цього формалізм – конструктор. Він включає в себе носій, сигнатуру та інформаційне забезпечення конструювання (ІЗК). Продукційне, бо конструюємо за допомогою правил – продукцій, які ми використовуємо у процесі побудови, як у граматиках.
Так от, побудову сценаріїв було представлено конструктором. Носій – це «цеглинки», з яких ми щось будуємо, а також те, що збудували. У мене це були дії (ті самі трюки) та сценарії. Сигнатура – операції та відношення, які я можу використовувати для конструювання, тут – побудови сценаріїв. ІЗК – найпотужніша річ у цій трійці: визначення властивостей «цеглинок» та операцій, умов початку й завершення конструювання, продукцій. Та найголовніше – тут є не лише операції, а й алгоритми їх виконання. Операція – це можливість дії, а от алгоритм відповідає на питання як цю дію виконати, реалізувати.
Для конструктора завжди треба виконувати ряд уточнюючих перетворень – тут основна робота (але про це, мабуть, іншим разом). В ході виконання цих перетворень для даної задачі кропіткою була робота з виведення правил підстановок та формування початкових умов побудови сценаріїв. Проте такий формалізм дозволив генерувати нескінченне розмаїття сценаріїв маскувань.
Далі було визначено ще один конструктор. Він застосовував ці сценарії до текстів документів. І от тільки маючи це переходимо до безпосередньої розробки ПЗ: архітектури та кодування (і так, блок-схеми чи схеми Нассі вже не потрібні).

Які бачите перспективи розвитку цієї розробки? І чи не можна використовувати програму ChangeText саме зловмисникам, щоб створювати нові «інфекції»?
Почнемо з останнього: програми немає у вільному доступі – це по-перше. А створення принципово нових сценаріїв потребує гарної кваліфікації програміста – це по-друге. Це – інструмент автоматизованого тестування – і в цьому найбільша користь. Щодо перспектив розвитку програми, то можна, наприклад, працювати над розпаралеленням маскувань у різних документах. Та це вже деталі.
А от якщо перейти від деталей до головного, то очевидним є те, що ще одна науково-практична задача була розв’язана засобами конструктивно-продукційного моделювання.

Ще одна…А що ще вже вдалося?
На сьогодні за допомогою апарату конструктивно-продукційного моделювання викладачами та аспірантами, студентами кафедри вирішено та вирішуються чимало задач. Забулою Геннадієм успішно вирішена задача адаптації структур даних в оперативній пам’яті до програмно-апаратного середовища: розроблено відповідне ПЗ для адаптації, проведено ряд успішних експериментів для розміщення bmp-файлів. Також цей апарат використовується у задачах адаптації алгоритмів стинення до даних (Васецька Тетяна), моделювання природної мови та обробки її конструкцій (це моя тема), моделювання процесів кодування та налагодження програм (Жеваго Олександр) тощо. Дослідження та розробки в цьому напрямі ведуться під керівництвом та за безпосередньою участю Віктора Івановича. Всі вони різнопланові і мають практичний, прикладний характер. А «страшні формалізми» доводяться до реалізації засобами програмної інженерії: створюються додатки та комплекси.

У конструктивно-продукційного моделювання чимало прихильників та послідовників на КІТ. I тут пліч-о-пліч працюють професори, доценти та молоді науковці: викладачі, аспіранти, студенти. Є тісний зв'язок між наукою та розробкою програмного забезпечення. Щорічно результати наукових та програмних розробок презентуються на всеукраїнських та міжнародних конференціях та публікуються у наукових виданнях – в Україні та за кордоном (Болгарія, Угорщина). Напрям живий! Це – круто!
Размещено: 6 августа 2020
НОВОСТИ И СОБЫТИЯ
Какие важные события произошли, что интересного ожидается. Будьте в курсе, участвуйте, делитесь впечатлениями!
Гайд первака. Часть 1
Мы уже ответили на часть вопросов , но их еще так много... И чтоб голова не шла кругом, а новизна не стала пугающе-отпугивающей, мы публикуем вторую часть вопросов-ответов... Что такое «модуль»? Система оценивания Перфа Сроки сдачи Рейтинг, начисление стипендии Предвзятое отношение к контрактникам? Питание. Вероятность смерти от голода Общежитие. Мифы и реальность Что такое «модуль» Люди довольно просто ведут отсчет времени: часы, сутки, недели, месяцы и прочее, к чему мы все привыкли. Но только не студенты ДИИТ: для них основные временные единицы – неделя и модуль (аналог школьной четверти). Обучение разделено по неделям. На…
Бакалавры!
Отзывы выпускников
Гайд первака. Часть 0
Новый учебный год уже совсем близко, а это значит, что на наш факультет пришли новые студенты: совсем юные, в большинстве неопытные, но готовые учиться. Что их выдает: большие и удивленные глаза, а еще - множество вопросов, которые им пока еще неясны. Мы решили немного поправить это... Куда бежать в первые дни? Как не заблудиться в ДИИТе? Что взять с собой в первый день занятий? Найду ли общий язык с одногруппниками? Хочу быть старостой. Что, как и почему? Что такое факультет, кафедра, деканат? Преподаватель и учитель, в чем разница? Кто такой куратор? Еще вопросы-ответы Куда бежать в первые дни? Ты поступил в ДИИТ – чудесно…
49000 Днепр, Украина
улица Лазаряна 2, ДИИТ
Телефон деканата: +38 (056) 373-15-52
Кибер Академия
Факультет «Компьютерные технологии и системы» ДИИТа
Так ли часто мы говорим по душам, в особенности, если велика разница в возрасте?

А ведь это важно и необходимо: если общение идет на равных, то младшим и старшим наверняка есть, чем поделиться друг с другом.

Наш клуб задуман именно как место для подобного общения. Между преподавателями и студентами в первую очередь - но не только.
© 1965-2024 ФАКУЛЬТЕТ «Компьютерные технологии и системы» ДИИТа