The minimal number of spheres required to shield the origin is $4$.
4 spheres is sufficient.
Consider following $4$ points on unit sphere $S^2$,
$$
v_0 = \frac{1}{\sqrt{3}}( -1,-1, -1),
v_1 = \frac{1}{\sqrt{3}}( -1, 1, 1),
v_2 = \frac{1}{\sqrt{3}}( 1,-1, 1),
v_3 = \frac{1}{\sqrt{3}}( 1, 1, -1)
$$
they are forming the vertices of a regular tetrahedron. It is easy to check every point on $S^2$ is at an angular distance no more than $\cos^{-1}\frac13$ from one of these vertices.
For each $k = 0,1,2,3$, place a sphere of radius $( \frac{\sqrt{8}}{3} + \epsilon)\rho_k$ at $\rho_k v_k$. These 4 spheres will block every ray start at origin. In order for them not to overlap, a sufficient condition is $$\max\left(\frac{\rho_i}{\rho_j},\frac{\rho_j}{\rho_i}\right) > 5+2\sqrt{6} \approx 9.899$$ for every $i \ne j$. By setting $(\rho_0,\rho_1,\rho_2,\rho_3)$ to $(1,10,100,1000)$, we obtain $4$ non-overlapping spheres which completely shield the origin.
4 spheres is necessary.
Given any $3$ spheres $S_1, S_2, S_3$. Let $c_1, c_2, c_3$ be unit vectors pointing towards their centers. Given any ray pointing at direction $n$, if sphere $S_i$ block it, we have $n \cdot c_i > 0$. Given $c_1, c_2$, it is easy to find a unit vector $u$ such that $u \cdot c_1 = u \cdot c_2 = 0$, this means neither $S_1$ nor $S_2$ is blocking the two rays pointing at direction $\pm u$. Since $S_3$ can block at most one of these rays, $3$ spheres is not enough to shield the origin.