お問い合わせ

コース概要

1. ITセキュリティと安全なコーディング

  • 基本的なセキュリティ原則:Javaアプリケーションにおける機密性・完全性・可用性(CIA)の考え方。
  • セキュアソフトウェア開発ライフサイクル(SSDLC):要件定義からデプロイまでセキュリティを統合する方法。
  • 安全なコーディングの考え方:多層防御、最小権限の原則、安全側に振れる既定値の設定など。
  • 標準的な脆弱性分類:CWE(共通脆弱性区分)やOWASPについての理解。

2. ウェブアプリケーションのセキュリティ

  • OWASP Top Tenの詳細解説:インジェクション、認証不備、機密情報の漏洩について具体的に分析。
  • クロスサイトスクリプティング(XSS):Java/JSPにおける反射型・保存型・DOMベース型XSSのケース紹介。
  • クロスサイトリクエストフォージェリ(CSRF):攻撃メカニズムとAnti-CSRFトークンの実装方法。
  • セッション管理:Cookieの安全な扱い方、セッションフィックスやタイムアウト設定について。
  • APIセキュリティ:RESTおよびSOAPエンドポイントを悪用から守るための方法。

3. ウェブサービスのセキュリティ

  • 従来型ウェブアプリとウェブサービスの比較:攻撃対象面の違いについて説明。
  • トランスポート層セキュリティ:Javaクライアントおよびサーバー向けSSL/TLS設定方法。
  • メッセージレベルでのセキュリティ:ペイロードの完全性と機密性を確保する手段。
  • 認証標準:OAuth 2.0、OpenID ConnectおよびJSON Web Token(JWT)の実装方法。

4. XMLセキュリティ

  • XMLパース時の脆弱性:XML外部エンティティ攻撃(XXE)を防ぐための手法。
  • XMLスキーマ検証:厳格な検証基準を適用する際のベストプラクティス。
  • XMLデジタル署名:改ざん防止のための署名実装法。
  • XML暗号化:コンテンツの暗号化方法に関する標準的なアプローチ。

5. Javaセキュリティの基礎

  • Javaセキュリティアーキテクチャ:java.securityパッケージおよびプロバイダ構成について説明。
  • セキュリティプロバイダ:Bouncy Castleなどの追加プロバイダのインストールと設定法。
  • アクセス制御:ポリシーファイルやパーミッション、そして従来型および現代的なセキュリティマネージャについて説明。
  • キーストア管理:証明書を格納するためのキーストアやトラストストアの作成と操作法。

6. 実践的な暗号技術

  • 暗号アルゴリズム概要:対称暗号(AES)、非対称暗号(RSA、ECC)およびハッシュ関数(SHA-256/512)。
  • 乱数生成:java.util.Randomと安全な乱数を生成するjava.security.SecureRandomの違いについて解説。
  • 鍵管理:鍵の生成、保存、周期的な更新手法について説明。
  • Java暗号アーキテクチャ(JCA):CipherMessageDigestMacクラスの利用法を解説。
  • Java暗号拡張機能(JCE):ポリシーファイルの役割および制限なく暗号化が可能な設定方法について説明。

7. Javaセキュリティサービス

  • JavaにおけるSSL/TLS:SSLSocketFactoryおよびHttpsURLConnectionの利用法。
  • 信頼マネージャ:プライベートPKI環境向けの信頼検証カスタマイズ方法。
  • 認証機構:プログラムから認証処理を行うAuthenticator.getDefault()の使い方。
  • X.509証明書解析:プログラム上でX.509証明書を読み取り分析する方法。

8. Java EEセキュリティ

  • 宣言型セキュリティ:web.xmlおよびアノテーションを用いた役割ベースのアクセス制御手法。
  • プログラムによるセキュリティ管理:HttpServletRequest.isUserInRole()getRemoteUser()の使い方。
  • JAAS(Java認証および承認サービス):login.conf設定方法およびLoginModule実装法について説明。
  • Servletセキュリティ:コンテナが管理するセキュリティ制約や各種認証方式(FORM、BASIC、DIGEST)の特徴と運用法。

9. 一般的なコーディングミスおよび脆弱性

  • 不安定なシリアライゼーション処理:ObjectInputStream利用時のリスクとセキュリティ検査の回避問題について説明。
  • コマンドインジェクション:OS上での実行に関する脆弱性対策法。
  • パストラバーサル:不正なファイル参照を防ぐための入力データの正規化方法。
  • リフレクション機能の悪用:java.lang.reflect利用時のリスクとアクセス制御回避問題について説明。
  • ハードコーディングされた認証情報:ソースコードから秘密鍵や資格情報を除去する方法。
  • 暗号実装時の誤り:ECBモード使用、脆弱な鍵選択、静的IV設定などによる問題点と解決策。

10. 学習リソース

  • 静的解析ツール:SonarQubeやCheckmarx、Fortifyといった自動スキャンが可能なツールの概要。
  • 動的解析ツール:Burp SuiteやOWASP ZAPを用いた実際的な分析手法について説明。
  • CVEデータベース:最新Javaフレームワークの脆弱性情報を把握・対応する方法。
  • 推奨参考資料:安全なコーディングに役立つ書籍やドキュメント、チェックリストの一覧。

要求

特に前提条件はありません。

 21 時間

参加者の人数


参加者1人あたりの価格

お客様の声 (4)

今後のコース

関連カテゴリー