No Image

Безопасные программное обеспечение и сервис

СОДЕРЖАНИЕ
159 просмотров
10 марта 2020

Всем доброго времени суток. Шредер – это техническое офисное устройство, предназначенное для уничтожения документов. Используется обычно в правительственных и коммерческих организациях. Где беспокоятся об утечке конфиденциальной информации. Также, существуют программы для безопасного удаления данных в среде Windows.

А шредер измельчает бумагу в мелкие куски, для того чтобы усложнить её склеивание. И тем самым сделать невозможным утечку конфиденциальной информации. Для предотвращения утечки компьютерной информации существуют программные шредеры.

Софт, производящий операции по безопасному удалению данных путём их затирания. То-есть перезаписи секторов жёсткого диска. С целью невозможности восстановления данных иными лицами. В штате Windows такой программы нет. Но есть масса предложений из числа стороннего ПО. Ниже рассмотрим несколько бесплатных программ для полного уничтожения данных.

Программы для безопасного удаления данных в среде Windows

Прежде чем приступить к рассмотрению конкретных программ, немножко теории по рассматриваемому вопросу – каков в принципе механизм уничтожения данных на диске компьютера. Даже после очистки корзины удалённые файлы и папки исчезают с диска логически. Но не исчезают физически.

Исчезнут они только тогда, когда в занимаемые ими сектора HDD или ячейки флеш-носителей будет записана новая информация. До этой поры будет существовать вероятность восстановления удалённых данных специальным софтом. И если Ваш жёсткий диск или флеш-носитель попадёт в руки тем, кому не должен попасть. При определённых усилиях эти люди смогут восстановить компрометирующую Вас информацию.

Программы типа шредеров производят запись в секторы или ячейки удалённых данных нули или случайные числа. Для большей надёжности такая запись проводится в несколько проходов – максимум до 35. Сам же процесс перезаписи может быть осуществлён разными методами.

Некоторые методы даже стандартизированы и обязательны к применению в отдельных госучреждениях при уничтожении информации. Чем сложнее метод перезаписи, чем больше проходов, тем дольше длится процедура уничтожения данных.

Сложные методы перезаписи и большое число проходов – это архаика. Всё это нужно для носителей 10-15-летней давности. Для современных носителей информации достаточно 3 проходов перезаписи. Чтобы надёжно удалить данные, в крайнем случае — 7 проходов. Хотя не стоит недооценивать психологический аспект усложнения процесса уничтожения данных – 200% гарантии всегда лучше, чем 100%.

Blank And Secure

Небольшая портативная утилита Blank And Secure – простое решение для уничтожения данных. Она перезаписывает секторы удаляемой информации нулями и случайными числами. Предусматривает от 1 до 35 проходов перезаписи. Число проходов мы выставляем сами.

Перетаскиваем в окно утилиты файлы и папки, которые нужно уничтожить. Жмём «Удалить».

Если объём уничтожаемых данных большой, если выбрано большое число проходов. Можем назначить операцию удаления на длительное время. Отсутствия за компьютером вместе с установкой задания выключить компьютер по завершении операции.

Скачать программу можете здесь для 64-bit; тут для 32-bit;

File Wiper

File Wiper – другая минималистичная утилита-шредер. Работает в фоне из системного трея. Перезаписывает сектора диска нулями, единицами и случайными символами.

Предусматривает 4 метода уничтожения данных

  1. Стирание только имени файла
  2. Обычное стирание в 2 прохода
  3. Безопасное стирание в 3 прохода
  4. Маниакальное стирание в 7 проходов

В настройках утилиты указываем желаемый метод.

Процесс уничтожения производим перетаскиванием файлов и папок в виджет утилиты. И подтверждаем удаление.

Программу берём здесь .

Secure File Deleter

Утилита Secure File Deleter – ещё один минималистичный шредер. В платной версии она предусматривает на выбор 12 сложных методов уничтожения данных, в частности, методы Гутмана и Шнайера. Методы согласно стандартам спецслужб РФ, Канадской полиции, армии и ВВС США.

В бесплатной версии утилиты предлагается единственный метод с перезаписью в 3 прохода. Для уничтожения данных добавляем в окошко Secure File Deleter файлы и папки с помощью соответствующих опций. Жмём «Удалить сейчас».

Скачать программу ТЫЦ .

Glary Utilities

Шредер файлов есть в составе комплексной бесплатной программы для чистки и оптимизации Windows — Glary Utilities. Идём в раздел «Модули», в подраздел «Безопасность», запускаем утилиту «Шредер файлов».

В Glary Utilities используется метод уничтожения данных DoD 5220.22-M – метод минобороны США. Число проходов указываем мы сами. Добавляем в окно утилиты папки и файлы обычным перетаскиванием или с помощью соответствующих кнопок. И жмём «Очистить».

Шредер Glary Utilities интегрируется в контекстное меню Windows. С его помощью можно более оперативно отправлять данные на уничтожение.

Выше мы рассмотрели инструменты-шредеры для намеренного уничтожения данных. А как быть, если жёсткий диск или съёмный носитель необходимо обезопасить постфактум – после того, как на компьютере проводилась работа с конфиденциальной информацией. Но не применялись никакие меры по её затиранию?

У Glary Utilities и на этот счёт есть решение. Программа умеет безопасно стирать свободное дисковое пространство указанных нами носителей. При этом Windows и хранящиеся данные не страдают. Зачистка проводится только в отношении секторов с удалёнными логически данными.

Читайте также интересные статьи:

В утилите-шредере переключаемся на другую вкладку «Стереть свободное место». Галочками отмечаем разделы диска и внешние устройства, на которых необходимо уничтожить лишнюю информацию. И жмём «Стереть сейчас». Число проходов здесь будет применяться такое, как и в шредере файлов, т.е. в первой вкладке утилиты.

Программу берём тут .

Wise Care 365

У другой комплексной программы для чистки и оптимизации Windows — Wise Care 365 – есть такой же, как и у Glary Utilities функционал. Только у Wise Care 365 шредер простенький. С одним проходом стирания информации, без возможности выбора методов. А вот для затирания свободного места на диске программа предлагает на выбор 4 метода:

  1. Перезапись секторов в 1 проход случайными данными
  2. Метод минобороны США DoD 5220.22-M в 3 прохода
  3. Шнайера (перезапись нулями, единицами и случайными числами) в 7 проходов
  4. Гутмана (перезапись случайными и последовательными символами) в 35 проходов

Идём в раздел программы «Приватность», затем — в подраздел «Затирание диска». Выбираем разделы диска или съёмные носители, выбираем метод перезаписи. Жмём кнопку «Затереть».

Ссылка для скачивания программы здесь .

CCIeaner

У самого известного чистильщика Windows – программы CCIeaner – нет шредера. Но есть функция затирания дисков. Причём CCIeaner может затирать не только свободное место на дисках и съёмных носителях, а также делать полное стирание данных, т.е. безопасно уничтожать всё, что и уже логически удалено, и что ещё нет.

Для полного стирания данных можно выбрать любой съёмный носитель или любой раздел диска. Но, естественно, только не раздел с Windows. Программа предусматривает 3 метода перезаписи в 1, 3, 7 и 35 проходов. Отправляемся в раздел CCIeaner «Инструменты». Выбираем «Стирание дисков». Указываем, хотим мы стереть только свободное место или весь диск.

Читайте также:  Как можно определить место нахождения человека

Далее указываем метод затирания.

Ну и конечно жмём кнопку «Стереть».

Программа находится тут .

Заключение

В этой статье мы рассмотрели шесть основных программ для безопасного удаления данных в среде Windows. Все они очень хорошо справляются с поставленной задачей. Используйте любую из этих шести программ для удаления Ваших личных файлов и можете быть уверены что они не смогут быть восстановлены иными лицами.

Политика разработки безопасного программного обеспечения

Внедрение мер по разработке безопасного программного обеспечения (ПО) на всех этапах жизненного цикла (SDLC ─ Secure Software Development Lifecycle) является обязательным условием конкурентоспособности на рынке для компаний, занимающихся разработкой ПО. Наша компания внедрила в свой процесс разработки лучшие практики по организации процесса разработки безопасного ПО с целью предоставления более надежной и безопасной продукции нашим заказчикам. В частности, Infotecs SDLC (ISDL) учитывает требования регламентов ФСТЭК России, национального стандарта ГОСТ Р 56939-2016, международных стандартов серии ISO/IEC 27000, материалы OWASP, а также рекомендации NIST (например, NIST SP 800-64, SP 800-100).

ISDL ─ это комплексный процесс, затрагивающий всю организацию и включающий следующее:

Программа обучения

Без эффективной программы обучения внедрить ISDL было бы невозможно. Мы разработали ряд корпоративных обучающих курсов, призванных восполнить недостающие знания в области защиты информации, обеспечить необходимую поддержку и повышение профессиональной квалификации сотрудников с учетом их обязанностей и зон ответственности в рамках ISDL. Помимо теоретических знаний по безопасности, наши обучающие курсы включают набор практических упражнений, которые так необходимы для технических специалистов.

Сбор требований

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

Сбор требований рынка включает выявление проблемы заказчика, которая может быть решена с помощью продукта или сервиса. На данном этапе важно прояснить множество деталей, например, тип защищаемых данных, необходимую функциональность продукта, возможные ограничения, связанные со средой функционирования продукта и так далее.

Учет всех действующих нормативно-правовых актов на раннем этапе способствует снижению расходов, рисков несоответствия, а также времени выпуска продукта на рынок в целом.

Стандарты и лучшие практики

Несмотря на то, что законодательство зачастую не требует явного соблюдения каких-либо стандартов и лучших практик, их применение остается важным условием обеспечения конкурентоспособности продуктов и компании в целом.

Проектирование

На данном этапе мы тщательно анализируем собранные требования с тем, чтобы определить, каким образом реализовать эти требования в продукте, а также определяем наиболее надежный и безопасный способ их реализации. Если мы планируем использовать программное обеспечение сторонних производителей, мы тщательно его проверяем, а также проводим анализ поверхности атак (в том числе, разрабатываем модель нарушителя) и разрабатываем модель угроз.

Анализ сторонних компонентов

При коммерческом использовании стороннего программного обеспечения мы обязуем партнеров в кратчайшие сроки уведомлять нас о выявленных уязвимостях для принятия необходимых мер по предотвращению их эксплуатации. Кроме того, мы автоматически отслеживаем информацию об уязвимостях, обнаруженных в программном обеспечении с открытым исходным кодом (если такое ПО используется в наших продуктах или мы планируем использовать его в будущем), чтобы своевременно вносить необходимые изменения.

Анализ поверхности атак

Цель такого анализа ─ выявить, к каким компонентам или функциям злоумышленник имеет доступ и, соответственно, может их использовать, и свести количество таких компонентов и функций к минимуму.

Разработка модели угроз

Разработка модели угроз ─ один из наиболее важных этапов разработки продукта с учетом безопасности. Мы разрабатываем модель угроз с учетом результатов, полученных на предыдущем шаге. Затем мы используем ее для определения необходимого уровня безопасности и последующего выбора соответствующих мер защиты, которые должны быть реализованы в продукте.

Разработка

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

  1. Внедрения строгого стандарта безопасного программирования и контролем его соблюдения посредством анализа кода;
  2. Внедрением современных инструментов автоматизации (статических анализаторов, компиляторов, систем контроля версий и т.д.) в среду разработки ПО.

Стандарт безопасного программирования

Мы разработали корпоративный стандарт безопасного программирования, внедрили его в наш процесс разработки ПО. Данный стандарт учитывается в программе обучения сотрудников и является обязательным для технических специалистов, участвующих в процессе разработки безопасного ПО.

Анализ безопасности кода, выполненный экспертами по безопасности, и ревью кода позволяют устранять ошибки на самых ранних этапах разработки ПО. Эти методы достаточно эффективны для обнаружения как случайных, так и преднамеренных логических ошибок в коде.

Процесс разработки ПО предполагает использование автоматизированных средств (компиляторов, систем контроля версий, анализаторов кода и т.д.), которые должны быть настроены надлежащим образом. Чтобы оставаться эффективными, эти инструменты должны своевременно обновляться, поэтому мы стараемся поддерживать актуальность версий средств автоматизации, используемых в нашей среде разработки.

Проверка

Целью данного этапа является проверка того, что продукт отвечает требованиям спецификации и обеспечивает необходимый уровень безопасности. Для функциональной оценки продукта целесообразно проводить интеграционное, регрессионное и модульное тестирование. Одновременно, тестирование мер защиты, сканирование на наличие уязвимостей и тестирование на проникновение, представляют собой важную часть тестирования безопасности, выполняемого на этапе проверки.

Тестирование мер защиты

На данном этапе выполняется тестирование мер защиты, в рамках которого проверяется, что они разработаны надлежащим образом и действительно обеспечивают необходимый уровень безопасности.

Сканирование на наличие уязвимостей

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

Тестирование на проникновение

Тестирование на проникновение, выполняемое экспертами по безопасности, позволяет эффективно выявлять сложные уязвимости и, следовательно, хорошо дополняет сканирование с помощью автоматизированных средств.

Выпуск и поддержка продукта

Выпуск продукта на рынок осуществляется только после успешного проведения финальной проверки безопасности (FSR – Final Security Review), выполненной командой разработки и экспертами по безопасности. Кроме того, мы разработали план реагирования на инциденты для устранения возможных проблем безопасности в наших продуктах. Мы также оказываем услуги технической поддержки (ссылка) и своевременно предоставляем заказчикам всю необходимую информацию о планируемых изменениях в продукте.

Финальная проверка безопасности / Сертификация

Основная цель финальной проверки безопасности – оценка готовности продукта и принятие решения о том, будет ли он выпущен на рынок. Такая проверка включает оценку безопасности продукта, а также, когда это необходимо, его сертификацию.

Читайте также:  При установке принтера нет usb порта

План реагирования на инциденты

Ни одна компания не хочет разрабатывать уязвимое программное обеспечение. Тем не менее, в процессе разработки невозможно полностью избавиться от ошибок, как и невозможно предотвратить появление новых уязвимостей. Поэтому наличие заблаговременно подготовленного плана реагирования на инциденты может существенно сэкономить время и деньги.

Управление конфигурацией и изменениями

Практически любой готовый продукт требует настройки для последующей работы в производственной среде. При этом, чтобы он продолжал обеспечивать необходимый уровень безопасности в процессе эксплуатации, состояние продукта нужно отслеживать, а также его необходимо своевременно обновлять (например, в связи с выпуском новой версии, необходимостью исправления ошибок и / или устранения обнаруженных уязвимостей).

Вывод из эксплуатации

Когда наступает время вывода продукта из эксплуатации (например, в виду его устаревания, необходимости обновления или по любым другим причинам), нельзя забывать о том, что защищаемая информация все еще должна оставаться защищенной. Для этого нужно заранее спланировать и разработать процесс вывода продукта из эксплуатации, принимая во внимание меры защиты, которые должны применяться для обеспечения безопасности при организации последующего хранения информации, удалении данных и аппаратного и программного обеспечения в целом.

Сохранение ценной информации подразумевает не только обеспечение доступности такой информации (например, когда это требуется по закону), но и обеспечение ее защиты в процессе и, если необходимо, после вывода продукта из эксплуатации.

Для предотвращения разглашения защищаемой информации, необходимо уделять особое внимание методам и оборудованию, которые используются при удалении данных с носителя. Выбор соответствующих методов удаления защищаемой информации (путем перезаписи, размагничивания или уничтожения) должен осуществляться с учетом необходимого уровня безопасности.

Удаление аппаратного и программного обеспечения

Физическое уничтожение аппаратного обеспечения может потребоваться только в том случае, если защищаемую информацию невозможно удалить с помощью других средств.
В то же время настоятельно рекомендуется удалять устаревшее программное обеспечение, поскольку в противном случае его последующее использование может привести к возникновению новых рисков.

Безопасное программирование — методика разработки программного обеспечения, предотвращающая случайное внедрение уязвимостей и обеспечивающая устойчивость к воздействию вредоносных программ и несанкционированному доступу. Баги и логические ошибки являются основной причиной появления уязвимостей программного обеспечения.

Безопасное программное обеспечение — программное обеспечение, разработанное с использованием совокупности мер, направленных на предотвращение появления и устранение уязвимостей программы [1] .

Задача безопасного программирования — защита данных пользователя от кражи и порчи, сохранение контроля над системой. Небезопасная программа — потенциальная цель для злоумышленника, который может использовать имеющиеся уязвимости для просмотра, изменения или удаления имеющейся информации, влияния на работу программ и сервисов (запуск или остановка), внедрения вредоносного кода в систему [2] .

Содержание

Терминология [ править | править код ]

В англоязычной литературе существует два термина, которые могут быть переведены, как безопасное программирование.

Defensive programming (Оборонительное, защитное, безопасное программирование) — принцип разработки ПО, при котором разработчики пытаются учесть все возможные ошибки и сбои, максимально изолировать их и при возможности восстановить работоспособность программы в случае неполадок. Это должно делать программное обеспечение более стабильным и менее уязвимым. Например, аппаратной реализацией данного принципа является сторожевой таймер, вычисление контрольной суммы — для выявление ошибок при пакетной передаче данных [3] .

Secure coding (Безопасное программирование) — методика написания программ, устойчивых к атакам со стороны вредоносных программ и злоумышленников. Безопасное программирование помогает защитить данные пользователя от кражи или порчи. Кроме того, небезопасная программа может предоставить злоумышленнику доступ к управлению сервером или компьютером пользователя; последствия могут быть различны: от отказа в обслуживании одному пользователю до компроментации секретной информации, потери обслуживания или повреждения систем тысяч пользователей [2] .

Важность [ править | править код ]

Вопросы обеспечения безопасности и работоспособности системы являются неотъемлемой частью этапа её проектирования (дизайна системы (англ.) русск. ) [4] . Требования к безопасности конкретных продуктов и систем ИТ устанавливаются исходя из имеющихся и прогнозируемых угроз безопасности, проводимой политики безопасности, а также с учётом условий их применения [5] . Внедрение решений для обеспечения безопасности после того, как система уже разработана, является сложной и дорогостоящей процедурой. Поэтому следует с самого начала учитывать требования к безопасности на протяжении всего жизненного цикла системы [4] .

Информационная система разделяется на физический и логический уровень. Понимание того, что именно должно быть защищено от внешних факторов, помогает с наиболее эффективным выбором и применением защитных мер. Чёткая граница между уровнями должна определяться политикой безопасности, регулирующей определённый набор информации и информационных технологий, имеющий физические границы. Дальнейшее усложнение заключается в том, что на одном компьютере или сервере может размещаться как общедоступная, так и конфиденциальная информация. В результате несколько политик безопасности могут применяться к одной машине или в пределах одной системы. Поэтому при разработке информационной системы границы безопасности должны учитываться и описываться в соответствующей документации и политиках безопасности системы [4] . Её разработчики должны уметь обеспечить безопасность системы при проектировании, разработке, управлении и конфигурировании, интеграции (англ.) русск. , правильно провести тестирование [6] .

Анализ (ручной или автоматический) и обеспечение безопасности — дорогостоящая процедура, увеличивающая общую стоимость программного продукта. Ранее полное устранение рисков было общей целью обеспечения безопасности. Сегодня признаётся, что устранение всех рисков не является экономически эффективным. Для каждой предлагаемой системы контроля следует провести анализ затрат и выгод. В некоторых случаях преимущества более безопасной системы могут не оправдывать прямых и косвенных издержек. Выгоды включают не только предотвращение денежных потерь; стоит учитывать, например, и репутационные потери. Прямые расходы включают расходы на приобретение и установку данной технологии; косвенные расходы включают снижение производительности системы и дополнительное обучение сотрудников [7] .

Принципы [ править | править код ]

В настоящее время существуют разнообразные технологии разработки безопасного ПО. Но есть набор принципов, учитываемых при любом подходе [8] :

  • работоспособность и полезность (юзабилити, англ. usability );
  • безопасность (англ. security ) — возможность защиты от внешних угроз, атак и сохранение работоспособности после их отражения и устранения;
  • надежность (англ. reliability ) — предсказуемое, корректное и безотказное поведение в случае некорректных исходных данных;
  • конфиденциальность (англ. privacy ) — обеспечение безопасной и корректной работы с конфиденциальной информацией;
  • обеспечение целостности и корректности бизнеса (англ. business integrity ) — чёткая организация сопровождения программы, контроль прозрачности, законности, корректности работы пользователя.

Четыре последних качества стали основой Trustworthy computing (TwC) (англ. Trustworthy computing ) («Вычисления, заслуживающие доверия») — инициативы корпорации Microsoft, главная задача которой — обратить внимание разработчиков на важность обеспечения указанных требования на каждом из этапов разработки ПО [9] .

Существует множество принципов обеспечения безопасности ПО, большей частью похожих друг на друга. Их обобщением можно считать приведённые выше принципы [10] .

Читайте также:  Материнская плата msi z370 sli plus инструкция

Классификация и виды уязвимостей [ править | править код ]

Классификаторы [ править | править код ]

Использование стандартизованных описаний уязвимостей упрощает работу специалистов по информационной безопасности. В настоящее время существует несколько популярных классификаторов [11] :

  • CVE (Common Vulnerabilities and Exposures) — словарь конкретных уязвимостей конкретных продуктов;
  • CWE (англ.) русск. (Common Weakness Enumeration) — база данных типов уязвимостей. Основная задача проекта — предоставить описания распространённых видов уязвимостей, способы их предотвращения, обнаружения и исправления;
  • SecurityFocus B > (англ.) русск. ;
  • OSVDB (англ.) русск. (Open Sourced Vulnerability Database) — «открытая база данных уязвимостей», созданная тремя некоммерческими организациями. Прекратила работу 5 апреля 2016 года. Блог продолжает работать [12] ;
  • Secunia — лента уязвимостей известной датской компании Secunia в области компьютерной и сетевой безопасности;
  • IBM ISS X-Force.

Современные анализаторы кода и автоматизированные аудиторы могут использовать подобные базы уязвимостей. Это повышает уровень доверия к продукту, а также может оказаться важным при составлении отчётов об уязвимостях, имеющихся в программном продукте [13] .

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

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

Каждая программа является потенциальной целью для злоумышленников. После нахождения уязвимостей в приложениях или сервисах они будут пытаться использовать их для кражи конфиденциальной информации, порчи данных, управления компьютерными системами и сетями [15] . Для описания свойств уязвимости специалистами используется система подсчёта рисков уязвимостей CVSS (англ.) русск. . Она представляет собой шкалы, на основе которых выставляются баллы. Система метрик разработана для разделения приоритетов над исправлением уязвимостей. Каждая шкала относится к определённому смысловому разделу, который называется метрикой. Таких метрик три [16] [17] [11] :

  • Базовая (англ. base ) — характеристики уязвимости, не зависящие от времени и среды исполнения. Служит для описания сложности эксплуатации уязвимости, потенциального ущерба для конфиденциальности, целостности и доступности информации;
  • Временная (англ. temporal ) — метрика, учитывающая временной фактор, например, время на исправление уязвимости;
  • Контекстная (англ. environmental ) — метрика, учитывающая информацию о среде функционирования программного обеспечения.

Последние две метрики носят вспомогательный характер и используются лишь для корректировки показателей базовой метрики с учётом различных специфик [18] .

Виды уязвимостей [ править | править код ]

Список распространённых ошибок, ставящих под угрозу безопасность современных программ [19] :

  • внедрение SQL-кода (англ. SQL injection );
  • уязвимости, связанные с web-серверами (XSS, XSRF, расщепление HTTP запроса (англ.HTTP response splitting ));
  • уязвимости web-клиентов (DOM XSS);
  • переполнение буфера (англ. Buffer Overflow );
  • дефекты форматных строк[20] (англ. Uncontrolled format string );
  • целочисленные переполнения (англ. Integer overflow );
  • некорректная обработка исключений и ошибок;
  • внедрение команд (командная инъекция, англ. Command injection );
  • утечка информации (англ. Information Exposure );
  • ситуация гонки (англ. Race condition );
  • слабое юзабилити [21] (англ. Insufficient Psychological Acceptability );
  • выполнение кода с завышенными привилегиями (англ. Execution with Unnecessary Privileges );
  • хранение незащищенных данных (англ. Protection Mechanism Failure );
  • проблемы мобильного кода (англ.) русск. (англ. Mobile Code Issues );
  • слабые пароли;
  • слабые случайные числа;
  • неудачный выбор криптографических алгоритмов;
  • использование небезопасных криптографических решений;
  • незащищенный сетевой трафик (англ. Cleartext Transmission of Sensitive Information );
  • неправильное использование PKI (англ. Improper Certificate Validation );
  • доверие к механизму разрешения сетевых имен (англ. Reliance on Reverse DNS Resolution ).

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

Защита [ править | править код ]

Правильной стратегией защиты от ошибок и уязвимостей является их предупреждение и предотвращение. Это требует от разработчика постоянной проверки входных данных. Например, лучший способ защиты от атак переполнения буфера — проверка того, что входные данные не превышают размера буфера, в котором они сохраняются. Данные, предназначенные для отправки в БД требуют проверки для защиты от атаки типа внедрения SQL-кода. Если данные отправляются на web-страницу, то следует их проверять для защиты от XSS. Однако, избыточное число проверок усложняет разработку исходного кода программы и может привести, в свою очередь, к появлению новых ошибок, поэтому следует комбинировать данную стратегию с другими [23] .

Механизмы для защиты от ошибок может предоставлять компилятор или операционная система. Компилятор GCC позволяет с помощью функции _builtin_object_size() получать размер объекта по указателю на этот объект, так что её использование делает процедуру копирования безопаснее. MSVC при использовании флага /RTCs позволяет на этапе компиляции проверить переполнения локальных переменных, использование неинициализированных переменных, повреждение указателя стека, вызванное несоответствием соглашений о вызовах. Использование технологии CRED (C range error detector) и специальных вставок перед защищаемым разделом стека (StackGuard, SSP) частично позволяет обнаруживать и предотвращать атаки, связанные с выходом за границы массива и разрушением стека [24] .

Операционная система также может контролировать процесс исполнения программы. Данная стратегия может быть полезной в случае, если исходный код данной программы неизвестен. Технология ASLR (рандомизация схемы адресного пространства) является функцией безопасности операционных систем, предназначенной для предотвращения запуска произвольного кода. В настоящее время ASLR поддерживается и в Linux, и в Windows. Повышение уровня безопасности достигается применением технологий неисполнимых стеков (англ.) русск. : W^X (англ.) русск. , PaX [24] .

Типовыми атаками на web-сервисы являются внедрение SQL-кода, XSS, CSRF, clickjacking. Современные фреймворки помогают разработчикам в создании безопасных web-приложений. Использование готовых решений позволяет не заниматься многочисленными проверками входящих данных: от заголовков HTTP-запросов до их содержания. Также предоставляется более безопасный метод работы с БД — ORM [25] [26] .

Ущерб [ править | править код ]

Информация об уязвимостях может быть использована злоумышленниками при написании вирусов. Например, один из первых известных сетевых червей (вирус Морриса) в 1988 году использовал такие уязвимости как переполнение буфера в Unix-демоне finger для распространения между машинами. Тогда количество заражённых машин составило порядка 6 тысяч [27] , а экономический ущерб по данным счётной палаты США составил от 10 до 100 млн долларов [28] .

В 2016 компьютерные вирусы причинили мировой экономике ущерб в 450 млрд долларов [29] [30] .

В 2017 ущерб от вируса WannaCry оценили в 1 млрд долларов. Случаи заражения были зафиксированы по меньшей мере в 150 странах [31] [32] [33] . Вирус применял эксплойт EternalBlue, использующий уязвимость в протоколе SMB, связанную с переполнением буфера [34] [35] [36] [37] .

Комментировать
159 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
No Image Компьютеры
0 комментариев
Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
Adblock detector