Наприклад, хтось створює підроблений діалоговий вікно Authenticate, щоб отримати мій пароль root. Як дізнатися, справжній він чи підроблений?
Наприклад, хтось створює підроблений діалоговий вікно Authenticate, щоб отримати мій пароль root. Як дізнатися, справжній він чи підроблений?
Відповіді:
Таким чином, ви [ймовірно] дивитесь на підказку про ескалацію PolicyKit там. Будь-хто без когось із тих, хто хоче пограти, може просто побігти pkexec echo
(або щось подібне), і вони отримають щось подібне.
Ну, ви можете отримати інформацію про Window з, xprop
і ви можете отримати інформацію команд, ps
так що давайте об'єднаємо їх! Перш ніж ми проправляємось, тому що ми тут супер-параноїчні, я використовую повні шляхи на випадок, якщо хтось додав локальну злому копію будь-якої з цих команд. Ось я запускаю його на своїй pkexec echo
коробці:
$ /bin/ps $(/usr/bin/xprop _NET_WM_PID | /usr/bin/awk '{print $NF}')
PID TTY STAT TIME COMMAND
3989 ? Sl 0:00 /usr/lib/kde4/libexec/polkit-kde-authentication-agent-1
Наскільки ми можемо сказати (зауважимо, що я користувач KDE), це законний підказ. Це не запущений локальний сценарій, доки щось зло вже не вкоренило систему (але ей, навіщо їм знову потрібен наш пароль?), Ми, ймовірно, в безпеці.
І у випадку gksu
, kdesu
і pkexec
в підказках досить чітко про те, що вони збираються запускати. У випадку з першими двома командою вище буде сказано, що вони планують виконувати:
$ /bin/ps $(/usr/bin/xprop _NET_WM_PID | /usr/bin/awk '{print $NF}')
PID TTY STAT TIME COMMAND
10395 ? Sl 0:00 /usr/lib/kde4/libexec/kdesu -u root -c /usr/sbin/synaptic
У випадку PolicyKit ви можете натиснути на вкладку деталі, і ви побачите, який дозвіл він хоче виконати. У KDE ви також побачите PID абонента, який можна переглянути ( ps <PID>
). Ось як це виглядає в KDE:
Ви можете навести курсор на дію та отримати політику PolicyKit, яку він хоче виконати. У Ubuntu політика відображається за замовчуванням. Ці політики можна переглянути. Наведене вище походить від /usr/share/polkit-1/actions/org.kubuntu.qaptworker2.policy
послуги, зазначеної в /usr/share/dbus-1/system-services/org.kubuntu.qaptworker2.service
. Ви можете бачити, що працює і ким. І ці сервіси можна знову додати лише корінь, якщо ви вже не вкорінені, ви можете їм довіряти.
PolicyKit має ці правила та послуги, тому вибрані дії можна виконувати як корінь без необхідності запускати весь цей процес. Вам потрібно бути пильним. Очевидно, якщо ви біжите gnome-calculator
і org.freedesktop.policykit.exec
підскакує підказка, щось хитне.
Це може бути не що інше, як вивчити, перш ніж вставити пароль. Після того як буде занадто пізно.
І навіть якщо це все законно, хто скаже, що у вас немає кейлоггера, який би вкрав усі ваші паролі? Або щось переважаюче $PATH
або що вбрало у вас щось жахливе, ~/.bashrc
що робить його схожим на те, що вас не зламали? Я досить впевнений, що при достатній концентрації ви можете обійти всі описані вище процедури.
Добре спите.
tripwire
може допомогти перевірити справжність файлу, але їх слід встановити дуже рано.