Размер шрифта
-
+

Защита от хакеров корпоративных сетей - стр. 55

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

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


>/* lameprogram.c – Hal Flynn */

>/* does not perform sufficient checks for a */

>/* file before opening it and storing data */

>#include

>#include

>int main()

>{

>char a[] = “This is my own special junk data

>storage.\n”;

>char junkpath[] = “/tmp/junktmp”;

>FILE *fp;

>fp = fopen(junkpath, “w”);

>fputs(a, fp);

>fclose(fp);

>unlink(junkpath);

>return(0);

>}


Эта программа создает файл /tmp/junktmp без первоначальной проверки его существования.

Пусть во время выполнения программы, создающей небезопасный временный файл, создаваемый файл уже существует. Тогда файл, указанный в символической связи, будет или перезаписан, или в конец этого файла будут добавлены новые данные при условии, если пользователь, выполняющий потенциально опасную программу, имеет право на запись в файл. Рисунки 3.5 и 3.6 демонстрируют пример использования подобной программы пользователем haxor для перезаписи файла пользователя ellipse.

Рис. 3.5. Пользователь haxor создает злонамеренную символическую ссылку


Рис. 3.6. В результате выполнения программы Lameprogram пользователем Ellipse осуществляется перезапись данных файла Lamedata

Дезинформация

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

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

Страница 55