Дополнительные сведения:
Наиболее памятные, на мой взгляд, курсовые, имеющие практический характер:
- Анализ безопасности авторизации WordPress. Я занимался изучением кода, отвечающего за безопасное хранение конфиденциальной информации в базе данных на сервере. Мною была найдена уязвимость следующего характера: при вмешательстве в работу базы данных, хранящей хеши, хеширование связки логин-пароль происходило 1 раз вместо заявленного разработчиком числа;
- Работа по компьютерным сетям, в которой я подключал шифрование к сетевым протоколам http, smtp и др. с помощью ssl (сам реализовывал протоколы на C);
- Настройка безопасной ip-телефонии на основе Asterisk. Собирал стенд из исходников, подключал сертификаты и т.д.;
- Участвовал в создании макета, имитирующего сеть предприятия в учебных целях. Настраивал на сервере с установленным на нем WSUS и Kaspersky Endpoint Security политики обновления пользовательских компьютеров;
- Переполнение буфера. Занимался анализом части исходного кода, занимающегося рандомизацией адресов, загруженных в оперативную память библиотек в Linux. Установил, что на деле адреса имеют гораздо меньший разброс, чем заявлено. Что, в свою очередь, позволило с помощью возвратно-ориентированного программирования осуществить внедрение злоумышленного кода в лабораторный стенд.
Дипломная работа: "Скрытые каналы передачи информации в сетевых прикладных протоколах".
Основные результаты:
- Собрал большую базу скрытых каналов (все перевел с английского, так как в отечественной литературе ничего нет по данной тематике). Осуществил доработку методов (главным образом сосредоточился на HTTP);
- Проанализировал текущие математические методы выявления скрытых каналов. Выработал рекомендации по их применению;
- На Python'е (до этого язык не изучал, освоил во время выполнения работы) написал скрипты, которые осуществляют скрытую передачу информации с помощью 2 разных методов (1ин скрипт отправляет, 2ой принимает);
- Провел статистическое исследование трафика (с помощью Wireshark и собственно написанных скриптов) сетевых протоколов с целью построения критериев, с помощью которых можно выявлять скрытые каналы в прикладных протоколах.
C, C++ (в основном реализовывал всевозможные математические и криптографические алгоритмы, алгоритмы кодирования информации, абстрактные типы данных, занимался многопоточным программированием), Python, Ассемблер (базовые знания);
PL/SQL (написание несложных процедур и функций);
Умение анализировать исходники ПО на предмет уязвимостей (исследовал ASLR в Linux, аутентификацию WordPress);
Работал с сетевыми протоколами различного уровня (встраивание шифрования в протокол, анализ возможности построения скрытого канала передачи информации);
Администрирование Ubuntu, Windows Server 2008, 2012 и др. (развертывание стендов, имитирующих предприятие в учебных целях);
Настройка сервера ip-телефонии (Asterisk).