Диплом: Методы и средства защиты информации в сетях ООО «Краском»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
42
динамических web-сайтов. Его популярность обуславливается своей
простотой, богатой функциональностью, высокой скоростью выполнения,
открытостью исходных кодов и полной кроссплатформенностью. За свою
двадцатилетнюю историю PHP преодолел путь от скромного шаблонизатора
HTML-документов, до мощнейшего процедурного и объектно-
ориентированного языка программирования, который стабильно входит в
пятерку ведущих средств программирования в мире и имеющий большое
сообщество поддержки.[21]
К сожалению, язык PHP не лишён недостатков и в версии 5.3.9 была
обнаружена опасная уязвимость, которая даёт возможность злоумышленнику
выполнить свой скрипт на сервере. Это стало возможным из–за закрытия
уязвимости в предыдущих версия языка PHP, где была устранена
возможность DoS-атаки, вызванной проблемой с предсказуемыми
коллизиями в алгоритме хеширования. После реализации закрытия данной
уязвимости открылась новая из-за новой директивы max_input_vars, где был
пропущен блок «else» с освобождением памяти и выходом из функции.
Таким образом, если превышается лимит max_input_vars (по
умолчанию значение равно 1000) переменная является массивом, то
переменная оказывается на месте указателя, которой получает управление. В
случае успешной атаки, код будет выполнен с правами PHP-приложения и
это может привести к разным последствиям, в том числе компрометации
важных данных. Для того, чтобы избежать возможного риска, необходимо
обновить язык PHPдо последней стабильной версии PHP 7, у которой
отсутствует данный недостаток.
Традиционно в базах данных применяется принцип хранения данных в
виде записей, каждая из которых имеет фиксированный набор полей. Записи
размещаются в таблицах, совокупность которых и формирует базу данных.
Для работы с этими данными необходима система управления базами данных
(СУБД), в которой реализована вся работа, связанная с доступом к данным.
43
Такая система имеет ряд команд по созданию таблиц, вставке, обновлению и
удалению из них данных.
MySQL – это быстрая и надежная СУБД, распространяемая открыто.
Как и многие другие СУБД, MySQLфункционирует по модели «клиент-
сервер». Под архитектурой «клиент-сервер» подразумевается сетевая модель,
где различные узлы сети являются клиентами либо серверами. На рисунке 21
изображена схема передачи данных между узлами.
Рисунок 21 - Схема обмена данными в архитектуре «клиент-сервер»
СУБД может управлять одной или несколькими базами данных,
которые представлены в виде совокупности информации, организованной в
виде множеств, каждое из которых содержит записи унифицированного вида,
где записи состоят из полей. Данные множества обычно именуются
таблицами, а записи – строками в таблицах.
Строки в таблицах могут быть связаны друг с другом тремя способами.
Отношение "один к одному". В данном случае одна строка из первой
таблицы соответствует одной строке во второй таблице. На диаграммах такое
отношение обозначается записью1:1.
Отношение "один ко многим" описывает ситуацию, когда строка
изпервой таблицы соответствует нескольким строкам (записям) извторой
таблицы. Это самый популярный тип отношений. На диаграммах
обозначается записью 1:N.
Отношение "многие ко многим" описывает случай, когда несколько
строк из первой таблицы может соответствовать нескольким строкамиз
второй таблицы. Такое отношение обозначается как N:M. [22]
В данный момент данные СЭД хранятся в СУБД MySQL 5.1.61,
которая обладает серьёзной уязвимостью. Уязвимость проявляется при
44
вычислении токена (SHA от пароля и хэша) при подключении пользователя
MySQL, который в свою очередь проходит проверку на сравнение с нужным
значением. При этом функция memcmp() должна возвращать значение из
диапазона -128..127, но в некоторых операционных системах это значение
может выпадать из диапазона. В таком случае, 1 из 256 процедур сравнения
хэшавернет значение true, независимо от хэша, что делаетсистему уязвимой с
вероятностью 1/256 перед случайным паролем.
Таким образом, если злоумышленник получит доступ к исполнению
кода на сервере, у него появится возможность получить root доступ к СУБД
MySQL, а значит ко всей хранимой в ней информации.
На примере простой команды на bashможно продемонстрировать, как
злоумышленник может получить доступ к уязвимому серверу MySQL, не
зная пароля.
$ for i in `seq 1 1000`; do mysql -u root --password=bad -h 127.0.0.1
2>/dev/null; done mysql>
Наличие данной уязвимости присутствует в используемой платформе
Ubuntu Server 64-bit 12.04.
Для устранения риска, связанного с данной уязвимостью, необходимо
обновить серверную платформу UbuntuServer 12.04LTSдо UbuntuServer
18.04LTS и установить СУБД MySQL 5.7 идущую в комплекте поставки, где
данные уязвимости устранены.Ubuntu это операционная система
построенная на базе DebianGNU/Linux (www.debian.org). Операционная
система Debian доминировала в начале 1990-х годов. Обладая полной
самодостаточностью, считалась лучшим дистрибутивом Linux с исходя из
стабильности и безопасности. Debian также приобрела известность верным
принципам распространения свободного программного обеспечения
(www.debian.org/intro/free) и ОС Ubuntu сформировалась именно на ее
основе.
45
Главным условием является соблюдение требований, предписываемых
GPL, исходя из которых, любые изменения, сделанные в существующей
продукции GPL, должны быть доступны другим участникам для
использования. [23]
LTSServerEdition- это серверная версия операционной системы Ubuntuс
долгосрочной поддержкой до 2023 года. Является базой для большинства
видов серверных приложений, таких как файловый сервер, сервер печати,
web-сервер, почтовый сервер и прочее.Именно эта операционная система
послужит основой для модернизируемого сервера для работы СЭД.
Drupal система управления содержимым (CMS), также используется в
качестве каркаса для веб-приложений (CMF) любой сложности.Реализован
на языке PHP и использует в качестве хранилища данных реляционные базы
данных (MySQL, PostgreSQL, MariaDBи другие). Drupal является свободно
распространяемым программным обеспечением с лицензией GPL.
Представляет из себя модульную платформу с открытым исходным кодом,
предназначенную для совместного использования и управления содержимым
сайта. Она легко масштабируется и соответствует большинству стандартов.
По умолчанию система Drupal устанавливается в
варианте,обеспечивающем выполнение лишь ее основных функций, а для
использования дополнительных возможностей используются встроенные и
сторонние модули.
Использование Drupal позволяет создавать интернет-порталы,
персональные сайты, ведомственные или корпоративные веб-сайты,
интернет-магазины, каталоги сетевых ресурсов,социальные сети, галереи
изображений, интрасеть и другие сайты любой сложности.
Существует специальная группа, ответственная за безопасность и
стремящаяся защищать Drupal от возникающих угроз, путем выпуска
обновлений системы безопасности. Сообщество пользователей
46
Drupalнепрерывно пополняется и упорным трудом вносит свой
вкладулучшающий программное обеспечение Drupal.
Как уже упоминалось выше, текущая версия системы электронного
документооборота построена с помощью CMS Drupal 7.31. В данной версии
была обнаружена критическая уязвимость (CVE-2014-3704), которая
позволяет выполнить подстановку SQL-кода (SQL инъекцию). Данной
уязвимости получила наивысший уровень опасности, так как существует
риск удалённой атаки, способной получить несанкционированный доступ к
системе.
Уязвимость заключается в ошибке реализации метода
"preparedstatement" в интерфейсе абстрактного доступа к СУБД и может быть
использована анонимным посетителем путем формирования специального
запроса к сайту на выполнение произвольного SQL-запроса на
сервере.Манипулируя запросом, существует возможность выполнить PHP-
код или получить доступ к серверу. Данной проблеме подвержены все
предыдущие версии Drupal 7, при этом отследить атаку достаточно сложно.
Система нуждается в срочном обновлении до последней на сегодняшний
день версии Drupal 7.59.
Процесс установки Server (для сервера) идентичен при разворачивании
сервера LDAP и не нуждается в повторном описании. Различие лишь в том,
что этот сервер будет иметь имя хоста sed-server.
Для установки веб-сервера, необходимо установить пакет apache2.
sudo apt-get install apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
apache2-bin apache2-data apache2-utils
47
Программа установки оповещает о дополнительных зависимостях,
которые установятся вместе с apache2. После установки проверить работу
сервера можно утилитой curlобратившись к localhostс ключём I, что означает
получить от локального сервера только заголовок со служебной
информацией.
curl -I http://localhost
HTTP/1.1 200 OK
Date: Sat, 11 Aug 2018 12:59:14 GMT
Server: Apache/2.4.18 (Ubuntu)
Last-Modified: Sat, 11 Aug 2018 10:18:53 GMT
ETag: "2c39-573262fecab80"
Accept-Ranges: bytes
Content-Length: 11321
Vary: Accept-Encoding
Content-Type: text/html
Как видно из листинга, веб-сервер успешно установлен, версия apache
2.4.18 соответствующая требованиям информационной безопасности. Для
дальнейшей работы СЭД, необходимо создать виртуальный хост, описав в
нём доменный адрес и путь, где будет находиться СЭД. Чтобы создать
виртуальный хост, необходимо в каталоге /etc/apache2/sites-available/ создать
конфигурационный файл sed.grcc.local.conf.
<VirtualHost *:80>
ServerAdminadmin@grcc.local
ServerNamesed.grcc.local
DocumentRoot /var/www/sed.grcc.local
<Directory /var/www/sed.grcc.local>
Options FollowSymLinks Indexes
AllowOverride All
order allow,deny
allow from all
48
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
На этом настройка веб-сервера закончена. Далее необходимо
установить СУБД MySQL
sudoapt-getinstallmysql-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libaio1 libcgi-fast-perllibcgi-pm-perllibencode-locale-perl
libevent-core-2.0-5 libfcgi-perllibhtml-parser-perl
libhtml-tagset-perllibhtml-template-perllibhttp-date-
perllibhttp-message-perllibio-html-perl
liblwp-mediatypes-perllibtimedate-perlliburi-perl mysql-
client-5.7 mysql-client-core-5.7 mysql-common
mysql-server-5.7 mysql-server-core-5.7
В процессе установки необходимо создать пароль для
суперпользователя, который должен быть достаточно стойким ко взлому (см.
рисунок 22).
Рисунок 22 - Конфигурирование пароля супер пользователя MySQL
СУБД MySQL 5.7.23 установлена и её версия отвечает требованиям
безопасности. Проверить работу установленной СУБД можно программой
49
mysql-monitor и войти в систему под суперпользователем root. Далее нужно
установить базу данных и создать безопасного пользователя и пароль для
работы с базой.
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON sed_db.* TO
"sed_db_user"@"localhost" IDENTIFIED BY "8w*VnEQ5#&";
Query OK, 0 rows affected, 1 warning (0.00 sec)
Импортируем базу данных используя созданного пользователя.
mysql–u sed_db_user -p sed_db<sed.sql.dump
Далее необходимо установить язык PHP7, который будет работать, как
в командной оболочке, так и в качестве модуля к веб-серверу apache2.
sudo apt-get install php7.0 php7.0-json php7.0-mysql php7.0-curl
php7.0-mcrypt php7.0-dev php7.0-xml php7.0-opcache
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
autoconfautomakeautotools-dev binutils build-essential cpp
cpp-5 debhelper dh-php dh-strip-nondeterminism dpkg-dev
fakeroot g++ g++-5 gcc gcc-5 gettextintltool-
debianlibalgorithm-diff-perllibalgorithm-diff-xs-perl
libalgorithm-merge-perllibarchive-zip-perl libasan2
libasprintf-dev libatomic1 libc-dev-bin libc6-dev libcc1-0
libcilkrts5 libcroco3 libcurl3 libdpkg-perllibexporter-tiny-
perllibfakerootlibfile-fcntllock-perl
libfile-stripnondeterminism-perl libgcc-5-dev libgettextpo-dev
libgettextpo0 libgomp1 libisl15 libitm1
liblist-moreutils-perl liblsan0 libltdl-dev libmail-sendmail-
perl libmcrypt4 libmpc3 libmpx0 libpcre16-3
libpcre3-dev libpcre32-3 libpcrecpp0v5 libquadmath0 libssl-dev
libssl-doc libstdc++-5-dev libsys-hostname-long-perl
libtool libtsan0 libubsan0 libunistring0 linux-libc-dev m4
make manpages-dev php-common php-pear php7.0-cli
50
php7.0-common php7.0-fpm php7.0-readline pkg-php-tools po-
debconfshtool zlib1g-dev
php --version
PHP 7.0.30-0ubuntu0.18.04.1 (cli) ( NTS )
Установленная версия PHP 7.0.30 полностью соответствует
требованиям безопасности.
Очередь обновления ядра Drupal 7 на базе которого построена система
электронного документооборота. Так как в версии 7.31 и некоторых
последующих версиях были выявлены критические уязвимости, описанные
ранее, необходимо обновиться с версии 7.31 до актуальной версии 7.59 (от 25
апреля 2018 г.).
Система Drupal 7 состоит из файлов ядра и директории sites/all/ для
сторонних тем и модулей. Все разрабатываемые модулии темы должны
храниться в директории sites/all/modulessites/all/themes, при этом
редактирование файлов ядра не допускается. Такая схема позволяет
создавать качественный код и безболезненно обновлять файлы ядра (см.
рисунок 23).
Рисунок 23 - Дерево каталогов системы Drupal 7
51
Для того, чтобы обновить файлы ядра, нужно загрузить свежую версию
Drupal 7 с официального сайта https://drupal.org и распаковать архив.
Удалить все файлы ядра из проекта, кроме директории sites/all. Методом
копирования переместить файлы обновленной версии ядра в проект. После
чего запустить скрипт обновления базы данных. Если изменения имеются,
они будут применены. После проведения обновления, система электронного
документооборота полностью соответствует требованиям безопасности.
Для доступа к внутренним ресурсам сети с помощью VPN, выбран
способ подключения L2TPс механизмом, отвечающим за шифрование IPSec,
что полностью соответствует современным требованиям информационной
безопасности. Реализовать данный функционал возможно с помощью
программ strongswan xl2tpd ppp.
Создаем подключение к сети из вне.
sudo apt-get install strongswan xl2tpd ppp
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libstrongswanlibstrongswan-standard-plugins
strongswan-charonstrongswan-libcharonstrongswan-starter
Конфигурацияipsec
conn L2TP-PSK-noNAT
dpdaction=clear
authby=secret
type=transport
left=192.168.0.254
leftprotoport=17/1701
right=%any
rightprotoport=17/%any

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Agile-методология в управлении проектами на примере ООО «Ресурсный центр «Академия КлассИнфо»
Aвтoмaтизaция пpoцecca вeдeния инфopмaциoннoй бaзы o дoлжнocтяx и вaкaнcияx c укaзaниeм тpeбoвaний к уpoвню знaний и нaвыкoв кaндидaтoв для гpуппы кaдpoв вoйcкoвoй чacти 3474»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
Cовершенствование управления рентабельности предприятия (на примере гуипп «бендерская типография «полиграфист»)
Event - менеджмент: реализация проекта (на примере ООО "АГРОПАК")