maitake219

とあるSEの徒然なるweblog

セキュリティスペシャリスト

自分の頭を整理するために書いてます。

セキュリティスペシャリスト

ログ

  • logoutを使うとログオフしたサーバのホスト名またはIPアドレスがログに含まれない要検証

改ざんへの対策

改ざんへの対策と言えば、改ざんの検知である。
検知するために、鍵付きハッシュ値を付加したり、ディジタル署名を付与する。

ルート証明書

プロキシへのアクセス

ブラウザがプロキシに最初に送信するHTTPリクエストは

CONNECT url:443 HTTP/1.1

である。

SQLインジェクション

ユーザの入力値をそのまま用いて動的にSQL文を組み立て、実行することで意図しない操作が行われる。
SQL文を組み立てる際はプレースホルダを用い、特殊記号をサニタイジングする。
JavaではprepareStatementを用いる。

メモリ管理

C++ではポインターでメモリに柔軟にアクセス出来る。
そのため、メモリ管理はプログラマの責任になる。

Javaではメモリ管理はJava VMが行う。
しかし、不要になったオブジェクトを破棄し、メモリ領域を解放するガーベジコレクションはCPUの負荷が高い。

メールの暗号化

  • 送信にはSMTP over SSL
  • 受信にはIMAP4 over SSL

アカウントロック

同一IDに対し、一定回数を超えるログインが試行された場合一定時間そのアカウントをロックする
これにより

プラグイン

pdfファイル等をブラウザで再生する場合、プラグインが用いられる。
不正な動作を引き起こすファイルをダウンロードさせ、それを処理する過程でプラグイン脆弱性を突くコードを実行することで、不正プログラムを実行させることが出来る。

Ajax

Referヘッダ

  • HTTPリクエストの任意の項目のため送信されない場合もある
    そのためReferヘッダを根拠に参照元を確認するような仕様は推奨されない

JSONP

抑止効果

  • 社内の内部不正を未然に防止するには 抑止効果 が重要
    • あえてセキュリティチェックしますとか
    • 送信メールはすべてチェックしていますとか

モニタリング

  • 情報にアクセスする権限をもった利用者による権限の濫用を防ぐコントロールとして有効
  • 条件設定が不適切であったり、システムの利用状況の変化に対応していなかったりする と形骸化してしまう

ネットワークモニタ

Webフィルタ

  • シグネチャで通信先が信用できるかを判断する
  • プロキシサーバに導入し、通信の出口対策を行う

HTTPS通信の監視

  • HTTPS通信では通信内容が暗号化されている
  • 最近ではIDSやWAFで秘密鍵を使ってHTTPS通信を監視出来るようになってきている

X-Forwarded-For

SSH

  • ポートフォワーディング により任意のポート間の通信を暗号化することが出来る

Cache-Control

  • HTTPヘッダ
  • no-storeを設定するとキャッシュにコンテンツが残留しない