книги хакеры / журнал хакер / 150_Optimized
.pdf
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
7100 ðóá. |
4800 ðóá. |
ВНЕ КОНКУРСА
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
Silicon Power |
Transcend |
SP128GBSSDE20S25 |
TS64GSSD25S-M |
Техническиехарактеристики:
ФОРМ-ФАКТОР: 2,5 дюйма ИНТЕРФЕЙС: SATA II
ТИППАМЯТИ: MLC
КОНТРОЛЛЕР: JMF616
ЗАЯВЛЕННАЯСКОРОСТЬЧТЕНИЯ: 250 Мб/с ЗАЯВЛЕННАЯСКОРОСТЬЗАПИСИ: 230 Мб/с ВРЕМЯНАРАБОТКИНАОТКАЗ: n/a ОБЪЕМ: 128 Гб
Специальнодлятех, когосмущаютцифры40, 60 и64, когдаречьидет обобъемевнутреннегонакопителядляПК, мырешилипротестировать
болеетяжеловесныйSSD. НакопительSilicon Power SP128GBSSDE20S25
можетпохвастатьсяуже128 ГбNAND-памяти, чтодажеболеечем достаточнодлясозданиясистемногодискаиустановкивсехнужных программ. Чтоназывается, поставил— ибольшенебеспокоишься. Однакокое-чтовсе-такивызвалоунасбеспокойство. Несмотрянанеоднократнуюперепроверку, Silicon Power SP128GBSSDE20S25 справился сослучайнымчтениемхуже, чемсзаписью, чтосильноподпортилоего общиерезультаты. Затовпоследовательномчтенииэтоттвердотельный накопительпродемонстрировалнедосягаемыйдляостальныхучастниковтестарезультат— 249,99 Мб/с, оправдавзаявленныйпроизводителемпоказатель. Скоростьлинейнойзаписи, правда, оказаласьна однупятуюниже, однако202 Мб/с— тожедовольносолиднаявеличина. Неутешительнымиоказалисьрезультатытестов, имитирующихработув настоящихусловиях. Видимо, отразиласьскоростьслучайногочтения. Но, несмотрянаэто, тывсеравнопочувствуешьбольшуюприбавкупроизводительности, заменивнаSilicon Power SP128GBSSDE20S25 старый винчестерсвоегоноутбука. Аобъемав128 Гббудетужевполнедостаточно, чтобыкомфортноработатьзалэптопомилидесктопом.
¬Большойобъем.
¬Высокаяскоростьпоследовательногочтения. -Довольнонизкаяобщаяпроизводительность.
Техническиехарактеристики:
ФОРМ-ФАКТОР: 2,5 дюйма ИНТЕРФЕЙС: SATA II
ТИППАМЯТИ: MLC
КОНТРОЛЛЕР: JMicron JMF612
ЗАЯВЛЕННАЯСКОРОСТЬЧТЕНИЯ: 240 Мб/с ЗАЯВЛЕННАЯСКОРОСТЬЗАПИСИ: 110 Мб/с ВРЕМЯНАРАБОТКИНАОТКАЗ: 1 млнчасов. ОБЪЕМ: 64 Гб
ПоследнимпоспискунакопителемвнашемтестеоказалсяTranscend TS64GSSD25S-M. Впервуюочередьегохочетсяпохвалитьзато, что ондажепревысилзаявленныепроизводителемпоказателискорости линейногочтенияизаписиприблизительнона7 и9 Мб/ссоответственно. ОднакообщаяпроизводительностьуTranscend TS64GSSD25S-M оказаласьдалеконенавысоте. Этонапрямуюсвязаноснизкойскоростьюпоследовательнойзаписи. Средивсехрассмотренныхвыше SSD Transcend TS64GSSD25S-M оказалсяединственным, чьяскорость записизначительнонижескоростичтения. Этотпоказательнемогне повлиятьнаостальныепараметры, но, темнеменее, вдругихтестах Transcend TS64GSSD25S-M показал, чтовредкихслучаяхможетдать
форунакопителямсбольшейлинейнойскоростьюзаписи. Состальными жепараметрамиуTranscend TS64GSSD25S-M всевпорядке. Шестидесятичетырехгигабайтслихвойхватитдлясозданиясистемногодиска, ажизненныйресурсводинмиллиончасовпозволитневолноватьсяза здоровьенового«SSD-шного» друга.
Поверхностьнакопителясделанаизглянцевогопластика, нониее, ни отпечатковпальцевнанейвсеравновиднонебудет, ведьинтерфейс SATA II предполагаетиспользованиеустройствавнутриПКилилэптопа.
¬Скоростипоследовательногочтенияизаписивышезаявленных. -Низкаяскоростьлинейнойзаписи.
XÀÊÅÐ 07 /150/ 2011 |
019 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
|||
|
|
X |
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
|||
|
F |
|
|
|
|
|
|
t |
|
||
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
|
o |
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|
|||
w Click |
to |
|
|
|
|
|
FERRUM |
||||
|
|
|
|
|
|
m |
|||||
|
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
|||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
|||
|
|
|
|
-xcha |
|
|
|
|
|
РЕЗУЛЬТАТЫ ТЕСТОВ
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
PCMark Vantage, баллы
Corsair CSSD-F40GB2 Corsair CSSD-F90GB2-BRKT Kingston SVP100ES2/64G OCZ OCZSSD2-2VTX60G
SiliconPowerSP128GBSSDE20S25
Transcend TS64GSSD25S-M
0 5000 10000 15000 20000 25000 30000 35000
IOmeter random 4 Кбайт, Мб/с
Corsair CSSD-F40GB2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Corsair CSSD-F90GB2-BRKT |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Kingston SVP100ES2/64G |
|
|
|
|
|
|
|
|
|
|
|
|
Read |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
||
OCZ OCZSSD2-2VTX60G |
|
|
|
|
|
|
|
|
|
|
|
|
Write |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SiliconPowerSP128GBSSDE20S25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Transcend TS64GSSD25S-M |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
5 |
10 |
|
15 |
|
|
20 |
|
|
|
25 |
30 |
Who is who поверсииPCMark Vantage |
Произвольныечтениеизаписьнедлявсехнакопителей |
|
оказалисьпростойзадачей |
IOmeter Patterns, Ìá/ñ |
|
Fileserver |
IOmeter sequential 128 Êá, Ìá/ñ |
|
|
Database |
|
|
|
Workstation |
|
|
|
|
|
|
|
Webserver |
|
|
|
|
Corsair CSSD-F40GB2
Corsair CSSD-F90GB2-BRKT
Kingston SVP100ES2/64G
OCZ OCZSSD2-2VTX60G
SiliconPowerSP128GBSSDE20S25
Transcend TS64GSSD25S-M
Corsair CSSD-F40GB2
Corsair CSSD-F90GB2-BRKT
Kingston SVP100ES2/64G
OCZ OCZSSD2-2VTX60G
SiliconPowerSP128GBSSDE20S25
Transcend TS64GSSD25S-M
0 |
10 |
20 |
30 |
40 |
50 |
60 |
70 |
0 |
50 |
100 |
150 |
200 |
250 |
Read
Write
300
Вобщем-то, паттернылишнийразподтвердилито, чтоуже |
Вотони— заветныепоказатели, притягивающиестолько |
итакпонятно |
вниманияктвердотельнымнакопителям |
PCMark Vantage, Ìá/ñ
Corsair CSSD-F40GB2
Corsair CSSD-F90GB2-BRKT
Kingston SVP100ES2/64G
OCZ OCZSSD2-2VTX60G
SiliconPowerSP128GBSSDE20S25
Transcend TS64GSSD25S-M
Windows Defender Gaming
Importing Pictures to Windows Photo Gallery Windows Vista startup
Video editing Windows Movie Maker Winndows Media Center
Adding music to Windows Media Player Application loading
0,00 |
50,00 |
100,00 |
150,00 |
200,00 |
250,00 |
PCMark Vantage нагляднопоказалнетолькообщуюпроизводительность, ноисильныеислабыестороныSSD
ПОДВОДИМ ИТОГИ
Итак, пришловремяделатьвыбор. Оннебудеточеньсложным. Если тебехочетсязаминимальныеденьгипочувствоватьвсю«мощь» твердотельныхнакопителей, тоследуетприсмотретьсякCorsair CSSDF40GB2. Засвоювысокуюпроизводительностьиумереннуюценуон
020
получаетнаграду«Лучшаяпокупка». «Выборомредакции» заслуженностановитсятвердотельныйнакопительOCZ OCZSSD2-2VTX60G. Этот SSD поскоростнымхарактеристикамделитпервуюстрочкусCSSD- F90GB2-BRKT попроизводительности, затообладаетресурсомв2 млн часовбезотказнойработы, втовремякакостальныемогутпохвастатьсятолькоодниммиллионом. z
XÀÊÅÐ 07 /150/ 2011
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
|||
|
|
X |
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
|
||
P |
|
|
|
|
|
NOW! |
o |
|
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
|
||||
|
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
|
. |
|
|
|
|
|
.c |
|
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
|
||
|
|
|
|
-xcha |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
|
|
|
|||
|
|
X |
|
|
|
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
|
|
||||
|
F |
|
|
|
|
|
|
t |
|
|
|
|||
|
D |
|
|
|
|
|
|
|
i |
|
|
|
||
|
|
|
|
|
|
|
|
|
r |
|
|
|||
P |
|
|
|
|
|
NOW! |
|
o |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|
|
|
|
|||
w Click |
to |
|
|
|
|
|
|
|
FERRUM |
|
||||
|
|
|
|
|
|
|
|
Николай Арсеньев |
||||||
|
|
|
|
|
|
|
|
m |
||||||
w |
|
|
|
|
|
|
|
|
o |
|
||||
|
w |
|
|
|
|
|
|
|
|
|
|
|
||
|
. |
|
|
|
|
|
.c |
|
|
|
||||
|
|
p |
|
|
|
|
|
WEXLER |
||||||
|
|
|
|
|
|
g |
|
|
|
|
|
|
||
|
|
|
df |
|
|
n |
e |
|
|
|
||||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
BOOK T7002
Книгабез«чернил»
Технические
характеристики
Дисплей: 7 дюймов, 800x480,
ЖК, LED-подсветка
Память: 4 Гбайт + microSD (до
16 Гбайт)
Интерфейсы: USB 2.0,
миниджек
Текстовые форматы: ANSI, TXT, PDF, HTML,
FB2, PDB, EPUB
Форматы изображений: JPG, JPEG, BMP, GIF
Видеоформаты: WMV, RM, AVI, RMVB, 3GP, FLV, MP4, MPEG, MKV
Аудиоформаты: MP3, WMA, FLAC, AAC
Аккумулятор: встроенный,
литиевый
Дополнительно: встроенный динамик, радио, диктофон, видеовыход
Габариты: 190x120x6 мм
Вес: 300 г
Комплект поставки: USB-
кабель, сетевой адаптер, видеокабель, чехол, наушники, три книги серии «Вселенная Метро 2033»
Гарантия: 12 месяцев
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
WEXLER.BOOK T7002 — новый продукт WEXLER, в котором компания решилась на смелый эксперимент, встроив сенсорные клавиши. По сути, мы имеем дело не просто с электронной книгой, а скорее — со всеядным медиаплеером.
Яркийкорпусиэффектный |
смикрофонапроизводитсявформатеWAV (32/45 Кбит/с). Издополни- |
тельныхопций: нельзяпройтимимовстроенногодинамикаифункции |
|
внешнийвид |
радио. |
WEXLER.BOOK T7002 получилсяоченьяркимустройством— навыбор |
Практикаиспользования |
моделивсехцветоврадуги. Намдосталасьмодификацияссеребрис- |
|
тымзадникомибелоснежнойлицевойпанелью. Корпускнигисделан |
Книгадовольнобыстровключается, навигацияоперативна. Главноеменю |
добротно, онсоставлениздвухчастей, которыеотличноподогнаны |
встречаетинформативнымииконкамисподписями, запутатьсяневоз- |
другкдругу. НанижнемторцедоступныразъемыMicroSD, 3,5-ммми- |
можно. Раздел«Книги» являетсобойбиблиотеку: просмотркнигпоавтору, |
ни-джекподнаушникиилиакустику, видеовыходипортMini USB. Там |
названию, обложкеитакдалее. |
жерасположилсямикрофон, спомощьюкоторогоможнозаписывать, |
Вглавномменюпососедствуестьпункт«История», онускоритдоступк |
например, заметки. Всесенсорныеклавишираскиданыполицевой |
темпроизведениям, которыетычитаешьсейчас. Врежимечтенияесть |
части, илишьодна— аппаратная. Иэто— выключатель, располо- |
возможностьменятьразмершрифта, егоцвет, азаодноцветфона. Между |
женныйвнижнейлевойчастикорпуса. РядомнаходятсякнопкиPlay/ |
горизонтальнымивертикальнымрежимамипереключаемсяспомощью |
Pause, масштабирования, возвратаивызоваменю. Правеерасполо- |
клавиш Play/Pause. Раздел«Музыка» включаетфильтрациюзаписей |
женыклавишинавигации, коих, традиционно, четырештуки. Побокам |
поартисту, альбомуидажежанру, доступныразнообразныенастройки |
тынайдешьклавишиперелистывания. |
воспроизведенияиспецэффекты. Поповодувидеомыужеупоминалиоб |
Начинкаиформаты,форматы, |
ограничениях— еслиихсоблюдать, проблемнебудет. Джентльменский |
наборвключаеткалендарь, калькулятор, атакжепятокигр, средикоторых |
|
форматы... |
естьтетрисиSokoban. |
Главнаязвездашоу— семидюймовыйцветнойэкрансLED-подсвет- |
Ксенсорнымкнопкампридетсяпривыкать, особеннокбоковым. Онитак |
койиразрешением800х480 пикселей. Еговполнедостаточнодляпро- |
ипросятсяподпалец. Порадовалвстроенныйдинамик, звучитнеплохо |
смотравидеовдорожныхусловиях. Встроеннойпамяти4 Гбайтдля |
иоченьдажегромкий. Инапоследок: принажатииклавишвключается |
книжныхделболеечемхватает, аподвидеоиаудиофайлыразумнее |
вибрация— удобно! Крометого, благодаряналичиюAV-выхода, элект- |
использоватькартустандартаMicroSD. |
роннуюкнижкуможноподключитькобычномутелевизоруисмотретьсвои |
WEXLER.BOOK T7002 понимаетмножествоформатовкниг: TXT, PDF, |
любимыефильмынабольшомэкране. Кабельдляподключениявходитв |
FB2, EPUB идругие. Крометого, можнопросматриватьцветные |
комплектпоставки. Книгаилимедиаплеер? |
изображения, например, JPG сразрешениемдо3162х3162 пикселей. |
Еслитебенуженуниверсальныймедиаплееривозможностьчитатькниги, |
Послужнойсписоксовместимостисвидеофайламитакжехорош: WMV, |
тоWEXLER.BOOK T7002 — подходящийвариант. Зарядааккумуляторахва- |
AVI, MPEG иMKV. Однакостоитиметьввиду, чтокнигапереваривает |
титнасемьчасовчтенияилипятьчасовпрокруткивидео, слушатьмузыку |
видеопотокмаксимум2 Мбит/с. ТакжеWEXLER.BOOK T7002 способна |
можнохотьтридцатьчасов, носотключеннымэкраном. Традиционным |
проигрыватьаудиофайлы, включаяMP3, WMA, FLAC иAAC. Записьже |
бонусомстануткнигиизвселенной«Метро2033». z |
022 |
XÀÊÅÐ 07 (150) 2011 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
P |
|
|
|
|
|
NOW! |
o |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
w Click |
to |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
m |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
. |
|
|
|
|
|
.c |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
|
|
|
|
X |
|
|
|
|
|
|||
|
|
|
|
|
- |
|
|
|
|
|
d |
|
||
|
|
|
|
|
F |
|
|
|
|
|
|
t |
|
|
|
|
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
r |
||
|
|
|
|
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
|
|
|
|
to |
|
|
|
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
|||||
|
|
|
|
|
|
|
|
|
||||||
|
|
|
w |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
|
|
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
|
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
|||
|
|
X |
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
|||
P |
|
|
|
|
|
NOW! |
o |
|
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|
|||
w Click |
to |
|
|
|
|
|
PC_ZONE |
||||
|
|
|
|
|
m |
Капитан Улитка |
|||||
|
|
|
|
|
|
||||||
w |
|
|
|
|
|
|
|
|
|
||
|
w |
|
|
|
|
|
|
|
o |
|
|
|
. |
|
|
|
|
|
|
.c |
|
|
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
ANDROID-МАРИОНЕТКИ
Системауправления
всемиустройстваминаAndroid:чтоэто?
В любой новости про зловредные приложения для платформы Android непременно упоминается механизм, с помощью которого Google удаленно удаляет нежелательное ПО со всех устройств разом. Как работает эта система, и не может ли она сама стать самым большим каналом распространения малвари?
Начнусостатистики. ПервыйдевайснабазеAndroid — HTC Dream/ G1 — былзапущенвСШАиВеликобританиивоктябре2008 года. Началостремительногораспространенияплатформысвязывают споявлениемсмартфонаMotorola Droid вноябре2009 года. Стех порколичестводевайсов, которыеежедневноактивируются, растет феноменальнымобразом. НапоследнейконференцииGoogle I/O былазаявленабаснословнаяцифра: 400 000 активацийкаждый день! Толькоподумай: этополовинанаселенияКипраили, кпримеру, целыйБруней. Всегонаданныймоментактивированоболее100 миллионовустройствнаAndroid. Неплохо. Атеперьпредставь, что
каждымизнихGoogle можетхотьнемного, но управлять. Возможно, яслегкаутрируюислово«управлять» тутнесамоеподходящее. Достоверноизвестно, чтоGoogle можетустанавливатьиудалять произвольныеприложениячерезмеханизмGTalkService. Связываяэтосвпечатляющейстатистикойактивацийновыхустройств,
волей-неволейзадумываешьсяопотенциальносамомбольшом ботнетевмире, вкоторыйпользователисотнямитысячвходятдобровольно. Ихотяидеяпопахиваетнаучнойфантастикой, мнебыло интересноразобратьсявовнутренностяхмеханизмаGTalkService. Каконустроен? Вкакомвиденаустройстваприходятсообщения отсервера? Насколькозащищенканалпередачи? Нетлиопасности, чтосообщениесуправляющимикомандаминамоеустройство можетотправитькто-тоеще?
ВседеловGTalkService
ЛюбойдевайснаAndroid поддерживаетпостоянноеTCP/SSL/ XMPP-соединениессерверамиGTalk. Всевремя, когдаунего естьдоступвСеть. Соединениемуправляетспециальныйсервис GTalkSerive. Онпостоянноотправляетпинги(такназываемые «heartbeat-сообщения») насервераGoogle, чтобыпроверить
024 |
XÀÊÅÐ 07 /150/ 2011 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
Приложения удалены по команде Google
активностьсоединения, авслучаеобрывасвязиавтоматически переподключается. ЭтотканалсвязипозволяетGoogle осуществлятьудаленноеуправлениеустройствами. Отправленное черезGTalkService сообщениенепременнопопадаетнакаждый смартфон. Спомощьюэтогомеханизмавчастиработаетсервис
C2DM (Cloud to Device Messaging Framework), спомощьюкоторого разработчикимогутотправлятьприложениям, установленнымна смартфонахпользователей, специальныекоманды(кпримеру, на загрузкуобновлений). Правда, покаC2DM ограниченнодоступен лишьдлянекоторыхразработчиков, которыеоставилиспециальнуюзаявку. Известно, чтоОСAndroid поддерживаеткакминимум двекоманды: REMOVE_ASSET иINSTALL_ASSET, позволяющие
Google удалятьиустанавливатьпроизвольныеприложения. Такимобразом, обнаруживвAndroid Market’емалварь, инженерыкомпаниимогутотправитьсообщениеREMOVE_ASSET через GTalkService, изловреднаяпрограммабудетразомудаленасовсех подключенныхкинетуустройств. Этим, какмызнаемизновостей, компаниянеразпользовалась. Иобратнаяситуация. Кактолько Google отдаеткомандуINSTALL_ASSET, каждыйполучившийсообщениесмартфоннаAndroid скачиваетAPK-дистрибутивспрограм- мойиинсталлируетее. Такаявозможностьсоднойстороныхороша: Google можетоперативноудалитьвсюпоявляющуюсямалварь. Нос другойстороны, пугает. Ачтоесликто-тосможетреализоватьMITM- атакунаSSL-соединениеконкретноготелефонадоGTalkService и проспуфитьсообщениеINSTALL_ASSET, чтобызалитьнателефон какую-нибудьзаразу? Безопасналисистема?
Надежностьканаладанных
Небудемрассматриватьвариантсзахватоминфраструктуры Google, черезкоторуютеоретическиможнобылобызагрузитьпро- извольноеприложениесразунавсеAndroid-девайсы. Наданном этапебудемсчитатьэтофантастикой. Авотчтокажетсяболее реальным, такэтоотправкафейковыхкоманднаконкретныйде-
HTTP://WWW
links
Статьяподготовлена поматериаламисследователяДжонаОбер-
хейда(jon.oberheide. org).
Интерфейс GTalk Service Monitor
вайс. Да, подключениеGTalkService, какязаметилвыше, является защищенным: вседанныепередаютсячерезSSL. Такимобразом, базоваябезопасностьицелостностьсообщенийгарантируется ужесамимпротоколом. Номы-тознаемценуэтимгарантиям(читай материал«ВскрываемSSL» в125 номере][). ПрижеланииSSLсоединениеможноскомпрометировать, перехватитьиотреверситьпакеты, передаваемыемеждудевайсомисерверамиGoogle. ЕслиразобратьсявихструктуреиправильноподделатьсообщениеINSTALL_ASSET, томыможемпринудительноустановитьна устройствопроизвольноеприложение. Теоретически. Вопросвтом, естьлиещекакой-нибудьуровеньзащиты, например, цифровая подпись? ЧтобыисследоватьпоступающиеотGoogle’асообщения, ихнадополучить. Тысейчасможешьподумать, чтопридется включитьснифериждать, покаинженерыкомпаниивновьотправят черезGTalkService командуINSTALL_ASSET. Нокогдаэтобудет? На самомделевсепроще. Забегаячутьвперед, скажу, чтоэтажесамая службаиспользуетсявсякийраз, когдапользовательустанавливает сообщениячерезAndroid Market. Нажатиекнопки«Install» приводитктому, чточерезGTalkService отправляетсяINSTALL_ASSET, котораяинициируетнаустройствепроцессзагрузкинужного APK-пакетапрограммыиееустановки. Мыобэтомещепоговорим,
Процесс установки приложения в картинках |
|
|
|
||
Android |
1 |
Запрос |
|
||
наустановку |
|
||||
устройство |
Andoid Market |
2 |
Android Market |
|
|
|
Приложение |
|
Серверы |
|
|
|
5 |
Сообщение |
3 |
|
|
|
|
|
|||
Механизм |
INSTALL_ASSET |
|
|
||
|
Сервис |
Хостинг |
|||
|
|
||||
оплаты |
GTalk Service |
|
|||
4 |
C2DM |
APK-пакетов |
|||
|
|
||||
6 |
|
|
|
|
|
|
|
ЗагрузкаAPK-пакета |
|
|
|
XÀÊÅÐ 07 /150/ 2011 |
|
|
|
025 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
|||
|
|
X |
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
|
||
P |
|
|
|
|
|
NOW! |
o |
|
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|
|||
w Click |
to |
|
|
|
|
PC_ZONE |
|
||||
|
|
|
|
|
m |
|
|||||
|
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
|
. |
|
|
|
|
|
|
.c |
|
|
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
|
||
|
|
|
|
-xcha |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
POST-запрос в Android Market в чистом виде
сейчасжеважноодно: получитьдляисследованиясообщение INSTALL_ASSET — непроблема. Вобщем-то, дляпросмотратрафика(несмотрянато, чтоонпередаетсячерезSSL-соединение) нужно совсемнемногое:
1.ДостатьобразAndroid-эмулятора, вкоторомвключенавозмож-
ностьработысAndroid Market’ом.
2.ДобавитьсвойCA-сертификатвхранилище/system/etc/security/ cacerts.bk, используяkeytool илиportecle.
3.РеализоватьMITM-атаку, заюзавsslsnif (www.thoughtcrime.org) с CA-сертификатом.
Теперь, когдаGTalkService захочетустановитьсоединение, мы сможемперехватитьтрафик, посколькуустройстводоверяетCAсертификату, которыймысоздали. Еслипопробоватьустановить какое-нибудьприложениеизAndroid Market’анаэмуляторе, томы, соответственно, отснифаемсообщениеINSTALL_ASSET. Онобудет выглядетьпримернотак:
tickle_id: 1277687266074 assetid: -155863831473120556 asset_name: Replica Island asset_type: GAME
asset_package: com.replica.replicaisland asset_blob_url: http://android.clients. google.com/market/download/Download?assetId= -155863831473120556&userId=986032118775& deviceId=1094117203906638597 asset_signature: Ayn2bWDqckQkKsBY4JurvCFpYN0 asset_size: 5144485
Большинство параметров описывают приложение, которое пользователь запросил из Android Market’а. Интерес представляет атрибут asset_signature. Можно предположить, что это криптографическая подпись сообщения INSTALL_ASSET, с помощью которого дополнительно гарантируется его целостность. Увы, это не так. Энтузиастами давно установлено, что это не что иное, как кодированный в base64 хэш APK-файла (т.е. дистрибутива программы), который пользователь запросил из Android Market’а. Мы лишь можем в этот раз убедиться, скачав APK-пакет и выполнив соответствующие преобразования с его контрольной суммой. Становится понятно, что никакой дополнительной защиты для сообщения INSTALL_ASSET (и, стало быть, любых других) нет. Если атакующий сможет перехватить SSL-соединение между GTalkService, то теоретически сможет передать на телефон произвольные сообщения, в том числе, для установки приложений! Конечно, есть много «но»,
ипредставить в деле такую атаку довольно сложно. Для этого, по меньшей мере, нужно находиться с жертвой в одной сети, чтобы иметь возможность реализовать MITM-атаку. Не может идти и речи о каком-то массовом заражении пользователей.
Это не умаляет недостаток защищенности канала связи, но перспективы к эксплуатации недоработок тут, откровенно говоря, слабые. Поэтому не будем на этом больше останавливаться, а посмотрим, какие еще сюрпризы таит в себе платформа Android
имеханизм GTalkService.
Структура запроса после декодирования из protobuf
ВзаимодействиесAndroidMarket
Вышеясказал, чтоGTalkService вовлеченвпроцессустановкиприложенийизAndroid Market’а. Этовообщеинтереснаяистория. Тут тожеестьинтересныенюансы. Рассмотримдляначалаэтапы, которыепроходитпользовательдляустановкипрограммыизмаркета:
1.ЗапускAndroid Market.
2.Поискнужнойприложениядляустановки.
3.Нажатиенакнопку«Install».
4.Подтверждениенеобходимыхдляприложенияпривилегий.
5.Закачкаиустановкаприложения.
Послеэтогоупользователявпанелиоповещенийвыводятсясообщенияозагрузкеиустановкеприложения. Всепростоипрозрачно, но… Еслипосмотретьнапроцессизнутри, товсепроисходит несколькосложнее. ЕслипервыечетырешагавыполняютсяприложениемAndroid Market, тозапятый(самыйважный) этапотвечает совершеннодругойкомпонентсистемы, аименноужезнакомый GTalkService. Схемаработы(см. иллюстрациюдлябольшегопонимания) выглядитследующимобразом:
1.ПользователькликаетнакнопкуустановкиприложениявAndroid Market’е.
2.ПриложениеотправляетPOST-запроснасерверыAndroid Market.
3.СерверыAndroid Market отправляютинформациюозапросена установкуприложениясистемеC2DM.
4.СерверыC2DM отправляютсмартфонупользователясообщение
INSTALL_ASSET черезподключениеGTalkService.
5.КомпонентGTalkService принимаетсообщениеINSTALL_ASSET и активируетVending-компонент.
6.Vending-компонентскачиваетAPK-пакетприложенияи, вконце концов, устанавливаетприложение.
Первое, чтовызываетинтерес— это, конечноже, POST-запрос, которыйпередаетсянасервер. РазегоможетотправитьAndroid Market, то, возможно, этосможемсделатьимыспомощьюспециальногоприложения? Попробуемразобраться.
Перехваченныйзапросвыглядитследующимобразом:
POST /market/api/ApiRequest HTTP/1.1 Content-Length: 524
Content-Type: application/x-www-form-urlencoded Host: android.clients.google.com
Connection: Keep-Alive
User-Agent: Android-Market/2 (dream DRC83); gzip version=2&request=CuACCvYBRFFBQUFLOEFBQUJvZWVEVGo4eGV4OVR JaW9 . . .
Всебанально, кромепараметраrequest, вкоторомочевиднои прячетсявсеинтересное. ЗнаяGoogle, легкоможнопредположить, чтоэтоданные, упакованныевфирменнуюструктуруprotobuf (code. google.com/p/protobuf) икодированныепослеэтоговbase64. Так иесть. Декодировавхэшираспаковавструктуру, получаемданные запроса:
026 |
XÀÊÅÐ 07 /150/ 2011 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
Установка фейковых приложений
1 {
1: "DQAAAK8AAABoeeDTj8xex9TIio . . ."
2: 0 [... вырезано ...]
13: "-606db3000d480d63"
}
2 {
10{
1: "353999319718585473"
}
}
Ужечто-то, ноестьпроблема: мынезнаем, зачтоотвечаеттот илиинойпараметр. Скореевсего, этонекоторыеидентификаторы девайса, информацияоплатформе, некоторыеданныедляавторизациии, конечноже, идентификаторзапрашиваемогоизMarket’а приложения. Тутнадосказать, чтодлямногихструктурprotobuf, которыеучаствуютвработесAndroid Market, доступноописание, составленноеэнтузиастамиврезультатереверсинга. Анасайте code.google.com/p/android-market-api дажевыложенколлективно написанныйAPI, позволяющийзапрашиватьразличныеданные измаркета(описание, иконкипрограммит.д.). Правда, данныхо
структурезапросанаустановкуприложенийтамнет. Затореверсинг выполнилизвестныйисследовательAndroid-платформыДжон Оберхейд, которыйвпоследствииреализовалинтереснуюатаку, о которойяихочутеберассказать. Итак, структуразапросавсокращенномвидевыглядиттак:
[.. вырезано ..] message InstallRequest {
optional string appId = 1;
}
message RequestContext { required string authToken = 1;
[.. вырезано ..]
required string androidId = 4;
optional string deviceAndSdkVersion = 5; [.. вырезано ..]
Большинствополейиззапросамогутбытьизвлеченыизсамого девайса(например, языкинтерфейса, версиясистемыит.д.). Но тольконепараметрыappId иauthToken:
•appId — являетсяуникальнымидентификаторомприложения вAndroid Market’е. Этотидентификаторнигденеотображается,
поэтомуединственныйспособегополучить— запроситьприложениеизAndroid Market’аиотснифатьтрафик, вытащивизprotobufструктурыегоидентификатор.
•authToken — этотокенсистемыClientLogin, спомощьюкоторого серверыAndroid Market’амогутпровестиаутентификациютвоего запроса.
XÀÊÅÐ 07 /150/ 2011
ЕслиauthToken остаетсявсекрете, топроспуфитьзапросневыйдет. Нотыможешьзаметить, чторазонестьудевайса, значит, вкаком- томестесистемыонвсе-такихранится.
Именно! ТакоехранилищеназываетсяAccount Manager иявляетсяважнымкомпонентомплатформыAndroid, предоставляющем данныедляаутентификации. Например, есликакое-топриложение хочетзапоститьвTwitter сообщение, тоемунеобязательнознать логинипарольдляTwitter-аккаунта— ономожетзапроситьтокен изAcountManager, которыйпозволитемуотправитьтвит. Таквот
вэтомжесамомместехранитсяиauthToken, используемыйдля взаимодействияссерверамиAndroid Market. Носамоесмешноеиз всейэтойистории, чтоизвлечьегоможнобуквальнонесколькими строчкамикода:
AccountManager accountManager = AccountManager.get(getApplicationContext());
Account acct = getAccount(accountManager); accountManager.getAuthToken(acct, "android",
false, new GetAuthTokenCallback(), null);
Чтоэтозначит? Получается, чтоунасестьвседанные, чтобысоста- витьprotobuf-структуру, которуюяпривелвыше, исконструировать POST-запросдляотправкинасерверыAndroid Market.
Еслизапросбудеткорректным(аонбудет, вчемятебяуверяю), то наустройствочерезGTalkService будет, соответственно, отправлено сообщениеINSTALL_ASSET, чтоприведеткустановкеуказанного намиприложения! Апосколькусистемаустроенатак, чторазрешениенаустановкупользовательотдаетещедоотправкизапроса (опятьжесмотрисхему), тоеговообщениктоиниочемнебудет спрашивать. Иприложениеустановитсявсистемусовсеминеобходимымиразрешениями!
Атакачерезприложение
Теперь, когдамызнаемнекоторыетонкостимеханизмаустановки приложенийизAndroid Market’а, можнорассказатьобизящной атаке, которуюудалосьпровернутьДжонуОберхейду. Идеятакова. Еслимыможемсамиконструироватьзапросынаустановку, тоничтонемешаетнамнаписатьприложение, котороебудетделатьэто автоматически.
Еслиподобнуюфункциональностьдобавитьвовполненевинную программуиначатьраспространятьчерезAndroid Market (чтопри отсутствииконтролянесложно), товсемустановившимеепользователямможновпридачузагрузитьвсечтоугодно! Сказано— сделано. ДжоннаписалPoC-приложениеиназвалегоAngry Birds Bonus Levels, чтодолжнобылопривлечьвниманиепользователейAndroid Market. Простейшаясоциальнаяинженериясработала: программу началиустанавливатьпользователи. Наиболеевнимательныеиз нихнаверняказамечали, чтовобластиобновленияпоявлялись сообщенияобустановкеещетрехпрограмм: дляотслеживания месторасположения, осуществлениязвонковнаплатныеномераи кражиконтакт-листа.
Всеонидействительноимеливредоноснуюфункциональность, но никакнеиспользовались. Тутнадосказать, чтоисследовательсразу послетестированияPoC сообщилопроблемевGoogle, икомпания ужепофиксилабаг.
Решение, кстати, оказалось очень простым. Система теперь отмечает для себя все запросы на установку приложений, сделанные через Android Market, и проверяет, чтобы для входящего сообщения INSTALL_ASSET был ранее сделан соответствующий запрос. Если Vending-компонент получает сообщение INSTALL_ASSET для приложения, которое он не ожидает, то команда просто игнорируется. Казалось бы, проблемы больше нет. Но! В теле сообщения может находиться специальный флаг, который позволяет отрубить проверку (в том числе для сохранения функциональности для удаленного удаления приложений), но это уже немного другая история. z
027
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
|
|||
|
|
X |
|
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
|
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
r |
||||
P |
|
|
|
|
|
NOW! |
o |
|
|
|||
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|
|
|||
w Click |
to |
|
|
|
|
|
PC_ZONE |
|
||||
|
|
|
|
|
m |
Александр Лозовюк (aleks.raiden@gmail.com) |
||||||
|
|
|
|
|
|
|||||||
w |
|
|
|
|
|
|
|
|
|
|||
|
w |
|
|
|
|
|
|
|
o |
|
|
|
|
. |
|
|
|
|
|
|
.c |
|
|
|
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
|
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
7ТРЕНДОВ ВЕБ-РАЗРАБОТКИ2011
Инструментыпрогрессивныхдевелоперов
Угнаться за всеми появляющимися технологиями для создания веб-приложений невозможно. Да и незачем. Но за трендовыми решениями, которые проверены на реальных проектах гуруразработчиками, следить нужно. Мы постарались отследить самые яркие тренды — и вот что получилось.
Тренд1.ОтказотSQL
Ксовременнымвеб-проектампредъявляютсяколоссальныетре- бованияпочастиотказоустойчивости. Онидолжнывыдерживать большиеиоченьбольшиенагрузки. Однимизсамыхтрендовых способовувеличитьбыстродействиесистемысталотказотиспользованиямедленныхSQL базданныхипереходтам, гдеэтовозможно, ктехнологиямnoSQL, использующихдляхраненияданных простыеструктурыданныхвроде«ключ-значение». То, чтосложно былопредставитьещенескольколетназад, сталосейчаснастолько очевидным, чтомногиенеперестаютудивляться: «Какэтомыне дошлидоэтогоранее?». Ведьдлябольшинствавеб-приложений вовсененужнывсеэтимножестватиповданных, поддерживаемых СУБД, исредствихвыборки. Частонеобходимопростосохранить информациюииметькнейдоступсминимальнойзадержкойивы-
сокойнадежностью. SQL-запросы, какникрути, дажеприоптимизациивыполняютсяотносительномедленно. Приэтомдляхранения данныхзачастуювполнедостаточнопростохранитьключзаписии еезначение. Значение— этообычныесериализированныеданные, например, вформатеJSON илиболеепродвинутойструктуревроде messagePak, Google ProtoBuf илиApache Thrift. MongoDB пошлаеще дальше, реализоваввкачествезаменыдляудобногоJSON специальныйдвоичныйформат. Другаяразработка— Redis — перевернула понятиеkey-value-хранилищ, добавивкнимпростые, нооказавшиесяэффективнымиивостребованнымисписки, хэшиисортированныемассивы. ИнтерфейсдоступакnoSQL-базетакжемаксимально прост— обычноэтопростейшиекомандытипаget (получитьданные поключу), set (записатьданныесключом), delete (удаляетключиего данные), update (обновляетужесуществующиеданные). Нанизком
028 |
XÀÊÅÐ 07 /150/ 2011 |