ТруЪ-чучхе-десктоп

Posted: 2016-01-04 in IT, Software
Метки:,

Всем привет. Отойдя от новогоднего похмелья, вызванного слегка забродившим яблочным соком, спешу поделиться с вами своими изысканиями по необычным образцам операционко-строения.

Сегодня мы снова заглянем под железный занавес, накрывающий Северную Корею. Прошлый раз я рассказывал про RedStar 3.0 Server, которая оказалась просто старым, но довольно качественно кореизированным линуксом. Та сборка требовала серийник, привязанный к мак-адресу сетевой карты, ставилась минимально настроенной, с пустым конфигом файервола, без поднятых сетевых сервисов и с логином под рутом по умолчанию. Селинукс в ней был выключен. Вообщем, никса никсой без изысков. Правда, загрузчик уже тогда был слегка твикнутый.

Ничего особо подозрительного я в ней тогда не обнаружил.

Однако после опубликования одного доклада с 32С3 (Chaos Computer Club, проводящий конференции по IT-безопасности в Гамбурге каждый год) я снова решил ознакомиться с этим чудом.

Авторы доклада плотно поковырялись в системе и выложили свои изыскания:

https://github.com/takeshixx/redstar-tools

Обнаружилось, что десктопная версия разительно отличается от серверной. В то время, как серверная версия — это просто старый линух с затёртыми копирайтами, корейским интерфейсом и активацией серийником, защиту которого должен настраивать назначенный партией политрук (создать пользователей, включить селинукс, настроить файервол и демонов), десктопная версия оказалась самым настоящим шпионским зондом. Но начну я как обычно по порядку, со скриншотов процесса установки.

В отличие от серверной версии, тут решили закосить под MacOS:
redstar3_Desktop_setup1

Естественно, унаследовав оттуда всё самое худшее, типа отсутствия технических сведений о процессе установки и прочих удобных и полезных опций. Единственная иконка с понятным мне символом не сильно помогла:

redstar3_Desktop_setup2

Да, выбрать никакой другой язык, кроме корейского, при установке нельзя. Сперва я застрял на этапе установки и разбивки диска. Оказалось, что 8 Гб диска ей мало, но без знания корейского понять это сразу не удалось, и ставить пришлось методом тыка. Увеличив размер диска до 32 Гб, я смог поставить систему, просто нажимая текущую активную кнопку =).

Создаём пользователя:

redstar3_Desktop_setup3

Админская интуиция подсказала мне, что первой строчкой тут полное имя пользователя и партийная должность, потом идёт системное имя пользователя ($username), пароль с подтверждением и подсказка о пароле.

Важный момент — тут создается только обычный юзер. Логин рутом по-умолчанию закрыт начисто — в /etc/shadow в качестве хэша пароля будут прописаны два восклицательных знака (запрет прямого логина), а в /etc/passwd в качестве стартового шелла у рута будет /sbin/nologin. У северокорейца его домашним компом рулит партия, а сидящему за компом юзеру знать ничего не надо и системные настройки менять нельзя. Совсем. Чем-то напомнило кое-что виденное ранее. Настройка sudoers тоже крайне репрессивна и позволяет запускать лишь несколько местных команд, о которых чуть позже.

Настройка сети обнаруживается по знакомой аббревиатуре DHCP:

redstar3_Desktop_setup4

Ну и часовой пояс можно выбрать. Я выбрал таймзону, аутентичную легенде нашего тестового пользователя:

redstar3_Desktop_setup5

После нажатия на правую кнопочку в интерфейсе начинается процесс установки — такой же дурной и неинформативный, как и в MacOS, которому очень пытаются подражать:

redstar3_Desktop_setup6

Поставив, систему, ребутимся, и созерцаем загрузчик (grub):

redstar3_Desktop_BootLoader

Никаких [F10], [E] и прочих привычных по федоре опций загрузки я не нащупал. В сингл-мод грузиться можно только в присутствии понятых, политрука и представителя министерства правды. После загрузки видим окно выбора пользователя (сорри, скриншот снят уже в процессе входа в систему):

redstar3_Desktop_LoginScreen

Рабочий стол выглядит вот так:
redstar3_Desktop_Workplace1

Обнаружив, что в системе нет миднайта, я полез его ставить, но тут надо учесть специфику. В КНДР нет интернета, и даже местный говно-чебурнет дотянут далеко не везде. Поэтому предполагаемый путь установки — с установочного диска. Пакетный менеджер прописан в sudoers, и пакет ставится сразу без каких-либо запросов паролей:

redstar3_Desktop_SetupSoft

Дальше я обнаружил, что несмотря на корректно сконфигурированную сеть, из сетевых функций работает только самба — не пинговалась даже соседняя по влану виртуалка с серверной версией краснозвезданутой системы. Дамп траффика же на хосте показывал, что траффик проходит корректно. Проблема явно в файерволе чучхейского десктопа. Однако поскольку после обычного инсталла руто-доступа в систему нет совсем, потребуется немного порутать систему. Я использовал для этого сетевую загрузку RiP Linux — грузимся, монтируем:
mount /dev/sda1 /mnt/sda1
и правим файлы /mnt/sda1/etc/passwd, /mnt/sda1/etc/shadow и /mnt/sda1/etc/sudoers. Ставим руту шелл /bin/bash, хэш пароля копируем от пользователя user1, и на всякий случай пропишем возможность запускать su через sudo без пароля [НИКОГДА ТАК НЕ ДЕЛАЙТЕ НА СВОИХ РАБОЧИХ СИСТЕМАХ!!]. Последний шаг пробивает в защите системы огроменную дырень, и этот совет — из самых вредных и опасных. Но на тестовой системе, тем более столь недемократичной и тоталитарной, как северокорейский десктоп — можно и sudo su без пароля :]

Ребутимся. После этого в систему можно будет напрямую залогиниться рутом, выключить файервол и изучить систему более подробно. Как провернуть подобное без использования стороннего LiveCD средствами только самой редстар — без понятия.

Теперь немного извлеченных конфигов.

/etc/sudoers:
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

# Host alias specification

# User alias specification

# Cmnd alias specification

# Defaults specification

Defaults env_reset
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR \
LS_COLORS MAIL PS1 PS2 QTDIR USERNAME \
LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION \
LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC \
LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS \
_XKB_CHARSET"

# Runas alias specification

# User privilege specification
root ALL=(ALL) ALL
ALL ALL=NOPASSWD: /Applications/swmng.app/Contents/RedStar/swmng
ALL ALL=NOPASSWD: /usr/bin/imagemount
ALL ALL=NOPASSWD: /usr/bin/cdrecord
ALL ALL=NOPASSWD: /usr/bin/mkisofs
ALL ALL=NOPASSWD: /usr/bin/scnprc
ALL ALL=NOPASSWD: /usr/bin/opprc
ALL ALL=NOPASSWD: /usr/bin/rssidebardaemon
ALL ALL=NOPASSWD: /bin/su

# Uncomment to allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL

# Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL

# Samples
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users localhost=/sbin/shutdown -h now

Согласно докладу с 32C3, программы scnprc и opprc реализуют шпионские функции. Ну а /bin/su без пароля — это уже моя импровизация в духе корейского фольклора.

Файервол (iptables —list -vn от рута):

Chain INPUT (policy DROP 11 packets, 634 bytes)
pkts bytes target prot opt in out source destination
2 312 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
788 83094 INTRUSION_PREVENTION_FILTER all -- * * 0.0.0.0/0 0.0.0.0/0
788 83094 APPLICATION_FILTER all -- * * 0.0.0.0/0 0.0.0.0/0
11 634 USER_DEFINED_FILTER all -- * * 0.0.0.0/0 0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 189 packets, 16326 bytes)
pkts bytes target prot opt in out source destination
793 93071 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

Chain APPLICATION_FILTER (1 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spts:1:65535 dpt:22
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:1:65535 dpt:22
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spts:1:65535 dpt:80
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:1:65535 dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spts:1:65535 dpt:443
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:1:65535 dpt:443
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spts:1:65535 dpt:5900
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:1:65535 dpt:5900
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spts:1:65535 dpt:631
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:1:65535 dpt:631
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spts:1:65535 dpt:135
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:1:65535 dpt:135
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:137 dpts:1:65535
56 5333 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:137 dpts:1:65535
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spts:1:65535 dpt:137
33 2574 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:1:65535 dpt:137
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spts:1:65535 dpt:138
11 2504 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:1:65535 dpt:138
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spts:1:65535 dpt:139
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:1:65535 dpt:139
648 67616 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:445 dpts:1:65535
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:445 dpts:1:65535
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spts:1:65535 dpt:445
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:1:65535 dpt:445
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spts:1:65535 dpt:20
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:1:65535 dpt:20
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spts:1:65535 dpt:21
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:1:65535 dpt:21
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spts:1:65535 dpt:548
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:1:65535 dpt:548
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spts:1:65535 dpt:5353
29 4433 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:1:65535 dpt:5353
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:22 dpts:1:65535
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:22 dpts:1:65535
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:80 dpts:1:65535
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:80 dpts:1:65535
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:443 dpts:1:65535
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:443 dpts:1:65535
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:5900 dpts:1:65535
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:5900 dpts:1:65535
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:631 dpts:1:65535
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:631 dpts:1:65535
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:135 dpts:1:65535
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:135 dpts:1:65535
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:138 dpts:1:65535
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:138 dpts:1:65535
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:139 dpts:1:65535
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:139 dpts:1:65535
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:20 dpts:1:65535
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:20 dpts:1:65535
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:21 dpts:1:65535
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:21 dpts:1:65535
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:548 dpts:1:65535
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:548 dpts:1:65535
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp spt:5353 dpts:1:65535
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:5353 dpts:1:65535

Chain INTRUSION_PREVENTION_FILTER (1 references)
pkts bytes target prot opt in out source destination

Chain USER_DEFINED_FILTER (1 references)
pkts bytes target prot opt in out source destination

В INPUT нет RELATED,ESTABLISHED, зато он почему-то есть в OUTPUT, где и так политика — ACCEPT. 0.o
Ну и разрабы попытались охватить все комбинации используемых портов. У меня при таком конфиге на внешний фтп в соседней ВМ зайти не получилось. Выключение файервола по команде service iptables stop система перенесла спокойно.
Вот такой вот тоталитарный конфиг.

После отключения файервола у меня заработали ftp и браузер. Браузер этот при первом запуске попытался порадовать страничкой из чебурнета:

http://10.76.1.11/naenarabrowser/ko/3.5b4/firstrun/

Этот самый браузер, называемый «наенара», оказался попиленным фуррифоксом с начисто выпиленными корневыми CA.То есть по умолчанию доверие есть только HTTPS-ресурсам местной локалки:

redstar3_Desktop_Naenara_SSL-Error

Для более удобного извлечения конфигов делаем так — [Alt]+[F2], konsole, [Enter], LANG=C, [Enter], mc [Enter]. Получаем миднайт на английском. В /tmp есть ещё немного интересных файлов.

/tmp/kfirewallrc
[Application]
AppList=파일공유(SMB),보안원격접속(SSH),웨브(HTTP),보안웨브(HTTPS),화면공유(Screen-sharing),인쇄기공유(Printer-sharing),DNS
보안원격접속(SSH)=true
보안원격접속(SSH):port=tcp:22
보안웨브(HTTPS)=true
보안웨브(HTTPS):port=tcp:443
웨브(HTTP)=true
웨브(HTTP):port=tcp:80
파일공유(SMB)=true
파일공유(SMB):port=tcp:135,tcp:137,tcp:138,tcp:139,tcp:445,tcp:20,tcp:21,tcp:548
화면공유(Screen-sharing)=true
화면공유(Screen-sharing):port=tcp:5900
인쇄기공유(Printer-sharing)=true
인쇄기공유(Printer-sharing):port=tcp:631
DNS=true
DNS:port=tcp:5353
[Firewall]
Status=true

[IPS]
Status=false

[Logging]
Status=false

/tmp/kompmgr — очень похоже на историю логинов с постоянным хранением.

/etc/usersettings:

#!/bin/sh

if [ "$1x" != "x" ];then
. $1
fi

isExist=`cat /etc/group | grep admin:x`
if [ "$isExist" = "" ]; then
cat /etc/group>/tmp/group.tmp
echo "Adding 'admin' group..."
groupadd -f -o -g 0 admin
admingroup=`cat /etc/group | grep admin:x`
echo $admingroup>/etc/group.bak
cat /tmp/group.tmp>>/etc/group.bak
mv -f /etc/group.bak /etc/group
rm -f /tmp/group.tmp
fi

isExist=`cat /etc/group | grep staff`
if [ "$isExist" = "" ]; then
echo "Adding 'staff' group..."
groupadd -f -o -g 90 staff
fi

isExist=`cat /etc/group | grep Guest`
if [ "$isExist" = "" ]; then
echo "Adding 'Guest' group..."
groupadd -f -o -g 89 Guest
fi

#JSH: needed for KYG: 2012.09.23
groupadd -r com.rs.sharepoint.everybody

isExist=`cat /etc/passwd | grep Guest`
if [ "$isExist" = "" ]; then
echo "Adding 'Guest' user..."
useradd -o -u 89 -s /sbin/nologin -g Guest -G Guest -c "Guest Account" Guest
passwd -d Guest
smbpasswd -a -n Guest
fi

usermod -g root -G admin,staff -s /sbin/nologin -c "System Administrator" root
passwd -d root
usermod -p '!!' root
smbpasswd -a -n root

if [ "x$SHORTNAME" == "x" ];then
exit 0
fi

/usr/sbin/useradd "$SHORTNAME" -g "$SGROUP"

if [ "x$NAME" != "x" ];then
/usr/bin/chfn -f "$NAME" "$SHORTNAME"
fi

if [ "x$PASSWORD" != "x" ];then
/usr/sbin/usermod -p "$PASSWORD" "$SHORTNAME"
else
/usr/bin/passwd -d "$SHORTNAME"
fi

/usr/sbin/usermod -g "$SGROUP" -G "$FGROUP" "$SHORTNAME"

#JSH: we need /root/* holders for generall users
#mkfolders /home/$SHORTNAME
#mkfolders /root # but this runs every time

#JSH: from RyangKyongIl
if [ "x$PASSWORD" != "x" ];then
/usr/bin/smbpasswd "$SHORTNAME" -a -s > /etc/samba/smb.conf # we don't need global sharing
echo "[$SHORTNAME's Public Folder]" >> /etc/samba/smb.conf
echo "path = /home/$SHORTNAME/Public" >> /etc/samba/smb.conf
#echo "force user = root" >> /etc/samba/smb.conf # we don't need force user
echo "valid users = $SHORTNAME, Guest, +staff" >> /etc/samba/smb.conf
#echo "read list = guest" >> /etc/samba/smb.conf
echo "read list = Guest, +staff" >> /etc/samba/smb.conf
echo "guest ok = yes" >> /etc/samba/smb.conf
echo "read only = no" >> /etc/samba/smb.conf
#echo "admin users = root" >> /etc/samba/smb.conf
#echo "admin users = $SHORTNAME" >> /etc/samba/smb.conf
echo "write list = $SHORTNAME" >> /etc/samba/smb.conf

Файловые системы:

/etc/fstab
UUID=1a...c3 / ext3 acl,user_xattr 1 1
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
/.SWAP swap swap defaults 0 0

Для корня применён механизм Ext3-ACL — дополнительная система прав доступа.

Целый гиг подкачки, подкачка отдельным файлом в корне (а не разделом).
# ls /.SWAP -lah
-rw-------. 1 root admin 1.0G 2016-01-01 09:09 /.SWAP

И снова попытка закосить под макоз:

# ls /home -la
lrwxrwxrwx. 1 root admin 6 2016-01-01 09:09 /home -> /Users

С SELinux ситуация странная — режим стоит Enforcing, но ps axfuZ не показывает меток на процессах, id -Z показывает контекст unconfined. Хак с sudoers работает. Пишем sudo /bin/su и получаем рута. sudo su не сработает — будет вызван /usr/bin/su =)

Теперь проверим некоторые утверждения из доклада с 32C3.

Файл AnGae.dat есть, весит 32 Мб и недоступен даже руту:


[root@localhost /]# ls /tmp/*.dat -lah
-rwxr-xr-x. 1 root admin 31M 2016-01-01 09:24 /tmp/AnGae.dat

[root@localhost /]# cat /tmp/AnGae.dat
cat: /tmp/AnGae.dat: Operation not permitted

После вытаскивания в нормальной системе файл оказался бинарным — скорее всего, закриптован. Но авторы доклада его расковыряли и написали на питоне парсер:

https://github.com/takeshixx/redstar-tools/tree/master/patterns

Парсер написан на питоне, и извлекает он около 90 Мб хекс-дампа бинарных паттернов. Насколько я понял, если такой паттерн попадется в файле — система его удалит сразу и без вопросов.

На этом же гитхабе лежат извлечённые криптографические модули — похоже, КНДР тоже имеет криптографию собственной разработки, уже включенную в редстар.

Самая интересная шпионская функция там — установка скрытых меток на DOCX/JPEG файлы, содержащих зашифрованные серийные номера жестких дисков тех машин, где файл успел побывать. На пустые файлы из одним только нулевых байт система не среагировала, так что помимо расширения явно проверяется заголовок и структура файла.

Берём первую попавшуюся картинку из интернетов:

redstar3_Desktop_OpenJpeg1

Для простановки скрытой метки достаточно просто подключить носитель или скачать файл на компьютер. В моём случае файл поменялся сразу при копировании внутрь ВМ по протоколу FTP средствами Midnight Commander.

MD5:
96a58af43946224c6102b06289dad2a0 Jirik1_Original-file.jpg
71662e5b0c2e8240ab1a66e8e1ae254d Jirik2_Markered-file.jpg

Для JPEG метки дописываются в конец файла.

Вот конец оригинального файла:


001a9e0 1425 5100 1445 5100 1445 5100 1445 5100
001a9f0 1445 5100 1445 5100 1445 5100 1445 5100
*
001ab90 1445 5100 1445 ff01 00d9
001ab99

А вот дописанные в конец файла метки (см. 001ab90)


001a9e0 1425 5100 1445 5100 1445 5100 1445 5100
001a9f0 1445 5100 1445 5100 1445 5100 1445 5100
*
001ab90 1445 5100 1445 ff01 93d9 9b0a 8c22 61fe
001aba0 2a73 1273 6442 4428 5abe a013 29e6 754b
001abb0 18b1 0000 4500 464f
001abb8

Число таких меток не ограничено. Если файл (или флешка с файлом) побывает на нескольких компах с десктопной редстар — от каждого такого забэкдоренного компа останется своя зашифрованная метка. Для DOCX метки вставляются в области нулевых байт, но корректно обрабатываются вроде как не все файлы.

Почему-то постоянно сравниваю этот чучхе-десктоп с виндовс-10. Только в виндовс упор сделан на постоянное слежение по сети (подразумевается наличие постоянного онлайна), а в редстар упор сделан на оффлайн-техники — скрытые метки на файлы и встроенные бэкдоры в комплекте, поскольку большая часть машин в КНДР — оффлайновые. Но и та, и другая система стараются не пускать пользователя к своим нежным внутренностям.

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

Вот такая вот системко. Бэкдоры на борту присутствуют риальне. Выпилить — можно, но трудоёмко и без гарантий. Лучше просто не ставить всякий треш.

Ещё наблюдение — сама десктопная редстар-3.0 неимоверно лагучая и тормозная, она по лагучести внутри ВМ способна дать фору виндовс-10. Либо шпиЁнские функции явно плохо оптимизированы, либо система пытается юзать 3D-ускорение, которое внутри ВМ отсутствует.

Вот такой вот яркий пример пиратского линукса — ясен фиг, ни указывать других авторов компонентов сиистемы, ни предоставлять исходники разработчики чучхе-ОС не собираются.

——————
[2017-06-06] P.S. Прошло буквально полтора года — и выяснилось, что ставить шпионские метки на файлы умеет не только серевно-корейский линух, но ЦРУ-шное федваре.

- комментарии
  1. alex:

    интересно, почему система не запросила инфу с чипа пользователя? Вроде бы, должна была. И где сообщении о неисправном оборудовании(считывателе чипа)?

  2. Amin:

    =)
    Думаю, эта функция впервые появится в Windows 12 и iPhone9

  3. В С. Корее банально нет деенег на разработку\внедрение таких чипов. Хотя идейка очень в духе чучхе.

  4. Amin:

    На такую оруэловщину, как чипизация, деньги есть вообще у очень немногих стран. Это ведь не только сами чипы, но и инфраструктура и самое главное — адски раздутый штат надсмотрщиков. Ну и возможные бунты тоже не исключены.
    Возни много, толку — мало. В тоталитарных государствах и так всё под контролем без всяких чипов (КНДР тому отличный пример), а если контроль утерян нахер, как это случилось с озверевшими толпами в парижских погромах — то никакие чипы уже не помогут.

    И если быть точным, то чудовищная идея изначально родилась вовсе не у чучхе. А показывается она обычно вот в таких рекламках:

    Так что говорить, что «идея с чипами в духе чучхе» — мягко скажем, некорректно. В духе чучхе — окуклиться и отгородиться от всего остального мира. Ну и вертеться там всем корейцам вместе с Кимами. А вот чипы — это совсем с другой части света.