Pull to refresh
1
0
Глеб Жуков @machetero

Программист

Send message

Palantir: как обнаружить ботнет

Reading time7 min
Views19K
В 2009 году китайская киберразведка на своей шкуре испытала мощь всевидящего ока Palantir. Аналитики из Information Warfare Monitor раскрыли крупные китайские разведывательные операции — Ghostnet и Shadow Network. (отчет)



«Надеюсь, что немного осталось лет до того, как человеческий мозг и вычислительные машины будут тесно связаны, а получившееся партнерство будет думать так, как человеческий мозг никогда не сможет, и обрабатывать данные способами, недоступными известным нам машинам.» Сказал Джозеф Ликлайдер 56 лет назад, стартанул кафедры информационных технологий в ведущих вузах Америки и начал строить ARPANET. — «Люди будут задавать цели, формулировать гипотезы, определять критерии и выполнять оценку. Компьютеры будут делать рутинную работу чтобы расчистить путь к открытиям в технических и научных областях».

«Взаимодополняемость человека и компьютера — не только глобальный факт. Это еще и путь к созданию успешного бизнеса. Я осознал это на собственном опыте, полученном в PayPal. В середине 2000-х наша компания, пережив крах пузыря доткомов, быстро росла, но нас тревожила одна серьезная проблема: из-за мошенничеств с кредитными картами мы теряли больше 10 миллионов долларов ежемесячно. Совершая сотни и даже тысячи переводов в минуту, мы не могли физически отслеживать каждый из них — никакая команда контролеров не в состоянии работать с подобной скоростью. Мы поступили так, как поступила бы на нашем месте любая команда инженеров: попытались найти автоматизированное решение.»
Сказал Питер Тиль и основал Palantir.

Под катом кейс о том, как с помощью инструмента финансовой аналитики можно вскрыть ботнет.
Кейс «вымышленный», но на скриншотах фигурируют данные 2009 года.

(За помощь с переводом спасибо Ворсину Алексею)
Total votes 14: ↑12 and ↓2+10
Comments2

Киберконтрразведка. Как Palantir может «сноуденов» ловить

Reading time7 min
Views26K


Система Palantir позволяет ловить «сноуденов», пока они еще не стали всемирными героями, а являлись просто шпионами, с которыми в любой момент могло случиться ледоруб что угодно.

Несмотря на то, что руководство Palantir как может борется за свободы и логирует все до одного действия в системе, для будущих «сноуденов» подобные системы представляют колоссальную опасность. Предупрежден, значит вооружен.

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

В расследовании анализировались сетевой трафик, информация роутеров, данные контактных карт и бэйджей сотрудников, события, данные соцсетей, данные видеонаблюдения. Благодаря статическому, временному анализу, анализу геоданных и визуальному анализу «крот» был раскрыт.

Тридцатого уничтожить.
(За помощь в подготовке статьи отдельное спасибо Алексею Ворсину, российскому эксперту по системе Palantir)
Total votes 25: ↑21 and ↓4+17
Comments21

Palantir: Объектная модель

Reading time9 min
Views8.7K
Шрияс Виджайкумар, ведущий инженер по внедрению, расскажет про еще один элемент внутренней кухни системы Palantir.



Как организации управляются с данными, на текущий момент?
В существующих системах встречаются довольно распространенные артефакты, и многие из них, если не все, вам знакомы:
  • пользователи часто оставляют заметки для себя в имени файла, так что мы можем встретить конструкции вида отправить_по_почте.пятница.10_утра.не_стирать!!;
  • каждое изменение онтологии требует модификации всей схемы;
  • данные из разных источников невозможно исследовать вместе, в одной среде, так что у вас может быть база данных людей и трафика сообщений, которые приходится исследовать по отдельности;
  • пересинхронизация данных нецелесообразна или невозможна, — а это часто бывает нужно;
  • информация не может быть прослежена до её источника.

Что мы принципиально иначе делаем в Palantir?
Когда мы разрабатывали систему, мы много работали с обратной связью от сообщества. Первое, что мы постарались запроектировать — это максимальная гибкость системы, дающая возможность моделировать все что угодно.

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

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

Total votes 10: ↑6 and ↓4+2
Comments3

Palantir и отмывание денег

Reading time6 min
Views37K


Palantir
[Контент удален по требованию Википедии]

На официальном канале Palantir есть видео с демонстрацией работы аналитика, использующего систему Palantir в ходе расследования отмывания денег. По-моему, как-то так видели пользу информационных технологий «отцы-основатели» Вэнивар Буш («As We May Think»), Дуглас Энгельбарт («The Mother of All Demos») и Джозеф Ликлайдер («Интергалактическая компьютерная сеть» и «Симбиоз человека и компьютера»), о которых я писал немного ранее.

(За помощь с переводом спасибо Ворсину Алексею)

Total votes 27: ↑23 and ↓4+19
Comments17

Palantir 101. Что позволено знать простым смертным о второй по крутоcти частной компании в Кремниевой Долине

Reading time13 min
Views78K


(За перевод спасибо Алексею Ворсину)

Доброе утро и добро пожаловать на GovCon7. Меня зовут Сод Абдулли и я ведущий инженер по внедрению Palantir Technologies и это Palantir 101. Я хотел бы в ближайшие полчаса или сорок пять минут рассказать о том что это, кто мы, что такое Palantir, и что он делает для организаций, с которыми мы работаем, а также, ближе к концу мероприятия, мы проведем небольшую презентацию.

Прежде чем перейти ко всему этому, я хочу начать с пары историй, которые должны пролить свет на то, что мы и Palantir, думаем о проблеме анализа в мире Big Data.



Первая история, — это история о шахматах.

Многие из вас знают, что в 1997 IBM создали суперкомпьютер Deep Blue, который одолел Гарри Каспарова, на тот момент, бывшего лучшим шахматистом в мире. Сейчас в простой мобильник могут быть установлены шахматы, играющие на турнирном уровне, и вопрос о том, кто сильнее в шахматах, человек или компьютер, уже не актуален.

Новый интересный вопрос: «Что будет, если человек и компьютер будут играть в шахматы вместе, как команда?»

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

Эти силы сочетаемы и команда человек/компьютер способна победить и команды сильнейших игроков и объединения сильнейших суперкомпьютеров.
Читать дальше →
Total votes 47: ↑43 and ↓4+39
Comments33

Выводим первый транш с Upwork

Reading time6 min
Views18K

UW
Как человеку с образованием программиста и без юридического разобраться в тонкостях работы банков и валютного контроля и, конечно, как вывести свои деньги с Upwork на примере банка Тинькофф бизнес.

Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments25

Объясняем современный JavaScript динозавру

Reading time15 min
Views264K


Если вы не изучали JavaScript с самого начала, то осваивать его современную версию сложно. Экосистема быстро растёт и меняется, так что трудно разобраться с проблемами, для решения которых придуманы разные инструменты. Я начал программировать в 1998-м, но начал понимать JavaScript только в 2014-м. Помню, как просматривал Browserify и смотрел на его слоган:


Browserify позволяет делать require («модули») в браузере, объединяя все ваши зависимости


Я не понял ни слова из предложения и стал разбираться, как это может помочь мне как разработчику.


Цель статьи — рассказать о контексте, в котором инструменты в JavaScript развивались вплоть до 2017-го. Начнём с самого начала и будем делать сайт, как это делали бы динозавры — безо всяких инструментов, на чистом HTML и JavaScript. Постепенно станем вводить разные инструменты, поочерёдно рассматривая решаемые ими проблемы. Благодаря историческому контексту вы сможете адаптироваться к постоянно меняющемуся ландшафту JavaScript и понять его.

Total votes 174: ↑171 and ↓3+168
Comments505

Методы скрытия элементов веб-страниц

Reading time13 min
Views176K


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

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

Статья, перевод которой мы сегодня публикуем, посвящена разбору методов скрытия элементов веб-страниц с использованием HTML и CSS. Здесь будут рассмотрены такие вопросы, как доступность контента, анимация, сценарии использования технологий скрытия данных на страницах.
Читать дальше →
Total votes 46: ↑45 and ↓1+44
Comments8

Разбираемся с прямым и обратным порядком байтов

Reading time11 min
Views196K
Перевод статьи Халида Азада — Understanding Big and Little Endian Byte Order

Проблемы с порядком байтов очень расстраивают, и я хочу избавить Вас от горя, которое довелось испытать мне. Вот ключевые тезы:
  • Проблема: Компьютеры, как и люди, говорят на разных языках. Одни записывают данные “слева направо” другие “справа налево”. При этом каждое устройство отлично считывает собственные данные — проблемы начинаются, когда один компьютер сохраняет данные, а другой пытается эти данные считать.
  • Решение: Принять некий общий формат (например, весь сетевой трафик передается в едином формате). Или всегда добавлять заголовок, описывающий формат хранения данных. Если считанный заголовок имеет обратный порядок, значит данные сохранены в другом формате и должны быть переконвертированы.

Читать дальше →
Total votes 71: ↑55 and ↓16+39
Comments31

Юнит-тестирование в PHP

Reading time13 min
Views186K
Язык PHP очень легок для изучения. Это, а так же обилие литературы «Освой _что_угодно_ за 24 часа» породило большое количество, мягко говоря, некачественного кода. Как следствие, рано или поздно любой программист, который выходит за рамки создания гостевой книги или сайта-визитки сталкивается с вопросом: «а если я здесь немножко добавлю, все остальное не ляжет?» Дать ответ на этот вопрос и на многие другие может юнит-тестирование.

В самом начале хочется оговориться — здесь речь не будет идти о TDD и методологиях разработки ПО. В данной статье я попробую показать начинающему PHP-разработчику основы использования модульного тестирования на базе фреймворка PHPUnit
Начнем?..
Total votes 97: ↑90 and ↓7+83
Comments90

Пентест-лаборатория «Pentestit Test lab 12» — полное прохождение

Reading time21 min
Views25K
image

Каждый год компания Pentestit запускает новую лабораторию для тестирования на проникновение «Test Lab», и данная статья будет посвящена прохождению 12-ой лаборатории, получившей название «z 9r347 39u411z3r» или если раскодировать — «The great equalizer».

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

Подключение к лаборатории


Подключение к лаборатории происходит через VPN-соединение (так как я проходил лабораторию на машине под управлением ОС Linux, то все действия будут описаны именно для этой платформы). Для того чтобы попасть в частную сеть, необходимо выполнить следующие шаги:

  1. Зарегистрироваться здесь.
  2. Сохранить конфигурационный файлы отсюда.
  3. Зайти в настройки сети и выбрать «добавить VPN».
  4. Импортировать из файла (указываем скачанный файл с конфигурациями).
  5. Указать логин и пароль для подключения (даны на вкладке «how to connect»).
  6. Подключаемся к VPN и пингуем шлюз 192.168.101.1. Если пинг проходит, то вы успешно подключились к лаборатории.

Поиск цели


Нам доступна сеть 192.168.101.X с маской 255.255.255.0. Первым делом необходимо найти «живые хосты» в сети. Сделать это легко можно с помощью утилиты nmap:
nmap -sn 192.168.101.0/24
Используемые параметры nmap
-sn – определить «живые хосты»
ip/mask – адрес сети / маска

image
Читать дальше →
Total votes 34: ↑24 and ↓10+14
Comments3

Пара слов об интернационализации приложений

Reading time12 min
Views46K
Я давно регулярно читаю Хабр и заметил, что здесь довольно мало внятных статей о локализации ПО, ориентированных на разработчиков. По своему опыту управления проектами локализации я могу сказать, что локализация — это не только перевод строк и адаптация приложения к контексту той или иной страны, но и постоянное противоборство (в идеальных случаях — равноправное взаимодействие) с разработчиками.
В этой статье я постараюсь на примере показать, как можно создать так называемый localization-friendly code, то есть, организовать ресурсы таким образом, чтобы существенно облегчить локализацию приложения, снизив избыточные временные и финансовые затраты.
Сразу же оговорюсь, что речь пойдёт в первую очередь об интернационализации, то есть, об учёте всех лингвистических особенностей на этапе разработки. Если же ресурсы вашего проекта изначально не подразумевали локализацию, а впоследствии вы решились на неё, то их «затачивание» под локализацию может выйти намного дороже, чем доход от неё.



Читать дальше
Total votes 115: ↑113 and ↓2+111
Comments66

Интерфейсы vs. классы

Reading time4 min
Views283K
Обсуждая с различными людьми — в большинстве своём опытными разработчиками — классический труд «Приёмы объектно-ориентированного проектирования. Паттерны проектирования» Гаммы, Хелма и др., я с изумлением встретил полное непонимание одного из базовых подходов ООП — различия классов и интерфейсов.

Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments161

Зачем нужна денормализация баз данных, и когда ее использовать

Reading time8 min
Views76K


В нашем блоге на Хабре мы не только рассказываем о развитии своего продукта — биллинга для операторов связи «Гидра», но и публикуем материалы о работе с инфраструктурой и использовании технологий.

Недавно мы писали об использовании Clojure и MongoDB, а сегодня речь пойдет о плюсах и минусах денормализации баз данных. Разработчик баз данных и финансовый аналитик Эмил Дркушич (Emil Drkušić) написал в блоге компании Vertabelo материал о том, зачем, как и когда использовать этот подход. Мы представляем вашему вниманию главные тезисы этой заметки.
Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments28

Оценка уязвимостей CVSS 3.0

Reading time17 min
Views72K

Мы используем систему оценок CVSS с момента возникновения нашей базы уязвимостей и первого нашего продукта — XSpider (надеюсь, кто-то его еще помнит). Для нас очень важно поддерживать базу знаний, которую мы используем в своих продуктах и услугах, в актуальном состоянии. Поскольку рекомендации по работе с CVSS-метриками не покрывают все возможные варианты уязвимостей, иногда приходится задаваться вопросом: «Как лучше проставить метрики, чтобы итоговая оценка отражала реальную опасность уязвимости?».

Мы постоянно следим за развитием стандарта, поэтому давно ждали окончательной версии CVSSv3. Открывая спецификацию, я прежде всего хотел ответить на вопросы: «Что стало лучше?», «Что именно изменилось?», «Сможем ли мы использовать новый стандарт в наших продуктах?» и — поскольку к ведению базы часто подключаются молодые специалисты — «Как быстро можно овладеть методикой оценки?», «Насколько четкими являются критерии?».

В ходе изучения стандарта родилась эта статья, надеюсь, она поможет вам в освоении новой методики оценки уязвимостей.
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments1

Uber — причины перехода с Postgres на MySQL

Reading time19 min
Views102K


В конце июля 2016 года в корпоративном блоге Uber появилась поистине историческая статья о причинах перехода компании с PostgreSQL на MySQL. С тех пор в жарких обсуждениях этого материала было сломано немало копий, аргументы Uber были тщательно препарированы, компанию обвинили в предвзятости, технической неграмотности, неспособности эффективно взаимодействовать с сообществом и других смертных грехах, при этом по горячим следам в Postgres было внесено несколько изменений, призванных решить некоторые из описанных проблем. Список последствий на этом не заканчивается, и его можно продолжать еще очень долго.


Наверное, не будет преувеличением сказать, что за последние несколько лет это стало одним из самых громких и резонансных событий, связанных с СУБД PostgreSQL, которую мы, к слову сказать, очень любим и широко используем. Эта ситуация наверняка пошла на пользу не только упомянутым системам, но и движению Free and Open Source в целом. При этом, к сожалению, русского перевода статьи так и не появилось. Ввиду значимости события, а также подробного и интересного с технической точки зрения изложения материала, в котором в стиле «Postgres vs MySQL» идет сравнение физической структуры данных на диске, организации первичных и вторичных индексов, репликации, MVCC, обновлений и поддержки большого количества соединений, мы решили восполнить этот пробел и сделать перевод оригинальной статьи. Результат вы можете найти под катом.

Читать дальше →
Total votes 112: ↑110 and ↓2+108
Comments58

Об опасностях беспроводных клавиатур и мышей

Reading time4 min
Views91K


Изображение: home thods, Flickr

Компьютерные мыши и клавиатуры с радиоинтерфейсом и USB-трансивером стоят немногим дороже обычных проводных моделей и пользуются популярностью. Но такие устройства не защищены от взлома: собрать набор для проведения атаки можно всего за 300 рублей, а вестись она может с расстояния до 1 км.

Мы протестировали безопасность устройств Logitech, A4Tech и Microsoft. В ходе тестов нам удалось перехватить данные, передаваемые клавиатурами и мышами, дешифровать трафик и осуществить ряд других атак. Обнаруженные уязвимости могут привести к утечке паролей, платежных реквизитов, персональных данных и другой важной информации.
Читать дальше →
Total votes 64: ↑59 and ↓5+54
Comments45

Правильное использование Exception’ов в PHP

Reading time16 min
Views120K
Я рад бы написать что “эта статья предназначена для новичков”, но это не так. Большинство php-разработчиков, имея опыт 3, 5 и даже 7 лет, абсолютно не понимают как правильно использовать эксепшены. Нет, они прекрасно знают о их существовании, о том что их можно создавать, обрабатывать, и т.п., но они не осознают их удобность, логичность, и не воспринимают их как абсолютно нормальный элемент разработки.

В этой статье не будет мануала по эксепшенам — это все отлично описано в документации php. Здесь я я расскажу о преимуществах использования эксепшенов, и о том, где их, собственно говоря, надо использовать. Все примеры будут для Yii, но это не особо важно.
Читать дальше →
Total votes 46: ↑42 and ↓4+38
Comments70

Уровни изоляции транзакций с примерами на PostgreSQL

Reading time8 min
Views235K

Вступление


В стандарте SQL описывается четыре уровня изоляции транзакций — Read uncommited (Чтение незафиксированных данных), Read committed (Чтение зафиксированных данных), Repeatable read (Повторяемое чтение) и Serializable (Сериализуемость). В данной статье будет рассмотрен жизненный цикл четырёх параллельно выполняющихся транзакций с уровнями изоляции Read committed и Serializable.


Для уровня изоляции Read committed допустимы следующие особые условия чтения данных:


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


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


Что же касается Serializable, то данный уровень изоляции самый строгий, и не имеет феноменов чтения данных.

Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments17

Введение в разработку слайд-шоу на JavaScript

Reading time26 min
Views87K
В этой статье мы опишем основные принципы построения слайд-шоу на JavaScript, то, из чего они строятся (HTML, CSS, JavaScript) и техники, которые используются при их создании.

JS-код будет представлен в двух видах – ванильном и jQuery. Это сделано специально, чтобы подчеркнуть: в современных браузерах даже простой JS можно прекрасно использовать, особенно комбинируя его с анимациями и переходами CSS. jQuery хорош, если нам не хочется волноваться насчёт несовместимостей браузеров или использовать более простой API. Предоставленный код преследует лишь в демонстрационные цели.

В примерах с ванильным JS я использую простейший метод инициализации объектов, init(). Этот метод занимается вызовом нужного кода для создания экземпляра объекта через new. В этой ветке на Stack Overflow всё объясняется подробнее. Почему объекты, а не функции? Для ответа на этот вопрос понадобилась бы отдельная статья – но, в общем, просто чтобы код был более организованным и простым для повторного использования.
Читать дальше →
Total votes 19: ↑15 and ↓4+11
Comments6
1

Information

Rating
Does not participate
Date of birth
Registered
Activity