パストパフとペンテスト



情報セキュリティ



への現代的なアプローチ私は情報セキュリティが大好きです。一方では、ビジネスでは、1時間に1回展開される、半ば焼きのプロトタイプを展開する必要があることがよくあります。一方で、それは情報セキュリティ担当者の過酷で近寄りがたい拠点です。すべてはそれらに依存します。そして、SがセキュリティであるIoTの分野での開発でさえ、彼らの監督の下でさらに信頼性が高くなります。製品のプロセス穴の



径を推定する際の重要な問題は時間です。古典的なテストピラミッドについてもう一度少しお話ししたいと思いますが、情報セキュリティのコンテキストで。また、開発者が情報セキュリティからの承認を数週間待たず、ソフトウェアが外の世界に起こりうるすべての脆弱性で輝いていない場合に、便利なプロセスの構築を整理した経験を共有しようと思います。ネタバレ:承認なしに展開できます。



そしてリスト。誰もがリストが大好きです。必要なソフトウェアの小さなセットを提供します。これにより、日常生活が大幅に明るくなります。



何かがつまらない場合は、自動化する必要があります





古典的なテストピラミッド。下部のどこかに、ユーザーがヒンディー語のパスワードを入力した場合にアプリケーションがクラッシュしないことを確認するなど、あらゆる種類の小さなことをカバーする多数のユニットテストがあります。または何か奇妙なものを送った。そして、覚えていれば、iPhoneには「لُلُ​​صّبُلُلصّبُررًॣॣhॣॣ王」という前例がありました。このタイプのテストは自動化に最適ですが、アプリケーションが予期しない場所に流れないという完全な全体像と信頼性を提供できないことが多い狭いケースのみを対象としています。



一番上では、それはすでに完全に手動のテストです。標準的なケースをチェックすることに加えて、スペシャリストが彼の好みにエキゾチックな方法で何かを壊すタスクを与えられたとき、それは「自由な創造性」を提供することができます。いつものように、この種の創造的なアプローチは、このタイプのテストも最も費用がかかるという事実につながります。お金の面だけでなく、悪名高い市場投入までの時間もあります。これは、昨日の会議ですでに約束された新機能を展開する必要がある場合です。



多くの企業が直面している伝統的な問題は、各アイテムの情報セキュリティとの長く悲しい調整です。彼らがとても怒っていて友好的でないからではありません。彼らの仕事はリスクを最小限に抑えることだけです。そのため、可能な限り最小限に抑え、同時にチェックのボトルネックにあるプロセスの半分を停止します。実際、刑務所以前の時代には、コードをゆっくりと磨くことができたとき、これはうまくいきました。そして今、モンキーコーダーを使用する競合他社からの47の半ば焼きプロトタイプが、最初のバージョンの洗練されたソリューションにすでにリリースされています。そしてそれがすべてです。あなたはすでに市場を失いました、すべてのユーザーは別のティックタックで立ち往生しています。



すべてのパイプライン



実際、ほとんどの場合、問題は、開発者にすでに馴染みのあるパイプラインへの情報セキュリティプロセスの不十分な統合です。何らかの理由で、各プッシュには同じflake8とmypyからの多くのチェックが伴い、パッケージ自体に組み立てられ、GitLabランナーのコンテナーにアップロードされ、Artifactoryでテストされて喜んで飛び去ります。または、ステージに失敗して修正のために戻ります。



そして、情報セキュリティだけが、リリースのたびに彼の手で拡大鏡の下にあり、コードをめくって、アプリケーションの開いているポートにスティックを突っ込んでいることがよくあります。最善の解決策の1つは、セキュリティチェックの主要部分を自動プロセスに移行し、手動テストを時間内に制限することだと思います。 IBは、重大​​な脆弱性を発見した場合、拒否権を保持しますが、デフォルトでは、彼らの側からの異議がない場合、アプリケーションは本番環境に移行します。一見恐ろしいように聞こえますが、そのようなプロセス構造は、すべてのルーチン手順を可能な限り自動化し、本当に複雑なことにのみ時間を費やすように動機付けます。



DevSecOpsや他のTriCeraTopsのようなこれらの略語は私を少し怖がらせますが、これはまさに時間コストを削減するために最も頻繁に編成する必要があるものです。 pythonの例を見てみましょう。リンターから始める価値があります。ほとんどの人がflake8やmypyのような基本的なリンターのいくつかの変種を台無しにしたと思います。それでも、flake8の拡張バージョンであるwemake-python-styleguideをお勧めします。



これは、従来からインストールおよび開始されています。



pip install wemake-python-styleguide
flake8 your_module.py


このリンターの主な問題は、最初はキーボードでモニターを壊したくなる可能性があることです。特に古いレガシープロジェクトでは、修正するよりも燃やす方が簡単です。それでも、不要なチェックを除外すると、基礎となるコードの品質をかなり厳密に制御できるようになります。



コード自体に曲がった構造、読みやすさの悪さ、サイクロマティックの複雑さの高さを確認した後、静的セキュリティリンターを実行する必要があります。はい、緩く型付けされた言語では、そのようなリンターはあまり良くありませんが、コード内のpassword = 'qwerty123'のような典型的な問題を特定することができます。ここでも同じ盗賊を使うことができます



これはすべてうまく機能しますが、無料のソリューションの問題は、ほとんどの場合、最新の脆弱性データベースにあります。多くの場合、次のようなものを追加することは理にかなっています安全性



画像


ソース



同様のチェックアウトオプションは通常、同じ企業のGitLabと完全に統合されます。

そうは言っても、通常、コンソールには有益な出力があります。



safety check --full-report





理想的には、すべての操作の後に、アプリケーションのすべてのセキュリティ要件を段階的にチェックする完全なパイプラインが必要です。



画像


ソース



一般的なチェック:



git secretcheck -

SCAコードにオープンシークレットがないことを確認します-外部の依存関係とライブラリに脆弱性がないことを確認します。古いバージョンの

SASTライブラリ(脆弱性の静的コード分析)をフリーズする場合は重要です。

コンテナ監査-展開に使用されるコンテナイメージの監査。彼らもしばしば穴だらけです。特に、多くの多彩なレイヤーからのエキゾチックなサンドイッチを使用している場合。

DAST-アプリケーションの展開、登録、正当なユーザーとしてのログイン、およびフロントエンドでの一般的な攻撃の実行



情報セキュリティのために残っているもの



人々の役に立たない肉の生き物を日常業務から 降ろしたので、真に創造的なアプローチを必要とするタスクをそれらに移すことができます。



分析、ネットワークテスト、パスワード推測のためのツールの同じ時代を超越した武器があります。Wireshark、hashcat、Hydra、その他のユーティリティが廃止されたことはありません。



しかし、使い慣れたツールの中でも、新しく、時には非常に便利なものが登場します。それらのいくつかに注意を払うことをお勧めします。



Nikto2



github.com/sullo/nikto

Niktoは、オープンソースのWebサーバースキャナーです。彼はまったく静かではありません。真剣に、あなたがあなたの職場からそれを起動し、15分間あなたがまだセキュリティ担当者に囲まれた床に伏せて横たわっていない場合、あなたは侵入検出に問題があります。



このソフトウェアは、6700を超える潜在的に危険なファイル/プログラムを含む、多くの要素についてWebサーバー上で複雑なテストを実行します。また、HTTPサーバー設定などのサーバー構成項目をチェックし、インストールされているWebサーバーとソフトウェアを識別しようとします。スキャンアイテムとプラグインは頻繁に更新され、自動的に更新される場合があります。



Fuzzdb



また、一般的なパターンと脆弱性を使用したWebアプリケーションに対する自動攻撃のための非常に優れたツールです。彼は、多くの標準的な攻撃でアプリケーションを喜んで攻撃し、同時に、管理パネルへのアクセスと権限が制限されたログファイルへのアクセスをカバーするのを忘れていないかどうかを確認します。多くの頭痛や定期的なチェックを軽減することができます。



Nmap +脆弱性





Vulnersは、あらゆる種類のCVE、ベンダーのセキュリティ速報、Metasploitでの悪用、およびテーマ別フォーラムで脆弱性を手動でキャッチした結果のアグリゲーターです。基本的に、データベースにクエリを実行するためのAPIを提供します。私は、有名なnmapのプラグインに魅了されました。これは、Webサービス用の既製の攻撃ベクトルのファンをすぐに提供します。よく見ることを強くお勧めします。



出力のようなもの





人間への死-ロボットへの栄光!



しかし、真剣に、ルーチンを最小限に抑えて、それを本当に実行する必要がある人、つまり魂のないスクリプトとパイプラインに渡すようにしてください。そして、人々を創造性に従事させましょう。これはより正しいです。










All Articles