Хакерам начхати на ваші відмазки

Більшість зламів відбуваються через відсутність пріоритезації зусиль, що витрачаються на безпеку.

Більшість корпоративних підрозділів безпеки займаються процедурними речами, які прописані в політиках та вимагаються “згори”. Замість того, щоб виконувати свої прямі обов’язки — захищати бізнес від кібер-загроз. Чому так? Тому що виконувати процедури легше, та й пояснити мету власного існування так набагато простіше. Ми існуємо, тому що PCI DSS, GDPR, SOX, СОУ Н НБУ тощо.

Більшість компаній, які були зламані, мали в тій чи іншій формі Політику безпеки. Чому вони постраждали? Тому що папір не захищає від хакерів. Від хакерів та шкідливого програмного забезпечення (ака вірусів) захищають правила та дії. Правила окремо та дії окремо — не захищають, лише разом: правила + дії. Причому ані правила, ані дії не треба вигадувати — все вже давно в доступній формі є “у пабліку”.

З досвідом я дійшов висновку, що розпочинати програму кібербезпеки в бізнесі треба не з Політики і не з нових фаєрволів з антивірусами. Паперові тигри та блимаючі скриньки це зрозумілий, доступний для керівництва, але поганий, навіть дилетантський старт. Розпочинати треба з застосування простих правил та дій з перевірки їхнього виконання. В нашій мережі не повинно бути застарілих версій операційних систем. Всі користувачі повинні мати довгі та сильні паролі. Мережа та ресурси повинні бути сегментовані згідно з потребами підрозділів. Віддалений доступ лише з двох-факторною автентифікацією. Інтерактивний вхід в систему з правами адміністратора заборонений. І так далі, і таке інше. Одне правило за раз, одна вправа за підхід.

І тоді у вас будуть шанси не стати жертвою.

Ще трохи про хакерів

Раз вже розпочали, то продовжуємо невеличкий лікнеп щодо того, хто є хто в нашій пісочниці.

По-перше, хакери та кібер-злочинці це різні поняття. Завдяки сталому голлівудському стереотипу та неосвіченості медійників, хакерами здебільшого називають людей, які здійснюють злочини з допомогою комп’ютерів та мереж. Це неправильно. Оригінальне значення слова “хакер” в комп’ютерному сенсі — це людина, яка докладає неабияких зусиль, знань та навичок задля розв’язання складної проблеми. Коли йдеться про безпеку, то узагальнити можна так: хакери вивчають системи та намагаються використати їх у спосіб, який не передбачався творцями цих систем. Отже, хакер — це комбінація експертних знань, наполегливості, та творчого підходу.

По-друге, хакери бувають не “білі” та “чорні”. Коли людей розрізняють по кольору, це називається расизм. Натомість, хакери “носять” різнокольорові капелюхи: білі, чорні та сірі. Розібратися хто є хто у цих капелюхах дуже просто. Вайтхети зламують системи легально та з етичних міркувань. Блекхети зламують системи нелегально та з неетичних міркувань. Грейхети — це буквально сіра зона, в якій дії диктуються міркуваннями етики, але не завжди і не скрізь вміщуються в рамки закону. Чому все ж таки різнокольорові капелюхи а не хакери? Тому що, зважаючи на ситуацію, контекст та настрій, одна і та сама людина може виконувати дії, які можуть бути або легальними (вдень на роботі здійснюючи пентест з прямого документального дозволу клієнта) або не дуже (вночі вдома аналізуючи вразливості у веб-сайтах держустанов). І капелюх для цього змінити набагато легше і дешевше, ніж колір шкіри.

По-третє, і блекхети, і вайтхети, і грейхети надалі розгалужуються на цікаву та романтичну таксономію під-видів, але це вже тема окремого дослідження. Скажу лише, що блекота розрізняється за рівнем підготовки, мотивації та доступу до ресурсів. Скажімо, школота хачить щоб похизуватися, та тому що в неї багато часу, але це здебільшого обмежується запуском автоматичних засобів пошуку та експлуатації вразливостей, звідси й термін Script Kiddies. Кібер-злочинці в свою чергу роблять на цьому гроші, тому там не до хизування, адже в андерграунді опсек та анонімність найголовніше, бо вороги скрізь: це не тільки правоохоронці та вайтхети, але й усі інші блекхети. Ну а держави в свою чергу тримають собі в штаті чи на короткому мотузку власних хакерів, які, залежно від того, з якого боку подивитися, можуть носити кожну з перелічених капелюхів, адже питання моралі та законності в міжнародних конфліктах та шпигунстві це дуже складна та невдячна тема.

Якось так. Тепер ви тут всіх знаєте. Бережіться

Про Responsible Disclosure, Full Disclosure, та чому хакери — це добре для кібербезпеки

та чому хакери — це добре для кібербезпеки

Багато хто звернув увагу на вакханалію розкриття вразливостей у системах Українських державних установ, органів самоврядування та підприємств критичної інфраструктури. Якщо ви провели останні тижні на сонячному пляжі або у темній печері, подивіться на крайні пости Sean Brian Townsend та увійдіть у курс справи. Після цього можете повертатися до цього поста.

Отже, хлопці відриваються в форматі Full Dosclosure: знаходять у системі вразливість та повідомляють про неї публічно. Реакція на таку поведінку в суспільстві неоднозначна: власники вразливих систем, звичайно, нервуються, та реагують в міру власної обізнаності з кібербезпеки. Обізнані втирають сльози, зчіпляють зуби, беруть себе в руки, та виправляють вразливість. Необізнані волають на весь інтернет “це провокація”. Зовсім новачки ще й погрожують хакерам у відповідь, очевидно не маючи жодного уявлення про те, що у нас типу свобода слова, а “злам” — це навмисне подолання заходів безпеки, яких у їхньому випадку тупо не існувало. Спеціалісти з безпеки, принаймні ті, хто не просто так називається, а ще й розбирається в темі, майже одностайні: це краще, ніж мовчати, але… Ось тут можуть бути варіанти.

Але чому ж спеціалісти з безпеки не засуджують такі дії? Адже публічне повідомлення про вразливість інтуїтивно погіршує безпеку системи, хіба ні? Відповідь на це питання дати непросто, плюс для цього треба знати трохи історії, отже дозвольте зробити невеличкий екскурс.

В 90-ті, коли інтернет з’явився в усіх цивілізованих країнах, веб перетворився з академічного інструменту в комерційний, а хакінг став масовим захопленням технічно обізнаної молоді, оця сама молодь першою зрозуміла, що інтернет до неї не готовий. Хакери знаходили вразливості пачками, дехто використовував їх для розваг (перші мережеві та веб-черв’яки не були фінансово вмотивованими), дехто перейшов на темний бік та почав тупо рубати з цього бабло. Але вендори, тобто розробники та продавці програм та систем були майже одностайні: вам не слід шукати та використовувати вразливості в наших системах, або ми вас нафіг засудимо, бо у нас є юристи та лобі в конгресі, а у вас — ні. Хакери, як відомо, не дуже полюбляють таке ставлення, тому десь у ті роки з’явився такий собі список розсилки під назвою Full Disclosure, в який зливалися всі публічні звіти про вразливості, причому робилося це здебільшого анонімно.

Десь наприкінці 90’х, початку 2000’х, найбільш просунуті вендори зрозуміли, що стратегія заперечення проблеми відсутності безпеки в їхніх продуктах — не дуже ефективна. Зокрема, вихід Windows XP показав, що вразливості безпеки являють собою екзистенціальну загрозу компанії Microsoft. Адже коли протягом днів після релізу твого флагманського продукту в ньому знаходять вразливість виконання коду на відстані, яка легко перетворюється на мережевого черв’яка, це, м’яко кажучи, не дуже добре. І десь в районі 2002–2003 років Майкрософт, точніше Білл Гейтс, прийняв рішення щось з цим робити. І не самостійно, а з залученням у процес хакерів з таких легендарних команд, як L0pht Heavy Industries, Foundstone, Sysinternals тощо. Останню, до речі, вони зрештою придбали та зробили частиною компанії. Результатом цієї співпраці програмістів, які пишуть програми, та хакерів, які ці програми зламують, було утворення першої методології Secure Development Lifecycle (SDL) та зрештою — розробка першого більш-менш захищеного продукту компанії Microsoft — SQL Server 2005.

Всі ці зрушення призвели до того, що вендори (не всі) зрештою усвідомили (Oracle так і не усвідомив), що з хакерами потрібно співпрацювати. Але правила цієї співпраці вони встановили власноруч, не порадившись з хакерами. І придумали вони таку річ, як Responsible Disclosure, що означало, що першими про вразливість мають дізнаватися вендори, а хто так не робить — той безвідповідальний. І почався багаторічний holy war між прихильниками Responsible та Full Disclosure, який не припиняється й досі, і повірте мені: ані українська Кібер-поліція, ані Херсонська обласна рада не будуть останньою інстанцією у цих дебатах. Це глобальна дискусія, яка напевно триватиме вічно, тому що в Responsible Disclosure є свої вади, такі як гальмування реакції вендора, а Full Disclosure… а FD, — це FD 🙂

Тому, не дивуйтеся такій поведінці Українського кібер-альянсу. Це олдскул спосіб швидко навести лад на окремо взятій ділянці інтернету. Так, це змушує нервувати дуже багато людей, але місія хакерів саме в цьому і полягає. Щоб люди, від безпеки чиїх систем залежить безпека інших людей, а саме нас з вами, буквально нервували та намагалися захиститися якнайкраще.

Бережіться

Як хакери отримують ваші паролі

Та як цьому запобігти

Більшість програм, які обробляють чи зберігають цінні дані, реалізують один з методів ідентифікації користувачів. Більшість з них використовує автентифікацію за іменем користувача та паролем, з якою знайомий кожен відвідувач інтернету. Інші методи ідентифікації користувачів можуть використовувати біометричні дані (відбиток пальця, сітківку ока, форму долоні та ін.), фізичні ключі (магнітні та смарт-картки, цифрові токени та ін.), або ж комбінацію з двох чи навіть усіх трьох факторів автентифікації.

Пропускаючи роздуми про надійність паролів як методу автентифікації, давайте одразу перейдемо до того місця, де хакери крадуть ваші паролі. Так, паролі є однією з найпопулярніших цілей кіберзлочинців з двох причин:

  1. По-перше, і це очевидно, отримання вашого паролю надає будь-кому доступ до цінних даних у відповідній системі — службі електронної пошти, соціальній мережі, чи корпоративній мережі вашого роботодавця — до яких у вас є легітимний доступ. Іншими словами, всі ваші дані, накопичені до цього часу, тепер не ваші й з цим фактом доведеться жити навіть після виявлення компрометації та зміни паролю.
  2. По-друге, і це для багатьох буває сюрпризом, отримавши доступ до вашого аккаунту, зловмисник може, видаючи себе за вас, використовувати довіру ваших рідних, друзів, колег та просто знайомих, для поширення шкідливих програм або нелегального вмісту. І під нелегальним вмістом я маю на увазі не DVD-ріпи чи музику в MP3, а бази даних викрадених кредитних карт та дитячу порнографію. Компрометація довіри може набувати катастрофічних масштабів для жертви та її оточення, включаючи роботодавців та бізнес-партнерів.

Отже, яким саме чином хакери можуть дізнатися ваш пароль, та наскільки складно це зробити? Забігаючи наперед, відповім на друге питання: це залежить лише від вас та адміністратора системи, до якої ви здійснюєте доступ з таким паролем. А методи отримання паролів ось такі:

1. Підбір пароля онлайн

Коли сервіс або програма дозволяє доступ мережею, а в наш час інакше майже не буває, хакер може спробувати підібрати ваш пароль, знаючи ваше ім’я користувача (що зазвичай не є великою таємницею) та озброївшись списком “популярних” паролів, які були вкрадені ним або іншими хакерами в минулому. Ця процедура досить тривіальна, до того ж до послуг нападника декілька ефективних та безплатних інструментів її автоматизації, тому атака підбору пароля “за словником” не вимагає якихось спеціальних знань та навичок.

Отже, якщо ваш пароль ненадійний та міститься в одній з “колекцій” паролів (а їх в інтернеті чимало та більшість — безплатні), від підбору його захищає лише час, потрібний для здійснення атаки. Цей час залежить від швидкості роботи системи, професіоналізму її адміністратора, пропускної здатності мережі тощо. Але в одному можна бути впевненим: з часом такий пароль обов’язково зламають.

2. Підбір пароля оффлайн

Коли сервіс або програма містить вразливості безпеки, які дозволяють хакеру здійснити несанкціонований доступ до їхніх нутрощів (наприклад, бази даних), це може призвести до викрадення паролів користувачів у зашифрованому, або точніше хешованому вигляді. На жаль, трапляються випадки, коли паролі зберігаються в базі в чистому вигляді, тоді компрометація системи рівнозначна їх викраденню. Але про це згодом.

Plain text password:	my5uperDup3r$ecurePWD
MD5 hash (old *NIX):	eea2f7abd226770f85fbf69f836a3caf
LM hash (old Win):	AAD3B435B51404EEAAD3B435B51404EE 
NTLM hash (new Win):	244936F66C0BFF1C222011AA6D41AC2F 
SHA1 hash:	2c3d59e5df90826f5dde14104ecaa708544da842 
SHA256 hash:	57b1c949176683545fd1f8b7e8a74ff6b08d1936da875000a0e5f5f23929d18f

Отримавши доступ до бази даних хешованих паролів, хакер починає підбирати їхні незашифровані значення. Умовно це можна уявити як перебір усіх можливих текстових рядків, їх хешування у вигляд, в якому зберігаються паролі в пограбованому сервісі, та порівняння отриманих результатів зі значеннями у викраденій базі даних. Отримавши збіг хешованих даних, хакер отримує відкрите значення паролю. Звісно, в реальності цей процес трохи складніший та набагато швидший завдяки сучасним методам оптимізації. І звичайно ж в десятки мільйонів разів швидший за онлайн-підбір.

3. Повторне використання пароля

Не секрет, що багато користувачів використовують один пароль в декількох системах. На жаль, це поширена практика, дехто навіть скрізь використовує всього один пароль та гордо називає його “улюбленим”. Погана новина в тому, що витоки баз даних паролів відбуваються щодня, після чого ці бази або стають доступними публічно, або продаються на чорному ринку. Тому знайшовши пароль користувача з логіном [email protected] у викраденій базі аккаунтів ВКонтакте, хакер перевірить, чи підходить він в Однокласниках, Facebook та на VPN-сервері його компанії-роботодавця.

Дізнатися про те, як часто та в яких масштабах трапляються витоки баз даних паролів, можна на вебсайті https://haveibeenpwned.com. Там же можна перевірити, які з ваших паролів в інтернеті вже було скомпрометовано та підписатися на повідомлення про майбутні злами.

4. Викрадення або підглядання пароля

Найбільш різноманітним методом отримання наших паролів є їх викрадення з систем, в яких вони зберігаються або застосовуються. Зробити це можна порівняно просто: піддивившись як користувач вводить пароль в форму автентифікації; трохи складніше: знайшовши та використавши програмну вразливість в відповідній системі; або ж скориставшись методами соціальної інженерії для захоплення контролю над комп’ютером цілі та пошуку паролів у пам’яті та на диску комп’ютера.

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

5. Відновлення пароля через email або SMS

Більшість гідних поваги інтернет-сервісів дозволяють користувачам відновити втрачений чи забутий пароль за допомогою email або номера телефону, який використовувався під час реєстрації. (Менш підковані використовують для цього відповіді на “секретні питання”, які зазвичай не є такими вже й секретними). Отже, отримавши доступ до номера телефону або, що значно легше, до електронної пошти користувача, хакер може скористатися легітимною процедурою відновлення пароля.

6. Перехоплення пароля мережею

Досить популярний колись метод перехоплення пароля шляхом прослуховування мережевого трафіку став тепер менш поширеним через масову адоптацію криптографії інтернет-сервісами. Тепер майже усі популярні вебсайти забезпечують доступ по HTTPS, причому більшість вимагає цього за замовчуванням. В таких умовах прямий перехват та аналіз мережевих пакетів стає неефективним.

Сподіваюся, мені вдалося скласти загальну картину того, як важко зберегти ваші паролі в таємниці, якщо не докладати до цього жодних зусиль. У наступному пості я розкажу про прості та надійні засоби захисту, які може використати будь-хто для збереження своїх паролів та захищених ними секретів.