今さら聞けないセキュリティ 2020年11月15日

今さら聞けないセキュリティ 2020年11月15日

知って得する!? AWSのセキュリティ関連サービスをご紹介!

# はじめに
今回はAWSのセキュリティ周りのサービスを紹介します!

# YouTube動画
[【YouTube動画】 知って得する!? AWSのセキュリティ関連サービスをご紹介!](https://youtu.be/B2lJ7SCSK9E)
[![知って得する!? AWSのセキュリティ関連サービスをご紹介!](https://img.youtube.com/vi/B2lJ7SCSK9E/0.jpg)](https://youtu.be/B2lJ7SCSK9E)

# 認証・認可周りのセキュリティ
## IAM
IAMはIdentity and Access Managementの略で、AWSサービスやリソースへ安全にアクセスするための管理サービスです。

IAMではグループ、ユーザー、ロール、ポリシー、IDプロバイダーの権限設定ができます。

HTTP X-Content-Type-Options ヘッダー概要

## 概要

* `Content-Type` ヘッダー(レスポンスのファイル形式を明示する)で示された MIME タイプに基づいてファイルタイプを判断すべきことを示すためにサーバー側で付与するヘッダー。
* ファイル**内容**から、ファイルタイプを判断させない

* MIME タイプのスニッフィングを抑止するために使用する。

* MIME タイプが欠落している、あるいは MIME タイプが誤って設定されているとクライアントが判断した場合に、リソースを確認しMIME タイプを推測する処理。

## 構文

“`http
X-Content-Type-Options: nosniff
“`

## 指定しない場合に起こり得る脅威:クロスサイトスクリプティング(XSS)

![XSS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/586535/308d62c9-7812-d2d9-d460-6085a33456dd.png)

## 参考情報

* [X-Cont

元記事を表示

EC2 Instance Connectはパブリック IPアドレスを優先する?

# やってみていること
EC2が3つあります。
1. 踏み台サーバとして起動。パブリックIPあり。
2. Webサーバとして起動。パブリックIPあり。
3. Webサーバとして起動。パブリックIPなし。

なんで、3.はパブリックIPなしかと言うと、元々ELB経由で接続する予定なので、パブリックIPアドレスは不要なのですが、2.のときにうっかり付けて起動してしまった、というわけです。しかも、後からは外せない:frowning2:

今のところはプロト環境として構築中なので、本番のときは付けないで起動せねば!と心に固く誓うだけじゃなく、しっかりメモしたところです。

# EC2 Instance Connectってのがあるらしいじゃない!?
保守作業に当たってのアクセス制限とか操作記録とか、どうしようかといろいろ考え中にEC2 Instance Connectというのがあるのを知って試してみています。

## 環境構築
元々、踏み台サーバからsshでアクセスできるようにしてあったので、そこは割愛します。
実は、踏み台サーバへのログインもどうしようかと、まだ考え中で。。。AWSコンソール使

元記事を表示

セキュリティ超初心者だけどCTFやってみたい

#はじめに
CTF、1年前くらいから気になっていたけど全然手を出せていなかった。
不正アクセスのニュースがあると情報セキュリティ界隈の人たちがガヤガヤしているのを見て楽しそうだな、と思ったり。※不謹慎ですみません
単純にハッキングってかっこいいじゃんと言う憧れもあり。
最近少し時間や心身に余裕が出てきたので、まずCTFの概要や何をすれば良いかをまとめる。やってやるぞ!

#CTFとは何か
「Capture The Flag」の略で「旗取りゲーム」の事。
情報セキュリティでのCTFとは、クイズ形式でセキュリティスキルを用いて隠された答え=旗を探し出していく技術競技。
大会はいくつもあって界隈の学生・社会人が参加している。
参加すると順位や点数が付けられる。
いつでも挑戦できる常設タイプと日時を決められたイベントタイプがある。

#初見、まず初心者には敷居が高い!
一番有名なCTFと言えば「Security Contest(SECCON)」。
試しにSECCON参加者のwriteupをいくつか見てみたところ。
**全く何も分からない(´Oノ`o)**
全部呪文か異国の言葉に見える。
でもみ

元記事を表示

セッション管理の安全対策について

# 注意
僕は少しセキュリティ についてかじり出した初心者です。
間違った情報を書いている可能性があるので、コメントで教えていただけると幸いです。
ちなみに徳丸本を参考にしています。

# はじめに
当たり前のことなのですが勉強も兼ねてアウトプットします。
本題の前にクッキーとセッション変数についてそれぞれ簡単に説明します。

# クッキー
クッキーの中にはデータを保存しておくことができる。しかし値の個数や文字列の長さに制限がある。さらに利用者本人から参照、変更可能ということもあり、クッキーは秘密情報の格納に向かない。

# セッション変数
上記で説明した通りクッキーは秘密情報の格納に向いていません。
そこでwebサーバー上でセッションidを生成し、セッション変数に保存します。
そのセッション変数をクッキーに保管するという形でweb ブラウザに状態を持たせます。

# セッション管理安全でないところ
それは漏洩してしまう可能性があるという事です。
その原因は主に5つあります。

– クッキー発行の際の属性に不備
– セッションidの盗聴
– クロスサイト・スクリプティングなどアプリ

元記事を表示

【JavaScript】Webセキュリティについて

■ CSRFとは
クロスサイトリクエストフォージェリ(CSRF)とは、Webアプリケーションに存在する脆弱性、もしくはその脆弱性を利用した攻撃方法のことです。
掲示板や問い合わせフォームなどを処理するWebアプリケーションが、本来拒否すべき他サイトからのリクエストを受信し処理してしまいます。

→参考
https://www.trendmicro.com/ja_jp/security-intelligence/research-reports/threat-solution/csrf.html

■ CSRFについて参考にしたサイト

https://html-coding.co.jp/knowhow/security/csrf/

https://qiita.com/wanko5296/items/142b5b82485b0196a2da

https://www.trendmicro.com/ja_jp/security-intelligence/research-reports/threat-solution/csrf.html#counter-tm-anchor

https:

元記事を表示

Permitted Cross Domain Policies

#はじめに
Permitted Cross Domain Policies
について書いていきたいと思います。
備忘録程度ですが….

#Permitted Cross Domain Policiesって?
ドキュメント
https://www.adobe.com/devnet-docs/acrobatetk/tools/AppSec/xdomain.html
Flash pLayerを使う際
他のドメインのダータファイルなどを閲覧する際に制限をかけるためのファイル
設定などはドキュメント、またはこちらを参照(http://cuaoar.jp/2008/03/-flash-player.html)

#FlashでCross Domain てどういうこと?
そもそもFlashは呼び出される側でcrossdomain.xmlのを設定してそこを制約として
クロスドメインでFlashコンテンツを呼び出せるらしい。
参考(https://gihyo.jp/dev/serial/01/web20sec/0004)
ただしCross Domainを許可した場合他のファイルまでアクセスできてしま

元記事を表示

ContentSecurityPolicy(CSP)

#はじめに
先日、仕事でセキュリティに関する内容の仕事をしていたがそれまでクリックジャックって〜フィシングサイトって〜みたいな概念的な物しか把握してなかったので調べました。
もっと具体的に〜があって、〜が問題でだからこの設定が必要である。
というもうちょっと掘り下げた内容を備忘録として残していきたいと思います。

#ContentSecurityPolicy(CSP)って?
ドキュメントより
https://developer.mozilla.org/ja/docs/Web/HTTP/CSP
>コンテンツセキュリティポリシー (CSP) は、クロスサイトスクリプティング (XSS) やデータインジェクション攻撃などのような、特定の種類の攻撃を検知し、影響を軽減するために追加できるセキュリティレイヤーです。これらの攻撃はデータの窃取からサイトの改ざん、マルウェアの拡散に至るまで、様々な目的に用いられます。

つまりやXSSという脆弱性があると悪意のあるユーザーによって仕込まれた任意のJavaScriptが実行できてしまい、データの窃盗や改竄などができてしまう。

XSSへの内容としては

元記事を表示

X-Frame-Optionsについて

#はじめに
先日仕事でセキュリティに関する内容の仕事をしていたがそれまでクリックジャッキングって〜フィシングサイトって〜みたいな概念的な物しか把握してなかったので調べました。
もっと具体的に〜があって〜が問題で、だからこの設定が必要である。というもうちょっと掘り下げた内容を備忘録として残していきたいと思います。

#X-Frame-Optionsって?
ドキュメントより
> HTTP のレスポンスヘッダーで、ブラウザーがページを frame, iframe, embed, object の中に表示することを許可するかどうかを示すために使用されます。サイトはコンテンツ>が他のサイトに埋め込まれないよう保証することで、クリックジャッキング攻撃を防ぐために使用することができます。

つまりは他所のページやコンテンツを自分のページに挿入することができる。(HTML5でframeタグは廃止されています)
これで何が問題かというと、HTMLの仕組み上ページやオブジェクトを透過(opacity: 0;)させて重ねる(positionやz-indexなど)ことができる。

そのためURLは違えど見

元記事を表示

初心者の為のhack the box100本ノック~その3:Lame(easy)~

#初めに
皆さんこんにちは!
100本ノックシリーズはセキュリティ初心者でも分かる様、なるべく詳しく解説することを目指したシリーズです!
用語解説などは折り畳みで解説しているので、見てみてください。

寒くなってくると気分が落ち込みますが、今回も頑張っていきましょー

(宣伝)
$\rm\large{↓セキュリティカテゴリのAdven Calendar作りました!↓}$
[?セキュリティ Advent Calendar 2020?](https://qiita.com/advent-calendar/2020/security)
自分の学びのアウトプットとして、この機会に1個記事を書いてみませんか?

#目次
・初めに
・挑戦するマシン
・1.情報収集
・2.Exploit
・3.user.txtの取得
・4.root権限&root.txtの取得
・最後に
・おまけ
・参考にさせていただいたサイト

#挑戦するマシン
今回挑戦するマシンはLame(easy)です。
![htb_lame.PNG](https://qiita-image

元記事を表示

Reactで発生しうるXSS脆弱性

JSX内の式埋め込みでは、基本的にHTMLとして解釈されないようエスケープされます。ですが、危険性がゼロなわけではありません。

## Reactの標準エスケープ

“`react:App.jsx
const App = () => {
const userInputText1 = ``;
const userInputText2 = `

DIV!

`;

return (

{userInputText1}
{userInputText2}

);
}
“`

### 結果

正しくエスケープされている

![スクリーンショット 2020-11-07 13.36.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/305522/392ab403-ca45-f803-9a58-347eab72a1b0.png)

## XSSの発生パターン

#

元記事を表示

Git LFSに「素人でも理解できる」脆弱性発見。(CVE-2020-27955)

# TL;DR
もしあなたが**Windowsユーザー**で、**Git LFS**を使っているなら、いますぐ**バージョン2.12.1**にアップデートすること。

# 脆弱性の概要
Git LFSに脆弱性が発見され、約1日前(2020年11月5日)にバージョン2.12.1で修正、そして数時間前にCVE(CVE-2020-27955)が公表されました。影響を受けるプラットフォームはWindowsのみのようです。(理由は下)

発見者による情報によると、脆弱性の攻略は極めて簡単です:

* 攻撃者がリポジトリを用意し、
* `git.bat`という名のファイルを作る。中身はご自由に。
* 適当なファイルを作成し、Git LFSでトラックする。
* これらをコミットし、pushする。
* 被害者がこのリポジトリを`git clone`すると、`git.bat`内のコードが実行される。

# 原因
攻略法からもわかる通り、これは「カレントディレクトリから実行ファイルを実行する」という、[Uncontrolled Search Path Element](https://cwe.mitre.

元記事を表示

webサービスにおけるセキュリティの問題

プログラミング言語を学んでいて、あまりピンと来なかったのがセキュリティ絡みの単語。
(PHPのhtmlspecialchars、フォームのSCRF対策など)
セキュリティ対策が必要なのは何となくわかるけど、それが無いとどう問題なのか?どんなリスクがあるのか?しっかりと腹落ちしてませんでした。
今回は、セキュリティへの知見を深めるべく記事を書いてみました。
##▪︎何についての記事?

webサービスにおけるセキュリティについての記事です。
セキュリティ対策をしないとどんな危険があるのか、対策方法など、参考書を元に書きました。

##▪︎記事のゴール

セキュリティ対策について学ぶ
①基礎知識
②攻撃手法
③暗号化(HTTPS)
④対策装置

##▪︎基礎知識
近年webシステムが発達して様々な機能をもつようになりましたが、それに伴い、悪意をもったユーザーからの攻撃のリスクも高まっています。

例えば今年9月、ドコモの電子マネー決済サービス「ドコモ口座」で不正利用が明らかになりました。ドコモ口座とは、ドコモが展開する電子決済サービスで、ドコモ口座と銀行口座のひもづけによって、スマホ決済が

元記事を表示

認証(Authentication)と認可(Authorization)の違い

AuthenticationとAuthorizationが紛らわしいのでメモ.
注意: “ユーザ”は、人とは限りません.”サーバ”は、提供者(機械or人)です.

追記 2020/11/05

ritouさんにコメントいただきましたので、情報を修正しました!
(詳しくは修正履歴にてご確認ください)

忘れがちな Identification 識別

サーバがユーザを特定すること.
入力されたIdentifier(ID, 識別子)から、ユーザを特定する.

Authentication 認証

ユーザが本物かどうかの確認. 識別じゃないよ.
ユーザーが誰なのか特定したあとで、本当にその人なのか確認すること.
例えば、ユーザにCredential(パスワードとか認証に使うものたち)を渡してもらって、一致すればログイン.

Authorization 認可

サーバがユーザに適切な権限を与えること.

駆け出しインフラエンジニアが読むと役に立つ技術入門書

#はじめに
ネットワーク、サーバ、運用保守、セキュリティの業務に従事するインフラエンジニアが読むと役に立つであろう書籍を紹介します。

この記事では、以下の4つの分野で役に立つ入門書を紹介します。
・ネットワーク
・サーバ
・ITIL
・Excel

#この記事で紹介している本
▼ネットワーク
– 1週間でCCNAの基礎が学べる本(徹底攻略)
– ネットワーク超入門項講座
– ネットワーク超入門項講座 保守運用管理編
– ネットワーク超入門項講座 セキュリティ編

▼サーバ
– 1週間でLPICの基礎が学べる本
– イラスト図解式 この一冊で全部わかるサーバーの基本

▼ITIL
– 新人ガール ITIL使って業務プロセス改善します!

▼Excel
– Excel 最強の教科書[完全版]――すぐに使えて、一生役立つ「成果を生み出す」超エクセル仕事術

##1週間でCCNAの基礎が学べる本
1週間で CCNAの基礎が学べる本初心者の為のhack the box100本ノック~その2:blue(easy)~

#初めに
こんにちは!
100本ノックシリーズはセキュリティ初心者でも分かる様、なるべく詳しく解説することを目指したシリーズです!
用語解説などは折り畳みで解説しているので、見てみてください。

それでは今回もよろしくお願いします~

#目次
・初めに
・挑戦するマシン
・1.情報収集
・2.下準備
・3.シェルの取得
・4.user.txtとroot.txtの取得
・おまけ
・最後に
・参考にさせていただいたサイト

#挑戦するマシン
今回挑戦するマシンはblueです。
![htb_blue_rating.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/686089/954dda6b-80a5-6bc3-4cf3-02947c2ac4fd.png)

かの有名な脆弱性、ms17-010を持ったマシンで、攻撃に使われたソフトは「Eternal Blue」と呼ばれています。
マシンとしての難易度は非常に簡単で、metasploitを用いれば一瞬で終わってしまう為、今回は使わない方法を使います。
(Metas

ハッカーって?

##あいさつ
初めての人は初めまして!知っている人はこんにちは!
Atieです!実は前にハッカーに関するツイートしたときに
ハッカー = ハッキングする人
と思っている人が多かったのでその誤解を解くためにも書きました!

##読んで得られること

✓ハッカーの本当の意味を知ることができる
✓ハッカーについて知ることができる
✓ハッカーになる方法

では!

#ハッカーとは?

皆さんは「ハッカー」と聞いたとき何を思い浮かべるでしょうか?
「ハッキングする人」「悪い人」「暗い部屋でカタカタPCするひと」
など様々だと思います
ただ
「ハッカー」の本当の意味は全然違います

##ハッカーの本当の意味
ではまず「ハッキング」というものから解説していきます

じつはハッキングって大まかにはけて二つあるんですよね

まぁ一つはバスケのファールで「ハッキング」という種類があるだけなのですが…(バスケ部だよー)

もう一つがコンピュータなどの「ハッキング」です
実はこのハッキングという語源はもともと学生たちがユニークのある「いたずら」を考えたことが始まりです
そのことを学生たちが「ハッキング」と

リンクを別タブで開く(target=”_blank”)を使うときの注意点

## 概要

`target=”_blank”`のみを使うのはセキュリティとパフォーマンスに悪影響があるため非推奨

##理由
リンク先のページに悪意のあるJavaScriptが仕組まれている場合、
リンク元のページを操作できてしまうから

##対策
`rel=”noopener”` 属性または `rel=”noreferrer”` 属性と併用する
これによってリンク先のページで`window.opener`での参照が不可能になる。

“`NG例.html

“`
“`OK例.html

“`

##参考
[グーグルのデベロッパーサイト](https://web.dev/external-anchors-use-rel-noopener/
)

>原文
・ The other page may run on the same process as your page. If the other

ゼロトラスト的なことを始める時に注意すべきだと思ったこと

自社内でゼロトラスト的な取り組みを行っていますが、設計や選定の時に注意すべきと感じたことを書きたいと思います。実際やってみてどうだったかも簡単に書きたいと思います。実は2020年10月28日の Akamai Gaming Leadership Summit でウェビナー登壇させて頂いた時の資料です。せっかくスライドを作ったので少し補足も加えつつ公開してみました。スライドは下記にもアップロードしてあります。

スライド版

![ゼロトラストの取り組みと最初の注意点_ページ_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401138/a1538b7c-a04b-a67e-01c4-0a91e5f595b5.png)

![ゼロトラストの取り組みと最初の注意点_ページ_03.png](https://qiita-image-store.s3.ap-northeast-1.ama

HTTPレスポンスヘッダーのバナー情報隠ぺいは無意味ではないけど根本的な対策ではない、という話

公開Webサーバーのバージョン露出は一般的には好ましくなく、安全対策として隠すことが推奨されています。

WebサーバとPHPのバージョンは、HTTPレスポンスヘッダーから取得できます(バナー情報)。バナー情報を隠すこと自体は全く無意味な対策ではないと思いますが、ただ、ネット上のサイトを色々見ているとバージョン番号を消す方法についてだけ書かれているものが多く、それ以上については踏み込んでいないサイトが多い印象がありました。そもそも、なぜデフォルトの状態では出力されているのでしょう? 何の意味もなく出力しているだけなのでしょうか?

隠ぺいを主要な安全対策とする方法は「隠ぺいによるセキュリティ」と呼ばれます。が、これは安全性を担保しにくいというか、それだけに頼ることは避けるべきものです。

この記事では、HTTPレスポンスヘッダーからApache、NGINX、PHPのバナー情報を秘匿する方法も記載すると同時に、「隠ぺいのセキュリティ」についても踏み込んで考えてみたいと思います。

ちなみに、Qiitaでは初となる記事です(今まで自分のブログで書いていました)。不備や誤りについてはご指摘下