Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Автоматическая блокировка и взлом компьютера

Оригинал: Hack and /: Automatically Lock Your Computer
Автор: Kyle Rankin
Дата публикации: 5 апреля 2012 г.
Перевод: В. Семененко
Дата перевода: апрель 2012 г.

BlueProximity Если вам когда-либо приходилось работать вместе с любителями пошутить, то наверняка знаете о классической офисной шутке. Заключается она в следующем. Ничего не подозревающая жертва покидает свое рабочее место и уходит на ланч или на длительное совещание, оставив монитор своего компьютера незаблокированным. Шутник выполняет снимок экрана монитора жертвы, скрывает иконки и панели на Рабочем столе компьютера и заменяет фоновое изображение (обои) на только что выполненный снимок. Когда жертва возвращается и пробует вновь начать работу за своим компьютером, то видит следующую ситуацию - ни одна из иконок на Рабочем столе не работает, ни одна программа не запускается. После нескольких попыток понять, что произошло и не достигнув результата, жертва вызывает службу технической поддержки. В конце концов причина "поломки" найдена, шутник выявлен и все громко смеются - за исключением, возможно, жертвы, которая дает клятву с этого дня всегда блокировать экран монитора перед своим уходом.

Береженого Бог бережет

Не знаю, как вы, я но, даже не имея мысли о том, что когда-нибудь стану жертвой подобной шутки, всегда старался следовать хорошему правилу блокировать монитор перед своим уходом. Мне думается, чтобы такая привычка является хорошей предпосылкой в вопросе вашего отношения к безопасности. Более того, если вы работаете системным администратором, то по роду своей деятельности имеете доступ к конфиденциальным данным или системам. Не стоит слишком доверять своим сотрудникам, так как среди них всегда найдутся чем-либо недовольные, которые наверняка воспользуются удобным случаем в своих целях. В этой статье я собираюсь рассказать о простой программе, которая прекрасно справляется с задачей автоматического блокирования экрана монитора. В конце статьи я немного коснусь вопроса, как можно все-таки взломать компьютер, защищенный этой программой.

В каком бы графическом окружении я не работал, обычно я использовал стандартное сочетание клавиш "Ctrl-Alt-L" для блокировки монитора. Эта привычка так прочно засела у меня в мозгу, что каждый раз, когда я собирался вставать, мои пальцы автоматически блокировали экран с помощью этих клавиш. Этот способ работает надежно и просто. Но совсем недавно я нашел решение, как еще лучше выполнять автоматическую блокировку монитора, когда вы встаете из-за компьютера; более того, этот способ хорошо еще тем, что можно настроить автоматическую разблокировку компьютера, когда вы возвращаетесь на свое рабочее место.

Решение вопроса находилось рядом. Я помню, как Bill Childers, редактор журнала Linux Journal, примерно шесть лет назад демонстрировал мне подобный способ с помощью Bluetooth на компьютере Mac. Но тогда у меня не возникло желания написать соответствующий скрипт из-за путаницы с Bluez-утилитами под операционную систему Linux. И вот, сегодня я представляю вам простую программу, которую вы можете использовать для блокировки монитора посредством Bluetooth: BlueProximity.

Как работает программа BlueProximity

В основе работы программы заложена простая мысль о том, что почти все из нас постоянно носят с собой устройства с поддержкой Bluetooth - сотовые телефоны. Радиус действия Bluetooth у таких устройств ограничен, поэтому можно принять во внимание этот факт и исходить из предположения, насколько далеко находится сотовый телефон от компьютера - попадает ли он в радиус приема сигнала или нет. Работа программы BlueProximity основана именно на таком предположении - блокировать или разблокировать монитор, в зависимости от того, где находится телефон. Когда вы покидаете компьютер и уходите, сигнал Bluetooth постепенно становится все слабее по мере удаления, пока совсем не пропадает, и ваш компьютер блокируется. Когда вы возвращаетесь, сигнал становится все сильнее до тех пор, пока не заглушает все посторонние эфирные помехи и компьютер разблокируется.

Установка BlueProximity

Вы можете инсталлировать BlueProximity также, как любую другую программу в операционной системе Linux: с помощью менеджера пакетов. В моем случае пакет программы назывался просто blueproximity. Если по каким-либо причинам такого пакета нет в репозиториях вашего дистрибутива Linux, вы можете скачать пакет в исходном коде по адресу BlueProximity SourceForge и собрать на вашей системе. После успешной установки программу можно запустить двумя способами: набрав в терминале имя программы blueproximity или перейти в меню графического окружения, найдя в нем пиктограмму BlueProximity (в моем случае значок программы располагался в категории Accessories).

После запуска программы на панели появится ее пиктограмма, а на Рабочем столе откроется окно, которое должно выглядеть примерно так, как показано на Рисунке 1. BlueProximity для своей работы требует, чтобы устройство, которое вы собираетесь использовать, было уже сопряжено с компьютером. Поэтому, если ваш телефон (или любое другое устройство с поддержкой Bluetooth, которое вы хотите использовать), еще не был сопряжен, то выполните необходимые шаги перед запуском программы. В моем случае (операционная система Ubuntu) я сначала включил Bluetooth на своем телефоне и сделал его видимым для других устройств; затем перешел в меню операционной системы по пути "System > Preferences > Bluetooth", нажал кнопку поиска нового устройства и следовал пошаговым рекомендациям мастера настройки соединения.

Стандартное окно BlueProximity

Рисунок 1. Стандартное окно BlueProximity

После того, как сопряжение устройства и компьютера было установлено, вернитесь к основному окну программы BlueProximity (если вы успели ее уже открыть) и нажмите кнопку поиска устройств ("Scan for devices"). Процесс сканирования займет некоторое время, по истечении которого ваше найденное устройство появится в списке программы. На данном этапе вам осталось только выбрать его в этом списке и нажать кнопку "Use selected device" ("Использовать выбранное устройство"). Программа автоматически настроит его и подготовит к работе. Теперь можно закрыть BlueProximity, нажав кнопку "Close" в нижней части окна. На самом деле программа не закроется, а перейдет в свернутое состояние, обозначив это присутствием своего значка на панели задач.

Тонкая настройка BlueProximity

"Из коробки" программа BlueProximity использует настройки по умолчанию для определения, в какой момент блокировать монитор компьютера; однако, не существует одинаковых Bluetooth-устройств и я на личном опыте убедился, что телефоны имеют антенну с неодинаковой дальностью действия. Если вы обнаружите, что экран не блокируется, даже если вы ушли на достаточное расстояние от компьютера; или же, что экран блокируется, когда вы еще только встали со своего рабочего места, вам потребуется более точная настройка BlueProximity. Для этого перейдите на вкладку "Proximity Details", где можно установить порог срабатывания программы (см. Рисунок 2). На этой вкладке вы обнаружите множество различных ползунков. Слайдер Дистанция ("Distance") для блокировки ("Locking") и разблокировки ("Unlocking") служит для установки дистанции, на которой должно происходить срабатывание блокировки\разблокировки. Ползунок "Measured atm" показывает текущее расстояние от компьютера до вашего телефона, которое зафиксировала программа BlueProximity. Частота обновления сигнала составляет около одной секунды. С помощью этого слайдера вы можете проверить, насколько чувствительным является Bluetooth-адаптер, установленный на вашем компьютере. Ползунки "Duration" позволяют установить, как долго по времени телефон должен находиться на указанном расстоянии от компьютера, чтобы сработала блокировка или разблокировка последнего. Это особенно полезно при настройке секции "Locking", чтобы предотвратить случайную блокировку экрана при ошибочном сигнале.

Тонкая настройка BlueProximity

Рисунок 2. Тонкая настройка BlueProximity

Если в процессе работы программы вы заметили, что происходит слишком частая блокировка монитора, даже когда вы находитесь рядом, увеличьте дистанцию срабатывания с помощью ползунка "Distance". И наоборот, если разблокировка происходит только через некоторое время после того, как вы уже уселись перед компьютером, увеличьте дистанцию срабатывания для разблокировки и одновременно уменьшите время срабатывания "Duration". Только проверьте, чтобы дистанция разблокировки была больше, чем дистанция блокировки.

Системные программы блокировки экрана

По умолчанию, BlueProximity настроена на использование команды gnome-screensaver, которая является стандартным блокировщиком экрана в Gnome. Если вы используете Gnome, но все будет прекрасно работать без дополнительных настроек. Но если у вас другое Desktop-окружение, то вам потребуется выполнить еще несколько действий. В окне программы BlueProximity перейдите на вкладку "Locking" (см. Рисунок 3), где можно изменить системную команду, используемую для блокировки\разблокировки экрана. Выбором по умолчанию в ниспадающем списке являются две утилиты: gnome-screesaver и xscreensaver. Но вы можете добавить любой скрипт вместо них. Например, вы можете написать bash-скрипт, который будет не только блокировать экран монитора, но также использовать сигнал DBUS для остановки проигрывания музыки. И точно такой же скрипт для обратных действий - по вашем возвращении монитор разблокируется и музыка вновь заиграет.

Окно настройки системной команды

Рисунок 3. Окно настройки системной команды

Взлом BlueProximity

Безопасность часто идет на компромисс с удобством работы. Программа BlueProximity интересна в том плане, что пытается повысить безопасность вашей работы на компьютере (путем автоматического блокирования его монитора); и одновременно старается придать работе большее удобство, автоматически разблокируя монитор по вашем возвращении. Однако, такое удобство может сослужить плохую службу, предоставив возможность для атаки. Как уже упоминалось, BlueProximity и протокол Bluetooth значительно затрудняют проникновение на компьютер, так как программа разрешает блокировку с помощью только одного устройства, подключенного на данный момент. Вы можете подумать, что можно попытаться взломать такую защиту путем подмены MAC-адреса телефона жертвы и прописывании его на своем собственном Bluetooth-устройстве. Но если это и можно выполнить, не забывайте о том факте, что в процессе спаривания оба устройства обмениваются секретными ключами, которые используются в дальнейшем для шифрования соединения. Поэтому, даже если вам удастся выполнить подмену MAC-адреса жертвы (так называемый MAC-spoofing), компьютер не подключит ваше устройство, так как вы не знаете этой пары секретных ключей. Andrew Y. Lindell на Blackhat 2008 (прим. переводчика: Black Hat Conference - конференция по компьютерной безопасности, объединяющая как хакеров, так и специалистов по безопасности) продемонстрировал следующую уязвимость. Если в момент спаривания устройств удастся выполнить сниффинг самой процедуры обмена ключами, то имеется возможность получения этих ключей. И даже если в момент спаривания устройств по протоколу Bluetooth ключей получить не удалось, существует возможность принудительно заставить устройства произвести заново этот процесс в любой удобный для атаки момент.

Такая атака является достаточно изощренной и трудно выполнимой. Существует другой и более простой способ. Достаточно попросить телефон жертвы якобы для того, чтобы позвонить с него; или же попытаться проникнуть в программу, когда хозяин компьютера не находится за рабочим местом. В обоих случаях - кражи телефона или взлома самой программы - BlueProximity ничего не может противопоставить в защиту. Однако, в нашей статье идет речь о безопасности работников офиса. Поэтому, если у вас есть опасения, что ваши коллеги могут настучать вам по голове и вывернуть ваши карманы за подобные проделки, стоит задуматься о других, более безопасных способах.

Источники

Домашняя страница проекта BlueProximity: http://sourceforge.net/projects/blueproximity

Доклад Andrew Y. Lindell об уязвимости Bluetooth на конференции Blackhat 2008: http://www.blackhat.com/presentations/bh-usa-08/Lindell/BH_US_08_Lindell_Bluetooth_2.1_New_Vulnerabilities.pdf