Webアプリケーションのセキュリティについて
みなさま、こんにちは。
現在の社会は、2000年代以降、インターネットの急速な普及・IT技術の革新に伴い、私たちの暮らしも以前とは比べ物にならないほど便利で豊かなものになりました。
あらゆるサービスがインターネット経由でPC・スマホ等から利用できるようになり、今後は行政サービスなどもさらにデジタル化が進んでいくものと思われます。
こうしたデジタル社会の成長には、それらを支えるWebアプリケーションの進化・存在が大きく関係しています。
人々の生活が日々利便性を増す一方で、Webアプリケーションを活用して様々なサービスを提供する事業者側においては、新たな課題や悩みが増えているのではないででしょうか。
本日はこうしたWebアプリケーションのセキュリティ対策について考察していきます。
Webアプリケーションとは何か?
Webアプリケーションとは、Webの技術を活用し、インターネットなどのネットワーク経由で利用するアプリケーションソフトウェアの事を指します。
多くの場合、利用者はWebブラウザで操作します。
利用者目線でのWebアプリケーションとは、例えばECサイト、動画サイト、インターネットバンキングなど、Webを介してサービスの提供が受けられるものを指します。
これらを提供する揮発者側は、様々な開発言語やフレームワーク、Webサービスを利用してWebアプリケーションを構築します。
代表的なものとして、PHPやRuby,Python、Javaなどのプログラミング言語が多く利用されています。
Webアプリケーションのシステム構成
現代においては、クラウド技術の革新により様々な提供形態が存在していますが、代表的なWebアプリケーションのシステム構成として、「三層構造」と呼ばれているものがあります。
「Webサーバ」、「アプリケーションサーバ」、「データベースサーバ」の三層から構成されている事からそのように呼ばれています。
■Webサーバ
Webサーバは、利用者側からの通信の窓口となるサーバであり、どのようなサービス・サイトにも必ず存在します。
利用者側からのリクエストを受け付け、アプリケーションサーバへ連携します。
■アプリケーションサーバ
Webアプリケーションシステムの中核となるサーバであり、ユーザからのリクエストを処理するプログラムを実行します。
データベースサーバへデータの照会や検索などの命令を実行したり、ユーザへ応答する為のデータ加工等を行うサーバです。
■データベースサーバ
利用者のデータ等の管理を行うサーバです。
アプリケーションサーバからの命令に従い、データの取り出し・保管などを実施します。
この他にも、システム規模等に応じて、ルータ、スイッチ、ロードバランサなどが設置されます。
これらは、従来のWebアプリケーションのシステム構成として一般的なものでしたが、最新のクラウドネイティブアーキテクチャを採用したシステムに関してはこれらの概念が当てはまらないものも登場してきています。
クラウド利用に関するセキュリティ対策については、以前のコラムでも紹介していますのでそちらを参照ください。
クラウド利用におけるセキュリティ対策
Webアプリケーション開発におけるセキュリティ
Webアプリケーション開発には、様々な言語、フレームワーク、ライブラリなどが利用されます。また、サーバ側にはOSやミドルウェアがセットアップされます。
これらはOSS(オープンソースソフトウェア)として提供されているものも多く、現代のWebアプリケーション開発においては必要不可欠なものとなっておりますが、中には潜在的な脆弱性が内包されているものを多く、利用する上での注意が必要です。
これらを踏まえ、Webアプリケーションのセキュリティ対策においては、以下の事に注意しておく事が必要です。
■Webアプリケーションシステムを構築しているホスト(OS、ミドルウェア)等のプラットフォームの脆弱性
■Webアプリケーションのプログラム(カスタムコード)に存在する脆弱性
■Webアプリケーションに利用されているフレームワーク、ライブラリに内包される脆弱性
■API等の通信経路上に存在する脆弱性
■クラウド利用の場合は、アカウント設定、アクセス権限等の管理上の問題点
また、システムの安全性を評価する際には、攻撃者目線での脆弱性を可視化する外部診断と、将来の潜在的なセキュリティリスクを把握する内部診断を組み合わせ、網羅的に確認しておく事が推奨されます。
Webアプリケーションのセキュリティ対策の課題とその対策
Webサービスが普及している現代において、Webアプリケーションはサイバー攻撃の玄関口になっており、情報漏洩や侵害等のセキュリティ事故の50%はWebアプリケーションが関係しているといった調査結果も出ています。
対策が充分に行き届かない理由としては、以下のような課題を多く聞きます。
■OSS(オープンソースソフトウェア)等の利用状況の把握
前述の通り、現在のアプリケーション開発においては、OSSが多用されています。
それらの利用状況や依存関係の把握、内包される潜在的なリスクの可視化は非常に困難です。
昨年末に発表された「Log4j」の脆弱性対策において苦労したという方も多いのではないようでしょうか。
このような課題に効果的と言われている手法として、SCA (Software CompositionAnalysis)と呼ばれているものがあります。
SCAとは、アプリケーションを組成するOSSから生じる脆弱性や、ライセンス等のコンプライアンス上のリスク等の管理を支援するものです。
■クラウド特有の要素に対する知見不足
クラウドの利用に関しては、従来のオンプレミス環境とは異なる特有のリスクや、クラウドネイティブアーキティチャへの対応、管理設定ミス等の過失によるセキュリティ侵害など、対応を進める上では専門的な知識が必要になります。
これらの知見不足や人材不足など、企業や組織内の体制が課題となっているケースが散見されます。
近年、クラウドのセキュリティ状況の把握に関しては、CSPM(Cloud Security PostureManagement)ツールと呼ばれる製品が注目されています。
■Webアプリケーションテクノロジーの進化
近年、Webアプリケーションのテクノロジーも多様化してきています。
新たな技術には、まだ発見されていない脆弱性やリスクが内包されています。
市場全体として、これらのテクノロジーに対応できるエンジニアの不足といった課題も大きな要因となっています。
まとめ
近年のサイバー攻撃等に代表されるセキュリティ侵害の件数は、10年前と比較して約100倍以上になっていると報告されています。
攻撃手法も多種多様に進化し、業種・業態・企業規模に関わらず様々な企業・組織が悪意のある第三者の被害を受けています。
Webサービスにおいても、新たなサービスが続々と登場し競争が激化する市場に追従する為、各企業は迅速な開発サイクルを回しています。
それに合わせたセキュリティ対策を効率的に実施していく為には、各企業・組織単体では充分な対策が出来ない事もあるかと思います。
M&Kでは、情報セキュリティに関するコンサルティング、脆弱性診断、セキュリティソリューション導入支援など、企業のセキュリティ対策に関する課題に経験豊富なコンサルタント、エンジニアがご支援を行っております。
何かお悩みの点がございましたら、お気軽にご相談ください。