Информационная безопасность корпоративных сайтов
Как известно, одной из возможных причин сбоя в работы корпоративного сайта компании может стать уязвимость в информационной безопасности сайта.
Задача защиты корпоративного сайта является одной из основных задач разработчиков корпоративных сайтов в борьбе за качество и информационную безопасность собственных ИТ-продуктов, т.е. разработок ИТ-решений для веба, среди которых корпоративные сайты для компаний-клиентов - это один из наиболее востребованных на сегодняшний день видов разработки.
Любая ИТ-компания, профессионально занимающаяся разработкой корпоративных решений для веба, обязательно решает задачу обеспечения информационной безопасности при разработке корпоративного сайта для компании-клиента. В данной статье речь пойдёт о защите от такого распространенного способа взлома корпоративных сайтов, как SQL-инъекция. Если вы являетесь владельцем корпоративного сайта, при этом не имея должных знаний о его защите, ИТ-специалисты студии веб-дизайна Oxigen советуют вам с особым вниманием отнестись к фактам, изложенным в статье, и к решению задачи обеспечения безопасности сайта.
Один из наиболее распространённых способов взлома веб сайтов, работающих с базами данных SQL - это SQL-инъекция. Данный способ основан на внедрении в запрос произвольного SQL-кода. Этот способ взлома корпоративного сайта компании может дать возможность атакующему выполнить произвольный запрос к базе данных SQL (например, прочитать содержимое любых таблиц, удалить, изменить или добавить данные), получить возможность чтения и/или записи локальных файлов и выполнения произвольных команд на атакуемом сервере.
Подобная враждебная атака на корпоративный сайт компании может представлять угрозу доступа к информации о личных данных клиентов компании (номера банковских карт, личный адрес, номера личных телефонов и т.д.). SQL-инъекция становится возможной при некорректной обработке входящих данных, используемых в SQL-запросах. Разработчик прикладных программ, в том числе программных модулей (скриптов) для веб-сайтов, работающих с базами данных, должен знать о таких уязвимостях и принимать меры противодействия внедрению SQL-кода.
Мы с вами сейчас проведём самостоятельный анализ абстрактного корпоративного сайта путём взаимодействия с базой данных сайта через SQL-инъекцию. Итак, допустим, нам известно о недостаточной фильтрации параметра id в скрипте http://site/test.php. Обычный сценарий взлома предполагает попытку подстановки спецсимволов в уязвимом параметре. Например так: http://site/test.php?id=12" and 1=1. Успешное выполнение данной команды означает практически полную власть хакера над уязвимым сайтом. Чтобы этого не произошло нужно прверить параметр id перед передачей его SQL-серверу.
Постоянные проверки сообщений об ошибках, с текстом SQL-запроса, в котором произошла ошибка сведет вероятность SQL-инъекции к минимуму. По крайней мере, вы сможете вовремя подобную атаку. Однако многое можно сделать, даже если сообщения об ошибках не выводятся вообще. Следует принять к сведению тот факт, что даже если текст ошибки не выводится, можно все равно однозначно судить о том, произошла ошибка, или нет (например, запрос вернул пустой результат).
Методика атак типа внедрение SQL-кода показывает, что основной задачей взломщика корпоративного сайта компании на первом этапе является поиск скриптов, уязвимых для атаки. На данном этапе злоумышленником изучается поведение программных скриптов на корпоративном сайте компании при помощи манипулирования входными параметрами с целью обнаружения их некорректного поведения. Используются все возможные параметры:
-
— Данные передаваемые методами POST и GET;
— Значения [HTTP-Cookie];
— HTTP_REFERER (для скриптов );
— AUTH_USER и AUTH_PASSWORD (при использовании аутентификации).
Как правило, манипуляции злоумышленника с выбранным для атаки корпоративным сайтом сводятся к подстановке в параметры запроса символа одинарной (реже двойной или обратной) кавычки. Некорректным поведением программных модулей корпоративного сайта считается любое поведение, при котором страницы, получаемые до и после подстановки кавычек, имеют различия, но при этом не выведена страница ошибки о неверном формате параметров.
Наиболее часто встречающиеся примеры некорректного поведения корпоративных сайтов компаний: — на странице выводится сообщение с указанием различных ошибок; — при запросе информации на корпоративном сайте компании (например, новости или списка продукции) запрашиваемые данные не выводятся вообще, при этом страница отображается и т. д.
Также следует учитывать тот факт, что на практике о известны случаи, когда сообщения об ошибках, в силу специфики разметки страницы корпоративного сайта компании, не отображаются в обозревателе, хотя при этом присутствуют в её HTML-коде.
Возникает вполне логичный вопрос: как защитить корпоративный сайт компании от атак типа внедрение SQL-кода? Для защиты изготовленного корпоративного сайта от данного типа атак необходимо тщательно фильтровать входные параметры, значения которых будут использованы для построения SQL-запроса. С этой задачей может справиться квалифицированный программист с достаточным опытом веб-разработок корпоративных сайтов для компаний-клиентов.
Следует отметить, что зачастую применение нестандартных решений для защиты информации является одним из оптимальных путей решения задачи обеспечения информационной безопасности сайта вашей компании. Например, в ИТ-компании Oxigen, один из офисов которой расположен в Санкт-Петербурге, в настоящее время идёт активное внедрение в собственного языка программирования для веб-разработки, Secure Web Instructions (SWI), который по сравнению со стандартным для интернета языком обработки программных запросов PHP имеет значительно более высокие показатели устойчивости к взломам и скорости обработки запросов пользователей.
Как показала практика, корпоративные сайты компаний-клиентов на основе SWI менее уязвимы ко враждебным атакам и при этом, на данный момент являются более безопасными по сравнению с корпоративными сайтами компаний на основе PHP. В языке программирования SWI есть встроенная защита от SQL-инъекции.
В SWI встроены специальные средства фильтрации параметров, интеллектуально определяющие и отсекающие "вредные" параметры и/или части параметров, что позволяет снизить вероятность взлома сайта, и, как следствие, не нарушить бизнес-процессы компании, связанные с его активной работой.
Желаем вам успеха в работе!
Студия веб-дизайна Oxigen (Санкт-Петербург), Александр Левицкий, Егор Поляков.