일명 ‘금천(金川)’이라고도 한다. 백성군(白城郡) 사산(蛇山 : 지금의 稷山) 출신. 침나(沈那)의 아들이다. 백제가 망한 뒤 한주(漢州) 도독(都督) 유공(儒公)의 청으로 문무왕은 소나를 북쪽 변경의 아달성(阿達城)에 머물며 변경을 방어하도록 하였다.
백제에 이어 고구려가 망하자 당나라는 한반도 전체를 복속시키려는 욕망으로 군사를 내어 신라를 침공하는 한편, 말갈족 등 변방민족을 충동하여 자주 신라의 변경을 침입하게 하였다. 이러한 정세 속에서 소나는 변경방비의 임무를 띠고 아달성에 머무르게 되었다.
675년(문무왕 15)에 마침 아달성의 태수 한선(漢宣)이 성의 백성들로 하여금 성밖의 밭에 나가 베〔麻〕씨를 뿌리도록 한 일이 있었는데, 이를 탐지한 말갈족들은 백성들이 모두 밭에 나가 성을 비운 사이에 갑자기 성을 습격하여 노략질하였다.
이때 소나가 분격하여 적에게 돌진하니 적은 감히 다가오지 못하고 다만 활을 쏘므로 소나도 활을 쏘며 하루종일 싸웠다. 이 사이 소나의 몸은 화살이 꽂혀 마치 고슴도치같이 되어 마침내 쓰러져 죽었다.
그는 평소에 “장부는 마땅히 전쟁터에서 죽어야 하며 자리에 누워 가족들의 손길 속에서 죽을 수 없다.”고 하였다. 그의 죽음을 전하여 들은 왕은 눈물을 흘리며 충절에 탄복하고 잡찬(迊飡)의 벼슬을 추증하였다.