- 1. CTF解法メモ【Hacker101】
- 2. コンピュータウイルスに感染したかもしれないと思ったら
- 3. Google Chrome 78以降でMonacaにアクセスした際にサードパーティーCookieでエラーが出る場合の対処法
- 4. 個人開発でFirestoreのセキュリティルールを頑張って書いてみたので少し公開する
- 5. sSSLScan.exe Manual
- 6. 高度サイバー攻撃の痕跡を見つけるためのDNS Queryログ分析:Soliton NKのWinevent インジェスターを用いたWindowsデバイス管理
- 7. Dockerでファイルマウントができない
- 8. C#でRC4(Arcfour)を計算する
- 9. AWSネットワーク周り基礎知識まとめ
- 10. AWS での多エレメント認証 (MFA) の使用
- 11. 同一オリジンポリシーとCORS
- 12. C#でバイナリファイルのSHA-256を計算する(実質4行)
- 13. ウェブページセキュリティ対策(クリックジャッキング)
- 14. マルチクラウド環境におけるサーバ証明書の運用 Let’s Encrypt/AWS/Azure
- 15. 「セキュアで堅牢なAWSアカウント」を実現する CloudFormationテンプレート – ②パスワードポリシーの自動修復
- 16. 「セキュアで堅牢なAWSアカウント」を実現する CloudFormationテンプレート – ①サービスの有効化
- 17. 間違いのないSSH鍵を最速で作成する
- 18. 今更だけどDockerコンテナの脆弱性をRancher経由で利用されroot権を渡してしまった話
- 19. 開発チームのための DevOps パイプラインを統合する9つの優れた DevSecOps ツール
- 20. 「世界最悪のログイン処理コード」をセキュアに実装してみる(実装の解説)
CTF解法メモ【Hacker101】
# これは?
CTFを解く中であまりにも自分ができなさすぎるので,そもそも当たり前としてどこにも載っていないレベルの常識を書き溜めるモノ.Hacker101の問題を取り上げる適宜更新していく
## micro-cms v1: Easy
### 解けなかったやつ
* URLに対するSQLi -> `/path/to/10’`
* 1時間考えても全く思いつかず
* ただの気づきがないやつ -> `閲覧URLのパーミッション拒否ページを見たあと,その編集ページは開ける`
* `/path/to/10` は403だが `/path/to/edit/10` は見れてフラグがある
* そもそも番号が一部飛んでることに気付けなかったのが問題### 解けたやつ
* `’javascript’`が消される環境下でのxss
* -> `onclick=’alert(1)’`, `## micro-cms v2
* こいつには編集と追加のためにロ
コンピュータウイルスに感染したかもしれないと思ったら
# はじめに
本記事は、情報機器によく触れてはいるけど、セキュリティに関する知識はあまり無い方向けに作成した記事です。
誤った説明や、分かりにくい点があれば、コメントください。# 用語について
* 本記事における「コンピュータ」とは、Windows PC、Mac PC、iPhone端末、Android端末など、画面とブラウザ搭載し、WEBサイトを閲覧できるあらゆる情報機器を指します。
* 本記事における「ブラウザ」とは、Edge、Internet Explorer、Safari、Chrome、Firefox、Operaなど、WEBページを閲覧するためのソフトウェアを指します。# 弟からSOS
弟からこんな写真が送られてきました。
![1573707121956.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/455300/acd12b8a-9cfe-8f3d-68b2-04718554d465.jpeg)
ブラウザでWEBサイトを閲覧中に表示されたとのこと。
ググったときに本記事が検索結果に
Google Chrome 78以降でMonacaにアクセスした際にサードパーティーCookieでエラーが出る場合の対処法
Google Chrome78以降でセキュリティが向上したようです。Monaca IDEにアクセスすると、次のようなエラーメッセージが出ました。使えないことはないんですが、プレビューサーバに反映されないような状態です。
“`
Trying to connect to server. Please make sure that you DO NOT block any 3rd party cookies.
“`![Screenshot_ 2019-11-14 10.54.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/1fbfa2d3-d6bf-39af-2c9e-d2c8c5fa247b.png)
この症状ははてなブログでも確認されていて、サードパーティーCookieをデフォルトで弾くようになったのが影響しているようです。
[Chrome 79(78 以上?) で はてなブログ のヘッダに「サードパーティーCookieが無効になっています」と表示されたり、ニンテンドーアカ
個人開発でFirestoreのセキュリティルールを頑張って書いてみたので少し公開する
#はじめに
Firestoreを利用されている皆さま、Firestoreのセキュリティルールはどのように書かれているでしょうか。
Firestore使い始めの方は、具体的にどうルールを書けばいいかが分かりづらくないでしょうか。
今回は、私が作ったサービスで具体的にどう書いたかについて一部だけ公開させてもらいます。なお、私はFirestore歴は長くないため内容は**Firestoreに慣れていない個人開発者向け**です。
誤っていることがありましたらお手数ながらコメントなどいただけると嬉しいです。#概要
先日、「[iken](https://ikens.net/)」という、クリエイターが作品の率直な意見をもらい改善するためのWebサービスをリリースしました。
開発全般については別途記事を書かせてもらいたいと思いますが、Firebase大盛り(Firestore、Hosting、
Authentication、Functions、Storage)で作っています。
今回は、このWebサービスで利用したセキュリティルールから一部を抜粋して説明します。
一部の条件とフィールド名等は~~
sSSLScan.exe Manual
# sSSLScan.exe
[BouncyCastle.dll](http://www.bouncycastle.org/csharp/) ver1.8.5 を用いて、対象 SSL/TLS サーバに対して、許可されている Protocol/CipherSuite を総当たりで調べるツール。
SSLscan みたいなツール。
「[sWebTool](http://rocketeer.dip.jp/sanaki/free/free140.htm)」 の ver5.2.3.0 から同梱されている
# 制限
[BouncyCastle.dll](http://www.bouncycastle.org/csharp/) ver1.8.5 からSSL3.0~TLS1.2までが対象。
SSL2.0 に関しては調査できない。
# usage
“`
C:\>sSSLScan.exe
sSSLScan.exe ver 5.2.3.0
created by active@window.goukaku.comsSSLScan.ex
高度サイバー攻撃の痕跡を見つけるためのDNS Queryログ分析:Soliton NKのWinevent インジェスターを用いたWindowsデバイス管理
#DNS Query分析の必要性:
LAN内のコンピュータが乗っ取られたり、ウイルス感染した際、それらが遠隔操作拠点(Command & Controlサーバ)に向けてDNSプロトコルで通信する場合があることが知られており、LAN内のコンピュータからのDNS Queryについて異常なものがないかどうかログを集積して分析することが、監査証跡の観点から近年推奨されてきました。
例えば、JPCERT/CCが紹介している「[高度サイバー攻撃への対処におけるログの活用と分析方法](https://www.solitonnk.com/)」においても、高度サイバー攻撃の痕跡を見つけるためのログの分析方法としてDNS Queryの分析を推奨しています。
Windowsクライアントマシンが乗っ取られて異常なDNS Queryを発しているかどうかを知るためのログ取得には、これまでWindows OSのモニタリングツールであるMicrosoft Sysmonにその機能がなかったため、多くの場合はLAN内のDNSサーバで受けたDNS Queryを集積・分析する手法がとられてきました。しかし、2019年
Dockerでファイルマウントができない
Windowsで、Dockerのvolumesを指定し、マウントするときに、設定する必要があるが、エラーが出たため、解決方法をメモしておく。
# ドライブをマウントする
## Dokcerアイコンを右クリックでSettingsを開く
![de5d2c24bca56f585.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/290588/fd396528-b0c4-9cc1-8eaa-a2ea7624628d.png)## Shared Drives → Shared にチェック→「Apply」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/290588/e80f4a55-ef1a-4c2a-ba44-86ec8d64583f.png)## エラーが表示される
Firewall detected
A firewall is blocking file sharing between Window
C#でRC4(Arcfour)を計算する
# 内容
PDFでRC4(Arcfour)が使われる場面があり、
Arcfourの計算は、.NETの既存クラスでは対応していないようなので、Arcfourを計算するコードを書いてみた。
一応テストベクタとは一致してそうですが、ご利用は自己責任でお願いします。Arcfourは安全性が十分でないとして、今後は使われなくなる流れのようです。
https://ja.wikipedia.org/wiki/RC4※RC4は登録商標のため、RC4を謳うとまずいらしい
http://e-words.jp/w/RC4.html# 参考サイト
https://tools.ietf.org/html/draft-kaukonen-cipher-arcfour-03#ref-CRYPTLIB
# ソースコード
参考サイトの内容を実装
“`csharp
using System;
using System.IO;public class Arcfour
{
byte[] _S; // S-Box
byte[] _key;
byte _Index;
b
AWSネットワーク周り基礎知識まとめ
## はじめに
AWSのネットワーク周りの知識があやふやなことが判明したため復習。間違ってたらご指摘お願いします。## ネットワーク
### VPC
– AWS内の利用者専用の仮想プライベートネットワーク
– リージョンの中に作成する
– CIDRブロックは/16〜/28の範囲で作成できる
(例:`10.0.0.0/16`)
– 可能な限り大きなサイズ(/16)で作成する
– アドレス不足を防ぐため### サブネット
– VPCをさらに小さなネットワークに区切った単位
– CIDRブロックは/16〜/28の範囲で作成できる
– VPCよりも小さな範囲を指定する
(例:`10.0.1.0/24`)
– インターネットと通信するサブネット(パブリックサブネット)、通信しないサブネット(プライベートサブネット)など、役割・ルーティングによって分割する
– 同一の役割を持ったサブネット、リソース群を複数のAZに作成することで、耐障害性の向上に繋がる(マルチAZ)### ルートテーブル
– パケットが次にどこに向かうか、転送先を決める
– 通信経路(送信
AWS での多エレメント認証 (MFA) の使用
#はじめに
セキュリティ対策はいつでもどこでも十分対応する必要があります。
特に重要な情報管理ではID/PWでログインだけは危ないと思われます。ID、PWの強度設計は強化するほか、多エレメント認証 (MFA) の使用でリスクを低減できます。
#MFAとは
MFAはMulti-Factor Authenticationです。「多要素認証」、「多エレメント認証」など
よくある「二段階認証」もMFAの一種です。#MFAの種類
– 仮想 MFA デバイス
電話やその他のデバイスで動作し、物理デバイスをエミュレートするソフトウェアアプリケーションです。時間同期されるワンタイムパスワードアルゴリズムに基づいて 6 桁の数値コードを生成します。
たとえばGoogleの認証システムアプリケーションです。– U2F セキュリティキー
コンピュータの USB ポートに接続するデバイスです。– ハードウェア MFA デバイス
専用デバイスで時間同期されるワンタイムパスワードアルゴリズムに基づいて 6 桁の数値コードを生成します。– SMS テキストメッセージベース MFA
電話のメッセ
同一オリジンポリシーとCORS
# ざっくり説明
– **同一オリジンポリシー** : ブラウザの機能の一つで、異なるサイトからのアクセスをブロック。
– **CORS** : 異なるサイト間でリソースを共有するための仕様。# 同一オリジンポリシー
– Javascriptなどであるサイトから他のホストにアクセスしようとするとWebブラウザがそれを阻止する。
– 同一オリジンの条件は、FQDN・プロトコル・ポート番号が一致していること。それ以外は別のホストとみなされる。# CORS(Cross-Origin Resource Sharing)
– 同一オリジンポリシー下でも、異なるホスト間でリソースを共有するための仕様。
– サイトA(http://aaaa.com) からサイトB(http://bbbb.com) のリソースにアクセスする例で考える。(1) AがBのコンテンツにアクセスしようとすると以下のようなHTTP HEADERが付与される。
“`
Origin:http://aaaa.com
“`(2) Bはレスポンスヘッダに以下を付与してAからのアクセスを許可できる。
C#でバイナリファイルのSHA-256を計算する(実質4行)
.NETやっぱり便利
# たったこれだけ
“`csharp:sha256test.cs
using System;
using System.IO;
using System.Linq;
using System.Security.Cryptography;class Program
{
[STAThread]
static void Main(string[] args)
{
if (args.Length == 0) { return; }byte[] byteValue = File.ReadAllBytes(args[0]);
SHA256 crypto = new SHA256CryptoServiceProvider();
byte[] hashValue = crypto.ComputeHash(byteValue);
Console.WriteLine( String.Join(“”, hashValue.Select(x=>x.ToString(“x
ウェブページセキュリティ対策(クリックジャッキング)
フレームの脅威というものをいまいち把握していなかったのですが、
クリックジャッキングというものがあるのですね。こちらで詳細を把握させていただきました。
>https://blog.tokumaru.org/2013/03/clickjacking-report-by-IPA.html
⇒機能を勝手に実行されるという面で考えると、CSRFと酷似具体例をだすとこんな感じでしょうか。
①攻撃者が今話題のニュース記事を投稿
⇒iframeで某通販サイトのページのhtmlを透過で表示し、見た目を変えて画面を表示
②ユーザーが”①”のサイトの次へボタンをクリック(某通販サイトと思わずに)
③結果、某通販サイトを退会させられた#対策
httpヘッダにX-FRAME-OPTIONSを付与する。
ブラウザが値を検知し、iframeの出力を制限してくれる。とはいえ、すべてのブラウザがこのhttpヘッダに対応しているかは?なので、
シンプルにCSRFと同じく登録更新系ではトークンを使用するようにしておけば、
安心ではないでしょうか。
退会するには、前画面のトークンが必須など。んー、if
マルチクラウド環境におけるサーバ証明書の運用 Let’s Encrypt/AWS/Azure
# はじめに
本記事は、マルチクラウド環境におけるサーバ証明書の運用についての記事になります。マルチクラウド環境でサーバ証明書を使用している場合は、環境によって対応手順が異なります。また、ワイルドカードでサーバ証明書を取得していている場合は、留意事項があるケースが多いので注意が必要です。
本記事では実際に運用での経験を踏まえて、サーバ証明書の運用時のポイント等について簡潔にまとめています。
## サーバ証明書の選び方
### Let’s Encrypt
Let’s Encryptを使用する場合のメリットとデメリットは以下になります。– メリット
– サーバ証明書の費用がかからない– デメリット
– サポートなし
– 無料で取得できるためフィッシングサイトなどの悪用が多い
– 90日に1回手動更新が必要(更新切れのリスクや保守コスト)**Let’s Encryptを選択する場合は、用途に合わせて使用しましょう。**
### 有料のサーバ証明書を安く購入する方法
有料のサーバ証明書を購入するにあたり、安く購入したいときは入手先によって直販より代理店で購入した
「セキュアで堅牢なAWSアカウント」を実現する CloudFormationテンプレート – ②パスワードポリシーの自動修復
# はじめに
AWSにはアカウントやリソースへの脅威検知に対応した、**AWS Security Hub**, **Amazon Inspector**, **Amazon GuardDuty**, **AWS CloudTrail**, **AWS Config** などのサービスが用意されています。
また、[**CIS AWS Foundations Benchmark**](https://d1.awsstatic.com/whitepapers/compliance/AWS_CIS_Foundations_Benchmark.pdf) という**セキュリティガイドライン**が公開されており、このガイドラインは、**AWSアカウントをセキュアに保つために必要なAWSのセキュリティ設定**を集めた**ベストプラクティス集**として活用できます。自身のAWSアカウントがこのガイドラインにどの程度準拠しているのかを確認/監査する手段として、**AWS Security Hub**で、**CIS AWS Foundations Standard**という機能が提供されています。
本
「セキュアで堅牢なAWSアカウント」を実現する CloudFormationテンプレート – ①サービスの有効化
# はじめに
AWSにはアカウントやリソースへの脅威検知に対応した、**AWS Security Hub**, **Amazon Inspector**, **Amazon GuardDuty**, **AWS CloudTrail**, **AWS Config** などのサービスが用意されています。
また、[**CIS AWS Foundations Benchmark**](https://d1.awsstatic.com/whitepapers/compliance/AWS_CIS_Foundations_Benchmark.pdf) という**セキュリティガイドライン**が公開されており、このガイドラインは、**AWSアカウントをセキュアに保つために必要なAWSのセキュリティ設定**を集めた**ベストプラクティス集**として活用できます。自身のAWSアカウントがこのガイドラインにどの程度準拠しているのかを確認/監査する手段として、**AWS Security Hub**で、**CIS AWS Foundations Standard**という機能が提供されています。
本
間違いのないSSH鍵を最速で作成する
ssh-keygenは鍵の強度など、なにかと気を遣うコマンドです。
また、普通に作成するとファイル名やパスフレーズを対話応答で聞かれるので少々面倒ですし、作業メモをとっている場合冗長になります。2019年版という形にはなりますが、(Githubのドキュメントに従った)一般的と思われる強度を持った鍵を対話応答を省略するオプションを使って作成する方法です。
# 結論
ssh-keygenが使える環境で、<>内を変更して次のコマンドを入力します。
(コメントにはユーザ名やメールアドレスを入れる事が一般的と思います)“`sh
ssh-keygen -t rsa -b 4096 -C “<コメント>” -f <秘密鍵のファイル名> -N “”
“`何も聞かれることなく、直ちにカレントディレクトリに次のファイルが作成されます。
./<秘密鍵のファイル名>
./<秘密鍵のファイル名>.pub (公開鍵)### 使用しているオプション
| オプション | 説明 | 備考 |
|:—|:————-|:————-|
| -t | 鍵の種類を指定
今更だけどDockerコンテナの脆弱性をRancher経由で利用されroot権を渡してしまった話
「脆弱性」というほど大げさなものではなく、Dockerが普及した頃から注意喚起されていた内容ですが、仲間内の環境ということもあり油断していました。今回は戒めの意味も込めて記事を書かせていただきます。
# 使用していた環境
– VPS(2コア/8GB Ubuntu 18.04) *2台
– VPS1台は Docker + Kubernetes を管理するためRancherマスターとして使用
– 残りの1台はRancher管理下のホストとしてKubernetesを構成…デプロイ用
– 権限の状況(どちらもログインできるのは私のみ)
– VPS/Rancherマスター…sudo, docker グループに所属するユーザー1個。公開鍵でのみssh可能
– VPS/ホスト…sudo, docker グループに所属するユーザー1個。公開鍵でのみssh可能
– 環境を使用する人
– 私
– 趣味で一緒にコードを書いている友達
– 環境構築が面倒なのでRancherの構築などは私に投げている
開発チームのための DevOps パイプラインを統合する9つの優れた DevSecOps ツール
[AYALA GOLDSTEIN](https://resources.whitesourcesoftware.com/authors/ayala-goldstein) による [9 Great DevSecOps Tools for Dev Teams to Integrate Throughout the DevOps Pipeline](https://resources.whitesourcesoftware.com/blog-whitesource/9-great-devsecops-tools-for-dev-teams-to-integrate-throughout-the-devops-pipeline) の Google 翻訳(とちょっと校正)です。
2018年6月の記事なので今更感がありますが・・・—
## 9 Great DevSecOps Tools for Dev Teams to Integrate Throughout the DevOps Pipeline
DevSecOps アプローチを採用するには、組織全体で態度を変える必要があり、プロセ
「世界最悪のログイン処理コード」をセキュアに実装してみる(実装の解説)
この記事は[「世界最悪のログイン処理コード」をセキュアに実装してみる](https://qiita.com/matsumoto_sp/items/3f1e3366078f8181b5d4)の続きです。
## データベースの設定
以下にデータベースで行っている事のうち、重要な部分をピックアップして紹介します。
### テーブル定義
テーブル定義は一般的なアプリケーションと同じで非常に簡単です。データを保存するテーブルは、ユーザーテーブルとフレンド関連テーブルがあれば十分でしょう。以下のように定義しました。
“`SQL
— ユーザーテーブル
CREATE TABLE users(
user_id INT PRIMARY KEY AUTO_INCREMENT — ユーザーID
, login_name VARCHAR (32) NOT NULL — ロクイン名
, profile VARCHAR (200) — プロフィール
, email VARCHAR (40) NOT NULL — メールアドレス
, profile_open ENUM(‘n