Отправляет email-рассылки с помощью сервиса Sendsay

Хakep_daily

  Все выпуски  

Python Arsenal Contest на ZeroNights -2014 *


PDA   подписка    wiki   bugtrack   статьи    видео   блог   форум   поиск    друзья   






Уязвимость ShellShock опаснее, чем Heartbleed
2014-09-25 13:35 Denis Mirkov

Специалисты считают, что уязвимость в bash не уступает по своему масштабу и возможным последствиям печально известному багу Heartbleed в OpenSSL. Возможно, даже превосходит его.

И дело не только в том, что уязвимость присутствовала в bash около 22 лет. И не в том, что оперативно выпущенные апдейты не исправляют её. Главная проблема в том, насколько широко распространённым является этот баг и насколько богатые возможности для взлома он предоставляет. Уязвимы не только серверы и персональные компьютеры, но и маршрутизаторы, камеры видеонаблюдения и многие другие устройства. Огромное количество старых устройств так и не получит обновления.

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

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

002

Проверка компьютера на наличие уязвимости CVE-2014-6271 осуществляется, например, такой командой:

export evil='() { :;}; echo vulnerable'; bash -c echo;

Проверка скрипта CGI:

curl -i -X HEAD "http://website" -A '() { :;}; echo "Warning: Server Vulnerable"'

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

Уязвимость в bash уже получила персональное имя: ShellShock. Таким образом, она стала второй уязвимостью в истории, удостоенной подобной чести.

P.S. Баг в bash обнаружил французский специалист по Unix/Linux Стефан Чазелас (Stephane Chazelas).

UPD.

Пример запуска PoC с небольшим изменением на Mint с последними обновлениями:

env X='() { (a)=>\' /bin/bash -c "echo date"; cat echo

Kudos Борис «dukebarman» Рютин и @taviso



Наглядная история развития трех главных ОС мобильного рынка
2014-09-25 13:38 Джон Сноу

За последние годы мобильный рынок изменился настолько сильно, что сегодня даже топовый смартфон пятилетней давности выглядит нелепо и смешно. Развитие мобильных ОС двигалось семимильными шагами, и от господствовавших когда-то Symbian и Windows Mobile не осталось ничего, кроме воспоминаний. В том, что произошло за последние пять лет и почему изменения оказались столь глобальными, мы попытаемся разобраться в этой статье.

2007: iPhone OS 1.0 и первый анонс Android

2007 год стал одним из самых важных в истории развития карманных компьютеров и смартфонов. Именно в этом году, 9 января, на выставке Macworld Conference & Expo был представлен iPhone, перевернувший все представления пользователей о смартфонах. После презентации «телефона Стива Джобса» все остальные смартфоны мгновенно стали устаревшими, причем настолько, что, будь iPhone выпущен на год позже, ситуация нисколько бы не изменилась.

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

3

Интересно, что в техническом плане iPhone вовсе не был прорывом. Практически все находки, приписываемые Стиву Джобсу и Apple, существовали и ранее, но, как это всегда бывало с Apple, они первые догадались собрать все лучшее вместе и реализовать это на таком высоком уровне. Во многом это удалось благодаря использованию полноценной ОС, которая фактически была форком настольной Mac OS X и, как следствие, обладала широчайшими возможностями для создания приложений. Они могли задействовать в своей работе любые функции телефона, в том числе 3D-ускоритель, благодаря которому интерфейс iPhone OS работал на удивление плавно и быстро.

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

2007-й стал также годом анонса Android, который явно произошел под давлением стремительно набирающего популярность продукта от Apple. Тогда Android фигурировал только в виде бета-версии комплекта для разработчиков (SDK), оснащенного эмулятором, в котором можно было вживую «покрутить» ОС.

12 ноября SDK был выложен в Сеть, и любой пользователь или разработчик мог составить свое личное впечатление от ОС и решить для себя, стоит ли она его внимания. И впечатления большинства людей оказались очень неоднозначными. Сразу бросалось в глаза подозрительное сходство с iPhone OS; Android выглядел какой-то нелепой копией операционной системы для iPhone, намного менее эффектной, но фактически повторявшей ее. Во-вторых, Google пошла по немного странному, но логичному пути, оснастив ОС виртуальной машиной Dalvik, исполняющей свой собственный формат байт-кода, который генерировался из байт-кода Java-приложений.

Samsung Galaxy Nexus под управлением Android 4.0

Samsung Galaxy Nexus под управлением Android 4.0

Однако главной чертой ОС стала ее явная недоработанность, вызванная погоней за стремительно набирающей популярность iPhone OS. В первом Android’е не было даже таких простых вещей, как наэкранная клавиатура, поддержка Bluetooth и OpenGL, виртуальная машина исполняла байт-код без задействования JIT-компиляции, а общее впечатление создавалось такое, что в ОС нет какой-то центральной линии, но есть множество интересных идей, небрежно наложенных друг на друга стопкой. Такое ощущение, к слову, будет сохраняться еще долго, вплоть до выпуска четвертой версии ОС.

Первый iPad

Первый iPad

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

2008: iPhone OS 2.0 и Android 1.0

2008 год ознаменовался сразу двумя важными событиями, одним из которых стал выпуск нового iPhone 3G, работающего под управлением iPhone OS 2.0. Сам по себе смартфон не представлял особого интереса и являлся не чем иным, как слегка доработанной версией первого iPhone, в котором появилась поддержка 3G и A-GPS. Но вот операционная система iPhone OS 2.0 вновь стала своеобразным прорывом, принеся владельцам старого и нового варианта смартфона долгожданную поддержку нативных приложений.

Причины, по которым это событие стало настолько важным, просты. Будучи полноценной ОС, работающей на стандартном современном железе и поддерживающей все его возможности, iPhone OS дала разработчикам возможность создавать приложения без оглядки на совместимость, размеры экрана, ограничения устройства или среды исполнения (Java ME, например). Это привело к появлению большого количества мобильных приложений совершенно нового класса, которые задействуют в своей работе датчики положения, компас, GPS-модуль и преимущества большого экрана. Кроме того, iPhone OS, по сути, положила начало появлению действительно качественных мобильных игр, которые могли похвастаться хорошей 3D-графикой (задействуется встроенный 3D-ускоритель с полноценной поддержкой OpenGL), а также многопальцевым сенсорным управлением и управлением с помощью датчика положения.

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

Стоит отметить при этом, что, несмотря на законченность iPhone OS как серьезной операционной системы, в то время в ней фактически не было многозадачности. С целью сохранить плавность работы и «отзывчивость» ОС, программисты Apple оставили возможность работы в фоне только стоковым приложениям, предустановленным в ОС, тогда как сторонний софт убивался сразу после переключения на другую задачу. И хоть такой подход и отдавал DOS’ятиной, он принес свои плоды на первых этапах существования ОС, когда производительность iPhone была сильно ограниченной.

Интерактивная «журнальная страница» — одна из ключевых метафор интерфейса Metro

Интерактивная «журнальная страница» — одна из ключевых метафор интерфейса Metro

Второе важное и, наверное, еще более значимое событие 2008 года — это фактически первое рождение операционной системы Android, состоявшееся 23 сентября вместе с выпуском Android SDK 1.0, который включал в себя уже почти готовую, но все так же отдающую недоработанностью операционную систему.

Первый серийный смартфон на этой ОС появился уже через месяц и был разработан компанией HTC специально для Google. Имя он получил двойное: HTC Dream или же T-Mobile G1. Только с выпуском этого девайса стала очевидна настоящая изюминка Android как операционной системы, превращающей смартфон в некий терминал для доступа к сервисам Google. Дело в том, что Android не только включал в себя множество клиентских приложений к сервисам поисковика (поиск, почта, календарь, карты, чат и YouTube), но и позволял слинковать пользователя со всеми этими сервисами единожды, введя свои логин и пароль от почты. После этого на смартфон начинали сыпаться сообщения, пришедшие по электронной почте и в чате, уведомления из календаря, а все контакты автоматически синхронизировались с Google. Тот же логин и пароль использовались для доступа к магазину приложений, который уже включал в себя множество софтин, разработанных в течение года с момента выпуска бета-версии Android SDK.

2009: iPhone OS 3.0 и Android 1.1–2.1

2009-й можно по праву считать годом расцвета Android как мобильной ОС. Производители мобильной техники начали присматриваться к Android и анонсировать свои первые устройства на его основе, Google продолжала спешно дорабатывать ОС, залатывая множественные пробелы в ее дизайне и функциональности.

9 февраля поисковый гигант выпускает первое обновление операционной системы под индексом 1.1, которое не принесло особых новшеств и было выпущено для закрытия найденных багов и проблем в API. В конце апреля компания выложила уже полноценное обновление Android 1.5, получившее официальное имя Cupcake. Эта версия включала в себя множество важных изменений, таких как наэкранная клавиатура, виджеты рабочего стола, возможность съемки видео, поддержка Bluetooth-гарнитур, автоматическое переворачивание экрана, а также множество других.

Спустя полгода, 15 сентября, Google анонсировала Android 1.6 Donut, которая включала в себя множество доработок, движок синтеза речи, а также, что очень важно, поддержку более высоких, чем 320 на 480, разрешений экрана и интегрированную функцию подгонки приложений к разным разрешениям. Последняя позволила без каких-либо проблем запускать приложения на разных устройствах даже в том случае, если разработчик не предусмотрел поддержку разных разрешений экранов (грубо говоря, картинка просто масштабировалась).

Всего через месяц Google выпускает Android 2.0 Eclair, которую можно назвать последней на этапе перехода к действительно стабильной и полнофункциональной операционной системе. Eclair включает в себя множество доработок, таких как поддержка множества Google-аккаунтов, Bluetooth 2.1, новую наэкранную клавиатуру, переработанный интерфейс, а также множество улучшений в стоковых приложениях, например SMS, браузер и камера, которая наконец-то получила поддержку различных эффектов, цифровой зум и макрофокус.

Nexus 7 — первая по настоящему удачная попытка Google выйти на планшетный рынок

Nexus 7 — первая по настоящему удачная попытка Google выйти на планшетный рынок

Год 2009-й — это также год выпуска первых моделей смартфонов под управлением новой ОС. Лидером на этом рынке становится тайваньская HTC, выпустившая сразу три новые модели смартфонов: HTC Magic, более продвинутый HTC Hero и бюджетный HTC Tattoo. Позже в игру вступает китайский Huawei с бюджетным смартфоном Pulse и Samsung с первым девайсом легендарной линейки Galaxy, а также бюджетной «спицей» (Spica). Однако настоящий фурор производит внезапно вышедшая из тени компания Motorola со своим — ставшим впоследствии культовым — топовым смартфоном Motorola Droid, оснащенным потрясающим по тем временам 3,7-дюймовым экраном с разрешением 480 х 854 пикселей, высокопроизводительным процессором OMAP3430, 512 Мб оперативной памяти и работающим под управлением свежайшей Android 2.0. Именно благодаря Android Motorola смогла ворваться на, казалось бы, уже упущенный рынок смартфонов и впоследствии крепко удерживать свои позиции.

Что касается iPhone OS, то здесь Apple придерживается прежнего курса постепенных ежегодных модернизаций. 17 июля Стив Джобс представляет публике iPhone 3GS, оснащенный улучшенным дисплеем, более производительным процессором Samsung S5PC100, работающим на частоте 600 МГц (вместо штатных 833), графическим 3D-ускорителем PowerVR SGX535, вдвое увеличенным объемом оперативной памяти (256 Мб взамен 128 Мб), цифровым компасом и видеокамерой на 3 Мп (вместо 2 Мп в iPhone 3G). Как и положено, третья версия смартфона работает под управлением iPhone OS 3.0, включающей в себя более ста нововведений, среди которых функция копирования и вставки, поддержка MMS, поиск по всему смартфону Spotlight, а также функции удаленного вайпа и поиска смартфона.

2010: Windows Phone 7, Android 2.2–2.3, iOS 4.0

2010 год был, наверное, самым насыщенным в истории мобильной техники. Наиболее значимым событием стал анонс операционной системы Windows Phone 7, работа над которой началась в 2008 году. ОС была представлена 15 февраля на выставке Mobile World Congress и сразу привлекла к себе всеобщее внимание благодаря совершенно новому, необычному и невероятно эффектному интерфейсу Metro.

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

Интересно, что, несмотря на совершенно новый интерфейс и API программирования, который делал все написанные для Windows Mobile приложения несовместимыми с новой ОС, внутри Windows Phone продолжала оставаться все той же Windows CE с устаревшим ядром, основанным на технологиях Windows 95. Для разработки же приложений и игр Microsoft предложила использовать специальную версию Silverlight и фреймворк XNA, также используемый в мультимедиаплеере Zune и приставке Xbox 360. Тем не менее, как и в случае с iOS, многозадачность операционной системы была урезана, так что программист не мог рассчитывать на фоновое исполнение приложения, но мог использовать API для выполнения некоторых типов фоновых задач, таких как получение почты или обновление данных из Сети.

11 октября исполнительный директор Microsoft Стив Баллмер анонсировал десять устройств под управлением Windows Phone 7 от таких производителей, как HTC, Dell, Samsung и LG. Устройства сразу же были выпущены на рынок.

2010-й также стал годом очередного технологического триумфа компании Apple, которая представила миру сразу три значимых продукта: новый, действительно модернизированный iPhone 4, планшет iPad и операционную систему iOS 4.0, в которой наконец-то появилась многозадачность.

Так выглядел один из первых прототипов смартфона на Android

Так выглядел один из первых прототипов смартфона на Android

Центральное событие во всей этой цепочке, конечно же, связано с iPad — планшетным компьютером, о котором Стив Джобс говорил еще в далеком 1983 году, предрекая выпуск «мощного компьютера с размерами книги, на обучение использованию которого потребуется не больше двадцати минут». С технической точки зрения революции не произошло и в этот раз. По сути, это был всего лишь большой iPhone с экраном 9,7 дюйма, процессором на 1 ГГц и особой модификацией iPhone OS 3.2, которая почти не отличалась от версии для смартфона и позволяла использовать все те же приложения. Однако благодаря качеству исполнения Apple вновь удалось открыть совершенно новый рынок.

iPad был представлен в апреле, но уже в июне, следуя своей традиции, Apple анонсировала iPhone 4, главными особенностями которого стали экран разрешением 960 x 640 пикселей, вдвое увеличенный объем оперативной памяти (512 Мб) и фронтальная камера для видеозвонков на 0,3 Мп. Вместе с новым iPhone была представлена iOS 4.0, которая стала первой ОС, несовместимой с некоторыми предыдущими версиями смартфона и доступной для нового типа девайса — iPad.

Главной изюминкой iOS 4.0 стала более полная, но при этом неполноценная многозадачность. Отныне сторонние приложения могли работать в фоне, однако их возможности были ограничены набором «фоновых API», примерно так же, как это реализовано в Windows Phone. Приложения могли проигрывать музыку, определять местоположение устройства, выводить уведомления, запрашивать дополнительное время для выполнения незаконченной задачи, но не могли «просто работать» в фоне, как это происходит в настольных операционных системах или ОС Android.

Излишнее внимание к деталям не всегда уместно — как бы говорят дизайнеры Apple своим корейским коллегам

Излишнее внимание к деталям не всегда уместно — как бы говорят дизайнеры Apple своим корейским коллегам

Для экосистемы Android 2010 год оказался не менее значимым. Именно этот год стал настоящим бумом выпуска Android-устройств практически всеми сколько-нибудь значимыми игроками мобильного рынка. К ОС начали серьезно присматриваться разработчики, так что к середине года в Android Market можно было найти уже 100 тысяч приложений, а концу года их количество выросло до 400 тысяч. В этом же году произошло два серьезных обновления ОС, благодаря которым Android уже можно было назвать законченной ОС.

В мае была представлена версия Android 2.2 Froyo, главной особенностью которой стало улучшение производительности благодаря включению JIT-компиляции в виртуальной машине Dalvik, интеграции JS-движка V8 в стандартный браузер, а также множественные оптимизации кода. В этой же версии появилась долгожданная возможность раздавать интернет с помощью Wi-Fi (Wi-Fi hotspot), а также новый домашний экран, в котором наконец-то появился док, на манер iOS. Через полгода увидела свет версия Android 2.3 Gingerbread, в которой можно было отметить первые шаги Google по модернизации интерфейса и приведению его к более приемлемому виду, а также такие функции, как SIP VoIP, улучшения в энергопотреблении и поддержку чипов NFC.

2011: Android 3.0–4.0, Windows Phone 7.5 и iOS 5.0

2011-й стал первым годом в истории «гонки вооружений», который не преподнес каких-то сюрпризов в области мобильных ОС. Apple спокойно и невозмутимо продолжает выпускать новые версии смартфонов, планшетов и планомерно обновлять iOS. Microsoft заключает контракт с Nokia и выпускает минорное обновление Windows Phone 7.5 Mango. Google выпускает Android 3.0 Honeycomb — действительно мажорное обновление ОС, которое тем не менее не создает резонанса из-за ориентированности только на планшеты и закрытого исходного кода, серьезно ограничившего распространение ОС.

Android 3.0 была представлена 22 февраля вместе с планшетом Motorola Xoom и являла собой скорее не законченную ОС, а попытку Google вторгнуться на рынок планшетов, заново открытый Apple. Третья версия ОС не получила широкого распространения, однако сработала на отлично в качестве демонстрации того, какими будут следующие версии Android. Операционная система была серьезно переработана, в том числе в плане интерфейса пользователя, который наконец получил свой собственный запоминающийся и невероятно эффектный минималистичный стиль, названный Holo (от holographic — голографический). Интерфейс не только стал приятным для глаза, но и получил так давно ожидаемую плавность работы благодаря задействованию графического процессора. Многие другие подсистемы ОС также были переработаны, а общие требования к железу серьезно повысились.

INFO

  • Начиная с четвертой версии, iPhone OS начала носить имя iOS, и компании Apple пришлось лицензировать новое название у Cisco, которая владела правами на торговую марку IOS — ОС, работающей в маршрутизаторах.
  • Еще в 2007 году HTC создала для Google опытный образец смартфона Google Sooner с полноценной QWERTY-клавиатурой под экраном, однако смартфон так и не был выпущен на рынок.
  • Вместе с Android Google создала альянс производителей мобильной техники OHA (Open Handset Alliance), в который сегодня входит около пятидесяти компаний, среди них HTC, Motorola, Intel, LG, NVIDIA, Samsung и многие другие.

В этом же году Google выпустила еще два серьезных обновления ОС, включая версии 3.1 и 3.2, в которых была проведена дальнейшая работа по унификации интерфейса, оптимизации производительности, появилась поддержка различных USB-устройств. Однако их исходный код также был закрыт, а работа над «телефонными версиями» системы фактически завершена до конца года, когда был представлен Android 4.0 Ice Cream Sandwich.

Четвертая версия Android стала идейным продолжением Honeycomb, но ориентированным как на планшеты, так и на смартфоны. Ice Cream Sandwich включала в себя полностью переработанный стек приложений, переписанный с нуля домашний экран, реализованный по всем правилам нового UI Holo, новый шрифт Roboto, отлично подходящий для отображения текста на экранах с высокой плотностью пикселей, функцию разблокировки по снимку лица (которую легко обмануть, показав телефону фотографию владельца), функцию Wi-Fi Direct для прямой передачи файлов между устройствами, а также давно ожидаемую поддержку VPN.

Именно Ice Cream Sandwich сделал Android не просто «альтернативой iPhone для бедных», а реальным конкурентом на рынке мобильных ОС. Android 4.0 была функциональна, удобна, красива, легка в использовании и обладала функциями, которых у ее конкурента не было в принципе.

В феврале была представлена новая версия Windows Phone 7.5 под кодовым именем Mango, в которую был интегрирован Internet Explorer 9, обладающий всеми возможностями настольной версии, расширена поддержка многозадачности для фоновых приложений и появилась возможность синхронизации с Windows Live SkyDrive. Практически в то же время Стив Баллмер объявил о заключении соглашения с компанией Nokia, по которому последняя будет отдавать предпочтение Windows Phone при выборе мобильной ОС. Фактически это означало, что Nokia начинает выпуск смартфонов только на Windows со всеми вытекающими отсюда последствиями, в виде стагнации и вылета из пятерки крупнейших производителей смартфонов благодаря нелюбви пользователей к «слишком необычной» и непопулярной Windows Phone.

Windows Mobile — на смартфонах тоже был «Пуск»

Windows Mobile — на смартфонах тоже был «Пуск»

В октябре Apple представляет iOS 5.0, в которой появляется функциональность, впервые предложенная разработчиками Android, а именно Notification Center, то есть область уведомлений, доступная по выдвижению статусной строки вниз. Также новая версия ОС получает интеграцию с iCloud, облачным сервисом Apple, функционально схожим с Dropbox, и сервис iMessage, позволяющий пересылать SMS, используя интернет-соединение.

2012: Android 4.0–4.2, Windows Phone 8 и iOS 6.0

metro-ui

Рабочий стол Windows 8 в стиле Metro

Самым значимым событием 2012 года стал, конечно же, выпуск Windows 8, с которым Microsoft неожиданно для многих вновь совершила серьезный рывок вперед. Несмотря на то что технически операционных систем было представлено три, все они теперь основаны на одной кодовой базе Windows NT и базируются на интерфейсе Metro (который в настольной версии можно отключить). API между системами также теперь совместим, что делает перенос приложений фактически решенной задачей, а пользователи планшетов, по сути, будут работать с настоящей настольной версией системы. Это было очень красноречиво показано на примере представленного тогда же планшета Windows Surface с отключаемой клавиатурой.

Фактически Windows 8 — это универсальная ОС для любых типов устройств с одним репозиторием приложений, одним интерфейсом, системой организации меню и настроек. Операционная система, в которой пользователь будет работать с одним софтом, независимо от девайса, и не потеряется в новом интерфейсе. Это именно то, к чему пытались прийти Apple и Google, но первой пришла, как ни странно, Microsoft.

К слову сказать, программисты Google также не сидели на месте и успели выпустить два инкрементальных обновления ОС. В Android 4.1 Jelly Bean поработали над увеличением производительности, появились интерактивные уведомления, умный рабочий стол, который научился выстраивать элементы на экране в ответ на перетаскивание ярлыка или виджета. Появился также помощник Google Now, который подсказывал различные данные, основываясь на том, что пользователь искал недавно в Google, его местоположении и активности в Google+. Версия Android 4.2 Jelly Bean (да, именно так) принесла возможность делать сферические фотографии (аналогичные Google Street View), в ней появились давно ожидаемые кнопки управления питанием в панели уведомлений, единый интерфейс для планшетов и смартфонов, а также интеграция SELinux.

Apple, в свою очередь, представила вместе с iPhone 5 новую версию iOS с индексом 6.0, которая, по сути, не получила серьезных изменений, кроме множества мелких доработок во встроенных приложениях, интеграции с Facebook, а также удаления из состава предустановленных приложений YouTube и Google Maps (что, кстати, сыграло с Apple злую шутку, так как новые векторные карты Apple оказались никуда не годными).

Вывод

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

Статья впервые опубликована в январском номере Х за 2014 год.



Большая перезагрузка на AWS
2014-09-25 15:00 Denis Mirkov

Многие пользователи Amazon EC2 получили письма с уведомлением о принудительной перезагрузке виртуальной машины в связи с обновлением программного обеспечения на серверах Amazon. Массовая перезагрузка начнётся 26 сентября 2014 года в 2:00 UTC/GMT, а завершится 30 сентября 2014 года в 23:59 UTC/GMT.

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

Владельцы инстансов беспокоятся, что принудительная перезагрузка бесконтрольно пройдёт в их отсутствие, то есть без нужного контроля. Ты пришёл на работу — а сервер уже 4 часа в дауне.

Перезагрузка не затронет инстансы типов T1, T2, M2, R3 и HS1, а среди остальных тоже обновление затронет не всех.

В то же время известно, что обновление пройдёт абсолютно во всех регионах и зонах (AZ), но в разные дни.

1 октября компания Amazon обещает раскрыть, какая уязвимость в безопасности вызвала массовое обновление серверов. Известно, что это баг в платформе Xen, и ему присвоен идентификатор XSA-108.



Интернет вещей: защити свою кофеварку
2014-09-25 15:26 Anna Yakovleva

Шутка про то, что скоро в интернет будет выходить каждая кофеварка, уже давно перестала быть шуткой. Радионяня, которая может следить за членами семьи, и телевизор, который сохраняет зрительские предпочтения, зараженные роутеры и хакеры, взламывающие автомобили, — все это проблемы настоящего или самого недалекого будущего. Мы попросили наших друзей из компании Symantec написать про угрозы, которые интернет несет не твоему крепкому и защищенному проверенным временем софтом компьютеру, а…скажем так, не компьютерным приборам, которые внезапно оказались способными выходить в сеть, но при этом совершенно к этому большому пути не готовыми.

Будущее наступило

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

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

  • Отказ в обслуживании. Первое, что может прийти в голову, — это атаки класса «отказ в обслуживании»: мошенник просто приводит устройство в нерабочее состояние, доставляя «массу удовольствий» владельцам умных домов.
  • Бот-сети. Устройства, подключенные к сети, являются потенциальными агентами бот-сетей. Представь, что роутеры (а они также подключены к интернету) начинают рассылать спам и участвовать в DDOS-атаках.
  • Ослабление периметра. Физические объекты зачастую строились с учетом недоступности из интернета, использование же умных устройств может позволить получить доступ к закрытым сетям.
  • Случайные нарушения. Наличие умных устройств может позволить заинтересованному человеку получить данные, которые напрямую не являются вредоносными. Например, использование некоторых решений, реализующих подход BYOD, позволяет отслеживать местоположение устройства. Знание того, где находится тот или иной человек, будь то начальник компании или подчиненный, может оказаться потенциально полезным.
    При этом нужно понимать, что все сказанное не представляет собой конечный список. По мере развития «интернета вещей» будут видоизменяться существующие и появляться новые векторы атак, направленные из самых неожиданных источников.

Linux-червь

Пока интернет вещей находится на раннем этапе развития, но угрозы уже существуют. Например, эксперт Symantec Каору Хайяши недавно обнаружил нового червя, цель которого — компьютеры под управлением Linux. Поначалу казалось, что червь под названием Linux.Darlloz не представляет собой ничего особенного. Он использовал старую уязвимость языка программирования PHP (‘php-cgi’ Information Disclosure Vulnerability), чтобы подобраться к системе: червь пытается получить права администратора через перебор наиболее популярных комбинаций логинов и паролей и распространяется путем поиска других компьютеров. Затем червь оставляет на зараженном компьютере черный ход, чтобы потом злоумышленник мог отдавать ему различные команды.

Поскольку Linux.Darlloz использует старую уязвимость PHP, его распространение возможно лишь на системы, где уязвимость еще не была устранена. И если бы этим действие червя ограничивалось, то его можно было бы назвать вполне заурядным. Однако, более детально изучив его работу, Каору обнаружил интересную вещь: гуляющая по интернету версия червя заражала исключительно системы, построенные на процессорах с архитектурой Intel x86, обычно встречающихся в серверах и персональных компьютерах (загружаемый URL в коде эксплойта встраивается в двоичный файл ELF устройств на базе архитектуры Intel). Затем Каору Хайяши обнаружил также его версии и для архитектур ARM, PPC, MIPS и MIPSEL (рис. 1). Эти архитектуры больше всего характерны для таких устройств, как домашние роутеры, сет-топы (ресиверы цифрового телевидения), камеры видеонаблюдения и индустриальные системы управления. Злоумышленник мог в любой момент начать серию атак на подобные устройства.

Рис. 1. Linux.Darlloz для архитектур ARM, PPC, MIPS и MIPSEL

Рис. 1. Linux.Darlloz для архитектур ARM, PPC, MIPS и MIPSEL

Еще одно интересное наблюдение: помимо всего прочего, Linux.Darlloz ищет и пытается удалить с зараженной системы все копии другого червя, Linux.Aidra. Червь также пытается блокировать порт, используемый Linux.Aidra. В этом действии нет ничего альтруистичного. Просто, вероятно, создатель Linux.Darlloz знает, что устройства, которые заражает Linux.Aidra, обладают ограниченными вычислительными ресурсами, и не хочет позволять другому червю использовать часть этих ресурсов.

Linux.Aidra, который Linux.Darlloz пытается подавить, также служит примером угроз нового поколения. Так же как и некоторые из вариантов Darlloz, Linux.Aidra атакует небольшие устройства, а именно кабельные и DSL-модемы. Червь делает их частью своего ботнета, который затем может быть использован злоумышленниками для осуществления DDoS-атак. Автор Darlloz, кем бы он ни был, очевидно, считал, что заражение Aidra настолько широко распространено, что уже представляет потенциальную угрозу его собственному червю.
В начале 2014 года компания Proofpoint обнаружила очередную атаку, целью которой были устройства, подключенные к интернету. В результате исследования было выяснено, что заражению подверглось более 100 тысяч устройств, включая роутеры, NAS-устройства, мультимедийные центры и даже один холодильник. Данные устройства использовались для массовой рассылки спама — в ходе атаки было одновременно разослано более 750 тысяч писем со 100 тысяч почтовых ящиков (примерно 100 тысяч сообщений за кампанию, по три кампании в день с 23 декабря по 6 января).

«…заражению подверглось более 100 тысяч устройств, включая роутеры, NAS-устройства, мультимедийные центры и даже один холодильник…»

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

Уязвимость систем видеонаблюдения

Червь Linux.Darlloz лишь один случай из целой серии происшествий, знаменующих приход угрозы безопасности интернета вещей. Ранее в 2013 году Федеральная торговая комиссия США подала иск против TRENDnet, компании, которая занимается производством камер видеонаблюдения и радионянь. По словам представителя Федеральной торговой комиссии, TRENDnet позиционировала свои камеры как безопасные, в то время как «на самом деле камеры были снабжены некачественным ПО, в результате чего любой мог просматривать, а иногда даже прослушивать трансляции с этих видеокамер. В результате сотни трансляций с частных камер клиентов компании стали публично доступными через интернет», — отметил представитель Федеральной торговой комиссии США.

В январе 2012 года один блогер указал на эту уязвимость, в результате чего люди опубликовали ссылки на трансляции почти с 700 камер. «Можно было наблюдать за тем, как спят в кроватках малыши, играют дети, а также за обычной жизнью взрослых людей», — сказал представитель Федеральной торговой компании. В результате торговая комиссия обязала компанию усилить систему безопасности на этих устройствах и пообещать в будущем не вводить клиентов в заблуждение по поводу степени надежности своих продуктов.
В случае с TRENDnet интереснее всего то, что подвергнутые атаке устройства не были заражены каким бы то ни было вредоносным кодом. Просто настройки безопасности позволяли получить доступ к камерам любому, кто знал, как это сделать. И это не единичный случай. Сейчас даже существует поисковая машина под названием Shodan, позволяющая осуществлять поиск устройств, имеющих выход в интернет.

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

«Взаимосвязанный мир»

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

Рис. 2. Прогнозы роста числа подключенных устройств в мире (источник: Cisco)

Рис. 2. Прогнозы роста числа подключенных устройств в мире (источник: Cisco)

Интернет вещей сейчас находится на очень ранней стадии своего развития, однако число устройств, имеющих доступ в Сеть, стремительно растет. По данным компании Cisco, в настоящий момент число таких устройств в мире составляет 10 миллиардов, что почти в 1,4 раза больше, чем все население нашей планеты, а к 2020 году это число должно составить 50 миллиардов. Интересно, что, по прогнозам компании, половина всего этого роста произойдет в последние три года этого десятилетия.

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

Каковы же причины такого стремительного роста? Коротко говоря, в интернете стало больше «места», а производство устройств обходится все дешевле. Любое подключающееся к интернету устройство получает свой IP-адрес, и таким образом оно может взаимодействовать с другими устройствами. Число возможных IP-адресов по актуальному протоколу IPv4 было практически исчерпано, поэтому сейчас получает распространение новый протокол IPv6, в рамках которого количество возможных адресов исчисляется миллиардами на каждого жителя Земли.

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

Что же касается простоты производства устройств, то многие, вероятно, слышали о законе Гордона Мура — эмпирическом наблюдении, согласно которому вычислительная мощность микропроцессоров каждые два года удваивается. Таким образом, и энергопотребление производимых чипов, и стоимость их производства все время снижается. Это же касается не только центральных процессоров, но, например, и Wi-Fi-чипов, стоимость которых за последние годы значительно снизилась. В результате производить устройства с доступом в интернет становится все проще и дешевле. Чтобы оставаться защищенным, мы рекомендуем читателю предпринять следующие меры:

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

О корпорации Symantec

Корпорация Symantec защищает информацию и является мировым лидером в области решений для обеспечения безопасности, резервного копирования и высокой доступности данных. Инновационные продукты и услуги компании защищают людей и информацию в любых средах — от самых маленьких мобильных устройств до центров обработки данных предприятий и облачных систем. Всемирно известная экспертиза Symantec в области защиты данных, аутентификации и обмена данными дает клиентам уверенность в мире информационных технологий. Больше информации доступно по адресу www.symantec.ru.



Big Data для безопасности
2014-09-25 15:30 Степа Ильин

Любовь к цифрам

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

YaC и Etsy

Например, в компании Etsy анализ большого количества данных буквально возведен в культ. На недавно прошедшей конференции Yac один из сотрудников компании рассказывал (goo.gl/k2FY9x), как они перемалывают огромное количество логов и благодаря различным метрикам серьезно усиливают защищенность веб-приложения.

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

  • количество сбросов паролей в единицу времени;
  • расхождение CSRF-токенов в единицу времени;
  • удачный/неудачный логин;
  • ошибки при вводе OTP-ключа при включенной двухфакторной авторизации и так далее.
Security-dashboard, используемый в Etsy

Security-dashboard, используемый в Etsy

Big Data без кластера

Для этого даже специально построен Hadoop-кластер, но ведь можно обойтись и без него. Для агрегации, индексирования и анализа логов есть прекрасный проект Splunk. В двух словах — это Google, но для логов. Благодаря сложной математике внутри, он умеет так парсить и хранить логи (впрочем, как и другие данные), что ты в любой момент можешь сделать очень сложный запрос и… получить ответ. Например, попросить Splunk показать количество сбросов паролей с одного IP-адреса за 30 минут:

source="/var/www/access.log" requesturl/forgotpassword.php
http_method=POST | transaction requestip | where eventcount >
10 | table request
ip, eventcount | sort -eventcount

Для запросов используется понятный язык, основанный на принципе UNIX pipes (результат одной операции передается на вход следующей), и обращаться с ним проще простого.

Парни из Splunk предлагают хранить все. Любые логи событий, логи веб-сервера, логи ошибок, лог обращений к API, логи DNS — весь этот массив данных складывать в Splunk. Если не загружать более 500 Мб данных в месяц, то использовать его можно совершенно бесплатно. Достаточно лишь установить на все машины, откуда нужно собирать логи, специальные программы-форвардеры, после чего данные с хостов будут загружаться через API и аккумулироваться в базе Splunk.

Любые данные из Splunk можно визуализировать

Любые данные из Splunk можно визуализировать

Результат любого поискового запроса можно визуализировать на Dashboard’е, что и делают ребята из Etsy. На Dashboard можно выводить все, что угодно, например показывать количество запросов, когда вернул 500+ ошибку при обращении клиента к определенной части сайта (скажем, URI=”/shop/*”).

Благодаря таким запросам можно делать сложную аналитику для проактивных действий. Например, Etsy детектит фишинговые атаки, основываясь на данных веб-сервера, в реальном времени реагирует на XSS-атаки. На экране всегда отображаются графики с ключевыми метриками, чтобы иметь возможность быстро реагировать (хотя, естественно, не обходится и без стандартных алертов по email/SMS).

В основе отчетов лежит запрос к базе данных

В основе отчетов лежит запрос к базе данных

Кто бы мог подумать

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



Китай заблокировал DuckDuckGo
2014-09-25 16:50 Denis Mirkov

Утка на логотипе DuckDuckGo имеет слегка удивлённый вид. Сейчас у неё есть все основания для такого выражения лица: китайские власти приняли решение заблокировать поисковую систему, так что теперь она не доступна для большинства местных жителей.

Основатель и исполнительный директор DuckDuckGo подтвердил факт блокировки, но сказал, что не знает о её причинах.

По информации мониторингового сервиса GreatFire, блокировка началась в районе 4 сентября.

004

Поисковик DuckDuckGo (DDG) создан в 2008 году и позиционирует себя как гиковский инструмент с продвинутыми функциями. Лишённый поискового спама, почти без рекламы, без слежки за пользователями (полностью анонимный), DDG вообще не хранит никаких данных о пользователях, так что не имеет возможности удовлетворить запросы АНБ и других спецслужб.

duck2Китайцев тоже можно понять. DDG чужд коммунистической партии по идеологическим соображениям. Он поощряет анонимность в интернете, работает через Tor (3g2upl4pq6kufc4m.onion) и даже держит собственный выходной узел Tor для удобства пользователей.

Формальной причиной запрета, скорее всего, стало отсутствия у DDG серверов на территории Китая. По закону, иностранные поисковые системы обязаны держать серверы внутри страны, предоставляя возможность цензуры.

В 2011 году глобальная аудитория DDG не превышала 200 тыс. человек, а количество поисковых запросов исчислялось парой сотен тысяч в день. Но в 2012 году после усиления слежки на сайтах Google и запуска социальной сети Google+ популярность DDG резко выросла до 1,3-1,5 млн запросов в день. Второй всплеск посещаемости пришёлся на июнь 2013 года, когда в Сеть попали первые документы Эдварда Сноудена. На сегодняшний день DDG обрабатывает более 5 млн запросов в сутки.

003



Конференция разработчиков игр от Microsoft
2014-09-25 17:00 Anna Yakovleva

В этом году Microsoft в рамках Конференции разработчиков игр подготовила доклады, которые последовательно расскажут о игровом бизнесе на платформе Microsoft, технологических возможностях и инструментарии, о том, как начать разработку приложений для магазинов Windows. Если у вас нет возможности посетить конференцию лично, Microsoft проводит онлайн-трансляцию всех докладов 3 октября в 10:00 (МСК).

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

В рамках панельной дискуссии «Опыт разработки игр на Windows – технологии и бизнес» поделятся своим мнением о рынке гранды игровой российской индустрии: Анатолий Ропотов – CEO Game Insight, Сергей Орловский – CEO Nival, Александр Лысковский – CEO Alawar, Антон Рыбаков – глава JoyBits, Ромуальд Здебский – Microsoft.

Если у вас уже есть игры, выпущенные на других платформах, то вам, несомненно, будет интересно узнать о том, как их можно перенести на платформу Microsoft.

Если же вы являетесь глубоким техническим специалистом, то мы также подготовили для вас доклады о новых возможностях инструментов разработки Visual Studio и облачных сервисах, которые могут пригодится при реализации игровых проектов.

Ждем вас на онлайн-трансляции докладов Microsoft с конференции КРИ 3 октября в 10:00 (МСК)!



Передаем звук со «спящего» смартфона на сервер
2014-09-25 17:30 Джон Сноу

О том, что стоящий в твоей комнате традиционный телефон с аккуратно лежащей на нем трубкой все равно может за тобой шпионить, известно чуть ли не со времен А. Г. Белла. Смартфоны продвинулись по этой скользкой дорожке значительно дальше. А как все это выглядит с программной точки зрения?

Введение

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

Исключительно в образовательных целях!

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

Все операции обмена данными между клиентом и сервером будут происходить по протоколу TCP/IP. В связи с тем что все взаимодействия представляют собой пересылку последовательности байт от клиента к серверу или наоборот, необходимо разработать формат отправляемых пакетов данных. Кроме непосредственно данных, будем также передавать дополнительную информацию, а именно размер пакета и идентификатор команды.

Ниже описана разработанная система команд между клиентом и сервером. Все команды передаются побайтово в следующем формате:

<Размер пакета (4 байта)> <Идентификатор команды (4 байта)> [<Дополнительные данные >]

Команды:

  • 0 — успешно выполнено;
  • -1 — произошла ошибка;
  • 1 — подключение клиента;
  • 2 — начало записи;
  • 3 — отправка записанного AAC-файла;
  • 4 — отправка записанного WAV-файла;
  • 5 — потоковая передача данных;
  • 6 — потоковая передача WAV-заголовка.

Клиент

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

Для написания клиента установим на персональный компьютер IDE Eclipse и Android SDK. Для работы данных компонентов необходим установленный комплект разработчика приложений Java Develovoper Kit. После настройки всех необходимых компонентов подключаем к компьютеру телефон (не забываем про ОС Android) с включенной возможностью отладки по USB. Теперь ты готов кодить! Создай проект в Eclipse и начинай писать программу. Написать класс для подключения к серверу труда не составит. Основные поля этого класса: Socket (программный интерфейс для обеспечения обмена данными между клиентом и сервером.), IP (адрес для подключения), Port (параметр протоколов TCP и UDP) , поток для приема данных, поток для передачи данных. Следуя принципам объектно-ориентированного программирования, все поля делаем приватными (private). В этом классе реализуем метод sendPacket() и задаем его тип synchronized. Synchronized имеет два важных момента: это гарантия того, что только один поток выполняет секцию кода в один момент времени, а данные, измененные одним потоком, будут видны всем другим потокам. В методе sendPacket() при отправке данных создаем блок обработки исключений. Если возникает исключение, информацию о нем записываем в лог и закрываем сокет.

GUI мобильного приложения

GUI мобильного приложения

Но на этом не стоит останавливаться, потребуется класс для записи данных (звука) (WavRecorder). Для этого класса необходимо описать:

  • количество бит на семпл (описываем в виде константы RECORDER_BPP = 16);
  • количество каналов записи (CHANNELINMONO);
  • формат записи (ENCODINGPCM16BIT);
  • флаг, показывающий, идет ли в данный момент запись (по умолчанию false);
  • идентификатор устройства;
  • IP-адрес сервера;
  • номер порта на сервере.

Все поля класса также делаем приватными.

На этом можно было бы и остановиться, но существует одна проблема: пользователю необходимо будет нажать на кнопку «Отправить файл» после записи, а это не самый логичный вариант для скрытого сбора данных. Для передачи данных в режиме непрерывной отправки на сервер напишем класс WavStreamer. Основой этого класса является метод run() (выполняется в отдельном потоке). Будем использовать его для записи звука и отправки данных на сервер — для дальнейшего хранения или обработки. Для потоковой передачи звука создадим «динамический» буфер, в него будут записываться наши данные с микрофона.

public void run() {
  try {
    // Подключение к сокету, получение исходящего потока данных, отправка идентификатора устройства
  } catch (IOException e) {
    // Обработка возможных ошибок и запись их в лог
  }
  byte data[] = new byte[bufferSize]; // Создание буфера
  while (isRecording) {
    read = recorder.read(data, 0, bufferSize); // Чтение данных с микрофона в буфер
    if (AudioRecord.ERROR_INVALID_OPERATION != read) {
      totalDataSize += data.length;
      sendPacket(PackageType.client_send_data, data); // Отправка буфера на сервер
    }
  }
  closeSocket(); // Закрытие соединения с сервером
}

Подробный код ты можешь посмотреть в файле WavStreamer.java. Для самого простого клиента этих классов и методов будет достаточно. Создадим экземпляр Socket’a и будем коннектиться к серверу (о котором речь пойдет далее). В случае удачного присоединения к серверу программа ожидает дальнейших указаний пользователя о необходимости записи. Если соединение не установлено, пользователь должен быть проинформирован об этом (в нашем случае ошибкой соединения). Если мы хотим начать запись, то клиент должен сообщить об этом серверу. Клиент отправляет пакет данных, в котором есть некий код. По этому коду наш сервер понимает, что клиент начал запись. Для старта записи звука в программе создается поток WavRecorder. Этот поток записывает звуковые данные с микрофона клиента-телефона. Для дальнейшего открытия записанного файла в аудиопроигрывателе необходимо записать заголовок, который состоит из определенным образом сформированной последовательности данных (байт).

Схема взаимодействия

Схема взаимодействия

Данная последовательность представляет собой определенным образом созданный байтовый массив. Подобный массив описывается во многих интернет-источниках, если тебе не хочется искать его на просторах глобальной сети, то можешь посмотреть в исходниках (он расположен в файле WavStreamer.java).

Казалось бы, все должно работать… Но возникает вопрос: почему не работает? Так как мы пользовались функциями интернета и записи аудио, необходимо сообщить виртуальной Java-машине Dalvik о том, что наше приложение пользуется этими системными функциями. Давай заглянем в файл AndroidManifest.xml и добавим в него следующие строчки:

// Доступ в интернет
<uses-permission android:name="android.permission.INTERNET" />
// Запись звука с микрофона
<uses-permission android:name="android.permission.RECORD_AUDIO" />

После этого Java-машина предоставит доступ к запрашиваемым системным функциям, описываемым в манифесте.

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

Сервер

Как и в случае с клиентом, зададимся вопросом: что должен делать сервер? Исходя из задач самого клиента, сервер должен иметь возможность получать данные от клиентов. Данные каждого клиента будут находиться в разных папках и не будут пересекаться с данными других пользователей. Сервер напишем на языке C++ с использованием фреймворка Qt5 (http://qt-project.org/downloads).

Qt — кросс-платформенный инструментарий разработки ПО. Он включает в себя все основные классы, которые могут потребоваться при разработке прикладного программного обеспечения, начиная от элементов графического интерфейса и заканчивая классами для работы с сетью, базами данных и XML.

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

Уведомление во время активной записи

Уведомление во время активной записи

Теперь перейдем к описанию структуры сервера. Основным классом сервера является MyServer, который инкапсулирует в себе объект типа QTcpServer, отвечающий за сетевое взаимодействие. MyServer на вход подается номер порта и IP, на котором будет работать QTcpServer. В обязанности данного класса входит управление новыми соединениями и перенаправление подключенных клиентов на другой класс. Для начала запустим QTcpServer, передав ему входные данные, и установим обработчик (слот) на сигнал типа newConnection(). Этот сигнал генерируется объектом класса QTcpServer при появлении нового соединения. В случае успешного запуска сервер переходит в режим сканирования порта. Обработчик новых подключений передает задачу по считыванию поступающих данных на объект типа User.

void MyServer::connection() {
  from = server - > nextPendingConnection();
  User * client = new User;
  connect(from, SIGNAL(readyRead()), client, SLOT(getMessage()));
}

Класс User при помощи функции getMessage() обрабатывает поступающие данные и вызывает соответствующую функцию для обработки запроса от клиента.

void User::getMessage() {
  static qint32 size_msg = 0, cmd;
  from = (QTcpSocket * ) sender();
  if ((from - > bytesAvailable() > 0 && size_msg) || (from - > bytesAvailable() > 2 * sizeof(qint32))) {
    QDataStream getm(from);
    if (size_msg == 0) {
      getm >> size_msg >> cmd;
      size_msg -= sizeof(qint32);
      buf.clear();
    }

    qint8 ch;
    while (!getm.atEnd() && size_msg > 0) {
      --size_msg;
      getm >> ch;
      buf.append(ch);
    }
    if (size_msg <= 0 && point_func.find(cmd) != point_func.end())
      bool r = (this - > * point_func[cmd])();
    buf.clear();
    getMessage();
  }
}

Для каждого клиента создается новый каталог, в который записываются файлы клиента. Таким образом, два клиента не будут иметь возможность записывать данные в один и тот же каталог. Файлы, хранящиеся на сервере, могут быть открыты с использованием любого аудиоплеера (для примера был использован VLC media player (https://www.videolan.org) ), который поддерживает воспроизведение файлов формата WAV.

Нет предела совершенству

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

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

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

Заключение

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



Открыта регистрация на конференцию User eXperience
2014-09-25 18:14 Anna Yakovleva

За восемь лет проведения UX Russia ни одна конференция не была похожа на другую. Каждый год появляются новые идеи, связанные с проектированием пользовательского взаимодействия, увеличивается количество каналов. И надеемся, что деятельность всех UX-специалистов отражается на качестве пользовательского опыта. Кстати, пользователей тех систем, с которыми работают UX-специалисты, становится всё больше. Компании больше вкладывают в развитие онлайн продуктов, а профессиональные UX-услуги представляют огромный интерес для бизнес и госструктур.

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

Программа конференции состоит из 25 докладов. Спикеры, которые их представят, имеют разносторонний опыт проектирования для различных платформ, каналов и бизнесов. Программа конференции охватывает все заметные проекты и явления, которые произошли в UX-сообществе за последний год. Поэтому участники услышат немало интересных кейсов и свежих теорий. Не обойдётся без рассказов об исследованиях и, конечно, футурологических прогнозов развития всего сообщества в ближайшие нескольких лет  Планируется выступление нескольких иностранных спикеров с темами о мобильной разработке, инновациях в исследовании пользователей и проектировании omni-channel.

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

Контактная информация



Первая версия криптобиблиотеки Sodium
2014-09-25 18:15 Denis Mirkov

Sodium — новая, простая в использовании программная библиотека для шифрования, расшифровки, генерации подписей, хэширования паролей и т.д.

Библиотека Sodium поучила такое название (произносится: «натрий»), потому что является форком другой криптографической библиотеки NaCl (произносится: «соль») и совместима с ней на уровне API.

В отличие от NaCl, библиотека Sodium компилируется под разные платформы и обладает продвинутыми программными интерфейсами, что только увеличивает удобство работы с ней. Sodium поддерживает множество компиляторов и операционных систем, включая Windows (с MinGW или Visual Studio, x86 и x64), iOS и Android.

Версия 1.0.0 библиотеки вышла 24 сентября 2014 года. С этого момента гарантируется обратная совместимость API и ABI, то есть новые функции будут добавлять, но при этом все старые функции гарантированно сохранятся в новых версиях библиотеки.

Исходный код

Автор библиотеки — американский программист Франк Дэвис — опубликовал исходный код и подробную документацию в виде книги на Gitbook.

Кстати, на основе NaCl сделана ещё одна простая в использовании и удобная криптографическая библиотека TweetNaCl.



Fedora избавилась от поддержки старых GPU
2014-09-25 19:40 Denis Mirkov

Поклонники Linux любят говорить, что эту операционную систему можно запустить на любом компьютере, даже на самом старом. Так оно и есть, но только не в случае с последней версией дистрибутива Fedora. Разработчики приняли решение избавиться от поддержки драйверов старых видеокарт, таких как APM, Cirrus, Glint, i128, i740, Mach64, MGA, Neomagic, R128, Rendition, S3virge, Savage, SiliconMotion, SiS, Tdfx и Trident.

В сентябре 2014 года вышла версия Fedora 21 для разработчиков, и в ней уже остались только драйверы с поддержкой DRM/KMS. Решение приняли год назад. Казалось бы, ничего неожиданного. Но с выходом dev-билда Fedora 21 некоторые продвинутые линуксоиды оказались неприятно удивлены, что этот дистрибутив отказался работать на их компьютерах.

Драйверы старых GPU редко обновляются, не поддерживают многие из современных стандартов. Если драйвер не поддерживает DRM/KMS, то этой видеокарте, вероятно, десять лет или больше.

Хотя Linux можно установить на любом компьютере, но с годами становится всё сложнее тащить за собой длинный «хвост» исторического наследия. Возможно, разработчики Fedora приняли правильное решение, обрезав его.



Семейный электромобиль Stella: опасный автопробег
2014-09-25 21:00 Denis Mirkov

Семейный автомобиль на солнечных батареях Stella совершил первую поездку по Калифорнии, преодолев 560 километров от Лос-Анджелеса до Сан-Франциско. Солнечная осенняя погода способствовала полной загрузке электромотора, который способен разогнать машину до 130 км/ч.

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

004

«Было классно видеть, как все глазеют на нас, спешат достать смартфон, чтобы успеть сфотографировать, когда мы проезжаем мимо, — сказал Лекс Хёфслут (Lex Hoefsloot), менеджер команды Solar Team Eindhoven, которая организовала автопробег. — Думаю, из-за нас возникло несколько заторов, и мы всё время боялись, что машины врежутся в нас, когда их водители делали фотографии». В этом смысле, поездка была очень рискованной. Опасно, когда все окружающие обращают на тебя внимание. Тур по Америке команда Solar Team Eindhoven начала в сентябре.

2013_0703_NK

2013_0703_JJ

2013_0703_HC

2013_0703_GU

010

Автомобиль Stella спроектирован студентами Технического университета Эйндховена, а в прошлом году эта машина выиграла гонку World Solar Car в Австралии. Сейчас разработчики обкатывают машину на дорогах общего пользования и мечтают, что смогут подготовить её для выхода на массовый рынок. Они считают, что такое возможно через 5-10 лет.

В салоне «Стеллы» — просторные сиденья для четырёх человек, планшетный компьютер с GPS-навигатором. Хотя существует много автомобилей на солнечных батареях, но Stella — первый семейный автомобиль такого рода.



Воркшопы на ZeroNights 2014
2014-09-26 09:00 Джон Сноу

Приходите на ZeroNights, и одни из лучших специалистов в своих областях поделятся с вами своими знаниями и опытом, и на практике покажут, как их применять.

  • Workshop от Андрея Беленко (Россия) научит извлекать данные с iOS-устройств (с Jailbreak и без него) с помощью open-source инструментов.
  • Во время воркшопа «Фаззинг: практическое приложение» исследователь Omair/Омар (Индия) расскажет, как заниматься фаззингом с любовью, но не терять головы.
  • Антон Кочков (Россия) и Julien Voisin/Жульен Войсин (Франция) на своем workshop’е прольют свет на использование фреймворка radare2 при реверсе и отладке malware и firmware

P.S. CFP еще идет ;)



Эксплоит Shellshock для DHCP-сервера
2014-09-26 11:35 Denis Mirkov

Если у вас есть доступ к локальной сети крупного предприятия, то вы можете посеять хаос и панику в рядах Linux-пользователей, запустив DHCP-сервер с эксплоитом Shellshock на борту. Концептуальный эксплоит показал Джефф Уолтон (Geoff Walton), старший консультант по безопасности из компании TrustedSec.

DHCP — сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры для работы в сети TCP/IP. Протокол работает по модели «клиент-сервер». Для автоматической конфигурации клиент на этапе конфигурации сетевого устройства обращается к серверу DHCP и получает от него нужные параметры.

Итак, воспроизвести уязвимость проще всего на популярном DHCP-сервере TFTP, слегка изменив его настройки, чтобы сервер не только отвечал на запросы клиентов, но и сам обращался к ним (dhcp-parameter-request-list).

Для внедрения эксплоита подходит любое строковое значение, но надёжнее всего использовать 114 (URL). Запускаем сервер и устанавливаем для 114 следующее значение:

() { ignored;}; echo ‘foo’

003

Разумеется, вместо echo ‘foo’ может быть любая команда, которые вы хотите исполнить на клиентских компьютерах.

004

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



Python Arsenal Contest на ZeroNights -2014
2014-09-26 12:23 Джон Сноу

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

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

Правила

  • Проект/скрипт/плагин/расширение должно использовать библиотеку с сайта.
  • Новый инструмент (ранее не публиковался) либо мажорное обновление к уже известному проекту/библиотеке/плагину с новыми интересными функциями.
  • Необходимо описание, требования, руководство по установке.

Присылайте свои разработки на pythonarsenal@zeronights.org. Результаты будут объявлены на конференции ZeroNights (14 ноября 2014).

Призы

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

Номинации

  • Лучшая тулза/плагин/библиотека для эксплуатирования багов
  • Лучшая тулза/плагин/библиотека для расследования инцидентов
  • Лучшая тулза/плагин/библиотека для реверсинга
  • Лучшая тулза/плагин/библиотека для фаззинга
  • Лучшая тулза/плагин/библиотека для анализа вредоносного ПО

Комитет

  • Аарон Портной (Exodus Intelligence)
  • Александр Матросов (Intel)
  • Дмитрий «D1g1» Евдокимов (Digital Security)
  • Хальвар Флэйк (Google Inc.)
  • Джастин Зайц (Immunity Inc.)



© Copyright Gameland

В избранное