О безопасности создания онион-проектов. ¶
By: SleepWalker on 2016-09-07 14 ч.
О безопасности создания онион-проектов.
О безопасности создания онион-проектов.
Чтобы создавать приложения в луковой сети необходимо понимать ее логику. Без этого можно совершить множество глупых ошибок. Ниже я распишу различные советы, которые я бы рекомендовал использовать при создании проекта в онион-сети.
1) Ошибкой будет использование Apache в качестве сервера со стандартными настройками. Он допускает смотреть страницу отладки с локальных адресов. /server-status
Но в торе и так все соединения приходят оттуда и соответственно это большой недочет.
2) Известные движки с их уязвимостями. Чем популярней движок, тем больше он имеет различных плагинов, настроек и всего такого, что вы можете просто не замечать. Из-за этого однажды ваш сайт может быть взломан. Просто потому, что вы пропустили какую-то уязвимость или же нашли новую. При создании же своего проекта с нуля вы будете полностью знать логику своего проекта. Да она может быть простой, но главное полное ее понимание. Также можно использовать простые движки, в которых вы полностью разбираетесь.
3) Прямые запросы в обычный интернет с сервера. Необходимо либо направлять все так же через тор, либо использовать впн на своем сервере. Но просто бездумный запуск впн вырубит вам возможность зайти через ssh. Поэтому предварительно надо настроить правила фаервалла.
Вместо иксов ваш внешний айпи-сервера.
ip rule add from x.x.x.x table 128
Вместо игреков ставим маску подсети. ethX - это ваш стандартный интерфейс для доступа к сети.
ip route add table 128 to y.y.y.y/y dev ethX
Z - это ваш обычный шлюз.
ip route add table 128 default via z.z.z.z
Посмотреть стандартные можно командой ip route.
И потом уже можно запускать впн например командой openvpn --config config.ovpn
4) Написание приложений без фильтрации данных форм, вводимых пользователями.
Отсюда следуют такие уязвимости, как xss,sql-инъекции. Любой ввод всегда нужно фильтровать. Доверие к пользователю чревато последствиями. В flask для этого можно использовать библиотеку wtforms с уже настроенными возможностями для безопасной фильтрации.
5) Настройка папок проекта должна быть с умом. Если вы каждой подпапке дадите права 777, то это вряд ли будет разумно. Злоумышленник сможет с легкостью посмотреть листинг ваших директорий, зная их названия.
6) Также вы можете не подключаться к вашему серверу напрямую, а использовать для этого также отдельный домен онион.
Для этого в torrc должны быть строчки
HiddenServiceDir /ваш/путь/до/домена
HiddenServicePort 22 127.0.0.1:22
И с помощью torsocks ssh [email protected] вы будете коннектиться к серверу безопасно и анонимно.
7) Подгрузка скриптов,файлов и прочего из обычной сети на тор-домене. Такого быть не должно.
8) Как и во всяком web-проекте не следует исключать варианта взлома вашего приложения и слива БД. Поэтому все пароли должны быть захешированы. Стойким алгоритмом. Я рекомендую использовать bcrypt.
9) Для защиты от ддоса обычно используют модуль javaскрипт-защиты.
https://habrahabr.ru/post/139931/
Также можно оптимизировать запросы. Убрать за капчи или создать тайм-ауты на критичные get,post запросы к БД.
Редактировался SleepWalker (2016-09-07 14 ч.)