Протокол проверки вкр в системе Антиплагиат
Скачать 1.89 Mb.
|
1 Оглавление Введение……………………………………………………………………………..3 1 Теоретическая часть……………………………………………………….....6 1.1 Постановка задачи…………………………………………………......6 1.2 Анализ литературы………………………………………………….....7 1.3 Обзор аналогов программного обеспечения………………………....9 1.4 Обзор существующих методов решения поставленной задачи.…..11 1.5 Техническая спецификация протоколов передачи данных……….14 1.6 Обзор архитектуры ОС Android……………………………………..22 1.7 Обзор структуры Android-приложения……………………………..26 2 Практическая часть………………………………………………………….31 2.1 Формализация задачи………………………………………………...31 2.2 Используемые шаблоны проектирования…………………………..32 2.3 Структура программного обеспечения……………………………...35 2.4 VPN-компонент……………………………………………………….42 2.5 Компонент логирования сетевого трафика………………………….44 2.6 Компонент просмотра подробной информации…………………….46 2.7 Компонент фильтрации………………………………………………47 2.8 Руководство пользователя……………………………………………49 3 Вредные психофизиологические факторы, влияющие на нервную систему специалиста по защите информации. Методы и средства физической культуры, снижающие их воздействие………………………………………………………..55 Заключение………………………………………………………………………….58 Список используемых источников………………………………………………..59 Приложение А Код программы…………………………………………………....62 2 Приложение Б Протокол проверки ВКР в системе «Антиплагиат»…………………………………………………………………….101 3 Введение Мобильные телефоны давно перестали использоваться исключительно в качестве средства связи – в настоящее время они обладают широким функционалом, который не ограничивается лишь совершением звонков и отправкой SMS-сообщений. Данные устройства обеспечивают доступ в сеть Интернет, предоставляют возможность синхронизации контактов, сообщений, звонков, аккаунтов, настроек, фотографий и прочей информации с почтовым аккаунтом, обладают базовыми средствами для работы с документами, нередко используются для хранения паролей, платежных данных и прочей конфиденциальной информации. Благодаря высокой производительности, быстродействию и большому объему памяти, мобильные телефоны по праву можно считать настоящими карманными компьютерами, среднее время использования которых, согласно статистическим исследованиям, составляет около пяти часов в сутки. Помимо использования в личных целях, мобильные телефоны нередко используются в корпоративных сетях, поскольку они предоставляют практически мгновенный доступ к контактам или документам из любой части планеты. Так, по результатам исследования компании «Код безопасности», около 60% сотрудников используют мобильные устройства в рабочих целях, например, для чтения корпоративной электронной почты, хранения конфиденциальной информации и т.д. Таким образом, на мобильных устройствах хранится не меньше персональных данных, чем на настольных или портативных компьютерах, а их утечка, в свою очередь, может привести к значительному ущербу как для обычного пользователя, так и для целых компаний. В настоящее время более 80% используемых мобильных устройств базируются на операционной системе Android. Исследование компании 4 «Лаборатория Касперского» показывает, что мобильные приложения, установленные на этой платформе, ежедневно используют по несколько десятков мегабайт трафика, даже в том случае, если пользователь их не запускал. Согласно этому исследованию, 96 из 100 Android приложений работают в фоновом режиме, а 83 из 100 имеют доступ к конфиденциальным пользовательским данным (контакты, сообщения, звонки, файлы и т.д.) [1]. Кроме того, большинство приложений, установленных на Android-устройствах, взаимодействуют с сетью без ведома пользователя, и это, в свою очередь, может использоваться злоумышленником для передачи конфиденциальных пользовательских данных, например, контактов, сообщений, списка звонков, файлов, IMEI установленной сим-карты и т.д. Помимо умышленной кражи пользовательских данных, нередко имеет место быть непреднамеренная утечка информации, например, из-за ошибок разработчиков может произойти утечка метаданных или данных о местоположении. Кроме того, некоторые Google-приложения (например, GoogleContactsSyncAdapter или GoogleBackupTransport), по-умолчанию установленные на Android-устройствах, собирают определенные виды информации – от списка установленных приложений и запросов в браузере до списка контактов и паролей. Проблемой, решаемой в рамках данной выпускной квалификационной работы, является мониторинг сетевой активности приложений на устройствах под управлением ОС Android. Поскольку встроенный в Android анализатор сетевого трафика обладает ограниченным функционалом, в частности, позволяет отслеживать только количество используемого тем или иным приложением трафика, для решения этой проблемы требуется разработать программное обеспечение, предназначенное для прослушивания и анализа сетевого трафика в режиме реального времени на Android-устройствах. 5 Таким образом, целью данной выпускной квалификационной работы является разработка программного обеспечения, позволяющего перехватывать сетевой трафик под управлением ОС Android. Задачами, решаемыми в рамках выпускной квалификационной работы, являются: – обзор, сравнение и выявление недостатков у существующих аналогов разрабатываемого программного обеспечения; – анализ существующих способов программной реализации поставленной задачи; – изучение технической спецификации используемых протоколов передачи данных; – обзор архитектуры операционной системы Android и структуры Android-приложения; – разработка архитектуры и алгоритмов работы приложения; – реализация перехвата и анализа сетевого трафика на устройствах под управлением ОС Android версии 4.0 и выше; – реализация фильтрации перехваченного сетевого трафика; – разработка руководства пользователя. Помимо этого, в рамках выпускной квалификационной работы должны быть рассмотрены вредные психофизиологические факторы, влияющие на нервную систему специалиста по защите информации, а также методы и средства физической культуры, снижающие их воздействие. 6 1 Теоретическая часть 1.1 Постановка задачи Одним из первых этапов разработки любого программного обеспечения является анализ требований к проекту. На данном этапе формулируются ответы на следующие вопросы: – для кого разрабатывается система; – каким функционалом она должна обладать; – где и как она может быть использована; – какими системными требованиями и ограничениями обладает разрабатываемая система [2]. В рамках данной выпускной квалификационной работы требуется разработать программное обеспечение, которое обладает следующим функционалом: – перехват сетевого трафика в режиме реального времени; – просмотр подробной информации о перехваченных пакетах; – фильтрация перехваченного трафика по заданным пользователем параметрам. Программное обеспечение может быть использовано для реализации сетевого мониторинга на устройствах под управлением ОС Android с целью анализа и обнаружения подозрительного трафика, предотвращения утечки конфиденциальной информации и выявления вредоносного ПО. Разрабатываемое программное обеспечение должно соответствовать следующим системным требованиям: – программное обеспечение должно функционировать на устройствах под управлением ОС Android 4 и выше; – для корректной работы программного обеспечения не должен требоваться root-доступ (т.е. права суперпользователя). 7 1.2 Анализ литературы При проектировании программного обеспечения перехвата сетевого трафика на устройствах под управлением ОC Android требуется рассмотреть следующие вопросы. Во-первых, необходимо иметь представление о структуре и основных принципах работы сети Интернет, в частности, знать о работе сетевой модели TCP/IP, пакетной передаче данных, технологии «клиент-сервер» и т.д. Во-вторых, требуются знания о языках и технологиях программирования, в частности, под Android устройства. В-третьих, необходимо рассмотреть особенности того или иного метода реализации перехвата сетевого трафика под выбранную операционную систему. Таким образом, для реализации программного обеспечения перехвата сетевого трафика на устройствах под управлением ОС Android может потребоваться литература по следующим вопросам: – принципы, технологии и протоколы компьютерных сетей; – алгоритмы и структуры данных; – шаблоны проектирования; – средства разработки программного обеспечения для ОС Android (языки программирования, интегрированные среды разработки, Android API, библиотеки). Базовые знания о сетевых технологиях рассматриваются в книге «Компьютерные сети» под авторством В. Олифер и Н. Олифер [3]. В указанной книге представлено описание принципов построения и особенностей технологий локальных и глобальных сетей, протоколов передачи данных, затронуты вопросы сетевой безопасности, приведены классификация и примеры компьютерных сетей. Стандарты Глобальной сети представлены в серии пронумерованных информационных документов RFC (Request For Comment) [4]. В указанной 8 серии документов рассматриваются основные аспекты компьютерных сетей, технические спецификации и стандарты, протоколы, концепции работы, информация об экспериментальных исследованиях, а также рекомендации по реализации стандартов. Подробное описание алгоритмов и структур данных представлено в книге автора Адитья Бхаргава «Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих» [5]. В первых трех главах этой книги доступно рассказывается об основных алгоритмах и скорости их работы, структурах данных и рекурсии. Последующие главы посвящены методам решений задач, хэш-таблицам, графам и другим алгоритмам. Информацию и наиболее часто встречающихся шаблонах проектирования можно найти в книге «Паттерны проектирования» Эрика и Элизабет Фримен [6]. В данной книге приводится описание важнейших шаблонов проектирования, рассказывается о преимуществах их использования в рамках решения конкретных задач и приводятся примеры на языке Java. Базовые сведения об языке программирования Java, а также о принципах объектно-ориентированного программирования представлены в книге К. Сьерра, Б. Бертс «Изучаем Java» [7]. Помимо указанной книги, следует использовать книгу Б. Эккеля «Философия Java» [8], в которой приводится подробное описание таких терминов, как абстрактные классы и интерфейсы, коллекции, контейнеры, итераторы, многозадачность, потоки ввода-вывода, обработка ошибок и других понятий, составляющих ядро языка программирования Java. В качестве ресурса, посвященного разработке программного обеспечения под ОС Android, можно использовать сайт developer.android.com [9], на котором можно найти подробную информацию об Android API, архитектурных компонентах, библиотеках подддержки, описание классов и примеры их 9 использования и т.д. В качестве интегрированной среды разработки используется IDE Android Studio, документацию по которой можно найти на том же сайте [10]. 1.3 Обзор аналогов программного обеспечения Для решения проблемы мониторинга сетевой активности приложений на устройствах под управлением ОС Android выполнен поиск и изучение существующих программных анализаторов сетевого трафика для рассматриваемой операционной системы, а также выделены их достоинства и недостатки. Наиболее популярным приложением, предназначенных для этих целей, является Packet Capture. Данное приложение позволяет перехватывать и хранить сетевые пакеты, просматривать их в текстовом и шестнадцатеричном виде, а также фильтровать перехваченный трафик по приложению-отправителю. Главным преимуществом рассматриваемого приложения является возможность работы на устройствах без root-доступа, удобный пользовательский интерфейс и представление данных в различном виде. Недостатками является ограниченная фильтрация, которая может осуществляться лишь по одному параметру, а также отсутствие просмотра подробной информации о пакете. Следующим рассмотренным аналогом является программа tPacketCapture. Приложение перехватывает сетевой трафик на мобильном устройстве и сохраняет данные в файлы формата pcap, списки которых выводятся на экран. Однако данное приложение обладает существенными недостатками: отсутствует возможность настроить фильтрацию и просмотреть перехваченный трафик с мобильного устройства (т.к. открытие pcap файла не поддерживается рассматриваемым приложением). 10 Аналогичным программным обеспечением является приложение Wicap. Несмотря на широкие функциональные возможности, включающие в себя перехват сетевого трафика LTE/WiFi сетей, просмотр подробной информации о пакетах, включающей такие параметры, как тип протокола, длина загловка, флаги, контрольная сумма и т.д., просмотр данных в текстовом и шестнадцатеричном виде, общая статистика перехваченного трафика по каждому из протоколов, приложение обладает существенным недостатком – для его корректной работы требуется root-доступ, который по умолчанию отсутствует на android-устройствах. Помимо этого, в приложении отсутствует настраиваемая фильтрация и просмотр информации о приложении-отправителе. Основные функции рассмотренных приложений представлены в таблице 1. Таблица 1 – Сравнительная таблица средств перехвата трафика на устройствах под управлением ОС Android Функции Packet Capture tPacketCapture Wicap Перехват трафика в режиме реального времени + + + Фильтрация трафика по параметрам - - - Просмотр всего трафика непосредсвенно из приложения + - + 11 Просмотр детальной информации о перехваченном пакете + - + Хранение перехваченного трафика + + + Root-доступ Не требуется Не требуется Требуется Помимо вышеперечисленных приложений рассмотрены и другие аналоги, однако большинство из них обладают крайне ограниченным функционалом и рядом таких существенных недостатков, как, например, отсутствие пользовательского интерфейса или блокирование доступа в Интернет. Таким образом, на основе результатов, полученных в процессе изучения существующих аналогов разрабатываемого программного обеспечения, выявлены их недостатки, которые обуславливают потребность в разработке новой системы. 1.4 Обзор существующих методов решения поставленной задачи Способы перехвата и анализа сетевого трафика на устройствах под управлением ОС Android в зависимости от требований к окружению можно условно разделить на три группы: – перехват сетевого трафика с помощью десктопных устройств; – перехват сетевого трафика на устройствах c root-доступом; – перехват сетевого трафика на устройствах без root-доступа. Наиболее распространненым и простым методом, относящимся к первой группе, является подключение Android-устройства к WiFi-точке и мониторинг его сетевого трафика на десктопном устройстве через любую программу-анализатор (например, Wireshark). 12 Одной из возможных реализаций перехвата сетевого трафика на Android устройствах с root-доступом является разработка программного обеспечения, использующего утилиту tcpdump, которая позволяет прослушивать сетевой трафик и по умолчанию входит в большинство Unix-дистрибутивов. Несмотря на простоту реализации метода, необходимость наличия root-доступа на устройстве является существенным недостатком. Как известно, ОС Android работает на ядре Linux, однако по умолчанию из-за соображений безопасности root-доступ в ней отсутствует. Получение такого доступа, или «рутирование» устройства аналогично получению прав суперпользователя, а это, в свою очередь, влечёт за собой обход ограничений безопасности, установленных ОС Android. Так, например, в случае, если вирусное приложение получит root-права, то оно может нанести куда более существенный вред устройству, чем без них. Поэтому данный способ решения поставленной задачи не используется в рамках данной выпускной квалификационной работы. Наиболее распространенными способами перехвата сетевого трафика на Android устройствах без root-доступа являются установка локальных Proxy- или VPN-серверов. Первый метод используется в большинстве антивирусов под Android. Для его реализации требуется: – разработать программное обеспечение, в котором реализована поддержка HTTP-прокси стандарта RFC 2068; – в настройках WiFi сети устройства установить Proxy сервер; – в настройках мобильной сети устройства установить APN (Access Point Name). Однако у данный метод обладает существенным недостатком. В случае, если пользователь не запустит приложение с Proxy-сервером, ему придется вручную удалить WiFi-прокси или APN из настроек, иначе ни одно приложение 13 не сможет соединиться с сетью. Кроме того, необходимо отслеживать появление новых LTE или WiFi сетей и устанавливать для них Proxy или APN [24]. Второй способ заключается в разработке VPN-клиента, с помощью которого весь TCP/IP трафик приложений, установленных на устройстве, будет перенаправлен на TUN-интерфейс. Под TUN-интерфейсом понимается сетевой туннель, который работает на сетевом уровне модели OSI и оперирует IP пакетами. Для анализа трафика и обработки соединений используется стек TCP/IP, который должен быть включен в VPN-клиент. Данный способ можно представить в виде схемы, представленной на рисунке 1. Рисунок 1 – Механизм перехвата сетевого трафика на устройствах под управлением ОС Android с использованием VPN-клиентаВ рамках данной выпускной квалификационной работы для реализации функции перехвата сетевого трафика в разрабатываемом программном обеспечении выбран последний способ, потому что он: 14 – использует VPNService API, которое предоставляет все необходимые функции для разработки VPN-клиента и доступно на Android устройствах версии 4.0 и выше; – не требует root-доступа, что позволяет использовать приложение на любом Android устройстве версии 4.0 и выше; |