2019-12-17 15:04:19 +01:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2019-12-24 15:08:18 +01:00
|
|
|
source .env.default
|
|
|
|
source .env
|
|
|
|
|
2019-12-17 15:04:19 +01:00
|
|
|
function log() {
|
|
|
|
echo -e "\033[33m$@\033[0m"
|
|
|
|
}
|
|
|
|
|
2019-12-24 15:08:18 +01:00
|
|
|
function api_call {
|
|
|
|
curl -s -H "X-Api-Key: $RAPID7_API_KEY" "https://us.api.insight.rapid7.com/opendata/studies/$1/"
|
|
|
|
}
|
|
|
|
|
2019-12-25 14:54:57 +01:00
|
|
|
function get_timestamp { # study, dataset
|
|
|
|
study="$1"
|
|
|
|
dataset="$2"
|
|
|
|
if [ -z "$RAPID7_API_KEY" ]
|
|
|
|
then
|
|
|
|
line=$(curl -s "https://opendata.rapid7.com/$study/" | grep "href=\".\+-$dataset.json.gz\"" | head -1)
|
|
|
|
echo "$line" | cut -d'"' -f2 | cut -d'/' -f3 | cut -d'-' -f4
|
|
|
|
else
|
|
|
|
filename=$(api_call "$study" | jq '.sonarfile_set[]' -r | grep "${dataset}.json.gz" | sort | tail -1)
|
|
|
|
echo $filename | cut -d'-' -f4
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2019-12-24 15:08:18 +01:00
|
|
|
function get_download_url { # study, dataset
|
|
|
|
study="$1"
|
|
|
|
dataset="$2"
|
|
|
|
if [ -z "$RAPID7_API_KEY" ]
|
|
|
|
then
|
|
|
|
line=$(curl -s "https://opendata.rapid7.com/$study/" | grep "href=\".\+-$dataset.json.gz\"" | head -1)
|
|
|
|
echo "https://opendata.rapid7.com$(echo "$line" | cut -d'"' -f2)"
|
|
|
|
else
|
|
|
|
filename=$(api_call "$study" | jq '.sonarfile_set[]' -r | grep "${dataset}.json.gz" | sort | tail -1)
|
|
|
|
api_call "$study/$filename/download" | jq '.url' -r
|
|
|
|
fi
|
2019-12-17 15:04:19 +01:00
|
|
|
}
|
|
|
|
|
2019-12-24 15:08:18 +01:00
|
|
|
function feed_rapid7 { # study, dataset
|
|
|
|
study="$1"
|
|
|
|
dataset="$2"
|
|
|
|
shift; shift
|
2019-12-25 14:54:57 +01:00
|
|
|
new_ts="$(get_timestamp $study $dataset)"
|
|
|
|
old_ts_file="last_updates/rapid7_${study}_${dataset}.txt"
|
|
|
|
if [ -f "$old_ts_file" ]
|
|
|
|
then
|
|
|
|
old_ts=$(cat "$old_ts_file")
|
|
|
|
else
|
|
|
|
old_ts="0"
|
|
|
|
fi
|
|
|
|
if [ $new_ts -gt $old_ts ]
|
|
|
|
then
|
|
|
|
link="$(get_download_url $study $dataset)"
|
|
|
|
log "Reading $dataset dataset from $link ($old_ts -> $new_ts)…"
|
|
|
|
# curl -L "$link" | gunzip | ./feed_dns.py rapid7 $@
|
|
|
|
if [ $? -eq 0 ]
|
|
|
|
then
|
|
|
|
echo $new_ts > $old_ts_file
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
log "Skipping $dataset as there is no new version since $old_ts"
|
|
|
|
fi
|
2019-12-17 15:04:19 +01:00
|
|
|
}
|
|
|
|
|
2019-12-24 15:08:18 +01:00
|
|
|
feed_rapid7 sonar.rdns_v2 rdns
|
|
|
|
feed_rapid7 sonar.fdns_v2 fdns_a --ip4-cache "$CACHE_SIZE"
|
2019-12-25 14:54:57 +01:00
|
|
|
# feed_rapid7 sonar.fdns_v2 fdns_aaaa --ip6-cache "$CACHE_SIZE"
|
2019-12-24 15:08:18 +01:00
|
|
|
feed_rapid7 sonar.fdns_v2 fdns_cname
|
|
|
|
|