<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Telefoncek.si</title>
    <description>Informacijska tehnologija, družba in človekove pravice.
</description>
    <link>https://telefoncek.si/</link>
    <atom:link href="https://telefoncek.si/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Thu, 11 Dec 2025 10:39:03 +0100</pubDate>
    <lastBuildDate>Thu, 11 Dec 2025 10:39:03 +0100</lastBuildDate>
    <generator>Jekyll v3.9.2</generator>
    
      <item>
        <title>Rootkits - how deep the rabbit hole is?</title>
        <description>&lt;p&gt;Rootkits are malicious software designed to gain unauthorized access to a computer system and hide their presence. Therefore attackers can use rootkits to conceal their presence on a compromised system and make it possible to return undetected at some later date.&lt;/p&gt;

&lt;p&gt;A rootkit usually hides by intercepting and altering communications at the interfaces between various system components, so rootkits are a form of man in the middle attack.&lt;/p&gt;

&lt;p&gt;Rootkits allow an attacker to maintain command and control over a system without the owner’s knowledge. Typically they enable remote file execution, system configuration changes, can log keystrokes or network activity and other forms of spying on user activities. If they are hidden in device or file system drivers, they can hide files, they can hide processes, disable security policies, etc.&lt;/p&gt;

&lt;p&gt;First generation rootkits just modified system files on the target system. Typical example was modified UNIX login program, that stole login credentials of a victim. Later rootkits started to modify static OS components and dynamic OS objects loaded in memory.&lt;/p&gt;

&lt;h1 id=&quot;bootkit&quot;&gt;Bootkit&lt;/h1&gt;

&lt;p&gt;Bootkit is a malware and specific type of rootkit, designed to infect a computer and to load their malicious code into memory before the operating system initializes. Bootkits usually target the system&apos;s bootloader, kernel boot files, &lt;strong&gt;Master Boot Record&lt;/strong&gt; (MBR), or &lt;strong&gt;Basic Input/Output System&lt;/strong&gt; (BIOS)/&lt;strong&gt;Unified Extensible Firmware Interface&lt;/strong&gt; (UEFI). By targeting the pre-boot environment, bootkits can bypass standard security measures and remain hidden. They often have the ability to survive reinstallation of an operating system, so they are hard to remove.&lt;/p&gt;

&lt;p&gt;Bootkits were popular in 1980s and 1990s, but the technology of bootkits is also implemented in various governmental and commercial remote surveillance tools (&lt;a href=&quot;https://www.cs.vu.nl/~herbertb/papers/bootkits_dimva2015.pdf&quot;&gt;“Nice Boots!” - A Large-Scale Analysis of Bootkits and New Ways to Stop
Them&lt;/a&gt;).&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2025/12/CIH_Chernobyl_virus.png&quot;&gt;
&lt;img src=&quot;/static/2025/12/CIH_Chernobyl_virus.png&quot; alt=&quot;CIH - Chernobyl virus&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
CIH - Chernobyl virus
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;The first bootkit was &lt;strong&gt;CIH (Chernobyl virus)&lt;/strong&gt;, which appeared in 1998. It was developed by a Taiwanese student Chen Ing-hau (hence the name CIH) and targeted Windows 9x systems. The malware corrupted the MBR and overwrote parts of the BIOS, rendering the system unbootable.&lt;/p&gt;

&lt;p&gt;Another known bootkit/computer virus was &lt;strong&gt;Stoned&lt;/strong&gt;. It was created in 1987 and infected computers by booting from an infected floppy disks (that was also the vector of its spreading).&lt;/p&gt;

&lt;p&gt;Around 2007 security researchers identified more advanced &lt;strong&gt;Alureon&lt;/strong&gt; bootkit (also known as &lt;strong&gt;TDSS&lt;/strong&gt; or &lt;strong&gt;TDL-4&lt;/strong&gt;), that
infected MBR of the computer and was used to intercept network traffic and to steal banking and other sensitive user data.&lt;/p&gt;

&lt;p&gt;In 2007 appeared &lt;strong&gt;IceLord&lt;/strong&gt; (also known as &lt;strong&gt;ICLord Bioskit&lt;/strong&gt;), which was the first BIOS based proof-of-concept bootkit. In 2011 the first BIOS bootkit appeared in the wild. It was called &lt;a href=&quot;https://www.webroot.com/blog/2011/09/13/mebromi-the-first-bios-rootkit-in-the-wild/&quot;&gt;&lt;strong&gt;Mebromi&lt;/strong&gt; and targeted Chinese computers&lt;/a&gt;. The first UEFI bootkit that was sold on cybercrime forums (&lt;strong&gt;BlackLotus&lt;/strong&gt;) was &lt;a href=&quot;https://www.bitdefender.com/en-us/blog/hotforsecurity/new-blacklotus-uefi-bootkit-for-windows-sold-on-cybercrime-forums&quot;&gt;discovered in 2022&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As mentioned, the technology of bootkits is often implemented in various governmental and commercial remote surveillance tools. One of the reasons is, that bootkits can be used to bypass encryption, typicaly by intercepting passwords or encryption keys entered during boot.&lt;/p&gt;

&lt;p&gt;This was shown by security researcher Joanna Rutkowska in her &lt;a href=&quot;https://theinvisiblethings.blogspot.com/2009/10/evil-maid-goes-after-truecrypt.html&quot;&gt;&lt;strong&gt;Evil Maid&lt;/strong&gt; proof-of-concept tool&lt;/a&gt; (developed in 2009), that targeted systems using TrueCrypt (version 6.x) full disk encryption software. The tool replaced the original bootloader with a malicious version, which logged the user&apos;s encryption passphrase when it was entered during the next legitimate boot.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Evil Maid attack&lt;/strong&gt; is a name of physical attack scenario where an attacker with physical access to a device (for instance laptop) manipulates it to compromise security, usually while the legitimate owner is absent. The name comes from the hypothetical scenario of a &quot;maid&quot; in a hotel tampering with a guest&apos;s computer. The mentioned application &lt;strong&gt;Evil Maid&lt;/strong&gt;, developed by Joanna Rutkowska, is a bootkit, that was developed to perform an Evil Maid attack against TrueCrypt. The
malware intercepted TrueCrypt&apos;s password that was typed in by the user, and stored it in a particular location on the disk and then passed it on to TrueCrypt. The attacker could later extract the stored password the next time they have physical access to the computer, &lt;a href=&quot;https://theinvisiblethings.blogspot.com/2009/10/evil-maid-goes-after-truecrypt.html&quot;&gt;thus bypassing encryption protection&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;According to some media reports, this is &lt;a href=&quot;https://www.telegraph.co.uk/news/worldnews/middleeast/israel/8514919/Mossad-car-ries-out-daring-London-raid-on-Syrian-official.html&quot;&gt;how the Israeli secret service obtained the access to the data on a computer of a Syrian diplomat&lt;/a&gt; who had left his computer unattended in a hotel room in London in 2006. The data obtained that way had proved that Syria was building the secret &lt;strong&gt;Al-Kibar nuclear facility&lt;/strong&gt; in the desert (in IAEA documents it is also referred as &lt;strong&gt;Dair Alzour&lt;/strong&gt;). The nuclear facility was subsequently bombed in &lt;strong&gt;Operation Orchard&lt;/strong&gt; (also known as &lt;strong&gt;Operation Outside the Box&lt;/strong&gt;) on September 6th 2007.&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2025/12/AlKibar.png&quot;&gt;
&lt;img src=&quot;/static/2025/12/AlKibar.png&quot; alt=&quot;Al Kibar facility - before and after bombing&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
Al Kibar facility - before and after bombing
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;From this we can clearly see how bootkits (and rootkits) could be utilized for cyberattacks and spying.&lt;/p&gt;

&lt;h1 id=&quot;how-deep-the-rootkit-can-go&quot;&gt;How deep the rootkit can go?&lt;/h1&gt;

&lt;p&gt;Rootkits can hide at different parts of the system, or, to be more specific, in different so called protection rings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Protection rings&lt;/strong&gt;, also called &lt;strong&gt;hierarchical protection domains&lt;/strong&gt;, are mechanisms to protect data and functionality from faults (by improving fault tolerance) and malicious behaviour.&lt;/p&gt;

&lt;p&gt;Rings in computer systems are arranged in a hierarchy from most privileged (most trusted, usually numbered zero) to least privileged (least trusted, usually with the highest ring number). On most operating systems, &lt;strong&gt;Ring 0&lt;/strong&gt; is the level with the most privileges and interacts most directly with the physical hardware.&lt;/p&gt;

&lt;p&gt;Computer operating systems provide different levels of access to resources, and correctly gating access between rings can improve security by preventing programs from one ring or privilege level from misusing resources intended for programs in another.&lt;/p&gt;

&lt;p&gt;Example, spyware running as a user program in &lt;strong&gt;Ring 3&lt;/strong&gt; should be prevented from turning on a web camera without informing the user, since hardware access is reserved for &lt;strong&gt;Ring 0&lt;/strong&gt; (&lt;strong&gt;kernel mode&lt;/strong&gt;).&lt;/p&gt;

&lt;p&gt;Modern operating systems are using only &lt;strong&gt;Ring 0&lt;/strong&gt; (&lt;strong&gt;kernel mode&lt;/strong&gt;) and &lt;strong&gt;Ring 3&lt;/strong&gt; (&lt;strong&gt;user mode&lt;/strong&gt;). However, there are even lower rings, that - if attacked - could compromise the entire systems (operating system and user applications). So let&apos;s take a look into the different levels of rootkits to see how stealthy they could get.&lt;/p&gt;

&lt;h2 id=&quot;ring-3-rootkits&quot;&gt;Ring 3 rootkits&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Ring 3 rootkits&lt;/strong&gt;, also called &lt;strong&gt;user mode rootkits&lt;/strong&gt; are running at the user-space level. They run with the lowest level of privileges within the operating system and can perform a damage at the user space of the infected user.&lt;/p&gt;

&lt;h3 id=&quot;ring-3-rootkits-mitigation&quot;&gt;Ring 3 rootkits mitigation&lt;/h3&gt;

&lt;p&gt;Since Ring 3 rootkits do not have kernel-level access they are easier to detect and remove. Good strategy against this malicious software is &lt;strong&gt;application sandboxing&lt;/strong&gt; (in order to minimize damage within the infected user space) and &lt;strong&gt;regular backuping/snapshoting of the complete user space&lt;/strong&gt; in order to prevent complete data loss.&lt;/p&gt;

&lt;p&gt;Also, good strategy of a user could be to use different isolated environments for different tasks. For instance, for web browsing user should use one isolated environment, for banking another, and so on. So in case web browsing environment gets compromised, infection is limited to this environment only and would not affect environment used for online banking.&lt;/p&gt;

&lt;h2 id=&quot;ring-0-rootkits&quot;&gt;Ring 0 rootkits&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Ring 0 rootkits&lt;/strong&gt;, known also as &lt;strong&gt;kernel mode rootkits&lt;/strong&gt; reside in the core of the operating system (so called &lt;strong&gt;kernel space&lt;/strong&gt;). They have the highest level of privileges &lt;strong&gt;within the operating system&lt;/strong&gt;. They are usually hard to remove, since they operate at the highest privilege level (Ring 0) and could be deeply integrated into the operating system.&lt;/p&gt;

&lt;p&gt;They can &lt;strong&gt;hide&lt;/strong&gt; files, processes, or network activity and &lt;strong&gt;modify&lt;/strong&gt; system calls. Often the removal requires specialized tools or &lt;strong&gt;reinstalling&lt;/strong&gt; the complete operating system.&lt;/p&gt;

&lt;h3 id=&quot;ring-0-rootkits-mitigation&quot;&gt;Ring 0 rootkits mitigation&lt;/h3&gt;

&lt;p&gt;However, good strategy against this malicious software is running the operating system in virtual compartment and to use different isolated environments for different tasks. Additionally, if system enables virtual machine level snapshots, that can assure that the whole system could be easily returned to a last known good state.&lt;/p&gt;

&lt;p&gt;In that case virtualisation technology provides the &lt;strong&gt;isolation of different virtual machines&lt;/strong&gt;. One example of solution against that type of threats is provided by &lt;strong&gt;QubesOS.&lt;/strong&gt; QubesOS is a security focused desktop operating system that provide security and segmentation of applications through isolation with virtualization services.&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2025/12/QubesOS1.png&quot;&gt;
&lt;img src=&quot;/static/2025/12/QubesOS1.png&quot; alt=&quot;QubesOS architecture&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
QubesOS architecture
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;In QubesOS, the user has several isolated environments, which are used for different tasks. If one of the virtual compartments gets compromised, the malicious software would get access to only the data and applications inside that environment. Isolation is provided by hardware controllers (some virtual compartments can have limited access to the hardware, for instance to microphone or camera), and with virtualisation, where the user&apos;s digital life is divided into security domains with different levels of trust. Unfortunately, QubesOS is quite complex and is less suitable for regular users, because it has quite steep learning curve.&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2025/12/QubesOS2.png&quot;&gt;
&lt;img src=&quot;/static/2025/12/QubesOS2.png&quot; alt=&quot;QubesOS&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
QubesOS
&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id=&quot;ring--1-rootkits&quot;&gt;Ring -1 rootkits&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Ring -1 rootkits&lt;/strong&gt;, also known as &lt;strong&gt;hypervisor rootkits&lt;/strong&gt; operate at the hypervisor level, below the operating system. &lt;a href=&quot;https://en.wikipedia.org/wiki/Hypervisor&quot;&gt;Hypervisor&lt;/a&gt; is a software code used to run and manage one or more virtual machines on a computer. Because they run at a privilege level higher than the operating system&apos;s kernel, they are called Ring -1.&lt;/p&gt;

&lt;p&gt;Those rootkits exploit virtualization features in modern CPUs to run the rootkit as a hypervisor beneath the operating system. Usually they can &lt;strong&gt;intercept and manipulate hardware-level instructions and can virtualize the operating system to control it entirely&lt;/strong&gt;. Basically they create virtual environment and confine operating system into it, while the compromised operating system believes it is running directly on the hardware. They are extremely challenging to detect (and remove), because they can manipulate the operating system from outside its own context.&lt;/p&gt;

&lt;p&gt;In 2006, a Polish security researcher &lt;strong&gt;Joanna Rutkowska&lt;/strong&gt; conceptualized Ring-1 malware, called &lt;a href=&quot;https://blog.invisiblethings.org/2006/08/12/blue-pill-detection.html&quot;&gt;&lt;strong&gt;Blue Pill&lt;/strong&gt;&lt;/a&gt;. It exploited virtualization extension &lt;a href=&quot;https://en.wikipedia.org/wiki/X86_virtualization#AMD_virtualization_(AMD-V)&quot;&gt;AMD-V&lt;/a&gt; to act as a hypervisor, and was able to place the operating system in a virtualized environment without the operating system being aware of it. While operating system thinks it is operating on bare-metal hardware, in reality, it&apos;s running in a hypervisor and is being being monitored and manipulated by the &lt;strong&gt;Blue Pill rootkit&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;While &lt;strong&gt;Blue Pill&lt;/strong&gt; initially used AMD-V virtualisation extension, other researchers (for instance, &lt;strong&gt;Dino Dai Zovi&lt;/strong&gt;, also in 2006) has shown, that &lt;a href=&quot;https://en.wikipedia.org/wiki/X86_virtualization#Intel_virtualization_(VT-x)&quot;&gt;Intel VT-x&lt;/a&gt; virtualisation
extension &lt;a href=&quot;https://www.blackhat.com/presentations/bh-usa-06/BH-US-06-Zovi.pdf&quot;&gt;could also be exploited&lt;/a&gt;. Similarly, researchers from &lt;strong&gt;Microsoft&lt;/strong&gt; and the &lt;strong&gt;University of Michigan&lt;/strong&gt; in 2006 developed a proof-of-concept malware designed as a virtualization-based rootkit, called &lt;a href=&quot;https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/subvirt.pdf&quot;&gt;&lt;strong&gt;SubVirt&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;ring--1-rootkits-mitigation&quot;&gt;Ring -1 rootkits mitigation&lt;/h3&gt;

&lt;p&gt;One solution against Ring-1 rootkits is to &lt;strong&gt;disable hardware virtualization in BIOS/UEFI&lt;/strong&gt;, however in that case user will be limited running virtual environments on their system.&lt;/p&gt;

&lt;p&gt;Another solution is to use &lt;strong&gt;trusted boot mechanisms&lt;/strong&gt;. Those mechanisms perform hypervisor integrity checks (by verifying its cryptographic signature) and can help to ensure that unauthorized hypervisors cannot load during the boot process. Those mechanisms are provided by the open source BIOS/UEFI project called &lt;strong&gt;Dasharo&lt;/strong&gt; (with &lt;strong&gt;Heads payload&lt;/strong&gt;), however more about that will be explained later.&lt;/p&gt;

&lt;h2 id=&quot;ring--2-rootkits&quot;&gt;Ring -2 rootkits&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Ring -2 rootkits&lt;/strong&gt; are a mix of so called &lt;strong&gt;SMM rootkits&lt;/strong&gt; and &lt;strong&gt;BIOS/UEFI bootkits&lt;/strong&gt; (also called &lt;strong&gt;UEFI implants&lt;/strong&gt;). Usually Ring-2 rootkits utilize SMM and UEFI compromise. While SMM rootkits operate dynamically within the CPU’s SMM environment they usually use UEFI rootkit technology to embedd malicious code in the firmware layer to achieve persistence.&lt;/p&gt;

&lt;p&gt;It also needs to be noted, that SMM and UEFI contain security vulnerabilities (for instance some SMM&apos;s contained complete USB stack), which is briefly explained by Ron Minnich in his talk &lt;a href=&quot;https://www.youtube.com/watch?v=iffTJ1vPCSo&quot;&gt;Replace Your Exploit-Ridden Firmware with Linux&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;smm-rootkits&quot;&gt;SMM rootkits&lt;/h3&gt;

&lt;p&gt;SMM rootkits run at the &lt;a href=&quot;https://en.wikipedia.org/wiki/System_Management_Mode&quot;&gt;System Management Mode (SMM)&lt;/a&gt;. SMM operates in a protected memory space called SMRAM (&lt;strong&gt;System Management RAM&lt;/strong&gt;), which is inaccessible to the operating system and most security tools. SMM is &lt;strong&gt;the most privileged mode&lt;/strong&gt; in the modern x86_64 processors. It gives an execution environment with full access to every (physical) resource of the computer. In addition, SMM is a &lt;strong&gt;non-pre-emptive mode&lt;/strong&gt; meaning that it cannot be interrupted by normal hardware/software interrupts. &lt;a href=&quot;https://jussihi.kapsi.fi/2022-09-08-smmrootkit/&quot;&gt;This allows completely stealth code execution from the execution context of the operating system&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;SMM has its own private memory space and execution environment which is generally invisible to the outside environment (operating system) and is immune to memory protection mechanisms. Since SMM can directly interact with hardware, it is bypassing the operating system and hypervisors. Therefore SMM rootkits &lt;strong&gt;can remain persistent across reboots&lt;/strong&gt; because they are embedded in firmware or manipulate SMRAM configurations, which are reloaded during system startup. SMM rootkits are often not persistent on its own and usually utilize UEFI compromise to gain persistance.&lt;/p&gt;

&lt;p&gt;In 2005 &lt;strong&gt;Sherri Sparks&lt;/strong&gt; and &lt;strong&gt;Jamie Butler&lt;/strong&gt; &lt;a href=&quot;https://www.blackhat.com/presentations/bh-jp-05/bh-jp-05-sparks-butler.pdf&quot;&gt;presented a proof of concept SMM rootkit &lt;strong&gt;Shadow Walker&lt;/strong&gt;&lt;/a&gt;, which demonstrated that it was possible to control the view of memory regions seen by the operating system and other processes. &lt;strong&gt;Shadow Walker&lt;/strong&gt; was &lt;a href=&quot;https://www.eecs.ucf.edu/~czou/research/SMM-Rootkits-Securecom08.pdf&quot;&gt;capable of hiding both its own code and changes to operating system&apos;s components and was able to fool both signature and heuristic based 
scans&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In 2008 &lt;strong&gt;Shawn Embleton&lt;/strong&gt;, &lt;strong&gt;Sherri Sparks&lt;/strong&gt; and &lt;strong&gt;Cliff Zou&lt;/strong&gt; presented their development of a proof-of-concept SMM rootkit (see: &lt;a href=&quot;https://dl.acm.org/doi/abs/10.1145/1460877.1460892&quot;&gt;SMM rootkits: a new breed of OS independent malware&lt;/a&gt;. They implemented a chipset level keylogger and a network backdoor capable of directly interacting with the network card to send logged keystrokes to a remote machine via UDP. The rootkit was able to hide its memory footprint and requires no changes to the existing operating system (i. e. was OS independent).&lt;/p&gt;

&lt;p&gt;There is also an interesting proof-of-concept demonstration by &lt;strong&gt;Jussi Hietanen&lt;/strong&gt; how injecting shellcode to a Ring0/Ring3 context that can be achieved from the SMM (described in the article &lt;a href=&quot;https://github.com/jussihi/SMM-Rootkit&quot;&gt;System Management Mode (SMM) rootkit&lt;/a&gt;. The rootkit&apos;s capability was to infect a Windows usermode process, access the full memory space and persist between OS reinstalls.&lt;/p&gt;

&lt;h3 id=&quot;biosuefi-rootkits&quot;&gt;BIOS/UEFI rootkits&lt;/h3&gt;

&lt;p&gt;Another class of Ring -2 rootkits is called &lt;strong&gt;BIOS/UEFI rootkits&lt;/strong&gt;, because they specifically target the BIOS (&lt;strong&gt;Basic Input/Output System&lt;/strong&gt;) or its modern equivalent, UEFI (&lt;strong&gt;Unified Extensible Firmware Interface&lt;/strong&gt;).&lt;/p&gt;

&lt;p&gt;As mentioned on the beginning, the first rootkit/bootkit targeting BIOS was &lt;strong&gt;CIH (Chernobyl virus)&lt;/strong&gt; in 1998, and in 2007 a Chinese researcher know under nickname &lt;strong&gt;icelord&lt;/strong&gt; developed proof-of-concept bootkit &lt;a href=&quot;http://www.vxjump.net/files/seccon/bktrend.pdf&quot;&gt;ICLord Bioskit&lt;/a&gt; that has demonstrated that BIOS rootkits were feasible and powerful. Another interesting proof-of-concept firmware rootkit was developed in 2012 by security researcher &lt;a href=&quot;https://www.blackhat.com/html/bh-us-12/bh-us-12-briefings.html#Brossard&quot;&gt;&lt;strong&gt;Jonathan Brossard&lt;/strong&gt;, which presented &lt;strong&gt;Rakshasa&lt;/strong&gt;&lt;/a&gt;, that &lt;a href=&quot;https://www.darkreading.com/vulnerabilities-threats/black-hat-researcher-demonstrates-hardware-backdoor&quot;&gt;was able to persist in UEFI/BIOS firmware&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Probably the first known &lt;strong&gt;Ring -2 rootkit&lt;/strong&gt; used in the wild was &lt;a href=&quot;https://www.theregister.com/2011/09/14/bios_rootkit_discovered/&quot;&gt;&lt;strong&gt;Mebromi&lt;/strong&gt;, discovered in 2011&lt;/a&gt;, that targeted mostly the computers in China.&lt;/p&gt;

&lt;p&gt;Notable research on UEFI rootkits has also been &lt;a href=&quot;https://web.archive.org/web/20141020143936/http://news.saferbytes.it/analisi/2012/09/uefi-technology-say-hello-to-the-windows-8-bootkit/&quot;&gt;done by Andrea Allievi in 2012&lt;/a&gt;, who developed one of the first UEFI bootkit concepts (for Windows 8). Also, in 2013, Sebastien Kaczmarek from Quakerslabs &lt;a href=&quot;https://web.archive.org/web/20140330021325/https://www.quarkslab.com/dl/13-04-hitb-uefi-dreamboot.pdf&quot;&gt;presented Dreamboot)&lt;/a&gt;, which was also Windows 8 x64 experimental bootkit (however Andrea Allievi later &lt;a href=&quot;https://github.com/AaLl86/retroware?tab=readme-ov-file&quot;&gt;accused Quakerslabs that they stolen the project&lt;/a&gt; in the year 2013 without mentioning him.&lt;/p&gt;

&lt;p&gt;Rootkit/bootkit technology is often used by government spying tools. One of the fist known examples of that thype of rootkit was used by the &lt;a href=&quot;https://en.wikipedia.org/wiki/HackingTeam&quot;&gt;&lt;strong&gt;Hacking Team group&lt;/strong&gt;&lt;/a&gt;, which infected UEFI/BIOS to keep their malware tool called &lt;strong&gt;Remote Control System&lt;/strong&gt; persistently installed in their targets’ systems. It was first discovered in 2015. (Just a sidenote - Hacking Team Group was trying to sell their malware to &lt;a href=&quot;https://slo-tech.com/novice/t647903/0&quot;&gt;the Slovenian police&lt;/a&gt; and &lt;a href=&quot;https://slo-tech.com/novice/t649095&quot;&gt;secret service&lt;/a&gt;). Similar tool, &lt;a href=&quot;https://slo-tech.com/novice/t566153&quot;&gt;&lt;strong&gt;FinSpy&lt;/strong&gt; (also known as &lt;strong&gt;FinFisher&lt;/strong&gt; or &lt;strong&gt;Wingbird&lt;/strong&gt;)&lt;/a&gt;, is also used for cybersepionage. It is being used at least from 2011, but &lt;a href=&quot;https://www.kaspersky.com/about/press-releases/finfisher-spyware-improves-its-arsenal-with-four-levels-of-obfuscation-uefi-infection-and-more&quot;&gt;in 2021 thy employed UEFI bootkit technology&lt;/a&gt; to preserve&lt;/p&gt;

&lt;p&gt;In 2021 security researcher by Kaspersky discovered &lt;strong&gt;MoonBounce&lt;/strong&gt; rootkit, that &lt;a href=&quot;https://securelist.com/moonbounce-the-dark-side-of-uefi-firmware/105468/&quot;&gt;injected its malicious code into the SPI flash chip on computer motherboard&lt;/a&gt;, targeting UEFI firmware. This means that the rootkit does not leave any traces on a hard drive, and is capable of persisting in the system even if disk is formatted or even replaced. It is linked to Chinese APT41 hacker group and is used for cyberespionage.&lt;/p&gt;

&lt;p&gt;Probably the most known Ring -2 rootkit used for cyberespionage in the wild is &lt;a href=&quot;https://www.trendmicro.com/vinfo/us/security/news/cyber-attacks/lojax-uefi-rootkit-used-in-cyberespionage&quot;&gt;&lt;strong&gt;LoJax&lt;/strong&gt;&lt;/a&gt;. It was discovered by security researchers from ESET in 2018. LoJax embedded itself into UEFI firmware to execute at system startup and was operating in SMM, bypassing OS-level detection. LoJax can persist in the UEFI even if the operating system is reinstalled or its hard drives are replaced. When infection is successful, attackers can use LoJax to track the system&apos;s location, remotely access the system and install additional malware on it. The researchers found out, that LoJax was - similar to Hacking Team&apos;s malware - used for cyberespionage.&lt;/p&gt;

&lt;p&gt;Researchers found out that LoJax targeted organizations in the Balkans and countries in Central and Eastern Europe.&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2025/12/Mac_EFI_Rootkit.png&quot;&gt;
&lt;img src=&quot;/static/2025/12/Mac_EFI_Rootkit.png&quot; alt=&quot;Mac EFI Rootkit&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
Mac EFI Rootkit
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;UEFI bootkit concept that could be applied to various operating systems, but those rootkits in the past mostly targeted Windows systems. Not exclusively, because in 2012 a security researcher Loukas K., &quot;snare&quot;, presented Mac EFI rootkit (&lt;a href=&quot;https://media.blackhat.com/bh-us-12/Briefings/Loukas_K/BH_US_12_LoukasK_De_Mysteriis_Dom_Jobsivs_Slides.pdf&quot;&gt;DE MYSTERIIS DOM JOBSIVS:\ MAC EFI ROOTKITS&lt;/a&gt;). And in 2017 Wikileaks published information about CIA&apos;s Vault 7 hacking tools, containing &lt;a href=&quot;https://www.bleepingcomputer.com/news/security/intel-security-mcafee-releases-rootkit-scanner-following-vault-7-cia-leak/&quot;&gt;Mac OS X EFI implant, &lt;strong&gt;QuarkMatter&lt;/strong&gt;&lt;/a&gt; (&lt;strong&gt;QuarkMatter&lt;/strong&gt; used an EFI driver stored on the EFI system partition to provide persistence to an arbitrary kernel implant.).&lt;/p&gt;

&lt;p&gt;However in 2024 the first UEFI bootkit designed for Linux systems appeared, named &lt;a href=&quot;https://www.welivesecurity.com/en/eset-research/bootkitty-analyzing-first-uefi-bootkit-linux/&quot;&gt;&lt;strong&gt;Bootkitty&lt;/strong&gt;&lt;/a&gt;. It was a proof of concept tool that &lt;a href=&quot;https://eclypsium.com/blog/bootkitty-linux-bootkit/&quot;&gt;disables the kernel’s signature verification feature&lt;/a&gt; to load unsigned boot code. But it has to be noted, that &lt;strong&gt;Bootkitty&lt;/strong&gt; was not the first rootkit capable of bypassing UEFI Secure Boot mechanism. The first one was &lt;a href=&quot;https://www.bitdefender.com/en-us/blog/hotforsecurity/new-blacklotus-uefi-bootkit-for-windows-sold-on-cybercrime-forums&quot;&gt;&lt;strong&gt;BlackLotus&lt;/strong&gt;, discovered in 2022&lt;/a&gt;, which integrated Secure Boot bypass and is probably the first UEFI rootkit that was &quot;commercially&quot; sold on cybercrime forums. It also implemented several detection evasion features, for instance code obfuscation, anti-virtualization, disabling &lt;strong&gt;Windows Defender&lt;/strong&gt; antivirus software, bypassing User Account Control (UAC), etc.&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2025/12/CVE-2024-7344.png&quot;&gt;
&lt;img src=&quot;/static/2025/12/CVE-2024-7344.png&quot; alt=&quot;SecureBoot bypassing - CVE 2024-7344&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
SecureBoot bypassing - CVE 2024-7344
&lt;/p&gt;
&lt;/div&gt;

&lt;h3 id=&quot;ring--2-rootkits-mitigation&quot;&gt;Ring -2 rootkits mitigation&lt;/h3&gt;

&lt;p&gt;Ring -2 rootkits are very difficult to detect, because they are firmware-level and they operate independently of the OS. Usually they require firmware reflashing or even physical replacement of the hardware.&lt;/p&gt;

&lt;p&gt;However, there are some more practical mitigation techniques, and that is &lt;strong&gt;to enable hardware protections&lt;/strong&gt; like &lt;strong&gt;BIOS lock&lt;/strong&gt; (a security feature designed to prevent unauthorized access when the computer is booting) and &lt;strong&gt;SMM lock&lt;/strong&gt; (hardware protection to prevent unauthorized access to SMRAM). Using &lt;strong&gt;Secure Boot&lt;/strong&gt; to prevent unauthorized firmware or bootloader modifications is also an option, however some rootkits (for instance BlackLotus and Bootkitty) can bypass Secure Boot protection. Another option is also to &lt;strong&gt;prevent physical access to the system&lt;/strong&gt;, because BIOS/UEFI rootkits could also be installed via direct hardware access (this requires special hardware device called &lt;strong&gt;BIOS firmware programmer&lt;/strong&gt;).&lt;/p&gt;

&lt;p&gt;Unfortunately, security researchers &lt;a href=&quot;https://www.youtube.com/watch?v=NqQI3nr1dqk&quot;&gt;found several vulnerabilities in closed source BIOS firmware code&lt;/a&gt;. One of the main problems is, that &lt;strong&gt;Secure Boot&lt;/strong&gt; and &lt;strong&gt;Intel Trusted Boot&lt;/strong&gt; in traditional BIOS&apos;es are vulnerable to &lt;strong&gt;rollback attack&lt;/strong&gt;. While updating BIOS requires that firmware code is digitally signed with a valid signature, an attacker can install one of the previous official versions of the BIOS firmware (with valid digital signature), but this old version contain security vulnerabilities that could be exploited. There are also known UEFI vulnerabilities that could be exploited (for instance &lt;a href=&quot;https://www.binarly.io/blog/the-far-reaching-consequences-of-logofail&quot;&gt;LogoFAIL attack&lt;/a&gt;). And in 2024 security researchers found out, that &lt;a href=&quot;https://arstechnica.com/security/2024/07/secure-boot-is-completely-compromised-on-200-models-from-5-big-device-makers/&quot;&gt;Secure Boot was completely compromised on more than 200 device models sold by Acer, Dell, Gigabyte, Intel, and Supermicro&lt;/a&gt;, because someone mistakenly published the cryptographic key that forms the root-of-trust anchor between the hardware device and the firmware that runs on it (so called &lt;strong&gt;platform key&lt;/strong&gt;). This was another warning that BIOS/UEFI code is not under the control of the user, and that the users must trust the vendor in order to trust their systems.&lt;/p&gt;

&lt;p&gt;Fortunately there is a solution for that. The open source BIOS/UEFI project &lt;strong&gt;Dasharo&lt;/strong&gt; with so called &lt;strong&gt;Heads payload&lt;/strong&gt;, incorporates several measures to protect against SMM rootkits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dasharo&lt;/strong&gt; ensures that &lt;strong&gt;System Management RAM (SMRAM)&lt;/strong&gt;, where SMM code executes, is &lt;strong&gt;locked down&lt;/strong&gt; during the boot process. It has an option to &lt;strong&gt;enable SMM BIOS write protection&lt;/strong&gt;. When this is enabled, it allows only SMM code (the privileged code installed by the firmware in the system memory) to write to BIOS flash. It has implemented &lt;strong&gt;BIOS/UEFI lock&lt;/strong&gt; to lock down the firmware after boot, preventing modifications by unauthorized software and has implemented &lt;strong&gt;Secure Boot&lt;/strong&gt; and &lt;strong&gt;Measured Boot&lt;/strong&gt; to detect unauthorized changes to firmware and SMM code (and also operating system&apos;s boot scripts!) and with the help of external hardware security module.&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2025/12/Dasharo_TOTP.png&quot;&gt;
&lt;img src=&quot;/static/2025/12/Dasharo_TOTP.png&quot; alt=&quot;Dasharo with TOTP&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
Dasharo with TOTP
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Dasharo&lt;/strong&gt; with &lt;strong&gt;Heads payload&lt;/strong&gt; boot firmware and software suite uses a combination of the &lt;strong&gt;Trusted Platform Module&lt;/strong&gt; (TPM), &lt;strong&gt;Time-based One-Time Passwords&lt;/strong&gt; (TOTP), and &lt;strong&gt;HMAC-based One-Time Passwords&lt;/strong&gt; (HOTP) to provide enhanced system integrity verification and secure authentication. Verification of the system could be done with external hardware security module (small USB device), which verifies system&apos;s firmware, kernel, and bootloader, and provides a visual confirmation of the verification status.&lt;/p&gt;

&lt;h2 id=&quot;ring--3-rootkits&quot;&gt;Ring -3 rootkits&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Ring -3 rootkits&lt;/strong&gt; operate in the &lt;strong&gt;Management Engine&lt;/strong&gt; (ME) or &lt;strong&gt;Platform Controller Hub&lt;/strong&gt; (PCH) firmware, such as &lt;strong&gt;Intel&apos;s Management Engine&lt;/strong&gt; (ME) or &lt;strong&gt;AMD&apos;s Platform Security Processor&lt;/strong&gt; (PSP). These are embedded microcontrollers within the CPU chipset, designed for out-of-band system management and security features. Since those rootkits reside in firmware, they are also called &lt;strong&gt;firmware rootkits&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;While Ring -2 rootkits exploit SMRAM and SMI (&lt;strong&gt;System Management Interrupts&lt;/strong&gt;) vulnerabilities, Ring -3 rootkits relies on firmware in chipset microcontrollers (for instance &lt;strong&gt;Management Engine&lt;/strong&gt;). They can access host memory via DMA (direct memory access), they can directly access network interface, can boot the system from the emulated CDROM and are active even in so called S3 sleep (&lt;strong&gt;System Power State S3&lt;/strong&gt;).&lt;/p&gt;

&lt;p&gt;Ring -3 rootkit concept was first presented in 2009 by &lt;strong&gt;Alexander Tereshkin&lt;/strong&gt; and &lt;strong&gt;Rafal Wojtczuk&lt;/strong&gt; in a presentation &lt;a href=&quot;https://invisiblethingslab.com/resources/bh09usa/Ring%20-3%20Rootkits.pdf&quot;&gt;Introducing Ring -3 Rootkits&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The presented that many Intel vPro chipsets have an independent CPU, access to dedicated DRAM memory, special interface to the network card and execution environment called &lt;strong&gt;Management Engine (ME)&lt;/strong&gt;. Also, they found that the &lt;strong&gt;Intel Q35&lt;/strong&gt; chipset has also a standalone web server. So this chipset is a little computer, that can execute programs independently from the main CPU.&lt;/p&gt;

&lt;p&gt;Researchers have shown, that &lt;strong&gt;Intel ME&lt;/strong&gt; and similar technologies could be exploited. Intel &lt;strong&gt;Active Management Technology&lt;/strong&gt; (AMT) is a technology for remote management of computers and is running on the Intel Management Engine.&lt;/p&gt;

&lt;p&gt;One of the first research on the security of Intel&apos;s AMT was published in &lt;strong&gt;Vassilios Ververis&apos;&lt;/strong&gt; master thesis titled &lt;a href=&quot;https://people.kth.se/~maguire/DEGREE-PROJECT-REPORTS/100402-Vassilios_Ververis-with-cover.pdf&quot;&gt;Security Evaluation of Intel’s Active Management Technology&lt;/a&gt; in 2010. &lt;strong&gt;Ververis&lt;/strong&gt; described several fundamental security weaknesses in Intel&apos;s AMT that allow the attacker to remotely control the target machine (over the Internet or a mesh networking) and enables the installation and control of a botnet on the hardware level.&lt;/p&gt;

&lt;p&gt;in 2017 &lt;strong&gt;Mark Ermolov&lt;/strong&gt; and &lt;strong&gt;Maxim Goryachy&lt;/strong&gt; presented a talk titled &lt;a href=&quot;https://www.blackhat.com/docs/eu-17/materials/eu-17-Goryachy-How-To-Hack-A-Turned-Off-Computer-Or-Running-Unsigned-Code-In-Intel-Management-Engine.pdf&quot;&gt;How to Hack a Turned-Off Computer, or Running Unsigned Code in Intel Management Engine&lt;/a&gt;, where they have shown how to execute unsigned code even on a powered-down system by exploiting Intel ME.&lt;/p&gt;

&lt;p&gt;The critical vulnerabiliy in Intel ME, &lt;a href=&quot;https://www.exploit-db.com/docs/english/48226-manually-exploiting-intel-amt-vulnerability-cve-2017-5689-%5Bpaper%5D.pdf&quot;&gt;CVE 2017-5689 - Manually Exploiting Intel AMT Vulnerability&lt;/a&gt; (also see &lt;a href=&quot;https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00086.html&quot;&gt;Intel-SA-00086&lt;/a&gt; advisory) from 2017 allowed an attacker to gain system privileges remotely (through the Internet). This vulnerability was also known under nickname &quot;&lt;strong&gt;Silent Bob is Silent&lt;/strong&gt;&quot; and was present in Intel CPUs &lt;a href=&quot;https://www.zdnet.com/article/intel-amt-vulnerability-hits-business-chips-from-2008-onwards/&quot;&gt;from 2008&lt;/a&gt; (9 years).&lt;/p&gt;

&lt;p&gt;In June 2017, the &lt;a href=&quot;https://www.bleepingcomputer.com/news/security/malware-uses-obscure-intel-cpu-feature-to-steal-data-and-avoid-firewalls/&quot;&gt;cybercrime group PLATINUM started to exploit Intel&apos;s AMT Serial-over-LAN functionality&lt;/a&gt;, which allows them to remotely access computers, bypassing the host operating system and its firewalls. The cybercrime group exploited AMT to perform data exfiltration of stolen documents.&lt;/p&gt;

&lt;p&gt;Also, in June 2022, the &lt;a href=&quot;https://en.wikipedia.org/wiki/Wizard_Spider&quot;&gt;Wizard Spider ransomware group&lt;/a&gt;, who was developing Conti ransomware &lt;a href=&quot;https://www.techtarget.com/searchsecurity/news/252521002/Conti-ransomware-group-targeted-Intel-firmware-tools&quot;&gt;developed proof-of-concept code targeting Intel firmware to carry out persistent, hard-to-detect attacks.&lt;/a&gt;. This should be a serious warning, that the danger is not just the theoretical one, but could be (and probably it is) already exploited in the wild.&lt;/p&gt;

&lt;h3 id=&quot;ring--3-rootkits-mitigation&quot;&gt;Ring -3 rootkits mitigation&lt;/h3&gt;

&lt;p&gt;Ring -3 rootkits enables attackers to maintain deep, persistent, and stealthy control over a system, beyond the reach of traditional security mechanisms. However, there is a possible mitigation, that is to &lt;strong&gt;disable ME functionality&lt;/strong&gt; (at least partially, because completely disabling destroys the CPU), which can be achieved with the special tool &lt;a href=&quot;https://github.com/corna/me_cleaner&quot;&gt;&lt;strong&gt;ME Cleaner&lt;/strong&gt;&lt;/a&gt;, developed by &lt;strong&gt;Nicholas Corna&lt;/strong&gt;. However, this is possible only for specific Intel CPUs only and might not work in the future anymore.&lt;/p&gt;

&lt;p&gt;There are two methods to disable &lt;strong&gt;Intel ME&lt;/strong&gt; on a computer. The first on is so called &lt;strong&gt;HECI&lt;/strong&gt; (soft-disabling; &lt;strong&gt;Host Embedded Controller Interface&lt;/strong&gt;) method, but it is not fully trusted by the security community and it also only partially disables Intel ME. Another option is &lt;strong&gt;HAP disabling method&lt;/strong&gt;, which sets a special HAP bit that acts like a kill-switch. This method completely turns off Intel ME that can be disabled.&lt;/p&gt;

&lt;h2 id=&quot;ring--4-rootkits&quot;&gt;Ring -4 rootkits&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Ring -4 rootkits&lt;/strong&gt; are more theoretical, however there are some proofs that they can be successfully deployed. The term Ring -4 is used to describe emerging threats in the privilege hierarchy below known Ring -3 systems.&lt;/p&gt;

&lt;p&gt;Those rootkits would target components even deeper within the system, such as the &lt;strong&gt;System on Chip (SoC)&lt;/strong&gt; or physical hardware devices themselves. So let&apos;s take a look to some of the exploits that have already happened.&lt;/p&gt;

&lt;h3 id=&quot;exploits-on-baseband-processors&quot;&gt;Exploits on baseband processors&lt;/h3&gt;

&lt;p&gt;Baseband processor is a special processor inside a mobile device or a computer, that manages all the radio functions. Researcher have shown, that firmware code on baseband processors is vulnerable, and some vulnerabilities are known to be already exploited, usually for cyberespionage.&lt;/p&gt;

&lt;p&gt;In 2011, security researcher &lt;strong&gt;Ralf-Philipp Weinmann&lt;/strong&gt; from &lt;strong&gt;University of Luxembourg&lt;/strong&gt; had a presentation titled &lt;a href=&quot;https://comsecuris.com/slides/Weinmann-All-Your-Baseband-Are-Belong-To-Us-slides.pdf&quot;&gt;&lt;strong&gt;The Baseband Apocalypse&lt;/strong&gt;&lt;/a&gt;, where he has shown how to set up fake base station, attract nearby phones to join the fake network, where he was then able to inject a malicious firmware update into the baseband processor. His malicious firmware would then switched on the phones’ auto-answer feature, which would have let the researcher to silently dial into the phone and remotely listen to nearby conversations.&lt;/p&gt;

&lt;p&gt;In 2019 Android security patches included a fix for two dangerous vulnerabilities called &lt;a href=&quot;https://www.blackhat.com/us-19/briefings/schedule/index.html#exploiting-qualcomm-wlan-and-modem-over-the-air-15481&quot;&gt;&lt;strong&gt;QualPwn&lt;/strong&gt;&lt;/a&gt; (&lt;a href=&quot;https://cve.mitre.org/cgi-bin/cvename.cgi?name=2019-10538&quot;&gt;CVE-2019-10538&lt;/a&gt; and &lt;a href=&quot;https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-10540&quot;&gt;CVE-2019-10540&lt;/a&gt;), that impacted devices with Qualcomm chips. The attack allows to send a specially-crafted packets to a device&apos;s WLAN interface, which would create the so called &lt;a href=&quot;https://en.wikipedia.org/wiki/Buffer_overflow&quot;&gt;buffer overflow&lt;/a&gt;, that allows the attacker to run code with kernel privileges and code execution on the device.&lt;/p&gt;

&lt;p&gt;Also in 2019, the security researchers from AdaptiveMobile Security discovered a &lt;a href=&quot;https://www.enea.com/insights/simjacker-next-generation-spying-over-mobile/&quot;&gt;&lt;strong&gt;Simjacker vulnerability&lt;/strong&gt;&lt;/a&gt;, which allows the attacker to send a special crafted SMS to the victim&apos;s device, which instructed the SIM card within the phone to take over the mobile phone and perform sensitive commands. The Simjacker attack was exploited by surveillance companies for cyberespionage operations.&lt;/p&gt;

&lt;h3 id=&quot;exploits-on-network-interface-cards&quot;&gt;Exploits on network interface cards&lt;/h3&gt;

&lt;p&gt;Malware could also be run on a processor on a network interface card. This has been shown in 2008 by a security researcher &lt;strong&gt;Arrigo Triulzi&lt;/strong&gt;, who presented &lt;a href=&quot;https://www.alchemistowl.org/arrigo/Papers/Arrigo-Triulzi-PACSEC08-Project-Maux-II.pdf&quot;&gt;Project Maux Mk.II&lt;/a&gt;. He developed proof-of-concept hardware rootkit that he stored on a network card, called &lt;strong&gt;NIC SSH&lt;/strong&gt;. The tool allows him to connect directly to compromised network, completely bypassing the operating system (and the firewall) to access the computer. More about the tool can be read &lt;a href=&quot;https://web.archive.org/web/20090929091150/http://slo-tech.com/clanki/09010/en&quot;&gt;in my interview with Triulzi from 2009&lt;/a&gt; (&lt;a href=&quot;https://slo-tech.com/clanki/09010/&quot;&gt;Slovenian version&lt;/a&gt; is also available).&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2025/12/nic_ssh.png&quot;&gt;
&lt;img src=&quot;/static/2025/12/nic_ssh.png&quot; alt=&quot;NIC SSH tool&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
NIC SSH tool
&lt;/p&gt;
&lt;/div&gt;

&lt;h3 id=&quot;exploits-on-storage-controllers&quot;&gt;Exploits on storage controllers&lt;/h3&gt;

&lt;p&gt;Storage controllers (especially for hard disks and SDD&apos;s) are desirable location for malware attack, because the can directly access or modify the content of the files on a target systems.&lt;/p&gt;

&lt;p&gt;In 2013 security researcher &lt;strong&gt;Jeroen Domburg&lt;/strong&gt; &lt;a href=&quot;http://spritesmods.com/?art=hddhack&quot;&gt;published a blog post describing how he developed malware that could be installed on a hard disk controller&lt;/a&gt; (article in Slovenian language is &lt;a href=&quot;https://slo-tech.com/novice/t576113/0&quot;&gt;also available&lt;/a&gt;). That malware was able to modify data when reading from the hard disk. In his case, he demonstrated how to &quot;inject&quot; replacement password to a target system.&lt;/p&gt;

&lt;p&gt;The malware activity could be triggered with a certain magic string the modified firmware would look for to the disk. The magic string in that case is a sequence of characters prepared in advance by the attacker, and can be hidden in any file, e-mail message or (in case the compromised server is web server) - URL. When the magic string is received on a target computer, it will be written on a disk, and that means it would be passed through hard disk controller, which would activate the malware.&lt;/p&gt;

&lt;p&gt;When the malware is activated, it would modify the replacement password hash in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/shadow&lt;/code&gt; file (in Linux systems this file stores login passwords of users in hashed format). When the attacker would then try to log into the system with his own (replacement) password, the machine would check this password against the now-modified /etc/shadow and the attacker would be able to login. In that example the target system remains vulnerable even if the operating system is completely reinstalled.&lt;/p&gt;

&lt;p&gt;Another research was presented in 2015 by security researcher &lt;a href=&quot;https://www.malwaretech.com/2015/06/hard-disk-firmware-rootkit-surviving.html&quot;&gt;&lt;strong&gt;Marcus Hutchins&lt;/strong&gt;, who created a firmware rootkit&lt;/a&gt; that could be stored on hard drive’s memory chip, and can intercept and modify data being sent back to the host computer. This allows the rootkit to trick the host system into executing arbitrary code (more technical description is &lt;a href=&quot;https://elhacker.info/manuales/Virus/(Superpersistent%20Bootkit).pdf&quot;&gt;also available&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;What is interesting is, that the leaked Snowden files revealed, that NSA has also developed a tool called &lt;a href=&quot;https://www.schneier.com/blog/archives/2014/01/iratemonk_nsa_e.html&quot;&gt;IRATEMONK&lt;/a&gt;, that provided software application persistence on desktop and laptop computers by implanting the malware (rootkit) in the hard drive firmware to gain execution through Master Boot Record (MBR) substitution. So this attack is not just theoretical, but has been actively used for cyberespionage.&lt;/p&gt;

&lt;h3 id=&quot;other-exploits-on-hardware-components&quot;&gt;Other exploits on hardware components&lt;/h3&gt;

&lt;p&gt;The possibilities for attacks of course does not end here. In the past we have seen &lt;a href=&quot;https://slo-tech.com/clanki/13002/&quot;&gt;various attacks through Firewire interface&lt;/a&gt;, &lt;a href=&quot;https://www.blackhat.com/presentations/bh-usa-09/CHEN/BHUSA09-Chen-RevAppleFirm-PAPER.pdf&quot;&gt;installing malware on a Apple Aluminium Keyboard&lt;/a&gt;, on a &lt;a href=&quot;https://www.blackhat.com/presentations/bh-dc-07/Heasman/Paper/bh-dc-07-Heasman-WP.pdf&quot;&gt;PCI card&lt;/a&gt;, etc.&lt;/p&gt;

&lt;h2 id=&quot;ring--4-rootkits-mitigation&quot;&gt;Ring -4 rootkits mitigation&lt;/h2&gt;

&lt;p&gt;While Ring -4 rootkits are not easy mitigated, there are some effective defences against them - but it depends on a type of a component that rootkit resides on. However, in general the main mitigation approach would be firmware validation (unfortunately most of the firmware for computer components is not open source), and secure supply chain 
practices.&lt;/p&gt;

&lt;p&gt;Exploits on baseband processors could be mitigated by baseband isolation (this is for instance approach &lt;a href=&quot;https://telefoncek.si/predavanja/Balkan_Cybersecurity_Days_2023.pdf&quot;&gt;used by GrapheneOS mobile operating system&lt;/a&gt;), while some other providers provide so called blob-free network cards for computers. That means that the network card’s firmware is considered to be non-modifiable pre-installed firmware that is part of the hardware.&lt;/p&gt;

&lt;p&gt;Malware on storage controllers could be defeated by software level full disk encryption, because the rootkit is only effective if the data written or read from the storage disk is in the clear (however full disk encryption should have data integrity algorithm in place, which would detect if malware is corrupting data).&lt;/p&gt;

&lt;p&gt;For other hardware components the threat level is different. For instance malware on a keyboard controller could be less problematic if it can not communicate with device&apos;s operating system. So keeping the operating system secure, can also help defending against firmware attacks. Physical security is also important. If the attacker does not have physical access to the infected firmware device, they can not exfiltrate data, even they are being recorded. Using hardware components with open source and verified firmware also helps.&lt;/p&gt;

&lt;p&gt;As a sidenote, &lt;a href=&quot;https://en.wikipedia.org/wiki/Row_hammer&quot;&gt;&lt;strong&gt;Row hammer
attack&lt;/strong&gt;&lt;/a&gt; could be prevented by using ECC RAM, TTR (&lt;strong&gt;Target Row Refresh&lt;/strong&gt;) enabled DDR4 or DDR5 RAM and by use of operating systems or hypervisors that implement memory partitioning or access throttling to complement hardware defences. Incorporating robust mitigation strategies like strict memory isolation and minimal privileges for different components on the operating system level can also help to reduce the impact of any memory-related vulnerabilities, including Row hammer attacks.&lt;/p&gt;

&lt;h2 id=&quot;can-we-go-even-deeper&quot;&gt;Can we go even deeper?&lt;/h2&gt;

&lt;p&gt;Now, the question remains, can rootkits go even deeper? And what could be possible defence? The answer to the first questios is - unfortunately - yes. (But fortunately, yes, there is possible defence).&lt;/p&gt;

&lt;h3 id=&quot;processors-with-malicious-design&quot;&gt;Processors with malicious design&lt;/h3&gt;

&lt;p&gt;One of the early public research on this topic was published in 2008 by &lt;strong&gt;Samuel T. King&lt;/strong&gt;, &lt;strong&gt;Joseph Tucek&lt;/strong&gt;, &lt;strong&gt;Anthony Cozzie&lt;/strong&gt;, &lt;strong&gt;Chris Grier&lt;/strong&gt;, &lt;strong&gt;Weihang Jiang&lt;/strong&gt; and &lt;strong&gt;Yuanyuan Zhou&lt;/strong&gt; in a paper titled &lt;a href=&quot;https://www.usenix.org/legacy/event/leet08/tech/full_papers/king/king.pdf&quot;&gt;Designing and implementing malicious hardware&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;They presented so called &lt;strong&gt;Illinois Malicious Processor (IMP)&lt;/strong&gt;, that was a proof-of-concept research project demonstrating how malicious functionality can be embedded &lt;a href=&quot;https://www.schneier.com/blog/archives/2008/10/designing_a_mal.html&quot;&gt;directly into a processor&apos;s design&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The authors have shown, that an attacker can design a hardware to support general purpose attacks. Their proof-of-concept has shown that malicious hardware design can bypass traditional software-based security mechanisms. Illinois Malicious Processor included a hidden operational mode, that was designed to be undetectable by traditional hardware and software monitoring tools. This mode allows the malicious processor to execute hidden instructions and access reserved parts of the cache memory for storing attack payloads.&lt;/p&gt;

&lt;h3 id=&quot;processors-with-malicious-manufacturing&quot;&gt;Processors with malicious manufacturing&lt;/h3&gt;

&lt;p&gt;Another vector of attack could be malicious manufacturing of the processors. We will show, that these attacks are not just theoretical, since researchers have already proven that they can be carried out in practice.&lt;/p&gt;

&lt;p&gt;But first we must understand how the processors are manufactured. The main raw material for processors is silicon, which needs to be first purified to a high degree (99.9999%) then sliced into thin wafers. Silicon is a semiconductor that can switch between conducting and insulating electricity.&lt;/p&gt;

&lt;p&gt;In the next step photolithographic and chemical processes are used to create the actual circuit on the silicon wafer. First the layer of photoresist (light-sensitive material) is applied to the silicon wafer, then the circuit is illuminated with UV light through a photomask with a picture of a circuit. During that procedure photoresist that is illuminated through photomask is hardened, while other parts of photoresist could be removed. This creates image of a circuit on the silicon wafer. Exposed silicon is then etched away (chemically or with plasma).&lt;/p&gt;

&lt;p&gt;Next step is important, and it is called doping. Doping refers to the process of intentionally introducing impurities into a semiconductor to modify its electrical properties. In that step impurities like phosphorus or boron are added to the silicon to alter its electrical properties and create areas that can conduct or block electricity.&lt;/p&gt;

&lt;p&gt;If elements of chemical group V (such as phosphorus), which have more electrons than silicon, are added to the silicon, the result is weakly bound and very mobile electrons. We get an n-type semiconductor. However, if we dope silicon with elements chemical of group III (such as boron), we create a deficit of electrons, so we get p-type semiconductors.&lt;/p&gt;

&lt;p&gt;Finally, thin layers of materials like copper, aluminium, or insulating oxides are deposited on the wafer in order to get the multi-layered structure of the chip.&lt;/p&gt;

&lt;p&gt;Theoretically doping could be used to introduce hardware vulnerabilities or even inject malware-like behaviour into a chip. For instance, malicious actor could create regions in the chip with altered electrical properties. This might cause the chip to malfunction, leak data, or execute unintended instructions under specific conditions.&lt;/p&gt;

&lt;p&gt;Typically the attacker would try to target security-critical features, like random number generators or handling of encryption keys. In that case the attacker &lt;a href=&quot;https://slo-tech.com/novice/t294554&quot;&gt;would make the generation of cryptographic keys predictable&lt;/a&gt;, which would facilitate attacks on encryption.&lt;/p&gt;

&lt;p&gt;Another feasible attack is to create subtle data leakage channels, enabling side-channel attacks. Slightly varying power consumption or electromagnetic emissions could then enable the attacker to reconstruct encryption keys or other sensitive data.&lt;/p&gt;

&lt;p&gt;Doping could also be used to create hidden circuits that are not part of the original design. That would in fact create hardware Trojan on a chip.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So, is it only theoretical or could be carried out in practice?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Researchers &lt;strong&gt;Georg T. Becker&lt;/strong&gt;, &lt;strong&gt;Francesco Regazzoni&lt;/strong&gt;, &lt;strong&gt;Christof Paar&lt;/strong&gt;, and &lt;strong&gt;Wayne P. Burleson&lt;/strong&gt; have shown that hardware Trojans can be implemented completely undetectably on consumer grade processors (their research is from 2013 and they used Intel&apos;s &lt;strong&gt;Ivy Bridge processors&lt;/strong&gt;). With appropriate doping, researchers were able to create malicious changes to the logic gates of transistors on an integrated circuit.&lt;/p&gt;

&lt;p&gt;They also pointed out that a similar process is already commercially used to obfuscate the operation of integrated circuits (see the article &lt;a href=&quot;https://www.researchgate.net/publication/301317714_A_Survey_on_Chip_to_System_Reverse_Engineering&quot;&gt;A Survey on Chip to System Reverse Engineering&lt;/a&gt; from
2016 by &lt;strong&gt;Mdshahed Enamulquadir&lt;/strong&gt;, &lt;strong&gt;Junlin Chen&lt;/strong&gt;, &lt;strong&gt;Domenic Forte&lt;/strong&gt;, and &lt;strong&gt;Navid Asadizanjani&lt;/strong&gt;), which suggests that performing this type of attack in practice is not as impossible as it might seem at first glance.&lt;/p&gt;

&lt;p&gt;In an article titled &lt;a href=&quot;https://sharps.org/wp-content/uploads/BECKER-CHES.pdf&quot;&gt;Stealthy Dopant-Level Hardware Trojans&lt;/a&gt; they demonstrated the creation of two hardware Trojans. First was malformed random number generator implemented in &lt;strong&gt;Ivy Bridge processors&lt;/strong&gt;, and the second one was malicious hardware implementation of the AES encryption functions, so that they were not resistant to a side channel attack any more.&lt;/p&gt;

&lt;p&gt;As already mentioned, &lt;strong&gt;in the first case, they modified the random number generator&lt;/strong&gt; (so-called hardware RNG) on Intel&apos;s Ivy Bridge processor.&lt;/p&gt;

&lt;p&gt;Intel&apos;s hardware RNG generates 128-bit random numbers by default. This means that there are 2\^128 possible combinations of a single random number (340282366920938463463374607431768211456 possible combinations).&lt;/p&gt;

&lt;p&gt;However, by modifying the processor, the researchers were able to arbitrarily reduce the range of random numbers. For example, from 2\^128 to 2\^32, which returns only 4294967296 possible combinations. These are much easier to guess and subsequently encryption keys generated with that random number generator are much easier to break.&lt;/p&gt;

&lt;p&gt;Interestingly, the random number generator modified in this way passed the test of the &lt;strong&gt;American National Institute of Standards and Technology&lt;/strong&gt; (NIST) to determine the randomness of the generated numbers.&lt;/p&gt;

&lt;p&gt;In the &lt;strong&gt;second case, the researchers implemented the attack on a hardware implementation of an AES encryption chip that is supposed to be resistant to the side channel attacks&lt;/strong&gt;. It is a special purpose integrated circuit, called iMDPL (&lt;strong&gt;Improved Masked Dual-Rail Logic&lt;/strong&gt;), which they modified so that it changed its power consumption depending on the input data (but only in a way known to the attacker).&lt;/p&gt;

&lt;p&gt;The researchers then shown how this could be used to implement leaking of the AES encryption key, while the integrated circuit still performs its task - protecting against &lt;strong&gt;the all other&lt;/strong&gt; side channel attacks. In this case, too, no functional testing can detect a hardware Trojan horse.&lt;/p&gt;

&lt;p&gt;Those malicious hardware modifications could not be detected neither by optical inspection (the metal and polysilicon wiring of the modified chip is unchanged), or by performing a BIST test (build-in-self-test, a hardware self-testing process), or by checking with a reference chip, so called &lt;strong&gt;gold chip&lt;/strong&gt;.&lt;/p&gt;

&lt;h3 id=&quot;what-about-mitigation&quot;&gt;What about mitigation?&lt;/h3&gt;

&lt;p&gt;While malicious design of the processors could be detected at least by third-party verification, doping-based attacks are nearly impossible to identify without highly advanced equipment and specialized knowledge. Again, general mitigation strategies here are to ensure secure supply chains and third-party verification. Unfortunately, those strategies are not really feasible for ordinary users.&lt;/p&gt;

&lt;p&gt;On the other hand, ordinary users can use external random number generators for generating unbiased random numbers, and hardware security modules for handling encryption keys, which enables them to mitigate at least some of the risks.&lt;/p&gt;

&lt;h1 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h1&gt;

&lt;p&gt;As we have shown, rootkits can hide pretty deep in our systems. The most advanced attacks can usually be performed by very advanced, usually state actors. But we have also shown, that the bar is lowering and advanced rootkits are becoming more easily accessible to non-state actors, like ransomware group Wizard Spider &lt;a href=&quot;https://www.bleepingcomputer.com/news/security/conti-ransomware-targeted-intel-firmware-for-stealthy-attacks/&quot;&gt;who was developing their own SMM rootkit&lt;/a&gt; and PLATINUM cybercrime group who exploited &lt;strong&gt;Intel Management Engine&lt;/strong&gt; on Intel CPU&apos;s.&lt;/p&gt;

&lt;p&gt;On the other hand, there are several mitigation techniques available, that can help to secure our systems, even though no system could be 100% secure.&lt;/p&gt;

&lt;p&gt;Good mitigation strategies are using sandboxing and different isolated virtual environments for different tasks. In case of malware attack, malware would be limited to an isolated environment, and infection would not be able to spread (at least not easily). And if we implement virtual machine level snapshots, compromised environments can be easily returned to a last known good state.&lt;/p&gt;

&lt;p&gt;Another line of defence is BIOS/UEFI, that has safeguards against compromising SMM, and has implemented secure boot and measured boot with external hardware security module. This not only reduces the attack surface, but also provides enhanced system integrity verification and secure authentication.&lt;/p&gt;

&lt;p&gt;Disabling Management Engine functionality helps to disable Ring -3 rootkit attacks. Malware on storage controllers could be defeated by software level full disk encryption, and for other critical components using hardware with open source and verified firmware (or at least without firmware blobs) also helps. Several attacks could also be prevented by using external random number generators and hardware security modules for handling of secure cryptographic materials.&lt;/p&gt;

&lt;p&gt;Also, we should not forget on general mitigation strategies, which are to ensure secure supply chains, third-party verification of hardware components and software and firmware validation.&lt;/p&gt;

&lt;center&gt;* * * &lt;/center&gt;

&lt;p&gt;Info: you can also &lt;a href=&quot;https://telefoncek.si/predavanja/Rootkits_how_deep_the_rabbit_hole_is_DCTF_2025.pdf&quot;&gt;download my presentation&lt;/a&gt; on this topic.&lt;/p&gt;

&lt;p&gt;Also, I developed a working prototype of security enhanced laptop that has implemented most of the rootkit mitigation strategies presented in this article, which means that advanced rootkit protection is possible and accessible to ordinary users.&lt;/p&gt;
</description>
        <pubDate>Thu, 11 Dec 2025 01:00:00 +0100</pubDate>
        <link>https://telefoncek.si/2025/12/2025-12-11-rootkits-how-deep-the-rabbit-hole-is/</link>
        <guid isPermaLink="true">https://telefoncek.si/2025/12/2025-12-11-rootkits-how-deep-the-rabbit-hole-is/</guid>
        
        <category>rootkit</category>
        
        
        <category>Kibernetska varnost</category>
        
        <category>Informacijska tehnologija</category>
        
      </item>
    
      <item>
        <title>Varnost sončnih elektrarn in geopolitika</title>
        <description>&lt;p&gt;V sredini maja 2025 so nekateri ameriški mediji objavili novico, da naj bi varnostni strokovnjaki v nekaterih kitajskih razsmernikih in baterijah, ki se uporabljajo v sončnih elektrarnah, našli sumljive naprave, ki bi lahko omogočale prikrito komunikacijo.&lt;/p&gt;

&lt;p&gt;Raziskovalci naj bi namreč našli nedokumentirane komunikacijske naprave, vključno z radijskimi sprejemniki in oddajniki, preko katerih bi bilo mogoče na daljavo dostopati do razsmernikov in baterij oz. do sončne elektrarne. Seveda se je takoj pojavil strah, da so proizvajalci, ali pa nekdo drug v dobavni verigi, v ključne komponente sončnih elektrarn vgradili tim. stranka vrata (angl. &lt;em&gt;backdoor&lt;/em&gt;), preko katerih bi bilo mogoče izvajati kibernetske napade.&lt;/p&gt;

&lt;p&gt;Težava je v tem, da bi tak kibernetski napad na sončno elektrarno v skrajnem primeru lahko povzročil ne samo izpad napajanja ali dvig napetosti, pač pa tudi požar. Zato je take grožnje vsekakor treba jemati resno. Mimogrede, saj se še spomnimo &lt;a href=&quot;https://en.wikipedia.org/wiki/Petya_(malware_family)&quot;&gt;kibernetskih napadov na ukrajinsko energetsko infrastrukturo&lt;/a&gt;, kajne?&lt;/p&gt;

&lt;p&gt;Žal zaenkrat kaj bolj konkretnih informacij o tem ni, tudi viri, ki so spregovorili za medije so anonimni niti niso želeli izpostaviti konkretnih naprav, zato je neodvisno preverjanje teh informacij oteženo. Kar pa seveda ne pomeni, da grožnje ni potrebno jemati resno.&lt;/p&gt;

&lt;h2 id=&quot;izraelski-solaredge&quot;&gt;Izraelski SolarEdge&lt;/h2&gt;

&lt;p&gt;Kako pa je s tem v Sloveniji?&lt;/p&gt;

&lt;p&gt;Podatkov ni veliko, je pa iz &lt;a href=&quot;http://pv.fe.uni-lj.si/media/files/Pregled_fotovoltaicnega_trga_v_Sloveniji_2023.pdf&quot;&gt;letnega poročila Slovenskega portala za fotovoltaiko&lt;/a&gt; mogoče razbrati, da je bilo v letu 2022 v Sloveniji 17.278 sončnih elektrarn. Podatka o tržnih deležih posameznih proizvajalcev ni mogoče dobiti, a kot kaže ima v Sloveniji dokaj velik delež sončnih elektrarn proizvajalec SolarEdge. Gre za podjetje, ki je iz Izraela, njihovo opremo pa v Sloveniji prodajajo in vzdržujejo različna slovenska podjetja.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.solaredge.com/sites/default/files/se-system-overview_slo.pdf&quot;&gt;Reklamni letak podjetja&lt;/a&gt; navaja: “&lt;em&gt;Podjetje SolarEdge ponuja sisteme porazdeljenega pridobivanja sončne energije in spremljanje delovanja sončne elektrarne. … Ponudba proizvodov SolarEdge vključuje optimizatorje moči, zelo zanesljive fotovoltaične pretvornike ter spletni portal za nadzor sistema in odkrivanje napak na ravni modulov.&lt;/em&gt;”&lt;/p&gt;

&lt;p&gt;SolarEdge oprema torej o sončnih elektrarnah svojih strank zbira številne podatke, seveda zlasti podatke o proizvedeni in porabljeni električni energiji (podatki o porabi so zanimivi tudi iz stališča varstva osebnih podatkov, sj je z njihovo pomočjo mogoče ugotoviti kdaj so stanivalci na dopustu, koliko oseb živi v objektu, kakšne so njihove dnevne navade, itd.), pa tudi nekaj drugih, bolj tehničnih podatkov.&lt;/p&gt;

&lt;p&gt;Dostop do podatkov je mogoč preko aplikacije, kar pomeni, da se podatki pošiljajo v oblak. Oblačna storitev se nahaja na strežniku &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;monitoring.solaredge.com&lt;/code&gt;, IP naslov tega strežnika pa se nahaja v Izraelu.&lt;/p&gt;

&lt;p&gt;Za dostop do podatkov sicer obstaja še druga možnost, in sicer je dostop do podatkov mogoč tudi lokalno, preko API vmesnika na razsmerniku (tega sicer ne omogočajo vsi SolarEdgovi razsmerniki). A večina običajnih uporabnikov bo najverjetneje uporabila kar aplikacijo oziroma oblačno storitev, saj je to najbolj enostavno, poleg tega pa kaže, da podjetje SolarEdge lokalne dostope skuša omejevati in s tem uporabnike pripraviti do tega, da uporabljajo oblačno storitev.&lt;/p&gt;

&lt;p&gt;Kako to vemo? Ker so razvijalci sistema za avtomatizacijo doma HomeAssistant za SolarEdge razvili integracijo &lt;a href=&quot;https://www.home-assistant.io/integrations/solaredge_local/&quot;&gt;SolarEdge Local&lt;/a&gt;, ki podatke zbira neposredno na razsmerniku. In v dokumentaciji te integracije piše da lokalen API vmesnik podpirajo samo specifični modeli razsmernikov, podjetje pa je z eno izmed posodobitev strojne programske opreme lokalne API vmesnike preko WiFi povezave na teh razsmernikih tudi začelo onemogočati in je zato integracija nehala delovati oziroma je bilo potrebno razsmernik povezati s kablom.&lt;/p&gt;

&lt;p&gt;Skratka. Izraelsko podjetje SolarEdge iz sončnih elektrarn, ki so jih prodali zbirajo številne podatke, ti podatki pa se zbirajo v Izraelu. Hkrati pa podjetje lahko na daljavo, preko interneta, posodobi tudi strojno programsko opremo v sončni elektrarni kar seveda pomeni, da lahko tudi spreminjajo nastavitve.&lt;/p&gt;

&lt;p&gt;Bi bilo torej teoretično mogoče na sončne elektrarne na daljavo namestiti zlonamerno programsko kodo, ki bi npr. povzročila dvig izhodne napetosti, vse elektrarne sinhronizirano izključila iz omrežja (in s tem povzročila kolaps elektroenergetskega omrežja, kot se je na primer pred kratkim zgodil v Španiji) ali pa na primer povzročila požar? Ne vemo. A to bi vsekakor morali vedeti.&lt;/p&gt;

&lt;p&gt;Seveda ne trdim, da bi takšno zlonamerno kodo želel namestiti proizvajalec. Se pa zastavlja povsem legitimno vprašanje varnosti dobavnih verig, torej ali obstaja možnost, da bi nekdo vdrl v oblačno storitev SolarEdgea in od tam dostopal do podatkov oziroma pripravil zlonamerne posodobitve? Ali pa da to naredi kdo od znotraj? Tudi tega ne vemo, vemo pa, da je solarEdge v preteklosti že imel varnostne ranljivosti, konkretno, aplikacija SolarEdge za Android ni pravilno preverjala digitalnih potrdil, ta &lt;a href=&quot;https://corporate.solaredge.com/en/cyber-security-solutions/advisories/sedg-2024-1&quot;&gt;varnostna ranljivost&lt;/a&gt; pa je omogočala napad s posrednikom (tim. &lt;em&gt;machine-in-the-middle attack&lt;/em&gt;). (Opomba: SolarEdge je ranljivost že odpravil.)&lt;/p&gt;

&lt;p&gt;Na pomen varnosti dobavnih verig pa vsekakor kaže tudi primer &lt;a href=&quot;https://www.schneier.com/blog/archives/2024/10/more-details-on-israel-sabotaging-hezbollah-pagers-and-walkie-talkies.html&quot;&gt;eksplozije pozivnikov Hezbollaha v Libanonu septembra 2024&lt;/a&gt;, ko je Izrael članom Hezbollaha podtaknil pozivnike in ročne radijske postaje (angl. &lt;em&gt;walkie-talkie&lt;/em&gt;) z eksplozivom, ki so ga potem sprožili na daljavo (kasneje so se pojavila tudi poročila o eksplozijah sončnih elektrarn v Libanonu, čeprav ni neposrednih dokazov, da bi bile povezane z napadom s pozivniki). Kasnejše analize so pokazale, da proizvajalec pozivnikov v napad sploh ni bil vpleten, pač pa je bila kompromitirana dobavna veriga.&lt;/p&gt;

&lt;h2 id=&quot;zaključek&quot;&gt;Zaključek&lt;/h2&gt;

&lt;p&gt;Varnost naprav, ki so del kritične infrastrukture je vsekakor pomembna tema. Glede na trenutno geopolitično situacijo pa bi bilo morda potrebno nekoliko bolj poglobljeno raziskati tudi nacionalno-varnostne vidike sončnih elektrarn v Sloveniji.&lt;/p&gt;
</description>
        <pubDate>Mon, 26 May 2025 02:00:00 +0200</pubDate>
        <link>https://telefoncek.si/2025/05/2025-05-26-varnost-soncnih-elektrarn-in-geopolitika/</link>
        <guid isPermaLink="true">https://telefoncek.si/2025/05/2025-05-26-varnost-soncnih-elektrarn-in-geopolitika/</guid>
        
        <category>Varnost</category>
        
        <category>Zasebnost</category>
        
        
        <category>Kibernetska varnost</category>
        
        <category>Informacijska tehnologija</category>
        
      </item>
    
      <item>
        <title>How I discovered a hidden microphone on a Chinese NanoKVM</title>
        <description>&lt;p&gt;NanoKVM is a &lt;strong&gt;hardware KVM switch&lt;/strong&gt; developed by the Chinese company Sipeed. Released last year, it enables remote control of a computer or server using a virtual keyboard, mouse, and monitor. Thanks to its compact size and low price, it quickly gained attention online, especially when the company promised to release its code as open-source. However, as we’ll see, the device has some serious security issues. But first, let’s start with the basics.&lt;/p&gt;

&lt;h2 id=&quot;how-does-the-device-work&quot;&gt;How Does the Device Work?&lt;/h2&gt;

&lt;p&gt;As mentioned, NanoKVM is a KVM switch designed for remotely controlling and managing computers or servers. It features an HDMI port, three USB-C ports, an Ethernet port for network connectivity, and a special serial interface. The package also includes a small accessory for managing the power of an external computer.&lt;/p&gt;

&lt;p&gt;Using it is quite simple. First, you connect the device to the internet via an Ethernet cable. Once online, you can access it through a standard web browser (though &lt;em&gt;JavaScript JIT&lt;/em&gt; must be enabled). The device supports Tailscale VPN, but with some effort (read: hacking), it can also be configured to work with your own VPN, such as WireGuard or OpenVPN server. Once set up, you can control it from anywhere in the world via your browser.&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2025/02/NanoKVM.jpg&quot;&gt;
&lt;img src=&quot;/static/2025/02/NanoKVM.jpg&quot; alt=&quot;NanoKVM&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
NanoKVM
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;The device could be connected to the target computer using an HDMI cable, capturing the video output that would normally be displayed on a monitor. This allows you to view the computer’s screen directly in your browser, essentially acting as a virtual monitor.&lt;/p&gt;

&lt;p&gt;Through the USB connection, NanoKVM can also emulate a keyboard, mouse, CD-ROM, USB drive, and even a USB network adapter. This means you can remotely control the computer as if you were physically sitting in front of it - but all through a web interface.&lt;/p&gt;

&lt;p&gt;While it functions similarly to remote management tools like RDP or VNC, it has one key difference: there’s no need to install any software on the target computer. Simply plug in the device, and you’re ready to manage it remotely. NanoKVM even allows you to enter the BIOS, and with the additional accessory for power management, you can remotely turn the computer on, off, or reset it.&lt;/p&gt;

&lt;p&gt;This makes it incredibly useful - you can power on a machine, access the BIOS, change settings, mount a virtual bootable CD, and install an operating system from scratch, just as if you were physically there. Even if the computer is on the other side of the world.&lt;/p&gt;

&lt;p&gt;NanoKVM is also quite affordable. The fully-featured version, which includes all ports, a built-in mini screen, and a case, costs just over €60, while the stripped-down version is around €30. By comparison, a similar RaspberryPi-based device, PiKVM, costs around €400. However, PiKVM is significantly more powerful and reliable and, with a KVM splitter, can manage multiple devices simultaneously.&lt;/p&gt;

&lt;p&gt;As mentioned earlier, the announcement of the device caused quite a stir online - not just because of its low price, but also due to its compact size and minimal power consumption. In fact, it can be powered directly from the target computer via a USB cable, which it also uses to simulate a keyboard, mouse, and other USB devices. So you have only one USB cable - in one direction it powers NanoKVM, on the other it helps it to simulate keyboard mouse and other devices on a computer you want to manage.&lt;/p&gt;

&lt;p&gt;The device is built on the open-source RISC-V processor architecture, and the manufacturer eventually did release the device’s software under an open-source license at the end of last year. (To be fair, one part of the code remains closed, but the community has already found a suitable open-source replacement, and the manufacturer has promised to open this portion soon.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;However, the real issue is security.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Understandably, the company was eager to release the device as soon as possible. In fact, an early version had a minor hardware design flaw - due to an incorrect circuit cable, the device sometimes failed to detect incoming HDMI signals. As a result, the company recalled and replaced all affected units free of charge. Software development also progressed rapidly, but in such cases, the primary focus is typically on getting basic functionality working, with security taking a backseat.&lt;/p&gt;

&lt;p&gt;So, it’s not surprising that the developers made some serious missteps - rushed development often leads to stupid mistakes. But some of the security flaws I discovered in my quick (and by no means exhaustive) review are genuinely concerning.&lt;/p&gt;

&lt;p&gt;One of the &lt;a href=&quot;https://www.hackster.io/news/security-researcher-warns-on-sipeed-s-nanokvm-finds-vulnerabilities-and-a-cat-in-the-firmware-e1157a9ff0f4&quot;&gt;first security analysis revealed numerous vulnerabilities&lt;/a&gt; - and some rather bizarre discoveries. For instance, a security researcher even found an image of a cat embedded in the firmware. While the Sipeed developers acknowledged these issues and relatively quickly fixed at least some of them, many remain unresolved.&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2025/02/device.jpg&quot;&gt;
&lt;img src=&quot;/static/2025/02/device.jpg&quot; alt=&quot;NanoKVM&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
NanoKVM
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;After purchasing the device myself, I ran a quick security audit and found several alarming flaws. The device initially came with a default password, and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SSH&lt;/code&gt; access was enabled using this preset password. I reported this to the manufacturer, and to their credit, they fixed it relatively quickly. However, many other issues persist.&lt;/p&gt;

&lt;p&gt;The user interface is riddled with security flaws - there’s no CSRF protection, no way to invalidate sessions, and more. Worse yet, the encryption key used for password protection (when logging in via a browser) is &lt;strong&gt;hardcoded and identical&lt;/strong&gt; across all devices. This is a major security oversight, as it allows an attacker to easily decrypt passwords. More problematic, this needed to be explained to the developers. Multiple times.&lt;/p&gt;

&lt;p&gt;Another concern is the device’s reliance on Chinese DNS servers. And configuring your own (custom) DNS settings is quite complicated. Additionally, the device communicates with Sipeed’s servers in China - downloading not only updates but also the closed-source component mentioned earlier. For this closed source component it needs to verify an identification key, which is stored on the device in plain text. Alarmingly, the device does not verify the integrity of software updates, includes a strange version of the WireGuard VPN application (which does not work on some networks), and runs a heavily stripped-down version of Linux that lacks &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;systemd&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;apt&lt;/code&gt;. And these are just a few of the issues.&lt;/p&gt;

&lt;p&gt;Were these problems simply oversights? Possibly. But what additionally raised red flags was the presence of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;tcpdump&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;aircrack&lt;/code&gt; - tools commonly used for network packet analysis and wireless security testing. While these are useful for debugging and development, they are also &lt;strong&gt;hacking tools&lt;/strong&gt; that can be dangerously exploited. I can understand why developers might use them during testing, but they have absolutely no place on a production version of the device.&lt;/p&gt;

&lt;p&gt;A Hidden Microphone&lt;/p&gt;

&lt;p&gt;And then I discovered something even more alarming - &lt;strong&gt;a tiny built-in microphone that isn’t clearly mentioned in the official documentation&lt;/strong&gt;. It’s a miniature SMD component, measuring just 2 x 1 mm, yet capable of recording surprisingly high-quality audio.&lt;/p&gt;

&lt;p&gt;What’s even more concerning is that all the necessary recording tools are already installed on the device! By simply connecting via &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SSH&lt;/code&gt; (remember, the device initially used default passwords!), I was able to start recording audio using the amixer and arecord tools. Once recorded, the audio file could be easily copied to another computer. With a little extra effort, it would even be possible to stream the audio over a network, allowing an attacker to eavesdrop in real time.&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2025/02/hidden_microphone.jpg&quot;&gt;
&lt;img src=&quot;/static/2025/02/hidden_microphone.jpg&quot; alt=&quot;Hidden Microphone in NanoKVM&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
Hidden Microphone in NanoKVM
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Physically removing the microphone is possible, but it’s not exactly straightforward. As seen in the image, disassembling the device is tricky, and due to the microphone’s tiny size, you’d need a microscope or magnifying glass to properly desolder it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To summarize&lt;/strong&gt;: the device is riddled with security flaws, originally shipped with default passwords, communicates with servers in China, comes preinstalled with hacking tools, and even includes a built-in microphone - fully equipped for recording audio - without clear mention of it in the documentation. Could it get any worse?&lt;/p&gt;

&lt;p&gt;I am pretty sure these issues stem from extreme negligence and rushed development rather than malicious intent. However, that doesn’t make them any less concerning.&lt;/p&gt;

&lt;p&gt;That said, these findings don’t mean the device is entirely unusable.&lt;/p&gt;

&lt;p&gt;Since the device is open-source, it’s entirely possible to install custom software on it. In fact, &lt;a href=&quot;https://github.com/scpcom/sophgo-sg200x-debian&quot;&gt;one user has already begun porting his own Linux distribution&lt;/a&gt; - starting with Debian and later switching to Ubuntu. With a bit of luck, this work could soon lead to official Ubuntu Linux support for the device.&lt;/p&gt;

&lt;p&gt;This custom Linux version already runs the manufacturer’s modified KVM code, and within a few months, we’ll likely have a fully independent and significantly more secure software alternative. The only minor inconvenience is that installing it requires physically opening the device, removing the built-in SD card, and flashing the new software onto it. However, in reality, this process isn’t too complicated.&lt;/p&gt;

&lt;p&gt;And while you’re at it, you might also want to remove the microphone… or, if you prefer, connect a speaker. In my test, I used an 8-ohm, 0.5W speaker, which produced surprisingly good sound - essentially turning the NanoKVM into a tiny music player. Actually, the idea is not so bad, because &lt;a href=&quot;https://docs.pikvm.org/audio/&quot;&gt;PiKVM also included 2-way audio support for their devices end of last year&lt;/a&gt;.&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2025/02/speaker.jpg&quot;&gt;
&lt;img src=&quot;/static/2025/02/speaker.jpg&quot; alt=&quot;Basic board with speaker&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
Basic board with speaker
&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id=&quot;final-thoughts&quot;&gt;Final Thoughts&lt;/h2&gt;

&lt;p&gt;All this of course raises an interesting question: How many similar devices with hidden functionalities might be lurking in your home, just waiting to be discovered? And not just those of Chinese origin. Are you absolutely sure none of them have built-in miniature microphones or cameras?&lt;/p&gt;

&lt;p&gt;You can start with your iPhone - &lt;a href=&quot;https://arstechnica.com/tech-policy/2025/01/apple-agrees-to-pay-95m-delete-private-conversations-siri-recorded/&quot;&gt;last year Apple has agreed to pay $95 million to settle a lawsuit alleging that its voice assistant Siri recorded private conversations&lt;/a&gt;. They shared the data with third parties and used them for targeted ads. “Unintentionally”, of course! Yes, that Apple, that cares about your privacy so much.&lt;/p&gt;

&lt;p&gt;And Google is doing the same. They are facing a similar lawsuit over their voice assistant, but the litigation likely won’t be settled until this fall. So no, small Chinese startup companies are not the only problem. And if you are worried about Chinese companies obligations towards Chinese government, let’s not forget that U.S. companies also have obligations to cooperate with U.S. government. While Apple is publicly claiming they do not cooperate with FBI and other U. S. agencies (because thy care about your privacy so much), some media revealed that Apple was holding a series secretive Global Police Summit at its Cupertino headquarters &lt;a href=&quot;https://www.forbes.com/sites/thomasbrewster/2024/10/09/apple-sells-privacy-to-consumers-but-its-quietly-helping-police-use-iphones-for-surveillance/&quot;&gt;where they taught police how to use their products for surveillance and policing work&lt;/a&gt;. And as one of the police officers pointed out - he has “&lt;em&gt;never been part of an engagement that was so collaborative&lt;/em&gt;.”. Yep.&lt;/p&gt;

&lt;h3 id=&quot;ps-how-to-record-audio-on-nanokvm&quot;&gt;P.S. How to Record Audio on NanoKVM&lt;/h3&gt;

&lt;p&gt;If you want to test the built-in microphone yourself, simply connect to the device via &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SSH&lt;/code&gt; and run the following two commands:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;amixer -Dhw:0 cset name=&apos;ADC Capture Volume 20&apos;&lt;/code&gt; (&lt;em&gt;this sets microphone sensitivity to high&lt;/em&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;arecord -Dhw:0,0 -d 3 -r 48000 -f S16_LE -t wav test.wav &amp;amp; &amp;gt; /dev/null &amp;amp;&lt;/code&gt; (&lt;em&gt;this will capture the sound to a file named &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;test.wav&lt;/code&gt;&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, speak or sing (perhaps the Chinese national anthem?) near the device, then press &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Ctrl + C&lt;/code&gt;, copy the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;test.wav&lt;/code&gt; file to your computer, and listen to the recording.&lt;/p&gt;
</description>
        <pubDate>Mon, 10 Feb 2025 01:00:00 +0100</pubDate>
        <link>https://telefoncek.si/2025/02/2025-02-10-hidden-microphone-on-nanokvm/</link>
        <guid isPermaLink="true">https://telefoncek.si/2025/02/2025-02-10-hidden-microphone-on-nanokvm/</guid>
        
        <category>Linux</category>
        
        <category>KVM</category>
        
        
        <category>Kibernetska varnost</category>
        
        <category>Informacijska tehnologija</category>
        
        <category>Odprta strojna oprema</category>
        
        <category>Odprta koda</category>
        
      </item>
    
      <item>
        <title>Kako sem na mini kitajski napravi odkril skriti mikrofon</title>
        <description>&lt;p&gt;Lansko leto je kitajsko podjetje Sipeed izdalo zanimivo napravico za oddaljeno upravljanje računalnikov in strežnikov, ki sliši na ime &lt;strong&gt;NanoKVM&lt;/strong&gt;. Gre za tim. &lt;strong&gt;KVM stikalo&lt;/strong&gt; (angl. &lt;em&gt;KVM switch&lt;/em&gt;), torej fizično napravo, ki omogoča oddaljeno upravljanje računalnika oz. strežnika preko virtualne tipkovnice, miške in monitorja.&lt;/p&gt;

&lt;h2 id=&quot;kako-deluje&quot;&gt;Kako deluje?&lt;/h2&gt;

&lt;p&gt;Napravica ima en HDMI, tri USB-C priključke, Ethernet priključek za omrežni kabel in posebno “letvico”, kamor priključimo dodaten priložen vmesnik za upravljanje napajanja zunanjega računalnika. Kako zadeva deluje? Zelo preprosto. Napravico preko omrežnega Ethernet kabla povežemo na internet in se potem lahko nanjo s pomočjo navadnega spletnega brskalnika povežemo od koderkoli (je pa v brskalniku potrebno omogočiti &lt;em&gt;JavaScript JIT&lt;/em&gt;). Vgrajena je sicer že tudi podpora za Tailscale VPN, a z malo truda oz. &lt;em&gt;hekanja&lt;/em&gt; jo lahko povežemo tudi na svoj VPN (Wireguard ali OpenVPN). Torej lahko do nje preprosto dostopamo preko interneta od kjerkoli na svetu.&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2025/02/NanoKVM.jpg&quot;&gt;
&lt;img src=&quot;/static/2025/02/NanoKVM.jpg&quot; alt=&quot;NanoKVM&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
NanoKVM
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Napravico nato na računalnik, ki ga želimo upravljati povežemo preko HDMI kabla, naprava pa nato zajema sliko (ki bi se sicer prikazovala na monitorju) in to sliko lahko potem vidimo v brskalniku. Povezava preko USB na ciljnem računalniku simulira tipkovnico, miško, CD-ROM/USB ključek ter celo USB omrežno kartico. S tem naprava omogoča oddaljeno upravljanje računalnika kot bi sedeli za njim, v resnici pa računalnik upravljamo kar preko brskalnika preko interneta. Za razliko od aplikacij za oddaljeno upravljanje računalnika tukaj na ciljni računalnik ni potrebno nameščati ničesar, dovolj je, da nanj priključimo to napravico. Seveda pa s pomočjo te naprave lahko vstopimo tudi v BIOS ciljnega računalnika, z dodatnim vmesnikom, ki ga priključimo na prej omenjeno “letvico” pa oddaljeni računalnik lahko tudi ugasnemo, prižgemo ali resetiramo.&lt;/p&gt;

&lt;p&gt;Uporabno, saj na ta način lahko računalnik prižgemo, gremo v BIOS in tam spreminjamo nastavitve, nato pa vanj virtualno vstavimo zagonski CD in celo namestimo operacijski sistem. Pa čeprav se računalnik nahaja na drugem koncu sveta.&lt;/p&gt;

&lt;p&gt;Napravica je precej poceni - razširjena različica, ki ima vse priključke, vgrajen mini zaslonček in prikupno ohišje stane nekaj čez 60 EUR, oskubljena različica pa okrog 30 EUR. Za primerjavo, podobna naprava ki temelji na RaspberryPi in se imenuje PiKVM, stane okrog 400 EUR, je pa res, da je tista naprava precej bolj zmogljiva in zanesljiva, preko KVM razdelillca pa omogoča tudi upravljanje več naprav hkrati.&lt;/p&gt;

&lt;h2 id=&quot;kaj-pa-varnost&quot;&gt;Kaj pa varnost?&lt;/h2&gt;

&lt;p&gt;Najava naprave je na spletu povzročila precej navdušenja, ne samo zaradi nizke cene, pač pa tudi zato, ker je res majhna in porabi minimalno energije (napaja se lahko kar iz ciljnega računalnika preko USB kabla s katerim v drugo smer simulira tipkovnico, miško in ostale USB naprave). Zgrajena je na odprtokodni RISC-V procesorski arhitekturi, proizvajalec pa je obljubil, da bo programsko kodo naprave odprl oziroma jo izdal pod odprtokodno licenco, kar se je konec lanskega leta tudi res zgodilo. No, en del sicer še ni povsem odprt, a je skupnost že našla ustrezno odprtokodno nadomestilo, pa tudi proizvajalec je obljubil, da bodo odprli tudi ta del kode.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Težava pa je varnost.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Proizvajalec je seveda imel interes napravico čim prej dati na trg in ena izmed prvih različic je celo imela manjšo napako v strojni zasnovi (zaradi uporabe napačnega kabla na vezju naprava včasih ni zaznala vhodnega HDMI signala) zato so vse napravice odpoklicali in jih brezplačno zamenjali. Tudi razvoj programske opreme je bil precej intenziven in jasno je, da je podjetju v takem primeru v fokusu predvsem razvoj osnovne funkcionalnosti, varnost pa je na drugem mestu.&lt;/p&gt;

&lt;p&gt;Zato ne preseneča, da so bili razvijalci pri razvoju precej malomarni, kar je seveda posledica hitenja. A nekatere ugotovitve mojega hitrega (in vsekakor ne celovitega) varnostnega pregleda so resnično zaskrbljujoče.&lt;/p&gt;

&lt;p&gt;Že &lt;a href=&quot;https://www.hackster.io/news/security-researcher-warns-on-sipeed-s-nanokvm-finds-vulnerabilities-and-a-cat-in-the-firmware-e1157a9ff0f4&quot;&gt;eden prvih hitrih varnostnih pregledov&lt;/a&gt; je odkril številne pomanjkljivosti in celo prav bizarne zadeve - med drugim je varnostni raziskovalec na strojni programski opremi naprave &lt;strong&gt;našel celo sliko mačke&lt;/strong&gt;. Razvijalci podjetja Sipeed so te napake priznali in jih - vsaj nekatere - tudi relativno hitro odpravili. A še zdaleč ne vseh.&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2025/02/device.jpg&quot;&gt;
&lt;img src=&quot;/static/2025/02/device.jpg&quot; alt=&quot;Odprt NanoKVM&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
Odprt NanoKVM
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Napravico sem pred kratkim kupil tudi sam in tudi moj hitri pregled je odkril številne pomanjkljivosti. Naprava je na začetku imela nastavljeno privzeto geslo, z enakim geslom so bile omogočene tudi &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ssh&lt;/code&gt; povezave na napravo. Proizvajalca sem o tem obvestil in so zadevo relativno hitro popravili. A številne napake so ostale.&lt;/p&gt;

&lt;p&gt;Tako ima uporabniški vmesnik še vedno cel kup pomanjkljivosti - ni CSFR zaščite, ni mogoče invalidirati seje, in tako dalje. Šifrirni ključ za zaščito gesel (ko se preko brskalnika prijavimo na napravo) je kar vgrajen (angl. &lt;em&gt;hardcoded&lt;/em&gt;) in za vse naprave &lt;strong&gt;enak&lt;/strong&gt;. Kar absolutno nima smisla, saj napadalec s pomočjo tega ključa geslo lahko povsem preprosto dešifrira. Težava je, da je bilo to potrebno razvijalcem posebej razložiti. In to večkrat.&lt;/p&gt;

&lt;p&gt;Osebno me je zmotilo, da naprava uporablja neke kitajske DNS strežnike - nastavitev lastnih DNS strežnikov pa je precej zapletena. Prav tako naprava prenaša podatke iz kitajskih strežnikov podjetja (v bistvu iz teh strežnikov prenaša zaenkrat še edino zaprtokodno komponento, pri čemer pa preverja identifikacijski ključ naprave, ki je sicer na napravi shranjen v nešifrirani obliki). Naprava ne preverja integritete posodobitev, ima nameščeno neko čudno različico Wireguard VPN aplikacije, na njej teče precej oskubljena različica Linuxa brez &lt;em&gt;systemd&lt;/em&gt; in &lt;em&gt;apt&lt;/em&gt; komponente, najde pa se še precej podobnih cvetk. Porodne težave?&lt;/p&gt;

&lt;p&gt;Morda. A na napravi sta nameščeni orodji &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;tcpdump&lt;/code&gt; in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;aircrack&lt;/code&gt;, ki se sicer uporabljata za razhroščevanje in pomoč pri razvoju, vseeno pa gre za &lt;strong&gt;hekerski orodji&lt;/strong&gt;, ki ju je mogoče nevarno zlorabiti. Sicer povsem razumem zakaj razvijalci ti dve orodji uporabljajo, a v produkcijski različici naprave resnično nimata kaj iskati.&lt;/p&gt;

&lt;h2 id=&quot;skriti-mikrofon&quot;&gt;Skriti mikrofon&lt;/h2&gt;

&lt;p&gt;Potem pa sem na napravici &lt;strong&gt;odkril še mini mikrofon&lt;/strong&gt;, ki ga dokumentacija &lt;strong&gt;ne omenja jasno&lt;/strong&gt;. Gre za miniaturno SMD komponento, velikosti 2 x 1 mm, ki pa dejansko omogoča snemanje precej kakovostnega zvoka. In kar je dodatno zaskrbljujoče je to, da so na napravi že nameščena vsa orodja za snemanje! To omogoča, da se na napravico povežemo preko &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ssh&lt;/code&gt; (saj se spomnite, da sem na začetku omenil, da je naprava uporabljala privzeta gesla!), nato pa s pomočjo orodij &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;amixer&lt;/code&gt; in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;arecord&lt;/code&gt; preprosto zaženemo snemanje zvoka. Datoteko s posnetkom nato preprosto skopiramo na svoj računalnik. Z malo truda pa bi bilo seveda mogoče implementirati tudi oddajanje zvoka preko omrežja, kar bi napadalcu seveda omogočalo prisluškovanje v realnem času.&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2025/02/hidden_microphone.jpg&quot;&gt;
&lt;img src=&quot;/static/2025/02/hidden_microphone.jpg&quot; alt=&quot;Skriti mikrofon v NanoKVM&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
Skriti mikrofon v NanoKVM
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Mikrofon bi bilo sicer mogoče odstraniti, a je za to napravico potrebno fizično razdreti in mikrofon nato odlotati iz nje. Kot je razvidno iz slike to ni povsem enostavno, poleg tega si je treba pri lotanju pomagati z mikroskopom oz. povečevalnim steklom.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Skratka, če povzamemo&lt;/strong&gt;. Naprava ima kup varnostnih pomanjkljivosti, vsaj na začetku je uporabljala privzeta gesla, komunicira s strežniki na Kitajskem, ima nameščena hekerska orodja in vgrajen mikrofon z vso programsko podporo za snemanje zvoka, ki ga pa dokumentacija ne omenja jasno! &lt;em&gt;Je lahko še slabše?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Sicer sem prepričan, da je to posledica predvsem skrajne malomarnosti in hitenja pri razvoju in ne zlonamernosti, a vseeno vse skupaj pušča precej slab priokus.&lt;/p&gt;

&lt;p&gt;Po drugi strani pa te ugotovitve nikakor ne pomenijo, da naprava ni uporabna.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ker je zasnova naprave odprta je seveda nanjo mogoče namestiti svojo programsko opremo&lt;/strong&gt;. Eden izmed uporabnikov je tako začel &lt;a href=&quot;https://github.com/scpcom/sophgo-sg200x-debian&quot;&gt;na napravo prenašati svojo različico Linuxa&lt;/a&gt; (najprej Debian, zdaj je preklopil na Ubuntu), in z malo sreče bo ta koda kmalu postala osnova za to, da bo Ubuntu Linux tudi uradno podprt na teh napravah. Na tej različici Linuxa že teče modificirana KVM koda proizvajalca in verjetno bomo v nekaj mesecih že dobili popolnoma neodvisno programsko opremo, ki bo tudi bistveno bolj varna. Manjša težava je, da bo za namestitev te programske opreme napravo treba fizično odpreti, ven vzeti vgrajeno SD kartico in nanjo zapisati to alternativno programsko kodo. A v resnici to ni preveč zapleteno. Lahko pa ob tem še odlotamo mikrofon… ali pa gor priključimo zvočnik. Sam sem za test uporabil 8 Ohmski, 0.5 W zvočnik, ki zmore predvajati kar kvaliteten zvok in tako dobil mini predvajalnik glasbe. :)&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2025/02/speaker.jpg&quot;&gt;
&lt;img src=&quot;/static/2025/02/speaker.jpg&quot; alt=&quot;Osnovna plošča z zvočnikom&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
Osnovna plošča z zvočnikom
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Za konec pa se je dobro vprašati koliko podobnih napravic s skritimi funkcionalnostmi bi se s podobnim pregledom še našlo v vaših domovih? In to ne nujno samo kitajskega izvora. &lt;strong&gt;Ste prepričani, da nobena od njih nima vgrajenih miniaturnih mikrofonov ali kamer?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;P. S.&lt;/strong&gt; Za snemanje se je treba na napravico povezati preko &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ssh&lt;/code&gt; in zagnati naslednja dva ukaza:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;amixer -Dhw:0 cset name=&apos;ADC Capture Volume 20&apos;&lt;/code&gt; (s tem nastavimo visoko občutljivost mikrofona)&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;arecord -Dhw:0,0 -d 3 -r 48000 -f S16_LE -t wav test.wav &amp;amp; &amp;gt; /dev/null &amp;amp;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Zdaj lahko poleg napravice govorite ali prepevate (&lt;em&gt;na primer kitajsko himno&lt;/em&gt;), nato pa pritisnete &lt;em&gt;ctrl-c&lt;/em&gt; in datoteko &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;test.wav&lt;/code&gt; skopirate na svoj računalnik kjer jo lahko poslušate.&lt;/p&gt;
</description>
        <pubDate>Fri, 07 Feb 2025 01:00:00 +0100</pubDate>
        <link>https://telefoncek.si/2025/02/2025-02-07-skriti-mikrofon-na-nanokvm/</link>
        <guid isPermaLink="true">https://telefoncek.si/2025/02/2025-02-07-skriti-mikrofon-na-nanokvm/</guid>
        
        <category>Linux</category>
        
        <category>KVM</category>
        
        
        <category>Kibernetska varnost</category>
        
        <category>Informacijska tehnologija</category>
        
        <category>Odprta strojna oprema</category>
        
        <category>Odprta koda</category>
        
      </item>
    
      <item>
        <title>Signal kontejner</title>
        <description>&lt;p&gt;Signal je aplikacija za varno in zasebno sporočanje, ki je brezplačna, odprtokodna in enostavna za uporabo. Uporablja močno šifriranje od začetne do končne točke (anlg. &lt;em&gt;end-to-end&lt;/em&gt;), uporabljajo pa jo številni aktivisti, novinarji, žvižgači, pa tudi državni uradniki in poslovneži. Skratka vsi, ki cenijo svojo zasebnost. Signal teče na mobilnih telefonih z operacijskim sistemom Android in iOS, pa tudi na namiznih računalnikih (Linux, Windows, MacOS) - pri čemer je namizna različica narejena tako, da jo povežemo s svojo mobilno različico Signala. To nam omogoča, da lahko vse funkcije Signala uporabljamo tako na telefonu kot na namiznem računalniku, prav tako se vsa sporočila, kontakti, itd. sinhronizirajo med obema napravama. Vse lepo in prav, a Signal je (žal) vezan na telefonsko številko in praviloma lahko na enem telefonu poganjate samo eno kopijo Signala, enako pa velja tudi za namizni računalnik. Bi se dalo to omejitev zaobiti? Vsekakor, a za to je potreben manjši “hack”. Kakšen, preberite v nadaljevanju.&lt;/p&gt;

&lt;h2 id=&quot;poganjanje-več-različic-signala-na-telefonu&quot;&gt;Poganjanje več različic Signala na telefonu&lt;/h2&gt;

&lt;p&gt;Poganjanje več različic Signala na telefonu je zelo enostavno - a samo, če uporabljate GrapheneOS. GrapheneOS je operacijski sistem za mobilne telefone, ki ima &lt;a href=&quot;https://telefoncek.si/predavanja/Balkan_Cybersecurity_Days_2023.pdf&quot;&gt;vgrajene številne varnostne mehanizme&lt;/a&gt;, poleg tega pa je zasnovan na način, da kar najbolje skrbi za zasebnost uporabnika. Je odprtokoden, visoko kompatibilen z Androidom, vendar s številnimi izboljšavami, ki izredno otežujejo oz. kar onemogočajo tako &lt;a href=&quot;https://telefoncek.si/2024/05/2024-07-18-grapheneos-zascita-pred-zasegom-podatkov/&quot;&gt;forenzični zaseg podatkov&lt;/a&gt;, kot tudi napade z vohunsko programsko opremo tipa Pegasus in Predator.&lt;/p&gt;

&lt;p&gt;GrapheneOS omogoča uporabo več profilov (do 31 + uporabniški profil tim. gosta), ki so med seboj popolnoma ločeni. To pomeni, da lahko v različnih profilih nameščate različne aplikacije, imate povsem različen seznam stikov, na enem profilu uporabljate en VPN, na drugem drugega ali pa sploh nobenega, itd.&lt;/p&gt;

&lt;p&gt;Rešitev je torej preprosta. V mobilnem telefonu z GrapheneOS si odpremo nov profil, tam namestimo novo kopijo Signala, v telefon vstavimo drugo SIM kartico in Signal povežemo z novo številko.&lt;/p&gt;

&lt;p&gt;Ko je telefonska številka registrirana, lahko SIM kartico odstranimo in v telefon vstavimo staro. Signal namreč za komunikacijo uporablja samo prenos podatkov (seveda lahko telefon uporabljamo tudi brez SIM kartice, samo na WiFi-ju). Na telefonu imamo sedaj nameščeni dve različici Signala, vezani na dve različni telefonski številki, in iz obeh različic lahko pošiljamo sporočila (tudi med njima dvema!) ali kličemo.&lt;/p&gt;

&lt;p&gt;Čeprav so profili ločeni, pa lahko nastavimo, da obvestila iz aplikacije Signal na drugem profilu, dobivamo tudi ko smo prijavljeni v prvi profil. Le za pisanje sporočil ali vzpostavljanje klicev, bo treba preklopiti v pravi profil na telefonu.&lt;/p&gt;

&lt;p&gt;Preprosto, kajne?&lt;/p&gt;

&lt;h1 id=&quot;poganjanje-več-različic-signala-na-računalniku&quot;&gt;Poganjanje več različic Signala na računalniku&lt;/h1&gt;

&lt;p&gt;Zdaj bi si seveda nekaj podobnega želeli tudi na računalniku. Skratka, želeli bi si možnosti, da na računalniku, pod enim uporabnikom poganjamo dve različni instanci Signala (vsaka vezana na svojo telefonsko številko).&lt;/p&gt;

&lt;p&gt;No, tukaj je zadeva na prvi pogled malenkost bolj zapletena, a se s pomočjo virtualizacije da težavo elegantno rešiti. Seveda na računalniku samo za Signal ne bomo poganjali kar celega novega virtualnega stroja, lahko pa uporabimo tim. kontejner.&lt;/p&gt;

&lt;p&gt;V operacijskem sistemu Linux najprej namestimo aplikacijo &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;systemd-container&lt;/code&gt; (v sistemih Ubuntu je sicer že privzeto nameščena).&lt;/p&gt;

&lt;p&gt;Na gostiteljskem računalniku omogočimo tim neprivilegirane uporabniške imenske prostore (angl. &lt;em&gt;unprivileged user namespaces&lt;/em&gt;), in sicer z ukazom &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo nano /etc/sysctl.d/nspawn.conf&lt;/code&gt;, nato pa v datoteko vpišemo:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;kernel.unprivileged_userns_clone=1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Zdaj je SistemD storitev treba ponovno zagnati:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo systemctl daemon-reload
sudo systemctl restart systemd-sysctl.service
sudo systemctl status systemd-sysctl.service
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;…nato pa lahko namestimo Debootstrap: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo apt install debootstrap&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Zdaj ustvarimo nov kontejner, v katerega bomo namestili operacijski sistem Debian (in sicer različico &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;stable&lt;/code&gt;) - v resnici bo nameščena le minimalno zahtevana koda operacijskega sistema:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo debootstrap --include=systemd,dbus stable
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Dobimo približno takle izpis:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/var/lib/machines/debian
I: Keyring file not available at /usr/share/keyrings/debian-archive-keyring.gpg; switching to https mirror https://deb.debian.org/debian
I: Retrieving InRelease 
I: Retrieving Packages 
I: Validating Packages 
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Checking component main on https://deb.debian.org/debian...
I: Retrieving adduser 3.134
I: Validating adduser 3.134
...
...
...
I: Configuring tasksel-data...
I: Configuring libc-bin...
I: Configuring ca-certificates...
I: Base system installed successfully.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Zdaj je kontejner z operacijskim sistemom Debian nameščen. Zato ga zaženemo in nastavimo geslo korenskega uporabnika
:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo systemd-nspawn -D /var/lib/machines/debian -U --machine debian
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Dobimo izpis:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Spawning container debian on /var/lib/machines/debian.
Press Ctrl-] three times within 1s to kill container.
Selected user namespace base 1766326272 and range 65536.
root@debian:~#
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Zdaj se preko navideznega terminala povežemo v operacijski sistem in vpišemo naslednja dva ukaza:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;passwd
printf &apos;pts/0\npts/1\n&apos; &amp;gt;&amp;gt; /etc/securetty 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;S prvim ukazom nastavimo geslo, drugi pa omogoči povezavo preko tim. lokalnega terminala (TTY). Na koncu vpišemo ukaz &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;logout&lt;/code&gt; in se odjavimo nazaj na gostiteljski računalnik.&lt;/p&gt;

&lt;p&gt;Zdaj je treba nastaviti omrežje, ki ga bo uporabljal kontejner. Najbolj enostavno je, če uporabimo kar omrežje gostiteljskega računalnika. Vpišemo naslednja dva ukaza:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo mkdir /etc/systemd/nspawn
sudo nano /etc/systemd/nspawn/debian.nspawn
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;V datoteko vnesemo:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;[Network]
VirtualEthernet=no
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Zdaj kontejner ponovno zaženemo z ukazom &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo systemctl start systemd-nspawn@debian&lt;/code&gt; ali pa še enostavneje - &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;machinectl start debian&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Seznam zagnanih kontejnerjev si lahko tudi ogledamo:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;machinectl list
MACHINE CLASS     SERVICE        OS     VERSION ADDRESSES
debian  container systemd-nspawn debian 12      -        

1 machines listed.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Oziroma se povežemo v ta virtualni kontejner: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;machinectl login debian&lt;/code&gt;. Dobimo izpis:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Connected to machine debian. Press ^] three times within 1s to exit session.

Debian GNU/Linux 12 cryptopia pts/1

cryptopia login: root
Password: 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Na izpisu se vidi, da smo se povezali z uporabnikom &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;root&lt;/code&gt; in geslom, ki smo ga prej nastavili.&lt;/p&gt;

&lt;p&gt;Zdaj v tem kontejnerju namestimo Signal Desktop.&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;apt update
apt install wget gpg

wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor &amp;gt; signal-desktop-keyring.gpg

echo &apos;deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main&apos; | tee /etc/apt/sources.list.d/signal-xenial.list

apt update
apt install --no-install-recommends signal-desktop
halt
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Z zadnjim ukazom kontejner zaustavimo. Zdaj je v njem nameščena sveža različica aplikacije Signal Desktop.&lt;/p&gt;

&lt;p&gt;Mimogrede, če želimo, lahko kontejner preimenujemo v bolj prijazno ime, npr. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo machinectl rename debian debian-signal&lt;/code&gt;. Seveda pa bomo potem isto ime morali uporabljati tudi za zagon kontejnerja (torej, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;machinectl login debian-signal&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Zdaj naredimo skripto, s katero bomo kontejner pognali in v njem zagnali Signal Desktop na način, da bomo njegovo okno videli na namizju gostiteljskega računalnika:&lt;/p&gt;

&lt;p&gt;Ustvarimo datoteko &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;nano /opt/runContainerSignal.sh&lt;/code&gt; (ki jo shranimo npr. v mapo &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/opt&lt;/code&gt;), vsebina datoteke pa je naslednja:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;#!/bin/sh
xhost +local:
pkexec systemd-nspawn --setenv=DISPLAY=:0 \
                      --bind-ro=/tmp/.X11-unix/  \
                      --private-users=pick \
                      --private-users-chown \
                      -D /var/lib/machines/debian-signal/ \
                      --as-pid2 signal-desktop --no-sandbox
xhost -local:
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;S prvim &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;xhost&lt;/code&gt; ukazom omogočimo povezovanje na naš zaslon, vendar samo iz lokalnega računalnika, drugi &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;xhost&lt;/code&gt; ukaz pa bo te povezave (na zaslon) spet blokiral). Nastavimo, da je skripta izvršljiva (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chmod +x runContainerSignal.sh&lt;/code&gt;), in to je to.&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2024/11/SignalContainer.png&quot;&gt;
&lt;img src=&quot;/static/2024/11/SignalContainer.png&quot; alt=&quot;Dve ikoni aplikacije Signal Desktop&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
Dve ikoni aplikacije Signal Desktop
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;No, ne še čisto, saj bi skripto morali zaganjati v terminalu, veliko bolj udoben pa je zagon s klikom na ikono.&lt;/p&gt;

&lt;p&gt;Naredimo torej &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.desktop&lt;/code&gt; datoteko: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;nano ~/.local/share/applications/runContainerSignal.desktop&lt;/code&gt;. Vanjo zapišemo naslednjo vsebino:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;[Desktop Entry]
Type=Application
Name=Signal Container
Exec=/opt/runContainerSignal.sh
Icon=security-high
Terminal=false
Comment=Run Signal Container
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;…namesto ikone &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;security-high&lt;/code&gt;, lahko uporabimo kakšno drugo, na primer:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Icon=/usr/share/icons/Yaru/scalable/status/security-high-symbolic.svg
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Pojasnilo: skripta je shranjena v &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~/.local/share/applications/&lt;/code&gt;, torej je dostopa samo specifičnemu uporabniku in ne vsem uporabnikom na računalniku.&lt;/p&gt;

&lt;p&gt;Zdaj nastavimo, da je &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.desktop&lt;/code&gt; datoteka  izvršljiva: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chmod +x ~/.local/share/applications/runContainerSignal.desktop&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Osvežimo tim. namizne vnose (angl. &lt;em&gt;Desktop Entries&lt;/em&gt;): &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;update-desktop-database ~/.local/share/applications/&lt;/code&gt;, in to je to!&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2024/11/dva_signala.png&quot;&gt;
&lt;img src=&quot;/static/2024/11/dva_signala.png&quot; alt=&quot;Dve instanci aplikacije Signal Desktop&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
Dve instanci aplikacije Signal Desktop
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Ko bomo v iskalnik aplikacij vpisali “Signal Container”, se bo prikazala ikona aplikacije, sklikom na njo pa bomo zagnali Signal v kontejnerju (bo pa za zagon potrebno vpisati geslo).&lt;/p&gt;

&lt;p&gt;Zdaj ta Signal Desktop samo še povežemo s kopijo Signala na telefonu in že lahko na računalniku uporabljamo dve kopiji aplikacije Signal Desktop.&lt;/p&gt;

&lt;h2 id=&quot;kaj-pa&quot;&gt;Kaj pa…?&lt;/h2&gt;

&lt;p&gt;Žal pa v opisanem primeru ne deluje dostop do kamere in zvoka. Klice bomo torej še vedno morali opravljati iz telefona.&lt;/p&gt;

&lt;p&gt;Izkaže se namreč, da je povezava kontejnerja z zvočnim sistemom PipeWire in kamero gostiteljskega računalnika neverjetno zapletena (vsaj v moji postavitvi sistema). Če imate namig kako zadevo rešiti, pa mi seveda lahko sporočite. :)&lt;/p&gt;
</description>
        <pubDate>Sun, 10 Nov 2024 01:00:00 +0100</pubDate>
        <link>https://telefoncek.si/2025/02/2025-02-07-Kako sem na mini kitajski napravi odkril skriti mikrofon/</link>
        <guid isPermaLink="true">https://telefoncek.si/2025/02/2025-02-07-Kako sem na mini kitajski napravi odkril skriti mikrofon/</guid>
        
        <category>Signal</category>
        
        <category>Linux</category>
        
        
        <category>Zasebnost</category>
        
        <category>Informacijska tehnologija</category>
        
      </item>
    
      <item>
        <title>Varnost in zanesljivost aplikacije Telegram</title>
        <description>&lt;p&gt;Včeraj zvečer je odjeknila novica, da so &lt;a href=&quot;https://m.jpost.com/breaking-news/article-816149&quot;&gt;v Franciji aretirali ustanovitelja in izvršnega direktorja Telegrama Pavla Durova&lt;/a&gt;. Francoske oblasti mu očitajo, da ni sprejel zadostnih ukrepov za omejevanje kriminalnega delovanja na platformi, zaradi česar so kriminalci Telegram uporabljali za pranje denarja, trgovino z drogami in deljenje pedofilskih vsebin.&lt;/p&gt;

&lt;p&gt;Ob tem se je pojavilo precej špekulacij, da je ustanovitelj Telegrama tarča zato, ker je Telegram “preveč” varen. Zanimivo je, da Durov že dlje časa &lt;a href=&quot;https://cointelegraph.com/news/telegrams-pavel-durov-wrong-about-signal-has-been-for-years&quot;&gt;vodi kampanjo proti Signalu&lt;/a&gt;, kjer Signal skuša predstaviti kot ne-varen, Telegram pa kot edino pravo aplikacijo za varno komuniciranje.&lt;/p&gt;

&lt;p&gt;Precej intenzivno kampanjo proti Signalu je Durov nazadnje zagnal maja letos, na kar je &lt;a href=&quot;https://twitter.com/matthew_d_green/status/1789690133765091532&quot;&gt;v svojem zapisu na Twitterju opozoril&lt;/a&gt; tudi Matthew Green, ki sicer velja za enega najbolj znanih kriptografov in varnostnih strokovnjakov. Durov je takrat skušal aplikacijo Signal prikazati kot varnostno nezanesljivo, pri širjenju teh dezinformacij pa je pomagal tudi Elon Musk.&lt;/p&gt;

&lt;p&gt;Matthew Green je Twitterju lepo razložil, da je Signalov kriptografski protokol superioren in dejansko eden najboljših na svetu. Aplikacija Signal je odprtokodna, uporabniško zelo prijazna, kriptografsko varna, poleg tega pa še zelo ščiti zasebnost. Po novem pa tudi povečuje anonimnost svojih uporabnikov, saj omogoča anonimne identitete.&lt;/p&gt;

&lt;p&gt;Telegram pa je po drugi strani &lt;a href=&quot;https://telefoncek.si/2022/05/2022-05-09-suitability-of-using-telegram-for-secure-communications/&quot;&gt;varnostno precej šibak, privzeto ne omogoča šifriranja, več varnostnih raziskovalcev pa je odkrilo, da je bilo uporabnike Telegrama mogoče dokaj preprosto geolocirati&lt;/a&gt;. Varnostni raziskovalci so v Telegramovem šifrirnem protokolu odkrili tudi &lt;a href=&quot;https://words.filippo.io/dispatches/telegram-ecdh/&quot;&gt;zanimivo napako, ki je varnost šifriranja močno zmanjšala&lt;/a&gt;. Napaka je zanimiva predvsem zato, ker se zdi, da je precej verjetno namerna. Napaka je bila sicer kasneje odpravljena, slab priokus pa ostaja.&lt;/p&gt;

&lt;p&gt;Durov je v javnih nastopih večkrat poudarjal, da naj bi bil Telegram trn v peti ruskim tajnim službam (Durov je namreč državljan Rusije in Telegram so najprej razvijali v Rusiji).&lt;/p&gt;

&lt;p&gt;Pa vendar - &lt;a href=&quot;https://www.reuters.com/technology/signal-messenger-blocked-russia-says-roskomnadzor-ifax-2024-08-09/&quot;&gt;aplikacija Signal je v Rusiji blokirana&lt;/a&gt;, Telegram pa ne. Še več, Oleg Matveychev, znan tudi kot “&lt;em&gt;kremeljski propagandist&lt;/em&gt;”, sicer pa član ruske Dume in namestnik predsednika parlamentarnega odbora za informacijsko politiko, informacijsko tehnologijo in komunikacije, je marca 2022 &lt;a href=&quot;https://pdmnews.ru/25704/&quot;&gt;izrecno izjavil&lt;/a&gt;, da v Rusiji Telegrama ne bodo blokirali, saj da je “&lt;em&gt;politično nevtralen&lt;/em&gt;”. Le zakaj?&lt;/p&gt;

&lt;p&gt;Za strokovnjake iz področja varnosti so trditve Durova (in Muska) popolnoma absurdne. Žal pa take kampanje širjenja dezinformacij običajne uporabnike lahko zmedejo. Zakaj se torej znova in znova pojavljajo?&lt;/p&gt;

&lt;p&gt;Najverjetneje je cilj teh kampanj prepričati aktiviste, da prenehajo uporabljati varen Signal in začnejo uporabljati ne-varen Telegram. Zakaj, si seveda lahko le mislimo.&lt;/p&gt;

&lt;p&gt;In ravno zato je pomembno, da se zavajanja Telegrama javno izpostavi.&lt;/p&gt;
</description>
        <pubDate>Sun, 25 Aug 2024 02:00:00 +0200</pubDate>
        <link>https://telefoncek.si/2024/08/2024-08-25-varnost-in-zanesljivost-aplikacije-telegram/</link>
        <guid isPermaLink="true">https://telefoncek.si/2024/08/2024-08-25-varnost-in-zanesljivost-aplikacije-telegram/</guid>
        
        <category>Telegram</category>
        
        <category>Signal</category>
        
        <category>Zasebnost</category>
        
        <category>šifriranje</category>
        
        
        <category>Zasebnost</category>
        
        <category>Informacijska tehnologija</category>
        
      </item>
    
      <item>
        <title>Povezava Mikrotik usmerjevalnika v Wireguard omrežje</title>
        <description>&lt;p&gt;WireGuard je sodoben in hiter VPN, ki je bil tudi &lt;a href=&quot;https://www.wireguard.com/formal-verification/&quot;&gt;formalno verificiran&lt;/a&gt;, kar pomeni, da za Wireguard protokol obstaja matematični dokaz, da je varen. V tokratnem prispevku si bomo ogledali kako Mikrotik usmerjevalnik povežemo v Wireguard omrežje, a ne kot strežnik, pač pa kot tim. vrstnika (angl. &lt;em&gt;peer&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Mikrotik je blagovna znamka zmogljivih in cenovno dostopnih omrežnih naprav, na katerih teče poseben operacijski sistem RouterOS. Mikrotik omrežna oprema je na voljo tako za domača omrežja (domači usmerjevalniki, WiFi dostopne točke,…), kot tudi za omrežja manjših ali večjih podjetij, na voljo pa so tudi zelo zmogljivi izdelki, ki jih uporabljajo tudi nekateri ponudniki dostopa do interneta.&lt;/p&gt;

&lt;p&gt;A najprej vprašanje, zakaj bi Mikrotik usmerjevalnik sploh želeli povezati v Wireguard (VPN) omrežje kot vrstnika? En scenarij uporabe je, da želimo oddaljeno dostopati do njegovega administrativnega vmesnika. To bi sicer lahko naredili tudi preko njegovega javnega IP naslova, a težava je, če ta ni stalen (no, to je sicer rešljivo), predvsem pa, če je usmerjevalnik “skrit” za NAT-om, torej ni neposredno dostopen iz interneta. Rešitev je torej na dlani - usmerjevalnik nastavimo tako, da se bo sam povezal na VPN strežnik, nato pa bomo do njega dostopali preko njegovega VPN naslova.&lt;/p&gt;

&lt;p&gt;Na Mikrotik se lahko povežemo preko spletnega vmesnika, preko aplikacije Winbox ali preko SSH povezave. A najprej nekaj predpriprave.&lt;/p&gt;

&lt;p&gt;Če želimo na Mikrotik napravah uporabljati Wireguard, moramo imeti nameščen RouterOS v7 ali novejši. Ker bomo Mikrotik povezali v Wireguard omrežje, potrebujemo Wireguard strežnik - predpostavljamo, da ga že imate postavljenega. Iz njega bomo potrebovali:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;zunanji IP naslov in vrata kamor se bodo tim. &lt;em&gt;vrstniki&lt;/em&gt; povezovali;&lt;/li&gt;
  &lt;li&gt;njegov javni ključ;&lt;/li&gt;
  &lt;li&gt;PSK ključ Mikrotik odjemalca (ki ga ustvarimo kar na Wireguard strežniku);&lt;/li&gt;
  &lt;li&gt;razmislimo pa tudi kateri VPN IP naslov bomo dodelili Mikrotiku.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Zdaj pa se vrnimo na Mikrotik. V spletnem vmesniku ali Winboxu odpremo konzolo (če se povežemo preko SSH samodejno vstopimo vanjo) in najprej ustvarimo nov omrežni vmesnik z menom &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;wireguard1&lt;/code&gt;, ki posluša na nekih vratih (nastavimo lahko katerakoli, ki niso zasedena, v našem primeru &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;51821&lt;/code&gt;):&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/interface/wireguard/add listen-port=51821 name=wireguard1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Če želimo videti seznam Wireguard omrežnih vmesnikov, vpišemo ukaz:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/interface/wireguard/print
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Dobimo izpis, kjer vidimo tudi zasebni in javni ključ Mikrotik vrstnika:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Flags: X - disabled; R - running 
 0  R name=&quot;wireguard1&quot; mtu=1420 listen-port=51820 private-key=&quot;zasebni-kljuc-Mikrotik-vrstnika&quot; public-key=&quot;javni-kljuc-Mikrotik-vrstnika&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Opomba, če bi želeli Wireguard vmesnik z imenom &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;wireguard1&lt;/code&gt; odstraniti, to storimo z ukazom:
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/interface/wireguard/remove wireguard1&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Zdaj dodamo povezavo do Wireguard strežnika:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/interface/wireguard/peers add allowed-address=10.10.7.0/24 endpoint-address=xx.xx.xx.xx endpoint-port=51194 interface=wireguard1 persistent-keepalive=5s public-key=&quot;javni-kljuc-wg-streznika&quot; preshared-key=&quot;PSK-kljuc-Mikrotik-vrstnika
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Razlaga:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;allowed-address&lt;/code&gt;: tukaj vpišemo Wireguard podomrežje (iz Wireguard strežnika), v našem primeru je to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;10.10.7.0/24&lt;/code&gt;;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;endpoint-address&lt;/code&gt;: javni IP naslov Wireguard strežnika;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;endpoint-port&lt;/code&gt;: vrata, kamor se povezujejo Wireguard vrstniki (privzeto so &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;51194&lt;/code&gt;);&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;interface&lt;/code&gt;: Wireguard vmensik za katerega veljano nastavitve (v našem primeru &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;wireguard1&lt;/code&gt;);&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;persistent-keepalive&lt;/code&gt;: določimo, da bo odjemalec do strežnika ohranjal aktivno povezavo tako, da bo vsakih 5 sekund (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;5s&lt;/code&gt;) na strežnik poslal ping;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;public-key&lt;/code&gt;: javni ključ Wireguard strežnika;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;preshared-key&lt;/code&gt;: PSK ključ Mikrotik vrstnika.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Seznam vrstnikov lahko tudi pogledamo (v našem primeru imamo seveda samo enega):&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/interface/wireguard/peers print
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Columns: INTERFACE, PUBLIC-KEY, ENDPOINT-ADDRESS, ENDPOINT-PORT, ALLOWED-ADDRESS, PRESHARED-KEY, PERSISTENT-KEEPALIVE      
# INTERFACE   PUBLIC-KEY                                    ENDPOINT-ADDRESS  ENDPOINT-PORT  ALLOWED-ADDRESS  PRESHARED-KEY                                 PE
0 wireguard1  javni-kljuc-Mikrotik-vrstnika                 xx.xx.xx.xx               51194  10.10.7.0/24     PSK-kljuc-Mikrotik-vrstnika                   5s
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Kratka opomba, če bi želeli ta vnos (z zaporedno številko 0, označeno na začetku) odstraniti, uporabimo ukaz: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/interface/wireguard/peers&amp;gt; /interface/wireguard/peers/remove numbers=0&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Zdaj je na Wireguard &lt;strong&gt;strežniku&lt;/strong&gt; potrebno v nastavitveno datoteko &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;wg0.conf&lt;/code&gt; dodati:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;javni ključ Wireguard strežnika&lt;/li&gt;
  &lt;li&gt;PSK ključ Mikrotik vrstnika&lt;/li&gt;
  &lt;li&gt;IP naslov Mikrotik vrstnika (v našem primeru smo uporabili &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;10.10.7.155&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Primer (nastavitvena datoteka &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/wireguard/wg0.conf&lt;/code&gt;):&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;[Peer]
# MojMikrotik
PublicKey = javni-kljuc-Mikrotik-vrstnika
PresharedKey = PSK-kljuc-Mikrotik-vrstnika
AllowedIPs = 10.10.7.155/32
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Na tej točki na Wireguard strežniku ponovno naložimo nastavitve:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;systemctl reload wg-quick@wg0.service
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Vrnemo se na Mikrotik. Zdaj je na Mikrotiku na Wireguard omrežni vmesnik potrebno dodati IP naslov, ki smo ga določili na strežniku:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/ip address add address=10.10.7.155/32 interface=wireguard1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Nato pa še tim. omrežno pot (angl &lt;em&gt;route&lt;/em&gt;):&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/ip route add dst-address=10.10.7.0/24 gateway=wireguard1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;S tem je Mikrotik povezan v Wireguard omrežje. A verjetno boste opazili, da povezava iz Wireguard omrežja do Mikrotika ne deluje, saj jo onemogoča požarni zid. Treba je torej dodati pravilo, da Mikrotik dovoli povezave iz Wireguard omrežja:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/ip firewall filter add action=accept chain=input comment=&quot;Access from Wireguard network&quot; in-interface=wireguard1 src-address=10.10.7.0/24
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Vendar pa verjetno povezava kljub temu ne bo delala, saj se vsako novo pravilo samodejno doda na konec seznama pravil. Pravilo je potrebno prestaviti nekoliko višje navzgor, točneje, takoj pred pravilo, ki zavrže vse paketke, ki ne prihajajo iz LAN omrežja. Najprej izpišemo seznam pravil:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/ip firewall filter print
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Nato pa to zadnje pravilo premaknemo na višje mesto:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/ip firewall filter move N destination=D
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Razlaga:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;N je trenutna zaporedna številka pravila&lt;/li&gt;
  &lt;li&gt;D je na katero mesto naj se prestavi to pravilo&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Primer trenutnih pravil, s katerimi blokiramo vse zunanje povezave (razen iz Wireguard omrežja), dovolimo pa povezave znotraj LAN omrežja in povezave navzven:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/ip firewall filter print
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Izpis seznama pravil:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Flags: X - disabled, I - invalid; D - dynamic 
 0  D ;;; special dummy rule to show fasttrack counters
      chain=forward action=passthrough 

 1    ;;; defconf: accept established,related,untracked
      chain=input action=accept connection-state=established,related,untracked 

 2    ;;; defconf: drop invalid
      chain=input action=drop connection-state=invalid 

 3    ;;; defconf: accept ICMP
      chain=input action=accept protocol=icmp 

 4    ;;; defconf: accept to local loopback (for CAPsMAN)
      chain=input action=accept dst-address=127.0.0.1 

 5    ;;; Block new connections from outside
      chain=input action=drop connection-state=new in-interface-list=WAN 

 6    ;;; Access from Wireguard network
      chain=input action=accept src-address=10.10.7.0/24 in-interface=wireguard1 

 7    ;;; defconf: drop all not coming from LAN
      chain=input action=drop in-interface-list=!LAN 

 8    ;;; defconf: accept in ipsec policy
      chain=forward action=accept ipsec-policy=in,ipsec 

 9    ;;; defconf: accept out ipsec policy
      chain=forward action=accept ipsec-policy=out,ipsec 

10    ;;; defconf: fasttrack
      chain=forward action=fasttrack-connection hw-offload=yes connection-state=established,related 

11    ;;; defconf: accept established,related, untracked
      chain=forward action=accept connection-state=established,related,untracked 

12    ;;; defconf: drop invalid
      chain=forward action=drop connection-state=invalid 

13    ;;; defconf: drop all from WAN not DSTNATed
      chain=forward action=drop connection-state=new connection-nat-state=!dstnat in-interface-list=WAN 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;S tem je Mikrotik postal povezan v Wireguard omrežje. Do njega lahko dostopamo preko IP naslova 10.10.7.155.&lt;/p&gt;

&lt;p&gt;Vsekakor se iz nekega zunanjega strežnika in iz Wireguard omrežja splača preveriti ali požarni zid deluje. Najprej preverimo odprta vrata na Mikrotiku iz Wireguard omrežja: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;nmap 10.10.7.155&lt;/code&gt;. Izpis:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Starting Nmap 7.93 ( https://nmap.org ) at 2024-08-20 13:33 UTC
Nmap scan report for 10.10.7.155
Host is up (0.057s latency).
Not shown: 993 closed tcp ports (reset)
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet
53/tcp   open  domain
80/tcp   open  http
2000/tcp open  cisco-sccp
8291/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 1.15 seconds
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Nato pa še preko zunanjega IP naslova Mikrotika (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;nmap xx.xx.xx.xx&lt;/code&gt;):&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Starting Nmap 7.93 ( https://nmap.org ) at 2024-08-20 13:33 UTC
Nmap scan report for xx.xx.xx.xx
Host is up (0.052s latency).
All 1000 scanned ports on xx.xx.xx.xx are in ignored states.
Not shown: 1000 filtered tcp ports (no-response)

Nmap done: 1 IP address (1 host up) scanned in 53.08 seconds
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Iz &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;nmap&lt;/code&gt; izpisa je razvidno, da administrativni in drugi vmeniki Mikrotika iz njegovega javnega IP naslova niso dosegljivi, iz Wireguard omrežja pa je vse dosegljivo.&lt;/p&gt;

&lt;p&gt;Z opisanim postopkom smo torej Mikrotik napravo nastavili, da se ob zagonu samodejno poveže v VPN omrežje in nam je potem iz VPN omrežja tudi vedno dosegljiva.&lt;/p&gt;
</description>
        <pubDate>Wed, 21 Aug 2024 02:00:00 +0200</pubDate>
        <link>https://telefoncek.si/2024/08/2024-08-21-povezava-mikrotik-usmerjevalnika-v-wireguard-omrezje/</link>
        <guid isPermaLink="true">https://telefoncek.si/2024/08/2024-08-21-povezava-mikrotik-usmerjevalnika-v-wireguard-omrezje/</guid>
        
        <category>Mikrotik</category>
        
        <category>VPN</category>
        
        
        <category>Odprta koda</category>
        
      </item>
    
      <item>
        <title>GrapheneOS - zaščita pred zasegom podatkov iz telefona</title>
        <description>&lt;p&gt;Večina posameznikov na mobilnih telefonih hrani številne zelo osebne podatke, od fotografij, elektronske pošte, do sporočil, ki si jih izmenjujejo s svojimi bližnjimi. Nekateri, npr. preiskovalni novinarji in politični aktivisti, pa imajo na svojih mobilnih telefonih tudi druge občutljive podatke, ki jih ne bi želeli razkriti, saj bi njihovo razkritje lahko ogrozilo njihove vire ali aktivnosti. Enako velja tudi za odločevalce, uslužbence v podjetjih, itd.&lt;/p&gt;

&lt;p&gt;Uporabniki zato svoje mobilne telefone zaklepajo, za odklep telefona (in s tem dostop do podatkov) pa so na voljo različne metode: odklep z geslom, s PIN kodo, z vzorcem za odklepanje, s pomočjo prstnega odtisa ali s pomočjo prepoznave obraza.&lt;/p&gt;

&lt;p&gt;Slednji dve metodi sta biometrični in za uporabnike zelo priročni, a s stališča varnosti precej problematični. S stališča varnosti je namreč pomembno, da identiteta (“&lt;em&gt;Kdo si?&lt;/em&gt;”) in avtentikacija (“&lt;em&gt;Kako lahko to dokažeš?&lt;/em&gt;”) ostaneta ločeni vprašanji. Pri uporabi biometrije temu ni tako, saj se biometrični parametri smatrajo kot dokaz identitete. To je še posebej problematično v primeru, da biometrične parametre nekdo ponaredi oz. ukrade, saj jih v takem primeru - za razliko od gesel ali šifrirnih ključev - ni mogoče spremeniti ali preklicati. Poleg tega so biometrični podatki praviloma sami po sebi javni.&lt;/p&gt;

&lt;p&gt;Sodobni telefoni za prvi odklep po zagonu (tim. BFU - &lt;em&gt;Before First Unlock&lt;/em&gt;) večinoma zahtevajo eno izmed ne-biometričnih metod. Ko pa je telefon po zagonu prvič uspešno uspešno odklenjen, se za odklep zaslona lahko uporablja ena izmed biometričnih metod.&lt;/p&gt;

&lt;p&gt;To lahko predstavlja težavo. Znani so namreč primeri, ko je naključni mimoidoči posnel nezakonito ravnanje policije, policist pa je nato posamezniku vzel mobilni telefon, ga prisilno odklenil s pomočjo prepoznave obraza in potem zanj sporne fotografije ali posnetke izbrisal.&lt;/p&gt;

&lt;p&gt;Dodaten izziv za zasebnost predstavlja tudi tim. forenzični zaseg podatkov. Gre za skupek tehnik, ki se uporabljajo v digitalni forenziki, s katerimi je mogoče s pomočjo različnih orodij in (hekerskih) tehnik mobilni telefon odkleniti in potem dostopati do datotek na njem. Žal teh tehnik ne uporabljajo samo “uradni” digitalni forenziki in policija v demokratičnih državah, pač pa tudi hekerji, kiberkriminalci in različni avtoritarni režimi.&lt;/p&gt;

&lt;p&gt;Večino mobilnih telefonov, tako z operacijskim sistemom Android, kot tudi iOS, &lt;a href=&quot;https://www.magnetforensics.com/blog/graykey-supported-mobile-devices/&quot;&gt;je mogoče odkleniti&lt;/a&gt; s pomočjo različnih hekerskih tehnik (s tim. vdorom) ali z ugibanjem PIN kode/gesla. Večina telefonov ima sicer omejeno število poskusov za ugibanje gesla, vendar orodja kot na primer &lt;em&gt;GrayKey&lt;/em&gt; podjetja &lt;em&gt;Magnet Forensics&lt;/em&gt; ali &lt;em&gt;Universal Forensic Extraction Device&lt;/em&gt; podjetja &lt;em&gt;Cellebrite&lt;/em&gt; te omejitve pri večini telefonov odstranijo in potem z metodo grobe sile gesla ugibajo brez omejitev.&lt;/p&gt;

&lt;p&gt;GrapheneOS ima zato implementirane številne tehnike in izboljšave s katerimi otežuje tako vdore v telefon (tim. “hekanje”), kot tudi neomejeno ugibanje PIN kode/gesla. Posledično je v mobilne telefone z nameščenim GrapheneOS izjemno težko vdreti, kar priznavajo tudi vodilni ponudniki opreme za digitalno forenziko mobilnih telefonov. Pobegli dokumenti podjetja &lt;em&gt;Cellebrite&lt;/em&gt; (pa tudi dokumenti podjetja &lt;em&gt;Magnet Forensics&lt;/em&gt;) razkrivajo, da za forenzični zaseg podatkov iz telefonov z nameščenim GrapheneOS ta podjetja &lt;a href=&quot;/2024/05/2024-05-30-grapheneos-and-forensic-extraction-of-data/&quot;&gt;nimajo rešitev&lt;/a&gt; (razen v primeru soglasja uporabnika oz. tim. prostovoljnega odklepa telefona s strani uporabnika).&lt;/p&gt;

&lt;p&gt;V takih primerih torej napadalcu ne preostane nič drugega kot to, da telefon skuša odkleniti prisilno. Kar je pravzaprav v primeru biometrije  relativno enostavno in vsaj v ZDA tudi povsem zakonito.&lt;/p&gt;

&lt;h2 id=&quot;prisilno-odklepanje-mobilnih-naprav&quot;&gt;Prisilno odklepanje mobilnih naprav&lt;/h2&gt;

&lt;p&gt;Prvi dokumentirani primer prisilnega odklepa telefona s pomočjo biometrije &lt;a href=&quot;https://www.wired.com/story/police-unlock-iphone-face-id-legal-rights/&quot;&gt;sega v leto 2018&lt;/a&gt;, ko je policija 28-letnega Američana &lt;em&gt;Granta Michalskega&lt;/em&gt; osumila razširjanja otroške pornografije. Policija mu je telefon zasegla, sodišče pa je v odredbi dovolilo, da telefon (šlo je za iPhone X) tudi &lt;a href=&quot;https://www.forbes.com/sites/thomasbrewster/2018/09/30/feds-force-suspect-to-unlock-apple-iphone-x-with-their-face/#77a66ea71259&quot;&gt;prisilno odklenejo s pomočjo Face ID tehnologije&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Sicer v večini demokratičnih držav velja privilegij zoper samoobtožbo, v skladu s katerim se nihče ni dolžan izpovedati zoper sebe ali svoje bližnje. To pomeni, da osumljenec preiskovalnim organom ni dolžan povedati svojega gesla. V ZDA je ta pravica opredeljena v tim. Petem amandmaju, v EU v &lt;a href=&quot;https://fra.europa.eu/en/law-reference/charter-fundamental-rights-and-freedoms-28&quot;&gt;Charter of Fundamental Rights and Freedoms v 37. členu&lt;/a&gt;, v Sloveniji pa je opedeljen v četrti alineji 29. člena Ustave Republike Slovenije.&lt;/p&gt;

&lt;p&gt;Vendar pa so ameriška (in tudi druga) sodišča že večkrat presodila, da privilegij zoper samoobtožbo &lt;a href=&quot;https://arstechnica.com/tech-policy/2024/04/cops-can-force-suspect-to-unlock-phone-with-thumbprint-us-court-rules/&quot;&gt;ne velja v primeru biometričnih podatkov&lt;/a&gt; (in tudi DNK vzorcev), saj v tem primeru ne gre za pričanje (primer &lt;em&gt;&lt;a href=&quot;https://cdn.ca9.uscourts.gov/datastore/opinions/2024/04/17/22-50262.pdf&quot;&gt;United States v. Jeremy Travis Payne&lt;/a&gt;&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Drugačna pravila veljajo tudi ob prehodu meje. V ZDA ima recimo &lt;em&gt;US Customs and Border Protection&lt;/em&gt; pravico pregledovati potnike brez suma za kakršnokoli kaznivo dejanje. Res je sicer, da je ameriško Vrhovno sodišče leta 2014 presodilo, da sta preiskava mobilnega telefona in zaseg digitalnih podatkov na njem brez sodne odredbe nezakonita (primer &lt;em&gt;Riley v. California, 573 U.S. 373 (2014)&lt;/em&gt;), vendar trenutno te odločitve ni še nihče testiral v primeru tim. izjeme pri preiskovanju ob prehodu meje (angl. &lt;em&gt;border search exception&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;V praksi se sicer najbolj pogosto dogaja, da mejni organi uporabnika skušajo prepričati, da telefon odklene prostovoljno, to prepričevanje pa lahko vključuje tudi krajše pridržanje, zavajanje, da je uporabnik dolžan odkleniti mobilno napravo (kar ne drži), daljšo (a na trajno) zaplembo telefona, predvsem pa lahko potniku v takem primeru zavrnejo vstop v državo. Prav tako lahko mejni organi sami skušajo forenzično zlomiti tak telefon in tako priti do podatkov, v primeru da je naprava zaklenjena z biometrijo, pa jo lahko tudi prisilno odklenejo. Podobna pravila ob prehodu meje sicer veljajo pri večini držav.&lt;/p&gt;

&lt;p&gt;Nekatere države pa so celo sprejele zakonodajo, ki bi od osumljencev zahtevala obveznost posredovanja šifrinih gesel. Tak primer sta npr. britanski &lt;em&gt;Regulation of Investigatory Powers Act&lt;/em&gt; ter francoski tim. ““&lt;em&gt;&lt;a href=&quot;https://www.thelocal.fr/20221109/france-criticised-for-forcing-suspects-to-unlock-phones&quot;&gt;decryption orders&lt;/a&gt;&lt;/em&gt;”, ki pa so trenutno v presoji na Evropskem sodišču za človekove pravice (primer &lt;em&gt;&lt;a href=&quot;https://www.fairtrials.org/articles/news/french-court-rules-that-refusing-to-disclose-a-mobile-passcode-to-law-enforcement-is-a-criminal-offence/&quot;&gt;Minteh v. France&lt;/a&gt;&lt;/em&gt;)). Vendar pa ostaja dejstvo, da osumljenca ne more nihče prisiliti, da pove geslo, če ga je (npr. zaradi stresa) &lt;strong&gt;preprosto pozabil&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Obstaja pa še druga možnost. Na forumih GrapheneOS &lt;a href=&quot;https://discuss.grapheneos.org/d/7658-seized-graph-phone-swe-police&quot;&gt;opisujejo vsaj en primer&lt;/a&gt; nekoga na Švedskem, ki je imel na svojem mobilnem telefonu nameščen GrapheneOS. Policija je vedela, da telefona s forenzičnimi orodji ne bodo mogli odkleniti, zato so ga tajno opazovali in počakali, da je telefon odklenil, v tistem trenutku pa so ga zagrabili in mu telefon zasegli.&lt;/p&gt;

&lt;h2 id=&quot;zaščita-pred-odklepanjem-telefonov-z-grapheneos&quot;&gt;Zaščita pred odklepanjem telefonov z GrapheneOS&lt;/h2&gt;

&lt;p&gt;GrapheneOS ima sicer implementiranih kar nekaj zaščitnih mehanizmov, ki otežujejo tovrstne napade.&lt;/p&gt;

&lt;p&gt;Kot omenjeno, ima GrapheneOS implementirane številne mehanizme, ki blokirajo forenzična in hekerska orodja. Eden izmed njih (obstajajo pa tudi številni drugi) je možnost, ki &lt;strong&gt;onemogoča nove USB povezave ko je telefon zaklenjen&lt;/strong&gt;. Če torej napadalec zaklenjen telefon preko USB vmesnika poveže z računalnikom (oz. forenzično napravo), taka USB povezava sploh ne bo mogoča in forenzična naprava sploh ne bo zaznala povezave do telefona.&lt;/p&gt;

&lt;p&gt;Naslednji zanimiv mehanizem je &lt;strong&gt;tim. &lt;em&gt;PIN scrambling&lt;/em&gt; oz. “premešanje” PIN številke&lt;/strong&gt;. Če omogočimo to možnost, bodo številke za vnos PIN kode naključno razporejene. Ugotavljanje PIN-a s pomočjo opazovanja uporabnika (tim. &lt;em&gt;shoulder surfing&lt;/em&gt; napad) je torej v tem primeru oteženo, še posebej, če uporabnik uporablja zaščitno polarizacijsko folijo.&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2024/07/PIN_scrambling.jpg&quot;&gt;
&lt;img src=&quot;/static/2024/07/PIN_scrambling.jpg&quot; alt=&quot;PIN scrambling (premešanje PIN številke)&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
PIN scrambling (premešanje PIN številke).
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Še en zanimiv mehanizem je &lt;strong&gt;samodejni ponovni zagon telefona&lt;/strong&gt; (angl. &lt;em&gt;auto reboot feature&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Za kaj gre? Ko se operacijski sistem na telefonu zažene, je telefon v stanju imenovanem BFU (&lt;em&gt;Before First Unlock&lt;/em&gt;) - torej “&lt;em&gt;stanje pred prvim odklepom&lt;/em&gt;”. V tem stanju je v telefon praktično nemogoče vdreti in iz njega s forenzičnimi ali hekerskimi orodji izvleči podatke. Ko pa uporabnik prvič vnese PIN kodo ali geslo, pa gre telefon v stanje imenovano AFU (&lt;em&gt;After First Unlock&lt;/em&gt;) - &lt;em&gt;stanje po prvem odklepu&lt;/em&gt;. Ob tem se podatki na notranjem pomnilniku telefona dešifrirajo, šifrirni ključi pa so nato shranjeni v notranjem pomnilniku telefona.&lt;/p&gt;

&lt;p&gt;GrapheneOS ima sicer implementirane številne mehanizme, ki forenzičnim in hekerskim orodjem onemogočajo, da bi uspešno izvlekla šifrirne ključe iz notranjega pomnilnika. Vendar pa je - vsaj v teoriji - uspešen napad na telefon v AFU stanju bolj verjeten, kot če je telefon v tim. BFU stanju.&lt;/p&gt;

&lt;p&gt;GrapheneOS ima nastavitev, ki omogoča, da se telefon, ki je v AFU stanju, a po določenem času ni bil odklenjen - samodejno ponovno zažene. S tem se telefon vrne v BFU stanje, in ekstrakcija podatkov iz njega je praktično nemogoča.&lt;/p&gt;

&lt;p&gt;Privzeto je ta čas 18 ur (če zaslon telefona v tem času ne bo odklenjen, se bo telefon samodejno ponovno zagnal), vendar pa je ta interval mogoče poljubno spremeniti - celo na samo 10 minut.&lt;/p&gt;

&lt;p&gt;Praviloma namreč traja nekaj časa, da preiskovalci začnejo forenzično preiskavo naprav, ki so jih zasegli. Tipično je to lahko nekaj dni. Če bo torej od samega zasega (ali pa kraje oz. izgube) telefona, pa do začetka postopka forenzičnega zasega preteklo dovolj časa, se bo telefon samodejno ponovno zagnal, se s tem vrnil v BFU način, zaseg podatkov iz njega pa bo praktično nemogoč.&lt;/p&gt;

&lt;p&gt;Še en zanimiv varnostni mehanizem pa so pri GrapheneOs uvedli pred kratkim. Gre za &lt;strong&gt;tim. “&lt;em&gt;prisilna gesla/PIN šteilke&lt;/em&gt;” (angl. &lt;em&gt;duress password/PIN&lt;/em&gt;)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Prisilno geslo oz PIN koda je posebno geslo (oz. PIN koda), ki si ga nastavimo v nastavitvah. S tem geslom oz. PIN kodo pa se telefona ne odklene, pač pa se ob vnosu nepovratno pobriše (vključno z eSIM karticami).&lt;/p&gt;

&lt;p&gt;Prisilna gesla lahko pridejo zelo prav v primeru, ko napadalec mobilni telefon uporabniku nasilno (nezakonito) vzame in od njega zahteva, da ga odklene. V primeru, da mobilni telefon zaseže policija z odredbo, pa bi vnos prisilnega gesla lahko predstavljal tim. &lt;em&gt;uničevanje dokazov&lt;/em&gt; (angl. &lt;em&gt;tampering with evidence&lt;/em&gt;) oz. tim. &lt;em&gt;oviranje pravice&lt;/em&gt; (angl. &lt;em&gt;obstruction of justice&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Vendar pa kot rečeno, osumljencu gesla za odklep ni potrebno povedati. Lahko pa ima uporabnik prisilno geslo oz. PIN kodo zapisano na kakšnem listku, zataknjenem za ovitek telefona. In če bo napadalec listek našel in PIN kodo vnesel sam, bo s tem tudi sam pobrisal telefon.&lt;/p&gt;

&lt;h2 id=&quot;zaščita-v-primeru-uporabe-biometrije&quot;&gt;Zaščita v primeru uporabe biometrije&lt;/h2&gt;

&lt;p&gt;Kot smo torej videli, v primeru, da za zaklep telefona uporabljamo PIN kodo ali geslo, obstaja kar nekaj zaščit, ki otežijo uspešen zaseg podatkov iz telefona. Težava pa je, če za odklep zaslona uporabljamo biometrijo - torej prstni odtis.&lt;/p&gt;

&lt;p&gt;Vendar obstaja rešitev tudi za to. Najdemo jo v obliki posebne aplikacije &lt;a href=&quot;https://f-droid.org/en/packages/com.wesaphzt.privatelock/&quot;&gt;Private Lock&lt;/a&gt; (dostopna je na tržnici F-Droid).&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2024/07/PrivateLock_intro.png&quot;&gt;
&lt;img src=&quot;/static/2024/07/PrivateLock_intro.png&quot; alt=&quot;Aplikacija PrivateLock&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
Aplikacija PrivateLock.
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Aplikacija zahteva res minimalno dovoljenj (ne zahteva niti dostopa do omrežja), deluje pa tako, da ko telefon zaklene takoj, ko ga dovolj močno stresemo. Stopnjo občutljivosti tresenja lahko nastavimo med nastavitvami. Telefona, ki je zaklenjen na ta načina, pa naslednjič ni več mogoče odkleniti z biometrijo (prstnim odtisom) oz. vzorcem za odklepanje (vlečenjem), pač pa je potrebno vnesti geslo. (Po uspešnem vnosu gesla je biometrično odklepanje oz. vzorec za odklepanje spet normalno aktiven.)&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2024/07/PrivateLock_settings.png&quot;&gt;
&lt;img src=&quot;/static/2024/07/PrivateLock_settings.png&quot; alt=&quot;Nastavitve PrivateLock&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
Nastavitve PrivateLock.
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Aplikacija torej omogoča naslednji scenarij uporabe: če skuša napadalec uporabniku telefon na silo vzeti iz rok, ali pa nanj na silo pritisniti prst, uporabnik telefon samo dovolj močno zatrese (ali ga spusti na tla) - in telefon se bo samodejno zaklenil.&lt;/p&gt;

&lt;p&gt;Odklep sedaj ne bo več mogoč z biometrijo, pač pa samo s PIN kodo ali geslom. Tega pa uporabniku ni treba povedati, oziroma lahko vpiše prisilno geslo ali zavede napadalca, da prisilno geslo vnese sam - in telefon se bo pobrisal.&lt;/p&gt;

&lt;p&gt;In če odklep ne bo izveden v času do naslednjega samodejnega zagona, se bo telefon samodejno vrnil v tim. BFU način, zaseg podatkov s forenzičnimi in hekerskimi orodji iz njega pa bo praktično nemogoč.&lt;/p&gt;

&lt;p&gt;Vse opisani mehanizmi seveda ne nudijo absolutne zaščite pred dostopom do podatkov na mobilnem telefonu. Vseeno pa v kombinaciji pokrijejo številne scenarije napadov in s tem precej izboljšajo zaščito zasebnosti uporabnika mobilnega telefona.&lt;/p&gt;
</description>
        <pubDate>Thu, 18 Jul 2024 02:00:00 +0200</pubDate>
        <link>https://telefoncek.si/2024/05/2024-07-18-grapheneos-zascita-pred-zasegom-podatkov/</link>
        <guid isPermaLink="true">https://telefoncek.si/2024/05/2024-07-18-grapheneos-zascita-pred-zasegom-podatkov/</guid>
        
        <category>kriptografija</category>
        
        <category>mobilna telefonija</category>
        
        <category>GrapheneOS</category>
        
        
        <category>Digitalna forenzika</category>
        
        <category>Odprta koda</category>
        
      </item>
    
      <item>
        <title>Reševanje ZFS</title>
        <description>&lt;p&gt;Prejšnji teden sem se odločil posodobiti operacijski sistem Debian na enem izmed svojih strežnikov. Posodobitev je načeloma preprosta - v datoteko &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sources.list&lt;/code&gt; je treba vpisati nova skladišča programskih paketov, nato pa se požene &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;apt-get -y update&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;apt-get -y upgrade&lt;/code&gt; ter &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;apt-get -y full-upgrade&lt;/code&gt; (pa še kakšno malenkost). Vse to sem lepo naredil in na koncu je preostal le še ukaz &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;reboot&lt;/code&gt;, ki ponovno zažene sistem. Minuta ali dve čakanja - in strežnik bi se moral zbuditi s posodobljenim operacijskim sistemom. Le da se to ni zgodilo. Niti po petih, niti po desetih minutah. Kar je… znak za alarm. Še posebej, če se strežnik nahaja na drugem koncu… Slovenije (ali pa Evrope, saj je vseeno).&lt;/p&gt;

&lt;h2 id=&quot;pikvm&quot;&gt;PiKVM&lt;/h2&gt;

&lt;p&gt;No, na srečo je bil na strežnik priključen PiKVM. Gre za napravico, ki omogoča oddaljen dostop in oddaljeno upravljanje računalnikov. PiKVM je v osnovi dodatek (tim. “&lt;em&gt;klobuk&lt;/em&gt;” oz. angl. &lt;em&gt;hat&lt;/em&gt;), ki ga priklopimo na RaspberryPi. Nato pa PiKVM priključimo na računalnik namesto monitorja in tipkovnice/miške - v tem primeru nam PiKVM predstavlja virtualni monitor, virtualno tipkovnico, miško, CD, USB ključek, itd. Preko tega nato lahko računalnik ali strežnik oddaljeno upravljamo (vstopimo lahko tudi v BIOS, virtualno pritisnemo gumb za izklop ali gumb za reset) - in to kar preko spletnega brskalnika. Programska oprema je popolnoma odprtokodna, zadeva pa podpira tudi priklop na KVM razdelilec, kar nam omogoča oddaljeno upravljanje več računalnikov - to je recimo idealno za montažo v podatkovni center.&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2024/07/pikvm.jpg&quot;&gt;
&lt;img src=&quot;/static/2024/07/pikvm.jpg&quot; alt=&quot;PiKVM ob nakupu&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
PiKVM ob nakupu.
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Skratka, ko se strežnik nekaj časa ni več odzival, sem se povezal na PiKVM in šel pogledat kaj se je dejansko zgodilo. In zgodila se je… katastrofa.&lt;/p&gt;

&lt;h2 id=&quot;težava&quot;&gt;Težava&lt;/h2&gt;

&lt;p&gt;Strežnik je namreč po ponovnem zagonu obstal v &lt;em&gt;initramfs&lt;/em&gt;. Aaaaaa! Na dnu zaslona pa se je svetilo še zadnje opozorilo preden je sistem &lt;em&gt;dokončno izdihnil&lt;/em&gt; - &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ALERT! ZFS=rpool/ROOT/debian does not exists. Dropping to a shell!&lt;/code&gt;. V obupu sem spregledal tisti “s” in prebral “hell”…&lt;/p&gt;

&lt;p&gt;V tistem trenutku sem se spomnil, da je bil na korenskem razdelku strežnika &lt;em&gt;seveda&lt;/em&gt; nameščen ZFS datotečni sistem - in to šifriran - ob nadgradnji pa sem &lt;em&gt;seveda pozabil&lt;/em&gt; ročno omogočiti tim. jedrne module (angl. &lt;em&gt;kernel modules&lt;/em&gt;), ki bi omogočili, da operacijski sistem ob zagonu prepozna ZFS. In da bi bila stvar še hujša - na strežniku je teklo (no, zdaj pač ne več) več virtualnih strežnikov. Ki so bili sedaj seveda vsi nedosegljivi.&lt;/p&gt;

&lt;p&gt;Opomba. ZFS (Zettabyte File System) je napreden datotečni sistem, ki je znan po svoji zanesljivosti, razširljivosti, uporabi naprednih tehnik za preverjanje in popravljanje napak (kar zagotavlja, da so podatki vedno dosledni in brez poškodb), uporabi kompresije in deduplikacije, itd. Skratka, idelaen za strežniška okolja.&lt;/p&gt;

&lt;p&gt;Dobro, zdaj vemo kaj je problem, ampak kako ga rešiti?&lt;/p&gt;

&lt;h2 id=&quot;načrt-za-njeno-rešitev&quot;&gt;Načrt za njeno rešitev&lt;/h2&gt;

&lt;p&gt;Da si vsaj malo opomorem od pretresa, sem si najprej pripravil močno kavo. Odločitev se je izkazala za strateško, saj se je reševanje sistema zavleklo pozno v noč (in še v naslednje dopoldne).&lt;/p&gt;

&lt;p&gt;Po krajšem razmisleku se mi je v glavi zarisal naslednji načrt. Najprej sistem zaženem iz “Live Debian CD-ja”, na ta začasni sistem namestim podporo za ZFS, priklopim ZFS diskovje, se “&lt;em&gt;chroot-am&lt;/em&gt;” v stari sistem, tam popravim nastalo škodo in vse skupaj ponovno zaženem. In to je to!&lt;/p&gt;

&lt;p&gt;Na tej točki bi se v kakšnem starem filmu samo še vsedel na konja in odjahal v sončni zahod, ampak kot se je izkazalo, je bila pot do konja (in njegovega sedla)… še precej trnova. Pa pojdimo po vrsti.&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2024/07/pikvm_zfs.png&quot;&gt;
&lt;img src=&quot;/static/2024/07/pikvm_zfs.png&quot; alt=&quot;PiKVM v akciji&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
PiKVM v akciji.
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Najprej sem na PiKVM prenesel datoteko &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;debian-live-12.6.0-amd64-standard.iso&lt;/code&gt;, jo priklopil kot navidezni CD, ter zagnal strežnik. To je bilo resnično enostavno in PiKVM se je ponovno izkazal za vreden svojega denarja.&lt;/p&gt;

&lt;p&gt;Se je pa že kar na začetku izkazalo, da strežnik prepoznava samo ameriško tipkovnico. In ker imam jaz slovensko, je bilo treba najprej ugotoviti katero tipko moram pritisniti, da dobim točno tisti poseben znak, ki ga potrebujem. No, tule je nekaj v mojem primeru najpogosteje uporabljenih znakov na slovenski tipkovnici in njihovi “prevodi” na ameriško tipkovnico:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;- /
? - 
Ž |
+ =
/ &amp;amp;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;luč-na-koncu-tunela&quot;&gt;Luč na koncu tunela&lt;/h2&gt;

&lt;p&gt;Naslednji korak je bil, da v &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/apt/sources.list&lt;/code&gt; tim. “živega sistema” dodam še skladišče &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;contrib&lt;/code&gt;. Nato pa sem že lahko namestil podporo za ZFS: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo apt update &amp;amp;&amp;amp; sudo apt install linux-headers-amd64 zfsutils-linux zfs-dkms zfs-zed&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Po minuti ali dveh, pa sem že lahko naložil ZFS jedrne module: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo modprobe zfs&lt;/code&gt;. Ukaz &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;zfs version&lt;/code&gt; je pokazal, da podpora za ZFS zdaj deluje:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;zfs-2.1.11-1
zfs-kmod-2.1.11-1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;No, prvi korak je uspel, sedaj pa je bilo v sistem potrebno “samo še” priključiti obstoječe diskovje. Najprej sem naredil ustrezno mapo, kamor bom priklopil diskovje: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo mkdir /sysroot&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Nato pa sem skušal nanjo priključil svoj “&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rpool&lt;/code&gt;” ZFS. Spodnji ukazi so zgolj približni (verjetno je treba narediti še kaj, recimo nastaviti tim. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mountpoint&lt;/code&gt;), so pa lahko vodilo komu, ki bo imel podobne težave. Naj seveda dodam, da ni šlo povsem enostavno in je bilo potrebno kar nekaj telovadbe, da sem uspel priti do končnega cilja.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo zpool import -N -R /sysroot rpool -f

sudo zpool status
sudo zpool list
sudo zfs get mountpoint
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Na tej točki sem vnesel šifrirno geslo: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo zfs load-key rpool&lt;/code&gt;… in preveril, da je ZFS odklenjen: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo zfs get encryption,keystatus&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Sedaj pa priklop: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo zfs mount rpool/ROOT/debian&lt;/code&gt;. In evo, podatki so bili vidni in kot je kazalo ni bilo nič izgubljenega!&lt;/p&gt;

&lt;h2 id=&quot;oživljanje-pacienta&quot;&gt;Oživljanje “pacienta”…&lt;/h2&gt;

&lt;p&gt;Končno je sledil &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;chroot&lt;/code&gt; v stari sistem:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo mkdir /sysroot/mnt
sudo mkdir /sysroot/mnt/dev
sudo mkdir /sysroot/mnt/proc
sudo mkdir /sysroot/mnt/sys
sudo mkdir /sysroot/mnt/run
sudo mount -t tmpfs tmpfs /sysroot/mnt/run
sudo mkdir /sysroot/mnt/run/lock

sudo mount --make-private --rbind /dev /sysroot/mnt/dev
sudo mount --make-private --rbind /proc /sysroot/mnt/proc
sudo mount --make-private --rbind /sys /sysroot/mnt/sys

sudo chroot /sysroot/mnt /usr/bin/env DISK=$DISK bash --login
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Zdaj sem bil torej uspešno povezan v stari (“okvarjeni”) sistem. Najprej je bilo vanj potrebno namestiti ZFS podporo:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;apt install --yes dpkg-dev linux-headers-generic linux-image-generic
apt install --yes zfs-initramfs
echo REMAKE_INITRD=yes &amp;gt; /etc/dkms/zfs.conf
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;z-manjšimi-težavami&quot;&gt;…z manjšimi težavami&lt;/h2&gt;
&lt;p&gt;Seveda se je vmes pojavila še ena napaka, in sicer nameščanje programske opreme ni bilo možno zaradi okvarjenega &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;systemd&lt;/code&gt; paketa. To sem rešil z:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo rm /var/lib/dpkg/info/systemd*
sudo dpkg --configure -D 777 systemd
sudo apt -f install
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Potem so se seveda pojavile še nerešene odvisnosti… kako točno sem to uspel rešiti se niti ne spomnim več, pomagali pa so naslednji ukazi (ne nujno v tem vrstnem redu):&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;dpkg --force-all --configure -a
apt --fix-broken install
apt-get -f install
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Zdaj je bilo potrebno priklopiti še &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;efi&lt;/code&gt; razdelek (za katerega je bilo potrebno najprej ugotoviti kje točno se sploh nahaja):&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;cp -r /boot /tmp
zpool import -a
lsblk
mount /dev/nvme0n1p2 /boot/efi
cd /tmp
cp * /boot/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;zdaj-pa-zares&quot;&gt;Zdaj pa zares!&lt;/h2&gt;

&lt;p&gt;Končno sem lahko pognal ukaze s katerimi sem dodal ZFS jedrne module v jedro operacijskega sistema:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;update-initramfs -c -k all
dkms autoinstall
dkms-status
update-grub
grub-install
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;No, in končno je sledil ponovni zagon sistema, po njem pa je bilo treba popraviti še mesto priklopa ZFS sistema (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;zfs set mountpoint=/ rpool/ROOT/debian&lt;/code&gt;)… še en ponovni zagon - in stari sistem je vstal od mrtvih.&lt;/p&gt;

&lt;h2 id=&quot;postfestum-sanacija-nastale-škode&quot;&gt;Postfestum sanacija nastale škode&lt;/h2&gt;

&lt;p&gt;Zaradi silnega čaranja in ne povsem dokončane nadgradnje, je bilo potrebno namestiti manjkajoče programske pakete, ponovno namestiti nekaj &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;systemd&lt;/code&gt; paketov in odstraniti stara jedra operacijskega sistema. Vse seveda ročno.&lt;/p&gt;

&lt;p&gt;Aja, pa iz nekega razloga je ob posodobitvi izginil SSH strežnik. Ampak to rešiti je bila sedaj mala malica.&lt;/p&gt;

&lt;p&gt;Sledil je &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;reboot&lt;/code&gt; in nato še enkrat &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;reboot&lt;/code&gt;, da vidim, če res vse deluje.&lt;/p&gt;

&lt;h2 id=&quot;konec-dober-vse-dobro&quot;&gt;Konec dober, vse dobro&lt;/h2&gt;

&lt;p&gt;In zdaj deluje. O, kako lepo deluje! ZFS je kriptiran, sistem se po vnosu gesla za odklep lepo zažene, prav tako se samodejno zaženejo virtualni strežniki. PiKVM pa je dobil prav posebno mesto v mojem srcu.&lt;/p&gt;

&lt;p&gt;Pa do naslednjič, ali kako že rečejo! :)&lt;/p&gt;

&lt;p&gt;P. S. Hvala tudi &lt;em&gt;Juretu&lt;/em&gt; za pomoč. Brez njegovih nasvetov bi vse skupaj trajalo precej dlje.&lt;/p&gt;
</description>
        <pubDate>Tue, 16 Jul 2024 02:00:00 +0200</pubDate>
        <link>https://telefoncek.si/2024/05/2024-07-16-resevanje-zfs/</link>
        <guid isPermaLink="true">https://telefoncek.si/2024/05/2024-07-16-resevanje-zfs/</guid>
        
        <category>ZFS</category>
        
        
        <category>Linux</category>
        
        <category>Odprta koda</category>
        
      </item>
    
      <item>
        <title>GrapheneOS and forensic extraction of data</title>
        <description>&lt;p&gt;GrapheneOS is an Android-based, open source, privacy and security-focused mobile operating system for mobile phones. It is one of the most secure and privacy protecting operating systems (and yes, it does this task comparable and in some scenarios - especially regarding privacy - even better than iOS, but we will come to that later).&lt;/p&gt;

&lt;p&gt;However, in the beginning of May, someone started an attack on GrapheneOS across social media platforms. The perpetrators were misrepresenting consent-based data extraction as GrapheneOS being compromised. Which would be funny if it wasn’t so stupid. So let’s see what happened and what actually consent-based data extraction means.&lt;/p&gt;

&lt;h2 id=&quot;digital-forensics&quot;&gt;Digital forensics&lt;/h2&gt;

&lt;p&gt;Digital forensics is the process of uncovering and analysing electronic data in order to gather evidence for legal proceedings.
It involves the use of various techniques and tools to examine digital devices such as computers, smartphones, and storage
media to identify, preserve, analyse, and present digital evidence.&lt;/p&gt;

&lt;p&gt;Digital evidence refers to any data or information that is stored or transmitted in digital form and can be used as evidence in a legal investigation or trial. Digital evidence is often used in criminal investigations to help establish a suspect’s guilt or innocence, and can also be used in civil litigation, regulatory investigations, and other legal proceedings.&lt;/p&gt;

&lt;p&gt;Unfortunately, sometimes digital forensics can be abused. It can be used against investigative journalists or political activists, it can be used for privacy violation, to intimidate or harass someone, to tamper with evidence, etc. That is why GrapheneOS developers are working hard to protect mobile phones from tampering and try to make data extraction without user’s consent as hard as possible.&lt;/p&gt;

&lt;h2 id=&quot;cellebrite&quot;&gt;Cellebrite&lt;/h2&gt;

&lt;p&gt;Cellebrite is a leading Israeli company in the digital intelligence and digital forensics field. Their main digital forensics tool is called Universal Forensic Extraction Device (UFED), and is used to extract and analyze data from mobile devices for investigations.&lt;/p&gt;

&lt;p&gt;They are selling their equipment to governments all around the world, and their tools are mostly used for legitimate purposes. Unfortunately they are selling their tools to authoritarian regimes too. Cellebrite’s &lt;a href=&quot;https://signal.org/blog/cellebrite-vulnerabilities/&quot;&gt;customer list has included authoritarian regimes&lt;/a&gt; in Belarus, Russia, Venezuela, and China, death squads in Bangladesh, military juntas in Myanmar and those seeking to abuse and oppress in Turkey, UAE, and elsewhere.&lt;/p&gt;

&lt;h2 id=&quot;data-extraction&quot;&gt;Data extraction&lt;/h2&gt;

&lt;p&gt;As mentioned, digital forensics tools first try to extract data from mobile device. This is the initial step in a digital forensics investigation.&lt;/p&gt;

&lt;p&gt;The problem for digital forensics is, what if mobile phone is locked? How to extract data from a locked device?&lt;/p&gt;

&lt;p&gt;There are several options, but basically three approaches exist.&lt;/p&gt;

&lt;p&gt;First option is so called &lt;strong&gt;consent-based&lt;/strong&gt; data extraction. This simply means that &lt;strong&gt;user voluntary unlocks their device&lt;/strong&gt; (or provides PIN code or password), and forensic tool then extracts data from unlocked device.&lt;/p&gt;

&lt;p&gt;Why would someone voluntary unlock their device? Well, maybe the owner of the device wants to cooperate with the investigators. Maybe he is a victim of criminal activity and wants to provide evidence against the perpetrators. Maybe he knows that data will prove his innocence. Or something else.&lt;/p&gt;

&lt;p&gt;The question is of course, what if user do not want to provide PIN code or password or to unlock their phone?&lt;/p&gt;

&lt;p&gt;In that case, there are two general approaches of digital forensic examination. The first option is to try to hack a mobile device so it gets unlocked (and then extract the data). And the other is to try to guess PIN code or password in order to unlock the device and the extract the data.&lt;/p&gt;

&lt;p&gt;Companies like Cellebrite are offering various tools, that can try to hack into the locked mobile phone and then extract the data. And their tools also offer a possibility to “guess” PIN code or password, in order to unlock the device.&lt;/p&gt;

&lt;p&gt;But first we need to understand that from the digital forensics point of view, mobile phone can basically be in two states.&lt;/p&gt;

&lt;p&gt;First is called &lt;strong&gt;BFU (Before First Unlock)&lt;/strong&gt;, and it simply means a device that has been turned off or rebooted and never subsequently unlocked by entering the correct PIN or passcode. The second is called &lt;strong&gt;AFU (After First Unlock)&lt;/strong&gt;, and it means that device has been unlocked after reboot (meaning that encryption keys are stored in internal memory of the device).&lt;/p&gt;

&lt;p&gt;Technically, there is important difference between the two. BFU devices (that hasn’t been unlocked with a PIN or passcode) mostly contains encrypted data. Since the first unlock of the device also decrypts the device (technically: unlocks the decryption key, so device can access the data stored in internal storage), most data on the device in that case is inaccessible for forensic analysis. Technically that means that data are encrypted at rest.&lt;/p&gt;

&lt;p&gt;AFU devices (that has been unlocked with the correct passcode after powering on, or restarting) contains decryption key in it’s internal memory, and that key is used to decrypt files in internal storage. In that case most data on the device becomes accessible for forensic analysis, because data in that state are decrypted for normal use. However, in that case screen lock could still been activated, meaning, that forensic investigator needs to unlock the screen first, and then can extract the data.&lt;/p&gt;

&lt;p&gt;From the user’s point of view this simply means that a locked device in BFU state presents significant challenges for data extraction, while an unlocked device (in AFU state) offers greater access to extract the data.&lt;/p&gt;

&lt;h2 id=&quot;data-extraction-approaches&quot;&gt;Data extraction approaches&lt;/h2&gt;

&lt;p&gt;As already mentioned, AFU devices are easily approached for extraction. General approach here is to hack into the locked mobile phone (by exploiting some software vulnerability) in order to disable or bypass a screen lock, and then extract the data.&lt;/p&gt;

&lt;p&gt;In case of BFU devices, where data in internal storage are still encrypted, the forensic examinator needs to “guess” PIN code or password, in order to unlock the device. Usually this is done by so called brute forcing. This simply means that a forensic tool tries to guess the correct PIN or password by going through all possible combination, until the correct one is found.&lt;/p&gt;

&lt;h2 id=&quot;cellebrites-capabilities&quot;&gt;Cellebrite’s capabilities&lt;/h2&gt;

&lt;p&gt;In April 2024 Cellebrite published a list of their capabilities provided to customers. The list shows that they can successfully exploit every non-GrapheneOS Android device brand. They can do this for devices in AFU &lt;strong&gt;and&lt;/strong&gt; BFU states. This means, that Cellebrite’s tools can unlock (and then extract data) every Android device on the market.&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2024/05/Android_1.png&quot;&gt;
&lt;img src=&quot;/static/2024/05/Android_1.png&quot; alt=&quot;Android capabilities&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
Android capabilities.
&lt;/p&gt;
&lt;/div&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2024/05/Android_2.png&quot;&gt;
&lt;img src=&quot;/static/2024/05/Android_2.png&quot; alt=&quot;Android capabilities&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
Android capabilities.
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;According to Cellebrite’s documents, they have similar capabilities for iOS devices too. Not all, but for many of them. In fact, it is only the latest device generation and OS versions which are not fully supported yet (however, it is fair to mention, that most iPhone users are getting iOS updates automatically). Will they be able to develop exploits for the later iOS devices too? We do not know that, but we know, that NSO (an Israeli company developing Pegasus spyware) &lt;a href=&quot;https://www.bitdefender.com/blog/hotforsecurity/mere-days-after-ios-17-release-apple-issues-critical-security-fixes/&quot;&gt;already did that, right after iOS 17 has been released in September 2023&lt;/a&gt;.&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2024/05/iOS_1.png&quot;&gt;
&lt;img src=&quot;/static/2024/05/iOS_1.png&quot; alt=&quot;iOS capabilities&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
iOS capabilities.
&lt;/p&gt;
&lt;/div&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2024/05/iOS_2.png&quot;&gt;
&lt;img src=&quot;/static/2024/05/iOS_2.png&quot; alt=&quot;iOS capabilities&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
iOS capabilities.
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Which is interesting, because Apple is &lt;a href=&quot;https://www.apple.com/si/iphone-13/specs/&quot;&gt;advertising&lt;/a&gt; iOS as “&lt;em&gt;the world’s &lt;strong&gt;most&lt;/strong&gt; personal and secure mobile operating system&lt;/em&gt;”.&lt;/p&gt;

&lt;p&gt;What about GrapheneOS? According to the documents, Cellebrite admits they &lt;strong&gt;can not hack&lt;/strong&gt; GrapheneOS if users had installed updates &lt;strong&gt;since late 2022&lt;/strong&gt;. This is important, because GrapheneOS is releasing security updates and improvements quite frequently - sometimes even several times a month. And GrapheneOS is designed in such a way, that updates are automatically enabled, and if users want to disable them, they need to do that manually. This means that very likely vast majority of users have GrapheneOS updated to the last version automatically and their phones can not be hacked by Cellebrite’s tools.&lt;/p&gt;

&lt;div style=&quot;width: 310px&quot;&gt;
&lt;a href=&quot;/static/2024/05/GrapheneOS.png&quot;&gt;
&lt;img src=&quot;/static/2024/05/GrapheneOS.png&quot; alt=&quot;GrapheneOS capabilities&quot; /&gt;&lt;/a&gt;
&lt;p style=&quot;font-size:13px&quot;&gt;
GrapheneOS capabilities.
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;On the other side, Cellebrite claims that they can do so called &lt;strong&gt;consent-based&lt;/strong&gt; full filesystem extraction with iOS, Android and GrapheneOS. As already mentioned, this simply means they can extract data from the device once the user voluntary unlocks their device. For GrapheneOS that means, that when they get unlocked phone, they just enable developer options and use standard ADB tool (ADB lets you communicate with Android devices through a computer) to extract the data.&lt;/p&gt;

&lt;p&gt;So, according to Cellebrite documents, they can not unlock fully patched GrapheneOS phone, &lt;strong&gt;unless&lt;/strong&gt; user voluntary unlocks the phone. In fact, analysis of Cellebrite’s documents shows, that they even can not brute force a random 6-digit PIN on Pixel 6 and later phones (which are the phones supported by GrapheneOS). Cellebrite’s documents reveal, that Pixel 6 phones and later with GrapheneOS (and the latest iPhones also), are the only devices where a random 6 digit PIN can not be brute forced.&lt;/p&gt;

&lt;h2 id=&quot;the-attack-on-grapheneos-on-social-media&quot;&gt;The attack on GrapheneOS on social media?&lt;/h2&gt;

&lt;p&gt;As we mentioned at the beginning, in the beginning of May, someone started an attack on GrapheneOS across social media platforms. The perpetrators claimed that GrapheneOS has been compromised, and the “proof” has been, that data extraction from GrapheneOS is successful when it is consent-based.&lt;/p&gt;

&lt;p&gt;It is unclear who has been behind this social media attack, but in December 2020 something similar happened. At that time, various media (including BBC) reported, that Cellebrite claimed to have cracked Signal’s encryption. Signal is a free, encrypted messaging application, which is widely considered one of the most secure messaging apps due to its strong encryption and focus on privacy.&lt;/p&gt;

&lt;p&gt;However, at that time it turned out, that the claims were completely false - Cellebrite has been able to extract Signal messages &lt;strong&gt;only&lt;/strong&gt; &lt;a href=&quot;https://signal.org/blog/cellebrite-and-clickbait/&quot;&gt;if user unlocked the phone and Signal app and hand it to the forensic examinator&lt;/a&gt;. Which is by definition consent-based extraction and does not really require some specific technical excellence from the forensic acquisition tool.&lt;/p&gt;

&lt;p&gt;Short notice: Signal’s local database on a phone is encrypted. So you need to need to extract the Signal database from the filesystem first, &lt;a href=&quot;https://github.com/AvillaDaniel/Signal-Forensics&quot;&gt;and then to you need to obtain three values ​​to decrypt the database&lt;/a&gt;. The first is stored in so called Keystore system, and the other two values ​​are stored in the XML file on the phone’s file system. It is important to know that cryptographic keys stored in a Keystore system are more difficult to extract from the device, because once keys are in the Keystore, you can use them for cryptographic operations, with the key material remaining non-exportable.&lt;/p&gt;

&lt;h2 id=&quot;defense-against-forensic-hacking-tools-in-grapheneos&quot;&gt;Defense against forensic hacking tools in GrapheneOS&lt;/h2&gt;

&lt;p&gt;Now let’s dive into GrapheneOS security countermeasures against described attacks.&lt;/p&gt;

&lt;h3 id=&quot;protection-against-hacking-into-the-phone&quot;&gt;Protection against hacking into the phone&lt;/h3&gt;

&lt;p&gt;GrapheneOS has implemented many security features. You can &lt;a href=&quot;https://telefoncek.si/predavanja/Balkan_Cybersecurity_Days_2023.pdf&quot;&gt;get a glimpse of them from my presentation on GrapheneOS security&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;However, regarding various forensic tools, it is important to mention, that GrapheneOS has a special feature that disallows new USB connections in AFU mode (After First Unlock) after the device is locked, and fully disables USB data at a hardware level once there aren’t active USB connections. This means that if an attacker would connect GrapheneOS device to the computer through USB, GrapheneOS device will not allow any connection at all.&lt;/p&gt;

&lt;p&gt;Users can set it to do this in BFU (Before First Unlock) mode or even when the phone is fully unlocked. And users with a high threat model can even fully disable USB, including USB-PD/charging, while the OS is booted. So they can decide to only allow charging while powered off or booted into the fastboot/fastbootd/recovery/charging modes. This is the feature no other phone has, and can be completely customized by the user.&lt;/p&gt;

&lt;p&gt;GrapheneOS is constantly improving security, and since beginning of 2024 they massively improved security against various possible exploits. In April 2024 they also helped to &lt;a href=&quot;https://grapheneos.social/@GrapheneOS/112204428984003954&quot;&gt;implement several firmware improvements&lt;/a&gt; for Pixel phones.&lt;/p&gt;

&lt;h3 id=&quot;protection-against-brute-force-attacks&quot;&gt;Protection against brute force attacks&lt;/h3&gt;

&lt;p&gt;As we mentioned, in case of BFU devices, where data in internal storage are still encrypted, the forensic examinator needs to “guess” PIN code or password, in order to unlock the device. This is done by so called brute force attack (guessing every possible combination of PIN code or password).&lt;/p&gt;

&lt;p&gt;However, Pixel 6 and later phones contain a dedicated security chip Titan M2, also called hardware security module, which is storing the decryption keys. This chip will unlock the internal phone storage &lt;strong&gt;only&lt;/strong&gt; if user will enter the correct PIN or password.&lt;/p&gt;

&lt;p&gt;But here is the catch. If an attacker try to perform brute force attack (i. e. try to go through all possible PIN/password combinations), the chip will limit the number of attempts. After 5 failed attempts, chip will add 30 second delay before next guessing attempt is allowed. Then delay gets increased (after 30 failed attempts the delay doubles after every 10 attempts), and after 140 failed attempts, GrapheneOS and its secure element will limit brute force to 1 attempt &lt;strong&gt;per day&lt;/strong&gt;. This is called secure element throttling.&lt;/p&gt;

&lt;p&gt;So if an attacker would like to test &lt;strong&gt;all different&lt;/strong&gt; combinations to guess a 6-digit PIN, there are one million possible combinations, so brute forcing would take a long, long time. Unless, the attacker is extremely lucky and guesses the correct PIN at the few first attempts.&lt;/p&gt;

&lt;p&gt;Of course, the question is, is it possible to somehow hack this secure element or unlock the limited number of attempts? The answer is - very unlikely. Why? Because this secure element has been developed specifically to protect against those types of attacks. And it has passed the highest hardware vulnerability assessment (AVA_VAN.5) by an independent and accredited evaluation lab.&lt;/p&gt;

&lt;p&gt;In fact, GrapheneOS is so successful in this area, because it is doing far more hardening than iOS against these attacks. iPhones also have security element, but the companies developing attacks, had successfully bypassed secure element throttling from Apple for years (and are doing the same with Samsung and Qualcomm implementation of secure element). These companies were successfully bypassing the secure element throttling on 2nd through 5th generation Pixels. Pixel 2 used NXP secure element and Pixel 3 moved to a custom ARM secure element. But Pixel 6 and later phones are using a custom RISC-V secure element. It seems that moving away from the standard ARM Cortex secure element cores was the correct decision, because it blocked these companies from successfully exploiting the secure element for several years.&lt;/p&gt;

&lt;h3 id=&quot;auto-reboot-feature&quot;&gt;Auto reboot feature&lt;/h3&gt;

&lt;p&gt;GrapheneOS also has an auto-reboot feature, meaning that after some time, phone gets automatically rebooted. Default auto reboot time is 18 hours (if phone is not unlocked in that time, it will reboot), but user can set it to a different interval, even as low as 10 minutes.&lt;/p&gt;

&lt;p&gt;This technically means that the data after this period are put back to rest, or, to put it differently, phone gets from AFU to BFU state. And as we already explained, a locked device in BFU state presents significant challenges for data extraction, much more than unlocked device in AFU state.&lt;/p&gt;

&lt;p&gt;After reboot, it is almost impossible to extract decrypted data from the phone. So the focus of GrapheneOS’s team is defending against exploitation long enough for auto-reboot to work, and after that your data are even safer than before. That means that if an attacker develops a successful exploit, their window of opportunity to use it to get data from user profiles is until next reboot from when the phone was locked.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;In the last year, GrapheneOS started to put much more effort into defending your phone against these attacks. Users who need their data secure, should definitely use a strong passphrase. To make that more convenient, GrapheneOS is developing 2-factor fingerprint unlock feature, which will allow people to combine a strong passphrase with convenient fingerprint and PIN unlock. They are also planning to offer an UI for generating random passphrases automatically. This will vastly improve security and make access to the user’s data on a phone much more difficult.&lt;/p&gt;

&lt;p&gt;The actors that want to hack into GrapheneOS are rightfully desperate. So it is no surprise, that they try to play dirty, by spreading misinformation. But knowledge is power and misinformation could be successfully fought with facts.&lt;/p&gt;
</description>
        <pubDate>Wed, 29 May 2024 02:00:00 +0200</pubDate>
        <link>https://telefoncek.si/2024/05/2024-05-30-grapheneos-and-forensic-extraction-of-data/</link>
        <guid isPermaLink="true">https://telefoncek.si/2024/05/2024-05-30-grapheneos-and-forensic-extraction-of-data/</guid>
        
        <category>kriptografija</category>
        
        <category>mobilna telefonija</category>
        
        <category>GrapheneOS</category>
        
        
        <category>Digitalna forenzika</category>
        
        <category>Odprta koda</category>
        
      </item>
    
  </channel>
</rss>
