Имя: Пароль:
IT
IT-новости
Неизвестный язык программирования в троянце 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
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/Томпсона и Пайка