Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебно-методическое пособие по написанию курсовой работы по дисциплине Моделирование систем защиты информации

.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
467 Кб
Скачать

11

3.2 Порядок выполнения курсовой работы

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

Подготовительный этап. Уточнение постановки задачи. Аналитический обзор научно-технической литературы по теме КР.

Проектный этап. Разработка архитектуры СОВ и алгоритма выявления заданной сетевой атаки.

Реализационный этап. Программная реализация СОВ по выявлению заданной сетевой атаки, моделирование заданной сетевой атаки, отладка программ, получение и анализ результатов.

Оформительский этап. Оформление пояснительной записки в соответствии с требованиями пунктов 3.3 и 3.4 настоящего методического пособия.

Заключительный этап. Защита курсовой работы.

3.3 Структура и примерное содержание пояснительной записки

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

титульный лист (Приложение);

задание на курсовую работу;

содержание;

введение, в котором раскрываются актуальность и значение темы, формулируется цель работы;

основная часть:

o постановка задачи;

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

ки);

oразработка и описание архитектуры СОВ и алгоритма выявления заданной сетевой атаки;

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

результаты применения программы в виде скриптов и снимков экрана после запуска приложения;

заключение;

список использованных источников;

приложение, содержащее исходные коды разработанных программ с необходимыми комментариями.

12

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

Пояснительная записка к курсовой работе выполняется на стандартных листах бумаги формата А4, сброшюрованных в папку. Текст печатается на одной стороне листа. Поля: левое поле -35 мм, правое – 10 мм, верхнее и нижнее – 20 мм. Примерное количество знаков на странице – 2000. Шрифт Times New Roman размером 12, межстрочный интервал 1,5.Страницы текста и рисунки имеют сквозную нумерацию. Первой страницей является титульный лист, на котором номер страницы не проставляется.

3.5 Защита курсовой работы

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

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

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

В результате защиты курсовая работа, согласно Положению о промежуточной аттестации студентов МТУСИ, оценивается дифференцированной отметкой («неудовлетворительно», «удовлетворительно», «хорошо», «отлич-

но»).

Студенты, не защитившие курсовую работу, до экзамена по дисциплине "Моделирование систем защиты информации" не допускаются.

4. ПРИМЕРЫ НА ЯЗЫКЕ C++

А) Пример записи структуры (функция func1) и полей (func2) в бинарный файл:

#include <iostream> #include <fstream>

using namespace std;

struct S

 

{

 

int

ipfrom;

int

ipto;

short

portfrom;

short

portto;

short

flags;

unsigned long long time; };

ofstream file("file.zzz", ios::binary);

13

void func1()

{

S s; s.ipfrom = 1; s.ipto = 1;

s.portfrom = 1; s.ipfrom = 1; s.portto = 1; s.flags = 1; s.time = 1;

file.write((char*)(&s), sizeof(S));

}

void func2()

 

 

 

{

 

 

 

int

ipfrom

= 1;

 

int

ipto

= 1;

 

short

portfrom = 1;

 

short

portto

= 1;

 

short

flags

= 1;

 

unsigned long long time

= 1;

file.write((char*)(&ipfrom) , sizeof(ipfrom)); file.write((char*)(&ipto) , sizeof(ipto)); file.write((char*)(&portfrom), sizeof(portfrom)); file.write((char*)(&portto) , sizeof(portto)); file.write((char*)(&flags) , sizeof(flags)); file.write((char*)(&time) , sizeof(time));

}

int main()

{

//func1();

func2();

file.close(); return 0;

}

Б) Пример чтения структуры (функция func1) и полей (func2) из бинарного файла:

#include <iostream> #include <fstream>

using namespace std;

struct S

 

{

 

int

ipfrom;

int

ipto;

short

portfrom;

short

portto;

short

flags;

unsigned long long time; };

ifstream file("file.zzz", ios::binary);

void read1()

{

S s;

file.read((char*)(&s), sizeof(S));

cout << s.ipfrom;

}

 

 

14

void read2()

 

 

{

 

 

int

ipfrom;

int

ipto

;

short

portfrom;

short

portto ;

short

flags

;

unsigned long long time;

file.read((char*)(&ipfrom) , sizeof(ipfrom)); file.read((char*)(&ipto) , sizeof(ipto));

file.read((char*)(&portfrom),

sizeof(portfrom));

file.read((char*)(&portto)

,

sizeof(portto));

file.read((char*)(&flags)

,

sizeof(flags));

file.read((char*)(&time)

,

sizeof(time));

cout << ipfrom;

}

int main()

{

read1();

//read2();

file.close(); return 0;

}

В) Пример работы со временем:

#include <iostream> #include <sys/time.h>

using namespace std;

main()

{

struct timeval t; gettimeofday( &t, NULL );

cout << "секунды - " <<t.tv_sec << endl;

cout << "микросекунды - " <<t.tv_usec << endl;

//в файл можно писать теперь структуру t

//--------------------------------------

//если требуется преобразовать к миллисекундам:

unsigned long long timeinMillis = (unsigned long long)t.tv_sec * 1000 + t.tv_usec/1000;

cout << "общие милисекунды - " << timeinMillis << endl;

}

Г) Пример преобразования целого, заданного в сетевом порядке расположения байтов, в стандартный строчный вид, из цифр и точек:

#include <arpa/inet.h> #include <iostream> using namespace std;

main() {

uint32_t ip = 16777343; struct in_addr ip_addr; ip_addr.s_addr = ip;

cout << "The IP address is "<< inet_ntoa(ip_addr) << endl;

}

15

Д) Пример работы с ассоциативным контейнером map:

#include <string.h> #include <iostream> #include <map> #include <utility>

using namespace std;

int main()

{

map<int, string> Employees;

Employees[5234] = "Mike C.";

Employees[3374] = "Charlie M.";

Employees[1923] = "David D.";

Employees[7582] = "John A.";

Employees[5328] = "Peter Q.";

cout << "Employees[3374]=" << Employees[3374] << endl << endl;

cout << "Map size: " << Employees.size() << endl;

for( map<int,string>::iterator ii=Employees.begin(); ii!=Employees.end(); ++ii)

{

cout << (*ii).first << ": " << (*ii).second << endl;

}

}

Е) Пример работы с множеством set:

#include <string> #include <set> #include <iostream> using namespace std;

int main(int argc, char* argv[])

{

set <string> strset;

set <string>::iterator si; strset.insert("cantaloupes"); strset.insert("apple"); strset.insert("orange"); strset.insert("banana"); strset.insert("grapes"); strset.insert("grapes");

// This one overwrites the previous occurrence for (si=strset.begin(); si!=strset.end(); si++) { cout << *si << " "; }

cout << endl; return 0;

}

Ж) Пример работы с множеством векторов (динамически расширяемым мас-

сивом) vector:

#include <iostream> #include <vector> #include <string>

using namespace std;

16

main()

{

vector<string> SS; SS.push_back("The number is 10"); SS.push_back("The number is 20"); SS.push_back("The number is 30"); cout << "Loop by index:" << endl; int ii;

for(ii=0; ii < SS.size(); ii++)

{

cout << SS[ii] << endl;

}

cout << endl << "Constant Iterator:" << endl;

vector<string>::const_iterator cii; for(cii=SS.begin(); cii!=SS.end(); cii++)

{

cout << *cii << endl;

}

cout << endl << "Reverse Iterator:" << endl;

vector<string>::reverse_iterator rii; for(rii=SS.rbegin(); rii!=SS.rend(); ++rii)

{

cout << *rii << endl;

}

cout << endl << "Sample Output:" << endl;

cout << SS.size() << endl; cout << SS[2] << endl;

swap(SS[0], SS[2]); cout << SS[2] << endl;

}

З) Пример работы с двусвязным списком list:

#include <iostream> #include <list>

using namespace std;

int main()

{

list<int> intList;

for (int i = 1; i <= 10; ++i) intList.push_back(i * 2);

for (list<int>::const_iterator ci = intList.begin(); ci != intList.end(); ++ci)

cout << *ci << " "; return 0; }

И) Пример работы с очередью с приоритетом priority_queue:

#include <iostream> #include <queue> using namespace std;

int main()

{

priority_queue<int> pq;

17

pq.push(3);

pq.push(5);

pq.push(1);

pq.push(8);

while ( !pq.empty() )

{

cout << pq.top() << endl; pq.pop();

}

cin.get();

}

К) Пример работы со стеком stack:

#include <iostream> #include <stack> using namespace std; int main ()

{

stack<int> mystack;

for (int i=0; i<5; ++i) mystack.push(i);

cout << "Popping out elements..."; while (!mystack.empty())

{

cout << ' ' << mystack.top(); mystack.pop();

}

cout << '\n'; return 0;

}

18

5. СПИСОК ЛИТЕРАТУРЫ

1.Шелухин О.И., Сакалема Д.Ж., Филинова А.С. Обнаружение вторжений в компьютерные сети (сетевые аномалии): Учебное пособие для вузов / Под ред. профессора О.И. Шелухина. – М.: Горячая линия–Телеком, 2013. – 220 с.

2.Linux iptables Xor filter / URL:

https://rickvanderzwet.nl//trac/personal/export/347/liacs/net/as3 .

3.Теоретические основы компьютерной безопасности: Учебное пособие для вузов по спец. "Информ. безопасность" / А.А. Грушо, Э.А. Применко, Е.Е. Тимонина. - М.: Академия, 2009. - 268 с.: ил. - (Высшее профессиональное образование. Информационная безопасность). - Библиогр.: с. 261-263.

4.Щербаков А.Ю. Современная компьютерная безопасность. Теоретические основы. Практические аспекты: Электронное учебное пособие для вузов. - М.: Кн. мир, 2009. – 13,7 МБ.

19

ПРИЛОЖЕНИЕ

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования

Московский технический университет связи и информатики

Кафедра информационной безопасности и автоматизации

КУРСОВАЯ РАБОТА по дисциплине

МОДЕЛИРОВАНИЕ СИСТЕМ

ЗАЩИТЫ ИНФОРМАЦИИ

на тему:

« »

Выполнил:

студент (ка)__________________

(Ф.И.О.)

группа_____________________

Проверил:

_____________________________

(Ф.И.О., должность преподавателя)

Оценка______________________________

Дата______________________________

Москва 201_

20

УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ

ПО НАПИСАНИЮ КУРСОВОЙ РАБОТЫ

по дисциплине

Моделирование систем защиты информации

Подписано в печать 23.06.2014г. Формат 60х90 1/16. Объём 1,3 усл.п.л. Тираж 100 экз. Изд. № 66. Заказ 86.

ООО «ТРП». Москва, ул. Правды, д. 24, стр. 5.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]