安全なWeb/モバイルアプリ開発【前編】
アプリ開発者が実践すべきセキュアコーディングの初歩の初歩
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.
Computer Weekly日本語版
この記事の著者
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
2
「HDD終了」は本当か 巨大クラウド2社が下した大容量フラッシュへの決断
-
3
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
4
AIで人を減らした企業がもう心変わり 「AIブーメラン現象」の実態
-
5
10年かけてBIを再構築したアマノの一手 「権限がない」「予算がない」でもDXは動かせる
-
6
レガシー基幹システムをSAPに統合 山善が突き止めた「標準化と個別最適」の境界線
-
7
人気のプログラミング言語「Rust」と「Python」の違いは何か?
-
8
「GitHub Copilot」3000人に配布も基本機能しか使われない 保険大手が得た教訓
-
9
Claudeの不可視透かしに批判殺到 著作権消失や誤判定に潜む企業リスク
-
10
なぜAnthropicはClaude Codeで「エージェントを作るな、スキルを作れ」と言うのか
ホワイトペーパーランキング PR
-
1
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
2
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
3
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
4
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
5
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
6
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
7
“あのファイル転送”で暗躍するノーウェアランサム
-
8
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
9
中小企業必見、Microsoft 365でゼロトラストセキュリティを実現する方法
-
10
動画で知るランサムウェア被害企業のリアル、会計データが無事だった理由とは
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー