
English: 
Hi, I’m Carrie Anne, and welcome to CrashCourse
Computer Science!
Last episode, we talked about the basics of
computer security, principles and techniques
used to keep computer systems safe and sound.
But, despite our best efforts, the news is
full of stories of individuals, companies
and governments getting cyberattacked by hackers,
people who, with their technical knowledge,
break into computer systems.
Not all hackers are bad though.
There are hackers who hunt for bugs and try
to close security holes in software to make
systems safer and more resilient.
They’re often hired by companies and governments
to perform security evaluations.
These hackers are called White Hats, they’re
the good guys.
On the flip side, there are Black Hats, malicious
hackers with intentions to steal, exploit
and sell computer vulnerabilities and data.
Hackers’ motivations also differ wildly.
Some hack for amusement and curiosity, while
cybercriminals hack most often for monetary
gain.
And then there are hacktivists, who use their
skills to promote a social or political goal.
And that’s just the tip of the iceberg.
Basically, the stereotypical view of a hacker
as some unpopular kid sitting in a dark room

Korean: 
안녕하세요,   저는 Carrie Anne입니다.
컴퓨터 과학 특강에 오신 것을 환영합니다.
지난 시간에는 컴퓨터 시스템을 안전하고 건강하게 유지
하는 데 사용하는 보안, 원리 및 기술을 살펴보았습니다.
지난 시간에는 컴퓨터 시스템을 안전하고 건강하게 유지
하는 데 사용하는 보안, 원리 및 기술을 살펴보았습니다.
그러나 최선의 노력에도 불구하고, 뉴스는 해커에 의해 
사이버 공격을 받는 정부, 개인, 회사의 가득합니다.
해커들은 그들의 기술적인 지식으로,
컴퓨터 시스템에 침입합니다.
해커들은 그들의 기술적인 지식으로,
컴퓨터 시스템에 침입합니다.
모든 해커가 나쁜 것은 아닙니다.
버그를 찾고 시스템의 안전성과 탄력성을 높이기 위해
소프트웨어의 보안 허점을 폐쇄하려는 해커가 있습니다.
버그를 찾고 시스템의 안전성과 탄력성을 높이기 위해
소프트웨어의 보안 허점을 폐쇄하려는 해커가 있습니다.
그들은 종종 보안 평가를 수행하기 위해 
기업 및 정부 기관에 고용됩니다.
이 좋은 해커들은 White Hat이라고 부릅니다.
한편으론 Black Hat, 악의적인 해커들이 컴퓨터 취약점과
데이터를 도용하고 악용하며 판매 할 의도가 있습니다.
한편으론 Black Hat, 악의적인 해커들이 컴퓨터 취약점과
데이터를 도용하고 악용하며 판매 할 의도가 있습니다.
해커의 동기도 매우 다릅니다.
오락과 호기심에 대한 일부 해킹은, 사이버 범죄자가
주로 금전적 이득을 위해 해킹하는 경우입니다.
오락과 호기심에 대한 일부 해킹은, 사이버 범죄자가
주로 금전적 이득을 위해 해킹하는 경우입니다.
그리고 사회적 또는 정치적 목표를 촉진시키는 기술을
사용하는 hacktivists가 있습니다.
그것은 단지 빙산의 일각에 불과합니다.

Korean: 
기본적으로 해커에 대한 고정관념은 버려진 피자 박스로
가득 찬 어두운 방에 앉아있는 인기없는 아이는
대학에 있는 해커 John Green보다 잘 설명한 것 처럼
들릴 지도 모릅니다.
이번 시간에 여러분에게 어떻게 해커가 되는지
가르쳐주진 않습니다.
대신, 해커가 컴퓨터 시스템에 침입해서 어떻게 했는지
아이디어를 제시하는 몇몇 고전적인 예를 논의할 것입니다.
대신, 해커가 컴퓨터 시스템에 침입해서 어떻게 했는지
아이디어를 제시하는 몇몇 고전적인 예를 논의할 것입니다.
 
해커가 컴퓨터 시스템에 침투하는 가장 일반적인 방법은 전부 뒤집어 놓는것이 아니라,
사용자가 속아서 들어오게 하는 것입니다.
이를 사회 공학이라고하며, 
사람이 기밀 정보를 누설하거나
컴퓨터 시스템을 공격자가 진입할 수 있도록 설정하게 합니다.
가장 흔한 유형의 공격은 피싱 (phishing)이며,
웹 사이트의 계정 (예 : 은행)에 로그인하라는 이메일로 
가장 자주 접하게 됩니다.
전자 메일의 링크를 클릭하라는 메시지가 표시됩니다.
이 링크를 클릭하면 일반인들에게는 합법적인 것처럼
보이지만 실제로는 악의적인 복제본입니다.
사용자 이름과 암호를 입력하면,
그 정보는 해커에게 곧바로 갑니다.
그런 다음 해커는 실제 웹 사이트에 여러분의 아이디로
로그인 할 수 있습니다.

English: 
full of discarded pizza boxes probably better describes John Green in college than it does hackers.
Today, we’re not going to teach you how
to be a hacker.
Instead, we’ll discuss some classic examples
of how hackers break into computer systems
to give you an idea of how it’s done.
INTRO
The most common way hackers get into computer
systems isn’t by hacking at all; it’s
by tricking users into letting them in.
This is called social engineering, where a
person is manipulated into divulging confidential
information, or configuring a computer system
so that it permits entry by attackers.
The most common type of attack is phishing,
which you most often encounter as an email
asking you to login to an account on a website,
say your bank.
You’ll be asked to click a link in the email,
which takes you to a site that looks legit
to the casual observer, but is really an evil
clone.
When you enter your username and password,
that information goes straight to the hackers,
who then can login to the real website as
you.

Korean: 
나쁜 소식이죠!
0.001%의 성공률만으로도 백만 건의 피싱 전자 메일이
수천 개의 손상된 계정을 양도할 수 있습니다.
0.001%의 성공률만으로도 백만 건의 피싱 전자 메일이
수천 개의 손상된 계정을 양도할 수 있습니다.
또 다른 사회 공학 공격은 pretexting 입니다.
공격자가 회사에 전화를 걸어
자신감있게 자신이 IT 부서인 척 말하면
종종 공격자는 첫 번째 번호로 전화를 걸고,
그리고 두 번째로 옮겨 달라고 부탁합니다.
이렇게 하면 전화번호가 회사 내부에 있는 것 처럼 보입니다.
그런 다음 공격자는 자신도 모르게 사용자가 
컴퓨터를 손상시키지 않도록 환경을 설정하거나,
기밀 세부 사항을 공개하도록 지시할 수 있습니다.
이는 암호 또는 네트워크 구성과 유사합니다.
죄송합니다, 1 초만 ...
"여보세요, IT부서의 수잔이에요. 여기에 몇 가지 
네트워크 문제를 겪고 있는데 설정 좀 확인해 주실래요? "
이렇게 시작됩니다.
공격자는 특히 핵심 직원의 이름을 찾는 것과 같은
사전조사를 통해 설득력을 갖습니다.
공격자는 특히 핵심 직원의 이름을 찾는 것과 같은
사전조사를 통해 설득력을 갖습니다.
희생자를 찾는 데 10번 전화를 걸 수 있지만
들어가기만 하면 됩니다.
이메일은 트로이 목마의 일반적인 전송 메커니즘으로, 
사진이나 인보이스와 같이 무해한 첨부 파일로 가장하지만

English: 
Bad news!
Even with a 1/10th of one percent success
rate, a million phishing emails might yield
a thousand compromised accounts.
Another social engineering attack is pretexting,
where attackers call up, let's say a company,
and then confidently pretend to be from their
IT department.
Often attackers will call a first number,
and then ask to be transferred to a second,
so that the phone number appears to be internal
to the company.
Then, the attacker can instruct an unwitting
user to configure their computer in a compromising
way, or get them to reveal confidential details,
like passwords or network configurations.
Sorry, one sec…
Oh. Hey, it's Susan from It. We’re having some network issues down here, can you go ahead and check a setting for me?”
... and it begins.
Attackers can be very convincing, especially
with a little bit of research beforehand to
find things like key employees’ names.
It might take ten phone calls to find an victim,
but you only need one to get in.
Emails are also a common delivery mechanism
for trojan horses, programs that masquerade

Korean: 
실제로는 멀웨어라는 악의적인 소프트웨어가
포함되어 있는 프로그램입니다.
멀웨어는 다양한 형태를 취할 수 있습니다.
일부는 여러분의 은행 신용증과 같은 
데이터를 도용할 수 있습니다.
랜섬웨어로 알려져 있는 또 다른 것들은,
파일을 암호화하고 몸값을 요구할 수 있습니다.
악성 코드를 실행하지 못하거나 사용자를 들어오게 할 수
없을 때 공격자는 다른 수단으로 강제 침입해야 합니다.
악성 코드를 실행하지 못하거나 사용자를 들어오게 할 수
없을 때 공격자는 다른 수단으로 강제 침입해야 합니다.
하나는, 지난 시간에 간단히 말했던, 성공할 때까지 
모든 조합의 무차별적인 암호 시도 입니다.
하나는, 지난 시간에 간단히 말했던, 성공할 때까지 
모든 조합의 무차별적인 암호 시도 입니다.
대부분의 현대 시스템은 시도가 실패할 때마다
더 오랜 시간 동안 점차적으로 기다리게 하거나
특정 횟수의 시도 후에는 완전히 잠그기 때문에 
이러한 유형의 공격을 방어합니다.
특정 횟수의 시도 후에는 완전히 잠그기 때문에 
이러한 유형의 공격을 방어합니다.
이 문제를 극복하기 위한 최근의 해킹방법 중 하나는
NAND 미러링이라고 불리며
컴퓨터에 물리적으로 액세스 할 수 있는 경우, 
장치의 메모리 칩에 와이어를 연결하고
내용물을 완벽하게 복사할 수 있습니다.
이 설정을 사용하면 장치가 대기 상태가 될 때까지
일련의 암호를 시도 할 수 있습니다.
이러한 상황이 발생하면 메모리를 원래의 복사본으로 
다시 채우고 본질적으로 재설정하여
기다리지 않고 더 많은 암호를 즉시 시도할 수 있습니다.
이 기술은 iPhone 5C에서 성공한 것으로 나타났지만

English: 
as harmless attachments, like a photo or invoice, but actually contain malicious software, called malware.
Malware can take many forms.
Some might steal your data, like your banking
credentials.
Others might encrypt your files and demand
a ransom, what's known as ransomware.
If they can’t run malware or get a user
to let them in, attackers have to force their
way in through other means.
One method, which we briefly discussed last
episode, is to brute force a password, try
every combination of password until you gain entry.
Most modern systems defend against this type
of attack by having you wait incrementally
longer periods of time following each failed
attempt, or even lock you out entirely after
a certain number of tries.
One recent hack to get around this is called
NAND Mirroring, where if you have physical
access to the computer, you can attach wires
to the device's memory chip and make a perfect
copy of its contents.
With this setup, you can try a series of passwords,
until the device starts making you wait.
When this happens, you just reflash the memory
with the original copy you made, essentially
resetting it, allowing you to try more passwords
immediately, with no waiting.
This technique was shown to be successful
on an iPhone 5C, but many newer devices include

Korean: 
많은 새로운 장치에는 이러한 유형의 공격을 저지하는
메커니즘이 포함됩니다.
기기에 실제로 액세스 할 수 없는 경우 인터넷을 통해
원격으로 해킹 할 수 있는 방법을 찾아야 합니다.
기기에 실제로 액세스 할 수 없는 경우 인터넷을 통해
원격으로 해킹 할 수 있는 방법을 찾아야 합니다.
일반적으로 공격자는 시스템의 버그를 찾아서 활용하고,
버그를 활용하여 성공적으로 기능이나 접근 권한을
얻는 것을 악용이라고 합니다.
하나의 일반적인 유형의 악용은 버퍼 오버 플로우입니다.
버퍼는 일반적으로 데이터를 저장하기 위해
예약된 메모리 블록을 뜻합니다.
우리는 23강의 픽셀 데이터에서 저장을 위한
비디오 버퍼에 대해 이야기했었습니다.
간단한 예로, 우리는 운영체제의 사용자 이름과 비밀번호
필드가 있는 로그인 프롬프트를 상상할 수 있습니다.
간단한 예로, 우리는 운영체제의 사용자 이름과 비밀번호
필드가 있는 로그인 프롬프트를 상상할 수 있습니다.
내부에서 이 운영 체제는 입력된
텍스트 값을 저장하기 위해 버퍼를 사용합니다.
설명을 위해, 이 버퍼들의 크기를
10으로 지정하겠습니다.
메모리에 이와 같은 두 개의 텍스트 버퍼가 보입니다.
물론, 운영체제는 사용자 이름과 암호 이상을 추적하므로
메모리에 이전과 이후의 데이터가 모두 저장됩니다.
물론, 운영체제는 사용자 이름과 암호 이상을 추적하므로
메모리에 이전과 이후의 데이터가 모두 저장됩니다.
사용자가 사용자 이름과 암호를 입력하면 
값을 버퍼로 복사하여 확인할 수 있습니다.
사용자가 사용자 이름과 암호를 입력하면 
값을 버퍼로 복사하여 확인할 수 있습니다.

English: 
mechanisms to thwart this type of attack.
If you don’t have physical access to a device,
you have to find a way to hack it remotely,
like over the internet.
In general, this requires an attacker to find
and take advantage of a bug in a system, and
successfully utilizing a bug to gain capabilities
or access is called an exploit.
One common type of exploit is a buffer overflow.
Buffers are a general term for a block of
memory reserved for storing data.
We talked about video buffers for storing
pixel data in Episode 23.
As a simple example, we can imagine an operating
system’s login prompt, which has fields
for a username and password.
Behind the scenes, this operating system uses buffers for storing the text values that are entered.
For illustration, let's say these buffers
were specified to be of size ten.
In memory, the two text buffers would look
something like this:
Of course, the operating system is keeping
track of a lot more than just a username and
password, so there’s going to be data stored
both before and after in memory.
When a user enters a username and password,
the values are copied into the buffers, where
they can be verified.

Korean: 
버퍼 오버 플로우 공격은 정확히 이름에서 알 수 있듯, 
버퍼를 오버플로하는 것 입니다..
이 경우, 10글자 보다 긴 모든 암호는 
인접한 메모리 데이터를 덮어 씁니다.
이 경우, 10글자 보다 긴 모든 암호는 
인접한 메모리 데이터를 덮어 씁니다.
때때로 이것은 단지 프로그램이나
운영체제의 충돌을 일으키는데,
중요한 값이 외계어들로 덮어쓰여지기 때문입니다.
시스템을 망가뜨리는 것은 나쁜 일이며, 장난스러운
해커가 원하는 모든 것이 어쩌면 불쾌할 수 있습니다.
시스템을 망가뜨리는 것은 나쁜 일이며, 장난스러운
해커가 원하는 모든 것이 어쩌면 불쾌할 수 있습니다.
그러나 공격자는 목적을 가진 새로운 값을 메모리에 
주입하여 영리하게 버그를 더 악용할 수도 있습니다.
예를 들어, "is admin"변수를 true로 설정하는 방법이 있습니다.
임의로 프로그램의 메모리를 조작할 수 있는 기능으로
해커는 로그인 프롬프트와 같은 것을 우회할 수 있으며
때로는 이 프로그램을 사용하여
전체 시스템을 도용할 수도 있습니다.
버퍼 오버 플로우 공격과 싸울 수 있는 
여러 가지 방법이 있습니다.
가장 쉬운 방법은 항상 버퍼에 복사하기 전에
길이를 테스트하는 것입니다.
그것을 범위 검사라고 합니다.
많은 현대 프로그래밍 언어는
범위 검사를 자동으로 구현합니다.
프로그램은 가상의 "is admin" 플래그와 같은 
변수의 메모리 위치를 무작위로 추출하여
해커가 덮어 쓸 메모리 위치를 알지 못하게 하고,

English: 
A buffer overflow attack does exactly what
the name suggests: overflows the buffer.
In this case, any password longer than ten
characters will overwrite adjacent data in
memory.
Sometimes this will just cause a program or
operating system to crash, because important
values are overwritten with gobbledygook.
Crashing a system is bad, and maybe that’s
all that a mischievous hacker wants to do,
be a nuisance.
But attackers can also exploit this bug more
cleverly by injecting purposeful new values
into a program’s memory, for example, setting
an “is admin” variable to true.
With the ability to arbitrarily manipulate
a program’s memory, hackers can bypass things
like login prompts, and sometimes even use
that program to hijack the whole system.
There are many methods to combat buffer overflow
attacks.
The easiest is to always test the length of
input before copying it into a buffer, called
bounds checking.
Many modern programming languages implement
bounds checking automatically.
Programs can also randomize the memory location
of variables, like our hypothetical “is
admin” flag, so that hackers don’t know
what memory location to overwrite, and are

English: 
more likely to crash the program than gain
access.
Programs can also leave unused space after
buffers, and keep an eye on those values to
see if they change; if they do, they know
an attacker is monkeying around with memory.
These regions are called canaries, named after
the small birds miners used to take underground
to warn them of dangerous conditions.
Another classic hack is code injection.
It’s most commonly used to attack websites
that use databases, which pretty much all
big websites do.
We won’t be covering databases in this series,
so here’s a simple example to illustrate
this type of attack.
We’ll use Structured Query Language, S-Q-L,
also called sequel, a popular database API.
Let’s imagine our login prompt is now running
on a webpage.
When a user clicks “login”, the text values
are sent to a server, which executes code
that checks if that username exists, and if
it does, verifies the password matches.
To do this, the server will execute code,
known as a SQL query, that looks something
like this.
First, it needs to specify what data we’re
retrieving from the database.
In this case, we want to fetch the password.

Korean: 
액세스 권한을 얻는 것보다
프로그램을 중단시킬 가능성이 더 큽니다.
프로그램은 버퍼 다음에 사용되지 않은 공간을 남겨두고
값이 변경되었는지 여부를 확인합니다.
그럴 경우 공격자가 메모리를 가지고 놀고 있음을
알 수 있습니다.
이 부분은 카나리아라고 하며, 위험한 상황을 경고하기 위해
지하로 데려가는 작은 새 광부의 이름을 딴 것입니다.
이 부분은 카나리아라고 하며, 위험한 상황을 경고하기 위해
지하로 데려가는 작은 새 광부의 이름을 딴 것입니다.
또다른 고전적인 해킹은 코드 삽입입니다.
거의 모든 대형 웹사이트, 데이터베이스를 사용하는
웹 사이트를 공격하는 데 가장 일반적으로 사용됩니다.
거의 모든 대형 웹사이트, 데이터베이스를 사용하는
웹 사이트를 공격하는 데 가장 일반적으로 사용됩니다.
이 강의에선 데이터베이스는 다루지 않을 것이며,
여기에 간단한 공격 유형의 예제가 있습니다.
이 강의에선 데이터베이스는 다루지 않을 것이며,
여기에 간단한 공격 유형의 예제가 있습니다.
구조화 된 쿼리 언어인 SQL, sequel이라고도 불리는 
인기있는 데이터베이스 API 를 사용하겠습니다.
로그인 프롬프트가 웹페이지에서 
실행 중인 장면을 상상해 봅시다.
사용자가 "로그인"을 클릭하면 텍스트 값은
코드를 실행하는 서버로 전송됩니다.
그 코드는 해당 사용자 이름이 존재하는지 확인하고,
암호가 일치하는지 확인합니다.
이를 위해 서버는 화면처럼 보이는, 
SQL 쿼리로 알려진 코드를 실행합니다.
이를 위해 서버는 화면처럼 보이는, 
SQL 쿼리로 알려진 코드를 실행합니다.
먼저, 우리가 데이터베이스에서 어떤 데이터를 검색할 지
명시해야 합니다.
이 경우 비밀번호를 가져옵니다.

Korean: 
서버는 또한 값을 검색할 데이터베이스의 
위치를 지정해야 합니다.
서버는 또한 값을 검색할 데이터베이스의 
위치를 지정해야 합니다.
이 경우 모든 사용자의 데이터는 "users"라고 표시된 
테이블의 데이터 구조에 저장됩니다.
이 경우 모든 사용자의 데이터는 "users"라고 표시된 
테이블의 데이터 구조에 저장됩니다.
마지막으로, 서버는 데이터베이스의 모든 사용자를 위한
거대한 암호 목록을 되찾고 싶지 않으므로,
사용자 이름이 특정 값과 동일한 계정의 데이터만
필요로 한다고 지정합니다.
사용자 이름이 특정 값과 동일한 계정의 데이터만
필요로 한다고 지정합니다.
이 값은 사용자가 입력한 내용을 기반으로 하여 
다음과 같이 SQL 쿼리에 복사됩니다.
그래서 SQL 데이터베이스에 보내진 실제 명령은
다음과 같이 보일 것입니다.
여기 username은 philbin과 같습니다.
또한 SQL 명령은 세미콜론(;)으로 끝납니다.
어떻게 누군가 이것을 해킹할 수 있을까요?
이는 SQL 명령에 내장 된 악의적인 사용자 이름을 
전송함으로써 해킹합니다.
마찬가지로, 우리는 이 펑키한 사용자 이름을
서버에 보낼 수 있습니다.
서버가 이 텍스트를 SQL 쿼리로 복사하면, 
화면과 같이 끝납니다 :
앞서 언급했듯이, 명령을 분리하기 위해
세미콜론이 사용됩니다.
따라서 첫 번째 실행되는 명령은 다음과 같습니다.
: 'whatever'이라는 사용자가있는 경우
데이터베이스가 암호를 반환합니다.
물론, 우리는 무엇이 'Whatever'의
비밀번호가 무엇인지 모르므로

English: 
The server also needs to specify from what
place in the database to retrieve the value
from.
In this case, let’s imagine all the users’
data is stored in a data structure called
a table labeled “users”.
Finally, the server doesn’t want to get
back a giant list of passwords for every user
in the database, so it specifies that it only
wants data for the account whose username
equals a certain value.
That value is copied into the SQL query by
the server, based on what the user typed in,
so the actual command that’s sent to the
SQL database would look something like this,
where username equals philbin.
Note also that SQL commands end with a semicolon.
So how does someone hack this?
By sending in a malicious username, with embedded
SQL commands!
Like, we could send the server this funky
username:
When the server copies this text into the
SQL Query, it ends up looking like this:
As I mentioned before, semicolons are used
to separate commands, so the first command
that gets executed is this:
If there is a user named ‘whatever’, the
database will return the password.
Of course, we have no idea what ‘whatever’s’
password is, so we’ll get it wrong and the

Korean: 
잘못된 결과를 얻고 서버는 우리를 거부합니다.
'Whatever'이라는 사용자가 없다면 데이터베이스는
암호를 반환하지 않거나 오류를 가져와
다시 서버는 우리를 거부합니다.
어쨌든 우리는 상관하지 않습니다.
관심을 가져야 할 것은 다음 SQL 명령입니다.
"드롭 테이블 사용자" - 
사용자 이름 필드를 조작하여 주입하는 명령입니다.
이 명령은 SQL 데이터베이스에 모든 사용자 
데이터를 포함하는 테이블을 삭제하도록 지시합니다.
깨끗이 닦도록!
은행과 같은 곳, 또는 실제 어디에서나
많은 두통을 일으킬 것입니다.
우리가 시스템을 침입하지 않았다는 것을 주목하십시오.
사용자 이름과 비밀번호를 추측하는 것과는 다릅니다.
우리가 시스템을 침입하지 않았다는 것을 주목하십시오.
사용자 이름과 비밀번호를 추측하는 것과는 다릅니다.
정식 액세스가 없어도 버그를 악용하여
아수라장을 일으킬 수 있습니다.
이것은 현재 거의 모든 서버에 방어 기능이 있는
매우 간단한 코드 삽입 예제입니다.
이것은 현재 거의 모든 서버에 방어 기능이 있는
매우 간단한 코드 삽입 예제입니다.
데이터베이스에 새로운 관리자 계정과 같은 기록을 
추가하려면 보다 정교한 공격을 해야 합니다.
해커가 신용 카드 번호, 사회 보장 번호 및
 모든 종류의 사악한 정보를 훔칠 수 있도록
데이터를 노출하기 위해 데이터베이스를 
가져올 수도 있습니다.
데이터를 노출하기 위해 데이터베이스를 
가져올 수도 있습니다.
그러나 우리는 여러분에게 그렇게 하는 법을 가르쳐주지 않을 것입니다.

English: 
server will reject us.
If there’s no user named ‘whatever’,
the database will return no password or provide
an error, and the server will again reject
us.
Either way, we don’t care, because it’s
the next SQL command we’re interested in:
“drop table users” – a command that
we injected by manipulating the username field.
This command instructs the SQL database to
delete the table containing all user data.
Wiped clean!
Which would cause a lot of headaches at a
place like a bank... or really anywhere.
And notice that we didn’t even break into
the system – it’s not like we correctly
guessed a username and password.
Even with no formal access, we were able to
create mayhem by exploiting a bug.
This is a very simple example of code injection,
which almost all servers today have defenses
against.
With more sophisticated attacks, it’s possible
to add records to the database – like a
new administrator account – or even get
the database to reveal data, allowing hackers
to steal things like credit card numbers,
social security numbers and all sorts of nefarious
goodies.
But we’re not going to teach you how to do that.
As with buffer overflows, programmers should
always assume input coming from the outside

Korean: 
버퍼 오버 플로우와 마찬가지로, 프로그래머는 항상 외부
에서 들어오는 입력을 잠재적으로 위험하다고 가정하고
신중하게 검토해야합니다.
웹상의 대부분의 사용자 이름과 비밀번호 양식은
첫 번째 방어 수준으로 사용하는 세미콜론(;) 또는 
따옴표(") 같은 특수 기호를 포함시키지 않도록 합니다
좋은 서버는 데이터베이스 쿼리를 실행하기 전에 특수
문자를 제거 또는 수정하여 입력을 깔끔하게 만듭니다.
좋은 서버는 데이터베이스 쿼리를 실행하기 전에 특수
문자를 제거 또는 수정하여 입력을 깔끔하게 만듭니다.
악용 익스플로잇은 종종 온라인에서 팔리거나 공유됩니다.
버그가 널리 퍼지거나 손상이 심한 익스플로잇 일수록
가격이나 명성이 높아집니다.
버그가 널리 퍼지거나 손상이 심한 익스플로잇 일수록
가격이나 명성이 높아집니다.
정부조차도 때때로 스파이와 같은 목적으로 컴퓨터를 
해킹할 수있는 익스플로잇을 구매합니다.
정부조차도 때때로 스파이와 같은 목적으로 컴퓨터를 
해킹할 수있는 익스플로잇을 구매합니다.
소프트웨어가 인식하지 못하는 
새로운 악용 가능한 버그가 발견되면
그것은 제로 데이 취약점 이라고 합니다.
블랙 햇 해커들이 익스플로잇을 
이익에 최대한 사용하기 위해 돌진합니다.
화이트 햇 프로그래머들이 버그에 대한 
패치를 내놓기 전에요.
이것이 여러분의 컴퓨터 소프트웨어를 최신 상태로
유지해야 하는 중요한 이유입니다.
그 중 많은 다운로드가 보안 패치입니다.
버그가 충분한 시스템에 열려 있다면, 해커는
컴퓨터에서 컴퓨터로 자동으로 점프하는
웜이라고 불리는 프로그램을 작성할 수 있습니다..
해커가 많은 수의 컴퓨터를 인수할 수 있다면, 그것들을 
함께 사용해 봇넷이라 불리는 것을 형성할 수 있습니다.

English: 
to be potentially dangerous, and examine it
carefully.
Most username and password forms on the web
don’t let you include special symbols like
semicolons or quotes as a first level of defense.
Good servers also sanitize input by removing
or modifying special characters before running
database queries.
Working exploits are often sold or shared
online.
The more prevalent the bug, or the more damaging
the exploit, the higher the price or prestige
it commands.
Even governments sometimes buy exploits, which
allow them to compromise computers for purposes
like spying.
When a new exploitable bug is discovered that
the software creators weren’t aware of,
it’s called a zero day vulnerability.
Black Hat Hackers rush to use the exploit
for maximum benefit before white hat programmers
release a patch for the bug.
This is why it’s so important to keep your
computer’s software up to date; a lot of
those downloads are security patches.
If bugs are left open on enough systems, it
allows hackers to write a program that jump
from computer to computer automatically which
are called worms.
If a hacker can take over a large number of
computers, they can be used together, to form

Korean: 
해커가 많은 수의 컴퓨터를 인수할 수 있다면, 그것들을 
함께 사용해 봇넷이라 불리는 것을 형성할 수 있습니다.
거대한 양의 스팸메일을 보내고, 다른 사람들의 컴퓨팅 
파워와 전기를 사용하여 비트 코인을 채우고,
서버에 대한 분산 서비스 거부 또는 DDoS 공격을 
착수하는 등 많은 목적을 가질 수 있습니다.
서버에 대한 분산 서비스 거부 또는 DDoS 공격을 
착수하는 등 많은 목적을 가질 수 있습니다.
DDoS는 모든 컴퓨터의 봇넷이 보내는
가짜 메시지들이 있는 곳입니다.
이것은 서비스를 오프라인으로 만들어, 주인이 배상금을 지불하거나 악의를 품도록 강요할 수 있습니다.
이것은 서비스를 오프라인으로 만들어, 주인이 배상금을 지불하거나 악의를 품도록 강요할 수 있습니다.
모든 열심히 일하는 화이트햇과 온라인에 기록된 
익스플로잇, 소프트웨어 공학의 모범 사례에도 불구하고
사이버 공격은 매일 발생합니다.
여기에 세계 경제의 연간 약 5조 달러가 들며, 컴퓨팅 
시스템에 대한 의존이 높아질수록 증가할 것입니다.
여기에 세계 경제의 연간 약 5조 달러가 들며, 컴퓨팅 
시스템에 대한 의존이 높아질수록 증가할 것입니다.
이것은 인프라가 점점 더 컴퓨터로 구동되기 때문에,
정부가 특히 우려하는 부분입니다.
동력 장치, 전기 그리드, 교통 조명,
수처리 설비, 정유 공장,
항공 교통 관제, 그리고 다른 수많은
키 시스템과 같은 것들이 있습니다.
많은 전문가들은 다음 주요 전쟁은
사이버 공간에서 싸울 것이라고 예측합니다.
국가가 물리적 공격이 아닌 경제적으로나 사회 기반 시설
을 무력화하는 사이버 전쟁에 무릎을 꿇을 것입니다.
국가가 물리적 공격이 아닌 경제적으로나 사회 기반 시설
을 무력화하는 사이버 전쟁에 무릎을 꿇을 것입니다.

English: 
what’s called a botnet.
This can have many purposes, like sending
huge volumes of spam, mining bitcoins using
other people's computing power and electricity,
and launching Distributed Denial of Service
or DDoS attacks against servers.
DDoS is where all the computers in the botnet
send a flood of dummy messages.
This can knock services offline, either to
force owners to pay a ransom or just to be
evil.
Despite all of the hard working white hats,
exploits documented online, and software engineering
best practices, cyberattacks happen on a daily
basis.
They cost the global economy roughly half
a trillion dollars annually, and that figure
will only increase as we become more reliant
on computing systems.
This is especially worrying to governments,
as infrastructure is increasingly computer-driven,
like powerplants, the electrical grid, traffic
lights, water treatment plants, oil refineries,
air traffic control, and lots of other key
systems.
Many experts predict that the next major war
will be fought in cyberspace, where nations
are brought to their knees not by physical
attack, but rather crippled economically and
infrastructurally through cyberwarfare.

English: 
There may not be any bullets fired, but the
potential for lives lost is still very high...
maybe even higher than conventional warfare.
So, we should all adopt good cybersecurity
practices.
And, as a community interconnected over the
internet, we should ensure our computers are
secured against those who wish to use their
great potential for harm.
So maybe stop ignoring that update notification?
I’ll see you next week.

Korean: 
총알은 발사되지 않을 수도 있지만,
잃어버린 삶의 잠재력은 여전히 ​​매우 높습니다.
어쩌면 핵이 없는 옛날 전쟁보다 더 높을 수도 있습니다.
따라서 우리 모두는 훌륭한 사이버 보안 관행을
채택해야 합니다.
또한 커뮤니티가 인터넷을 통해 상호 연결되어 있기 때문에,
크나큰 잠재적 위험을 이용하고자 하는 사람들로부터
우리들의 컴퓨터 보안을 유지해야합니다.
아마 그 업데이트 알림 무시를 멈추어야 할 것입니다.
다음 주에 만나요.
