Snyk 今月の脆弱性 オンライン勉強会シリーズ 2024年3月27日水曜日開催の録画
Summary
TLDRこのウェビナーシリーズは、サイバーセキュリティの脅威環境について常に最新の情報を提供することを目的としています。毎月、最新のトレンド、脆弱性、ベストプラクティス、そして予防戦略について掘り下げていきます。特に、npm生態系におけるprototype pollutionという脆弱性について深く掘り下げ、攻撃者がJavaScriptのオブジェクト原型を操作しての脅威や、如何にこれを防ぐかについて学ぶことができます。また、sneak vulnerability databaseというリソースも紹介されており、多种のアプリケーションやオペレーティングシステムの脆弱性情報を一望で確認できます。
Takeaways
- 🌐 ウェビナーリーは毎月開催され、サイバーセキュリティの脅威状況について最新情報を提供します。
- 🔍 今回のウェビナーでは、現在のトレンド、脆弱性の深掘り、ベストプラクティス、そして予防戦略について解説します。
- 📈 脆弱性データベースは、新たに発見された脆弱情報を更新する場所で、様々なアプリケーションやオペレーティングシステムの情報を確認できます。
- 🔎 今回の焦点は、Prototype PollutionというJavaScriptの脆弱性に焦点を当てています。
- 🌟 Prototype Pollutionは、JavaScriptの言語構造プロトタイプに属性を注入する能力を指し、攻撃者がアプリケーションオブジェクトのプロトタイプを操作して汚染させることがあります。
- 🛠️ 脆弱性対策として、入力の検証が重要です。Sneak Learnというアプリケーションを使って、実践的な学習を通じて脆弱性について学ぶことができます。
- 🎓 Sneak Learnには、6つの学習パートがあり、アプリケーションセキュリティや開発に関する内容が含まれています。
- 📚 学習パスを完了すると、認定証を受け取ることができます。また、最終的には、脆弱性の詳細な説明や緩和策について学ぶことができます。
- 📈 脆弱性攻撃のシナリオでは、攻撃者は不正な情報を注入することで、プロトタイプ属性を操作することができます。
- 💡 脆弱性攻撃を防ぐために、入力検証だけでなく、コードの構造や使用しているライブラリの安全性についても注意が必要です。
- 🗓️ 来月のウェビナーでは、AIについての議論が行われ、新しいAI技術を操作する方法を学ぶことができます。
Q & A
このウェビナーではどのようなトピックをカバーしていますか?
-このウェビナーでは、毎月の脆弱性ウェビナーシリーズの一部として、最新のトレンド、脆弱性、深い分析、ベストプラクティス、そして予防戦略について説明しています。
脆弱性データベースとは何ですか?
-脆弱性データベースは、新たに発見された多くの脆弱性情報を更新し、研究者が見つけた脆弱性情報を提供する場所です。
npmエコシステムとは何ですか?
-npmは、JavaScriptのパッケージ管理システムで、開発者がコードを共有し、再利用するためのエコシステムを提供しています。
プロトタイプポルーションの脆弱性とは何ですか?
-プロトタイプポルーションの脆弱性とは、JavaScriptの言語構造プロトタイプに属性を注入することで、アプリケーションのオブジェクトプロトタイプを悪意で操作または汚染させる能力を指します。
入力の検証とは何ですか?
-入力の検証とは、受け取ったデータを確認し、不正なデータや悪意のあるコードが含まれていないことを保証するプロセスです。
sneak learnというアプリケーションは何ですか?
-sneak learnは、アプリケーションのセキュリティを管理し、開発者がさまざまなプログラミング言語を使用して学ぶための学習プラットフォームです。
ウェビナーで取り上げたprototype pollutionの攻撃を防ぐためにどのような対策が提案されましたか?
-prototype pollutionの攻撃を防ぐために、入力の検証や不正なオブジェクトの認識、そして安全にオブジェクトを管理することが提案されました。
APIリクエストを実行する際に使用されるcurlは何ですか?
-curlは、コマンドラインでAPIリクエストを実行するためのツールです。代わりにPostmanなどの他のAPIツールを使用することもできます。
ウェビナーで述べられたprototype pollutionの攻撃で、攻撃者がどのようにして特権を昇格させたのですか?
-攻撃者は、不正なペイロードを送信することで、ユーザーから管理者特権に昇格しました。具体的には、'__proto__.role'を'admin'に設定したオブジェクトを送信しました。
ウェビナーで提案された予防戦略の学習リソースはどこで入手できますか?
-予防戦略の学習リソースは、sneak learnアプリケーションから入手できます。URLはウェビナーのチャットボックスに提供されています。
次回のウェビナーは何日に開催されますか?
-次回のウェビナーは4月25日に開催されます。
次回のウェビナーでどのようなトピックがカバーされる予定ですか?
-次回のウェビナーでは、異なるプログラミング言語についてさらに詳しく、特にAIをカバーする予定です。
Outlines
🌐 ウェビナーリー系列の紹介
この段落では、毎月のウェビナーリーシリーズが紹介されています。このシリーズは、参加者にサイバーセキュリティの脅威状況について常に知り、力を与えることを目的としています。各月、最新のトレンド、脆弱性、ゼロデイや新興するマルウェアに対するリスクを軽減するプロアクティブな戦略について掘り下げていきます。また、Q&Aセクションも設けられており、参加者はチャットボックスに質問を投稿できます。
📚 脆弱性データベースの使い方
この段落では、脆弱性データベースの使い方について説明されています。データベースは、新たに発見された脆弱性情報を更新する場所であり、研究者が見つけた脆弱性も含まれています。例えば、Cargo、Coco PS Composer Goなどのアプリケーションやオペレーティングシステムの脆弱性情報を確認できます。各脆弱性について詳しく掘り下げ、National Vulnerability Disclosure Database (NVD)から得られた情報や参照資料を提供しています。
🔍 prototype pollutionの理解と対策
この段落では、prototype pollutionという脆弱性について説明されています。prototype pollutionは、JavaScriptの言語構造プロトタイプに属性を注入することによって引き起こされる脆弱性です。攻撃者は、オブジェクトのプロトタイプに悪意のある情報を注入することで、アプリケーションの安全性を低下させることができます。この段落では、prototype pollutionの概念、影響、および軽減策について詳細に説明し、参加者が実際に学べるためのリソースも提供されています。
📈 学習用アプリケーションの紹介
この段落では、sneak learnという学習用アプリケーションが紹介されています。このアプリケーションは、アプリケーションセキュリティを学ぶための複数の学習パスを提供しています。参加者は、sneakを使用したアプリケーションセキュリティの管理、開発など様々なトピックについて学ぶことができます。また、各学習パスが完成したかどうかを追跡する進捗バーや、完了後の認定書も提供されています。
🛠 脆弱性攻撃のデモンストレーション
この段落では、実際に脆弱性攻撃をデモンストレーションしています。具体的には、脆弱なAPIを操ることで、JavaScriptのプロトタイプがどのように汚染されるか、そしてこれをどのように修正して防ぐかを学ぶことができます。また、攻撃を実行するためのコードスニペットが提供されており、参加者は実際にターミナルで実行してみることができます。
📅 次回のウェビナーリとさらなるリソース
最後の段落では、次回のウェビナーリと提供されるさらなるリソースについて説明されています。来月の25日に予定されている次回のウェビナーリでは、特にAIに関する様々なレベルの脆弱性について取り上げます。また、sneak learnのサイトでllmという新しいAI技術に関する脆弱性について学ぶことができます。最後には、参加者に次回のウェビナーリに参加するよう呼びかけています。
Mindmap
Keywords
💡vulnerability
💡webinar
💡cyber security
💡zero day
💡malware
💡prototype pollution
💡input validation
💡sneak vulnerability database
💡Q&A
💡learning path
💡API
Highlights
每月举办的漏洞网络研讨会旨在保持与不断变化的网络安全威胁景观的同步。
网络研讨会涵盖最新趋势、漏洞分析、最佳实践以及主动策略等关键主题。
漏洞数据库是更新新漏洞信息的重要资源。
介绍了Cargo, Coco, PS Composer Go等应用程序和操作系统的漏洞。
原型污染是JavaScript中一个严重的漏洞。
通过注入属性来操纵JavaScript应用程序对象的原型。
介绍了如何通过输入验证来防止原型污染。
提供了一个名为Sneak Learn的应用程序,用于学习多个安全部分。
通过完成Sneak Learn中的课程可以获得证书。
介绍了如何利用易受攻击的API来演示原型污染。
通过发送包含特殊参数的有效负载来提升权限。
通过发送随机字符到API请求来使应用程序崩溃。
JavaScript是基于原型的对象,容易受到原型污染的影响。
Sneak Learn应用程序是一个点击式应用程序,允许用户体验和学习安全概念。
通过测验来检验对原型污染的理解。
下个月的网络研讨会将讨论不同的编程语言,特别是AI,包括原型污染和其他高级漏洞。
鼓励观众在任何时候提出问题,并通过LinkedIn与组织者联系。
Transcripts
hi everyone good morning good afternoon
good evening wherever you are and
especially I know that we our audience
is mostly from Japan so I am honored but
I would let um Heroku speak more in
Japanese I will try to speak
slowly thank
you
go
ahead thank you so uh everyone um thank
you for joining our monthly
vulnerability webinar series which is
designed to keep you informed and
empowered in the ever revolving threat
landscape or cyber security threats and
um each month we would be diving into uh
the latest trends we would also be
covering the different
vulnerabilities and we will be uh taking
the proactive strategies to mitigate the
risks from zero day to emerging Mal
trins to a
topics
so for today um we would be covering the
key topics like current Trend landscape
analysis vulnerability Deep dive best
practices and even proactive strategies
uh we will have a Q&A section as well uh
I would say if you have any question
please keep posting in the chat box and
we will be picking it up so that we can
answer it um one thing I want to say
that as it's a half an hour session uh
so there will not be every question that
will might be answered or we will not be
explaining to the core we will be
sharing tips and tricks topics briefly
explaining um but we will tell you where
you can find every detail so that you
can go through that and um you can ask
us any questions at any
time
for
now let's start with uh the sneak
vulnerability database so sneak
vulnerability database is is a place
where you have a lot of vulnerabilities
uh are updated as soon as they come in
and there are vulnerabilities which
researchers have found so on this page
let me give you the URL as
well
great so here if you look at this this
vulnerability database there are
multiple applications and operating
system that you can see so let's click
on one of
them so here if you can see we have
cargo Coco PS composer go uh you must be
using one of them if you are a developer
even as a security person you might be
working with developers which who might
be using these languages and operating
systems so here if you can see uh there
are vulnerabilities which have been
updated on 24th March 21st March 20th
March and description about each of them
whether it's high low medium and if you
want to get deep into these
vulnerability you can just click on them
and it talks about the package what you
need to do overview details attack
complexity threat intelligence uh what
information we've got from nvd database
which is National vulnerability
disclosure
database
uh and it gives you more information for
references where you can find such
vulnerabilities now today if let's say
go back I want to know more about npm so
npm is the ecosystem which I use a lot
which which ecosystem do you use npm go
python you can put it in the chat box I
would love to know more about
it all right so for npm if you can see
there's prototype pollution improper
input validation cross-site scripting
malicious packages uh which are here and
today we will be covering prototype
pollution uh so let's get to know what
is prototype pollution so if you're
using uh npm ecosystem prototype
pollution is a very big vulnerability
and a prototype pollution is a
vulnerability affecting
JavaScript uh so prototype pollution
refers to the ability to inject
properties into the existing JavaScript
language construct prototypes uh for
example objects so I can add a a magical
attribute such as Proto Constructor and
prototype and play around with the
application
[Music]
protas
so in Prototype pollution attacker monip
manipulates the attributes to override
or pollute a JavaScript application
object uh uh object prototype of the
base object by injecting other values uh
so properties on the object attribute
are then inherited by all the other
objects which is like a chain and one
polluted parameter passed on malicious
information to other objects as
well object
prot
yeah and if you want to know more about
it that's sque vulnerability database
you have information about each of them
from overview what is the PC how you can
actually replicate if you're using npm
ecosystem to details about like if you
see um that JavaScript language if we
add these magical attributes uh we as an
attacker I can play around and overwrite
or pollute the JavaScript application
and make it unsafe similarly what are
the unsafe objects we have how we can
actually secure them what are the things
which can go wrong like these are the
attacks which can happen um even if you
see prompt property injection to remote
code execution denial of service can
actually happen um so it talks about
everything can you scroll up to the
overview
for
right so now we have got to know about
these attributes we've got to know about
that uh this is how we can pollute it
but then we need to know how we can
prevent it so the most important thing
is let's start with input validation
validating anything that comes
in
I can't learn till the time I do it
myself so we have an application called
sneak learn so which has multiple
learning
Parts let me give you the exact URL so
that you can actually try it yourself as
well even after the session hi
so uh heru if you can send the URL in
the chat box for attendees that'll be
great and what I've have done is I have
six learning Parts the the top three
talks about the implementing sneak uh
managing application security with sneak
and developing so these are more sneak
focused but if you look at the three
below they are for developers again the
different programming languages being
used in open source ecosystem and OAS
top
[Music]
10
now let's go step by step and understand
and uh let me actually look at the
Prototype pollution
[Music]
here
now if you look at the Prototype
pollution here uh what is prototype
pollution explained now as As you move
down the uh down the reading uh on the
right hand side if you see there is a
progress bar which keeps a track of your
progress and once you complete all the
lessons in a pting learning progress for
example if I go to lessons and and um I
have multiple lessons but if I've
completed one lesson it'll keep a track
and once the whole learning path is done
I'll get a
certificate
so here if you look at it it talks about
what is prototype pollution
what this lesson is all about like we
will be playing around with a vulnerable
API uh how JavaScript prototype can be
polluted and how we can fix and prevent
it so this is about the
lesson yeah and here how exactly it can
be done in an action so let's learn step
by step there is a use there is a API
which has user ID in the um uh in the
request which is in the post form
there's another uh API that we have
where we trying to get the user ID Ro
using get parameter so we are going to
be exploiting the vulnerable API here
today
now uh so they have given a code snippet
which we can leverage but now you must
be thinking how we can do
it
now uh what is the the most interesting
part is that it's a click through app so
I'll just copy the snippet put it into
the
terminal and hit enter it'll give me the
details that I
needed and let's say if we asked for
these details they gave me this now
let's understand what role uh we have
for 1337 user now this is an open API so
I'm a attacker I'm just trying to
understand more about these
roles uh so this is where we get to know
that the the role is user let's get to
know more details and while adding these
urls can I get more uh in-depth
information now what uh so I have to
share one more thing which I miss that
I'm using curl here you can use Postman
you can use any other tool to run the
API request but curl is something which
I really like so uh I use here but you
can use Postman or any other API tool
that we have
uh and here when we use this request
where we says curl the header which is
which has the content type as
application gjon and we're trying to
post the role as admin but again we were
not able to do it we still got the
information as Ro user here right
now what we trying to do is we are
trying to elevate the privilege from a
user to an admin
here here look at this request we're
trying to Cur the header which ISS
application Json and we are adding an
interesting parameter which is this here
where we defining a third party objects
as Proto but the role as
admin let me copy and paste it in the
terminal and see if the magic happens
with the magic uh
object so you can see we are
successfully managed to elevate
ourselves to admin Hood by just sending
a mysterious payload which says that
Proto roll admin to the back end hi
there
now you must be thinking that why this
magical prefix worked don't worry about
it we will discuss more detail here
hi so what happened here is that uh when
we are sending an object that's being
stored somewhere in the back end and
especially with JavaScript objects here
we added an attribute and we sent it to
the back end which actually worked
because it was taking input from the
user and not validated what validating
what we're trying to
send
here if you can see um what we can try
we are trying to do is we are again
trying to G the content type as
application Json we're trying to post
Proto but instead of just the admin we
are trying some random bit of characters
and bring down our
[Music]
application
so let's exploit the application and see
if it brings down
that so if you see it gave 500 in tener
error which means it actually bring down
the API now what happened here uh let's
let's understand more so when it was
accepting the objects external objects
in Javas script we sent random things
and it accepted which actually led to a
vulnerability and at the same time um it
brought down the
application uh now why this happened is
because JavaScript is a prototype um OB
object based application and when we
sent an external object as a prototype
it accepted and it started to exploit
that uh if you want to know more about
it you can see every detail how you can
run the code why it is accepting it uh
the different prototypes everything is
and you can run the code it's a
clickthrough app that's the most amazing
part so you can experience it and in
detail if you see it has been explained
with the
architecture
and not just that it actually talks
about how we can mitigate as
well and not just that we have a quiz as
well in the end which will give you
bonus
points let's see if it's
[Music]
uh right or wrong let's see see it's
wrong and if it's right it'll say it's
right if you see it talks about why it's
wrong so it gives you that information
as well till the time you make it
correct
and you can actually uh if you want to
know more about it you have all the
details
here keep
learning uh one thing in the end that I
want to share that as it's a half in our
session we can only cover this much but
we will try and share as much as
Resources with
you uh next month we have a session on
25th of April the same
time
uh next month we will be talking more
about uh different programming languages
especially covering AI so we would be
covering prototype pollution and other
llm level vulnerabilities so make sure
you join
us
so let's say uh I went to this learning
site and looked for llm so these are the
two vulnerabilities for llms which we
have added for prompt injection and
excessive agency yet but we will have
more coming
soon um so next week uh next month when
we talk about these vulnerabilities
we'll also be using an external
application where you can also play
around you can also try and see how you
can manipulate these new AI things um
but yes if you have any questions at any
given point of time please do feel free
to reach out to
us
in the end if you have any questions
please do type it in the Q&A section or
in the chat box uh don't be shy because
if you don't ask questions they will
never be answered and if you still want
to if you're still feeling shy you can
reach out to us on
thank you so much everyone for joining
today today uh it was wonderful to have
you as an audience um hope to see you in
the next month webinar with lot of
questions lot of enthusiasm and thank
you
everyone see you next
month thank you
everyone
5.0 / 5 (0 votes)