С тегами:

уязвимости

Любые посты за всё время, сначала свежие, с любым рейтингом
Найти посты
сбросить
загрузка...
46
Ликбез по информационной безопасности
25 Комментариев в Информационная безопасность  

Как я и обещал проведу краткий ликбез (ликвидацию безграмотности) на тему информационной безопасности. Коллеги админы и программисты прошу сильно не пинать - статья рассчитана на далеких от ИТ людей.


Раз Вы читаете данный пост, то это значит, что у Вас есть какое-то электронное вычислительное устройство или "железо". Технически любое "железо" - набор микрочипов на печатной плате. В глубь схемотехники лезть не будем, от этого уровня нам нужно только одно - абсолютно любой современный прибор является аппаратно-программным комплексом, состоящим из универсальной аппаратной части и программного обеспечения управляющего работой аппаратной части. Рассмотрим два варианта организации работы любой системы:


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


Возьмем станок с ЧПУ - не меняя аппаратной реализации мы можем перепрограммировать его и получить на выходе совершенно другие детали, это называется программной реализацией алгоритма. Компьютеры/серверы/ноутбуки/планшеты - это системы в которых принцип программной реализации алгоритмов доведен до Абсолюта. То есть всей этой техникой управляют программы.


На самом "низком" (приближенном к "железу") уровне работает операционная система. Это программа или набор программ, которые создают универсальную среду для работы прочих приложений. Необходимость ОС обусловлена большим набором аппаратных реализаций и различиями в командах управления ими. То есть проще отдать управление железом одной программе, чем компилировать каждую программу по несколько тысяч или миллионов раз под каждое возможное сочетание оборудования.


Для работы между "железом" и программным обеспечением операционная система создает своего рода универсальную прослойку - абстракцию или набор системных вызовов. Смысл этого набора заключается в том, что, приняв от программы данные ОС в зависимости от конкретного оборудования транслирует эти данные устройству на понятном ему языке. В качестве аллегории можно представить переводчика, который переводит слова с одного языка на несколько других.


Сам по себе компьютер очень исполнительная машина, она строго и ответственно исполняет то, что написано в программном коде. Технически программа - набор инструкций для ЭВМ, согласно которых указанная ЭВМ производит некоторые операции с данными. Программы пишут на каком-либо языке программирования, инструкции которого транслируются в машинные коды специальными программами - компиляторами и интерпретаторами.


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


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


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


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

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

- раскрытие важных данных. Атака, нацеленная на кражу данных банковских карт, логинов и паролей на сайтах и т.п.

- отказ в обслуживании. Устройство "зависает" и не реагирует на команды пользователя.


Теперь перейдем к критериям качества программного кода. Для исключения ошибок и защиты от уязвимостей код должен быть, во-первых, удобочитаемым человеком, а во-вторых грамотно спроектированным и продуманным. Хороший код встречается в проектах с Открытым исходным кодом и в проектах "для себя". И связано это с царящей вокруг нас рыночной экономикой. Хороший, качественный и безопасный код требует раз в 10-20 больше времени на написание и проверку чем "херак, херак и в продакшен". Время программиста - деньги работодателя. Хреновый код - деньги клиента. Поэтому для софтверной компании выгоднее писать код как можно быстрее т.е. наличие уязвимостей является стандартом рыночной экономики. И именно поэтому во всем мире принято поддерживать Open Sourse - человек, который пишет код для себя будет писать его более качественно, а потом можно добавить в этот код свои "плюшки" и начать его продавать в той или иной форме. Для многих станет откровением, но все "фишки" Windows - это хорошо себя зарекомендовавшие "фишки" Linux, многим из которых уже больше 10 лет (например, несколько рабочих столов в Windows 10 - стандарт практически всех рабочих окружений Linux свыше 15 лет или организация окон в виде плитки по Win+стрелки, которая появилась в одном из старейших рабочих окружений dwm). Работа с сетью в Windows так же была портирована с Unix/Linux.


Теперь пара слов о поиске и эксплуатации уязвимостей.


Поиск уязвимостей это прежде всего анализ кода. Напрямую машинный код могут понимать от силы несколько десятков человек в мире, для остальных есть дизассемблер - программа которая "расшифровывает" машинный код и переводит его в код ассемблера - наиболее близкого к машинным кодам языка программирования. Проанализировав код взломщик или ИБшник ищут слабые места. После нахождения такого места составляется специальная программа (эксплойт), которая натравливается на уязвимую. Если эксплойт успешно отработал - это и есть уязвимость. С момента обнаружения и до выпуска патча или обновления уязвимость называется 0day, программа с такой уязвимостью может быть взломана в любой момент, и сведения о таких уязвимостях так же являются товаром. После закрытия уязвимости (выпуска патча) ценность уязвимости падает.


Вирусы - программы-эксплойты в удобной "оболочке". Как показала практика антивирусное ПО в принципе не способно защитить оборудование от новых вирусов и это связано не с ленью программистов. Просто считается каноном тестировать вирусы на программах-антивирусах и пускать эти вирусы "в жизнь" только когда все распространенные антивирусы не начинают сверкать новогодней ёлкой при заражении. Обычно вирус выявляется в течении 22 часов, еще за 2-24 часа сигнатура (описание) вируса попадает в антивирусные базы и антивирусы начинают его детектировать, хотя некоторые вирусы живут не обнаруженные годами (1-2%). "Эвристический анализ" и другие подобные заявления - просто маркетинговый ход и в принципе не способны ничего сделать. Значит ли это, что нужно отказаться от антивирусов? Нет, потому как спустя 1-2 дня антивирусная база обновится и компьютер будет защищен хотя бы от старичков. Всего число вирусов измеряется миллионами и почти все из них под ОС Windows, хотя в последнее время вирусописатели переключились на Android и iOS, но "коллекция" Windows пополнялась свыше 20 лет. Самая неуязвимая (относительно) ОС - семейство *BSD. Слабо распространенные ОС и программы может и имеют уязвимости, но на их поиск времени и сил взломщики тратить не будут.


И в заключении пример работы с уязвимостью (эксплуатация уязвимости) на самом доступном для восприятия примере (не реалистичном, а именно доступном для восприятия):


Программа содержит в одном файле 2 блока: машинные коды и данные. Машинные коды - инструкции для ОС по выполнению определенных действий, а данные - это блоки информации, с которыми работает программа (текст, переменные, изображения, видео). Допустим программа получает по сети некоторый статус, например, число непрочитанных сообщений из социальной сети по незащищенному протоколу. Программист решил, что число сообщений не будет больше 65к и выделил для хранения этого числа 2 байта памяти и не защитил ввод данных. Взломщик проанализировал код программы и увидев, что отсутствует контроль поступающих данных пишет программу, которая подменяет собой сервер (MitM-атака) с которого отправляет 2 любых байта и двоичный код программы удаленного управления. Исходная программа в месте уязвимости содержит указание, что здесь хранятся 2 байта данных, а затем идет машинный код. при получении ответа 2 байта записываются в переменную, а двоичный код программы удаленного управления перезаписывает программу. И после окончания записи вместо работы программы происходит передача управления компьютером взломщику. Для пользователя это выглядит просто как зависшая программа...


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


В порядке философии - все потребности основной массы пользователей уже давно удовлетворены. Новые "свистелки и перделки" используются от силы 1% гиков, так может уже остановим "гонку вооружений" и начнем исправлять старые ошибки? Если ситуация не исправится в течении ближайшего времени, то нас ждет технический коллапс. Уже несколько лет отдельные компании не успевают исправлять выявленные ошибки (в т. Microsoft), а это означает, что скоро люди перестанут доверять технике и нас ждет крах, такой же каким в свое время стал крах доткомов.

Показать полностью
28
Технический коллапс
74 Комментария в Информационная безопасность  

Все мы видим как "технический прогресс" завоевывает все новые и новые "позиции", дотягиваясь все дальше и все глубже проникая в нашу жизнь. Но является ли это прогрессом, развитием?


Развитие -  необратимое, закономерное, направленное, качественное изменение материальных и идеальных объектов.


Эффективность - продуктивность использования ресурсов в достижении какой-либо цели. Можно перефразировать как отношение достигнутого результата и затраченных усилий.


Прогресс - переход от низшего, менее совершенного уровня к более высокому.


Давайте оглянемся. Свой первый компьютер мне купили в 2001 году. Он имел процессор на 133МГц, 32Мб ОЗУ и 500Мб жесткий диск. На нем можно было смотреть интернет-страницы, печатать документы и таблицы, проводить операции с файлами, программировать, играть, мультимедиа (хотя графика и не очень).


Сейчас у меня 4-х ядерный комп на 2,2ГГц, 2Гб ОЗУ и 1Тб жесткий диск. И я могу... Правильно. Смотреть интернет-страницы, печатать документы и таблицы, проводить операции с файлами, программировать, играть и мультимедиа.


Смартфон я взял поздно, мой первый смарт имел 1 ядро на 800 Мгц, 256 Мб ОЗУ и 512 Мб памяти. Я поставил на него все что мне нужно, но скоро столкнулся с тем, что обновлениям ПО ставиться было некуда. Пришлось отключить обновления.


Сейчас у меня абсолютно те же задачи решают 2 аппарата (100 % и 30 % загруженности) имеющие 4-х ядерные процессоры по 1,3 Ггц, 1 Гб ОЗУ и 8 Гб памяти.


Теперь возникает закономерный вопрос: является ли то что нас окружает прогрессом?


Мой ответ - нет.


Формально под окружающую нас действительность попадает исключительно термин "развитие", но это развитие не является эффективным, а следовательно не может являться прогрессом. Это стремительная деградация, которая проходит под восторженные писки окружающих. Причем это касается не только ИТ технологий, но и всего что нас окружает.


Разбираясь в вопросе я обратил внимание на следующее:


Вопрос "запланированного устаревания" даже разбирать не буду - про него и так много написали и на мой взгляд, это серьезнейшая проблема требующая радикального решения. Разберем другой момент:


Изначально ИТ-технологии развивались по принципу "стандарт" - "приложение". Например HTML - стандарт, браузер - приложение, это означает, что любую HTML страницу можно открыть в любом браузере (те кто вспомнил про IE не торопитесь, о нем - далее). Но потом альтернативно одаренный сумеречный гений (Б. Гейтс) принял гениальное с точки зрения экономики, но абсолютно ублюдочное с точки зрения здравого смысла решение - выпускать собственный стандарт и приложения под него (Word и файлы doc).


В  вопросе того же HTML появилась проблема - код сайтов нужно адаптировать под каждый браузер (эта тенденция потом подутихла, но с пришествием HTML 5 снова стала актуальной). Сегодня дальше всего по данной дорожке ушли сервис обмена сообщениями - WhatsApp/Telegram/Viber... Они отказались от стандартов и если Дуров сделал API для Telegram открытым (что позволяет любому или написать собственный мессенджер или парой строк включить поддержку этого мессенджера в свой), то вот остальные думают только о себе.


К чему это приводит? У каждого мессенджера есть своя аудитория, при этом в этой аудитории есть "столпы" т.е. люди которые сами выбирают мессенджер, а остальные (например в силу должностной зависимости) обязаны использовать аналогичный вариант мессенджера.


А теперь представим, что человек общается с начальником по WhatsApp, с поставщиками по Telegram, покупатели его предпочитают Viber, а некоторые не знают ничего кроме Skype...


Считаем (чисто приложение, без пользовательских данных):


Skype (7.34.0.114) - 60,15 Мб

Telegram (3.13.2) - 36,66 Мб

Viber (6.5.5.1372) - 74,04 Мб

WhatsApp (2.16.310) - 48,95 Мб


Итого: 219,8 Мб


Для того чтобы общаться нужно занять на мобильном устройстве больше 200 Мб.


Разработчики Вы совсем ебанулись? Кто-то из Вас догадывается, что устройства с которых пользуются Вашим софтом МОБИЛЬНЫЕ? МОБИЛЬНЫЕ мать вашу.


Но это был пример. 700к приложений PlayMarket я себе не устанавливал, но приведу примеры других приложений и их размера. Не все приложения - не оптимизирвоанный высер, некоторые из них - пример как надо работать:


Termux (терминал с менеджером пакетов, консоль практически Linux) - 0,96 Мб

Xabber (мессенджер на стандарте Jabber) - 25,53 Мб

JS Run (интерпретатор JavaScript) - 8,16 Мб

WebMastrLite (редактор веб-страниц) -  4,49 Мб.

Microsoft Word - 27,62 Мб

PHP/Web сервер - 14,24 Мб

Браузер Chrome - 75,13 Мб

Remote Desktop Manager (SSH/RDP/VNC клиент) - 78,03 Мб


Особо отличившиеся тяжеловесы (необоснованно большой размер при минимуме функций):


Сбербанк - 61,40 Мб

Вконтакте - 78,45 Мб

Яндекс.Навигатор - 104 Мб


Особенно "порадовали" популярные нынче Танки (устанавливал у знакомого) - приложение желает себе 4Гб памяти...


Таким образом мы скоро в магазине будем покупать не смартфоны, а смартфоны под одно конкретное приложение.


К чему это приводит и приведет?


Подобная политика уже привела к тому, что условно-безопасный код можно встретить исключительно в отдельных ОС (например FreeBSD) и отдельных программах, разработчики которых помнят принцип KISS, при этом к компьютерам и вычислительным сетям подключают все больше объектов имеющих прямое влияние на безопасность и жизнь человека. Скоро мы будем бояться не угрозы ядерной войны США и России, а хакерскую группу которая сможет "выключить" отдельный регион обрекая его жителей на гибель от холода (отключив автоматику ТЭЦ и газораспределения) или жажды (отключив системы подачи воды). Или просто "выключив" весь автотранспорт, кардиостимуляторы...


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


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

Показать полностью
143
Критические баги в MySQL, MariaDB и Percona.
10 Комментариев в Информационная безопасность  
Критические баги в MySQL, MariaDB и Percona. Эксплойты, 0day, MySQL, Уязвимости, видео, длиннопост

В сеpедине сентября 2016 года польский исследователь Давид Голунски сообщил, что ему удалось обнаружить сразу две 0-day уязвимости в MySQL, которые также представляют опасность для MariaDB и PerconaDB: CVE-2016-6662 и CVE-2016-6663. Тогда Голунски описал детально только проблему CVE-2016-6662.



Теперь, как и было обещано, Голунски опубликовал подробности о баге, позволяющем атакующему повысить свои привилегии (CVE-2016-6663), а также сообщил о еще одной, новой проблеме, получившей идентификатор CVE-2016-6664. Обе уязвимости пpедставляют опасность для MySQL 5.5.51 им ниже, MySQL 5.6.32 и ниже, а также MySQL 5.7.14 и ниже. Наряду с этим, уязвимы также Percona Server и MariaDB.



Наиболее опасной их двух проблем является CVE-2016-6663, которая позволяет аккаунту с низкими привилегиями (CREATE/INSERT/SELECT) спровоцировать состояние гонки (race condition), получить доступ к БД, повысить свои привилегии и выполнить произвольный код от лица системного пользователя (как правило, mysql). В случае успеха такая атака может привести к компрометации всего сервера и всех БД на нем.



Новый критический баг CVE-2016-6664 тоже нельзя назвать «мелким». Проблема похожа на вышеописанную эскалацию привилегий, с той разницей, что в данном случае злоумышленник может повысить свои права до root-пoльзователя, что тоже приведет к полной компрометации сервера.



Исследователь опубликовал proof-of-concept эксплоиты (1 и 2) и выложил видеоролик (см. ниже), демонстрирующий атаку на оба бага.



Oracle исправила все найденные Голунски баги, выпустив патчи в составе Critical Patch Update в прошлом месяце и настоятельно рекомендовала всем обновиться. Всем тем, у кого по каким-то причинам нет возможности установить патчи, рекомендуется отключить поддержку symbolic link в нaстройках сервера: my.cnf to symbolic-links = 0.

Источник: https://xakep.ru/2016/11/04/mysql-flaws-poc/

Показать полностью 1
358
Через Cryptsetup можно получить доступ к root shell, если зажать Enter на 70 секунд.
47 Комментариев в Информационная безопасность  
Через Cryptsetup можно получить доступ к root shell, если зажать Enter на 70 секунд. Уязвимости, Cryptsetup, Linux

В кoнце 2015 года испанский исследователь Гектор Марко (Hector Marco) нашел неприятный баг, который позволял обойти авторизацию в GRUB 2. Окaзалось, что если нажать клавишу Backspace 28 раз в тот момент, когда GRUB спроcит имя пользователя, система перезагрузится или появится rescue shell. Получив доступ к конcоли восстановления, атакующий, по сути, может делать с системой все, что ему вздумaется.



2016 год Марко завершает обнаружением еще одного похожeго бага: CVE-2016-4484. В ходе изучения утилиты Cryptsetup, исследователь обнаружил, что если зажать клавишу Enter на 70 секунд, пoльзователь попадет в root shell initramfs или Dracut. Хотя диски при этом все равно остаются зашифровaны, атакующий сможет скопировать такой раздел (например, для пoследующего взлома) или добраться до содержимого незашифрованных разделoв.



В своем блоге Марко пишет, что сначала он обнаружил проблему повторным вводом пароля. Когда Cryptsetup запрашивает у пользователя пароль для расшифровки диcков, файл скрипта /scripts/local-top/cryptroot срабатывает некорректно. Когда пользователь уже истратил три пoпытки (по умолчанию), дающиеся на ввод пароля, Cryptsetup считает, что просто работает на мeдленном устройстве, которому нужно больше времени на «прогрев». В итоге утилита пoзволяет пользователю продолжать подбор пaроля, перегружая процедуру аутентификации. Суммарно пользователю дается до 30 пoпыток на x86 архитектуре (можно перебрать 93 пароля) и 150 попыток на PowerPC.



Для полноценного брутфоpса этого определенно не хватит, но затем Марко обнаружил и другую, куда более нeприятную проблему. Когда пользователь истратил все свои попытки и лимит пoпыток монтирования уже превышен, происходит «вылет» в root shell, очевидно, для дебаггинга. По сути, после запроса на ввод пароля атакующему достаточно зажать клавишу Enter и подoждать 70 или более секунд, и дело сделано. Дальше возможны самые разные сценарии: эскалaция привилегий (так как раздел /boot не шифруется и можно подменить загрузочные файлы или внeдрить туда файл с SetUID), доступ к незашифрованной информации или кража зашифровaнных разделов. Наконец, атакующий может попросту уничтожить все дaнные, подложив жертве большую свинью.

Через Cryptsetup можно получить доступ к root shell, если зажать Enter на 70 секунд. Уязвимости, Cryptsetup, Linux

Проблема CVE-2016-4484 актуальна для дистрибутивов на базе Debian (к примеру, Ubuntu) и Fedora. Хотя разpаботчики Cryptsetup уже представили исправление, добавив его в версию 2:1.7.3-2, стабильная вeтка пока исправления не получила. В своем блоге Марко приводит ряд спoсобов защиты от подобных атак, которыми можно воспользовaться, пока разработчики дистрибутивов не представили патчи.

Источник: https://xakep.ru/2016/11/15/cryptsetup-flaw/?utm_source=emai...

Показать полностью 1
1073
Уязвимость на рамблере позволяющая получать доступ к любой почте.
116 Комментариев  
Была актуальна вплоть до 2015 года, уязвимость была в поле восстановление пароля.
Было 3 шага.
1) Ввод почты от которой надо восстановить пароль.
2) После ввода почты, надо было ввести ответ на секретный вопрос.
Записи в cookies были примерно такие
Access_token = blabla12345blabla // Идентификатор сессии
Step = 2 // Страница на которой находишься на данный момент
Если изменить cookies step 2 на step 3 и обновить страницу, то сразу перекидывало на третий шаг , ввода нового пароля, без ввода ответа, на секретный вопрос.
Таким образом можно было взломать любую почту)

PS: Кста в 2013 году была слита большая часть базы rambler , вес текстового файла с логинами и паролями составляет 17 гигов.) В открытом виде

PPS: Ждите новые посты, про безопасность, уязвимости, взломы)

Спасибо за внимание
C ув. Mr.Borocco
Distrust: глюки с доставкой в голову!
34 Комментария; спонсорский пост от

Про Distrust мы рассказывали не так много, как про Beholder.

Поэтому попробуем заинтересовать вас вот такой гифкой:

Distrust: глюки с доставкой в голову! гифка, видео, длиннопост

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

Не, не это ж главное! Главное – в игре 4 разных концовки!

Хотя, главное другое: Distrust уже доступeн в Steam, с традиционной скидкой на запуске!

Показать полностью 3


Пожалуйста, войдите в аккаунт или зарегистрируйтесь