TOP業界裏話注目ニュース徒然コメントリンク紹介
『外資系企業に住む住人の視点からIT業界の出来事を伝えます。』

誰もが考えていながら書いてこなかった、パワーポイント・ワード・エクセルのすべてをカバーする資料作成テクニックが1冊の本になりました。2014年8月20日に発売され、丸善等の大手書店・amazon等のオンライン書店の週間ベストテンにランクインしています。
※購入頂きました皆様、ありがとうございます。
http://www.amazon.co.jp/o/ASIN/4820748998/

siryou_cover.jpg
類書では紙面やボリュームの都合から実現していなかった「外資系コンサルが実践する資料作成の基本」を、本書は280ページの大ボリュームでまとめました。資料作成のプロでもある外資系コンサルタントが日々実践している、無駄なく、完成度の高い資料を作成するための王道のスキル、テクニックが網羅的に70項目にまとめられています。私が新人・中堅コンサル向けに教えている「あたりまえ」だけどなかなか実践できない大切な基本スキルやテクニックをステップごとに図解を交えてわかりやすく説明します。


【吉澤準特の本:累計7万部以上】
外資系コンサルの仕事を片づける技術』はロングセラーで重版多数
フレームワーク使いこなしブック』はロングセラーで重版多数
兄弟本の『ビジネス思考法使いこなしブック』はロングセラーで重版多数

【吉澤準特の過去配布レポート】
「外資系コンサルの仕事を片づける技術」特別抜粋版のダウンロード
「最新会議運営の基本と実践がよ〜くわかる小冊子」のダウンロード
できる人の9つの法則
コンサルタント直伝!コミュニケーションのプロになれる!


IT業界の裏話(まぐまぐ殿堂入りメルマガ)へ
メルマガ登録ならコチラ メルマガ解除ならコチラ
メールアドレス:
メールアドレス:



2012年12月20日

Web技術者が知っておくべき9つの脅威とその対策
このエントリーを含むはてなブックマーク

インターネット上には様々な脅威が溢れていますが、特に、ネット上でサービスを提供する側にとって恐ろしいのは、自分たちのサービスから利用者の個人情報を抜き取ろうという悪意の第三者による不正情報アクセスです。

Webでサービスを提供するシステムを構築した経験がある人ならわかると思いますが、セキュリティへの感度が低いアプリ技術者が開発したWebシステムというのは、本当に抜け穴だらけです。入力フォームひとつとっても、まともなバリデーションが設定されておらず、フォーム欄にSQLコマンドを入力すると、コマンド結果をきっちり返してしまうという杜撰なシステムが数多とあります。

しかし、予算をあまり割くことができないWeb開発において、Webセキュリティに優れた技術者を確保しろと言われても、コスト的に無理だと言わざるを得ない現場も多いことでしょう。

そんなジリ貧な現場で頑張らざるを寝ない皆さんにとって朗報なのが、IPA(情報処理機構)が公開している「安全なウェブサイトの作り方」というPDFファイルです。

『脆弱性対策:安全なウェブサイトの作り方』
http://www.ipa.go.jp/security/vuln/websecurity.html

以下、目次をご覧ください。

 <ウェブアプリケーションのセキュリティ実装>

1) SQL インジェクション
2) OS コマンド・インジェクション
3) パス名パラメータの未チェック
/ディレクトリ・トラバーサル
4) セッション管理の不備
5) クロスサイト・スクリプティング
6) CSRF
(クロスサイト・リクエスト・フォージェリ)
7) HTTP ヘッダ・インジェクション
8) メールヘッダ・インジェクション
9) アクセス制御や認可制御の欠落

Web開発技術者にとって一度は聞いたことのあるセキュリティ用語がずらっと並んでいます。良識ある技術者なら「これくらい知っていて当然」と思うのかもしれませんが、では中身を他の人にちゃんと説明できるでしょうか。具体的な実装対策、リスクを軽減するための方法も含めるなら、説明できる人は一握りの人しかいないと思われます。

このPDFファイルには、それらが図や構文入りで記載されていますし、実装の失敗例も構文付きで解説されているので、はじめてWeb開発に取り組む人でも、いきなりセキュリティ専門家に近い目線で実装していくことが可能です。

せっかくなので、前述した『Web開発における9つの脅威』について解説します。


1) SQL インジェクション
データベースと連携したウェブアプリケーションの多くは、利用者からの入力情報を基にSQL 文(データベースへの命令文)を組み立てています。ここで、SQL 文の組み立て方法に問題がある場合、攻撃によってデータベースの不正利用をまねく可能性があります。

脅威の例:
- データベースに蓄積された非公開情報の閲覧
- データベースに蓄積された情報の改ざん、消去
- 認証回避による不正ログイン
- ストアドプロシージャ等を利用したOS コマンドの実行

根本解決:
・SQL 文の組み立ては全てプレースホルダで実装する。
・SQL 文の組み立てを文字列連結により行う場合は、エスケープ処理等を行うデータベースエンジンのAPI を用いて、SQL 文のリテラルを正しく構成する。
・ウェブアプリケーションに渡されるパラメータにSQL 文を直接指定しない。


2) OS コマンド・インジェクション
ウェブアプリケーションによっては、外部からの攻撃により、ウェブサーバのOS コマンドを不正に実行されてしまう問題を持つものがあります。

脅威の例:
- サーバ内ファイルの閲覧、改ざん、削除
- 不正なシステム操作
- 不正なプログラムのダウンロード、実行
- 他のシステムへの攻撃の踏み台

根本解決:
・シェルを起動できる言語機能の利用を避ける。
・シェルを起動できる言語機能を利用する場合は、その引数を構成する全ての変数に対してチェックを行い、あらかじめ許可した処理のみを実行する。


3) パス名パラメータの未チェック/ディレクトリ・トラバーサル
ウェブアプリケーションの中には、外部からのパラメータにウェブサーバ内のファイル名を直接指定しているものがあります。このようなウェブアプリケーションでは、ファイル名指定の実装に問題がある場合、攻撃者に任意のファイルを指定され、ウェブアプリケーションが意図しない処理を行ってしまう可能性があります。

脅威の例:
- サーバ内ファイルの閲覧、改ざん、削除

根本解決:
・外部からのパラメータでウェブサーバ内のファイル名を直接指定する実装を避ける。
・ファイルを開く際は、固定のディレクトリを指定し、かつファイル名にディレクトリ名が含まれないようにする。


4) セッション管理の不備
ウェブアプリケーションの中には、セッションID(利用者を識別するための情報)を発行し、セッション管理を行っているものがあります。このセッションID の発行や管理に不備がある場合、悪意のある人にログイン中の利用者のセッションID を不正に取得され、その利用者になりすましてアクセスされてしまう可能性があります。
また、推測や盗用以外に、セッション管理の不備を狙ったもう一つの攻撃手法として、「セッションID の固定化(Session Fixation)」と呼ばれる攻撃手法があります。悪意ある人があらかじめ用意したセッションID を、何らかの方法で利用者に送り込み、利用者がこれに気付かずにパスワードを入力するなどしてログインすると起こりうる問題です。悪意のある人がこの攻撃に成功すると、あらかじめ用意したセッションID を利用し、利用者になりすましてウェブサイトにアクセスすることができてしまいます。

脅威の例:
- ログイン後の利用者のみが利用可能なサービスの悪用
- ログイン後の利用者のみが編集可能な情報の改ざん、新規登録
- ログイン後の利用者のみが閲覧可能な情報の閲覧

根本解決:
・セッションID を推測が困難なものにする。
・セッションID をURL パラメータに格納しない。
・HTTPS 通信で利用するCookie にはsecure 属性を加える。
・ログイン成功後に、新しくセッションを開始する。
・ログイン成功後に、既存のセッションIDとは別に秘密情報を発行し、ページの遷移ごとにその値を確認する。


5) クロスサイト・スクリプティング
ウェブアプリケーションの中には、検索のキーワードの表示画面や個人情報登録時の確認画面、掲示板、ウェブのログ統計画面等、利用者からの入力内容やHTTP ヘッダの情報を処理し、ウェブページとして出力するものがあります。ここで、ウェブページへの出力処理に問題がある場合、そのウェブページにスクリプト等を埋め込まれてしまいます。

脅威の例:
- 本物サイト上に偽のページが表示される
- ブラウザが保存しているCookie を取得される
- 任意のCookie をブラウザに保存させられる

根本解決:
(HTML テキストの入力を許可しない場合)
・ウェブページに出力する全ての要素に対して、エスケープ処理を施す。
・URL を出力するときは、「http://」やhttps://」で始まるURL のみを許可する。
・<script>...</script> 要素の内容を動的に生成しない。
・スタイルシートを任意のサイトから取り込めるようにしない。

(HTML テキストの入力を許可する場合)
・入力されたHTMLテキストから構文解析木を作成し、スクリプトを含まない必要な要素のみを抽出する

(全てのウェブアプリケーションに共通の対策)
・HTTPレスポンスヘッダのContent-Typeフィールドに文字コード(charset)を指定する。


6) CSRF (クロスサイト・リクエスト・フォージェリ)
ウェブサイトの中には、サービスの提供に際しログイン機能を設けているものがあります。ここで、ログインした利用者からのリクエストについて、その利用者が意図したリクエストであるかどうかを識別する仕組みを持たないウェブサイトは、外部サイトを経由した悪意のあるリクエストを受け入れてしまう場合があります。このようなウェブサイトにログインした利用者は、悪意のある人が用意した罠により、利用者が予期しない処理を実行させられてしまう可能性があります。

脅威の例:
- ログイン後の利用者のみが利用可能なサービスの悪用
- ログイン後の利用者のみが編集可能な情報の改ざん、新規登録

根本解決:
・処理を実行するページをPOST メソッドでアクセスするようにし、その「hidden パラメータ」に秘密情報が挿入されるよう、前のページを自動生成して、実行ページではその値が正しい場合のみ処理を実行する。
・処理を実行する直前のページで再度パスワードの入力を求め、実行ページでは、再度入力されたパスワードが正しい場合のみ処理を実行する。
・Referer が正しいリンク元かを確認し、正しい場合のみ処理を実行する。


7) HTTP ヘッダ・インジェクション
ウェブアプリケーションの中には、リクエストに対して出力するHTTPレスポンスヘッダのフィールド値を、外部から渡されるパラメータの値等を利用して動的に生成するものがあります。たとえば、HTTP リダイレクションの実装として、パラメータから取得したジャンプ先のURL 情報を、Location ヘッダのフィールド値に使用する場合や、掲示板等において入力された名前等をSet-Cookie ヘッダのフィールド値に使用する場合等が挙げられます。このようなウェブアプリケーションで、HTTP レスポンスヘッダの出力処理に問題がある場合、攻撃者は、レスポンス内容に任意のヘッダフィールドを追加したり、任意のボディを作成したり、複数のレスポンスを作り出すような攻撃を仕掛ける場合があります。

脅威の例:
- クロスサイト・スクリプティング攻撃により発生しうる脅威と同じ脅威
- 任意のCookie 発行
- キャッシュサーバのキャッシュ汚染

根本解決:
・ヘッダの出力を直接行わず、ウェブアプリケーションの実行環境や言語に用意されているヘッダ出力用API を使用する。
・改行コードを適切に処理するヘッダ出力用API を利用できない場合は、改行を許可しないよう、開発者自身で適切な処理を実装する。


8) メールヘッダ・インジェクション
ウェブアプリケーションの中には、利用者が入力した商品申し込みやアンケート等の内容を、特定のメールアドレスに送信する機能を持つものがあります。一般に、このメールアドレスは固定で、ウェブアプリケーションの管理者以外の人は変更できませんが、実装によっては、外部の利用者がこのメールアドレスを自由に指定できてしまう場合があります。

脅威の例:
- メールの第三者中継

根本解決:
・メールヘッダを固定値にして、外部からの入力はすべてメール本文に出力する。
・メールヘッダを固定値にできない場合、ウェブアプリケーションの実行環境や言語に用意されているメール送信用API を使用する。
・HTML で宛先を指定しない。


9) アクセス制御や認可制御の欠落
ウェブサイトの中には、運営者のセキュリティに対する認識のなさから、不適切な設計で作成されたウェブサイトが運用されていることがあります。

脅威の例:
- 不正ログイン助長

根本解決:
・アクセス制御機能による防御措置が必要とされるウェブサイトには、パスワード等の秘密情報の入力を必要とする認証機能を設ける。
・認証機能に加えて認可制御の処理を実装し、ログイン中の利用者が他人になりすましてアクセスできないようにする。


今回紹介したPDFファイルには、前述の脅威に対するセキュリティ対策(ウェブサーバ、DNSサーバ、ネットワーク)などが続いています。導入している企業も増えたWAF(Web Application Firewall)についても取り上げられているので、Webセキュリティ実装の現状を具体的に把握するのに有用です。

Webアプリケーション開発の皆様、特にインターネット上で利用されるサービスを開発している方は、この文書をいますぐダウンロードして、穴が開くまで読み込むことをお勧めします。

posted by 吉澤準特 at 22:12 | Comment(0) | TrackBack(0) | 業界裏話





【IT業界の裏話】過去コラム(No.1-337)
[ TOP ]IT業界の裏話

▼ IT業界の人々
「内製率を高めたい」のに「世界...
人の話を聞かないIT技術者の...
コンサルを目指す学生との対話...
IT業界、悪魔の辞典『ヒト編』
改善は「自分が楽をすること...
近くて遠きもの、プログラ...
IT企業が求めるプログラマ...
ITプロの3割が機密情報に...
10年働くソルジャーが欲しい...
PGとSEの仕事の面白みは何...
メールをすぐ返信する人、しな...
├ ITコンサルタントになる方法
我がコードは我流。我流は無...
欧米人がグリーンITに積極的...
実は変化など望んでいないエ...
├ 実はコミュニケーション能力に...
IT業界人は自分のドッグフード...
IT業界を不人気にした重鎮...
IT業界の変わった人々
電子メール禁止!ゼロメール...
名言集−運用フェーズ−
システム開発における名言集
失敗から学ぶ人、学ばない人...
SEに多いコーチングタイプは...
あなたのコーチングタイプは...
ITエンジニアの年収公開サ...
CTCは何の略?
会議は踊る、されど進まず...
繰り返し使われるメールアド...
遅刻しそうなので面接受け...
社内SEが人気を集めている...
サポートセンターの悪夢
IT業界に向いていない人
日本の夏、熱暴走の夏
客前で後ろから刺される
システム障害でクビが飛ぶ人
病欠って何ですか?
昼休みって何ですか?
Windowsに弱いIT技術者2
Windowsに弱いIT技術者
エンジニアは音を伸ばさない
話しにくい人
転職する人しない人
サイコロ一振りで給料を決め...
コンサルがお絵描き好きなの...
コンサルの報酬額って?
ITコンサルとSEの違い
SEのITリテラシ
公私のケジメ

▼ 仕事のやり方
客先で自分のPCが差し押さえられ...
「闇リリース」は善意でやっても...
新人のための7つのワークハック...
仕事の質を落とさないメソドロ...
組織が150人を超えると仕事の質...
世界最大のコンサル会社が最低...
IT業界、悪魔の辞典『SI編』
パワーポイントを紙芝居に貶め...
日本と米国の違い:ベンダーサ...
定時退社日に罪悪感を感じるIT...
ストレス厳しい職場を生き抜く...
おまえが呼ぶな、俺が呼ぶ「ハ...
ITプロレタリアートは多機能工...
図表をリッチにする5つのシン...
セクシーパワーポイント道
エンジニア御用達のIT誌
メールコミュニケーションを200.
├ ニッポン・エンジニア・レボリュ...
ITのプロって何ですか?
クールビズにも限界、冷房28...
真夏に長袖!なのに裸より涼...
測定しにくいものを測定する方...
山田さんの使いやすいシス...
SEの品格
コンサルの品格
ダメシステムはひとまず葬れ
眠気対策アイテムを考える
長篠メソッド
ITサポートがユーザーに教え...
資格の価値
出張先のホテルでインターネ...
お口の恋人
絶対に潰れない会社の悩み
エアエッジが必要になる理由
ハイプ曲線+キャズム理論
ユンケル黄帝液とスーパー黄...
一貫性が信用を生む
デビルズ・アドボケイト
落とし所を見定める
クライアントの良き友人たれ
キャンペーンでたたみかける
比較で暴利をごまかす
権威を活用する
ヒヤリハットの考え方
密談のタバコ部屋
「えいや」で決まる、魔法の言葉
海外テレカンの心得
IT業界でうまく生きていくコツ
ポンチ絵
仕事と作業の違い
上司に背を向けると怒られる?
ロケットスタートのススメ
人の考えを利用すべし
「見える」化
仕事の範囲
ワークシートのススメ
フローチャートの基本
仕事のやり方、片付け方
もんたメソッド
高橋メソッド
作業時間の見積り方
仁義を切る
アクションプラン
ミーティングと議事録
ベンダー選定の基準
ITと数学
レスポンシビリティとアカウンタ..
仕事の密度
リクルーティング
ドキュメントプロパティ
クライアントが納得する答え

▼ 仕事の環境
こんなのITのプロらしい仕事...
デスマーチに陥るお決まりパ...
外資が休暇を大切にする”真”...
HTMLメールとテキストメール...
ペーパーレス化が紙の無駄...
携帯電話のSDカードも禁止す...
人々は安定性と安全性の両方...
カタカナ会社はあやしい会社?
サービスリリースの落とし穴
IT業界の職場環境
IT業界の労働環境悪化は...
英語の必要性
正月出勤
年末年始の過ごし方
止められないコンピュータ
動かないコンピュータ
リリース直前の危機

▼ IT業界の動向
クラウドプレイヤーの名言集...
ネット史上最大の惨事、マイクロ...
ベンダー努力を台無しにするIFRS...
電子政府構想は無駄遣いの温床...
NASAのレポートがIT業界に与える...
中国当局によるプログラム盗用は...
コンサルもSIerもいらない内製...
中国のソースコード強制開示制度...
IBMは当て馬、Oracleが演出する...
PWCCが復活、ベリングポイントを...
IBMに喰われたSun、IT業界に訪れ...
ヤフー、自社データセンター所有...
自分が決めたルールに違反するGo...
SOAは死んだ
データセンターを巡るIT業界三...
├ リーマン破綻にみる米国証券業界...
IT史に輝く「すべったテクノロジ...
冷却を必要としない常温データ...
過去のIT業界10大予測を振り...
├ エンジニアよ、大志を抱け!
├ 黒箱襲来!コンテナがDC...
IT業界進化論: SIer 2.0を目...
IT業界がダメな理由を学生の...
IT業界温室効果の1/4はDC...
新生ニコニコ動画、ニコンド...
システム前線異常アリ!ゆう...
ニコニコ動画は文化の架け橋
Web2.0の向こう側〜サードリ...
セカンドライフだけで宣伝の...
国家戦争にも利用されるDDo...
DoCoMo2.0に見る情報格差...
DoCoMo2.0とWeb2.0
ITIL準拠という幻想
システム障害訓練の日を制...
WAONとnanacoが提携したい...
NTT東西の野望〜光回線編...
mixi招待制の綻び
Vistaが売れない理由
独自仕様に走り過ぎて泣き...
米国事情から見る日本のIT...
MVCからAjaxへ
外字ってなんですか?
Sunがx86サーバにIntel採用...
やりたい放題バッドウェア!
アウトソーシングという名の幻...
ソフトバンクモバイル、MNP停...
やっぱり止まったソフトバンク...
あらゆる意味でやり過ぎの...
経営者不在の日本版SOX法...
働いてみたいIT企業ランキン...
サーバの進化がデータセン...
_システム運用にRSSを活用
電力線通信が認可される日...
携帯メールはSSL通信よりも...
経営者不在の日本版SOX法...
Microsoftがサイトリニューア...
停電に脆弱なシステム
システムは誰のためにある...
ITILで運用が楽になる?
進化するコールセンター
Vacademy
IT業界にロングテールはある...
時間をお金で買う
あなたの猫はコンピュータウ...
個人情報保護法の範囲
あなたvsプロジェクト構成管理
ドラマ24にみるシステム最前...
次世代トレンドと枯れた...
日本版SOX法の施行に向け...
新しいWindowsはWeb決済...
地震に強いシステムをお持...
IT Doesn't Matter
SOAと分散コンピューティン...
各社で定義が異なるESB
おサイフケータイに見...(2/2)
おサイフケータイに見...(1/2)
子会社のシマを荒らす親会社
アインシュタインに学ぶソフ...
公職選挙法とインターネット
マイレージ負債
インターネットの舞台裏:海底...
ゼロ・クライアント
サーバのトレンド
外資系パッケージベンダー

▼ 業界の構造
対極にあるIT業界とコンビニ業...
IT業界は成果報酬型のサービス...
特定ベンダー以外をふるい落と...
欧米人なら爆笑するレベルと...
IT業界が詐欺師集団と言われる...
IT業界の格差社会、年収200...
├ 新基準導入でデスマーチがな...
公式では言えないニコニコ動...
├ コンサルとアプリ開発者、格差...
システム運用はIT業界の最下...
テストフェーズの呼び方は千...
2000年問題再来!?サマー..
減り続ける正社員の割合
労働局が偽装請負の抜け道...
会社貸与のPCは何年償却?
ITIL Foundationを2万円で買..
IT製品もイメージ重視?
お試しできない製品は売れない
IT業界は無免許制
どんぶり勘定
標準価格と提供価格
ソフトウェアライセンス
社外秘の秘密度合
偽装請負 
システム開発の流れ7 テス...
システム開発の流れ6 開発...
├ システム開発の流れ5 開発...
システム開発の流れ4
システム開発の流れ3
システム開発の流れ2
システム開発の流れ1
IT業界の構造

▼ 業界ランキング
SIerランキング2005
コンサルランキング2005

▼ その他
「幣社」という表現は相手を見下...
コミュニケーション力の不足は...
聞く耳を持たないYahooニュース...
黒デスクトップ事件に見る中国...
ITコンサルから見たブラッディ...
違法ダウンロードでネット追放...
就職難民=不出来な学生とい...
モンスターペアレント、会社襲来
あえて言おう、Yahooの掲示...
プログラマ向きなカフェをオー..
├ Japan Brog Award 2008を..
日立さん、IT大喜利をもう一度
インターネット上の信頼できる...
IT業界でありそうな迷惑勧誘...
倒産してもカネを要求する悪2...
倒産してもカネを要求する悪1...
├ 枯れた技術の水平思考で
├ ずさん極まりない環境保護ラ...
世界の奇妙な法律を集めた...
50万円のキーボード
洋楽を1曲10円で購入できる...
CNETとZDNetは同じ会社
情報の価値(情報商材)
コンパイル1回12時間の世界
楽天ポイント事件
楽天ポイント事件〜利用者...
楽天300ポイント付与で謝罪
ライブドア強制捜査
└ ネットワークベンダー