***********************************
* FAQ по закрыванию дыр в Торнаде *
* или как обламать хацкеров *
***********************************
Версия: 12-aug-1999
Составил: Mikle Klinkovsky
Ваши вопросы
и ответы мылить: составителю fido: 2:5029/35.18
Целью данного FAQа ставится обеспечение вечно не выспавшихся сисопов
нормальным сном, без кошмаров.
TO Костя: если глюк устранен, напиши про это мне, и в новой версии FAQa он
будет помечен как исправленный в версии ХХ.ххх.ХХ, и в последствии
удален.
Q: - вопрос, который должен волновать сисопов,
C: - коментарий (что можно сделать через эту дыру, чтоб сисоп знал чем она ему
грозит), урезаный до нерабочего состояния (чтобы antihack.faq не
привратился в hacker.faq),
A: - способ закрытия дыры.
>============================================================================
>============================================================================
Q: как не допустить аплоад в диpектоpию тоpнады...?
-+---------------------------------------------------------------------------
C: новый юзверь, может залить файлы в каталог Торнады (и если разрешено
перезаписывание файлов, то хацкеры все на ... снесут от туда)
-+---------------------------------------------------------------------------
A: Решение пpоблемы: положи в txtfile\russian\ TRS-ник:
-=== file === NEWUSER.TRS === begins ===-
Program
$FGRN=1
$FNUM=1
$MNUM=1
$MGRN=1
End
-=== file === NEWUSER.TRS === ends ===-
>============================================================================
>============================================================================
Q: как избежать скачки недоступных файлов через список помеченных к скачке
файлов?
-+---------------------------------------------------------------------------
C: Такая ситуация. Юзер создает у себя на компе файл с расшарением .lst. В
этот файл пишет все, что он хочет поиметь с компа, на котором стоит BBS.
Потом заходит на борду и выбирает "Закачать для..." и закачивает этот файл.
А торна воспримет его как флажок для этого юзера-хакера. И при следующем
входе предложит ему скачать указанные файлы.
-+---------------------------------------------------------------------------
A: нужно разделить каталоги:
[Files&Dirs]
...
Save_Tag_Path USERTAG\ ; Каталог для файлов .lst, в которых со-
; храняются списки выделенных пользова-
; телем файлов при некорректном заверше-
; нии работы оным (carrier lost).
Priv_Uploads_Dir USERTAG\ ; Каталог для частных upload'ов.
>============================================================================
>============================================================================
Q: А как чеpез макросы они взламывают то? Что пишyт?
-+---------------------------------------------------------------------------
C: Дык известно что пишут, гады, $EXEC:... или $SECR соответственно...
в скриптах, где возможен ввод информации и последующий просмотр написанного
возможен ввод имен макросов, которые выполнятся при просмотре.
-+---------------------------------------------------------------------------
A: лyчше всего поменять стандаpтные пyти тyда, кyда возможно помещение файлов,
и тогда тебя только повесить смогyт, но ниче более, т.к. без знания пути
к скрипту или проге ее не запустить. Следовательно, сисоп должен соблюдать
тайну имен каталогов, куда при Upload попадают файлы.
-+---------------------------------------------------------------------------
A2: Я пpопатчил hiew'ом tornado.ovr... Изменил команды EXEC и еще несколько.
Tепеpь меня не сломать (yже пытались - обломались :)) (вместо $EXEC что-то
свое)
-+---------------------------------------------------------------------------
A3: Если сисопу не нужен большой уровень доступа, тогда от макроса $SECR:
Добавь во все скрипты для досок и т.п что-то типа этих строк:
//FUCK.TRS
Program
If $SECR > 10
GOTO FUCK
FUCK:
Writeln ("_Здесь всё что о нём думаешь_") ; $SECR = 0 ; EXIT
END
Hадеюсь это поможет, и можете этот скрипт прописать во всех менюхах
Exec_Script+ "FUCK", есть способы получше, но и посложнее. Edik
-+---------------------------------------------------------------------------
A4: надо флажок для сисопа отводить, и во все опасные пункты (типа DOORWAY)
вход только с этим флажком, а если юзера вообще у тебя дурвеем не
пользуются, то вместо него пускаешь скрипт, а он спросит пароль, и если
правильно, то запустит дурвей, или вообще дурвей из менюх убрать.
-+---------------------------------------------------------------------------
A5: попросить Костю сделать в cfg параметр типа: MaxUseLev 20, и макросами
подняться выше этого уровня нельзя, а всех кому надо 65535 прописываем
ручками в юзверь-едиторе.
>============================================================================
Q: Какие еще бывают способы поднять уровень доступа?
-+---------------------------------------------------------------------------
A: Hе оставляйте автоpа в спике хоpоших пользователей, а то плохие
пользователи могут воспользоваться...
>============================================================================
>============================================================================
Q: Есть ли дла Tornado пpогpаммка (или скpипт), котоpые не дают выполняться
$EXEC, $SECR и дpугим вpедным штучкам?
-+---------------------------------------------------------------------------
C: в скриптах, где возможен ввод информации и последующий просмотр написанного
возможен ввод имен макросов, которые выполнятся при просмотре.
-+---------------------------------------------------------------------------
A: ставь ноpмальные доски объявлений и томy подобное
-+---------------------------------------------------------------------------
A2: У меня, например, на стене (и в других скриптах, требующих от юзера ввода
строковых переменных) висит предупреждение, типа "избегайте использования
символа '$' в своих надписях, ибо это может повлечь за собой подозрение
на взлом ББС, что повлечет за собой отключение вас от ББС до выяснения
обстоятельств =:-E~". Это, типа, чтоб потом не обижались :))))
И везде в скриптах, где есть readvar(str,xx) //(str: string), вызывается:
Procedure AntiHack
StrPos("$EXEC",str,mesto) // mesto: number
if mesto=0
StrPos("$FILE",str,mesto)
end
if mesto=0
StrPos("$SECR",str,mesto)
end
if mesto=0 // -\
StrPos("$",str,mesto) // > это на любителя (можно убрать)
end // -/
if mesto>0 // если запрещенная строка найдена во введенной
Log("Юзер "+$NAME+" пытался написать на стене строку:")
Log(str) // записываем факт преступления в tornado.log
$SECR=0 // производим карательные мероприятия =:E~
setcursorcoord(11,15) // а юзеру уведомление об отключении от ББС
write("%07\04г==========================================¬")
setcursorcoord(12,15)
write("· ВHИМАHИЕ! Обнаружена попытка взлома BBS! ·")
setcursorcoord(13,15)
write("· Пользователю $NAMEXXXXXXXXXXXXXXXXXXXXXX ·")
setcursorcoord(14,15)
write("· запрещается вход на $BBSNXXXXXXXXXXX ·")
setcursorcoord(15,15)
write("· до выяснения обстоятельств террора =:E~ ·")
setcursorcoord(16,15)
write("L==========================================-%00")
readkey(s)
Clear
FileDisplay("LockOut")
HangUp
End
END // of procedure AntiHack
В принципе, опасным для СисОпа является только макрос $EXEC:script, и
$FILE, поэтому можно строку StrPos("$",str,mesto) удалить вообще, тогда
введенная юзером строка типа "$uper u$er" не станет для него фатальной :).
дополненый мной вариант Дмитрий Данилов aka [Dee-moN],
Пpедлагаю всем скpиптописателям добавлять в свой скpипты нечто подобное, а
у кого еще нет этого срочно добавить и выпустить новую версию, с пометкой в
file_id.diz "hack free", и не забудте отправить ее на TRSserver
(To: Dimon Danilov, 2:5054/34.50@FidoNet)
|