Jump to content

Разнообразие программного обеспечения

Разнообразие программного обеспечения — это область исследований, посвященная пониманию и разработке разнообразия в контексте программного обеспечения.

Различные области разнообразия программного обеспечения обсуждаются в обзорах разнообразия для обеспечения отказоустойчивости. [1] или для безопасности. [2] [3]

Основными направлениями являются:

Преобразования кода

[ редактировать ]

Увеличить разнообразие программного обеспечения можно за счет автоматизированных процессов преобразования, которые создают синтетическое разнообразие. «Мультикомпилятор» — это компилятор, в который встроен механизм диверсификации. [5] Многовариантная среда выполнения (MVEE) отвечает за выбор варианта для выполнения и сравнение выходных данных. [6]

Фред Коэн был одним из первых сторонников такого подхода. Он предложил серию преобразований по переписыванию и переупорядочению кода, направленных на создание огромного количества различных версий функций операционных систем. [7] Эти идеи развивались на протяжении многих лет и привели к созданию интегрированных схем обфускации для защиты ключевых функций в больших программных системах. [8]

Другой подход к увеличению разнообразия программной защиты заключается в добавлении случайности в определенные основные процессы, например загрузку памяти. Случайность подразумевает, что все версии одной и той же программы работают по-разному, что, в свою очередь, создает разнообразие поведения программы. Первоначально эта идея была предложена и опробована Стефани Форрест и ее коллегами. [9]

Недавняя работа по автоматическому разнообразию программного обеспечения исследует различные формы преобразований программ, которые слегка меняют поведение программ. Цель состоит в том, чтобы превратить одну программу в совокупность различных программ, которые предоставляют пользователям одинаковые услуги, но с разным кодом. [10] Такое разнообразие кода повышает защиту пользователей от одной-единственной атаки, которая может привести к одновременному сбою всех программ.

Операторы преобразования включают в себя: [11]

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

Естественное разнообразие программного обеспечения

[ редактировать ]

Известно, что некоторые функциональные возможности доступны в нескольких взаимозаменяемых реализациях. Это естественное разнообразие можно использовать, например, было показано, что оно полезно для повышения безопасности облачных систем . [12]

  1. ^ Десварте, Ю.; Канун, К.; Лапри, Ж.-К. (июль 1998 г.). «Разнообразие против случайных и преднамеренных ошибок». Труды Компьютерная безопасность, надежность и гарантия: от потребностей к решениям (кат. № 98EX358) . IEEE Компьютер. Соц. стр. 171–181. CiteSeerX   10.1.1.27.9420 . дои : 10.1109/csda.1998.798364 . ISBN  978-0769503370 . S2CID   5597924 .
  2. ^ Найт, Джон К. (2011), «Разнообразие», Надежные и исторические вычисления , Конспекты лекций по информатике, том. 6875, Springer Berlin Heidelberg, стр. 298–312, doi : 10.1007/978-3-642-24541-1_23 , ISBN  9783642245404
  3. ^ Просто, Джеймс Э.; Корнуэлл, Марк (29 октября 2004 г.). «Обзор и анализ синтетического разнообразия для разрушения монокультур». Материалы семинара ACM 2004 года по вредоносному коду Rapid . АКМ. стр. 23–32. CiteSeerX   10.1.1.76.3691 . дои : 10.1145/1029618.1029623 . ISBN  978-1581139709 . S2CID   358885 .
  4. ^ Шефер, Ина; Рабисер, Рик; Кларк, Дэйв; Беттини, Лоренцо; Бенавидес, Дэвид; Ботервек, Гетц; Патхак, Анимеш; Трухильо, Сальвадор; Виллела, Карина (28 июля 2012 г.). «Многообразие программного обеспечения: современное состояние и перспективы». Международный журнал по программным инструментам для трансфера технологий . 14 (5): 477–495. CiteSeerX   10.1.1.645.1960 . дои : 10.1007/s10009-012-0253-y . ISSN   1433-2779 . S2CID   7347285 .
  5. ^ «Защита приложений с помощью автоматизированного разнообразия программного обеспечения» . Галуа, Инк . 10 сентября 2018 г. Проверено 12 февраля 2019 г.
  6. ^ Коппенс, Барт; Де Саттер, Бьорн; Волкарт, Стейн (01 марта 2018 г.), «Многовариантные среды выполнения», Продолжающаяся гонка вооружений: атаки и защита с повторным использованием кода , ACM, стр. 211–258, doi : 10.1145/3129743.3129752 , ISBN  9781970001839 , S2CID   189007860
  7. ^ Коэн, Фредерик Б. (1993). «Защита операционной системы посредством эволюции программы» (PDF) . Компьютеры и безопасность . 12 (6): 565–584. дои : 10.1016/0167-4048(93)90054-9 . ISSN   0167-4048 .
  8. ^ Чэньси Ван; Дэвидсон, Дж.; Хилл, Дж.; Найт, Дж. (2001). «Защита программных механизмов живучести». Материалы Международной конференции по надежным системам и сетям (PDF) . IEEE Компьютер. Соц. стр. 193–202. CiteSeerX   10.1.1.1.7416 . дои : 10.1109/dsn.2001.941405 . ISBN  978-0769511016 . S2CID   15860593 . Архивировано (PDF) из оригинала 30 апреля 2017 г.
  9. ^ Форрест, С.; Сомаяджи, А.; Экли, Д.Х. (1997). «Создание разнообразных компьютерных систем». Слушания. Шестой семинар по актуальным темам операционных систем (кат. № 97TB100133) (PDF) . IEEE Компьютер. Соц. Нажимать. стр. 67–72. CiteSeerX   10.1.1.131.3961 . дои : 10.1109/hotos.1997.595185 . ISBN  978-0818678349 . S2CID   1332487 .
  10. ^ Шульте, Эрик; Фрай, Закари П.; Быстро, Итан; Веймер, Уэстли; Форрест, Стефани (28 июля 2013 г.). «Мутационная устойчивость программного обеспечения» (PDF) . Генетическое программирование и развивающиеся машины . 15 (3): 281–312. arXiv : 1204.4224 . дои : 10.1007/s10710-013-9195-8 . ISSN   1389-2576 . S2CID   11520214 .
  11. ^ «Разнообразие автоматизированного программного обеспечения: иногда больше не значит лучше» . Галуа, Инк . 10 сентября 2018 г. Проверено 12 февраля 2019 г.
  12. ^ Горбенко Анатолий; Харченко Вячеслав; Тарасюк, Ольга; Романовский, Александр (2011), Использование разнообразия в облачной среде развертывания для предотвращения вторжений , Конспекты лекций по информатике, том. 6968, Берлин, Гейдельберг: Springer Berlin Heidelberg, стр. 145–155, doi : 10.1007/978-3-642-24124-6_14 , ISBN  978-3-642-24123-9
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: f122b163d14d78de1b813f69439ede3a__1693590600
URL1:https://arc.ask3.ru/arc/aa/f1/3a/f122b163d14d78de1b813f69439ede3a.html
Заголовок, (Title) документа по адресу, URL1:
Software diversity - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)