banner
ニュース センター
即日配送

セキュリティシンクタンク: コードを効果的に保護するには、すべてのステップで検証してください

Jun 23, 2023

マクシム・カバコウ - ザ・ベスト・オブ・マクシム・カバコウ

実際のコーディングを行ってからかなりの時間が経ちましたが、マシンレベルのコーディングを行った一方で、最初はどちらも高級言語である Algol と Fortran を教えられました。

情報セキュリティと情報保証に携わる 20 年以上の中で、安全なコーディングの問題の重要性が高まってきました。 多くのセキュリティ侵害が成功したのは、不適切なコーディングとハウスキーピング手順によって発生しましたが、運用環境とバックグラウンドのハウスキーピング機能の役割を無視してはなりません。実際、それらは非常に重要である可能性があります。

セキュアなコーディングの大部分は、コードへの入力は既知の検証済みソースからのもののみを許可し、入力は厳格な境界と内容のチェックを受け、入力が適合していない場合には、そのデータは完全に破壊されます。

同様に、コードの一部からの出力はコード自体内からのみ出力され、既知の検証済みの宛先に送信される必要があり、割り当てられたメモリ以外のメモリの使用は許可されません。 コード自体は、割り当てられたメモリ位置とシステム I/O にアクセスして使用するだけでよく、ハウスキーピング関数は使用後の一時メモリ位置もクリーンアップする必要があります。

コードを実行するオペレーティング システムは、あるコードが他のコードに割り当てられたメモリを侵害しないように、メモリ使用量を割り当て、監視し、制御する必要があります。

OS は検証済み (認定またはフラグ付き) コードのみの実行を許可する必要があり、検証されていないコードは分離され、実行が阻止され、エラーが出力される必要があります。

これは、たとえば、多数の仮想ホストを実行している、または多数のコンテナをサポートしているホスト システムと OS がある場合、これはマルチレベルの操作になる可能性があることに注意してください。仮想ホストも実行されている可能性があることを忘れないでください。多数のコンテナが非常に複雑な環境を作り出しています。

市場にはソフトウェア、コンテナ、OS のテスト ツールが多数ありますが、組織にコードの開発、保守、展開を行う独自の IT 部門がない限り、必要なテストとレビューの作業を有能な機関にアウトソーシングすることを検討することになるでしょう。