こちらの記事は、セキュリティ専門家の松野によるニュース解説ラジオ「今日の10分セキュリティラジオ」の放送内容を文字に起こしご紹介しています。
株式会社石橋楽器店は1月11日、同社運営のWebサーバへの外部からの不正アクセスによるメールアドレス情報の一部漏えいの可能性について発表した。(記事はこちら)
【お届けするニュースはサイバーセキュリティ専門ニュースサイト「ScanNetSecurity」の提供でお送りしています。】SQLインジェクションの攻撃により、Webサイトから一部のメールアドレスが漏洩したということです。SQLインジェクションの対策や、脆弱性が減らない現状の背景について説明します。
今回のインシデントは、Webサーバのプログラムの一部の脆弱性を突いて、会員のメールアドレスが外部に流出している可能性が判明したということです。原因として、SQLインジェクションの脆弱性が挙げられています。
対策として、攻撃のあったプログラムを停止し、再度の攻撃を受けないよう対応を実施したということです。また、対象の顧客に対し、個別にメールを送付し、個人情報保護委員会と警察署へ報告を行っています。再発防止策として、外部専門機関による脆弱性診断を実施し、サーバシステム、Webサイトのセキュリティを強化したということです。
SQLインジェクションの対策として、ソースコードを修正する方法と、アプリケーションの外側で修正する方法があります。それぞれについて説明します。
まず、ソースコードを修正する方法として、SQLインジェクションが発生している箇所を特定して、適切な書き方に修正します。具体的には、SQL文を動的に組み立てている箇所に文字列連結を使っていることが考えられますので、代わりにプレースホルダを使いましょう。プレースホルダとは、外部から入力される値を受け取る場所です。SQL文で外部から入力される値をプレースホルダで受け取ることにより、機械的な処理によってSQL文が組み立てられるため、SQLインジェクションの脆弱性を解消することができます。
また、アプリケーションの外側で修正する方法として、WAFを導入することが挙げられます。WAFとは、Web Application Firewallの略で、外部からWebアプリケーションに対する攻撃を防ぐセキュリティ対策です。Webサイトの代わりに外部からの通信を受け取り、SQLインジェクションなどの攻撃とみなされた通信を遮断します。ただし、WAFですべての攻撃を防ぐことができるわけではありませんので、ソースコードを修正して脆弱性を根本的に解消することを原則としましょう。
SQLインジェクションの被害が減らない理由の一つは、プログラミングが人の手作業によって属人的に書かれているからです。対策として、コーディング規約の策定が有効です。
今回はSQLインジェクションが発生する背景とその対策についてお届けしました。「属人的であればブレが生じる」「ブレが生じればミスが起こる」ミスが許されないセキュリティ対策の属人性を排除するために、標準化や仕組化を目指していきましょう。
今日の10分セキュリティラジオにて毎週月・水・金にセキュリティの最新ニュースを取り上げ解説を行っています。隙間の時間の情報収集にぜひお役立てください!
お見積り・ご相談など、お気軽にご相談ください
サイトTOPへ