За последние 24 часа нас посетили 18408 программистов и 1605 роботов. Сейчас ищут 947 программистов ...

Защита скриптов от модификации

Тема в разделе "Прочие вопросы по PHP", создана пользователем freeneutron, 22 июн 2011.

  1. freeneutron

    freeneutron Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    226
    Симпатии:
    3
    Какие стандартные решения позволяют защитить скрипты от злоумышленного изменения или моментально обнаружить факт изменения скриптов?
     
  2. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    freeneutron
    где-нибудь хранишь мд5 хеш всех файлов, в начало каждого файла вставляешь проверку мд5-хеша себя же.
    либо хранить время последнего изменения файла и вначале каждого файла сравнивать его.

    первый способ надёжнее, но медленнее
    второй способ быстрее и легче, но возможны трудности
     
  3. freeneutron

    freeneutron Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    226
    Симпатии:
    3
    Gromo Спасибо за предложение. Я бы добавил функцию контроля хэшей в автолоадер. Но почему-то мне кажется, что эта проблема не нова и где-то есть готовое решение в виде библиотеки
     
  4. freeneutron

    freeneutron Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    226
    Симпатии:
    3
    Кстати, функция контроля хэшей должна хранится в закодированном виде. Иначе, злоумышленник, получивший доступ к файловой системе сервера, легко сможет ее сломать. Наверно лучшим решением будет, когда данный функционал размещен в подключаемом PHP-расширении.
     
  5. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    freeneutron
    если делать через единую точку входа (то бишь через роутер) то достаточно вручную в роутер вставить проверку подключаемых файлов на изменение (мд5 хеш, дата модификации или любую другую) и запретить модифицирование самого файла роутера, вот и будет тебе щастье
     
  6. freeneutron

    freeneutron Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    226
    Симпатии:
    3
    Ты имеешь ввиду CHMOD?
     
  7. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    freeneutron
    да, chmod через фтп
     
  8. freeneutron

    freeneutron Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    226
    Симпатии:
    3
    Думаю, надежнее будет хранить скрипты в базе с доступом "только чтение", хотя это не поможет, если злоумышленник знает пароль к полному доступу.
     
  9. engager

    engager Активный пользователь

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    давно тоже руки чешутся такую фиговину сделать, но лень поискать, может уже сделал кто такое. точнее, я не знаю, как правильно сформулировать поисковый запрос))
    моя идея в следующем. php-скрипт запускается по крону, например, раз в 5 минут, сканирует дерево проекта, воспроизводит структуру дерева, например, в массиве в виде {filename:md5}, сериализует, сохраняет где-нить в укромном месте. в след. раз когда он запускается, сначала десериализует дерево из файла, потом начнет сканировать директорию и сравнивать файлы. если размер у файла сменился, или хэш, или файл вообще новый, скрипт будет сигнализировать, например по емэйлу админа. можно предусмтореть запуск скрипта с параметром принудительной переиндексации, чтобы можно было добавлять файлы в проект.
    конечно, если злоумышленник получит root-права, этот механизм не сработает. только для начала нужно догадаться посмотреть в crontab, найти там этот скрипт, который будет называться как-нить отвлеченно, например, clean_up_db.php, проанализировать его, и вырубить из крона.
     
  10. engager

    engager Активный пользователь

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    если паранойя совсем покоя не дает, то можно написать юникс-демона аналог крона специально для этой проверялки, закосить его под системный процесс. тогда хацкеру вообще будет крайне сложно его отыскать.
     
  11. freeneutron

    freeneutron Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    226
    Симпатии:
    3
    Думаю, все это должно быть у Оракла. Возможно, поизучав их продукты, можно будет и запрос сформулировать