Webアプリケーションやモバイルアプリケーションの脆弱性のほとんどは、ごく当たり前な処理の欠落に起因しているという。開発者が絶対にやるべきこととは何か。
Webアプリケーションやモバイルアプリケーションを高度に統合している企業は、パンデミックによって生じた経済の混乱をうまく乗り切っている。だが、攻撃者にとってWebアプリケーションは格好の標的だ。
Forrester Researchがセキュリティに関する意思決定者を対象に行った調査で、攻撃者が最も一般的に使う攻撃ベクトルはWebアプリケーションであることが明らかになった。世界のセキュリティ意思決定者の28%が、今後12カ月間の最優先事項はアプリケーションセキュリティの機能とサービスを改善することだと考えているという。
社内アプリケーションを社外と接続するAPI、社内アプリケーション、Webに公開するアプリケーションを保護する必要がある。攻撃された場合に備えて、許容可能なダウンタイムを決める事業継続性ポリシーも用意しておかなければならない。
ユーザー名とパスワードの登録を求めるWebサイトがあまりにも多い。セキュリティの専門家はそれぞれ異なるパスワードを使うことをユーザーに強く勧める。強力なパスワードを自動的に生成して保存するWebブラウザもある。
だが、ユーザーが選ぶのは覚えやすいパスワードだ。複数のWebサイトに同じパスワードを設定することも多い。結果、パスワードが簡単に解読されるだけでなく、ハッカーが同じパスワードを使って他のサイトを標的にする恐れも高くなる。
OAuthは、認証を必要とするWebサイトが利用可能なアプローチの一つだ。OAuthはFacebookとGoogleのバックエンド認証を使う。この便利さの代償として、Webサイトを運用する企業とGoogleおよびFacebookがユーザーの情報の一部を共有することになる。
OWASP(Open Web Application Security Project)は、「Application Security Verification Standard」(以下ASVS)の一環としてガイドラインを作成している。
OWASPはその勧告の中で、ユーザー認証のセキュリティを確保するために多要素認証、生体認証、ワンタイムパスワードなどの使用を提唱している。勧告には他にも、データの損失防止を目的とする強力な暗号化、アクセス制御、ユーザーが生成するコンテンツ(Webアプリケーションやモバイルアプリケーションのテキストボックスにユーザーが入力すると想定されるデータなど)のサニタイズと検証などがある。
Webアプリケーションやモバイルアプリケーションの開発者は入力検証コントロールを実装する必要があるとASVSは規定している。OWASPによると、インジェクション攻撃の90%は、アプリケーションが入力データを正しくチェックしていないことに起因しているという。ASVSのバージョン4.0.2には次のように記載されている。「入力データの長さと範囲をチェックすればインジェクション攻撃を大きく削減できる。アプリケーションの設計スプリント、コーディング、単体テスト、統合テストに入力バリデーション(検証)を組み込む必要がある」
インジェクション攻撃は、巧妙に組み立てたデータを使ってエラーを発生させ、アプリケーションがそのデータを別のプログラムとして実行するように仕向ける。入力データが想定しているデータかどうかをチェックすれば、この種の攻撃を防ぐことが可能だ。数値の入力を想定しているなら、数値として意味を成さないデータは全て拒否する。住所や生年月日にも標準形式があるのでチェックは可能だ。
プログラマーは、インジェクション攻撃やバッファーオーバーフロー攻撃を防ぐセキュアなコードを作成しようとして多くの課題に直面する。課題の一つは、ソフトウェア開発の性質が大きく変わってしまったことだ。Accentureのオーウェン・ライト氏(保険部門マネージングディレクター)は言う。「バッファーオーバーフロー攻撃やインジェクション攻撃を本当に阻止しようとするなら、そうした攻撃の作成を不可能にする必要がある」
最新のソフトウェア開発手法はサードパーティーのフレームワーク、ライブラリ、クラウドサービスとの統合に大きく依存しているとライト氏は話す。ソフトウェアを市販する大手プロバイダーならば、専任チームを用意してコーディングのセキュリティを確保しているかもしれない。だが「よく使われているオープンソースライブラリの中には1人か2人だけでメンテナンスされているものもある。にもかかわらず、ユーザーはそれが十分管理されているものと想定している」と同氏は話す。
セキュリティに「シフトレフト」が採用され始めているとライト氏は指摘する。このアプローチでは、セキュアなコードの作成に開発者がより多くの責任を負う。
速度、コスト、品質の間には絶えず緊張関係がある。これまでは開発者がアプリケーションをテストチームにリリースした後にペネトレーションテストが行われていた。だが、ソフトウェアプロジェクトをDevSecOpsに移行すれば、開発者はこれまでよりも早く問題のあるコードを修正できるとライト氏は考えている。
ライト氏の経験によれば、シフトレフトによってソフトウェア開発サイクルの後半にセキュリティのエラーを修正するよりもはるかに安価になるという。アプリケーションのセキュリティ確保を目的とするテンプレートを作成し、その後のプロジェクトに適用することを同氏は提案する。
後編では、クラウドWAF(Webアプリケーションファイアウォール)の効果と注目すべきクラウドWAFプロバイダーを紹介する。
Copyright © ITmedia, Inc. All Rights Reserved.
物流向けアプリケーションの開発を行うMeeTruckでは、アジャイル開発でPDCAをスピーディーに回すことで、業界での支持を拡大している。そんな同社の躍進を支えているのが、豊富なAPIを誇るコミュニケーションプラットフォームだ。
斬新なアイデアで人気を博すレシート買い取りアプリ「ONE」を提供するWEDでは、認証機能の開発工数を削減すべく、あるクラウドコミュニケーションAPIを導入した。SMS認証機能の実装をわずか2日程度で実現した同ツールの実力を紹介する。
アナログで非効率な業務が多く残る建設現場では、デジタル化によるプロセス改善が、喫緊の課題となっている。現場DXを推進する具体的な方法を提案するとともに、ノーコードツールの導入で大きな成果を収めた事例を紹介する。
ビルメンテナンス事業を展開する裕生では、全社的にDXへの意識が低く、従業員の意識改革に課題を抱えていた。そこで、取り組みの契機とすべくノーコードツールを導入。業務アプリの活用により現場の業務はどのように変化したのだろうか。
深刻化するIT人材不足の課題解消の方法として、プログラミングコードを書かずに業務用モバイルアプリを開発できる「ノーコード開発」が注目されている。従来のスクラッチ開発との違いを比較し、メリットや導入のポイントを解説する。
繝弱�繧ウ繝シ繝峨�縲∬イ�縺ョ驕コ逕」縺ァ縺ゅk繧「繝翫Ο繧ー讌ュ蜍吶r縺ェ縺上○繧九�縺� (2024/11/12)
驥題檮讖滄未縺ョ繝「繝繝翫う繧シ繝シ繧キ繝ァ繝ウ縲譛驕ゥ隗」縺ォ蟆弱¥縺ォ縺ッ (2024/3/29)
いまさら聞けない「仮想デスクトップ」と「VDI」の違いとは
遠隔のクライアント端末から、サーバにあるデスクトップ環境を利用できる仕組みである仮想デスクトップ(仮想PC画面)は便利だが、仕組みが複雑だ。仮想デスクトップの仕組みを基礎から確認しよう。
「サイト内検索」&「ライブチャット」売れ筋TOP5(2025年4月)
今週は、サイト内検索ツールとライブチャットの国内売れ筋TOP5をそれぞれ紹介します。
「ECプラットフォーム」売れ筋TOP10(2025年4月)
今週は、ECプラットフォーム製品(ECサイト構築ツール)の国内売れ筋TOP10を紹介します。
「パーソナライゼーション」&「A/Bテスト」ツール売れ筋TOP5(2025年4月)
今週は、パーソナライゼーション製品と「A/Bテスト」ツールの国内売れ筋各TOP5を紹介し...