Програмата Trust-No-Exe

В Windows има много начини, чрез които да наложите разнообразни рестрикции спрямо потребителите. Основната цел е да не позволим на ползвателите имда нарушат нормалната работа на операционната система (учебни компютърни кабинети, компютърни зали). Най-често срещаният подход е потребителите да бъдат членове на локалната група “Users”, което означава, че те имат минимални права спрямо системата (т.нар. Limited Users).
Оказва се обаче, че някои злободневни програми въобще не изискват административни привилегии, за да бъдат инсталирани, въпреки наложените рестрикции. В определени случаи тези приложения се стартират след просто копиране на програмните им файлове. Примерите са много: ICQ, Skype, mIRC и т.н.
Резултатът от подобни своеволия/експерименти почти винаги завършвас…преинсталация на Windows.

Точно тук идва на помощ една малка, но хитра програмка, коятоможе да блокирастартирането на всички изпълними файлове независимо от тяхното разширение (!!!):.exe .com .dll .drv .sys .dpl и т.н.на базата на местоложението на файловетев различнитепапки. Програмата се казва “Trust-no-exe” и можете да я свалите от ТУК.
Идеята е много проста: администраторът може да задава:

  • Списък с разрешени папки/файлове (Access List) – всички изпълними файлове в тези папки и прилежащите им подпапки могат да се стартират свободно
  • Списък със забранени папки/файлове (Deny List) – файловете в тези папки биват блокирани със съобщение, подобно на това от фигура 1.


Фигура 1

Забележка:
Ако даден файл се намира в папка, която не е записана в Access List частта, то тя по подразбиране бива блокирана (т.е. не е необходимо да дефинирате изрично файла или неговата папка в списъка Deny List)

Как действа?
Trust-no-exe инсталира kernel mode драйвер и се “прикача” към функцията, отговорна за зареждането и стартирането на всички изпълними файлове (Create Section API) БЕЗ значение от разширението (!!!). При изпълнението на въпросната функция от ниско ниво Trust-no-exe прави проверка дали файлът се намира в разрешения или забранения списък. Ако всичко е наред – програмата се изпълнява. В противен случай манипулаторът на файла (т.нар. handle) се подменя с този на програмата “%systemroot%\system32\trustnoexe\denyexe.exe”, която се изпълнява и изписва съобщението от фигура 1. Подават й се няколко параметъра. Единият от тях е пълния път до блокирания файл. Този подход Ви позволява да напишете собствена Win32 програма, която освен да извежда съобщение може да изпраща e-mail до администратора или да записва някъде името на блокирания файл, часа, датата, името на компютъра и потребителя, който я е стартирал.

Защо тази програма е полезна?
Защото тя въвежда липсваща на този етап функционалност в Windows
*

– блокиране на всички изпълними файлове, без значение от разширението и без значение дали се намират на дискета/компакт диск или FLASH устройство.
Практическо приложение?
Вирусите. Тези малки и неприятни програми, които правят толкова много поразии. Чрез Trust-no-exe можете значително да намалите рискът от заразяване. Защо? Ако правилно организирате списъка с разрешени и забранени папки/файлове потребителите трудно биха стартирали заразена програма. Най-малкото ще им се наложи да я преместят в “разрешена” папка. Това от своя страна ще доведе до сканиране н копирания файл от антивирусната програма и ще бъде сложен под карантина още преди да бъде стартирана. Типичен пример е стартирането на програма директно от Internet Explorer (той записва файла във временна папка в “%SystemDrive%\Documents and Settings\%username%\Local Settings\Temporary Internet Files”, а по подразбиране тази папка не е в разрешения списък).

* В интерес на истината може да се постигне подобен ефект и чрез Group Policy, но възможностите са доста по-ограничени.

Конфигуриране:

1. Влезте в компютъра с потребител, който има административни права;

2. Свалете (от тук)и инсталирайте програмата Trust-no-exe;

3. Направете нужната конфигурация внимателно. След инсталирането по подразбиране са добавени основни папки, без които trust-no-exe би блокирала и важни за зареждането на операционната система файлове

4. Ако желаете задайте текста на съобщението, което искате потребителя да види, когато Trust-no-exe блокира изпълним файл.

5. Стартирайте услугата чрез бутона Start (това се прави еднократно. След стартиране/рестартиране на компютъра програмата се зарежда автоматично);

6. Тествайте работоспособността на Trust-no-exe, като стартирате произволен изпълним файл, който се намира извън доверените папки.

Забележки:

  • Добре би било да рестартирате компютъра, за да видите дали операционната система се зарежда нормално. Ако имате проблеми при зареждането на ОС (най-често син екран /BSoD/) следвайте инструкциите от файла с указанията за използване на Trust-no-exe.
  • Ако станциите са част от домейн (domain) има една особеност. В такива случаи при стартирането на Windows се прилагат т.нар. групови политики (group policies), които може директно или индиректно да стартират скрипт за конфигурация. Трябва изрично да укажете пътищата до всички скриптове, които се зареждат чрез списъка Access List в UNC формат:\\име-на-сървър\папка\подПапкаили за конкретен скрипт:
  • Ако искате да добавите файл или папка от назначено устройство (mapped drive) в Access List или Deny List трябва да укажете пълния UNC път. ПРИМЕР:
    Имате назначено устройство с буквата
    H: , което сочи към споделената папка: \\myServer\users\programs. В тази папка имате програма с име Programa1.exe. Тогава в избрания от Вас списък въвеждате:

Правилно:
\\myServer\users\programs\Programa1.exe
[за конкретен файл!]
\\myServer\users\programs [за цяла папка!]

Неправилно:
H:\Programa1.exe
H:\

Фигура 2

Подробноуказание за използване (на английски) можете да намерите ТУК.

Пример за използване:

1. Определете папка, в която ще се инсталират всички използвани от потребителите програми. Обикновено това е: “%systemdrive%\Program Files”. По подразбиране тази папка е добавена автоматично в Access List на програмата;

2. Определете програмите, които са инсталирани извън “Program Files” и задайте техните папки в Access List. Пример за такива програмиса Borland Pascal / Borland C++ за ДОС;

3. Създайте папка, в която потребителите ще свалят файлове от Интернет или от други носители. Инструктирайте всички да я използват при изтегляния на файлове;

4. Създайте папка, чиято цел ще бъдечисто административна. Задайте я в Safe List. Условно ще наречем тази папка “Инсталационна директория”. Дефакто инсталирането на софтуер може да стане само ако стартирате SETUP-а на програмата от въпросната “Инсталационна директория”
Идеята по-просто: ако искате да инсталирате някаква програма, просто копирайте инсталационния файл в нея и го стартирайте от там. Ако не искате други потребители да използват тази папкаможете да я защитите чрез задаване на съответните права за достъп чрез Properties->Security (дисковият дял, където се намира директорията трябва да еNTFS!!!)

5. Наслаждавайте се на ефекта 🙂

2 thoughts on “Програмата Trust-No-Exe

  1. Pingback: Още патила с атаки по сигурността на уиндоус « Блог на Zelenkroki

Leave a Reply

Your email address will not be published. Required fields are marked *

*