私は偶然出会った この質問
私はスタートアップにセキュリティのアドバイスも提供したい。
目的:SaaS Webアプリケーションを構築して、企業がYahoo!ストアのようなオンラインストアをすばやく開くことができるようにします。
プログラミング:主に私が行いました。時々、知らないことを手伝ってもらうためにフリーランサーを雇うことがあります。
私のウェブアプリケーションにはCakePHPフレームワークを使用しています。
ホスティング:Amazon EC2およびElastic Load Balancingなどのその他のAmazon Webサービスを使用します。
システム管理:Ubuntuサーバー10.04を実行しています
これはまだハイレベルな質問であることは知っています。これをいくつかのサブエリアに分割しましょう。
プログラミング、フリーランサーとのコラボレーション
ProjectLockerでgitとリモートgitリポジトリを使用しています。私はgitの専門家ではありません。私が知っているのはgit add、git commit -a、git Push、git merge、git checkout、git pullだけです。
フリーランサーが私のために働くとき、私はいつも彼らに別のブランチで彼らの仕事をコミットするように言います、そして私はメインブランチに自分自身をマージします。
そこにセキュリティの抜け穴があるかどうかはわかりません。私にお知らせください。
プログラミング、コード自体
まあ、皆さんはコードを見ることができませんが、私はCakePHPフレームワークを使用しています。
特定のフラッシュプラグインを機能させるために時々CSRF保護を無効にする必要があったことを除いて、私はすべてを正しく行ったと思います。
どうすればいいかわからない。
そこにセキュリティの抜け穴があるかどうかはわかりません。私にお知らせください。
導入
Capistranoを使用して展開を行います。基本的に、私はcapistranoがサーバーにsshして考え、そこからリモートリポジトリからgit fetchを実行するように指示します。
基本的にはcapistranoデプロイスクリプトをどこかからコピーして貼り付け、変更しました。
そこにセキュリティの抜け穴があるかどうかはわかりません。私にお知らせください。
ユーザー向けWebアプリケーション
SSL証明書を購入してインストールしました。ユーザーの個々のサブドメインにはワイルドカード証明書を使用し、サインアップページには標準のSSL証明書を使用する必要がありました。
拡張検証SSL証明書を購入しませんでした。必要だとは思わなかった。
そこにセキュリティの抜け穴があるかどうかはわかりません。私にお知らせください。
システム管理、コラボレーション、ホスティング:
まだライブではないので、サーバーをセキュリティ更新で更新する方法に関するプロトコルがありません。
Ubuntu初心者が使用できる簡単なものをいただければ幸いです。
アマゾンウェブサービス、システム管理、コラボレーション:
私は、SSL管理者をインストールするためにsys管理フリーランサーを雇いました。これは、a)Linuxに精通していない、b)Amazon Web Servicesに精通していないためです。
将来、UbuntuまたはAmazon Web Servicesのトラブルシューティングを手伝ってくれる人を雇った場合、SaaSを危険にさらすことなく、どうすればよいですか?
私はこれを Amazon Web Services で見ました
使い方がわかりません。
雇われたフリーランサーが私のシステム管理者の問題を安全な方法で解決できるようにするための良いプロトコルを誰かが私に与えることはできますか?
他に考えたことのない領域
私にお知らせください。
さてさて、これは大きな質問なので、この答えは決して完全なものではありませんが、ここで私の頭の上にいくつかの考えがあります。
GIT:
自分でマージを実行しているのは良いことです。つまり、すべての差分を処理するということですか?そうしない場合、コーダーの信頼はPOFになる可能性がありますが、マージの量に依存する場合は、自分ですべての差分の作成に多くの時間を費やすと予想されます。
プログラミング/フレームワーク:
CSRFを無効にして慎重にしたいと思うかもしれませんが、それを行ってフラッシュを実行すると、悪質なエクスプロイトが発生する可能性があります。それらを防ぐための最善の策は、本当に確実なセッション処理が行われていることを確認し、ユーザーがリソースにアクセスしているときはいつでも確認確認することです。一般的なCSRFの詳細については、ここ CSRF FAQs を参照してください。また、 この脆弱性 にも注意してください。私はCakePHPにそれほど詳しくありませんが、最善の方法は、サニタイズ、可能な場合はホワイトリストへの登録、ACLの使用などを確認することです。 ここ は、追加の基本的な方法CakePHPインスタンスのセキュリティ。
サーバーセキュリティ:
私はカピストラーノとの豊富な経験はありませんが、あなたが信頼できるフォークをつかんでいる限り、それはかなり堅実なツールだと聞いたことがあります。 capistranoが悪用される可能性が最も高いのはSSHの処理自体の脆弱性です。 Webサーバーのセキュリティに関しては、Amazonは最良の選択肢の1つだと思います。
SSL:
ワイルドカード証明書には非常に注意が必要です。サブドメインの1つが侵害された場合、ネットワーク全体も侵害されます。必要なのは、1つの認証局に脆弱性があり、すべての顧客とそのデータが侵害されることです。 eコマースを行っているので、顧客データに対して最高レベルのセキュリティを確保することが非常に重要です。
概要:
全体として、現場で信頼でき、アプリケーションを確認した経験があるWebアプリのセキュリティ専門家を雇うことをお勧めします。最も機密性の高いタイプの1つである財務データを扱うことになるので、ソフトウェアをしっかりと徹底的に調べることが非常に重要です。始めたばかりでは難しいことはわかっていますが、時間をかけてアプリを完全に保護しないと、1つのエクスプロイトがビジネス全体をダウンさせる可能性があります。
それが役に立てば幸い:)
1)まず第一にOWASP Top 1をマスターします。
2)Web Application Firewallをインストールします。それらは、理由(PCI-DSS)のためにペイメントカード業界から要求されています。
3)ロックダウンPHP withPHPSecInfo。
6)RIPS-PHPのような静的コード分析を使用して、コード内の深刻な脆弱性を追跡します。
7)AppArmorはエクスプロイトを破壊するため、Linux、特にUbuntuを使用します。
8)最後に重要なことですが、コードWebアプリケーションの脆弱性をテストします。これは多額の費用をかける必要はありません Sitewatch には無料の脆弱性スキャンサービスがあります。
@Rookのコメントに加えて、インターネットでサーバーを実行している場合は、OSSECを使用することを強くお勧めします。優れた無料のログ分析/ HIDSソフトウェア。私はすべての一般向けキットでそれを実行します。
hostingアスペクトに追加するには:AWSは 共有の責任モデル を利用して、カバーする部分と顧客が取る必要のある部分を示します世話:
つまり、特にアプリケーションと転送中のデータは、ユーザーが保護する必要があります。すでに述べた OWASPガイドライン を実装することによって。