Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Integrity Checker (https://forum.antichat.xyz/showthread.php?t=49879)

George767 26.09.2007 05:40

Integrity Checker
 
В продолжение темы http://forum.antichat.ru/thread49552.html



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

Integrity Chekcer состоит из следующих трех модулей:
IC_Compiler.php;
IC_Scanner_manual.php;
IC_Scanner_cron.php

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

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

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

Безопасность всей системы


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

Как упомяналось до этого, подозрительные файлы переименовываютс, однако это возможно только если права директории в которой находятся эти подозрительные файлы являются writable для группы "other".
Файлы переименовываются по шаблону !_первичное_название_IC

ПРОЦЕСС УСТАНОВКИ

1. Создайте MySql базу данных и импортируйте в нее данные из файла MYSQL_IMPORT.txt используя закладку "SQL" в PHPMyAdmin;

2. Откройте таблицу "IC_sys" и измените в полях value пароль и электронную почту;

3. Откройте файл IC_Config.php и измените значения $dbName, $userName и $password;

4. Закачайте все файлы на сервер в корень HTTP папки и запустите файл-модуль IC_Compiler.php. Введите пароль и создайте снимок файлового древа

5. Для тестирования запустите IC_Scanner_manual.php и совершите сканирование. Подозрительные файлы должны отстуствовать. Затем измените, либо закачайте сторонние файлы с запустите снова процесс сканирования, файлы будут обнаружены.

6. Если возможно, установите Крон на запуск файла-модуля IC_Scanner_cron.php раз в два часа (на ваше усмотрение).


ЕСЛИ ВАМ ТРЕБУЕТСЯ ЗАКАЧАТЬ/ИЗМЕНИТЬ ФАЙЛЫ

1. Закачайте/измените нужные файлы и запустите IC_Compiler.php для создания нового снимка файлового древа.

ТРЕБОВАНИЯ К СЕРВЕРУ
PHP 5.X;
ZEND OPTIMIZER 3.X (как минимум);
MYSQL Database.


Несколько скриншотов:
Создание файлового древа
http://anopov.com/IC/1.jpg

Найдены инородные файлы (один новый, другой модифицированный)
http://anopov.com/IC/2.jpg

Отправленный отчет на электронную почту
http://anopov.com/IC/4.jpg

О технологии - применяется сверка на изменение контрольной суммы и крайнего изменения файла. В переспективе ввод нескольких новых способов обнаружения.

Скачать - http://anopov.com/IC/

life_is_shit 26.09.2007 15:14

Задумка хорошая мне тоже понравилась, но если в руках а хакера оказалсо пароль от админки к примеру, то она становится бесполезной, я бы предложил как экспериментальную идею - при алерте менять админский пароль и высылать его по почте. проблема в том, что такое дополнение делать придется под конкретный сайт.
Я надеюс твой проект проверяет себя на изменение? Если да, то контрольную сумму своих файлов он хранит в общей базе со всем "слепком" дерева файлов?

З.Ы. не сочтите за паранойю...

abatsk 26.09.2007 20:46

Блин. Идея класс. Надо посетить будет! У меня смысл такой же. Но файл не переименовывает конечно и без БД, а все в текстовом файле хранится.

abatsk 26.09.2007 21:01

Переделай плиз для Php 4 Отблагодарю.

George767 27.09.2007 15:37

Цитата:

Сообщение от life_is_shit
Задумка хорошая мне тоже понравилась, но если в руках а хакера оказалсо пароль от админки к примеру, то она становится бесполезной, я бы предложил как экспериментальную идею - при алерте менять админский пароль и высылать его по почте. проблема в том, что такое дополнение делать придется под конкретный сайт.
Я надеюс твой проект проверяет себя на изменение? Если да, то контрольную сумму своих файлов он хранит в общей базе со всем "слепком" дерева файлов?

З.Ы. не сочтите за паранойю...

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

Во-вторых из модуля IC_Scanner_manual нельзя НИ изменить пароль, ни удалить результаты сканирований (это можно лишь сделать "хирургически" удалив из БД) это значит что посторонее лицо несможет нанести урон. Кроме того из модуля IC_Scanner_manual нельзя узнать структуру файлового древа ибо после сканирования он выводит только подозрительные файлы.

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

George767 27.09.2007 15:39

Цитата:

Сообщение от abatsk
Блин. Идея класс. Надо посетить будет! У меня смысл такой же. Но файл не переименовывает конечно и без БД, а все в текстовом файле хранится.


Я отказался от текстовых файлов дабы их немогли те кто ненадо открыть

abatsk 27.09.2007 15:57

А сможешь переделать для Php4 ? Хочу поставить себе такой....

George767 27.09.2007 16:02

Цитата:

Сообщение от abatsk
А сможешь переделать для Php4 ? Хочу поставить себе такой....

Переделывать особо нечего, просто Зендом скомпилирую для 4-ой версии. Минут через 10 выложу

abatsk 27.09.2007 16:07

Спасиб. Жду! Кстате. Поделись Зендом?

life_is_shit 27.09.2007 16:09

Цитата:

Сообщение от George767
Во-вторых из модуля IC_Scanner_manual нельзя НИ изменить пароль, ни удалить результаты сканирований (это можно лишь сделать "хирургически" удалив из БД) это значит что посторонее лицо несможет нанести урон. Кроме того из модуля IC_Scanner_manual нельзя узнать структуру файлового древа ибо после сканирования он выводит только подозрительные файлы.

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

George767 27.09.2007 16:21

Цитата:

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


При алерте могу реализовать смену пароля, но смысла особого не вижу.

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

George767 27.09.2007 16:22

Цитата:

Сообщение от abatsk
Спасиб. Жду! Кстате. Поделись Зендом?


http://anopov.com/IC ссылка на версию для php4 выложил

Смотри Пм

abatsk 27.09.2007 16:28

Спасиб. Вечно благодарен!

life_is_shit 27.09.2007 16:38

Цитата:

Сообщение от George767
При алерте могу реализовать смену пароля, но смысла особого не вижу.

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

Цитата:

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

это тоже лишним не будет...

abatsk 27.09.2007 20:38

заливаю дамп в базу с сайтом (ибо не хочется новую базу делать) У меня кстате php4. Меняю на свлои пароль и мыло. захожу на страницу /IC_Compiler.php и нихрена не происходит. Прорбовал даже НЕ менять пароль и мыло в бд. Тоже нихрена не происходит. Как будто пароль не подходит блин .Что то я не догоняю совсем.

George767 27.09.2007 21:04

Цитата:

Сообщение от abatsk
заливаю дамп в базу с сайтом (ибо не хочется новую базу делать) У меня кстате php4. Меняю на свлои пароль и мыло. захожу на страницу /IC_Compiler.php и нихрена не происходит. Прорбовал даже НЕ менять пароль и мыло в бд. Тоже нихрена не происходит. Как будто пароль не подходит блин .Что то я не догоняю совсем.

Белая страница или после ввода пароля обратно на страницу с логином перекидывает?

abatsk 27.09.2007 21:09

Перекидывает опять на страницу с вводом логина

George767 27.09.2007 21:18

Цитата:

Сообщение от abatsk
Перекидывает опять на страницу с вводом логина

Снеси все кукисы и введи пароль снова

abatsk 27.09.2007 21:21

Да пробовал уже. Даже с Ie пробовал заходить .ну нихера блин непомогает.

George767 27.09.2007 21:26

Цитата:

Сообщение от abatsk
Да пробовал уже. Даже с Ie пробовал заходить .ну нихера блин непомогает.

Пароль должен быть либо цифры, либо латинские буквы нижнего и верхнего регистра

abatsk 27.09.2007 21:30

Цитата:

Сообщение от George767
Пароль должен быть либо цифры, либо латинские буквы нижнего и верхнего регистра

Да. Я так и сделал. Вообще понять немогу. Как будто с базой не так чт ото. Хотя блин проверил. Даже специально создал одну БД для скрипта .И не помогает . Блин.

abatsk 27.09.2007 21:35

Уже и просто 4-мя цифрами сделал .Непомогает. бля.

abatsk 27.09.2007 21:39

Nc? стукни в асю четыре 8088девять .Так бысрее будет.

George767 27.09.2007 22:04

Скачай заново http://anopov.com/IC/

abatsk 27.09.2007 22:12

Пасиб .Сейчас работает .завтра вечерком потестирую .А сейчас уже спать пора.

abatsk 29.09.2007 10:02

Можешь сделать что бы определенные папки скрипт не проверял? Т.е. у меня стоит кеширование, поэтому создаются на сервере .txt файлы. А он их все и переименовывает. Гы Или же что бы в определенной папке не проверял текстовые файлы. Вот и все.

George767 29.09.2007 20:52

Цитата:

Сообщение от abatsk
Можешь сделать что бы определенные папки скрипт не проверял? Т.е. у меня стоит кеширование, поэтому создаются на сервере .txt файлы. А он их все и переименовывает. Гы Или же что бы в определенной папке не проверял текстовые файлы. Вот и все.

Да, я сделаю игнорирование указанных папок в следующей версии (завтра / в понедельник).

fucker"ok 29.09.2007 21:13

Нет проприетаршине! Даёшь опен сурс!

George767 26.11.2007 05:34

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

http://anopov.com/ic/

Для php4
http://anopov.com/files/ic4

Для php5
http://anopov.com/files/ic5

x-demon 26.11.2007 19:12

Ну а зенд то зачем?

George767 26.11.2007 19:32

Цитата:

Сообщение от x-demon
Ну а зенд то зачем?


Очень просто - не хочется делится кодом (вот такой я жадный)))). Тем более есть планы касательно этой системы на будущее.

Тут были умельцы которые грозились что могут дезендить скрипты - флаг им в руки:)


Время: 19:28