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

  • 구름많음울산16.8℃
  • 흐림보은15.0℃
  • 구름많음성산19.4℃
  • 흐림거창14.5℃
  • 흐림창원19.2℃
  • 흐림원주16.0℃
  • 구름조금속초18.8℃
  • 흐림동두천15.4℃
  • 흐림고창군17.8℃
  • 흐림목포19.5℃
  • 흐림대전16.9℃
  • 흐림부여16.2℃
  • 구름많음부산21.3℃
  • 흐림정읍17.5℃
  • 흐림순창군16.2℃
  • 흐림금산15.0℃
  • 흐림순천14.8℃
  • 흐림대구17.1℃
  • 흐림양평16.1℃
  • 박무홍성16.9℃
  • 흐림보성군17.2℃
  • 흐림함양군15.3℃
  • 흐림상주15.8℃
  • 흐림부안18.1℃
  • 박무청주18.8℃
  • 흐림해남16.9℃
  • 흐림포항18.6℃
  • 흐림고창17.2℃
  • 흐림장흥16.7℃
  • 흐림울진16.7℃
  • 흐림봉화12.8℃
  • 흐림세종16.3℃
  • 흐림홍천16.1℃
  • 구름많음철원14.9℃
  • 구름많음강릉19.4℃
  • 구름많음대관령11.6℃
  • 박무서울17.4℃
  • 구름많음양산시17.9℃
  • 흐림남원16.0℃
  • 박무북춘천16.2℃
  • 흐림백령도19.0℃
  • 흐림고흥16.8℃
  • 흐림충주15.8℃
  • 흐림여수20.0℃
  • 흐림구미16.4℃
  • 흐림추풍령14.3℃
  • 흐림광양시18.3℃
  • 흐림정선군13.8℃
  • 흐림수원16.3℃
  • 흐림제천13.9℃
  • 흐림강진군17.4℃
  • 흐림영월15.3℃
  • 구름많음춘천16.4℃
  • 흐림보령18.5℃
  • 흐림전주18.1℃
  • 박무인천18.0℃
  • 흐림서귀포22.1℃
  • 흐림진주15.4℃
  • 흐림통영18.9℃
  • 흐림흑산도20.6℃
  • 흐림영천14.9℃
  • 흐림의령군14.4℃
  • 흐림서산17.2℃
  • 구름많음고산22.0℃
  • 흐림남해19.0℃
  • 흐림동해18.1℃
  • 흐림안동15.2℃
  • 흐림이천15.8℃
  • 흐림임실15.4℃
  • 흐림장수13.7℃
  • 흐림서청주16.1℃
  • 흐림경주시15.2℃
  • 구름많음인제15.4℃
  • 흐림강화15.1℃
  • 흐림밀양16.9℃
  • 흐림태백11.9℃
  • 흐림북창원18.6℃
  • 흐림영덕18.5℃
  • 흐림군산17.5℃
  • 구름조금북강릉17.8℃
  • 구름많음제주20.1℃
  • 흐림천안16.2℃
  • 구름많음북부산17.2℃
  • 흐림완도18.7℃
  • 흐림거제17.9℃
  • 흐림영주14.3℃
  • 흐림파주15.6℃
  • 흐림김해시18.3℃
  • 흐림영광군17.5℃
  • 흐림광주18.4℃
  • 구름조금울릉도20.3℃
  • 흐림진도군17.6℃
  • 흐림산청15.6℃
  • 흐림합천16.1℃
  • 흐림의성15.1℃
  • 흐림문경15.5℃
  • 흐림청송군13.6℃
  • 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