Австралийский хакер потратил тысячи часов на взлом DRM, установленной производителями медицинского оборудования на СИПАП-машины, чтобы создать бесплатную программу, позволяющую пациентам регулировать процесс лечения
![](https://habrastorage.org/getpro/habr/post_images/ed8/2d9/898/ed82d9898193461013a33c491b279900.jpg)
Кристи Линн испытывала постоянное чувство усталости, и после многих месяцев, проведённых в попытках диагностировать проблему, один из докторов решил, что догадался, в чём была проблема.
«Я не подходила ни под одно из описаний симптомов апноэ, — рассказала она мне по телефону. – Я женщина, у меня нет лишнего веса. Никому не приходило в голову проверить меня, кроме одного доктора, у которого была сходная история болезни».
Линн, живущая в сельской местности Аризоны, провела дома пульсоксиметрию, измеряющую уровень кислорода в крови, а потом прошла исследование сна. Ей поставили диагноз апноэ, заболевания, из-за которого пациенты внезапно перестают дышать во сне на некоторое время, и которое чаще всего преследует мужчин с лишним весом. Ей выдали СИПАП-машину (аппарат для искусственной вентиляции лёгких постоянным положительным давлением) с маской – это устройство задувает воздух в дыхательное горло, чтобы воздушные пути оставались открытыми – и отправили домой.
Однако полтора года и три сомнологов спустя её симптомы не улучшились. Её индекс апноэ-гипопноэ (АГИ), описывающий количество остановок дыхания во сне, находился на уровне «ужасно».
«Ни одному доктору не удавалось снизить мой АГИ, и, честно говоря, никто из них особенно из-за этого не переживал»,- сказала она. Она начала гуглить в поисках помощи и наткнулась на форум CPAPtalk.com. На нём пользователи общались по поводу программы SleepyHead.
Эта бесплатная, открытая, и определённо не одобренная Управлением по санитарному надзору за качеством пищевых продуктов и медикаментов США (FDA) программа появилась в результате тысяч часов взлома и разработки, потраченных единственным австралийским разработчиком Марком Уоткинсом. В результате он помог тысячам пациентов с апноэ забрать контроль над собственным лечением у перегруженных работой и недополучающих денег докторов. ПО даёт пациенту доступ к данным по сну, которые генерирует их СИПАП-машина, но которые обычно оказываются недоступными, скрытыми за проприетарными форматами данных, которые может прочитать только авторизованный пользователь (доктор) при помощи проприетарной программы, которую пациенты не могут скачать или даже купить. SleepyHead и поддерживаемые сообществом форумы типа CPAPtalk.com и ApneaBoard.com помогли пациентам обойти производителей медицинского оборудования, предпочитающих, чтобы таких программ вообще не было.
«Передать не могу, насколько мой опыт использования СИПАП изменился благодаря этой программы. Это просто день и ночь, — сказала Линн. — Возможно, я жива только из-за неё».
![](https://habrastorage.org/getpro/habr/post_images/838/886/392/838886392f2cdb40090a09d0eb51e568.png)
Большинство современных СИПАП-машин генерируют огромное количество данных в процессе использования. Они отслеживают такие показатели, как среднее давление воздуха, АГИ, среднее количество использований за ночь, скорость утечки воздуха из-под маски, «индекс ограничения потока» и другие данные, описывающие работу машины и качество сна пациента. Обычно они сохраняются на SD-карточку, которую пациент относит доктору раз в шесть месяцев (некоторые современные устройства умеют передавать данные по беспроводной связи в приложение; но данные, доступные для просмотра в приложении, как рассказали мне пациенты, редко бывают такими же подробными, как те, что на самом деле собирает машина). Эти данные можно использовать для изменения процесса лечения, увеличения или уменьшения пороговых показателей давления и других настроек машины, что может улучшить результат.
Но многие доктора, как сообщили мне несколько пользователей SleepyHead, смотрят на эти цифры вскользь, а затем отправляют пациентов восвояси. Несколько научных исследований индустрии обнаружили недостаток в сомнологах, что означает, что очень мало докторов могут обеспечить пациентам особый уход, которого жаждут многие. В работе от 2015 года, проведённой Американской академией медицины сна, была обнаружена «серьёзная недостача сертифицированных специалистов по медицине сна», и было отмечено, что «в некоторых частях США эта область медицины поддерживается слабо или не поддерживается вовсе».
Томас Пензел, физиолог сна, научный руководитель Европейского общества исследования сна, рассказал мне по почте, что «считает, что любой умный пациент может делать, что хочет».
«Пациент может подстроить давление, если понимает, что делает. Некоторые из наших пациентов самостоятельно настраивали давление, — добавил он. – Если что-то пойдёт не так, они могут умереть в постели. Это их личный риск. СИПАП – не игрушка, а медицинский инструмент».
Он согласился, что большая часть пациентов с апноэ по всему миру получает недостаточно помощи. «Доктора не слушают их, и у них нет времени – и так во всём мире».
«Доктор просит вас принести чип или карту, читает её, но читает не для диагноза. Он читает её для следования правилам страховой компании, чтобы убедиться, что вы используете машину, — рассказал мне Стив Левин, пользователь SleepyHead из Калифорнии. – Все пытаются принять вас, выпроводить и получить за ваш счёт прибыль».
Некоторые СИПАП-машины позволяют пациентам видеть обрывочные данные на экране, но мало какие машины дают пациентам реальный доступ ко всем собираемым данным. Один популярный производитель СИПАП, ResMed, выпускает ПО для анализа данных ResScan, которое из-за требований закона можно получить, только если вы — медицинский работник, или «по заказу терапевта».
Такой запрещающий подход к лечению апноэ и данным СИПАП привёл к появлению целого направления самостоятельного взлома СИПАП и изменения настроек.
Большая часть обсуждения на форумах CPAPtalk.com и ApneaBoard.com, на последнем из которых зарегистрировано примерно 71000 человек, вращается около SleepyHead, декодирующей данные, созданные СИПАП-машинами, и позволяющей обычным пациентам их использовать. ПО буквально расшифровывает данные: Уоткинс с большим трудом взламывал проприетарные форматы данных для каждой отдельной СИПАП-машины, которую теперь поддерживает ПО. Эти форматы предназначены для чтения только собственными программами производителей.
![](https://habrastorage.org/getpro/habr/post_images/e92/2f1/527/e922f1527eff169a5d5fc4920a0de9e4.png)
«У всех машин есть встроенные проверки с подписью и проверкой контрольных сумм форматов данных, у кого сложнее, у кого – проще, — рассказал мне Уоткинс. – Взлом формата файлов – процесс сложный, требующий данных для сравнения, в результате чего необходимо менять настройки в меню машины или работать над PDF-отчётами, созданными коммерческими программами на основе известных наборов данных, которые сначала надо выпросить и собрать у людей, владеющих доступом к машине и софту».
Уоткинс начал работу над проектом SleepyHead семь лет назад, поскольку ему стали интересными «запретные секреты» SD-карточки его собственной машины. С тех пор SleepyHead стала жизненно необходимой для сообщества пациентов с апноэ.
«С течением времени меня всё больше отвращало то, как индустрия СИПАП использует и злоупотребляет проблемами людей, и стала очевидна необходимость в бесплатном инструменте для анализа СИПАП, сконцентрированном на данных и поддерживающем все форматы».
*
Технические средства защиты авторских прав, применяющиеся для запрета доступа к данным пользователям устройств, получили широкое распространение в самых разных индустриях. Проблема, с которой сталкиваются пользователи СИПАП, схожа с проблемами фермеров, которым надо починить трактора John Deere, с проблемами владельцев кофемашин Keurig, варящих кофе только из авторизованных капсул, с проблемами независимых специалистов по ремонту электроники, которым всё сильнее препятствуют в ремонте айфонов, макбуков, серверов, кондиционеров, пылесосов и устройств, подключённых к интернету вещей.
Пользователи СИПАП, в частности, Уоткинс, являются частью нового движения пациентов, пытающихся вернуть себе контроль над своими данными. Активист Хьюго Кампос в 2011 году выступил на TEDx, рассказав о своём праве получить доступ к данным, генерируемым его кардиостимулятором, а группа Nightscout запустила приложение, взламывающее DRM, не позволявшую пациентам удалённо контролировать глюкометры своих детей.
Производители медицинских устройств в целом недовольны нарождающимся движением, однако то, что Уоткинс делает для проекта SleepyHead, не нарушает закон.
![](https://habrastorage.org/getpro/habr/post_images/dd6/ae2/c91/dd6ae2c919ee739918cbe57467dc9127.png)
В 2015 году Коалиция исследователей медицинских устройств под руководством Кампоса отправила петицию в Библиотеку Конгресса и Бюро авторского права США с требованием внести исключение в Закон об авторском праве в цифровую эпоху (DMCA) – важнейший закон, относящийся к авторским правам в США – который позволил бы пациентам законно взламывать свои медицинские устройства для исследований в области безопасности и для получения доступа к создаваемым ими данным.
Индустрия медицины утверждала, что «пациенты, напрямую обращающиеся к данным с их устройств, могут не понять формат данных или неправильно их интерпретировать. Права на доступ к данным должны обеспечиваться посредством медицинских работников».
Кампос «отслеживал данные его кардиостимулятора при помощи Google Spreadsheet – не самый лучший вариант для пациента, — сказал Эндрю Селларс, юрист из Беркмановского центра интернета и сообщества при Гарварде, представлявшего права Кампоса. – Кардиостимулятор передаёт данные на базовую станцию. Он придумал перехватывать этот сигнал, чтобы узнавать, чем занято его сердце».
Производители медицинских устройств неистово сражались против петиции Кампоса и Селларса: " Производители медицинских устройств заняли следующую позицию: данные имеют защищённый авторским правом формат, попадающий под действие DMCA", добавил Селларс, ныне работающий директором Клиники кибернетической и технологической юриспруденции.
Торговая организация AdvaMed, лоббирующая интересы мединдустрии, запустила петицию, блокирующую запрос Кампоса, где указала, что «пациенты, получающие прямой доступ к данным на своих устройствах, могут не понять формат данных или неправильно его интерпретировать. Права на доступ к данным должны обеспечиваться (и уже обеспечиваются) посредством медицинских работников, обладающих соответствующими инструментами, обученных сбору и защите данных пациентов, не нарушающему безопасность и длительную работу их устройств».
![](https://habrastorage.org/getpro/habr/post_images/5e8/af8/92a/5e8af892ac5d609dfa1532d877a9554e.jpg)
Организация также утверждала, что исключение, которое легализовало бы доступ пациентов к данным, несло бы в себе риски для здоровья и приватности пациентов и могло бы «ускорить процесс разрядки аккумулятора». Medical Alley Association, ещё один производитель медицинских устройств, утверждала, что «если принять это исключение, оно напрямую будет нарушать взаимодействие докторов и пациентов, побуждая пациентов принимать решения без поддержки их лечащего врача».
Тем временем FDA сообщила в Бюро авторского права США, что любое устройство, изменённое пользователем, нельзя будет рекламировать или перепродавать без одобрения FDA, и что если из-за изменённой машины пострадает пациент, агентству сложно будет определить, была ли в этом вина производителя или того, кто модифицировал ПО. Но в итоге FDA не пыталась мешать принятию исключения: «FDA рекомендует, чтобы в итоговом заключении было указано, что ничто в нём не повлияет на регулирование продуктов, находящееся в юрисдикции других федеральных агентств».
Большой победой потребителей стало то, что Библиотека Конгресса разрешила внести данное исключение, легализовавшее не только попытки Кампоса получить доступ к данным кардиостимулятора, но и взломы, которыми Уоткинс занимается в проекте SleepyHead. В этом году исключение обновили, и никто из производителей медицинских устройств этому не мешал. Ни один из производителей СИПАП не согласился прокомментировать ситуацию для данной статьи.
*
Но только потому, что теперь взлом СИПАП-машин для получения доступа к данным легален, не значит, что производители облегчат эту задачу. Уоткинс говорит, что без утечек документации на взлом нового формата данных (а у большинства производителей он свой) могут уйти сотни часов. Он использует hex-редактор Synalize It! для анализа форматов данных и реверс-инжиниринга посредством подтверждённых данных, которые Уоткинсу шлют его знакомые инсайдеры.
«По опыту, получить документацию от производителя, не подписав соглашение о неразглашении, не легче, чем добыть кровь из камня, — сказал Уоткинс. – Большая часть игнорирует мои емейлы, некоторые даже возмущаются моими попытками».
![](https://habrastorage.org/getpro/habr/post_images/dee/fb2/0f0/deefb20f0d113488dc6775497cb5049e.png)
Пользователи СИПАП регулярно просят Уоткинса взломать их машину, и дошло уже до того, что Уоткинсу пришлось прекратить разработку основной программы, чтобы тратить всё время на поддержку новых аппаратов. Хотя он проделал большую часть работы по разработке ПО и взлому, другие члены сообщества помогают ему с определёнными проектами, а иногда происходят и попытки совместного взлома, когда пользователи вместе разбираются в особенно заковыристых форматах данных.
«Оксиметры от Contec было весьма интересно ломать, взлом Protocol 7 я проделал, просидев за ним всю ночь, парочка других хакеров шлют мне данные перехвата с последовательных портов, помогая взламывать протоколы при помощи кода на python, проверяют импорт данных в SleepyHead», — сказал он.
Тысячи часов разработки не прошли даром для Уоткинса – по его словам, он периодически страдает от симптомов выгорания, разработка SleepyHead идёт рывками, и зависит от его собственного здоровья и занятости (сейчас он ищет оплачиваемую работу разработчика).
«Я не занимался работой, поскольку был домохозяином, сидел с моей дочкой, и хотя это пошло на пользу проекту SleepyHead и моей дочке, в долгосрочной перспективе это не пошло на пользу благосостоянию моей семьи, — сказал он. – За прошедшие семь лет меня в основном поддерживала жена, терпеливо относившаяся ко мне и поддерживавшая мою работу над проектом, но теперь моё здоровье улучшилось, а дочь подросла – и мне не остаётся ничего другого, как поставить на первое место ответственность перед семьёй и вернуться к работе. И пока я не войду в ритм с этим и не найду работу, приносящую доход и подходящую к моей ситуации, мне придётся временно отложить развитие проекта».
Он сказал, что мечтает создать СИПАП-машину с открытой схемой, свободную от DRM, которую было бы легко ремонтировать.
«Мне очень приятно, что моя работа помогает другим, мне приятно получать от них поддерживающие слова, пожертвования, примеры данных, чувствовать их желание подождать несмотря на медленно идущую разработку – всё это помогло мне оставаться мотивированным, — сказал он. – Я горжусь своими достижениями, несмотря на то, что я делал это без коммерческой поддержки».
![](https://habrastorage.org/getpro/habr/post_images/d28/099/ced/d28099ced2efd2fee540631bf4a18726.jpg)
Когда новую машину взламывают и добавляют в список поддерживаемых, это отмечается в группе на Facebook и на форумах CPAPtalk и Apnea Board, что также критически важно для пациентов: база пользователей форумов помогает новым пациентам понять данные, которые выдаёт SleepyHead. Это также помогает пациентам решить, какие изменения внести в их терапию, и как именно нужно настраивать их машины (меню с изменениями настроек часто спрятаны, и доступ к ним должны обычно получать только доктора).
«Главная цель Apnea Board – продвигать „предоставления полномочий пациентам“, когда пациент принимает активное участие в лечении своего апноэ, — сказал мне SuperSleeper, основавший форум в 2004 году. – Индустрия апноэ в целом перегружена, и не способна обеспечить персональный сервис, который требуется многим пользователям СИПАП. Они отлично справляются с организацией событий, за которые можно получить бабки (исследование сна, посещение врача, продажа СИПАП-машины и сопутствующих товаров), но у них нет времени и финансового стимула помогать решать возникающие у пользователей СИПАП в процессе терапии вопросы и проблемы».
Apnea Board стал бастионом информации и экспертов-самоучек по апноэ. На форуме есть приватный раздел, где пользователи могут скачать инструкции, предназначенные для врачей. В них записано, как зайти в «клиническое меню», в котором они могут изменить настройки СИПАП в соответствии с информацией по их терапии, доступной на SleepyHead.
«Apnea Board свободно распространяет клинические инструкции, публикует „секреты“ СИПАП-машин, чтобы наши пользователи могли обучаться и по желанию брать контроль над собственной терапией апноэ в свои руки, — сказал мне SuperSleeper. – Зная эти „секреты“, достаточно просто войти в „клиническое меню“ и запрограммировать большую часть СИПАП-машин, хотя производители постепенно усложняют эту задачу для пациентов, и некоторые машины придётся немножечко „взломать“».
Левин и Линн говорят, что SleepyHead и форумы полностью изменили их жизни и терапию. «После постановки первого диагноза чувствуешь себя одиноко, — сказал Левин. – На форуме люди пишут: Эй, вот что случилось со мной прошлой ночью, и вот, что я сделал. Что порекомендуете?»
Линн сказала, что когда её доктора проанализировали её данные, они смотрели на усреднение за последние шесть месяцев, а не на отдельные ночи, которые могли отличаться от остальных в худшую сторону: «Они не докапываются до тех мест, в которых происходят ваши проблемы. А при помощи SleepyHead я могу видеть ежедневные цифры и подстраивать настройки, — сказала она. – Я увеличивала давление на выдохе, чтобы уменьшить показатели. Теперь я чувствую себя гораздо лучше, чем во время первого диагноза. У меня больше энергии, я лучше сплю».
Несколько людей, страдающих от апноэ, с которыми я беседовал, говорят, что беспокойство по поводу угроз, связанных с самостоятельной подстройкой терапии, беспочвенно; многие уверены, что это просто страшилки со стороны докторов и производителей устройств, и все они сказали, что не смогли бы вносить изменения, не понимая полностью, как работают эти машины и что данные им сообщают.
Линн сказала, что самолечение – это единственное, что сработало для неё, и это единственный вариант, который у неё остался. «Мне 62, у меня нет медицинской страховки, поскольку я не могу себе её позволить, и я самозанятая, — сказала она. – Для меня было бы катастрофой лишиться этой программы. Если бы я бросила работать, не знаю, что бы я делала».