タグ付けされた質問 「security」

暗号化とITセキュリティに関する質問。これは、コンピュータ、ネットワーク、またはデータベースのセキュリティです。

4
ログイン試行の失敗をログに記録するとパスワードが公開されます
次のようなメッセージで、失敗したログイン試行をWebサイトに記録し始めました Failed login attempt by qntmfred これらのログの一部が次のように見えることに気づきました Failed login attempt by qntmfredmypassword ユーザー名フィールドにユーザー名とパスワードを入力したためにログインに失敗した人もいると思います。パスワードはデータベース内でハッシュ化されますが、何らかの理由でdbが危険にさらされた場合、これらのログメッセージは、攻撃者がこのようなログインに失敗する少数の人々のパスワードを把握する方法になる可能性があります。 これを処理するより良い方法はありますか?この可能性についても心配する必要がありますか?

5
JavaScriptを(ブラウザで)ハッキングするのはどれくらい簡単ですか?
私の質問はJavaScriptのセキュリティに関するものです。 BackboneやAngularJSのようなJavaScriptフレームワークを使用し、安全なエンドポイントが必要な認証システムを想像してください。サーバーは常に最後の単語を持ち、あなたが望むことをする権限があるかどうかをチェックするので、それは問題ではありません。 しかし、サーバーを使用せずに少しのセキュリティが必要な場合はどうでしょうか?それは可能ですか? たとえば、クライアント側のルーティングシステムがあり、ログインしたユーザーに対して具体的なルートを保護したいとします。したがって、保護されたルートへのアクセスを許可されているかどうかを確認するためにサーバーにpingを実行します。問題は、サーバーにpingを送信すると、応答を変数に保存するため、次回プライベートルートにアクセスしたときに、既にログインしている(サーバーにpingを送信していない)かどうか、および応答でそれが行くかどうか。 ユーザーがその変数を変更してアクセスするのは簡単ですか? 私のセキュリティ(およびJavaScript)の知識はあまり良くありません。しかし、変数がグローバルスコープ内になく、ゲッターのみを持ちセッターを持たないモジュールパターンのプライベート部分にある場合、その場合でも、ハッキングできますか?

14
競合他社のサイトに脆弱性が見つかった場合はどうすればよいですか?
私の会社のプロジェクトに取り組んでいる間、ユーザーが競合他社のサイトとの間でデータをインポート/エクスポートできる機能を構築する必要がありました。これを行っている最中に、要するに、競合他社のWebサイトでスクリプトを実行できる非常に深刻なセキュリティ上の悪用を発見しました。 私の自然な気持ちは、善意の精神で彼らに問題を報告することです。利益を得るために問題を利用することは私の心を越えましたが、私はその道をたどりたくありません。 それで、私の質問は、彼らを助けるためにあなたの直接の競争に深刻な脆弱性を報告しますか?または、口を閉じたままにしますか?おそらく、私が問題を報告することで彼らを助けているという事実から少なくともいくつかの利点を得るために、これについてより良い方法がありますか? 更新(明確化): これまでのすべてのフィードバックに感謝します。感謝します。問題の競争が市場の巨大なもの(複数の大陸の数百人の従業員)であり、私の会社がほんの数週間前(3人の従業員)に始まったと付け加えれば、あなたの答えは変わりますか?言うまでもなく、彼らは間違いなく私たちを覚えていないでしょうし、もしあれば、彼らのサイトが仕事を必要としていることに気づくだけです(それが私たちが最初にこの市場に参入した理由です)。 これは、道徳的対ビジネス的なやり取りの1つかもしれませんが、すべてのアドバイスに感謝しています。


14
クライアントがパスワードを取得する必要がある場合はどうなりますか?
現在、職場でアプリケーションを継承していますが、残念なことに、データベースに保存されているユーザーパスワードは社内暗号化機能を使用して暗号化されており、暗号化解除機能も含まれています。 したがって、誰かが本当にする必要があるのは、ユーザーテーブルをコピーし、暗号化アセンブリ(データベースの実稼働アクセス権を持つユーザー)をコピーするだけです。そうすれば、100,000の電子メールアドレスと潜在的なパスワードにアクセスできます。 なぜこれが良いアイデアではないのかをビジネスに説明しようとしていますが、セキュリティの概念は技術的にあまり気になっていないので頭に浮かぶようです(政府向けです)。さらに、管理者ユーザーがユーザーのパスワードを取得してログインし、作業を行うために必要な機能を実行するための、アプリケーション内に実際に存在する機能があります。 そのため、彼らはセキュリティへの影響を理解していません。また、強力なセキュリティポリシー(パスワードを簡単に取得できないようにハッシュする)を実装するには、既存の機能を削除する必要があります。 私は何をすべきか?そもそもパスワードシステムを構築していなかったので、何か問題が発生しても非難できるわけではありません。一方、私はそれについて気分が悪く、また、100,000の潜在的な電子メールログオンにアクセスしたくありません。

6
開発者のラップトップに重要なデータベースを保存するための適切なセキュリティ対策は何ですか?
いくつかの指定があります。 開発者は、マシンに本番データベースのレプリカが必要です。 開発者は、App.configファイルで上記データベースへのパスワードを持っています。 このデータベースのデータが危険にさらされるのは望ましくありません。 いくつかの推奨される解決策とその欠点: フルディスク暗号化。これはすべての問題を解決しますが、ラップトップのパフォーマンスを低下させ、私たちは新興企業なので、パワーホースにお金をかけないでください。 暗号化されたハードディスクを使用してVMを作成し、その上にデータベースを保存します。これはうまく機能しますが、Web.Configにパスワードがあるため、あまり役に立ちません。 ソリューション番号2 +開発者が何かを実行するたびにデータベースパスワードを入力する必要がある。これはすべての問題を解決しますが、1分に数回アプリケーションを起動することがある開発者にとっては非常に面倒です。また、同じデータベースに接続する複数のアプリケーションがあり、パスワード画面の実装はそれぞれ異なる必要があります。 だから、私の問題は、そのような問題の一般的な解決策があるか、または上記の解決策のいずれかを実行可能にする方法に関する提案がありますか?

4
MVC / RESTは、他のユーザーに属するリソースに対して403または404を返す必要がありますか?
リソースベースのサイト(MVCアプリケーションやRESTサービスなど)で作業する場合、クライアントGETがアクセスできないリソースをクライアントが試行する場合、主に2つのオプションがあります。 403、クライアントが無許可であると言う; または 404は、リソースが存在しない(または見つからなかった)ことを示します。 一般的な知恵と慣習は真実で応答することであるようです-つまり、403。しかし、私はこれが実際に正しいことかどうか疑問に思っています。 安全なログインシステムは、ログイン失敗の理由を決して知らせません。つまり、クライアントに関する限り、存在しないユーザー名と誤ったパスワードの間に検出可能な違いはありません。これの目的は、ユーザーID(またはさらに悪いことに、電子メールアドレス)を検出できないようにすることです。 プライバシーの観点からは、どのリソース誰かが伝えを見て、リアリティショー(サバイバーが、私は思う)の受賞者を出した前記私は事件を思い出してる404を返すように多くの方が安全と思われるしなかっ上に存在しますサイトvs. 403がシリアル番号やアカウント番号などの機密情報を提供する可能性があることを心配しています。 404を返さない説得力のある理由はありますか?404ポリシーは他の場所でマイナスの副作用を引き起こす可能性がありますか?そうでない場合、その慣行はより一般的ではないのはなぜですか?

6
localstorageはどれくらい安全ですか?
質問はそれをすべて本当に言っています。サービスを提供したいのですが、自分でデータをデータベースに保存したくありません。ハッキングなどの最近のすべてのニュースで、クライアントがデータを完全に制御できる方が良いように思えます。 問題は、保存されているデータが潜在的に機密であるということです。私がやろうとしていたことは...クライアントがウェブサイトを訪れたときに、「あなたはパーソナルコンピューターか公共のコンピューターか」という質問がありました。公共のコンピューター上にある場合、サイトはアクセスを拒否します。 それらがパーソナルコンピュータ上にある場合、パスワードを設定するように求められます。すべてのデータは、このパスワードで暗号化されます。これは明らかに安全ではありません。暗号化方法はJavaScriptであり、パスワードはプレーンテキストであるため、経験豊富なユーザーがlocalStorageでパスワードを見つけてデータにアクセスすることは可能だと思います。 しかし、これはあまり問題ではないと感じています。あなたがパーソナルコンピュータを使用している場合、これが起こる可能性はわずかです...誰かがコンピュータ上の特定のユーザーアカウントにアクセスする必要があり、誰かがサイトについて知る必要があります...誰かが理解する必要がありますlocalStorageとそのアクセス方法。機密データは、身元を危険にさらすようなものではありません。これは、ほとんどの人が一般に公開したくないものを記録するだけです。 本当に問題なのは、localStorageは十分に安全なのか? 追加の質問.. localStorageを消去するのはどれくらい難しいですか?ユーザーが誤ってデータを消去するのは望ましくありません。 最後に-サイトにアクセスできるパスワードを持っているかのように、データを暗号化/復号化する価値さえあります。

6
既存のユーザーに新しいパスワードを強制せずにパスワードハッシュを更新する
確立されたユーザーベースで既存のアプリケーションを保守します。時間が経つにつれて、現在のパスワードハッシュ手法は時代遅れであり、アップグレードする必要があると判断されています。さらに、UXの理由により、既存のユーザーにパスワードの更新を強制することは望ましくありません。パスワードハッシュ更新全体は、画面の背後で行われる必要があります。 以下を含むユーザー用の「単純な」データベースモデルを想定します。 ID Eメール パスワード このような要件を解決するにはどうすればいいですか? 私の現在の考えは次のとおりです。 適切なクラスに新しいハッシュメソッドを作成します データベース内のユーザーテーブルを更新して、追加のパスワードフィールドを保持する ユーザーが古いパスワードハッシュを使用して正常にログインしたら、2番目のパスワードフィールドに更新されたハッシュを入力します これにより、パスワードハッシュを持っているユーザーとパスワードハッシュを更新していないユーザーを合理的に区別できないため、両方のチェックを強制されるという問題が残ります。これは恐ろしく欠陥があるようです。 さらに、これは基本的に、すべてのユーザーがパスワードを更新するまで、古いハッシュ手法を無期限に保持することを意味します。その時点でのみ、古いハッシュチェックの削除を開始し、不要なデータベースフィールドを削除できました。 私の現在の「ソリューション」は汚れていて不完全であり、そうではないので、ここでいくつかのデザインのヒントを探していますが、可能なソリューションを記述するために実際のコードが必要な場合は、自由に言語を使用してください。

5
信頼できないコードの実行のベストプラクティス
私は、ユーザーがサーバーに対して任意の信頼できないpythonコード(このようなビット)を実行できるようにする必要があるプロジェクトを持っています。私はpythonにかなり慣れていないため、システムにセキュリティホールやその他の脆弱性を招くようなミスを避けたいと思います。利用可能なベストプラクティス、推奨される読書、または私のサービスを使用可能にするが悪用できないようにする他のポインターはありますか? これまで私が考えてきたことは次のとおりです。 コンテキストから削除__builtins__して、execなどの潜在的に危険なパッケージの使用を禁止しますos。ユーザーは、私が提供したパッケージのみを使用できます。 スレッドを使用して、適切なタイムアウトを強制します。 execコンテキスト内で割り当てることができるメモリの総量を制限したいのですが、それが可能かどうかはわかりません。 ストレートexecに代わるものがいくつかありますが、ここでどれが役立つかわかりません: を使用して、ast.NodeVisitor安全でないオブジェクトにアクセスする試みをキャッチします。しかし、どのオブジェクトを禁止する必要がありますか? 入力内の二重アンダースコアを検索します。(上記のオプションよりも優雅ではありません)。 PyPyコードのサンドボックスを使用するか、サンドボックスに似たもの。 注: JavaScriptベースのインタープリターが少なくとも1つあることは承知しています。私のシナリオではうまくいきません。

14
10代の若者にソフトウェアウイルスについて教えることは倫理的ですか?[閉まっている]
私は、息子の中学校で放課後のコンピュータークラブの指導を志願しました。コンピュータウイルスには多くの関心が寄せられています。同じディレクトリ内の他のバッチファイルに感染する単純なバッチファイルウイルスを作成する方法を示すことを考えていました。また、同じ名前のバッチファイルを作成する方法を示しますが、それはパスに近いため、別のプログラムを置き換えることができます。 また、ウイルスとウイルスのような動作を認識する-ウイルス対策技術の議論を可能にすることができます。 私は妻にこのアイデアを言ったが、彼女はそれがひどいアイデアだと思った。それらに搭載された武器を与えることと比較しました。この手法は、現代のオペレーティングシステムの実際のいたずらにはすぐには適用されないため、危険だとは思いません。 私は無頓着すぎるのですか、それとも彼女が心配しすぎているのですか?これは私の質問に対するこの議論を解決するものではなく、私はただ別の意見を得ようとしています。 更新:システム(またはディレクトリ)間の移動や悪意のある動作をカバーする予定はありません。そして、誰もが私が深い暗黒の秘密を明らかにしていると思わないように、ここに私が図書館で見つけた1996年の本があります。悪意を抱く人がいるなら、彼らは道を見つけるでしょう。
31 security  ethics 


3
カーネルモードWebサーバー:巧妙な最適化またはセキュリティの悪夢?
私は、1人のユーザーが2011年からリンクを投稿し、IISが他のほとんどの(* nix)Webサーバーよりもはるかに速いことを説明するHacker Newsスレッドを読んでいました。別のユーザーは、HTTP.sysというカーネルモジュールを持つことでIISがその利点を得ると説明します。私の知る限り、2015年に他のほとんどの一般的なWebサーバーはこれを行いません。 カーネルモードのWebサーバーを作成したくありません。セキュリティエクスプロイト(低い保護リングでの実行はそれほど深刻ではない)から解放されると自分を信頼することはできません。 ソフトウェアエンジニアの観点から(Webサーバーの顧客とは対照的に)、カーネルモードで実行するのは賢明なパフォーマンス決定ですか?カーネルモードサーバーを消費者の純利益にするという点まで、アプリケーション開発でセキュリティの懸念を緩和できますか?

1
仕様に欠陥がある場合、引き続き従うべきですか?
私は、雇用主のアプリケーションの1つと、クライアントが開発した外部システムとの統合を開発するように割り当てられました。セキュリティに関連するいくつかの露骨な欠陥がある統合のためのクライアントの仕様。この欠陥により、不正なユーザーがシステムにアクセスして、制限されたデータを表示できます。 設計どおりに実装された場合の欠陥とその潜在的なセキュリティリスクを指摘し、欠陥のない代替手段を提供しましたが、(要するに)クライアントから「指定どおりに行う」と言われました。 プログラマには、既知のセキュリティリスクのあるコードを実装しないという倫理的な責任がありますか?安全なアプリケーションを作成するためのソフトウェア開発者としての倫理的責任を、クライアントの要件がどの時点で上回るのでしょうか?

4
Guid.NewGuid()がGuid.Emptyであるかどうかを確認する価値さえありますか?
私が取り組んでいるプロジェクトの1つでは、次のパターンがかなり定期的に見られます。 var guid = Guid.NewGuid().ToString(); while (guid == Guid.Empty.ToString()) { guid = Guid.NewGuid().ToString(); } GUIDは一意であることが保証されておらず、MSDNのドキュメントによると、生成されたGUIDはゼロである可能性があることを理解していますが、これは実際に計算上の意味と開発者の時間の観点からサイクルテストを送信する価値がある実用的な考慮事項ですか? ?
28 .net  security 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.