@домівка Віктора Чмеля

 
 [Головна / Нотатки консультанта]

Частота вживання літер в англійській, українcькій та російській мовах

Левова доля зашифрованих простими програмами текстів розшифровується на основі інформації про частоту вживання літер в тих чи інших мовах. Подаю тут довідкову інформацію актуальну для українських криптоаналітиків. Джерела інформації наступні:

Таблиця частоти вживання літер

 ENG %  UKR %  RUS %

E 13 О 9,2708 О 11,35
T 10,5 А 8,0737 Е 8,93
A 8,1 Н 7,3016 А 8,23
O 7,9 И 6,2861 Н 6,71
N 7,1 І 5,8581 И 6,48
R 6,8 Р 5,4299 Т 6,17
I 6,3 В 5,3167 С 5,22
S 6,1 Т 5,2313 Л 4,95
H 5,2 Е 4,6585 В 4,47
D 3,8 С 4,3583 Р 4,17
L 3,4 К 3,8076 К 3,35
F 2,9 Л 3,4471 Д 2,97
C 2,7 Д 3,2636 М 2,93
M 2,5 У 3,2333 У 2,86
U 2,4 П 3,1671 П 2,39
G 2 М 3,1181 Я 2,17
P 1,9 З 2,0298 Ь 2,09
Y 1,9 Я 2,0034 Ы 1,9
W 1,5 Ь 1,883 Г 1,811
B 1,4 Г 1,6405 Б 1,77
V 0,9 Б 1,4922 Ч 1,67
K 0,4 Ч 1,2387 З 1,65
X 0,15 Х 1,1229 Ж 1,14
J 0,13 Й 1,1123 Й 1,09
Q 0,11 Ц 0,979 Ш 0,89
Z 0,07 Ю 0,8894 Х 0,79
Ж 0,827 Ю 0,66
Ї 0,7679 Э 0,33
Ш 0,738 Ц 0,29
Є 0,5869 Щ 0,29
Ф 0,364 Ф 0,1
Щ 0,2238 Ъ 0,02
- 0,1762
' 0,1032

Всю цю радість можна зкачати в одному CSV-файлі - letters_stat.csv.

Viktor V. Chmel, 3/31/2004 01:41:00 PM. 0 коментарів. Продивитись/додати свій

Установка DrWeb на поштовий сервер sendmail під FreeBSD


@ Задача: Перевірка вхідної/вихідної пошти на віруси. Sendmail стоїть на FreeBSD-сервері.


В принципі достатньо гарно весь процес установки описано в оригінальній документації, але певні труднощі все ж таки виникли. Про них і буде написано. Треба уявляти роботу Sendmail, структуру його конфігураційних файлів, та схему роботи поштових фільтрів (див. Milter), бо саме в такій якості "прикручується" антивірус Dr. Web для Linux и FreeBSD. Хоча цілком достатьно інформації в FAQ та README файлах drwebd та drweb-smf.


Програмні компоненти:


  1. поштовий сервер Sendmail з підтримкою MilterAPI. Як перевірити цю підтримку? Ну, от щось таке має бути:


    %grep filter /etc/mail/sendmail.cf
    # Input mail filters
    # O InputMailFilters=

    Якщо цього немає - дивись детальніше Makefile за допомогою якого збирався sendmail (в /usr/src/contrib/sendmail або /usr/ports/mail/sendmail) або його README/INSTALL. В FreeBSD-stable на момент написання була версія з необхідною підтримкою.
  2. DrWeb-сканер. Качається разом з демо-ключиком з рідного сайту. Я ставив Dr. Web 4.31.2 для FreeBSD 4.x.

  3. DrWeb-фільтр (drweb-sendmail-4.31-freebsd4). Береться в тому ж самому місці.



Інсталяція демона-сканера (drwebd) так і sendmail-фільтра для нього (drweb-smf) особливих проблем не викликали. Переконайтесь, що після інсталяції сканер ловить тестовий "вірус" readme.eicar за допомгою локального сканування відповідної директорії.


host# /usr/local/drweb/drweb -path=/usr/local/drweb/doc
-- skip --
/usr/local/drweb/doc/readme.eicar infected with EICAR Test File (NOT a Virus!)
-- skip --


Вибір моделі взаємодії 3-х програм: sendmail, drweb-smf, drwebd. Існує два варіанти: TCP/IP сокети (для випадку, коли програми знаходяться на різних машинах), та UNIX-сокети (міжпроцесова взаємодія через спеціальні локальні файли). Я вибрав другий варіант, як найбільш безпечний для перевірки пошти, що відправляється з/на дану машину. Все ж таки відсутність зайвих дірочок в обороні - одне з правил захисту. Отже, для будь-якого варіанту потрібно визначити 2 зв"язки:


+----------+ +------------------------+ +--------+
| sendmail |<---->| milter-api | drweb-smf |<---->| drwebd |
+----------+ ^ +------------------------+ ^ +--------+
1 2

В моєму випадку це локальні файли-сокети:

1 - /var/drweb/run/drwebd.skt та

2 - /var/drweb/run/drweb-smf.skt

Створювати їх не потрібно їх потрібно описати в конфігах. Отже, поїхали.



Настройка sendmail робилась трохи неканонічним чином: редагуванням файлів /etc/mail/sendmail.cf та /etc/mail/submit.cf, замість редагування відповідних *.mc-файлів та генерації *.cf за допомогою процесора m4(1), як радить більшість посібників. Але радити - це одне, а жити за цими порадами - зовсім інше. Отже в секції "Input mail filter" пишемо наступне:


############################
# Input mail filters
############################
O InputMailFilters=drweb-filter

O Milter.LogLevel=6
O Milter.macros.envfrom=i
O Milter.macros.connect=_

в секції "Xfilters":

############################
# Xfilters
############################
Xdrweb-filter, S=local:/var/drweb/run/drweb-smf.skt, F=T, T=C:1m;S:5m;R:5m;E:1h

Докладніше див. /usr/local/drweb/doc/sendmail/readme.rus.



Настройка drwebd-демона робитсья через файл /usr/local/etc/drweb32.ini. Різноманітні налаштування того що і як перевіряти, і що з ним потім робити - до ваших послуг, хоча з демо-ключиком вибір невеликий ;) (докладніше див. /usr/local/drweb/doc/readme.daemon.rus). Нас цікавить взаємодія плюс робота демона з правами юзера drweb, а саме:


;--- Communication settings: ---
Socket = /var/drweb/run/drwebd.skt 666

-- skip --

;--- User settings: ---
User = drweb



Налаштування фільтру - файл /usr/local/etc/drweb_smf.conf в якому на відміну від попередніх файлів вказуються дві адреси, бо власне фільтр виступає зв"язуючою ланкою між двома іншими програмами:


#########################
# Communication section #
#########################
[DaemonCommunication]
Address = local:/var/drweb/run/drwebd.skt


########################
# Scan options section #
########################
[Scanning]
-- skip --
# User account used by filter
FilterAccount = drweb


################################
# Mail system settings section #
################################
[Mailer]
-- skip --
MilterAddress = local:/var/drweb/run/drweb-smf.skt

Більш докладно див. /usr/local/drweb/doc/sendmail/readme.rus.



Створюємо користувача drweb з такими параметрами:


host# grep drweb /etc/passwd /etc/group
/etc/passwd:drweb:*:1005:1005:DrWeb antivirus:/nonexistent:/sbin/nologin
/etc/group:drweb:*:1005:

і надаємо йому доступ до директорії /var/drweb:

chown -R drweb /var/drweb



Для правильного запуску фільтра при завантаженні системи за допомогою bash-скрипта /usr/local/drweb/doc/sendmail/configure генерується скрипт /usr/local/etc/rc.d/01drweb-sendmail.sh. Треба акуратно відповісти на його запитання і правильний запуск вам гарантовано. Скрипт для демона drwebd /usr/local/etc/rc.d/00drwebd.sh кладеться туди ще при його(демона) інсталяції.


host# cd /usr/local/drweb/doc/sendmail/
host# bash ./configure



Перевірка роботи була проста:


%>mail admin < eincar.com

Але як виявилося це шлях не вірний !!!. Відправляти листа з вірусом треба не як plain-text, а як дійсно як вкладення. Інакше антивірус вважає це просто тілом листа, а код віруса - звичайним текстом і не спрацьовує. Як це зробити з командного рядка - я чесно кажучи не хотів копати, лише знаю, що це можливо.


Мій варіант перевірки хтось буде вважати стріляниною з гармати по горобцях, але тестова машина на якій робилося все, що тут описано, було оточена релеями на яких вже стояли антивіруси, і просто прислати листа з будь-якого публічного мейл-сервера було не можливо - він виловлювався по дорозі. Я зробив так: встановив X-Window, і під неї з портів поштового клієнта Sylpheed-Claws, який працює з локальною поштовою скринькою. Відіслав сам собі листа з вкладеним вірусом і логи показали


%>tail /var/drweb/log/drwebd.log

що система нарешті працює!



Подальша настройка фільтра вже має підганятися під конкретну ситуацію вашу чи ваших клієнтів.


Viktor V. Chmel, 3/09/2004 08:42:00 PM. 0 коментарів. Продивитись/додати свій

Перевірка версії sendmail

У демона поштового сервера sendmail не має ключика -v чи --version. А іноді версію узнати якось потрібно. Ось декілька з нелобових методів.

Варіант 1. З"єднання на SMTP-порт сервера дає всю необхідну інформацію:

%telnet localhost 25
Trying 127.0.0.1...
Connected to one.domen.com.
Escape character is '^]'.
220 one.domen.com ESMTP Sendmail 8.12.11/8.12.9; Tue, 9 Mar 2004 16:55:21 +0200 (EET)
quit
221 2.0.0 one.domen.com closing connection
Connection closed by foreign host.

Де 8.12.11 - це версія сервера, а 8.12.9 - його конфігураційного файла.

Варіант 2. Аналогічно версію поштаря можна визначити по листу через нього надісланого чи прийнятого (див. поле Received серед заголовків електронного листа):

From i2k34@univ.kiev.ua Wed Mar 03 18:13:24 2004
Return-path:
Received: from boy.univ.kiev.ua ([193.125.78.122] helo=mail.univ.kiev.ua)
by mx-1.ukr.net with esmtp ID 1AyYzq-0002GP-N5
for sdfg@ukr.net; Wed, 03 Mar 2004 18:13:23 +0200
Received: from mail.univ.kiev.ua (localhost [127.0.0.1])
by mail.univ.kiev.ua (8.12.2/8.12.2) with ESMTP id i23GDKVd042134
for ; Wed, 3 Mar 2004 18:13:20 +0200 (EET)
Received: (from httpd@localhost)
by mail.univ.kiev.ua (8.12.2/8.12.2/Submit) id i23GDKEu042133;
Wed, 3 Mar 2004 18:13:20 +0200 (EET)
Date: Wed, 3 Mar 2004 18:13:20 +0200 (EET)


Варіант 3. Однією командою:


%sendmail -d0.1 -bt < /dev/null
Version 8.12.11
Compiled with: DNSMAP LOG MAP_REGEX MATCHGECOS MILTER MIME7TO8 MIME8TO7
NAMED_BIND NETINET NETINET6 NETUNIX NEWDB NIS PIPELINING SCANF
TCPWRAPPERS USERDB XDEBUG

============ SYSTEM IDENTITY (after readcf) ============
(short domain name) $w = ib
(canonical domain name) $j = ib.sid.sas.com
(subdomain name) $m = sid.sas.com
(node name) $k = ib.sid.sas.com
========================================================

ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter

Viktor V. Chmel, 3/09/2004 01:59:00 PM. 5 коментарів. Продивитись/додати свій

 

[Головна / Нотатки консультанта] Last update:

Copyright © Чмель Віктор, , 2001-2004

Hosted by uCoz