CWN(CHANGE WITH NEWS) - 자바스크립트 보안 위한 웹 애플리케이션 가시성, 이렇게 관리하라

  • 구름조금북강릉19.7℃
  • 흐림통영20.4℃
  • 박무북춘천17.0℃
  • 흐림안동16.3℃
  • 흐림보은15.4℃
  • 구름많음홍천16.1℃
  • 구름많음강화16.2℃
  • 흐림의령군15.4℃
  • 흐림순창군17.1℃
  • 흐림정읍18.3℃
  • 흐림북부산19.1℃
  • 흐림구미17.3℃
  • 흐림서청주16.8℃
  • 흐림창원20.1℃
  • 흐림순천15.8℃
  • 흐림거제20.1℃
  • 흐림청송군14.7℃
  • 흐림북창원19.5℃
  • 흐림장수14.8℃
  • 흐림추풍령15.3℃
  • 흐림목포19.7℃
  • 흐림원주16.3℃
  • 흐림여수20.5℃
  • 흐림울진18.7℃
  • 흐림부여17.0℃
  • 흐림금산15.8℃
  • 흐림강진군18.8℃
  • 흐림수원17.3℃
  • 흐림산청16.3℃
  • 구름많음동해19.7℃
  • 흐림태백13.5℃
  • 흐림영덕19.0℃
  • 흐림세종16.8℃
  • 구름많음대관령11.6℃
  • 구름많음서귀포23.5℃
  • 박무청주19.0℃
  • 흐림철원15.6℃
  • 흐림제천14.9℃
  • 흐림영광군18.3℃
  • 흐림고산22.8℃
  • 구름조금울릉도22.1℃
  • 흐림천안16.6℃
  • 흐림고창17.9℃
  • 흐림광양시19.0℃
  • 흐림고흥18.7℃
  • 흐림부산21.7℃
  • 흐림서산17.7℃
  • 흐림성산21.7℃
  • 흐림봉화13.9℃
  • 박무서울17.9℃
  • 흐림임실16.3℃
  • 흐림경주시17.6℃
  • 흐림의성15.9℃
  • 흐림양평16.3℃
  • 박무인천18.3℃
  • 흐림양산시19.9℃
  • 흐림고창군18.3℃
  • 흐림광주19.2℃
  • 흐림대구18.1℃
  • 흐림영천16.1℃
  • 흐림전주18.4℃
  • 구름조금속초21.2℃
  • 구름많음파주16.0℃
  • 흐림남원16.7℃
  • 흐림남해20.4℃
  • 흐림이천16.1℃
  • 흐림흑산도21.5℃
  • 흐림김해시19.2℃
  • 흐림함양군16.0℃
  • 흐림부안18.9℃
  • 흐림진주16.8℃
  • 흐림보령18.8℃
  • 흐림군산17.8℃
  • 흐림대전17.4℃
  • 흐림거창15.5℃
  • 흐림합천17.2℃
  • 흐림밀양17.8℃
  • 흐림진도군18.5℃
  • 흐림상주16.3℃
  • 구름조금인제15.4℃
  • 흐림충주16.8℃
  • 흐림울산19.1℃
  • 흐림춘천16.7℃
  • 흐림보성군18.8℃
  • 흐림완도20.1℃
  • 흐림영주15.4℃
  • 구름많음강릉20.1℃
  • 흐림해남18.0℃
  • 구름많음동두천16.2℃
  • 흐림백령도19.8℃
  • 흐림문경16.0℃
  • 흐림장흥17.9℃
  • 흐림포항19.5℃
  • 흐림정선군14.7℃
  • 박무홍성17.2℃
  • 구름많음제주21.9℃
  • 흐림영월15.7℃
  • 2025.10.02 (목)

자바스크립트 보안 위한 웹 애플리케이션 가시성, 이렇게 관리하라

최정인 / 기사승인 : 2022-05-26 03:55:40
  • -
  • +
  • 인쇄

웹 애플리케이션 가시성은 보안 전문가가 소프트웨어의 프런트 엔드나 클라이언트에 대하여 가지고 있는 통제권을 의미한다. 과거에는 코드를 처음부터 작성했으나 최근에는 미리 작성된 코드와 자바스크립트 라이브러리를 이용하여 애플리케이션을 만든다.

코드는 스스로 작성한 코드, 재이용되는 코드, 누군가 추가한 코드, 사내 라이브러리 코드, 외부 소스 코드 등 다양한 코드의 짜깁기 형태를 띤다. 이런 현상은 가시성을 떨어뜨릴 수 있어, 애플리케이션 보안 전문가의 웹 애플리케이션의 보안 분석 작업에 어려움을 더한다.

실제로 많은 해커 세력이 사이버 공격을 개시할 때, 코드를 복잡하고 혼란스럽게 만드는 고전 방법을 동원한다. 웹 애플리케이션의 경우 해커들은 스트링 난독화나 베이스 62 인코딩을 이용하여 범죄 행위를 숨기고 시그니처 스트링 탐지 기법을 우회한다.

자바스크립트 라이브러리에 심은 악의적 스크립트들은 이런 방식으로 잘 숨겨져 있어 코드 리뷰 같은 전통적 애플리케이션 보안 기법으로는 발견하기 어렵다. 악의적 코드가 발견되지 못하고 실행될 경우 메이지카트, 폼재킹이나 사이트 간 스크립팅 등의 스키밍 공격에 당할 수 있다.

이에, 사이버 보안 전문 매체 Security Boulevard는 코드의 가시성은 보안의 가장 중요한 요소 중 하나라고 강조한다.

우선, 매체는 웹 애플리케이션 가시성 파악 방법 10가지를 아래와 같이 전달했다.

1. 애플리케이션, 폼, 시스템, 데이터 등 어떠한 디지털 자산이 있는지 파악하라.
2. 제3자, 4자의 코드 소스까지, 이용된 모든 기술을 파악하라.
3. 각 자산의 목적, 의도, 운영 요소를 파악하라.
4. 각 기술의 목적, 의도, 운영 요소를 파악하라.
5. 자산별 접근 권한자를 파악하라.
6. 각 자산을 통제하는 현 보안 절차를 점검하라.
7. 자산별 보안 절차의 효과를 검증하라.
8. 자산별 취약점을 파악하라.
9. 자산별 PCI, GDPR, HIPPA 같은 준법 규정을 파악하라.
10. 잠재적 공격에 대비한 손실 완화 전략 코드를 작성하라.

디지털 자산에 대한 분석이 끝났다면 이제 가시성을 높일 수 있는 여러 기법과 툴에 대하여 알아보자. 각각의 방안은 장단점이 있으니 자세히 살펴보기를 바란다.

첫 번째 방법으로 클라이언트 측 공격 표면 관리 기법을 활용할 수 있다. 클라이언트 측 공격 표면 관리 기법은 상대적으로 새로운 사이버 보안 기술로 자동적으로 모든 웹 애플리케이션 자산을 찾는다. 그리고 자산별 데이터 접근권을 보고한다.

이 기법은 헤드리스 브라우저와 인공 유저를 이용하여 웹 사이트나 애플리케이션 페이지 속 모든 자바스크립트를 탐색한다. 웹사이트가 최종 사용자 관점에서 작동하는 방식을 실시간으로 수집한다.

클라이언트 측 공격 표면 관리기법은 다른 웹 애플리케이션 가시성 향상 기법에 존재하는 많은 문제를 피할 수 있어 적용 범위가 매우 넓다. 사실, 클라이언트 측 공격 표면 모니터링 기법은 아래에 나와 있는 방법보다 훨씬 좋은 가시성을 제공한다.

만약 현재 운영 중인 사업에서 웹 애플리케이션이나 웹사이트를 소비자와의 소통 수단으로 활용한다면, 클라이언트 측 공격 표면 모니터링 기법은 클라이언트 측에 발생할 수 있는 사이버 위협에 대응할 수 있는 좋은 방법이 될 것이다.

클라이언트 측 공격 표면 관리법은 보안 분석가나 웹 애플리케이션 개발자들이 며칠에 걸쳐 해야 하는 일을 단 몇 분 만에 처리한다. 자동화된 경고 시스템과 자세한 이슈 목록은 보안 팀들이 클라이언트 측 보안 태스크를 그 어떤 방법보다 많이 자동화할 수 있다.

두 번째 방법으로 ‘펜 테스팅(Pentesting)’이라고도 칭하는 ‘침투 테스트(penetration test)’를 언급할 수 있다. 펜테스팅은 허가를 받고 의도적으로 공격하여 보안 취약점을 찾는 방법을 의미한다. 애플리케이션 보안 전문가가 웹 애플리케이션의 보안 정책을 확인하고 미확인 버그가 존재하는지 검증하도록 지원한다.

하지만 고도의 기술이 필요한 영역으로 시간과 노동력이 많이 투입되어야 한다. 때로는 외부 보안 전문가를 불러 테스트를 시행해야 될 때도 있다.

침투 테스트는 또한 테스트한 시점의 보안 상황만 볼 수 있다는 단점이 존재한다. 웹 애플리케이션은 계속해서 새로운 기능이 추가되며, 코드 안에는 꾸준히 업데이트되는 외부 라이브러리가 존재하기 때문에 침투 테스트는 웹 애플리케이션 가시성을 지속적으로 확보하기에는 한계가 존재한다.

세 번째 방법으로 클라이언트 측 취약점 스캐닝을 활용할 수 있다. 취약점 스캐너는 컴퓨터, 소프트웨어, 애플리케이션, 서버, 네트워크를 분석하여 해커들이 악의적인 의도로 이용할 수 있는 취약점이나 잘못된 구성이 존재하는지 파악한다. 취약점 스캐너는 백엔드 코드와 시스템을 스캔하여 작동하며, 보통 서버 측 디지털 자산을 분석한다. 스캐너는 자바스크립트 버그와 같이 웹 애플리케이션 내에 존재하는 모든 취약점을 탐지하지 못한다는 점과 싱글 도메인만 볼 수 있다는 단점이 있다.

네 번째 방법은 콘텐츠 보안 정책 (Content Security Policies) 활용이다. 콘텐츠 보안 정책은 클라리언트 측에 적용되는 정책들로 웹 애플리케이션에 악의적인 스크립트가 추가되지 않도록 방지하고 찾아낸다.

CSP는 XSS< 자바스크립트 인젝션, e스키밍 같은 공격이 발생하기 전에 위협적인 스크립트를 막을 수 있다. CSP는 그 안에 자바스크립트 허가권 요소가 고려되어 개발되면 굉장히 중요한 툴이 되지만 단순히 보안 통제용으로 이용할 경우 e스키밍 공격에 노출될 수 있다는 단점이 있다.

마지막으로 웹 애플리케이션 방화벽(WAF)을 살펴볼 수 있다. 웹 애플리케이션 방화벽은 애플리케이션과 인터넷 사이를 오가는 HTTP 트래픽을 모니터링하고 필터링하여 웹 애플리케이션을 보호한다. 웹 애플리케이션 방화벽은 웹 앱 가시성을 높이는 데 효과적이다.

개방형 시스템 상호 연결(OSI) 모델 7 레이어 방어 메커니즘이기 때문에 브라우저 수준의 유저 인터페이스 자체를 보호하기 위하여 설계되지는 않았다. 또한 드라이브-바이 스키밍(drive-by skimming), 사이드로딩, 체인로딩 등의 진화한 스키밍 공격은 대비하지 못한다.

[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]

최신기사

뉴스댓글 >

- 띄어 쓰기를 포함하여 250자 이내로 써주세요.
- 건전한 토론문화를 위해, 타인에게 불쾌감을 주는 욕설/비방/허위/명예훼손/도배 등의 댓글은 표시가 제한됩니다.

댓글 1

  • 류진혁님 2022-05-28 04:14:40
    프론트엔드 개발자로서 많은 내용을 알게되여 매우 중요한 기사라고 생각합니다.
    앞으로 이런 글 계속 올려주시면 감사하겠습니다.

Today

Hot Issue