**Perdayaan DNS** (atau **peracunan cache DNS**) ialah sejenis serangan penggodaman komputer, di mana data diberikan kepada pangkalan data cache bagi pelayan nama sistem nama domain (DNS), mengakibatkan pelayan nama tersebut memberikan alamat IP yang salah lantas mengalihkan trafik ke komputer lain (biasanya komputer si penyerang).

Sekilas berkenaan sistem nama domain
------------------------------------

Rencana utama: Sistem nama domain
Sistem nama domain menterjemahkan nama domain yang difahami manusia (seperti contoh.com) kepada nombor alamat IP yang digunakan untuk menghalakan komunikasi antara nod. Pada kebiasaannya, jika pelayan tidak tahu menterjemah sesuatu permintaan, ia akan bertanya kepada pelayan yang lain, dan begitu juga seterusnya. Bagi meningkatkan prestasi, biasanya pelayan akan mengingati (mengecache) terjemahan-terjemahan ini dalam tempoh tertentu, supaya jika ada permintaan serupa, ia boleh memberikan jawapan tanpa perlu bertanya kepada pelayan yang lain lagi.

Pelayan DNS dikatakan telah diracuni apabila ia telah menerima terjemahan yang salah dan mengecachekannya untuk meningkatkan prestasi, lalu memberikan data yang palsu kepada pelanggannya. Pelayan DNS yang telah diracuni mungkin akan memberikan alamat IP yang salah, lantas mengubah haluan trafik ke arah yang salah, contohnya ke komputer lain yang dikuasai oleh penyerang.

Serangan peracunan cache
------------------------

Pada kebiasaannya, sesebuah komputer dalam rangkaian menggunakan pelayan DNS yang disediakan oleh pertubuhan bagi penggunanya atau oleh pembekal khidmat Internet (ISP). Pelayan DNS secara am diletakkan pada rangkaian sesebuah pertubuhan demi meningkatkan prestasi sambutan leraian dengan mengecache hasil-hasil pertanyaan yang sebelumnya.

Untuk melakukan serangan peracunan cache, si penyerang mengeksploit kecacatan perisian DNS yang ingin diserang. Jika pelayan tidak memastikan dengan betul bahawa maklum balas DNS datang daripada sumber yang sahih (contohnya dengan menggunakan DNSSEC), pelayan tersebut mungkin akan mengcachekan entri yang salah untuk rangkaiannya, dan menghidangkannya kepada pengguna lain yang membuat permintaan serupa.

Teknik ini boleh digunakan untuk membawa pengguna sesebuah tapak web ke tapak web pilihan si penyerang. Sebagai contoh, seorang penyerang memperdaya entri DNS alamat IP bagi tapak web sasarannya pada pelayan DNS tertentu, menggantikannya dengan alamat IP bagi pelayan yang dikawalnya. Dia kemudiannya membuat fail-fail tiruan supaya tapak web pelayan kawalannya serupa dengan tapak web sasaran. Fail-fail ini mungkin mengandungi perisian jahat seperti cecacing komputer atau virus komputer. Pengguna yang komputernya merujuk kepada pelayan DNS yang diracuni akan diperdaya supaya menerima kandungan daripada pelayan yang palsu dan secara tidak sedar memuat turun kandungan berniat jahat.

Variasi
-------

Di dalam varian-varian berikut, entri-entri untuk pelayan ns.target.example akan diracuni dan dialihkan ke pelayan nama si penyerang di alamat IP w.x.y.z. Serangan-serangan ini menganggap bahawa pelayan nama bagi target.example ialah ns.target.example.

Bagi membuat serangan, si pelayan perlu memaksa pelayan DNS sasaran supaya membuat permintaan bagi domain yang dikawal oleh pelayan nama si penyerang.

### Mengalihkan pelayan nama domain sasaran

Varian yang pertama bagi peracunan cache DNS melibatkan pengalihan pelayan nama bagi domain si penyerang ke pelayan nama bagi domain sasaran, kemudiannya memasukkan alamat IP yang dinyatakan oleh si penyerang ke pelayan nama itu.

Permintaan pelayan DNS: apakah rekod alamat bagi subdomain.attacker.example?

```
subdomain.attacker.example. IN A
```

Jawapan si penyerang:

```
Answer:
(no response)
```

```
Authority section:
attacker.example. 3600 IN NS ns.target.example.
```

```
Additional section:
ns.target.example. IN A w.x.y.z
```

Pelayan yang rapuh akan cache rekod-A (alamat IP) tambahan bagi ns.target.example, membolehkan si penyerang untuk meleraikan permintaan kepada domain target.example.

### Mengalihkan rekod NS ke domain sasaran lain

Varian kedua bagi peracunan cache DNS melibatkan pengalihan pelayan nama bagi satu domain lain yang tidak berkaitan dengan permitaan asal ke alamat IP yang dinyatakan oleh si penyerang.

Permintaan pelayan DNS: apakah rekod alamat bagi subdomain.attacker.example?

```
subdomain.attacker.example. IN A
```

Jawapan si penyerang:

```
Answer:
(no response)
```

```
Authority section:
target.example. 3600 IN NS ns.attacker.example.
```

```
Additional section:
ns.attacker.example. IN A w.x.y.z
```

Pelayan yang rapuh akan cache maklumat autoriti yang tidak berkaitan bagi rekod-NS (etri pelayan nama) target.example, membolehkan si penyerang meleraikan permintaan kepada keseluruhan domain target.example.

Lihat juga
----------

* Mausezahn
* Pharming
* Pelayan nama akar
* Rampasan DNS