쉐도잉 연습: OWASP Top 10 Explained - 영상으로 영어 말하기 배우기

레슨 만드는 중...
1
where we will look at security risk based on the OWASP top 10.
2
So we have these top 10 security risks here, which we are going to dive into.
3
We will be looking at what they are and how we can prevent and protect our web application against them.
4
So first off, we have the injection.
5
And what is injection?
6
An injection of code is when a given user, for example, we see here,
7
are trying to input something into a user input field that is not intended there.
8
In this case we are looking at SQL injection.
9
There are other injection forms, for example OS command.
10
But here we are looking at SQL injection where in a username
11
and password field a user could try to input some SQL statement
12
that will in all cases return true
13
and then the database will just act on that and return all the information in that given table.
14
So for example here he has said that if 1 equals 1 which is always true then this should
15
act upon that and most likely if your web location are vulnerable to that you will be
16
returning information that the users are not intended to see or the malicious users are not intended to see.
17
So this is one of the attacks that is very important to protect against
18
and we still see even larger companies in 2020 being vulnerable to this attack.
19
So this is definitely something to pay attention to.
20
And the way that you can prevent this is to check the input
21
that users are given and not only in the front end
22
but also in the back end because if you take front end
23
verification only and validation then the users can again just manipulate the HTML
24
and JavaScript on the local browser machine
25
and then request your server by going around these validations
26
so you also have to have backend validation to ensure
27
that people are not just going around because then it doesn't make any sense to to have front-end protection.
28
So the second one is broken authentication.
29
And broken authentication is when your application is vulnerable to,
30
for example, session hijacking, where a user is logging in and he is getting an ID which says,
31
okay, this is this particular user and he has these right.
32
But then an attacker somehow using a vulnerability in your web application
33
is capable of getting this ID or this token and then he is acting like he was this user
34
and can thereby make changes to the application in a way that this user has access to.
35
And a way to prevent this is of course never deploy any default credentials, store the passwords
36
using a one-way hash function such that
37
if your database of user accounts is getting leaked you You should not just store these passwords in plain text
38
so that everybody can use other people's credentials.
39
You also need to ensure that there are, for example, a limited attempt of authentication to the server
40
such that you cannot make a script that tries a thousand different password combinations in a minute
41
Because what human will do that if they actually have a real account on your system?
42
Basically no one.
43
So that is another way.
44
And then we have the sensitive data exposure
45
and a good example here is when yahoo got hit by this and they actually
46
confirmed that three billion user accounts were affected by this hacking attack meaning
47
that three billion user accounts got some of their information leaked in different hacking forums
48
and online where it was public for people who knew how to access it to view.
49
And that is of course not something that nobody ever wants for their application.
50
And a good way again to prevent this is use a password hashing function to store passwords
51
because if the database is then leaked you at least are sure that it is not in plain text.
52
and you should also be careful of what protocols you are using in order to check
53
that what is coming in and out of your system is using the right security protocol
54
and is not communicating in plain text.
55
For example, you should never have your web application communicating with the server in plain HTTP,
56
but you should also always use an encrypted protocol, for example, HTTPS.
57
Then we have the XML external entities,
58
and that is something that happens when an application is passing XML inputs and responses back and forth.
59
and when an application is doing this and this is not in an encrypted way,
60
an attacker might be able to manipulate with the input to the server in XML
61
and then request something from the server that was not intended by the developers.
62
So it is very important here that you implement, if you are using XML, that you implement a positive whitelisting such
63
that it is only a limited amount of input that is valid for your XML request.
64
Because then all XML input that is not part of this whitelisting will simply be blocked.
65
and thereby limiting the damage that such attack can inflict on your application.
66
Then we have number five, which is the broken access control.
67
A broken access control is, as we see here, when you have different roles for users,
68
and these roles have different authorization mechanisms mechanisms, for example, a basic user can log in, he can see his profile name,
69
profile page, and he can change his own password.
70
Then you might have an admin role
71
that can view all the other users profiles
72
and he can maybe make changes to the web application itself to make it behave in different ways.
73
And when these are conflicting
74
and you are not have not implemented this in the right way you might risk
75
that malicious users try to exploit this access control by getting
76
by getting themselves into a position where they have in your applications view a higher
77
authentication authorization than intended by you so they will try to get access to admin level
78
where they can do some stuff that they were not intended to because they were only the basic users
79
And a good way to prevent this is always follow the principle of least privileged,
80
meaning that you should never give a given role more access than
81
that needs because there's no reason for for example an admin to be able to change a password
82
and see passwords of the roles beneath him
83
because why should an admin ever go into a web application
84
and see these because the developers will always have access to the main database
85
if they are trusted and can see this information.
86
And again, if you use a secure way of storing the password, not even the developers will be able to see it because the passwords are hashed.
87
So there are definitely something that you should consider when implementing access control within your web application.
88
Then we have the security misconfiguration and
89
that is pretty much as the name says when you have an application
90
and you have configured in a way that make it vulnerable you are in real problem.
91
For example, that could be that you have unprotected files or that we saw with the web server.
92
If you have files placed on a server that is actually public but you are thinking it's private, then people might get access to this information anyways.
93
A good way to prevent against this is to remove
94
and never install any unnecessary features or dependencies into your server
95
or in the development of your application because the less features
96
and the less dependencies and packages and libraries you are having on the server
97
and the web application the easier it is to control
98
and the less likely you are to miss some of these configurations up and make your application vulnerable.
99
Then we have the cross-site scripting where people are trying to input stuff into,
100
for example, user input fields similar to when we saw SQL indexing.
101
But here we are seeing it such that people try to, for example, in an input field,
102
inject some scripts that is then going to be saved to the database, for example, in a comment field.
103
And then when another user tries to go into the web page like he normally would,
104
then that comment field is getting loaded from the database and then the script might get executed on his machine,
105
even though the attacker and the user has never interacted directly.
106
He is still getting attacked by this hacker
107
because he managed to save some script in the database
108
and the database and application just loaded it because it thought that it was a basic comment.
109
So it's also important to be very aware of this and also use the right frameworks to protect against this.
110
So again be aware of what framework you are using
111
and try to use the standard within that framework to escape these types of attack.
112
by for example have validation in your input fields and never allow your application to store
113
certain types of signs in the database.
114
It will insecure deserialization when data is stored or transmitted it is done so in bytes and and these are serialized.
115
As we see here, when you have a basic object and you want to transfer that, it is getting serialized into a stream of bytes
116
which is then going into for example the database
117
or into memory on the machine and then
118
when you want to read this again you transfer this from a stream of bytes where it has been stored
119
into the actual object again.
120
If you are not aware of how this is working,
121
you can open up for modification of this when the serialization is happening.
122
So that the object that you serialized is not the same, which is getting transferred back into an object when it is deserialized.
123
And that might damage the application or the data source that you wanted to save.
124
So a good way to prevent against this is to implement integrity checks
125
and encrypt the serialization of the object to prevent that malicious people
126
or people outside the application scope can read and temper with this stream of bytes.
127
And then we have number nine, which is using components with known vulnerabilities.
128
This is also similar to the security misconfiguration.
129
So when you are using different components or libraries in your web application, you should always update them and keep them updated,
130
because new vulnerabilities might be discovered after you build your application.
131
And if you are not updating these, your application will be vulnerable to these attacks attacks and
132
that is also why we keep seeing for us who use windows for example 10 that windows 10 is
133
pushing these security updates because the windows
134
that we have today might be vulnerable to certain attacks just two months ago
135
so if you haven't updated your windows in just two months you might be at risk
136
and it is the same for mobile phones
137
because new attacks is always popping up
138
and people are trying all kind of things to try to break into these different applications
139
and software systems and the vendors are
140
if they are good vendors they are trying to fix these
141
as quickly as possible to avoid their users being affected
142
so you should always try to update and search for dependency
143
and library updates when you have a web application because
144
if you are not you will most likely risk being attacked
145
when the right users discover that you have an unpatched library using an old module on your web application.
146
Then we have number 10 which is insufficient logging and monitoring.
147
As the name says, if you're not logging or monitoring your web application you don't know what is going on.
148
So you need to be aware of what is going on with your web application
149
and have the the right triggers and alarms set up to respond in time.
150
Because those people can just sit for days and try different things out
151
and if you are not discovering that someone is trying to temper with your application, you have no way of stopping them
152
because at one point they will hit the golden button
153
and actually find a vulnerability and you will never discover
154
that they tried to find this and you will never discover that they actually got into the system before it's too late.
155
So always log and monitor your web application.
156
It is crucial in order to stop your web application from being exploited.
157
So this was all for this video.
158
Remember to like and subscribe and then I will see you next time here on Vinsloth Academy.

실생활 시나리오: 보안 위협 설명하는 상황

이 비디오는 OWASP Top 10이라는 보안 위협을 설명하는 내용입니다. 실제로 IT 업계에서 보안 전문가가 동료나 클라이언트에게 위험 요소와 대응 방법을 설명할 때 이와 같은 표현을 사용합니다. "인젝션 공격", "브로큰 인증" 등의 전문 용어를 자연스럽게 설명하면서, 구체적인 예시와 대응 전략을 제시하는 방식은 영어로 기술적인 내용을 전달할 때 매우 중요합니다. 이런 상황에서 명확하고 논리적인 발화는 의사소통의 핵심입니다.

유용한 구문과 연어

  • "dive into": 깊이 알아보다. "We are going to dive into the top 10 security risks"처럼 사용해, 주제를 깊게 다룬다는 의미를 전달합니다.
  • "act upon": ~에 따라 행동하다. "The database will act upon that"에서 데이터베이스가 입력된 명령에 따라 동작한다는 뜻입니다.
  • "pay attention to": 주의를 기울이다. "This is definitely something to pay attention to"처럼 중요한 사항을 강조할 때 사용합니다.
  • "prevent against": ~를 방지하다. "Protect against injection attacks"와 같이 위협을 막는 표현으로 자주 쓰입니다.
  • "leak into": 유출되다. "Passwords leaked into hacking forums"에서 정보가 외부로 유출된다는 의미입니다.

당신의 샤도잉 챌린지

shadowspeaks나 shadowing site를 이용해 비디오의 음성을 따라 읽어보세요. 특히 "injection", "broken authentication" 등의 전문 용어를 발음할 때 영어 발음 교정에 주의하세요. 문장의 리듬과 강세를 따라가면서, "So first off, we have the injection"처럼 연결어를 자연스럽게 발음하는 연습을 하세요. 3분 동안 반복해서 shadow speech를 하면, 영어 회화 연습에서 기술적인 내용을 전달하는 능력이 크게 향상될 것입니다. 끝날 때마다 자신의 발음을 녹음해 원본과 비교해보세요. 이렇게 실천하면 자연스러운 발화 뿐만 아니라 논리적인 설명 능력도 키울 수 있습니다.

쉐도잉이란? 영어 실력을 빠르게 키우는 과학적 방법

쉐도잉(Shadowing)은 원래 전문 통역사 훈련을 위해 개발된 언어 학습 기법으로, 다언어 학자인 Dr. Alexander Arguelles에 의해 대중화된 방법입니다. 핵심 원리는 간단하지만 매우 강력합니다: 원어민의 영어를 들으면서 1~2초의 짧은 지연으로 즉시 소리 내어 따라 말하는 것——마치 '그림자(shadow)'처럼 화자를 따라가는 것입니다. 문법 공부나 수동적인 청취와 달리, 쉐도잉은 뇌와 입 근육이 동시에 실시간으로 영어를 처리하고 재현하도록 훈련합니다. 연구에 따르면 이 방법은 발음 정확도, 억양, 리듬, 연음, 청취력, 말하기 유창성을 크게 향상시킵니다. IELTS 스피킹 준비와 자연스러운 영어 소통을 원하는 분들에게 특히 효과적입니다.

섀도잉 방법: 단계별 전체 가이드 읽기 →