логин: 
<< предыдущая заметкаследующая заметка >>
18 марта 2015
УЯЗВИМОСТЬ

Друзья! Да, мне еще раз перед всеми вами феерически стыдно за свою ошибку в коде, и будет стыдно еще долго. Я в прошлом посте говорил, что найдена уязвимость и слёзно просил обновиться. Сегодня я снова об этом.

Обновились, насколько я могу видеть, только трое (условно обозначим их как z--r, Мик-н и Кон-в).

Вы спросите, как я это вижу? Дело в том, что в инсталляторе движка какое-то время была кнопка (кажется, ее давно нет) типа «похвастаться установкой», по нажатию которой на мой сайт сообщался адрес вашего движка. В первый год эти адреса даже выводились на страничке слева, но потом я взялся за ум и список убрал — именно на такой случай, если найдется неприятная уязвимость: чтоб враг не узнал, где ее искать. Сейчас я этот список нашел и прошелся руками по всем. Большая часть движков давно не существует, но некоторые работали. Я полагаю, что список серверов у меня был далеко не полный, а очень-очень старый. Поэтому если вы ставили движок в течении последний пары лет, то его в нем не оказалось.

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

Так движок стал неуязвим у Ер-ва, vo-ne и М.М. Еще раз извините за это вынужденное вмешательство, я лишь обновил один файл php, переименовав старый.

Другие три движка (как я уже писал выше) попытку хака отвергли — значит, уже обновлены.

Все остальные мне просто неизвестны, но если вы читаете эти строки — обновите движок с любого из источников.

Еще раз извините.

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
Страницы, которые привлекли мое внимание за последние дни, рекомендую:
2017-11-22 В июне 1982
архив ссылок
Оставить комментарий
Windows Safari Chrome
 Москва
0
0
Roman Erykalov
Спасибо, Леня, это на тот случай, если я именно тот, кого ты имел в виду :) Да и вообще! Зашел через фейсбук, а не через сайтовый логин, так мне с работы удобнее.
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Сорри. Я тебе письмо отправлял с извинениями.
Windows
 Каменск-Уральский
0
0
D.iK.iJ
Пришел! Наследил, денег везде по углам накидал! Сайт защитил. Безобразие :)
А если честно, то глупо ставить движок от человека и не доверять ему этот движок править. Пусть даже таким методом. Мало ли что там вообще в коде есть.


Думаю, в новых движках нужна отключаемая функция автоматического обновления. Давно уже для себя понял, что если какая-то галочка стоит, 99% ее не трогают :)
Linux Safari Chrome
 Москва
0
0
Leonid Kaganov
Это неприемлемо в принципе.

Движок - не бэкдор, он должен обновляться только по воле своего хозяина и в тот момент, когда этого захочет он, а не какой-то внешний сайт (возможно в этот миг захваченный врагами).
Windows Safari Chrome
 Санкт-Петербург
0
0
[email protected]Кошак (cats-shadow)
Хм... Обновлялся же. Причем на обоих сайтах, где движок трудится.
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Может, не с /dnevnik? В первый день я только в /dnevnik обновление накатил и спать лег. Теперь уже по всем пофикшено, куда смог дотянуться.
А какой сейчас сайт, дай я проверю, обновился ли?
Linux Safari Chrome
 Москва
0
0
Leonid Kaganov
Попробуй в /dnevnik чекбокс записать? Я нашел это и пофиксил буквально позавчера на Бинонике, апдейт накатил оттуда только на /dnevnik Там сложная система авторизации, я перепутал - вместо ADMA() - проверка на админа-владельца движка надо было ставить ADH() - проверку на хэш, чтобы защититься от подложных выъовов.
Windows Safari Chrome
 Санкт-Петербург
0
0
[email protected]Кошак (cats-shadow)
Кстати вопрос.
Модуль secret file теперь файлы из определённого каталога только отдавать может, а не по произвольному пути, как раньше?
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Да вроде нет. С чего ты взял?

Тут вопрос в другом: мы сейчас переходим на nginx, потому что он быстрее и лучше. С Апачем движок по-прежнему будет работать, но nginx имеет дополнительные фокусы. Например, у него нет .htaccess, которым можно запретить отдавать содержимое папки. Поэтому мы запиливаем в движке общесистемную папку hidden/ и целенаправленно запрещаем в nginx ее и все ее подпапки. Соответственно, всякие ключи и прочие непубличные мелочи движка будут храниться там. И там же владельцам nginx я предлагаю хранить свои непубличные файлы в папке hidden/files/ Я свои туда перенес.
Windows Safari Chrome
 Санкт-Петербург
0
0
[email protected]Кошак (cats-shadow)
Увидел каталог новый (по переменной в конфиге), и модуль обновления запросил. Пока не разбирался - заработался. :)

Ага, теперь понятно.

всего комментариев: 11

<< предыдущая заметка следующая заметка >>