> То, что он нарушает закон он прекрасно понимает, поэтому и пишет что не может выступить на конференции и сорвать заслуженные апплодисменты, приходится вот так скрываться.
Эмм… Это наверное такой тонкий юмор, да? Оценил.
>> А чего на mum не пустили? В другом городе или места закончились?
> 1. Я в Сибири, а МУМ в Москве
> 2. Я не так давно сменил работу и на отпуск ещё не заработал
> 3. Работодателю пофиг на микротик, чтобы просить командировку.
Не напишу т.к. я не с планеты админов. Однако, поясню, что же именно вызвало мое бурное удивление в обсуждаемом случае с микротиком.
Это не ошибка в реализации протокола. Да, на кой хрен было воять свой бинарный православный протокол когда есть \<you name\> — а и черт с ними. Наваяли и ладно. Это конечно с самого начала попахивает бомбой замедленного действия но вдруг прокатит (непрокатило).
Меня удивило то, в каком виде маршрутизатор хранит критически важную информацию. А именно — практически в plain text без шифрования.
Decoding the User Database
Now we can read ANY file from the Router! Which files are useful? In our previous talk on APA3 conference, we talked about just how insecure Mikrotik is, especially when it comes to handling credentials. In short, Mikrotik uses a very weak encoding (no hash and salt) to store passwords to an index file. So it’s entirely possible to download the credential database and extract every username and password stored inside it and that’s exactly what we did for this PoC.
After downloading the idx file, we used another great tool from mikrotik-tools to decrypt the username and password database and dump everything IN PLAIN TEXT !!!
Это было известно разработчикам. Это было известно широкой публике. Последняя разработчиков об этом предупреждала. Мол рано или поздно вам наступит хана. Они судя по всему на это забили большой болт и продолжают хранить информацию в плейне.
Вот этот момент заставляет мой мозг зависнуть. Так просто не может быть! О неверных правах доступа на /etc/shadow с последующим восстановлением паролей из-за кривого крипта и организации атак я впервые читал как минимум лет 20ть назад. Тогда это было популярно. Но черт возьми, господа, на дворе 2018й год! И что, никогда небыло и вот опять? Это с моей точки зрения за пределами добра и зла. Веры тем, кто сегодня сознательно разрабатывают такие системы, нет ровным счетом никакой. Вне зависимости от остальных ТТХ какими бы хорошими они ни были и сколько бы они не стоили.
Давайте обратимся к первоисточникам. А именно — Уголовному Кодексу. По утверждению автора он из Сибири поэтому смотреть будем в УК РФ. Я намеренно не буду вдаваться в наказания — для этого есть соотв. органы. Я буду лишь прикидывать, что можно в принципе повесить на нашего Робина Гуда. Пойдем по порядку.
Часть 1 гласит: «Неправомерный доступ к охраняемой законом компьютерной информации, если это деяние повлекло уничтожение, блокирование, модификацию либо копирование компьютерной информации»
Попадаем? Вполне. Охраняемая информация на лицо. Модификация, блокирование — запросто. Замечу — в статье ни слова не сказано о злом или каком-либо ином умысле. Получил неправомерный доступ и пошурудил там палкой? Добро пожаловать на ковер! Как минимум — будем разбираться.
Часть 4 гласит «Деяния, предусмотренные частями первой, второй или третьей настоящей статьи, если они повлекли тяжкие последствия или создали угрозу их наступления,»
Об этом мы поговорим чуть позже. Но не могу не удержаться от «наказываются лишением свободы на срок до семи лет.»
Часть 1 гласит «Создание, распространение или использование компьютерных программ либо иной компьютерной информации, заведомо предназначенных для несанкционированного уничтожения, блокирования, модификации, копирования компьютерной информации или нейтрализации средств защиты компьютерной информации»
Я не думаю, что автор лечил больных зверят каждого персонально руками. Скорее было нарисовано не суть важно какое ПО, которое сканировало сеть в поисках микротиков, автоматически пробивало их через Феерический Баг (tm), после заходило в управляющий интерфейс (telnet/ssh/web) и выполняло Добро. Это уже, господа, вполне себе попадает под создание и использование программ заведомо предназначенных для несанкционированной модификации.
Часть 3 гласит «Деяния, предусмотренные частями первой или второй настоящей статьи, если они повлекли тяжкие последствия или создали угрозу их наступления, — наказываются лишением свободы на срок до семи лет.». Да. Опять не удержался.
6) критическая информационная инфраструктура — объекты критической информационной инфраструктуры, а также сети электросвязи, используемые для организации взаимодействия таких объектов;
7) объекты критической информационной инфраструктуры — информационные системы, информационно-телекоммуникационные сети, автоматизированные системы управления субъектов критической информационной инфраструктуры;
8) субъекты критической информационной инфраструктуры — государственные органы, государственные учреждения, российские юридические лица и (или) индивидуальные предприниматели, которым на праве собственности, аренды или на ином законном основании принадлежат информационные системы, информационно-телекоммуникационные сети, автоматизированные системы управления, функционирующие в сфере здравоохранения, науки, транспорта, связи, энергетики, банковской сфере и иных сферах финансового рынка, топливно-энергетического комплекса, в области атомной энергии, оборонной, ракетно-космической, горнодобывающей, металлургической и химической промышленности, российские юридические лица и (или) индивидуальные предприниматели, которые обеспечивают взаимодействие указанных систем или сетей.
Улавливаете? Любой самый вшивый ФГУП при желании можно притянуть за уши к этому определению.
Выводы… А какие тут выводы? Если с масштабами автор не приврал — IMHO пора менять город, страну, континент и пол. Желающие отплатить вам добром на добро могут прийти с минуты на минуту.
PS: Ну и уж если вам так хочется поиграть в доброго робинагуда не смотря на возможные последствия — OK. Но делайте это с умом. Что-то глупее, чем трубить о своих подвигах на хабре придумать IMHO сложно. О какой безопасности разговор :-?
IMHO n0p.me/winbox-bug-dissection — это все, что нужно знать о продукции микротик. Внимательно прочитать, оценить цепочку «случайностей», подумать над What did we Learn? и закрыть для себя вопрос раз и навсегда.
> Я в свободное от работы и отдыха время искал уязвимые устройства по всей сети и делал настройки в соответствии со своими рекомендациями, то есть добавлял правила фаервола, которые закрывали доступ к роутеру не из локальной сети.
Чтобы «сделать настройки в соответствии со своими рекомендациями» необходимо получить удаленный контроль над устройством. Просто так, даже не смотря на то что это добрый микротик, устройство вам его не даст.
Правильно ли я вас понимаю, что вы фактически взламываете устройство используя например феерический CVE-2018-14847 и удаленно изменяете его настройки? Естественно без ведома хозяина устройства.
Если догадка верна у меня только один вопрос: вы не боитесь, что рано или поздно вас могут неправильно понять? С потенциально самыми разными последствиями. Не факт что приятными.
> А половина испытуемых даже не могут написать функцию C на бумажке, любую.
Писать код на C на бумажке будет только мазохист. Чтобы красиво выводить курлявые скобочки пером — это нужно годами не вылезать с собеседований. Жить там. Белый же человек посмотрев на свои каракули вздрогнет, извинится за потраченное время и тихонечко уйдет.
>> А у вас какая работа была, что бы знать зачем VMT?
Может еще зачем то, кроме любопытства, нужно знать код машинной команды которая вызывает метод используя косвенную адресацию?
> Любая работа, где необходимо хоть примерно представлять, насколько виртуальный вызов дороже невиртуального, почему так происходит и как этого избежать.
Допустим, оппонент не знает как устроена таблица виртуальных методов. Это конечно печально. Рассказать, как она устроена — сам бог велел. В противном случае зачем задавать такой вопрос? Опять же «Бросая камушки в воду смотри на круги расходящиеся дабы не стало это занятие пустой тратой времени».
Но вот выводы — чем это грозит а тем более с точки зрения производительности системы — я бы предложил не лезть в эту мутную реку. В зависимости от контекста все может быть сильно по-разному.
$ g++ --version
g++ (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ time ./tst n sub 1000000000
-1000000000
real 0m2.859s
user 0m2.856s
sys 0m0.000s
$ time ./tst v sub 1000000000
-1000000000
real 0m2.916s
user 0m2.912s
sys 0m0.000s
Я правильно понимаю, что аналогичным образом вы будете аргументировать свои за/против использования виртуальных методов в C++ потенциальному кандидату на собеседовании если его точка зрения разойдется с вашей?
Интересно было бы послушать ваше объяснение на эту тему. Желательно в цифрах с описанием методологии измерения. Применительно к C++. Я не навязываюсь. Но уж если вы затронули эту тему и она проста и тривиальна как три рубля… Не затруднит ли вас?
Желательно за уровне законодательства с внесением в УК. А также баги в целом. За феерические же фейлы типа недавнего MikroTik-а проводить по особо тяжкой.
> да никто не ищет товар по коду в официальном каталоге производителя, потому что никто его не знает, ищут по модели и тому, что увидели на бумажке
Не факт. Я например когда ищу запчасть к машине вбиваю в гугл её partnumber найденный под картинкой, скажем, hondapartsnow и гугл выкидывает мне список конкретных продавцов (в моем регионе). На порядки удобнее и быстрее, чем попытка сформировать запрос «вон ту хреновину от коробки передач на такой то пепелац».
Вот если бы можно было угнать её удаленно — это было бы молодежно и технологично. Автопилот в конце то концов у них есть или где? Ввел координаты точки назначения в POST запросе и желаемое время прибытия и пока. А так — это все прошлый век. Скука.
Эмм… Это наверное такой тонкий юмор, да? Оценил.
>> А чего на mum не пустили? В другом городе или места закончились?
> 1. Я в Сибири, а МУМ в Москве
> 2. Я не так давно сменил работу и на отпуск ещё не заработал
> 3. Работодателю пофиг на микротик, чтобы просить командировку.
Это не ошибка в реализации протокола. Да, на кой хрен было воять свой бинарный православный протокол когда есть \<you name\> — а и черт с ними. Наваяли и ладно. Это конечно с самого начала попахивает бомбой замедленного действия но вдруг прокатит (непрокатило).
Меня удивило то, в каком виде маршрутизатор хранит критически важную информацию. А именно — практически в plain text без шифрования.
Decoding the User Database
Now we can read ANY file from the Router! Which files are useful? In our previous talk on APA3 conference, we talked about just how insecure Mikrotik is, especially when it comes to handling credentials. In short, Mikrotik uses a very weak encoding (no hash and salt) to store passwords to an index file. So it’s entirely possible to download the credential database and extract every username and password stored inside it and that’s exactly what we did for this PoC.
After downloading the idx file, we used another great tool from mikrotik-tools to decrypt the username and password database and dump everything IN PLAIN TEXT !!!
Это было известно разработчикам. Это было известно широкой публике. Последняя разработчиков об этом предупреждала. Мол рано или поздно вам наступит хана. Они судя по всему на это забили большой болт и продолжают хранить информацию в плейне.
Вот этот момент заставляет мой мозг зависнуть. Так просто не может быть! О неверных правах доступа на /etc/shadow с последующим восстановлением паролей из-за кривого крипта и организации атак я впервые читал как минимум лет 20ть назад. Тогда это было популярно. Но черт возьми, господа, на дворе 2018й год! И что, никогда небыло и вот опять? Это с моей точки зрения за пределами добра и зла. Веры тем, кто сегодня сознательно разрабатывают такие системы, нет ровным счетом никакой. Вне зависимости от остальных ТТХ какими бы хорошими они ни были и сколько бы они не стоили.
УК РФ Статья 272. Неправомерный доступ к компьютерной информации
Часть 1 гласит: «Неправомерный доступ к охраняемой законом компьютерной информации, если это деяние повлекло уничтожение, блокирование, модификацию либо копирование компьютерной информации»
Попадаем? Вполне. Охраняемая информация на лицо. Модификация, блокирование — запросто. Замечу — в статье ни слова не сказано о злом или каком-либо ином умысле. Получил неправомерный доступ и пошурудил там палкой? Добро пожаловать на ковер! Как минимум — будем разбираться.
Часть 4 гласит «Деяния, предусмотренные частями первой, второй или третьей настоящей статьи, если они повлекли тяжкие последствия или создали угрозу их наступления,»
Об этом мы поговорим чуть позже. Но не могу не удержаться от «наказываются лишением свободы на срок до семи лет.»
УК РФ Статья 273. Создание, использование и распространение вредоносных компьютерных программ
Часть 1 гласит «Создание, распространение или использование компьютерных программ либо иной компьютерной информации, заведомо предназначенных для несанкционированного уничтожения, блокирования, модификации, копирования компьютерной информации или нейтрализации средств защиты компьютерной информации»
Я не думаю, что автор лечил больных зверят каждого персонально руками. Скорее было нарисовано не суть важно какое ПО, которое сканировало сеть в поисках микротиков, автоматически пробивало их через Феерический Баг (tm), после заходило в управляющий интерфейс (telnet/ssh/web) и выполняло Добро. Это уже, господа, вполне себе попадает под создание и использование программ заведомо предназначенных для несанкционированной модификации.
Часть 3 гласит «Деяния, предусмотренные частями первой или второй настоящей статьи, если они повлекли тяжкие последствия или создали угрозу их наступления, — наказываются лишением свободы на срок до семи лет.». Да. Опять не удержался.
УК РФ Статья 274.1. Неправомерное воздействие на критическую информационную инфраструктуру Российской Федерации
В ней прекрасно Все! Инкапсулированы вышеназванные статьи 273 и 273 но с куда более интересными сроками. Причем тут мы спросите вы? А притом, что
Статья 2. Основные понятия, используемые в настоящем Федеральном законе
6) критическая информационная инфраструктура — объекты критической информационной инфраструктуры, а также сети электросвязи, используемые для организации взаимодействия таких объектов;
7) объекты критической информационной инфраструктуры — информационные системы, информационно-телекоммуникационные сети, автоматизированные системы управления субъектов критической информационной инфраструктуры;
8) субъекты критической информационной инфраструктуры — государственные органы, государственные учреждения, российские юридические лица и (или) индивидуальные предприниматели, которым на праве собственности, аренды или на ином законном основании принадлежат информационные системы, информационно-телекоммуникационные сети, автоматизированные системы управления, функционирующие в сфере здравоохранения, науки, транспорта, связи, энергетики, банковской сфере и иных сферах финансового рынка, топливно-энергетического комплекса, в области атомной энергии, оборонной, ракетно-космической, горнодобывающей, металлургической и химической промышленности, российские юридические лица и (или) индивидуальные предприниматели, которые обеспечивают взаимодействие указанных систем или сетей.
Улавливаете? Любой самый вшивый ФГУП при желании можно притянуть за уши к этому определению.
Выводы… А какие тут выводы? Если с масштабами автор не приврал — IMHO пора менять город, страну, континент и пол. Желающие отплатить вам добром на добро могут прийти с минуты на минуту.
PS: Ну и уж если вам так хочется поиграть в доброго робинагуда не смотря на возможные последствия — OK. Но делайте это с умом. Что-то глупее, чем трубить о своих подвигах на хабре придумать IMHO сложно. О какой безопасности разговор :-?
Чтобы «сделать настройки в соответствии со своими рекомендациями» необходимо получить удаленный контроль над устройством. Просто так, даже не смотря на то что это добрый микротик, устройство вам его не даст.
Правильно ли я вас понимаю, что вы фактически взламываете устройство используя например феерический CVE-2018-14847 и удаленно изменяете его настройки? Естественно без ведома хозяина устройства.
Если догадка верна у меня только один вопрос: вы не боитесь, что рано или поздно вас могут неправильно понять? С потенциально самыми разными последствиями. Не факт что приятными.
Писать код на C на бумажке будет только мазохист. Чтобы красиво выводить курлявые скобочки пером — это нужно годами не вылезать с собеседований. Жить там. Белый же человек посмотрев на свои каракули вздрогнет, извинится за потраченное время и тихонечко уйдет.
В вашем тесте сравнивается не виртуальность/невиртуальность но инлайн/неинлайн. Это уже немного о другом.
>> А у вас какая работа была, что бы знать зачем VMT?
Может еще зачем то, кроме любопытства, нужно знать код машинной команды которая вызывает метод используя косвенную адресацию?
> Любая работа, где необходимо хоть примерно представлять, насколько виртуальный вызов дороже невиртуального, почему так происходит и как этого избежать.
Допустим, оппонент не знает как устроена таблица виртуальных методов. Это конечно печально. Рассказать, как она устроена — сам бог велел. В противном случае зачем задавать такой вопрос? Опять же «Бросая камушки в воду смотри на круги расходящиеся дабы не стало это занятие пустой тратой времени».
Но вот выводы — чем это грозит а тем более с точки зрения производительности системы — я бы предложил не лезть в эту мутную реку. В зависимости от контекста все может быть сильно по-разному.
$ g++ --version
g++ (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ time ./tst n sub 1000000000
-1000000000
real 0m2.859s
user 0m2.856s
sys 0m0.000s
$ time ./tst v sub 1000000000
-1000000000
real 0m2.916s
user 0m2.912s
sys 0m0.000s
От незадача! Как так?! :(
Желательно за уровне законодательства с внесением в УК. А также баги в целом. За феерические же фейлы типа недавнего MikroTik-а проводить по особо тяжкой.
пивкачайку и в бой :)PS: Ну или если совсем лень то у ffmpeg есть ansi output. Но это не спортивно.
Не факт. Я например когда ищу запчасть к машине вбиваю в гугл её partnumber найденный под картинкой, скажем, hondapartsnow и гугл выкидывает мне список конкретных продавцов (в моем регионе). На порядки удобнее и быстрее, чем попытка сформировать запрос «вон ту хреновину от коробки передач на такой то пепелац».