• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Kodachi Linux, вероятно, небезопасен

IvanVasilyevich

CD-диск
Пользователь
Регистрация
11.07.2023
Сообщения
15
Реакции
64
Недавно я познакомился с дистрибутивом Kodachi Linux, который, судя по его сайту, получил признание критиков. Это поверхностный взгляд на дистрибутив, если его вообще можно так назвать. С самого начала все начинается не очень хорошо:

Запутанная документация​

Для достижения наилучших результатов в области безопасности (электронная почта - банковские услуги - криптовалюта):
  • Провайдер > Хост-машина (Анонимный VPN за XMR) > Kodachi VPN (Виртуальная машина - Vmware) с принудительным брандмауэром > Браузер Kodachi > Dnscrypt (Лучшая модель)
  • Провайдер > Kodachi VPN с принудительным брандмауэром > Браузер (loaded) Kodachi > Dnscrypt
  • Провайдер > Kodachi VPN с принудительным брандмауэром > Браузер (loaded) Kodachi > TOR DNS
  • Провайдер > Kodachi VPN с принудительным брандмауэром > Браузер (lite) Kodachi > TOR DNS (Быстрая модель)
  • Провайдер > Kodachi VPN с принудительным брандмауэром > Тор-Браузер > Dnscrypt
  • Провайдер > Kodachi VPN с принудительным брандмауэром > Тор-Браузер > TOR DNS

Это приводит к смешиванию понятий безопасности и анонимности. Хотя большинство сайтов сегодня используют протокол TLS (https), отправка трафика через неизвестные VPN и Tor может привести к тому, что ваш трафик попадет к злоумышленникам. Вы не можете знать о мотивах людей, управляющих ретрансляторами выхода из Tor, и хотя они могут обеспечивать анонимность, они не предназначены для обеспечения безопасности.

Более того, Warith Al Maawali, автор Kodachi, открыто признает, что по умолчанию при загрузке передается аппаратный хэш:
Я плачу ежемесячную арендную плату за узлы VPS и использую их для работы VPN, который предоставляется вам, я не собираю НИКАКИХ данных и не храню НИКАКОЙ информации (Logs), принадлежащей пользователю, кроме идентификатора оборудования (hash) и подключенного IP адреса (VPN IP), который должен быть отправлен автоматически, когда ваш компьютер устанавливает соединение с VPN.

Как, черт возьми, он пришел к выводу, что передача аппаратного хэша при загрузке является хорошей идеей для дистрибутива, ориентированного на безопасность и анонимность? Я мог бы согласиться с этим, если бы это происходило только после того, как пользователь решил использовать этот VPN. А так он автоматически передает его при загрузке.

Что такое Kodachi​

Kodachi это не то, что я бы назвал дистрибутивом. Стандартные репозитории Ubuntu. Это просто Ubuntu с темой оформления и некоторыми shell скриптами для управления дополнительными функциями безопасности. На мой взгляд, это должно быть более заметно, особенно учитывая несколько сомнительную лицензию, которую он публикует. Его код это не ОС; это несколько shell скриптов.

Сетевая катастрофа​

IPv4, Kodachi, по крайней мере, удается правильно настроить. tracepath -4 vg.no указывает, что да, он действительно проходит через VPN и, возможно, Tor:

tracepath -4 vg.no


Но для IPv6 он ломается! IPv6 включен и функционирует. Обратите внимание, что я отредактировал первые два хопа, поскольку они находятся внутри моей собственной сети но третий хоп является конечной точкой Hurricane Electric для моего IPv6 туннеля...

tracepath -6 vg.no


Это катастрофический недостаток дистрибутива, пытающегося обеспечить анонимность! Незнающие пользователи могут быть банально отслежены по IPv6, полагая, что система использует те VPN, которые они ей указали. Некоторые пакеты, входящие в состав дистрибутива, такие как youtube-dl, с удовольствием используют IPv6 там, где это возможно.

Хотя я обычно горячо поддерживаю IPv6, на данный момент, вероятно, имеет смысл полностью отключить его, если ваша цель анонимность. В данном сценарии это риск, поскольку инструменты, работающие на IPv4, часто не знают об IPv6.

Кроме того, похоже, что он путает dnscrypt и VPN. На рабочем столе показано ISP->VPN->DNScrypt - что... непонятно. DNSCrypt предназначен для обеспечения поиска DNS, а не сетевого трафика в целом!

Установленное программное обеспечение​

Этот раздел можно охарактеризовать как "все, включая кухонную раковину". В него входят:
  • Audacity
  • Remmina
  • LibreOffice
  • OpenSSH server
  • GCC
  • Postfix (который включен и даже слушает!)
  • И многое, многое другое.
Возможно, это связано с тем, что это Live-образ Ubuntu с минимальными изменениями. Но большее количество программного обеспечения означает большую площадь атаки. А это, вероятно, не очень хорошо для системы, ориентированной на сохранение анонимности. Такие программы, как popularity-contest, установлены, хотя и отключены. Нет никакой разумной причины для установки этого!

Даже avahi установлен. Зачем вообще нужна программа, предназначенная для объявления о своем присутствии в такой системе? Это просто не имеет смысла. Его удаление позволит системе работать нормально и устранит одну потенциальную проблему.

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

Шифрование файлов​

Шифрование файлов обеспечивается пользовательским скриптом Python 2.x с именем lock.py и оберткой для shell скрипта с именем lock. lock.py, судя по всему, является скриптом Python, написанным Joe Linoff, хотя создатель Kodachi не дает никаких ссылок на использование этой программы, равно как и на то, что он не является ее создателем. Насколько мне удалось выяснить, скрипт выпущен под лицензией MIT. Насколько я могу судить, Warith Al Maawali, создатель Kodachi, не включает эту лицензию тем самым нарушая условия распространения lock.py.

Вероятно, именно поэтому в своем журнале изменений он пишет следующее:
Я пытался перейти на Ubuntu 20.04, но из-за устаревания Python мне было сложно продолжать, поэтому я продолжил работу с 18.04.6, пока не забывая, что поддержка 18.04 все еще действительна для Ubuntu и ее поддержка должна прекратиться к апрелю 2023 года.

Кстати, этот журнал изменений стоит прочитать. Он содержит несколько WTF.

Скрипты bash​

Программное обеспечение, которым, собственно, и является Kodachi, представляет собой набор bash скриптов в каталоге ~/.kbase/. Качество этих скриптов заставляет меня задуматься. Некоторые скрипты содержат руководство по bash в верхней части:

bash


Покажу фрагмент, который генерирует аппаратный хэш:
Bash:
function getID()
{

    a=$(sudo dmidecode -s system-uuid);
    b=$(sudo dmidecode -s system-serial-number);
    c=$(sudo dmidecode |grep -w ID:|head -n1);
    d=$a.$b.$c;
    f=$(md5sum <<<$d| tr -d -|tr -d ' ');
    g=$(echo $f | cut -d ' ' -f 1);
    e=$g;
    writeToJason "$e" "kodachihwid"; 
}

Во-первых, это непростительно. Это данные, которые однозначно идентифицируют компьютер, и он их передает. Если компьютер используется для обеспечения анонимности, то этот хэш позволяет любому лицу, контролирующему конечную точку, проверить, соответствует ли пользователь физическому компьютеру. И Al Maawali передает это на свой собственный сервер! Держитесь подальше от Kodachi, он подходит разве что в качестве упражнения, как не нужно делать!

Во-вторых, этот фрагмент свидетельствует о том, что человек не совсем понимает, что делает, с такими конструкциями, как g=[...], за которыми без видимой причины следует e=$g. Плохое именование переменных повышает вероятность ошибок и снижает читабельность, что очень важно для программ, связанных с безопасностью.

Но обратная сторона заключается еще и в том, что эта функция не делает того, что, по мнению автора, она должна делать; можно просто отредактировать скрипт и заменить эту функцию на следующую, которая будет каждый раз возвращать случайный уникальный хэш, тем самым лишая его возможности блокировать людей:
Bash:
function getID()
{
    writeToJason echo "$(head -n 1 /dev/urandom | md5sum | cut -d " " -f 1)" "kodachiwid"
}

Это еще лучше. Давайте посмотрим, как он работает с сетями:
Bash:
IP=$(cat $Jason_web_file_name| jq -r '.ServerFeed6[].Netcheckdomain1'|xargs);
    # Validate jsons here           
    if [[ ! -n "$IP" ]]
    then
        netIP="mail.com";
        print_error "Failed to get json variable IP setting it to: $IP";
    fi 
    echo "Switching domain to $IP";
    echo "Dhcclient the smart way";
    for i in $( nmcli device status | awk '{print $1}' );
    do
        if [[ $i != "DEVICE" ]]
        then
            echo "Dhcp for:$i";
            sudo timeout 60 sudo dhclient $i;

        fi
    done
fi

Во-первых, выводимые сообщения не имеют смысла. Переключение домена на $IP? И нет, dhclient не разумный способ. Система использует NetworkManager. Он игнорирует его и запускает dhclient напрямую. Кроме того, он запускает его для каждого интерфейса. Включая lo, интерфейс обратной связи. И на всякий случай он использует sudo timeout 60 sudo[...]? Почему двойное sudo?

На самом деле это приводит меня к факту, что в этом дистрибутиве включен беспарольный sudo. Зачем? На мой взгляд, это снижает безопасность. Конечно, это удобнее, но в дистрибутиве, ориентированном на безопасность и конфиденциальность, автор не должен делать такой выбор за пользователя - и автор не должен ставить систему в зависимость от беспарольного sudo.

Кроме того, наблюдается откровенное злоупотребление sudo там, где он явно не нужен. Есть такие строки, как VPN_IP=$(sudo curl -s -m 30 $randomdomain ), где sudo не служит никакой цели. Может быть автор просто привык ставить sudo перед командами, чтобы убедиться, что они работают, не понимая, что делает sudo...?

Функция бана...​

Таким образом, он может запретить пользователям использовать его VPN, если посчитает их нежелательными. Как он это делает? Наверняка на стороне сервера, верно?

Неа. Просто шутка! Это делается на стороне клиента.
Bash:
function banAction()
{

    SERVICE='openvpn';
    if (ps ax | grep -v grep | grep $SERVICE > /dev/null)
    then
        sudo killall -SIGINT openvpn;

    fi

    SERVICE='tor-service';
    if (ps ax | grep -v grep | grep $SERVICE > /dev/null)       
    then
        sudo killall tor;
    fi

Итак... он посылает HWID на сервер, и если сервер отвечает banned, клиент обрывает все VPN соединения. Но это же bash скрипт, не так уж сложно закомментировать несколько строк там и здесь.

Это иллюстрация уровня несовершенства мышления Al Maalawi в области безопасности - он не понимает, что в таком сценарии нельзя доверять клиенту. Стали бы вы всерьез доверять этому человеку свою безопасность?

Полное отсутствие брандмауэра!​

Одна из самых больших проблем заключается в том, что брандмауэр не настроен. Ничего, ничего, ничего... Но, черт возьми, у него установлен postfix и он слушает!
Bash:
$ nc 10.0.3.153 25
220 Live-OS.localdomain ESMTP Postfix (Ubuntu)

500 5.5.2 Error: bad syntax

Это с другого компьютера в той же подсети. Какое возможное обоснование у этого решения? Это риск для безопасности. Нет ни одного значимого сценария, в котором это было бы необходимо на компьютере, используемом для анонимного подключения к Интернету. Это актуально только для сервера электронной почты.

Кроме того, Kodachi не блокирует трафик до того, как VPN сервисы начнут работу. А ведь должен! Брандмауэр, отбрасывающий входящие пакеты, также повышает безопасность на случай, если что-то прослушивается по ошибке - подумайте о глубокой защите. Сконфигурированный брандмауэр мог бы смягчить ситуацию с прослушиванием Postfix - хотя я ожидал, что автор лучше контролирует сконфигурированные службы, чем показывает.

Оценка безопасности​

Kodachi выставляет оценки от 0 до 100, якобы для того, чтобы сообщить, насколько вы защищены. Проблема, в том, что на самом деле это ни о чем не говорит! Рассмотрим следующее:
Bash:
SERVICE='tor-service';
  if (ps ax | grep -v grep | grep $SERVICE > /dev/null)
    then
    theModel="ISP->VPN->Tor";
    securityScore=$((securityScore+30))

Kodachi не проверяет, действительно ли используется tor; достаточно того, что он запущен. Или как насчет брандмауэра?
Bash:
if(sudo ufw status |grep tun0 > /dev/null)
    then
          securityScore=$((securityScore+2));
fi

Будет плохо, если интерфейс переименуют в tun1. Также не проверяется разумность правил, а только то, что в каком-то правиле присутствует tun0. Разрешение "any from any" с указанием tun0 в качестве комментария повысит оценку.

В существующем виде это число в значительной степени бессмысленно. Безопасная система может набрать 0 баллов, а небезопасная 100. В лучшем случае это бесполезно. В худшем активно вредит, поскольку пользователь может быть введен в заблуждение хорошей оценкой.

Apparmor​

Поскольку Kodachi основан на Ubuntu, он поставляется с Apparmor. К сожалению, он использует только профили по умолчанию, доступные в Ubuntu, без каких-либо адаптаций. Apparmor мог бы стать ценным элементом системы для глубокой защиты, гарантируя, что проблема в браузере не сможет скомпрометировать всю систему, например, ограничив браузер на чтение и запись в определенный набор каталогов. К сожалению, этого не сделано.

Discord для связи​

Этот парень тусуется в чате Discord. Те люди, которых я знаю, которые более чувствительны к конфиденциальности, не тронут Discord и 10-футовым шестом. Отсутствие IRC канала кажется странным выбором - хотя это и не влияет на безопасность дистрибутива, но говорит о менталитете автора. Кроме того, очевидно, что это один автор, а не сообщество или группа людей.

Резюмируя​

Вот что я обнаружил за несколько часов поисков. Некоторые из находок серьезны, некоторые просто указывают на небрежность создателя системы, что говорит о том, что он не обладает хорошими знаниями в области безопасности. Bash скрипты указывают на то, что человек не имеет опыта программирования и администрирования Linux, и содержат такие странные конструкции, как использование NetworkManager для получения списка устройств - но не использует NetworkManager для их конфигурирования, вызов dhclient для loopback интерфейса и т.д.

Многие из этих вариантов не повлияют на пользователя, заботящегося о безопасности, но позволят новичку сконфигурировать систему в небезопасном состоянии. Наличие большего выбора в данном случае по сути означает, что люди могут совершать больше ошибок. В Tails это понимают и обеспечивают безопасную базовую настройку, которую не так-то просто разрушить. Там, где Tails допускает небезопасную конфигурацию, документация ясно предупреждает об этом. Документация по Kodachi очень скудна как по содержанию, так и по предупреждениям.

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

Вкратце: не используйте Kodachi. Есть другие, которые лучше:
Они несколько отличаются по объему и функциональности. Прочитайте документацию и найдите тот, который подходит именно вам. Все они имеют активные сообщества. Но держитесь подальше от Kodachi.


Специально для xss.pro
Перевел: IvanVasilyevich
Автор статьи:
vidarlo
Актуальность: 24 Октября, 2021
Оригинал: https://bitsex.net/english/2021/kodachi-linux-is-probably-not-secure
 
сначала поставил лайк, а только потом заметил, что это перевод чужой статьи, ещё и двухлетней давности.
оно точно нужно на этом форуме?
 
сначала поставил лайк, а только потом заметил, что это перевод чужой статьи, ещё и двухлетней давности.
оно точно нужно на этом форуме?
Конечно. Если у тебя есть интересные кандидаты на переводы, закидывай сюда https://xss.pro/threads/29867/
 
Конечно. Если у тебя есть интересные кандидаты на переводы, закидывай сюда https://xss.pro/threads/29867/
у меня претензия не к собственно переводу, а к теме этого перевода: одно дело переводить статьи о каких-то полезных техниках или разбор какой-нибудь малвари или уязвимости, и другое - перевод статьи о косяках какого-то Болгеноса, вместо широко известных дистрибутивов.
 
у меня претензия не к собственно переводу, а к теме этого перевода: одно дело переводить статьи о каких-то полезных техниках или разбор какой-нибудь малвари или уязвимости, и другое - перевод статьи о косяках какого-то Болгеноса, вместо широко известных дистрибутивов.
Я же и говорю. Встречаешь интересный источник для перевода, закидывай сюда https://xss.pro/threads/29867/ А критиковать точно нельзя. Ты не прав =) Огромный кусок работы, все это делается на добровольных началах. Переводчик может принять на свой счет и в будущем потеряет интерес к переводам и помощи форуму.
 
сначала поставил лайк, а только потом заметил, что это перевод чужой статьи, ещё и двухлетней давности.
оно точно нужно на этом форуме?
у меня претензия не к собственно переводу, а к теме этого перевода: одно дело переводить статьи о каких-то полезных техниках или разбор какой-нибудь малвари или уязвимости, и другое - перевод статьи о косяках какого-то Болгеноса, вместо широко известных дистрибутивов.

Kodachi довольно широко распространен и очень часто рекомендуется для использования в качестве анонимной и безопасной системы:
https://xssforum7mmh3n56inuf2h73hvhnzobi7h2ytb3gvklrfqm7ut3xdnyd.onion/threads/57240/post-376661
https://xssforum7mmh3n56inuf2h73hvhnzobi7h2ytb3gvklrfqm7ut3xdnyd.onion/threads/93271/post-652776
https://xssforum7mmh3n56inuf2h73hvhnzobi7h2ytb3gvklrfqm7ut3xdnyd.onion/threads/66978/post-452650
https://xssforum7mmh3n56inuf2h73hvhnzobi7h2ytb3gvklrfqm7ut3xdnyd.onion/threads/57814/post-380641

Знать о таких нюансах будет явно не лишним тем, кто им пользуется, особенно новичкам, к тому же за 2 года в этом плане ничего не изменилось.
 
Последнее редактирование:
Kodachi - ориентированный на противодействие форензике.
Qubes - ориентированная на безопасность через изоляцию, виртуализацию.
TAILS - созданный для обеспечения приватности и анонимности.
Whonix - Предназначен для обеспечения анонимности. Его особенностью является то, что ни вредоносные программы, ни компрометация учётной записи суперпользователя не могут привести к утечкам IP-адреса и DNS.
Kali - Предназначен прежде всего для проведения тестов на безопасность.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Хорошая статья, за исключением, может быть, некоторых нюансов. И главное в тему, и неважно что старая. Возраст в данном случае почти никак не влияет на суть. Во-первых, раскрывается сам подход к оценке тех или иных ситуаций, продуктов, итд, раскрываются некоторые технологии, раскрывается взгляд на проблему. А такие вещи актуальны всегда, независимо от конкретного продукта или времени его непосредственно применимой актуальности.

Никогда не пользуйтесь подобными коробочными продуктами. С бОльшей долей вероятности эти продукты - медовые ловушки.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Kodachi - ориентированный на противодействие форензике.
Qubes - ориентированная на безопасность через изоляцию, виртуализацию.
TAILS - созданный для обеспечения приватности и анонимности.
Whonix - Предназначен для обеспечения анонимности. Его особенностью является то, что ни вредоносные программы, ни компрометация учётной записи суперпользователя не могут привести к утечкам IP-адреса и DNS.
Kali - Предназначен прежде всего для проведения тестов на безопасность.
Кончились реакции, но спасибо большое, сохраню это в заметки.
Как думаешь что из этого наиболее "анонимнее' из коробки?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Кончились реакции, но спасибо большое, сохраню это в заметки.
Как думаешь что из этого наиболее "анонимнее' из коробки?
Tails.
 
Кончились реакции, но спасибо большое, сохраню это в заметки.
Как думаешь что из этого наиболее "анонимнее' из коробки?
из коробки анонимности не бывает, если ты с одного ip на условный ВК пойдешь и сети лочишь будешь, анонимность - процесс
 
Кроме того, похоже, что он путает dnscrypt и VPN. На рабочем столе показано ISP->VPN->DNScrypt - что... непонятно. DNSCrypt предназначен для обеспечения поиска DNS, а не сетевого трафика в целом!
После этого перестал читать, там остальное по тексту явно такого же уровня понимания автором "анонимности".

Сабж (с моего же поста на соседнем форуме):

VD(P)S\VM + VPN:

1sc.jpg

browserleaks без DNScrypt (dns vpn'a)

2sc.jpg


Подкинем DNScrypt over VPN

3sc.jpg


browserleaks (dnsleaktest.com аналогично)

4sc.jpg

____________________________

DNScrypt нужен, чтобы избежать утечки днс (что палит твои впн or вп(д)с серваки). Если ты накидываешь сверху впн -> socks\tor с do DNS lookups over socks5 -> то extended test на том же dnsleaktest часто пробивает И твой днс резолвер (VPN\серв) И резолвер носка, либо просто резолвер впн, если все совсем печально с узлом сокса.
Сталкивался с этим неоднократно на сканах. Если ты включИшь днскрипт после впн и перед носком, покажет резолвер, проставленный тобой в днскрипт (нормальные выбирать, ex: no filter, no logs, DNSSEC support. IPv4) даже при утечке.
 
Kodachi довольно широко распространен и очень часто рекомендуется для использования в качестве анонимной и безопасной системы:
https://xssforum7mmh3n56inuf2h73hvhnzobi7h2ytb3gvklrfqm7ut3xdnyd.onion/threads/57240/post-376661
https://xssforum7mmh3n56inuf2h73hvhnzobi7h2ytb3gvklrfqm7ut3xdnyd.onion/threads/93271/post-652776
https://xssforum7mmh3n56inuf2h73hvhnzobi7h2ytb3gvklrfqm7ut3xdnyd.onion/threads/66978/post-452650
https://xssforum7mmh3n56inuf2h73hvhnzobi7h2ytb3gvklrfqm7ut3xdnyd.onion/threads/57814/post-380641

Знать о таких нюансах будет явно не лишним тем, кто им пользуется, особенно новичкам, к тому же за 2 года в этом плане ничего не изменилось.
Kodachi - ориентированный на противодействие форензике.
Qubes - ориентированная на безопасность через изоляцию, виртуализацию.
TAILS - созданный для обеспечения приватности и анонимности.
Whonix - Предназначен для обеспечения анонимности. Его особенностью является то, что ни вредоносные программы, ни компрометация учётной записи суперпользователя не могут привести к утечкам IP-адреса и DNS.
Kali - Предназначен прежде всего для проведения тестов на безопасность.
забавно. я не первый год в интернете, но про этот болгенос впервые узнал из этого треда, хотя все остальные нижеперечисленные знаю уже давно.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх