< Return to Video

Florian Grunow, Niklaus Schiess: Lifting the Fog on Red Star OS

  • 0:00 - 0:10
    preroll music
  • 0:10 - 0:16
    Herald: North Korea; not only famous for chocolate
    but for being a surveillance state
  • 0:16 - 0:22
    And as a good surveillance state,
    it has to have its own operation system.
  • 0:22 - 0:28
    Because how will you do proper surveillance
    without your own operation system?
  • 0:28 - 0:36
    Today, we get a brief introduction
    how Red Star OS is working.
  • 0:36 - 0:39
    The introduction will have a specific
    focus on the custom code
  • 0:39 - 0:45
    which was inserted for surveillance,
    and especially how to get around it.
  • 0:45 - 0:52
    So please welcome Florian and Niklaus
    with a big round of applause.
  • 0:52 - 1:01
    Applause
  • 1:01 - 1:03
    Florian Grunow: Hey everybody,
    thanks for having us.
  • 1:03 - 1:08
    We are going to give you a deep
    dive into Red Star OS.
  • 1:08 - 1:12
    Actually, we were kind of surprised that
    there is not so much information
  • 1:12 - 1:18
    on the net about really the core of Red
    Star and what is it doing.
  • 1:18 - 1:22
    So we thought we would change this,
    and give you an insight in how
  • 1:22 - 1:26
    this Operating System works,
    and by looking into the technical aspects
  • 1:26 - 1:34
    of Red Star you can also draw conclusions
    about how development in North Korea
  • 1:34 - 1:38
    is evolving and is, maybe, catching up.
  • 1:38 - 1:42
    So what we're going to talk about is:
    First of all, a short introduction
  • 1:42 - 1:46
    into the motivation; why are we doing
    this? We are going through
  • 1:46 - 1:50
    the architecture of Red Star; we are going
    to show you the components in the core
  • 1:50 - 1:54
    in the operating system itself; and then
    we will take a deep dive into
  • 1:54 - 1:57
    the additional components, all of the
    programs that are coming from North Korea
  • 1:57 - 2:01
    and are supplied with the ISO
    of Red Star OS.
  • 2:01 - 2:06
    After that, we are going to give you a
    deep dive into the most interesting features
  • 2:06 - 2:13
    of Red Star OS; and then we will be able
    to draw our own conclusions;
  • 2:13 - 2:16
    and afterwards we will have time
    for questions, we hope.
  • 2:16 - 2:21
    By the way, this picture on the left you
    can see here is actually one of the--
  • 2:21 - 2:29
    I think it's the screensaver right from
    Red Star OS. Laughter So, um, yeah.
  • 2:29 - 2:33
    So before we begin, we need to
    do this disclaimer:
  • 2:33 - 2:38
    For your information we have never visited
    DPRK, we have never been to North Korea.
  • 2:38 - 2:42
    All we know about North Korea is from
    public sources, from the internet,
  • 2:42 - 2:47
    from media, whatever. So what we are
    going to say about North Korea
  • 2:47 - 2:53
    has to be speculation because we don't
    know exactly what happens in North Korea.
  • 2:53 - 2:58
    Also, the ISOs that we have been analysing
    are found publicly available on
  • 2:58 - 3:02
    the internet, [and] may be fake. We don't
    think that they are fake because
  • 3:02 - 3:09
    Will Scott has shown last year on the 31C3
    how Red Star looks, and everything that
  • 3:09 - 3:16
    he has been showing is basically in the
    ISO, so we think it is legit.
  • 3:16 - 3:21
    Remember that we are not going to make fun
    of anybody in this talk. We are not going
  • 3:21 - 3:24
    to make fun of the developers, and we are
    certainly not going to make fun of
  • 3:24 - 3:30
    the people in the DPRK, because we think
    that our presentation might have some
  • 3:30 - 3:36
    funny aspects or something that makes
    you laugh - which is perfectly fine - but
  • 3:36 - 3:42
    looking at Red Star in detail is kind of a
    surveillance mess, I would say, and
  • 3:42 - 3:48
    it's a security or privacy nightmare.
    So keep these aspects in mind.
  • 3:48 - 3:52
    Also, this talk is not going to focus
    about security. We're not going to talk
  • 3:52 - 3:56
    about security. Many of the publications
    available on the internet are
  • 3:56 - 4:00
    about security, and we're not going to
    focus on this in this presentation.
  • 4:00 - 4:07
    So, why are we doing this? Red Star ISOs
    have been leaked some time ago; there is
  • 4:07 - 4:12
    a version 2 hanging around the internet
    and there is obviously a version 3.0
  • 4:12 - 4:17
    which has been leaked at the end of 2014,
    and we were quite surprised at the middle
  • 4:17 - 4:20
    of the year that there is no in-depth
    analysis of this operating system.
  • 4:20 - 4:25
    So most of the blogs and news articles are
    quite superficial that you can find out there,
  • 4:25 - 4:31
    and this is kind of surprising because
    if there is some kind of state that
  • 4:31 - 4:36
    doesn't put focus on transparency and free
    speech, and they are putting out an
  • 4:36 - 4:41
    operating system, you kind of want to know
    how do they build their operating system.
  • 4:41 - 4:46
    So that was one of the major aspects for
    us to look into it. The other aspect was
  • 4:46 - 4:51
    to find out how is the state of
    software development in DPRK;
  • 4:51 - 4:59
    how are they developing software? Do they
    have a well-thought architecture;
  • 4:59 - 5:04
    are they thinking about what they are
    doing? How is the skill level of software
  • 5:04 - 5:09
    development in North Korea?
    So these were the two aspects that
  • 5:09 - 5:10
    we wanted to find out.
  • 5:10 - 5:15
    So if you look at previous work, as I said
    there is mostly superficial stuff.
  • 5:15 - 5:23
    There is some information that Red Star OS
    actually looks like Mac OSX, and we will
  • 5:23 - 5:27
    go into this a little bit further.
    Then we have this talk from Will Scott
  • 5:27 - 5:31
    last year at 31C3, who was talking about
    Computer Science in DPRK which was
  • 5:31 - 5:37
    very very interesting, and gave a pretty good
    insight into what's happening in DPRK.
  • 5:37 - 5:44
    And then we have a bunch of guys who
    looked into the browser of Red Star,
  • 5:44 - 5:46
    which is also quite interesting.
  • 5:46 - 5:53
    So what we are going to do now is--
    I'm going to show you the custom basic
  • 5:53 - 5:58
    components; I'm going to talk a little bit
    about integrity on the system; then I will
  • 5:58 - 6:05
    hand over to Niklaus who will be looking
    into the core and surveillance features;
  • 6:05 - 6:08
    and then as I said, we will have time
    for questions afterwards.
  • 6:08 - 6:13
    So there are different leaked versions out
    there, as I said. We have a desktop and
  • 6:13 - 6:19
    a server version of Red Star, so you can
    also use Red Star as a server, and it
  • 6:19 - 6:23
    turns out that server version 3 is
    actually used on the internet right now.
  • 6:23 - 6:29
    As you can see, there is a server
    header returned: "Red Star 3.0"
  • 6:29 - 6:33
    This is an IP address of the server, and
    it is pointing into North Korea.
  • 6:33 - 6:37
    So this is one of the few web sites that
    is publicly facing the internet from
  • 6:37 - 6:44
    North Korea, and they are obviously using
    the server version 3.0. So 3.0 might
  • 6:44 - 6:48
    actually be the latest version.
    There is another version, it's 2.0,
  • 6:48 - 6:54
    which has also been leaked to the internet,
    and then there is supposedly something
  • 6:54 - 7:02
    that looks like 2.5; we have found some
    South Korean documents that seem to be
  • 7:02 - 7:09
    analysing the system quite superficially,
    and it looks like 2.5 actually resembles
  • 7:09 - 7:14
    the look and feel of Windows XP. So you
    kind of see this evolution right now from
  • 7:14 - 7:19
    2.5 XP going to 3.0 mimicking Mac OSX.
  • 7:19 - 7:24
    Our talk will focus on the
    desktop version which is desktop 3.0
  • 7:24 - 7:29
    If you look at the timeline, which is
    a guess - there's no documentation available
  • 7:29 - 7:35
    on how they did it, obviously - if you
    look at the 3.0 version you see that it is
  • 7:35 - 7:42
    based on Fedora 11 which came out in 2009.
    So our guess is they started developing 3.0
  • 7:42 - 7:48
    in 2009 with this Fedora 11 release.
    The kernel that they are using is 2.6.38
  • 7:48 - 7:56
    which came out with Fedora 15 in 2011.
    So it could be that the OS itself is
  • 7:56 - 8:01
    a little bit older, the kernel is a little
    bit newer, and the latest package build
  • 8:01 - 8:05
    dates that you can see in
    Red Star OS date to June 2013.
  • 8:05 - 8:12
    So our educated guess is that Red Star
    came out in June 2013 or a little bit later,
  • 8:12 - 8:14
    a few weeks later or months later.
  • 8:14 - 8:18
    In December 2014 we had the public leak,
    so the ISOs have been leaked to the internet
  • 8:18 - 8:21
    and are publicly available right now.
  • 8:21 - 8:26
    If you look into the operating system,
    it's basically a fully-featured desktop system
  • 8:26 - 8:31
    you might imagine. It's based on KDE
    and Fedora as I already said, and it tries
  • 8:31 - 8:36
    to mimic the look and feel of Mac OSX.
    You have an e-mail client, a calendar,
  • 8:36 - 8:41
    a word processor, you've got Quicktime and
    all of that stuff. You even have a disk
  • 8:41 - 8:46
    encryption utility that Will Scott
    has shown last year.
  • 8:46 - 8:52
    They implemented additional kernel modules
    and they touched a lot of kernel modules.
  • 8:52 - 8:55
    They have this kernel module "rtscan"
    which Niklaus is going to say a little bit
  • 8:55 - 9:00
    more about, they have this kernel module
    called "pilsung" - I was told this
  • 9:00 - 9:05
    means "victory" in Korean - and that
    kind of is a kernel module that supplies
  • 9:05 - 9:12
    AES encryption. So they implemented an own
    kernel module to supply something like AES.
  • 9:12 - 9:16
    Then there is a kernel module called "kdm"
    which is the Korean Display Module,
  • 9:16 - 9:21
    and "kimm"-- muffled laughter
    --which is not what it's like--
  • 9:21 - 9:25
    it's not looking-- laughter
    Well, I'll just go on.
  • 9:25 - 9:31
    It basically just does something with
    Korean letters and displaying Korean
  • 9:31 - 9:35
    letters on the screen.
  • 9:35 - 9:40
    Red Star has been developed by the KCC,
    the Korean Computer Centre.
  • 9:40 - 9:47
    It's quite interesting that since a few
    years ago they had an office in Berlin.
  • 9:47 - 9:51
    I don't know what they did there, but
    they obviously had an office in Berlin
  • 9:51 - 9:55
    maybe for knowledge sharing, whatever.
    If you look at the system hardening,
  • 9:55 - 9:58
    it's quite interesting that they
    took care of system hardening.
  • 9:58 - 10:03
    So they implemented SELinux rules with
    custom modules, they have IP tables
  • 10:03 - 10:07
    rolled out immediately so you don't have
    to activate it or put your rules into it;
  • 10:07 - 10:12
    the firewall is working. They even have
    Snort installed on the system.
  • 10:12 - 10:16
    It's not running by default but they are
    kind of delivering it by default, and they
  • 10:16 - 10:22
    have a lot of custom services that we are
    going to look into right now.
  • 10:22 - 10:26
    Quite interesting is-- so why should
    North Korea mimic Mac OSX?
  • 10:26 - 10:30
    That might be one reason right there:
    because this young fella sitting on the left
  • 10:30 - 10:36
    is actually using an iMac right here.
    So this is one reason.
  • 10:36 - 10:41
    So why should they implement their own
    operating system? There actually are
  • 10:41 - 10:48
    so-called anthologies put out by the leader,
    and one anthology by Kim Jong-il says that
  • 10:48 - 10:54
    - if you translate it correctly, and we
    try to - "in the process of programming,
  • 10:54 - 10:59
    it is important to develop one in our own
    style," and with "one" he means programs
  • 10:59 - 11:06
    and operating systems. So there is this
    clear guidance that North Korea should not
  • 11:06 - 11:12
    rely on third-party Western operating
    system and programs, they should
  • 11:12 - 11:15
    develop this stuff on their own.
    And by looking at the code and everything
  • 11:15 - 11:19
    that we have by Red Star OS, this is
    exactly what they did. They touched
  • 11:19 - 11:24
    nearly everything on the operating system,
    changed it a little bit, added custom code
  • 11:24 - 11:29
    and so this is actually what they
    are doing right there.
  • 11:29 - 11:34
    The custom applications that you have is
    a browser, which translates to "my country."
  • 11:34 - 11:40
    You also have a crypto tool that Will Scott
    has shown last year which is called Bokem
  • 11:40 - 11:44
    which if you translate it kind of
    translates to "sword."
  • 11:44 - 11:50
    You have Sogwang Office which is an
    OpenOffice customised for North Korean use.
  • 11:50 - 11:54
    A software manager; you have MusicScore
    which is an application you can compose
  • 11:54 - 11:59
    music with. Then you have a program which
    is called "rootsetting" and it basically
  • 11:59 - 12:04
    gives you root. So if you look into the
    documentation, it says you are not
  • 12:04 - 12:08
    supposed to have root on the system for
    integrity reasons, but if you want to get
  • 12:08 - 12:13
    root you can use this tool, so they're not
    hiding anything. So there are rumours
  • 12:13 - 12:16
    on the net that say that you're not
    supposed to get root on the system
  • 12:16 - 12:21
    because it's so locked down. This is not
    true obviously because there is software
  • 12:21 - 12:24
    intended to give you administrative privileges.
  • 12:24 - 12:30
    They even touched KDM, so the code base
    that they touched is really, really big.
  • 12:30 - 12:33
    Nearly the whole operating system.
  • 12:33 - 12:38
    We are now going to give you a demo.
    The first demo that we are doing, we are
  • 12:38 - 12:42
    doing it right now, because we are
    actually doing this presentation
  • 12:42 - 12:55
    in Red Star OS.
    Laughter and applause
  • 12:55 - 12:59
    So what you see right here is basically
    Red Star OS. We're going to show
  • 12:59 - 13:03
    some of the aspects to you. There are many many
    screenshots on the internet, some of you might already
  • 13:03 - 13:07
    know how Red Star works, you might have
    experience yourself.
  • 13:07 - 13:10
    We're just going over a few interesting issues.
  • 13:10 - 13:16
    So as you have seen, there is a full-blown
    set of word processing, Powerpoint
  • 13:16 - 13:22
    presentation stuff. I'm going to open up
    the browser-- pfft, whatever. Laughter
  • 13:22 - 13:31
    --and going into the preferences just to
    give you a quick-- no. Muted laughter
  • 13:31 - 13:39
    Oh. Laughter Yeah, to give you an insight
    on the Certificate Authorities that are
  • 13:39 - 13:44
    implemented in this Firefox version - it's
    Firefox 3 - so you see there is not so many
  • 13:44 - 13:51
    Certificate Authorities right here, and
    they all are I guess from North Korea.
  • 13:51 - 13:56
    So the browser is totally created to not
    be used outside of North Korea,
  • 13:56 - 14:04
    which you can see in the URL bar.
    There is an internal IP address
  • 14:04 - 14:09
    which points into the network of
    North Korea, and all of the settings,
  • 14:09 - 14:12
    proxy settings, hard-coded IP addresses,
    or whatever, all point into this
  • 14:12 - 14:16
    internal infrastructure of North Korea.
    So this browser and the e-mail program
  • 14:16 - 14:19
    was never intended to be used
    outside of North Korea.
  • 14:19 - 14:23
    Pfft Okay. Laughter
    What else do we have?
  • 14:23 - 14:29
    Okay, we have a Quicktime player.
    So speaking of Mac OSX,
  • 14:29 - 14:41
    you all have seen this. Woo! Swoosh. Right?
    Okay, so that perfectly mimics Mac OSX.
  • 14:41 - 14:46
    So let me try to find--
    I'll try with aplay right here.
  • 14:46 - 14:52
    So this is the shell. Quite interesting is
    that when we were looking through
  • 14:52 - 14:57
    all of this stuff, there is a bunch of
    files that have a certain protection,
  • 14:57 - 15:00
    and they seem to be pretty important
    for the system, and there is a
  • 15:00 - 15:07
    wave file - an audio wave file - that
    actually is protected.
  • 15:07 - 15:15
    It's usr/lib/Warnning.wav;
    I don't know if we can hear this.
  • 15:15 - 15:19
    I hope that your ears are not going to
    explode right now. I'll just try it.
  • 15:19 - 15:22
    Pig squealing
    I'll try it again.
  • 15:22 - 15:26
    Pig squealing
    You hear that? Laughter
  • 15:26 - 15:29
    Pig squealing
    Does anybody know what this is?
  • 15:29 - 15:34
    Shouts of "pig" from audience
    Pardon me? Pig, exactly.
  • 15:34 - 15:36
    And where is it coming from?
    Does anybody know?
  • 15:36 - 15:40
    That's stolen from Kaspersky antivirus,
    because in the older version of
  • 15:40 - 15:45
    Kaspersky antivirus if you find a virus
    it actually will play this sound, and it's
  • 15:45 - 15:50
    exactly the wav file from Kaspersky;
    we verified this by doing checksums, okay.
  • 15:50 - 16:03
    Laughter So we have a copyright violation
    right here. Laughter and applause
  • 16:03 - 16:08
    So what else do we have? I've been talking
    about this, you can create your own music.
  • 16:08 - 16:13
    I'm not going to do this now because
    I'm not good at making music.
  • 16:13 - 16:16
    What else do we have? We have the browser.
    Did we want to show-- ah yeah.
  • 16:16 - 16:21
    I'm going to show you one more thing.
    I'm not going to show you the encryption
  • 16:21 - 16:29
    tool because Will Scott has done this
    last year, but to give you an insight into
  • 16:29 - 16:34
    the crypto tool, it's pretty interesting.
    If you look at the description of the bokem3,
  • 16:34 - 16:38
    bokem is the tool that is used for disk
    encryption so it provides the user a tool
  • 16:38 - 16:42
    to encrypt files or even the complete
    hard drive, and if you look into
  • 16:42 - 16:50
    the description it says "this allows the user
    to store his/her privacy data with encrypted,"
  • 16:50 - 16:56
    which is quite nice. I mean, we didn't
    expect to have something like this
  • 16:56 - 17:04
    in Red Star. So the user can at least
    try to encrypt files.
  • 17:04 - 17:09
    Bokem is using out-of-the-box crypto
    that comes with the kernel.
  • 17:09 - 17:14
    It also uses pilsung, which we don't know
    if there are any backdoors in it or not,
  • 17:14 - 17:20
    so we have no idea if this is possible to
    decrypt with a master key or something.
  • 17:20 - 17:24
    If you want to look into this, we would be
    happy if someone with big crypto
  • 17:24 - 17:33
    experience would look into it.
    So let me get back to the presentation.
  • 17:33 - 17:39
    Ah! One thing I need to show you is this
    red flag on the right corner, right here.
  • 17:39 - 17:46
    If you look into this, and you translate -
    I didn't click the right one - if you are
  • 17:46 - 17:52
    going to translate all of this, you will
    find that all of the strings and all of
  • 17:52 - 17:59
    the text that you see right here, they
    seem to be an antivirus scanner.
  • 17:59 - 18:04
    So they even implemented from scratch
    an antivirus scanner in Red Star OS.
  • 18:04 - 18:08
    You can now select the folder or a file
    and say run a check on the file,
  • 18:08 - 18:13
    and if the file is actually a malicious
    file - we will come to that part later,
  • 18:13 - 18:18
    what "malicious" is - it will instantly
    be deleted from the hard drive.
  • 18:18 - 18:25
    So this is an interesting feature, having
    a virus scanner in a Linux OS.
  • 18:25 - 18:29
    Okay so let's look at the custom
    components. We have been
  • 18:29 - 18:32
    looking into the user space a little bit,
    and all of the programs that come with it.
  • 18:32 - 18:37
    There is far more stuff. Download the ISO,
    play around with it a little bit.
  • 18:37 - 18:42
    First, change the language to English.
    You will obviously not get far
  • 18:42 - 18:46
    if your Korean is bad.
    So change the language and
  • 18:46 - 18:48
    play around with it a little bit.
  • 18:48 - 18:53
    So Red Star Comes with
    interesting packages.
  • 18:53 - 18:57
    They touched KDE as I said.
    They are getting out an integrity
  • 18:57 - 19:00
    checker and a security daemon.
    There are signature packages right here
  • 19:00 - 19:06
    which Niklaus is going to talk about
    a little bit, there are policies for selinux,
  • 19:06 - 19:11
    and I'm going to talk about two of the
    integrity checking mechanisms that
  • 19:11 - 19:12
    Red Star has.
  • 19:12 - 19:18
    So by looking at Red Star, we saw that
    one thing was pretty important to them:
  • 19:18 - 19:23
    They wanted to preserve the integrity
    of the system, and one way to do this
  • 19:23 - 19:27
    is using this process right here,
    it's called "intcheck."
  • 19:27 - 19:32
    It comes with an SQLite database with
    hashes of files on the system,
  • 19:32 - 19:37
    like signatures for the system, and
    you can configure it from user space so
  • 19:37 - 19:41
    it's not pretty hidden, it's pretty
    transparent to the user.
  • 19:41 - 19:45
    I think there even comes a UI with it
    where you can configure everything,
  • 19:45 - 19:49
    and it's run at boot. It checks the files
    and if it sees that the files have been
  • 19:49 - 19:52
    manipulated or tampered with - if the
    checksum changes - then it will issue
  • 19:52 - 19:56
    a warning to the user.
    So you get a small popup that says,
  • 19:56 - 20:00
    "this file has been tampered with," the
    security or the integrity of the system
  • 20:00 - 20:06
    is not where it should be. So that's
    pretty much what this thing does.
  • 20:06 - 20:11
    securityd is kind of interesting, because
    securityd is also a process that is known
  • 20:11 - 20:18
    to run under Mac OSX. I'm not a Mac user,
    and I think that Mac OSX with securityd
  • 20:18 - 20:21
    is keeping track of certificates
    and stuff like that.
  • 20:21 - 20:27
    So what they did is they reimplemented
    securityd for Linux, and they included
  • 20:27 - 20:33
    various plugins. One interesting issue
    with securityd is it comes with a library
  • 20:33 - 20:37
    that provides a function called
    validate_os(), and what this function does
  • 20:37 - 20:43
    is it has a hard-coded list of files.
    You can see like our wav file right here,
  • 20:43 - 20:49
    you can see configuration files, and
    autostart files for scnprc which is
  • 20:49 - 20:54
    the antivirus scanner. So it checks if
    these files are untouched, and if
  • 20:54 - 20:59
    these files have been tampered with it
    initiates a reboot instantly.
  • 20:59 - 21:04
    So if you touch one of these files,
    your machine will reboot instantly.
  • 21:04 - 21:11
    The same library is also used from KDM,
    so during the startup process when KDM is
  • 21:11 - 21:16
    starting it is also doing an integrity check,
    and if it finds that one of these files has
  • 21:16 - 21:20
    been tampered with it actually immediately
    issues a reboot, and the problem is
  • 21:20 - 21:24
    that if you start tampering with the system
    you will end up in reboot loops
  • 21:24 - 21:30
    all of the time if you're doing research,
    because once KDM is saying reboot
  • 21:30 - 21:33
    the system, it's going to check it again
    if it's rebooted and sees that it's
  • 21:33 - 21:37
    still tampered with and it reboots again,
    and again, and again, and then your
  • 21:37 - 21:40
    system is basically dead.
    So what they tried to do with intcheck
  • 21:40 - 21:46
    and securityd is try and protect certain files,
    conserve the integrity of these files,
  • 21:46 - 21:51
    and if these files get tampered with they
    assume that it is better to have an
  • 21:51 - 21:55
    operating system that you cannot work with
    any more than to still let it run or
  • 21:55 - 22:00
    issue any warning.
    So integrity is one of the main aspects
  • 22:00 - 22:03
    they were looking for in
    implementing Red Star.
  • 22:03 - 22:08
    Okay, I will hand over to Niklaus and
    he will go into the guts and the
  • 22:08 - 22:12
    surveillance features a little bit more.
  • 22:12 - 22:15
    Niklaus Schiess: The most interesting
    feature-- package we found was this
  • 22:15 - 22:21
    esig-cb package, which actually says
    in the description that it's an
  • 22:21 - 22:27
    "electronic signature system," but we
    found that it is doing a lot of weird stuff.
  • 22:27 - 22:31
    This is actually one of the pictures
    which is included in the package,
  • 22:31 - 22:34
    which is also protected. We don't know
    really why, but it says something like
  • 22:34 - 22:38
    "this is our copyright;"
    and "don't break it;"
  • 22:38 - 22:41
    and "don't copy it;" and stuff like that.
  • 22:41 - 22:46
    But it's actually doing
    something really different.
  • 22:46 - 22:50
    It includes several pretty interesting files.
    We have some configuration files,
  • 22:50 - 22:54
    we have a kernel module, and we also
    have this redflag.bmp which is the
  • 22:54 - 22:58
    picture you just saw, and we have the
    warning file, and we have some
  • 22:58 - 23:04
    shared libraries, and we'll go now
    into details what these are actually doing.
  • 23:04 - 23:08
    So the first thing we looked at was
    because there is a kernel module
  • 23:08 - 23:12
    loaded by default, and we thought
    if you want to put some backdoors in it
  • 23:12 - 23:16
    where would you want to put it?
    Right in the kernel module, probably.
  • 23:16 - 23:20
    And what it does, it's actually just
    hooking several system calls which
  • 23:20 - 23:27
    provides a device which is actually
    interfaced to the kernel so you have
  • 23:27 - 23:30
    different services running on a system
    who are actually talking to this
  • 23:30 - 23:34
    kernel module via this device,
    and it has some functionality like
  • 23:34 - 23:39
    it can protect PIDs. So when you're
    protecting a specific process then
  • 23:39 - 23:42
    even root cannot kill this process,
    which will be quite interesting
  • 23:42 - 23:48
    in the next slides. It also provides
    functionality to on one side protect
  • 23:48 - 23:53
    files, and on the other side to hide files.
    So protect means you cannot edit
  • 23:53 - 23:56
    the file, and hide means you
    cannot even read the file.
  • 23:56 - 24:00
    So even if you had root user,
    you can't even read those files.
  • 24:00 - 24:05
    And on the right side is actually how
    the services are interacting with this
  • 24:05 - 24:11
    kernel module, and this is one function which
    mostly protects and hides the files
  • 24:11 - 24:16
    which we just saw, which are included
    in this esignature package.
  • 24:16 - 24:20
    Then like Florian said, we have this
    virus scanner which at first glance
  • 24:20 - 24:25
    at least looks like a virus scanner,
    and this is this "scnprc" process.
  • 24:25 - 24:29
    It provides a GUI to the user so it's
    quite transparent so the user can see
  • 24:29 - 24:32
    "okay, I have something that looks
    like a virus scanner, and I can also
  • 24:32 - 24:35
    trigger some scans of
    different directories,"
  • 24:35 - 24:41
    and it's started by kdeinit. So there's
    this scnprc desktop file which is
  • 24:41 - 24:46
    quite interesting because what you
    want to do is disable it, but you
  • 24:46 - 24:48
    cannot actually edit these file.
    So as soon as you edit this file
  • 24:48 - 24:51
    and save it, then the system
    will immediately reboot.
  • 24:51 - 24:54
    So disabling it is not so easy.
  • 24:54 - 24:59
    Like I already said, you have different
    ways of scanning. You can just click
  • 24:59 - 25:02
    on a folder and say "scan this," but
    also if you for example plug in
  • 25:02 - 25:07
    a USB stick into the system then it will
    automatically scan the files on the USB stick.
  • 25:07 - 25:12
    And this scnprc service is actually
    loading the kernel module, and
  • 25:12 - 25:16
    it starts another service which is
    called "opprc" which we are going to
  • 25:16 - 25:23
    look in detail in a minute, and this is
    also quite interesting this next service.
  • 25:23 - 25:29
    But the pattern matching, we looked into
    this a little bit and there's another
  • 25:29 - 25:35
    package. So we have this esig-cb package
    and you have esic-cb-db package which
  • 25:35 - 25:40
    actually just provides this one single
    "AnGae" file. As far as we know,
  • 25:40 - 25:45
    it means "fog" in Korean. And this is
    basically a signature file, or how the
  • 25:45 - 25:50
    code references it a pattern file.
    It's a file with a well-defined file format
  • 25:50 - 25:53
    and it includes patterns which are
    loaded into memory, and as soon as
  • 25:53 - 25:57
    you are scanning a file it just checks if
    these patterns are matching and as soon
  • 25:57 - 26:02
    as the patterns are matched then it
    immediately deletes the file and it
  • 26:02 - 26:09
    plays the warning, and this is one of
    the hidden files so even if you get root
  • 26:09 - 26:12
    privilege on the system you are not
    able to actually read this file.
  • 26:12 - 26:16
    So a user of the operating system won't
    be able to check "okay, what does it
  • 26:16 - 26:20
    check and can I produce documents
    which won't be detected by this"
  • 26:20 - 26:23
    because you cannot actually read this file.
  • 26:23 - 26:31
    We took a look into this. Most likely our
    best guess is that these contain--
  • 26:31 - 26:35
    A lot of the files are little-endian so
    you always have to switch the bytes
  • 26:35 - 26:41
    and we saw that it looks at least like
    they are UTF-16 strings with Korean,
  • 26:41 - 26:45
    Chinese, and some other weird characters,
    and if we put these in Google Translate
  • 26:45 - 26:50
    then there are actually some pretty weird
    and disturbing terms in those files.
  • 26:50 - 26:54
    But we actually cannot confirm this.
    It looks like they are actually not
  • 26:54 - 26:58
    scanning for malware in the system, so
    most likely they are checking documents
  • 26:58 - 27:02
    and if those documents match those
    patterns then they are most likely--
  • 27:02 - 27:05
    for example, governments don't want these
    files to be distributed within the intranet
  • 27:05 - 27:08
    of North Korea then it just
    deletes those files.
  • 27:08 - 27:12
    But actually we cannot confirm this
    because we are not quite sure if you
  • 27:12 - 27:18
    put those strings in Google Translate that
    they are actually real translations.
  • 27:18 - 27:23
    But you can always update these pattern
    files, so on the one side is scnprc has a
  • 27:23 - 27:27
    built-in update process where it just
    updates the file itself, or you can just
  • 27:27 - 27:30
    when you are doing operating system
    update via your package manager
  • 27:30 - 27:36
    and you update this esig-cb-db package
    and you also get a brand new file.
  • 27:36 - 27:41
    The interesting part of this is that the
    developers decide what is malicious.
  • 27:41 - 27:46
    So it's not necessarily that "malicious"
    means that it's malware, that it's
  • 27:46 - 27:52
    bad for you, but somewhere the developers
    and officials will actually say,
  • 27:52 - 27:56
    "okay, we don't want those files
    distributed, just delete them
  • 27:56 - 27:58
    "because we think they are malicious."
  • 27:58 - 28:03
    There is this other service which I was
    also talking about, this "opprc."
  • 28:03 - 28:06
    This is more interesting than the
    virus scanning itself.
  • 28:06 - 28:10
    It's running in the background, so
    actually a user will not see that there
  • 28:10 - 28:14
    is actually another service running, you
    don't have any GUI or something like that,
  • 28:14 - 28:18
    you cannot trick or something with this,
    and this is one of the protected PIDs.
  • 28:18 - 28:24
    So scnprc for example you can just kill
    with root privileges, but this is a process
  • 28:24 - 28:28
    no one can kill on the system, and
    this is quite interesting because
  • 28:28 - 28:32
    you cannot unload the kernel module
    unless this service is killed, so they
  • 28:32 - 28:37
    are actually protecting each other so that
    no one can stop the services at all.
  • 28:37 - 28:41
    And this service shares a lot of
    code with the scnprc.
  • 28:41 - 28:46
    We just did some entropy checking
    and saw okay-- I will talk in a minute
  • 28:46 - 28:52
    when we are comparing more of these
    files why we think that this looks
  • 28:52 - 28:55
    pretty much the same, why they are
    sharing so much code, because
  • 28:55 - 28:59
    we found something interesting with
    older versions of those services.
  • 28:59 - 29:04
    But the most interesting thing this
    service is doing is it watermarks files.
  • 29:04 - 29:08
    And now we are going to look deeper
    into what this watermarking means.
  • 29:08 - 29:12
    So actually as soon as this system is
    started, it reads your hard disk serial
  • 29:12 - 29:16
    and then scrambles it a little bit,
    and as soon as you are for example
  • 29:16 - 29:21
    plugging a USB stick into your system
    then it will trigger a watermarking
  • 29:21 - 29:25
    process where it takes the serial,
    takes a hard-coded DES key from
  • 29:25 - 29:29
    the binary itself, and then encrypts
    it and then puts it into your file.
  • 29:29 - 29:35
    And when you are converting this hex key
    into a decimal representation then you
  • 29:35 - 29:39
    see that it is actually two dates.
    We actually cannot confirm what
  • 29:39 - 29:45
    those two dates mean, but one of those
    matches Madonna's birth date, and
  • 29:45 - 29:51
    there are rumours that some people in
    North Korea might really like Madonna.
  • 29:51 - 29:58
    This is just speculation, but if you have a
    better conspiracy theory then just let us know.
  • 29:58 - 30:02
    Because we found some pretty interesting
    stuff, but we cannot confirm this.
  • 30:02 - 30:07
    So technically the watermarks have an
    ASCII EOF appended, which is most likely
  • 30:07 - 30:11
    used by the code itself to parse
    the files and see if there's already
  • 30:11 - 30:16
    a watermark in there, and for JPEG
    and AVI files, for example, it just
  • 30:16 - 30:20
    appends this watermark to the end of the
    file, and when you have a DOCX for example
  • 30:20 - 30:24
    it just appends it near the header where
    there are a bunch of null bytes, and then
  • 30:24 - 30:28
    it just puts it in there.
  • 30:28 - 30:32
    So the watermarking itself is as soon as
    you open a document file with Office then
  • 30:32 - 30:38
    it will be watermarked, and actually they
    have code which watermarks files even if
  • 30:38 - 30:44
    you don't open those files, but as soon
    as we saw this-- it's pretty buggy.
  • 30:44 - 30:48
    It doesn't work every time, but they have
    code for this implemented, and mostly
  • 30:48 - 30:54
    it works but sometimes it just fails.
    The supported types that we can confirm
  • 30:54 - 31:02
    are DOCX files, image files like JPEG and
    PNG and AVI video files. But the code
  • 31:02 - 31:07
    indicates there are several more file
    types available for watermarking, but
  • 31:07 - 31:11
    we most likely didn't look into this.
    But the most interesting thing here
  • 31:11 - 31:17
    is that only media files are affected.
    So they don't watermark any binaries
  • 31:17 - 31:23
    or something like that, they are reducing
    their surface to files which could be used
  • 31:23 - 31:31
    to carry information, which could be used
    to put out information for free speech
  • 31:31 - 31:36
    purposes, and actually what we think is
    that this is not a security feature.
  • 31:36 - 31:41
    So they are actually trying to watermark
    free speech in general, so that every time
  • 31:41 - 31:47
    you have a document file, an image, or
    a video file, then they want to know who
  • 31:47 - 31:52
    had this file and they watermark it so
    they can track the origin of the file.
  • 31:52 - 32:00
    We have a short demo where you can see
    for example I have a USB stick.
  • 32:00 - 32:10
    Let me put it in my system.
  • 32:10 - 32:15
    There is a file on the USB stick which
    is a love letter from Kim, and it has
  • 32:15 - 32:21
    a checksum which starts with "529", and
    as soon as I plug this into the system--
  • 32:21 - 32:35
    I hope that it will notice this.
  • 32:35 - 32:39
    You can see okay, it recognised something
    like a USB stick on the system, but I won't
  • 32:39 - 32:55
    open it, and I won't open any file on the
    USB stick. I just will eject it.
  • 32:55 - 33:03
    I hope that it works.
    Will it actually open?
  • 33:03 - 33:07
    This is what I meant, that it's kind of
    buggy, so it doesn't always work with
  • 33:07 - 33:13
    the watermarking, but most likely if you
    open the file itself then it will work.
  • 33:13 - 33:18
    I guess we didn't have the case that it
    doesn't work when you open it. [sic]
  • 33:18 - 33:29
    --which then opens Office, and I close
    it again and-- just close this.
  • 33:29 - 33:34
    Go back, and then hopefully if we mount
    this again then you can see it has
  • 33:34 - 33:39
    been changed. So we didn't change anything
    in the file, it was just the operating system
  • 33:39 - 33:44
    who's changing files, and this was
    initially the part where we started to
  • 33:44 - 33:48
    look into this more deeply because we
    thought an operating system who is
  • 33:48 - 33:57
    just changing files when you are plugging
    into the system is kind of annoying.
  • 33:57 - 34:01
    Just to make this easier for you--
    So what it actually does in the file,
  • 34:01 - 34:05
    we have here the header of the file
    which is a document, a DOCX file,
  • 34:05 - 34:09
    and it just added this string which is
    marked right here. This is actually
  • 34:09 - 34:14
    the watermark it's putting in there.
    Opposite there you can see the plaintext
  • 34:14 - 34:18
    which is actually encrypted and then
    put into the file, and the serial starts
  • 34:18 - 34:23
    with "B48" so every time it puts the
    serial into the file, it prefixes it with
  • 34:23 - 34:25
    "WM"
  • 34:25 - 34:30
    we think stands for "watermark" probably,
    and you can see the EOF at the end of
  • 34:30 - 34:35
    the file. This allows basically everyone
    who can access this file, who can
  • 34:35 - 34:41
    decrypt this watermark which is actually
    encoded with the hard-coded key,
  • 34:41 - 34:46
    so pretty much everyone who has access
    to this ISO can get this key and can
  • 34:46 - 34:51
    decrypt this. And this allows you to
    really track back the origin of the file,
  • 34:51 - 34:54
    where it came from.
  • 34:54 - 35:01
    But there is a pretty funny example.
    So imagine you have this picture, and
  • 35:01 - 35:05
    you are inside North Korea and you think
    "okay, this is pretty cool, and I want to
  • 35:05 - 35:09
    distribute this to all of my friends."
    So you think "okay, they might be
  • 35:09 - 35:12
    intercepting all of my e-mail and my
    browser communication," so you put it
  • 35:12 - 35:16
    on a USB stick and give it to your friends
    so that you think, "okay, no-one actually
  • 35:16 - 35:23
    on the internet can access this file"
    and you give it to someone else.
  • 35:23 - 35:27
    Then at the beginning we have this
    situation, where this is the original file.
  • 35:27 - 35:32
    This is the end of the JPEG file - which
    by definition always ends with an "FF D9"
  • 35:32 - 35:37
    hexadecimal - and as soon as you give this
    to your friend and he plugs the USB stick
  • 35:37 - 35:42
    into his computer which is running Red
    Star OS, then the file will actually
  • 35:42 - 35:46
    change and it will look like this.
    So for JPEG files, as I said it just
  • 35:46 - 35:50
    appends the watermark to the end of
    the file. So you can see the "FF D9," this
  • 35:50 - 35:54
    is the actual end of the image file, and
    they're appending the watermark there,
  • 35:54 - 35:58
    like you can see with the EOF.
    But where it gets interesting
  • 35:58 - 36:02
    is when your friend is actually
    distributing the file to another friend.
  • 36:02 - 36:07
    So what Red Star OS is actually doing,
    it appends also the watermark of your
  • 36:07 - 36:10
    third friend. Slight laughter
    So what you then can do--
  • 36:10 - 36:15
    If you technically combine this together,
    then you can see not only where the file
  • 36:15 - 36:19
    has its origins, but you can also track
    each and everyone who had this file
  • 36:19 - 36:24
    and who distributed this file, and with
    this knowledge you might be able to
  • 36:24 - 36:29
    construct something like this, where you
    can track the distribution of all of the
  • 36:29 - 36:33
    media files which are distributed
    over the intranet in North Korea.
  • 36:33 - 36:37
    You can see then in the centre we have
    this one really weird guy who is always
  • 36:37 - 36:42
    distributing images that we don't like,
    and you can see also who gets these files
  • 36:42 - 36:45
    and trace it back to all of the persons
    who ever had this file, and then you
  • 36:45 - 36:49
    can just go home to him and then shut
    him down and take his computer.
  • 36:49 - 36:55
    And we have actually not seen any
    functionality, but probably there is
  • 36:55 - 36:59
    functionality in the system implemented
    where it always sends your hard disk
  • 36:59 - 37:05
    serial to their servers, so the OS can
    probably be able to match your IP
  • 37:05 - 37:08
    address to your hard disk serial, and
    then they don't even have to go to your
  • 37:08 - 37:13
    home and get to your computer and check
    your hard disk serial, they just can do
  • 37:13 - 37:16
    this remotely and can check all of the
    distribution of all malicious media files
  • 37:16 - 37:22
    within the intranet of North Korea.
  • 37:22 - 37:27
    What we thought is pretty hard for someone
    who doesn't have access to a system other
  • 37:27 - 37:32
    than Red Star OS, who just has this one
    system, and tries to disable all of this
  • 37:32 - 37:35
    malicious functionality like the virus
    scanning that can delete all of your files
  • 37:35 - 37:41
    that someone else doesn't like, or the
    watermarking/the tracking of those files.
  • 37:41 - 37:45
    And this is actually quite hard, because
    some of those services are depending
  • 37:45 - 37:49
    on each other and can only be killed
    when the other service is not running.
  • 37:49 - 37:54
    So what you actually have to do is you
    have to get root privileges, and then you
  • 37:54 - 37:58
    have to kill those two integrity checking
    daemons which Florian was talking about
  • 37:58 - 38:03
    so that it doesn't always reboot the
    system when you're changing anything.
  • 38:03 - 38:08
    Then you can via ioctl calls to the kernel
    module, and say just "disable" because
  • 38:08 - 38:11
    it has this nice feature where you can
    enable and disable it, and then you
  • 38:11 - 38:18
    can kill scnprc, opprc, and the
    best thing you can do is--
  • 38:18 - 38:24
    Weirdly, the libos file is not protected
    by anyone, so you can just exchange
  • 38:24 - 38:28
    this with a validate_os() function which
    always returns 1 which says everything
  • 38:28 - 38:32
    is fine, and then at the end you can
    delete the desktop file which is used
  • 38:32 - 38:36
    by KDE in it to start all of these
    processes, and then you are fine.
  • 38:36 - 38:39
    And we don't think that actually anyone
    in North Korea who only has access
  • 38:39 - 38:44
    to this one system-- It will be extremely
    hard to figure all of this out and
  • 38:44 - 38:49
    to completely disable it. So they did
    a pretty good job in building an
  • 38:49 - 38:54
    architecture which is quite self-protecting,
    and they put a lot of effort into it
  • 38:54 - 39:01
    to just prevent you from disabling all of
    the malicious functionality.
  • 39:01 - 39:07
    We also took a quick look on the second
    version of Red Star OS, just to compare
  • 39:07 - 39:13
    some of those services, and there we can
    see there is quite an evolution from the
  • 39:13 - 39:19
    older version to the current version.
    The thing which I was talking about,
  • 39:19 - 39:23
    that the binaries are quite similar,
    is that in the older version they used
  • 39:23 - 39:27
    a lot of shared libraries, and in the
    current version they statically linked
  • 39:27 - 39:33
    a lot of code into the binaries themselves
    even if they don't use it, so the codebase
  • 39:33 - 39:39
    looks quite the same. And the chain of
    starting the processes is a little bit
  • 39:39 - 39:44
    different, so they put a lot in the init
    process which will be started at first
  • 39:44 - 39:49
    and not like this depending-on-each-other
    infrastructure which they have in the
  • 39:49 - 39:53
    current version. In the current version
    they also have a lot of problems with
  • 39:53 - 39:57
    file privileges, so privilege escalations
    would be pretty easy, even if you don't
  • 39:57 - 40:03
    have this root setting file. But also they
    have a lot of binaries that are just
  • 40:03 - 40:08
    setting that everyone can read and write
    this interface to the kernel module,
  • 40:08 - 40:11
    which basically allows you even as a
    non-root user to disable the kernel
  • 40:11 - 40:15
    module, and then you can kill all of the
    binaries but you cannot actually delete
  • 40:15 - 40:19
    something because it will then
    end up in the reboot loop.
  • 40:19 - 40:24
    And when you are doing something malicious
    then the OS reboots, in the older version
  • 40:24 - 40:30
    it just shuts down the system, so we
    thought this is a pretty interesting thing.
  • 40:30 - 40:35
    And we think, and we saw, that there's
    a more advanced watermarking
  • 40:35 - 40:39
    technique in there which is not just
    appending watermarks into the files
  • 40:39 - 40:43
    but it looks like they are doing, for
    video and audio files at least,
  • 40:43 - 40:47
    something like they are putting the
    watermarks as filters on the files.
  • 40:47 - 40:52
    So this will be a little bit harder to
    actually see those watermarks
  • 40:52 - 40:55
    and read those watermarks, because it
    is not so obvious like when you have
  • 40:55 - 40:59
    this "EOF" string at the end which
    is always quite weird.
  • 40:59 - 41:04
    But it uses this "/usr/lib/organ" file
    which is actually not present on the
  • 41:04 - 41:09
    ISO we had. We're going to talk about
    this in the conclusion why we think
  • 41:09 - 41:12
    this might not be there, but it's
    actually not available. It's referenced
  • 41:12 - 41:18
    a lot in the code, but we actually
    haven't had this file and unfortunately
  • 41:18 - 41:22
    we couldn't look into this more deeply.
  • 41:22 - 41:28
    So what we didn't find were quite obvious
    backdoors which we thought would be
  • 41:28 - 41:35
    in place, and that they would be pretty
    easy to spot. But we didn't see any of those.
  • 41:35 - 41:39
    It doesn't mean that there are no
    backdoors, but we have some
  • 41:39 - 41:45
    speculations for this, and one of these
    is that like we saw at the beginning of
  • 41:45 - 41:48
    the talk that there are actually systems
    on the internet running this version
  • 41:48 - 41:52
    of Red Star OS, so it would be pretty
    weird if they would backdoor a system
  • 41:52 - 41:58
    and then put it on the internet.
    As far as someone gets the ISO file,
  • 41:58 - 42:04
    and can look for backdoors and can find
    some of them, they would be actually
  • 42:04 - 42:07
    able to exploit the system
    from the internet.
  • 42:07 - 42:13
    Actually the system has a package manager
    and as we saw with the pattern file
  • 42:13 - 42:18
    it has built-in update functionality and
    different services, so backdoors could
  • 42:18 - 42:22
    just be loaded via updates
    because probably they thought
  • 42:22 - 42:27
    "okay, these ISOs might be leaked into
    the outside world" and you just get
  • 42:27 - 42:33
    an ISO, install it, update your system -
    which is only possible from within the
  • 42:33 - 42:39
    intranet of North Korea, with hard coded
    internal IP addresses - so probably they
  • 42:39 - 42:43
    thought "we only want our backdoors on
    the systems which are actually located
  • 42:43 - 42:48
    within North Korea."
  • 42:48 - 42:56
    This is what we thought, that they thought
    the ISO might be leaked, which is what
  • 42:56 - 43:00
    actually happened. Another problem
    is that, like Florian already said, they
  • 43:00 - 43:05
    will touch a lot of code within the
    operating system and we didn't manage
  • 43:05 - 43:10
    to check all of the code. We mostly
    focused on the watermarking and the
  • 43:10 - 43:15
    virus scanning stuff, and there might be a
    lot of code that should be checked further.
  • 43:15 - 43:22
    The conclusion also is that the system's
    quite self-protecting. They not only
  • 43:22 - 43:26
    implemented several services for
    integrity checking themselves but also
  • 43:26 - 43:31
    they configured and implemented selinux
    and something like that, to just protect
  • 43:31 - 43:35
    the system and make it more secure.
  • 43:35 - 43:39
    What we think is really bad is this
    virus scanning and watermarking,
  • 43:39 - 43:44
    because it actually allows you to
    track not only the origin but the
  • 43:44 - 43:48
    complete distribution within the network
    of those files, and combined with the
  • 43:48 - 43:53
    virus scanner where the developers are
    able to actually say what files are really
  • 43:53 - 43:58
    malicious and what shouldn't be
    distributed within the network,
  • 43:58 - 44:04
    it just deletes those files. So these
    two combined are a really strong
  • 44:04 - 44:10
    framework which can help you to track
    malicious people within your network.
  • 44:10 - 44:15
    But some words about security: Like I
    said, they have a lot of problems with
  • 44:15 - 44:22
    file permissions. There are actually some
    documents on the ISO of the server
  • 44:22 - 44:27
    version of Red Star OS 3.0, and there are
    some user guides and administration
  • 44:27 - 44:30
    guides which are quite interesting, and
    they talk a lot about how to make the
  • 44:30 - 44:35
    system secure, how to run it secure, and
    why they are doing different kinds of
  • 44:35 - 44:42
    stuff to save the integrity of the system.
    They have a huge chapter talking about
  • 44:42 - 44:47
    file permissions, but they actually didn't
    manage to fix them themselves which
  • 44:47 - 44:52
    is quite weird. And even their custom code
    uses basic memory corruption protection
  • 44:52 - 44:58
    like stack cookies, and non-executable
    stacks which we saw that a lot of security
  • 44:58 - 45:03
    vendors don't bother to use, so we
    thought this is quite funny.
  • 45:03 - 45:07
    Some of their code is more secure than
    a lot of security appliances.
  • 45:07 - 45:09
    Slight laughter
  • 45:09 - 45:13
    Florian: So to wrap this up--
    Am I going, can you hear me? Yes.
  • 45:13 - 45:19
    Okay so to wrap this up, again we think -
    this is a guess - that primarily they try
  • 45:19 - 45:25
    to protect and to save the integrity
    of the system, which totally makes
  • 45:25 - 45:29
    sense if you're putting out an
    operating system from North Korea.
  • 45:29 - 45:32
    The system was, in our opinion,
    definitely built for home computers,
  • 45:32 - 45:37
    so it's not like industrial control or
    something else, it's definitely built
  • 45:37 - 45:43
    for a home user because it mimics
    Mac OSX and gives you all of the tools.
  • 45:43 - 45:47
    Maybe the reason why we didn't find
    backdoors is they actually know that
  • 45:47 - 45:51
    backdoors are bullshit. Could be a
    reason, we don't know.
  • 45:51 - 45:56
    If you want to look into Red Star OS and
    help us out, especially with the crypto,
  • 45:56 - 46:02
    the pilsung kernel module which provides
    custom crypto, with a look into the kernel
  • 46:02 - 46:06
    to see if there is something hidden there,
    if maybe there are backdoors there,
  • 46:06 - 46:09
    take a look at our github.
    Please contribute if you find
  • 46:09 - 46:13
    something, because we think that this
    message and all of this stuff has to
  • 46:13 - 46:18
    be put out to the public, so it is a
    well-known fact that this operating
  • 46:18 - 46:25
    system is actually abusing free software
    to actually make free speech harder
  • 46:25 - 46:29
    in a country that is quite oppressed.
  • 46:29 - 46:34
    So with this, we are at our end and we
    are going to take your questions now.
  • 46:34 - 46:46
    Applause
  • 46:46 - 46:52
    Herald: Thank you very much. We have
    about 15 minutes time for questions.
  • 46:52 - 46:55
    If you want to ask a question, please
    come to the microphones.
  • 46:55 - 46:59
    There are some on the right
    and some on the left aisle.
  • 46:59 - 47:04
    If you for any reason can't come to
    the microphones, please raise your
  • 47:04 - 47:09
    hand and I'll come to you
    with my microphone.
  • 47:19 - 47:28
    Okay, please line up there. If you
    wanna leave now, please do this
  • 47:28 - 47:35
    quietly through the front door.
  • 47:35 - 47:37
    Florian: Could you raise your hand if
    you have questions and standing at
  • 47:37 - 47:40
    the microphone? There are like
    three questions over there.
  • 47:40 - 47:42
    Herald: Yeah, on the left one please.
  • 47:42 - 47:46
    Audience 1: Hello? Yeah. So thank you
    very much, it was very interesting.
  • 47:46 - 47:55
    I have two questions: Have you tried
    isolating the system in a chroot jail?
  • 47:55 - 48:00
    And the second one is: Were there any
    outbound connections, like automatic
  • 48:00 - 48:03
    outbound connections it made?
  • 48:03 - 48:07
    Florian: Okay so for the first question,
    we did not try to run it in an isolated
  • 48:07 - 48:10
    environment. We actually didn't--
    Did we install it on a live system?
  • 48:10 - 48:12
    I don't think so. Did we?
    Niklaus: Yeah.
  • 48:12 - 48:15
    Florian: Yeah, okay. But we didn't do any
    observations that this changed the
  • 48:15 - 48:20
    behaviour of the system. Concerning the
    second question, there actually is not
  • 48:20 - 48:25
    really outbound traffic. What it is doing
    is on the local network it is talking a
  • 48:25 - 48:31
    lot of NetBIOS stuff. So there is an
    SNMP and an nmbdaemon running
  • 48:31 - 48:35
    on the system and it's talking a
    lot of NetBIOS. But this is basically
  • 48:35 - 48:39
    everything we could find. We have even
    left it running for like two days, to see
  • 48:39 - 48:43
    if there is an outbound connection for one
    day or something like that. We couldn't
  • 48:43 - 48:50
    see anything like that. So the only stuff
    that Red Star's talking to the network
  • 48:50 - 48:57
    is like this Windows NetBIOS stuff, and if
    you push the button on the update
  • 48:57 - 49:01
    feature of the virus scanner, it's
    actually trying to initiate an update
  • 49:01 - 49:06
    process that goes to five hard-coded
    IP addresses that are all local.
  • 49:06 - 49:12
    So like 192.168.9 something, and
    172 whatever. These are the only
  • 49:12 - 49:17
    network connections that we could trigger,
    or that we have observed so far.
  • 49:17 - 49:21
    A1: Thank you.
    Herald: The next question is also
  • 49:21 - 49:27
    from this microphone.
    Audience 2: Two questions:
  • 49:27 - 49:34
    Might it be possible that when you install
    the system it gets code from North Korea
  • 49:34 - 49:39
    so you cannot find out if it's calling
    home because you don't get the call?
  • 49:39 - 49:43
    Florian: Could be. Our guess is actually
    that there is far more stuff that you get
  • 49:43 - 49:50
    when you pull up the operating system in
    North Korea. One reason is the organ file
  • 49:50 - 49:54
    that Niklaus mentioned that is missing on
    the system with the additional crypto
  • 49:54 - 49:58
    information that is used for the extended
    watermarking that they are applying.
  • 49:58 - 50:02
    We don't know where this file is coming
    from, and from our perspective it totally
  • 50:02 - 50:06
    makes sense to not distribute this file
    on the ISO but to kind of give it as an--
  • 50:06 - 50:10
    I don't know, somebody has to come to
    your house to install the software and
  • 50:10 - 50:14
    then he puts like this dedicated organ
    file on your desktop that is specific
  • 50:14 - 50:19
    to you, for example. That would totally
    make sense because, as you know,
  • 50:19 - 50:21
    stuff works a little bit different.
    It's not like downloading an ISO
  • 50:21 - 50:25
    and installing it, it's probably more
    complex to get this onto your system
  • 50:25 - 50:29
    if you want to use this. So there might
    be more stuff that is pushed either
  • 50:29 - 50:35
    via updates - only internal - and this
    organ file and other stuff that can get
  • 50:35 - 50:39
    to your computer-- We don't know if this
    is possible or if something is happening
  • 50:39 - 50:45
    with this feature.
    A2: And the second question is if you look
  • 50:45 - 50:50
    at it from the North Korean view, that's
    like they had the problem. They are quite
  • 50:50 - 50:54
    happy, have a nice state, everything's
    working fine from what they see, and
  • 50:54 - 50:58
    now people come from South Korea,
    from Western countries, bring their USB
  • 50:58 - 51:03
    sticks with Western propaganda that to
    have stuff like this watermarking even
  • 51:03 - 51:08
    if it is like evil. Like a natural reaction
    from a closed system.
  • 51:08 - 51:12
    Florian: So actually it totally makes
    sense to develop the system in the
  • 51:12 - 51:16
    way they developed it. It totally makes
    sense, because it kind of reflects a
  • 51:16 - 51:23
    little bit how the government is working.
    Because integrity is not only a critical
  • 51:23 - 51:30
    part not only for the operating system,
    it's also a part for the state itself.
  • 51:30 - 51:34
    Like shutting down everything, closing
    off everything - that's, by the way,
  • 51:34 - 51:40
    the screensaver - and closing down
    everything also totally makes sense.
  • 51:40 - 51:44
    And tracking stuff that is distributed
    in the country or deleting unwanted stuff
  • 51:44 - 51:53
    also makes sense. So what we think that
    Red Star resembles this and matches
  • 51:53 - 51:58
    how culture is in North Korea, actually.
  • 51:58 - 52:03
    Herald: Okay, we also have two questions
    of the IRC which I would like to shift in.
  • 52:03 - 52:09
    Signal angel: Thank you. Okay, the first question
    is if you have any theory on how and why
  • 52:09 - 52:17
    the ISO got leaked.
  • 52:17 - 52:23
    Florian: We don't know this, actually. 'Why?' is--
    We don't think that it was somebody
  • 52:23 - 52:28
    from North Korea, we think that it might
    be a foreigner that got it.
  • 52:28 - 52:31
    Like Will Scott told us last year that he
    was able to get a copy of it and get it
  • 52:31 - 52:35
    out of the country. There might
    be others that are able.
  • 52:35 - 52:39
    There is actually tourism in North Korea.
    You can go there for your holidays.
  • 52:39 - 52:45
    So I guess that if you put a little bit
    of effort into it, it's possible to get
  • 52:45 - 52:49
    nearly anything out of the country if
    you want to try to take the risk.
  • 52:49 - 52:54
    But we don't know who leaked the version
    and we don't know why it actually was leaked.
  • 52:54 - 52:58
    Niklaus: There are actually rumours that
    it was a Russian student who was studying
  • 52:58 - 53:02
    in North Korea, and he bought this on the
    street and just brought it out of the country
  • 53:02 - 53:06
    and put it on his blog, but we cannot
    confirm that this is actually true.
  • 53:06 - 53:12
    Signal angel: Okay, thanks. And the second question
    is if there has been any attempt at the
  • 53:12 - 53:15
    custom kernel modules yet, like
    reverse engineering or something.
  • 53:15 - 53:20
    Florian: Well we reverse engineered rtscan
    which is pretty simple because it just
  • 53:20 - 53:26
    hooks a few function calls, that's it.
    We have taken a look at the
  • 53:26 - 53:31
    Korean Display Module on a first glance.
    It seems to do what it is supposed to do,
  • 53:31 - 53:36
    having something to do with display
    management, but we didn't take a look
  • 53:36 - 53:39
    at all of the kernel modules, all the rest
    of the remaining kernel modules,
  • 53:39 - 53:44
    because the code base is so massive
    that we actually need you guys to
  • 53:44 - 53:49
    help us out a little bit.
  • 53:49 - 53:53
    Herald: Next question from the mic please.
    Audience 3: Yes, I have another question.
  • 53:53 - 53:56
    You said that most of the software is
    based of other open source software
  • 53:56 - 54:01
    for which you don't have the source code,
    and it didn't come with the ISO, so it's
  • 54:01 - 54:03
    pretty much a massive violation of
    open source licenses.
  • 54:03 - 54:06
    Florian: Yep, absolutely.
    A3: So my question would be:
  • 54:06 - 54:12
    Could you get an inside on what other
    packages are available, or from the
  • 54:12 - 54:14
    package manager, and what
    other packages are there?
  • 54:14 - 54:20
    Florian: Actually, there is a DVD which
    also was leaked. I think that it was for
  • 54:20 - 54:26
    Red Star 2. I'm not sure if it is also
    for the latest version, but there is
  • 54:26 - 54:32
    a CD with additional software and you
    have stuff like Apache, MYSQL-- pfff
  • 54:32 - 54:36
    I don't know. All of the stuff you
    basically need to run a full-blown
  • 54:36 - 54:41
    operating system on Linux. So there is
    additional software out there, you can
  • 54:41 - 54:48
    download the DVD and install this
    software on the machine.
  • 54:48 - 54:53
    If you go through the RPM descriptions
    you will see that for some of the
  • 54:53 - 55:01
    software they even wrote-- They kind of
    used a description for the license which
  • 55:01 - 55:05
    says "KCC" which is the Korean Computer
    Centre. And sometimes they use GPL,
  • 55:05 - 55:09
    and sometimes they use GNU, and yeah.
    So massive violations.
  • 55:09 - 55:12
    A3: Did you ask them for the source code?
    Laughter
  • 55:12 - 55:16
    Florian: Actually, we think that there is
    an internal git in North Korea where you
  • 55:16 - 55:21
    can just check out everything, so...
    We suppose it is this way because it's
  • 55:21 - 55:30
    open source, right? By the way,
    open source. Laughter
  • 55:30 - 55:35
    Herald: Very nice. One more question
    from here? Are you having a question?
  • 55:35 - 55:38
    No, okay then we have one more
    question from the internet.
  • 55:38 - 55:42
    IRC: Yes, the question is if there is a
    possibility to fake the watermarks
  • 55:42 - 55:47
    to get some innocent North Korean
    into trouble. Quiet laughter
  • 55:47 - 55:51
    Florian: Yeah, no problem because the
    key's hard coded. You could, like--
  • 55:51 - 55:57
    You know how to scramble the hardware ID
    or the disk serial, and you could perfectly
  • 55:57 - 56:02
    forge documents. That would be not a
    problem. Not a problem at all.
  • 56:02 - 56:07
    You just need the serial number, basically.
    A3: Okay, and I've just got another question
  • 56:07 - 56:11
    that is: Does the warning.wav
    have a watermark?
  • 56:11 - 56:15
    Florian: Umm...
    Niklaus: No, actually it has the exact
  • 56:15 - 56:20
    same checksum as the original file.
    Florian: Actually we didn't check if it--
  • 56:20 - 56:24
    No, so it does not have a watermark
    because as Niklaus said, it's the same
  • 56:24 - 56:28
    checksum as the Kaspersky one.
    A3: Okay, thanks.
  • 56:28 - 56:33
    Herald: Okay, thank you very much.
    Please give Florian and Niklaus another
  • 56:33 - 56:36
    big round of applause for an amazing talk.
    Florian: Thank you.
  • 56:36 - 56:40
    Applause
  • 56:40 - 56:46
    postroll music
  • 56:46 - 56:52
    subtitles created by c3subtitles.de
    Join, and help us!
Title:
Florian Grunow, Niklaus Schiess: Lifting the Fog on Red Star OS
Description:

more » « less
Video Language:
English
Duration:
56:52

English subtitles

Revisions