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

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

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

■ 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://knowledge.cpi.ad.jp/howto-cpi/129/

■ CSRF攻撃の例

【1】 攻撃者が罠を仕掛けたWebサイトを用意
【2】 被害者が罠サイトを閲覧
【3】 罠サイトを閲覧した被害者のPCから、被害者がそのときアクセスするつもりのないWebサイトの掲示板などに強制的にアクセスさせられ、コメントなどが書き込まれる
【4】 書き込まれたWebサイトの接続ログを調べると、被害者のPCからのアクセス情報(IPアドレスなど)が記録されている

![スクリーンショット 2020-

元記事を表示

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では初となる記事です(今まで自分のブログで書いていました)。不備や誤りについてはご指摘下

AWS利用時に踏み台サーバのログをS3に保存する

AWS利用時にLinux踏み台サーバの操作ログを保存する方法です。
現在ではSessionManagerがあるのでこのような事をする場面は少なくなると思いますが
環境によってはサービス利用出来ない事もあるかと思いますのでメモしておきます。

AWSでは踏み台構築のクイックスタートとCloudFormationのテンプレートも用意されているので
細かい要件もなく手っ取り早く自動でログ保存してくれる踏み台を構築したい場合は
以下を参照ください。
[AWS クラウドでの Linux 踏み台ホスト: クイックスタートリファレンスデプロイ](
https://docs.aws.amazon.com/ja_jp/quickstart/latest/linux-bastion/welcome.html)

本記事は以下の記事を参考に解説、加筆・修正しています。
[How to Record SSH Sessions Established Through a Bastion Host | AWS Security Blog](
https://aws.amazon.com/jp/blogs/secu

cscの作法 その42

#概要

cscの作法、調べてみた。
dllinjectやってみた。
pidを指定するタイプやってみた。

#サンプルコード

“`
using System;
using System.Text;
using System.Diagnostics;
using System.Runtime.InteropServices;

class Test {
[Flags]
enum AllocationType {
MEM_COMMIT = 0x1000,
MEM_RESERVE = 0x2000,
}
[Flags]
enum MemoryProtection {
PAGE_EXECUTE_READWRITE = 0x40,
}
[Flags]
enum FreeType {
MEM_RELEASE = 0x8000,
}
[Flags]
enum DesiredAccess {
PROCESS_ALL_ACCESS = 0x1fffff,
PROCESS_QUERY_INFORMATION = 0x400,
PROCESS_CREA

[AWS】MFAの有効化とSSH接続

AWSの利用を開始した際、すぐにやっておきたいのは
ルートユーザの保護です。

今回はルートユーザのMFA有効化などによる保護、作業用アカウントの作成とSSH接続までをやってみます。
##ルートユーザのMFA有効化
MFAの詳細は以下AWSの公式サイトを参照。
AWS での多要素認証 (MFA) の使用

MFA(多要素認証)を利用するとログインに認証済デバイスが必要となるため
セキュリティがぐっと高くなります。ここではルートユーザだけMFAを有効化しますが
全ユーザでMFAを有効化しておくことをお勧めします。
MFAデバイスにはいくつか種類がありますが、仮想MFAデバイスを利用することが
多いと思いますので今回は仮想MFAデバイス(Android端末)を利用します。

1.ナビゲーションバーの右側で、使用するアカウント名を選択し、「マイセキュリティ資格情報」を選択
2.多要素認証(MFA)項目の中にある「MFA有効化」をクリックし、次のウィザードで続行を押下
3.QRコードを表示し、Androidで立ち上げた仮想MAFアプリでスキャンする
4.アプリで表示される連続するMFAコードを

outlook メール仕分けスクリプト

#概要

outlook 2010で、メール仕分けやってみた。

#環境

windows7 32bit
outlook 2010

#サンプルコード

“`
Sub test()
Dim NameSpc As Object
Dim objbox As Object
Dim fInbox As Object
Dim jnkbox As Object
Dim mail As Object
Set NameSpc = Application.GetNamespace(“MAPI”)
Set fInbox = NameSpc.GetDefaultFolder(olFolderInbox)
Set jnkbox = NameSpc.GetDefaultFolder(olFolderJunk)
MsgBox fInbox.Items.Count
For i = fInbox.Items.Count To 1 Step -1
Set mail = fInbox.Items(i)
If

volatilityの作法 その23

#概要

volatilityの作法、調べてみた。
vistaでも、yarascanがやりたい。
「青い空を見上げればいつもそこに白い猫」やってみた。

#写真

![無題.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/e0fd9e0f-2ff3-c004-6945-69885d62c20d.jpeg)

#yara-rules

“`
rule eicar_substring : eicar
{
strings:
$eicar_substring = “$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!”
condition:
all of them
}

“`

以上。