12章コードの記述
執筆:Michał Czapiński、Julian Bangert
協力:Thomas Maufer、Kavita Guliani
コードには残念ながらバグが付きものです。しかし、セキュリティ脆弱性や信頼性に関する一般的な問題は、こうした問題クラスに対する弾力性を担保する設計に基づいてハードニング(堅牢化)されたフレームワークとライブラリを使用することで回避できます。
本章では、プロジェクトを実装する際に適用する必要があるソフトウェア開発パターンを明らかにします。まず、RPCバックエンドの例を通じて、望ましいセキュリティプロパティを適用し、信頼性に関する典型的なアンチパターンを軽減する自動化にとって、フレームワークが役に立つことを見ていきます。また、コードのシンプルさにも注目しますが、これは技術的負債の累積を制御し、必要に応じてコードベースをリファクタリングすることによって実現されます。最後に、適切なツールを選択し、選んだ開発言語を最大限に活用するためのヒントを示します。
セキュリティと信頼性はソフトウェアに簡単に後付けできないので、ソフトウェア設計の最初期の段階から考慮しておくことが重要です。こうした機能をローンチ後に追加するのは苦痛であって効果も低く、コードベースに関する他の基本的な前提を変更する必要が生じるかもしれません(このトピックの詳細な議論については、4章を参照してください)。
セキュリティと信頼性の問題を減らすために最も重要な最初のステップは、開発者を教育することです。とはいえ、最高の訓練を受けたエンジニアであってもミスを犯します。セキュリティ専門家が安全ではないコードを書き、SREが信頼性の問題を見落とすことはありうるのです。安全性と信頼性に優れたシステムの構築に関連する多くの検討事項やトレードオフを同時に念頭に置いておくのは、ソフトウェアの開発も担当している場合には特に、難しいことです。 ...
Get セキュアで信頼性のあるシステム構築 ―Google SREが考える安全なシステムの設計、実装、保守 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.