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

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

ウイルスが検出されました? 「嘘です!」

# 某人「ウイルス感染したー」

先月末頃、「PCがウイルスに感染したー!」というのを某人から相談受けた時のメモ。

## トラブル派生

某人「PCがウイルス感染したって、どうしよう…」

私「まずLANケーブル抜いて! そして待ってて」

この人のPCは有線接続だったのでLANケーブルを抜くのを指示しましたが、WiFiなら当然WiFiを切ります。
もし本当にウイルス感染していたら、そのPCを土台に他のPCへ感染を広げる恐れがあります。
問答無用でネットワークから切断しましょう。

そんなこんなで、もしEmoteみたいなやつだったりしたら嫌だなーって思いつつ、その人の元へ向かいました。

## 状況確認

私「来たよ、PC見せて」

某人「これー」

![matekora.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/915263/7ddf2841-1dc9-01d3-2edf-022580d37d6e.jpeg)

私「はい」

どうでもいいことだけど、選択肢「Ignore(無視)」は分かる。**「

元記事を表示

metasploitable の mutillidaeのTable ‘metasploit.tableName’ doesn’t existエラーの解決

# 概要
metasploitableのmutillidaeページが、以下のエラーメッセージが表示され、正常に機能しない問題の解決。

“`
Table ‘metasploit.tableName’ doesn’t exist
“`

# 解決方法
configファイルを編集する。

“`bash
sudo nano /var/www/mutillidae/config.inc
“`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608348/7c40acf4-2a93-e801-8e14-1d59c805b044.png)

$dbnameが初期ではmetasploitになっているが、これをowasp10に修正する。

元記事を表示

Linuxでログを無効化する

こんにちは、c477usです。
Linuxでは/var/log上にユーザーのトラフィックが記録されています。これはエラー・バグの特定や外部から侵入された際の攻撃者の特定には役立ちますが、ずっとログファイルを残しているとストレージを圧迫する恐れがあります。

/var/logを定期的に削除するのも手ですが、今回はそもそもログを無効化しログを保存しないようにする方法を紹介します。

#警告
**ログを無効化するとエラー・バグ原因の特定が困難になり、外部から侵入された際の攻撃者の特定も難しくなります。**

**全て自己責任で実行して下さい。**

#Linuxのログについて
ここではLinuxのログについて軽く説明します。とりあえずログの無効化を行いたい方はこの章を飛ばして下さい。

Linuxでは、基本的にログファイルを/var/log上に配置しています。また、ログファイルにはいくつか種類がありそれぞれが決まった役割を持っています。
今回はUbuntuでのログファイルについて説明しますが、他のディストリビューションでも大体同じです。

* auth.log
システムへのログイン履歴を格納

元記事を表示

脆弱性のキャッチアップメモ

いくつかの脆弱性についてキャッチアップしました。

## SQL injection

APはユーザからの入力を受け付け、その後SQLを実行するとユーザの入力により意図しない結果になる恐れがある。

**例**

このようなSQLがあるとします。

“`SQL
select * from user where userid = ‘{{userid}}’ and nm = ‘{{nm}}’;
“`

ユーザからの入力は:

– userid: 42′ or 1=1–
– nm: nm

変換後のSQL

“`SQL
select * from user where userid = ’42’ or 1=1– and nm = ‘nm’;
“`
になる。

こうして、42というユーザだけではなく、全てのユーザ情報が抽出されてしまうだ。

## SQL injection (second order)

SQLiと違って、ユーザが入力した情報をその場で利用せず、一回APのほうで保管します。
また未来のどこかのタイミングで仕込んだ情報が意図しない結果になる恐れがある。

**例

元記事を表示

GitにおけるRails Tutorialになかった注意点!(in チーム開発の学び)

# はじめに
これは実務と同じ方式で行うチーム開発体験学習で、
GitHubを利用する際、現役の先輩エンジニアにご指摘いただいた内容です。
それまで私は全く考えてこなかったことですが、セキュリティを考えると当然のことです。

# 目次

1. [gitに記録してはいけないもの](#Chapter1)
2. [もし実務でやったらセキュリティインシデント(アカンやつ)](#Chapter2)
3. [次からは気をつけよう。ネットに放流した鍵はもう安全ではない。](#Chaprter3)



# gitに記録してはいけないもの
端的に言うと下記2つのファイル

・ config/credential.yml.enc
・ config/master.key

これらをgitに記録してしまい、
あまつさえGitHubにプッシュしてしまいました。
やっちまったなあ!


# もし実務でやったらセキュリティインシデント
こちらをご覧くださ

元記事を表示

OnionPi ~ラズパイをOnionルーターにする

こんにちは、c477usです。
インターネットトラフィックを全てTor経由にする方法としてはTorProxyの導入が一般的ですが、全ての端末でTor通信を行いたい場合はOnionルーターという選択肢があります。
Onionルーターには[Anonabox](https://www.anonabox.com/)等の既製品もありますが、RaspberryPiで自作することもできます。
今回はその方法について解説していきます。

#環境
RaspberryPi 3 Model B+(WiFi/RJ45が組み込まれているものがおすすめ)
MicroSD 16GB
Raspbian Lite

#RaspberryPiの設定

##起動前
MicroSDにOSファイルを焼いたら、あらかじめSSH接続ができるように設定していきます。
以下の操作はMicroSD上の**boot**ディレクトリ上で行います。

まず**config.txt**の一番下に以下を追記して下さい。

“`code:config.txt
dtoverlay=dwc2
“`

次に、**cmdline.txt**上の**ro

元記事を表示

PirateBox ~オフラインでファイルをやり取りする

こんにちは、c477usです。
個人間でファイルをやり取りする際、距離が近い場合はUSBメモリーに保管する方法、遠い場合はメールに添付する方法がよく取られます。
PirateBoxもファイル共有の方法の1つですが、RaspberryPiを用いてかなり手軽に作ることができ使いやすく、また匿名性もある程度担保されます。
ファイル共有だけでなくチャット機能も利用できるためちょっとした連絡にも使えそうです。

#PirateBoxとは
**PirateBox**
https://piratebox.cc/

PirateBoxはオフラインでの匿名ファイル共有とコミュニケーションシステムを構築するためのソフトウェアです。
ハードウェアとしてRaspberryPiを使用しているため安価に実装することが出来ます。

##デッドドロップとは
PirateBoxはデッドドロップという手法を参考に開発されました。これは諜報機関の工作員(=スパイ)が安全に情報をやり取りするために考案されたものです。
手順としては非常に単純で、

1. 1人があらかじめ決めた場所で情報が入ったUSBメモリー等を落とす
2.

元記事を表示

難読化とMinifyについて

## はじめに(調べるに至った経緯)
ども!ワンピースの光月おでんがカッコよすぎて日々アニメを漁りながら自宅待機中の光月ギノキンです。

(・・・ではでは)

さっそく調べるに至った経緯ですが、近頃はフロント業務をやらせてもらっていて、Sentry(監視ツール)に届いたエラーをchromeのdevツールで検証しているのですが、devツール上で`main.js`の中身を見てみるとソースコードの記述とは違う乱数があり、

> なんだこれ。。エラー追えないやん。。。

ってなったので調べてみると、「難読化」、「Minify」を行っているらしかったので調べるに至りました。

## 難読化とは

> プログラマーがソースコードなどを意図的に読みにくく記述することで、可読性を著しく下げたり、解析し辛くする技術を「難読化」と呼びます。プログラムやアルゴリズムを隠したり不明瞭にすることにより、攻撃者にソフトウェアプログラムをリバースエンジニアリングされることを防止できます。
> 参照元:[「難読化」でリバースエンジニアリングを阻止しよう!](https://note.com/toast_nhnjp/n

元記事を表示

ゼロ幅を利用した隠し文字埋め込み

# はじめに
ゼロ幅なる謎の文字を利用すると難読化や文字の埋め込みができます。
この記事では文字の埋め込みの仕組みとその実装をまとめています。

# そもそもゼロ幅って?
> ゼロ幅(ゼロはば、英語: zero-width)とは、コンピュータのタイプセッティングにおける概念で、一部の非表示文字のことを指す。 非表示文字は幅がない(表示されない)のが普通であるが、通常幅があるものが幅がないという意味で「ゼロ幅」と称している。(Wikipediaより)

– ゼロ幅接合子
– ゼロ幅非接合子
– ゼロ幅スペース
– ゼロ幅ノーブレークスペース

この四つがそれに該当し、今回の実装では上の三つを利用しました。

# 文字埋め込みの利用場面
1. 社外秘の書類が漏洩したときの犯人の特定
2. 自分の書いた記事だと証明するための署名

# 仕組み
ゼロ幅の文字はWeb上で表示されません。その性質を利用して埋め込みたい文字を2進数に変換し、0と1をゼロ幅の文字に置き換えます。
例えば、”a” の文字コード(UTF-8)は0x61(0b01100001), “あ” なら 0xE3 0x81 0x82

元記事を表示

CSRFについて

#はじめに
Webアプリケーションには、利用者自らの操作では取り消しのできない重要な処理があります。ここでいう「重要な処理」とはECサイトでのクレジットカードでの決済やメールの送信、パスワードの変更などのことをいいます。
こういった重要な処理の過程で不備があると、クロスサイトリクエストフォージェリ(以下CSRFと省略)の脆弱性が生じる場合があります。CSRFは「シーサーフ」もしくは「シーエスアールエフ」と呼ばれます。

##CSRF(クロスサイトリクエストフォージェリ)
本章では掲示板への投稿やメールの送信、ECサイトでの商品購入など本来外部より実行されてはいけない重要な処理を、なんらかの攻撃手法を用いて実行させてしまうという攻撃手法であるCSRF(クロスサイトリクエストフォージェリ)の概要と対策方法を学習していきます。

##CSRFとは
Webサイトにスクリプトや自動転送(HTTPリダイレクト)を仕込むことによって、利用者に意図せず別のWebサイト上で何らかの操作(掲示板への書き込みや銀行口座への送金など)を行わせる攻撃手法のことをいいます。
CSRFの脆弱性が存在すると以下のよう

元記事を表示

ポスト自己主権型アイデンティティ

**日々、渡辺さんの特許のPRについて考えてます。PR TIMESの閲覧数伸びてて感謝**

読んでくださっている方々に感謝です。

ただ、「もう一声」というところで行き詰まっている感もあり、さてこの状況をどう考えるべきか・・・。

技術自体は来る時代に必ず備えておくべき「量子耐性技術」なんですが、いかんせんまだ量子コンピューターが普及していないので脅威に対する具体的なアクションに結びついてないのかも。

渡辺さんは5G、6Gのバックドア問題(その存在はみんな知ってる)を回避する技術の特許も持ってるので、そっちもなんとかパートナーを見つけたい。

まあ、こういう時はあれこれもがいてもしょうがないし、もがけばもがくほどドツボにハマるものなのでしばらく今まで蒔いた種を静観するのが吉かもしれません。

ただ、

**社会実験というか、特定の地域を舞台にした実証(実装)実験はやってみたい**

と最近思ってます。

僕、実は大学、大学院と専門がツーリズムだったこともあって、「まちづくりとは何か」みたいなテーマはけっこう好きです。

最近トヨタがウーブンシティ構想を進めてます

元記事を表示

Basic認証 PART 2

##Basic認証のコードを改良する
前回の内容で、Basic認証をRailsアプリケーションに導入することができましたね。
ですが、現状のコードには次の2つの問題点があります。

###(1)ユーザー名・パスワードがコードに記述されている
Basic認証を実装しました!!パスワードはGithubに載ってます!!ってなったらセキュリティの意味ないですよね。(笑)
Github上の公開リポジトリでソースコードを管理している場合、コードを読める何者かに不正にBasic認証を突破される可能性があります。対策としては、コードに直接ユーザー名とパスワードを記述するのではなく、環境変数を利用する実装に切り替えて対処しましょう。

###(2)全ての環境でBasic認証を要求してしまう
Basic認証を使ってアクセスを制限したいのは、アプリケーションがデプロイされている本番環境ですよね。ですが、現在のコードでは、basic_authメソッドを使いたい環境を特に指定していないため、本番環境・テスト環境・開発環境の全てでBasic認証が働きます。開発中には自分の首を締めることにもなりますので、本番環境の

元記事を表示

【フィッシングサイト探索Tips】似た構造のWebサイトを探す

#概要
フィッシングサイトの探索手法の1つとして、ある共通項を手掛かりに芋づる式に探すという手法があります。
具体的には

– IPアドレス ⇒ あるフィッシングサイトと同じIPアドレスに紐付く、別のフィッシングサイトを探す
– ドメインの文字列(企業名・サービス名等) ⇒ あるフィッシングサイトと類似したドメイン名を持つ、別のフィッシングサイトを探す

etc…

今回は備忘として「Webサイトの構造」を手掛かりに探索する手段を記述します。

###この手段を用いる理由
他の手掛かりによる探索手段と組み合わせることで、類似した構造のフィッシングサイトに対する探索効率向上が期待できます。

– 未知のIPアドレスと紐付くフィッシングサイトを発見できる。
– ランダム文字列や、企業名・サービス名と無関係な文字列のドメインによるフィッシングサイトを発見できる。

※ドメイン名を企業名・サービス名と無関係な文字列にする(企業名・サービス名をサブドメインなどに入れる)ことで、ドメイン検索による探索を回避しているフィッシングサイトも多い。

###有効性の根拠
多くのフィッシングサイトにみら

元記事を表示

安全な“デジタル通貨“を実現するなら、根本的にまず“パスワード”をなくさなきゃ(なくせます)

**はっきり言ってCBDCとか発行されても今のままだと全く安全じゃない**

ブロックチェーンネットワーク内での情報のトランザクションは安全ですよ。

ここは誤解のないように書き添えておきます。

問題なのは秘密鍵と公開鍵の運用。

ビットコインだろうがスマートコントラクトだろうがゼロ知識証明だろうがなんでもいいんですが、今ある秘密鍵と公開鍵の運用だとプライバシーは「絶対に」守られません。

量子コンピューターが悪用される時代がくれば簡単に突破されるし、一企業や通貨発行主体がネットワーク内に流通する情報を掌握することもできるのでせっかくブロックチェーンを使ってるのにまったく民主的でない。

**そもそも「パスワード使って鍵を管理したりネットワークに出入りするという発想が古い」と渡辺さんは言います**

NISTが可換アルゴリズムをベースとしたポスト量子技術の標準化を一生懸命進めてますが、まだいろいろ課題山積で実現できてないです。

ファイナリストこそ決まりましたがどのアルゴリズムも「計算困難性」に依存したもので根本的な解決にはならない。

一方、渡辺さんの発明は非可換

元記事を表示

Security Days Springでみた動画まとめ

切り口 内容 公開日 記事名 URL
CyberPostureAssesment 端末にセンサーと呼ばれるエージェントをインストール。センサーがデータを解析。エンドポイントをリアルタイムに監視。レポートの発行もする。CyberReasonEDRをつかう 2021.03.03(水) 【動画】Withコロナ時代に備えたい、緊急時に焦らず対応するためのサイバーセキュリティ運用戦略 https://forest.f2ff.jp/video-distribution/50/show/4780?video=ondemand
監視サービスの強化のために 専門アナリストによる監視、解析サービスもある 2021.03.03(水)

Basic認証 Part 1

#始めに
今回は、RailsアプリケーションにBasic認証を導入する方法について説明します。練習としてデプロイしている自身のアプリに対してサーバーの負荷を増やしたくないときなどは、Basic認証を導入して閲覧できるユーザーを制限しましょう。

##Basic認証
Basic認証とは、HTTP通信の規格に備え付けられているユーザー認証の仕組みです。
サーバーと通信が可能なユーザーとパスワードをあらかじめ設定しておき、それを知っているユーザーのみがWebアプリーションを利用できるようにすることができます。

![Qiita](https://tech-master.s3.amazonaws.com/uploads/curriculums//fe1298b646df1d855ec219dc6cc15ed6.png “Qiita”)

Ruby on Railsには、Basic認証を導入するためのメソッドが用意されており、簡単に実装することができます。
便利な世の中ですね(笑)

####authenticate_or_request_with_http_basic
Ruby on Rail

Wazuhを触ってみた

# この記事について
Wazuhでどんなことができるのかと自分の手で確かめてみたかったので、公式マニュアルを見ながら何ができるのかをいじった記録として残す。
公式マニュアルが充実してるのでWazuh自体は割と簡単にいじることができるが、背景としてLinuxやセキュリティやらの知識がある程度必要。

## Wazuhとは何か?
OSSのセキュリティ監査基盤、という位置づけらしい。ossecにElasticSearchとKibanaをかぶせたもの、と言ってもいいかもしれない。(ossecは廃れたと思ったらこんな形で復活していたとは)
アーキテクチャやらなんやらは公式マニュアルに書いてある。
https://documentation.wazuh.com/current/getting-started/architecture.html

# Wazuhセットアップ
2021年3月時点での記録。

## Wazuh Serverのインストール
All-in-one構成で構築。
VirtualBoxでVMたててCentOS7.9をいれてWazuh Serverをインストールする。
VMは下記ス

【サルが書く】あなたも犯罪者に?絶対にやるべきセキュリティ対策 SQLインジェクション編

[わっきゃい!](https://www.youtube.com/channel/UCrGPz6YlvFnNRx_TlheGjpw)

セキュリティインシデントが勃発する昨今、セキュリティの重要性というのが一般的にも重視されるようになってきたと思います。

2014年にはSQLインジェクションを怠ってクレジットカード情報を漏洩させたシステム開発企業に損害賠償金を支払うよう命じるという判例も出ています。
(参考: https://blog.tokumaru.org/2015/01/sql.html)

つまりセキュリティをしっかりしていないシステムを作ること自体が、起訴されるリスクを孕んでいるということです。

なのでセキュリティ対策はしっかり行っていきましょう、ということでまずは上記の原因にもなったSQLインジェクションを確認していきます。

## 1. SQLインジェクションとは
簡単に言うと**「ユーザーからの入力された値をSQL命令文を入力することでデータベースの不正利用をしようとする行為」**です。

SQLインジェクションをされることによって起きる脅威としては
– データベ

ペネトレーションテスト入門

# はじめに
Hack The Boxなどでペネトレーションテストを行う上で、私が実践している工程や参照しているwebサイト、使用しているツールをまとめます。
ちなみに私は趣味でペネトレーションテストを行っている者であり、プロのペンテスターではありませんので記事の内容を鵜呑みにしないようよろしくお願いします。

# 目次
– ペネトレーションテストとは
– ペネトレーションテストの工程
– 各工程の詳細
– ポートスキャン
– 脆弱性調査
– エクスプロイト
– 権限昇格
– おわりに

# ペネトレーションテストとは
ペネトレーションテスト(以下ペネトレ)とはターゲットマシンに対して、様々な技術を駆使して侵入を試みることです。
システムにセキュリティ上の脆弱性がないかテストを行います。

# ペネトレーションテストの工程
一般的にペネトレーションテストは以下の工程で行います。

1. ポートスキャン
2. 脆弱性調査
3. エクスプロイト
4. 権限昇格

# 各工程の詳細
以下で、ペネトレーションテストの各工程の詳細を説明します。

## ポートスキ

Bitwarden on AWS 環境構築

# 概要 Outline(TL;DR)
パスワード管理ツール`Bitwarden`のサーバー機能をCloudFormationでAWS上に構築する。

## 目的 Purpose
– いつも利用しているパスワード管理ツール`Bitwarden`の機能理解のため。
– 現在勉強中のAWSの各種サービス群の中でも、個人的に重要視している`CloudFormation`のサービス理解のため。

## 前提条件 Requirements
– 利用者は自分自身のみの想定。
– どのAWSアカウントにおいても再現性高く環境再構築が出来るようにIaC化する。
– 何かあった場合を考慮してすぐに環境を破棄できるようにする。
– Githubに成果物を登録する。
– コンテナ型仮想化技術を取り入れる。
– スクラム開発の手法を取り入れて進める。
– AWS請求料金を低額に抑える。1000円/月までを目安とする。
– セキュリティ対策のWAF導入は別途。

## 環境 Environments
– AWS
– AWSアカウント
– Amazon Virtual Private Cloud