Рефераты. Несанкционированный доступ к терминалам серверов с операционными системами семейства UNIX - (курсовая)

p>Если в РВС не предусмотреть контроля за маршрутом сообщения, то адрес отправителя сообщения оказывается ничем не подтвержденным. Таким образом, в системе будет существовать возможность работы от имени любого объекта путем указания в заголовке сообщения чужого адреса отправителя (IP Spoofing). В подобной РВС затруднительно определить, откуда на самом деле пришло сообщение, а следовательно вычислить координаты атакующего (в Internet невозможно найти инициатора однонаправленной удаленной атаки).

    · Отсутствие полной информации об объектах РВС

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

     
    · Отсутствие криптозащиты сообщений

В распределенных ВС связь между объектами системы осуществляется по виртуальным каналам связи, а следовательно, хакер имеет принципиальную возможность прослушать канал, получив несанкционированный доступ к информации, которой обмениваются по сети се абоненты. Если эта информация не зашифрована, то возникает угроза атаки типа“анализ сетевого трафика”.

· Отсутствие выделенного канала связи между объектами сети 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



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.