Не/безпека Zoom і чому я продовжую ним користуватися

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

Все ПЗ вразливе, крапка. Бережа робить понад 50 проектів на рік, десь 40 із них пов’язані з перевіркою безпеки софта. Поодинокі 1-2 проекти завершуються дуже скромними рекомендаціями типу «тут підфарбувати» і «і тут поправить». Решта – мають у звіті досить серйозні зауваження. А деякі вразливості ми повідомляємо одразу, щойно їх знайдено. Тому що відкладати це до початку формування звіту чи навіть до завтра – тупо страшно. І ці вразливості виправляються ще до завершення проекту – з аналогічних міркувань. А ви потім цим софтом користуєтесь.

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

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

Але все ПЗ вразливе, і колись у його коді (або в коді якоїсь його залежності) знайдуть надстрашну багу. І піонери від безпеки будуть носитися з нею та звинувачувати розробника в тому, що його продукт «небезпечний». А люди з досвідом будуть намагатися пояснити, в чому піонери помиляються, але марно.

А помилка насправді проста: якщо чиясь безпека залежить від вразливостей в окремому програмному забезпеченні, то хтось очевидно зробив свою роботу дуже погано. Взагалі, якщо безпека сконцентрована в якомусь одному місці – хтось десь налажав. Можливо, це відбулося в наслідок того, що я називаю «фаєрвольною ментальністю» – коли спеціаліст скеровується морально застарілою парадигмою «зон та периметру». А можливо, це й не спеціаліст, просто коли він повторює гасла за журналістами кібербезпекових онлайн-таблоїдів, скрадається таке враження.

Мінімальних навичок з моделювання загроз достатньо, щоб навчитися довіряти важливі для вас речі лише перевіреним та надійним інструментам. Плавно переходячи до конкретики – Zoom до цього кола не входить. Не може система, яка дозволяє одночасно спілкуватися вдесятьох та записувати відео в хмару, бути надійним засобом для передачі надконфіденційних даних. Будь-яка мінімально обізнана в безпечній системній архітектурі людина вам це підтвердить. І ніхто з експертів вам ніколи не рекомендував Zoom для передачі конфіденційних даних: я перевірив. «Але ж маркетологи сказали що в них наскрізне шифрування…» Та вгамуйтеся вже з тими маркетологами! Вам Паша Дуров вже казав, що Телеграм безпечний. Що ще кому не ясно?

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

Перевірка програмного забезпечення на безпеку

Дозвольте накинуть.

Перевірка програмного забезпечення на безпеку. Загалом у вас є три шляхи:
1. Автоматичне сканування ультрадорогою вундервафлею, яка згенерує вам 100,500 хибних підозр на вразливості, що не існують. Якусь частину з них ви виправите, а на решту заб’єте для ясності.
2. Методичне тестування за допомогою «провідних методологій» на відповідність «галузевим стандартам» та «найкращим практикам». В мене для вас погані новини: наші методології все ще сирі, нормальних стандартів в цій галузі немає та не може бути, а найкращі практики зблизька виявляються методичками для інтернів, як робити те, про що не маєш уявлення.
3. Вибір досвідченого та авторитетного постачальника послуг, який створює комфортні умови праці для найкращих експертів у цій професії. І потім сподіватися на те, що вони добре зроблять свою справу.

Все ще вагаєтесь? Я спрощу вам задачу. Який би такий приклад обрати… Якби я не пішов в Application Security, то скоріш за все присвятив би себе нейрохірургії. Надто сильно люблю покопирсатися в якійсь незрозумілій фігні. Отже, питання до вас: кому б ви радше довірили операцію?
1. Новітньому медичному роботу, який виріже вам 70-80% мозку, бо з ними «щось не так».
2. Випускнику медичного коледжу із найкращим підручником з нейрохірургії, до якого він може заглядати протягом операції.
3. Або експерту-нейрохірургу (досвід 15 років) із командою асистентів (досвід 2, 5 років) в яких рухи відточені до автоматизму на сотнях операцій, а експертна інтуїція навчена тисячами історичних та практичних історій хвороб?

Голосуйте в коментах.

P.S. Конференц-сезон 2020 року я вирішив присвятити висвітленню зв‘язку між тим, як програми та люди підставляють одне одного. Слідкуйте за анонсами.

Різниця між корпоративною та продуктовою безпекою

Серед українських організацій чи не найчастіше до нас звертаються ІТ-компанії. Тому хочеться розповісти про певний накопичений досвід. Цілком можливо, він стане в пригоді іншим організаціям в цій вертикалі, а може й організаціям з інших галузей. Тому якщо у вас є знайомий CIO/CTO ІТ-фірми, покажіть йому цей текст. Він писався для нього.

Звернення ІТ-компанії приблизно в одному випадку з десяти відбувається з власної ініціативи. В решті випадків причиною такого звернення є вимога замовника чи потенційного замовника її послуг. На відміну від багатьох моїх колег, я такий підхід вважаю цілком правильним, практичним та економічно виправданим. Ці компанії пишуть код буквально на замовлення. Цей код в більшості випадків приносить вигоду замовникам та робить життя багатьох тисяч людей комфортнішим та зручнішим. Тому вимагати від ІТ-компаній піклуватися про безпеку мають право або їхні замовники, або клієнти замовників. Якийсь віртуальний Вова Стиран може звісно походити поскиглити про гнітючу картину в безпеці ПЗ, але краще б він з однодумцями відкрив локальний чаптер OWASP та зробив знання про безпеку доступними в його регіоні для тих компаній та професіоналів, яким це потрібно. Що він, власне, і робить.

Але, при цьому звернення «по безпеку» від ІТ-компаній відбуваються трохи безсистемно і тут давайте зупинимось докладніше. Причина ховається в дуалізмі поняття про безпеку в будь-якій організації, яка створює інформаційні продукти або сервіси. З одного боку, є організаційна безпека: захист інформаційних систем та мереж, охорона інтелектуальної власності, виконання вимог місцевих та міжнародних регуляторів тощо. Тобто, захист інтересів бізнесу як сутності: щоб він не збанкрутував, а його керівники не сіли у в’язницю. З іншого боку, є безпека інженерна: захист власне продуктів та сервісів від зловживань неавторизованих осіб, захист користувачів та їхніх даних від наслідків таких зловживань, а також захист бізнес-моделі як від третіх осіб, так і від авторизованих користувачів (наприклад, ліцензування ПЗ або DRM). Тобто, захист продукту діяльності бізнесу та можливості його перетворити на прибуток.

Годі й казати, що ці дві “безпеки” є досить різними галузями знань. На жаль, цей факт відомий далеко на всім керівникам. Деколи це призводить до того, що за Application Security в компанії відповідають операційні ІБшники, що стає причиною купи непорозумінь та додаткового “тертя” в стосунках ІТ та бізнесу. Трохи рідше, програмістів з продуктової розробки обтяжують операційними завданнями — оце коли розгорається справжня драма. В казці із щасливим кінцем, в обох випадках всі дійові особи зрештою досягають консенсусу та розподіляють обов’язки більш-менш органічно. В протилежному разі, деколи доходить до робочих конфліктів, і тоді все залежить від дипломатичності та професіоналізму його учасників.

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

1. З’ясуйте, що ви захищаєте:
А:
фірму, з усіма її активами, персоналом, фінансовими таємницями, від дій кіберзлочинців та наслідків дії законів та галузевих стандартів,
чи
Б: продукт/сервіс, який ця фірма виготовляє, від атак кіберзлочинців та зловмисних дій користувачів.

А.2. У першому випадку довіряйте виконання задачі спеціалістам з безпеки, які займаються технічним захистом інформації та організаційними заходами ІБ. Такі спеціалісти виходять, наприклад, з горнила кадрової кузні банківської системи, або з класичних ІТ-інтеграторів та дистриб’юторів. В минулому вони зазвичай працівники операційних підрозділів ІТ: системні та мережеві адміністратори. Деколи — працівники правоохоронних органів.
Ключові слова: CISSP, CISM, Information Security, Security Administration.

Б.2. У другому випадку довіряйте виконання задачі спеціалістам з безпеки програмного забезпечення. Такі спеціалісти менш поширені на ринку праці та володіють дещо іншими навичками. В минулому вони програмісти, тестувальники або ж розпочали кар’єру одразу ж в Application Security. Скоріш за все, вони беруть участь в програмах Bug Bounty у вільний час.
Ключові слова: OSCP, OSCE, Application Security, Bug Bounty, White-Hat Hackers.

А.3. Методичних рекомендацій та галузевих стандартів (тобто вказівок, як будувати безпеку, коли не знаєш, як це робити) у першому випадку навіть занадто багато. Скоріш за все ви матимете справу з ISO 27001, SOC 2, NIST, CIS або іншим фреймворком. Беріть це до уваги, коли обираєте виконавців та керівників операційної ІБ.

Б.3. Щодо безпеки ПЗ, тут рекомендацій теж вистачає, а ось із стандартами поки що все глухо (і на мою думку це добре). Рекомендації з безпечної розробки можна шукати по ключових словах OWASP, SAMM, SDL, NIST. Керівники функцій безпечної розробки повинні мати не лише образне уявлення про ці процеси, але й вміти їх ефективно впроваджувати та вдосконалювати.

А.4. Залучення зовнішніх консультантів до технічної та організаційної ІБ може відбуватися в багатьох форматах, але зазвичай це або побудова чогось швидше, ніж ви можете це зробити самотужки, або перевірка якості ваших заходів безпеки. Аудит та консалтинг в цій галузі досить прибуткові види діяльності, якщо ви розумієте про що я. Тому тут треба бути дуже уважними на всіх стадіях формулювання та виконання проєктів, адже скоуп розповзається з першого дня, а невраховані очікування можуть виявитися на завершальних стадіях.
Ключові слова: CISA, CISSP, ISO27001LA, ISO27001LI, Penetration Test, Security Audit.

Б.4. Залучення зовнішнього ресурсу до процесів безпечної розробки можливе майже на всіх стадіях побудови ПЗ за виключенням, хіба що, формулювання бізнес-ідеї. Дизайн, архітектура, планування, реалізація, тестування, міграція, підтримка, робота з інцидентами — всі ці та інші фази можуть виконуватися як власними силами, так і виноситися на аутсорс. Але є один момент: на певному етапі розвитку проєкту існування власної внутрішньої функції стане набагато ефективнішим та вигіднішим. Використання послуг незалежної перевірки/тестування безпеки та ad-hoc консалтинг, скоріш за все, доведеться залишити, але в ході розробки, вдосконалення та інтеграції продукту стане актуальним власний спеціаліст з безпеки ПЗ або навіть цілий підрозділ.
Ключові слова: OWASP, OSWE, OTG, ASVS, SAMM, Application Security Assessment, Application Penetration Test.

5. Розміщення підрозділу безпеки в організаційній структурі — окрема складна та драматична тема. Багато прихильників “хороших практик” управління безпекою наполягають, що підпорядкування CISO (Chief Information Security Officer) до CIO — погана ідея, адже таким чином виникає конфлікт інтересів: ІТ-директор наполягає на доступності та продуктивності систем та сервісів, коли керівник ІБ накладає на них купу обмежень. У випадку організаційної безпеки, можливо, це твердження і є доцільним, але коли мова йде про підпорядкування безпеки до CTO в продуктовій організації — конфлікт кудись зникає, адже саме СТО зацікавлений в безпеці сервісів та продуктів, що розробляються.

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