システムセキュリティ対策
概要
- システムで対応する事(セキュアなインフラ、セキュアなプログラミング)と運用で対応することに分かれる。
- 運用で対応する事には、PCI DSS のようなカード情報を扱う企業の条件についてふれる。
- その他のトピックとして「カード情報の非保持、非通過」というトレンドについても触れる。
- 他に利用している外部サービス(特にクラウド)のアカウントを厳重に管理していく必要がある。
セキュアなプログラミングで対応する
- 下記については、利用しているECサイトでどのような対策がされているか、網羅して頂きたい。
- 把握する方法としては、そもそも利用しているテクノロジーで防がれているもの、利用しているインフラで防がれているもの、 個別に対応を入れることによって防がれているものがある。
- また攻撃手法は年々色々な方法が増えているので、定期的にキャッチアップしていきたい。
- IPAの「安全なウェブサイトの作り方」は必読。
上記抜粋になるが、主要な点を列挙する
- SQL インジェクション
- クロスサイト・スクリプティング
- CSRF(クロスサイト・リクエスト・フォージェリ)
セッション管理の不備
OS コマンド・インジェクション
- パス名パラメータの未チェック/ディレクトリ・トラバーサル
- HTTP ヘッダ・インジェクション
- メールヘッダ・インジェクション
- クリックジャッキング
- バッファオーバーフロー
- アクセス制御や認可制御の欠落
- ウェブサイトの安全性向上のための取り組み
- ウェブサーバに関する対策
- DNS に関する対策
- ネットワーク盗聴への対策
- フィッシング詐欺を助長しないための対策
- パスワードに関する対策
- WAF によるウェブアプリケーションの保護
アプリケーションを構築するフレームワークで対応すべきこと
- 下記の攻撃手法は、アプリケーションを構築するフレームワークで対応されていることが望ましい。
- プログラミングで一行一行対応すると、人的なミスで脆弱性を内包してしまう可能性がある。
フレームワーク上できない場合は、該当箇所の重点的なレビューが必要になる。
フレームワークで対応すべきという観点では、昨年話題になった何件かの情報漏洩はApache Struts2 のフレームワーク、そのアップデート不足に起因するものがあった。フレームワークとして、そもそも攻撃手法を封じているものを使うほうが安全性が高い。
- 古いソフト、古いパッケージやOSS、プラグインを利用したままで、アップデートしていないケースで発生しているケースが多い。
- EC-CUBEやWordPressはプラグインを含めて、この脆弱性が豊富で常に最新へのアップデートが必要。
- イントラネットは外部侵入できなくなっているので、アップデートは不要という担当者もいるかもしれないが、昨今ではそのような考え方は企業のリスクを高めるものである。利用している環境のアップデートは本日では義務といえる。
SQLインジェクション
- SQLインジェクションについてはURLに含まれるパラメーターを通じて、不正なSQL(データベースへのアクセスを)を行うことを可能としてしまう。
- 脆弱性があるシステムだと、URLに https://ec.com/login?1=1 などのパラメータを投入すると、不正な情報が見えたり、他人でログインできたりする。
クロスサイトスクリプティング
- URLや投稿内容にJavaScriptを埋め込み、不正な情報通信や不正な挙動を発生させる。
- 脆弱性があるシステムだと悪意のあるユーザーが入力したJavaScriptが動作することによってサイトの情報が不正に変わったり、不正なサイトに飛ばされたり、Cookieを盗まれ、ログインされてしまう等が発生する。
- システムからHTMLを出力する際に内容を無害化することにより防ぐことが出来る。
アプリケーションを構築するインフラで対応すべきこと
Cookieにsecure属性を付与し、HTTPでCookieが通信されないようにする
- 重要なCookieはHTTPSのみでCookieが送信されるようにSecure属性をつける。
- HTTPで送信することによって、セッションIDなど重要な情報が漏洩する可能性があるのでHTTPSでのみ通信する。
CookieにHttpOnly属性を加え、 TRACE メソッドを無効化する。
- HttpOnlyが設定されたCookieは、HTML内のスクリプトからのアクセスが禁止されます。ウェブサイトにクロスサイト・スクリプティングの脆弱性が存在する場合等で、Cookieを盗まれるのを防ぐことが出来る。
カード情報の非保持、非通過
- カード情報を非保持、自社EC上のサーバーを非通過とすることが2018年5月より厳格に求められている。
- もしくは、 PCI DSSに準拠することが求められる。(後述)
PCI DSS の遵守要件を確認する
- 遵守要件自体は参考になるものなので、一読する事を推奨する。
アカウント管理
- クラウドのアカウント管理は多要素認証を利用する。
- ECサイトの管理画面などはIP制限や、証明書による制御を検討する。