Безпечні месенджери

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

Які мобільні месенджери безпечні, а які ні?

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

tl;dr

Як і на всі інші питання у Всесвіті, на це можна відповісти або одним реченням, або в декількох томах. Отже, коротка відповідь:

Безпечні –

Не дуже безпечні –

Небезпечні –

Дуже небезпечні –

  • Skype
  • SnapChat
  • WeChat
  • Yahoo! Messenger
  • BlackBerry Messenger

Тепер докладніше.

Навіщо нам безпека миттєвих повідомлень?

Спершу даймо відповідь на питання, навіщо нам безпека у програмах для обміну повідомленнями, якщо є така чудова мобільна послуга, як SMS.

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

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

Які вимоги до безпеки миттєвих повідомлень?

Щоб правильно вибрати програму для листування миттєвими повідомленнями, вам потрібно дати собі відповідь на три прості питання:

  1. Чи слідкують за мною міжнародні шпигуни та/або правоохоронні органи?
  2. Чи хочу я зберігати історію листування?
  3. Які месенджери наразі популярні серед моїх друзів та знайомих або в моєму регіоні?

Отже, давайте по черзі.

1. Модель загроз

Як завжди перед вибором інструменту захисту варто поміркувати, що саме та від кого ми захищаємо.

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

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

2. “2 peer or not 2 peer…”

Миттєві повідомлення в різних месенджерах наразі передаються двома принципово різними способами: напряму відправником адресату (peer-to-peer), або через сервер. Причому модель ця дуже образна: насправді месенджер може фізично передавати повідомлення через сервер, але при цьому вміст повідомлення буде зашифрований з кінця в кінець (end-to-end). Тобто сервер (та його оператор) не матиме змоги отримати до нього доступ, а отже цей процес буде майже так само безпечний, як і при справжньому peer-to-peer спілкуванні. “Майже”, тому що факти обміну повідомленнями все одно будуть реєструватися на сервері, а це за певних умов може бути загрозою приватності.

Як бачите, тут виникає один з класичних конфліктів між безпекою та зручністю програмного забезпечення. З одного боку, ми не хотіли б, щоб Google, Facebook та решта майкрософтів мали доступ до нашого листування. Бо хто зна, що собі думають їхні адміни, і взагалі, з ким вони потім цими даними діляться. Але з іншого боку, ми хотіли б зберегти історію листування та мати змогу відновити її на новому пристрої або після перевстановлення операційної системи або додатку месенджера.

Звичайно, під час обміну повідомленнями з увімкненим end-to-end шифруванням збереження історії можливе лише на пристроях учасників листування. Про це треба пам’ятати як перед вибором засобу листування, так і перед переїздом на нову платформу або пристрій. Багато месенджерів зберігають історію в резервних копіях, які вони створюють самостійно, або за допомогою стандартних засобів ОС.

3. В безпеці та не на самоті

Популярність месенджерів штука дивна та залежить від багатьох факторів, серед яких важливу роль відіграють вік користувачів та їхній ареал. Якщо у Південній Америці абсолютно усі користуються WhatsApp, то в Східній Європі найбільш поширені Viber та Telegram, причому Messenger не далеко відстав. Отже, обираючи засіб спілкування, поцікавтеся, які у цього вибору об’єктивні перспективи, щоб уникнути ролі одинака в пустелі.

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

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

Instant messengers comparison

Звертаю вашу увагу на “культурні особливості” деяких популярних месенджерів. Як бачите, в залежності від того, який режим спілкування ви обрали, Telegram та Messenger можуть реєструвати ваші повідомлення на сервері, або ні. Також, у WhatsApp за замовчуванням не увімкнені повідомлення про зміни даних співрозмовників: якщо ваш контакт перевстановить додаток або іншим чином змінить ключі шифрування, WhatsApp про це промовчить. Я раджу увімкнути такі застереження в пункті меню Settings -> Account -> Security.

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

Особисто я використовую Viber та Messenger для спілкування з друзями та близькими, та Signal — для листування з клієнтами та колегами.

Залишайтеся в безпеці.

Оновлено 2017–01–12

  1. Через знайдені в них вразливості реалізації та бізнес-логіки, Viber та Telegtam “понижено” в рейтингу.
  2. Виправлена історична несправедливість: WhatsApp, як продукт, що використовує Signal API, відправлений в першу категорію.
  3. Додано Google Allo, який використовує Signal API в Incognito Mode.
  4. Додано деякі пояснення щодо (не)безпеки окремих месенджерів.
  5. Якщо ви хочете дізнатися більше про безпеку месенджерів, я рекомендую цей виступ.

On the usefulness of Penetration Testing methodologies

Let’s imagine for a moment how the “bad guys” are planning their attacks. In the dark basement with cyber-punk posters covering the graffiti on the walls, with a bunch of half-assembled computers lying here and there, malicious hackers gather around the poorly lit table to decide what version of a Black Hat Attack Methodology to use in the upcoming criminal operation. Sounds absurd, right? Of course, because the attackers are not methodical.

As Penetration Testers, we see our main goal in testing our clients’ defenses functionally to assess their ability to withstand a real-world attack. Do we have to rely on external knowledge for that? Obviously, yes, it is impossible to know everything about every attack vector in 2016. Do we have to stick to a predefined set of instructions, a so-called methodology? That depends.

If you are not a pentester, and yet you have to act as one, methodologies are inevitable. To conduct a pentest yourself or reproduce the results in the report from an external consultancy, you have to get your head around a methodology of some sort. In fact, this happens all the time: the perception in the market is such that anyone, be it an accounting firm or an IT audit practice, can do Penetration Tests: look at the plenty of methodologies out there!

But if you do pentesting for a living, do you really need Methodologies? I am a big fan of seeing a pentest as rather a mission than a project. Of course, a mission has to have a plan, but it rarely can be scripted in detail. It’s essential to have a recurring chain of acquiring, analyzing, and applying data and share it within the team. It’s perfect to have both specialization and knowledge sharing between the team members. But to write down “what we do,” “what we do when we’re in,” “how we exfiltrate” in a static document? No, thanks.

To succeed at something, we have to have good mental models and actual practical how-tos at our disposal. The models let us build insight into how the attack would go and what we would have to do along the way. The how-tos and examples let us prepare for the actual operations: collect the data, apply or build the tools, make moves and get the proof of a risk to the client’s business out there. The methodologies try to bridge the gap between the two for those who need it. Do you?

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

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

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

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

  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, причому більшість вимагає цього за замовчуванням. В таких умовах прямий перехват та аналіз мережевих пакетів стає неефективним.

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

Leveraging the Strongest Factor in Security (Part II)

Since I’ve written the first part of this post in May, several related articles have appeared in different well-known online resources. The most notable of them, in my opinion, is this piece on Fortune that is trying to bridge infosec and business as many tried (and most failed) before them. You don’t have to read all the article’s text in order to catch what it and others have in common: the very first paragraph ends with the statement we all have long got used to.

If your company is like most, you’re spending an awful lot of your information technology budget on security: security products to protect your organization, security consultants to help you understand where your weaknesses lie, and lawyers to sort out the inevitable mess when something goes wrong. That approach can work, but it fails to consider the weakest link in your security fence: your employees.

So, if you’ve read my first post on the topic, you have an idea that anything that follows in the article might be misled by this stereotype. I warned you last time, that anything that sounds similar to “humans are the weakest security link” should be followed or preceded by “by default”. And by “default” I mean “in case your company’s security management did nothing to change that”.

But easier said than done, right? So what could one do in order to, well, leverage the strongest factor in security — the human nature?

To understand that, it’s necessary to get an idea about how our brain functions. I’ve spent quite some time getting familiar with this topic through reading the results of contemporary scientific research. And I encourage you to do the same! However, for the sake of this blog post, I am going to summarize the strongest points, ones you have to embrace in order to, well, see the light.

Imagine that inside every human brain there are three animals: a crocodile, a monkey, and an actual human being. If you are familiar with the brain’s structure, you already know that: different parts of it have grown during different evolutionary periods. Thus the croc is an impersonation of our reptile brain, the monkey is our mammal or limbic brain, and the human is our neocortex. Each of them is doing its job and there is a strong hierarchy between them.

The croc is the boss by default although he doesn’t micromanage. He is responsible for only three basic instincts –

  • Keeping safe from harm, including predators, natural disasters, and other crocs like himself;
  • Finding something to eat in order to not starve to death;
  • Finding a partner, if you know what I mean.

As you see, the crocodile brain executes the most important roles: the preservation of individual humans and the species overall.

The monkey trusts the croc with its life. It’s sometimes afraid of the croc too, but still, there are little chances it’s going to stay alive for long if croc falls asleep of is simply gone, so yeah, the monkey trusts the croc.

The monkey’s work is more complicated. Protected by the crocodile, it can dedicate some of its time training and learning from recurring experience. In other words, the monkey can be taught things if it does them enough times. There are many words to represent that ability, but we are going to stick to ‘the habit’. Using habits, we simplify our life as much as possible, for better or worse, but certainly — for easier.

And the human is normally much different from them both, because, well, you know, abstract thinking, complex emotions, ethical frameworks, cosmology, and sitcom TV shows. With all that, human brain optimizes its job as much as possible, so if there is a chance that the monkey can do something it has to do, the human will take that chance. Going through the different procedures over and over, we train the monkey, and once it’s ready we hand over the task to it. How many times your missed the turn and drove along your usual route to the office even on weekends? The monkey took over and the habit worked instead of your human reasoning that was busy with something else at that moment.

To some it may sound counterintuitive or even scary, but that’s how it is. If we thought out every decision we make, we wouldn’t be able to develop as a species and a society. Too much thinking at the moments of crisis would kill us: deciding on the tactics of dealing with a saber-tooth tiger would simply take all the time needed to run towards the cave or a nearest tree. Humans tend to shortcut and rely on their instincts and reflexes as much as possible. And in general it’s a good strategy, given that the humanity spent many centuries training the monkey and adjusting the croc’s input data.

But then… boom! cyber!

The recent development in technology and communications has changed our lives. Now we have to do many old things the new way and as a result it’s not easy for our brain to apply the tricks evolution taught us for millennia. The monkey’s old habits and the croc’s even older instincts are not triggered by the new signs of danger. We are used to dealing with danger tête-à-tête, not in front of a computer screen. Centuries old fraud tactics find new life online with the humans not able to resist them because of the scale of anonymity and ease of impersonation on the internet.

So what can we do? Not much, really. I don’t believe in technology when it comes to human nature. So I prefer to focus on the human (and the monkey, and the crocodile) instead. Having read and discussed much of what contemporary science can teach on behavioral economics, irrationality of decision making, and most importantly — habits, I have come to conclusion that people can be taught to effectively resist modern cyber-threats the same way they have learned to survive other hazards: by leveraging the instincts, installing new reflexes, and transforming the habits.

In the next post we’ll wrap it up with me presenting the method of transforming individuals and groups from a vulnerability to a countermeasure. Hope this sounds intriguing enough for you to stay tuned.

Leveraging the Strongest Factor in Security (Part I)

In January 2013, Gary McGraw has written an excellent piece on 13 secure design principles that summarize the high level ideas any security engineer or architect should be familiar with in order to be called so. Dr McGraw is of course that smart gentlemen from Cigital who wrote the “Software Security” book, records the “Silver Bullet” podcast, and has played his role in many career choices in the security industry. The first principle he explains is quite logical and intuitive: “Secure the weakest link”. This principle spans over many disciplines, such as project management and logistics, and is obvious to many: there hardly is other way to dramatically improve something than taking its worst part and fixing it. Pretty simple, right?

Picture credit: SC Magazine (https://www.scmagazine.com/defending-data-the-knowledge-factor/article/269211/)

The vast majority of information security professionals agree that human factor is the weakest element in any security system. Moreover, most of us promote this idea and don’t miss a chance to “blame the user” or address human stupidity as an infinite source of security problems. However, when you start challenging this idea and ask what in fact did they attempt to do in order to change the situation, the answers are few. Just try it yourself: every time you hear someone says “… you cannot fight phishing/social engineering/human error etc.”, kindly ask them: “And have you tried to?…” I do it all the time and believe me, it’s a lot of fun.

The uncomfortable truth is that human brain is very efficient in detecting and dealing with threats. In fact, it spends the majority of its computing time and calories burned to maintain this “situational awareness” that allows us to step on breaks long before we solve the equation system that represents the speeds and trajectories of our car and that one approaching from the side. Our brain, if trained properly, can serve as an effective security countermeasure that could outrun any security monitoring tool in detection or response. The problem is that we as an industry didn’t have as much time to train the humanity to monitor for, detect, and respond to technology threats as nature had for training us to avoid open fire, run from a tiger, and not jump from the trees. And even bigger problem is that we don’t seem to start doing it.

So, what’s wrong with us really? Why don’t we combine the common knowledge of human weakness in front of cyber threats and the maxim of securing the weakest link? I frankly have no idea. Maybe it’s because the knowledge domains that deal with human “internals”, such as neuroscience, psychology, and behavioral economics, are very different from what security people are used to deal with: networks, software, walls, and fences, — I don’t know. However, I have tried (harder ©) to improve the way people that are not security experts deal with cyber threats. And you know what? It’s more fun than blaming the user. But, I guess that’s enough for one post, to be continued…

This post has been originally posted on LinkedIn on May 25, 2016.