Разработка методики интеллектуального противодействия информационному нападению в корпоративной ИВС

Информационная борьба как средство интеллектуального противодействия. Проблема создания и удержания защищенной среды информационного обмена в информационно-вычислительных сетях (ИВС). Анализ способов и методов информационной борьбы в корпоративной ИВС.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 30.06.2011
Размер файла 5,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Dраз.0,15 = 19 000 000.0,15 = 2 850 000 руб

Тогда среднегодовые доходы от основной деятельности будут равны:

Dод = 3 750 000 + 2 850 000= 6 600 000 руб

5.4 Определение срока окупаемости

Анализ полученных результатов показывает, что капитальные затраты на построение комплекса связи составили 13679079,4 руб., эксплуатационные расходы - 1413739,75 руб., доходы от основной деятельности (включая разовые доходы отнесенные к одному году на период окупаемости) составляют 6600000 руб., а срок окупаемости проекта - 2,63 года.

Заключение

Сегодня стал очевиден новый виток в развитии средств ведения информационной войны - активное применение космических средств. Информационно-вычислительные сети, созданные до провозглашения концепции информационной войны (конец 80-х годов), практически не способны противостоять информационным ударам в силу того, что проектировались они без учета последствий этих ударов. Применение же всевозможных средств и методов защиты информации в этой ситуации может лишь частично ослабить последствия информационного вторжения. Вновь создаваемые информационно-вычислительные сети, должны быть рассчитаны на то, что в виртуальном пространстве этих сетей будут вестись информационные войны. Безусловно, одним из основных направлений развития средств и методов защиты информации и методов построения корпоративной сети в ближайшем будущем будет применение методов искусственного интеллекта.

Значительным потенциалом, по мнению ряда независимых специалистов, обладает подход на основе нейроподобных структур [6] М-сетей и генетических алгоритмов оптимизации

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

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

Список использованной литературы

1. Чипига А.Ф. Информационная безопасность автоматизированных систем: учеб. Пособие для вузов/ А.Ф. Чипига. - M.: Гелиос АРВ, 2010. - 336с.

2. Викторов А.Ф. Информационная война в современных условиях // Информационное общество, 2006. - №1. - С.2-59.

3. Барсуков B. C., Водолазский В.В. Интегральная безопасность информационно-вычислительных и коммуникационных сетей // Технологии электронных коммуникаций т.34, т.35. - М.: Эпос - 2003.

4. Большаков А.А., Петряев А.Б., Платонов В.В., Ухлинов Л.М. Основы обеспечения безопасности данных в компьютерных системах и сетях. Часть 1. Методы, средства и механизмы защиты данных, - СПб.: Конфидент, 1996. - 166 с.

5. Викторов А.Ф. Информационная война в современных условиях // Информационное общество, 2006. - №1. - С.69-89.

6. Островский С.Л. Компьютерные вирусы. Выпуск 3.2 - М.: "Диалог Наука", 2006. - 88с.

7. Гриняев С.Н. Генетический алгоритм обучения стохастической нейронной сети // Приборостроение. Известия ВУЗов, 1996. Т.39,№1. с.23-24.

8. Гриняев С.Н. Эволюционно-генетическая модель компьютерного вируса // Тезисы докладов III Межведомственной научно-технической конференции "Проблемные вопросы сбора, обработки и передачи информации в сложных радиотехнических системах". Пушкин, 1997.

9. Завадский И.И. Информационная война - что это такое? // Защита информации. Конфидент, 2006. - №4. - С.13-20.

10. Лазарев В.Г. Интеллектуальные цифровые сети. Справочник. / Под ред. академика Н.А. Кузнецова. - М.: Финансы и статистика, 1996. - 224 с.

11. Батурин Ю.М., Жодзижский A. M. Компьютерная преступность и компьютерная безопасность. - М.: Юридическая литература, 2005. - 169 с.

12. Герасименко В.А. Комплексная защита информации в современных системах обмена данными // Зарубежная радиоэлектроника, 1993, №2. - С.3-29

13. Стенг Д., Мун С. Секреты безопасности сетей, - К.: "Диалектика", 2006. - 544 с.

14. Ухлинов Л.М. Принципы построения системы управления безопасностью данных в ИВС // Автоматика и вычислительная техника, 1990, №4, с.11-71.

15. Ефремов А. Сетевые атаки и средства борьбы с ними // Computer Weekly № 14, 2010г. с.14-17.

16. Хорев А.А. Техническая защита информации: учебное пособие для вузов/ А.А. Хорев. - М.: НПЦ "Аналитика, 2008. - 436 с.

17. Питерсон Дж. Теория сетей Петри и моделирование систем. - М.: Мир, 1984.

18. Комплексный технический контроль эффективности мер безопасности систем управления. В 2-х частях. Часть 1. Технические основы технической разведки. - М: Телеком, 2008 - 296 с.

19. Амосов Н.М., Касаткин A. M., Касаткина Л.М., Талаев С.А. Автоматы и разумное поведение. - Киев: Наукова думка, 1973. - 373с.

20. Бройдо В.Л. Вычислительные системы, сети и телекоммуникации. СПб.: Питер, 2008. - 688 c.

21. Пятибратов А.П., Гудынко и др. Вычислительные системы, сети и телекоммуникации. М.: Финансы и статистика, 2009. - 688 c.

22. Основы общей теории связи. Часть 2. Под ред. Попова А.А. СПб.: ВАС, - 1992.332 с.

23. Системный анализ и принятие решений: Словарь - справочник: Учеб. Пособие для вузов. М.: Высшая школа., 2004 - 616 с.

24. Лазарев В.Г. Интеллектуальные цифровые сети. Справочник. / Под ред. академика Н.А. Кузнецова. - М.: Финансы и статистика, 2006. - 224 с.

25. Соколов А.В., Шаньгин В.Ф., Защита информации в распределенных корпоративных сетях и системах. - М.: ДМК Пресс, 2004. - 616с.

26. Норткатт Стивен. Защита сетевого периметра: Пер. с англ. / Стивен Норткатт и др. - К.: ООО "ТИД "ДС", 2004. - 672с.

27. Галицкий А.В., Рябко С.Д., Шаньгин В.Ф. Защита информации в сети - анализ технологий и синтез решений/ Галицкий А.В. и др. - М.: ДМК Пресс, 2002. - 656с.

28. Грибунин В.Г. Комплексная система защиты информации на предприятии: учеб. Пособие для вузов/ В.Г. Грибунин - М.: Изд. Цент "Академия", 2009. - 416 с.

29. Меньшаков Ю.А. Защита обьектов и информации от технических средств разведки. - М.: Российск. ГГУ, 2002. - 339 с.

30. ГОСТ 50992-96. Защита информации. Основные термины и определения.

31. Гончаров Н.Р. Охрана труда на предприятиях связи. - М.: Связь, 2008. - 392 с. с 159 илл.

32. Хорольский В.Я., Оськин С.В., Петров Д.В. Методические указания по проведения технико-экономического обоснования дипломных проектов, Ставрополь 2002. - 44 с.

33. Домин П.А. / Справочник по технике безопасности, 6-е изд. - М.: Энергоатомиздат, 2005. - 824 с.

34. Большаков А.А., Петряев А.Б., Платонов В.В., Ухлинов Л.М. Основы обеспечения безопасности данных в компьютерных системах и сетях. Часть 1. Методы, средства и механизмы защиты данных, - СПб.: Конфидент, 1996. - 166 с.

Приложение А

Листинг исходного текста программы моделирующей генетический алгоритм оптимизации

**************************************#*#********#"*********+#****#

**/

/* Программная реализация генетического алгоритма в которой */

/* целевая функция принимает только положительные значения */

/* и пригодность индивида принимается равной значению */

/* целевой функции. Данный генетический алгоритм реализует все */

/* основные операции: селекция, инверсия, мутация, кроссинговер */

/*************************************************************/

#include <stdio. h> #include <stdlib. h> tfinclude <math. h>

/* При необходимости можно изменить эти параметры */

#define POPSIZE 50 /* размер популяции */

#define MAXGENS 1000 /* максимальное значение поколений (циклов) */

/* генетического алгоритма */

#defme NVARS 3 /* число заданных переменных */

#define PXOVER 0.8 /* вероятность кроссинговера */

#define PMUTATION 0.15 /* вероятность мутации */

#define PINVERSION 0.1 /* вероятность инверсии */

#define TRUE I #define FALSE 0

int generation; /* номер текущего поколения */

int cur_best; /* лучший индивид */

FILE *galog; /* файл вывода */

int index 1 [NVARS]; /* вспомогательный индексов переменных */

int index2 [NVARSJ; /* массив индексов переменных */

struct genotype /* генотип (член популяции) */

{

double gene [NVARS]; /* строка переменных */

double fitness; /* пригодность генотипа */

double upper [NVARS]; /* значения верхних границ переменных */

double lower [NVARS]; /* значения нижних границ переменных */

double rfitness; /* относительная пригодность */

double cfitness; /* накопленная пригодность */

};

struct genotype populationfPOPSIZE+1]; /* популяция */

struct genotype newpopulation [POPSIZE+l]; /* новая популяция */

struct genotype newpopulationl [POPSIZE+l]; /* новая популяция 1 */

/* Объявление процедур, которые используются данной программной */

/* реализацией генетического алгоритма */

void initialize (void);

double randval (double, double);

int randval1 (double, double);

void evaluate (void);

void keep_the_best (void);

void elitist (void);

void select (void);

void crossover^ void);

void Xover (int, int);

void swap (double *, double *);

void mutate (void);

void report (void);

void inversion (void);

/*****************************************************/

/* Функция инициализации: инициализирует значения генов в */

/* пределах заданных границ переменных. Она также инициализиру-*/

/* ет (обнуляет) все значения пригодности для каждого члена по-*/

/* пуляции. Она читает верхние и нижние границы каждой перемен-*/

/* ной из файла ввода "gadata. txt". Она генерирует случайным */

/* образом значения в рамках границ для каждого гена каждого */

/* генотипа в популяции. Формат файла ввода "gadata. txt" */

/* следующий: */

/* переменная 1_нижняя_граница переменная 1_верхняя_граница */

/* переменная2_нижняя_граница переменная2_верхняя_граница */

/*******************************************************/

void initialize (void)

{

FILE *infile;

int i,j;

double lbound, ubound;

/* открытие файла ввода */

if ( (infile = fopen ("gadata. txt","r")) =NULL) {

fprintf (galog)"\nHe удается открыть файл ввода! \n");

exit (l); }

/* инициализация переменных с учетом заданных границ */

for (i = 0; i < NVARS; i++)

{

fscanf (infile, "%lf,&lbound); fscanf (infile, "%lf',&ubound); indexl [i] = index2 [i] = i; for (j = 0; j<POPSIZE; j++)

{

population [j]. fitness = 0;

population [j]. rfitness = 0;

population [j]. cfitness = 0;

population [j]. lower [i] = lbound;

population [j]. upper [i] = ubound;

population [j]. gene [i] = randval (population [j]. lower [i],

population [j] upper [i]); } > fclose (infile); /* закрывается файл ввода */

}

/*********************************************************/

/* Генератор случайного значения: генерирует значение в */

/* заданных границах */

/**************************************************/

double randval (double low, double high)

{

double val;

val = ( (double) (rand () %1000) /1000.0) * (high - low) + low;

return (val);

}

/***************************************************************/

/* Генератор случайного значения: генерирует значение в */

/* заданных границах */

/****************************************************/

int randval1 (double low, double high) {

double val;

val = ( (double) (rand () %1000) /1000.0) * (high - low) + low;

retum (val);

/*********************************************************** *^

/* Функция оценивания: Она содержит определенную пользовате-*/

/* лем целевую функцию. После каждого изменения код должен */

/* быть перекомпилирован. */

/* Текущая функция: х [1] ~2-х [1] *х [2] +х [3] */

/************************************************************/

void evaluate (void)

int mem;

inti;

double x [NVARS+l];

for (mem = 0; mem < POPSIZE; mem++)

{

for (i = 0; i < NVARS; i++)

x [index2 [i] +l] = population [mem]. gene [i];

population [mem]. fitness = (x [l] *x [l]) - (x [l] *x [2]) + x [3];

/********************************************************************/

/* Функция сохранения наилучшего члена популяции: Эта функция */

/* хранит след лучшего члена популяции. Последний элемент масси-*/

/* ва population содержит копию лучшего индивида */

/****************************************************************/

void keep_the_best ()

int mem;

int i;

cur_best = 0; /* хранит индекс лучшего индивида */

for (mem = 0; mem < POPSIZE; mem++)

{

if (population [mem]. fitness > populationfPOPSIZE]. fitness)

{

cur_best = mem;

population [POPSIZE]. fitness = population [mem]. fitness;

/* после определения лучшего члена популяции, копируем гены */

for (i = 0; i < NVARS; i++)

population [POPSIZE]. gene [i] = population [cur_best]. gene [i];

}

/*************************************************************/

/* Лучший член предыдущего поколения хранится */

/* как последний в массиве. Если лучший член текущего поколения*/

/* хуже, чем лучший член предыдущего поколения, последний дол - */

/* жен заменить наихудший член текущей популяции */

/***************************************************************/

void elitist ()

{

int i;

double best, worst; /* лучшее и худшее значение пригодности */

int best_mem, worst_mem; /* индексы лучшего и худшего члена */

best = population [0]. fitness;

worst = population [0]. fitness;

for (i = 0; i< POPSIZE - l; i++)

{

if (population [i]. fitness > population [i+l]. fitness)

{

if (population [i]. fitness >= best)

{

best = population [i]. fitness;

best_mem = i;

}

if (population [i+l]. fitness <= worst)

{

worst = population [i+l]. fitness;

worst_mem = i+1;

}

}

else

{

if (population [i]. fitness <= worst)

{

worst = population [i]. fitness;

worst_mem = i;

}

if (population [i+l]. fitness >= best)

{best = poputation [i+l]. fitness;

best_mem = i+1;

}

} }

}

/* Если лучший индивид новой популяции лучше, чем лучший ин - */

/* дивид предыдуще популяции, тогда копировать лучший индивид*/

/* из новой популяции; иначе - заменить худший индивид теку - */

/* щей популяции на лучший индивид из предыдущего поколения */

if (best >= population [POPSIZE]. fitness)

{

for (i = 0; i < NVARS; i++)

population [POPSIZE]. gene [i] = population [best_mem]. gene [i];

population [POPSIZE]. fitness = population [best_mem]. fitness;

}

else

{

for (i = 0; i < NVARS; i++)

population [worst_mem]. gene [i] = population [POPSIZE]. gene [i];

population [worst_mem]. fitness = population [POPSIZE]. fitness;

}

}

/***************************************************/

/* Функция селекции: */

/* Стандартная однородная селекция */

/***********************************************************************/

void select (void)

{

int mem, i, j, k;

double sum = 0;

double p;

/* поиск общей пригодности популяции */

for (mem = 0; mem < POPSIZE; mem++)

{

sum += population [mem]. fitness;

/* вычисление абсолютной пригодности */ for (mem = 0; mem < POPSIZE; mem++)

{

population [mem]. rfitness = population [mem]. fitness/sum;

population [0]. cfitness = population [0]. rfitness;

/* вычисление накопленной пригодности */

for (mem = 1; mem < POPSIZE; mem++)

{

population [mem]. cfitness = population [mem-l]. cfitness + population [mem]. rfitness; }

/* окончательный выбор, используя накопленную пригодность. */

for (i = 0; i < POPSIZE; i++)

p = rand () % 1000/1000.0;

if (p < population [0]. cfitness) newpopulation [i] =population [0]; else

{

for (j = 0; j<POPSIZE; j++)

if (p >= population [j]. cfitness && p<population [j+l]. cfirness) I

newpopulation [i] = population [j+l];

} }

/* как только новая популяция сформирована - копировать ее обратно */

for (i = 0; i < POPSIZE; i++) population [i] = newpopulation [i];

}

/*************************************************************/

/* Селекция для кроссинговера: выбирает двух родителей, */

/* которые принимают участие в кроссинговере */

/**************************************************************/

void crossover (void)

{

int i, mem, one;

int first = 0; /* счетчик числа выбранных членов */

double x;

for (mem = 0; mem < POPSIZE; - н-mern)

{

x = rand () % 1000/1000.0;

if (x<PXOVER)

{

++first;

if (first % 2 == 0)

Xover (one, mem);

else

one = mem;

}

}

}

/*********************************************************************/

/* Кроссинговер: выполняет кроссинговер двух выбранных членов */ /*******************************************************/

void Xover (int one, int two) {

int i;

int point; /* позиция кроссинговера */

/* выбор позиции кроссинговера */

if (NVARS>l)

{

if (NVARS = 2)

point = 1;

else

point = (rand () % (NVARS - 1)) +1;

for (i = 0; i < point; i++)

swap (&population [one]. gene [i], &population [two]. gene [i]);

/**********************************************************/

/* Обмен: Функция обмена значениями двух переменных */

/*************************************************************/

void swap (double *x, double *y) {

double temp;

temp = *x; *x = *y;

*y = temp; }

/*************************************************************/

/* Мутация: Переменная, выбранная для мутации заменяется */

/* случайным значением между нижней и верхней границей этой */

/* переменной. */

/*****************************************************************************/

void mutate (void)

{

int i,j;

double lbound, hbound;

double x;

for (i=0; i < POPSIZE; i++) for (j = 0; j< NVARS; j++) {

x = rand () % 1000/1000.0; if (x < PMUTATION)

{

/* определение границ мутирующей переменной */

Ibound = population [i]. lower [j];

hbound = population [i]. upper [j];

population [i]. gene [j] =randval (lbound, hbound);

}

}

}

*************************************************************************/

/* Функция отчета: Содержит результаты моделирования. */

/* Данные записываются в файл вывода */

/*********************************************************/

void report (void)

{

int i;

double best_val; /* лучшая пригодность в популяции */

double avg; /* средняя пригодность популяции */

double stddev; /* среднеквадратическое отклонение */

double sum_square; /* сумма квадратов для вычисления stddev */

double square_sum; /* */

double sum; /* общая пригодность популяции */

sum = 0.0; sum_square = 0.0;

for (i = 0; i < POPSIZE; i++)

{

sum += population [i]. fitness;

sum_square += population [i]. fitness * population [i] fitness.

)

avg = sum/ (double) POPSIZE; square_sum = avg * avg * (double) POPSIZE; stddev = sqrt ( (sum_square - square_sum) / (POPSIZE - 1)); best_val = population [POPSIZE]. fitness; fprintf (galog, "\n%5d, %6.3f, %6.3f, %6.3f \n\n", generation, best_val, avg, stddev);

} /************************************************************/

/* Инверсия: выполняет инверсию применительно ко всей популяции */

/*************************************************************/

void inversion (void)

{

int i,j,k;

int point [2]; /* левая и правая позиции инверсии */

double x;

x = rand () %1000/1000.0;

/* будет ли осуществляться инверсия в данном цикле */

if (x< PIN VERSION) t

/* нет */

return;

}

/* выбор левой и правой позиции инверсии */

if (NVARS>l)

{

if (NVARS = 2)

{

point [0] = 0;

point [l] = 2;

}

else

{

point [0] = (rand () % (NVARS - 1));

point [l] = randval1 ( (double) (point [0] +2), (double) NVARS);

}

for (i = 0; i < point [0]; i++)

{

index l [i] = index2 [i];

for (k = 0; k <= POPSIZE; k++)

newpopulationl [k]. gene [i] = population [k]. gene [i];

{

j = point [l];

for (i = point [0]; i < point [1]; i++)

{indexl [i] = index2 [j-l];

for (k = 0; k <= POPSIZE; k++)

newpopulationl [k]. gene [i] = population [k]. gene [j-l];

j--;

}

for (i = pointfl]; i < NVARS; i++)

{

index 1 [i] = index2 [i]; for (k = 0; k <= POPSIZE; k++) newpopulationl [k]. gene [i] = population [k]. gene [i];

}

for (i = 0; i<point [l]; i++) index2 [i] = index l [i];

/* как только новая популяция сформирована - копировать ее обратно */

for (i = 0; i <= POPSIZE; i++) for (j = 0; j< NVARS; j++)

popu! ation [i]. gene [j] = newpopulation1 [i]. gene [j]; }

}

/*********************************************************/

/* Главная функция: Каждый цикл включает в себя следующее*/

/* выбор лучших членовпопуляции, выполнение кроссинговера, му-*/

/* тации и затем оценивание результирующей популяции. */

/* Число циклов ограничено значением MAXGEN */

/***************************************************/

void main (void)

{

int i;

/* открытие файла вывода */

if ( (galog = fopen ("galogl. txt","w")) =NULL)

{ exit (l);

}

generation = 0;

fprintf (galog, "\n номер лучшее средняя ср. квадр. \n");

fprintf (galog," цикла значение пригодн. отклонение\n");

initialize ();

evaluate ();

keep_the_best ();

while (generation<MAXGENS)

{

generation++; inversion (); select (); crossover (); mutate (); report (); evaluate (); elitist ();

:

fprintf (galog, "\n\n Моделирование завершено\n"); fprintf (galog,"\n Лучший член популяции: W);

for (i = 0; i < NVARS; i++)

{

fprintf (galog,"\n var (%d) = %3.3f", index2 [i],

population [POPSIZE]. gene [i]); } fprintf (galog,"\n\n Лучшее значение пригодности = %3.3f",

population [POPSIZE]. fitness); fclose (galog);

printf (“Успешное завершение профаммы\n”); }

/******************************************************************** */

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.