2009 г.
Этика цифрового мира
Сергей Кузнецов
Обзор июньского, 2009 г. номера журнала Computer (IEEE Computer Society, V. 42, No 6, Июнь 2009).
В этом году темой июньского номера является этика программной инженерии. Этой теме посвящены четыре больших статьи, сопровождаемые вводной заметкой «Этика программной инженерии в цифровом мире» («Software Engineering Ethics in a Digital World») приглашенных редакторов – Аваиса Рашида, Джона Векерта и Чарльза Лукаса (Awais Rashid, Lancaster University, UK, John Weckert, Charles Sturt University, Australia, Richard Lucas, Australian National University).
Internet глубоко проникает в повседневную жизнь людей, чему способствует доступность широкополосных сетей и распространенность мобильных устройств. Эта повсеместная доступность Internet вкупе с развитием инновационных служб социальных сетей и Web 2.0 приводит к возникновению феномена цифрового мира. Социальные сети, такие как Facebook, MySpace и Twitter, виртуальные миры типа SecondLife и глобальные многопользовательские онлайновые игры, такие как World of Warcraft, стирают границу между виртуальным и физическим мирами.
Мы живем в мире, в котором все большее число служб доступно в режиме онлайн. В этом режиме люди занимаются бизнесом, следят за любимыми телевизионными программами и устанавливают новые общественные контакты.
С одной стороны, феномен цифрового мира повышает уровень доступности сервисов и общественных взаимодействий, но с другой стороны, он приводит к появлению ряда этических проблем, связанных с конфиденциальностью, мониторингом, защитой данных и т.д. Те же механизмы, которые в цифровом мире делают более привлекательными сервисы и взаимодействия, потенциально могут принести людям вред. Преимущества цифрового мира очевидны, но он может также содействовать организованной преступности, например, педофилии и терроризму.
Проблема наличия у одной и той же технологии возможности приносить как пользу, так и вред называют дилеммой двойного применения. Эта дилемма свойственна практически любой технологии. В большинстве случаев выявление дилеммы двойного применения не приводит к запрету разработки соответствующей технологии, скорее, люди пытаются найти способы извлечения из нее пользы при одновременной минимизации вреда. В контексте феномена цифрового мира дилемму можно проиллюстрировать тремя примерами.
В Google появилась служба Street View, обеспечивающая доступ в Internet к трехмерным фотографиям улиц. С положительной стороны, это средство в сочетании с Google Maps полезно для поиска домов, планирования свободного времени, выбора места встреч и т.д. Однако некоторые люди считают размещение этих фотографий посягательством на их конфиденциальность. Кроме того, высказывается мнение, что эта служба может помочь террористам и грабителям при нахождении своих целей.
Второй пример – это чаты и пиринговые сети. Чаты позволяют общаться географически отдаленным людям. Однако они же могут использоваться педофилами и террористами для планирования своей деятельности. Чаты способствуют организованной преступности, обеспечивая среду общения территориально распределенных преступных элементов. Пиринговые сети способствуют совместному использованию аудио- и видеоматериалов. Но они же могут использоваться для незаконного распространения материалов, охраняемых авторским правом, или порнографии.
Третьим, возможно, самым неожиданным примером является социальная сеть Facebook. Для многих эта сеть является несомненным благом, поскольку, помимо прочего, помогает находить новых друзей и поддерживать контакты со старыми друзьями. Однако исследования показывают, что у 68% студентов, использующих Facebook, средние оценки значительно ниже, чем у тех, которые не пользуются этой сетью. Может быть, двоечникам больше нравится проводить время в Facebook, но также возможно, что эта сеть просто мешает учиться.
Эти примеры и другие наблюдения показывают, что перед разработчиками программных систем для цифрового мира стоят три основные проблемы. Первая из них состоит в том, что разработчики должны находить здравый баланс между потребностью в обеспечении конфиденциальности отдельных граждан и потребностью в защите уязвимых групп пользователей – например, в защите детей от разбойных нападений. Вторая проблема состоит в том, что разработчики некоторых систем должны принимать во внимание как потребность граждан в свободе выбора, так и общественную пользу. Например, привлекательные для многих игровые сайты могут стать причиной игромании, а игры-стрелялки могут стимулировать агрессивное поведение. Наконец, третья проблема состоит в том, что этические соображения часто по-разному интерпретируются в зависимости от географического, культурного, этнического, религиозного и даже исторического контекста.
Для решения этих проблем требуется сотрудничество разработчиков программного обеспечения со специалистами по этике, законодателями и социологами. И налаживание такого сотрудничества, по-видимому, само является сложной проблемой.
Статью «Обеспечение доверия, конфиденциальности и профессиональной этики в Web 2.0» («Ensuring Trust, Privacy, and Etiquette in Web 2.0 Applications») представили Амела Карахазанович, Петер Бае Брандцак, Йероен Ванаттенховен, Брам Ливенс, Карен Торбен Нилсен и Йо Пирсон (Amela Karahasanovic, Petter Bae Brandtzag, SINTEFICT, Oslo, Norway, Jeroen Vanattenhoven, IBBT-CUO, Katholieke Universiteit Leuven, Belgium, Bram Lievens, Karen Torben Nielsen, Jo Pierson, IBBT-SMIT, Vrije Universiteit Brussel (VUB), Brussels, Belgium).
В приложениях Web 2.0 технология WWW используется для совершенствования творческих способностей, общения, сотрудничества и совместного использования информации. Эти новые приложения изменяют способы общения людей. Личные фотографии и видеоматериалы, размещенные в Web, становятся доступными не только членам семьи и друзьям, но и всему миру. Широко используется информация из свободно доступных Web-энциклопедий, таких как Википедия, которые совместно создаются добровольцами. Для информирования друзей и членов семьи о происходящем в текущий момент используются твиты. Политические события теперь обсуждаются на форумах, а не в пабах. Программное обеспечение пишется совместно людьми, проживающими в разных местах и странах.
Кроме возможностей совместного использования информации, эти приложения обеспечивают много новых средств, таких как социальные сети, создание пользовательского контента и т.д., но одновременно с этим возникают очевидные этические дилеммы и риски. Все, что размещается в Interenet, может использоваться недолжным образом. Социальные сети могут связывать людей, а могут служить средством запугивания и оскорбления. Существенно проще стало получать доступ к частной информации, потому что люди более часто раскрывают эту информацию, не задумываясь о возможных последствиях.
Стандарты, которым нужно следовать разработчикам программного обеспечения, четко определены и понятны. Перед ними стоит моральная обязанность защищать общественное благосостояние и конфиденциальность тех, кого затрагивает создаваемое программное обеспечение. Для этого имеются и чисто прагматические основания, поскольку люди хотят, чтобы их моральные потребности принимались во внимание. Те, кому доставили неприятности социальные сети, могут просто перестать ими пользоваться. Люди, которых беспокоит судьба контента, который они могли бы разместить в YouTube, могут никогда не начать пользоваться подобной службой.
Появление приложений Web 2.0 требует переосмысления этических норм, направляющих их разработку и использование. Требуется обеспечить ответы на ряд новых вопросов. Какого рода проблемы испытывают пользователи этих приложений? О чем беспокоятся люди, предоставляющие свою личную информацию, обсуждающие последние новости или размещающие в Web свои фотографии? Чего ожидают от приложений Web 2.0 члены существующих «реальных» сообществ? Что следует делать разработчикам, чтобы обеспечить доверие к таким приложениям и гарантировать конфиденциальность пользователей?
В течение последних трех лет авторы статьи участвуют в европейском проекте Citizen
Media, в котором изучается, каким образом могут улучшить повседневную жизнь европейских граждан приложения Web 2.0. В проекте изучаются и этические проблемы, порождаемые новыми технологиями. Для изучения проблем пользователей, вызываемых такими приложениями Web 2.0, как социальные сети и блоги, было проведено исследование в Норвегии с 200 участниками и два исследования в Бельгии, в одном из которых участвовало 30 членов двух онлайновых сообществ, а в другом – 50 индивидуальных пользователей и 85 семей. На основе этих исследований были выявлены наиболее важные требования пользователей к приложениям Web 2.0, включающие обеспечение доверия к приложениям, поддержку конфиденциальности, соблюдение профессиональной этики и т.д.
В одном из исследований изучались два офлайновых сообщества: неформальная группа проживающих по соседству семей с детьми и хорошо структурированное сообщество геев средних лет. У обоих сообществ имелись выделенные для них Web-сайты, использовавшиеся для генерации и совместного использования контента. На рисунке показан сайт сообщества геев.
Авторами статьи «Принцип предосторожности в мире цифровых зависимостей» («The Precautionary Principle in a World of Digital Dependencies») являются Вольтер Питерс и Андре Ван Клиф (Wolter Pieters, Andre van Cleeff, University of Twente, the Netherlands).
Традиционно защита информации направляется на обеспечение безопасности организаций по периметру ее систем и сети; обычно это обеспечивается брандмауэрами. Этот подход базируется на том неявном предположении, что внутренней части этого периметра можно более или менее доверять, а внешней части – нет.
Изменений технологий, бизнес-процессов и их правового поля больше не позволяют опираться на это предположение. Многие организации теперь передают часть своих IT-процессов сторонним исполнителям, а служащие требуют, чтобы им разрешалось работать дома. Небывалые масштабы бизнес-сотрудничества приводят к формированию сложных глобальных сетей, в которых больше доверяют сетям стороннего бизнеса, чем своим собственным. Мобильные устройства обеспечивают доступ к данным откуда угодно, а интеллектуальные дома оборудуются микрочипами, постоянно общающимися между собой и со своей штаб-квартирой.
При использовании «облачной» инфраструктуры (cloud computing) организации могут арендовать персональные компьютеры на почасовой основе. Это приводит к еще более сложным системам, или системам систем, которые перекрывают границы нескольких участвующих сторон и пересекают их периметры безопасности.
Следуя Jericho Forum, авторы называют этот процесс депериметризацией (deperimeterization) – исчезают границы между системами и организациями, которые становятся одновременно связанными и фрагментированными. Наиболее очевидной проблемой депериметризации является потребность в изменении подходов к обеспечению безопасности. При депериметризации размываются не только границы IT-инфраструктуры организаций, но и границы их ответственности. Если некоторая компания передает сторонним исполнителям обработку своих данных, то кто несет моральную ответственность за поддержку конфиденциальности ее заказчиков?
Депериметризация накладывает новые моральные и правовые обязательства на людей и организации, разрабатывающие программное обеспечение. В сложной цепочке событий или систем в любом действии, ведущем к непредсказуемым последствиям, будет участвовать много людей. У всех них будет иметься возможность предотвратить эти последствия и, следовательно, никто не будет нести за это личную ответственность. Это типичная проблема «семи нянек» (the problem of many hands).
Проблема размытой ответственности, безусловно, проявляется при разработке программных систем, зависящих от других систем, которые, в свою очередь, зависят от третьих систем, и т.д. К этому приводит философия разработки на основе сервис-ориентированной архитектуры, когда общая функциональность системы определяется сервисами, которые могут объединяться в более крупные приложения, выполняющие функции конечного пользователя. В таких случаях сетевая организация и технологическая структура затрудняют определение того, кто несет ответственность за недостоверность окончательных результатов.
В этой ситуации бесполезна этика, предписывающая ответственность какому-либо одному человеку или одной организации. Неясно не только то, где лежат границы ответственности, но и то, каким влиянием обладает организация, и как она может воздействовать на последствия. Если организация примет решение применить в своем программном обеспечении некоторую политику защиты данных, этими же данными сможет распорядиться какая-то другая организация.
Когда неясна ответственность организации, непонятны и последствия ее действий. Это означает, что эта организация должна по-другому обращаться с рисками. Кроме проблемы «семи нянек» депериметризация приводит к проблеме неопределенного риска. При разработке сервиса точно неизвестно, от каких сервисов он будет зависеть. И наоборот, точно неизвестно, в каких других сервисах будет использоваться разрабатываемый сервис. В этом случае невозможно оценить вероятность нежелательных событий.
Традиционный подход к оценке рисков фокусируется на вероятности отказов и серьезности их последствий, обычно выражаемой в денежной форме. Этот подход критикуется по разным причинам. Наиболее важно то, что он основан на предположении об известности вероятностей событий и связанных с ними расходов. В депериметризованной среде это предположение обычно не является обоснованным.
Для решения этих проблем нужно более точно классифицировать риски. В Научном совете по государственной политике Нидерландов (WRR) различают четыре типа проблем рисков:
-
простые – проблемы этого типа могут решаться с применением стандартных процедур оценки рисков и управления ими;
-
сложные – таким проблемам свойственны сложные причинно-следственные связи;
-
неопределенные (uncertain) – проблемы этого типа характеризуются отсутствием информации о последствиях;
-
сомнительные (ambiguous) – для этих проблем характерно отсутствие информации о желательности последствий.
Как считают в WRR, для решения проблем третьего и четвертого типов требуется некоторый подход, отличный от классического подхода к управлению рисками. Когда сами последствия неопределенны, управление рисками следует основывать на принципе предосторожности (precautionary principle). Этот принцип гласит, что если неизвестны последствия каких-либо действий для общественного здоровья или окружающей среды, то эти действия производить не следует. При разработке программного обеспечения в депериметризованном мире риски, по крайней мере, не определены, а часто даже сомнительны. Принцип предосторожности может помочь при создании сетевых сервисов, разрабатываемых с учетом этики, поскольку в этом случае не предполагается наличие возможности объективной оценки рисков, и ответственность за последствия не возлагается на одного человека или одну организацию.
Статью «Социальные последствия отказов информационных систем» («Social Impact of Information System Failures») написал Тецуо Тамаи (Tetsuo Tamai, University of Tokyo).
Почти ежедневно приходится слышать новости об отказах систем, оказывающих серьезное влияние на общество. Один из недостатков журналистов состоит в том, что они поднимают большой шум, когда компьютерная система барахлит, но молчат, когда все работает нормально. Из-за этого у широкой публики создается ложное впечатление, что компьютерные системы очень ненадежны. И в самом деле, поскольку программное обеспечение незаметно и непонятно обычным людям, они воспринимают его как нечто непостижимое и ненадежное.
Еще одна проблема состоит в том, что когда возникает сбой системы, источники новостей не сообщают подробности. Обычно у репортеров отсутствуют знания о программном обеспечении и информационных системах, требуемые для изложения технически значимых фактов, а разработчики обычно неохотно разглашают подробности.
В статье анализируется случай, произошедший в 2005 г. на Токийской фондовой бирже (Tokyo Stock Exchange, TSE). Служащий компании Mizuho Securities в заявке на продажу акций компании J-Com вместо намерения продать одну акцию за 610000 иен указал намерение продать 610000 акций по одной иене за каждую. Эта заявка была принята системой обработки заявок TSE. Компания Mizuho Securities обнаружила свою ошибку и попыталась отозвать свою заявку, но система все время отказывалась выполнить соответствующую команду. В результате для сокращения денежных потерь компания начала сама выкупать акции, потеряв, в конце концов, 40 миллиардов иен (225 миллионов долларов).
Через четыре дня на специально организованной пресс-конференции TSE объявила, что команда отзыва заявки не была выполнена из-за ошибки в системе обработки заявок. Mizuho Securities потребовала от TSE возмещения своих убытков, но TSE отказала ей в этом. И тогда Mizuho Securities подала в суд исковое заявление. Автор статьи был привлечен к этому делу компанией Mizuho Securities в качестве независимого эксперта, получил доступ ко всем документам и попытался беспристрастно разобраться в ситуации.
Этот случай порождает несколько вопросов по поводу профессиональной этики. Хорошую основу для обсуждения этических проблем обеспечивает разработанный ACM и IEEE Computer Society «Кодекс этики и профессиональной практики разработчиков программного обеспечения» (Software Engineering Code of Ethics and Professional Practice). Этот кодекс основывается на восьми принципах (общество, клиент и работодатель, продукт, оценки, управление, профессия, коллеги, личная ответственность), и каждому из этих принципов посвящен отдельный раздел. Некоторые разделы кодекса напрямую связаны с разными аспектами дела TSE-Mizuho.
Проводя это сопоставление, автор не стремится в чем-то обвинить разработчиков системы обработки заявок TSE. Во-первых, «Кодекс этики» для этого не предназначен. Во-вторых, имеющихся у автора материалов недостаточно для того, чтобы можно было точно установить причины отказа системы. Однако связывание проблем данного конкретного случая с разделами «Кодекса этики» может обеспечить основу для обсуждения этических вопросов как этого случая, так и других, похожих на него.
Последняя статья тематической подборки – «Приоритет у общества: принятие решений с использованием кодекса этики разработчиков программного обеспечения» («The Public Is the Priority: Making Decisions Using the Software Engineering Code of Ethics») – представлена Дональдом Готтенбаном и Кейтом Миллером (Donald Gotterbarn, East Tennessee State University, Keith W. Miller, University of Illinois at Springfield).
Кодексы этики часто используются для регулирования поведения профессионалов в соответствующих областях деятельности. В «Кодексе этики и профессиональной практики разработчиков программного обеспечения», кроме того, подчеркивается важность саморегулирования, предлагаются практические советы, фундаментальные принципы и методы применения содержащихся в нем рекомендаций в сложных ситуациях.
Важной проблемой является использование «Кодекса этики» для балансировки различных факторов при принятии решений о наилучшем образе действий. Кодекс может помочь разработчикам программного обеспечения принимать сложные технические и этические решения, которые принесут пользу обществу, профессии и самому разработчику. В статье обсуждаются три случая (один придуманный и два почерпнутых из газетных публикаций), которые иллюстрируют, как профессионалы в области программного обеспечения могут использовать «Кодекс этики» для принятия решений при наличии этических конфликтов.
Вне тематической подборки опубликована статья «Банковское обслуживание через Internet: атаки на стороне клиента и механизмы защиты» («Internet Banking: Client-Side Attacks and Protection Mechanisms»), авторами которой являются Рольф Опплигер, Руди Риц и Томас Холдереггер (Rolf Oppliger, eSecurity Technologies, Ruedi Rytz, Swiss Federal Office for National Economic Supply, Thomas Holderegger, tholderegger@gmail.com).
В наиболее современных решениях Internet-банкинга для аутентификации сервера и криптографической защиты коммуникационного канала между клиентом и сервером используются протоколы Secure Sockets Layer (SSL) или Transport Layer Security (TLS). При использовании этих протоколов сервер сам себя аутентифицирует с применением сертификата с открытым ключом. После этого на стороне клиента псевдослучайным образом генерируется криптографический секретный код сессии, этот код шифруется с применением открытого ключа сервера (извлекаемого из сертификата сервера) и передается на сервер. Подлинность, целостность и конфиденциальность всех последующих передаваемых сообщений криптографически защищаются с использованием ключа, образуемого из секретного кода.
Хотя во всех решениях Internet-банкинга используется одна и та же схема аутентификации серверов, пользователи аутентифицируются в них по-разному. В некоторых банках используются пароли или пин-коды. Иногда используются номера аутентификации или авторизации транзакций (TAN) и списки TAN. Применяются и более сложные механизмы аутентификации пользователей, например, основанные на одноразовых паролях или схеме «вопрос-ответ». Насколько известно авторам, ни в одном достаточно крупном банке для аутентификации пользователей не применяются сертификаты с открытым ключом.
Говоря о безопасности решений Internet-банкинга, люди часто ссылаются на криптографическую мощь протоколов SSL/TLS. На самом деле, безопасность этих протоколов анализировали многие исследователи, но им удалось выявить только несколько теоретических недостатков и уязвимостей. Этот анализ основывался на модели угроз Dolev-Yao. В модели Dolev-Yao злоумышленником контролируется коммуникационный канал между клиентом и сервером, т.е. злоумышленник может пассивно или активно атаковать передаваемые по этому каналу сообщения, но не может подвергнуть опасности конечные пункты этого канала. Это не в полной мере соответствует реальной ситуации, в которой у злоумышленника имеется много способов атаковать клиента.
В действительности именно клиентская часть является наиболее уязвимой в современных решениях Internet-банкинга. В типичном случае в качестве клиентского программного обеспечения используется некоторый стандартный коммерческий браузер, функциональные возможности которого можно расширить с использованием, например, активного контента (кода JavaScript, Java-апплетов или управляющих элементов ActiveX), исполняемого в браузере. Кроме того, большинство браузеров можно модифицировать с использованием вспомогательных модулей или плагинов. Сегодняшние пользователи привыкли устанавливать в своих клиентских системах плагины всех сортов, так что совсем нетрудно распространять и зловредные плагины. Все, что нужно злоумышленнику, – это хорошая и правдоподобная легенда, которая заставила бы пользователя установить его плагин. Для этой цели можно использовать многие методы социальной инженерии.
Авторы выделяют три класса атак, которые злоумышленник может произвести на стороне клиента: атаки с кражей полномочий (credential-stealing attack), атаки с обрывом канала (channel-breaking attack) и атаки с манипулированием контентом (content-manipulation attack). Для каждого класса предлагаются соответствующие средства и методы защиты.