Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
JC
Uploaded by
JPCERT Coordination Center
568 views
Javaセキュアコーディングセミナー東京第2回演習の解説
Read more
1
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 18
2
/ 18
3
/ 18
4
/ 18
5
/ 18
6
/ 18
7
/ 18
8
/ 18
9
/ 18
10
/ 18
11
/ 18
12
/ 18
13
/ 18
14
/ 18
15
/ 18
16
/ 18
17
/ 18
18
/ 18
More Related Content
PDF
Javaセキュアコーディングセミナー東京第2回演習
by
JPCERT Coordination Center
PDF
Javaセキュアコーディングセミナー東京第3回演習の解説
by
JPCERT Coordination Center
PDF
Async design with Unity3D
by
Kouji Hosoda
PPTX
An other world awaits you
by
信之 岩永
PDF
Slide
by
Takefumi MIYOSHI
PDF
Javaセキュアコーディングセミナー東京第3回講義
by
JPCERT Coordination Center
PPTX
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
by
Fujio Kojima
PDF
C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020
by
Fujio Kojima
Javaセキュアコーディングセミナー東京第2回演習
by
JPCERT Coordination Center
Javaセキュアコーディングセミナー東京第3回演習の解説
by
JPCERT Coordination Center
Async design with Unity3D
by
Kouji Hosoda
An other world awaits you
by
信之 岩永
Slide
by
Takefumi MIYOSHI
Javaセキュアコーディングセミナー東京第3回講義
by
JPCERT Coordination Center
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
by
Fujio Kojima
C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020
by
Fujio Kojima
What's hot
PPTX
LINQ 概要 + 結構便利な LINQ to XML
by
ShinichiAoyagi
KEY
Objc lambda
by
matuura_core
PDF
Unit test in android
by
Tatsuya Maki
PDF
Synthesijer and Synthesijer.Scala in HLS-friends 201512
by
Takefumi MIYOSHI
PPTX
async/await のしくみ
by
信之 岩永
PDF
TensorFlow XLA 「XLAとは、から、最近の利用事例について」
by
Mr. Vengineer
PDF
Cloud TPU Driver API ソースコード解析
by
Mr. Vengineer
PPTX
Junit4
by
ichikaz3
PDF
Javaセキュアコーディングセミナー東京第3回演習
by
JPCERT Coordination Center
PDF
Visual C++コード分析を支えるSAL
by
egtra
PDF
VerilatorとSystemC
by
Mr. Vengineer
PDF
64ビット対応Dllインジェクション
by
Shinichi Hirauchi
PPTX
[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long
by
CODE BLUE
PDF
Javaセキュアコーディングセミナー東京第1回演習の解説
by
JPCERT Coordination Center
PDF
effective modern c++ chapeter36
by
Tatsuki SHIMIZU
PDF
Effective modern-c++#9
by
Tatsuki SHIMIZU
PPTX
Sharing Deep Dive
by
Takaaki Suzuki
PDF
LINQソースでGO!
by
Kouji Matsui
PDF
Rx java x retrofit
by
Shun Nakahara
PDF
Shibuya JVM Groovy 20150418
by
Uehara Junji
LINQ 概要 + 結構便利な LINQ to XML
by
ShinichiAoyagi
Objc lambda
by
matuura_core
Unit test in android
by
Tatsuya Maki
Synthesijer and Synthesijer.Scala in HLS-friends 201512
by
Takefumi MIYOSHI
async/await のしくみ
by
信之 岩永
TensorFlow XLA 「XLAとは、から、最近の利用事例について」
by
Mr. Vengineer
Cloud TPU Driver API ソースコード解析
by
Mr. Vengineer
Junit4
by
ichikaz3
Javaセキュアコーディングセミナー東京第3回演習
by
JPCERT Coordination Center
Visual C++コード分析を支えるSAL
by
egtra
VerilatorとSystemC
by
Mr. Vengineer
64ビット対応Dllインジェクション
by
Shinichi Hirauchi
[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long
by
CODE BLUE
Javaセキュアコーディングセミナー東京第1回演習の解説
by
JPCERT Coordination Center
effective modern c++ chapeter36
by
Tatsuki SHIMIZU
Effective modern-c++#9
by
Tatsuki SHIMIZU
Sharing Deep Dive
by
Takaaki Suzuki
LINQソースでGO!
by
Kouji Matsui
Rx java x retrofit
by
Shun Nakahara
Shibuya JVM Groovy 20150418
by
Uehara Junji
Viewers also liked
PDF
Apache ActiveMQにおける認証処理不備の脆弱性(AMQ-1272)
by
JPCERT Coordination Center
PDF
ソフトウェアセキュリティ保証成熟度モデル
by
JPCERT Coordination Center
PPTX
Android Platform の URLConnection に HTTP ヘッダインジェクションの脆弱性
by
JPCERT Coordination Center
PDF
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)
by
JPCERT Coordination Center
PDF
デブサミ2015 事例から学ぶAndroidアプリのセキュアコーディング「SSL/TLS証明書検証の現状と対策」
by
JPCERT Coordination Center
PDF
Case Studies and Lessons Learned from SSL/TLS Certificate Verification Vulner...
by
JPCERT Coordination Center
PDF
OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido)
by
JPCERT Coordination Center
PDF
脆弱性情報はこうしてやってくる
by
JPCERT Coordination Center
PDF
クロスサイトリクエストフォージェリ(CSRF)とその対策
by
JPCERT Coordination Center
Apache ActiveMQにおける認証処理不備の脆弱性(AMQ-1272)
by
JPCERT Coordination Center
ソフトウェアセキュリティ保証成熟度モデル
by
JPCERT Coordination Center
Android Platform の URLConnection に HTTP ヘッダインジェクションの脆弱性
by
JPCERT Coordination Center
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)
by
JPCERT Coordination Center
デブサミ2015 事例から学ぶAndroidアプリのセキュアコーディング「SSL/TLS証明書検証の現状と対策」
by
JPCERT Coordination Center
Case Studies and Lessons Learned from SSL/TLS Certificate Verification Vulner...
by
JPCERT Coordination Center
OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido)
by
JPCERT Coordination Center
脆弱性情報はこうしてやってくる
by
JPCERT Coordination Center
クロスサイトリクエストフォージェリ(CSRF)とその対策
by
JPCERT Coordination Center
Similar to Javaセキュアコーディングセミナー東京第2回演習の解説
PDF
Javaセキュアコーディングセミナー東京第1回 演習
by
JPCERT Coordination Center
PDF
例外設計における大罪
by
Takuto Wada
PDF
Effective java 勉強会
by
Takinami Kei
PPTX
Java Puzzlers JJUG CCC 2016
by
Yoshio Terada
PDF
Javaセキュアコーディングセミナー東京第4回講義
by
JPCERT Coordination Center
PDF
実践・最強最速のアルゴリズム勉強会 第一回 講義資料(ワークスアプリケーションズ & AtCoder)
by
AtCoder Inc.
PDF
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
by
JustSystems Corporation
PDF
Javaセキュアコーディングセミナー東京第1回 講義
by
JPCERT Coordination Center
PDF
Sapporocpp#2 exception-primer
by
Kohsuke Yuasa
PDF
Java puzzlers 2013 at JavaFesta Japan
by
Yoshio Terada
PDF
Java/Androidセキュアコーディング
by
Masaki Kubo
KEY
Java7再入門講座
by
Takafumi Yoshida
PPTX
Project lambda
by
Appresso Engineering Team
PDF
JDK7 Quiz... @ JavaOne報告会 at Tokyo
by
EIICHI KIMURA
PDF
Javaセキュアコーディングセミナー東京第4回演習の解説
by
JPCERT Coordination Center
PPTX
Cve 2013-0422
by
abend_cve_9999_0001
PPTX
Javaプログラミング入門【第6回】
by
Yukiko Kato
PDF
Code complete ch22_developper_test
by
Sho Shimauchi
PDF
xUnit Test Patterns - Chapter19
by
Takuto Wada
PDF
オブジェクト指向できていますか?
by
Moriharu Ohzu
Javaセキュアコーディングセミナー東京第1回 演習
by
JPCERT Coordination Center
例外設計における大罪
by
Takuto Wada
Effective java 勉強会
by
Takinami Kei
Java Puzzlers JJUG CCC 2016
by
Yoshio Terada
Javaセキュアコーディングセミナー東京第4回講義
by
JPCERT Coordination Center
実践・最強最速のアルゴリズム勉強会 第一回 講義資料(ワークスアプリケーションズ & AtCoder)
by
AtCoder Inc.
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
by
JustSystems Corporation
Javaセキュアコーディングセミナー東京第1回 講義
by
JPCERT Coordination Center
Sapporocpp#2 exception-primer
by
Kohsuke Yuasa
Java puzzlers 2013 at JavaFesta Japan
by
Yoshio Terada
Java/Androidセキュアコーディング
by
Masaki Kubo
Java7再入門講座
by
Takafumi Yoshida
Project lambda
by
Appresso Engineering Team
JDK7 Quiz... @ JavaOne報告会 at Tokyo
by
EIICHI KIMURA
Javaセキュアコーディングセミナー東京第4回演習の解説
by
JPCERT Coordination Center
Cve 2013-0422
by
abend_cve_9999_0001
Javaプログラミング入門【第6回】
by
Yukiko Kato
Code complete ch22_developper_test
by
Sho Shimauchi
xUnit Test Patterns - Chapter19
by
Takuto Wada
オブジェクト指向できていますか?
by
Moriharu Ohzu
More from JPCERT Coordination Center
PDF
いま改めて製品開発者の脆弱性対応について考える ~情報セキュリティ早期警戒パートナーシップを運用する調整機関の視点から~
by
JPCERT Coordination Center
PDF
安全なプラグインに必要なこと: 脆弱性届出状況に見る傾向と対策 (WordCampTokyo 2017)
by
JPCERT Coordination Center
PDF
DLL読み込みの問題を読み解く
by
JPCERT Coordination Center
PDF
WordBench東京 7月勉強会「夏のLT大会!」『WordPress とバックアップの話』
by
JPCERT Coordination Center
PDF
CERT コーディングスタンダードご紹介 (OSC2017@Osaka)
by
JPCERT Coordination Center
PDF
Lessons (to be) Learned from Handling OpenSSL Vulnerabilities
by
JPCERT Coordination Center
PDF
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
by
JPCERT Coordination Center
PDF
Android Secure Coding
by
JPCERT Coordination Center
PDF
JRE標準ライブラリの脆弱性事例を理解する (AtomicReferenceArrayクラス と Type Confusion)
by
JPCERT Coordination Center
PDF
Apache Axis2におけるXML署名検証不備
by
JPCERT Coordination Center
PDF
Apache Tomcat における クロスサイトリクエストフォージェリ (CSRF) 保護メカニズム回避の脆弱性
by
JPCERT Coordination Center
PDF
Spacewalkにおけるクロスサイト リクエストフォージェリ(CSRF)の脆弱性
by
JPCERT Coordination Center
PDF
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)
by
JPCERT Coordination Center
PDF
JBoss Application Server におけるディレクトリトラバーサルの脆弱性
by
JPCERT Coordination Center
PDF
MySQL Connector/J における SQL インジェクションの脆弱性
by
JPCERT Coordination Center
PDF
Blojsom におけるクロスサイトスクリプティングの脆弱性
by
JPCERT Coordination Center
PDF
Apache Struts2 における任意の Java メソッド実行の脆弱性
by
JPCERT Coordination Center
PDF
Apache Sling におけるサービス運用妨害(無限ループ)の脆弱性
by
JPCERT Coordination Center
いま改めて製品開発者の脆弱性対応について考える ~情報セキュリティ早期警戒パートナーシップを運用する調整機関の視点から~
by
JPCERT Coordination Center
安全なプラグインに必要なこと: 脆弱性届出状況に見る傾向と対策 (WordCampTokyo 2017)
by
JPCERT Coordination Center
DLL読み込みの問題を読み解く
by
JPCERT Coordination Center
WordBench東京 7月勉強会「夏のLT大会!」『WordPress とバックアップの話』
by
JPCERT Coordination Center
CERT コーディングスタンダードご紹介 (OSC2017@Osaka)
by
JPCERT Coordination Center
Lessons (to be) Learned from Handling OpenSSL Vulnerabilities
by
JPCERT Coordination Center
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
by
JPCERT Coordination Center
Android Secure Coding
by
JPCERT Coordination Center
JRE標準ライブラリの脆弱性事例を理解する (AtomicReferenceArrayクラス と Type Confusion)
by
JPCERT Coordination Center
Apache Axis2におけるXML署名検証不備
by
JPCERT Coordination Center
Apache Tomcat における クロスサイトリクエストフォージェリ (CSRF) 保護メカニズム回避の脆弱性
by
JPCERT Coordination Center
Spacewalkにおけるクロスサイト リクエストフォージェリ(CSRF)の脆弱性
by
JPCERT Coordination Center
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)
by
JPCERT Coordination Center
JBoss Application Server におけるディレクトリトラバーサルの脆弱性
by
JPCERT Coordination Center
MySQL Connector/J における SQL インジェクションの脆弱性
by
JPCERT Coordination Center
Blojsom におけるクロスサイトスクリプティングの脆弱性
by
JPCERT Coordination Center
Apache Struts2 における任意の Java メソッド実行の脆弱性
by
JPCERT Coordination Center
Apache Sling におけるサービス運用妨害(無限ループ)の脆弱性
by
JPCERT Coordination Center
Javaセキュアコーディングセミナー東京第2回演習の解説
1.
Javaセキュアコーディングセミナー東京 第2回 数値データの取扱いと入力値の検証 演習解説 2012年10月14日(日) JPCERTコーディネーションセンター 脆弱性解析チーム 戸田 洋三
1
2.
‣Hands-on Exercises ‣
サンプルコード Unzip を修正しよう ‣ サンプルコード AltConst を修正しよう 2
3.
Hands-on Exercise(1) ‣サンプルコード Unzip
を ‣修正しよう 3
4.
ZipBombの影響を受けるコード例 class Unzip {
static final int BUFFER = 512; public static void main(String[] args) throws FileNotFoundException,IOException { BufferedOutputStream dest = null; ZipInputStream zis = new ZipInputStream(new BufferedInputStream(new FileInputStream(args[0]))); ZipEntry entry; while ((entry = zis.getNextEntry()) != null){ System.out.println(“Extracting: “ + entry); int count; byte data[] = new byte[BUFFER]; FileOutputStream fos = new FileOutputStream(entry.getName()); dest = new BufferedOutputStream(fos, BUFFER); while ((count=zis.read(data,0,BUFFER)) != -1){ dest.write(data, 0, count); } dest.flush(); dest.close(); } zis.close(); } } 4
5.
コード例 Unzip の問題点 (A)
解凍後のサイズをチェックしていない (B) 例外 ArrayIndexOutOfBoundsException が発生 する可能性がある (C) 既存ファイルを上書きする可能性がある (D) その他? これらの問題点を解決せよ!! 5
6.
コード例 Unzip の問題点 (A)
解凍後のサイズをチェックしていない (B) 例外 ArrayIndexOutOfBoundsException が発生 する可能性がある (A)の対応 (C) 既存ファイルを上書きする可能性がある セミナ内で説明済み (D) その他? 6
7.
コード例 Unzip の問題点 (A)
解凍後のサイズをチェックしていない (B) 例外 ArrayIndexOutOfBoundsException が発生 する可能性がある (C) 既存ファイルを上書きする可能性がある (B)の対応 (D) その他? 例外 ArrayIndexOutOfBoundsException の発生原因は? ⇒ コマンドライン引数にファイル名が与えられることを想定して いるため, 引数がない場合に例外が発生する ⇒ 引数の数をチェックしましょう 7
8.
コード例 Unzip の問題点 (A)
解凍後のサイズをチェックしていない (B) 例外 ArrayIndexOutOfBoundsException が発生 する可能性がある (C) 既存ファイルを上書きする可能性がある (B)の対応 (D) その他? 例外 ArrayIndexOutOfBoundsException の発生原因は? ⇒ コマンドライン引数にファイル名が与えられることを想定して いるため, 引数がない場合に例外が発生する ⇒ 引数の数をチェックしましょう あるいは… 引数の数だけ処理を繰り返す (引数がなければそのまま終了) 8
9.
コード例 Unzip の問題点 (A)
解凍後のサイズをチェックしていない (B) 例外 ArrayIndexOutOfBoundsException が発生 する可能性がある (C) 既存ファイルを上書きする可能性がある (D) その他? (C)の対応 ファイル出力の前に, すでにファイルが存在していないかどう かチェックする 9
10.
修正コード例(1/2) class Unzip {
static final int TOOBIG = 10000000; static final int BUFFER = 512; public static void main(String[] args) throws FileNotFoundException,IOException { if (args.length <= 0) return; BufferedOutputStream dest = null; ZipInputStream zis = new ZipInputStream(new BufferedInputStream(new FileInputStream(args[0]))); ZipEntry entry; while ((entry = zis.getNextEntry()) != null){ if (entry.getSize () > TOOBIG) { throw new IllegalStateException( “uncompressed size too huge: “ + entry.getName()); } if (entry.getSize() == -1){ throw new IllegalStateException(“uncompressed size unknown”); } (…次のページに続く…) 10
11.
修正コード例(2/2) (… 前のページから…)
System.out.println(“Extracting: “ + entry); int count; byte data[] = new byte[BUFFER]; Path path = FileSystems.getDefault().getPath(entry.getName()); Files.createFile(path); // exception if file already exists FileOutputStream fos = new FileOutputStream(entry.getName()); dest = new BufferedOutputStream(fos, BUFFER); while ((count=zis.read(data,0,BUFFER)) != -1){ dest.write(data, 0, count); } dest.flush(); dest.close(); } zis.close(); } } 11
12.
Hands-on Exercise(2) ‣サンプルコード AltConst
を ‣修正しよう 12
13.
Q. 以下のコードの問題点は何か? class AltConst
{ int i; AltConst(){ this(10); } AltConst(int i0){ if (checkarg(i0)) { this.i = i0; } } boolean checkarg(int i) throws IllegalArgumentException { if (i<0 || 100<i) { throw new IllegalArgumentException("arg should be positive < 100."); } return true; (A) コンパイルエラーに なる } } (B) checkarg() による引数のチェックは役に立たない (C) コンストラクタが二つ定義されている (D) フィールド i に初期化子がない 13
14.
A. 以下のコードの問題点は何か? class AltConst
{ int i; AltConst(){ this(10); } AltConst(int i0){ if (checkarg(i0)) { this.i = i0; } } boolean checkarg(int i) throws IllegalArgumentException { if (i<0 || 100<i) { throw new IllegalArgumentException("arg should be positive < 100."); } return true; (A) コンパイルエラーに なる } } (B) checkarg() による引数のチェックは役に立たない (C) コンストラクタが二つ定義されている (D) フィールド i に初期化子がない 14
15.
A. 以下のコードの問題点は何か? AltConst のサブクラスをつくることにより,
checkarg() による チェックの後でフィールド i の値を変更できる. class attack extends AltConst { attack(int arg) { super(); this.i = arg; } public static void main(String[] args) { AltConst a = new attack(101); System.out.println("attack.i: " + a.i); } } 15
16.
A. 以下のコードの問題点は何か? AltConst のサブクラスをつくることにより,
checkarg() による チェックの後でフィールド i の値を変更できる. class attack extends AltConst { attack(int arg) { super(); サブクラス化による攻撃への対策を this.i = arg; 行え!! } public static void main(String[] args) { AltConst a = new attack(101); System.out.println("attack.i: " + a.i); } } 16
17.
サブクラス化による攻撃への対策 A) サブクラスをつくれないように final
ク ラスにする B) 初期化後の i フィールドを変更されない よう final 宣言あるいは private 宣言する B)の場合, checkarg() もオーバーライ ドされないように final 宣言すべし 17
18.
Altconst クラスに対するコメント
そもそも checkarg() メソッドって検証成 功で true を返し, 検証失敗では例外を投 げるってなんかアンバランスだよね. 検証結果を true/false で返すか, void型の メソッドにして検証失敗のときは例外を 投げるってしたほうがきれいだよね. 例外を投げるタイプだと, オブジェクトの 初期化が途中終了しちゃうからファイナ ライザ攻撃の危険あるかもね. 18
Download