Pull to refresh

Все сломано

Reading time15 min
Views57K
Original author: Quinn Norton
Представляю вашему вниманию перевод статьи Everything is Broken, опубликованной в мае 2014 года на The Medium американской журналисткой Quinn Norton, которая специализируется на проблемах информационной безопасности. Статья рассматривает современный мир информационных технологий и место вопросов безопасности и конфиденциальности данных в нем. Статья местами содержит довольно резкую критику, тем не менее, поднимаемые в ней проблемы актуальны и не решены по сей день. В конечном счете, в этом, отчасти, и заключается работа журналиста — задавать неудобные вопросы.



Однажды, один мой знакомый получил контроль над тысячами компьютеров. Он нашел уязвимость в программном обеспечении и принялся испытывать ее. В процессе, он понял что, теоретически, может получить полный административный контроль над всей сетью, где используется данное программное обеспечение. Он загрузил скрипт на удаленный сервер и запустил его, чтобы посмотреть что произойдет, а сам отправился спать. На следующее утро он решил проверить результат работы, и каково же было его удивление, когда он обнаружил, что имеет полный доступ на 50 000 компьютерах. Испугавшись ответственности за содеянное, он тут же остановил процесс и принялся удалять свои скрипты. В конечном счете, как он мне сказал, он даже уничтожил жесткий диск, бросив его в огонь. Я не могу выдать вам личность этого человека, потому что не хочу чтобы он оказался в Федеральной тюрьме, что и произошло бы, если бы он сообщил о найденной уязвимости и своем эксперименте кому-то еще. Вам наверное интересно, пофикшен ли сейчас это баг? Возможно да, но точно не благодаря моему знакомому. Это история не так уж и удивительна. Проводите время на хакерской сцене и вы услышите истории и похуже.

Трудно объяснить обычным людям, какое большое количество технологий работает весьма посредственно и что их жизни уже давно тесно переплетены с IT-инфраструктурой, подобно прессованной проволоке.

Компьютеры и компьютерные технологии — все сломано.

Сделай это плохо, и они придут


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

АНБ делает свое дело настолько хорошо, насколько плох софт.

За восемь месяцев до разоблачения Эдварда Сноудена, я написала в твиттер это:

Всё имеет 0-day уязвимости, всё можно отследить, получить доступ к любой информации, всё уязвимо. Всё, мать его, уже взломано.


Это было мое раздраженное признание того, что попытки найти хорошее программное обеспечение изначально обречены. Разрабатываемые людьми, у которых не хватает то денег то времени, большинство программ видят свет в тот момент, когда они достаточно хороши, чтобы позволить уже пойти кому-то домой, увидеть наконец свою семью. То, что мы получаем в итоге, в основном, ужасно.

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

Ваш среднестатистический Windows-десктоп настолько сложен, что ни один человек на земле не знает всего, что и как там на самом деле работает.

А теперь представьте — миллиарды черных ящиков внутри других ящиков постоянно пытаются взаимодействовать между собой, примерно в одно и то же время. Они разделяют гигабайты данных, и отправляют команды от программ поменьше к программам побольше, таким, как например браузер. Это и есть Интернет. И все это должно происходить одновременно и плавно, иначе вы впадаете в истерику, потому что из корзины куда-то делись выбранные вами билеты в кино.

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

У НАСА был огромный штат гениев, для того чтобы создавать и использовать программное обеспечение той эпохи. У вашего телефона есть только вы.

К тому же вы постоянно откладываете автоматическое обновление, потому что оно отвлекает вас своими напоминаниями от игры в Candy Crush Saga.

Из за всего этого страдает, в первую очередь, безопасность. Помимо того, что в программах и так достаточно досадных ошибок, программы часто имеют особый вид уязвимости, называемый 0-day. Ничего не может защитить вас от 0-day. Ноль в названии этого термина — это количество дней которое есть у разработчиков чтобы исправить проблему. Существуют не опасные 0-day, есть опасные, и бывают катастрофические. Это все равно что отдать ключи от дома первому встречному. Я гарантирую вам, что прямо сейчас вы читаете это на устройстве со всеми тремя типами 0-day. Я слышу как вы говорите: «Но Куинн, если никто о них не знает, как ты о них узнала?». Все потому, что даже качественный софт должен взаимодействовать с куда менее качественным. Люди, чья работа заключается в том, чтобы сделать программное обеспечение более безопасным, могут поместиться в большом баре. Я видела как они пили вместе. И это не утешает. Вопрос не в том, есть ли уязвимость, вопрос когда ей воспользуются.



Здесь говорится о случае который действительно произошел несколько лет назад. Чтобы пофиксить баг в одной части программного обеспечения, разработчик Debian просто закомментировал строку в другой, не понимая, что оставил систему шифрования уязвимой для атак.

Посмотрите на это с другой стороны — каждый раз, когда вы применяете обновления для системы безопасности (по моему чуть ли не ежедневно на моем компьютере с Linux), они могут содержать потенциальные уязвимости. И кто знает как долго они просуществуют. Может дни, может годы. Никто не афиширует эту часть обновлений. Люди говорят: «Вы должны применить этот критический патч!» подразумевая «… потому что разработчики облажались настолько, что личные данные вашего ребенка, вероятно, в настоящее время, уже были проданы Эстонской Мафии»



По настоящему плохие ошибки (и кто знает какие из них присутствуют в системе, когда нажимаешь Restart Later?) могут быть эксплуатированы хакерами, правительством, и другими лицами, которые сканирую сеть с целью определить версию используемого программного обеспечения, для которого есть эксплойты. Любой компьютер, успешно проходящий сканирование, сообщает «Эй, это я! Я уязвим!» и в следующую секунду может стать частью ботнета, вместе с тысячами и сотнями тысяч других компьютеров. Часто такие компьютеры взламываются еще раз и становятся собственностью еще одного ботнета. Некоторые ботнеты даже закрывают уязвимость после инсталляции, чтобы компьютер не перешел к «конкурентам». Как вы можете узнать что такая беда случилась и с вами? Никак! Забавно если ваше пребывание в онлайне уже сдано в аренду по часам.

Следующий раз вы не будете думать что ваша бабушка настолько крута, отдавая ей должное за ее помощь опасным российским преступникам, которые вымогают деньги с оффшорных казино, устраивая DDOS атаки.


Карта, на которой изображены взломанные компьютеры, во время «Интернет переписи»

Не так давно, один хакер написал скрипт для получения контроля над встроенными устройствами работающими под управлением Linux. Эти взломанные устройства просканировали всю остальную часть интернета, и создали отчет, который сказал нам о безопасности в Интернете больше, чем мы когда либо знали. Маленькие взломанные ящики предоставили обратно полный отчет (в совокупности около 10 ТБ) и спокойно деактивировали факт взлома. Это был полезный пример, как удалось смешать с дерьмом целую планету. Если бы это было действительно вредоносное ПО, мы оказались бы в очень непростом положении.

Это происходит потому что почти все компьютеры плохо защищены — в больницах, правительствах, банках, в телефонах, светофорах, а также контролирующие выключатели, смарт-счетчики и системы управления воздушным движением. Промышленные компьютеры, которые поддерживают инфраструктуру и производство, защищены еще хуже. Хоть я и не знаю всех подробностей, но в этих областях люди меньше всего задумываются о безопасности. Другой мой знакомый остановил работу фабрики, отправив искаженный ping-запрос, в самом начале теста на проникновение. Для тех кто не знает, — ping — мельчайший запрос который вы можете отправить с одного компьютера на другой в сети. Им потребовался день чтобы вернуть все в рабочее состояние.

Компьютерные эксперты любят делать вид, будто они используют совершенно другой, более качественный класс программного обеспечения, что сделан из блестящего математического совершенства, и чьи интерфейсы не могут сравниться ни с одним конкурентом. Это неправда. Основной формой безопасности такого софта является неизвестность — так мало людей использует это программное обеспечение, что нет никакого смысла искать в нем уязвимости. Ну только если вы не АНБ, и хотите шпионить, в том числе и за системными администраторами.

Окей, качественно написанный чат с шифрованием. Что может пойти не так?


Давайте возьмем в качестве примера одну из таких программ, которую рядовой пользователь использовать не будет: OTR. OTR или Off The Record Messaging, используется для обмена сообщениями и предоставляет слой шифрования, поверх обычного текста. Это как если бы вы использовали AIM или Jabber, или что вы там используете, и общались бы с помощью кодовых последовательностей. Компьютер генерирует такие закодированные последовательности за вас. OTR это перспективная и непробиваемая технология, она была тщательно изучена, и мы с большой долей уверенности можем сказать, что она не содержит таких неприятных 0-day, как те что были описаны выше.

И кроме этого, с большой долей вероятности, OTR не является программой, которой вы пользуетесь.

Существует спецификация и библиотека для программного обеспечения, поддерживающего OTR, но это еще не позволяет им пользоваться. Она еще должна быть реализована в программном обеспечении одними не особо гениальными людьми, для использования другими, тоже не особо гениальными людьми. Теперь-то вы знаете, что обычно это заканчивается слезами.

OTR в основном используется в библиотеке называемой libpurple. Если вы хотите увидеть снобов информационной безопасности огорченными, напомните о libpurple. Libpurple написана на языке программирования называемом C.

C хорошо подходит для двух вещей: для красоты и для создания катастрофических 0-day уязвимостей в операциях с памятью.



Heartbleed — баг, затронувший сервера по всему миру. С помощью него производились утечки паролей, ключей шифрования, и кто знает чего еще? Классический C во всей своей красе.

Libpurple была написана людьми, которые хотели чтобы их open-source чат смог взаимодействовать с любой системой мгновенных сообщений в мире, и не плошал в вопросах безопасности и шифрования. Эксперты по безопасности, проводившие аудит кода, сказали, что существует настолько много потенциальных способов эксплуатации уязвимостей libpurple, что нет никакого смысла их исправлять. Только выбросить все и переписать с нуля. Это были не баги, которые позволяют читать ваши зашифрованные сообщения, нет. Это были баги которые позволяли получить доступ к компьютеру: увидеть все что вы вводите, все что вы читаете, и вероятно, позволили бы наблюдать через веб-камеру, как вы ковыряетесь в носу.

Этот прекрасный инструмент, OTR, был реализован в libpurple, в большинстве систем, которые ее используют. Позвольте мне кое что прояснить, потому что возможно даже некоторые гики до сих пор не поняли: не имеет значения насколько хорош ваш алгоритм шифрования, если атакующий сможет просто читать данные с экрана, вместе с пользователем, а я гарантирую вам что они могут. Они могут знать как это сделать или пока еще не знать, но тем не менее такая возможность есть. На вашем компьютере сотни таких libpurple: маленькие компоненты программного обеспечения, разработанные людьми с ограниченным бюджетом и сроками, которые не знали или не заботились о безопасности остальной части системы.

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

Когда мы уведомляем вас, что необходимо применить новые обновления, мы не говорим что вам необходимо починить свой корабль. Мы говорим что вам необходимо вычерпывать воду быстрее, чем она достигнет вашей шеи.

Чтобы немного отойти от темы, от всего этого ужаса и хаоса, позвольте мне сказать, что положение вещей стало лучше, чем это было ранее. У нас есть инструменты, которых не было в девяностых, например песочницы, в которых запускаются потенциально уязвимые программы, где они могут нанести остальной системе не так много вреда. (Песочница держит программу в небольшой искусственной части компьютера, отрезая его от взаимодействия с остальными программами, либо сбрасывает все сгенерированные программой данные от запуска к запуску.)

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

Люди, кстати, тоже сломаны


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

Ни у кого не получается использовать программное обеспечение правильно. Абсолютно все делают это неправильно. OTR начинает шифрование только после первого сообщения, это факт, который ведущие специалисты в области информационной безопасности и хакеры из 20 стран упустили из виду. Управление всеми публичными и приватными ключами для обеспечения безопасности на всех устройствах, сайтах и аккаунтах теоретически возможно. С таким же успехом, как и вырезать себе аппендицит. Это ведь тоже теоретически возможно. Один парень совершил подобное в Антрактиде, почему вы не можете?



С каждым экспертом в области вредоносных программ, которых я знаю, случалось так, что они по ошибке запускали какую либо подозрительную программу, вместо того чтобы изучить ее перед этим. Я знаю это потому, что однажды подобное произошло со мной, я открыла зараженный PDF файл, хотя знала — с ним что-то не так. Мои друзья, конечно, смеялись надо мной, но потом спокойно признались, что и они совершали подобные ошибки. Если некоторые из ведущих экспертов в области вредоносных программ не могут уследить за всем зараженными файлами, почему вы надеетесь что ваши родители не станут открывать электронную открытку, которую якобы отправили вы.

Электронная почта, которую вы получаете каждый день, может быть отправлена откуда угодно — люди могут написать любой адрес в заголовке From почтового сообщения, и любой из исполняемых файлов во вложениях(как например файлы Word, Excel или PDF) может воспользоваться свежим 0-day при открытии. Это, вероятно, и является ответом на вопрос, почему ваша бабушка начала работать на российских преступников и почему конкуренты узнают о ваших планах задолго до анонса. С другой стороны, если вы избегаете просмотра вложений, это означает что вы не в состоянии поддерживать работу в офисе в современном мире. Вот и весь выбор: постоянно рисковать заразиться вредоносным ПО или жить под мостом, оставляя записки на лужайке вашего бывшего дома, в которых сообщать своим детям как вы любите их и как скучаете по ним.

Эксперты по безопасности и конфиденциальности данных уведомляют общественность о подобных проблемах, но отслеживать всю эту информацию примерно так же непривычно и сложно, как брать у себя анализ крови каждое утро. Последствия пренебрежения собственной конфиденциальностью могут быть пугающими для общества. А в каждом индивидуальном случае последствия будут еще страшнее. И все это является настоящей войной на истощение между тем, чего мы хотим для себя, для своей семьи и тем, что мы должны делать для выживания как люди. Это настоящая мексиканская дуэль, поддерживаемая корпорациями и контролируемая правительством.

Я живу среди этого и я ничем не лучше. Однажды, один анонимный источник попросил меня подтвердить свою личность. Я должна была сделать несколько фото, демонстрирующих местоположение и время суток. Я должна была загрузить их и предоставить доступ моему источнику. В итоге подтверждение личности всё же пришлось отложить, потому что я нервно выключила свой компьютер, до того как файлы были переданы. «Почему я?», — спросила я его. Он ответил: «Потому что только ты настолько глупа».

Touché.

Но если я, являясь подготовленным человеком, который старается обращать внимание на эти вещи все время, могу допустить подобное, что и говорить об обычных людях.

И, наконец, культура тоже сломана


Несколько лет назад я проводила опрос среди довольно уважаемых людей, занимающихся вопросами безопасности программного обеспечения.

Первым делом, я должна объяснить кое что:

Большинство пользователей не имеют прав на установку ПО, на тех компьютерах, которыми пользуются.

То есть, большинство пользователей компьютеров не являются их владельцами. Находится ли он в интернет-кафе, или в школе или на работе — установить пользователем на такой компьютер свое ПО не является такой уж простой задачей. Каждую неделю или две со мной связывались люди, которые отчаялись в попытках обеспечить безопасность и конфиденциальность данных, и мне хотелось бы помочь им. Я бы написала им «Скачай вот эту программу… », и мы закончили бы на этом. Но следующим, что люди напишут мне, будет то, что они не могут установить это программное обеспечение на своих компьютерах. Обычно это случалось потому, что в их IT-отделе были установлены ограничения прав пользователей в рамках управления сетью. Этим людям нужны были приложения, которые смогли бы работать с ограниченными правами, в основном я имею ввиду браузеры.

И вот я задала хакерам, экспертам в компьютерной безопасности, программистам следующий вопрос: «Что делать людям в случаях, когда они не могут загрузить и установить новое ПО на свой компьютер, из за ограничения прав?». Все единогласно отвечали: «Ничего». Они не знали что делать в таких случаях. Лучше бы им перестать говорить открытым текстом, но мне сказали: «Ну, зато у них нет ложного чувства безопасности». Мне сказали, что если они не имеют доступа к лучшему ПО, то и не должны мешать людям, следящими за ними. Но я попыталась объяснить, что эти люди могут являются активистами, организаторами, журналистами, имеющими дело с правительствами, корпорациями и преступными организациями, которые приносят реальный вред людям, именно эти люди в большой опасности. Мне сказали, что в таком случае они должны приобрести себе компьютеры и работать на них.

Вот он ответ: будь достаточно богат, чтобы приобрести свой собственный компьютер или растопчись. Я говорила людям, что он не достаточно хорош, но все заканчивалось небольшими перепалками в твиттере, а затем мы расходились.

Вскоре после этого я поняла, где разошлось наше взаимопонимание. Я вернулась к этому разговору снова и попробовала объяснить экспертам: даже в самых опасных ситуациях, когда людям угрожает реальная опасность, даже когда за ними начинают охотиться вооруженные люди, даже когда шифрование и соблюдение конфиденциальности не помогают — даже тогда люди не прекращают публикации. Они просто надеются, что их не достанут.

Здесь кроется та же причина, что позволяет существовать лотереям уже тысячи лет, несмотря на низкие шансы выиграть: «Может быть все будет хорошо, может стоит попробовать»

Перед лицом враждебных организаций, технически не подкованные активисты стараются проявлять осторожность в переписке. В этом вопросе они настолько же хороши как и Anomymous. Иначе людей предупреждают о том, что необходимо беспокоится о метаданных, проявлять осторожность в социальных сетях и знать о вещах, подобных первому сообщению OTR. Люди приспосабливаются.

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



Существует разведывательная организация, называемая IC. И они могли бы нам понравится, если бы прекратили постоянно шпионить за нами, в то время как им хотелось бы, чтобы мы перестали постоянно скулить об этом.

Проведя некоторое время с ними, я понимаю, почему они игнорируют все жалобы. IC является одной из самых крупных организаций в истории, занимающихся прослушкой. Они тщательно собирают информацию и знают многое о своих коллегах, своих боссах, об их адвокатах, о сотрудниках других агентств, о президенте, а иногда, даже о некоторых членах Конгресса. За их жизнью наблюдают, и они не жалуются об этом.

Несмотря на все призывы к усилению надзора, человек будет пренебрегать ими, такова его природа. Вы же не собираетесь объяснять агентам, что это плохо, продолжая при этом заниматься тем же самым.

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

Тем не менее, это только верхушка айсберга. То что они делают, чтобы облегчить возможность шпионажа, является культурной катастрофой. Наиболее тревожными из подобных вещей являются 0day-рынок, внедрение эксплойтов и ослабление стандартов. Вопрос в том, кто хочет стать частью «нас», чтобы утверждать о том, что мы якобы в безопасности, со всеми этими эксплойтами, прослушкой, расшифровкой сообщений и сбором данных. Когда они атаковали Натанз с помощью вируса Stuxnet и оставили все другие ядерные установки уязвимыми, мы спокойно поставили общество в известность что «мы», в этом вопросе, начинается и заканчивается непосредственно IC. И в этом самая большая опасность.

Если IC или Министерство обороны или исполнительная власть считают себя истинными американцами, а остальных просто подчиненными американцами, или даже не связанные с США людьми, нам остается только быть ниже травы и тише воды, пока пройдет время.

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

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

Но самая большая из всех культурных проблем лежит на еще одной группе, которую я пока не рассматривала — нормальные люди, живущие своей жизнью рядом со всем этим безумием.

Проблемы обычных пользователей и технологий точно такие же как и проблемы политиков и обычных людей, или проблемы общества в целом. Люди верят в то что они бессильны и одиноки, но единственное что заставляет людей верить, будто они бессильны и одиноки это сама вера. Люди, работающие сообща, безмерно и ужасающе мощны.

Безусловно, существует предел того, что могут сделать люди, разделяющие одну и ту же мечту, но мы его еще не обнаружили.

Facebook и Google кажутся очень мощными, но от полного разорения, в таком случае, их отделяет где-то около недели. Они знают, что «плата» за индивидуальное удаление из социальных сетей высока, но в массовом масштабе она практически отсутствует. Windows может быть заменена чем нибудь более качественным. Правительство США может уйти в отставку из за массовых протестов в считанные дни. Конечно, это не решит все проблемы, потому что корпорации и правительство скорее предпочтут принять требования, чем умереть. Эти организации делают все, что может сойти им с рук, но мы забываем, что это как раз мы и спускаем им подобное с рук.

Компьютеры не обеспечивают безопасность и конфиденциальность данных, не потому, что это математически невозможно. Есть множество способов безопасно зашифровать свои данные, множество способов обеспечить конфиденциальность, сделать работу наших компьютеров лучше по умолчанию. Этого не происходит не потому что нет настолько умных людей. Этого не происходит потому что мы не требуем.

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



Добавил небольшой опрос:
Only registered users can participate in poll. Log in, please.
Закрывали ли вы глаза на потенциальные уязвимости при разработке, зная что они могут быть впоследствии использованы злоумышленниками?
38.14% да336
38.93% нет343
22.93% только в приложениях для доверенного круга пользователей202
881 users voted. 563 users abstained.
Tags:
Hubs:
+49
Comments95

Articles

Change theme settings