Роль мозга в СЗИ и противостоянии зловредам

От кого-то в твиттере перешел на статью Сравнение блокирования загрузки вредоносных программ браузерами (NSS Labs, Март 2014), в конце которой было:

А как у вас организована защита от загрузки вредоносных файлов? Напишите в комментариях, что именно может воспрепятствовать загрузке «зловредов» на ваш ПК.

Поскольку комментарий получился у меня большой и в будущем может быть интересен кому-то еще, решил разместить здесь. Советую прочитать статью, чтобы лучше понимать, о чем речь, т.к. пост я изначально не задумывал для блога, а просто писал то, что в голову придет, как ответ на поставленный вопрос.


Я все-таки настою на значимости мозга :) По трем причинам:

  1. Я всегда знаю момент, когда я буду качать файл для запуска для себя. Я не буду шарить по левым сайтам искать антивирусы и кодеки.
  2. Насколько я знаю, пока только с мозгом можно не ставить java в систему, если она не нужна, или удалить ее нафиг вместе с плагинами, которые пробивают в drive-by атаках. А если и оставлять, то в какой-нибудь виртуалке, включаемой при необходимости, не забывая следить за обновлениями. Это касается и другого ПО.
  3. Я не доверяю ни антивирусам, ни комплексным системам, т.к. сам видел, как у меня пробивали одновременно и антивирус, и HIPS. В этом плане я совершенно четко понимаю, что точно также не стоит особо доверять blackbox технологии, у которой есть те же самые недостатки, если кто-то будет пробивать целенаправленно. В этом случае все равно человек с мозгом останется один на один с проблемой.

Если вдруг все-таки вышло так, что мне нужна новая программа (хотя это бывает весьма редко, т.к. все нужное уже стоит) или новая версия, то после того, как я скачаю файл с официального сайта (или хранилища, на которое он ссылается), обычно выполняю такой ритуал:

  1. После скачки или еще в процессе ищу по сайту хэш суммы. Этот пункт как раз блокирует еще и те дурацкие сайты с кучей ссылок, где непонятно, что качать. Ошибся — получил какой-то левый ехе, ну и ладно, удалил и ищу норм ссылку, а потом проверяю хэш, а лучше 2.
  2. Смотрю на наличие цифровой подписи и сертификат.
  3. Смотрю репутацию файла в KSN.
  4. Впринудиловку все равно сканирую файл с помощью KIS, без разницы, сканился он резидентным модулем или нет.
  5. Иду на VirusTotal и скармливаю файл ему.

Если звезды сошлись, файл я запущу.

Мне думается, что правильно писали про вероятности и компьютерную гигиену, про образование еще со школы. И технологии все направлены на защиту масс.

Я сменил Opera на Chrome где-то после 7 лет использования, т.к. разработчики первой явно не обеспечивали нужный уровень защищенности (долго фиксили уязвимости, о которых стало известно публично), Chrome же все время работает над защищенностью своей и пользователя.

Я сменил на KIS связку DrWeb + Outpost (ее пробили и она потребляла слишком много ресурсов).

Но я совершенно четко понимаю, что панацеи нет. Поэтому своим родственникам я точно также поставил KIS и просто приучил к тому, что не стоит запускать exe файлы, не спрашивая меня.

Особенно это актуально в свете тенденции — все чаще вижу высказывания, что факт пробива неминуем, и бОльший интерес представляет то, что вы будете делать, когда ваши средства защиты пробьют.

На других надейся, а сам не плошай. Только мозг.

Рубрика: Браузеры, СЗИ | Метки: , , | Добавить комментарий

PHDays 2013

Начну с нескольких простых и очевидных советов, как для себя, так и для организаторов.

1. Участнику перед форумом нужно внимательно изучить программу докладов, воркшопов, конкурсов и т.д., чтобы на месте был хотя бы примерный план, когда и куда идти. Причем свой выбор надо как-то зафиксировать, распечатав по старинке программу и обведя интересное ручкой, или закинув в Evernote в смартфон. Чем точнее будет план, тем лучше. Стоит заранее поломать голову в спокойной обстановке, расставив приоритеты.

Так я делал на трех ранее посещенных мероприятиях в прошлые годы. В этот раз откладывал до последнего и в итоге выбирал на ходу. Капитан намекает, что впечатление от форума в части докладов сильно зависит от выбора этих докладов.

К концу первого дня сложилось ощущение, что «в прошлом году было лучше», и все надежды были на второй день. В итоге сразу после форума в своих впечатлениях от докладов мне было сложно разобраться и я отложил написание поста в блог до просмотра видео. Сейчас, глядя на программку с пометками, я почти уверен, что посмотри еще 3 доклада в первый день, настрой перед вторым был бы куда веселее.

Проблема в том, что в программе была только сетка, без развернутого описания, по названию и на память не всегда было легко вспомнить, понять, о чем примерно речь. Плюс субъективные вещи типа Лукаций и SDLC — ну что я там услышу? :D И какое удивление увидеть в записи очень интересную секцию мини-докладов от нескольких человек.

Казалось бы, надо было просто зайти на сайт и посмотреть, но … Читать далее

Рубрика: PHDays | 1 комментарий

Конкурс на поиск уязвимостей в Badoo, защита от CSRF

В марте Badoo анонсировала месяц поиска уязвимостей. Первые итоги можно посмотреть на хабре. Я не буду описывать все найденные уязвимости, т.к. ничего интересного там не было. Что бросается в глаза, если посмотреть список репортов, так это большой отрыв в количестве CSRF относительно других типов атак. Возможно, разработчики Badoo ранее не сталкивались с CSRF.

В своих итогах они пишут:

Уже через несколько дней после старта конкурса мы выложили ещё одну глобальную защиту: все веб-сервисы на авторизованной части сайта стали проверять наличие токенов в POST- или GET- запросах к ним. Этим фиксом мы закрыли большую часть CSRF-заявок.

Именно этой защите и посвящен пост. Я обнаружил 3 страницы (на самом деле их гораздо больше, но для репорта хватит и PoC), отдающих session id или CSRF token и позволяющих себя фреймить. Пример вектора атаки — с помощью соц. инженерии заманить пользователя на страницу, где в качестве капчи будет session id или CSRF token, и заставить пользователя отправить их атакующему. Делать content extraction для PoC было лень, да и view-source вроде уже почти везде закрыт, поэтому я ограничился только капчей. Если session id был длинноват для капчи, то токен вполне подходил — всего 6 символов.

За примером долго ходить не нужно, гугл сразу выдает концепт подобной атаки.

Однако это уязвимостью не посчитали:

«юзера можно вынудить отдать rt и без фреймов-clickjacking’ов, тут мы, к сожалению, ничего поделать не сможем. «

Сейчас CSRF токен rt светится почти везде в URL на Badoo, не удивлюсь, если его можно сливать банально через referer, скинув ссылку в чате, например на картинку, свой сайт и т.п.

В итоге защиту от CSRF Badoo вроде и ввели, но как-то выборочно, без X-Frame-Options, и о безопасности токена не заботятся… Понять мотивы такого решения я не смог ;)

Из положительного этой bug bounty программы отмечу быструю скорость рассмотра заявок, оплаты и вообще качества информирования — табличка со статусами заявок порадовала. Это то, чего так не достает Яндексу ;)

Рубрика: bug bounty, Web Application Security | Метки: | 1 комментарий

Уязвимость к XSS на сайте mts.ru, YandexBogBounty

Вечер публикации уязвимостей. 2 штуки на 8к в рамках YandexBugBounty скинул в тему на RDot.

Аккурат перед ZeroNights, выбирая себе тариф на интернет для смартфона на сайте МТС, с первой попытки нашел XSS. Складывается впечатление, что либо у них все совсем плохо, либо мне везет. Был инжект напрямую в JS, даже тега script не понадобилось. И, наверное, потому встроенная защита Chrome не помогла.

Письмо от 17.11.2012:

На вашем сайте есть уязвимость к атакам XSS.
Если к print дописать что-то, получим страницу, на которой в функции GetYandexCount() в переменную currentUrl попадают данные из адресной строки без необходимой обработки
function GetYandexCount() {
var currentUrl = ‘http://www.spb.mts.ru/news/2012-07-19-1738630/printXSS/‘; //window.location;
var siteSection = ‘ab’;
var title = ‘Новости’;
if (currentUrl.length>0)
YandexCounterService.Services.YandexCounterV2.GetCount(currentUrl, title, siteSection, OnLookupComplete);
}
Например, так можно вывести cookie
Работает на последних на текущий момент Chrome, Firefox, Opera. Во вложении скриншот в Chrome.
Кроме того, у следующих cookie нет флага HttpOnly
userinfoMsisdn
userinfoTariff
userinfoBonus
userinfoBalance
mts_xss_2012-11-17
Рубрика: Web Application Security | Метки: , , | Добавить комментарий

Впечатления о ZeroNights 2012

У меня противоречивые впечатления о ZeroNights 2012, в которых я сам пока не разобрался, потому пост, возможно, будет сумбурным. Но если сейчас не напишу, потом может не быть времени. Уже сегодня RuCTFE 2012, в котором попробуют сыграть ReallyNonamesFor.

Наверно, как раз с этого и начну. Команда ReallyNonamesFor — это несколько человек из skype-конференции, возникшей в ходе участия в конкурсе «Взорви городишко» на PHDays 2012. И для нас ZeroNights начался с хакквеста от ONsec. Символично, что 1й конкурс перед одной крупной конференцией по ИБ нас собрал, а на 2м уже перед другой крупной конференцией мы смогли занять 1е место. Спасибо ONsec за интересный конкурс и за призы — бесплатный проход на конфу, без которого некоторые члены нашей команды могли не попасть на ZN и не встретиться в реале так скоро… Читать далее

Рубрика: Конференции | Метки: | 1 комментарий

Маловероятный, но возможный обход авторизации в Opera 12.02, Zyxel KEENETIC-V1.00[BFW.4.4]D0

По просьбе 090h на днях проверял, отключается ли WPS в Zyxel Keenetic. На прошивке из названия отключается. После выхода из админки устройства, решил посмотреть, смогу ли выполнить какое-нибудь действие. Сначала ожидаемо получил отлуп с ошибкой, потом все-таки получилось. Первое, что пришло в голову — это какой-то глюк с кэшем, но нет — роутер перезагружался, а вход в админку после разлогина стабильно воспроизводился.

Оказалось, что это стечение обстоятельств — поведение Opera и реализации авторизации в Keenetic. Да, на практике такое бесполезно, т.к. получить локальный доступ к браузеру, в котором был залогинен админ, малореально, но сам факт показался довольно забавным. С другой стороны, чисто в теории, если допустить, что там нет проверки от CSRF, можно, например, ребутать роутер :D

Репорт в Zyxel:

По непонятной причине после нажатия на кнопку «выход» в админ-панели zyxel keenetic с прошивкой KEENETIC-V1.00[BFW.4.4]D0 все равно можно попасть в админ-панель, если не закрывать браузер, при запросе авторизации браузером нажать в опере «отмена», а потом в адресной строке обратиться к устройству.

Можно получать страницы админ-панели, перезагружать устройство. Воспроизводится стабильно.

Ответ Zyxel:

Разработчики ответили, что Opera кеширует хеши авторизации. По-нормальному, она должна их забывать после разрыва сессии. Поэтому сделать они ничего не могут.
В Keenetic используется Digest access authentication. И не полная реализация. Параметр nonce не меняется. Это и позволяет хранить авторизацию. Т.е. Опера на ответ сервера 403(требуется авторизация), не спрашивая пользователя, сразу пробует сохранённые хеши. Или вообще делает обращение сразу с правильным «Authorization: Digest …» в заголовке.

Ответ Opera:

Hi,

Thanks for your report. We are not entirely certain what is going on here, but here is our understanding:

User logs in with http authentication (digest)
User clicks logout
Server responds with a 403, possibly some more in some combination
At this point, other browsers respond with purging the credentials cache
User loads another page
At this point, Opera continues using the cached credentials, while other browsers are forced to ask the user for credentials again

My Russian is not too strong, and auto-translate doesn’t work with a screenshot, if you could include your previous conversation in plain text, that would be helpful.

Note that if the above understanding is correct, there is no security issue in Opera. The router is using digest authentication in a peculiar manner and relying on non-standard caching behaviour, but depending on the intended protection, this is not necessarily a security issue in the router either. This behaviour is more secure than most routers, even in Opera, as the password is never relied in plain text, and does not perform worse than average in any respect.

Unless we get other indications, we will therefore be treating this as a regular bug (not a security issue), regarding cached credentials compatibility with other browsers. We would still like to understand exactly what is going on, and would be grateful if you could help us understand this. A log of what is passed across the network, from the point of clicking «logout» to the point of seeing a logged in page again, would be useful. Would you be able to provide us with this? Tools like WireShark or Fiddler will allow you to record and save the network data.

Рубрика: Web Application Security, Браузеры | Метки: | Добавить комментарий

Участие в конкурсе «Взорви городишко» на PHDays 2012

Одним из способов получить приглашение на прошедший PHDays 2012 было попадание сначала в топ-3, а потом топ-10 конкурса «Взорви городишко». Заранее настраивался поехать на форум, а облом с вроде бы успешной регистрацией онлайн вынудил и изначально участие для развлечения превратилось в борьбу за топ-10.

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

У меня получилось сыграть роль координатора, собрав вместе несколько человек. После решения какого-то задания, мы давали друг другу подсказки. Ближе к концу уже стали действовать как почти команда, разделив задания.

Многие участники, которые были в середине конкурса выше, ближе к концу уже забросили его. У меня же понемногу стала вызревать мысль, что было бы прикольно обогнать кого-то из топа, что мы успешно сделали за час до конца конкурса.

По сути это 1й раз, когда я упорно ломал голову над подобным конкурсом. Было очень интересно. Спасибо Владимиру Воронцову, Дмитрию Евтееву и всем, кто организовывал этот конкурс и PHDays 2012 вообще, спасибо всем участникам нашей импровизированной конференции из 5-6 человек и другим людям, которых я мучил всякими вопросами ;) Отдельное спасибо админу того самого сайта, который сделал мне обертку на bash для отправки команд для whitehouse.

Кстати, этот хакквест очень наглядно показал, как сильно решает техническая подготовка — сканеры находят сразу 2-3 флага, на поиск которых руками я потратил гораздо больше времени. Не говоря уже о скриптах определения координат Wi-Fi по MAC, фаззерах и т.д. Я знал, что автоматизация решает, в том числе по стримам Lambdaman из leetmore, но что настолько… Например, напиши мы скрипт на bash и whitehouse бы, возможно, был бы решен полностью. А так вручную мы до флагов просто не дошли, хотя были на верном пути. Автоматизируйте ;)

Рубрика: PHDays, Конференции | Добавить комментарий