javaについての参考サイト メモ

Oracle Java 発表

ラクルは2017年9月、JDKの提供サイクルとライセンス方式に関して、新たなリリース・モデルを発表しました。これらはJDK 9より一部が適用され、2018年9月に公開されたJDK 11で完全移行しました。新リリース・モデルはJDKの過去のリリース・モデルの課題を解決したものであり、ユーザーにより多くのメリットをもたらします。本記事では、新たな提供サイクルとライセンス方式の概要、およびオラクルによるJDKの有償サポートについて説明します。

www.oracle.com

Oracle JDKJDK違い

OpenJDKに、商用機能、デスクトップ機能を追加したものがOracle JDK Java 11からはOpenJDKもOracle JDKも機能的には同一

JDKとかの種類の解説記事

qiita.com

javaのサポートロードマップ

www.oracle.com

javaの今後について まず読んでおくとよい記事

www.publickey1.jp

セキュリティ対策ヘッダ tomcat

※ざっと検証したことをメモしてますので、間違いがあればご指摘ください。

検証環境 OS : CentOS7 tomact : 7.0.92

システム全体への設定方法

以下の設定を<tomcat設置ディレクトリ>/conf/web.xmlへ追加する

  <filter>
    <filter-name>SecurityFilter</filter-name>
    <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>SecurityFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

特定のコンテンツへの設定方法

以下の設定を<tomcat設置ディレクトリ>/webapps/<特定のディレクトリ>/WEB-INF/web.xmlへ追加する

  <filter>
    <filter-name>SecurityFilter</filter-name>
    <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>SecurityFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

設定結果

curl -I http://IPアドレス:ポート番号/
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Frame-Options: DENY               <-付与されたセキュリティヘッダ
X-Content-Type-Options: nosniff     <-付与されたセキュリティヘッダ
X-XSS-Protection: 1; mode=block     <-付与されたセキュリティヘッダ
Content-Type: text/html;charset=ISO-8859-1
Transfer-Encoding: chunked
Date: Mon, 14 Jan 2019 07:06:24 GMT

クロスサイトスクリプティング

クロスサイトスクリプティングとは

スクリプト注入問題が存在するサイトに対して、サイト間を横断して悪意のあるスクリプトを注入する攻撃。

被害例

悪意のあるサイトへユーザがアクセスした場合に、スクリプト注入問題がある標的サイトに対して以下のことが行われる可能性がある

  • ユーザのセッションIDが盗まれる
  • そのユーザの権限で、標的サイトに対して不正な動作が行われる
  • 偽のログイン画面を表示してアカウントを窃取する。
  • ユーザを外部の悪質なページにリダイレクトさせる。
  • ページ全体を偽のページに置き換える。
  • 意図しない商品の購入を行わせる。
  • フォームへの入力内容の窃取や改変
  • 本来は非表示(hidden属性)となっているデータを窃取したり、任意の値に変更する。
  • 住所やクレジットカード番号等の個人情報を別のサーバーに転送する。

SSL/TLS暗号化設定の覚書

  • 業務中に暗号化方式を確認するタイミングがあったのだがいまいちどれが何やら いまいちわからなかったので、少し書いて覚えることとしたい。

ガイドライン

SSLバージョン毎の脆弱性

  1. SSL2.0(1994)
  2. ダウングレード攻撃(最弱のアルゴリズムを強制的に使用させる)
  3. バージョンロールバック(SSL2.0を強制的に使用させる)

  4. SSL3.0(1995)

  5. POODLE(2014) 特定状況下でCBCモードを利用した際の、パディングチェックの脆弱性、回避策は現状なし

暗号アルゴリズム

鍵交換

  • RSA
  • DHE
  • ECDH
  • ECDHE

暗号化

  • RC4
  • Triple DES
  • AES
  • Camellia

Hash関数

暗号利用モード

ブロック暗号を利用して、ブロック長よりも長いメッセージを暗号化する

  • CBC(Cipher Block Chaining)

    • IBMが開発、平文の各ブロックは前の暗号文とのXORを取ってから暗号化される
    • 1ブロック前の暗号文を次の平文の暗号化にしようするため、暗号化の並列処理が不可
  • GCM(Galois/Counter Mode)

    • 認証付暗号
    • データ保護と認証の双方に利用可能  - ブロック長128ビットのブロック暗号に適用可能
    • 暗号化の並列処理が可能

覚え書き

セキュリティ対策機能ヘッダ

  • X-Frame-Options
  • X-Content-Type-Options
  • X-XSS-Protection

  • 設定例

    Apache HTTP Server(mod_headersモジュール使用)

    Header always append X-Frame-Options "SAMEORIGIN"; Header always append X-Content-Type-Options nosniff; Header always append X-XSS-Protection "1; mode=block";

Cookieを使用する場合のセキュリティ対策

  • Secure属性  HTTPSによる通信時のみCookieを webサーバに送信する
  • HttpOnly属性  webブラウザでクライアント側のスクリプト経由でCookieに保存されているデータを読み込みできなくなる

MIME タイプ

文書の性質や形式を示すために標準化されたもの IETF RFC 6838で定義及び標準化されている サーバが提供するファイルが、どのような種類のファイルであるのかをサーバ側で定めたもの

ブラウザは文書を処理する方法をきめるためにMIMEタイプを良く使用する サーバからの応答オブジェクトのヘッダーに正しくMIMEタイプを割り当てるように設定していることが重要

  • 構文

    top level type/subtype

  • text/plain text/html apolication/json application/javascript

利用される

静的解析に挑む前のおさらい

単語のおさらい

バイナリファイル

  • コンピュータ内に記録されているファイル全般のことを指して言う
  • 自分としては、実行ファイル(exe,dll,so,elf..)みたいなことを指すと思っていた

アセンブリ言語

  • 機械語を人間に読める形で表現した低水準言語
  • 静的解析では、デバッガを用いてこれらを読んで解析していく

ニーモニック

  • コンピュータが実行可能な機械語(マシン語)のプログラムを、人間が理解・記述しやすいように簡略化した英単語や記号の組み合わせに置き換えたもの

オペコード

  • 機械語の1個の命令の部分で、実行する操作 (operation) の種類を指定する部分のこと
  • 例: CPU→メモリ : PUSH     論理演算子  : AND、OR、XOR

オブジェクトコード

  • コンパイラソースコードを処理した結果生成される、コード生成の結果であるバイナリコードを含む中間的なデータ表現のファイル

アセンブラ

  • アセンブリ命令ニーモニックをオペコードに変換し、シンボル名をメモリ位置や他の実体に変換することでオブジェクトコードを生成する

ssg-5 firmwareアップデート

  • ・w・
    最近SSG-5を触る機会があったので、とりあえずメモを。
    ※とは言っても、以下のように販売+サポートは終了ですが。


  • Juniper NetworkのSSG/ISGシリーズ

    2015~2016年には販売が終了し、その後サポートが終了。

    http://www.juniper-ne.jp/blog/security/ssg-srx.html#SSGISG-2
    ちなみに、SSG5の後継機はSRX300。

     

  • 知らなかったこと
    ★イメージ認証キー
      ジュニパーネットワークス社では、不正に改ざんされた ScreenOSが
      インストールされないよう、ファームウェ アやブートローダ
      イメージ認証キーを設けている。
      2014 年 6 月以降に作成されたファームウェアおよ びブートローダでは、
      このイメージ認証キーが新しいものになっている。
      ※メインリリースでは、「6.3.0r18 以降」のバージョンが対象。
      これにより、以前のイメージ認証キーがインストールされている機器では、
      対象バージョンへのアップグレー ドが正常に完了しない可能性がある。
      ※確認方法
       コマンドを入力し、keyが「c」であれば旧イメージ認証キー
      ssg5-isdn-> exec pki test skey

      KEY1 N/A len =432
      308201ac02010002818100f~略~
      0c31e3f80b651 magic1 = f7e9294b magic2=0

      KEY2 N/A len =432
      308201ac02010002818100f~略~
      0c31e3f80b651 magic1 = f7e9294b magic2=0

      KEY3 N/A len =432
      308201ac02010002818100f~略~
      0c31e3f80b651 magic1 = f7e9294b magic2=0
      ssg5-isdn->

      




  • 手順
    GUI使用でサクサク設定

    1.イメージ認証キーの更新

    f:id:sefo1430:20170627004520p:plain


    2.firmwareのアップデート
    firmware update screenos」を選択し、「Load File」よりfirmwareを指定。
    f:id:sefo1430:20170627002054p:plain

    なんとこれだけ。

  • NATの設定
    「追記予定」