[伝説のハッカー]の著書をよんでトラッキング対策をしてみた

# はじめに
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/455763/6d3067b3-fc65-3d45-341e-e642718a8609.png)

[伝説のハッカーが教える監視社会から身を守る方法](https://www.amazon.co.jp/dp/B079XVYP7K/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)を先日、読んでみました。
内容としては伝説のブラックハッカーとして名をはせた**ケビン・ミトニック氏**が本気でネット上の活動をトラッキングされないようにするにはどうしたらいいのかということについて実体験を交えながら説明しています。
著者はブラックハッカーから更生してホワイトハッカーになっているので、善悪両方の視点から語ってくれているので興味深かったです。
**この本では様々なツールが紹介されていたのですが、実際にどうやって導入するのか等については記載されていなかったので、自分のUbuntu18.04に導入してみた結果をまとめました。**

## 記事の概要
[伝説のハッカーが教える監視社会から身を守る方法](https://www.amazon.co.jp/dp/B079XVYP7K/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)で紹介されていたものを実際に自分のUbuntu18.04に導入した際の手順。

## 対象読者
- ハッカーが好きな人
- セキュリティに興味がある人


# 実践編
## ブラウザの拡張機能
firefoxのトラッキング対策やセキュリティ対策のできる拡張機能をまとめました。

### ADblock plus
多くの広告をブロックできる。

###  Https everywhere
- Encrypt All Sites Eligible is OFFをオンにするとhttpの暗号化されていないページが表示されなくなる。さらにadd rules this siteを追加すればこのサイトにアクセスする時にはhttpsとhttpのうち必ずhttpsを選ぶといったことができる。
 
### No script
- 個別にjavascriptの動作を変更することができる。

### Duck Duck go
- トラッキング対策として導入、サイトの検索結果がユーザ好みにならずにキーワードによって決定される。また、ユーザー情報を保存しない。

### Mailvelop
- メール内容を暗号化することができる。
#### 使い方
- firefoxのタスクバーをクリックして、鍵を生成する。
> 詳細設定で鍵サイズ、アルゴリズム、鍵の期限が選択できる。
> 鍵サーバに公開鍵をアップロードしない。
- 背景テーマを選ぶことでより安全に。
- 出来上がった鍵をエクスポートを選択することでダウンロードすることができる。
- この鍵のうち、公開鍵をお互いに交換する。
- Gmailを開くとMailVelopのアイコンが現れている。
- GmailAPIを使う許可を出す。サインイン
### Geolocater
- 位置情報を変更することができる。正直あんま意味わからん。

###Ghostery
- web上でのデータのやり取りをするツールを検出する。
- 
### behabioral-Keyboard-Privacy
- 利用者が打ち込んだ内容を一度記憶してから、リズムを変えて再現することでタイピングの特徴からウェブ上の匿名性を守る。
- しかし、キーボードを叩いてから若干のラグが発生することがあるので個人的にはなしかな。

### CanvasBlocer
- HTMLのタグにブラウザを動かしているハードウェアとソフトウェアの組み合わせによって描かれる図形が変わるタグCanvasが存在する(キャンバスフィンガープリント)。
- この拡張機能はCanvas Finger Printをブロックする。

#### firefoxのツールバーの設定
- ツールバーがいっぱいになってきたら、右クリックでツールバーから拡張機能を削除。
- 三マークをクリック→カスタマイズでツールバーに戻すことができる。
******

## tailsを使ってみる。
[過去記事](https://qiita.com/8M5MgHqNywfgw7q/items/e70748540ecc5ced4c89)参照。

## Macアドレスを変更する
以下がMacアドレスを変更する手順である。

```
sudo apt install macchanger #Macアドレスを変更するツールをインストール
sudo apt install net-tools
ip a #wlから始まるのはwifiのネットワークカード、enから始まるのはイーサネットのネットワークカードである。
ip wlp2s0 #link/etherにMACアドレスが記載されている。
macchanger -s wlp2s0 #現状を確認。
#----------------

#一度通信を切る。
sudo ip link set dev wlp2s0 down #ネットワークインターフェースを下ろす。(sudo ifconfig wlp2s0 down)
sudo macchanger -r wlp2s0 #MACアドレスを変更
#ネットワークに接続
sudo ip link set dev wlp2s0 up #ネットワークインターフェースを上げる。
macchanger -s wlp2s0 #新しいMACアドレスが追加されている。
ip a
```
> 一度再起動すると、MACアドレスはデフォルト値に戻る。
> MACアドレスは通信が行われている状態ではうまく変更ができない。
> ネットワークインターフェースを上げる際には、ネットワークに再接続する必要がある。

### Macアドレスを変更するシェルスクリプト
さすがにこの手順を毎回覚えるのは面倒なのでシェルスクリプトにした。

```bash:macchanger.bash
#!/bin/bash
##########################################################################
# Name: macchanger.bash
#
# Change MAC address
#
# Usage: ./macchanger.bash
#
# Author: Ryosuke Tomita
# Date: 2020/08/11
##########################################################################

# Download tools
#sudo apt install macchanger
#sudo apt install net-tools

# Change MAC Adress
select NIC in WirelessLan WiredLan
do
    if   [ "$NIC" = "WirelessLan" ]; then
        nmcli radio wifi off
        sudo ip link set dev wlp2s0 down
        sudo macchanger -r wlp2s0
        sudo ip link set dev wlp2s0 up
        macchanger -s wlp2s0
        nmcli radio wifi on
        break
    elif [ "$NIC" = "WiredLan" ]; then
        sudo ip link set dev enp0s31f6 down
        sudo macchanger -r enp0s31f6
        sudo ip link set dev enp0s31f6 up
        macchanger -s enp0s31f6
        break
    fi
done
```

## wifiルータの設定
- ルータの設定画面を開く。

```
#BUFFALO
http://192.168.11.1をブラウザで入力
ユーザ名:admin
パスワード:password
```
### 管理パスワード
- ユーザ名は変更できないが、パスワードは変更できる。詳細設定→管理→システム設定。万が一忘れたときには設定を出荷時の状態に戻せばいい。
### SSID(buffalo8076...など)の変更
- ホーム画面→無線LANの設定
### 無線暗号化方式
- WEPはだめ。WPAもしくはWPA2を選ぶ。
### ホワイトリストを作る
- 自分が指定した機器しか接続できなくする設定。ただし、MACアドレスはAircrackingによって覗き込まれるため、MACアドレスによるフィルタリングは簡単にすり抜けられる。
### WPS機能をオフにする
### フォームウェアをアップデート
******

## スマホの位置情報を完全にオフにする
- 機内モードにしただけでは位置情報はオフにならない。プライバシー→位置情報→位置情報をオフ
******

## Veracrypt
暗号化ディスクを作ることのできるソフト。
作成したディスクをマウントしていない時にはファイルは完全に暗号化されているため、
### インストール

```
sudo add-apt-repository ppa:unit193/encryption
sudo apt update
sudo apt install libcanberra-gtk-module
sudo apt install veracrypt
```

### 使用法
- terminalでveracryptと入力
- Create Volumeをクリック
- Create an encrypted file container→仮想暗号化ディスクを1つのファイルとして作成する。Create a volume within a partition/drive→外付けドライブなどのボリューム自体をフォーマットして暗号化する。
- 通常の暗号化ボリュームか隠しボリュームを作成するか選択する。
- Volume Locationを選択。/home/tomita/...
- 暗号化の設定。とりあえず何も変更しない。
- パスワードを入力。
- Format OptionをexFATに設定(Windows10とMacでも使えるように)
- 他のOSでも使用できるように"I will mount the volume on other platforms"を選択。
- ゲージが貯まるまでマウスを動かしformatをクリック。
- mountすることで内部においたファイルを閲覧可能になる。使わないときはunmountする。

### ファイルの場所
- 暗号化ファイルにアクセスするには"/media/veracrypt1/ファイルパス"のようになっていて作成時に入力したボリュームのパスからはアクセスできない。
- そのためファイル名は暗号化ファイルとわからないような名前をつけるとよい。
> mountしていない状態だと"/media"下にはveracrypt1などのファイルは現れない。

## ファイルを完全に削除する(linux)
- 通常のrmコマンドの削除ではファイル自体は完全に削除されておらず、マスターファイルテーブルと呼ばれる見出しのようなものが変化しているだけである。
- つまり、実際にはファイルの内容自体はその部分が別のファイルによって上書きされるまでは復元が可能である。
- linuxではMFTを削除するコマンドが存在する。
- mp4ファイルに試すと中身がランダムに書き換えられていて開けなくなっていた。

```
shred -n 1 -v ファイル名
```
******

## 感想
勉強にはなったけれどこのような技術が必要とされるような世の中にはならないことを切に願うばかりである。