Архив за 20 октября 2013

Введение

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

О том, что такое dns amplification attack, писалось уже не раз, например здесь; многие с этим сталкивались, многие боролись, кто-то более успешно, кто-то менее. Атака строится на отправке DNS запроса к какому либо DNS серверу с подставленным ip адресом источника, равным ip адресу жертвы. Ответ от DNS сервера практически всегда больше, чем запрос, особенно учитывая, что атакующим обычно выполняется ANY запрос. AAAA записи — уже не редкость, SPF и другая информация в TXT записях, все это позволяет достаточно легко получить усиление в 5 и даже более раз. Для атакующего это выглядит очень заманчиво, можно устроить хороший dos, даже не имея большого ботнета. Можно очень долго рассуждать, почему возможен спуфинг ip адресов в Интернете, но реалии таковы, что он все еще возможен, поэтому на сегодняшний день задача затруднить использование своих DNS серверов в проведении подобных атак представляется весьма актуальной. Замечу также, что в данной атаке возможно использовать как авторитативные dns сервера, так и публичные резольверы; предлагаемое решение тоже может использоваться в обоих случаях.
Читать полностью »

image

Продолжение истории Скотта Миллера и компании Apogee (3D Realms), начало здесь.

Ключевая идея

Джон Ромеро работал в компании Softdisk, которая в то время занималась изданием ежемесячного журнала, продававшегося в обычных магазинах. В комплекте к журналу шла дискета, на которой было много полезного софта — часть из него разрабатывалась собственными программистами компании, работавшими в редакции. Так вот, Ромеро был как раз одним из них.

После нескольких месяцев, проведенных Миллером за рассылкой Ромеро электронных писем, написанных от имени нескольких вымышленных поклонников творчества Джона, ему наконец-то удалось получить ответ. Двое начали рассуждать на тему, как бы могло выглядеть возможное сотрудничество гейм-дизайнера и Apogee.

«Как жаль, что у меня не сохранились эти письма… Сейчас они, наверное, стоят целое состояние!» — шутит сегодня Миллер.
Читать полностью »

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

Как правило, мнения расходятся касательно того, хорошей ли практикой является использование публичных свойств в PHP классах или всё же стоит использовать геттеры и сеттеры (и хранить свойства приватными или защищёнными). Ещё одно, компромиссное мнение, состоит в том, чтобы использовать магические методы __get() и__set().
У каждого из подходов существуют свои достоинства и недостатки, давайте взглянем на них…
Читать полностью »

DIY диммер для тех, кто хочет сам

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

Создание расширений в PostgreSQL
Здравствуйте, читатели! Темой этой статьи будет создание расширений для PostgreSQL. В качестве примера, мы реализуем небольшую библиотеку для работы с 3D векторами. Параллельно будут рассмотрены пользовательские типы, операторы и приведения типов. Не будет лишним ознакомися с этим материалом, так как реализация хранимых функций будет на языке C. Надеюсь, друзья слонов помогут скрасить серый технический текст статьи.
Читать полностью »

Все мы знаем множество преимуществ использования AJAX: пользователям не нужно ждать загрузку новой страницы, действия выполняются в фоновом режиме, в результате чего можно обеспечить гораздо более динамичный user experience. Идеи вроде бы просты, но создать сложное AJAX веб приложение достаточно тяжело. Я создал свой блог на основе AJAX, у меня есть несколько советов и я хочу поделится с вами своим опытом. Надеюсь я помогу вам избавится от некоторых проблем в будущем!Читать полностью »

Разделения на MVC недостаточно

С каждым днем iOS приложения становятся все более громоздкими, в следствие чего одного MVC становится мало.

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

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

[[RequestManager sharedInstance] loadResourcesAtPath:@"http://example.com/resources" withDelegate:self];
// или
[[DatabaseManager sharedManager] saveResource:resource];

Этот подход используется во множестве проектов, но он имеет некоторые недостатки:

  • тяжело застабать синглтон который используется внутри тестируемого класса
  • синглтон, по сути, глобальная переменная
  • с точки зрения SRP объект не должен контролировать свое Singleton'овское поведение

Первую проблему решить довольно просто — нужно использовать свойства:

@interface ViewController : UIViewController

@property (nonatomic, strong) RequestManager *requestManager;

@end

Но этот подход имеет другие минусы — теперь кто-то должен «заполнить» это свойство.
Магия Крови способствует решению этой проблемы.
Читать полностью »

Запоздалый отчёт о ZeroNights 2012 – пища для размышлений Год назад я ещё писал статейки для одного компьютерного журнала в свободное время, и однажды даже собирался написать репортаж про то, как задорно я сходил на конференцию по ИБ. Так как свободного времени выдалось тогда не особенно много, статью я вовремя так не дописал, а уже в Январе 2013-ого наш журнал перестал выходить на бумаге и отчёт так и остался пылиться в недрах жёсткого диска.

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

Итак, начну своё неспешное повествование. Кому лень читать всю «тягомотину» – вся суть максимально кратко изложена в последней главе (а ещё под катом есть несколько фоток).
Читать полностью »

Если точнее, как обмануть сердобольных физических лиц, берущих комиссию за покупку на себя. Возможно, заголовок слишком громкий, возможно это и не статья вовсе (особенно учитывая, что я никогда не писал статей ранее), а какой-то очерк больного мозга, которому пора наконец выспаться, а не допиливать этот интернет-магазин. И тем не менее, во время интеграции Робокассы в интернет-магазин, была замечена интересная особенность, которая позволяет сэкономить на покупке за счет тех, кто пытается взять обязательства по комиссии в пользу Робокассы на свой счет, и я хотел бы вам об этом поведать. Читать полностью »