Тут меня спросили старые друзья, где скачать исходники ОС Демос. Нет проблем, лежит на моём сайте: d22.tar.gz. Но оказалось, что у товарища файл не скачивается: антивирус его зарубает. То есть где-то там унутре схоронилась зараза. Стало любопытно! Давайте поисследуем.
Я в последние двадцать лет живу в Линуксе и на маке, и антивирусами не пользуюсь. И так всё безопасно. Из более раннего опыта остались положительные впечатления от антивируса ClamAV. Когда-то я его даже встраивал в наш корпоративный sendmail в Крониксе. Отлично справлялся: за несколько лет ни один вирус по почте не проскочил. В среднем одно-два письма с опасным вложением отлавливал.
Установить ClamAV на маке нетрудно. На Линуксе должно быть похоже.
После этого обновляем базу вирусов из сети:
Вот такой привет из прошлого. В википедии пишут, что вирус Vienna появился в 1987 году. Архив Tape.z был упакован в 1990-м году.
Я в последние двадцать лет живу в Линуксе и на маке, и антивирусами не пользуюсь. И так всё безопасно. Из более раннего опыта остались положительные впечатления от антивируса ClamAV. Когда-то я его даже встраивал в наш корпоративный sendmail в Крониксе. Отлично справлялся: за несколько лет ни один вирус по почте не проскочил. В среднем одно-два письма с опасным вложением отлавливал.
Установить ClamAV на маке нетрудно. На Линуксе должно быть похоже.
Дальше нужно отредактировать файл freshclam.conf. По минимуму достаточно удалить строку "Example" в начале файла. Там в комментариях всё написано.brew install clamav
cd /usr/local/etc/clamav
cp freshclam.conf.sample freshclam.conf
После этого обновляем базу вирусов из сети:
Теперь просканируем исходники Демоса. Флаг -r включает рекурсивную обработку папок, флаг -o отключает сообщения про файлы, которые OK.$ freshclam
ClamAV update process started at Fri Feb 9 21:07:32 2024
daily database available for download (remote version: 27180)
ERROR: NULL X509 store
Time: 2.4s, ETA: 0.0s [========================>] 59.89MiB/59.89MiB
Testing database: '/usr/local/var/lib/clamav/tmp.490347e161/clamav-a54e59a89f319f5921157771aad9bd2a.tmp-daily.cvd' ...
Database test passed.
daily.cvd updated (version: 27180, sigs: 2052672, f-level: 90, builder: raynman)
main database available for download (remote version: 62)
ERROR: NULL X509 store
Time: 5.9s, ETA: 0.0s [========================>] 162.58MiB/162.58MiB
Testing database: '/usr/local/var/lib/clamav/tmp.490347e161/clamav-a77aeb1d9c704e1bd04cacbe4e177196.tmp-main.cvd' ...
Database test passed.
main.cvd updated (version: 62, sigs: 6647427, f-level: 90, builder: sigmgr)
bytecode database available for download (remote version: 334)
ERROR: NULL X509 store
Time: 0.1s, ETA: 0.0s [========================>] 285.12KiB/285.12KiB
Testing database: '/usr/local/var/lib/clamav/tmp.490347e161/clamav-a25b5b63ec44ab4235ae302d67208fef.tmp-bytecode.cvd' ...
Database test passed.
bytecode.cvd updated (version: 334, sigs: 91, f-level: 90, builder: anvilleg)
Видим файл с вирусом. Это упакованный архив tar с исходниками утилиты wsh. Давайте его распакуем и просканируем внутри.$ wget https://pub.sergev.org/unix/d22.tar.gz
$ tar xzf d22.tar.gz
$ clamscan -r -o d22
Loading: 10s, ETA: 0s [========================>] 8.68M/8.68M sigs
Compiling: 3s, ETA: 0s [========================>] 41/41 tasks
/Users/vak/d22/cmd/comint/dpi/tdpi.c: Empty file
d22/cmd/RCS: Symbolic link
/Users/vak/d22/cmd/wsh/Tape.z: Win.Trojan.Vienna-8 FOUND
/Users/vak/d22/cmd/true.sh: Empty file
----------- SCAN SUMMARY -----------
Known viruses: 8684540
Engine version: 1.3.0
Scanned directories: 124
Scanned files: 1613
Infected files: 1
Data scanned: 42.97 MB
Data read: 22.29 MB (ratio 1.93:1)
Time: 22.294 sec (0 m 22 s)
Start Date: 2024:02:09 21:11:15
End Date: 2024:02:09 21:11:37
Заглянем внутрь "больного" файла W.test.com.$ mkdir wsh
$ tar xzf d22/cmd/wsh/Tape.z -C wsh
$ clamscan -r -o wsh
Loading: 9s, ETA: 0s [========================>] 8.68M/8.68M sigs
Compiling: 3s, ETA: 0s [========================>] 41/41 tasks
/Users/vak/wsh/W.test.com: Win.Trojan.Vienna-8 FOUND
----------- SCAN SUMMARY -----------
Known viruses: 8684540
Engine version: 1.3.0
Scanned directories: 3
Scanned files: 114
Infected files: 1
Data scanned: 1.31 MB
Data read: 0.70 MB (ratio 1.87:1)
Time: 13.948 sec (0 m 13 s)
Start Date: 2024:02:09 21:14:59
End Date: 2024:02:09 21:15:12
Очевидно, это был шелловский скрипт, которому почему-то дали расширение ".com". Вирус посчитал, что это выполняемый файл MS-DOS, и заразил его. Дописал в конец кучу мусора (тело вируса) и в начало несколько байт - переход на заражённый участок файла.$ cat -v wsh/W.test.com
?. a 17
echo hello > 00
echo "hi"There >> 00
echo Hey"You" >> 00
echo Go"To"Hell >> 00
echo MIG$a >> 00
echo CWD${CWD}IS >> 00
echo Good" Day $a" >> 00
echo Where" isMy${a}Years"Yeah >> 00
echo Here\"There\"and"any$a"Where >> 00
echo CWD$[\"%t\"%end]{CWD}IS >> 00
echo CWD$[\"%t\"%end]CWD"IS"ETC >> 00
echo \\ >> 00
echo "\" >> 00
echo '\' >> 00
echo "\\" >> 00
echo \n >> 00
echo \\n >> 00
echo \" >> 00
echo \""a" >> 00
echo '"' >> 00
echo \$ >> 00
echo "\$" >> 00
echo "\\$" >> 00
echo "$" >> 00
echo "\\\$" >> 00
echo \\\$ >> 00
echo "\""hi" >> 00
unset a
P?R^GM-^K?M-^A?^@^@??^C^@?^@^A?M-^K??0?!<^@u^C??^A?......... ............................................................
Вот такой привет из прошлого. В википедии пишут, что вирус Vienna появился в 1987 году. Архив Tape.z был упакован в 1990-м году.

no subject
Date: 2024-02-10 11:54 (UTC)Хорошая идейка, называть скрипты .com или .exe
И занятное расследование, спасибо.
no subject
Date: 2024-02-10 17:00 (UTC)no subject
Date: 2024-02-10 17:23 (UTC)no subject
Date: 2024-02-10 18:06 (UTC)no subject
Date: 2024-02-13 09:03 (UTC)Я регулярно запускаю эмулятор DOS. Как минимум несколько тысяч раз в год.
С, как сейчас модно говорить, рекреационной целью (при этом не ретроинженерной).
no subject
Date: 2024-02-14 00:33 (UTC)no subject
Date: 2024-02-14 07:21 (UTC)no subject
Date: 2024-02-15 01:34 (UTC)no subject
Date: 2024-02-15 02:35 (UTC)Но исходя из этого аргумента не надо вообще защищать контейнеры, в которых исполняется скомпилированный открытый код. Его тоже можно заново скачать из интернета.
no subject
Date: 2024-02-14 01:16 (UTC)no subject
Date: 2024-02-14 02:50 (UTC)no subject
Date: 2024-02-14 03:16 (UTC)no subject
Date: 2024-02-15 01:37 (UTC)