Submit Search
Java/Androidセキュアコーディング
10 likes
4,458 views
Masaki Kubo
Developers Summit 2012講演 タイトル:Java/Android セキュアコーディング 講演者:JPCERT/CC 久保 正樹
Technology
Read more
1 of 44
Download now
Downloaded 159 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
More Related Content
What's hot
(19)
PPTX
Androidプログラミング入門
OESF Education
PDF
PHPにおけるRIA事情と開発
konekto
PDF
どうなる?Windows 8時代の業務アプリ開発
Yuya Yamaki
PDF
HTML5など社内勉強会 Vol.11 - High Performance Web and iOS 6 WebKit
George Harada
PDF
Android api-levels
Kazuaki Ueda
PDF
2012 08-23 Mame Night Jenkins
Takayuki Okazaki
PDF
Jenkins ユーザ・カンファレンス 2012 東京 S406-5 : 開発者とディレクターの視点を変えていく方法
Takayuki Okazaki
PDF
WPF/Silverlight視点で視るMetroスタイルのXAML
Yuya Yamaki
KEY
Androidロボットサミットin京都
Kenichi Yoshida
PPTX
Androidアプリケーション応用 WebAPI開発
OESF Education
PDF
【16-B-7】TIDAコンソーシアム
Developers Summit
PDF
AndroidーiOS開発比較〜iOSエンジニアから見たAndroidのアレコレ〜
Takaaki Tanaka
PDF
RICOH THETA x IoT デベロッパーズ コンテスト 第2回クラウドAPIセミナー
contest-theta360
PDF
AndroidでDIxAOP
nfc research
PPTX
ngCore engine for mobage platform
Toru Yamaguchi
PPTX
Phone gap+javascriptスマホアプリ開発(入門編)
Monaca
PPTX
Androidアプリケーション開発入門
OESF Education
PDF
Parallel Technology
Visual Studio Users Group Japan
PDF
Androidアプリのストレージ戦略
Masahiro Hidaka
Androidプログラミング入門
OESF Education
PHPにおけるRIA事情と開発
konekto
どうなる?Windows 8時代の業務アプリ開発
Yuya Yamaki
HTML5など社内勉強会 Vol.11 - High Performance Web and iOS 6 WebKit
George Harada
Android api-levels
Kazuaki Ueda
2012 08-23 Mame Night Jenkins
Takayuki Okazaki
Jenkins ユーザ・カンファレンス 2012 東京 S406-5 : 開発者とディレクターの視点を変えていく方法
Takayuki Okazaki
WPF/Silverlight視点で視るMetroスタイルのXAML
Yuya Yamaki
Androidロボットサミットin京都
Kenichi Yoshida
Androidアプリケーション応用 WebAPI開発
OESF Education
【16-B-7】TIDAコンソーシアム
Developers Summit
AndroidーiOS開発比較〜iOSエンジニアから見たAndroidのアレコレ〜
Takaaki Tanaka
RICOH THETA x IoT デベロッパーズ コンテスト 第2回クラウドAPIセミナー
contest-theta360
AndroidでDIxAOP
nfc research
ngCore engine for mobage platform
Toru Yamaguchi
Phone gap+javascriptスマホアプリ開発(入門編)
Monaca
Androidアプリケーション開発入門
OESF Education
Parallel Technology
Visual Studio Users Group Japan
Androidアプリのストレージ戦略
Masahiro Hidaka
Viewers also liked
(10)
KEY
デブサミ2012 appinventorユーザー会
Takeaki Tada
PDF
Android最新技術動向(2012.2)
Makoto Anjo
PDF
実践Android Developer Testing
ussy
KEY
20120216 デブサミ 座談会
akihiro uehara
PDF
Javaプログラミングをスッキリ学ぶ10のコツ
Kiyotaka NAKAYAMA
PDF
Pythonによる機械学習入門〜基礎からDeep Learningまで〜
Yasutomo Kawanishi
PDF
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Yasutomo Kawanishi
PDF
【16-D-6】比べてわかるフィーチャーフォンとスマホのアプリ開発・運用のポイント
Developers Summit
PDF
Python入門 : 4日間コース社内トレーニング
Yuichi Ito
PDF
Pythonによる機械学習入門 ~Deep Learningに挑戦~
Yasutomo Kawanishi
デブサミ2012 appinventorユーザー会
Takeaki Tada
Android最新技術動向(2012.2)
Makoto Anjo
実践Android Developer Testing
ussy
20120216 デブサミ 座談会
akihiro uehara
Javaプログラミングをスッキリ学ぶ10のコツ
Kiyotaka NAKAYAMA
Pythonによる機械学習入門〜基礎からDeep Learningまで〜
Yasutomo Kawanishi
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Yasutomo Kawanishi
【16-D-6】比べてわかるフィーチャーフォンとスマホのアプリ開発・運用のポイント
Developers Summit
Python入門 : 4日間コース社内トレーニング
Yuichi Ito
Pythonによる機械学習入門 ~Deep Learningに挑戦~
Yasutomo Kawanishi
Ad
Similar to Java/Androidセキュアコーディング
(20)
PPTX
Cve 2013-0422
abend_cve_9999_0001
PDF
Javaセキュアコーディングセミナー東京第1回 講義
JPCERT Coordination Center
PPTX
セキュアコーディング方法論再構築の試み
Hiroshi Tokumaru
KEY
関ジャバ JavaOne Tokyo 2012報告会
Koichi Sakata
PDF
Javaセキュアコーディングセミナー東京第3回講義
JPCERT Coordination Center
PDF
Apache Struts2 における任意の Java メソッド実行の脆弱性
JPCERT Coordination Center
PDF
Javaセキュアコーディングセミナー東京第4回講義
JPCERT Coordination Center
PDF
Code Anything
Yoshitaka Kawashima
PDF
Scala conf2013
Takafumi Ikeda
PDF
第1回内容の振り返り
skowata
PDF
CERT コーディングスタンダードご紹介 (OSC2017@Osaka)
JPCERT Coordination Center
PDF
Outsmarting Smartphone Apps 2
Takahiro Yoshimura
PDF
SecureAssist Introduction
Asterisk Research, Inc.
PPT
SAStruts Seminar In Tripodworks
tripodworks
PDF
レガシーコード改善はじめました 横浜道場
Hiroyuki Ohnaka
PDF
Seasarプロジェクト徹底攻略
takezoe
PPTX
Survey and Analysis of ICS Vulnerabilities (Japanese)
Digital Bond
PDF
Javaセキュアコーディングセミナー東京第1回演習の解説
JPCERT Coordination Center
PDF
Javaセキュアコーディングセミナー東京第4回演習の解説
JPCERT Coordination Center
KEY
Java7再入門講座
Takafumi Yoshida
Cve 2013-0422
abend_cve_9999_0001
Javaセキュアコーディングセミナー東京第1回 講義
JPCERT Coordination Center
セキュアコーディング方法論再構築の試み
Hiroshi Tokumaru
関ジャバ JavaOne Tokyo 2012報告会
Koichi Sakata
Javaセキュアコーディングセミナー東京第3回講義
JPCERT Coordination Center
Apache Struts2 における任意の Java メソッド実行の脆弱性
JPCERT Coordination Center
Javaセキュアコーディングセミナー東京第4回講義
JPCERT Coordination Center
Code Anything
Yoshitaka Kawashima
Scala conf2013
Takafumi Ikeda
第1回内容の振り返り
skowata
CERT コーディングスタンダードご紹介 (OSC2017@Osaka)
JPCERT Coordination Center
Outsmarting Smartphone Apps 2
Takahiro Yoshimura
SecureAssist Introduction
Asterisk Research, Inc.
SAStruts Seminar In Tripodworks
tripodworks
レガシーコード改善はじめました 横浜道場
Hiroyuki Ohnaka
Seasarプロジェクト徹底攻略
takezoe
Survey and Analysis of ICS Vulnerabilities (Japanese)
Digital Bond
Javaセキュアコーディングセミナー東京第1回演習の解説
JPCERT Coordination Center
Javaセキュアコーディングセミナー東京第4回演習の解説
JPCERT Coordination Center
Java7再入門講座
Takafumi Yoshida
Ad
Recently uploaded
(10)
PDF
ABC2025S LT講演「世界の窓から Androidこんにちは2025」アプリ自動生成の将来?ロボティクスの夢再び?
嶋 是一 (Yoshikazu SHIMA)
PDF
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
PDF
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
PDF
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
PDF
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
PDF
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
PDF
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
PDF
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
PDF
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
ABC2025S LT講演「世界の窓から Androidこんにちは2025」アプリ自動生成の将来?ロボティクスの夢再び?
嶋 是一 (Yoshikazu SHIMA)
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
Java/Androidセキュアコーディング
1.
Java / Android セキュアコーディング入門 17-E-5
久保 正樹 JPCERTコーディネーションセンター 脆弱性アナリスト Developers Summit 2012
2.
自己紹介 §
久保 正樹(くぼ まさき)
[email protected]
§ 脆弱性アナリスト@JPCERTコーディネーションセンター § GSSP-Cプログラマ、ISO/IEC SC27 WG4 エキスパート § プログラミングとの出会いはコンピュータ音楽から。前職は ソニー(株)でVAIOのソフトウェア開発。退職後、ダートマス 大学で電子音響音楽修士。2005年からJPCERTコーディ ネーションセンターで情報セキュリティに従事。 Developers Summit 2012
3.
自己紹介 § 先月、本を出しました!
『Javaセキュアコーディング CERT/Oracle版』 http://www.amazon.co.jp/dp/4048860704 歌代 和正(監修) 久保 正樹, 戸田 洋三(翻訳) アスキー・メディアワークス(2012/1/27) Developers Summit 2012
4.
今日お話すること § モバイルアプリをとりまくセキュリティ問題 § セキュアコーディングの実践と3つの軸
§ Java / Android の世界の 脆弱性の実例とその修正 § Java セキュアコーディング(CERT/Oracle版)の 紹介 Developers Summit 2012
5.
Android/Javaの セキュリティのヘッドライン § スマホを狙ったワンクリックウェアを確認
§ Android端末を狙う不正プログラム、2012年 末までに12万個に!? § SMS 詐欺に利用される偽の Android マー ケットが再登場 § Javaの脆弱性を悪用する攻撃が急速に猛 威 § … プラットフォーム、マルウェア の話題が後を絶たない Developers Summit 2012
6.
マルウェアに狙われたAndroid § モバイルマルウェアの
63%がAndroid狙い § アプリを改ざんして配布 § 目的はお金 Developers Summit 2012
7.
モバイル端末に対する脅威 § 成熟度の異なるプラットフォーム § ユースケース、利用パターンの複雑化
§ 従来のウェブアプリの脅威と異なる § アプリ単体だけ考えていてはだめ § ウェブサービスとの連携 § C2DMとのインテグレーション Developers Summit 2012
8.
モバイルアプリのトップ10リスク(OWASP) §
M1 危険なデータ保存 § M2 不十分なサーバー側のコントロール § M3 トランスポート層の保護が不十分 § M4 クライアントサイドインジェクション § M5 お粗末な認証・認可の実装 § M6 セッション管理不備 § M7 信頼できない入力に基いたセキュリティ上の判断 § M8 サイドチャンネルでの情報漏えい § M9 暗号化メカニズムの欠陥 § M10 センシティブな情報の漏えい Developers Summit 2012
9.
§ モバイルアプリでどこに脅威があるのか、だ
いたい分かってきた § どう対応・修正するか…それが問題 Developers Summit 2012
10.
モバイルアプリの脆弱性 § Tencent
QQPhotoのパスワードハッシュ漏 えい § Kaixin001のコンタクトと平文パスワードを読 まれる問題 § 360 MobileSafeのSMSメッセージを読まれ る問題 § … 基本的な間違いが繰返されている… JVN iPedia を "Android"をキーワードに検索 Developers Summit 2012
11.
JPCERTに届けられたAndroidの脆弱性 § 2011/7〜約30件のアプリの脆弱性
§ Androidプラットフォームの脆弱性も数件 § 脆弱性の種類 § ファイル(DB)のパーミッション系 § Webview系 § JSONハイジャック系 Developers Summit 2012
12.
新しいプラットフォームで繰り返される 過去の過ち § Androidという新しいプラットフォーム
§ アプリ250億ダウンロード(2011) § 大きなマーケットシェア+金銭的価値=攻撃 § 繰り返される、過去の過ち § 暗号化鍵のハードコーディング: 42% § 乱数のエントロピー不足:61% § センシティブな情報の外部送信:39% § エラーメッセージにセンシティブな情報:6% Veracode, State of Software Security Report. 2011 Developers Summit 2012
13.
なぜ同じ過ちが繰り返されるのか? § プログラマが「知らない」
§ 古い脆弱性が新しい脆弱性 § プラットフォームが成熟過程 § 新たな脅威・攻撃手法が日々発見される世の 中 § 経験年数がものを言わない § サプライチェーン § 知っている(分かっている)けどできない! 数年前のウェブアプリ脆弱性のデジャヴ Developers Summit 2012
14.
何を知らないのが問題?
言語非依存のセキュアコーディング 1. 入力値検査、FileI/O Java言語特有のセキュアコーディング 2. OOP, Javaの型システム, expressionsなど 言語仕様、標準APIに関するコーディングテクニック 3. APIやプラットフォーム固有の セキュアコーディング J2EE/Android SDK,プラットフォームのセキュリティモデル Developers Summit 2012
15.
セキュアコーディング § プログラムのある種の欠陥が脆弱性を生む
§ 仕様/デザインの欠陥 § コーディングエラー § パターンがある § セキュアコーディングとは § プログラマが脆弱性を作り込まないコーディング を実践する § 言語、API、プラットフォームを安全に(安全なところだ け)使いこなす Developers Summit 2012
16.
1. 言語非依存の セキュアコーディング
Developers Summit 2012
17.
Apache StrutsのXSS(1) §
最近JVNで公開したstrutsの脆弱性 Developers Summit 2012
18.
Apache StrutsのXSS(2) import java.io.Serializable;!
問題のあるコード import java.util.Locale;! ! import org.apache.commons.lang.StringUtils;! ! // The Default ActionProxy implementation! … ! Protected DefaultActionProxy(…, String actionName, String methodName, …) {! LOG.debug("Creating an DefaultActionProxy for namespace "! + namespace + " and action name " + actionName);! " "! ! "this.actionName = actionName;! "this.namespace = namespace;! "this.executeResult = executeResult;! "this.method = methodName;! ActionNameとmethodNameは }! 外部から受け取ったデータ https://issues.apache.org/jira/secure/attachment/12472293/WW-35791-4.patch Developers Summit 2012
19.
Apache StrutsのXSS(3)
エラー画面の出力でXSS 攻撃者 webサーバ 細工された入力 http://...home.action?...action!login<script>alert(document.cookie)</ script>:cantLogin=some_value struts actionName = login<script>alert(document.cookie)</script> action1 methodName = cantLogin=some_value action2 action3 Developers Summit 2012
20.
Apache StrutsのXSS(4)
修正後 import org.apache.commons.lang.StringEscapeUtils;! import org.apache.commons.lang.StringUtils;! Apache Commons ライブラリの import java.io.Serializable;! escape*()を活用して無害化 import java.util.Locale;! ! // The Default ActionProxy implementation! …! Protected DefaultActionProxy(…, String actionName, String methodName, …) ! {! LOG.debug("Creating an DefaultActionProxy for namespace "! + namespace + " and action name " + actionName);! ! ! this.actionName = StringEscapeUtils.escapeHtml(actionName);! this.namespace = namespace;! this.executeResult = executeResult;! this.method = StringEscapeUtils.escapeJavaScript(StringEscapeUtils.escapeHtml(methodName));! }! https://issues.apache.org/jira/secure/attachment/12472293/WW-35791-4.patch Developers Summit 2012
21.
言語非依存のセキュアコーディングルール § 入力値検査
§ パス名は正規化してから検証する § ユーザ入力は無害化してからログに保存 § ファイル名やファイルパスにはASCII文字 セットのみを使用する § File I/O、NW I/Oの両端で互換性のある文 字エンコーディングを使う Developers Summit 2012
22.
2. JAVA言語特有の セキュアコーディング
Developers Summit 2012
23.
サブクラスの依存性を保つ(1)
extends java.util.Hashtable! java.util.Properties! extends put()! java.security.Provider! remove()! put()! entrySet()! remove()! JDK1.2で追加された entrySet()! (スーパークラスに対する変更) entrySet() Developers Summit 2012
24.
サブクラスの依存性を保つ(2) § スーパークラスに変更を加える場合(コード
の保守時)、サブクラスの不変条件が侵害さ れないよう考慮する Developers Summit 2012
25.
ボクシングとアンボクシングに注意(1) Q. このコードの問題は?
HashSet<Short> s = new HashSet<Short>();! for(short i=0; i<100;i++) {! s.add(i);! s.remove(i - 1);! } Developers Summit 2012
26.
ボクシングとアンボクシングに注意(2) 修正例: HashSet<Short>
s = new HashSet<Short>();! for(short i=0; i<100;i++) {! s.add(i);! s.remove((short)(i – 1));! } Developers Summit 2012
27.
条件演算子 ? :
(1) Q. System.out.println()は何を出力する? char alpha = ‘A’;! int i = 0;! System.out.println(true ? alpha : 0);! A System.out.println(true ? alpha : 65536);! 65 System.out.println(true ? alpha : i); 65 Developers Summit 2012
28.
条件演算子 ? :
(2) char alpha = ‘A’;! int i = 0;! System.out.println(true ? alpha : 0);! System.out.println(true ? alpha : 65536);! System.out.println(true ? alpha : i); § 型の評価はけっこう複雑 § alphaの型はchar型(符号無し16ビット) § 問題は3番目の式の型 § 0: char型で表現可能な定数式→char § 65536: charの最大値より1だけ大きい→二項格上げの 結果intに § i: 二項格上げの結果intに Developers Summit 2012
29.
Java/Androidでも整数オーバーフロー(1) mezzofanti/AssetsManager.java:!
問題のあるコード //@return the free space on sdcard in bytes! public static long GetFreeSpaceB() {! try {! String storageDirectory =! Environment.getExternalStorageDirectory().toString();! StatFs stat = new StatFs(storageDirectory);! return stat.getAvailableBlocks() * stat.getBlockSize();! }! catch (Exception ex) {! return -1;! }! } Developers Summit 2012
30.
Java/Androidでも整数オーバーフロー(2) (修正後) ! return (long) stat.getAvailableBlocks()
* stat.getBlockSize(); "! § StatFsクラスのgetAvailableBlocks()と getBlockSize()はintを返す! § 式の値はint! § intの最大値は2,147,483,647(およそ2GB)! § 2GB以上のSDカードを指すとアプリが起動しなかった! § long幅にキャストして演算する! Developers Summit 2012
31.
言語仕様は意外に知らないポイントがある § コードを見て直感的に想像するプログラム
の動作と、言語仕様上の動作が異なるケー スが少なくない § セキュリティに限らず、プログラマの意図通 り正しく動くプログラムを書くために必須の 知識 Developers Summit 2012
32.
3. APIやプラットフォーム固有の セキュアコーディング 〜ANDROIDアプリ編
Developers Summit 2012
33.
Androidアプリの脆弱性事例(1) 問題 不適切なファイルパーミッション 脅威 ユーザがキー入力したプライバシー情報等、センシティブな情報を攻撃者に盗ま
れる 原因 • ユーザのキー入力は sqlite データベースファイル X と Y に平文で保存される。 これらのファイルのパーミッションが他のアプリから読取り可能に設定されてい る。 • サードパーティ製ライブラリの中でデフォルトのパーミション (OPEN_READWRITE) でSQLiteのデータベースファイルを作成しており、そ れをそのまま使用しているのが原因。 #ls –al /data/data/com.XXX.android.XXXX drwxr-xr-x 1 10119 10119 2048 Aug 29 12:20 . drwxrwx--x 1 1000 1000 2048 Aug 29 12:19 .. drwxrwx--x 1 10119 10119 2048 Aug 29 12:20 cache drwxrwx--x 1 10119 10119 2048 Aug 29 12:20 databases drwxrwx--x 1 10119 10119 2048 Aug 29 12:20 files drwxr-xr-x 1 1000 1000 2048 Aug 29 12:19 lib -rw-r--r-- 1 10119 10119 5120 Aug 29 12:20 X -rw-r--r-- 1 10119 10119 5120 Aug 29 12:20 Y Developers Summit 2012
34.
Androidアプリの脆弱性事例(1) § SQLiteDatabase.openOrCreateDatabaseで指定
できるパーミションはすべてworld redable! § サードパーティ製ライブラリはこちらを使っていた § android.database.sqlite.SQLiteOpenHelper クラスのgetWritableDatabaseを呼び出すと、 § android.content.Context.openOrCreateDatabaseを呼んでく れる! § パーミッションを細かく設定できる(mode_privateとか)! Developers Summit 2012
35.
Androidアプリの脆弱性事例(2) 問題 ContentProviderの実装不備によるディレクトリトラバーサル 原因 Uriクラスは基本的に入力値検査しない。そのため、無効な入力が行われても、
例外をスローせず、ゴミデータを返す。 脅威 Uriオブジェクトは,URIを「/」でsegmentに分割し、各segmentをURLデコードす る。攻撃者はURIにURLエンコードした文字列を含めることで、デコードされた結 果生成される文字列をコントロールできる。 public ParceFileDescriptor openFile(Uri uri, String mode) {! File file = new File("/mnt/sdcard/XXX/", uri.getLastPathSegment()):! ! return ParceFileDescriptor.open(file, ParceFileDescriptor.MODE_READ_ONLY);! } public abstract String getLastPathSegment()! Returns the decoded last segment or null if the path is empty Developers Summit 2012
36.
Androidアプリの脆弱性事例(3) // getPathSegments()メソッドの実装から抜粋! !
pathを取得 2090 String path = getEncoded();! 2091 if (path == null) {! 2092 return pathSegments = PathSegments.EMPTY;! 2093 }! 2094! 2095 PathSegmentsBuilder segmentBuilder = new PathSegmentsBuilder();! 2096! pathから先頭の/を探す 2097 int previous = 0;! 2098 int current;! 2099 while ((current = path.indexOf('/', previous)) > -1) {! 2100 // This check keeps us from adding a segment if the path starts! 2101 // '/' and an empty segment for "//".! 2102 if (previous < current) {! pathを分割してデコード 2103 String decodedSegment! 2104 = decode(path.substring(previous, current));! 2105 segmentBuilder.add(decodedSegment);! 2106 }! 2107 previous = current + 1;! 2108 }! プラットフォーム側の問題とも言える… Developers Summit 2012
37.
セキュアコーディングの実践
Developers Summit 2012
38.
Java/Androidプログラマに求められる資質 Java セキュアコーディング CERT/Oracle版
1. 言語非依存の注意点 2. Java言語特有の注意点 + サポート コード解析ツール 3. APIやプラットフォーム固有の セキュアコーディングテクニック Developers Summit 2012
39.
Javaセキュアコーディングスタンダード CERT/Oracle版 https://www.jpcert.or.jp/java-rules/
Developers Summit 2012
40.
Javaセキュアコーディングスタンダード を活用するメリット § Java言語自体の理解が深まる
§ コード例に学ぶ § コード保守の負荷低減、品質安定、レビュー 短縮 Developers Summit 2012
41.
[宣伝1] Androidセキュアコーディングセミナー § 日時:3月14日 13:00〜19:00
@ 翔泳社 § タイトル『Androidセキュアコーディングセミナー〜 安全なアプリ開発のための基礎知識』 § Androidセキュリティー概論から実機を使ったセキュリ ティコードレビューまで § 脆弱性を作り込まないテクニック教えます! § 初回限定35,000円(税込36,750円) § お申込みは、CodeZineのHPで! http://codezine.jp/seminar/ Developers Summit 2012
42.
[宣伝2] 出張セミナーやってます § C/C++,
Javaのセキュアコーディング § [実績] 大手家電メーカー、ゲームメーカー § [時間、内容] ご相談に柔軟に応じます! § 全国どこへでも § お問い合わせ、ご用命は § セキュアコーディング担当:佐藤まで §
[email protected]
Developers Summit 2012
43.
一緒に安全なアプリ開発に 取り組みましょう!
Developers Summit 2012
44.
ご清聴ありがとうございました
Q&A Developers Summit 2012
Download