First head with Raspberry Pi GPIO
Ethen @ 2015/04/28
然後門外的就全衝進來了
門外一群黑衣人等著查水表,
你只有五到十秒的應變時間,
除了把手上的MAC塞進冰箱(?),還有桌邊的NAS、學校的伺服器,日本的跳板,美國的VPS...該怎麼辦?
開發目標:緊急時刻快速破壞資料,盡量增加資料復原的困難性
操作性:可快速啟動、但又不會誤觸
目標系統:VPS / Server / NAS
=> Unix&Mac 包含遠端主機
摧毀範圍:本地磁碟、執行中程序資訊
dd all hard-drive
dd disk header
format
rm -rf /
加密檔案系統:
把key抹掉超快超有效,
但加密要跑很久,還要動架構
先dd 蓋掉header,
再跑format蓋掉super block,
然後進行完整dd
fdisk -l | grep Disk | grep \/dev\/ | cut -d' ' -f 2 \
| cut -d':' -f1 > /tmp/localdrives
echo Erasing header:
for OUTPUT in $(cat /tmp/localdrives)
do
dd if=/dev/zero of=$OUTPUT bs=512 count=1 conv=notrunc
done
echo Erasing all drive:
for OUTPUT in $(cat /tmp/localdrives)
do
dd if=/dev/zero of=$OUTPUT bs=512 conv=notrunc &
done
看來我們不能直接Format Root FileSystem...
A. 加密檔案系統,亂數抹掉key立即重開
B. 自製initrd,強制系統啟動進ramdisk後,格式化,然後對磁碟進行抹除
TBD....
門外一群黑衣人等著查水表,
你只有五到十秒的應變時間,
除了把手上的MAC塞進冰箱(?),還有桌邊的NAS、學校的伺服器,日本的跳板,美國的VPS...該怎麼辦?
一行命令,五秒內應該來得及對吧?
一堆Private Key放在那裡,
被攻破就GG惹~
還有別忘了手殘敲錯命令的機率
如果被斷水斷電斷網路怎麼辦?
實體隔離
平常不會碰到
緊急時可以快速啟動
最好可以接3G網路跟緊急電源
......
Raspberry Pi - 超小型單板電腦
Prize 35 USD
CPU Broadcom BCM2835 700+MHz
RAM 512~1024M
Broadcom VideoCore IV @ 250 MHz
USB 2.0 / HDMI / S端子 / 音訊輸出 / Ethernet
SD / MicroSD as storage
8~17 GPIO Port
Live DEMO
有人提到GPIO ?
簡單來說,就是一堆接腳,
可以用程式控制輸出或輸入
輸出 0 or 1
*輸出模擬類比訊號
輸入 0 or 1
*測量類比訊號
(RPi要靠Software PWM處理)
很簡單吧?
Linux Shell Script
echo 4 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio4/direction
echo 1 > /sys/class/gpio/gpio4/value
echo 0 > /sys/class/gpio/gpio4/value
echo 4 > /sys/class/gpio/unexport
Python
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
while True:
if(GPIO.input(23) ==1):
print("Button 1 pressed")
GPIO.cleanup()
kill.sh
buttonAlarm.py
buttonAlarm.py
buttonAlarm.py
76行就解決惹~
結果Readme寫得比Code還長是哪招(汗
把code放到Raspberry Pi,並且排入init開機時啟動
把Private Keys放進Pi中
關閉RPi的sshd, 配置防火牆阻止外對內連結避免入侵
配置檢查機制確定Pi還活著
在電源供應上用電池提供備用方案
準備3G作為斷網時備援線路
然後發現外面真的只是來查水表的,
可喜可賀可口可樂(?)