【211231】ホワイトハッカー入門 Webアプリケーションの重要性2

【211231】ホワイトハッカー入門 Webアプリケーションの重要性2

(1) 動的サービスの提供

Webアプリケーションにおいて動的サービスの提供には、ユーザーに合わせて表示する内容変更、入力値で表示内容を更新、リアルタイムに情報を更新、端末に応じて表示内容やデザインを変えたりする必要がある。

求められる仕様
① 認証しているユーザーに合わせた表示
② 入力した値による表示
③ リアルタイムな情報更新
④ 端末による表示の変更
必要な機能
① 外部からの入力値の利用
② さまざまな形式によるデータ通信
③ エンドポイントの技術の利用

上記のような機能を持たせるとさまざまな、Webアプリケーションの脆弱性につながる。

(2) 外部からの入力値を利用する問題点

Webアプリケーションに対する攻撃のほとんどは、リクエストパラメーターに攻撃文字列を注入する「インジェクション攻撃」の形をとる。
動的なWebアプリケーションの場合、外部からのパラメーターをプログラム動作のための引数として利用する。パラメーターの値をチェックしていないと内部で攻撃が成立し、意図しない動作を起こす危険がる。パラメーターの送信方法、攻撃が進化するなどで入力値のチェックも変わってゆくWebアプリケーションによっての脅威は入力値チェック不備により攻撃を許してしまうことである。
問題になっているのが、「セカンドオーダー(蓄積型)」と呼ばれる攻撃。
この攻撃は、入力時にチェックに引っからないように攻撃文字列を送り、一度データーベースに保存させて、その後、Webアプリケーションがそのデータを利用しようとした時に、攻撃が実行される。さまざまな攻撃があるため、攻撃の内容を理解してデータの再利用時も適切な入力値チェックを行う必要がある。

(3) さまざまな形式によるデータ通信の問題点

Ajax参考
https://hnavi.co.jp/knowledge/blog/ajax/

データのやりとりにSOAPやJSONといった方式が使われる。
HTML以外のデータのやり取りが行われるようになると、攻撃文字列もそれに合わせて変化する。レスポンスデータの処理方法やタイミングも変わってくるので、攻撃手法にも変化が生まれる。
シリアライズ、デシリアライズの問題も脆弱性として報告あり。
http://cloudcafe.tech/?p=2639

↓脆弱性解説(参考)
https://yamory.io/blog/about-insecure-deserialization/

(4) エンドポイントの技術を利用する問題点

動的なWebアプリケーションを実現するために最も利用されているのが、JavaScript と Cookie。

参考:JavaScript 基礎
https://www.kagoya.jp/howto/it-glossary/web/javascript/

参考:Cookie 基礎
https://www.soumu.go.jp/main_sosiki/joho_tsusin/security_previous/kiso/k01_cookie.htm

まとめ
① 動的なWebサービスの機能の多くはWebアプリケーション に依存している
② 安全なWebサービスの提供はWebアプリケーションにかかっている
③ 攻撃の多くはリクエストパラメーターに挿入されるインジェクション攻撃なので、入力値のチェックは必須
④ さまざまな形式のデータ送信によって攻撃手法は進化している。


いいなと思ったら応援しよう!