- 1. Node.jsでAWS ElasticSearchへのHTTP リクエストの署名
- 2. セキュリティマネジメントの勉強-暗号化技術と認証
- 3. JavaScriptでgetUserMediaでマイク・カメラ(ビデオ)を使うときの注意点とデバイスへのアクセス権限について
- 4. 【初学者向け】セキュリティ対策入門[番外編]①〜OSコマンドインジェクション編〜
- 5. flaws.cloudに挑戦してみた
- 6. MusicFM解析
- 7. 【初学者向け】セキュリティ対策入門②〜SQLインジェクション編〜
- 8. 午前0時に前日のファイルアクセスログをメールで自動送信する
- 9. 何事にも正しい権限を。あと信じすぎないこと。
- 10. ChromeでDNS over HTTPSを試す方法。
- 11. ウェブサーバに攻撃試行があるけどどうしたらいい?
- 12. 備忘録 – NIST 800-90Aで規定されている CTR-DRBG を読み解く(途中)
- 13. SHA-1の新しい脆弱性について(2020/01/07報告)
- 14. 【初学者向け】セキュリティ対策入門①〜XSS編〜
- 15. WordPress サイトを構築するときに確認したい項目
- 16. 【AWS】AWSのセキュリティー
- 17. リバースエンジニアリングって何?ハッキング入門してみる
- 18. CSSLP(Certified Secure Software Lifecycle Professional)に合格するために実施したこと
- 19. 【初学者向け】セキュリティ対策入門⓪〜環境構築編〜
- 20. 脆弱性情報をAWS Lambdaで取得してみたら
Node.jsでAWS ElasticSearchへのHTTP リクエストの署名
#はじめに
情報保護を難しくなっている現代社会では、セキュリティ対応はますます重要になってきています。
Cloud技術の進化によって、セキュリティ対応しやすくなる部分もあります。AWSのElasticeSearchサービスへのHTTP リクエストの署名方法を簡単にまとめてみます。
#1. AWS SDKのライブラリを使う
AWSのドキュメントにある通り、署名したリクエストを送信できますが、検索のクエリなどはちょっと手間ですね。参考URL: https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/es-request-signing.html
“`node.js
var credentials = new AWS.EnvironmentCredentials(‘AWS’);
var signer = new AWS.Signers.V4(request, ‘es’);
signer.addAuthorization(credentials, new Date());
セキュリティマネジメントの勉強-暗号化技術と認証
#暗号化技術
##暗号化
平文を暗号文にする
暗号化 <---> 復号暗号化鍵、復号鍵が存在する
##共通鍵暗号=秘密鍵暗号方式
暗号化鍵=復号鍵
鍵が1種なので、秘密にしておく必要あり。利点は単純で高速。
ただし、経路の数だけ鍵が必要になる。
zipのパスワード的なやつかな。###DES
Data Encryption Standard
56bit、米国の旧国家暗号規格
今では安全性低い###RC4
ストリームで徐々に暗号化していく
WEPでつかわれている
高速だが安全性はお察し###Triple DES
DESを3回やる
でも推奨されない###AES
Advanced Encryption Standard
DES後継
XORを繰り返し行う。128bit,192bit,256bit色々あり。
XORを行う回数を段数という###Camelia
NTTと三菱が作った
AESと同等の安全性を保ちつつ、消費電力低めらしい###Kcipher-2
九州大学とKDDIが作った
ストリーム型128bit
AESより7〜10倍早い##公開鍵暗号方式
暗号化鍵≠
JavaScriptでgetUserMediaでマイク・カメラ(ビデオ)を使うときの注意点とデバイスへのアクセス権限について
# マイクのみ使用するのにaudioのみの指定では動かないブラウザがある
とあるサンプルがEdgeで動作したがChromeで動作しなかったので調べてみた。
Chromeは`audio`だけでなく`video`も指定しないと音声入力が取得ができない。
https://www.html5rocks.com/ja/tutorials/getusermedia/intro/ より引用:
> 注: Chrome にはバグがあり、「audio」のみを渡しても無効です(crbug.com/112367)。Opera でも自分でも確認しましたが、
Chromeのバージョン: 79.0.3945.130(Official Build) (64 ビット)
で再現しました。`audio`指定のみでは動作せず、`video`を`audio`と一緒に指定すると動作する。# navigator.mediaDevices.getUserMediaが推奨らしい
`navigator.getUserMedia`ではなく`navigator.me
【初学者向け】セキュリティ対策入門[番外編]①〜OSコマンドインジェクション編〜
# 前提
## 確認環境
以下と同様です。
[【初学者向け】セキュリティ対策入門⓪〜環境構築編〜](https://qiita.com/junkimatsuda/items/b29e496132b7fe596397)## 本シリーズの目的
以下と同様です。
[【初学者向け】セキュリティ対策入門⓪〜環境構築編〜](https://qiita.com/junkimatsuda/items/b29e496132b7fe596397)## 本記事の目標
**OSコマンドインジェクションの概要、原因、対策について理解すること**です。
## 本記事を読み進める上での必要事項
以下の内容を終えていることです。
[【初学者向け】セキュリティ対策入門⓪〜環境構築編〜](https://qiita.com/junkimatsuda/items/b29e496132b7fe596397)## どうでもいいお話
あまり主要ではない脆弱性についてはこちらの番外編で扱っていきます。主要ではないというのは被害ケースをあまり耳にしないという意味で、脆弱性をつかれたときの被害が少ないというわ
flaws.cloudに挑戦してみた
#はじめに
先日、[大和セキュリティ勉強会](https://yamatosecurity.connpass.com/)に参加してきまして、とても勉強になったので備忘録程度に記事を書こうと思います。今回やったのは、[flaws.cloud](http://flaws.cloud)というサイトです。ctf形式でAWSにおけるハッキングトピックを学べるサイトになっています。level1からlevel6までの計6問で構成されています。詳しいwrite upはもっと偉大な方々が書かれているので適度な感じに書いていこうと思います。解き方もそこで教えてもらった解き方で書かせてもらいます。#事前準備
今回はawsに関する問題なのでawscliを使用します。そのため[こちら](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-install.html)でawscliのインストールと初期設定をしてください。
※regionはすべてのクレデンシャルで’us-west-2’で設定してください。#level1
flaw
MusicFM解析
# はじめに
QiitaでMusicFMのパケットをキャプチャして解析してる人をみて面白そうだなと思い、自分もやってみることにしました。
同じ海賊サービスでも漫画村は閉鎖できたのに、なんでmusicFMはずっと残っているのかが不思議でした。
自分が解析することによって少しでもその謎が解ければいいなと思ったのがきっかけです。
# とりあえずパケットキャプチャ
“`
% instruments -s devices
“`の出力結果から自分のiPhoneのUUIDをコピペして
“`
% rvictl -s [自分のUUID]
% tcpdump -i rvi0 -w [保存するファイル名]
“`ここでmusicFMを開き操作します。
“`
% rvictl -x [自分のUUID]
“`でキャプチャ終了します。
今回、musicFMでアーティストを検索してその中から楽曲を流すところまでをキャプチャしました。
# Wiresharkで解析
実際に音楽ファイルやパッケージ写真がやりとりされているのは下の画像の黒い部分のようです。
【初学者向け】セキュリティ対策入門②〜SQLインジェクション編〜
# 前提
## 確認環境
以下と同様です。
[【初学者向け】セキュリティ対策入門⓪〜環境構築編〜](https://qiita.com/junkimatsuda/items/b29e496132b7fe596397)## 本シリーズの目的
以下と同様です。
[【初学者向け】セキュリティ対策入門⓪〜環境構築編〜](https://qiita.com/junkimatsuda/items/b29e496132b7fe596397)## 本記事の目標
**SQLインジェクションの概要、原因、対策について理解すること**です。
## 本記事を読み進める上での必要事項
以下の内容を終えていることです。
[【初学者向け】セキュリティ対策入門⓪〜環境構築編〜](https://qiita.com/junkimatsuda/items/b29e496132b7fe596397)また、DB及びテーブルの作成ができることと、プログラミング言語を用いてDBにアクセスする処理の流れをおおまかに理解していることです。
# 概要
## SQLインジェクションとは
**不正にSQL文を
午前0時に前日のファイルアクセスログをメールで自動送信する
本稿は[【ファイルサーバのアクセスログをPowerShellで取得する】](https://qiita.com/mindwood/items/da5932845548a64a7946)の続編。
今回はコードのみ。監査ログの設定方法については、先の記事を参照して欲しい。次のPowerShellスクリプトをWindowsファイルサーバのタスクスケジューラに登録した。
午前0時になると、前日のファイルアクセスログをZIPファイルに固め、速やかにメールで転送する仕掛けだ。“`powershell:audit_mail.ps1
$endTime = Get-Date -Hour 0 -Minute 0 -Second 0
$startTime = Get-Date $endTime.AddDays(-1)$baseFile = Join-Path ‘E:\log\audit_’ $startTime.ToString(‘yyyyMMdd’)
$csvFile = $baseFile + ‘.csv’
$zipFile = $baseFile + ‘.zip’
if (Test-Pa
何事にも正しい権限を。あと信じすぎないこと。
# はじめに
私はJenkinsおじさんとまでは言わなくても、Jenkinsお兄さんと呼べるぐらいのビルド職人をしていました。そこで気づいたことを書きます。別にJenkinsに関係なくすべてで起きうることだと思います。### Jenkinsについて
JenkinsはCICDを自動化するOSSです。Cサーバーにデプロイしたり、スクリプトを変えたらGitにあげたりを自動化します。
なのでCICDを実現するには様々なgitやサーバーのログイン情報が必要です。しかし、パスワードやログイン情報が誰からも見らるのはよくないことです。なので、Jenkinsの開発者がログイン情報を見ないでジョブを作成するプラグインCredentials Pluginというものがあります。### Credentials Pluginについて
Credentials Pluginをしようするとユーザー名はJenkins画面からわかりますが、パスワードはわかりません。なので、セキュリティ的にはある程度の信頼がおけます。わたしは日々JOB(Jenkinsで自動化する単位の事)をよくわからないプロジェクトをよくわからな
ChromeでDNS over HTTPSを試す方法。
chrome://flags/#dns-over-https
を開いて、Enableに変更
ウェブサーバに攻撃試行があるけどどうしたらいい?
[自前のサーバーでブログを開設した途端、世界中から怪しい攻撃が来た話](https://qiita.com/KMim/items/60c1ce893c09872acd15)にもあるように、EC2インスタンスは常時攻撃にさらされます。
# tl; dr– 攻撃試行は回避できないが、導入されていないツールへの試行はさほど害はない。(ログが見づらくなるくらい)
– たとえばブログサイトを開設する場合、まずS3, GCSなどサーバを構築しないサービス(はやりの言葉だとサーバレスですね)で提供できないか検討する
– サーバを構築する場合、構築中はSecurity Group, Firewall rulesなどで自分以外からのアクセスをブロックし、公式ドキュメントにのっとって安全な設定ができてから一般公開しましょう# そもそも攻撃試行が来ないようにしたい
無理です。インターネット上では常時大量のbotたちが脆弱性を探しています。IPアドレスで総当たりで攻撃していると思われるので、インターネット上にサーバがある以上どうしても避けられないと考えるべきです。![yaruo.png](htt
備忘録 – NIST 800-90Aで規定されている CTR-DRBG を読み解く(途中)
組み込み向け案件で、セキュリティ周りでCTR-DRBGを使う場面がでてきたので、調べがてらメモを残してみる。
# 想定読者
CTR-DRBGを使う場面に直面しているが、原文読むのがつらい人向け(要は自分という・・・)。
前提知識と心構えをざっくりと:
+ 情報工学の基礎知識がある(ビット演算とか)
+ 真性乱数と疑似乱数の違いが説明できる
+ AES(Advanced Encryption Standard)を知っている
+ セキュリティに対するアレルギーがない(Web系のセキュリティ知識は不要)# この記事の使いかた
原文を読む際の手助けとしての利用を想定しています。(本記事だけでは情報が不足していますので原文を合わせて読んでください。)
※間違っていても責任はとれません。参考文献を頭から読まずに、さらに斜め読みしているので色々抜けてるかもです。
間違いがありましたら指摘いただけると助かります!
# 参考文献(原文)
+ [NIST SP 800-38A (Recommendation for Block Cipher Modes of Operation Me
SHA-1の新しい脆弱性について(2020/01/07報告)
# さらにSHA-1の脆弱性の報告
暗号など、サイバーセキュリティの大家であるブルース・シュナイアー氏のブログによれば、さらにまたSHA-1の脆弱性が発見されたようです。すでに2015年には大きな脆弱性(The SHAppening)が発見され、もはやSHA-1の信用性は地に落ちておりますが、使用頻度が減っているとはいえ、まだまだ使われているところもあります。一応、さらなる注意が必要です。
その記事はコチラ。
https://www.schneier.com/blog/archives/2020/01/new_sha-1_attac.htmlほぼママですが、以下意訳してみました。
# ブルース・シュナイアー氏のブログ記事(翻訳)
## 新しいSHA-1攻撃
SHA-1への新しい実践的な【初学者向け】セキュリティ対策入門①〜XSS編〜
# 前提
## 確認環境
以下と同様です。
[【初学者向け】セキュリティ対策入門⓪〜環境構築編〜](https://qiita.com/junkimatsuda/items/b29e496132b7fe596397)## 本シリーズの目的
以下と同様です。
[【初学者向け】セキュリティ対策入門⓪〜環境構築編〜](https://qiita.com/junkimatsuda/items/b29e496132b7fe596397)## 本記事の目標
**XSS(クロスサイトスクリプティング)の概要、原因、対策について理解すること**です。
## 本記事を読み進める上での必要事項
以下の内容を終えていることです。
[【初学者向け】セキュリティ対策入門⓪〜環境構築編〜](https://qiita.com/junkimatsuda/items/b29e496132b7fe596397)# 概要
## XSS(クロスサイトスクリプティング)とは
**不正なスクリプトを混入・実行させること**です。掲示板などエンドユーザからの入力値をWebページに表示させる機能を持った
WordPress サイトを構築するときに確認したい項目
WordPress でサイトを運営する・している場合にセキュリティ観点として確認したい項目
# 最新バージョン
利用している WordPress の世代・バージョンを確認。
WordPress は、最新バージョンの利用を推奨しています。2020年1月8日現在の最新バージョンは、「5.3.2」となっています。公式サイトから確認できますので把握しておきましょう
[リリース | WordPress.org 日本語](https://ja.wordpress.org/download/releases/)# 管理画面
### wp-admin へのアクセス制限
誰もが管理画面にアクセスできる状態になっていないかを確認。
4G回線から “サイトURL/wp-admin” にアクセスください。
そのままログイン画面が表示される場合、アクセス制限がない可能性があります。### admin アカウント
アカウントに “admin”や “administrator”がないかを確認。
乗っ取りのターゲットになり易いアカウントは、利用しないようにする。### ログインURLの変
【AWS】AWSのセキュリティー
# AWSのセキュリティー
**セキュリティーはAWSにとって最重要事項**
## データの保護
– 回復性を備えたインフラストラクチャ
– 高度なセキュリティー
– 強力な安全対策##継続的改善
– 急速なイノベーション
– 絶えず進化するセキュリティーサービス## 従量課金性
– 高度なセキュリティーサービス
– リアルタイムで新たなリスクに対処する
– より低い運用コストでニーズを満たす## コンプライアンス要件への準拠
– ガバナンスで有効になる機能
監督の強化
セキュリティ統制
一元的なオートメーション## AWSの責任共有モデル
– AWSのセキュリティ統制を継承
– コントロールをレイヤー化## セキュリティー製品と機能
– ツール
AWSとパートナーからのアクセス
モニタリングとログの記録に使用## ネットワークセキュリティ
– 組み込みのファイアウォール
– 転送中の暗号化
– プライベート接続/専用接続
– 分散サービス妨害(DDoS)の緩和## インベントリと設定の管理
– デプロイツール
–
リバースエンジニアリングって何?ハッキング入門してみる
# 注意事項
この記事ではクラッキングを助長する意図はありません。
また、この記事で紹介する手法はあくまでも一例です。小学生でも「オレ強い」できるレベルしか紹介する気はありません。
あくまで自分の作ったソフトウェアのセキュリティ向上にお役立てください。
商用ソフトウェアではこの手法はほぼ通用しませんし、改変したソフトウェアを使用することは訴訟リスクにもなりえます。## はじめに
こんにちは。Sohと申します。普段はiOSの脱獄アプリを販売したり、自分の生活を良くするために完全独学でプログラミングしている文系大学生です。
留年し就活のきつさに溺れています。(自業自得)
突然ですが、あなたの作ったソフトウェア、オープンソースでなくてもソースコードを見れるってご存知でした?“`
if (purchased) {
//購入済みの場合の処理
}
else {
//購入していない場合の処理
}
“`
みたいな単純な処理をしていませんか?**これ、簡単にクラックできます。小学生でもできます。**
リバースエンジニアリングって、能動的に勉強しなければ案外知らないことも
CSSLP(Certified Secure Software Lifecycle Professional)に合格するために実施したこと
CSSLP(Certified Secure Software Lifecycle Professional)に合格(2019/12/16)した際に利用した教材と勉強法です。公式トレーニングは受講していません。リーズナブルな金額で入手できる教材と、それを用いた勉強法を紹介します。CSSLPの詳細については[こちら](https://japan.isc2.org/csslp_about.html)を参照。2020/1時点では英語でのテストしかありません。
# 前提条件
これまでの業務で下記のような経験があり、これらはCSSLPに役に立ちそうでした。ネックは運用経験がないこと。
###開発経験
Waterfall、Agileでの開発経験あり。言語はCとJava。テストはUnit TestからRegression Testまで実施。Certified Scrum Master(認定スクラムマスター)。運用経験はなし。
###セキュリティの経験
SAST、DAST、SCA、Fuzzingなどを利用した経験あり。CEH。
###英語
TOEICは800点後半。英語の試験はCEHで経験済み。
【初学者向け】セキュリティ対策入門⓪〜環境構築編〜
# 前提
## 確認環境
– OS: macOS Mojave バージョン 10.14.6
– Docker: version 19.03.2
– docker-compose: version 1.24.1## 本シリーズの目的
**実装時に最低限気を付けた方がいいセキュリティ対策について理解してもらうこと**です。
セキュリティは非常に奥が深い世界です。僕自身セキュリティの全てを完璧に理解しているわけではありません。しかし、プログラミングする上で最低限気をつけるべきことについては知見が溜まってきました。なので、このあたりで放出していきたい所存です。『これさえやればセキュリティ完璧』というより『最低限これは意識しておいた方がいいよ』という温度感で整理できればと考えています。
## 本記事の目標
**本シリーズを通して学習していくための環境構築を終えること**です。
実際にソースコードを見て動かして云々するのが一番だと思っているので、それを行うための環境を構築するまでが本記事で扱う内容です。
## 本記事を読み進める上での必要事項
– ターミナルを最低限操作でき
脆弱性情報をAWS Lambdaで取得してみたら
# 結論から言うと
– 人力で脆弱性情報を収集するのは大変だよ。
– MyJVN APIを使って脆弱性情報を取得してみた。
– ほとんど[こちら](https://dev.classmethod.jp/server-side/os/myjvn-api/)を丸パクリ(真似)させていただいた。# きっかけ
仕事で脆弱性情報(OS、アプリ、NW機器など諸々)とかを収集して、ちゃんと対策しないと駄目だよ〜と言う流れになった。だけど、毎日NVDやJVNやJPCERTやCISCOとかのサイトに順番にアクセスして脆弱性が出ていないか目視でチェックすると言う運用に、いろいろ違和感を覚えたので、なんとかして楽できないかと考えていたところMyJVN APIの存在を知る。
MyJVN APIとは、JVN iPediaの脆弱性情報を検索するためのAPI検索情報を与えることで脆弱性情報の一覧や詳細をXML形式で受け取ることができるらしい。ベンダID、製品名、製品ID、CVSS深刻度、発見日/更新日/発行日などからフィルタリングが出来そう。
ちなみにJVNとは「Japan Vulnerability