О каналах скрытых, потайных, побочных



О скрытых каналах - часть 6


Первые эксплуатируют очевидные "дыры", вторые пытаются их прикрыть.

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

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

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

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

Дефекты, внесенные непреднамеренно, делятся на:

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




Содержание  Назад  Вперед