この記事は機械翻訳されました。
バッファオーバーフロー中、プログラムはバッファの外側のメモリ領域にデータを格納します。この手順により、データが破損したり、プログラムがクラッシュしたりする可能性があります。
ハッカーはこのことを知っており、時には無害に見えるバッファを使用してデバイスを乗っ取ることもあります。
基本的に、バッファは、プログラムの1つがメモリを使い果たし、クラッシュしたくない場合の救世主です。プログラムは、そのバッファ内にデータを格納し、作業を続けることができます。IT部門がバッファ内で見つけることができる以上のメモリがプログラムに必要な場合、IT部門はバッファオーバーフロー攻撃に対して脆弱になります。
バッファオーバーフロー攻撃は、 1998年のMorris Wormから2015年のStagefrightまで、最も悪名高いハッキングの例のいくつかを引き起こしました。
それらがどのように機能するかを説明し、それらから身を守る方法を理解するのをお手伝いします。
バッファオーバーフローとは何ですか?
ほとんどすべてのコンピューターにバッファーがあります。この専用スペースは、データを保持または転送できるため、複数のクラッシュを経験することなく作業を続けることができます。しかし、最高のバッファーにも限界があります。そして、ITを超えると、オーバーフローが始まります。
バッファオーバーフローには、次のものがあります。
- 偶然の。 1つのプログラム内で多くのことを行おうとすると、プログラムが与えるスペースを超えてしまいます。プログラムが不規則に動作し始め、場合によっては IT が完全に機能しなくなることがあります。
- 意図的な。 誰かがあなたのプログラムには大きすぎるデータを送りました。そのデータセットには、有効なバージョンを置き換えることができるコードが含まれています。新しいコードが実行されると、IT 部門は予期しないことをプログラムに実行させることができます。
ITは、ハッカーがプログラムを完全に理解し、ITの動作方法を変えることができるプログラムを作成するのは難しいように思えるかもしれません。 しかし、残念ながら、これらの攻撃は比較的一般的です。
バッファオーバーフロー攻撃タイプ
すべてのプログラムにはバッファが含まれていますが、攻撃者は 2 つの方法のいずれかに従って IT を乗っ取り、攻撃を開始できます。
バッファオーバーフロー攻撃には、次のようなものがあります。
- スタックベース。 攻撃者はプログラムにデータを送信し、その送信は小さすぎるスタックバッファに格納されます。ハッカーは「プッシュ」機能を選択し、スタックの一番上に新しいアイテムを保存できます。または、ハッカーは「ポップ」機能を選択し、上部のアイテムを削除してITを置き換えることもできます。 これは、ハッカーが公式に 悪意のあるコードを挿入し、制御を奪ったことを意味します。
- ヒープベース。 ハッカーがヒープ内のデータを破壊し、そのコード変更により、システムは重要なデータを上書きするように強制されます。
ユーザーとしては、これらの変更が行われていない可能性があります。しかし、進行を止めないと、プログラムが滞り始めて失速する可能性があります。やがて、IT部門はクラッシュする可能性があります。
バッファオーバーフローはオペレーティングシステムなどの重要なプログラムを標的にすることが多いため、ハッキングによって制御できないデバイスが残る可能性があります。
バッファオーバーフローの脆弱性を知る
攻撃を防ぐことは、攻撃から回復するよりも簡単です。ありがたいことに、会社概要 を安全に保つためにできることはたくさんあります。
まず、開発中に使用するコードを調べます。バッファオーバーフロー攻撃に対して脆弱なプログラミング言語には、次のものがあります。
- 集会
- C/C++
- フォートラン
これらの言語には保護機能が組み込まれておらず、オーバーフローの定期的なチェックは許可されていません。
次に、コードを調べます。ハッカーが攻撃を開始するのは、次のような場合です。
- 複雑。 IT部門がプログラムの動作を予測するのが難しいと感じていませんか?
- 外。 プログラム内のアクションを制御するために、サードパーティまたは外部のデータが必要ですか?データプロパティは外部から制御されていますか?
- 年上。 レガシーコンポーネントを使用してプログラムを構築しましたか?
世の中のほとんどすべての会社概要には、すべての従業員が毎日使用する古いカスタムビルドのプログラムがあります。 ITはあなたのためだけに作られたので、このシステムを交換することには慎重かもしれません。 しかし、レガシーシステムには、軽減または排除するのが難しいリスクが伴うことは明らかです。
バッファオーバーラン対策および防止計画
ハッカーは何年もの間、バッファに頼ってきましたが、彼らの仕事に新たな機会が生まれています。たとえば、専門家は、 接続されたデバイス (冷蔵庫やドアベルなどの モノのインターネット要素 を含む)がこれらの攻撃を受けやすいと述べています。
会社概要 を保護するには、以下の常識的な手順に従ってください。
- 新しいオペレーティング システムを使用します。 サポートシステムの有効期限が切れたレガシープログラムを捨てる時が来ました。 新しいコードには、より多くの保護が付属しています。
- 言語に注意してください。 COBOL、Python、および Java で記述されたプログラムは、他のプログラムよりも安全である可能性が高いです。
- スペースを追加します。 一部のプログラムでは、実行可能スペースの保護が可能です。有効にすると、ハッカーはオーバーフロー攻撃によって挿入されたコードを実行できなくなります。
- 開発者に頼る。 システム管理者は、開発者が バグレポートを無視しているとよく不満を漏らします。 粘り強く。バッファオーバーフローにつながる問題を見つけたら、誰かがITを修正するまでITについて話し続けます。
- パッチを適用します。 開発者がバッファオーバーフローの問題を発見した場合、コードで修正します。 例えば、2021年2月には 、須藤の開発者がこのようなパッチをリリースし、ITの利用を促しました。
コードを監視し、動作を分析し、 頻繁にテスト することは、すべて良いアイデアです。しかし、会社概要を安全に保つためには、さらに多くのことを行う必要があります。
Oktaと連携して、最も重要なリソースを強力な認証システムで囲みましょう。お客様のような組織をどのように支援できるかについて、詳しくはこちらをご覧ください。
参考文献
バッファオーバーフロー攻撃。包括的なセキュリティ: 実践的なアプローチ。
バッファオーバーフロー。OWASPです。
バッファオーバーフロー攻撃。サンタクララ大学。
バッファオーバーフローとは何ですか?そして、ハッカーがこれらの脆弱性をどのように悪用するか。(2020年1月)。CSO(最高セキュリティ責任者).
カーネルスペース:Linux開発者はバグレポートを無視していますか? (2007年9月)。 Networkworld.
sudo ヒープベースのバッファオーバーフローの脆弱性。(2021年2月、サイバーセキュリティおよびインフラストラクチャセキュリティ庁。