Архив рубрики: Публикации

LibreOffice 7.4 уже выпущен, и это его новости

Открытие Document Foundation Недавно запуск новой версии ЛибреОфис 7.4, версия, в которой участвовало 147 разработчиков, из них 95 добровольцев. 72% изменений внесли сотрудники трех курирующих проект компаний: Collabora, Red Hat и Allotropia, а 28% изменений внесли независимые энтузиасты.

LibreOffice версии 7.4 с пометкой «Сообщество», он будет поддерживаться энтузиастами и не нацелен на бизнес. LibreOffice Community находится в свободном доступе без ограничений для всех без исключения, включая корпоративных пользователей.



Читать

🐳 Почему процессы в контейнерах Docker не должны запускаться от имени Root

Процессы в контейнере Docker не должны запускаться от имени root.

Безопаснее запускать приложения от имени пользователя, не являющегося root, которое вы указываете в Dockerfile или при использовании docker run.

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

В этой статье вы узнаете об опасностях, связанных с запуском контейнерных приложений от имени root.

Вы также увидите, как создать пользователя, не являющегося root, и настроить namespacing в ситуациях, когда это невозможно.

Почему запуск от имени Root опасен?

По умолчанию контейнеры запускаются от имени root.

Демон Docker запускается от имени root на вашем хосте, и запущенные контейнеры также будут запускаться от имени root.

Хотя может показаться, что root внутри контейнера является независимым пользователем, на самом деле это то же самое, что и учетная запись root на вашем хосте.

Разделение обеспечивается только механизмами изоляции контейнеров Docker.

Нет прочной физической границы; ваш контейнер – это еще один процесс, запущенный пользователем root на ядре вашего хоста.

Это означает, что уязвимость в вашем приложении, среде выполнения Docker или ядре Linux может позволить злоумышленникам выйти из контейнера и выполнить операции с правами root на вашей машине.

Существуют некоторые встроенные средства защиты, которые снижают риск возникновения такой ситуации.

Root внутри контейнера является непривилегированным и имеет ограниченные возможности. Это не позволяет контейнеру использовать команды системного администрирования, если вы вручную не добавите возможности или не используете привилегированный режим при запуске контейнеров.

Несмотря на эти меры, разрешение запуска приложений от имени root остается опасным.

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

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

Запуск контейнеризированных приложений от имени пользователя, не являющегося привилегированным пользователем

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

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

Вы должны создать новую учетную запись пользователя как один из последних этапов в вашем Dockerfile.

Этого можно добиться с помощью инструкции USER:

FROM base-image:latest

RUN apt install demo-package

USER demo-user:demo-group

ENTRYPOINT ["demo-binary"]

Контейнеры, запущенные с этого образа, будут работать под именем demo-user.

Пользователь будет членом группы demo-group.

Вы можете опустить имя группы, если вам не нужно, чтобы пользователь состоял в группе:

USER demo-user

Вместо имен можно указать идентификатор пользователя (UID) и идентификатор группы (GID):

USER 950:950

Выделение известных UID и GID обычно является самым безопасным способом.

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

USER часто указывается как предпоследняя ступень в Dockerfile.

Это означает, что вы все еще можете выполнять операции, требующие root, на более ранних этапах сборки образа.

Инструкция apt install в приведенном выше примере имеет законную потребность в root.

Если бы инструкция USER была размещена выше, apt был бы запущен от имени demo-user, который не имел бы необходимых прав.

Поскольку инструкции Dockerfile относятся только к сборкам образов, а не к запущенным контейнерам, безопасно оставить изменение пользователя на более поздний период в Dockerfile.

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

Установите права на все пути, которые будут использоваться вашим приложением:

COPY initial-config.yaml /data/config.yaml



USER demo-user:demo-group

RUN chown demo-user:demo-group /data

В этом примере каталог /data должен принадлежать demo-user, чтобы приложение могло вносить изменения в свой конфигурационный файл.

Предыдущий оператор COPY скопирует файл от имени root.

Можно воспользоваться сокращенным вариантом, используя флаг –chown вместе с copy:

COPY --chown=demo-user:demo-group initial-config.yaml /data/config.yaml

В этом примере каталог /data должен принадлежать demo-user, чтобы приложение могло вносить изменения в свой конфигурационный файл.

Предыдущий оператор COPY скопирует файл от имени root.

Можно воспользоваться сокращенным вариантом, используя флаг –chown вместе с copy:

$ docker run -d --user demo-user:demo-group demo-image:latest

$ docker run -d --user demo-user demo-image:latest

$ docker run -d --user 950:950 demo-image:latest

Флаг –user запускает процесс контейнера от имени указанного пользователя.

Он менее безопасен, чем инструкция Dockerfile USER, поскольку вам придется применять его отдельно к каждой команде docker run.

Лучшим вариантом для регулярно используемых образов является создание собственного производного образа, в котором можно установить новую учетную запись пользователя:

FROM image-that-runs-as-root:latest

USER demo-user

$ docker build . -t image-that-now-runs-as-non-root:latest

Изменение пользователя стороннего образа может вызвать проблемы: если контейнер ожидает запуска от имени root или нуждается в доступе к путям файловой системы, принадлежащим root, вы увидите ошибки при использовании приложения.

Вы можете попробовать вручную изменить права на пути, вызывающие проблемы.

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

Работа с приложениями, которые должны запускаться от имени root

Разделение имен пользователей – это техника работы с приложениями, которым нужны некоторые привилегии root.

Она позволяет сопоставить root внутри контейнера с пользователем, не являющимся root, на вашем хосте.

Имитированный root в контейнере имеет необходимые привилегии, но вынос не даст root-доступа на хост.

Ремаппинг пространства имен активируется путем добавления поля userns-remap в файл /etc/docker/daemon.json:

{

    "userns-remap": "default"

}

Использование default в качестве значения для userns-remap инструктирует Docker автоматически создать нового пользователя на вашем хосте под именем dockremap.

Root в контейнерах будет отображаться на dockremap на вашем хосте.

При желании можно указать существующего пользователя и группу, используя комбинацию UID/GID или имя пользователя/имя группы:

{

    "userns-remap": "demo-user"

}

Перезапустите демон Docker после применения изменений:

sudo service docker restart

Если вы используете nsuser-remap: default, пользователь dockremap теперь должен существовать на вашем хосте:

id dockremap
uid=140(dockremap) gid=119(dockremap) groups=119(dockremap)

Пользователь также должен появиться в файлах идентификаторов /etc/subuid и /etc/subgid:

$ dockremap:231500:65535

Пользователю выделен диапазон из 65 535 подчиненных идентификаторов, начиная с 231500.

В пространстве имен пользователей идентификатор 231500 сопоставлен с 0, что делает его корневым пользователем в ваших контейнерах.

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

Все запущенные вами контейнеры будут работать с измененным пространством имен пользователей, если вы не откажетесь от этого с помощью docker run –userns=host.

Механизм работает путем создания каталогов с разнесенными именами внутри /var/lib/docker, которые принадлежат подчиненным UID и GID пользователя с разнесенными именами:

$ sudo ls -l /var/lib/docker/231500.231500



total 14

drwx------ 5 231500 231500 13 Jul 22 19:00 aufs

drwx------ 3 231500 231500 13 Jul 22 19:00 containers

...

Сопоставление имен пользователей – это эффективный способ повысить изоляцию контейнеров, избежать выходов из них и сохранить совместимость с приложениями, которым требуются привилегии root.

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

Перед использованием этой опции следует изучить документацию.

Заключение

Запуск контейнерных приложений от имени root представляет собой риск для безопасности.

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

Root в контейнере – это тот же root, что и root на вашем хосте, поэтому успешная компрометация может обеспечить контроль над вашей машиной.

Как автор образа, вы должны включить инструкцию USER в свой Dockerfile, чтобы ваше приложение запускалось без root.

Пользователи образа могут отменить эту инструкцию с помощью docker run –user, чтобы назначить определенные UID и GID. Это поможет смягчить ситуацию, когда образ обычно использует root.

Вы можете еще больше усилить безопасность, удалив все возможности из контейнера с помощью –cap-drop=ALL, а затем включив в белый список те, которые необходимы, с помощью флагов –cap-add.

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

см. также:



2022-08-18T15:00:27
Закрытие уязвимостей

Обновление Windows 11 22H2 запланировано на 20 сентября

Согласно новой информации, полученной Заком Боуденом из Windows Central, следующее крупное обновление Microsoft для Windows 11 будет выпущено чуть более чем через месяц.

Ожидается, что выпуск под кодовым названием «Sun Valley 2» и обычно называемый версией 22H2 будет поставляться как сборка 22621 и включает в себя множество функций, отсутствовавших во флагманской операционной системе Microsoft с момента запуска.

Главным из них является возможность перетаскивать файлы в разные приложения, расположенные на панели задач. Такая простая функциональность присутствовала в большинстве версий Windows на протяжении многих лет, но в Windows 11 она разочаровывающе медленно появлялась.

Точно так же обновляется и меню «Пуск», чтобы предложить некоторые из тех же возможностей, что и в Windows 10, а это означает, что пользователи скоро смогут создавать папки приложений для группировки предпочтительных ярлыков. Диспетчер задач, возможно, увидит наиболее значительное визуальное обновление с поддержкой темного режима и сворачивающимся боковым меню, больше соответствующим остальной части ОС, в то время как ожидается, что настройки пользовательского интерфейса и новые мультитач-жесты будут присутствовать повсюду.

Приветствуются улучшения, но некоторые улучшения могут быть отложены. Сообщается, что часто обсуждаемое введение вкладок File Explorer было отложено до конца этого года, хотя на данный момент это просто предположение, и планы Microsoft могут измениться.

Там нет упоминания о конкретной оптимизации производительности для аппаратного обеспечения ПК следующего поколения — ожидается, что серия AMD Ryzen 7000 будет запущена всего через неделю вместе с анонсом процессоров Intel 13-го поколения — и пользователям не следует ожидать обновления 22H2 в первый день. В соответствии с предыдущими обновлениями Microsoft, скорее всего, выступит за постепенное развертывание в течение недель, если не месяцев.

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



2022-08-18T08:05:40
Microsoft

🕷️ Быстрый обзор: Уязвимость обхода пути

Уязвимость Path Traversal – это легко обнаруживаемая уязвимость в веб-приложении.

В OWASP Top 10 2022 она входит в раздел A1: Broken Access Control. 94 процента веб-приложений в той или иной форме имеют нарушенный контроль доступа, как отмечает OWASP.

Что такое уязвимость Обход пути?

Уязвимость обхода пути (Path Traversal) позволяет злоумышленникам обходить приложение для доступа к ограниченным файлам/каталогам сервера.

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

Атрибуты безопасности, атакуемые уязвимостью Path Traversal

  • Конфиденциальность – злоумышленник может получить доступ к конфиденциальным файлам/каталогам, используя эту уязвимость.
  • Целостность – Злоумышленник может создавать или вставлять файлы, каталоги, программы и т.д.
  • Доступность – злоумышленник может удалить важные файлы, программы, библиотеки и т.д. В результате критически важные данные могут быть недоступны для настоящих пользователей.

Каковы другие названия уязвимости Path Traversal?

  • Уязвимость обхода каталога
  • BackTracking
  • Точечный слеш
  • Проход по каталогам

Как обнаружить уязвимость?

Это достигается путем использования “./../../../../…” для доступа к файлам/каталогам в обход установленной защиты.

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

PunkSPIDER – поисковая система уязвимостей вэб приложений онлайн

Примеры уязвимости Path Traversal

Доступ к ограниченным ресурсам через манипулирование URL-адресом

Предположим, что веб-приложение показывает результаты экзаменов студентов, используя приведенную ниже схему URL:

https://test-website-url.com/loadResult?rollno=653748

Изначально веб-приложение запрашивало аутентификацию (имя пользователя и пароль), прежде чем показать результат.

Теперь злоумышленник просто пытается увидеть результаты экзамена других студентов, просто изменив регистрационный номер студента, как указано ниже.

https://test-website-url.com/loadResult?rollno=653745
https://test-website-url.com/loadResult?rollno=653746
https://test-website-url.com/loadResult?rollno=653747
https://test-website-url.com/loadResult?rollno=653744

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

Доступ к ограниченным файлам через обход путей

Некоторые веб-приложения не реализуют механизмы защиты от обхода серверных файлов.

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

https://test-website-url.com/loadResult?file=../../../etc/passwd

Устранение уязвимости

  • Наиболее эффективным способом устранения этой уязвимости является запрет на ввод данных пользователем. Если это невозможно, проверяйте вводимые пользователем данные перед их передачей в приложение.
  • По возможности используйте только те пути, которые необходимы (белый список).
  • Избегайте использования черного списка вводимых данных, поскольку его можно обойти с помощью подделки вводимых данных.
  • Используйте стандартный сканер уязвимостей перед развертыванием приложения в производственной среде.

см. также:

 



2022-08-17T10:27:25
Закрытие уязвимостей

The specifics of choosing the right professionals for temporary work

A temp recruitment agency helps companies hire IT professionals for short-term projects. Plus, it helps IT specialists to land remote or freelance jobs that won’t take 100% of their time. The approach to finding the right IT people in this case is different from looking for candidates for conventional office positions.

 

Who is the target audience of a temp recruitment agency?

Below, we’ll analyze which types of employers and job seekers might be interested in short-term jobs.

 

Companies

Large companies have HR departments and hire most of their staff members in full-time positions. Smaller businesses can’t afford to do so. Some of them lack the budget to hire full-time. Others begin to expand and don’t have enough work for in-house specialists — but they need someone to help them with current projects.

However, large organizations sometimes need temporary team members too. This might happen when they open new departments or experiment with unusual types of activity.

 

Workers

IT professionals might be interested in short-term jobs because they’re busy with their studies or families. Alternatively, they might be working for some company full-time but suddenly, realize that they can cope with more tasks. Or, people might urgently need money and they might be ready to increase their workload.

Temporary jobs offer an excellent opportunity for professionals who’re thinking of trying something new. For instance, you’ve completed a course and acquired new skills. Now, you’d like to put these skills to practice use but you’re not sure whether you want to turn it into your main occupation.

Besides, this type of hiring is a great chance for professionals who might be eager to relocate. If you’ve never worked with a foreign company, try joining a short-term project first.

 

The specifics of choosing the right professionals for temporary work

When picking candidates for a full-time position, companies assess their skills. It would be unreasonable to do so for a short-term project. The process of evaluating skills consumes too much time and effort.

Instead, it makes sense to focus on the employee’s portfolio. Did they complete any similar projects? If yes, how many? The more experienced the interviewer, the quicker they can detect the optimal professionals for this type of work.

 

Reasons for using our services

Our agency can come in handy to you because:

  1. We treat full-time jobs and short-term projects differently and we know how to hand-pick the best specialists for both.
  2. We verify all job offers.
  3. We have impressive expertise in the IT sphere.

Feel free to try our services!



2022-08-16T14:11:32
Работа

WireGuard VPN Setup in MikroTik RouterOS7 with Windows OS

VPN (Virtual Private Network) is one of the most popular services in MikroTik RouterOS. A lot of VPN services (IPsec, EoIP, OpenVPN, PPTP, L2TP, IPIP etc.) are available in MikroTik RouterOS but in RouterOS7, a new VPN service named WireGuard has been introduced which is extremely simple yet first, secure and modern VPN. WireGuard uses cryptography to make it secure.




In RouterOS7, WireGuard can be used either Client-Server (Road Warrior) VPN tunnel or site to site VPN tunnel. Using Client-Server WireGuard VPN tunnel, a Windows, Mac, Linux, iOS or Android user can be connected to his remote network and can access servers and other network devices as if he/she has be seated in that network. On the other hand, using site to site WireGuard VPN tunnel, two remote offices can always be connected across public network and can comminate with each other over this VPN tunnel.




In my previous article, I discussed how to configure MikroTik RouterOS 7 first time with step-by-step guideline. In this article, I will discuss how to configure Road Warrior WireGuard VPN tunnel in MikroTik RouterOS7 and then I will also discuss how to configure WireGuard Client in Window 10/11.




WireGuard Configuration in MikroTik RouterOS 7 (Road Warrior)




 To configure Client-Server WireGuard VPN tunnel with Windows client, we will follow the following network diagram.



WireGuard VPN in MikroTik RouterOS 7
WireGuard VPN in MikroTik RouterOS 7



In the above diagram, WireGuard VPN Server is configured in the office network. So, WireGuard client configured in Windows or Linux or Android device can be connected to the office network creating a secure WireGuard VPN tunnel and can access remote servers and other network devices securely.




We will now configure such an office network where WireGuard VPN Server will be configured in a MikroTik RouterOS 7 and a Windows client will connect to this WireGuard VPN Server to access remote servers and other network devices.




WireGuard VPN Configuration in MikroTik RouterOS 7




 WireGuard package is enabled by default in MikroTik RouterOS7. So, we don’t need to install it manually. We just need to setup WireGuard service. To configure WireGuard VPN for a Client-Server (Road Warrior) tunnel, follow the following steps.






  • Login to MikroTik RouterOS using Winbox with full access user permission.
  • From menu item, click on WireGuard. WireGuard window will appear.
  • Click on PLUS SIGN(+) to create a new WireGuard interface. New Interface window will appear.
  • Put an interface name in Name input field or you can keep the default name wireguard1.
  • In Listen Port input field, put 443 because we want to use 443 port which is usually not blocked. In MikroTik RouterOS7, the default WireGuard Listen Port is 13231. WireGuard works on UDP protocol because UDP is faster. On the other hand, TCP packets follow over TCP VPN tunnel makes performance issue. So, TCP is not used in WireGuard VPN tunnel.
  • Click Apply button. Public Key and Private Key will be generated as soon as you click the Apply button. The Public Key will be required when WireGuard client will be configured.
  • Click OK button.



WireGuard VPN Server Configuration in RouterOS7
WireGuard VPN Server Configuration in RouterOS7



WireGuard VPN service is now enabled in MikroTik RouterOS7. Now we will assign IP address on newly created WireGuard interface. To assign IP address on WireGuard Interface, issue the following steps.




  • From Winbox, go to IP > Addresses menu item. Address List window will appear.
  • Click PLUS SIGN (+). New Address window will appear.
  • In Address input field, put an IP address which you want. According to the network diagram, I am assigning 10.10.105.1/24. WireGuard clients will get IP address from this IP block.
  • From Interface dropdown menu, choose the created WireGuard interface (wireguard1).
  • Click Apply and OK button.



Assigning IP Address on WireGuard Interface
Assigning IP Address on WireGuard Interface



WireGuard VPN Server configuration in RouterOS7 has been completed. We will now download and install WireGuard Client in Windows 10/11.




Downloading and Installing WireGuard in Windows Operating System




As we are going to connect Windows OS to WireGuard VPN Server, we need to download and install WireGuard’s Windows application from WireGuard’s website.  So, go to WireGuard installation page and download the installer for Windows Operating System. At the time of writing this article, the installation page of WireGuard looks like the following image.



Downloading WireGuard Windows Installer
Downloading WireGuard Windows Installer



Installing WireGuard Windows installer is as simple as installing other Windows applications. So, download the Windows installer and make a double click on it. The WireGuard installer will do the rest of the work for you. After installing WireGuard in your Windows Operating System, it will start WireGuard service and open a new WireGuard window like the following image where it will ask to provide configuration either manually or importing any configuration file.



WireGuard Client in Windows Operating System
WireGuard Client in Windows Operating System



We will configure WireGuard tunnel here manually because MikroTik RouterOS does not provide any configuration file. So, from this window, click on Add Tunnel dropdown menu and then choose Add empty tunnel… option. Create new tunnel window will appear where we will provide all the options required to create WireGuard Tunnel.






In Create new tunnel window, put a name (example: wg1) for the tunnel in Name input field and then click Save button. You will also find generated Public Key and Private Key in this window. Among these two keys, the Public Key will be required to configure peer between WireGuard Server and Client.



Creating New Tunnel in WireGuard Windows Client
Creating New Tunnel in WireGuard Windows Client



Creating Peer Between WireGurad Server and Client




To create a VPN tunnel between Windows client and the RouterOS WireGuard Server, we need to configure WireGuard Peer. So, at first, we will configure peer in MikroTik RouterOS and then we will configure peer in WireGuard Windows client.




To configure WireGuard peer in MikroTik RouterOS, follow the following steps.




  • From WireGuard window, click on Peers tab and then click on PLUS SIGN (+). New WireGuard Peer window will appear.
  • In New WireGuard Peer window, choose WireGuard interface (wiregurad1) from Interface dropdown menu.
  • In Public Key input field, put the public key generated by the Windows client (with whom it will make peer).
  • In Allowed Address field, put the IP address (10.10.105.3/32) that will be assigned to the WireGuard Client.
  • Click Apply and OK button.




Peer configuration in MikroTik RouterOS has been completed. Now we will configure WireGuard Peer in Windows Client.






  • Open WireGuard client in Windows OS and select the WireGuard interface that was created before and then click on Edit button.
  • In Interface configuration, add two more properties (Address = 10.10.105.3/32 and DNS = 8.8.8.8). These two values will be assigned the WireGuard virtual interface. Change the IP values according to your network configuration.
  • Now add a new option named [Peer] and add these properties (PublicKey = y9uah2vvBg9nkBhovSA72Ji3C3LmMxoUab0dwhUwAy0= AllowedIPs = 0.0.0.0/0 Endpoint = 103.177.246.6:443 PersistentKeepalive = 10). Here, the Public Key is the Public Key of the RouterOS WireGuard, AllowedIPs will be the IPs those can access this client and by default it is 0.0.0.0/0 that means it can access any IP, the Endpoint property is very important and it will be the IP of the MikroTik RouterOS where WireGuard Server is enabled and the Port number, the PersistentKeepalive property keeps the tunnel active by checking the status of the tunnel every assigned time (seconds). 
  • Click the Save button to save the configuration.



WireGuard Peer Configuration between RouterOS and Windows Client App
WireGuard Peer Configuration between RouterOS and Windows Client App



Peer configuration between the WireGuard Server and Client has been completed. Now click the Activate button from the WireGuard client. If everything is OK, the tunnel will be created and you can access your remote servers and other network devices without any issue and the client window looks like the following image.



Connected WireGuard Client in Windows OS
Connected WireGuard Client in Windows OS



If you face any confusion to follow the above steps, watch the following video for step by step guideline.