今さら聞けないセキュリティ 2021年12月05日

今さら聞けないセキュリティ 2021年12月05日

盾と矛。セキュリティの矛盾

電子計算機の開発者の一人であるTuringは、暗号を解読する道具を設計していたという。

ナチスの暗号機「エニグマ」誕生から100年–解読までの道のり

https://japan.cnet.com/article/35115908/

電子計算機であっても、たとえば暗号を作るものを盾、
暗号を破るものを矛としたら、どちらを作るのが容易だろうか。

現在ある矛を防ぐ盾を作ることも、
現在ある盾を破る矛を作ることもできるとしたら、互角だと思うかもしれない。

矛は、一瞬でも破れば成功で、盾は守り続けなければいけないという条件があると仮定したらどうだろう。

盾が、一瞬でも守れば成功で、矛は破り続けなければいけないという条件があると仮定することはあまり考えにくい。

矛は一つの穴を見つければよいが、盾はすべての穴を塞がなければいけないと考えたらどうだろう。

盾に必要な条件と、矛に必要な条件が違うので、同じ能力の計算機を同じ能力のプログラマが使うとしたら、圧倒的に矛の方が有利じゃないだろうか。

<この項は書きかけです。順次追記します。>
<この記事は個人の過去の経験に基づく個人の感

元記事を表示

Snyk無償版を使ってみた

# はじめに

[Snyk](https://snyk.io/) の無償アカウントでどこまでできるかやってみました。

# Snykとは

Snykとはセキュリティプラットフォームです。

> Snyk(スニーク)はデベロッパーファーストのセキュリティプラットフォームです。Snykは、コードやオープンソースとその依存関係、コンテナやIaC(Infrastructure as a Code) における脆弱性を見つけるだけでなく、優先順位をつけて修正するためのツールです。Gitや統合開発環境(IDE)、CI/CDパイプラインに直接組み込むことができるので、デベロッパーが簡単に使うことができます。
>
> 出典: https://qiita.com/advent-calendar/2021/snyk

docker, IaC, プログラム等の様々なソースコードの脆弱性をチェックすることができるSaaSです。

# Snykの画面構成

Snykの画面をひと通り見てみます。

## Dashboard画面

脆弱性スキャン対象のプロジェクトを管理する画面です。

![image.png](h

元記事を表示

snyk を使ってプロジェクトのセキュリティ管理を(できるだけ)楽にする.

# はじめに
この記事は[Snykを使ってセキュリティにまつわる記事を投稿しよう!【PR】Snyk](https://qiita.com/advent-calendar/2021/snyk)の3日目の記事です.

普段の開発で「**セキュリティや脆弱性には気を付けないといけない**」と思っていても実際に行うのは簡単ではないですよね.

– 書いているコードにセキュリティリスクがないか
– 書いている人が確認する?レビュワーが確認する?両方?
– XSSやCSRF・SQLインジェクションなど様々な場合について考えられる?
– 使用しているライブラリなどに重大な脆弱性がないか
– 使っているもの全て確認する?
– どれくらいの頻度で確認する?
– どうやって修正すれば良い?どのバージョンに上げれば良い?

パッと思いつくだけでも,考慮すべきことがたくさんあります.特に,個人開発やOSSではセキュリティレベルを担保することはかなり難しいと思います.

そこで今回は, [snyk(スニーク)](https://snyk.io/)を使って上記を自動化したい

元記事を表示

Databricksは自己が所有している静的パブリックIPアドレスからアウトバウンドできる数少ないPaaSのデータ分析サービス

## 概要
Databricksでは、自己が所有している静的なパブリックIPアドレス(PIP)からアウトバウンド可能な数少ないPaaSのデータ分析サービスであるため、他のクラウドサービスと連携を行う際にセキュリティを担保しやすくなります。

たとえば、Snowflakeと連携する際に効果を発揮します。

Snowflalek社のドキュメントである[Microsoft Azureからの一括ロード — Snowflake Documentation](https://docs.snowflake.com/ja/user-guide/data-load-azure.html)の手順でAzure StorageとSowflakeを接続した場合には、下記のリスクがあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/4b133a3a-ae27-edf4-4bab-e98fe66bda39.png)

Snowflakeのネットワークポリシー機能(アカウントレベル、あるいは、ユーザ

元記事を表示

会員情報DBを安全に利用するためにマスキングする

この記事は[ナイル Advent Calendar 2021](https://qiita.com/advent-calendar/2021/nyle) 2日目の記事です。

# はじめに
サービスを運営していると本番で発生したバグの調査や機能開発時の動作確認などの際に本番データを使って行えるとなにかと作業がはかどります。
ですが、ユーザーの個人情報やセンシティブなデータをそのまま持ってきて、社内のメンバーが比較的カジュアルにアクセス出来る環境に反映することはセキュリティ的に非常にリスキーであり避けなければなりません。
そこで、本番データのセンシティブな部分をマスキングすることで、実際の本番に近いデータで調査・動作確認が出来るようにします。

# マスキングにあたっての要件

– 個人が特定できない程度に非特定化加工する
– (個人ではなく)ユーザーを特定できるようにしたい
– プロダクトの動作画面上で表示される情報からユーザーの当たりが付けられるくらいにはしたい

# 具体的方法

**メールアドレス**
原型は残さず、ユーザー特定がしやすいようにユーザーIDを含める形に加工する

元記事を表示

CORSエラー回避法ではなくCORSそのものについて理解したいの(初学者向け)

この記事は [Ateam Lifestyle Inc. Advent Calendar 2021](https://qiita.com/advent-calendar/2021/ateam-lifestyle) 1日目の記事です。

## 概要

API開発しているとCORSエラーに遭遇した経験はありませんか?

CORSとはそもそもなんなのか?今回はエラー回避法ではなく、その成り立ちなども含めて、「**CORSとはそもそもなんなのか?**」を書いていきます。

### なぜ成り立ちを知る必要があるのか?

仕事だと現象のエラー回避だけして、それが生まれた背景や成り立ちまで知る余裕がありません。そのままにしていては、自分の中でも応用が効かないと思ったのでこのテーマにしました。

また「CORS」についてググると、エラーの回避策についての記事が多い印象でした。

https://qiita.com/hgaiji/items/fabe6a23d564b20ad558

https://qiita.com/att55/items/2154a8aad8bf1409db2b

仕事としてはその方

元記事を表示

AWS環境のセキュリティチェックをするためのツールを作った話

# この記事について

NTTドコモテクニカルジャーナル Vol.29 No.1 “[パブリッククラウドの利用に特化したセキュリティチェックツールの開発](https://www.nttdocomo.co.jp/corporate/technology/rd/technical_journal/bn/vol29_1/006.html)” の筆者による解説記事です。

# AWS上で起こるセキュリティ事故

AWSの東京リージョンのリリースが2011年3月2日ですので、2021年で丸10年が経過したことになります。(ちなみに、この10年の節目である2021年3月2日に日本で二番目のリージョンである大阪リージョンが正式にGAとなったのは有名な話ですね。)

昨今、AWSをはじめとするパブリッククラウド上で企業がシステムを構築することはもはや当たり前になってきました。それにあわせて、AWS上で企業が顧客情報など特に機密性の高い情報を扱うようになってきていますが、当然ながらその際にはセキュリティが非常に重要となります。

セキュリティ対策がうまくできていないと、大規模な情報流出やサービスの停止

元記事を表示

そうだセキュリティ、しよう

#はじめに
こんにちは!
DMM WEBCAMP Advent Calendar 2021の5日目を担当することになりました。
メンターの@ta-igaです。

近年サイバー攻撃とかセキュリティ関連のニュースが多いな〜〜(俺もサイバー攻撃してみたいな〜)ということで、この事について調べてみたことをちょっとまとめていきたいと思います。実際、地方の病院がサイバー攻撃受けて患者の情報が全てなくなり医療を提供することができなくなった事例があるとか、、、。これからIT技術がどんどん普及していく時代だと思うので皆さんもこの記事を読んで一緒にITリテラシーを身につけていきましょう!(あとLGTMしてね!)

#実際の事例
2021年10月末徳島県つるぎ町の町立半田病院がサイバー攻撃に襲われました。病院のシステムに侵入して情報を暗号化し、復旧と引き換えに金銭を要求するコンピューターウイルス「ランサムウエア」に感染させられ増田。約8万5千人分の電子カルテが閲覧できなくなり新規患者の受け入れを停止状態。命を守る地域の重要インフラは大打撃を受ける大惨事となりました。。。この他にもサイバー攻撃はたくさん起きて

元記事を表示

SHODANを使った自社サイトの簡易セキュリティチェック

SHODANを利用した自社サイトの簡易セキュリティチェックの手順を記載します。
※あくまで簡易チェックですので、細かいチェックをする場合は別途ツールなり診断業者を利用しましょう。

##SHODANとは
SHODANとはインターネット上に公開されている機器を自動でクロールし、IPアドレス、ポート番号などの収集し、公開しているWebサービスです。公開されている情報に意図しない設定や情報などが含まれていると攻撃者に悪用される可能性があります。
https://www.shodan.io/

##SHODANの利用方法
SHODANを利用するためにはユーザ登録が必要です。

![WS000001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2332839/ac1ea345-7f8a-2655-d0c4-118c4146b72c.jpeg)
[SIGN UP NOW]をクリック

![WS000002.JPG](https://qiita-image-store.s3.ap-northeast-1.amazo

元記事を表示

【迷惑メール】親のスマホに送られたURLを解析していくゥ

#ある日突然….
親のスマホに迷惑SMSが送られてきた。
文言は忘れたが、セキュリティが危ないらしい。

#とりあえずURLを開く
送られたURLをPCで開くことにした。
非常に凝っているようで、PCのユーザーエージェント(UA)ではページが正しく表示されない
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1523062/817887e0-77a8-c3cc-7550-f4d60b7de195.png)

?ってなんだよって思いながら、スクリプトを拝見すると、以下のようになっていた
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1523062/5ad4692c-a95f-4836-dddc-14d0e93d9b25.png)

簡単なJavaScriptでiPhoneかAndroid端末のUAだと表示されるようだ!

“`
もし「iPhone」でサイトにアクセスして来たらサイトの内容

元記事を表示

【SAP-C01試験対策】DDoS攻撃に対する対策

# はじめに
AWS上のDDoS攻撃に対するセキュリティ技術を勉強するために以下の公式ドキュメントおよび研修を参考にしたので内容をまとめます。

https://aws.amazon.com/jp/shield/ddos-attack-protection/

https://www.school.ctc-g.co.jp/course/AW08.html

# 背景
本記事はAWSソリューションアーキテクトプロフェッショナルに合格するために、[Udemyの模擬試験](https://www.udemy.com/course/aws-53225)を解いて分からなかった部分を勉強してまとめるものです。

試験対策用のため、分からない知識を補足したり試験で問われなさそうなところを省略したりしながらまとめています。
なるべくわかりやすい記載を心がけますが、最終目的は自己学習用であるということをご容赦ください。

# DDoS攻撃とは

複数のソースを使用してウェブサイトやアプリケーションに負荷をかけ、正当なエンドユーザーのアクセスを妨害する攻撃。
Distributed Denial of S

元記事を表示

SQLインジェクションを防ぐ 〜8

#####SQLコードインジェクション防止の8のベストプラクティス
https://snyk.io/blog/sql-injection-cheat-sheet/

######第8章です。

[序章](https://qiita.com/bricolageart/items/f87dd0d98f1e1b5c4666)
1. [クライアントサイドの入力バリデーションに依存しない](https://qiita.com/bricolageart/items/b442165360ef24d093da)
2. [制限された権限を持つデータベースユーザーを使用する](https://qiita.com/bricolageart/items/a857fa1c058a4527f155)
3. [プリペアドステートメントとクエリパラメータ化を使用する](https://qiita.com/bricolageart/items/ffe99886bdcdbf32658e)
4. [コードをスキャンしてSQLインジェクションの脆弱性を探す](https://qiita.com/bricolageart/i

元記事を表示

SQLインジェクションを防ぐ 〜7

#####SQLコードインジェクション防止の8のベストプラクティス
https://snyk.io/blog/sql-injection-cheat-sheet/

######第7章です。

[序章](https://qiita.com/bricolageart/items/f87dd0d98f1e1b5c4666)
1. [クライアントサイドの入力バリデーションに依存しない](https://qiita.com/bricolageart/items/b442165360ef24d093da)
2. [制限された権限を持つデータベースユーザーを使用する](https://qiita.com/bricolageart/items/a857fa1c058a4527f155)
3. [プリペアドステートメントとクエリパラメータ化を使用する](https://qiita.com/bricolageart/items/ffe99886bdcdbf32658e)
4. [コードをスキャンしてSQLインジェクションの脆弱性を探す](https://qiita.com/bricolageart/i

元記事を表示

SQLインジェクションを防ぐ 〜6

#####SQLコードインジェクション防止の8のベストプラクティス
https://snyk.io/blog/sql-injection-cheat-sheet/

######第6章です。

[序章](https://qiita.com/bricolageart/items/f87dd0d98f1e1b5c4666)
1. [クライアントサイドの入力バリデーションに依存しない](https://qiita.com/bricolageart/items/b442165360ef24d093da)
2. [制限された権限を持つデータベースユーザーを使用する](https://qiita.com/bricolageart/items/a857fa1c058a4527f155)
3. [プリペアドステートメントとクエリパラメータ化を使用する](https://qiita.com/bricolageart/items/ffe99886bdcdbf32658e)
4. [コードをスキャンしてSQLインジェクションの脆弱性を探す](https://qiita.com/bricolageart/i

元記事を表示

SQLインジェクションを防ぐ 〜5

#####SQLコードインジェクション防止の8のベストプラクティス
https://snyk.io/blog/sql-injection-cheat-sheet/

######第5章です。

[序章](https://qiita.com/bricolageart/items/f87dd0d98f1e1b5c4666)
1. [クライアントサイドの入力バリデーションに依存しない](https://qiita.com/bricolageart/items/b442165360ef24d093da)
2. [制限された権限を持つデータベースユーザーを使用する](https://qiita.com/bricolageart/items/a857fa1c058a4527f155)
3. [プリペアドステートメントとクエリパラメータ化を使用する](https://qiita.com/bricolageart/items/ffe99886bdcdbf32658e)
4. [コードをスキャンしてSQLインジェクションの脆弱性を探す](https://qiita.com/bricolageart/i

元記事を表示

SQLインジェクションを防ぐ 〜4

#####SQLコードインジェクション防止の8のベストプラクティス
https://snyk.io/blog/sql-injection-cheat-sheet/

######第4章です。

[序章](https://qiita.com/bricolageart/items/f87dd0d98f1e1b5c4666)
1. [クライアントサイドの入力バリデーションに依存しない](https://qiita.com/bricolageart/items/b442165360ef24d093da)
2. [制限された権限を持つデータベースユーザーを使用する](https://qiita.com/bricolageart/items/a857fa1c058a4527f155)
3. [プリペアドステートメントとクエリパラメータ化を使用する](https://qiita.com/bricolageart/items/ffe99886bdcdbf32658e)
4. [コードをスキャンしてSQLインジェクションの脆弱性を探す](https://qiita.com/bricolageart/

元記事を表示

SQLインジェクションを防ぐ 〜3

#####SQLコードインジェクション防止の8のベストプラクティス
https://snyk.io/blog/sql-injection-cheat-sheet/

######第3章です。

[序章](https://qiita.com/bricolageart/items/f87dd0d98f1e1b5c4666)
1. [クライアントサイドの入力バリデーションに依存しない](https://qiita.com/bricolageart/items/b442165360ef24d093da)
2. [制限された権限を持つデータベースユーザーを使用する](https://qiita.com/bricolageart/items/a857fa1c058a4527f155)
3. [プリペアドステートメントとクエリパラメータ化を使用する](https://qiita.com/bricolageart/items/ffe99886bdcdbf32658e)
4. [コードをスキャンしてSQLインジェクションの脆弱性を探す](https://qiita.com/bricolageart/

元記事を表示

HTTP request smugglingってなんぞ

BurpのScan実行結果に「HTTP request smuggling」なる脆弱性が存在した。初耳なので調べるナッシー!

## 概要

PHPの一部バージョンでApacheとの接続にApache2hanlerを用いている場合にに存在する脆弱性

リクエストヘッダに特定のヘッダを付与すると、レスポンスボディにリクエストボディの文字列が付与されてしまう脆弱性
リクエストボディにscriptタグを記載することで標的に任意のjsを実行させることができる。

脆弱性番号: CVE-2018-17082

## 詳細

リクエストヘッダに「Transfer-Encoding: chunked」と「Content-Length:${任意の数字}」を付与すると、レスポンスボディにリクエストボディの内容が反射されてしまう。

このリクエストボディにscriptタグを用いてjavascriptを記載することで、任意のjavascriptを標的に実行させることができる。

### Transfer-Encoding: chunkedとは?

HTTPでデータのサイズがわからない場合にチャンクとして分割

元記事を表示

SQLインジェクションを防ぐ 〜2


#####SQLコードインジェクション防止の8のベストプラクティス
https://snyk.io/blog/sql-injection-cheat-sheet/

######第2章です。

[序章](https://qiita.com/bricolageart/items/f87dd0d98f1e1b5c4666)
1. [クライアントサイドの入力バリデーションに依存しない](https://qiita.com/bricolageart/items/b442165360ef24d093da)
2. [制限された権限を持つデータベースユーザーを使用する](https://qiita.com/bricolageart/items/a857fa1c058a4527f155)
3. [プリペアドステートメントとクエリパラメータ化を使用する](https://qiita.com/bricolageart/items/ffe99886bdcdbf32658e)
4. [コードをスキャンしてSQLインジェクションの脆弱性を探す](https://qiita.com/bricolage

元記事を表示

[Hacking:美しき参謀] フォーマット文字列攻撃について

#はじめに
これはJohn Erickson「Hacking:美しき参謀 脆弱性攻撃の理論と実際 第2版」の「0x350 プログラムの脆弱性攻撃」の内、特に「フォーマット文字列攻撃」について自分なりにまとめたものです。コードはすべて書籍が提供している仮想環境上で動かしています。

#フォーマット文字列攻撃とは
下のようにユーザーからの入力をバッファにコピーし、そのバッファを直接printf()の引数にするようなコードがあるときに有効。任意のメモリアドレスに書き込みを行い、想定外の処理を実行させることができる。

“`c
char buffer[1024];
strcpy(buffer,argv[1]);
printf(buffer);
“`

#前提知識
###1. printf()の変換指定子
・%xは対応するメモリアドレスから4byteを読み出し、フィールド幅が指定されていたらその幅で表示する。フィールド幅は「**最小フィールド幅**」であることに注意。例えばフィールド幅が%4xのように指定されていても、読みだされたのが8桁だった場合は8桁で表示される。
・%nは「**それまで

元記事を表示

OTHERカテゴリの最新記事