현재 성벽의 일부가 남아 있다. 이 산성은 내성과 외성으로 이루어졌으며, 고구려때에 쌓은 우마성벽도 일부 남아 있다.
우마성의 성벽은 백마산의 가장 높은 곳에 고구려 축성방법으로 쌓았는데 성벽 밑부분에는 계란모양의 굽도리를 조성하고 방추형 성돌의 이음새를 잘 맞추어 쌓았다.
내성은 고려 현종 때 강감찬(姜邯贊)이 쌓은 것으로, 1646년(인조 24) 부윤 임경업(林慶業)이 다시 쌓았는데 서남쪽으로 지형이 매우 험하다. 내성의 둘레는 2,590m이다.
당시의 둘레는 2,600 보(步), 높이 2장(丈)으로 옹성(甕城) 7개, 치각(雉閣) 7개, 문 5개, 군포(軍舖) 30, 정(井) 32, 지(池)가 13군데 있었다.
또한 성내에는 동창(東倉)과 읍창(邑倉)이 있고, 양무고(養武庫)와 결승정(決勝亭)이 있었다.
외성(外城)은 1753년(영조 29) 부윤 남태기(南泰耆)가 처음으로 돌로 쌓았는데 동서북 3면이 낮고 평평하다.
둘레 2,103보, 높이 2장, 치각 4개, 문 3개, 장대(將臺) 1, 군포 10, 우물 3군데가 있고, 기패관(旗牌官) 180인, 보성생(補城生) 440인을 두었다. 이 산성은 특히 1636년의 병자호란 때에 임경업이 이곳을 근거로 하여 싸운 곳으로 유명하다.