Проверка целостности скриптов сайта
Как всем известно, интернет кишит гнусными мерзкими хакерами, взламывающих все, что может исполнять код. Поэтому контроль безопасности сайта нужен любому вебмастеру. Одним из элементов защиты является контроль целостности файлов сайта. Есть множество хороших Open Source продуктов, которые это делают, но проще всего задачу решить следующим способом.
Если скрипты сайта написаны на PHP, то надо время от времени проверять их хеш-суммы. Заодно желательно проверять .htaccess файлы, ибо с их помощью можно превратить любой файл в исполняемый. Вот скрипт на shell, который это делает, в случае изменения скриптов он высылает уведомление на указанную почту.
if [ -f contentmd5.txt ]
then
mv contentmd5.txt contentmd5.old.txt
fi
for ext in cgi php htaccess
do
find /path/to/site/directory -iname "*.$ext*" -exec md5sum "{}" \; >> contentmd5.txt
done
if [ -f contentmd5.old.txt ]
then
diff contentmd5.txt contentmd5.old.txt > contentmd5.diff
fi
if [ -s contentmd5.diff ]
then
cat contentmd5.diff | mutt -s "file integrity check failed"\
-a contentmd5.txt -a contentmd5.old.txt integrity[@]mailforspam.com
fi
Также, если на вашем сервере исполняемыми считаются файлы и с другими расширениями, то скрипт надо модифицировать, чтобы он проверял и их. Проверьте расширения php3, php4, php5. Также полезно понимать, что в том случае если Apache не узнает расширение файла, он анализирует предыдущее, так что файл shell.php.olala тоже будет исполняемым.
В скрипте:
- /path/to/site/directory - путь к корню сайта
- integrity[@]mailforspam.com - почта куда слать уведомление
Директория, где лежит этот скрипт должна быть доступна для записи тому, с чьими правами он будет запускаться и недоступна для чтения всем другим.
Далее, надо настроить планировщик cron для запуска скрипта так часто как это нужно (например ежедневно).
После этих нехитрых процедур мало какой взломщик сумеет незаметно залить шелл на ваш сайт.
Обновлено 07.05.2011 23:38
