Спираючись на матеріал, описаний в першої частини даної статті, ми продовжимо обговорення теми обробки виключень в Windows x64. І в цій частині ми докладно розглянемо ті області PE образу, які використовуються в процесі обробки винятків. Описуваний матеріал вимагає знання базових понять, таких, як пролог, епілог, кадр функції та розуміння базових процесів, таких, як дії прологу і епілогу, передача параметрів функції і повернення результату функції. Якщо читач не знайомий з вищепереліченим, то перед прочитанням рекомендується ознайомитися з матеріалом з першої частини цієї статті.

Читати далі →

Виключення Windows x64. Як це працює. Частина 1

Раніше ми обговорювали прикладне застосування механізму обробки виключень поза середовища Windows. Тепер ми більш детально розглянемо, як це працює в Windows x64. Матеріал буде описаний послідовно, починаючи з самих основ. Тому багато чого може виявитися вам знайомим, і в цьому випадку такі моменти можна просто пропустити.

Читати далі →

Виключення в UEFI додатку

Будь-якому програмісту, який знайомий з UEFI, відомо, що вбудованого механізму обробки виключень там немає. Мова йде про try/except блоках, які є розширенням Microsoft C/C + + компіляторів. Буває дуже корисно мати такий механізм і в повному обсязі користуватися тими перевагами, які він дає. Тому у даній статті мова піде саме про вирішення цієї проблеми. Також до статті додається повна реалізація механізму з його демонстрацією на базі UEFI програми. Порушені тільки 64х бітні процесори фірми Intel, і в обговоренні маються на увазі тільки вони. Реалізація механізму знаходиться в папці exceptions сховища git за адресою: https://github.com/anatolymik/machineries.git.

Читати далі →

Windows 10 Creators Update: Підвищена безпека та сучасні ІТ-інструменти

Зовсім недавно Microsoft розповіли про нові функції <a href=«aka.ms/habr_319986_2>Windows 10 Creators Update, які відкриють користувачам світ змішаної реальності і тривимірної графіки. Напередодні виходу доступної версії для учасників Windows Insider Program, ми вирішили розповісти про нові функції і можливості для сисадмінів, які будуть доступні з виходом цього оновлення.



Читати далі →

Налаштування UEFI-завантажувача. Саме коротке керівництво у світі

Як влаштована завантаження сучасних ОС? Як при установці системи налаштувати завантаження допомогою UEFI, не потонувши в посібниках і нічого не зламавши?
Я обіцяв "саме короткий посібник". Ось воно:
  1. Створюємо на диску, таблицю розділів GPT
  2. Створюємо FAT32-розділ на пару сотень мегабайт
  3. Викачуємо з інтернету будь-UEFI-завантажувач і кладемо його на цей розділ
  4. Налаштовуємо конфіг завантажувача
    (Якщо на диску встановлена Windows 8 або 10 — з великою ймовірністю це керівництво скорочується до пунктів 3 і 4.)

Читати далі →

Security Week 33: відключення Secure Boot, сортування адресатів в GMail, наслідки TCP-бага в Linux

На цьому тижні по ландшафту загроз бурхливим потоком розлилась ріка політики. Тема безпеки і так політизована донезмоги, але якщо вам раптом здається, що вже якось забагато, то поспішаю вас засмутити. Все тільки починається. 13 серпня аноніми, які переховуються під псевдонімом ShadowBrokers, виставили на продаж арсенал інструментів, ймовірно, використовувалися в кибершпионской кампанії The Equation. Нагадаю, дослідження цієї атаки опубликовали у лютому минулого року експерти «Лабораторії», назвавши її «Зіркою смерті галактики шкідливого ПЗ». Було за що: вражає як тривалість кампанії (з 2001 року, а може і раніше), так і складність і широка функціональність інструментів для злому і крадіжки даних. Ну і технічний рівень заодно, аж до приміщення шкідливого коду в прошивку жорстких дисків.

Розпродаж влаштована за кращим стандартам комерційного діловодства: «шліть гроші, а ми подумаємо». Але крім обіцянок, в мережу був викинутий набір файлів, явно вирізаний з чиєюсь середовища розробки: трошки коду, трошки скриптів, документації і так далі. Якщо не вестися на поводу у ЗМІ, які весь тиждень обговорюють версії авторства витоку — те, що апріорі неможливо підтвердити фактами, про ShadowBrokers можна виразно сказати наступне. По-перше, імплементація алгоритмів шифрування RC5 і RC6 у витоку збігається з такою у The Equation. Це дозволяє з певною часткою впевненості говорити, що зв'язок між, строго кажучи, кодом, знайдені в мережі зараз і пару років тому, є. Детальніше з прикладами тут. По-друге, у витоку виявлені реальні уразливості в пристроях Cisco (дуже докладно написано у них в блозі і Fortinet.

Читати далі →

Використовуємо Secure Boot в Linux на всю котушку



Технологія Secure Boot націлена на запобігання виконання недоверенного коду при завантаженні операційної системи, тобто захист від буткіти і атак типу Evil Maid. Пристрої з Secure Boot містять в енергонезалежній пам'яті базу даних відкритих ключів, якими перевіряються підписи завантажуваних UEFI-додатків на зразок завантажувачів ОС і драйверів. Додатки, підписані довіреною ключем і з правильною контрольною сумою, допускаються до завантаження, решта блокуються.
Більш детально про Secure Boot можна дізнатися з циклу статей від CodeRush.
Щоб Secure Boot забезпечував безпеку, підписуються додатки повинні дотримуватися певний «кодекс честі»: не мати в собі лазівок для необмеженого доступу до системи та параметрами Secure Boot, а також вимагати того ж від завантажуються ними додатків. Якщо підписана програма надає можливість недобросовісного використання безпосередньо або шляхом завантаження інших додатків, воно стає загрозою безпеки всіх користувачів, які довіряють цим додатком. Таку загрозу представляють завантажувач shim, що підписується Microsoft, і завантажується їм GRUB.
Щоб від цього захиститися, ми встановимо Ubuntu з шифруванням усього диска на базі LUKS і LVM, захистимо initramfs від змін, об'єднавши його з ядром в одне UEFI-додаток, і підпишемо його власними ключами.
Читати далі →

Золотий ключик — критична уразливість в механізмі Secure Boot багатьох пристроїв


Дослідниками безпеки MY123 і Slipstream була знайдена уразливість в реалізації механізму Secure Boot багатьох пристроїв, що дозволяє повністю обійти вимогу наявності належним чином підписаного виконуваного коду для запуску на цих пристроях. Це, зокрема, означає, що власники планшетів з Windows RT зможуть знову отримають можливість встановлювати альтернативну операційну систему. Але так само це означає, що і головного болю у системних адміністраторів побільшати, адже вразливість відкриває нові можливості для установки руткітів.
Ентузіасти розмістили детальну інформацію на спеціальній сторінці, оформленої в стилі демо-сцени.

Читати далі →

Досвід корисної модифікації UEFI: повертаємо Thinkpad W520 законну підтримку швидкої пам'яті

Для початку передісторія:

Деякий час тому я придбав на Ebay б/у ноутбук Lenovo Thinkpad W520. Як відомо, W-серія — це дуже потужні ноутбуки, залозки у яких дадуть фору багатьом більш сучасним машинам. Звичайно ж, я почав його облаштовувати під себе, і, зокрема, вирішив оновити наявну пам'ять усім, що було в наявності, а в наявності було чимало: 2 вільні планки DDR3-1600 зі старого ноута — 4 і 8 гігабайт. Подивившись на те, що було встановлено продавцем, я виявив, що з 3 встановлених планок 2 — DDR3-1600, а одна — 1333. Враховуючи, що перші дві були по 8 гігабайт, а остання — 2 гігабайти, від неї я і вирішив позбутися. Розраховуючи отримати після апгрейда 8+8+8+4=28 гігабайт DDR3-1600 в робочому ноут, я залив все слиною і все це швиденько підключив. І отримав 28 гігабайт… DDR3-1333. «Що за...», подумав я і поліз в гугл.
Після нетривалих пошуків я виявив, що як офіційно, так і неофіційно W520 підтримує тільки DDR3-1333, а власники більш швидкої пам'яті даремно витрачали на неї гроші. Мені стало трохи прикро за всіх таких власників, і я вирішив спробувати позбутися від цієї несправедливості, тим більше, що контролер пам'яті, нині, як відомо, в процесорі, і встановлений в моїй моделі Intel Core i7 2720QM офіційно підтримує DDR3-1600.


Читати далі →

Asus автоматично оновлює BIOS/UEFI по HTTP без верифікації



Asus знову взявся за старе. Ви можете відправити будь-який виконуваний файл або навіть прошивку BIOS на комп'ютер Asus під виглядом поновлення цей файл буде автоматично запущений на виконання з максимальними привілеями, а встановлена прошивка, без будь-яких перевірок. Нічого не потрібно робити — система зламає сама себе, автоматично.

Коротко: комп'ютери з материнськими платами Asus здійснюють запити до віддаленого сервера з HTTP на регулярній основі. Причиною є програмне забезпечення LiveUpdate, яка встановлена на комп'ютери Asus. Воно відповідає за завантаження нових прошивок BIOS/UEFI і виконуваних файлів. Оновлення надходять в архівах ZIP по чистому HTTP, розпаковуються в тимчасову папку, а виконуваний файл запускається від імені користувача. Не відбувається ніякої верифікації файлів або автентифікації при їх завантаженні, що дозволяє провести MiTM-атаку і банальну ескалацію привілеїв до
NT AUTHORITY\SYSTEM
.

Читати далі →