новый метод удаленной идентификации физических устройств
В данной статье описывается новое направление — удаленное распознавание «отпечатков пальцев» (по русски просто «идентификация») различных физических устройств. В отличие от других подобных технологий, где обычно предполагается идентификация операционных систем или классов устройств, описываемая методика предполагает удаленное распознавание конкретных физических устройств без какой-либо информации о связях данного устройства с другими.
В основе данной технологии лежит использование малозначительных отклонений в работе аппаратуры устройства, а точнее — расфазировки синхронизирующих импульсов. Представленная технология не требует внесения каких-либо изменений в конструкцию устройств. Она позволяет производить измерения, когда объект исследования находится за тысячи килолметров, через множество хопов и в десятках миллисекунд от измеряющего; также не имеет значения, как именно устройство, с которого снимаются «отпечатки пальцев», подключается к сети. Более того, не составит труда применить ее для устройств, находящихся за NAT или файрволлом, или даже если системные часы обслуживаются по NTP или SNTP. Используя данную методику можно, например, определить, что два устройства в Интернет, возможно, с различными IP-адресами и в разных часовых поясах, на самом деле являются одним физическим устройством; или же подсчитать количество устройств за NAT; проверить блок адресов на принадлежность к виртуальным хостам (так можно выявить, скажем, адреса, относящиеся к honeynet); или же для раз-анонимизирования
анонимизированных сетевых маршрутов ;).
введение
В настоящее время существует довольно много методик для удаленного определения «отпечатков пальцев» операционных систем на устройствах в Интернет. В данной статье эта идея получает развитие в виде удаленного распознавания конкретных физических устройств без какой-либо информации о связях данного устройства с другими. Для этого используются микроскопические отклонения в работе часов.
классы технологий удаленной идентификации
Методики удаленного создания «отпечатков пальцев» можно подразделить на три класса: пассивыные, активные и полупассивные. Первые два класса предполагают следующее: для применения пассивной методики сторона, создающая отпечатки должна иметь возможность просматривать трафик от идентифицируемого устройства, в то время как для применения активной методики, она должна иметь возможность инициировать подключение к исследуемому устройству. Третья разновидность технологии — полупассивная – подразумевает, что после того, как подопытная машина устанавливает соединение, снимающий «отпечатки» имеет возможность взаимодействовать с ней по этому соединению; например, «отпечатки» снимает веб-сайт, с которым общается исследуемое устройство, или же провайдер посередине, имеющий возможность изменять пакеты по дороге. Каждая разновидность имеет свои преимущества и недостатки. Пассивные технологии, например, будут полностью незаметны для ощупываемого устройства, пассивные и полупассивные технологии также могут применяться в случае, когда объект интереса находится за NAT или файрволлом; полупассивные и активные технологии могут применяться на больших отрезках времени, например, когда лэптоп подключается к веб-сайту и затем соединение обрывается, веб-сайт все еще может произвести активные измерения.
методология
Для всех предложенных методов акцент делается на том, что снятие «отпечатков» не требует внесения модификаций или прямого подключения к устройству, с которого производится снятие. Тестирование методик производилось на Red Hat 9.0, Debian 3.0, FreeBSD 5.2.1, OpenBSD 3.5, OS X 10.3.5 Panther, Windows XP SP2, и Windows for Pocket PC 2002.
Наши наиболее предпочтительные методики (пассивная и полупассивная) использует тот факт, что большинство современных реализаций TCP имеют опцию TCP timestamps из RFC 1323, согласно которой, из соображений производительности, каждая сторона, участвующая во взаимодействии, включает информацию о времени в каждый исходящий пакет. Сторона, снимающая «отпечатки», может использовать заголовки TCP для подсчета расфазировки временных импульсов устройства и, следовательно, получения «отпечатков пальцев» устройства. Для уверенной идентификации в данном случае даже не страшно, если опечатываемая система корректирует показания часов по NTP. В то время как большинство современных операционных систем используют TCP timestamps по умолчанию, Windows 2000 и Windows XP игнорируют эту тенденцию. Тем не менее, мы нашли уловку, позволяющую заставить Windows 2000 и Windows XP использовать TCP timestamps в инициированных Windows потоках. Кроме того, при применении нашей методики можно с помощью преобразований Фурье над временами прихождения пакетов получить значение расфазировки синхроимпульсов устройства. В основе метода – нахождение разницы в том, как часто происходят события и как часто они должны происходить. Так как основной методикой при исследованиях была пассивная методика, упор в статье будет делаться на нее.
Для снятия отпечатков также можно воспользоваться протоколом ICMP. Атакующий может отправить сообщения ICMP timestamp к «опечатываемому» устройству и записать последовательность ответов. Если идентифицируемое устройство не синхронизирует свои часы по NTP, или же делает это редко, то атакующий, проанализировав ответы, сможет вычислить расфазировку системных часов ощупываемого устройства. По умолчанию, RedHat 9.0, Debian 3.0, FreeBSD 5.2.1, OpenBSD 3.5, Windows 2000, XP и Pocket PC 2002 подходят для подобного снятия «отпечатков».
Перед разработкой непосредственно методики удаленной идентификации путем подсчета расфазировки импульсов, мы должны решить следующие вопросы: 1) Для каких операционных систем будет применим удаленный подсчет расфазировки импульсов?
2) Каково распределение расфазировки среди различных исследуемых устройств? И каково разрешение используемых методик измерения?
3) Можно ли считать, что для каждого конкретного устройства значение расфазировки импульсов будет оставаться одним и тем же на протяжении долгого периода времени?
4) Существет ли зависимость результатов от технологии доступа (например, проводная/беспроводная, аналоговый/кабельный модем)?
5) Как влияет на результаты расстояние между измерителем и измеряемым?
6) Независимы ли результаты от производящей вычисления машины? То есть, например, если множество машин будут заниматься снятием «отпечатков» с одной, в одно и то же время, получат ли они на выходе примерно равные результаты?
7) Как много данных нам понадобится для того, чтобы удаленно достаточно точно измерить значение расфазировки?
Вопрос 6 возникает по причине того, что большинство измерителей будут использовать при перехвате пакетов синхронизацию времени, основанную на NTP, которая не так точна, как CDMA или GPS. Ответы на вышеперечисленные вопросы помогут оценить эффективность нашей методики снятия «отпечатков пальцев» с физических устройств.
эксперименты и результаты
Для отладки наших методик, мы проводили эксперименты с машинами, на которых работали различные операционные системы, такие как Linux, FreeBSD и различные ОС от Microsoft. В любом случае мы смогли использовать хотя бы одну методику, при этом для подсчета расфазировки требовалось совсем небольшое количество информации. Точный объем передаваемой информации зависит от операционной системы. Исследования показали, что для большинства операционных систем, если не используется NTP или SNTP-синхронизация времени, значения расфазировки, полученные при использовании TCP и ICMP, примерно равны. Этот результат вдохновил нас использовать TCP в большинстве наших экспериментов. Некоторые эксперименты мы рассмотрим здесь.
Для того, чтобы изучить эффекты, вносимые в результаты разными топологиями и технологиями доступа, мы зафиксировали местоположение измерителя и применили нашу методику, основанную на TCP, к лэптопу, подключаемому последовательно в различных местах, в основном на северном побережье США, с помощью проводных и беспроводных сетей и даже через аналоговый модем. Мы подключали его в различные среды, например, из дома, из корпоративной сети и сети масштаба кампуса. Все значения расфазировки были очень близки друг к другу — разница между минимумом и максимумом получилась равной всего лишь 0.67 ppm. Также были произведены одновременные измерения расфазировки часов у лэптопа и у другой машины с различных узлов сети Planet Lab, разбросанных по всему миру и с нашей машины, синхронизированной по CDMA для получения сетевых трэйсов с точными значениями времени. Не считая машины PlanetLab, находящейся в Индии (более 300 мс времени), для каждого эксперимента все измерители (в северной Америке, Европе и Азии) выдали результаты, отличающиеся друг от друга всего на 0,56 ppm. Эти эксперименты показали, что не считая исключительных случаев, результат не зависит от технологии доступа и топологии.
Для изучения распределения значений расфазировки по машинам, мы применили TCP-методику на последовательности устройств на одном из линков OC-48 U.S. Tier 1. Мы также измерили расфазировку импульсов на примерно 69 идентичных машинах под управлением Windows XP SP1, находящихся в одной из лабораторий нашего института. Последний эксперимент, длившийся 38 дней (как и остальные наши эксперименты) показал, что значения расфазировки сигналов часов для конкретной машины можно примерно считать постоянными и не меняющимися с течением времени. Наконец, в ходе этих экспериментов было выяснено, что количество информации и передаваемых пакетов для подсчета значения расфазировки совсем невелико, правда, мы не проводили дотошного анализа слова «невелико».
приложения и дополнительные эксперименты
Для выяснения применимости нашей технологии, мы провели измерения на honeynet, состоящей из 100 виртуальных хостов Linux 2.4.18 и 100 виртуальных хостов Windows XP SP1. Результаты получились ошеломляющими. С очень большой вероятностью TCP-потоки и ответы ICMP timestamp от 200 различных машин на самом деле управлялись одной машиной. Также мы протестировали наши методики на 5 виртуальных машинах VMWare, работающих на одной машине. В данном случае значения расфазировки виртуальных машин существенно отличаются от того, что можно было бы ожидать от реальных машин (значения были существенной величины и не постоянны с течением времени). Соответственно, область применения нашей технологии расширяется до удаленного обнаружения так называемых виртуальных honeynet’ов.
Еще одно возможное применение нашей технологии — подсчет количества хоcтов, расположенных за NAT, даже если они используют случайные или постоянные IP id, чтобы противостоять атаке Белловина, даже если все хосты работают под одной ОС и даже если не все хосты включены одновременно. Более того, в случае, когда наши методики и методика Белловина применимы, наш подход позволит получить намного более высокую степень распознавания. Это позволит, например, провести экспертизу, был ли данный лэптоп подключен к Интернет из заданного места. Еще одна возможная область применения — отслеживание перемещений лэптопов и других мобильных устройств, возможно, в составе проекта вроде Carnivore.
продолжение следует
Тадайоши Кохно, Андре Броидо, КэйСи Клаффи, перевод Дмитрия Герусса.
В основе данной технологии лежит использование малозначительных отклонений в работе аппаратуры устройства, а точнее — расфазировки синхронизирующих импульсов. Представленная технология не требует внесения каких-либо изменений в конструкцию устройств. Она позволяет производить измерения, когда объект исследования находится за тысячи килолметров, через множество хопов и в десятках миллисекунд от измеряющего; также не имеет значения, как именно устройство, с которого снимаются «отпечатки пальцев», подключается к сети. Более того, не составит труда применить ее для устройств, находящихся за NAT или файрволлом, или даже если системные часы обслуживаются по NTP или SNTP. Используя данную методику можно, например, определить, что два устройства в Интернет, возможно, с различными IP-адресами и в разных часовых поясах, на самом деле являются одним физическим устройством; или же подсчитать количество устройств за NAT; проверить блок адресов на принадлежность к виртуальным хостам (так можно выявить, скажем, адреса, относящиеся к honeynet); или же для раз-анонимизирования
анонимизированных сетевых маршрутов ;).
введение
В настоящее время существует довольно много методик для удаленного определения «отпечатков пальцев» операционных систем на устройствах в Интернет. В данной статье эта идея получает развитие в виде удаленного распознавания конкретных физических устройств без какой-либо информации о связях данного устройства с другими. Для этого используются микроскопические отклонения в работе часов.
классы технологий удаленной идентификации
Методики удаленного создания «отпечатков пальцев» можно подразделить на три класса: пассивыные, активные и полупассивные. Первые два класса предполагают следующее: для применения пассивной методики сторона, создающая отпечатки должна иметь возможность просматривать трафик от идентифицируемого устройства, в то время как для применения активной методики, она должна иметь возможность инициировать подключение к исследуемому устройству. Третья разновидность технологии — полупассивная – подразумевает, что после того, как подопытная машина устанавливает соединение, снимающий «отпечатки» имеет возможность взаимодействовать с ней по этому соединению; например, «отпечатки» снимает веб-сайт, с которым общается исследуемое устройство, или же провайдер посередине, имеющий возможность изменять пакеты по дороге. Каждая разновидность имеет свои преимущества и недостатки. Пассивные технологии, например, будут полностью незаметны для ощупываемого устройства, пассивные и полупассивные технологии также могут применяться в случае, когда объект интереса находится за NAT или файрволлом; полупассивные и активные технологии могут применяться на больших отрезках времени, например, когда лэптоп подключается к веб-сайту и затем соединение обрывается, веб-сайт все еще может произвести активные измерения.
методология
Для всех предложенных методов акцент делается на том, что снятие «отпечатков» не требует внесения модификаций или прямого подключения к устройству, с которого производится снятие. Тестирование методик производилось на Red Hat 9.0, Debian 3.0, FreeBSD 5.2.1, OpenBSD 3.5, OS X 10.3.5 Panther, Windows XP SP2, и Windows for Pocket PC 2002.
Наши наиболее предпочтительные методики (пассивная и полупассивная) использует тот факт, что большинство современных реализаций TCP имеют опцию TCP timestamps из RFC 1323, согласно которой, из соображений производительности, каждая сторона, участвующая во взаимодействии, включает информацию о времени в каждый исходящий пакет. Сторона, снимающая «отпечатки», может использовать заголовки TCP для подсчета расфазировки временных импульсов устройства и, следовательно, получения «отпечатков пальцев» устройства. Для уверенной идентификации в данном случае даже не страшно, если опечатываемая система корректирует показания часов по NTP. В то время как большинство современных операционных систем используют TCP timestamps по умолчанию, Windows 2000 и Windows XP игнорируют эту тенденцию. Тем не менее, мы нашли уловку, позволяющую заставить Windows 2000 и Windows XP использовать TCP timestamps в инициированных Windows потоках. Кроме того, при применении нашей методики можно с помощью преобразований Фурье над временами прихождения пакетов получить значение расфазировки синхроимпульсов устройства. В основе метода – нахождение разницы в том, как часто происходят события и как часто они должны происходить. Так как основной методикой при исследованиях была пассивная методика, упор в статье будет делаться на нее.
Для снятия отпечатков также можно воспользоваться протоколом ICMP. Атакующий может отправить сообщения ICMP timestamp к «опечатываемому» устройству и записать последовательность ответов. Если идентифицируемое устройство не синхронизирует свои часы по NTP, или же делает это редко, то атакующий, проанализировав ответы, сможет вычислить расфазировку системных часов ощупываемого устройства. По умолчанию, RedHat 9.0, Debian 3.0, FreeBSD 5.2.1, OpenBSD 3.5, Windows 2000, XP и Pocket PC 2002 подходят для подобного снятия «отпечатков».
Перед разработкой непосредственно методики удаленной идентификации путем подсчета расфазировки импульсов, мы должны решить следующие вопросы: 1) Для каких операционных систем будет применим удаленный подсчет расфазировки импульсов?
2) Каково распределение расфазировки среди различных исследуемых устройств? И каково разрешение используемых методик измерения?
3) Можно ли считать, что для каждого конкретного устройства значение расфазировки импульсов будет оставаться одним и тем же на протяжении долгого периода времени?
4) Существет ли зависимость результатов от технологии доступа (например, проводная/беспроводная, аналоговый/кабельный модем)?
5) Как влияет на результаты расстояние между измерителем и измеряемым?
6) Независимы ли результаты от производящей вычисления машины? То есть, например, если множество машин будут заниматься снятием «отпечатков» с одной, в одно и то же время, получат ли они на выходе примерно равные результаты?
7) Как много данных нам понадобится для того, чтобы удаленно достаточно точно измерить значение расфазировки?
Вопрос 6 возникает по причине того, что большинство измерителей будут использовать при перехвате пакетов синхронизацию времени, основанную на NTP, которая не так точна, как CDMA или GPS. Ответы на вышеперечисленные вопросы помогут оценить эффективность нашей методики снятия «отпечатков пальцев» с физических устройств.
эксперименты и результаты
Для отладки наших методик, мы проводили эксперименты с машинами, на которых работали различные операционные системы, такие как Linux, FreeBSD и различные ОС от Microsoft. В любом случае мы смогли использовать хотя бы одну методику, при этом для подсчета расфазировки требовалось совсем небольшое количество информации. Точный объем передаваемой информации зависит от операционной системы. Исследования показали, что для большинства операционных систем, если не используется NTP или SNTP-синхронизация времени, значения расфазировки, полученные при использовании TCP и ICMP, примерно равны. Этот результат вдохновил нас использовать TCP в большинстве наших экспериментов. Некоторые эксперименты мы рассмотрим здесь.
Для того, чтобы изучить эффекты, вносимые в результаты разными топологиями и технологиями доступа, мы зафиксировали местоположение измерителя и применили нашу методику, основанную на TCP, к лэптопу, подключаемому последовательно в различных местах, в основном на северном побережье США, с помощью проводных и беспроводных сетей и даже через аналоговый модем. Мы подключали его в различные среды, например, из дома, из корпоративной сети и сети масштаба кампуса. Все значения расфазировки были очень близки друг к другу — разница между минимумом и максимумом получилась равной всего лишь 0.67 ppm. Также были произведены одновременные измерения расфазировки часов у лэптопа и у другой машины с различных узлов сети Planet Lab, разбросанных по всему миру и с нашей машины, синхронизированной по CDMA для получения сетевых трэйсов с точными значениями времени. Не считая машины PlanetLab, находящейся в Индии (более 300 мс времени), для каждого эксперимента все измерители (в северной Америке, Европе и Азии) выдали результаты, отличающиеся друг от друга всего на 0,56 ppm. Эти эксперименты показали, что не считая исключительных случаев, результат не зависит от технологии доступа и топологии.
Для изучения распределения значений расфазировки по машинам, мы применили TCP-методику на последовательности устройств на одном из линков OC-48 U.S. Tier 1. Мы также измерили расфазировку импульсов на примерно 69 идентичных машинах под управлением Windows XP SP1, находящихся в одной из лабораторий нашего института. Последний эксперимент, длившийся 38 дней (как и остальные наши эксперименты) показал, что значения расфазировки сигналов часов для конкретной машины можно примерно считать постоянными и не меняющимися с течением времени. Наконец, в ходе этих экспериментов было выяснено, что количество информации и передаваемых пакетов для подсчета значения расфазировки совсем невелико, правда, мы не проводили дотошного анализа слова «невелико».
приложения и дополнительные эксперименты
Для выяснения применимости нашей технологии, мы провели измерения на honeynet, состоящей из 100 виртуальных хостов Linux 2.4.18 и 100 виртуальных хостов Windows XP SP1. Результаты получились ошеломляющими. С очень большой вероятностью TCP-потоки и ответы ICMP timestamp от 200 различных машин на самом деле управлялись одной машиной. Также мы протестировали наши методики на 5 виртуальных машинах VMWare, работающих на одной машине. В данном случае значения расфазировки виртуальных машин существенно отличаются от того, что можно было бы ожидать от реальных машин (значения были существенной величины и не постоянны с течением времени). Соответственно, область применения нашей технологии расширяется до удаленного обнаружения так называемых виртуальных honeynet’ов.
Еще одно возможное применение нашей технологии — подсчет количества хоcтов, расположенных за NAT, даже если они используют случайные или постоянные IP id, чтобы противостоять атаке Белловина, даже если все хосты работают под одной ОС и даже если не все хосты включены одновременно. Более того, в случае, когда наши методики и методика Белловина применимы, наш подход позволит получить намного более высокую степень распознавания. Это позволит, например, провести экспертизу, был ли данный лэптоп подключен к Интернет из заданного места. Еще одна возможная область применения — отслеживание перемещений лэптопов и других мобильных устройств, возможно, в составе проекта вроде Carnivore.
продолжение следует
Тадайоши Кохно, Андре Броидо, КэйСи Клаффи, перевод Дмитрия Герусса.
Сетевые решения. Статья была опубликована в номере 05 за 2005 год в рубрике технологии