|
Неизвестный язык программирования в троянце Duqu (с) Лаборатория Касперского | ☑ | ||
---|---|---|---|---|
0
Stagor
14.03.12
✎
15:55
|
Фреймворк
Особенности В коде Фреймворка Duqu прослеживаются явные особенности: * Весь функционал реализуют объекты. * Таблица функций объекта находится непосредственно в его памяти и может быть изменена в процессе выполнения. * Нет явных отличий между классами, которые можно было бы отнести к какой-либо стандартной библиотеке (связные списки, хэш-таблицы), и классами троянца. * Объекты общаются между собой с помощью прямых вызовов их методов, отложенных вызовов и объектов для обратного вызова по событию. * Не используются функции стандартных библиотек, при этом активно используются функции Windows API. *** Пока разгадки нет, может кто отгадает? подробнее тут http://www.securelist.com/ru/blog/41063/Zagadka_freymvorka_Duqu |
|||
1
Dirk Diggler
14.03.12
✎
15:58
|
Неизвестный Лаборатории Касперского язык программирования
|
|||
2
PLUT
14.03.12
✎
16:00
|
The Terminator: SkyNET. Начало
|
|||
3
ОчкарикСлава
14.03.12
✎
16:02
|
Еа 1С написано.
|
|||
4
Stagor
14.03.12
✎
16:02
|
я серьезно, тем более код на ассемблере у них опубликован!
|
|||
5
Господин ПЖ
14.03.12
✎
16:02
|
8.3 ?
|
|||
6
ShoGUN
14.03.12
✎
16:03
|
(0) Инопланетный артефакт. А если серьёзно, то что мешает злому гению написать свою концепцию языка и свой компилятор?
|
|||
7
Stagor
14.03.12
✎
16:04
|
(6) а нафига?
|
|||
8
ShoGUN
14.03.12
✎
16:06
|
(7) Я-то откуда знаю? Ответ "для понту" не устраивает? Как "чёрная кошка" в "Месте встречи".
|
|||
9
Stagor
14.03.12
✎
16:07
|
(8) Нет, не устраивает. Скорее склоняюсь к ответу (1), но интересно что же за язык для сетевого программирования ООП и СОП?
|
|||
10
Ахиллес
14.03.12
✎
16:07
|
(7) Ну вот написал ты свой язык программирования, а дальше, что с ним делать? Не очередной же блокнотик на нём писать.
|
|||
11
zak555
14.03.12
✎
16:08
|
что теперь будет делать эта лаборатория , если она не знает, что за язык ?
|
|||
12
Stagor
14.03.12
✎
16:09
|
(10) Язык с точки зрения ЛК очень эффективен для написания сетевых приложений, вот хочу узнать, что это за язык, если все таки учитывать, что его не разработал ПЕНТАГОН специально для создания программ-шпионов :)
|
|||
13
ShoGUN
14.03.12
✎
16:09
|
(9) Там в комментах много версий.
(10) Я не писал своего языка программирования и соответственно не знаю ответа на твой вопрос. |
|||
14
aka AMIGO
14.03.12
✎
16:09
|
а разве не достаточно определить виря без анализа его тела?
|
|||
15
jsmith
14.03.12
✎
16:11
|
По словам Александра Гостева, создание специализированного языка программирования демонстрирует высочайший уровень квалификации разработчиков, участвовавших в проекте, и указывает на то, что для его реализации были мобилизованы значительные финансовые и людские ресурсы.
|
|||
16
aka AMIGO
14.03.12
✎
16:13
|
(15)свой язык программирования можно написать и на СРР
|
|||
17
aka AMIGO
14.03.12
✎
16:15
|
16+ есть у меня книга по СРР, в ней как раз расписывается пример создания собственного языка.
так что я тоже "высочайший уровень", т.к. модуль написал на этом "своем" языке, лет этак 17 назад. |
|||
18
Hazer79
14.03.12
✎
16:30
|
>>для его реализации были мобилизованы значительные финансовые
хаха телепаты, млин :-) |
|||
19
Stagor
14.03.12
✎
16:33
|
(17) скинь в ЛК свой компилятор, думаешь придут в такой же восторг?
|
|||
20
СноваЗдорова
14.03.12
✎
16:35
|
(18) в России без значительных финансовых не то что вирусы, чиновники не работают =))
|
|||
21
DGorgoN
14.03.12
✎
16:37
|
(20) Убил..
|
|||
22
VasilyKushnir
14.03.12
✎
16:37
|
(20) +100500 :-)))))
|
|||
23
Кирпич
14.03.12
✎
16:39
|
(0) да макросов нашлепали в асме. вот и весь язык.
|
|||
24
БалбесВ1с
14.03.12
✎
16:42
|
Начало интересное,а потом зашел какой-то одинесник с манией всемирного заговора и начал нести чушь про фсб и иже с ними.
|
|||
25
andrewks
14.03.12
✎
16:59
|
согласен, закидон удочки с просьбами помочь распознать используемый компилятор явно странноватый.
для чего такой детальный анализ тела троянца? это же не полиморфный кросс-платформенный стелс-вирус, убивающий флэш-память на мамках и портящий харды. они явно преследуют какую-то цель, о которой не говорят |
|||
26
zak555
14.03.12
✎
17:08
|
||||
27
Stagor
14.03.12
✎
17:14
|
(23) Если ты такой умный, почему до сих пор на 1С? ;)
|
|||
28
Кирпич
14.03.12
✎
17:17
|
(27) на 1с больше платят
|
|||
29
Stagor
14.03.12
✎
17:22
|
(28) иди в SAP, там платят ещё больше!
|
|||
30
Кирпич
14.03.12
✎
17:23
|
(29) чо бегать туда сюда
|
|||
31
NDN
14.03.12
✎
17:24
|
В школе учитель физики рассказывал байку, что из какого-то Гадюкина на олимпиаду приехал ученик-самоучка. Толком не знал как физические величины обозначаются - рисовал свои закорючки. Зато глубоко понимал суть процессов.
Мб такой же неформал-самоучка |
|||
32
bahmet
14.03.12
✎
17:25
|
питон?
|
|||
33
Stagor
14.03.12
✎
17:26
|
(30) А что ушел из SAP? Не потянул?
|
|||
34
Stagor
14.03.12
✎
17:27
|
(31) Не он случайно духи из женщин делал? :)
|
|||
35
NDN
14.03.12
✎
17:27
|
(34) То химик
|
|||
36
Jstunner
14.03.12
✎
17:28
|
Objective-C?
|
|||
37
Кирпич
14.03.12
✎
17:30
|
(31) чтобы написать компилятор не надо быть гением. как писать компилятор учат в институте и в книжках написано. другое дело написать хороший компилятор.
|
|||
38
Stagor
14.03.12
✎
17:30
|
(36) Нет, см. комментарии в статье (0)
|
|||
39
Кирпич
14.03.12
✎
17:31
|
(33) а я туда не ходил
|
|||
40
andrewks
14.03.12
✎
17:31
|
(37) +1
|
|||
41
Stagor
14.03.12
✎
17:32
|
(39) А, че так? Там ЗП у консультантов К3-К4 до 10 тыщ USD/месяц
|
|||
42
andrewks
14.03.12
✎
17:32
|
эй, парни, хорош оффтопить
|
|||
43
mikecool
14.03.12
✎
17:32
|
Звездные войны и граф Дуку в частности на марше?
|
|||
44
Волшебник
14.03.12
✎
17:33
|
Одним из основных событий месяца стало развитие истории вредоносной программы Duqu. После детального анализа программы, эксперты ЛК пришли к выводу, что основной целью злоумышленников были данные о системах управления производством в различных отраслях промышленности Ирана, а также информация о торговых отношениях ряда иранских организаций. Помимо этого было обнаружено, что авторы Duqu, кроме использования некой единой платформы, вероятней всего, применяли фреймворк собственной разработки, написанный на неизвестном языке программирования.
Подробнее: http://www.securitylab.ru/news/421460.php |
|||
45
Jstunner
14.03.12
✎
17:37
|
(38) код компилятора Objective-C открыт, подлопатить его под свои нужды - не проблема, писать на нем проще всего из C-подобных языков. Все сходится..
|
|||
46
Stagor
14.03.12
✎
17:40
|
(45) Objective-C для win есть?
|
|||
47
Jstunner
14.03.12
✎
17:41
|
(46) входит в gcc для всех значимых платформ
|
|||
48
Jolly Roger
14.03.12
✎
17:46
|
маша там ж ж о т...
|
|||
49
Lama12
14.03.12
✎
17:55
|
Пара вариантов на вскидку.
Макросы в ассемблере. Очень старый язык программирования, переделанный любителем под текущую платформу. |
|||
50
Кирпич
14.03.12
✎
18:32
|
(41) ну так иди туда. зарабатывай. чего ко мне привязался то
|
|||
51
Bugmenot
14.03.12
✎
18:45
|
тупые 1Сники как всегда обсуждают вещи, о которых понятия не имеют
|
|||
52
Kuzen
14.03.12
✎
19:00
|
" новость о наследнике Stuxnet, черве Duqu. После нескольких недель работы корпорация Microsoft выпустила патч для своей операционной системы. Этот патч закрывает «дыру», через которую вредоносное ПО и попадает в систему. Как известно, Duqu, в первую очередь, предназначен для кражи информации на разного рода ПРОМЫШЛЕННЫХ предприятиях."
ИМХО это происки пентагона, а точнее его секретное подразделение X, занимающееся в явном виде кибертерроризмом, но под прикрытием обеспечения интересов национальной безопасности США. |
|||
53
ShoGUN
14.03.12
✎
19:32
|
(52) Интересно, почему пентагона?
|
|||
54
jsmith
14.03.12
✎
19:36
|
стопудов это пентагон
|
|||
55
Академик_
Келдыш 14.03.12
✎
19:54
|
как понять «неизвестный язык программирования»??? Дизассемблируешь код и имеешь ассемблер пусть хоть собирают на своем компиляторе код написан на древнешумерском. Или наконец появился вирус написанный не в лабораториях касперского и они удивились?
|
|||
56
Упанишады
14.03.12
✎
20:38
|
Поскольку речь идет об Иране, то, возможно, троян соорудили Израильские спецслужбы.
|
|||
57
Эмбеддер
14.03.12
✎
21:24
|
Скоро о Duqu будут рассказывать в шоу для домохозяек.
Мы то с вами понимаем что необычного в области программирования, особенно если это вирусы очень много, и почему-то об этом на весь мир не кричат |
|||
58
MRAK
14.03.12
✎
21:43
|
(53) почему "почему"?
Инфа 100%! |
|||
59
Прохожий
14.03.12
✎
21:46
|
(0) Какой-то сумасшедший одноэсниг переквалифицировался и написал ВК для Виндовс. Как всегда неудачно и загадочно.
|
|||
60
zak555
14.03.12
✎
21:56
|
(48) так она из болгарии - ей можно
|
|||
61
DGorgoN
14.03.12
✎
22:01
|
(55) Любой язык имет свои особенности. По ним и определили.
|
|||
62
Kuzen
14.03.12
✎
22:11
|
(57) О и госдеп уже сдесь, привет John , как погода в California? Твой русский not ice :)
|
|||
63
Stagor
15.03.12
✎
11:20
|
в итоге, кто-нибудь по листингу в ассемблере узнал компилятор?
|
|||
64
Stagor
15.03.12
✎
11:24
|
итак, это точно не LISP
|
|||
65
sergeante
15.03.12
✎
13:45
|
ппц, эту новость уже три дня обсасывают. "неизвесный язык программирования" бл...
нате, выбирайте http://www.roesler-ac.de/wolfram/hello.htm |
|||
66
Эмбеддер
15.03.12
✎
17:38
|
(62) нормалек погода, сегодня снова снег выпал
|
|||
67
Stagor
15.03.12
✎
18:14
|
(65) И на каком из них написан фреймворк Duqu?
|
|||
68
HeroShima
15.03.12
✎
18:37
|
(0) то-то их антивирь в упадке..
|
|||
69
Stagor
16.03.12
✎
17:08
|
(68) Зато бизнес в порядке! :)
|
|||
70
romix
16.03.12
✎
18:55
|
(23) Ну да. Или кто-то сделал свой препроцессор-компилятор через Асм.
Вместо параметров, локальных переменных и возвращаемых значений можно использовать только поля класса-объекта. Это, как мне предположительно думается, уберет много заморочек при создании своего компилятора, а также уберет проблемы с безопасностью в готовом решении (срыв стека). Улучшит читаемость кода (видно текстом - какой параметр передан и возвращен). Скорее всего, этот подход еще и скорость увеличит, т.к. не нужна обычная инициализация и освобождение стека туда-сюда. Таким образом, в стеке будут храниться только адреса возврата из функции, а не вагон и маленькая тележка всякой ботвы! |
|||
71
Jaffar
16.03.12
✎
19:25
|
"свой язык программирования можно написать и на СРР"
подтверждаю, у нас на специальности каждый студент на 3-м курсе должен был спроектировать свой компилятор (правда, без реализации в кодах). довести его до ума - задача наверное на уровне хорошего диплома. |
|||
72
Jaffar
16.03.12
✎
19:28
|
(53) потому что засветился в Иране.
(58) не 100%, а 146%! |
|||
73
Икогнито
16.03.12
✎
19:40
|
(0) Так лаборатория касперского персонал набирает.
Кто разгадает предложенную задачу - того берут на оклад отстатыщ. |
|||
74
smaharbA
16.03.12
✎
19:43
|
общага работает на помошников раввина
|
|||
75
Икогнито
16.03.12
✎
19:59
|
(74) или новый вирус в касперском выдумывают, ищут идеи
|
|||
76
Икогнито
16.03.12
✎
19:59
|
+(75) во всяком случае (0) смахивает на ТЗ, а не на реальную проблему
|
|||
77
СамСуСам
16.03.12
✎
20:52
|
(76) Касперы не первые нашли этот троянец, так что теория заговора отпадает.
Самый главный вопрос - зачем понадобилось писать вирус на это фреймворке? Так удобнее или ради понтов? Многие вещи, которые используются в этом фреймворке есть в других языках и фреймворках. |
|||
78
romix
16.03.12
✎
21:03
|
(71) Можно транслировать некий упрощенный Си в ассемблер - большинство конструкций позволяют делать это явно, а все усложнения можно просто выкинуть (кто-то пишет и на чистом асме). Например, сто лет в обед не нужны многоэтажные выражения из операций со скобками или приоритетами (кто-нибудь, кроме дятлов, их использует?). Не нужна вещественная арифметика (доли копейки только с ней терять). Не нужна арифметика указателей (из Go в Гугле арифметику указателей убрали, а указатели оставили). Зато почти всегда нужны строки и массивы неограниченной длины, которых почему-то нет в Си. Возможно, не нужны локальные переменные и параметры функции (при наличии полей класса), ибо дыра в безопасности и производительности.
|
|||
79
Torquader
16.03.12
✎
21:14
|
В некоторых реализациях для микроконтроллеров есть решения, когда применяются два стека - один для вызовов процедур, а другой - для данных. Тогда проблем со срывом стека нет вообще.
На 86-платформе тоже можно использовать такое решение, но код не будет сильно оптимальным, так как придётся занять ещё один регистр. |
|||
80
romix
17.03.12
✎
00:45
|
(79) Целиком то это проблему не решает - ну затрет если не адрес возврата то другие ячейки. Говорят самолеты стали часто падать. Собственно проверка на границы не отнимает вообще тактов для последовательных операций (там все равно dec ecx и jnz, проверять нужно только ecx перед началом цикла). Для единичных операций ну добавится cmp/jge - а не капля ли это в море других команд, раз последовательного цикла все равно нет. Так что можно спокойно проверять границы массива и не опасаться за быстродействие, что и делают все нормальные компиляторы.
Насчет того а стоит ли как-то менять схему с хранением локальных переменных и передачей параметров в стеке - может быть стоит по другим причинам (предположительно - простота реализации транслятора и более высокое быстродействие за счет лучшего попадания в кеш L1/L2). А то все эти EBP, ESP - тьфу... |
|||
81
Stagor
19.03.12
✎
12:49
|
в итоге, так и не выяснили НЯП!
|
|||
82
Кирпич
19.03.12
✎
13:11
|
так нечего выяснять. кто-то где-то троян написал на своем языке программирования. никто с этим писателем не знаком. тупая ветка. чего хотел автор непонятно.
|
|||
83
Stagor
19.03.12
✎
13:24
|
(82) Хотел найти экзотический компилятор, который идеально подходит для сетевого программирования!
|
|||
84
Кирпич
19.03.12
✎
13:44
|
(83) сочувствую
|
|||
85
Stagor
19.03.12
✎
15:40
|
(84) это из ЛК.
у меня чисто академический интерес к ЯП! |
|||
86
Адинэснег
19.03.12
✎
15:50
|
(15) небось, к конкурсу "интеллектуалов среднего урала" кто зоплил, не?
|
|||
87
Jaffar
19.03.12
✎
15:59
|
(86) "зоплил" - эточо? :-)
|
|||
88
Адинэснег
19.03.12
✎
16:20
|
Server «A» — Вьетнам
Server «A» был расположен во Вьетнаме и использовался для управления одним из вариантов Duqu, обнаруженном нами в Иране. Это был Linux сервер, работающий под управлением CentOS 5.5. Интересно, что все C&C Duqu, которые были нами найдены, работали именно под CentOS — версий 5.2, 5.4 или 5.5. Мы не знаем, является ли это просто совпадением или атакующие имели особую тягу (эксплойт?) к CentOS 5.x. Чем CentOS Linux отличается от Fedora? |
|||
89
Vovan1975
19.03.12
✎
16:24
|
пипец, до чего программистишки обмельчали. Новый язык программирования - и сразу чуть ли не истерика...
|
|||
90
Kuzen
19.03.12
✎
16:27
|
(88) "Cent" уже само как бэ намекает на дядю сэма :)
|
|||
91
IKSparrow
19.03.12
✎
16:34
|
(0) Господи, вот дурни-ламеры, это же обычный Форт!
wiki:Forth |
|||
92
Stagor
19.03.12
✎
16:37
|
(91) Вроде, ЛК сообщает, что не ФОРТ
|
|||
93
romix
19.03.12
✎
18:59
|
А может разработчики прикололись и напейсали на Си++ без передачи параметров в круглых скобках?
Это позволяет увеличить количество строчек в коде, если оплата была построчно, ну и улучшить читаемость (все параметры - именованные а ля HTML). |
|||
94
HeroShima
19.03.12
✎
19:06
|
А трояны на ассемблере писать уже немодно?
|
|||
95
romix
19.03.12
✎
19:19
|
(94) С классами будет заморочка ИМХО.
|
|||
96
КМ155
19.03.12
✎
19:30
|
(95) ты угадал
http://www.cnews.ru/news/top/index.shtml?2012/03/19/482105 |
|||
97
romix
19.03.12
✎
21:50
|
(96) Хех я на 11 минут раньше это написал.
|
|||
98
Андрюха
20.03.12
✎
05:11
|
(0) После нескольких экспериментов с различными версиями MSVC и опциями компиляции специалист «Лаборатории Касперского» Игорь Суменков сумел воспроизвести код функции конструктора с первого скриншота и получить из этого кода бинарный код, совпадающий с найденным в Duqu.
|
|||
99
Андрюха
20.03.12
✎
05:12
|
«При компиляции указанного выше кода на С с помощью компилятора из поставки MSVC 2008 с опциями /O1 (оптимизация по размеру) и /Ob1 (разворачивать только __inline функции) получается машинный код, совпадающий с оригинальным кодом этой функции в Duqu, — пишет Игорь Суменков. Он также пытается проанализировать причины, по которым неизвестный автор Duqu решил использовать OO C вместо C++, и предполагает, что причин может быть две: 1) широкая переносимость и 2) недоверие к компиляторам С++. «Это типично для разработчиков с многолетним опытом, которые начинали с ассемблера, а затем постепенно перешли на С. Когда появился С++, многие отказались от его использования из-за неявного управления памятью и запутанных конструкций, вызывавших неявное выполнение кода (конструкторы, операторы и т.п.). Обе причины явно указывают, что код фреймворка был написан разработчиками «старой школы» с многолетним опытом работы».
|
|||
100
Упанишады
20.03.12
✎
05:42
|
(100)
|
|||
101
Vovan1975
20.03.12
✎
08:26
|
"2) недоверие к компиляторам С++. «Это типично для разработчиков с многолетним опытом, которые начинали с ассемблера, а затем постепенно перешли на С. Когда появился С++, многие отказались от его использования из-за неявного управления памятью и запутанных конструкций, вызывавших неявное выполнение кода (конструкторы, операторы и т.п.). Обе причины явно указывают, что код фреймворка был написан разработчиками «старой школы» с многолетним опытом работы»."
ыыыы, наглядное подтверждение что с++ - унылое непроизводительное и жрущее память г"вно для быдлокодерков по 5 рублей за пучок |
|||
102
Кирпич
20.03.12
✎
08:29
|
оператор goto плохой!
|
|||
103
Stagor
20.03.12
✎
10:04
|
интересно, а чем OO C отличается от обычного C++?
|
|||
104
Stagor
21.03.12
✎
15:11
|
Удивило, что привлеченные специалисты Microsoft не смогли определить свой же MSVC :)
«При компиляции указанного выше кода на С с помощью компилятора из поставки MSVC 2008 с опциями /O1 (оптимизация по размеру) и /Ob1 (разворачивать только __inline функции) получается машинный код, совпадающий с оригинальным кодом этой функции в Duqu, — пишет Игорь Суменков. |
|||
105
romix
21.03.12
✎
20:44
|
(101) Google свой Си-подобный язык продвигает (от Пайка и Томпсона).
wiki:Go_(язык_программирования) В нем, надо понимать, учтены косяки С++. (104) А там не очень-то определишь после оптимизаций. Да и возможно что препроцессировали из своего языка в Си, после чего запускали компилятор от Микрософт, а это накладывает дополнительные необычности в код. |
|||
106
romix
21.03.12
✎
22:00
|
Кстати в Go виден косяк (я решил поизучать тур):
http://tour.golang.org/#15 package main import "fmt" func main() { sum := 0 for i := 0; i < (1 << 25); i++ { sum += i } fmt.Println(sum) } //Выдает -16777216 |
|||
107
Jaffar
22.03.12
✎
11:33
|
(106) переполнение целого числа? что в этом необычного? :-)
а что означает запись "1 << 25"? |
|||
108
romix
22.03.12
✎
14:32
|
(107) Косячок-с, пошлю им сообщение - может исправят. :-) Я тут завел новую тему для Go:
Go - язык программирования от Google/Томпсона и Пайка |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |