私はソフトウェアを7年ほど作成しており、セキュリティに2〜3年積極的に関心を持っています。この関心は完全に自発的で、主に攻撃側にあります。私は いくつかのFOSS攻撃的なセキュリティツール を記述し、 DNS rebinding のような特定の攻撃ベクトルを詳細に調べました。この経験のおかげで、私は最初のinfosecジョブをVPS /クラウドコンピューティング会社のアプリケーションセキュリティエンジニアとして着陸させることができました。私の役割の1つは、構築するすべてのソフトウェアの定期的なコードレビューを実施することです。私はコードを読んだり、非公式な提案をしたりするのは見知らぬ人ではありませんが、他の人のコードを体系的かつ正式に定期的にレビューするのは初めてです。正直なところ、少し怖いです。私は何年にもわたって自分で行使してきたセキュリティへの情熱を持っていますが、少なくともコードレベルではなく、この件に関してリスクの高い信頼できる推奨を行うことはありませんでした。
セキュリティ関連コードレビューを実施して経験または快適さを得る方法について何か提案はありますか?役職に就くまで2週間あります。会社に何らかの種類のAuthority figureとして現れる前に、コードをレビューし、ベストプラクティスを推奨する方法を学びたいと思います。一般的なアドバイス、推奨事項、または考えは大歓迎です!
OWASP ASVS をベースラインとして使用できます。次のカテゴリに分類されたソフトウェアチェックを非常に包括的にカバーします。
Architecture
Authentication
Session Management
Access Control
Input validation and output encoding
Cryptography
Error Handling
Data Protection
Communications
Malicious Code
Business Logic Flaws
Files and Resources
Mobile
API
Configuration
Internet of Things
ご覧のとおり、フィールドはかなり広い可能性があるため、レビューされたアプリケーションの脅威モデルを構築して、アプローチに優先順位を付けることをお勧めします。基本的に、最も重要な部分を最初にレビューします。
さらに、 [〜#〜] cmu [〜#〜] によって提供されるような言語固有のチェックを実装できます。
私は詐欺師であることを心配しません。あなたは開発者と関係を持つことができる開発のバックグラウンドを持っており、開発者はおそらくセキュリティのためにappsecの変更を理解している誰かを雇うことに勇気づけられるでしょう。
ただし、範囲内に少数のアプリケーションしかない場合を除き、提案しているのは、1人が手動で行うには大きすぎる仕事です。
開発スタッフのセキュリティチャンピオンを奨励する必要があります。セキュリティチャンピオンは、セキュリティへの関心の点で、あなたが数年前にいた開発者です。そして、あなたは彼らに彼らのチームのコードのコードレビューを行わせることができます。
考えられる悪い習慣の検索を絞り込むのに役立つ静的コード分析ツールがあります。 Veracode(価格)、CodeDX(安くて正確ではない)、SonarQube(オープンソース)。
あなたの質問の一部は、コードレビューを行う方法です。私は次のビデオから多くを得ました: https://www.youtube.com/watch?v=7a5nN_sfK1E