Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

Re: lug-bg: Софтуер за следене на файлове


  • Subject: Re: lug-bg: Софтуер за следене на файлове
  • From: Vesselin Kolev <vlk@xxxxxxxxxxxxxxxxx>
  • Date: Mon, 14 Mar 2005 12:49:59 +0200

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hristo Erinin wrote:

| Здравей,
|
| Тъй като в описаната процедура не споменаваш рестартиране на
| системата и използване на гарантирано чисто ядро, то приемам, че
| такава операция не се предвижда. Коментарите по-долу са на база на
| това предположение.
|
|
|
Дължа извинения за неточното и непълно написано писмо под влияние на
поне няколко външни фактора, които няма да споменавам.

За това сега сядам и пиша подробно и прегледно.

***

Внимание! Този документ обобщава опит за RPM базирани системи. Ако
системата ви не е такава, не си губете времето да го четете.

Първо, постановката на задачата: иска се да се направи алгоритъм, по
който да може да се разбере дали файлове от инсталираните пакети са
били модифицирани или не.

Второ, предлаганата от мен схема на разследване: почива на използване
на особеностите на пакетната система RPM. При това предполагаме, че
всички бинарни и др. файлове, които може да са обект на интерес за
модифициране са инсталирани от пакети и записи за тях са налични в
локалната база на пакетната система. Ако на мен ми се налага да
инсталирам нещо, което го няма в официалните пакети, изграждам RPM
пакет и го подписвам. Това е правилния начин. Дори неща от рода на
отделни скриптове не е проблемно да се инсталират на RPM пакет с
подписи. Всякакви самоделки от рода на "make" и "make install" изобщо
не отговарят на стратегията за построяване на сигурна система. Освен
ако не си направите още по-самоделна система да подписвате
продуцираните файлове. Истината е, че при пакетна система, която
почива на електронно подписване има гъвкавост - при остраняване или
прибавяне на пакет се опреснява базата с данни и не ви се налага да
пипате другаде.

Тук някои хора с 200 годишно родословно дърво описаха как щяли да
създадат база с хешове и да я криптират. Целта е тази база да е
ПОДПИСАНА, а не криптирана. Ужасявам се как хората не искат да се
научат на елементарни неща.


Защо разследването не може да се извърши върху "жива" система (т.е.
защо ни е да е рестартираме и от диск да зареждаме rescue версия от
CD-ROM или USB)?

Причините са много. Ако са засегнати системни библиотеки е на практика
невъзможно да се установи модифицирането им.

Ето ви примерче. Носите си на дискета инструмента md5sum и/или sha1sum
и на лист хешовете на всички библиотеки. И рзчитате като изпълните
тези инструменти от дискетата те да дадат верен резултат. Всичко би
било прекрасно, но тези инструменти не четат директно информацията от
файловата система. Потока се подава от библиотеките н а glibc. Няма
проблеми те да се модифицират така, че при поискване за прочит на
някоя библиотека, да бъде подавана немодифицираната й версия (скрита
някъде по файловата система), а при изпълнение да се изпълнява
модифицираната. Така чрез sha1sum или md5sum вие ще получите
информация, че библиотеката е немодифицирана, но това няма да е така.


Ето и сценария на проверката.

1) Рестартиране
2) Зареждане на rescue версията

След като се изпълни втората стъпка, няма да изпълним "chroot
/mnt/sysimage", а ще оставим нещата така. В rescue версията имаме
инструмента rpm. Сега трябва да направим така, че да проверим
ключовете в базата. Това значи, че предварително в паметта трябва да
заредите (може и от дискета, може и през SSH) сертификатите, които ще
се ползват за проверка на подписите върху пакетите. След това следва
проверка на сертификатите в базата, която се намира в
/mnt/sysimage/var/lib/rpm:

# rpm -q gpg-pubkey --root /mnt/sysimage
gpg-pubkey-db42a60e-37ea5438
gpg-pubkey-4f2a6fd2-3f9d9d3b
gpg-pubkey-30c9ecf8-3f9da3f7
gpg-pubkey-e42d547b-3960bdf1
gpg-pubkey-6b8d79e6-3f49313d
gpg-pubkey-1aa78495-3eb24301
gpg-pubkey-b56a8bac-3bbc4d06
gpg-pubkey-66534c2b-3e60b428
gpg-pubkey-6b8d79e6-3f49313d
gpg-pubkey-1aa78495-3eb24301
gpg-pubkey-8df56d05-3e828977
gpg-pubkey-e42d547b-3960bdf1
gpg-pubkey-ff6382fa-3e1ab2ca
gpg-pubkey-a109b1ec-3f6e28d5
gpg-pubkey-b8693f2c-3f48c249
gpg-pubkey-1ac70ce6-41bebeef

Сега трябва да проверите всеки от тези сертификати един по един. Първо
ги извличате. Ето пример:

$ rpm -q gpg-pubkey-db42a60e-37ea5438 --info --root /mnt/sysimage
Name        : gpg-pubkey                   Relocations: (not relocatable)
Version     : db42a60e                          Vendor: (none)
Release     : 37ea5438                      Build Date: Tue 23 Nov
2004 05:05:00 PM EET
Install Date: Tue 23 Nov 2004 05:05:00 PM EET      Build Host: localhost
Group       : Public Keys                   Source RPM: (none)
Size        : 0                                License: pubkey
Signature   : (none)
Summary     : gpg(Red Hat, Inc <security@xxxxxxxxxx>)
Description :
- -----BEGIN PGP PUBLIC KEY BLOCK-----
Version: rpm-4.3.2 (beecrypt-3.0.0)

mQGiBDfqVDgRBADBKr3Bl6PO8BQ0H8sJoD6p9U7Yyl7pjtZqioviPwXP+DCWd4u8HQzcxAZ5
7m8ssA1LK1Fx93coJhDzM130+p5BG9mYSWShLabR3N1KXdXQYYcowTOMGxdwYRGr1Spw8Qyd
LhjVfU1VSl4xt6bupPbWJbyjkg5Z3P7BlUOUJmrx3wCgobNVEDGaWYJcch5z5B1of/41G8kE
AKii6q7Gu/vhXXnLS6m15oNnPVybyngiw/23dKjSZVG7rKANEK2mxg1VB+vc/uUc4k49UxJJ
fCZg1gu1sPFV3GSa+Y/7jsiLktQvCiLPlncQt1dV+ENmHR5BdIDPWDzKBVbgWnSDnqQ6KrZ7
T6AlZ74VMpjGxxkWU6vV2xsWXCLPA/9P/vtImA8CZN3jxGgtK5GGtDNJ/cMhhuv5tnfwFg4b
/VGo2Jr8mhLUqoIbE6zeGAmZbUpdckDco8D5fiFmqTf5+++pCEpJLJkkzel/32N2w4qzPrcR
MCiBURESPjCLd4Y5rPoU8E4kOHc/4BuHN903tiCsCPloCrWsQZ7UdxfQ5LQiUmVkIEhhdCwg
SW5jIDxzZWN1cml0eUByZWRoYXQuY29tPohVBBMRAgAVBQI36lQ4AwsKAwMVAwIDFgIBAheA
AAoJECGRgM3bQqYOsBQAnRVtg7B25Hm11PHcpa8FpeddKiq2AJ9aO8sBXmLDmPOEFI75mpTr
KYHF6rkCDQQ36lRyEAgAokgI2xJ+3bZsk8jRA8ORIX8DH05UlMH27qFYzLbT6npXwXYIOtVn
0K2/iMDj+oEB1Aa2au4OnddYaLWp06v3d+XyS0t+5ab2ZfIQzdh7wCwxqRkzR+/H5TLYbMG+
hvtTdylfqIX0WEfoOXMtWEGSVwyUsnM3Jy3LOi48rQQSCKtCAUdV20FoIGWhwnb/gHU1BnmE
S6UdQujFBE6EANqPhp0coYoIhHJ2oIO8ujQItvvNaU88j/s/izQv5e7MXOgVSjKe/WX3s2Jt
B/tW7utpy12wh1J+JsFdbLV/t8CozUTpJgx5mVA3RKlxjTA+On+1IEUWioB+iVfT7Ov/0kcA
zwADBQf9E4SKCWRand8K0XloMYgmipxMhJNnWDMLkokvbMNTUoNpSfRoQJ9EheXDxwMpTPwK
ti/PYrrL2J11P2ed0x7zm8v3gLrY0cue1iSba+8glY+p31ZPOr5ogaJw7ZARgoS8BwjyRymX
Qp+8Dete0TELKOL2/itDOPGHW07SsVWOR6cmX4VlRRcWB5KejaNvdrE54XFtOd04NMgWI63u
qZc4zkRa+kwEZtmbz3tHSdRCCE+Y7YVP6IUf/w6YPQFQriWYFiA6fD10eB+BlIUqIw80Vgjs
BKmCwvKkn4jg8kibXgj4/TzQSx77uYokw1EqQ2wkOZoaEtcubsNMquuLCMWijYhGBBgRAgAG
BQI36lRyAAoJECGRgM3bQqYOhyYAnj7hVDY/FJAGqmtZpwVp9IlitW5tAJ4xQApr/jNFZCTk
snI+4O1765F7tA==
=3AHZ
- -----END PGP PUBLIC KEY BLOCK-----

Подавате изхода към файл в /tmp (а не в /mnt/sysimage/tmp) и после с
помощта на gpg сравнявате fingerprint на изтегления от базата ключ с
този, който имате на вашия носител. Ако те съвпаднат, значи всичко е
наред и няма подхвърлени сертификати. Вижте дали няма и сертификати,
който не би трябвало да бъдат там. Трябва внимателно да следите какви
сертификати се слагат в базата на RPM.

След това всичко е лесно. Следвайте модела посочен тук:

http://hardtrance.blogspot.com/2005/01/rpm-openpgp-3.html

и автоматизирайте по ваш вкус (за всички пакети в базата). После
анализирайте получените резултати. Ако намерите подменнен пакет.
Подменете го.

По-подробно описание можете да намерите и в другите две части на
посочения по-горе модел:

http://hardtrance.blogspot.com/2004/12/rpm-openpgp-1.html
http://hardtrance.blogspot.com/2004/12/rpm-openpgp-2.html

~  Поздрави
~    Весо

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iQIVAwUBQjVsV7afyWmgOHdbAQKfZg//Z4G5WqPAyFfqaCVhK64sAOCJkg2SNXkp
pFJ7YFK0LodYX/BSTpUWmrfTAoCrxisx8fWBXAVkMesTdakyw84Mhk66nhXEIUeZ
V0mIJrisAGj0+mj5rlH0ZYWSYx1wpCWF3kfR9hgZtjBbR6QRYkD/xFOZV0xphNL/
VIyA54ZSddxdEsQk0cVTHaScdoKnQMx7ZJYa27SfqyUOEk4kyG6i8bRjRAg7yNYf
vjm/fU5hRsE78B2dYpheKDewI0ikzuNjBBd5liCgdDQ6wnQ01vcjHTAwl8RTjlJH
dJBS4r8K1Gyv+BBrHdHnuIvOshdEKfIJjadsUPZCtOWvTk1KH1p0y4pBfABsqEDn
Xmsv8rUrulRyYq57nM+Wwu5daRL9UBhemYLF4uP26vE6qAKAYp6T38qgrVuP4XPa
cYlU415RBBQKW3iC6PnDJSzJa7lY8p2pepxpN2MMiO3e971NQOCcxIOUNgz6hscY
op4PHuAw0HUsR8TV6yMxDKBKSLTWyIU52o6sBk9XMoU80l50L9bupVOWkNS5MG2T
MGv1M9Sk63xsciBBuKxwx6mkkzwXYkwXEdJvKBDApG64ZcLoJ4F6289TfRThRXQG
mNV2/Ikzy2OXXtfcWQ7SBhCE26sZMQ+5wJSD3XCAhLJ1VzkpT7tCtNPAf0M/foh9
iEbh7nrqmt4=
=zft5
-----END PGP SIGNATURE-----

============================================================================
A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers).
http://www.linux-bulgaria.org - Hosted by Internet Group Ltd. - Stara Zagora
To unsubscribe: http://www.linux-bulgaria.org/public/mail_list.html
============================================================================



 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.