В распределенной системе с разветвленной структурой, состоящей из большого числа объектов, может возникнуть ситуация, когда для доступа к определенному хосту у субъекта взаимодействия не окажется необходимой информации, то есть адреса данного объекта. Очевидно, что в системе подобного типа существует потенциальная опасность внесения ложного объекта и выдачи одного объекта за другой путем передачи ложного ответа на поисковый запрос. · Отсутствие криптозащиты сообщений
В распределенных ВС связь между объектами системы осуществляется по виртуальным каналам связи, а следовательно, хакер имеет принципиальную возможность прослушать канал, получив несанкционированный доступ к информации, которой обмениваются по сети се абоненты. Если эта информация не зашифрована, то возникает угроза атаки типа“анализ сетевого трафика”.
· Отсутствие выделенного канала связи между объектами сети Internet Глобальная сеть не может быть построена по принципу прямой связи между объектами, поскольку для каждого объекта невозможно обеспечить вы деленный канал связи с любым другим объектом. Поэтому в Internet связь осуществляется через цепочку маршрутизаторов, а следовательно, сообщение, проходя через большое количество промежуточных подсетей, может быть перехвачено. Также к Internet подключено большое число локальных Ethernet-сетей, использующих топологию“общая шина”; в сетях с такой
топологией несложно программно осуществлять перехват сообщений. · Недостаточные идентификация и аутентификация
В базовых протоколах обмена идентификация и аутентификация объектов практически отсутствуют. Так, например, в прикладных протоколах . FTP, TELNET, РОРЗ имена и пароли пользователей передаются по сети в виде открытых незашифрованных сообщений.
· Использование нестойких алгоритмов идентификации объектов при создании виртуального TCP-соединения
Как уже подчеркивалось, протокол TCP является единственным базовым протоколом транспортного уровня, в функции которого заложена защита соединения. Однако использование простейшего алгоритма идентификации объектов при создании виртуального TCP-канала, особенно при условии применения в сетевых ОС простейших времязависимых законов генерации TCP-идентификаторов (ISN), сводит на нет все попытки обеспечения идентификации канала и объектов при их взаимодействии по протоколу TCP. · Отсутствие криптозащиты сообщений
В существующих базовых протоколах семейства TCP/IP, обеспечивающих взаимодействие на сетевом и транспортном уровнях, не предусмотрена возможность шифрования сообщений, хотя очевидно, что добавить ее в протокол TCP не составляло труда. Разработчики решили переложить задачу криптозащиты на протоколы более высоких уровней, например прикладного уровня. При этом базовые протоколы прикладного уровня (FTP, TELNET, HTTP и др. ) также не предусматривали никакого шифрования сообщений. Только не так давно появился общедоступный прикладной протокол SSL, встроенный в Netscape Navigator, позволяющий как надежно зашифровать сообщение, так и подтвердить его подлинность. В заключение хотелось бы заметить, что все описанные выше причины, по которым возможна успешная реализация угроз безопасности РВС, делают сеть Internet небезопасной. А следовательно, все пользователи сети могут быть атакованы в любой момент. Подведем итоги.
Учитывая все вышесказанное, я думаю, что студентам кафедры АСОИУ уже сейчас не представляется никакой сложности для несанкционированного доступа к терминалам серверов с правами администраторов (причем это не необоснованное высказывание). Другой вопрос–целесообразности всего этого. Я думаю что не стоит проверять все вышесказанное на практике в целях своей же безопасности.
В целом, вычислительная сеть университета администрируется весьма неплохо, нужно отдать должное системным администраторам. На серверах стоят последние версии операционных систем. Однако на chuck. stu. lipetsk. ru почему-то у обычных пользователей нет прав на компилирование Си программ. Почему? Может это и есть слабое звено в администрировании, или это еще одна предосторожность администратора? Хотя на tomcat. am. lstu обычным смертным разрешено… Вообще-то взлом octopus. stu. lipetsk. ru был бы неуважением своей же кафедры. Ведь та защита которая там присутствует направлена не для того, чтобы предотвратить проникновение злоумышленника, а для элементарной защиты от неопытных пользователей. ПРИЛОЖЕНИЕ.
В целях безопасности, приводим только фрагменты программы. Файл john. c #include #include #include #include #include "arch. h" #include "misc. h" #include "params. h" #include "path. h" #include "memory. h" #include "list. h" #include "tty. h" #include "signals. h" #include "idle. h" #include "common. h" #include "formats. h" #include "loader. h" #include "logger. h" #include "status. h" #include "options. h" #include "config. h" #include "bench. h" #include "charset. h" #include "single. h" #include "wordlist. h" #include "inc. h" #include "external. h" #include "batch. h" #if CPU_DETECT extern int CPU_detect(); #endif extern struct fmt_main fmt_DES, fmt_BSDI, fmt_MD5, fmt_BF; extern struct fmt_main fmt_AFS, fmt_LM; extern int unshadow(int argc, char **argv); extern int unafs(int argc, char **argv); extern int unique(int argc, char **argv); static struct db_main database; static struct fmt_main dummy_format; static void john_register_one(struct fmt_main *format) { if (options. format) if (strcmp(options. format, format->params. label)) return; fmt_register(format); } static void john_register_all() { if (options. format) strlwr(options. format); john_register_one(&fmt_DES); john_register_one(&fmt_BSDI); john_register_one(&fmt_MD5); john_register_one(&fmt_BF); john_register_one(&fmt_AFS); john_register_one(&fmt_LM); if (! fmt_list) {
fprintf(stderr, "Unknown ciphertext format name requested\n"); error(); } } static void john_load() { struct list_entry *current; umask(077); if (options. flags & FLG_EXTERNAL_CHK) ext_init(options. external); if (options. flags & FLG_MAKECHARS_CHK) { options. loader. flags |= DB_CRACKED; ldr_init_database(&database, &options. loader); if (options. flags & FLG_PASSWD) { ldr_show_pot_file(&database, LOG_NAME); database. options->flags |= DB_PLAINTEXTS; if ((current = options. passwd->head)) do { ldr_show_pw_file(&database, current->data); } while ((current = current->next)); } else = DB_PLAINTEXTS; ldr_show_pot_file(&database, LOG_NAME); return; } if (options. flags & FLG_STDOUT) ldr_init_database(&database, &options. loader); database. format = &dummy_format; memset(&dummy_format, 0, sizeof(dummy_format)); dummy_format. params. plaintext_length = options. length; dummy_format. params. flags = FMT_CASE if (options. flags & FLG_PASSWD) { if (options. flags & FLG_SHOW_CHK) { options. loader. flags |= DB_CRACKED; ldr_init_database(&database, &options. loader); ldr_show_pot_file(&database, LOG_NAME); if ((current = options. passwd->head)) do { ldr_show_pw_file(&database, current->data); } while ((current = current->next)); printf("%s%d password%s cracked, %d left\n", database. guess_count ? "\n" : "", database. guess_count, database. guess_count ! = 1 ? "s" : "", database. password_count database. guess_count); return; } if (options. flags & (FLG_SINGLE_CHK | FLG_BATCH_CHK)) options. loader. flags |= DB_WORDS; else if (mem_saving_level) options. loader. flags &= ~DB_LOGIN; ldr_init_database(&database, &options. loader); if ((current = options. passwd->head)) do { ldr_load_pw_file(&database, current->data); } while ((current = current->next)); ldr_load_pot_file(&database, LOG_NAME); ldr_fix_database(&database); printf("Loaded %d password%s%s", database. password_count, database. password_count ! = 1 ? "s" : "", database. password_count ? "" : ", exiting.... "); if (database. password_count > 1) { printf(" with "); printf(database. salt_count ! = 1 ? "%d" : "no", database. salt_count); printf(" different salts"); } if (database. password_count) printf(" (%s [%s])\n", database. format->params. format_name, database. format->params. algorithm_name); else putchar('\n');
Страницы: 1, 2, 3, 4