| SECURITY 541 | |||
Secure Coding in Java/JEE: |
|||
| 日 程 | 4日間 | CPE ポイント |
24 point (6CPE/日) |
| 定 員 | 50名 (同時通訳、日本語版テキスト使用) | 講師 | Frank Kim(SANS認定インストラクター) >> 講師プロフィール |
| 講義時間 | 9:00 ~ 17:00 (8:30 開場) | ||
受講に必要なPC環境
SEC 541 PC設定詳細
SANSトレーニング Hands-Onセッションを有意義に受講いただくには、以下の環境のノートPCが必要です。 ノートパソコンのハードウェア要件
Vmware
実習でVMWareを使用します。無償のVMWare Player 2.0以上か、市販のVMWare Workstation 6.0以上を事前にインストールしておいてください。VMWare Playerは無償ダウンロード可能です。 Java参考文献
演習中の参考文献として、「Java SE 6 and Java EE 5 Javadoc documentation」のダウンロードを推奨します(Jacadocライセンスは再配布を禁止しています)。同文書はjava.sun.com.からダウンロードできます。 |
|||
| 開催予定のないコースは、オンサイト(特設開催)により実施可能です。ご相談ください。 | |||
従来、偉大なプログラマはそのコードの正確性、有効性、信頼性において際立ってきました。それは現在でも変わりませんが、これらの正確性、有効性、信頼性は、今やセキュリティ上必須となりました。大手金融機関や政府機関などでは、内部の開発チームやアウトソーシング企業のプログラマに対し、信頼できるサードパーティ主催の試験を受験して安全なコーディングスキルと知識に精通し、かつ実践できることを証明しなければ業務を行わさせないものとしています。ソフトウェア購入層の方々の中でも、この動きに同調する方は毎週のように増える一方です。
購入層や経営層は、こうした動きに対するプログラマの迅速な対処を求めています。「安全なコーディングを学べる場所は?」この独自のSANSコースは、サードパーティからJava/Java EEの安全なコーディングにおける、最低限のスキルとされているテクニックと知識を学習します(これら最低限のスキルに関するドキュメントは、www.sans.org/gssp/で入手できます)。
少なくとも1年のJEEフレームワークを用いた業務経験があり、Java言語とWeb技術に精通している方に適したコースです。
基本スキルに関するドキュメント内容の3分の2の量にあたる、膨大なスキルと知識を網羅した総合コースです。高度な理論を学ぶのではなく、プログラミングについて実践的な内容を学習します。Javaアプリケーションのセキュリティ向上のために、実際に利用されるコードを分析し、その際に利用されるツールを用い、アプリケーションの構築を通じて実践的なスキルを身に付けます。
何百もの開発者にアプリケーションセキュリティについて指導を重ねてきた後、私達はこの重要な課題について教えることの有効性を悟りました。開発者は、実践を通じてその知識レベルを試される必要があります。ある問題が異なるシナリオで展開された場合でも対応できるよう、様々なソリューションを持ち合わせていなければならないからです。受講生は、各職場に持ち帰ることができるようなアプリケーションの具体例を提示されることによって、現在および将来のプロジェクトに適用できる強固な入力値チェックのテクニックを身につけます。不正な入力を用いた攻撃方法、そしてそれらに対抗する方法を知ることで、Webアプリケーションへの攻撃の75%以上を回避するのに不可欠なツールを入手したも同然です。この画期的なコースに参加してJavaアプリケーションを保護する知識を身につけてください。
不正なデータ入力値チェックは、現在最も一般的なWebアプリケーション脆弱性の根源です。クロスサイトスクリプティング(XSS)は、最も広く報じられるWebアプリケーションが抱える問題となりました。Webアプリケーションセキュリティに関する団体WASC(Web Application Security Consortium)が、インターネット上の80%以上のWebサイトがこの攻撃に対して脆弱であると評価するに至っています。
初日は、XSS、CSRF、SQLインジェクション、HTTPレスポンス分割やパラメータ操作といった、最も一般的なWebアプリケーション脆弱性について学習します。こういった問題の発見方法と、稼働中のアプリケーションでの再現方法を学習します。そして、Javaコードの中で実際にこうした脆弱性を修正する様々な方法を試行します。
本コースは演習中心です。一般的な攻撃の回避を可能にする、実践的な入力値チェックのテクニックを利用することができます。
十分でない認証やセッション管理は、システムの完全性を侵害する可能性をはらむ日常的な課題 です。そのような脆弱な認証保護は、最も機密性の高い情報、すなわちあなた自身の個人情報をアタッカーの前に晒す可能性があります。こうした脆弱性を作り込まないための、 強固な認証保護の設計および コーディングのためにできることを一から学習します。
JEEコンテナベースの認証の使い方と、ベーシック認証およびフォームベース 認証の設定方法 学習します。Springフレームワークで広く利用される、 評価の高いセキュリティシステムであるAcegiについても学習します。本コースは演習中心です。最後は、適切な認証コントロールによって保護されたアプリケーションに、学習した全てを投入します。不正なアクセスコントロールは、承認されていないユーザによる機密情報や機能へのアクセスを促します。本モジュールでは、承認、アクセスコントロールリスト、Java認証承認サービス(JAAS)について学習します。ロギング、およびその重要性に匹敵する、Javaの例外処理を使用したエラーへの対処法やtry/catch/finally構造を含む、その他のセキュリティトピックについても触れます。演習では、Java Secure Socket Extension (JSSE)とJava Cryptography Architecture(JCA)を使用して、通信中および保管されているデータの両方を暗号化するコード記述も実践します。レースコンディション、およびJavaの同期特性を利用し、それらを回避する方法についても学習します。
Javaは、多くのミッションクリティカルなアプリケーションの開発に有効な言語です。そのため、セキュリティ特性およびJava言語そのものやJavaランタイム環境(JRE)の実装について理解することが不可欠です。大量の演習を通じて、セキュリティマネージャやコード権限の管理方法、JARファイルのシーリング方法と署名方法について学習します。演習事例から、安全なコードを記述する際に留意すべきStringクラスの不変性、integer型およびdouble型のオーバーフロー、数値に関するJava言語の特性についても学習します。