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

  • 흐림제주27.2℃
  • 흐림임실23.7℃
  • 구름조금강릉24.5℃
  • 흐림장수22.5℃
  • 구름조금속초23.1℃
  • 구름조금경주시25.0℃
  • 맑음북강릉23.0℃
  • 구름조금춘천25.5℃
  • 흐림부산26.4℃
  • 구름많음구미24.5℃
  • 구름많음성산26.8℃
  • 구름많음금산24.6℃
  • 구름많음충주25.1℃
  • 구름많음합천24.4℃
  • 흐림수원25.3℃
  • 구름많음보은24.5℃
  • 흐림남원23.1℃
  • 구름많음북춘천24.7℃
  • 구름조금세종24.3℃
  • 구름조금인제25.6℃
  • 구름많음천안24.8℃
  • 구름많음봉화24.9℃
  • 흐림김해시25.0℃
  • 흐림서울25.7℃
  • 구름조금청송군25.8℃
  • 맑음문경25.7℃
  • 흐림군산24.5℃
  • 흐림남해22.9℃
  • 구름조금정선군27.8℃
  • 구름조금의성26.7℃
  • 흐림장흥24.0℃
  • 흐림양산시26.2℃
  • 구름많음대구24.5℃
  • 흐림광양시23.6℃
  • 흐림진도군22.3℃
  • 흐림고흥24.9℃
  • 맑음영덕25.0℃
  • 흐림강진군23.8℃
  • 구름많음산청23.3℃
  • 구름많음부여25.2℃
  • 흐림서산24.9℃
  • 흐림순창군22.9℃
  • 흐림고창24.0℃
  • 흐림영광군23.5℃
  • 흐림고산26.0℃
  • 구름많음태백22.7℃
  • 구름많음북창원25.7℃
  • 흐림청주25.3℃
  • 구름조금포항25.3℃
  • 구름많음서귀포27.7℃
  • 흐림고창군24.0℃
  • 흐림통영24.9℃
  • 구름많음서청주24.4℃
  • 흐림백령도22.7℃
  • 구름많음함양군24.0℃
  • 구름많음대전25.5℃
  • 구름많음상주25.4℃
  • 흐림완도23.5℃
  • 구름많음의령군23.1℃
  • 흐림보성군24.5℃
  • 흐림창원24.5℃
  • 흐림홍성24.6℃
  • 구름조금영주25.0℃
  • 흐림이천25.0℃
  • 흐림정읍24.6℃
  • 구름조금제천25.2℃
  • 구름많음전주24.5℃
  • 흐림보령25.5℃
  • 흐림인천23.6℃
  • 구름많음울산24.3℃
  • 흐림강화23.4℃
  • 흐림목포23.4℃
  • 구름많음철원25.5℃
  • 구름많음동두천24.8℃
  • 흐림해남22.5℃
  • 구름많음영천23.8℃
  • 구름조금대관령20.5℃
  • 흐림파주23.8℃
  • 구름조금안동25.6℃
  • 구름많음거창24.3℃
  • 흐림진주22.2℃
  • 구름많음양평25.0℃
  • 흐림밀양24.9℃
  • 구름많음거제24.4℃
  • 구름조금영월26.3℃
  • 구름많음울릉도24.2℃
  • 흐림순천22.2℃
  • 구름많음추풍령23.8℃
  • 구름조금홍천25.3℃
  • 흐림광주23.3℃
  • 흐림여수23.6℃
  • 비흑산도21.4℃
  • 구름많음원주25.7℃
  • 구름조금울진24.4℃
  • 흐림북부산26.0℃
  • 흐림부안24.2℃
  • 구름많음동해23.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