1.SQLインジェクション
SQLとは、データベースに問い合わせる命令文(Q)を組み立てて(S)実行するためのコンピュータの言語(L)を指しています。SQLインジェクションとは、悪意のある攻撃者がこうした命令文の中に細工したSQLを埋込み、データベースを不正に操作できるようにしてしまうということです。
この攻撃を受けて2020年も既に企業で顧客情報を漏洩する被害が出ているということは、データベースであるサーバー自体を保守・管理するだけでは不十分であることがわかります。さらにデータベースにアクセスするWebアプリケーションのセキュリティ対策を講じることは大切です。主なセキュリティ対策は、アプリケーションのプログラム開発時にSQLインジェクション脆弱性が入らないような開発をすることが一般的な対策になります。また、運用側はWebアプリケーションの脆弱性を定期的にチェックし、パッチやアップデートが公開されたら迅速に適用することが大切です。
2.クロスサイト・スクリプティング
クロスサイト・スクリプティングとは、Webサイトで利用されるアンケート、掲示板、サイト内検索などの脆弱性やそれを悪用した攻撃です。Webサイトにおいて、きちんとセキュリティ対策がされていないと、悪意を持った命令が埋込まれてしまい、偽ページが表示されます。これには、cookie情報を利用した不正アクセスやHTMLタグを使った入力フォームによる情報収集、偽サイトを使ったフィッシング詐欺につながるので注意が必要です。実際、海外・国内を問わず最新の話題商品を利用しての偽サイトが増加し続けています。対策方法としては入力値の制限やサニタイジング(スクリプトの無害化)を施したり、Webアプリケーション層を保護することが出来るWAF(Webアプリケーションファイアウォール)の導入です。
3.CSRF(クロスサイト・リクエスト・フォージェリ)
ユーザーがSNSなどのWebサイトにログイン中に、並行して、別のWebサイトやメール内に記載されている不正リンクをクリックすると、悪意あるリクエストがユーザーの要求であるかのように偽って、ログイン中のWebサイトに送信されます。このような、ユーザーの意思とは別の操作をする「クロスサイト・リクエスト・フォージェリ」攻撃により、攻撃者に非公開の個人情報を公開する設定に変えリクエストをさせられたり、パスワードを書き換えるなどの被害があります。攻撃者がユーザーになりすまして操作してしまうので、ユーザー側には、Webサイトにログインしているときは、怪しいURLや身に覚えのないメールやメッセージに注意しアクセスしないようにします。また、作業が終わればログアウトすることが大切です。
4.パス名パラメータの未チェック/ディレクトリ・トラバーサル
ファイル名を扱うプログラムに対して不正な送信がなされると、監理者が非公開にしているファイルなどの内容が取得されるディレクトリ・トラバーサル攻撃は、コンピュータシステムへの攻撃手法の一つです。Webアプリケーションなどで、パラメータとして外部からファイル名などの指定を受ける場合に、文字列に問題があると攻撃対象となり被害を受けます。
この攻撃は、近年、プラグイン による拡張性が魅力的なWordPressでよく見られます。拡張機能を悪用してWordPressの設定ファイルを不正に読み込む攻撃がなされています。対策としては、使用する言語やシステムによって異なりますが、「/」や「\」を含むパス名の禁止、入力されたパスの前方・部分を一致させること、ディレクトリのアクセス権を設定するなどディレクトリパスを適切に処理することが大切です。また、直接入力された文字列をそのまま使用しないことで攻撃を防ぐことができます。
5.OSコマンド・インジェクション
OSコマンドとは、パソコンの基本ソフトウェア(OS)を操作するための命令のことです。つまり、あるソフトウェアに存在する虚弱性に対して、悪意のある攻撃者が不正に埋め込んだ要求がOSコマンドに入り込み、攻撃者によって基本ソフトウェア(OS)を不正に操作されてしまう状態になります。
実際、国内の某テレビ局がこの手口で被害にあったと言われています。このセキュリティ対策は、Webアプリケーションのプログラム開発時には、脆弱性が入らないように開発をすることです。また、開発後は運用側でWAFによって、攻撃から防御をすることができます。