- 1. 【1ヶ月で学ぶ!】Back-end Developperへの道 #11日目 : Web Security Kowledgeとは(前半)
- 2. .NET Core で秘密文字を安全に運用する(開発環境編)
- 3. 「WebShellQuickScanner」Linuxサーバの指定フォルダーのPHPファイル中に、WebShellと高リスクファイルを速いて探し出すのクイックチェックツール,そして、検査結果をTelegramにプッシュする。
- 4. Lambda@EdgeでレスポンスにHTTPヘッダを付与するやつをGitHub Actionsで自動デプロイする
- 5. PHPサーバーで、悪質脆弱性スキャナ(Vulnerability Scanner)や悪いボット(Bad Bots)を制裁します。
- 6. PC版LINEのロックモード越しにメッセージを読み取る話
- 7. Railsで学ぶSQLインジェクション脆弱性
- 8. 【備忘】セキュリティ用語に関して殴り書きしていく①
- 9. 【備忘】攻撃者の行動を戦術単位で構造化したATT&CKについて
- 10. AWSでおける、コンテナセキュリティ対策の領域
- 11. man nftables 日本語訳
- 12. 【無料】freeCodeCampにPythonの認定コースが追加されました!
- 13. 【備忘】サイバー攻撃の段階を構造化したサイバーキルチェーンについて
- 14. PPAPを根絶したい
- 15. セキュリティベンダまとめ(SIer編)
- 16. 攻撃から学ぶWEBセキュリティ対策(CSRF編)
- 17. 攻撃から学ぶWEBセキュリティ対策(XSS編)
- 18. 最低限押さえておくべきAWSアカウント開設時のセキュリティ対策4つ
- 19. OWASP ZAPを使った脆弱性診断入門〜環境構築編〜
- 20. Windows 10でSDカードを完全消去する方法
【1ヶ月で学ぶ!】Back-end Developperへの道 #11日目 : Web Security Kowledgeとは(前半)
下記の企画の11日目です。
【1ヶ月で学ぶ!】Back-end Developperへの道 #0:導入下記を参考に項目を作成しました。
Roadmap to becoming a web developer in 2020# Web Security Kowledgeとは
## MD5 and why not to use it
– 暗号学的ハッシュ関数のひとつ。ハッシュ値は128ビット。
– 弱点が発見されていることを筆頭に暗号学的ハッシュ関数として必要な強度は既に残っていないので、強度が必要な場合には使ってはいけない(あるいは、それが判断できないならば単純に、使ってはいけない)。## SHA Famly
– Secure Hash Algorithm(セキュアハッシュアルゴリズム)は、一群の
.NET Core で秘密文字を安全に運用する(開発環境編)
# プログラムでの秘密の文字列
業務系のプログラムでは、何かしらのデータベースやストレージのシステムにアクセスし、データの入出力を行います。データベースなどへの接続の際には、アカウント/パスワードといった機密の文字列を使用することが多いと思いますが、これを開発段階からリリース、運用フェーズまで安全に管理するのは意外と大変です。
プログラムから見た秘密の文字列の置き場所として、昔ながらの iniファイル、レジストリ、.NetFramework の場合は App.config に記述する方法などがありますが、基本的にプレーンテキストですので、扱いには気を使います。うっかりバージョン管理システムの管理対象にしてしまったり、デプロイ先で見つけられてしまうといったリスクがあります。ソースコードに直に埋め込んで、バイナリの中に隠すという方法も、実のところよく聞く話ですが、バイナリエディタで見れば、あっさりバレてしまいます。
独自のハッシュ化やエンコード関数を自作されている話も聞きますが、他社との共同開発になった時、ライセンシーや、その関数のソースコードを他社と共有する点で課題が発生する
「WebShellQuickScanner」Linuxサーバの指定フォルダーのPHPファイル中に、WebShellと高リスクファイルを速いて探し出すのクイックチェックツール,そして、検査結果をTelegramにプッシュする。
## 「WebShellQuickScanner」とは
「WebShellQuickScanner」は、Linuxサーバの指定フォルダーのPHPファイル中に、WebShellと高リスクファイルを速いて探し出すのクイックチェックツール,そして、検査結果をTelegramにプッシュする。
「Telegram」はTelegram Messenger LLPが開発するインスタントメッセージシステムである。詳細は[こちら(Telegram – ウィキペディア)](https://ja.wikipedia.org/wiki/Telegram)をクリックしてください。
**この記事は、日本語の使用ドキュメントとして発表されます。**
## 「WebShellQuickScanner」プロジェクトのリポジトリ
**Github: [DeepSkyFire/WebShellQuickScanner](https://github.com/DeepSkyFire/WebShellQuickScanner)**
## 「WebShellQuickScanner」について
Linuxサーバの指定
Lambda@EdgeでレスポンスにHTTPヘッダを付与するやつをGitHub Actionsで自動デプロイする
# 概要
– フロントにNuxt.jsを採用していると、`npm run start`するだけだと`X-Frame-Options`とか`CSP`とか`x-xss-protection`といったヘッダがレスポンスに付与されない
– `Fastify`をNodeサーバーとして使っているのでそちらで頑張ってもよかったけど、せっかくAWSで`CloudFront`->`ALB`->`Fargate`な仕組みを使っているので、AWSで頑張ってみようと思った
– Lambda@Edgeを使って、Nuxtからのレスポンスにヘッダを付与するやつを組んだ
– アプリケーションと連動して動いたほうがいいし、手動でデプロイする運用がしんどいと思ったので、GitHub ActionsでCLIベースの自動デプロイが組めるところまで持ってきた
– それをやるがためにCloudFormationまで導入しててんやわんやした日本語文献がそんなになかったので、まとまりがないメモですが貼っておきます。
# Lambda@Edgeのソース内容
下記ブログを参考にしました。CSPだけ模倣するわけにいかなかったので
PHPサーバーで、悪質脆弱性スキャナ(Vulnerability Scanner)や悪いボット(Bad Bots)を制裁します。
## 悪質脆弱性スキャナ(Vulnerability Scanner)や悪いボット(Bad Bots)とは
悪質脆弱性スキャナ(Vulnerability Scanner)や悪いボット(Bad Bots)とは、許可なくサーバーを強制的にスキャンするプログラム。通常、このようなスキャナは、大規模かつ規則的な規模でインターネット全体をスキャンします。
![Snipaste_2020-07-06_23-59-07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668967/54609342-e9df-9ca2-6ecd-515f20057df8.png)
確かに、安全なサーバー中ではありますが、危害はありません。 しかし、このアクセスログを見るたびに、うっとうしいと思う。
## 制裁準備
今回は、このような悪質な脆弱性スキャナーと戦うために、非常に古いテクニックを使ってみました。
それは、「**GZIP爆弾**」です。
この方法は、少なくとも20年以上前からありましたが、今もなお良い解決策を
PC版LINEのロックモード越しにメッセージを読み取る話
## はじめに
PC版LINEには一時的に席を立つ場合や長時間操作されなかった場合にメッセージの送信や閲覧をロックできるロックモードがある。以下のような画面を見たことがあるだろう。
実はこのロックモード、第三者が物理的に端末にアクセスできる場合にはメッセージを読み取ることができる。ロックモード越しと聞いて複雑な手法かと思われただろうが、メッセージがメモリ上に平文で保存されているというだけである。つまり、メモリのダンプができる権限があり、LINEがロックモードである端末でのみメッセージを取得できる。## メッセージを読み取る
Windows版LINE(ver 6.1.0.2262)で検証を行うことにする(Mac版は不明)。LINEをロックモードにし、別端末(Android)からトークを送信する。そのメッ
Railsで学ぶSQLインジェクション脆弱性
webセキュリティについて勉強中なので、学習内容を公開します
スカスカ記事ですがお許しください#演習環境
– Ruby (2.6.6)
– Rails (5.2.4.3)
– database adapter mysql2 (0.5.3)
– mysql (5.7.30)記事投稿、コメント投稿、ブックマークなどが出来る演習用アプリ「TARGET」
GitHubリポジトリ https://github.com/Fumitaka1/target#SQLインジェクション脆弱性とは
外部から受け取ったパラメータからSQL文を作成し、DBを操作しているプログラムに起こりうる脆弱性のこと
例 ユーザーの一覧を表示できるサイトがあります
![ユーザー一覧.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/496557/90af6f44-f720-6462-543a-44fafdf59d46.png)
‘小’で検索するとユーザー名に’小’を含むユーザーが表示されます
発行されるSQL文 “`SELEC
【備忘】セキュリティ用語に関して殴り書きしていく①
#セキュリティ用語に関して今までルーズリーフにまとめていたことを殴り書く
知りたい知識だけ目次から飛んでください。
読まれることを意識せずに簡潔に殴り書きました。##無線LANの規格まとめ
・WEP(Wired Equivarent Privacy)
RC4を採用。脆弱。
・WPA(Wi-Fi Protected Access)
TKIP(Temporal Key Integrity Protocol)を採用。暗号キーの生成方法などを改善。
暗号技術はRC4のまま
・WPA2
AES(Advanced Encryption Standard)を採用。AESを無線LANに適用するためにCCMPと言う決まり事を使っている##ディジタル署名
・Aさん
①公開鍵、秘密鍵を作成
②メール文を作成し、そのメールデータをハッシュ関数を使ってハッシュ値を算出
③算出したハッシュ値を秘密鍵で暗号化
④メール文に暗号化したハッシュ値をつけて送信
・Bさん
①Aさんの公開鍵を入手
②Aさんの公開鍵で、送られてきた暗号化されたハッシュ値を復号
③送られてきたメールデータをハッシュ関数を使ってハッシュ値
【備忘】攻撃者の行動を戦術単位で構造化したATT&CKについて
#攻撃者の行動を戦術単位で構造化したATT&CKについて
2020年現在、サイバーキルチェーンの次に来ると言われていて、攻撃者の行動を戦術単位で構造化した「ATT&CK」が主流となりつつあります。
ちなみにIPAもATT&CKをベースにしたガイドラインを発表しています。
https://www.ipa.go.jp/ikc/info/20200327.html今回はこのATT&CKについて、概念・使用方法についてまとめていきます。
前回サイバーキルチェーンについてまとめた記事はこちら
https://qiita.com/samuragouchi-monzaemon/items/bf52fb50ee5a3d247cab##ATT&CKとは
ATT&CKはAdversarial Tactics, Techniques, and Common Knowledgeの略です。日本語に直訳すると「敵対的戦術とテクニック、一般知識」、意訳をすると「攻撃者の行動を戦術や戦法から分類したナレッジ」になります。ATT&CKは2013年より開発がスタートしました。その目的は攻撃者が攻撃に使用する
AWSでおける、コンテナセキュリティ対策の領域
[NIST](https://csrc.nist.gov/publications/detail/sp/800-190/final)を参考にまとめます。
# イメージリスク
コンテナイメージに含まれるミドルウェアの脆弱性やマルウェア。
AWSでは、スキャンツールを使って対応する# レジストリリスク
イメージを管理するレジストリ自体のセキュリティ。
Amazon ECSを利用する場合が多い。IAMでアクセス制御を適切に行えばOK。# オーケストレーターリスク
オーケストレーターへのアクセス管理などに関わるもの。
Amazon ECSやAmazon EKSの場合は、IAMでの制御がメイン。# コンテナリスク
動作している実態とsいてのコンテナのセキュリティ。
すべてコンテナではなく、ホストOSが操作できる場合、OS上でコンテナ対応セキュリティ製品を動作させる。# ホストOSリスク
コンテナが稼働するホスト側のOSセキュリティ。
AWS Fargateの場合はホストがAWSに管理されているため気にしなくても良い。# 参考資料
[みんなのAWS](https://gi
man nftables 日本語訳
“man nftables“ で表示されるマニュアルの日本語訳。
# 名前
nft – パケットのフィルタリングと分類を目的とする nftables フレームワークの管理ツール
# 概要
“`bash
nft [ -nNscae ] [ -I directory ] [ -f filename | -i | cmd …]
nft -h
nft -v
“`# 説明
nft は nftables フレームワークの Linux カーネルでパケットフィルタリングおよび分類ルールを設定、管理、検査するために使用されるコマンドラインツールです。
Linux カーネルサブシステムは nf_tables として知られており、 “nf“ は “Netfilter“ を表します。# オプション
オプションの完全な要約を見るには、 “nft –help“ を実行してください。
* -h, -help
ヘルプメッセージとすべてのオプションを表示します。
* -v, -version
バージョンを表示します。
* -n, -numeric
データを数値
【無料】freeCodeCampにPythonの認定コースが追加されました!
# freeCodeCampとは
[freeCodeCamp](https://www.freecodecamp.org/learn/)コース毎に用意された5つのプロジェクトを完了させると認定証がもらえるサービスで、プロジェクト達成に必要な技術を身につけるためのレッスンも含めて無料です。
**ただ、全文英語です。**
[Mouse Dictionary](https://qiita.com/wtetsu/items/c43232c6c44918e977c9)とか使えばだいぶ楽になると思います。#本題
[公式ブログ](https://www.freecodecamp.org/news/python-curriculum-is-live/)
freeCodeCampに既にあった6コースに、
– **Pythonでの科学計算**
– **Pythonでのデータ分析**
– **Pythonでの機械学習**
– **情報セキュリティ**の4コースが追加されました。
カリキュラムとか詳細は公式サイトを確認してください。
アカウント登録しなくてもコースを見ることはで
【備忘】サイバー攻撃の段階を構造化したサイバーキルチェーンについて
#サイバー攻撃の段階を構造化したサイバーキルチェーン
サイバー攻撃の段階を構造化したサイバーキルチェーンについて、備忘も兼ねて今更ながらまとめてみました。
今更ながらと言ったのは、2020年現在、サイバーキルチェーンの次に来ると言われていて、攻撃者の行動を戦術単位で構造化した「ATT&CK」が主流となりつつあるためです。ちなみにIPAもATT&CKをベースにしたガイドラインを発表しています。
https://www.ipa.go.jp/ikc/info/20200327.htmlATT&CKについては次回まとめてみようと思います。
ATT&CKについてまとめた記事はこちら(2020年7月5日更新)
https://qiita.com/samuragouchi-monzaemon/items/d84c5b1d199182bb7ce6##サイバーキルチェーンとは
近年、サイバー攻撃は段階を踏んで行われるようになりました。
この攻撃を構造化したものが「サイバーキルチェーン」です。
元々、軍事用語で「キルチェーン (Kill Chain=負の連鎖を切る)」という言葉があり、これを
PPAPを根絶したい
# Overview
公開鍵を使って暗号化zipを簡単に作れるユーティリティを作成しました.
https://github.com/sumeshi/ppapPPAPを知らない人はこちら, 808使ってないほうです.
[JIPDEC – S/MIME利用の最新動向](https://itc.jipdec.or.jp/common/images/4_20170227_otaishi.pdf)PPAPは嫌だけど, ファイルはいい感じに送信したいという方に
# Description
https://github.com/sumeshi/ppap
![ppap.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/250257/0b130629-668d-4bd9-2869-9ac5b3063f33.png)
やっていることは単純で,zipファイルが2重になっており,
内部に乱数パスワードで暗号化されたzipファイルと, その暗号化キーを公開鍵で暗号化し
たテキストファイルが入っています.もうちょ
セキュリティベンダまとめ(SIer編)
# 概要
セキュリティ業界にいるんだから、セキュリティベンダのことを知っていてもいいだろうということで、調べてみました。
この記事はセキュリティSIer編です。
情報は順次追加していく予定です。(五十音順)
なお、諸事情により外資系ベンダは対象外としています。– 専業ベンダ編はこちら → [別記事を開く](https://qiita.com/taka0189469/items/1196806a9def46821bb1)
# 三菱電機インフォメーションネットワーク
– 事業内容:クラウド・プラットフォーム、ネットワーク、セキュリティ、アプリケーション
– 略称:MIND(Mitsubishi Electric Information Network Corporation)
– 従業員数:3,191名(2020年4月1日時点)
– 資本:三菱電機
– Webサイト:https://www.mind.co.jp/
– その他:三菱電機グループでセキュリティと言えばここですね。[2020年4月にMDIS、MBとの事業再編](https://iotnews.jp/archives/141
攻撃から学ぶWEBセキュリティ対策(CSRF編)
#はじめに
WEBエンジニアとして成長するために、セキュリティ対策は避けては通れない道ですよね。僕も含め **「なんとなく知ってる」** という方は多いのではないでしょうか。
大切なWEBサイトを守るためにも、WEBエンジニアとしての基礎を固める為にも、しっかりと学んで一緒にレベルアップしていきましょう。
また、本記事の内容は様々な文献をもとに自身で調べ、試したものをまとめています。
至らぬ点や、間違いがありましたら、コメントにてご指摘をお願いします。前回はXSSについてまとめたので、興味のある方は読んでみてください。
[攻撃から学ぶWEBセキュリティ対策(XSS編)](https://qiita.com/risto24/items/70625bb6631ad12266d3)#CSRFって何?
CSRF(Cross-Site Request Forgery)とは、サービスの利用者に意図しないHTTPリクエストを送信させ、意図しない処理を実行させる攻撃手法です。これだけでは分からないので、攻撃の流れをまとめてみましょう。
その前に、CSRFにおいて大きな鍵となる *
攻撃から学ぶWEBセキュリティ対策(XSS編)
#はじめに
WEBエンジニアとして成長するために、セキュリティ対策は避けては通れない道ですよね。僕も含め**「なんとなく知ってる」**という方は多いのではないでしょうか。
大切なWEBサイトを守るためにも、WEBエンジニアとしての基礎を固める為にも、しっかりと学んで一緒にレベルアップしていきましょう。
また、本記事の内容は様々な文献をもとに自身で調べ、試したものをまとめています。
至らぬ点や、間違いがありましたら、コメントにてご指摘をお願いします。#XSSってなに?
XSS(Cross-site scripting)とは、他人のブラウザーで悪意のあるJavaScriptを実行するコードインジェクション攻撃です。ターゲットに標的を定めて攻撃するのではなく、ターゲットがアクセスするWEBサイトの脆弱性を悪用して、悪意のあるJavaScriptを実行します。
このように攻撃者が直接攻撃していることは被害者には分からないので
**自分のサイトが気がついたら犯罪に加担していた**
という最悪の事態も考えられます。
#JavaScriptでどんな攻撃ができるか
上記のように
最低限押さえておくべきAWSアカウント開設時のセキュリティ対策4つ
# 1. rootユーザーを利用せず、IAMユーザーを利用する
rootユーザーは権限が非常に強い。
なので、IAMユーザーを作成する。
IAMでユーザーを作成すればrootユーザーと同じようにAWSを利用でき、かつ権限管理が可能。# 2. AWS CloudTrailを有効化する
AWSに対する各種APIアクセスについてロギングするサービス。
AWS上で行われた操作はこのサービスで記録される。# 3. AWS Configを有効化する
AWSリソースの変更履歴を管理するサービス。
何がどのように変更された追随できる。AWS Configは各リージョンごとに設定する必要がある。
# 4. Amazon GuardDutyを有効化する
AWS上のさまざまな脅威を検知するサービス。
AWS上で非常に発生しやすいアクセスキーの漏洩事故や、その結果起きる不正なコインマイニングを検知したり、外部からのブルートフォースアタックを検知したりと非常に強力。
本番環境だけでなく、開発環境でよく発生するため、すべてのAWSアカウントで有効化が必須。# 参考資料
[みんなのAWS](h
OWASP ZAPを使った脆弱性診断入門〜環境構築編〜
#OWASP ZAPを使った脆弱性診断
OWASP ZAPという無償のツールを使って、HTTPメッセージを観察したり、改変することを学びたい。
今回は環境構築までを説明します。
##OWASP ZAPとは
OWASP ZAPとは、セキュリティに関する課題解決や情報共有を目的としたプロフェッショナルが集まるコミュニティーであるOWASPが開発・公開しているWebアプリケーション診断ツールで、無償で公開されている。
OWASP ZAPは、WindowsPC/Mac上でプロキシとして動作し、HTTP通信を観察したり、改変したりすることができる。
ちなみに筆者の実行環境はMacです。##OWASP ZAPのインストール
###Javaのダウンロード・インストール
OWASP ZAPを起動するために、WindowsPCの方はJava1.8以上が必要となりますので、最新版であるJava1.9をダウンロードします。
※Macの方は既にインストールされているので不要です。
既にインストールされているか確かめる方法として、ターミナルを開いて、
以下コマンドを打ち込むことで確かめることができます。
j
Windows 10でSDカードを完全消去する方法
# 1. 目的
SDカードの破棄が必要になったため、データを完全消去する方法を調べてみました。# 2. 前提条件
市販のツール等は利用せず、Windows 10の標準機能のみに限定しています。
完全消去した後は、物理的に破壊してから破棄します。# 3. 手段
### 選択肢1. cipherコマンド
– NTFSの暗号化機能を制御するコマンド(FAT32への対応は限定的)
– Windows 10に最初から組み込まれている(Home 1909で確認)
– 「/w」オプションでワイプが可能
– 実行すると空き領域にデータを3回書き込む(0→1→ランダム)
– 上記より、手順は以下の通り。
1. SDカードをNTFSでクイックフォーマットする
2. コマンドプロンプトで「cipher /w:ドライブレター:」を実行する
– 参考URL:[Windowsでディスクの内容を完全に消去する(@IT)](https://www.atmarkit.co.jp/ait/articles/0303/01/news003.html)### 選択肢2. diskpartコマンド