Akamai Diversity
Home > Security > SQL Injection Akamaiで防御せよ

SQL Injection Akamaiで防御せよ

セキュリティー攻撃 の中でもっとも恐ろしいアタックの一つはSQL Injectionです。有名なOWASP Top 10 (https://www.owasp.org/index.php/Top_10_2010) の脅威の中でInjectionが第一の脅威とされています。SQL Injectionによってログイン情報などが盗まれてしまう、といった事案が後を絶ちません。今回はこのSQL Injectionの仕組みとAkamaiによる防御に関して説明します。 Akamai PlatformではこのSQL Injectionの防御を3Stepsの簡単な設定で実現する事ができます。

SQL Injection

SQL Injectionの主な目的はデータを盗む事です。現在のビジネスアプリケーションは一般的にデータベースを使用しており、SQL文にてデータを取り扱っています。Wikipediaでは以下のように定義されています。
"SQLインジェクション(英: SQL Injection)とは、アプリケーションのセキュリティ上の不備を意図的に利用し、アプリケーションが想定しないSQL文を実行させることにより、データベースシステムを不正に操作する攻撃方法のこと。また、その攻撃を可能とする脆弱性のこと。"
これを例えてみます。ある家電Shopping Siteに流行りのある特定の製品の値段の情報を検索するとします。それに対してユーザーはSearch Fieldに'携帯電話'を入力し製品に関する情報(型番、値段など)を表示する事ができます。
これをSQL文で表すと「Select * from 製品 where 家電 = '携帯電話'」となります。要するにデータベース上にある家電に関する'製品'というテーブルに対してSQL文が発行されます。
但し、悪意のユーザーがSearch Filed に以下のような情報を入れてしまうと顧客の情報「名前、住所、口座番号等」を取得できてしまいます。

「携帯電話'; Select * from customers;--」

このブログは防御のためですので悪意のあるSQL文の説明は省きます。

Akamaiで防御せよ

 

 platform-sql1.png

 

Akamaiは脆弱なOrigin Serverに代わってSQL Injectionを防ぎます。その防御の設定は以下の僅か3Stepsで実現する事ができます。
Step1: Security Policyの設定
Step2: 防御対象のURLを指定
Step3: Akamai Platformに設定を展開

それぞれのStepをもうすこし詳しく説明します。

Step1: Security Policyの設定

 waf-sql1.PNG

Akamaiはmod_secuirtyに準拠したルールセットを構築しています。それぞれのルールに対して後処理としてDenyまたはAlertの設定が可能です。今現在約100のルールを取り扱う事ができます。そのルールの中のSQL Injectionを選定し後処理としてAlertまたはDenyを設定します。

Step2: 防御対象のURLを指定

防御したいURLを指定します。

Step3: Akamai Platformに設定を展開

Akamai Platformにある13万台のサーバーに防御設定を展開します。

これは45分ほどかかります。 この3Stepsで防御設定が完成します。 この設定によってどう防御されてるかを監視する事もできますが、次の機会に紹介します。

**先の悪意のSQL文をShopping Siteに対して絶対に発行しないようにお願いします。

Leave a comment