This is the CCNOT gate, but let's try to derive it. Note that the action of the matrix on $|000\rangle$ is the first colomn of the matrix. Let me use a 2-dimensional case in order to have smaller matrices. So I am going to prove that the first column is the state after applying the matrix to the $|00\rangle$ state:
$$
A |00\rangle =
\begin{pmatrix}
a_{11}&a_{12}&a_{13}&a_{14}\\
a_{21}&a_{22}&a_{23}&a_{24}\\
a_{31}&a_{32}&a_{33}&a_{34}\\
a_{41}&a_{42}&a_{43}&a_{44}
\end{pmatrix}
\begin{pmatrix}
1\\0\\0\\0
\end{pmatrix} =
\begin{pmatrix}
a_{11}\\
a_{21}\\
a_{31}\\
a_{41}
\end{pmatrix}
$$
Another example for $|10\rangle$:
$$
A |10\rangle =
\begin{pmatrix}
a_{11}&a_{12}&a_{13}&a_{14}\\
a_{21}&a_{22}&a_{23}&a_{24}\\
a_{31}&a_{32}&a_{33}&a_{34}\\
a_{41}&a_{42}&a_{43}&a_{44}
\end{pmatrix}
\begin{pmatrix}
0\\0\\1\\0
\end{pmatrix} =
\begin{pmatrix}
a_{13}\\
a_{23}\\
a_{33}\\
a_{43}
\end{pmatrix}
$$
This is true also for other computational basis states. Here is the truth table for the transformation described in the question:
$$\begin{array}{c|c}
|x_1 x_2 y \rangle & |x_1 x_2 (y \oplus x_1 ∧x_2) \rangle\\
\hline
|000 \rangle & |000 \rangle \\
|001 \rangle & |001 \rangle \\
|010 \rangle & |010 \rangle \\
|011 \rangle & |011 \rangle \\
|100 \rangle & |100 \rangle \\
|101 \rangle & |101 \rangle \\
|110 \rangle & |111 \rangle\\
|111 \rangle & |110\rangle
\end{array}$$
So we just need to put in the first column the vector that is presented as an output for $|000\rangle$, the second column is the output of the $|001\rangle$, and so on. From truth table one can notice that the first 6 columns will coincide with the input basis vectors, and the 7th column will be equal to $|111\rangle$ and 8th column will be equal to $|110\rangle$. This way we will obtain the matrix presented in the question: the CCNOT gate.
More schematically if we have some $M$ matrix, for which we only know the outputs for basis vectors, then (for our case):
$$M = \big(M|000\rangle \; M|001\rangle \; M|010\rangle \; M|011\rangle \; M|100\rangle \; M|101\rangle \; M|110\rangle \; M|111\rangle \big) =
\\
= \big(|000\rangle \; |001\rangle \; |010\rangle \; |011\rangle \; |100\rangle \; |101\rangle \; |111\rangle \; |110\rangle \big) =
\\
=
\begin{pmatrix}
1&0&0&0&0&0&0&0\\0&1&0&0&0&0&0&0\\0&0&1&0&0&0&0&0\\0&0&0&1&0&0&0&0\\0&0&0&0&1&0&0&0\\0&0&0&0&0&1&0&0\\0&0&0&0&0&0&0&1\\0&0&0&0&0&0&1&0
\end{pmatrix}
$$
Also, this might be interesting answer for a different matrix. I have used the approach presented there.