Отчет по практике


Тестирование информационных систем

Содержание


Введение

. Сведения об организации СООО «Гейм Стрим»

. Техническое обеспечение

. Программное обеспечение

. Техника безопасности

. Структура и работа предприятия СООО «Гейм Стрим»

. Индивидуальное задание

Заключение


Введение


С 23.07.12 по 09.09.12 мною была пройдена практика на предприятии СООО «ГеймСтрим» по адресу: Республика Беларусь, г. Минск, ул. Либаво-Роменская, д. 23 в должности хак-мастер. Была освоена работа по тестированию информационных систем на степень защищенности и безопасности от разного рода информационных атак.


. Сведения об организации СООО «Гейм Стрим»

информационная система безопасность защищенность

СООО «Гейм Стрим» образовано в 2005 году с целью разработки программного обеспечения интеллектуальных систем и визуализации данных.

Компанией создано много ярких и уникальных компьютерных игр, в частности - «Операция Багратион» (стратегия в реальном времени, посвященная освобождению Беларуси от войск немецко-фашистских захватчиков, которая заняла первое место в номинации «Лучшая стратегическая игра» на Конференции Разработчиков Игр в Москве в 2008г.).

В 2009 году компания выпустила компьютерную игру ORDER OF WAR, которая была издана крупнейшей японской компанией SquareEnix и названа "Лучшей стратегической игрой КРИ 2009".

В данный момент студия продолжает работу над MMO-проектом WORLD OF TANKS (игрой, которая собрала фактически все основные призы на самых значимых тематических выставках последних трех лет и установила мировой рекорд по одновременному количеству он-лайн игроков, что официально подтверждено Книгой рекордов Гиннесса).

Также компания занимается разработкой масштабных технологий в области интернет и рекламы. Компания работает с крупнейшими предприятиями силиконовой долины Калифорнии, в т.ч. Yahoo!.

Компания находится по адресу: 220028, Республика Беларусь, г. Минск, ул. Либаво-Роменская, д. 23.


. Техническое обеспечение


Основной упор компании «Гейм Стрим» направлен на сетевое оборудование. Для функционирования и обслуживания на серверах нескольких сотен тысяч игроков в режиме он-лайн, появилась необходимость в использовании высокотехнологичного сетевого оборудования от лидеров в данной области, которым без сомнения является американская транснациональная компания CISCO.

Сетевое оборудование компании CISCO используемое на предприятии: маршрутизаторы, устройства сетевой безопасности (межсетевые экраны, VPN, IDS и др.), Wi-Fi точки доступа, платформы оптической коммутации, DSL-оборудование, кабельные модемы, универсальные шлюзы и шлюзы удалённого доступа, коммутаторы сетей хранения данных (SAN, StorageAreaNetwork).

Также, для обеспечения огромного количества серверных расчетов необходимы большие вычислительные мощности. Компания использует последние высокотехнологичные разработки передовых компаний, таких как IntelCorporation, NVIDIACorporation, CISCO, AdvancedMicroDevices (AMD) и другие.

Комплектация отдельной вычислительной единицы на предприятии зависит от выполняемых задач. Таким образом, для 3D-моделирования необходимо наличие более мощного графического ускорителя, для веб-дизайна, разработки художественного оформления необходим монитор большого разрешения с матрицей, наиболее точно передающей цветовое пространствоRGB и т.д.


. Программное обеспечение


Так как структура предприятия охватывает практически все области информационных технологий, то соответственно используется большой спектр программного обеспечения для выполнения всевозможных задач. Набор программного обеспечения для отдельной вычислительной единицы, как и в случае технического обеспечения, зависит от характера выполняемых задач на конкретной ЭВМ.

Нахождение именно на должности хак-мастера позволило работать со следующим набором программного обеспечения: операционные системы под управлениемWindows 7 и Linux (CentOS, Debian), Python 3.3.0 (игровой клиент имеет составляющие, написанные на языке Python), браузер Firefoxс набором расширений для анализа веб-страниц, Macromedia® Flash MX (для анализа интерфейсных элементов игрового клиента), HTTP Analyzer (для анализа трафика с веб-ресурсом проекта), Wireshark(для анализа трафика игрового клиента), сам игровой клиент WorldOfTanks.


. Техника безопасности


При работе, мною были изучены следующие инструкции по технике безопасности.

) Не трогать руками провода, электрические вилки и розетки работающего компьютера.

)Запрещается работать на компьютере мокрыми руками или в сырой одежде.

)Нельзя работать на компьютере, который имеет нарушение целостности корпуса или изоляции с неисправной идентификацией включения питания.

)При появлении запаха гари или необычных звуков, немедленно выключить компьютер.

)При появлении в процессе работы, каких либо неотложных дел нельзя оставлять компьютер без присмотра. Необходимо выключить компьютер ,если срок отсутствия превышает 20 мин .

) Нельзя что-либо класть на компьютер т.к. уменьшается теплоотдача металлических элементов.

Требования безопасности перед работой на компьютере.

) Осмотреть и привести в порядок рабочее место.

)Отрегулировать освещение на рабочем месте, убедится в отсутствие потока встречного света.

)Проверить в правильности подключения электрооборудования в сети.

)Протереть салфеткой поверхность экрана и защитного фильтра.

) Проверить правильность установки стола и клавиатуры.

Последовательность включения компьютера

)Включить блок питания.

)Включить периферийные устройства.

)Включить системный блок.

Требования безопасности во время работы.

) Продолжительность работы перед экраном не должна превышать 1 часа.

) В течении всего рабочего времени стол содержать в порядке.

) Открыть все вентиляционные устройства.

)Выполнять санитарные нормы: соблюдать режим работы и отдыха.

) Соблюдать правила эксплуатации и вычислительной техники в соответствии с инструкциями.

)Соблюдать расстояние до экрана в пределах 70-80см.

) Соблюдать установленный временем режим работы. Выполнять упражнения для рук, глаз и т.д.

) Во время работы запрещается одновременно касаться экрана и клавиатуры.

) Запрещается касаться задней панели системного блока при включённом питании.

) Запрещается попадание воды на системный блок, рабочую поверхность и другие устройства.

) Запрещается производить самостоятельное вскрытие и ремонт оборудования.

Требования безопасности в аварийных ситуациях

. Во всех случаях обрывов проводов питания, неисправности заземления необходимо выключить компьютер.

. В случае появления рези в глазах, резком ухудшении видимости, появлении боли в пальцах немедленно покинуть рабочее место сообщить руководителю работ и обратится к врачу.

. При возгорании оборудования отключить питание и принять меры тушения.

Требования безопасности после окончания работы

. Произвести закрытие всех активных задач.

. Выключить питание системного блока.

. Выключить питание всех периферийных устройств.

. Отключить блок питания.


. Структура и работа предприятия СООО «Гейм Стрим»


Компания Wargaming.net - один из ведущих разработчиков компьютерных игр на мировом рынке. Одним из центров разработки является студия СООО «Гейм Стрим» (Минск, Республика Беларусь). В Минском офисе работает более 600 талантливых и амбициозных сотрудников (на март 2012 года).

СООО «Гейм Стрим» образовано в 2005 году с целью разработки программного обеспечения интеллектуальных систем и визуализации данных.

В компании работает более 600 специалистов: программисты, гейм-дизайнеры, дизайнеры уровней, специалисты по звуку, копирайтеры, 3D и 2D художники. Высокий уровень профессионализма специалистов отдела мультимедийного контента позволяет компании создавать качественную трехмерную и двухмерную цифровую графику для своих проектов и под заказ.

Компания СООО «Гейм Стрим» объединяет лучших специалистов с уникальным опытом в области современных информационных и мультимедийных технологий. Компания ориентирована на инновационные подходы в разработке, непрерывное профессиональное развитие сотрудников. Успех компании подтверждён множеством наград:

Дважды подряд Компания удостоена звания Лучшая компания-разработчик в 2009 и 2010 на ведущей отраслевой Конференции Разработчиков Игр (г. Москва):

Лучшая стратегическая игра КРИ-2008 - Операция «Багратион»

Приз от прессы КРИ-2009

Лучшая клиентская онлайн-игра КРИ-2010 - WorldofTanks

Лучшая игра КРИ 2011 - World of Tanks

Приз зрительских симпатий КРИ 2011 - WorldofTanks

Приз от индустрии КРИ 2011

На Electronic Entertainment Expo (E3 - Los Angeles Convention center):

Награда Best MMO 2011 (GameOgre)

Награда Best Booth (Massively)

Награда Best Booth (TenTonHammer)

Награда Game that needed an award (GamePro)

Награда Hidden Gem (GamePro)

Награда Rising Star (MMORPG.com)

Премия Рунета (Народное голосование) 2011

Активно генерируя новые идеи, ставя амбициозные цели, компания растет и запускает в разработку всё новые проекты.

Общую структуру организации можно описать следующим образом:

отдел управления (директор, заместители директора, аналитики бизнес-процессов, руководители игровых проектов, менеджеры по развитию бизнеса, бизнес-ассистенты, ассистенты руководителей, офис-менеджеры);


отдел PR, Рекламы и Маркетинга (ивент-менеджеры, копирайтеры, MarketingProjectManagers, PR-менеджеры, менеджеры по рекламе, менеджеры по email-маркетингу);


отдел по работе с пользователями(гейм-мастера, специалисты в службе технической поддержки пользователей, редактор/корректор);


отдел по разработке (программисты различных языков программирования, руководители команд программистов, Web-разработчики, программисты графики, разработчики мобильных приложений, аналитики разработки продуктов);


отдел по тестированию и обеспечению качества (специалисты по тестированию, гейм-тестеры, хак-мастеры, системные администраторы);


отдел по игровому дизайну и мультимедиа-проектированию(проектировщики интерфейсов, веб-дизайнеры, дизайнеры игровых интерефейсов, 2D и 3D-художники, специалисты по фирменному стилю, художники по спецэффектам, видеодизайнеры, видеообзорщики, аудио-менеджеры);


отдел кадров;


HR менеджмент (специалисты по внутренним коммуникациям, HR BrandManagers);


Также, в организации присутствует обслуживающий персонал.

Что особенно хотелось бы отметить, так это то, что коллектив организации довольно дружный и общительный. Кроме того, руководители организации заботятся о своих подчиненных и предоставляют некоторый спектр услуг совершенно бесплатно, таких как питание в столовой, обучение иностранным языкам, наличие бассейна и спортзала, профессиональное обучение за границей.


. Индивидуальное задание


Просторы интернета пестрят предложениями о взломах «вкусных» игровых аккаунтов на заказ. Особенно подвержены нападению известные игры с многомиллионными он-лайнами по всему миру. И проекты компании «Гейм Стрим» не исключение. Компания нанимает хак-мастеров для предотвращения самой возможности взлома и полного анализа уязвимостей, так как заинтересована в защите игровой аудитории и своих продуктов.

Нахождение в должности хак-мастера требует следующих навыков и умение выполнять следующие задачи:

Требования:

опыт разработки web-решений (Python, PHP, apache, nginx, mysql)

опыт использования и администрирования Linux (CentOS, Debian)

опыт технических тестов на уязвимости.

широкий кругозор в области безопасности ПО

опыт работы в разработке антивирусного ПО или специалистом по безопасности

опыт аудита уровня безопасности веб приложений

опыт анализа и оценки рисков ИБ

Содержание работы:

анализ кода игрового клиента, web-сервисов на предмет уязвимости и взломов

реагирование на попытки взломов, оперативное решение и предотвращение

анализ взломов и исследование принципов работы актуальных ботов для вскрытия

аудит LDAP и сети VPN

аудит использования административных консолей на кластерах

аудит дата-центров

Выполнение индивидуального задания было решено начать с анализа Web-интерфейса на наличие распространенных уязвимостей, таких как PHP-инклудинг, SQL-инъекций, CSRF-атак, XSS-атак.

Краткий обзор и описание уязвимостей web-интерфейсов.

Остановимся подробнее на каждой из этих уязвимостей и кратко опишем их действие и опасность удачного выполнения.

1) PHP-инъекция (PHP-инклудинг, англ. PHP injection), include-баг - один из способов взлома веб-сайтов, работающих на PHP. Он заключается в том, чтобы выполнить нужный код на серверной стороне сайта. Уязвимыми функциями являются eval(), preg_replace() (с модификатором «e»), require_once(), include_once(), include(), require(), create_function().


Она возникает, когда по невнимательности, незнанию, либо по какой-либо другой, известной только ему одному причине, программист позволяет использовать данные, переданные сценарию в виде параметров без дополнительной проверки в качестве параметра вышеперечисленных функций.


Пример:



...

$module = $_GET['module'];$module.'.php';

...

?>


Этот скрипт уязвим, так как к содержимому переменной $module просто прибавляется «.php» и по полученному пути подключается файл.


Взломщик может на своём сайте создать файл, содержащий PHP-код (Это одна из самых опасных уязвимостей, так как в большинстве случаев позволяет получить доступ к управлению данными на веб-сервере.

) SQL-инъекция, внедрение SQL-кода (англ. SQL injection) - один из распространённых способов взлома сайтов и программ, работающих с базами данных, основанный на внедрении в запрос произвольного SQL-кода.


Внедрение SQL, в зависимости от типа используемой СУБД и условий внедрения, может дать возможность атакующему выполнить произвольный запрос к базе данных (например, прочитать содержимое любых таблиц, удалить, изменить или добавить данные), получить возможность чтения и/или записи локальных файлов и выполнения произвольных команд на атакуемом сервере.

Атака типа внедрения SQL может быть возможна из-за некорректной обработки входных данных, используемых в SQL-запросах.

Разработчик прикладных программ, работающих с базами данных, должен знать о таких уязвимостях и принимать меры противодействия внедрению SQL.

Допустим, серверное ПО, получив входной параметр id, использует его для создания SQL-запроса. Рассмотрим следующий PHP-скрипт:


# Предыдущий код скрипта...

$id = $_REQUEST['id'];

$res = mysql_query("SELECT * FROM news WHERE id_news = $id");

# Следующий код скрипта...


Если на сервер передан параметр id, равный 5 (например так: SELECT * FROM news WHERE id_news = 5


Но если злоумышленник передаст в качестве параметра id строку -1 OR 1=1 (например, так: SELECT * FROM news WHERE id_news = -1 OR 1=1


Таким образом, изменение входных параметров путём добавления в них конструкций языка SQL вызывает изменение в логике выполнения SQL-запроса (в данном примере вместо новости с заданным идентификатором будут выбраны все имеющиеся в базе новости, поскольку выражение 1=1 всегда истинно).

) XSS (англ. СrossSiteSсriрting - «межсайтовый скриптинг») - тип атаки на уязвимые интерактивные информационные системы в вебе. XSS применяется, когда в генерируемые сервером страницы возможно внедрить клиентские скрипты, но не только. Специфика подобных атак заключается в том, что для атаки на сервер в качестве средства атаки обычно используется авторизованный на этом сервере клиент.


Для термина используют сокращение «XSS», чтобы не было путаницы с каскадными таблицами стилей, использующих сокращение «CSS».

Из статистических данных на 2012 год XSS составляют 26% и занимают первое место среди остальных уязвимостей. Долгое время программисты не уделяли им должного внимания, считая их неопасными. Однако это мнение ошибочно: на странице или в HTTP-Cookie могут быть весьма уязвимые данные (например, идентификатор сессии администратора). На популярном сайте скрипт может устроить DoS-атакy.

Различают активный и пассивный способ воздействия. Активной является XSS, не требующая каких-либо лишних действий со стороны пользователя с точки зрения функционала веб-приложения. Пассивные XSS подразумевают, что для их срабатывания требуется некое дополнительное действие, которое должен выполнить браузер жертвы (например, клик по специально сформированной ссылке).

) CSRF (англ. СrossSiteRequestForgery - «Подделка межсайтовых запросов», также известен как XSRF) - вид атак на посетителей веб-сайтов, использующий недостатки протокола HTTP. Если жертва заходит на сайт, созданный злоумышленником, от её лица тайно отправляется запрос на другой сервер (например, на сервер платёжной системы), осуществляющий некую вредоносную операцию (например, перевод денег на счёт злоумышленника). Для осуществления данной атаки, жертва должна быть авторизована на том сервере, на который отправляется запрос, и этот запрос не должен требовать какого-либо подтверждения со стороны пользователя, который не может быть проигнорирован или подделан атакующим скриптом.


Данный тип атак, вопреки распространённому заблуждению, появился достаточно давно: первые теоретические рассуждения появились в 1988 году, а первые уязвимости были обнаружены в 2000 году. A cам термин ввел PeterWatkins в 2001 году.

Основное применение CSRF - вынуждение выполнения каких-либо действий на уязвимом сайте от лица жертвы (изменение пароля, секретного вопроса для восстановления пароля, почты, добавление администратора и т.д.). Так же с помощью CSRF возможна эксплуатация пассивных XSS, обнаруженных на другом сервере.

Поиск уязвимостей на портале ) XSS


Атаки подобного рода можно обнаружить, анализируя интерфейс с возможностью ввода пользовательских данных, а также в анализе передаваемых параметров серверу при помощи GETили POSTзапросов.

Первая XSS-уязвимость была найдена на странице с функционалом поиска других пользователей портала с целью просмотра их статистики.

Уязвимая ссылка: Уязвимый параметр: at_search

Тип воздействия: пассивнаяXSS

Реализация атаки:


>alert(document.cookie);


Результат выполнения:





С помощью этой уязвимости, злоумышленник может:

§Украсть сессию авторизованного на портале пользователя из файлов cookie;


§Выполнить в браузере пользователя произвольный java-срипт (всплывающая форма авторизации, ворующая пароли, перенаправление на фишинговый, поддельный сайт и т.д.);


§Воспользоваться в будущем для реализации CSRFатак.


Исправление уязвимости: фильтрация входных данных у уязвимого параметра at_search.

Также, были найдены похожие XSS-уязвимости почти во всех поисковых формах этого портала. Позже, все найденные уязвимости были исправлены веб-программистами.

2) CSRF

Данный вид атак лучше всего искать в веб-интерфейсе при реализации каких-либо функций и действий на портале. Желательно при этом находится уже авторизованным пользователем на портале, так как именно в этом случае становится доступен функционал, имеющий большое значение.

Как оказалось, на портале совсем отсутствовала защита от CSRFатак, и злоумышленник, мог пользоваться некоторыми функциями любого авторизованного пользователя от его имени, который попадал на специальную сформированную злоумышленником страницу.

Например, с помощью GET-запроса


который автоматически отправлялся на сервер при заходе пользователем на «зараженную» страницу злоумышленника, пользователь удалял себя из кланового сообщества игроков, в котором состоял.

С помощью группы запросов


командир кланового сообщества игроков, при заходе на зараженную страницу, незаметно для себя добавлял в свое клановое сообщество пользователя с идентификатором id(скорее всего идентификатор аккаунта злоумышленника) и переводил ему из своей «казны» игровую валюту в количестве N единиц.

Пример для «зараженной» страницы form.html:

















И этот код должен выполняться в iframeфрагменте следующей страницы:















После предоставления информации, веб-программисты исправили эти уязвимости, добавив в набор любого http-запроса, отправляемого на веб-сервер, аргумент CSRF-ID, который не сможет генерироваться через отправку запросов со сторонних серверов, либо будет генерировать неверное значение для конкретного авторизованного пользователя, в результате чего запрос не будет обработан.

Прочие недокументированные возможности

Форма авторизации пользователя на портале изначально не имела ограничений на количество попыток авторизаций с неправильным логином и/или паролем. Веб-программисты, из отдела по разработке, аргументировали такую возможность тем, что логином для авторизации являлся e-mailпользователя, который нигде не был предоставлен в открытом виде, то есть пользователи могут видеть только никнеймы друг друга. Но действительно ли, e-mailпользователя настолько не доступен, как кажется на первый взгляд?

Самый простой вариант - злоумышленник с помощью обмана мог узнать у игрока его e-mail, и впоследствии без трудностей подбирать пароль (например, с помощью автоматизированных скриптов). Но данный вариант не является точным, и вариант воздействия - точечный, то есть только на один конкретный аккаунт.

Позже мной была найдена другая возможность массового обнаруженияe-mail пользователей. Так как игровой проект WorldOfTanks является проектом - «freetoplay» (бизнес-модель, способ распространения компьютерных игр, позволяющий пользователю играть без внесения денежных средств, но, при внесении денежных средств, пользователь получал некоторое преимущество), то проект принимал денежные средства пользователей из разных стран, при этом различается не только вид денежной валюты, но и способы оплаты. Для того чтобы все денежные средства, внесенные пользователями проекта, можно было получить в одной валюте и в одном варианте выплаты, организация воспользовалась услугами агрегатора платежей 2pay.ru (xsolla.ru).

Агрегатор платежей исполняет роль посредника, конвертируя всевозможные валюты и способы оплаты в одну валюту, передаваемую впоследствии организации, которая пользуется их услугами.

При внесении денежных средств на свой аккаунт, пользователь попадал на страницу с информацией об оплате, в которой сообщалось о статусе платежа, указывались сумма, дата уникальный номер транзакции и реквизит платежа. А реквизит платежа - e-mailигрока:





Сама ссылка на страницу с информацией об оплате имела вид:

https://secure.xsolla.com /?payment=29512195.

Как можно заметить, ссылка содержит параметр «payment», который совпадает с уникальным номером транзакции. Как оказалось, при изменении ссылки, принимая значения параметра от 0 до 29512195, можно было просматривать абсолютно все платежки этого агрегатора на текущий момент.

Мною был написан автоматизированный скрипт, который проходил все значения этого параметра, и записывал в текстовый файл все значения реквизитов (то есть e-mailпользователей) и количество внесенных денежных средств. При этом, необходимо было обращать внимание только на страницы с полем «Продавец» и его значением «WorldOfTanks», так как агрегатор платежей обслуживал и другие проекты, которые нам не интересны. Собранная мною база e-mailпользователей (они же логины при авторизации) насчитывала порядка 570 000 записей платежеспособных игроков проекта, что является серьезной утечкой конфиденциальных данных пользователей.





Имея на руках собранную базу логинов от аккаунтов игроков, мною был проведен эксперимент, по попытке подбора паролей. Был написан автоматизированный скрипт, который проверял каждый логин из базы на десять самых распространенных паролей:



123456


qwerty

qwertyuiop

qazwsx

zaqxsw


qazwsxedc

gfhjkm

ghbdtn


Как показали результаты эксперимента, грубому перебору по десятке перечисленных паролей поддались ~20% всех логинов.

Собранная статистика и результаты эксперимента были переданы в отдел разработки программистам, которые заблокировали возможность многократного неверного ввода пароля и/или логина на портале проекта. Сама возможность сбора базы через сайт-агрегатор платежей была тоже исправлена, путем добавления в адрес страницы параметра «hash», который генерировался для каждого платежа отдельно и был доступен только пользователю, проводящему платеж: https://secure.xsolla.com/?payment=29512195&hash=ac53b097df...



Заключение


В ходе выполнения индивидуального задания на должности хак-мастера в СООО «Гейм Стрим» я научился:

§Проводить технические тесты на уязвимости веб-интерфейса;


§Проводить технические тесты на уязвимости программного продукта;


§Искать недокументированные возможности ПО или веб-интерфейсов, приводящие к утечке данных или к появлению уязвимостей;


§Реагирование на попытки взломов, искать оперативное решение и предотвращение;


Прохождение мною практики на весьма необычной должности показало мне, что не стоит пренебрегать безопасностью информационных систем, необходимы постоянный аудит и тесты на безопасность. Требовать от разработчика полной безопасности его результата деятельности не совсем правильно, так как сторонний анализ наиболее эффективен, а разработчик может сконцентрироваться на первоочередных задачах.


Не сдавайте скачаную работу преподавателю!
Данный отчет по практике может быть использован Вами как образец, в соответсвтвии с примером, но с данными своего предприятия, Вы легко сможете написать отчет по своей теме.

Другие материалы:
Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем отчёт по практике самостоятельно:
! Отчет по ознакомительной практике В чем заключается данный вид прохождения практики.
! Отчет по производственной практики Специфика и особенности прохождения практики на производстве.
! Отчет по преддипломной практике Во время прохождения практики студент собирает данные для своей дипломной работы.
! Дневник по практике Вместе с отчетам сдается также дневник прохождения практики с ежедневным отчетом.
! Характеристика с места практики Иногда преподаватели требуеют от подопечных принести лист со словесной характеристикой работы студента, написанный ответственным лицом.

Особенности отчётов по практике:
по экономике Для студентов экономических специальностей.
по праву Для студентов юридических специальностей.
по педагогике и психологии Для студентов педагогических и связанных с психологией специальностей.
по строительству Для студентов специальностей связанных со строительством.
технических отчетов Для студентов технических специальностей.
по информационным технологиям Для студентов ИТ специальностей.
по медицине Для студентов медицинских специальностей.