- 1. 公開鍵暗号方式について
- 2. セキュリティの資格攻略法
- 3. CentOS8でしぶといIPv6を無効にする
- 4. TomcatでAJP 1.3 Connectorの接続をローカルに限定する
- 5. 手当たり次第IPv6を無効にしてみる
- 6. 耐火金庫をハック
- 7. 今更聞けない!Runtime Application Self-Protection(RASP)とは?
- 8. Let’sEncryptでPre-loaded Public Key Pinningに対応しやすい証明書を発行する
- 9. 「DDoS攻撃対策 トリロジー」最終回: HTTP(S)フラッド攻撃の対策
- 10. 【初心者向け】Webアプリケーションにおけるセキュリティを確保する仕組み
- 11. 「DDoS攻撃対策 トリロジー」第二回: 一般的なDDoS攻撃の対策
- 12. サーバーの構築は結局何をしたらいいのか。
- 13. GitHub Code Scanningを試してみた | 脆弱性の自動検出
- 14. Laravelの認証jwt-authにログイン失敗時のロックアウト機能を追加し、セキュリティを高める方法
- 15. セキュリティテスト
- 16. vistaでmse その8
- 17. vistaでmse その7
- 18. vistaでmse その6
- 19. Webアプリケーションセキュリティ入門 ~具体例を用いて堅牢なアプリの作り方を学ぶ~
- 20. 脆弱性診断とは
公開鍵暗号方式について
自分の備忘録のため投稿します。
[参考資料](https://www.amazon.co.jp/dp/B07L9QXX9J/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)## 用語解説
#### 暗号化データを第三者にわからないように変換。
#### 復号
暗号化したデータを元の状態に戻す。#### 公開鍵
データの暗号化をする。世間に公開するための鍵だから公開鍵。
#### 秘密鍵
データを復号化する。他人に見られちゃいけないから秘密鍵。
## 公開鍵暗号方式の流れ
① Aさん(受信者)が公開鍵と秘密鍵を用意。
② 公開鍵を公開して「自分にデータを送るときはこの鍵で暗号化して送ってね」。
③ Bさん(送信者)は Aさんの公開鍵を利用してデータを暗号化。A さんに送信。
④ A さんは B さんから送られてきた暗号化されたデータを自分で持っている秘密鍵で復号化。
セキュリティの資格攻略法
#はじめに
資格の良し悪しは別として、入札などで資格保持者が必要になるケースはそれなりにあると思います。所属する組織によっては受験費用を負担してくれたり、報奨金が出る場合もありますね。ということで、私がこれまでに取得した資格について、資格試験の概要と勉強法についてまとめてみることにしました。なお、中にはかなり前に取得したものもありますので、現在の試験とは異なる可能性があります。
各試験の試験時間、問題数、試験形式、個人的な難易度、試験費用、更新費用をつけています。#情報処理安全確保支援士
更新料が高いだの講習がめんどくさいだのと色々言われていますが、試験費用が安く、国家資格であるというのは他の資格に比べて優位性があると思います。ただし更新費用は非常に高額なので、所属する組織が更新費用を負担してくれる場合にのみ登録した方が良いでしょう。試験合格だけでも十分意味があると思います。
午前Ⅰ、Ⅱ、午後Ⅰ、Ⅱの4種類の試験すべてで60点以上を取る必要があります。午後Ⅰ、Ⅱは筆記試験です。
他の資格とは異なり、過去問が公開されているため対策はしやすいと思います。過去問を数年分解くだけでもかなり
CentOS8でしぶといIPv6を無効にする
#はじめに
掲題の件で、手間取って調べた時のメモ#まずは王道
まずはよくあるパターンとして以下を実行してreboot“`/etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.enp0s3.disable_ipv6 = 1
“`再起動後に“`ip a“`でチェックすると、しぶとく残っている。
“`
$sudo sysctl –all | grep disable_ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.enp0s3.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 1
“`#解決策
Network mangerで管理しているから、効かないらしい。
そこで
TomcatでAJP 1.3 Connectorの接続をローカルに限定する
#やり方
こんな感じでadress属性を指定するとよい。“`server.xml
“`#参考
https://qiita.com/polarbear08/items/f016a0675e6c9637e7b8
手当たり次第IPv6を無効にしてみる
#はじめに
最近は、いろんなサービスがIPv4, IPv6のいずれにも対応している。
今回そんなサービスたちをIPv4のみに限定してしまおう。# Apache(http)
“`/etc/httpd/conf/httpd.conf
#Listen 80
Listen 0.0.0.0:80
“`# Apache(https)
“`/etc/httpd/conf.d/ssl.conf
#Listen 443 https
Listen 0.0.0.0:443 https
“`# ssh
/etc/ssh/sshd_config
“`
#AddressFamily any
AddressFamily inet
“`# MySQL(v8)
“`/etc/my.cnf.d/mysql-server.cnf
[mysqld]
bind-address=127.0.0.1
mysqlx-bind-address = 127.0.0.1
“`# PostgreSQL
“`pg_hba.conf
#host all all
耐火金庫をハック
ネットの世界でもセキュリティは大切ですが、元祖おうちのセキュリティの耐火金庫をハックして見ました。
対象は開いている状態で番号が分からなくなった金庫です。
閉まった状態で番号が分からない金庫は業者さんにお願いするしかないと思います。
扉の裏蓋を開けるとこのようなメカがあります。
![IMG_20201007_103059.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104066/33b2e70a-7a84-0357-e4aa-b171cce2a754.jpeg)
左の円盤は四枚が重なっています。すべての円盤の切りかきが右にそろうと鍵で開けられる仕組みになっています。ダイアルを右に四回以上回すと一番奥の円盤が回るようになります。一番奥の円盤の切りかきが右になる位置を探します。見つかったら次に、左にダイアルを回して、手前の円盤の切りかきが同じように右になる位置を探します。二つ目も重なったら右回りにダイヤルを回して、手前の円盤も合わせます。最後に左回りに回して、一番手前の円盤の切りかきがあってすべ
今更聞けない!Runtime Application Self-Protection(RASP)とは?
ITが好きでやまない非技術職です。今回は初投稿ですが、私が今注目しているRASPと呼ばれるセキュリティ技術について紹介したいと思います。
#概要
アプリケーションを守る技術としてRASPというのがありますが、RASPとは何でしょうか。その名の通り、アプリケーションまたはアプリケーションを実行するランタイム環境で、セキュリティ機能を導入しリアルタイムでアプリケーションまたはアプリケーション実行環境を脅威から守るセキュリティ技術です。#なぜRASP?
サーバ上で動くアプリケーションであれば、サーバに何かしらのウイルス対策ソフトをインストールし、なんとなくアプリケーションも守られていて、安心してしまいます。
昨今、クラウドやコンテナ技術が注目を浴び、クラウド環境であれば例えばAWSのfargateといった環境では、マネージドサービスでOSレイヤーを制御できない環境も普通になってきました。
マネージドサービスになると、サーバと同等なセキュリティ対策ができないことが多く、WAFでセキュリティ対策を済ませることも多々あります。
WAFは多くの場合ですと、見れるレイヤーが限られていて、対策で
Let’sEncryptでPre-loaded Public Key Pinningに対応しやすい証明書を発行する
# 最初に
本記事ではLet’sEncrypt, PublicKeyPinningに関する解説は省略します。# 通常の証明書発行
通常、(certbotを使った場合)以下のように発行と更新を行うかと思います。“`
# 初回
certbot certonly –server https://acme-v02.api.letsencrypt.org/directory -d “*.foo.com” –manual-public-ip-logging-ok –agree-tos# 更新
certbot renew
“`## 発生する問題
Pre-loaded Public Key Pinningを行いたい場合、クライアント側に公開鍵をもたせる必要があります。
`certbot renew`の場合、このクライアント側に持たせたい公開鍵を毎回作成し直してしまいます。
アプリなどの場合、こうなると証明書が更新されるたびにアプリの更新も必要かつ同時にやらなければPinningに失敗します。# 公開鍵を固定にして証明書を発行
“`
certbot certonly —
「DDoS攻撃対策 トリロジー」最終回: HTTP(S)フラッド攻撃の対策
今回はこの「DDoS攻撃対策 トリロジー」最終回だ。正直、このシリーズは人気がないよう見った。しかし、DDoS攻撃は、今日のあらゆるインターネットサービスにとって主なセキュリティ上の脅威であり、緊急時に対応できるように、事前に何を想定しているかを知っておくことが重要だ。
好かれようが好かれまいが、今回は最終回だった。将来的には、私は多分DDoS攻撃に関連する経験記事をこれ以上書くべきではないだ。それらの多くは、商業秘密だからだ。
今回の記事は、「HTTP(S) フラッド攻撃」の対策ですが、しかし今回は前回の「一般的なDDoS攻撃の対策」よりほとんど簡単だった。まず「HTTP(S) フラッド攻撃」を対策ため、必要のお金は前回より安くだ、そして、規模はともかく、方法は同じいだ。つまり「HTTP(S) フラッド攻撃」の防衛理念は全部同じだ。
同じに、今回の記事は大体は防衛の方法そして理念を教えれだけだ、だから、それが取得してすぐに使用することができるコードやプログラムを提供してない。
では、そろそろ始めましょう。
———————————-
【初心者向け】Webアプリケーションにおけるセキュリティを確保する仕組み
#はじめに
ここ2週間ほどWeb技術に関する入門書を読んでいました。
本日、読了したのでその中でも特に勉強になったと思われるセキュリティに関する部分をザックリとアウトプットしていこうと思います。かなり基礎的な内容になりますので、軽めに読み進めたい初心者向けです。
#Webアプリケーションが守るべきセキュリティとは
大きく分けて3つ。
1. 第三者への情報流出を防ぐこと(機密性)
(情報→Webサービスで利用している個人のログイン情報や、クレジットカード情報など)2. 第三者による情報の改ざんを防ぐこと(完全性)
(情報→Webサービスで利用しているショッピングポイントや口座残高の情報など)3. 適切な権限を持った人間が適切な情報を利用できること(可用性)
(情報→クライアントユーザーに紐づいた情報)これら一つでも許してしまったらユーザーへの信頼を失ってしまうので、セキュリティに対する情報はその都度アップデートして対策を施していく必要がある。
#代表的な攻撃手法と対策
###①SQLインジェクション入力フォームを利用して、データーベースに発行されるSQLを開
「DDoS攻撃対策 トリロジー」第二回: 一般的なDDoS攻撃の対策
今回の記事は「DDoS攻撃対策 トリロジー」第二回です。前回の記事に我々はDDoS攻撃の基本原理が説明したが、だから今回テーマは一般的なDDoS攻撃の対策を教えなさい。
始め前に、何っで今回の記事はただの「一般的なDDoS攻撃」だけを説明する。まず、私で「一般的なDDoS攻撃」の理解はHTTP(S) フラッド攻撃そしてDoS類の脆弱性を利用するの攻撃以外のDDoS攻撃です。その原因は「一般的なDDoS攻撃」と「HTTP(S) フラッド攻撃」の対策方法は全然違う、そして「DoS類の脆弱性を利用するの攻撃」の対策方法は以前の記事にも教えましたから、だからこそう今回記事の対策はただの「一般的なDDoS攻撃」だった。
—————————————-
# 1. DDoS攻撃対策基本理論概要
「一般的なDDoS攻撃」の対策は、その理想な理念は**「防御コストには攻撃コストより低くされる。」**です。
**この防御コストには、CPU、メモリ、サーバーの数など、要求を処理するためのリソース使用のコストが含まれます。 最も簡単な理解は、私がD
サーバーの構築は結局何をしたらいいのか。
#なんの記事?
よくサーバー構築するのですが、そのたびに何したらいいんだっけ。
セキュリティ対策はどうしたらいいんだっけってなるので備忘録の記事です。
間違えている所があればコメントで教えてくださるとありがたいです。
>書いてある情報を鵜呑みにせず、他の記事も調べて実行してくださるとありがたいです。
>また、サーバーのOSやバージョンの差が発生することがあるので細かい情報は「やりたいこと + サーバーのOS」で調べてください。
>あくまでこれは学生プログラマがまとめた忘備録です。##サーバーのOS
サーバーのOSには[WindowsServer](https://www.microsoft.com/ja-jp/windows-server),[macOSserver](https://www.apple.com/macos/server/),[Linux](https://ja.wikipedia.org/wiki/Linux)があります。
サーバーとして人気なのはLinux系統です。
###各OSについて
####WindowsServer
Microsoftが開発しているWin
GitHub Code Scanningを試してみた | 脆弱性の自動検出
# GitHub Code Scanningとは
コードをスキャンして隠された脆弱性を検出してくれる機能です。
GitHub Actionsで実行できる。
今朝twitterで知った。Code scanning is here! ?
Prevent issues in code by automating security as a part of your workflow.
✔️ Free for public repositories
✔️ Developer-first, GitHub native
✔️ Enabled for GitHub Enterprise CloudLearn more! https://t.co/2SSCjb09Il
— GitHub (@github) Laravelの認証jwt-authにログイン失敗時のロックアウト機能を追加し、セキュリティを高める方法
## jwt-authにロックアウト機能を追加してセキュリティを高めましょう。
最近ではフロントエンドとバックエンドを疎結合するのがモダンな実装なので、
フロントエンドはvue,nuxtなどのSPAを使い、LaravelをAPIサーバとして使うパターンが多いのではないでしょうか。nuxtやvueからLaravelにログインする際、APIの認証(ログイン機能)としてよく使われるのがjwt-authです。
https://github.com/tymondesigns/jwt-authJWT認証をLaravelで導入する手順については、いろんな記事があるのですが、
セキュリティを強化するため、jwt-authの標準では搭載されていない**認証に複数回失敗した時のロックアウト機能**を追加しました。## jwt-authの導入
LaravelへのAPI認証実装とjwt-authの導入についてはこれらの記事がわかりやすいです。
APIでログインしてbearerトークンを返し、フロントエンドのSPAなどから利用する時に使います。https://qiita.com/zaburo
セキュリティテスト
#セキュリティ課題
昨今、**個人情報の漏えい**や**顧客情報流出**などのニュースを耳にすることにより、セキュリティ意識の重要性が広く知られるようになった。まずは、**「システム脆弱性」**への対策が直近の優先課題となる。
**脆弱性への対策を考える**
“`lang:感染経路を確認する
1.電子メールの添付ファイル(何気なく開封したファイルが対象になっていることも)
2.ホームページを閲覧
3.USBメモリ
4.ファイル共有ソフト
5.マクロプログラム
6.アプリのインストール
7.ブラウザのアドオン
8.偽サイトへの誘導“`
#なぜ?セキュリティテストを実行するのか
設計上の**欠陥**や**構成エラー**、**ハードウェア**と**ソフトウェアの脆弱性**、**コーディングエラー**、 および**情報システムの能力**に影響を及ぼす可能性があるため。
不正アクセスにより**顧客の個人情報が流出する事故**が多いためである。
また、**十分なセキュリティ対策が実装**されているかどうかを確認する。
結果、脆弱性が見つかり事業の見直し、さらには**企業
vistaでmse その8
#概要
vistaに、Microsoft Security Essentials入れてみた。
eicar.zipを、ダウンロードできるか、やってみた。#url
https://secure.eicar.org/eicar_com.zip
#結果
chromeでやってみた。失敗する。
以上。
vistaでmse その7
#概要
vistaに、Microsoft Security Essentials入れてみた。
eicar.comを、ダウンロードできるか、やってみた。#url
https://secure.eicar.org/eicar.com
#結果
chromeでやってみた。失敗する。
以上。
vistaでmse その6
#概要
vistaに、Microsoft Security Essentials入れてみた。
mindで、eicarが作れないか、やってみた。#サンプルコード
“`
出力ファイルは ファイル。
エラー検査は
エラー? ならば
エラー文字列で 重大エラー
つぎに
。メインとは
「eicar.com」で 出力ファイルを 新規オープンし エラー検査し
「X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*」で 出力ファイルに 一行書き込み エラー検査し
出力ファイルを クローズし エラー検査し
「おけ」を 一行表示“`
#結果
速攻で隔離された。
以上。
Webアプリケーションセキュリティ入門 ~具体例を用いて堅牢なアプリの作り方を学ぶ~
# はじめに
今回の記事は最近世間を賑わせている(悪い意味で)Webアプリケーションにおけるセキュリティ問題についてです。
クラッカー(悪意のあるハッカー)たちはあの手この手でクレデンシャルな情報(秘匿性の高い情報)を盗み、悪用しようとします。
Webアプリケーションのセキュリティを高めるためには、まずどうやってクラッカーたちが攻撃するか知る必要があります。
この記事では代表的なWebアプリケーションの脆弱性をついた攻撃手法を紹介していきます!
# SQLインジェクション
### 概要
悪意のあるユーザーによってSQLコマンドが実行され、データベースの値を取得、改竄、削除される。###脆弱性があるケース
パラメータから直接SQLコマンドを流す処理が書かれている場合。
“`ruby
User.where(“id=’#{params[:id]}'”)
“`この様に書いた場合、対象のURLに
“`json
{
“id”: “‘ or 1=1 –‘”
}
“`
のリクエストが来た場合全てのユーザー情報が取得され、さらには“`json
{
脆弱性診断とは
#はじめに
待機期間を利用して、研修で少しかじった「脆弱性(脆弱性診断)」について、もう少し深く学びたいと思い、現在コツコツと勉強を進めています。
今回は、「**脆弱性**」ってなに? 「**脆弱性診断の対象**」って?などについて、簡潔にまとめてみました。
#そもそも脆弱性とは?
プログラムの間違いは「**バグ**」と呼ばれており、意図したとおりにプログラムを動作させたい場合には、プログラムからこの「バグ」をなくす必要がある。「バグ」の中にはそれを悪用することで、「**情報漏洩**」を起こしてしまったり、データの不正な書き換えを起こしたりしてしまう可能性が高いものがある。
こういった悪用可能な「バグ」を「**脆弱性**」と呼ぶ。
#脆弱性ってどうやって見つけるの?
「脆弱性」も「バグ」を見つけるのと同様で、脆弱性を見つけるためのテストを実施することで発見することが可能。そのテストのことを「**脆弱性診断**」という。
また脆弱性診断では、「脆弱性」以外にも「**セキュリティ機能の不足**」を発見することが可能。
★脆弱性診断は「**セキュリティテスト**(Securit