【プログラム】コンパイルされたらもう分からん。ソースコードの中にトロイの木馬が仕込む方法とは [896590257]

【プログラム】コンパイルされたらもう分からん。ソースコードの中にトロイの木馬が仕込む方法とは  [896590257]

1 ::2021/11/17(水) 19:00:49.95 ID:4POqGyID0●.net ?PLT(21003)

見えない脆弱性をソースコードに埋め込む、プログラマーも欺く「トロイのソース」
2021.11.17 日経クロステック

プログラムに埋め込まれた脆弱性やマルウエア(コンピューターウイルス)などを見つける有効な手段の1つが、そのソースコードを丹念に調べること。
スキルのある開発者なら、ソースコードを調べることで異常に気づける。

だが、そういった開発者の目を欺く手法が発表された。ソースコードに細工を施せば、テキストエディターなどで表示されるソースコードの「見た目」を
変えられるというのだ。言い方を変えれば、目に見えない脆弱性を埋め込めるという。そんなことが可能なのだろうか。

■「トロイの木馬」のソースコード版
この新手法は、英ケンブリッジ大学の研究者らが2021年11月1日(現地時間)に発表した。「Trojan Source」と名付けられた。「Trojan Horse:トロイの木馬」にちなんだ命名だと考えられる。
ソースコードに仕込んだ脆弱性を、どのようにして開発者に気づかれないようにするのか。答えは単純。

■Unicodeを使う
「Unicodeの制御文字」を使ってソースコードの見た目を変えるのだ。Unicodeとは文字コードの一種。文字を扱うプログラムのほとんどが対応している。制御文字とは、ディスプレーやプリンター、
通信装置などに特別な動作をさせるための文字である。「文字」といっても、標準ではディスプレーなどには表示されない。そのほか1文字単位ではなくブロック単位で文字の表示を
入れ替える制御文字などもある。こういった制御文字をうまく組み合わせれば、脆弱性が埋め込まれたソースコードを、問題のないソースコードに見せかけることが可能になる。

■コメントや変数に忍ばせる
一般的なプログラミング言語では、ソースコードの任意の場所に制御文字を挿入できない。コンパイラーによる変換時(コンパイル時)にエラーが発生する。ただし、コメントと文字列は例外だ。
これらはコンパイラーによって解釈されないので、制御文字を含む任意の文字を入れられる。そこで、コメントや文字列に制御文字を入れることで、それらをソースコードの一部に見せかけたり、
ソースコードがコメントアウトされているように見せかけたりする。

https://xtech.nikkei.com/atcl/nxt/column/18/00676/111300092/

28 ::2021/11/17(水) 19:37:50.70 ID:u0VVnRX70.net

>>7
10 INPUT A
20 INPUT B
30 PRINT C
40 END

12 ::2021/11/17(水) 19:07:11.39 ID:dB/XweRw0.net

コンパイルダーオン

17 ::2021/11/17(水) 19:13:02.08 ID:TKTkTlpb0.net

トロイの木馬「が」?

50 ::2021/11/17(水) 20:15:35.00 ID:4jC3Q8Eq0.net

のーみそこねこねコンパイル

8 ::2021/11/17(水) 19:06:13.70 ID:aaEmy/570.net

中共SDKのことか?

32 ::2021/11/17(水) 19:42:46.54 ID:sSnDOLTf0.net

コンパイラそのものがトロイの木馬を埋め込む時代が来る

26 ::2021/11/17(水) 19:33:04.06 ID:f4XaFiiw0.net

昔、RMS尊師がCのコンパイラに入れとけば誰にもバレないとドヤ顔で言ってたぞ

49 ::2021/11/17(水) 20:15:13.54 ID:BeE8eQoS0.net

>>40
改行とタブ位は処理してくれないと編集で死ぬ

36 ::2021/11/17(水) 19:49:08.11 ID:8JBPwJUw0.net

見え見えですが

34 ::2021/11/17(水) 19:44:10.07 ID:vCD2aTyQ0.net

脳みそこねこね

3 ::2021/11/17(水) 19:01:21.68 ID:eaCzgilr0.net

コンパイルってぷよぷよだろ?

19 ::2021/11/17(水) 19:13:48.00 ID:ctbXP0260.net

ソースコードにトロイやマルウェアを入れるなんて開発者ぐらいしか出来んと思うけどw

31 ::2021/11/17(水) 19:42:14.66 ID:eJW2g+Fl0.net

裏でマイニングさせられるらしいな

22 ::2021/11/17(水) 19:26:56.07 ID:YC+2SH/J0.net

逆アセンブラして読むに決まってるだろ。
ナメちゃいかんよw

25 ::2021/11/17(水) 19:32:53.23 ID:C/CYvufO0.net

>>19
パチンコとか銀行関係に仕込めりゃ儲かるやん

41 ::2021/11/17(水) 20:10:48.47 ID:Do1xU65b0.net

6 ::2021/11/17(水) 19:04:12.79 ID:k2P6+p6I0.net

の〜みそこねこね

24 ::2021/11/17(水) 19:30:09.06 ID:yPOCEH5a0.net

マシン語ジカ読みしろや

38 ::2021/11/17(水) 19:52:49.96 ID:VRlmnthN0.net

マシン語で書くんだろ

27 ::2021/11/17(水) 19:35:14.40 ID:RL3wLcdz0.net

へえ知らなかった
Shift-JIS最強なのか

11 ::2021/11/17(水) 19:06:17.85 ID:lA86SYO60.net

Ken ThompsonのReflections on Trusting Trustを読め
日本語の解説も多い

7 ::2021/11/17(水) 19:04:17.17 ID:a6ZZCx/D0.net

10 INPUT A
20 INPUT B
30 C=A+B
40 END

15 ::2021/11/17(水) 19:07:59.67 ID:0Zz24Wly0.net

雨天野球場に潜んでるんやろ

29 ::2021/11/17(水) 19:39:33.00 ID:8TIqg+/A0.net

>>25
有名な話だけど
昔、客の口座の計算されて消滅する端数を
全部自分の口座に送金するプログラム仕込んだ奴が居た

39 ::2021/11/17(水) 19:55:22.25 ID:BeE8eQoS0.net

いまどきはGithubから怪しいコード引っ張ってきて
動いたー、とかやってるビギナーがほとんどだろ。
いくらでも混入のリスクはある。

45 ::2021/11/17(水) 20:13:24.68 ID:nW53XIKt0.net

色気で魔物を騙す!

53 ::2021/11/17(水) 20:19:53.55 ID:Zxq/zByp0.net

組み込みのitronとか
ほぼブラックボックス的に使うミドルウェア
この辺りに仕込まれてたらIoT関連死亡だな

52 ::2021/11/17(水) 20:18:38.06 ID:NpObp4Jy0.net

第2リール停止後にレバー逆押し3回やってからマックスベット叩いて第3リール叩くと有利区間ランプ消えるで

4 ::2021/11/17(水) 19:02:13.88 ID:foqxMMYS0.net

ウイルスバスター入ってるから大丈夫だべ

40 ::2021/11/17(水) 20:03:39.98 ID:xaxmVFYm0.net

テキストエディタが制御文字に対応し過ぎなのがまずいんかね
プログラミング用のエディタなら制御文字なんてその機能は無視して絵や記号で表示するだけにすればいいのに

16 ::2021/11/17(水) 19:09:34.39 ID:z1r7pLrF0.net

スレタイの接続詞からしっかりしろw

10 ::2021/11/17(水) 19:06:17.76 ID:Pt/TACfV0.net

>>6
それ書こうと思ったのに!

30 ::2021/11/17(水) 19:40:46.56 ID:VsDX+3Pr0.net

複雑なことする必要はなくてちょっとセキュリティホールを作っとけばいいんだろうな。

20 ::2021/11/17(水) 19:14:38.29 ID:t1tjaAF/0.net

バレても饅頭で揉み消すってこと?

23 ::2021/11/17(水) 19:27:33.32 ID:qlalKW6C0.net

>>21
昔はWinのクラックバージョンとかに仕込まれまくってたんだろうな

51 ::2021/11/17(水) 20:16:36.92 ID:A4B7fPe+0.net

確かにコメントなら楽に仕込めるね
>>31
そんななら笑って許せる
怖いのは情報の流出
安全にかかわる

51 ::2021/11/17(水) 20:16:36.92 ID:A4B7fPe+0.net

確かにコメントなら楽に仕込めるね
>>31
そんななら笑って許せる
怖いのは情報の流出
安全にかかわる

2 ::2021/11/17(水) 19:01:05.09 ID:4POqGyID0.net ?PLT(20003)

>>1の続き

C言語によるTrojan Sourceの例。これは実際のソースコード。色が付いているのが制御文字。
制御文字はすべてコメントに収められている。

上のソースコードをテキストエディターなどで表示した例。制御文字により、実際には
コメント中にある条件文「if ( isAdmin )」がコードに含まれているように見える。

37 ::2021/11/17(水) 19:50:53.96 ID:OFtkXEmi0.net

>>35
アセンブラ読める人材どれだけいるんだよ

47 ::2021/11/17(水) 20:13:58.97 ID:ZQjocbHd0.net

>>37
俺読めるけど絶対に読みたくない。東京から
伊豆までチャリで行けって言われてるようなもん。

46 ::2021/11/17(水) 20:13:33.96 ID:K0oL9exC0.net

新卒で応募して落ちたがまあその後潰れたし良かったかも

18 ::2021/11/17(水) 19:13:25.21 ID:7+34hBAB0.net

怪しいと思ったら逆コンパイルせんの

42 ::2021/11/17(水) 20:12:15.68 ID:GABp0qwo0.net

void *po = null;
if (po == null) gaxtu();

35 ::2021/11/17(水) 19:46:44.56 ID:CPkK+KoO0.net

逆アセすればいいじゃん。そのプログラムで使わない
ような関数呼んでたり、ファイルパスの文字列あったり
したら怪しいわけで(´・ω・`)

43 ::2021/11/17(水) 20:12:26.96 ID:ZQjocbHd0.net

結局ソースの解析しないとわからんのよ。
うだうだ言う前に怪しいソフトは使わないのが吉。

13 ::2021/11/17(水) 19:07:37.13 ID:kIo48R930.net

プログラム自身を書き換えればいい

48 ::2021/11/17(水) 20:15:06.59 ID:ZQjocbHd0.net

>>32
それは無い。ウィルスだからそれww

5 ::2021/11/17(水) 19:02:33.20 ID:cUbpxLyt0.net

詳しくねーんだけどさ、目的なんなの?ウィルスの。愉快犯?

14 ::2021/11/17(水) 19:07:58.89 ID:2EDgJOHz0.net

エスケープシーケンス!

44 ::2021/11/17(水) 20:12:48.42 ID:Ovjvj+aD0.net

るいぱんこ!

ニュー速カテゴリの最新記事