安全な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日本語版
この記事の著者
関連記事
新着ホワイトペーパー PR
-
事例
[株式会社キーエンス] PCが苦手でも自動化できる ポポラマーマなど4事例に学ぶ「ナビ搭載型RPA」活用 -
製品資料
[株式会社クレオ] IT部門を“価値創造組織”へ転換 IT管理プロセスの改革で戦略的リソースを確保 -
製品資料
[株式会社クレオ] Excel管理が限界に――ITサービス管理の脱・属人化と運用高度化を実現する方法 -
製品資料
[株式会社クレオ] 西武グループやイオングループも実践 事例に学ぶ「ITサービスデスク業務」改善 -
製品レビュー
[株式会社クレオ] 「使われないITシステム」から脱却 現場が求める業務改善を実現する方法
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
法務と開発者で「言葉が通じない」問題 トヨタやソニーが語るOSS管理の真実
-
2
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
3
「レガシーシステム・老朽化システムの運用課題と刷新」に関するアンケート
-
4
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
5
1回で分かる:仮想マシンを丸ごとバックアップする「VADP」の仕組み
-
6
脱VMwareか、継続か? 仮想化ソフト主要6製品の運用管理と統制機能を徹底比較
-
7
なぜ「全社配布Copilot」は使われないのか? 失敗に学ぶAI定着
-
8
セキュリティは「情シス任せ」が過半数 漏えい発生時やSCS評価制度の課題は?
-
9
属人化と入力ミスからの解放 アクティオが日本IBMと挑む「AIで調達自動化」
-
10
IT業界の女性は9割が10年で消える 人材枯渇を招く“見えない壁”の正体
ホワイトペーパーランキング PR
-
1
家庭用Wi-Fiルーターの業務利用は危険? 避けるべき理由と具体的な対策
-
2
システムの保守がモダン化を阻む? 「変えない判断」から脱却する方法とは
-
3
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
4
AI駆動攻撃にどう対抗する? 超速の攻撃からエンドポイントを保護する方法
-
5
なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは
-
6
プログラミング不要で誰でも実現できる、ネットワーク運用管理の自動化とは
-
7
東大教授と考える、AI時代の「データ主権」「信頼性」「ガバナンス」の在り方
-
8
Linux初心者でも知らないとまずい「RHEL」「SLES」の違いとは?
-
9
最速72分でデータが流出? 最新の脅威トレンドや侵入手法から分かった防衛策
-
10
生成AIの活用を阻む「5つの壁」とは? AIネイティブ組織へ変革を遂げる方法
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー