One relatively straightforward way is to use cone families. First, note that by passing to an adapted metric it is possible to assume that $C=1$. (This is a standard argument whose details should appear in the texts you are reading.) In particular, you have the one-step expansion properties $\|Df(v^u)\| \geq \lambda^{-1}\|v^u\|$ and $\|Df(v^s)\|\leq \lambda \|v^s\|$ for every $v^{u,s}\in E^{u,s}_x$.

Next, note that the hyperbolicity conditions on $\Lambda$ imply the existence of invariant cone families $K^{u,s}_x$. These can be defined by fixing $\gamma>0$ and putting $K^u_x = \{ v^u + v^s \mid v^{u,s} \in E^{u,s}_x, \|v^s\| < \gamma \|v^u\|\}$, and similarly for $K^s_x$ with the roles of $u,s$ reversed. A direct computation using the one-step expansion properties above shows that if $\gamma$ is chosen sufficiently small, then $\overline{Df(K_x^u)} \subset K_{f(x)}^u$ and $\overline{Df^{-1}(K_x^s)} \subset K_{f^{-1}(x)}^s$ for $x\in \Lambda$ and that moreover the one-step expansion holds for all $v^{u,s}\in K_x^{u,s}$ if $\lambda$ is replaced by some $\lambda'\in (\lambda,1)$.

It is straightforward to see that the existence of cones with the above properties is an open condition: given that the above conditions hold for $K_x^{u,s}$ with $x\in \Lambda$, extend the cones continuously to $x$ in a neighbourhood of $\Lambda$, and for a sufficiently small neighbourhood this continuous extension will have the same property because each of the properties above is stable under small perturbations.

Now once you have the cones on a neighbourhood $U$, you just need to get invariant subspaces $E^{u,s}_x \subset K^{u,s}_x$, and everything follows. Let's do $E^s$: the case $E^u$ is similar. Let $J = \{n\geq 0 \mid f^n(x)\in U\}$, and define $E_x^s$ to be any subspace of the appropriate dimension contained in the intersection $\bigcap_{n\in J} Df^{-n}(\overline{K_{f^nx}^s})$. Note that the sets in the intersection are compact and nested, so the intersection is nonempty even if $J=\mathbb{N}$. Take a similar intersection with $n\leq 0$ to define $E_x^u$.

**Edit:** Here is a clarification of how to extend the cones to a neighbourhood. Let $\tilde U$ be a small neighbourhood of some part of the attractor $\Lambda$ -- in particular, assume $\tilde U$ is small enough so that the tangent bundle $T\tilde U$ is homeomorphic to $\tilde U \times \mathbb{R}^d$. Then the subspaces $E_x^u$ on $\Lambda \cap \tilde U$ are given by a continuous function $\Lambda \cap \tilde U \to (\mathbb{R}^d)^u$, where $u$ is the dimension of the unstable subspace -- this function takes $x$ to a set of $u$ vectors forming a basis for $E_x^u$. By the Tietze extension theorem, this can be extended continuously to the neighbourhood $\tilde U$. The procedure for $E_x^s$ is analogous. This gives an extension of $E_x^{u,s}$, and hence $K_x^{u,s}$, to $\tilde U$. Cover $\Lambda$ with finitely many such neighbourhoods, enumerate them as $\tilde U_i$ for $i=1,\dots, n$, and extend first to $\tilde U_1$, then $\tilde U_2$, and so on.

This describes how to extend the cones. For the claim that the conditions on the cones extend, the key tool is the topological fact that if $\phi\colon X\to Y$ is continuous and $X'\subset X, Y'\subset Y$ are closed sets such that $\phi(X')\subset Y'$, then for every open set $Z\supset Y'$, there is an open set $V\supset X'$ such that $\phi(V) \subset Z$.

First we use this to get the expansion/contraction condition. Let $\chi(x) = \sup\{ \|Df_x(v)\| \mid v\in K_x^s, \|v\|=1\}$. Note that $\chi$ is continuous on $U$ and $\chi(x)\leq \lambda'$ for all $x\in \Lambda$. Thus for all $\lambda''\in (\lambda', 1)$, there is a neighbourhood $\hat U \subset U$ of $\Lambda$ such that $\chi(x) \leq \lambda''$ for all $x\in \hat U$. Expansion properties for $K_x^u$ follow similarly.

Finally, invariance. Extend $E_x^{u,s}$ as described above. Given $x\in U$ and $\gamma>0$ Let $K_x^u(\gamma)$ be the cone around $E_x^u$ of width $\gamma$, as in the second paragraph. Then on $\Lambda$, uniform expansion/contraction together with invariance of $E_x^{u,s}$ shows that there are $0<\gamma'<\gamma$ such that $Df(K_x^u(\gamma)) \subset K_{fx}^u(\gamma')$ for all $x\in \Lambda$. Because $Df$ and $x\mapsto K_x^u$ are continuous, and because $K_{fx}^u(\gamma)$ contains a neighbourhood of $K_{fx}^u(\gamma')$, the topological lemma shows that $\overline{Df(K_x^u(\gamma))} \subset K_{fx}^u(\gamma)$ for all $x$ in a sufficiently small neighbourhood of $\Lambda$. The invariance property for $K_x^s$ is similar.