ロシアのハッカーから攻撃されてからやったこと
ある日、AWSのIDSであるGuardDutyから 「何者かがデータベースへのダイレクトなアクセスを試みている」 という警告が発せられました😱
また、そのIPアドレスを調べたところロシアからのアクセスであることがわかりました。
この件を社内に伝えたところ、KADOKAWAやDMMのセキュリティ事故があった後なので経営陣や営業メンバーもショックを受け、急遽対策を取ることになりました。
前提:不正侵入検知システムを導入する
まずは自分のWebサービスへのアクセスが正当なものなのか攻撃なのかを判断できるようにする必要があります。
私の場合は以前インフラをHerokuからAWSに移行する際にAmazon社からのアドバイスを受けてAWSのIDSであるGuardDutyをONにしていたのですが、このサービスは全てのAWSの管理者へアカウントを作った瞬間にONにすることをおすすめしたいです。
AWSのGuardDutyはONにするだけでシステムへの不審なアクセスやインスタンスに感染したマルウェアの検出までやってくれます。コストは検査するログの総量によって変動しますが、無料期間中に1ヶ月で発生するおおよそのコストを見積もることもできますし、立ち上げたばかりのサービスであればほぼ0に近いコストでしょう。toBサービスの場合は提携会社から求められるセキュリティチェックシートに実績として書けるのも便利です。
自分のサービスが全世界のハッカーにどのように晒されているかを知る
自分のWebサービスが全世界のハッカーにどのようにして晒されているのかを確認します。
世の中の到達可能な全てのIPアドレスは定期的にスキャンされており、空いているポート番号や使っているフレームワークやWebサーバーの種類など外形的にわかることはすべて調べられていてリスト化されています。
showdanやcensysのようなサイトで自分のサービスがどこまで全世界に晒されて把握されているかを理解しましょう。
特にデータベースや古い踏み台サーバーなどがこの中にある場合はかなりの危険性が高いといえますので早急に対策をする必要があります。
セキュリティ評価ツールで課題を知る
次に、AWSのSecurityHubをONにして自分のシステムにどのようなセキュリティホールや危険な設定があるかをチェックしましょう。
SecurityHubはS3のバゲットへのアクセス許可やVPCに割り当てているセキュリティグループやリスクのある設定などを解析し危険度を優先順位づけてリストアップしてくれます。
SecurityHubを機能させるためにはAWSの構成情報を取得するAWS ConfigをONにする必要があります。AWS Configはチェックするリソースの数と適用するセキュリティルールによって変化するため場合によってはコストが増大することもありますが、目的が課題の洗い出しである場合は問題のある設定を洗い出してメモしてからOFFにしてコストを抑える方法もあります。
SecurityHubは選択するだけでシステム全体がPCI DSSやHIPAAなど業界標準に適合しているかをチェックしてくれますので、こちらもGuardDutyと合わせてセキュリティチェックシートを書くのに非常に便利です。
課題の優先順位づけ
課題を洗い出した後に優先順位づけを行います。
優先順位づけの一般的な方法としてはリスクの重大さと直すのにかかる労力でタスクを振り分けるインパクトエフォートマトリクスやリスクの重大さと発生確率で分類するリスクマトリクスなどの方法があります。
まとめ
早急に対策をまとめて優先順位づけを行い経営陣の合意をとることでセキュリティ対策を行うための時間を確保でき、無事急増していた不審なアクセスを激減させることに成功しました!
Discussion