Инструменты безопасности с открытым исходным кодом

Переполнение буфера


Как упоминалось в лекции 4, переполнение буфера является, несомненно, наиболее популярным способом взлома систем. Первым документированным использованием переполнения буфера был Интернет-"червь", выпущенный Робертом Моррисом 2 ноября 1988 г. Он был назван "червем" Morris по имени автора, и создан только для того, чтобы доказать, что это можно сделать. Он работал, используя ошибку в программе finger и распространяя себя с одной машины на другую. Для своего тиражирования он использовал плохую конфигурацию Sendmail и rsh. Предполагалось, что он скопирует себя только на несколько систем. Но при программировании "червя" Моррис сделал ошибку, и тот быстро распространился по всей Сети, состоявшей тогда лишь из нескольких тысяч систем. "Червь" поставил на колени крупнейшие университеты и другие организации, пытавшиеся справиться с быстро распространяющейся ошибкой. Это стало зарей новой эры для компьютерных хакеров и открыло глаза многим из тех, кто считал Интернет безопасным и дружественным местом. С тех пор возможность переполнения буфера была найдена почти во всех важных программах и часто использовалось теми, кто пытался получить несанкционированный доступ к системам.

Как защитить себя от переполнения буфера? Если вы не хотите отлаживать все применяемое вами программное обеспечение (что, между прочим, подразумевает доступ ко всем исходным текстам!), остается ждать, когда кто-то обнаружит ошибку и сообщит о ней, а затем - когда программистская компания выпустит заплату. К сожалению, отслеживание выпускаемых заплат и определение того, какие из них имеют к вам отношение, не говоря уже об их тестировании и установке, способно занять все рабочее время. Многие организации предпочитают просто не беспокоиться, а организации, прилежно устанавливающие все заплаты, зачастую не успевают делать это вовремя. Даже несколько собственных систем корпорации Microsoft пали жертвой эпидемии SQL Slammer, так как на некоторых SQL-серверах не были установлены программные коррекции, которые корпорация сама выпустила! Одним из хороших способов узнать, имеются ли условия для переполнения буфера в ваших приложениях, является их тестирование с помощью программного обеспечения сканирования уязвимостей. Это позволит обнаружить большинство известных переполнений буфера, существующих в системе, и своевременно применить корректирующие заплаты, необходимые для устранения этих условий.



Содержание раздела