Ответы пользователя по тегу Защита от взлома
  • Как защитить Android от удаленного доступа злоумышленников?

    1 вариант
    Загружаетесь с загрузочного диска windows или linux, чтобы был рабочий стол и браузер с интернетом.
    И меняете все пароли своих аккаунтов, роутеров. Короче самые основные (на форумы потом поменяете).

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

    Сбрасываете смартфон по дефолту, а лучше перепрошиваете, т.к. скорее всего вам уже встроили приложение-бекдор как системное и после сброса оно останется. (если не знаете как делать, то попросите специалиста)
    Заводите новый гугл аккаунт, переносите контакты из старого через браузер, там есть экспорт-импорт.
    На андройд поставить файервол, например NetGuard. Настроить его так, что по умолчанию весь трафик блокировался. Разрешать по мере надобности нужные приложения.

    2 вариант
    у вас карма плохая, всё вышеперечисленное не поможет.
    Всё под призмом - https://www.gnu.org/proprietary/malware-google.html
    Ответ написан
  • Каким образом защитить сайты, расположенные на одном аккаунте хостинга таким образом, чтобы взлом одного не затрагивал остальные?

    Сейчас многие шаред-хостинги дают возможность для каждого сайта менять настройки php.ini.

    Для каждого сайта изменяйте настройку open_basedir - https://www.php.net/manual/ru/ini.core.php#ini.ope...

    disable_functions ограничивайте
    Подробнее отвечал вот здесь - https://qna.habr.com/answer?answer_id=1870361#answ...
    Ответ написан
  • Chmod через веб скрипт?

    к сожалению защита от подобных атак может добавлять неудобства в разработке и тестировании скриптов/сайтов, но приловчиться можно. Я делаю так:
    1) устанавливаю на каждый сайт переменную "open_basedir" равной каталогу пользователя или папки с сайтом. Для каждого сайта значения устанавливаю через конфиг пула php-fpm.
    Если php работает как модуль apache, тогда это делается в конфиге виртуального хоста вот такими строками:
    php_admin_value open_basedir "/var/www:/tmp"
    php_admin_value disable_functions "popen, pclose, exec, passthru, shell_exec, system, proc_open, proc_close, mail, symlink"

    Глобальное значение в php.ini щас стоит: open_basedir = "/var/www:/tmp" на всякий случай.

    2) устанавливаю глобальное значение переменной "disable_functions" в php.ini, у меня щас такое:
    disable_functions = "get_defined_constants,apache_get_modules,virtual,getmyinode,apache_get_version,apache_getenv,ini_restore,-openlog,-syslog,highlight_file,show_source,symlink,-ini_get_all,-phpinfo,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,exec,shell_exec,system,passthru,proc_open,popen,proc_close,proc_get_status,proc_nice,proc_terminate,leak,listen,chown,chgrp,apache_note,apache_setenv,closelog,debugger_off,debugger_on,define_sys,getmyuid,getmypid,diskfreespace,dl,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,expose_php,curl_exec,curl_multi_exec,-parse_ini_file,eval,link,putenv,-pack,gzinflate,gzuncompress"

    Если перед функцией стоит дефис, например "-ini_get_all", значит я хочу временно отключить блокировку данной функции, т.к. блокироваться будет полностью строка "-ini_get_all", а такой не существует.
    Если при работе сайта/скрипта что то не работает, то смотрите error.log, там должны быть ошибки.
    Если для какого то сайта нужно изменить значение disable_functions, то меняю его для отдельного сайта. Или усиливаю защиту блокируя дополнительно функции или наоборот уменьшаю.

    3) Т.к. у меня php работает как php-fpm, то под каждый сайт создаю отдельного пользователя и пул в php-fpm запускается от него.
    Если php работает как модуль apache, то это делается через модуль mpm-itk.
    <IfModule mpm_itk_module>
        AssignUserId user1 user1
    </IfModule>


    4) Для apache устанавливаю модуль ModSecurity (mod_security2). Это веб фаервол. Он блокирует подозрительные http запросы ещё до того, как они попадут к скрипту/cms. Работает очень хорошо. Иногда даже слишком, что приходится отключать часть правил или полностью для какого то сайта.

    Но и выполнение этих 4 пунктов не гарантирует полную безопасность сайта. Один сайт клиента был взломан даже с такими защитами.
    Ответ написан