Вся чистая правда. Я занимался расследованием одного такого нападения. Возможно это была другая группа — но методы совершенно те же. Банк был довольно маленький, прямо карманный, каких много в России, поэтому они сразу увидели что у них ночью были транзакции корпоративных клиентов которые по ночам не работают. Пошло расследование и было обнаружено практически все что описывается в статье.
Внедрение происходит письмом «от центробанка» одному из руководителей, чьи емейлы доступны в открытом доступе. Какой-нибудь зам. директора публичный. Приходит письмо типа «новые регулирования валютного контроля от ЦБ» с вложенным документов ворда, в котором 0-day дроппер скачивающий утилиту удаленного контроля. С этой точки входа начинается распространение внутри организации — сначала разбрасывается прямо с этого компа по сети софт под логином этого пользователя, софт который ищет в памяти пароли админов (если вы не в курсе в винде есть такая брешь — если админ логинился на комп до перезагрузки в оперативной памяти можно найти его логин). По получению логинов админа внедряются утилиты удаленного управления на компы сливающие отчеты на сервера управления по 80-му порту по http. Не подкопаешся — обычная веб-активность.
Сливаются скриншоты, пароли, все-все-все.
Если вы думаете что нужно заражать какие-то сложные банковские системы под AIX — это все блажь. Все эти системы имеют терминалы для работы с ними под винду, или веб интерфейсы — достаточно отснифать пароль с правами проводить транзакции и дело в шляпе. Даже если одна система авторизует по ключу — всегда есть другая система в которой просто пароль. Банк это дикая смесь разного софта. В группировке явно трудятся люди работавшие раньше в банках, потому что зходят на совершенно экзотический софт получив пароль и сливают деньги. Заходят ночью с vps'ок из разных стран на удаленное управление и прямо с компьютеров банка из клиентский утилит все льют.
Приходят действительно через месяц-два после заражения, видно что люди работают по площадям и сами иногда путаются что где — могут несколько раз пытаться войти под логином которого в данной организации вообще нет, какой-нибудь IvanovSG, когда в этой оргнанизации все логины вида s.g.ivanov.
Автора переполняют эмоции, хотя если разобраться, то окажется, что `Object.defineProperty` уже давно удовлетваряет всем желаниям. Единственное не возможно следить за добавлением/удалением свойств, но это крайне редкая необходимость по двум простым причинам:
1* Архитектурная — модели и классы должны быть полноценны и однозначны
2* Производительная
— добавляя-удаляя свойства обьекта, V8 как минимум, пересоздает скрытые классы для обьекта
— создается небольшой event flood, так как нужно фильтровать `changes`, что бы слушать только например `foo property update`
В наших проэктах давно уже завели себе Object.[add/remove]Observer Object.[lock/unlock]Observers которые добавляют ака proxy функции для сеттеров и ака breadcrumbs proxies для вложенных обьектов, как с примера для полимера.
var obj = { foo: { bar: 'baz' } };
Object.addObserver(obj, 'foo.bar', console.log.bind(console));
obj.foo.baz = 'qux';
//> qux
obj.foo = { bar: 'quxx' }
//> quxx
И ещё, `getNotifier` отлично заменяется `EventEmitter`ом. А что бы следить за массивом, достаточно обернуть его мутаторы, сново же, своим proxy методом.
Я никаким образом не хочу сказать, что O.o плох — напротив, и статья отличная, только много из этих вещей можно и нужно использовать уже сейчас! Ну, кто может себе позволить IE9+;
Изначально звёзд создать поменьше, а потом добавлять в каджом кадре
new function () {
var helper = new App.Light(
new Size(document.width || 800, document.height || 800),
{ intersection: 'full', invoke: true }
);
for(i = 0; i < 200; i++) new Star(helper.layer);
atom.frame.add(function () {
new Star(helper.layer);
});
};
Сделает свое дело одним обработчиком, и не нужно ничего искать, никаких прохождений по DOM, время выполнения сиильно сократится. Если собрались супер оптимизировать, то это, как мне кажется, нужно учитывать? Хотелось бы увидеть тесты на jsperf. Спасибо за поиск.
1. Скачал крякнутый Acunetix или другой сканер уязвимостей
2. Просканировал сайт
3. Посмотрел отчёт о найденных уязвимостях
4. Прочитал статьи о том, как эксплуатировать найденый тип уязвимостей
5. Скачал софт, который автоматизирует процесс эксплуатации
…
6. We are anonymous. We are legion. We do not forgive. We do not forget.
О… тому есть много новых способов) Устройство не различает на бланке цветов и водяных знаков, проверяет только наличие необходимых аттрибутов (печать ИК) и их геометрию на монохромном скане бюллетеня. Поэтому, если иметь скан бюллетеня в день выборов, и каким-то образом (отвлекая «часового» у урны, десяток наблюдателей и членов ИК) попытаться скормить КОИБ-у ч/б ксерокопию вместо реального бюллетеня на гербовой бумаге — скушает как миленький)
Но после голосования, при распечатке итогов, цифры конечно же не сойдутся, придётся вскрывать урну и пересчитывать вручную… А тут и вскроется, что КОИБ засчитывает голоса во многих таких бюллетенях, которые человек отбраковал бы — посиделки комиссии обещают быть долгими…
Пример «Человек и кошка»: человек ставит в бюллетене галку в квадратике напротив КПРФ, и ставит галку рядом с квадратиком СР,… и рисует страшную персидскую кошку, справляющую нужду на 6-й пункт — КОИБ скушает бюллетень без вопросов, голос уйдёт к КПРФ. Но стоит только вскрыть урну для пересчёта — начнётся битва за голос)
Теперь одна хитрость. Чтобы каждый раз не делать акты приёма-передачи, подписывать и сканировать их — можно в контракте прописать пункт о том, что оплата заказчиком инвойса (счёта) влечёт за собой принятие оказанных услуг.
Прикольно, не знал, что так можно. Я просто вставлял отсканенные подписи, не забивая голову заказчику всякой ерундой типо актов.
вы для проверки существования файла открываете два сокета, один настороне клиента, другой — на стороне сервера. при большом количестве таких запросов вы рискуете упереться во множество интересных ограничений.
кроме того, для проверки файла без его открытия есть команда stat. которая будет работать ощутимо быстрее любого из ваших способов. учите матчасть!
Внедрение происходит письмом «от центробанка» одному из руководителей, чьи емейлы доступны в открытом доступе. Какой-нибудь зам. директора публичный. Приходит письмо типа «новые регулирования валютного контроля от ЦБ» с вложенным документов ворда, в котором 0-day дроппер скачивающий утилиту удаленного контроля. С этой точки входа начинается распространение внутри организации — сначала разбрасывается прямо с этого компа по сети софт под логином этого пользователя, софт который ищет в памяти пароли админов (если вы не в курсе в винде есть такая брешь — если админ логинился на комп до перезагрузки в оперативной памяти можно найти его логин). По получению логинов админа внедряются утилиты удаленного управления на компы сливающие отчеты на сервера управления по 80-му порту по http. Не подкопаешся — обычная веб-активность.
Сливаются скриншоты, пароли, все-все-все.
Если вы думаете что нужно заражать какие-то сложные банковские системы под AIX — это все блажь. Все эти системы имеют терминалы для работы с ними под винду, или веб интерфейсы — достаточно отснифать пароль с правами проводить транзакции и дело в шляпе. Даже если одна система авторизует по ключу — всегда есть другая система в которой просто пароль. Банк это дикая смесь разного софта. В группировке явно трудятся люди работавшие раньше в банках, потому что зходят на совершенно экзотический софт получив пароль и сливают деньги. Заходят ночью с vps'ок из разных стран на удаленное управление и прямо с компьютеров банка из клиентский утилит все льют.
Приходят действительно через месяц-два после заражения, видно что люди работают по площадям и сами иногда путаются что где — могут несколько раз пытаться войти под логином которого в данной организации вообще нет, какой-нибудь IvanovSG, когда в этой оргнанизации все логины вида s.g.ivanov.
1* Архитектурная — модели и классы должны быть полноценны и однозначны
2* Производительная
— добавляя-удаляя свойства обьекта, V8 как минимум, пересоздает скрытые классы для обьекта
— создается небольшой event flood, так как нужно фильтровать `changes`, что бы слушать только например `foo property update`
В наших проэктах давно уже завели себе
Object.[add/remove]Observer Object.[lock/unlock]Observers
которые добавляют акаproxy
функции для сеттеров и акаbreadcrumbs proxies
для вложенных обьектов, как с примера для полимера.И ещё, `getNotifier` отлично заменяется `EventEmitter`ом. А что бы следить за массивом, достаточно обернуть его мутаторы, сново же, своим proxy методом.
Я никаким образом не хочу сказать, что O.o плох — напротив, и статья отличная, только много из этих вещей можно и нужно использовать уже сейчас! Ну, кто может себе позволить IE9+;
Вынес создание и настройки звезды в отдельный класс, дал бы ей различные скорость, цвет и время жизни, со временем определённые звёзды удалял бы:
Изначально звёзд создать поменьше, а потом добавлять в каджом кадре
Код стал лаконичнее и читабельнее. В браузере выглядит красиво и работает быстро. Особенно приятно смотрится fullScreen
Добавите в топик обновлённый код?
Не против, если я добавлю этот пример в репозиторий примеров на ГитХабе?
Тут только не звезды а денежные займы от одной стране к другой. Библиотека d3.js для расчета физики.
$(document.body).on('click', '.testDiv', function(){
$(this).toggleClass('isActiveState');
});
Сделает свое дело одним обработчиком, и не нужно ничего искать, никаких прохождений по DOM, время выполнения сиильно сократится. Если собрались супер оптимизировать, то это, как мне кажется, нужно учитывать? Хотелось бы увидеть тесты на jsperf. Спасибо за поиск.
2. Просканировал сайт
3. Посмотрел отчёт о найденных уязвимостях
4. Прочитал статьи о том, как эксплуатировать найденый тип уязвимостей
5. Скачал софт, который автоматизирует процесс эксплуатации
…
6. We are anonymous. We are legion. We do not forgive. We do not forget.
Но после голосования, при распечатке итогов, цифры конечно же не сойдутся, придётся вскрывать урну и пересчитывать вручную… А тут и вскроется, что КОИБ засчитывает голоса во многих таких бюллетенях, которые человек отбраковал бы — посиделки комиссии обещают быть долгими…
Пример «Человек и кошка»: человек ставит в бюллетене галку в квадратике напротив КПРФ, и ставит галку рядом с квадратиком СР,… и рисует страшную персидскую кошку, справляющую нужду на 6-й пункт — КОИБ скушает бюллетень без вопросов, голос уйдёт к КПРФ. Но стоит только вскрыть урну для пересчёта — начнётся битва за голос)
Dojo — dojotoolkit.org/reference-guide/dojo/declare.html#dojo-declare
Sencha (ExtJS) — www.rogerwilco.ru/2011/04/sencha-extjs.html
qooxdoo — qooxdoo.org/documentation/0.7/oo_feature_summary
MooTools — www.phpeveryday.com/articles/MooTools-Basic-Creating-Classes-MooTools-P919.html
Prototype — www.prototypejs.org/learn/class-inheritance
AtomJS — github.com/theshock/atomjs/blob/master/Docs/Class/Class.md
JSClass — jsclass.jcoglan.com/classes.html
code.google.com/p/jsclassextend/
github.com/jcoglan/js.class
Cobra — justin.harmonize.fm/index.php/2009/01/cobra-a-little-javascript-class-library/
github.com/JustinTulloss/cobra
The $class Library- www.uselesspickles.com/class_library/
Classy — classy.pocoo.org/
YUI 3 — www.yuiblog.com/blog/2010/01/06/inheritance-patterns-in-yui-3/
Coffee-Script — jashkenas.github.com/coffee-script/#classes
JavascriptClasses — code.google.com/p/javascript-classes/
AJS — amix.dk/blog/post/19038
jsFace — github.com/tannhu/jsface
JsOOP — jsoop.codeplex.com/
joot — code.google.com/p/joot/wiki/API
oopsjs — code.google.com/p/oopsjs/
Objs — github.com/tekool/objs/wiki
oorja — maxpert.github.com/oorja/
objx — code.google.com/p/objx/wiki/OClass
jsclassextend — code.google.com/p/jsclassextend/
prolificjs — code.google.com/p/prolificjs/wiki/OOP
objectize — code.google.com/p/objectize/
code.google.com/p/core-framework/wiki/Inheritance
code.google.com/p/sfjsoo/
code.google.com/p/jslproject/
code.google.com/p/magic-classes/wiki/MagicClassesOverview
github.com/ded/klass
github.com/jiem/my-class
github.com/kilhage/class.js
github.com/Jakobo/Sslac
github.com/BonsaiDen/neko.js
github.com/finscn/GT-Class
github.com/deadlyicon/klass.js
github.com/neuromantic/CodeJS
github.com/cj/js-oo
github.com/darthapo/klass.js
github.com/nemisj/zet.js
github.com/k33g/species
github.com/benekastah/JS-Class
github.com/tobeytailor/def.js
github.com/rstrobl/squeakyJS
github.com/shinyplasticbag/MojoClass
github.com/firejune/class
github.com/gcoguiec/jquery-class
github.com/daffl/JS.Class
github.com/pavelz/class.js
github.com/zerodogg/jqsimple-class
github.com/bnoguchi/class-js
github.com/arian/Klass
github.com/kuwabarahiroshi/joo
github.com/iamleppert/SimpleClass
github.com/aenoa/Noode.js
github.com/stomlinson/SuperClass
github.com/jzimmek/klazz
github.com/kbjr/class.js
github.com/jhnns/node.class
github.com/borysf/declare/blob/master/declare.js
github.com/ShadowCloud/BF-Class
github.com/pic-o/jsClass
github.com/rosamez/jquery.klass
github.com/yuki-kimoto/javascript-Class_Simple
github.com/yaksnrainbows/jarb
github.com/thirashima/UnderClass
github.com/arahaya/package.js
github.com/arieh/Class.def
github.com/bogdan-dumitru/jsClass
github.com/pomke/pomke.js
github.com/sgolasch/jClassify
github.com/kbjr/Classy
github.com/cthackers/jClass
github.com/davidjbeveridge/Clasico
github.com/edave64/protojazz
github.com/mrac/solid.js
github.com/benekastah/Classy
github.com/damianmr/JSMiniClass
github.com/benekastah/classesWithCash
github.com/dialog/Resig-Class
github.com/mpodriezov/OJS
github.com/dtinth/twcs.js
github.com/percyhanna/js-class
github.com/jalopez/SimpleClassJS
github.com/jhamlet/proteus
github.com/petebrowne/classify
github.com/TdroL/Classy.js
github.com/azendal/neon
github.com/aulizko/Alan-Point-JavaScript-Library/tree/master/src/oop
Прикольно, не знал, что так можно. Я просто вставлял отсканенные подписи, не забивая голову заказчику всякой ерундой типо актов.
вы для проверки существования файла открываете два сокета, один настороне клиента, другой — на стороне сервера. при большом количестве таких запросов вы рискуете упереться во множество интересных ограничений.
кроме того, для проверки файла без его открытия есть команда stat. которая будет работать ощутимо быстрее любого из ваших способов. учите матчасть!