Раней мы
Як ні дзіўна, спачатку Колсек не змог прайграць апісаную і прадэманстраваную Джонам напад, калі ён выкарыстоўваў Internet Explorer, які працуе ў Windows 7, каб загрузіць, а затым і адкрыць шкоднасны MHT-файл. Хоць яго мэнэджар працэсаў паказаў, што system.ini, які планавалася выкрасці ў самога сябе, быў прачытаны схаваным у MHT-файле скрыптам, але не быў адпраўлены на выдалены сервер.
"Гэта выглядала як класічная сітуацыя працы так званай "пазнакі для файла, атрыманага з сеткі (англ. mark-of-the-Web)", – піша Колсек. «Калі файл атрыманы з Інтэрнэту, правільна працавальныя прыкладанні Windows, такія як вэб-браўзэры і паштовыя кліенты, дадаюць пазнаку да такога файла ў форме
Даследчык пераканаўся ў тым, што IE сапраўды паставіў такую пазнаку для загружанага MHT-файла. Затым Колсек паспрабаваў загрузіць гэты ж файл з дапамогай Edge і адкрыць яго ў IE, які застаецца дадаткам па змаўчанні для файлаў MHT. Нечакана эксплойт спрацаваў.
Спачатку даследнік праверыў "mark-of-the-Web", аказалася, што Edge захоўвае ў альтэрнатыўным струмені дадзеных акрамя ідэнтыфікатара бяспекі яшчэ і крыніца паходжання файла, што можа выклікаць некаторыя пытанні ў адносінах да прыватнасці такога метаду. Колсэк выказаў здагадку, што дадатковыя радкі маглі заблытаць IE і не даць яму прачытаць ідэнтыфікатар бяспекі, але, як аказалася, праблема была зусім у іншым месцы. Пасля працяглага аналізу спецыяліст па бяспецы знайшоў прычыну ў двух запісах у спісе кантролю доступу, якія дадаюць нейкай сістэмнай службе права на чытанне MHT-файла, якія ўнёс туды Edge пасля яго загрузкі.
Джэймс Форешоу (James Foreshaw) з адмысловай каманды па пошуку ўразлівасцяў нулявога дня - Google Project Zero -
Далей даследнік захацеў лепш зразумець, што ж выклікае збой сістэмы бяспекі IE. Паглыблены аналіз з выкарыстаннем утыліты Process Monitor і дызасэмблера IDA у канчатковым выніку паказаў, што ўсталяванае Edge дазвол не дазволіла функцыі Win Api GetZoneFromAlternateDataStreamEx прачытаць струмень файла Zone.Identifier і вярнула памылку. Для Internet Explorer такая памылка пры запыце пазнакі бяспекі файла апынулася зусім нечаканай, і, па ўсёй бачнасці, браўзэр палічыў, што памылка раўназначная таму, што файл не мае пазнакі "mark-of-the-Web", што аўтаматычна робіць яго давераным, пасля чаго IE дазволіў схаванаму ў MHT-файле скрыпту выкананне і адпраўку мэтавага лакальнага файла на выдалены сервер.
"Вы бачыце тут іронію?" - пытае Колсек. "Незадакументаваная функцыя бяспекі, якая выкарыстоўваецца Edge, нейтралізавала існуючую, несумненна, значна больш важную функцыю (mark-of-the-Web) у Internet Explorer".
Нягледзячы на ??ўзрослае значнасць уразлівасці, якая дазваляе запускаць шкодны скрыпт як давераны, няма ніякіх прыкмет таго, што Microsoft мае намер выправіць памылку ў бліжэйшы час, калі яна наогул будзе калі-небудзь выпраўлена. Таму мы ўсё яшчэ рэкамендуемы вам, як і ў мінулым артыкуле, змяніць праграму па-змаўчанні для адкрыцця MHT-файлаў на любы сучасны браўзэр.
Вядома, даследаванне Колсека не засталося і без невялікага самапіяру. У канцы артыкула ён прадэманстраваў невялікі напісаны на асэмблеры патч, які можа выкарыстоўваць сэрвіс 0patch, які распрацоўваецца яго кампаніяй. 0patch аўтаматычна выяўляе ўразлівае ПЗ на кампутары карыстача і ўжывае да яго невялікія выпраўленні літаральна на лета. Напрыклад, у апісаным намі выпадку, 0patch заменіць паведамленне пра памылку ў функцыі GetZoneFromAlternateDataStreamEx на значэнне, якое адпавядае недаверанаму файлу, атрыманаму з сеткі, дзякуючы чаму IE не дазволіць выканаць якія-небудзь схаваныя скрыпты ў адпаведнасці са ўбудаванай палітыкай бяспекі.
Крыніца: 3dnews.ru