アプリケーション制作に求められるセキュリティー対策

作成日:2020/08/17

お役立ちコラム

アプリケーション制作に求められるセキュリティー対策

近年、デバイスの普及や働き方改革のための業務効率化、テレワーク人口の拡大により、オンライン形式でのコミュニケーションが増加し、これまでより一層セキュリティー意識が求められています。
インターネット上での犯罪行為の件数増加や手口の巧妙化はとどまることがなく、一般利用者が十分なセキュリティー対策を採るために必要な知識を身に着けることが追いついていない状況です。
その被害は、ソースコードを改ざんし作られたマルウェアや、ライセンス認証の不正解除、アルゴリズムを解析されたうえでのノウハウ流出など多岐にわたります。
ここではプログラマーのセキュリティー対策の基本をご紹介します。

クラッキングとは

プログラムを違法に解析・改ざんする行為をクラッキング、悪意を持ってクラッキングする攻撃者はクラッカーと呼ばれています。
最近では初心者にも簡単に使えるクラッキングツールがインターネット上で入手可能になり、不正アプリによる詐欺行為や個人情報の漏えいなどのセキュリティー被害は増加傾向にあります。
クラッキングのやりかたとしては、大きく分けて下記の2つがあります。

静的解析=プログラムのファイルレベルの解析
動的解析=プログラムの実行中の解析

静的解析としては、逆アセンブルでコードを解析し、情報を不正に取得する、実行ファイルを改ざんするなどの行為が挙げられます。
動的解析については、デバッガを利用しアプリを解析して改ざんする、プログラム実行中にメモリを書き換える、エミュレータ上でプログラムを実行して解析するなどの行為が挙げられます。
一部の攻撃に対して強固に対策をしていたとしても、それ以外の対策が施されていなければ違うルートからの攻撃を受けることもあり得ます。
静的解析、動的解析のどちらに対しても対策は必要であり、攻撃を未然に防ぐための多角的な対策が求められます。

なぜクラッキングが増加しているのか

過去20年以上前までは、さまざまな業界で専用端末と専用OSが使われていました。
しかし、近年では汎用(はんよう)OSが使われることが中心となっており、CPUなどの計算性能が向上したこともあり、スマホへ移行するケースも増えてきました。
このことは多くの人が日常的に使っているデバイスでさまざまなアプリが利用できるようになるという利点をもたらしました。
そして、使われるOSの種類が少なくなることで、高い知見を持つ人の割合が増えました。
彼らの知識やその成果物として開発された道具を広めることをインターネットの普及が後押しし、多くの人がそれらを共有できるようになりました。
しかし同時に、デバッガやエミュレータや解析ツールなど、使用者の意図次第でクラッキングが行えるようなツールを入手しやすい環境ができあがり、クラッキング被害の件数が増えるということにもつながっているのです。

近年の事例

最近では、新型コロナウイルス感染拡大の影響により、出勤形態が在宅勤務になる、教育の現場では学校や塾での授業が遠隔で行われるなど、さまざまな集まりがオンラインで行われるようになっています。
それに伴って需要が高まっているweb会議アプリを標的にしたクラッキングの事例があります。
アプリ自体は正規のものですが、ダウンロードする際マルウェアに感染するように改ざんされています。
これに感染しますと、個人情報の抜き取りや、web会議での映像や音声の記録など、業務上の機密情報を盗まれる恐れがあります。
公式サイトから正規のアプリをダウンロードする、パスワードを設定して会議を行うなど事前に注意できる点もありますが、アプリ自体が正規のものであるため気付きづらく、また多くの人たちが必要に迫られダウンロードするタイミングを狙っていることもあり、利用者側では防ぎ切ることが難しいのが現状です。

また、電子書籍サイトからコンテンツを不正に無料で購入したという事例もあります。
iPhoneやiPadなどのiOSデバイスには本来機能制限がかかっています。その制限を不正に解除する行為をデバイスに施すことは、一般的にJailbreak(=脱獄)と呼ばれます。
ユーザー権限が拡大するのと同時にセキュリティーレベルは大幅に低下するということもあり推奨はされていない行為ですが、この事例では、そのJailbreakを行いさらにアプリ内課金を無料化する不正アプリを入れて、サイトに正式に決済したという虚偽の情報を送信し、無料で電子書籍を購入していました。
このような手口が広まることは、アプリ運営会社にとって収益の減少をもたらすだけでなく、セキュリティー対策が不十分なサービスを提供していたという点で、社会的な信用を失うことにもつながるのです。

セキュリティー意識を持ったプログラミングを

それでは、アプリの制作時にはどのようなことに気をつければよいでしょうか。
プログラミングの実作業において、セキュリティーをどの程度意識するかで保護レベルは違ってきます。
例えばパスワードの認証システム一つとっても、パスワードを照合するという本来の目的に付随して、回数制限を付けて総当たり攻撃の機会を奪う、パスワードの不正認証を正規認証にすり替えることを防ぐなど、さまざまな攻撃を想定して事前に対策を打つことができます。
アプリ制作の段階でセキュリティーを意識することで、耐タンパ性を高め、よりクラッキング被害を受ける危険性を下げることができるのです。
それに加えて、外部セキュリティーツールを利用することも有効です。
クラッキングという将来的になくなることのない大きな問題に対して、自社のみでの防御には限界があります。
その対策に時間と労力を消費して、クオリティーの高いアプリを作るというプログラマーの本業の妨げにならないよう、耐タンパ性を高めるためのセキュリティーツールを利用する、脆弱(ぜいじゃく)性診断を受けるなど、セキュリティーの外部サービスを利用していくことも大切です。

アプリの安全な制作・運営のための心構え

アプリを制作する上で、担当部署でもない限りセキュリティーについて意識することは少ないかもしれません。
しかし被害を受けてから対策をするのでは、失われた収益や信頼は戻ってきません。
クラッキングを未然に防ぐことは、アプリを安全に制作・運営するうえでの欠かせない項目と言っていいでしょう。
常にセキュリティー保護の視点を持つことが、ユーザーの満足度や自社の利益を守ることにつながるのです。

執筆者

土倉真実
株式会社DNPハイパーテック
マーケティング部

前職はDTPデザイナーで、webマーケティングという新しい分野で挑戦中です。未熟な点もありますが、皆様にとって有益な情報を発信したいと思っています。
弊社ではアプリを保護するセキュリティーソフト「CrackProof」をご提供しております。セキュリティーのお悩みはお気軽にご連絡ください。

お問い合わせ

お気軽にお問い合わせください

ページの先頭に戻る