Крис Касперски
Будьте бдительны
Многие компании активно используют сотовые телефоны в служебных целях, доверяя им не только связь, но и конфиденциальную информацию, совершенно не задумываясь о возможных последствиях. Практически все модели телефонов содержат серьезные дефекты в системе безопасности. Угрозу представляют java-мидлеты, скачиваемые пользователями из ненадежных источников.
За последние несколько лет сотовые телефоны резко «поумнели». Сначала они обзавелись быстрыми процессорами и емкой энергонезависимой памятью, затем в них появились встроенные фото- и видеокамеры и протоколы, ориентированные на передачу больших объемов данных через Интернет. Фактически телефон превратился в миниатюрный компьютер, а компьютеру, как известно, нужны программы. Игры, записные книжки, органайзеры, платежные системы, картографические приложения, средства навигации... А вслед за программами подтянулись вирусы, черви и троянские кони.
Чего опасаться
Сотовый телефон—это своеобразный электронный кошелек. Микроплатежи через SMS уже давно стали обыденностью, и, чтобы пополнить свой счет, злоумышленнику достаточно просто зарегистрировать платный номер и создать мидлет, рассылающий SMS без ведома владельца аппарата. Информация из записной книжки представляет огромный интерес как для журналистов, так и для лиц, занимающихся промышленным шпионажем, поскольку позволяет не только установить телефоны влиятельных лиц, но и узнать некоторые интимные подробности ихжизни, существенно упрощающие психологические атаки типа социального инжиниринга.
Фотографии, снятые встроенной камерой,— это настоящая кладезь информации. Очень часто сотовый телефон используется для оперативной съемки интересных событий или технологических процессов, не предназначенных для посторонних глаз. Наличие высокоскоростных сетевых протоколов позволяет мидлетам скрытно передавать содержимое памяти телефона на какой-нибудь анонимный ftp/smtp-сервер или на другой сотовый телефон.
Наконец, аппарат может быть «порабощен» спаммером, рассылающим SMS-сообщения или даже обыкновенные письма через протокол GPRS. И не так важно, что GPRS медленный. Ведь трафик все равно не свой, а система защиты в сотовых телефонах на порядок слабее, чем в персональных компьютерах. Вы видели сотовый телефон с антивирусом? А заплатки когда последний раз устанавливали? И брандмауэра, надо полагать, тоже нет. Одна надежда на встроенную систему безопасности.
Откуда ноги растут
Для начала несколько пояснений, касающихся используемой терминологии. Сокращение J2ME расшифровывается как «Java 2 Platform Micro Edition», т. е. Java-платформа версии 2—специальная редакция для микроустройств. CLDC, в свою очередь, означает «Connected Limited Device Configuration» — конфигурации коммуникационных устройств с ограниченными ресурсами, другими словами, Java для мобильных телефонов, КПК и смартфонов.
J2ME-пpилoжeниe, называемое мидлетом (от английского midlet), начинает свой жизненный путь с предверификатора (preverifier), анализирующего байт-код на предмет выявления подставных вещей. Проверенный байт-код передается в MIDP (Mobile Information Device Profile —профиль для мобильного устройства с информационными функциями), в сферу компетенции которого входят следующие функции:
1. Жизненный цикл мидлета (инсталляция, удаление, обновление, запуск, остановка, пауза, возобновление работы);
2. Безопасность и авторизация доступа к защищенным функциям (например, коммуникационным);
3. Графический интерфейс (в том числе низкоуровневый, пригодный для программирования игр);
4. Ввод команд пользователя (например, посредством клавиатуры).
Для абстрагирования от конкретного оборудования MIDP обращается к CLDC-библи-отеке, экспортирующей все жизненно важные функции (кстати говоря, CLDC версии 1.0 не поддерживала плавающей арифметики и ее приходилось эмулировать непосредственно самому мидлету). Байт-код, включая код библиотеки CLDC, исполняется на виртуальной Java-машине, обозначаемой аббревиатурой KVM (K-Virtual Machine). А сама виртуальная машина опирается на API-функции операционной системы (Operating System), «натянутой» поверх аппаратного обеспечения (Hardware). Для увеличения производительности Java-машина оптимизирует код (Java Code Compact, сокращенно JCC), применяя вполне традиционные алгоритмы оптимизации, общие для всех языков. Собственного названия удостоилась лишь одна технология—ROMizing («ромизация»), обеспечивающая упреждающую предзагрузку и связывание (prelink) классов, что замедляет загрузку, но увеличивает производительность мидлета во время его выполнения.
Рассылка SMS
Разработчики сотовых телефонов позволили мидлетам рассылать SMS-сообщения путем вызова специальной API-функции, на аппаратном уровне выводящей запрос на подтверждение. Его никак нельзя отключить, что вполне логично.
Известное изречение гласит: защита, как столб,—ее трудно перепрыгнуть, но легко обойти. Хакерской группе «The Phenoelit Hackers group» удалось найти брешь в обороне Siemens S55. Вывести запрос на подтверждение («allow SMS15142467980—Уеs/Nо») конструкторы вывели, а вот заблокировать дисплей забыли, в результате чего мидлеты получили возможность перезаписать оригинальный текст, заменив ее каким-нибудь безобидным вопросом в стиле «Wanna Play?» Пользователь нажимает «Yes» и SMS-сообщение скрытно уходит адресату. Проверка остальных телефонов показала, что данная уязвимость затрагивает весь модельный ряд, распространяясь не только на SMS, но и на другие запросы на подтверждение. У телефонов Motorola V600 и Nokia 3600 в этом отношении все нормально, поскольку они блокируют дисплей перед выводом любых запросов на подтверждение.
Фрагмент Java-кода, обеспечивающий защиту запроса на подтверждение отправки SMS
Void PermissioriDialog(...) // запрос на подтверждение отправки SMS
Permi ssionForm.setCommandListener (this);
// блокировка дисплея от изменений
displayManager.preemptDisplay (token, this, form, true);
private void SetAnswer(...) //
отправка SMS
// снятие блокировки с дисплея displayManager.donePreempting(preemp tToken); notifyO;
Хранилища
Когда мидлету требуется сохранить какие-либо данные в энергонезависимой памяти, то он это делает не напрямую, а через специальный интерфейс, обеспечивающий управление хранилищами (Record Stores). Каждый мидлет может иметь одно или более хранилищ, а начиная с MIDP 2.0 появилась поддержка разделяемых хранилищ, к которым могут обращаться сразу несколько мидлетов. Физически хранилища представляют собой группы записей (Record), а записи есть не что иное как обыкновенные массивы байтов. Доступ к хранилищам осуществляется по уникальному имени, состоящему из имен производителя (Vendor Name), мидлета (MIDIet Suite Name) и записи (Record Store Name). Записи, принадлежащие различным мидлетам, могут иметь совпадающие имена (также, как разные каталоги могут содержать одноименные файлы).
Хранилищами заведует система управления записями (Record Management System, RMS), гарантирующая, что данные одного мидлета не попадут к остальным без его согласия. Программисты, уверенные в непогрешимости защиты, сплошь и рядом помещают в хранилища секретные данные.
В действительности большинство производителей реализуют RMS-системы на языке Java, предоставляя высокоуровневые API-функции (High level MIDP API), вызываемые мидлетами и выполняющие все необходимые проверки. Однако, если спуститься на одну ступеньку вглубь, мы обнаружим низкоуровневые API-функции (Low level API), также доступные мидлетам и позволяющие обращаться к любому хранилищу без проверок вообще (в первую очередь следует обратить внимание на класс RecordStoreFile, название которого говорит за себя).
Причем хранилища обычно размещаются в одном из файлов и доступны для просмотра через штатный проводник или функции файлового ввода/вывода. Теоретически, хранилища должны быть зашифрованы, чтобы никакой мидлет не смог добраться к ним через файловую систему, но в некоторых телефонах они хранятся в открытом виде. В частности, на Nokia 3650 хранилища сосредоточены в файле rms.db, находящемся в текущем каталоге мидлета (т. е. лежат там же, где и Jad/Jar-файлы), что делает ихлегкой жертвой для атаки.
Заключение
Мы рассмотрели только две уязвимости мобильных устройств, на деле их больше. Но не спешите выкидывать свой телефон на помойку, если в нем обнаружена уязвимость. Где гарантия, что другой аппарат окажется лучше? Более надежный выход—скачивать мидлеты только из надежных источников. Это не защит от атак на 100%, но существенно снизит их вероятность.
Список литературы
IT спец № 07 ИЮЛЬ 2007
Другие работы по теме:
Работа с базами данных в JAVA на основе соединения JDBC
Предварительная компиляция SQL-запросов по месту исполнения. Использование инструкции prepareStatement. Использование синтаксиса определения вызова для получения значения, возвращаемого процедурой или функцией. Создание инструкции на выборку по запросу.
Восемь мифов про Java
Java это платформа, современная программная платформа, по большому счету стремящаяся заменить все функции операционной системы. Возможно, это в скором будущем и произойдет.
Разработка приложения на Java
Разработка и создание игры "Змейка". Использование динамически-активных принципов языка Java. Графические объекты программы. Описание игры, правила, теоретические сведения. Классы приложения. Типы данных. Реализация. Метод. Объект. Блок-схема игры.
Разработка приложений для мобильного устройства
Основы создания мидлетов (midlet) - MIDP приложений для мобильных устройств на языке Java. Особенности устройств, для которых мидлеты предназначены. Библиотеки javax.microedition. Практические примеры создания MIDP приложений для телефона и их запуск.
Выбор и обоснование языка программирования
Java — объектно-ориентированный язык программирования, разрабатываемый компанией Sun Microsystems с 1991 года и официально выпущенный 23 мая 1995 года. Изначально новый язык программирования назывался Oak (James Gosling) и разрабатывался для бытовой электроники, но впоследствии был переименован в Java и стал использоваться для написания апплетов, приложений и серверного программного обеспечения
The Microsoft Antitrust Case Essay Research Paper
The Microsoft Antitrust Case The case against Microsoft was brought buy the U.S. Department of Justice, as well as several state Attorneys General. Microsoft is accused of using and maintaining monopoly power to gain an unfair advantage in the market. The case has been under observation for a long time, but the Justice department is having trouble coming up with substantial evidence against Microsoft.
Microsoft Dilemma Essay Research Paper The Microsoft
Microsoft Dilemma Essay, Research Paper The Microsoft Dilemma During the early 1980 s, a Seattle based company named Microsoft began it s business campaign. Lead by a young computer programmer, Bill Gates, Microsoft would soon become the largest computer software maker in the world. This title did not come without a heavy price.
For Some Odd And Strange Reason Essay
, Research Paper 1/29/01 For Some Odd & Strange Reason It was a cold and blistering December morning on the campus of SUNY Brockport. Waking up and going to class on these dreadful mornings are a students worst nightmare. But for some odd and strange reason, something possessed me to get up early and retrieve a hot cup of java from the college coffee shop, Jitterbugs.
Indonesia Essay Research Paper IndonesiaThis report will
Indonesia Essay, Research Paper Indonesia This report will be on the History in Brief of Indonesia, the Government of Indonesia, the island of Java, and the Geography of Indonesia. In early days, the region from India to Japan, including Indonesia, was known to the Europeans as the Indies. Chris Columbus was looking for a westward sea root from Europe to the Indies, when he arrived in America.
Object Oriented Programming Essay Research Paper IntroductionObject
Object Oriented Programming Essay, Research Paper Introduction Object Orientation has become more and more important in the last years. Object oriented programming was designed for re-use of codes. It is a type of programming in which programmers define not only the data structure, but also the types of operations that can be applied to the data structure.
Programming Languaguages Essay Research Paper Programming LanguagesA
Programming Languaguages Essay, Research Paper Programming Languages A programming language is a set of English-like instructions that includes a set of rules for putting the instructions together to create commands. A translator changes the English-like commands into numeric code that the computer can understand.
Web Application Servers Essay Research Paper Web
Web Application Servers Essay, Research Paper Web App Servers A new breed application platforms known as web app servers, for internet based applications, has been born. These new application development environments provide the means for internet pages to contain and transfer information to and from the client’s browser.
Java Essay Research Paper Java is the
Java Essay, Research Paper Java is the substance whose aroma is awakening the Internet community. It is a new programming language developed by Sun Microsystems that has
Java Essay Research Paper Final Term PaperThe
Java Essay, Research Paper Final Term Paper The Java Revolution Java s new-age design is leading the object-oriented programming language design revolution; allowing even greater portability, state of the art security measures, and more extensive reusability. First, a brief description of what makes a programming language object-oriented so that its importance can be realized.
Java Verses C Essay Research Paper Java
Java Verses C++ Essay, Research Paper Java vs. C++Since their inception, computers have played an increasingly important role in today s society. Advancements in technology have enabled computers to become faster and cheaper. Today, the majority of families own a home computer that is vastly more powerful than giant mainframes of years gone by.
Xml And Java Essay Research Paper XML
Xml And Java Essay, Research Paper XML and Java Abstract Most web developers are intimately familiar with HTML, which is a language for presenting information on-screen so that it can be read by a human. A new markup language is rapidly gaining attention, however. XML allows for the presentation of information which can be read by a computer program.
Microsoft Antitrust Editorial Essay Research Paper Microsoft
Microsoft Antitrust Editorial Essay, Research Paper Microsoft: The Big Bully Stealing Your Lunch Money A monopoly, by definition, is a business or group that engages in unfair and often unethical business practices to control an industry and eliminate all competition that might lessen their profits.
Sun Microsystems Inc Essay Research Paper Sun
Sun Microsystems, Inc. Essay, Research Paper Sun Microsystems, Inc. NASD : SUNW Sector: Technology Industry: Computer Hardware Sun Microsystems, Inc. is a worldwide provider of products, services and support solutions for building
Is Cobol Dead Essay Research Paper There
Is Cobol Dead Essay, Research Paper There is common question being asked by many in the programming world. That question is ?Is COBOL dead?? In spite of the years of criticism and all the predictions that some new language will soon replace COBOL, COBOL continues as a language of business data processing.
Is Cobol Dead Essay Research Paper Is
Is Cobol Dead Essay, Research Paper Is COBOL dead? To be completely honest, I originally had no idea. I knew that I took it as programming class last semester, but I didn’t know how it applied to the business world. Nor, had it ever crossed my mind in the 3+ months that I used it. The fact that you asked the question made me wonder myself, so I had to do some reading.
Pbs Essay Research Paper PROCESS BASED SECURITY
Pbs Essay, Research Paper PROCESS BASED SECURITY, WHAT IS IT AND HOW IT WILL CHANGE YOUR COMPUTER?S LIFE This note is for the purpose of explaining a new way to implement operating system security called process-based security. First, an explanation of traditional operating system security is given. Next, an explanation of process-based security is given.
Making A Web Page Essay Research Paper
Making a Web Page For my science project I chose to create a web (internet) page, dealing with science. This project consists of using a computer and a html editor to create a page that can be found on the internet. The next paragraph will explain how to make an internet page. The steps to making a web page to post on the internet, is very easy.
Java Project Essay Research Paper Jennifer
Java Project Essay, Research Paper // Jennifer Farley // Java Term Project import java.awt.*; import java.applet.*; public class scroll extends java.applet.Applet implements Runnable {
Differences Between Java And C Essay Research
Paper DIFFERENCES BETWEEN JAVA AND C++1 INTRODUCTION Since its release in 1995, Java has been hyped in many places, including computer magazines, broadcast news, and the Internet, as the solution to all problems in the application development community. As it has only been around for approximately 4 years now, it is still emerging into the programming language market.
Apple Vs Pc Essay Research Paper Apple
Apple Vs Pc Essay, Research Paper Apple vs. The World Apple vs. The World In past years, Apple was on a downward spiral, but now the Mac is back on the right track. The interim CEO Steve Jobs has brought them from expected quarterly loses to now, first quarter net income of some 150 millions dollars. The question still remains, is Apple back to stay? With the Windows driven world of today, can Apple assert them self to claim market share? Apple?s stunning new hardware, user-friendly operating system, and drive for incredible new technology, will not only compare Apple to traditional PC and software maker but will stun the rest of the computer world along the way.
Conditional And Iterative Data Types Essay Research
Paper Conditional and Iterative A programming language cannot be a programming language with out its conditional and iterative structures. Programming languages are built to accomplish the task of controlling computer input and output. A programmer must use every tool available to complete his/her given tasks, and conditional as well as iterative statements are the most basic items of programming which must be mastered.