LINUX.ORG.RU

Что изучать, чтобы писать антивирусы?

 , , ,


0

1

Здравствуйте! Подскажите пожалуйста, что нужно изучить, чтобы научиться писать антивирусные программы, драйвера и тд. Какие языки изучать и на какие разделы высшей математики налегать?

Ответ на: комментарий от aureliano15

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

Ещё вариант печального опыта с "вы гарантируете то, что от втыкания вашей флешки ничего не будет" до прямого отказа вставлять это в свой компьютер вообще.

Ну а работу кода можно обсудить и по бумажке, и даже удобнее если количество бумажек в разумных пределах.

torvn77 ★★★★★ ()
Ответ на: комментарий от torvn77

вы гарантируете то, что от втыкания вашей флешки ничего не будет

Если it’шник, который проводит собеседование, не умеет отключить автозапуск с флешки или запустить чужой код в безопасном окружении (его, кстати, запускать необязательно, просто можно и запустить), то ему не то что собеседования проводить противопоказано, но вообще в it делать нечего.

работу кода можно обсудить и по бумажке, и даже удобнее

Можно, когда это небольшая функция на языке высокого уровня, да ещё хорошо оформленная и документированная. А когда это ассемблерная простыня без комментариев, — намного сложнее. Зная ассемблер, можно, конечно, разобраться. Но кому это надо? На то и расчёт. :-)

Но это только одна из возможных версий. Городских сумасшедших сложно понять. Порой и нормальных-то людей понять трудно. :-)

aureliano15 ★★ ()
Ответ на: комментарий от aureliano15

Зная ассемблер, можно, конечно, разобраться. Но кому это надо?

А зачем разбираться, собеседуемый эту простыню принёс, вот пусть пальцем тыкает и объясняет, ведь он скорее всего 2/3 этой простыни, если не всю целиком просто знает наизусть и может про него читать часовые лекции.

torvn77 ★★★★★ ()
Последнее исправление: torvn77 (всего исправлений: 1)
Ответ на: комментарий от hobbit

Ты тут делаешь две ошибки:

  1. действия направленные на извлечение прибыли трактуешь как выпендрёж.
  2. Говоришь что слово не может иметь того или иного смысла только потому что в таком смысле им не пользуются в твоём окружении или этот смысл тебе неприятен.

Антивирус на винде это намного больше чем проверка файлов на содержание тех или иных сигнатур, но многое другое что линуксойды считают другими направлениями деятельности.

Да,мнение проприетарщиков неправильно и некомпетентно, но их больше, их рынок имеет большие обороты и они это считают нормальным и по этому когда виндузчтник спрашивает про антивирус под линуксом ему надо говорить не про поиск сигнатур, а про всю ИБ целиком.

torvn77 ★★★★★ ()
Ответ на: комментарий от hateyoufeel

Я бы налёг на какую-нибудь сисястую девку на твоём месте. Потому что антивирусы – это не то чтобы очень денежная штука.

С первой частью я вполне согласен, но с каких пор малваре аналитикам перестали деньги платить?

CaveRat ★★ ()
Ответ на: комментарий от torvn77

Selinux,AppArmore,мандатный контроль доступа, iptables

Осталось только понять, где тут закопан поведенческий анализ/сигнатурный анализ.

А инструменты полезные, да.

CaveRat ★★ ()
Ответ на: комментарий от CaveRat

но с каких пор малваре аналитикам перестали деньги платить?

С тех пор, как на эту должность поперла куча студентов. Не, если ты реально крут, то платить тебе тоже будут соответственно. Но в среднем по области всё довольно безрадостно.

hateyoufeel ★★★★★ ()
Ответ на: комментарий от hateyoufeel

Ну, озвучьте, что вы называете «безрадостно». Безрадостно платят первой линии аналитиков, которые могут только по плейбукам что-то делать. Самостоятельный анализ малваре - это уже заявка на некоторый опыт и умение пользоваться мозгами. Что встречается, к сожалению, довольно редко.

CaveRat ★★ ()
Ответ на: комментарий от aureliano15

Строго говоря, запрет автозапуска с флешек уже не является панацеей. Атака через виндовую рисовалку иконок файлов была уже очень давно, badUSB появился относительно недавно. И то, и другое, позволяет провести атаку.

Правда, атака через рисовалку требует от пользователя открыть флешку в файловом менеджере.

Так что, втыкать посторонние носители лучше в специально выделенный комп, отключенный от сети =)

CaveRat ★★ ()
Ответ на: комментарий от CaveRat

Это небольшая лесть лоровцам, чтобы они со мной побыстрее согласились.

А так тебе целых два треда обоснователей, этот и Экономически оправданные способы обеспечения безопасности., выбирай какой больше нравица.

torvn77 ★★★★★ ()
Последнее исправление: torvn77 (всего исправлений: 2)
Ответ на: комментарий от torvn77

То есть, обоснования нет.

А касательно твоего треда про «экономически обоснованную безопасность» - у тебя там нет ни полслова про анализ рисков, а значит, ни о какой экономике там речь или не может.

CaveRat ★★ ()
Ответ на: комментарий от torvn77

Ты вообще уверен, что ты мне отвечал, а не кому-то другому?

Я нигде не писал про выпендрёж. А ИБ или не ИБ — ТС, по-моему, вообще ещё шире загребал, и упоминание им драйверов косвенное тому подтверждение. Если я прав, и его интересует низкоуровщина — так в этом ничего плохого, совсем наоборот, просто не все готовы оставаться этому направлению до конца жизни.

hobbit ★★★★★ ()
Ответ на: комментарий от CaveRat

Экономическая обоснованность может быть разной, может быть такой как говоришь ты, а может быть и из нескольких десятков тысяч хомячков которые за 30$ в год получают бинарник под названием antivirus который хранит свои .so в пользовательском хомяке для более удобного его поставщику способа выпуска обновлений.

И вот это второе если расслабится и станет нашим будущим.

Вот про что моя тема.

torvn77 ★★★★★ ()
Ответ на: комментарий от hobbit

Ок, ну пусть не молодёжный выпендрёж, а неопытность начинающего, но это принципиально ничего не меняет.

А ИБ или не ИБ — ТС, по-моему, вообще ещё шире загребал, и упоминание им драйверов косвенное тому подтверждение.

Просто нажми на ссылку https://yandex.ru/search/touch/?text="драйвера%20безопасности"
А потом на эту ссылку:
https://yandex.ru/search/touch/?text="security%20driver"

Даже securitydriver.com имется.

torvn77 ★★★★★ ()
Последнее исправление: torvn77 (всего исправлений: 5)
Ответ на: комментарий от torvn77

пусть пальцем тыкает и объясняет, ведь он скорее всего 2/3 этой простыни, если не всю целиком просто знает наизусть

Так дьявол-то кроется в деталях. :-) Он объяснит, что программка делает то-то и то-то, алгоритм примерно такой, укажет на основные блоки, рассказав, что они делают. А о том, что там ошибка на ошибке, и всё это при запуске вылетает или виснет, предусмотрительно умолчит. И пока сам не разберёшься или не запустишь, — не узнаешь.

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

unsigned fac(unsigned n) {
  unsigned r = n > 0 ? n : 1;
  while(n>2)
   r*=--n;
  return r;
}

Всего 6 строчек. А без учёта закрывающей скобки — и вовсе 5. Там и разбираться не в чем. А вот её вывод на ассемблере (правда, сгенерированном компилятором, но написанный человеком код будет несильно отличаться):

        .file   "fac.c"
        .text
        .globl  fac
        .type   fac, @function
fac:
.LFB0:
        .cfi_startproc
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset 6, -16
        movq    %rsp, %rbp
        .cfi_def_cfa_register 6
        movl    %edi, -20(%rbp)
        cmpl    $0, -20(%rbp)
        je      .L2
        movl    -20(%rbp), %eax
        jmp     .L3
.L2:
        movl    $1, %eax
.L3:
        movl    %eax, -4(%rbp)
        jmp     .L4
.L5:
        subl    $1, -20(%rbp)
        movl    -20(%rbp), %eax
        movl    -4(%rbp), %edx
        imull   %edx, %eax
        movl    %eax, -4(%rbp)
.L4:
        cmpl    $2, -20(%rbp)
        ja      .L5
        movl    -4(%rbp), %eax
        popq    %rbp
        .cfi_def_cfa 7, 8
        ret
        .cfi_endproc
.LFE0:
        .size   fac, .-fac
        .ident  "GCC: (Debian 8.3.0-6) 8.3.0"
        .section        .note.GNU-stack,"",@progbits

Тут уже есть в чём разбираться. А представь реальное тестовое задание, на написание которого надо потратить хотя бы час и самую малость вникнуть, чтобы понять, что это такое, даже на языке высокого уровня. Какая простыня получится на ассемблере, представляешь? Поэтому на нём без острой нужды (которая возникает довольно редко) никто, кроме психов, не пишет. Можно, конечно, написать какой-нибудь DOS на чистом ассемблере, чтоб показать, какой ты крутой. Но на практике ты сам же потом не сможешь поддерживать этот код. Поэтому крутость свою ты покажешь, но никому без оперативной поддержки оно нужно не будет. Даже если там экономится несколько килобайт ОЗУ и несколько процессорных тактов.

aureliano15 ★★ ()
Ответ на: комментарий от CaveRat

Атака через виндовую рисовалку иконок файлов была уже очень давно, badUSB появился относительно недавно.

Вот этого не знал. Спасибо за инфу. Чего только народ ни придумает!

Атака через виндовую рисовалку иконок

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

aureliano15 ★★ ()
Ответ на: комментарий от aureliano15

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

Так что я думаю что надо смотреть что за листинг и как он его обясняет, общим бла-бла или с подробностями.

П.С. Поискал этот учебник через Яндекс картинки это было второе издание учебника Юрова, так и назывался Assembler.

Если он есть в доступе то скачай иипосмотри эту ассемблерную программу, она отнюдь не так чудовищна как твоя(честно говоря в сравнении с тем что было у Юрова твоя программа выглядит обсфуцированной)

torvn77 ★★★★★ ()
Последнее исправление: torvn77 (всего исправлений: 2)
Ответ на: комментарий от torvn77

по учебнику писал на асемблере

Я тоже как-то в молодости написал на турбо си текстовую анимацию из псевдографики для DOS. А главную функцию решил написать на ассемблере. Причём так старался, что она запустилась с первого раза вообще без ошибок, хотя в си-коде ошибки пришлось исправлять — просто писал внимательнее, т. к. это было для меня намного сложнее. :-) Потом то же самое написал на си, используя борландовские библиотеки, сравнил, и моя ассемблерная реализация оказалась на несколько процентов быстрее их библиотечной. Очень этим гордился. А потом, когда всё склеил, понял, что графика-то слишком быстрая, на чём ни пиши, — хоть на асме, хоть на сях. Пришлось паузы функцией delay() вставлять. Тогда-то я и понял, что ассемблер — это круто, но практически не нужно в большинстве случаев, уже в то время. :-) Хотя тоже была у меня книжка по написанию графики для DOS. Там автор приводил алгоритм рисования прямой из точек, потом реализовывал этот алгоритм через подпрограмму bios (прерывание 10h), затем на си с прямым доступом к графическому адаптеру и последний вариант — оптимизация на ассемблере. Я сейчас уже не помню конкретных миллисекунд, но нормальный алгоритм по сравнению с самым тупым дал огромный прирост производительности, вывод непосредственно в видеопамять в сравнении с вызовом 10h — меньше, но тоже заметно — раза в 1.5 — 2, а ассемблер в сравнении с си процентов 10, максимум 20.

она отнюдь не так чудовищна как твоя

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

(честно говоря в сравнении с тем что было у Юрова твоя программа выглядит обсфуцированной)

Да нет. Просто она сгенерирована компилятором gcc с опцией -S из си-кода. Соответственно, вместо идентификаторов там относительные адреса. Хорошо ещё, что название функции сохранено. Но и в написанной человеком ассемблерной программе тоже будут названия регистров. Ну да, вместо адресов человек скорее всего введёт какие-то более или менее понятные идентификаторы. Но тут тоже от человека зависит.

раньше некоторые графические форматы могли содержать код который должен был выполнятся при их открытии.

А, понял. Я-то сначала подумал, что это иконки Windows (т. е. ico-файлы размером 8x8 или соответствующие им по формату ресурсы) заражены. :-)

aureliano15 ★★ ()
Ответ на: комментарий от torvn77

Ну убери ж ты этот мерзкий подбородок. Хоть адблоком блокируй, мама родная.
Поставь аниме. Или пони. Или кота. Вон бери пример с саахрикту - веселые оригинальные аватарки.

anonymous ()
Ответ на: комментарий от aureliano15

Вот этого не знал. Спасибо за инфу. Чего только народ ни придумает!

Я так понимаю, что малваре, выводящее данные путем модуляции частоты вращения кулера тебя еще сильнее удивит?)))) Это пока академические развлечения, но тем не менее

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

Сам далеко не сразу нашел, так давно это было.

CVE-2010-2568

На хабре есть коротенькая обзора (https://habr.com/ru/post/99732/), за прям деталями-деталями - к археологам. Все-таки, 2010 год.

CaveRat ★★ ()
Ответ на: комментарий от CaveRat

малваре, выводящее данные путем модуляции частоты вращения кулера

Почитал. Интересная штука. :-) Хотя практически, похоже, мало полезная (0.5 бит/с., т. е. 1 байт за 16 с., впрочем, для хищения небольшого сверхсекретного документа подойдёт).

CVE-2010-2568 На хабре есть коротенькая обзора (https://habr.com/ru/post/99732/)

Спасибо за название и ссылку.

aureliano15 ★★ ()