Привет. Меня зовут Марко (я системный программист в Badoo). И я представляю вашему вниманию перевод поста по Go, который мне показался интересным. Go действительно ругают за толстые бинарники, но при этом хвалят за статическую линковку и за удобство выкладки единственного файла. Если на современных серверах толстые бинарники – не проблема, то на встраиваемых системах – еще как. Автор описывает свою историю борьбы с ними в Go.
User
Так ли безопасно использование абсолютного пути в *nix системах, как мы привыкли считать?
Идея редактирования переменных окружения пользователя для повышения прав при тестировании на проникновение стара как мир. По этой теме написано множество статей, и даже в книгах начали появляться советы по использованию абсолютного пути вместо относительного. Вот пример такого совета из довольно известной книги Unix и Linux. Руководство системного администратора (4 издание):
…
Рекомендуем взять за правило при вводе команды указывать полное имя, например /bin/su или /usr/bin/su, а не просто su. Это послужит определенной защитой от тех программ с именем su, которые преднамеренно были прописаны в переменной среды path злоумышленником, намеревавшимся собрать хороший “урожай” паролей.
…
Но так ли это безопасно? Если вы тоже задавались этим вопросом, то добро пожаловать под кат.
Управляем состоянием приложения с помощью Vuex

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

Всем доброго времени суток, в этой статье постараюсь описать некоторые способы обхода ограничений на исполнение команд в ОС Linux, советы по использованию которых можно часто встретить на различных форумах. Демонстрация будет проведена на примере задания Restricted shells с сайта Root-Me. Итак, начнём.
Интересные способы использования Go каналов (перевод)
Статья предназначена для тех, кто уже немного разбирается в Go.

Интересные способы использования Go каналов
Я написал этот пост, чтобы задокументировать доклад про Go каналы Джона Грэм-Камминга на конференции GopherCon 2014. Доклад назывался «Краткое руководство по каналам» и он доступен для просмотра на youtube.com.
На протяжении доклада нам представляют интересные способы использования Go каналов и раскрывают возможности и преимущества конкурентного программирования. Лично мне этот доклад открыл глаза на несколько новых способов структурирования программ и новых техник для синхронизации по нескольким ядрам процессора.
Следующие примеры демонстрируют различные техники, как использовать каналы в Go. Код был специально упрощен для их понимания. Не стоит его использовать для продакшн версий. Например, пропущены все обработки ошибок.
Как устроены каналы в Go
Перевод познавательной статьи "Golang: channels implementation" о том, как устроены каналы в Go.
Go становится всё популярнее и популярнее, и одна из причин этого — великолепная поддержка конкурентного программирования. Каналы и горутины сильно упрощают разработку конкурентных программ. Есть несколько хороших статей о том, как реализованы различные структуры данных в Go — к примеру, слайсы, карты, интерфейсы — но про внутреннюю реализацию каналов написано довольно мало. В этой статье мы изучим, как работают каналы и как они реализованы изнутри. (Если вы никогда не использовали каналы в Go, рекомендую сначала прочитать эту статью.)
Устройство канала
Давайте начнём с разбора структуры канала:

Краш-курс по интерфейсам в Go
В этой статье вы узнаете:
- в чем отличие от интерфейсов в Java
- важные и неочевидные последствия этих отличий
- как устроены интерфейсы под капотом
- вспомним про пустой интерфейс (interface{})
- затронем сакральную тему про дженерики
- разберемся, кто и зачем должен создавать интерфейс
- и постараемся научиться не абьюзить интерфейсы и начать жить

(artwork by Svitlana Agudova)
Как «пробить» человека в Интернет: используем операторы Google и логику
В очередной статье нашего цикла публикаций, посвященного интернет-разведке, рассмотрим, как операторы продвинутого поиска Google (advanced search operators) позволяют быстро находить необходимую информацию о конкретном человеке.
В комментариях к первой нашей статье, читатели просили побольше практических примеров и скриншотов, поэтому в этой статье практики и графики будем много. Для демонстрации возможностей «продвинутого» поиска Google в качестве целей были выбраны личные аккаунты автора. Сделано это, чтобы никого не обидеть излишним интересом к его частной жизни. Хочу сразу предупредить, что никогда не задавался целью скрыть свое присутствие в интернете, поэтому описанные методы подойдут для сбора данных об обычных людях, и могут быть не очень эффективны для деанонимизации фэйковых аккаунтов, созданных для разовых акций. Интересующимся читателям предлагаю повторить приведенные примеры запросов в отношении своих аккаунтов и оценить насколько легко собирать информацию по ним.
10 подкастов для изучения/продолжения изучения английского языка

Шесть месяцев назад, я сделала для себя очень приятное открытие — подкасты на английском языке для изучающих английский язык. На тот момент у меня были проблемы с аудированием и открытие подкастов очень помогло мне развить аудирование до уровня понимания фильмов и аудиокниг без каких-либо субтитров.
Подкасты – это звуковые аудиофайлы в стиле радиопередач в интернете Как правило, подкасты имеют определенную тематику и периодичность издания. Каждый человек, у которого есть смартфон, может прослушивать подкасты. Для прослушивания подкастов у владельцев Apple есть родное приложение, называется «podcasts». Android пользователи могут использовать приложение «Podcast Addict».
Сам себе туннельный брокер или нативный IPv6 на компе при помощи OpenVPN
Почесав немного голову я понял, что я же могу взять какую-нибудь /112 из /64 даваемой хостером и раздать по OpenVPN своему ноуту и прочим личным машинам, тем самым получив настоящий ipv6, а не адрес от брокеров.
Решил, значит надо делать. Выбрал для этого виртуалку от vultr, на которой у меня ничего изначально не было и которая предназначена была для тестов и взялся за настройку.
Vultr выдает виртуалкам сети /64, в нашем примере пусть это будет сеть 2001:NNNN:NNNN:NNNN::/64, из нее мы возьмем «маленький» кусочек /112, который и будем раздавать своим компам, пусть это будет 2001:NNNN:NNNN:NNNN:80::/112. Процедуру генерации ключей для OpenVPN я описывать не буду, она достаточно подробно описана в других руководствах, рассмотрю только конфиг и скрипты, которые будут использоваться для наших целей.
В файле /etc/openvpn/variables мы пропишем сеть и маску которые будем использовать, отсюда у нас это дело заберут скрипты:
# Subnet
prefix=2001:NNNN:NNNN:NNNN:80::
# netmask
prefixlen=112
Конфиг openvpn-сервера:
Русские придумали гениальный способ обманывать игровые автоматы, от которого казино не могут защититься

В начале июля 2014 года бухгалтера из казино Люмьер Плейс [Lumiere Place] в Сент-Луисе обнаружили, что несколько их игровых автоматов сошли с ума на пару дней. Программное обеспечение, одобренное правительством, даёт автоматам фиксированную фору математическими методами, так, чтобы казино были уверены в том, сколько они заработают в долгосрочной перспективе – допустим, 7,129 центов на каждом долларе. Но 2 и 3 июля несколько автоматов из казино Люмьер выдали гораздо больше денег, чем приняли, несмотря на отсутствие каких-то особенных джекпотов. Такое отклонение на жаргоне индустрии называется отрицательным удержанием. И поскольку ПО не подвержено приступам безумия, единственным объяснением было то, что кто-то жульничает.
Охрана казино подняла архивы видеонаблюдения и обнаружила виновника, тёмноволосого мужчину 30 с чем-то лет в рубашке-поло на молнии с коричневой прямоугольной сумкой. В отличие от большинства мошенников, он вроде бы никак не воздействовал на выбранные им автоматы. Он выбирал только старые модели, изготовленные австралийской компанией Aristocrat Leisure. Он просто играл, нажимая на кнопки игр типа Star Drifter или Pelican Pete, украдкой держа при этом свой iPhone ближе к экрану.
Browser Fingerprint – анонимная идентификация браузеров

Валентин Васильев (Machinio.com)
Что же такое Browser Fingerprint? Или идентификация браузеров. Очень простая формулировка — это присвоение идентификатора браузеру. Формулировка простая, но идея очень сложная и интересная. Для чего она используется? Для чего мы хотим присвоить браузеру идентификатор?
- Мы хотим учитывать наших пользователей. Мы хотим знать, пришел ли пользователь к нам первый раз, пришел он во второй раз или в третий. Если пользователь пришел во второй раз, мы хотим знать, на какие страницы он заходил, что он до этого делал. С анонимными пользователями это невозможно. Если у вас есть система учета записей, пользователь логинится, мы все про него знаем — мы знаем его учетную запись, его персональные данные, мы можем привязать любые действия к этому пользователю. Здесь все просто. В случае с анонимными пользователями все становится гораздо сложнее.
Работа с Flexbox в гифках

Flexbox обещает избавить нас от недостатков стандартного CSS (таких как вертикальное выравнивание).
Следует признать, что Flexbox действительно справляется с поставленной задачей. Однако освоение этой новой модели может вызвать некоторые затруднения.
Попробуем продемонстрировать, как функционирует Flexbox, позволяя создавать более совершенные макеты страниц.
10 особенностей Webpack

Разработка web API
Интро
Это краткий перевод основных тезисов из брошюры «Web API Design. Crafting Interfaces that Developers Love» Брайана Маллоя из компании Apigee Labs. Apigee занимается разработкой различных API-сервисов и консталтингом. Кстати, среди клиентов этой компании засветились такие гиганты, как Best Buy, Cisco, Dell и Ebay.
В тексте попадаются комментарии переводчика, они выделены курсивом.
Собираем API-интерфейсы, которые понравятся другим разработчикам
Понятные URL для вызовов API
Первый принцип хорошего REST-дизайна — делать вещи понятно и просто. Начинать стоит с основных URL адресов для ваших вызовов API.
Ваши адреса вызовов должны быть понятными даже без документации. Для этого возьмите себе за правило описывать любую сущность с помощью коротких и ясных базовых URL адресов, содержащих максимум 2 параметра. Вот отличный пример:
/dogs для работы со списком собак
/dogs/12345 для работы с отдельной собакой
Hack.me: Ещё одна площадка для оттачивания навыков в области ИБ

Всем доброго времени суток, сегодня не будет VulnHub'a. Сегодня рассмотрим его альтернативу hack.me. На котором содержится не мало интересных площадок для взлома, на различные темы. В этой статье рассмотрим BeachResort. Как пишет автор, это не типичный CTF,
Как сделать так, чтобы у вас не кончались идеи: метод Айзека Азимова

Одним словом Айзека Азимова можно описать так: плодовитый. Чтобы сравняться по количеству повестей, писем, эссе и других текстов, которые Азимов выдал за всю свою жизнь, вам необходимо будет писать полноразмерную повесть каждые две недели в течение 25 лет.
Как Азимов умудрялся выдавать столько хороших идей, в то время как у всех остальных их наберётся 1-2 штуки за всю жизнь? Чтобы ответить на этот вопрос, я изучил его автобиографию, "Это была хорошая жизнь".
Азимов не с рождения писал тексты 8 часов в день 7 дней в неделю. Он разрывал страницы, отчаивался, и периодически у него случались неудачи. В автобиографии Азимов делится тактикой и стратегией, выработанной им для того, чтобы идеи больше не заканчивались.
Давайте украдём у него всё, что можно.
Создание зашифрованной флешки Kali Linux Encrypted Persistence
1. Создание загрузочной флешки
Для записи образа используйте программу Rufus. Выберите устройство, на которое будет распакован образ, далее выберите iso-образ системы и из выпадающего списка выберите DD-образ.

После развертывания образа структура разделов флешки примет следующий вид:

Трагикартинки Фэйсбука
Я уверен, что все вы слышали про ImageMagick и его «Трагедию». Эта уязвимость была найдена в конце апреля 2016 года и в следствии того, что многие плагины, обрабатывающие изображения, использовали библиотеку ImageMagick, данная проблема охватывала большое количество систем. Так как были свидетельства о том, что информация о данной уязвимости была доступна не только исследователям, которые её обнаружили, и разработчикам ImageMagick'а, но и третьим лицам, 3 мая 2016 года информация о уязвимости (без PoC) была раскрыта для всего мира. Многие исследователи воспользовались данной информацией и нашли уязвимости в приложениях, которые не были обновлены вовремя. К сожалению, я не был среди этих счастливчиков. Но это было в мае:)
Брайан Кребс раскрыл личность автора червя Mirai

Червь и ботнет Mirai (яп. «будущее») в камерах, цифровых приставках (DVR) и других устройствах интернета вещей наделали немало шуму в сентябре-октябре прошлого года. Червь автоматически перебирал стандартные комбинации логин-пароль и сумел распространиться на сотни тысяч устройств (камеры безопасности, маршрутизаторы, цифровые телеприставки и DVR), с которых организовал несколько DDoS-атак. Мощность этих атак намного превышала возможности стандартных ботнетов из ПК, потому что обычные компьютеры гораздо сложнее инфицировать в таком количестве.
Information
- Rating
- Does not participate
- Registered
- Activity