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

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

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

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

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

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

Звинувачення щодо зламу Equifax

Сьогодні Мін’юст США нарешті оголосив звинувачення (заочно) китайським державним хакерам, які брали участь у зламі Equifax. Через тиждень після того, як серед усього іншого суд зобов’язав компанію-жертву витратити один мільярд доларів на кібербезпеку. Та це лише початок історії.

Те, що китайці зламали Equifax, в певних колах вже давно публічна інформація. Ми в Berezha Security в програмі нашого тренінгу з безпечної розробки використовуємо злами Equifax, Anthem та Office for Personnel Management (OPM), як стандартний приклад обрання мішеней для операцій міжнародного кібершпіонажу. Звучить пафосно, але насправді все дуже просто, дивіться.
1. Зламавши страхову компанію із монопольним держзамовленням Anthem, китайці отримали список усіх держслужбовців у США.
2. Зламавши глобальний відділ кадрів держагенцій OPM, китайці отримали список усіх держслужбовців США, які не мають доступу до інформації з грифом “SECRET” та “TOP SECRET”. Бо їх, як і скрізь у світі, супроводжують не звичайні кадри, а “режимщики-секретчики”.
3. Зламавши бюро кредитних історій Equifax, китайці отримали дані про те, як люди яких немає в другому списку, але які є в першому, вносять платежі по кредитах. І якщо раптом хтось із них запізнився два-три рази зробити внесок, чуйні китайці готові допомогти їм розв’язати ці матеріальні складності в обмін на шматочок батьківщини.

Ось така елементарна вправа з теорії множин. Тому, офіційна заява, що один із трьох інцидентів виконали китайські хакери в погонах, ставить крапку в обговоренні можливих версій щодо виконавців усіх трьох операцій. У диванних експертів, для яких усе це теорія змови, можуть виникнути сумніви. Розумію, не всі люди однаково обдаровані інтелектом. Але думаю, що посперечатися їм буде краще не зі мною, а з сім’ями страчених американських розвідників, яких китайському уряду вдалося виявити у схожий спосіб серед дипломатів, що знаходилися у Китаї.

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

https://www.justice.gov/opa/pr/chinese-military-personnel-charged-computer-fraud-economic-espionage-and-wire-fraud-hacking

Принцип незалежності перевірки

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

Отже, давайте по черзі. Що таке конфлікт інтересів? Це така ситуація, коли наше особисте заважає професійному, або коли наші професійні пріоритети конфліктують між собою. Крайній випадок: ваша друга половина пише код, а ви його перевіряєте. Ви можете мені зараз мамою поклястися, що будете об’єктивні та неупереджені у своїх діях та висновках, але ми обоє знаємо, що це не так. Щось в цій ситуації буде не так як зазвичай. Уважність, прискіпливість, суворість формулювань. І щось піде не так. Бо це нормально. Це людська природа і з цим нічого не зробиш. Ви свідомо чи несвідомо будете намагатися збалансувати в собі дві ролі й в результаті принаймні одну з них, а скоріш за все обидві, провалите. Ви або погано перевірятиме, або погано сформулюєте наслідки, або будете після цього поганим партнером бо підставили. Тому якщо ви обоє не є клінічними соціопатами в такі ситуації краще не потрапляти.

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

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

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

Бережіться.

“Культурні війни” в індустрії кібербезпеки

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

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

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

tl;dr: Особисто я твердо впевнений, що будь-які професійні контакти з російською індустрією інформаційної/кібер-безпеки повинні бути виключені до завершення окупації території України, включаючи Донецьку та Луганську області та АР Крим. І це не моя особиста думка чи політична позиція, це результат розв’язання морально-етичної дилеми за допомогою простого та доступного інструменту, про який нижче.

Але спочатку трохи про себе. До середини 90-х, тобто 15 років життя, я прожив на території РФ, спілкувався виключно російською та десь до 20 років вважав себе носієм “східнослов’янської” культури, вірив в братство народів тощо. З 2005 по 2007 я працював у російській компанії, причому не просто в її українському відділенні, а з відрядженнями, часто довготривалими, у найвіддаленіші куточки СНД. Далі, я двічі виступав на досить масштабній конференції з кібер-безпеки PHDays, за деякими оцінками найбільшій в регіоні. Я це все розказую, щоб не залишалося сумнівів: я знаю, про що йде мова, і у 2014-му мені довелося багато з чим розпрощатися.

Тепер про інструмент. Є таке поняття, система цінностей. Для багатьох воно суто віртуальне, але якщо розібратися, то все до смішного просто. Є а) цінності та б) їхні пріоритети.

За прикладом далеко ходити не треба: західні, більш відомі як європейські, цінності. Вони складають основу культури т.з. “міжнародної співдружності”. Якщо спрощувати, то це Європа, Північна Америка та країни, які мають з ними тісні культурні зв’язки. Цінності та порядок їхнього пріоритету у цивілізованої західної людини виглядають так:
1. Людина
2. Суспільство
3. Держава
4. Професія
Або, якщо розгорнути:
1. Цінність людського життя, права людини, недоторканість приватної власності тощо.
2. Інтереси суспільної групи: сім’ї, родини, громади, колективу, політичної партії тощо.
3. Інтереси держави, громадський контроль, фіскальна дисципліна тощо.
4. Інтереси роботодавця, професійної спільноти тощо.

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

Якщо я вас вже заплутав, то ось спрощений варіант, який набагато практичніший.
1. Спершу, будь хорошою людиною.
2. Потім, будь хорошим членом сім’ї та суспільства.
3. Потім, будь хорошим громадянином.
4. І нарешті, будь хорошим працівником та професіоналом.

Розберемо приклад. Або два.

Скажімо, ви – рядовий армії, який “вміє працювати з комп’ютером”. Сидите в аналітичному центрі, слідкуєте, щоб скрізь порядок був. Аж раптом натрапляєте на засекречений, але не дуже захищений відеозапис розстрілу репортерської групи з борту армійського гелікоптера. Ваші дії? Керуючись цінностями, які у вас закладені з вихованням та формуванням особистості, в тому числі тією ж армією, ви чітко усвідомлюєте, що з одного боку – треба бути хорошим громадянином: розголос цього інциденту вочевидь не на користь вашій державі. Але з іншого боку – треба бути хорошою людиною: розстріл мирних та неозброєних людей, навіть через тактичну помилку, має бути публічно визнаний та розслідуваний, а винуватці – покарані. Деякий час хороший громадянин та хороша людина всередині вас сперечаються, але людина перемагає. І ви виносите відос з датацентру, передаєте його Wikileaks, вас заарештовують, обвинувачують та відправляють за ґрати на термін до 35 років з правом на помилування. Аж до поки інша людина не згадує про те, що вона теж ніби хороша, і треба вас помилувати поки президентський термін не скінчився.

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

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

У східній культурі, наприклад, інтереси суспільства та людини зазвичай знаходяться нижче інтересів держави та роботодавця. Не тому, що це результат репресій та деспотизму, ні. Просто це інша культура, інша система цінностей, яка так само як європейська виникла як еволюційна відповідь на виклики часу та в решті решт виявилася оптимальною для сталого розвитку цивілізації. Так, деякі “культурні особливості” східної цивілізації європейцям можуть здаватися аморальним або абсурдними: культури різні, цінності різні. І те, чого ми можемо вимагати від носіїв культури, сумісної з нашою, ми зазвичай не можемо й очкувати від аутсайдерів. Є теорія, що в результаті свого розвитку цивілізації невідмінно приходять до ідеалів гуманізму, але це вже інша тема.

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

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

Бережіться.

Важливі справи зробити в січні

Важливі справи зробити в січні

Зараз початок року і дуже важливо не відкладати важливі щорічні справи. Тому що можна так допрокрастинуватися до наступного січня і так далі. Були, знаємо.

Отже, що варто зробити в січні.

  1. Змінити паролі, які ви мусите тримати в голові. Тобто щонайменше ваші паролі на вхід до комп’ютера, розблокування смартфона та парольного сейфа. Вони повинні змінюватися щонайменше раз на рік, то чому б не зробити це зараз?
  2. Перевірити, що у вас є резервна копія найкритичніших даних. Уявіть собі, що пожежа, повінь, землетрус або кіберполіція забрали всі ваші електронні пристрої. Чи є у вас в начці смартфон із синхронізованою БД ваших паролів до всіх хмарних сховищ, зашифрованих віртуальних дисків, електронних гаманців, облікових записів дистанційного банкінгу, і звісно ж, соціальних мереж, месенджерів та електронної пошти? Без яких зупиняться ваші робота або бізнес, та доведеться скасувати наступну відпустку?
  3. Перевірити, що на всіх ваших супер важливих облікових записах встановлено двофакторну автентифікацію і це не SMS. Що всі ваші другі фактори зберігаються щонайменше у двох екземплярах (наприклад на смартфоні та в комп’ютері), а резервні коди встановлено та збережено в надійному місці. Перевірити все те саме в найкритичніших облікових записах ваших рідних та близьких.
    https://myaccount.google.com/signinoptions/two-step-verification
    https://www.facebook.com/security/2fac/settings
    https://www.instagram.com/accounts/two_factor_authentication/
    https://account.live.com/proofs/manage/additional?mkt=en-US&refd=account.microsoft.com&refp=security&fref=security.banner.two-step

Знайти посилання на інструкції, як ввімкнути другий фактор, можна тут: https://twofactorauth.org

  1. Перевірити, які додатки мають доступ до ваших важливих даних. За рік таких паразитів могло накопичитися чимало. Ось перелік посилань на відповідні сторінки у важливих сервісах. Під час перевірки пам’ятайте правило буравчика: якщо ви не можете згадати що це, краще це видалити.
    https://myaccount.google.com/permissions
    https://www.facebook.com/settings/?tab=applications
    https://instagram.com/accounts/manage_access
    https://account.live.com/Consent/Manage
    https://www.dropbox.com/account#applications
    https://www.linkedin.com/psettings/permitted-services
    https://twitter.com/settings/applications
  2. Почати користуватися VPN якщо ще ні. У 2020 році немає виправдання наївному ставленню до приватності. Розумники, які вважають, що чесним людям немає чого приховувати, можуть викласти свої логіни та паролі в коментах. Правда полягає в тому, що приватність важлива не тому, що у вас є що приховувати, а тому, що це не їхня псяча справа. А захищатися нині доводиться від провайдерів інтернет, власників веб-сайтів, роботодавців та держустанов. У світі стільки охочих дізнатися про вашу поведінку в усіх подробицях, що перераховувати всіх не вистачить жодного терпіння. Тому просто спробуйте закрити це питання найдоступнішим способом: скориставшись надійним VPN-сервісом (радити не буду), або створивши власний VPN-сервер згідно з інструкцією тут: https://bit.ly/3asyi8L

Всім безпечного року. Бережіться.