ЗЕЙТГЕЙСТ: ПЕРЕДАЧ ВПЕРЕД | ОФІЦІЙНИЙ ВИПУСК | 2011 (лютий 2021).

зменшення

Ви коли-небудь оновлювали свою програму чи програму лише для того, щоб виявити, що вона виглядає не так добре, як попередня версія? Проблема, швидше за все, була спричинена надмірним програмним забезпеченням - умовою, коли оновлене програмне забезпечення працює повільніше через повторюваний код, вимагає більше пам'яті - і стає більш вразливим до комп’ютерних атак.

"Роздуття програмного забезпечення - це не просто неприємність або незручність", - сказав д-р Сукарно Мертогуно, керівник програми Департаменту морських досліджень (ONR) C4ISR. "Це також створює серйозний ризик для безпеки, оскільки додатковий код може запропонувати хакерам більше точок входу до програми".

Безпека особливо важлива з огляду на поточні зусилля ОНР з розробки військово-морської тактичної хмари - багаторічної ініціативи з використання потужності хмарних обчислень та надання великих даних у бойовому середовищі.

Щоб забезпечити більш безпечне та ефективне використання хмарного флоту та інших обчислювальних сил, ONR підтримує роботу таких дослідників, як д-р Dinghao Wu з Пенсильванського державного університету та Dr. Гаррі Сю з Каліфорнійського університету, Ірвін.

Інгаляційне програмне забезпечення сьогодні є великою проблемою, оскільки код пишеться та компілюється. Минулі покоління програмістів писали новий, індивідуальний код для кожного оновлення програми і додавали лише те, що було потрібно для підвищення продуктивності.

Завдяки невпинному апетиту споживачів до функцій програмного забезпечення та більш швидкому розгортанню продуктів, сучасні кодери використовують заздалегідь побудовані бібліотеки для задоволення попиту. Проблема полягає в тому, що ці бібліотеки містять новий та повторюваний код попередніх версій програмного забезпечення. Завантажуючи бібліотеки, насправді встановлюються обидва набори коду в шари, що створюють інновації, які використовують переваги надлишкових, невикористаних та застарілих функцій, що уповільнюють запуск комп'ютера.

Потім виникла проблема безпеки. "Роздута програмна система має більшу базу коду, що може призвести до більшої вразливості та більших платформ доступу для хакерів та терористів", - сказав Ву. "Після отримання доступу до системи хакер може використовувати код - навіть невикористаний, застарілий код - для зловмисних цілей."

Використовуючи Java, Ву та його команда з штату Пенсільванія створили JRed, який може прочитати тисячі рядків коду за лічені секунди. Завдяки всебічному алгоритму JRed застосовує заздалегідь визначені правила до коду оновлення програмного забезпечення, а потім ідентифікує та видаляє завищений повторюваний код. JRed довів, що він може зменшити програмне забезпечення приблизно на 50 відсотків, що призводить до швидшої роботи.

Сюй та його група з UC Irvine також використовували Java у своїх дослідженнях. Тим не менше, вони запропонували техніку оптимізації, яка називається Бібліотека автоматичного відбору або LAS.

LAS створює "тіньові бібліотеки", які можуть оновлювати існуюче програмне забезпечення, визначаючи зони зарядки та додаючи лише код та дані, необхідні для пропуску повторюваного коду. Потім тіньова бібліотека вимикається за допомогою автоматичного механізму перемикання, таким чином виключаючи ризик повторення або комп'ютерної атаки. Сюй сказав, що його метод LAS повністю обробив програмне забезпечення та покращив швидкість роботи більш ніж на 70 відсотків.

"Окрім занепокоєння щодо ефективності та економії коштів, зменшення надмірного програмного забезпечення є ключовим фактором для можливостей ВМС і Корпусу морської піхоти", - сказав Сю. "Військове ігрове програмне забезпечення відіграє таку важливу роль у бойових умовах - від виконання важливих завдань до управління конфіденційними даними - і повинно бути ще стійкішим до комп’ютерних атак, ніж програмне забезпечення, доступне для загального користування".

Наступним кроком у дослідженнях Ву та Сю є зменшення поширення програмного забезпечення у мобільних додатках та великих мережах хмарних обчислень. Їхня робота є частиною програми ONR Cyber ​​Security та складних програмних систем, яка зосереджується на проектуванні та побудові програмних систем, що відповідають необхідним гарантіям безпеки, надійності та продуктивності.