アプリ開発者が実践すべきセキュアコーディングの初歩の初歩安全なWeb/モバイルアプリ開発【前編】

Webアプリケーションやモバイルアプリケーションの脆弱性のほとんどは、ごく当たり前な処理の欠落に起因しているという。開発者が絶対にやるべきこととは何か。

2021年09月08日 08時00分 公開
[Cliff SaranComputer Weekly]

 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.

From Informa TechTarget

お知らせ
米国TechTarget Inc.とInforma Techデジタル事業が業務提携したことが発表されました。TechTargetジャパンは従来どおり、アイティメディア(株)が運営を継続します。これからも日本企業のIT選定に役立つ情報を提供してまいります。

ITmedia マーケティング新着記事

news150.jpg

「猛暑」「米騒動」「インバウンド」の影響は? 2024年に最も売り上げが伸びたものランキング
小売店の推定販売金額の伸びから、日用消費財の中で何が売れたのかを振り返るランキング...

news110.jpg

Netflixコラボが止まらない 「イカゲーム」シーズン2公開で人気爆上がり必至のアプリとは?
Duolingoは言語学習アプリとNetflixの大人気ドラマを結び付けたキャンペーンを展開。屋外...

news199.jpg

Yahoo!広告における脱デモグラフィックの配信・分析を実現 電通が「DESIRE Targeting」を提供開始
電通の消費者研究プロジェクトチームは、消費者を理解し、Yahoo!広告の配信や分析を実施...