内容へ移動
とあるエンジニアの闇歴史帳
コピペで使える便利Wiki ※現在構築中です。
ユーザ用ツール
ログイン
トレース:
security:attack_evasive
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== イベイシブ攻撃用のプログラムを組む ====== ~~socialite~~ <note important>この記事は2007年06月07日に書かれた物です</note> ===== 解説 ===== ネット上での不正なハッキング(クラッキング)手段の一つ、[[http://www.itmedia.co.jp/news/articles/0706/05/news055.html|イベイシブ攻撃]]が具体的にどのようなコードになるのか解説する。非常にシンプルなコード、原理で実現できる。 <html><br><small style="color:red">※セキュリティ対策用の記事です。仕組みを解説するためのコードであって幇助しているわけではありません。実際に悪用しないでください</small></html> 過去にアクセスのあったIPアドレスを記録しておき、現在のアクセス者が履歴にあれば正常なページを、無ければ違法なページを表示するというもの。また検索エンジンにもSPAM的な行為を行い、正常なページが登録されるように仕組まれている。 わずかこれだけのコードで実現できてしまうという簡便さなのですが、そのシンプルさが逆に摘発のしにくさを招いているのでしょう。なお、ここでは実際に運用するには効率が悪くなるようわざと作っています。 ===== コード例 ===== <code perl> #!/usr/bin/perl ;# ;#イベイシブ攻撃用プログラム(CGI) ;# #--------------------------------------# #モジュール #--------------------------------------# use strict; #--------------------------------------# #定数 #--------------------------------------# #IPアドレス保存用ファイル use constant IP_DAT => 'ip.txt'; #検索エンジンロボット用データファイル use constant SEO_DAT => 'seo.txt'; #--------------------------------------# # メイン処理 # #--------------------------------------# package main; { my $db_ip = ''; my $db_seo = ''; my $ip = $ENV{'REMOTE_ADDR'}; #------------------------# # 初期処理 # #------------------------# #-- 過去にアクセスのあったIPアドレスのリストを取得 --# $db_ip = getDataFile(IP_DAT); #-- 検索エンジンロボットのIPアドレスのリストを取得 --# $db_seo = getDataFile(SEO_DAT); #------------------------# # 正常なページ表示 # #------------------------# if( exists( $db_ip->{$ip} ) #このifが実行されれば or exists( $db_seo->{$ip} ) ){ #リピーターと判定 #-- リピーター or 検索エンジン --# $|=1; print "Content-type: text/html\n\n"; print getHTML_Normal(); } #------------------------# # 違法なページ表示 # #------------------------# else{ #-- 初めての人には違法ページ --# $|=1; print "Content-type: text/html\n\n"; print getHTML_Illegal(); #-- IPアドレスのリストに追加 --# putDataFile(IP_DAT, $ip); } exit; } #------------------------------------- #データファイルに情報保存 #------------------------------------- sub putDataFile { my $file = shift || return(undef); my $ip = shift; open(DAT, ">>$file") or die($!); flock(DAT, 2); print DAT "$ip\n"; close(DAT); } #------------------------------------- #データファイルから情報取得 #------------------------------------- sub getDataFile { my $file = shift || return(undef); my %buff = (); open(DAT, $file) or die($!); while(<DAT>){ chomp; $buff{$_} = 1; } close(DAT); return(\%buff); } #------------------------------------- #健全なサイト用HTML #------------------------------------- sub getHTML_Normal{ return(<<'END_OF_HTML'); <html> <head><title>健全なサイトのHTMLを書く</title></head> <body> <h1>ほげほげ</h1> </body> </html> END_OF_HTML } #------------------------------------- #違法なサイト用HTML #------------------------------------- sub getHTML_Illegal{ return(<<'END_OF_HTML'); <html> <head><title>違法なサイトのHTMLを書く</title></head> <body> <h1>ふがふが</h1> </body> </html> END_OF_HTML } </code> [[http://www.itmedia.co.jp/news/articles/0706/05/news055.html|新種のWeb攻撃「イベイシブ攻撃」とは何か]](ITmedia) > Finjanは、イベイシブ(evasive)攻撃は技術レベルが「大きく進歩」しており、ドライブバイダウンロードやコード難読化をはるかに超えているとしている。攻撃者は不正なコードの露出を極力避けるために、特定のWebサイトやWebページへのビジターのIPアドレスを追跡し、その情報を利用して、各IPアドレスから不正なコードへのアクセスを1回に限定する。同じIPアドレスから不正なページに2回目のアクセスを試みると、無害なページが表示される。不正なページの痕跡はすべて完全に消えるという。 不正なコードの露出を抑えて検出される可能性を低くするほか、イベイシブ攻撃ではURLフィルタリングやネット評判監視サービス、検索エンジンが使っているWebクローラーのIPアドレスを特定して、これらのエンジンに合法的なコンテンツを返し、誤って正規のサイトに分類される可能性を高めることができる。 ===== 関連書籍 ===== {{amazon>jp:B017SH8GZ8}} <html><p style="clear:both"></p></html> {{amazon>jp:4873117313}} <html><p style="clear:both"></p></html> {{amazon>jp:B00TQQ1GB6}} <html><p style="clear:both"></p></html> {{amazon>jp:4274069214}} <html><p style="clear:both"></p></html> {{amazon>jp:B01CDRLA9M}} <html><p style="clear:both"></p></html> {{tag>CGI・Perl例文集 Perl セキュリティ イベイシブ攻撃 }} ~~socialite~~
関連ページ
security/attack_evasive.txt
· 最終更新: 2020/06/23 14:10 (外部編集)
ページ用ツール
文書の表示
バックリンク
文書の先頭へ