私は、ハイテク企業にグローバルにエンジニアリングサービスを提供するソフトウェア開発会社Aprioritの創設者兼CEO

クリエイティブオフィスのデスクでの女性コンピュータハッカーのコーディングの背面図

getty

今日、サイバー攻撃者は、単純なマルウェアから洗練されたリバースエンジニアリングツールに至るまで、印象的な武器で武装しています。 逆アセンブラ、逆コンパイラ、その他のツールを使用すると、ハッカーはアプリケーションのソースコードにアクセスして分析することができます。 この情報を使用すると、ハッカーは機密情報の抽出、悪意のあるコードの追加、さらにはアプリケーションのクローン作成など、さまざまな方法でソフ

セキュリティ会社Positive Technologiesによる最近の調査では、一般的なモバイルバンキングアプリケーションはハッキング攻撃の影響を受けやすいことが明ら 特定された最も一般的なサイバーセキュリティの問題は、クラスとメソッドの名前がソースコードで明示的に記述されていること、コードインジェクションに対する保護の欠如、コードの難読化の欠如に関係していました。

コードの難読化は、特にソフトウェアを保護するための有望な方法です。 侵入からソフトウェアを保護する方法を探している場合は、コードを難読化することによって防御を強化することから始めることをお勧めします。

コードの難読化はどのように機能しますか?

難読化メソッドを使用すると、暗黙的な値を非表示にし、ロジックを隠すように変換することで、アプリケーションコードを強化できます。 これらの措置により、不正な第三者がソフトウェアのボンネットの下を見ることが困難になります。

ほとんどの難読化手法は、コードの次の側面のいずれかを変換します:

•データ:コード要素を

以外のもののように見えるようにする•制御フロー:ソフトウェアが逆コンパイルされている場合、実行可能ロジックを非決定的にする

•レイアウト構造:データのフォーマット、識別子の名前の変更、コードコメントの削除

難読化ツールは、ソースコード、マシンまたはバイナリコード、およびバイトコードで動作します。 どのタイプのコードを難読化するのが最適かを判断するには、各選択の制限に留意する必要があります。

ソースコードを難読化すると、難読化されたコードの処理とデバッグに課題が発生する可能性があります。 バイナリの難読化は、他の二つのオプションよりも複雑であるだけでなく、各システムアーキテクチャに適用する必要があります。

私の会社では、ソースコードやマシンコードを処理する必要がないため、バイトコードの難読化を選択することがよくあります。 しかし、バイトコードをマシンコードに変換するとき、すべての難読化されたコードインジェクションを完全にランダムに保つことは困難です。

私たちの最近のプロジェクトの一つでは、私のチームはLLVMコンパイラを使用していました。 コードの強化に加えて、このコンパイラは、ハッカーがソフトウェアをクラックすることをほぼ不可能にするソフトウェアライセン

コード難読化でアプリを保護するにはどうすればよいですか?

難読化はOWASPが推奨する安全なコーディング手法の1つですが、まだ多くの開発者の間ではそれほど人気がありません。 これの主な理由は、過度に使用されると、コードの難読化がソフトウェアのパフォーマンスに害を及ぼす可能性があることです。

しかし、たとえばモバイルバンキングアプリについて話している場合、ユーザーの銀行口座データを保護することの重要性は、バランスの取れたコード硬化

最も効果的な方法でコードを難読化したい場合は、次の点を考慮する必要があります。

•コードを難読化する前に、コードのどの部分を難読化できるかを決 パフォーマンスに重要なコードの難読化を回避します。 また、難読化がソフトウェアの機能に何らかの影響を与えないことを確認してください。

•難読化されたコードのサイズとパフォーマンスに注意してください。 大規模なコードを強化する場合、実行時間は最大1,000倍に増加する可能性があります。

•難読化されたコードに不透明な述語を追加して、コードの実行がどこに行くのかを理解できないようにします。 制御フローグラフを線形コード実行ではなくステートマシン実行のように見せます。

•階層化された防御を作成するには、いくつかの変換技術を組み合わせます。 より多くの難読化技術を使用するほど、コードはより良く保護されます。

•コードの難読化は、他のセキュリティ慣行に代わるものではないため、追加のセキュリティ層としてのみ使用してください。

適切に実装されている場合、コード難読化は不正な分析からソフトウェアを保護するための効果的なソリューションです。 それは銀の弾丸ではありませんが、ソフトウェアを悪用して侵害しようとする試みが大幅に複雑になります。

Forbes Technology Councilは、世界クラスのCio、Cto、および技術幹部のための招待制のコミュニティです。 私は資格がありますか?

ツイッターやLinkedInでフォローしてください。 私のウェブサイトをチェックしてくださ

..

コメントを残す

メールアドレスが公開されることはありません。