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

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

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

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


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

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

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

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

У конструктивно-продукційного моделювання чимало прихильників та послідовників на КІТ. I тут пліч-о-пліч працюють професори, доценти та молоді науковці: викладачі, аспіранти, студенти. Є тісний зв'язок між наукою та розробкою програмного забезпечення. Щорічно результати наукових та програмних розробок презентуються на всеукраїнських та міжнародних конференціях та публікуються у наукових виданнях – в Україні та за кордоном (Болгарія, Угорщина). Напрям живий! Це – круто!
НОВИНИ ТА ПОДІЇ
Дніпровський національний університет
залізничного транспорту
імені академіка В. Лазаряна

49010, Україна, м. Дніпро
вул. Лазаряна, 2
Тел. +380-56-373-15-05, +380-56-793-19-00
E-mail: dnuzt@diit.edu.ua

Завідувач кафедри, доктор технічних наук, професор
Жуковицький Ігор Володимирович
Тел. (+38056) 373-15-89, E-mail: ivzhukl@ua.fm
© 1965 - 2022  Кафедра ЕОМ ДНУЗТ ДІІТ